Механизм работы с динамическими объектами представляет собой процесс клиент-серверного взаимодействия, в результате которого пользователю будет переданы динамические данные.
Содержимое статичных документов меняется редко, и уж точно не от посещения к посещению. Arp.Site изначально построен именно для управления динамическими объектами, обязательными атрибутами информационных систем последнего времени.
Ключевая возможность системы Arp.Site состоит в использовании компонент и модулей , которые не просто передают какую-то информацию, а взаимодействуют с пользователем, реагируя на его действия.
В качестве примера рассмотрим заглавную страницу официального web-сайта МФТИ:
Данная страница состоит из нескольких элементов:
- Кэшируемый элемент «разделы сайта» генерируется модулем InfoSpace. Модуль отслеживает положение пользователя на информационном дереве и помогает строить подобные навигационные панели, отображающие текущие ресурсы, доступные пользователю в данном месте сайта (подобный компонент можно найти в программе FrontPage – Navigation Bar).
- Динамический элемент «Голосование» создаётся при помощи модуля vote, который, используя информацию о ленте голосований (её ID указан в шаблоне документа) выдаёт пользователю один из вопросов. Также он обрабатывает ответ пользователя, показывая результат на той же странице, где находится голосование.
- Новостная лента – ещё один элемент, по своему принципу статический (а значит, хорошо кэшируемый). Отображается модулем news на основе информации и свойств новостной ленты, расположенной на информационном дереве сайта и указанной в шаблоне документа.
- Ещё один динамический компонент raiting меняющийся в определенный промежуток времени (это время изменяемо) – показывает список последних обновлений сайта. В зависимости от свойств может также отображать список самых популярных материалов данного сайта.
- Модуль search позволяет организовать поиск на сайте. При этом он ведёт пользователя на другую страницу – с результатами поиска.
Помимо модулей, из которых частично формируется страница, существует понятие компонента (component). В отличие от модуля, который вызывается системой из XSL-шаблона, компонент представляет собой объект на информационном дереве сайта, который связан с определённым java-классом. Этот класс полностью управляет построением XML-элемента для данного объекта. Примерами таких компонентов могут служить:
- система управления электронной почтой,
- система отображения статистики посещаемости сайта,
- система управления SandBox, реализованная средствами целого набора компонентов.
Вот как модули и компоненты вписываются в схему работы со статическими документами: