АКИС (10) - Лекция №13 - SOA
Сервис-ориентированная архитектура
Service-oriented architecture (SOA) - это не технология, а концепция:
- нельзя купить, как, например, здоровый образ жизни;
- распространяется на весь жизненный цикл системы.
Причины появления SOA:
- высокая динамика предметной области;
- максимально низкая возможная стоимость.
Направлена на максимально возможное повторное использование ресурсов, оставаясь при этом платформонезависимым.
Три кита SOA:
- сервисы, как компоненты информационной системы, публикуют свои интерфейсы (контракты);
- каждый сервис, входящий в ИС, реализует отдельную бизнес функцию, которая является логически обособленной, многократно повторяющейся задачей;
- низкая связанность - можно интегрировать всё со всеми, даже от разных производителей.
SOA реализует повторяющиеся бизнес функции, необходимые для организации согласованной работы сложных, состоящих из большого количества компонентов приложений.
Наличие бизнес функциональности, реализованной в виде сервисов, обостряет проблему полноты покрытия сервисами всех бизнес функций.
Реализация нового функционала предполагает обязательное его оформления в соответствии со стандартами, предъявляемыми к сервису.
Реализация всего функционала в виде сервисов обеспечивает максимальную повторную используемость только в случае удачного распределения бизнес функций по сервисам.
Состав SOA

ESB (корпоративная шина предприятия) используется для передачи сообщений между компонентами используется. Она является центральным звеном - центром звезды. К ней предъявляются повышенные требования по производительности и надёжности.
ESB можно рассматривать как отдельное программное обеспечение, которое гарантирует отправку/приём сообщений между всеми компонентами SOA.

Сервис-брокер - объединяет сервисы в единый контекст. Это динамический конструктор, собирающий сервисы в единую последовательность, и это описание передаётся на вход Workflow Engine. Пример:
Последовательность действий в примере:
- пользователь входит в систему и делает заказ;
- брокер запрашивает из регистра информацию для запуска службы обработки заказа;
- брокер проверяет, запущены ли нужные службы (все четыре);
- на основании полученной из регистра информации брокер проверяет интерфейсы между компонентами;
- брокер посылает сервисам сигнал, что они должны связаться с Workflow Engine для выполнения этого бизнес процесса.
SOA-регистр (реестр) - каталог, в котором хранится информация о каждом компоненте (сервисе) а также об интерфейсе.
Workflow Engine - специализированный программный продукт, обеспечивающий объединение всех операций в единый бизнес процесс. Выполнение процесса описано на языке BPEL
. Обработка данных и выполнение функционала в пределах одного процесса на разных операциях могут выполняться на разных приложениях.
SOA супервизор - самый главный служебный сервис, работает всё время. Координирует работу всех остальных компонентов. Проверяет корректность их функционирования. Контролирует взаимодействие с внешними системами.