ЗАМЕТКИ

Язык описания бизнес-процессов BPEL

BPEL (Business Process Execution Language) – язык, который позволяет описывать бизнес-процесс в терминах некоторой последовательности обращения к Web-сервисам. BPEL является скриптовым языком программирования, поддерживающим синхронные и асинхронные взаимодействия, параллельное выполнение и обработку исключений. BPEL разработан на базе языка описания WSBPEL (OASIS Web Services Business Process Execution Language), ссылка

Основу BPEL составляют три ключевых свойства:

  1. Асинхронность. Поддержка асинхронности необходима для разрешения Web-сервисов в сценариях интеграции и является обязательной для оптимального использования рабочего времени (для лучшего распределения обработки она позволяет пользователям вмешиваться в течение бизнес-потока или задержкой пакетной обработки). За счет разделения запросов на обслуживание и соответствующих им откликов асинхронность повышает масштабируемость и помогает избежать узких мест при выполнении приложения. Кроме того, она допускает непрерывное выполнение, когда сервисы временно не доступны и когда клиенты работают в автономном режиме или отключены.

  2. Координация потоков. В реальных приложениях бизнес-потоки могут включать как образцы сложных взаимодействий как с асинхронными, так и с асинхронными сервисами. Координация потока включает интерфейс c WSDL, действия потока, переменные XML и отвечает за координацию. BPEL использует WSDL для обращения к сообщениям, вызванным операциями и типам портов. Действия с потоками используют общие переменные XML, так что компенсационные обработчики (compensation handlers) должны сохранять снимки данных, которые могут быть использованы обработчиком. Компенсационные обработчики могут отменить шаги, которые были уже завершены.

  3. Управление исключительными ситуациями. Для того чтобы автоматизировать бизнес-процессы, большие усилия сосредоточены на управлении исключительными ситуациями, и BPEL упрощает управление исключительными ситуациями для Web-сервисов.

При возникновении исключительных ситуаций вызываются локальные обработчики ошибки, связанные с Web-сервисами, и асинхронные сервисы уведомляют об исключительных ситуациях.

Подходы к объединению Web-сервисов и бизнес-процессы

Оркестровка (Orchestration) В Информационной системе имеется единственный BPEL-процессов (движок), которые выполняет функции интерпретатора BPEL-файлов. Для внешнего мира BPEL-процессор доступен как Web-сервис. Получив запрос, движок уже от своего имени рассылает SOAP-сообщения Web-сервисам, участие которых необходимо для реализации бизнес-процесса. Задействованные Web-сервисы «не знают», что они вовлечены в бизнес-процесс более высокого уровня. Только движок обладает полной информацией о выполняемой задаче, и поэтому оркестровка является централизованным механизмом с явным определением операций и порядком инициирования работы Web-сервисов (см. Рис. 1)

Рис. 1 Схема оркестровки

Хореография Каждому из Web-сервисов, участвующих в хореографии, известно, когда следует выполнить те или иные операции и с какими Web-сервисам необходимо взаимодействовать. Хореография представляет собой совместное действие, ориентированное на обмен сообщениями при реализации бизнес-процессов, в которых участвует несколько организаций. При этом все участники должны знать бизнес-процесс, выполняемые операции, сообщения, которыми они обмениваются, и синхронизировать эти обмены сообщениями (см. Рис. 2)

Рис. 2 Схема хореографии

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

BPEL поддерживает для различных способа описания бизнес-процессов, которые поддерживают оркестровку и хореографию:

  • Исполняемые процессы (Executable process), которые позволяют определять точную детализацию бизнес-процессов. Исполняемый процесс моделирует поведение участников определенного бизнес-взаимодействия, в сущности, моделируя частный поток работ. Исполняемые процессы находятся в парадигме оркестровки;

  • Абстрактные бизнес-протоколы (Abstract business protocols) определяют обмен публичными сообщениями между участниками. Они не включают внутренние детали потока процессов, не являются выполнимыми и находятся в парадигме хореографии.

Описание процессов в PBEL

BPEL-процесс состоит из активностей (activities): базовых (basic) и структурированных (structured).

Базовые активности не включают в себя другие активности и выполняют элементарные действия, как прием сообщения от партнера (Invoke, Receive, Reply) или выполнения элементарных действий с данными.

Активность типа Invoke предполагает одностороннее взаимодействие. Вызывающая сторона посылает сообщение и продолжает функционирование. Получение ответа не предусматривается.
Синхронное взаимодействие реализуется с помощью пары активностей. Сервис реализует активность типа Receive – находится в состоянии ожидания запроса. Получив запрос, сервер формирует ответ посредством реализации активности Reply. До получения ответа, вызывающая сторона находится в состоянии ожидания, т.е. в заблокированном состоянии.

Другие активности, ориентированные на присвоение значений переменным (Assign), остановка реализации сервиса (Terminate), отсутствие действий (Empty), поддержку на работу с событиями (Event Handler).

Структурированные активности включают в себя другие активности и обеспечивают реализацию бизнес-логики:

  • Задание последовательности выполнения действий ();

  • Цикл ();

  • Выбор одного из нескольких альтернативных маршрутов ();

  • Параллельное выполнение ();

  • Обработка ошибок ( и );

  • Объединение нескольких действий () и др.

При возникновении исключительных ситуаций вызываются локальные обработчики ошибок, связанные с Web-сервисами, и асинхронные сервисы получают соответствующие уведомления. Существуют специальные компенсационные обработчики (compensation handlers), сохраняющие снимки данных, которые могут быть использованы обработчиком. Компенсационные обработчики могут отменить шаги, которые были уже завершены.

Кроме обработки ошибок и тайм-аутов оркестровые Web-сервисы должны гарантировать доступность ресурсов при выполнении длительных распределенных транзакций.

Структура BPEL-документа

Разработка BPEL-процесса обычно включает в себя следующие этапы:

  • Определение Web-сервисов, участвующих в BPEL-процессе;

  • Разработка WDSL-описания BPEL-процесса;

  • Определение партнерских связей;

  • Декларирование переменных;

  • Разработка логики процесса.

Структура документа BPEL в общем виде:

<process name="NameProcess"...>
 <partnerLinks>
 <!-- определение партнерских связей -->
 </partnerLinks>
 <variables>
 <!-- определение переменных -->
 </variables>
 <sequence>
 <!-- определение основной части BPEL -->
 </sequence>
</process>