Ордена ленина институт прикладной математики им. М. В. Келдыша Российской Академии Наук

Вид материалаДокументы

Содержание


1.Режимы клиент-серверного взаимодействия и их особенности
2.Обоснование выбора схемы взаимодействия компонент
3.Предлагаемые решения для организации взаимодействия DHTML-компонент
3.1.Модель программной структуры клиентского приложения
3.2.Представление состояния приложения и управление изменениями
4.Пример практического использования механизмов синхронизации
Список литературы
Подобный материал:
  1   2   3   4   5   6



ОРДЕНА ЛЕНИНА

ИНСТИТУТ ПРИКЛАДНОЙ МАТЕМАТИКИ

им. М.В.Келдыша

Российской Академии Наук


Е.Л.Китаев, Д.Л.Кузьмичев, М.И.Слепенков


Особенности реализации насыщенных пользовательских

интерфейсов Веб-приложений


Москва, 2006

Настоящая работа поддержана Российским фондом

фундаментальных исследований,

грант № 05-01-00456


Аннотация


В работе рассматриваются особенности реализации Веб-приложений с насыщенным интерфейсом (приложений Web 2.0), где активно применяются средства многооконной визуальной компоновки документов на стороне клиента. Отмечаются трудности при создании функциональных связей между DHTML-компонентами, расположенными в разных окнах клиентского приложения, вызванные асинхронным режимом клиент-серверного обмена в среде Интернет. Представлена идея адаптации схемы взаимодействия компонент из архитектуры MVC Smalltalk и описаны программные механизмы для простого и удобного внедрения этой схемы в задачах Веб-разработки. Демонстрируется применение предложенных решений в реальной системе онлайновой биржевой торговли.


Some aspects of rich user interface implementation in Web-applications


Abstract


The paper discusses some aspects of rich user interface implementation in next-generation Web-applications (Web 2.0 applications), which actively use multi-window and multi-document design for building representation on the client-side. We describe difficulties involved into maintaining behavioral relationships between DHTML-components located in different windows of client application, determined by asynchronous mode of client-server communications in the Internet. An idea to adapt the MVC Smalltalk-based architectural pattern for component interaction is evaluated and it is refined into the description of programming tools for simple and convenient implementation of this pattern in Web projects. In conclusion we demonstrate viability of the proposed solutions by considering an example of real online market exchange system.


Содержание


Введение 3

1. Режимы клиент-серверного взаимодействия и их особенности 5

2. Обоснование выбора схемы взаимодействия компонент 14

3. Предлагаемые решения для организации взаимодействия DHTML-компонент 17

4. Пример практического использования механизмов синхронизации 26

Заключение 31

Список литературы 31




Введение



Несмотря на многочисленные трудности, связанные с реализацией программных систем в среде всемирной паутины World Wide Web,создание решений на платформе Веб вот уже более десяти лет образует наиболее перспективное и динамично развивающееся направление современной индустрии разработки приложений. Целые классы приложений, которые ранее распространялись или могли бы распространяться в виде «настольного» (desktop) программного обеспечения, предназначенного для установки на компьютерах пользователей - такие, как системы интерактивного общения (конференции, чаты), онлайновой торговли и резервирования (электронные магазины, аукционы, биржевые площадки, заказ билетов и номеров в отелях), библиотечные каталоги, интерактивные географические атласы, игры, автоматизированные рабочие места (администраторов, контент-менеджеров, корпоративных пользователей) - перемещаются в среду Веб и, в конечном итоге, этот процесс «вебификации» (weblication) программного обеспечения проходит очень успешно.

В настоящее время отмечается рост ожиданий относительно перспектив дальнейшего развития отрасли Веб-приложений и, даже, предсказывается очередной бум вебификации в набирающей популярность концепции «Веб нового поколения» (Web 2.0) [1]. Одной из главных, отличительных черт приложений Web 2.0 становится поддержка полноценного, насыщенного (rich) пользовательского интерфейса, который должен наконец-то приблизиться к традиционным «настольным» интерфейсам по своим функциональным возможностям, интерактивности, удобству и эффективности использования.

Приложения подобные Gmail [6], Google Maps [7], Flickr [8] оставили в прошлом привычную для разработчиков модель «тонкого» клиента, и заставили в полной мере работать стек технологий DHTML (" onclick="return false">
Однако, положение дел в этой области быстро меняется. Активное обсуждение и исследование проблем применения стандартных клиентских Веб-технологий при создании приложений с насыщенным интерфейсом позволяет выделить такие методы и способы их использования, овладение которыми не требует знания всех тонкостей DHTML-программирования, и которые – при условии адекватного инструментального обеспечения – можно сделать легко доступными для тиражирования. Такой подход, направленный на построение технологической надстройки над конструкциями DHTML, который сегодня принято обозначать термином AJAX (введенным в [2]), в настоящее время уже вышел из стадии «лабораторных исследований» и подкрепляется достаточно солидным списком AJAX-инструментов (см., например, [9] [10]), доступных для применения в реальных задачах Веб-разработки.

Одним из «соблазнов», от которого обязательно следует удержаться создателям технологического инструментария Web 2.0, - это стремление упростить задачу и свести ее к простому (элементарному) клонированию в среде Веб средств разработки пользовательского интерфейса «настольных» приложений. К сожалению, опасения в этом плане не беспочвенны. Так, во многих примерах AJAX-приложений можно увидеть традиционную для «настольных» интерфейсов жесткую привязку расположения и размеров элементов интерфейса к координатной системе окна (т.н. пиксельный дизайн), в результате чего получаются несвойственные Веб визуальные формы, которые не масштабируются под размер окна. Еще можно обратить внимание на часто встречающиеся примеры игнорирования «концептуально неудобной» для использования оконной модели Веб-клиента, заменяемой собственной реализацией диалоговых окон, которые однако оказывается невозможно «вытащить» за рамки родительского окна.

Тематика настоящей работы построена вокруг одной из «аксиом», существующей в Веб-программировании - обеспечение дружелюбности (usability) пользовательского интерфейса приложения, с учетом того, что все взаимодействия между клиентом и Веб-сервером должны производиться в асинхронном режиме. Это в одинаковой мере относится как к выполнению передачи данных, так и к перемещению необходимых для работы клиентской части приложения программного кода и элементов визуального интерфейса. К сожалению, эта «аксиома» часто нарушается в существующих AJAX-приложения, когда в процессе их работы подозрительно часто появляются окна с сообщением: «Подождите, идет загрузка нужных компонент/данных», а сам интерфейс как бы зависает. Такая техника фактически воспроизводит поведение «чужеродных» для Веб Java-апплетов, которые полностью блокировали страницы, в которые они встраивались, и в значительной мере поэтому, так и не прижились в Веб-интерфейсах.

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