VII Международная конференция по электронным публикациям "EL-Pub2002"

23-27 сентября 2002 г., г. Новосибирск, Академгородок

ProXForms - модель интерактивного взаимодействия с Web-ресурсами

Долгалев Э.Е.
ММФ МГУ им. М.В.Ломоносова кафедра вычислительной математики,
Институт Механики МГУ им. М.В.Ломоносова, Москва

С момента возникновения в 60-е годы вплоть до 90-х сеть Интернет была "улицей с односторонним движением" – информация поступала к пользователю от сервера при наличии запроса. После создания гипермедийной службы World Wide Web, в начале 90-х годов, Интернет получил новый импульс в своем развитии. В стандарт гипертекстовой разметки HTML были включены диалоговые свойства – HTML-формы. Пользователь получил обратную связь с Web-сервером. Посредством форм стала возможна передача параметров внешним программам, что позволило создавать интерактивные информационно-вычислительные комплексы.

Последние годы в Интернет существенно возросла потребность в интерактивных системах. Все чаще перед разработчиками информационных ресурсов ставится задача не просто представить те или иные сведения, а построить систему, нацеленную на диалог с пользователем. Особенно это касается владельцев больших и, как правило, распределенных информационных ресурсов. Для крупных предприятий, корпораций и ведомств решение этой проблемы – залог успешной деятельности. Технологии интерактивного взаимодействия не только улучшают работу пользователей, но и активно стимулируют участие в деятельности по созданию и развитию ресурсов значительно большего числа сотрудников, не имеющих прямого отношения к администрированию.

С подобными проблемами сталкиваются, например, в Московском государственном университете им. М.В. Ломоносова, олицетворяющем собой производителя и владельца крупного распределенного информационного ресурса. Сегодня Web-система МГУ представляет информацию, размещенную более чем на 250 сайтах отдельных структурных подразделений МГУ, связанных гипертекстовыми ссылками. Web-система объединяет разнородные данные: базы данных и знаний по отдельным направлениям исследований, HTML- и XML-ресурсы, аудио-видео материалы. И если раньше стояла задача только качественного информационного наполнения, то сегодня требования изменились. Повышение качества информационной поддержки всех сфер деятельности университета, в первую очередь, организации учебного процесса, научных исследований, административно-управленческой и инженерно-хозяйственной деятельности требует создания единой интегрированной системы распределенных информационных ресурсов на основе внедрения современных информационных технологий. Необходимо оперативно обновлять содержание сайтов, развивать информационную Web-систему, включать в ее состав интерактивные программы, обеспечивающие эффективную работу пользователя с одним из самых крупных научно-информационных сетевых ресурсов страны [1].

Одной из актуальных для коллектива, участвующего в разработке распределенной интерактивной информационной системы в МГУ [1], стала задача создания механизмов, моделей и инструментальных средств, позволяющих отдельным пользователям “большой системы” и малым группам (“группам по интересам”) собирать свои сайты, публиковать данные и оперативно их обновлять.

Сегодня в работу по информационному наполнению Web-ресурсов активно включается профессора, преподаватели, научные сотрудники университета. Одни публикуют свои учебные планы, научные результаты, лекции, другие используют Интернет для дополнительного заочного обучения или обсуждения научных проблем со студентами и своими коллегами. С учетом используемых для этого традиционных программных средств это непростая задача. Современные механизмы призваны сократить время конечных пользователей сети на создание и поддержку интерактивных систем. Кроме того, перед МГУ стоит задача объединить все информационные ресурсы в единую интегрирующую систему [1], где обновление данных через стандартный Web-интерфейс должно стать одной из важных задач. Результаты, представленные в настоящей публикации получены в ходе исследований на этом направлении.

Язык описания форм – ProXForms

С учетом изложенного, актуальным стал поиск подходов к разработке механизмов, основанных на традиционных технологиях, простых в реализации для пользователя, но покрывающих значительную часть современных потребностей интерактивного взаимодействия с Web-приложениями. В работах [5,6] был предложен подход на основе языка описания форм – ProXForms, который позволяет, посредством общедоступных технологий, упростить проектирование интерактивных систем, в частности, модулей редактирования данных. Изложению этого подхода, описанию архитектуры программного комплекса на базе нового языка описания форм и обсуждению его места в системах интерактивного редактирования web-ресурсов посвящен настоящий доклад.

