Сайты ТУСУРа

Распределенные сервис-ориентированные системы

Учебное пособие

Учебное пособие предназначено для обучения дисциплине «Распределенные сервис-ориентированные системы» для студентов направления подготовки магистранта: 09.04.01 «Информатика и вычислительная техника», направленность (профиль) программы - «Программное обеспечение вычислительных машин, систем и компьютерных сетей».

Кафедра автоматизированных систем управления

Библиографическая запись:

Резник, В. Г. Распределенные сервис-ориентированные системы: Учебное пособие [Электронный ресурс] / В. Г. Резник. — Томск: ТУСУР, 2020. — 305 с. — Режим доступа: https://edu.tusur.ru/publications/9404
Автор:   Резник В. Г.
Год издания: 2020
Количество страниц: 305
Скачиваний: 147

Оглавление (содержание)

Введение...................................................................................................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