ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

4
Publication date:
09 December 2024

Implementation of the web-application for irs «slag melt»

The article was published in issue no. № 1, 2010
Abstract:In article considered the methods of the web-application’s implementation for informational-research system «Slag melt». Described the main technologies of Apache Cocoon environment for development of web-applications and ways of their application in this system.
Аннотация:В статье рассматриваются методы реализации web-приложения для информационно-исследовательской системы «Шлаковые расплавы». Описаны основные технологии среды Apache Cocoon для разработки web-приложений и способы их применения в данной системе.
Authors: (magsend@gmail.com) - , (voronova2001@mail.ru) - , Ph.D
Keywords: conveyor, continuations, modal method, Cocoon Forms, Apache Cocoon, web-application
Page views: 15117
Print version
Full issue in PDF (4.03Mb)
Download the cover in PDF (1.25Мб)

Font size:       Font:

В Российском государственном гуманитарном университете (г. Москва) разработана информационно-исследовательская система (ИИС) «Шлаковые расплавы», которая обеспечивает реализацию комплексных компьютерных экспериментов для моделей многокомпонентных шлаковых расплавов большого размера (104–105 частиц). В рамках единой интегрированной среды распределенной ИИС реализуются компьютерные эксперименты квантово-химическим, молекулярно-динамичес­ким и статистико-геометрическим методами на основе комплексной модели многочастичной системы с сильным взаимодействием. ИИС имеет как научную, так и образовательную направленность. В ее проектировании и оптимизации активное участие принимают аспиранты и студенты, с их помощью реализовано большое количество модулей (Подсистема распределенного молекулярно-дина­мического моделирования информационно-исследова­тельской системы «Шлаковые расплавы» (Рыжов Н.А., Воронов В.И., Тен Э.А., Гусев А.И., Тетерин С.А., Судников А.В., Середа Д.В., Трофимова Л.А.) зарегистрирована в ОФАП 04.02.2004, свид. № 3158).

ИИС является системой с удаленным доступом, позволяющей проводить компьютерное моделирование на ресурсах разработчика через Интернет. Удаленный доступ реализуется с помощью новейших технологий, обеспечивающих модульность, масштабируемость, удобство поддержки и модификации web-приложения. Для обеспечения удаленного доступа к ИИС, управления ходом компьютерного эксперимента и работой с БД разработано web-приложение на основе среды Apache Cocoon 2.1, которая архитектурно располагается между БД и сервером приложений J2EE (Java 2 Enterprise Edition) Apache Tomcat и представляет собой среду для публикации динамического web-контента на основе технологии конвейерной обработки данных [1].

На рисунке 1 схематично изображен принцип конвейерной обработки XML-данных.

По конвейеру последовательно в виде потока событий SAX (Simple API for XML – способ последовательного чтения/записи XML-файлов) перемещаются XML-данные. При этом происходит преобразование XML-данных от исходной формы к требуемой. Схема обработки данных находится в файле sitemap.xmap. Он представляет собой XML-документ со специальным синтаксисом, позволяющим указывать генераторы, трансформаторы и сериализаторы для различных ресурсов [2].

Описание конфигурационного файла проекта (SITEMAP)

Основная цель SITEMAP состоит в том, чтобы позволить разработчикам, не являющимся специалистами в области программного обеспечения, создавать web-сайты и web-приложения из логических компонентов и XML-документов.

В SITEMAP определяются генераторы, трансформаторы, сериализаторы и многие другие компоненты конвейера (рис. 2). В данном файле также могут осуществляться вызов внешних процедур, перенаправление на другой URL и определение дополнительных параметров обработки XML-до­кументов.

·     Генератор (generator) – начальная точка XML-конвейера. Он генерирует XML-документ как SAX-события и инициализирует начало конвейерной обработки.

·     Трансформаторы (transformer) инициализируются между генератором и сериализатором и выполняют преобразование XML-документа. Результатом его также является SAX-поток.