Задача разработать систему редактирования Web-документов появилась одновременно с началом работ Консорциума W3C над проектом спецификации форм нового поколения XForms. Новые формы должны заменить традиционные и позволить создавать и поддерживать информационные системы с более гибкой и независимой от аппаратно-программной платформы обработкой пользовательских запросов. В XHTML (Extensible HyperText Markup Language – расширяемый язык гипертекстовой разметки), новой версии языка гипертекстовой разметки HTML, XForms будет отвечать за взаимодействие с пользователями и передачу информации на Web-сайт. В момент начала работ спецификация была еще достаточно “сырая” и часто менялась. К сожалению, и сегодня результаты работы далеки от завершения. В этих условиях было решено вести разработку нового языка описания форм самостоятельно, периодически сверяя результаты с ходом работ по проекту XForms.

Способы решения некоторых задач с помощью ProXForms отличаются от предлагаемых в спецификации XForms. Причиной тому ограниченные возможности традиционных базовых технологий. Вместе с тем, предлагаемые в настоящей работе решения позволяют значительно упростить разработку Web-модулей в интерактивных системах, предназначенных для редактирования данных. Разработчику Web-сайта не надо заботиться о том, как принимать и обрабатывать запросы пользователя, делать проверку корректности введенных данных и отсылать ответ пользователю – все это за него реализует ProXForms. Разработчику необходимо лишь предоставить интерпретатору языка описание формы и обработать результат – отредактированные пользователем данные.

Принципы, заложенные в ProXForms. В ProXForms воплощена основная идея XForms – отделение описания пользовательского интерфейса от данных (структуры и содержания). ProXForms-документ разбивается на три раздела: описание данных, внешний вид и начальные значения.

ProXForms также поддерживает возможность разбиения формы на несколько экранов. Только в XForms за навигацией по страницам следит клиент, в ProXForms – сервер. После получения запроса клиента сервер анализирует запрос, и если необходимо заполнение следующей страницы, посылает ее клиенту.

В ProXForms нет событий, связанных с перемещениями пользователя по форме, все события – это результат работы пользователя с данными, например, добавлено или изменено значение какого-либо поля.

Одна из главных особенностей ProXForms– это возможность смещать вычислительную нагрузку либо в сторону клиента, либо в сторону сервера. В ProXForms вся обработка введенных данных может происходить на сервере. В этом случае единственное требование к клиентскому приложению – поддержка стандартных HTML-форм.

При конфигурации программы существует возможность отключать использование Web-браузером расширений HTML (JavaScript, VBScript и т. п.). Создание такой настройки было осознанным шагом. Встроенные в браузер Java-машины остаются достаточно ресурсоемкими и зачастую довольно нестабильными системами. Ошибки в системе безопасности Java-машин позволяют использовать Java-апплеты для несанкционированного доступа к конфиденциальной информации или для проведения атак, снижающих производительность вычислительных комплексов пользователей. Хотя многие ошибки были исправлены, постоянно находятся новые. JavaScript, VBScript и т. п. также имеют недостатки в системе безопасности. В отличие от Java, бреши в котором грозят изменением данных на диске пользователя, ошибки реализаций в скриптовых языках обычно угрожают конфиденциальной информации пользователя. Кроме проблем безопасности необходимо учитывать, что не все Web-браузеры поддерживают скриптовые языки и Java-апплеты. Обязательное использование этих технологий в программном комплексе на основе ProXForms привело бы к сокращению числа его пользователей или создало бы им неудобства, связанные с переходом от привычных Web-браузеров к Web-браузерам, поддерживающим необходимые расширения HTML.

Типы данных. Технология XML активно используется в ProXForms. Описание формы и результат работы пользователя с формой представляются в формате XML. ProXForms поддерживает простые и сложные типы данных. Простой тип данных – тип “String”, сложные типы – это массивы и структуры простых или сложных типов. На первый взгляд, простых типов слишком мало, но это не так. С помощью регулярных выражений список простых типов можно существенно расширить, например, ввести тип, соответствующий электронному адресу или целым числам.

