Process-centric Services

Intermediary Services (Промежуточные сервисы)

Эти сервисы могут быть охарактеризованы как stateless сервисы, которые необходимы для интеграции различных технологических платформ и различий в архитектуре. Несмотря на то, что многие промежуточные сервисы могут показаться чисто техническими, они носят ярко-выраженную ориентированность на бизнес логику и являются довольно специфичными для конкретного проекта.

 

Выделяют следующие виды промежуточных сервисов.

 

Technology Gateways

Их основная задача состыковывать различные технологии. Они функционируют как посредники и предоставляют услуги сервиса в необходимой технологической среде. Примером такого сервиса-шлюза может быть обёртка над протоколом терминала, когда необходимо представить унаследованное терминальное приложение в виде сервиса. Подобный сервис будет эмулировать нажатие кнопок на терминале и оборачивать результат вывода на экран в виде сообщений XML.

 

Adapters

Адаптеры отображают сигнатуры и форматы сообщений одного сервиса на сигнатуры и форматы сообщений другого. Иными словами, адаптеры функционируют как простые трансляторы.

 

Facades

Задачей фасадов является предоставление альтернативного интерфейса (возможно агрегированного) нижележащих сервисов. Тем самым фасыды часто работают в роли адаптеров и сервисов-шлюзов (gateways).

 

Functionality-Added Services

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

 

Такие сервисы инкапулируют знания о бизнес процессах организации. Они могут контролировать состояние бизнес процесса, т.е. являются stateful. С технической точки зрения такой тип сервисов является наиболее сложным в реализации. Этот тип сервисов привносит, помимо сложности и дополнительных расходов, в архитектуру следующие положительные моменты:

  • Инкапсуляция сложностей бизнес процесса. С помощью таких сервисов можно полностью переложить управление бизнес процессов с application frontend’ов на них, тем самым разгрузив интерфейсную часть системы (например GUI).
  • Позволяют проводить балансировку нагрузки.
  • Позволяют строить многоканальные приложения (multi-channel applications). Например можно построить приложение, в котором контролировать ход выполнения одного и того же экземпляра бизнес процесса можно как через Web UI, так и через Rich Client GUI.