Интеграция приложений оркестровка и хореография
В настоящее время аббревиатура BPEL воплощает в себе три понятия:
1) язык представления исполняемых бизнес-процессов;
2) стандарт интеграции приложений (сервисов);
3) средство интеграции приложений.
BPEL – это язык реализации бизнес-процессов, который былсоздан в целях облегчения процедуры интеграции корпоративныхприложений. Его предшественниками и источниками идей являютсяязыки, разрабатываемые компаниями Microsoft (язык XLANG) и IBM(язык WSFL) для решения задач системной интеграции. BPEL – этоспециализированный интеграционный диалект XML, имеющий всепреимущества XML: простоту синтаксиса и кроссплатформенность.
Описание бизнес-процесса на BPEL – это XML-код, в которомвзаимодействующие в рамках одного бизнес-процесса сервисы представлены в виде партнеров, обменивающихся сообщениями. Синтаксисом BPEL поддерживаются очень важные для построения реальноработающих бизнес-процессов механизмы: транзакции, асинхронныевызовы, обработка ошибок. Предусмотрена вложенность бизнес-процессов: несколько бизнес-процессов могут выступать «строительнымиблоками» для общего бизнес-процесса.
BPEL – это не только язык, но и стандарт, развитием которогозанимаетсякомитетOASISBPELTechnicalCommittee. Наиболее активными участниками этого комитета являются BEA Systems, IBM, Microsoft, Oracle, SAP, SunMicrosystems.
ИспользованиюBPEL предшествует создание набора сервисов – приложений и (или) бизнес-компонент, оформленных в видевеб-сервисов. Эти сервисы могут создаваться специально для вновьсоздаваемой ИС, но могут и принадлежать к категории legacy, т.е. быть наследуемыми от ранее существовавших систем автоматизации.
Дополненный сервисной шиной предприятия (ESB) указанный набор сервисов превращается в систему способных к взаимодействиюэлементов, т. е. ESB – это уже средство интеграции различных, в томчисле и гетерогенных, разноплатформенных приложений. Для того, чтобы интегрированная совокупность сервисов «заработала», необходим механизм управления взаимодействием. Этот механизм реализуется с помощью BPEL.
Интеграция систем автоматизации в рамках общих бизнес-процессов – это основная сфера применения BPEL. В настоящее времяBPEL является лучшим интеграционным решением не только длявеб-сервисов, ноидляJava, JCA (J2EEConnectorarchitectureprovides) иJMS (JavaMessageService). BPEL проявил себя как эффективное средство сокращения затрат на реализацию корпоративныхинтеграционных проектов, уменьшения их сложности и повышениягибкости.
Даже готовые проектные решения, такие как SAP, имеющиев своем составе собственные встроенные инструменты для интеграции бизнес-процессов, в ближайшем будущем будут поддерживатьи BPEL. Чтобы обеспечить совместимость текущих инсталляцийс BPEL, производители популярных типовых проектных решенийрекомендуют использовать продукты третьих фирм, экспонирующиефункции используемого приложения в виде веб-сервисов.
В настоящее время сформировалось мнение, что применение концепции BPM (использование средств BPMS и интеграция приложений с помощью BPEL) экономически оправдано, если автоматизации подвергаются так называемые сквозные процессы, т. е. процессымасштаба предприятия (enterprise process). Сквозной процесс (end-to-end process) – это бизнес-процесс, замкнутый по входу и выходуна внешнего клиента (потребителя, заказчика) и проходящий более, чем через одно подразделение верхнего уровня.
Сквозной процесс практически всегда представляет собой совокупность нескольких асинхронно протекающих процессов, которыеможно наглядно отобразить средствами BPMN. При этом отдельныепроцессы представляют собой последовательности действий, локализованных рамками одного пула. Параллельно асинхронно протекающие процессы обмениваются сообщениями. Эти сообщенияопределяют (изменяют) порядок выполняемых действий конкретного процесса. В исполняемом процессе каждое действие типа «Задание» – это вызов соответствующего сервиса.
В современной системной архитектуре (SOA) каждое действиетипа «Задание» представляет собой вызов соответствующего сервиса, а исполняемый процесс – это последовательность вызовов сервисов.
При этом последовательность и логика выполнения заданий в рамках одного процесса называютсяоркестровкой (process orchestration). Логика асинхронного, координируемого при помощи сообщенийвыполнения нескольких процессов называетсяхореографией (process choreography).
Хореографию можно рассматривать как определение последовательности условий, при выполнении которых несколько относительно независимых бизнес-процессов обмениваются сообщениямив целях решения некоторой общей бизнес-задачи. Цель хореографиизаключается в обеспечении многостороннего взаимодействия длядостижения общей цели. Цепочку условий, вызывающих передачусообщений, а значит и хореографию, можно рассматривать как некоторый абстрактный процесс, результатом которого является решение конкретной задачи.
Сквозной процесс чаще всего представляется хореографией, а не оркестровкой. Исключением являются бизнес-процессы оченьмалых предприятий, которые, будучи локализованными рамкамиодного пула (одного места исполнения или одного исполнителя), замыкаются по входу и по выходу на внешнего клиента. Таким образом, если процесс прост, то он представляется оркестровкой. Если жепроцесс состоит из нескольких асинхронных информационно взаимодействующих процессов, то он представляется хореографией.
На рис. 24.1 показаны места оркестровки и хореографии в моделибизнес-процесса.
Хореография описывается с помощью языка WSCI (Web ServiceChoreography Interface), развиваемого с 2002 г. рабочей группой WebServicesChoreographyWorkingGroupконсорциумаW3C, деятельностькоторой поддерживается такими IT-гигантами, как BEA Systems, Intalio, SAP, SunMicrosystems. СпомощьюWSCI описывается потоксообщений от веб-служб, участвующих во взаимодействии (в хореографии) с другими службами. Описание выражает условия временныхи логических зависимостей между веб-сервисами, обменивающихсясообщениями, показывая последовательность правил корреляцииобработку исключений и транзакций.
Рис. 24.1. Оркестровка и хореография бизнес-процесса