Одним из основных требований при разработке современных приложений является возможность хранения правил, делающих данные более активными и позволяющих приложению автоматически выполнять проверки корректности данных и автоматизировать многие бизнес-процедуры. В ProXForms существуют две категории активных данных – ограничения целостности и триггеры. Ограничениями являются декларативные утверждения, истинность которых контролируется системой. Триггеры – это автоматические действия, которые срабатывают каждый раз при возникновении определенного события или условия.

Активные данные в программе реализованы с помощью механизма подключения внешних процедур. Через предоставляемый интерфейс внешние процедуры могут получать и изменять данные в процессе работы сервера с формой. Использование такого механизма позволяет осуществлять более гибкую настройку процесса обработки запросов, полученных от клиента, поскольку появляется возможность организовать связь с внешними источниками данных, например, базой данных.

Управляющие элементы. В ProXForms доступные элементы управления ограничены возможностями HTML. В этом языке описания форм не предусмотрена закачка файлов на Web-сервер и возможность описания кнопок (кнопки добавляются автоматически). Полный список элементов пользовательского интерфейса и их эквивалентов в HTML приведен в таблице 1.

ProXFormsЭквивалент в HTMLОписание
<textbox>
<input type="text">
<textarea>
Для небольшого текста
Для большого текста
<combobox> <select> Для выбора одного варианта из нескольких
<radiobox > <input type="radio" > Для выбора одного варианта из нескольких
<selectMultiple > <select multiple > Для выбора нескольких вариантов
<checkbox > <input type="radio" > Для выбора одного/неск. значений из предложенных вариантов
<password > <input type="password" > Для ввода секретной информации
<link > <button > Кнопка
Таблица 1. Элементы управления в XForms и ProXForms и их эквиваленты в HTML.

Начальные данные. В ProXForms начальные данные определяются xml-документом, DTD (Document Type Definition) которого меняется в зависимости от описания данных. Второй способ выгодно отличается от первого наглядностью и простотой, в то время как способ, предложенный в спецификации XForms, превращает задачу представления начальных данных в программирование циклических алгоритмов, что усложняет автоматическую генерацию документов XForms.

Редактирование XML-данных. Отделение в ProXForms пользовательского интерфейса от данных и запись инструкций языка описания форм в XML-формате дают возможность использовать ProXForms при редактировании XML-данных. Для этого необходимо уметь преобразовывать XML-данные в ProXForms и обратно. На рисунке 1 изображена возможная схема редактирования XML-данных с помощью ProXForms.

Рисунок 1. Схема редактирования XML-документов с помощью ProXForms.

Каждому DTD XML-документов ставится в соответствие три документа: два (“ProXForms-шаблон” и “XSLT-шаблон”) – для преобразования исходного XML- в ProXForms-документ, и один (“XSLT-шаблон-1”) – для обратного отображения из ProXForms- в XML-документ. “ProXForms-шаблон” содержит информацию о типах и внешнем представлении данных будущего ProXForms-документа. “XSLT-шаблон” необходим для трансформации исходного XML-документа в раздел начальных значений формируемого ProXForms-документа. После работы пользователя с HTML-формами результат редактирования представляется в виде XML-документа, DTD которого соответствует DTD раздела описания начальных данных. Для преобразования результата к XML-документу с исходным DTD используется третий документ – “XSLT-шаблон-1”.

Для работы XML-редактора при добавлении в базу данных XML-документа с новым DTD требуется добавление соответствующих трех перечисленных выше документов.

Интерпретатор языка ProXForms. Интерпретатор реализует механизмы обработки и выполнения инструкций ProXForms и на их основе организует и координирует взаимодействие пользователя с сервером в процессе редактирования данных с помощью Web-браузера. В ходе разбора инструкций языка ProXForms создаются статические и динамические объекты для клиентской и серверной части приложения.

Динамические объекты – это структуры и объекты в памяти сервера для хранения текущего состояния работы пользователя с документом. Для каждого пользователя на сервере заводится сессия, с которой связываются все динамические объекты. Продолжительность их “жизни” совпадает с продолжительностью “жизни” сессии. По завершении редактирования сессия и все объекты, связанные с ней, уничтожаются.

Статические объекты – это временные файлы для быстрой компоновки html-форм. В них содержится общая информация для ProXForms-документов, отличающихся лишь начальными значениями. Статические данные могут быть использованы разными сессиями и удаляются после завершения работы Web-сервера.

