Гипертекст является одним из важнейших способов обеспечения информационных процессов и представления информационных систем, а публикация гипертекста в Веб - основным назначением веб-приложений. Существует большое количество готовых CMS (Content Management Systems - Системы Управления Содержимым), ориентированных на решение различных задач в области публикации гипертекста, таких как ведение блога или форума, публикация новости, представление товаров и услуг, поддержка электронной коммерции и т.п. Все эти системы широко применяются, непрерывно развиваются, имеют хорошую техническую поддержку, большинство из них бесплатны и доступны в исходных кодах.

Однако во многих случаях, особенно в библиотечном сообществе, существующие CMS общего назначения не могут проявлять свои достоинства. Основная причина кроется в том, что они не поддерживают протокол Z39.50, по которому осуществляется доступ к базе библиографической информации. Решением данной проблемы стало создание специализированного XSLT сервера приложений, представляющего собой конвейер преобразования XML документов.

На XSLT сервере могут быть реализованы базовые CRUD функции хранилища данных (создание, чтение, обновление и удаление) как расширенные функции с помощью кода на языке С или Java. Каждая функция представляет собой запрос от клиента к серверу на выполнение определенных действий. В статье рассмотрен язык для описания алгоритма обработки запросов к XSLT-серверу. Для каждого запроса он описывает последовательность операций, которые сервер должен выполнить, в основном с базой XML документов. Отсюда и возникло название языка ACTIONS, которое означает «действия». При обработке пришедшего запроса сервер с помощью языка ACTIONS создает конвейер операций, которые выполняют либо CRUD функции, либо перенаправление URL.

1. Свойства языка ACTIONS

Язык ACTIONS описан по схеме RELAX-NG, которая по сущности является языком описания структуры XML документов. Он обладает следующими свойствами: - ACTIONS является предметно-ориентированным языком программирования, который в отличие от языков программирования общего назначения разработан для решения определенного круга задач. Он может применяться в XSLT серверах, где требуется реализация базовых CRUD функций.

-     Данный язык носит декларативный характер, в нём не задаётся пошаговый алгоритм решения задачи («как» решить задачу), а некоторым образом описывается, «что» требуется получить в качестве результата. ACTIONS описывает алгоритм обработки запросов к серверу, а сами обработки выполняются в таблицах стилей XSLT методом Data Driven Approach (приложение управляется данными). Такой подход хорошо применяется для обработки исходных документов с комплексными и неоднородными данными. С помощью Data Driven Approach можно создавать отдельные шаблоны для нужных узлов без учета контекста, в котором эти узлы появляются в документе.

-     ACTIONS предназначен для отражения операций приложения на базовых CRUD функциях. Как сказано выше, CRUD представляет собой набор из четырех основных функций, необходимых для работы с базами данных. На самом деле, аренда сервера 1С может расширить эти функции, добавляя дополнительные возможности, таким образом, обеспечивает пользователям более эффективную работу. К примеру, пользователь отправляет серверу запрос на получение некоторого ресурса не для его чтения, а для его редактирования. В данном случае в качества ответа сервер должен выводить не просто содержимое ресурса, а распределять его по полям, где значение текста можно изменить. Кроме того, в ходе редактирования можно добавить возможность предпросмотра его содержания. Следовательно, можно увидеть, что одни и те же данные можно представить разными способами, каждый способ сопровождается определенной совокупностью операций. Задача языка ACTIONS заключается в преобразовании операций приложения в CRUD функции, т.к. кроме них другие операции не поддерживаются.

2. Структура языка ACTIONS

Допустим, что клиент просит сервер выполнить некоторую операцию над некоторым ресурсом. Ресурсы сервера имеют разные идентификаторы, правила доступа, а также формы представления. Следовательно, каждый запрос к серверу должен относиться к определенному типу объекта (страница, комментарий, опрос, лента новости и т.д.). В зависимости от типа объекта и операции приложения язык ACTIONS формулирует соответствующий набор действий, необходимых для ее выполнения. Такая структура может быть отображена в иерархическом виде, как на рисунке 1.

купить 1С в Киеве

Рисунок 1 - Структура языка ACTIONS

Ниже перечислены некоторые операции, описанные языком ACTIONS:

•     POST - создание нового объекта в базу. Операция выполняется в следующем порядке: Задается переменная, содержащая сгенерированный идентификатор для создаваемого объекта. Потом в базе данных создается новый объект с заданным идентификатором и его свойствами (функция Create). Для завершения операции сервер перенаправляет запрос на новую страницу с созданным объектом.

•     VIEW - просмотр содержимого объекта. Для этого необходима лишь одна CRUD функция - Read. Чтобы извлечь содержимое объекта из базы нужно указать тип объекта и его идентификатор.

•     VIEW_FOR_EDIT - просмотр содержимого объекта для его редактирования. Данная операция предоставляет разновидность представления содержимого объекта. Порядок выполнения операции точно такой же, как VIEW, разница лишь заключается в формате представления информации (об этом заботится не язык ACTIONS, а приложение, которое его обрабатывает).

•     PREVIEW -предварительный просмотр объекта. PREVIEW дает возможность в процессе редактирования посмотреть, как на самом деле будет выглядеть объект и устраивают ли внесенные изменения. Данная операция состоит из двух функций - создание временного объекта, хранящего его временные значения, и чтение его содержимого.

•     EXIT_PREVIEW - выход из предварительного просмотра. Сначала необходимо удалить созданный временный объект, а потом перейти на страницу редактирования. Соответственно EXIT_PREVIEW состоит из операций Delete и VIEW_FOR_EDIT, но поскольку операция VIEW_FOR_EDIT уже описана, то нет смысла её заново описывать. Вместо

неё можно поставить операцию REF, которая означает ссылку на другую операцию. Для REF нужно указать идентификатор ссылаемой операции.

•     SAVE - сохранение изменений объекта. Операция используется при редактировании объекта. SAVE делится на две операции - обновление значений объекта в базе (функция Update) и просмотр обновленного объекта (VIEW_FOR_EDIT).

•     DEL - удаление объекта. Сначала удаляется сам объект, а потом все объекты, связанные с ним (функция Delete). Например, чтобы удалить статью, нужно удалить и все комментарии к ней.

Важно отметить, что набор операций, описанных языком ACTIONS, не является ограниченным. При желании возможно добавление и других операций, тем самым расширяется работоспособность сервера, особенно если на нем работает 1С Управление производственным предприятием.

Заключение

Рассмотренный язык описания алгоритма обработки запросов к XSLT-серверу позволяет преобразовать операции сервера в CRUD функции и обеспечивать взаимодействие между клиентом и сервером через браузер. Экземпляры данного языка являются собственно XML документами и могут применяться в XSLT-серверах, где гибкость и простота расширения системы играют решающую роль.