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

Григорьева М. А., Воронова Л. И. Оптимизация взаимодействия 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

Основные термины: «Шлаковые расплавы», ИИС «Шлаковые расплавы», Apache Cocoon, базы данных, среде apache cocoon, обработки xml, базой данных, «Шлаковые расплавы» версии, тегов esql, библиотекой тегов esql, эквивалентом объекту jdbc, программе xml2db, обмена данными, XML документа, Apache Cocoon версии, Использование XML, обработки данных, web-приложения ИИС «Шлаковые, Web-приложение ИИС «Шлаковые, версии ИИС «Шлаковые

Обсуждение

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