Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ajax_v_deystvii.pdf
Скачиваний:
34
Добавлен:
05.03.2016
Размер:
5.83 Mб
Скачать

Глава 5. Роль сервера в работе Ajax-приложения 231

JDOM используется не только для разбора XML-данных, содержащихся в запросе, но и для генерации ответа. Корневой узел О и дочерние узлы создаются в методе processXML(). Для доступа к модели предметной области на стороне сервера используется метод f indPlanet () ©; ему передается идентификатор объекта. Реализация метода f indPlanet () здесь не рассматривается; заметим лишь, что в нем реализуется обмен с базой данных традиционными способами О. Для обновления модели предметной области © применяется механизм отражения.

Так в общих чертах выглядит архитектура, основанная на использовании очереди и используемая для объединения частных действий по обновлению модели предметной области в одну HTTP-транзакцию. Она позволяет не только синхронизировать модели на стороне клиента и на стороне сервера, но и эффективно управлять трафиком. Как было сказано в разделе 5.3, такое решение может быть использовано совместно с JSF и другими подобными средствами, когда структура пользовательского интерфейса и модель взаимодействия существенно зависят от сервера. В данном случае мы лишь реализовали эффективный способ обновления модели предметной области на разных уровнях.

На этом мы заканчиваем разговор о средствах обеспечения взаимодействия клиента и сервера и обзор основных элементов, определяющих структуру Aj ах-приложений. По сути, мы заложили основы языка запросов к серверу в рамках Ajax-приложения и получили представление о возможностях, доступных для его реализации.

5.6. Резюме

Мы начали данную главу с рассмотрения основных функций сервера в составе Ajax-приложения, а именно с доставки клиентского кода браузеру и предоставления клиенту данных в процессе работы. Рассматривая эти вопросы, мы учли наиболее популярные языки и инструменты, используемые для создания серверных программ. Они ориентированы на классические Web-приложения, и мы выяснили, насколько они подходят для Ajax. Инструменты, предназначенные для создания серверных программ, очень быстро изменяются, поэтому, вместо того, чтобы обсуждать конкретные продукты, мы разделили их на категории в зависимости от используемой архитектуры. В результате было выделено три основных направления: архитектура Model2, средства на основе компонентов и архитектура, ориентированная на использование служб. На сегодняшний день есть основания считать, что лучше всего для Ajax подходит SOA, однако попытки адаптировать другие архитектуры также могут Увенчаться успехом.

232 Часть II. Основные подходы к разработке приложений

Далее мы выделили три основных подхода к решению задачи доставки данных от сервера клиенту: ориентированный на содержимое, ориентированный на сценарий и ориентированный на данные. Если классическое Webприложение больше всего соответствует архитектуре, ориентированной на содержимое, то приложение Ajax больше укладывается в схему, ориентированную на данные. Взаимодействие, ориентированное на сценарии, занимает промежуточную позицию. Обсуждая архитектуру, ориентированную на данные, мы выяснили, что XML — не единственно возможный формат представления данных. В некоторых случаях при доставке информации клиенту может успешно применяться формат JSON.

И наконец, мы описали способы передачи данных на сервер, используя для этой цели HTML-формы и объект XMLHttpRequest. Мы также обсуждали возможности управления передачей данных путем создания на стороне клиента очереди объектов Command. Данный подход обеспечивает существенное повышение производительности, снижая как нагрузку на сервер, так и сетевой трафик. Переходя к взаимодействию, ориентированному на данные, мы отказываемся от действий, основанных на удаленном вызове процедур, и переходим к работе с документом.

Этой главой мы завершаем разговор о базовых технологиях Ajax. Мы обсудили все основные вопросы и даже затронули более сложные темы. В последующих трех главах мы вернемся к проблеме применимости программ и выясним, чем же отличаются поделки, пусть даже талантливые, от настоящих продуктов, в которых нуждаются пользователи.

5.7. Ресурсы

В данной главе были упомянуты некоторые инструменты разработки. Ниже приведены их URL.

Struts (http://struts.apache.org).

Tapestry (http://jakarta.apache.org/tapestry/).

JSF (http://java.sun.com/j2ee/javaserverfaces/faq.html). PHP-MVC (http://www.phpmvc.net).

По данным исследований (http://wicket.sourceforge.net/Introduc tion.html), в настоящее время только для Java существует более 60 наборов базовых средств.

JSF — это категория инструментов, в которую входят различные продукты. Кито Манн (Kito Mann), автор книги JavaServer Faces in Action (Manning, 2004), поддерживает Web-портал, посвященный JSF (http://www.jsfcentral.com/). Материалы, подготовленные Грегом Мюрреем (Greg Murray) и его коллегами в ходе обсуждения тем Ajax и JSF, доступны по адресу https://bpcatalog.dev.java.net/nonav/ajax/jsf-ajax/ frames.html. AjaxFaces представляет собой реализацию JSF для Ajax (http://www.ajaxfaces.com); этот продукт распространяется на коммерческой основе. Готовится модификация Apache Open Source MyFaces (http://myfaces.apache.org/sandbox/inputSuggestAjax.html) в соответствии с требованиями Ajax.

Глава 5. Роль сервера в работе Ajax-приложения 233

На момент написания данной книги Microsoft Atlas находился в процессе пазработки, но первые реализации скоро должны быть доступны. Менеджер проекта Atlas, Скотт Гатри (Scott Guthrie), публикует материалы, имеющие отношение к Ajax (http://weblogs.asp.net/scottgu/archive/2005/06/28/ 416185.aspx).

Библиотеки JSON-RPC, ориентированные на различные языки программирования, находятся по адресу http://www.json-rpc.org/impl.xhtml.

Часть III

Создание

профессиональных Ajax-приАожений

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

Инфор,

по,

Вэтой главе...

Основные характеристики практичного кода

Принципы работы системы оповещения

Набор базовых средств для оповещения

Выделение измененных данных

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]