Библиографическое описание:

Григорьева М. А., Воронова Л. И. Оптимизация взаимодействия web-приложения с базой данных в информационно-исследовательской системе «Шлаковые расплавы» // Молодой ученый. — 2009. — №10. — С. 85-88.

Введение

Информационно-исследовательская система (ИИС) «Шлаковые расплавы» разработана в рамках проекта РФФИ по направлению «Создание и развитие информационных, вычислительных и телекоммуникационных ресурсов для проведения фундаментальных исследований» и предназначен для компьютерного моделирования свойств многокомпонентных оксидных расплавов методом молекулярной динамики в режиме удаленного доступа. Задачи которые решает данная ИИС являются актуальными в области физической химии и технологии неорганических материалов, так как результаты проводимых в системе экспериментов используются при создании новых металлических материалов с заранее заданными свойствами[1].

На этапе тестирования данной исследовательской информационной системы было выявлено снижение производительности из-за большого количества XML-преобразований и их неэффективного использования. В статье предложены методы увеличения производительности системы путем изменения методов обработки XML.

Анализ текущей версии ИИС «Шлаковые расплавы» (версия 6.0)

Основными компонентами архитектуры ИИС являются: вычислительные приложения, CORBA-оболочки приложений, сервер приложений, (SQL) реляционная база данных, web-сервер, web-клиент и мост XML-СУБД. Механизм интеграции программных компонентов ИИС - обмен документами XML. Динамическое управление приложениями осуществляется с помощью технологии CORBA.

Структура ИИС «Шлаковые расплавы» представлена на рис.1.

рис1_1

Рис. 1. Структура ИИС «Шлаковые расплавы» версии 6.0

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

Использование XML в качестве универсального средства обмена данными оправдано, т.к. обеспечивает масштабируемость – одно из важнейших требований при проектировании любой ИС. Однако, как показал анализ производительности ИИС, метод формирования XML-документов, предложенный и реализованный разработчиками ИИС «Шлаковые расплавы», не является оптимальным.

Мост XML-БД

Для унификации информационных потоков между компонентами ИИС используется программа-адаптер XML2DB, которая является промежуточным звеном между СУБД и подсистемами информационной системы. Единый формат обмена данными обеспечивается с помощью XML-документов, содержащих трансляционные схемы.

В программе XML2DB происходит процесс, представленный на рис.2.

рис2_1

Рис.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.

Drawing2_11

Рис. 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.

 

 

 

<esql:connection>

  <esql:pool>connectionName</esql:pool>

  <esql:execute-query>

    <esql:query>SELECT id, sign, charge, radius FROM molecules</esql:query>

    <esql:results>

      <table>

        <esql:row-results>

          <tr>

             <td><esql:get-string column="id"/></td>

             <td><esql:get-string column="sign"/></td>

             ………              

          </tr>

        </esql:row-results>

      </table>

    </esql:results>

  </esql:execute-query>

</esql:connection>

 

 
 

 

 

 

 

 

 

 

 

 

 


Рис. 4. Фрагмент кода использующего библиотеку тегов ESQL

Drawing2_2

Рис. 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

Обсуждение

Социальные комментарии Cackle