Абдуллин В.
Web-лаборатория НГУ, Новосибирск
Система создавалась в связи с необходимостью выполнения многочисленных похожих друг на друга задач, связанных с динамическим оформлением веб-страниц. В ее основе лежит идея о том, что любой веб-сайт составляется из достаточно независимых друг от друга функциональных единиц - "модулей". Это могут быть стандартные модули: новости, голосования, счетчики, формы и т.д. - встречающиеся повсеместно. Или это могут быть характерные только для данного веб-сайта решения. В любом случае они обладают достаточно схожим поведением, поэтому естественно было бы стандартизовать подходы к работе с ними.
И здесь требуется решить две задачи:
Использование технологий XML позволяет полностью решить первую задачу. Именно благодаря им становится возможной работа с разнородной информацией стандартными средствами. Для системы неважно, что хранится в базе: статическое содержание веб-страницы, регулярно меняющиеся новости или навигация по сайту - результатом ее работы будет XML - документ, содержащий требуемые данные.
Размещение данных на странице, в свою очередь, происходит с помощью таблиц преобразований XSLT. При этом мы можем использовать разные XSLT таблицы для отображения данных, предназначенных разным группам пользователей, или для создания различных версий сайта (скажем, дизайн русскоязычной и англоязычной версий может различаться). Или мы можем учитывать необходимость изменений - если они небольшие - в одной таблице.
Отделив таким образом дизайн от функциональной части нашей системы, хотелось бы дополнительно решить такую задачу: при создании нового сайта требуется использовать ту же систему с минимальными исправлениями в коде. В этом смысле ту часть системы, которая встраивается в новое решение без изменений, назовем ядром, все остальное - надстройкой над ядром.
Управление параметрами системы - сосредоточенное в одном интерфейсе - и стало основной функцией ядра. Это:
"Процедура" здесь - это некоторый фиксированный набор действий над данными. Например, если вывод списка новостей по замыслу разработчиков сайта должен сопровождаться формой для голосования, то такую повторяющуюся последовательность мы и называем "процедурой". В этом смысле именно процедурой формируется модуль - как повторяющаяся единица содержания страницы.
Вопрос с правами доступа решается следующим образом. Каждой процедуре сопоставляется некоторое "право", которым должен обладать пользователь, от имени которого совершается данное действие (обычно - запрос хранилищу данных на их вывод или изменение). Проверка прав осуществляется ядром при попытке вызова процедуры.
Процедуры же, в свою очередь, исполняют запросы к хранилищу данных, составляя по их результатам выходной XML-документ.
Тогда алгоритм функционирования нашей системы будет выглядеть следующим образом:
Конкретная реализация веб-сайта, в результате, превращается в последовательность таких действий:
Ваши комментарии Обратная связь |
[Головная страница] [Конференции] [СО РАН] |
© 2002, Сибирское отделение Российской академии наук, Новосибирск
© 2002, Объединенный институт информатики СО РАН, Новосибирск