Затем управление передается Web-менеджеру, управляющему взаимодействием клиента и сервера во время работы пользователя. Web-менеджер отвечает за навигацию по страницам (если форма многостраничная), проверку введенных данных и формирование ответа на запрос пользователя и результата редактирования ProXForms-документа.

После редактирования документа Web-менеджер опрашивает объекты, отвечающие за поля формы, и создает результирующий XML-документ.

Используемые технологии. Для снижения вычислительной нагрузки на Web-сервер вместо традиционно применяемых технологий CGI и SSI была использована платформа Java 2 Enterprise Edition. Язык Java 2 полностью поддерживает технологию Java. Он был использован для написания всех модулей интерпретатора языка ProXForms. Благодаря его применению удалось абстрагироваться от проблем, сопровождающих низкоуровневое программирование, и сосредоточить основное внимание на эффективном проектировании, архитектуре, механизмах работы сервера, методах обработки запросов пользователя и других элементах системы.

К положительным аспектам использования технологии Java сервлетов в данном случае относится тот факт, что сервлет загружается в память сервера только один раз, в то время как программа CGI, например, должна загружаться в ответ на каждый новый запрос. Поддержка создания мультизадачных программ позволила создать надежную и оперативно реагирующую на клиентские запросы сетевую систему.

Технологии JSP (Java Server Pages) с возможностями поддержки технологий Java Beans позволили разделить процессы статического и динамического наполнения документов. Структура документа описывается с помощью JSP, а данные подставляются каждый раз, когда это необходимо, используя технологию Java Beans. Благодаря этому, шаблоны для будущих HTML-форм создаются на сервере лишь однажды, когда программа получает первый запрос на редактирование данного типа документа ProXForms. При этом возможность расширения библиотеки тегов позволяют уменьшить объем автоматически создаваемых JSP-файлов.

Активные данные (триггеры и ограничения) в ProXForms реализованы с помощью CORBA (Common Object Requst Broker Architecture). Использование технологии CORBA для подключения внешних источников данных позволяет существенно уменьшить время решения задач, требующих выполнения большого объема вычислений. Это возможно благодаря размещению CORBA-объектов на разных машинах. Каждый удаленный объект решает определенную подзадачу, тем самым, разгружая Web-сервер от выполнения лишней работы. Технология CORBA позволяет взаимодействовать распределенным приложениям независимо от местоположения и языка разработки.

Программа разбора XML-документов была создана на основе DOM-парсера (Document Object Model). Все содержимое документа в DOM-парсерах представляется в виде объектов, объединенных в древовидную структуру. У каждого из этих объектов определены стандартные методы и свойства, с помощью которых и осуществляется работа с данными.

В качестве Java-сервера для работы с технологиями JSP и Java сервлетами был выбран Tomcat, поскольку он может быть использован как дополнительный модуль для распространенного и отказоустойчивого HTTP-сервера Apache.

Аналогичные работы на этом направлении. Разработкой форм нового поколения, а также решением проблем, связанных с переходом от существующих к предлагаемым Консорциумом W3C формам, занимаются несколько исследовательских лабораторий. Например, сотрудниками Хельсинского технологического университета (лаборатория “Телекоммуникационных и мультимедийных программных разработок”) создан новый некоммерческий XML-браузер X-Smiles, поддерживающий несколько спецификаций W3C, в том числе XForms. Браузер разработан на основе Java-технологий, с использованием сервера Tomcat [8].

Также существует несколько коммерческих продуктов, реализующих спецификацию XForms. К примеру, компания Cardiff предлагает пакет программ LiquidOffice для создания, развертывания и работы с электронными формами [9]. Компания Mozquito предлагает систему XML WebAccess, позволяющую стандартным Web-браузерам работать c документами XForms [10]. Для работы с новыми формами компании предлагают как собственные клиентские приложения, так и модули, встраиваемые в популярные Web-браузеры. Часть проектов также реализована посредством Java-технологий с использованием Java-сервера Tomcat [3].

ProXForms как инструмент интеграции приложений

В настоящее время в МГУ им. М.В. Ломоносова изучаются подходы к созданию системы, которая позволяет интегрировать информационные ресурсы различного назначения и степени структурированности, ведется разработка отдельных ее компонент [1].