·     Сериализатор (serializer) является конечной точкой конвейерной обработки документа. Он прерывает SAX-поток и выдает результат преобразования в требуемом формате (HTML, SVG, PDF, XML, WML, VRML и др.).

·     Обнаружитель совпадений (matcher) – центральный компонент SITEMAP. Он позволяет Cocoon ассоциировать URI с заданным набором инструкций, найденных в SITEMAP, и используется для определения последовательности обработки запросов [3].

В web-приложении для ИИС «Шлаковые расплавы» были использованы новейшие технологии среды Apache Cocoon – FlowScript в качестве средства модальной разработки приложений и Cocoon Forms для реализации пользовательских форм.

Применение технологии FlowScript для реализации web-приложения

При выборе технологии для реализации web-приложения были исследованы современные методы разработки: MVC (Model-View-Controller) и модальный метод.

При анализе метода MVC выявлены следующие недостатки.

-    Зависимость сложности логики web-прило­жения от количества данных, требуемых для поддержки текущего состояния клиентской сессии.

-    Нажатие кнопки Back в окне браузера, клонирование окна могут привести к дублированию уже переданных данных.

 Рис. 2. Структура работы файла конфигурации SITEMAP " >Их причина заключается в отсутствии средств сохранения данных о состоянии при работе с протоколом HTTP. До сих пор для хранения состояния web-приложения использовались сессии, представляющие собой просто наборы данных. И, чем их больше, тем сложнее поддерживать web-приложение. Разработка ИИС «Шлаковые расплавы» требует от пользователя ввода больших объемов сложно-структурированных и разнородных математических данных для создания модели. Потому для реализации web-приложения выбрана технология модальной разработки с применением продолжений с серверной стороны (web continua­tions), основная идея которой заключается в предоставлении интегрированной среде программирования возможности загружать состояние приложения перед клиентским запросом и сохранять состояние после каждого запроса. Продолжение – это сохраненный снимок выполняемого состояния программы в любой момент. Использование технологии продолжений в ИИС «Шлаковые расплавы» обеспечит реализацию web-приложения как целостного и последовательного программного кода, легкого для понимания и поддержки.

В среде Apache Cocoon 2.1 принципы технологии продолжений реализованы с помощью Co­coon-контроллеров. Использование Apache Cocoon с контроллером означает необходимость создавать все приложения как отдельную программу и регистрировать ее в конфигурационном файле SITE­MAP.XMAP. В среде Apache Cocoon доступны два типа контроллеров: JavaFlow (на основе языка Java) и FlowScript (на основе языка JavaScript). Для ИИС «Шлаковые расплавы 8.0» была выбрана технология FlowScript.

Технология работы web-приложения ИИС «Шлаковые расплавы 8.0» на основе среды Apache Cocoon заключается в следующем. Web-сервер получает запрос и передает его в конфигурационный файл среды Apache Cocoon (SITEMAP.XMAP), где управление передается на уровень Control Flow (управляющего потока). При этом запускается функция FlowScript, инициализирующая обработку логически сгруппированной последовательности web-страниц. Обработка кода функции останавливается в том месте, где происходит отсылка web-страницы обратно клиенту, после чего HTTP-запрос завершается. В объекте продолжения сохраняется состояние выполнения программы. Каждое продолжение имеет уникальный идентификатор, встраиваемый в сгенерированную web-стра­ницу, что обеспечивает возможность перезапуска сохраненного продолжения для последующего использования.

В скриптах контроллера FlowScript осуществляются запуск бизнес-логики для реализации доступа к БД и перевод системы в режим модели [4]. Когда выполнение данной бизнес-логики завершается, управление возвращается обратно к управляющему потоку для определения web-стра­ницы, возвращаемой клиенту.

Применение технологии Cocoon Forms для создания пользовательских форм

