TCL Application Server
Собственно идея лежала на поверхности и мне не понятно почему ее никто
не реализовал. :)
А идея заключается в следующем: ни для кого не секрет, что application server -
штука очень полезная, особенно когда требуется сопровождение этого application
на куче рабочих мест, и особенно, если эти рабочие места функционируют под Windows*.
Для создания таких приложений я использую Tcl/Tk
и его расширения. Обычно эти приложения работают с каким-либо SQL-сервером.
Логично было-бы хранить эти приложения на сервере с базой данных, а еще лучше в
этой базе данных. А учитывая то, что на разных платформах у нас имеют место быть
разные кодировки, то в этом случае сервер БД может сам перекодировать тексты
программ. Hе менее логично научить встроенный в Tcl autoloader загружать
необходимые компоненты из базы данных. Вот собственно это я и попытался реализовать. :)
То, что у меня получилось вы можете взять
здесь,
только учтите, что могут быть мелкие нестыковки, т.к. я "вырезал" эти примеры из рабочего
проекта и отдельно не проверял. Данный вариант написан
с использованием BWidget и
Oratcl, но это достаточно легко
изменить. :)
В комплект входят 3 файла:
- Login.tcl
- Постоянная клиентская часть. Открывает соединение (с авторизацией) с базой данных,
"объясняет" autoloader'у как загружать тексты программ из БД и зовет начальную
процедуру Main
- tcl_load.tcl
- Загрузчик текстов программ в БД. Сканирует каталоги
(см. ScriptDir внутри) на предмет файлов *.tcl, парсит их
с помощью auto_mkindex_parser (см. man n auto_mkindex) и на основании полученных данных заполняет
соотв. таблицы в БД. Этот загрузчик можно будет оформить в виде одного из приложений
и прицепить к нему например TCL Developer Studio. :)
- apps.sql
- SQL-скрипт для создания соотв. таблиц/ролей/... Все, что
относится к таблицам apps.help и apps.programs к делу не относятся, но
вы можете по коментариям и приложенным исходникам понять, что это такое. :)
При создании сего "шедевра" были использованы некоторые
наработки Сергея Лазарева
с его великодушного согласия.
Last modified: Tue Jun 24 14:37:30 MSD 2003
|