Обсуждаются различные взгляды на архитектуру и способы реализации интегрирующего ядра системы. В качестве одного из центральных элементов большой корпоративной системы предлагается использовать корпоративный портал, который служит интерфейсом для взаимодействия основной части пользователей с информационной системой. Для эффективной реализации сценария интеграции, основанного на построении портала, необходимо наличие специального инструментария, предназначенного для управления содержанием этого портала и реализующего средства изменения и актуализации информационных ресурсов. Язык описания форм ProXForms упрощает разработку модуля редактирования данных и может эффективно использоваться при построении корпоративного портала.

Для систем, объединяющих информационные ресурсы различных программно-аппаратных платформ, стандартом обращения данных все чаще выбирается XML. В таких системах приходится использовать стандартные инструменты или разрабатывать свои для отображения и редактирования данных в формате XML. Язык ProXForms предлагает механизм редактирования полуструктурированных данных с “тонким” клиентом – обычный Web-браузер с поддержкой стандартных HTML-форм – и мощным сервером контроля и обработки запросов пользователя. Используя стандартные средства преобразования XML документов, становится возможным естественное отображение XML-данных в ProXForms и обратно, что упрощает использование и внедрение ProXForms в интегрирующую систему.

Заключение

XForms решает не только сегодняшние проблемы, но и трудности, с которыми столкнутся разработчики в ближайшем будущем. Рабочая группа W3C старается предугадать тенденции развития информационных технологий, поскольку новый стандарт должен идти в ногу со временем и эффективно использоваться как можно дольше.

В силу объективных причин, в первую очередь, ограничений, обусловленных использованием традиционных технологий, ProxForms функционально уступает XForms. Однако это обстоятельство не умаляет тех преимуществ, которые уже сегодня дает пользователю применение ProXForms. Отделение данных от представления, возможности описания сложных типов данных и подключения внешних процедур при обработке запросов делают ProxForms действенным инструментом для быстрого и эффективного проектирования модулей редактирования данных Web-серверов. XML-технологии, используемые в ProXForms, позволяют редактировать произвольные данные, представленные в XML-формате. При минимальных требованиях к Web-браузеру и солидном инструментарии по обработке данных на стороне сервера ProXForms сможет в будущем сосуществовать и достойно конкурировать с XForms.

Литература

[1] Васенин В.А., Афонин С.А., Коршунов А.А., ”К созданию концепции интегрированной системы распределенных информационных ресурсов Московского государственного университета им. М.В. Ломоносова”, Москва, Изд-во МГУ, 2001 С. 113.

[2] Том Салливан,”HTML-формы ждут обновления”, Журн. Computerworld, 2000 № 27.

[3] Word Wide Web Consortium (W3C), "XForms - The Next Generation of Web Forms", http://www.w3.org/MarkUp/Forms.

[4] Micah Dubinko, ”What Are XForms?”, http://www.xml.com/pub/a/2001/09/05/xforms.html

[5] Долгалев Э.Е., “Расширение возможностей редактирования Web-документов в Интернет и локальных сетях”. Материалы VI научной конференции молодых ученых и специалистов, г. Дубна, 2002.

[6] Долгалев Э.Е. “Язык описания форм ProXForms как инструмент в задаче интеграции информационных ресурсов”. Материалы IX Международной научно-методической конференции “Новые информационные технологии в университетском образовании”, г. Кемерово, 2002.

[7] Word Wide Web Consortium (W3C), “XML Path Language (XPath) Version 1.0”, http://www.w3.org/TR/xpath.

[8] X-Smiles – XML browser from Helsinki University of Technology., http://www.x-smiles.org

[9] LiquidOffice – пакет программ для работы с электронными формами компании Cardiff, http:// www.Cardiff.com

[10] XML WebAccess – пакет программ для работы с электронными формами компании Mozquito, http:// www.Cardiff.com



|Электронная библиотека| |Математические публикации| |Информационные ресурсы|
Ваши комментарии
Обратная связь
[SBRAS]
[Головная страница]
[Конференции]
[СО РАН]

© 2002, Сибирское отделение Российской академии наук, Новосибирск
© 2002, Объединенный институт информатики СО РАН, Новосибирск