Apache Cocoon, начиная с версии 2.1, предоставляет технологию Cocoon Forms для обработки интерактивных web-форм. Объединяя такие технологии, как Flow и JXTemplates, Cocoon Forms (CForms), проект Apache Cocoon предлагает фундаментальный метод создания и обработки интерактивных web-приложений, который целесообразно применить при разработке web-серверного приложения ИИС «Шлаковые расплавы».

Для создания формы в Cocoon Forms необходимо определить два компонента:

·     модель формы (XML-документ, описывающий структуру формы);

·     шаблон формы (обработчик представления формы).

Модель формы описывается XML-документом (определение формы – form definition), содержащим структуру формы с описанием ее элементов (widgets). Данный файл не содержит никакой презентационной информации. На основе модели формы создается экземпляр формы (form instance), в котором хранятся текущие данные. Описание модели формы XML-файлом позволяет создавать пользовательские формы без программирования логики их работы на языке Java.

Отображение формы обычно обрабатывается шаблоном формы (form template). Шаблон формы представляет собой XML-файл. В том месте, где необходимо разместить элемент формы, нужно вставить специальный тэг, ссылающийся на этот элемент. После обработки преобразователем шаблонов форм (Forms Template Transformer) эти тэги будут замещены XML-представлением элемента, которое содержит всю информацию об этом элементе (значение, перечень возможных ошибок валидации и др.).

Пример работы преобразователя шаблонов форм показан на рисунке 3 [4].

На рисунке 4 приведена структура web-прило­жения ИИС «Шлаковые расплавы 8.0», созданного с применением технологий Cocoon Forms и web continuations.

1.   Создание экземпляра формы.

Процедура контроллера (FlowScript) запрашивает компонент FormManager (менеджер форм) для создания экземпляра формы, основываясь на модели формы (модель формы кэшируется, поэтому создание экземпляра формы проходит очень быстро). Форма заполняется данными из БД. Пройдя через конвейер публикации, форма появляется в окне браузера.

2.   Обработка запроса и проверка данных на правильность ввода.

Перед отправкой заполненной формы на сервер контроллер позволяет объекту экземпляра формы обработать запрос, поэтому все элементы формы (widgets) считывают собственное значение из параметров запроса. Все элементы формы проводят собственную валидацию на основе данных из модели формы. Если обнаружены ошибки валидации, форма вновь будет отображена в окне браузера. В противном случае контроллер перейдет к следующему шагу.

3.   Выполнение конвейерной обработки [4].

Подытоживая, отметим, что в статье предложен метод реализации web-приложения для ИИС «Шлаковые расплавы», основанный на современных принципах построения интерактивных web-систем. Выбранные технологии – модальная разработка web-приложений (FlowScript), Cocoon Forms – способствуют повышению производительности работы web-приложения ИИС «Шлаковые расплавы», а использование технологии FlowScript делает приложение легким для понимания, дальнейшей модификации и поддержки.

Литература

1.   Григорьева М.А., Воронова Л.И. Интеграция XML-данных и вычислительных Fortran-приложений в ИИС «Шлаковые расплавы 9.0» // Информационные технологии моделирования и управления. 2009. № 1 (53). С. 106–110.

2.   Оптимизация информационного и программного обеспечения информационно-исследовательской системы «Шлаковые расплавы» / Л.И. Воронова [и др.]. М.: РГГУ, 2009. 45 с.

3.   Matthew Langham, Carsten Ziegeler «Cocoon: Building XML Applications», New Riders Publishing, 2002.

4.   URL: http://cocoon.apache.org/2.1/userdocs/basics/index.html (дата обращения: 11.09.2009).


Permanent link:
http://swsys.ru/index.php?id=2446&lang=en&page=article
Print version
Full issue in PDF (4.03Mb)
Download the cover in PDF (1.25Мб)
The article was published in issue no. № 1, 2010

Perhaps, you might be interested in the following articles of similar topics: