Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Распределенные сервис-ориентированные системы..pdf
Скачиваний:
16
Добавлен:
05.02.2023
Размер:
9.2 Mб
Скачать

Классический протокол HTTP предоставляет клиенту и серверу восемь методов взаимодействия: GET, POST, OPTIONS, HEAD, PUT, PATCH, DELETE, TRACE и CONNECT. С прикладной точки зрения наиболее популярными являются методы GET и POST, на которые и ориентируются сервис-ориентиро- ванные системы, использующие только браузеры.

2.1.2 Серверные технологии PHP и HttpServlet

Современная парадигма РСОС — серверные технологии.

Студенту настоятельно рекомендуется повторить главу 4 «Web-технологии распределенных систем» учебной дисциплины [1].

Современная парадигма распределенных систем ориентирована на трехзвенные архитектуры «Клиент-сервер», что показано на рисунке 2.6.

Рисунок 2.6 — Трехзвенная архитектура «Клиент-сервер» [1]

Для технологий PHP и HttpServlеt, эта трехзвенная архитектура интерпретируется рисунком 2.7.

 

Web-сервер

Запрос PHP-страницы

Интерпретатор

 

Ответ HTML/XHTML

PHP

Браузер

Бизнес-

модель

Запрос сервлета

HttpServlet

Ответ HTML/XHTML

Рисунок 2.7 — Интерпретация трехзвенной архитектуры

63

Трехзвенная архитектура «Клиент-сервер» освобождает приложение клиента от необходимости детального программирования запросов с помощью языка JavaScript. Это не только повышает безопастность использования web-техно- логий, но также упрощает HTML/XHTML-ответ принимаемый браузером.

Практическое использование компоненты HttpServlet имеет явное преимущество над PHP-интерпретатором, которое выражается двумя пунктами:

а) PHP-интерпретатор проводит синтаксический анализ запрашиваемой PHP-страницы при каждом запросе браузера;

б) HttpServlet является исполняемым классом языка Java, поэтому он уже прошел синтаксический контроль и кэшируется Web-конейнером сервера приложений.

Технология сервлетов реализует шаблон проектирования MVC.

Технология сервлетов, фактически напрямую, реализует шаблон проектирования «Model-View-Controller» (MVC), что наглядно показано на рисунке 2.8. Более подробно (см. [1, глава 4, пункт 4.3.5, «Модель MVC»]).

Рисунок 2.8 — Трехзвенная архитектура, реализуемая моделью MVC [1]

Для наглядности, покажем трехзвенную архитектуру и шаблон MVC, релизованный ранее, в пункте 1.5.5 для тестового примера проекта test.

Сам контроллер реализован сервлетом TestTomee (см. листинг 1.1), функциональность которого обспечивается стандартными методами doGet(...) и doPost(...). Модель шаблона реализована внутри сервлета в виде приватного разделяемого ресурса (строковый объект msgs), как это показано ниже.

64

Представление (View) выполняет JSP-страница test.jsp, ранее приведенная на листинге 1.2 и содержащая показанные ниже JSP-конструкции.

Если теперь запустить тестовый пример подобно тому, как это показано на рисунке 1.19, то полученная браузером страница будет иметь вид, показанный на рисунке 2.9.

Рисунок 2.9 — HTML-страница тестового примера, полученная браузером

К общим недостаткам технологий PHP и HttpServlet следует отнести: а) полная замена HTTP-страницы при каждом обращении к серверу;

б) полностью «ручная» реализация контроллера MVC.

65

2.1.3 Технология AJAX и компонента JavaServer Faces

Общая проблема классической концепции web-технологий — необходимость синхронного способа взаимодействия браузера и Web-сервера, предполагающего загрузку новой страницы при каждом HTTP-запросе браузера.

В 2005 году, Джесси Джеймс Гаррет предложил, а разработчики браузеров реализовали новую технологию AJAX.

AJAX (Asynchronous Javascript and XML) — асинхронный JavaScript и XML, предполагающий наличие в браузере специальной библиотеки (обработчика), доступной с HTML-страницы на языке JavaScript и обеспечивающей асинхронное взаимодействие с Web-сервером.

На рисунке 2.10 показано различие способов классического взаимодействия браузера с Web-сервером и с помощью технологии AJAX.

Рисунок 2.10 — Классический- и AJAX-способы взаимодействия браузера и Web-сервера

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

66

Программная платформа Java EE выбирает технологию JSF.

В марте 2004 года, компания Sun Microsystems выпустила первую версию спецификации JSF 1.0. В октябре 2009 года, спецификация JSF была полностью пересмотрена с учетом опыта разработки и представлена как JSF 2.0. Последняя спецификация JSF 2.3 была выпущена в конце марта 2017 года. Она и является предметом нашего изучения.

Цель проекта JSF — устранение недостатков, присущих технологии JSPстраниц согласно уникальной архитектуре показанной на рисунке 2.11.

Рисунок 2.11 — Общая архитектура технологии JSF [17]

JSF является компонентой Web-контейнера платформы Java EE, где центральное место занимает специальный сервлет Faces (FacesServlet), который опционально может настраиваться собственным дескриптором развертывания в виде файла faces-config.xml.

JSF обрабатывает все HTTP-запросы браузера, включая запросы технологии AJAX, что делает ее современной конкурентной технологией.

Компонента JSF реализует шаблон проектирования MVC, где контроллер реализуется самим сервлетом, представления — менеджером Facelets, а модель — компонентами-подложками.

67