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 значительно сокращается время разработки Интернет проектов, снижается их трудоемкость.
Директор ЦНИТ РГРТУ
Гостин А.М.