
- •Введение
- •1 Тема 1. Предметная область и терминология РСОС
- •1.1 Этапы развития распределенных систем
- •1.1.1 Классификация систем обработки данных
- •1.1.2 Распределенные вычислительные сети
- •1.1.3 Объектные распределенные системы
- •1.2 Становление систем с сервис-ориентированной архитектурой
- •1.2.1 Развитие web-технологий
- •1.2.2 Развитие концепции SOA
- •1.3 Современные парадигмы сервис-ориентированных архитектур
- •1.3.1 Эталонная модель SOA
- •1.3.2 Модель Захмана
- •1.3.3 Концепция среды открытой системы
- •1.3.4 Бизнес-парадигма модели SOA
- •1.4 Программная платформа Java Enterprise Edition
- •1.4.1 Контейнеры и компоненты Java EE
- •1.4.2 Служебные сервисы контейнеров
- •1.4.3 Артефакты контейнеров
- •1.4.4 Аннотации и дескрипторы развертывания
- •1.4.5 Управляемые компоненты платформы Java EE
- •1.5 Инструментальные средства реализации РСОС
- •1.5.1 Сервера приложений
- •1.5.2 Микросервисы
- •1.5.3 Apache Maven — сетевая сборка приложений
- •1.5.4 Eclipse Enterprise Edition
- •1.5.5 Тестовый пример
- •1.6 Заключение по первой главе
- •1.6.1 Итоги теоретических построений первой главы
- •1.6.2 Тематический план последующих глав
- •Вопросы для самопроверки
- •2 Тема 2. Использование компоненты JSF контейнера Web
- •2.1.1 Языки HTML, JavaScript и протокол HTTP
- •2.1.2 Серверные технологии PHP и HttpServlet
- •2.1.3 Технология AJAX и компонента JavaServer Faces
- •2.2 Шаблон проектирования MVC
- •2.2.1 Контроллер FacesServlet и жизненный цикл запроса
- •2.2.2 Контекст состояния запроса FacesContext
- •2.2.3 Модель в виде компонентов-подложек
- •2.2.4 Представление (View) средствами Facelets
- •2.2.5 JSF OmniFaces
- •2.3 Реализация тестового примера средствами JSF
- •2.3.1 Создание Facelets-шаблона изучаемой дисциплины
- •2.3.2 Прямая реализация тестового примера
- •2.4 Реализация уровня интерфейса сервисов
- •2.4.2 Компонента Users с ЖЦ @ApplicationScoped
- •2.4.3 Компонента RSOS с ЖЦ @SessionScoped
- •2.4.4 Компоненты-подложки с ЖЦ @RequestScoped
- •2.4.5 Приложение авторизации пользователя
- •2.4.6 Компонента подзаголовка проекта
- •2.4.7 Компонента меню лабораторных работ
- •2.4.8 Второй вариант меню лабораторных работ
- •Вопросы для самопроверки
- •3 Тема 3. Современные способы доступа к данным
- •3.1 Учебная инфраструктура темы
- •3.1.1 Учебная задача Letters (Письма)
- •3.1.2 Корпоратиные EJB-компоненты
- •3.1.3 Тестовый HttpServlet проекта lab4
- •3.1.4 Инфраструктура сервера TomEE и СУБД Derby
- •3.2 Технология JPA
- •3.2.1 Сущности
- •3.2.2 Объектно-реляционное отображение
- •3.2.3 Манеджер сущностей
- •3.2.4 Пример использования не-JTA-типа транзакций
- •3.3 Транзакции управляемые контейнером
- •3.3.1 Объектно-ориентированные запросы Criteria API
- •3.3.2 Реализация EJB-компонента с JTA-типом транзакций
- •3.3.3 Реализация JPA-сервлета
- •Вопросы для самопроверки
- •4 Тема 4. Обработка документов XML и JSON
- •4.1 Технология JAXB
- •4.1.1 Программное обеспечение технологии JAXB
- •4.1.2 Аннотации для связывания объектов Java
- •4.1.3 Преобразование объекта Java в документ XML
- •4.2 Технология JSON
- •4.2.1 Программное обеспечение технологии JSON
- •4.2.2 Преобразование объекта Java в документ JSON
- •4.2.3 Пример представления JSON на уровне классов
- •4.2.4 Выводы по результатам изучения главы 4
- •Вопросы для самопроверки
- •5 Тема 5. Web-службы SOAP
- •5.1.1 Протоколы и языки Web-служб
- •5.1.2 Краткое описание языка WSDL
- •5.1.3 Краткое описание протокола SOAP
- •5.1.4 Необязательный реестр Web-служб — UDDI
- •5.1.5 Программные пакеты Java EE, обслуживающие SOAP
- •5.2 Создание Web-служб SOAP
- •5.2.1 Подготовка проекта lab7
- •5.2.2 Аннотации поставщика Web-сервиса
- •5.2.3 Обработка исключений поставщика Web-сервиса
- •5.2.4 Обработка контекста Web-сервиса
- •5.3 Создание потребителя Web-службы SOAP
- •5.3.1 Аннотации для потребителей сервиса
- •5.3.2 Использование утилиты wsimport
- •5.3.3 Реализация тестового примера
- •5.3.4 Выводы по результатам изучения главы 5
- •Вопросы для самопроверки
- •6 Тема 6. Web-службы в стиле REST
- •6.1 Основные положения технологии RESTful
- •6.1.1 Ресурсы, URI, представления и адресуемость
- •6.1.2 Протокол HTTP
- •6.1.3 Языки WADL и HAL
- •6.1.4 Технология JAX-RS
- •6.2 Реализация Web-службы в стиле REST
- •6.2.1 Преобразование сущности Letter
- •6.2.2 Реализация EJB-компоненты Lets9
- •6.2.3 Получение списка записей в формате XML
- •6.2.4 Получение записи по номеру индентификатора
- •6.2.5 Добавление новой записи
- •6.3 Вызов Web-служб в стиле REST
- •6.3.1 Инструментальные средства потребителя сервиса
- •6.3.2 Полная реализация RESTfull-сервиса
- •6.3.3 Шаблон реализации потребителя сервиса
- •6.3.4 Клиент, реализующий методы GET и POST
- •6.3.6 Клиент, реализующий методы DELETE и PUT
- •Вопросы для самопроверки
- •Заключение
- •Список использованных источников
- •Алфавитный указатель
Алфавитный указатель |
|
А |
|
Адресуемость............................................................................................. |
237 |
В |
|
Всемирная путина........................................................................................ |
14 |
Вычислительная машина............................................................................... |
7 |
Вычислительные комплексы......................................................................... |
6 |
Вычислительные системы............................................................................. |
6 |
Д |
|
Дескриптор развертывания ресурсов....................................................... |
142 |
Динамические запросы.............................................................................. |
162 |
З |
|
Запросы к хранимым процедурам............................................................. |
163 |
И |
|
Именованные запросы............................................................................... |
162 |
Интерфейс сервиса...................................................................................... |
17 |
К |
|
Клиент-сервер................................................................................................ |
9 |
Коды состояния.......................................................................................... |
240 |
Контекст и Внедрение Зависимостей......................................................... |
42 |
М |
|
Механизмы обнаружения сервисов............................................................ |
17 |
Н |
|
Неявные объекты......................................................................................... |
96 |
О |
|
Объектные распределенные системы........................................................ |
10 |
П |
|
Поколение вычислительных машин.............................................................. |
7 |
Поставщик сервиса...................................................................................... |
13 |
Потребитель сервиса................................................................................... |
13 |
Представления........................................................................................... |
237 |
Программная платформа............................................................................ |
31 |
Р |
|
Распределенные высокопроизводительные системы............................... |
13 |
299
Распределенные вычислительные сети................................................... |
6, 9 |
Распределенные вычислительные системы................................................ |
5 |
Распределенные Операционные Системы................................................ |
10 |
Распределенные сервис-ориентированные системы.................... |
3, 4, 5, 13 |
Распределенные системы......................................................................... |
6, 7 |
Распределенный объект.............................................................................. |
11 |
РВ-сети........................................................................................................ |
6, 9 |
РВПС............................................................................................................. |
13 |
Ресурс.......................................................................................................... |
236 |
Родные запросы......................................................................................... |
163 |
РСОС..................................................................................................... |
3, 5, 13 |
С |
|
Сервис........................................................................................................... |
13 |
Сервисные компоненты............................................................................... |
17 |
Сессионный EJB-компонент...................................................................... |
130 |
Системы обработки данных.......................................................................... |
8 |
Согласование содержимого....................................................................... |
239 |
СОД................................................................................................................. |
8 |
Соединитель сервисов................................................................................. |
17 |
Сосредоточенные системы............................................................................ |
8 |
Т |
|
Технология REST........................................................................................ |
233 |
Типы содержимого...................................................................................... |
239 |
У |
|
Удаленный вызов процедур........................................................................... |
9 |
Управляемые компоненты........................................................................... |
43 |
Э |
|
ЭВМ................................................................................................................. |
5 |
A |
|
AOP............................................................................................................... |
17 |
B |
|
BPM............................................................................................................... |
16 |
C |
|
CDI................................................................................................................. |
42 |
Common Object Request Broker Architecture................................................ |
11 |
Context and Dependency Injection................................................................ |
42 |
Contract&Policy.............................................................................................. |
23 |
CORBA........................................................................................................... |
11 |
300
Criteria API................................................................................................... |
163 |
CRUD........................................................................................................... |
234 |
D |
|
DCE................................................................................................................ |
10 |
Distributed Computing Environment.............................................................. |
10 |
Distributed object............................................................................................ |
11 |
Distributed Operating Systems...................................................................... |
10 |
E |
|
EAI................................................................................................................. |
17 |
EJB................................................................................................................ |
31 |
EJB-компонента.......................................................................................... |
129 |
EntityManager.............................................................................................. |
153 |
Execution context........................................................................................... |
22 |
G |
|
GRID-вычисления......................................................................................... |
13 |
GRID-системы............................................................................................... |
13 |
I |
|
IDL................................................................................................................. |
12 |
Interaction...................................................................................................... |
22 |
Interface Definition Language........................................................................ |
12 |
J |
|
Java Community Process.............................................................................. |
38 |
Java Specification Request............................................................................ |
38 |
Java Virtual Machine...................................................................................... |
11 |
JAX-RS........................................................................................................ |
242 |
JCP................................................................................................................ |
38 |
JPE................................................................................................................ |
31 |
JSON............................................................................................................ |
188 |
JSR................................................................................................................ |
38 |
JVM................................................................................................................ |
11 |
M |
|
Midlleware...................................................................................................... |
11 |
O |
|
OASIS............................................................................................................ |
18 |
R |
|
Real world effect............................................................................................ |
22 |
Reference Architecture................................................................................... |
24 |
301
Reference Model............................................................................................ |
24 |
Remote Method Invocation............................................................................ |
11 |
Remote Procedure Call.................................................................................... |
9 |
RESTful........................................................................................................ |
234 |
RMI................................................................................................................. |
11 |
RPC................................................................................................................. |
9 |
S |
|
Service........................................................................................................... |
21 |
Service description......................................................................................... |
23 |
Service Oriented Architecture........................................................................ |
24 |
SOAP............................................................................................................. |
18 |
U |
|
UDDI.............................................................................................................. |
18 |
V |
|
Visibility.......................................................................................................... |
22 |
W |
|
Web-браузер................................................................................................. |
15 |
Web-сервер................................................................................................... |
14 |
Web-сервисы................................................................................................ |
17 |
World Wide Web............................................................................................ |
14 |
WSDL............................................................................................................. |
18 |
X |
|
XML-RPC....................................................................................................... |
18 |
302
Оглавление |
|
Введение........................................................................................................ |
3 |
1 Тема 1. Предметная область и терминология РСОС........................... |
5 |
1.1 Этапы развития распределенных систем........................................... |
7 |
1.1.1 Классификация систем обработки данных............................... |
8 |
1.1.2 Распределенные вычислительные сети.................................... |
9 |
1.1.3 Объектные распределенные системы..................................... |
10 |
1.2 Становление систем с сервис-ориентированной архитектурой..... |
12 |
1.2.1 Развитие web-технологий......................................................... |
14 |
1.2.2 Развитие концепции SOA......................................................... |
16 |
1.3 Современные парадигмы сервис-ориентированных архитектур.... |
19 |
1.3.1 Эталонная модель SOA............................................................ |
21 |
1.3.2 Модель Захмана........................................................................ |
26 |
1.3.3 Концепция среды открытой системы....................................... |
27 |
1.3.4 Бизнес-парадигма модели SOA............................................... |
29 |
1.4 Программная платформа Java Enterprise Edition............................. |
31 |
1.4.1 Контейнеры и компоненты Java EE......................................... |
32 |
1.4.2 Служебные сервисы контейнеров........................................... |
35 |
1.4.3 Артефакты контейнеров........................................................... |
36 |
1.4.4 Аннотации и дескрипторы развертывания.............................. |
38 |
1.4.5 Управляемые компоненты платформы Java EE..................... |
41 |
1.5 Инструментальные средства реализации РСОС............................. |
43 |
1.5.1 Сервера приложений................................................................ |
45 |
1.5.2 Микросервисы........................................................................... |
46 |
1.5.3 Apache Maven — сетевая сборка приложений........................ |
47 |
1.5.4 Eclipse Enterprise Edition........................................................... |
48 |
1.5.5 Тестовый пример....................................................................... |
49 |
1.6 Заключение по первой главе............................................................. |
53 |
1.6.1 Итоги теоретических построений первой главы..................... |
54 |
1.6.2 Тематический план последующих глав................................... |
55 |
Вопросы для самопроверки..................................................................... |
57 |
2 Тема 2. Использование компоненты JSF контейнера Web.............. |
58 |
2.1 Web-сервис представления бизнес-информации............................ |
59 |
2.1.1 Языки HTML, JavaScript и протокол HTTP............................... |
59 |
2.1.2 Серверные технологии PHP и HttpServlet............................... |
63 |
2.1.3 Технология AJAX и компонента JavaServer Faces................. |
66 |
2.2 Шаблон проектирования MVC........................................................... |
68 |
2.2.1 Контроллер FacesServlet и жизненный цикл запроса............ |
69 |
2.2.2 Контекст состояния запроса FacesContext.............................. |
71 |
2.2.3 Модель в виде компонентов-подложек................................... |
72 |
2.2.4 Представление (View) средствами Facelets............................ |
76 |
303
2.2.5 JSF OmniFaces.......................................................................... |
80 |
2.3 Реализация тестового примера средствами JSF............................. |
85 |
2.3.1 Создание Facelets-шаблона изучаемой дисциплины............. |
85 |
2.3.2 Прямая реализация тестового примера.................................. |
93 |
2.4 Реализация уровня интерфейса сервисов..................................... |
102 |
2.4.1 Жизненый цикл компонентов-подложек................................ |
104 |
2.4.2 Компонента Users с ЖЦ @ApplicationScoped....................... |
105 |
2.4.3 Компонента RSOS с ЖЦ @SessionScoped........................... |
106 |
2.4.4 Компоненты-подложки с ЖЦ @RequestScoped.................... |
109 |
2.4.5 Приложение авторизации пользователя............................... |
110 |
2.4.6 Компонента подзаголовка проекта......................................... |
114 |
2.4.7 Компонента меню лабораторных работ................................ |
117 |
2.4.8 Второй вариант меню лабораторных работ.......................... |
120 |
Вопросы для самопроверки................................................................... |
126 |
3 Тема 3. Современные способы доступа к данным......................... |
127 |
3.1 Учебная инфраструктура темы........................................................ |
128 |
3.1.1 Учебная задача Letters (Письма)........................................... |
128 |
3.1.2 Корпоратиные EJB-компоненты............................................. |
129 |
3.1.3 Тестовый HttpServlet проекта lab4......................................... |
136 |
3.1.4 Инфраструктура сервера TomEE и СУБД Derby................... |
142 |
3.2 Технология JPA................................................................................. |
147 |
3.2.1 Сущности................................................................................. |
147 |
3.2.2 Объектно-реляционное отображение.................................... |
149 |
3.2.3 Манеджер сущностей.............................................................. |
153 |
3.2.4 Пример использования не-JTA-типа транзакций.................. |
155 |
3.3 Транзакции управляемые контейнером.......................................... |
162 |
3.3.1 Объектно-ориентированные запросы Criteria API................ |
162 |
3.3.2 Реализация EJB-компонента с JTA-типом транзакций......... |
165 |
3.3.3 Реализация JPA-сервлета...................................................... |
167 |
Вопросы для самопроверки................................................................... |
174 |
4 Тема 4. Обработка документов XML и JSON..................................... |
175 |
4.1 Технология JAXB.............................................................................. |
176 |
4.1.1 Программное обеспечение технологии JAXB....................... |
176 |
4.1.2 Аннотации для связывания объектов Java........................... |
178 |
4.1.3 Преобразование объекта Java в документ XML................... |
181 |
4.2 Технология JSON.............................................................................. |
188 |
4.2.1 Программное обеспечение технологии JSON...................... |
189 |
4.2.2 Преобразование объекта Java в документ JSON................. |
191 |
4.2.3 Пример представления JSON на уровне классов................ |
194 |
4.2.4 Выводы по результатам изучения главы 4............................ |
200 |
Вопросы для самопроверки................................................................... |
201 |
304
5 Тема 5. Web-службы SOAP................................................................... |
202 |
5.1 Основные составляющие Web-служб SOAP.................................. |
203 |
5.1.1 Протоколы и языки Web-служб.............................................. |
203 |
5.1.2 Краткое описание языка WSDL.............................................. |
204 |
5.1.3 Краткое описание протокола SOAP....................................... |
206 |
5.1.4 Необязательный реестр Web-служб — UDDI....................... |
207 |
5.1.5 Программные пакеты Java EE, обслуживающие SOAP....... |
208 |
5.2 Создание Web-служб SOAP............................................................. |
210 |
5.2.1 Подготовка проекта lab7......................................................... |
210 |
5.2.2 Аннотации поставщика Web-сервиса.................................... |
214 |
5.2.3 Обработка исключений поставщика Web-сервиса............... |
217 |
5.2.4 Обработка контекста Web-сервиса........................................ |
219 |
5.3 Создание потребителя Web-службы SOAP.................................... |
221 |
5.3.1 Аннотации для потребителей сервиса.................................. |
222 |
5.3.2 Использование утилиты wsimport.......................................... |
224 |
5.3.3 Реализация тестового примера............................................. |
228 |
5.3.4 Выводы по результатам изучения главы 5............................ |
230 |
Вопросы для самопроверки................................................................... |
232 |
6 Тема 6. Web-службы в стиле REST..................................................... |
233 |
6.1 Основные положения технологии RESTful..................................... |
234 |
6.1.1 Ресурсы, URI, представления и адресуемость..................... |
236 |
6.1.2 Протокол HTTP........................................................................ |
238 |
6.1.3 Языки WADL и HAL................................................................. |
241 |
6.1.4 Технология JAX-RS................................................................. |
242 |
6.2 Реализация Web-службы в стиле REST......................................... |
249 |
6.2.1 Преобразование сущности Letter........................................... |
249 |
6.2.2 Реализация EJB-компоненты Lets9....................................... |
252 |
6.2.3 Получение списка записей в формате XML.......................... |
255 |
6.2.4 Получение записи по номеру индентификатора.................. |
258 |
6.2.5 Добавление новой записи...................................................... |
259 |
6.3 Вызов Web-служб в стиле REST..................................................... |
262 |
6.3.1 Инструментальные средства потребителя сервиса............. |
263 |
6.3.2 Полная реализация RESTfull-сервиса................................... |
267 |
6.3.3 Шаблон реализации потребителя сервиса........................... |
272 |
6.3.4 Клиент, реализующий методы GET и POST.......................... |
283 |
6.3.6 Клиент, реализующий методы DELETE и PUT...................... |
288 |
Вопросы для самопроверки................................................................... |
293 |
Заключение............................................................................................... |
294 |
Список использованных источников................................................... |
296 |
Алфавитный указатель........................................................................... |
299 |
305