Учебное пособие
Кафедра автоматизированных систем управления
Библиографическая запись:
Оглавление (содержание)
Введение...................................................................................................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
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
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