Введение
Информационно-исследовательская система (ИИС) «Шлаковые расплавы» разработана в рамках проекта РФФИ по направлению «Создание и развитие информационных, вычислительных и телекоммуникационных ресурсов для проведения фундаментальных исследований» и предназначен для компьютерного моделирования свойств многокомпонентных оксидных расплавов методом молекулярной динамики в режиме удаленного доступа. Задачи которые решает данная ИИС являются актуальными в области физической химии и технологии неорганических материалов, так как результаты проводимых в системе экспериментов используются при создании новых металлических материалов с заранее заданными свойствами[1].
На этапе тестирования данной исследовательской информационной системы было выявлено снижение производительности из-за большого количества XML-преобразований и их неэффективного использования. В статье предложены методы увеличения производительности системы путем изменения методов обработки XML.
Анализ текущей версии ИИС «Шлаковые расплавы» (версия 6.0)
Основными компонентами архитектуры ИИС являются: вычислительные приложения, CORBA-оболочки приложений, сервер приложений, (SQL) реляционная база данных, web-сервер, web-клиент и мост XML-СУБД. Механизм интеграции программных компонентов ИИС - обмен документами XML. Динамическое управление приложениями осуществляется с помощью технологии CORBA.
Структура ИИС «Шлаковые расплавы» представлена на рис.1.
Рис. 1. Структура ИИС «Шлаковые расплавы» версии 6.0
Вычислительные приложения и web-сервер взаимодействуют с базой данных опосредованно через промежуточное программное обеспечение, которое осуществляет формирование требуемого XML документа на основании содержания базы данных и обновление базы данных на основании документа XML [2].
Использование XML в качестве универсального средства обмена данными оправдано, т.к. обеспечивает масштабируемость – одно из важнейших требований при проектировании любой ИС. Однако, как показал анализ производительности ИИС, метод формирования XML-документов, предложенный и реализованный разработчиками ИИС «Шлаковые расплавы», не является оптимальным.
Мост XML-БД
Для унификации информационных потоков между компонентами ИИС используется программа-адаптер XML2DB, которая является промежуточным звеном между СУБД и подсистемами информационной системы. Единый формат обмена данными обеспечивается с помощью XML-документов, содержащих трансляционные схемы.
В программе XML2DB происходит процесс, представленный на рис.2.
Рис.2. Процесс обмена данными в ИИС «Шлаковые расплавы»
На обработку программе XML2DB поступает соответствующая трансляционная схема и правило ее обработки в виде ключа. Происходит синтаксический разбор этой схемы, после чего программа определяет дальнейшие инструкции, в зависимости от типа трансляционной схемы:
a. Трансляционная схема представляет собой правило выборки данных из базы. В этом случае происходит обращение к базе, выборка необходимых данных, на основе которых генерируется новый XML-документ
b. Трансляционная схема содержит правило обновления или вставки данных - программа производит модификацию базы данных в соответствии с правилами, заложенными в программе XML2DB при разборе схемы трансляции.
Web-приложение ИИС «Шлаковые расплавы» версии 6.0
Web-приложение для ИИС спроектировано и реализовано с помощью надстройки над web-сервером Apache Tomcat - Apache Cocoon. Apache Cocoon представляет собой среду для публикации динамического web-контента на основе технологии конвейерной обработки данных. По конвейеру последовательно в виде потока событий SAX(Simple API for XML - способ последовательного чтения/записи XML-файлов) перемещаются XML-данные. При прохождении по конвейеру происходит преобразование XML-данных от исходной формы к требуемой. Схема обработки данных находится в конфигурационном файле sitemap.xmap. Он представляет собой XML-документ со специальным синтаксисом, позволяющим указывать генераторы, трансформаторы и сериализаторы для различных ресурсов [3].
Разработка web-приложения проводилась в среде Apache Cocoon версии 2.0. Все действия по обработке данных форм осуществляются с помощью XSP-страниц. Аббревиатура XSP означает технологию расширяемых серверных страниц (Extensible Server Pages). XSP представляет собой динамический язык разметки, который позволяет внедрять директивы Java-кода внутрь XML-разметки.
Структура web- приложения ИИС «Шлаковые расплавы» версии 6.0 представлена на рис.3.
Рис. 3. Структура web-приложения ИИС «Шлаковые расплавы» версии 6.0
Недостатки использования промежуточного программного обеспечения XML2DB
На стадии тестирования обмена данными между системой молекулярно-динамического моделирования и базой данных выяснилось, что общее время обмена информации превышает расчетное время в 2.5 раза. Причиной такого замедления является объем оперативной памяти, необходимый для обработки XML документа. Как отмечают сами разработчики программного комплекса «Шлаковые расплавы», основная причина снижения производительности обработки XML кроется в программе-адаптере XML2DB.
Использование встроенной библиотеки ESQLдля работы с базами данных
Построение работы web-приложения на основе XSP дает разработчикам преимущество использования встроенных библиотек тегов, таких как request, session, ESQL, Forms, sendmail. Эти библиотеки обеспечивают XML интерфейс к определенным объектам. Например, Request обеспечивает интерфейс к большинству методов объекта HttpServletRequest. Теги Request предоставляют информацию обо всех аспектах текущего запроса, таких как метод запроса (GET, POST), используемый протокол, информация о COOKIE, и т.д. Session – обеспечивает интерфейс к методам объекта HttpSession.
Библиотека тегов ESQL (Extended SQL) обрабатывает SQL запросы и преобразует их в XML-данные. ESQL является «тонким» слоем над стандартом JDBC API и определяет теги, соответствующие определенным функциям JDBC. При работе с библиотекой тегов ESQL необходимо использовать набор общих структурных элементов. Каждый из этих элементов является отражением функциональности эквивалентного объекта в JDC API.
Например, элемент esql:connection является эквивалентом объекту JDBC Connection. Так же как и все JDBC операции включаются в состав определенного соединения, так и элементы ESQL должны быть включены в элемент esql:connection. В отдельной XSP-странице допускается использование нескольких элементов соединений, что позволяет одной странице взаимодействовать с несколькими источниками данных.
Элемент esql:execute-query является эквивалентом объекту JDBC – PreparedStatement. Он определяет метод выполнения отдельных запросов внутри соединения, а также метод обработки результатов этих запросов.
Для того чтобы получить список всех ионов в модельной системе, можно использовать не трансляционную схему, которая отсылает приложение к выполнению программы XML2DB, а обычный XSP-скрипт с библиотекой тегов ESQL. В среде Apache Cocoon происходит обработка этого скрипта в соответствии в указанными в SITEMAP таблицами стилей, и мы получаем тот же результат, который был получен путем использования программы XML2DB, но намного быстрее и проще.
Фрагмент документа с запросом, возвращающим параметры молекул из базы данных, представлен на рис.4. После обработки данного кода и его прохождения через конвейер обработки на выходе мы получаем XML-документ, содержащий результаты выполнения SQL-запроса.
Оптимизированная структура web-приложения ИИС «Шлаковые расплавы» представлена на рис. 5.
|
Рис. 4. Фрагмент кода использующего библиотеку тегов ESQL
Рис. 5. Структура web-приложения ИИС «Шлаковые расплавы» с использованием библиотеки ESQL
Заключение
Исследовательская информационная система «Шлаковые расплавы» создана с использованием наиболее перспективных технологий – с помощью среды разработки Apache Cocoon 2.1. Интеграция модулей системы осуществляется за счет обмена XML-данными. Но на этапе тестирования было выявлено неэффективное управление обработкой XML-документов, снижающее производительность.
Углубленное изучение технологий пакета Apache Cocoon показало, что существует наиболее оптимальный метод обмена XML-данными - использование встроенной библиотеки тегов XSP – ESQL для прямого и обратного преобразования XML данных, вместо программы-адаптера XML2DB.
Список использованной литературы:
1. Воронова Л.И., Рыжов Н.А., Тетерин С.А., Середа Д.В. Использование XML для интеграции приложений и реляционных СУБД / Сб.научн. трудов «Математическое моделирование: естественно-научные, технические и гуманитарные приложения». СПб: ЛГУ им.А.С.Пушкина, 2004, с.117-119.
2. Matthew Langham, Carsten Ziegeler “Cocoon: Building XML Applications”, New Riders Publishing, 2002
3. http://cocoon.apache.org/2.1/userdocs/basics/index.html