Корпоративная сервисная шина ESB (Enterprise Service Bus) — программное обеспечение промежуточного слоя, используемое для передачи данных между приложениями, поддерживающее Web-службы на основе протокола SOAP, языка WSDL, спецификации UDDI, а также такие сервисы, как обработка и проверка сообщений, маршрутизация, балансирование нагрузки и др. Некоторые сервисы встроены в основание шины, другие — исполняются в модулях расширения.
В общем случае ESB решает следующие задачи:
Web-служба может быть вызвана любым из следующих способов:
1. Напрямую и синхронно;
2. Синхронно через брокера;
3. Асинхронно через брокера.
Enterprise Service Bus является брокером, поддерживающим вызов службы в синхронном и асинхронном режимах. Она разрешает также передачу данных и уведомлений о событиях между приложениями. Она помогает потребителям найти провайдеров и управляет деталями взаимодействия между ними.
Синхронная ESB является шлюзом служб, которая выступает как центральный координатор множества служб. Асинхронная ESB является шиной сообщений, чьи службы поддерживают также способности Web-служб к самоописанию и обнаруживаемости.
Для совместного использования Web-сервисов при реализации различных бизнес-процессов необходима их интеграция. Ключом для решения проблемы интеграции является наличие языка, ориентированного на описание транзакций, имеющих место при выполнении бизнес-процессов. Таким языком стал Business Process Execution Language (BPEL или BPEL4WS) — язык описания бизнес-процессов, выполняемых с помощью Web-сервисов, т.е. язык описания, во-первых, динамики событий, во-вторых, протоколов взаимодействия приложений. BPEL можно рассматривать как описание последовательности вызовов веб-сервисов. Поэтому наряду с традиционными элементами, позаимствованными из моделей потоков работ (workflow), в BPEL имеются асинхронные вызовы веб-сервисов, "длинные" транзакции и связанные с ними механизмы обработки ошибок.
Первый вариант BPEL был представлен в марте 2003 г. и утвержден в качестве стандарта организацией OASIS (Organization for the Advancement of Structured Information Standards, организация по продвижению стандартов в области структурированной информации).
На промышленных предприятиях BPEL используется для интеграции приложений (интеграции систем, ранее изолированных).
BPEL — это язык со свойствами декларативного и процедурного программированя. В частности, в языке определены такие операции, как организация циклов, ветвление, параллельное выполнение, ожидание, генерация ответа и др. В основе BPEL лежит XML. Программа на BPEL интерпретируется во время исполнения, при этом выявляются ключевые слова и выполняется соответствующая обработка.
Описание бизнес-процессов, состоящих из обращений к Web-сервисам, возможно на разных языках программирования. Однако именно BPEL является проблемно-ориентированным языком, разрешающим следующие проблемы интеграции [1]:
Процесс, определенный в BPEL, содержит секцию деклараций, определяющую используемые Web-сервисы, и секцию действий, включенных в элемент <process>. К числу действий относятся <invoke> (вызвать), <receive> (получить), <reply> (ответить), <wait> (ждать), <terminate> (завершить), <assign> (назначить), <while> (цикл), <case> (выбор), <flow> (параллельное выполнение) и др.
Рассмотрим пример модели определения одного из двух возможных банков для получения займа[1].
Первое действие <receive>- запрос Web-сервиса для оценки заявки на заем. Следующее действие <assign> — приведение данных о клиенте к формату, совместимому с сервисом каждого банка. Сервисы обоих банков вызываются параллельно (действие <flow>, содержащее действия <invoke>). Оценки от каждого банка возвращаются (<receive>) бизнес-процессу получения займа, где сравниваются для выбора наилучшей ставки (действия <case> и <switch>, аналогичные конструкции if-then-else в языках программирования). Значение наилучшей ставки присваивается переменной для возврата (действие <assign>). Результат посылается источнику вызова (действие <invoke>).
Примером реализации технологии интеграции бизнес-процессов на основе BPEL является система Oracle BPEL Process Manager.
Список литературы
1. http://www.citforum.ru/internet/webservice/weav_web/