10510

Объектный XML процессор ESOP

XML процессор ESOP (улучшенный простой объектный процессор) представляет собой компактный и мощный инструмент быстрой разработки Интернет приложений с поддержкой стандартов XML, X-Path, XSLT и СУБД MySQL. Программный процессор ESOP может применяться в корпоративных порталах, системах дистанционного обучения, тестовых Интернет системах, электронных магазинах и других Интернет приложениях с динамическим контентом. Процессор, реализованный на языке Perl, используется совместно с Web-сервером Apache, СУБД MySQL.

Основные функции программного процессора ESOP:

Этот далеко неполный перечень функций программного процессора ESOP характеризует его как универсальный и мощный инструмент для решения самых различных задач - от поиска информации в табличной базе данных до создания многопрофильного Интернет портала или системы дистанционного обучения. В основе программного процессора лежит библиотека расширяемых функциональных объектов (серверных сценариев XSP), построенных на основе стандарта XML. Доступ к функциональным объектам и их методам обеспечивается через Web-браузер пользователя и HTTP протокол.

Все интерактивные Интернет приложения используют, как правило, механизм транзакций. При этом каждый пользовательский запрос запускает серверное приложение, которое генерирует ответ в виде HTML страницы. В зависимости от языка реализации, программные приложения на сервере могут размещаться в откомпилированных файлах или сервлетах, но чаще всего, в виде PHP, ASP или JSP страниц. В серверных страницах программный код приложения совмещается с данными и их представлением, что дает некоторое преимущество для разработчика и считается удобным для пользователя. Программист может оперировать данными, с которыми работает программа, а также изменять их представление. Пользователь в этом случае видит только представление данных, генерируемое программой - программный код и сами исходные данные ему недоступны. Недостатком такого подхода является то, что при больших объемах программы, данных, или их представления, внесение каких-либо изменений в Интернет приложение является нетривиальной задачей. Например, программный код трудно отлаживать программисту из-за изменений структуры данных; представление данных трудно корректировать Web-мастеру из-за обилия программных вставок и т.д. К тому же в каждой из нескольких десятков (сотен) страниц программа должна выполнять одни и те же действия - например, разбирать запрос пользователя. Некоторым облегчением создавшегося положения является использование отдельных шаблонов вывода и программных шаблонов, общих для нескольких страниц. Но даже и в этом случае, из-за особенности механизма транзакций, все Интернет приложение оказывается разбитым на множество отдельных кусков, мало связанных между собой.

В последнее время стали активно внедряться программные средства, поддерживающие стандарты XML, X-Path и XSLT. Такой подход позволяет разделять данные от их представления и решает, наконец, проблему эффективного обновления динамического контента. Таким примером может служить программный XSLT процессор Xalan. Языки Perl и PHP имеют встроенную библиотеку доступа к XML данным - Expat. Наиболее полная поддержка новых стандартов обеспечена в языке Java. На основе этих универсальных стандартов разработан и функционирует проект Apache Cocoon. Корпорация Microsoft, активно продвигает технологию ASP.NET в качестве основного стандарта разработки Интернет приложений. Однако программисты не спешат переходить на новые технологии. Это связано не только с трудностью освоения новых стандартов (одно только описание стандарта XSLT занимает около 200 страниц), но также, что наиболее важно, с высокой сложностью самих программных средств, поддерживающих в полной мере эти стандарты.

Еще один важный аспект использования новых стандартов - их переносимость на другие платформы. По результатам исследований, около 80% провайдеров всемирной паутины используют в качестве базовой платформу UNIX, где технология ASP.NET неприменима. Ко всему прочему, разработка сложных Интернет приложений само по себе затратное дело. Так, создать простое Интернет приложение на PHP можно значительно проще и быстрее, чем, скажем, на Java. В результате, большинство Интернет проектов до сих пор продолжают создаваться по классической схеме Apache+PHP+MySQL.

Предлагаемый новый подход быстрой разработки Интернет приложений на основе XML процессора ESOP решает главную проблему - отделения программного кода от содержания и представления, и, кроме того, позволяет сделать это просто и эффективно. В нашем случае программный код представляет собой расширяемый функциональный объект, или XSP сценарий, описываемый с помощью некоторого подмножества команд на языке XML. Динамическое содержание (контент) хранится в XML файлах или (инвариантно) в таблицах СУБД MySQL. Представление данных в виде сгенерированных HTML страниц в этом случае отводится традиционно конвертору XSLT, входящему в состав процессора ESOP. Необходимо отметить, что результаты запросов, получаемых из плоских таблиц MySQL, также представляются в виде XML структуры. Это позволяет применять один и тот же механизм преобразований XSLT и получать инвариантное представление как для данных, хранящихся в XML файлах, так и для результатов SQL запросов. Таким образом, все управление Интернет приложением интегрируется в отдельном функциональном XSP объекте независимо от типа используемых данных и их представления.

XML процессор ESOP был успешно апробирован в корпоративном проекте «Электронная библиотека» РГРТУ, а также в ряде других проектов рязанского региона. За счет использования XML процессора ESOP значительно сокращается время разработки Интернет проектов, снижается их трудоемкость.

Директор ЦНИТ РГРТУ
Гостин А.М.

Обновлено 17 Июня 2013 г.
Ответственный за размещение:
ЦНИТ РГРТУ