Язык выполнения бизнес-процессов веб-служб ( WS-BPEL ), широко известный как BPEL (язык выполнения бизнес-процессов ), является стандартным исполняемым языком OASIS [1] для определения действий в бизнес-процессах с помощью веб-сервисов . Процессы в BPEL экспортируют и импортируют информацию исключительно с использованием интерфейсов веб-сервисов.
Язык выполнения бизнес-процессов веб-служб | |
Статус | Опубликовано |
---|---|
Год начался | 2001 г. |
Впервые опубликовано | Апрель 2003 г . |
Последняя версия | 2.0 11 апреля 2007 г . |
Организация | ОАЗИС |
Комитет | OASIS Web Services Business Process Execution Language (WSBPEL) TC |
Базовые стандарты | XML |
Домен | Интеграция веб-сервисов |
Сокращение | WS-BPEL или BPEL |
Веб-сайт | документы |
Обзор
Взаимодействие с Web-сервисами можно описать двумя способами: как исполняемые бизнес-процессы и как абстрактные бизнес-процессы.
- Исполняемым бизнес - процессов : модели фактическое поведение участника бизнес - взаимодействия.
- Абстрактный бизнес - процесс : представляет собой частично указанный процесс , который не предназначен для выполнения. В отличие от исполняемых процессов, абстрактный процесс может скрывать некоторые требуемые конкретные операционные детали. Абстрактные процессы выполняют описательную роль с более чем одним возможным вариантом использования , включая наблюдаемое поведение и / или шаблон процесса .
WS-BPEL нацелен на моделирование поведения процессов [2] с помощью языка для спецификации как исполняемых, так и абстрактных бизнес-процессов. Тем самым он расширяет модель взаимодействия веб-служб и позволяет поддерживать бизнес-транзакции. Он также определяет совместимую интеграционную модель, которая должна способствовать расширению автоматизированной интеграции процессов как внутри, так и между предприятиями. Его развитие возникло из представления [3], что программирование в большом и программирование в малом требует разных типов языков.
Таким образом, он сериализован в XML и предназначен для программирования в целом.
Программирование в большом / малом
Концепции программирования в большом и программирования в малом различают два аспекта написания типа длительно выполняющихся асинхронных процессов, которые обычно встречаются в бизнес-процессах:
- Программирование в целом обычно относится к высокоуровневым взаимодействиям процесса при переходе между состояниями. BPEL называет эту концепцию абстрактным процессом. Абстрактный процесс BPEL представляет собой набор общедоступных моделей поведения в стандартизированной форме. Абстрактный процесс включает в себя такую информацию, как когда ждать сообщений , когда отправлять сообщения, когда компенсировать неудачные транзакции и т. Д.
- Напротив, программирование в малых масштабах имеет дело с кратковременным программным поведением, часто выполняемым как единая транзакция и предполагающим доступ к локальной логике и ресурсам, таким как файлы , базы данных и т. Д.
История
Истоки WS-BPEL восходят к языку потока веб-служб (WSFL) и Xlang .
В 2001 году IBM и Microsoft определили свои собственные довольно похожие «языки программирования на больших »: WSFL [4] ( язык потока веб-сервисов ) и Xlang , [5] соответственно. Microsoft даже пошла дальше и создала вариант сценария под названием XLANG / s, который позже будет служить основой для их служб оркестровки внутри их BizTalk Server. Они специально задокументировали, что этот язык «является проприетарным и не документирован полностью». [6]
С появлением и популярностью BPML , а также с растущим успехом BPMI.org и движения за открытую BPMS, возглавляемого JBoss и Intalio Inc., IBM и Microsoft решили объединить эти языки в новый язык, BPEL4WS. В апреле 2003 года BEA Systems , IBM, Microsoft, SAP и Siebel Systems представили BPEL4WS 1.1 в OASIS для стандартизации через Технический комитет Web Services BPEL. [7] Хотя BPEL4WS появился как в версии 1.0, так и в версии 1.1, 14 сентября 2004 года технический комитет OASIS WS-BPEL проголосовал [8] за название своей спецификации « WS-BPEL 2.0». (Это изменение в названии привело BPEL в соответствие с другими стандартными соглашениями об именах веб-служб, которые начинаются с «WS-» (аналогично WS-Security), и учтены значительные улучшения, сделанные между BPEL4WS 1.1 и WS-BPEL 2.0.) Если не обсуждать В конкретной версии обычно используется прозвище BPEL [ необходима ссылка ] .
В июне 2007 года Active Endpoints, Adobe Systems , BEA, IBM, Oracle и SAP опубликовали спецификации BPEL4People и WS-HumanTask, в которых описывается, как можно реализовать взаимодействие человека в процессах BPEL.
Темы
Цели дизайна
С BPEL было связано десять первоначальных целей проектирования:
- Определите бизнес-процессы, которые взаимодействуют с внешними объектами посредством операций веб-служб, определенных с помощью WSDL 1.1, и которые проявляют себя как веб-службы, определенные с помощью WSDL 1.1. Взаимодействия являются «абстрактными» в том смысле, что зависимость зависит от определений portType, а не от определений портов.
- Определяйте бизнес-процессы, используя язык на основе XML. Не определяйте графическое представление процессов или не предоставляйте какую-либо конкретную методологию проектирования для процессов.
- Определите набор концепций оркестровки веб-служб, которые предназначены для использования как во внешнем (абстрактном), так и во внутреннем (исполняемом) представлениях бизнес-процесса. Такой бизнес-процесс определяет поведение отдельного автономного объекта, обычно работающего во взаимодействии с другими аналогичными одноранговыми объектами. Признано, что каждый шаблон использования (т. Е. Абстрактное представление и исполняемое представление) потребует нескольких специализированных расширений, но эти расширения должны быть сведены к минимуму и проверены на соответствие таким требованиям, как импорт / экспорт и проверка соответствия, которые связывают два использования. узоры.
- Обеспечьте как иерархические, так и графические режимы управления, и позвольте их использованию максимально плавно совмещать. Это должно уменьшить фрагментацию пространства моделирования процессов.
- Предоставьте функции манипулирования данными для простого манипулирования данными, необходимыми для определения данных процесса и потока управления.
- Поддержка механизма идентификации для экземпляров процессов, позволяющего определять идентификаторы экземпляров на уровне сообщений приложения. Идентификаторы экземпляров должны определяться партнерами и могут изменяться.
- Поддержка неявного создания и завершения экземпляров процесса в качестве основного механизма жизненного цикла. Расширенные операции жизненного цикла, такие как «приостановка» и «возобновление», могут быть добавлены в будущих выпусках для расширенного управления жизненным циклом.
- Определите модель длительной транзакции, основанную на проверенных методах, таких как компенсационные действия и определение объема, для поддержки восстановления после сбоев для частей длительных бизнес-процессов.
- Используйте веб-службы в качестве модели для декомпозиции и сборки процессов.
- Постройте как можно больше стандартов веб-сервисов (утвержденных и предложенных), используя модульный принцип компоновки.
Язык BPEL
BPEL - это язык оркестровки , а не язык хореографии . Основное различие между оркестровкой и хореографией - исполнимость и контроль. Оркестровка определяет исполняемый процесс, который включает обмен сообщениями с другими системами, так что последовательности обмена сообщениями контролируются разработчиком оркестровки. Хореография определяет протокол для одноранговых взаимодействий, определяя, например, юридические последовательности сообщений, которыми обмениваются, с целью гарантировать совместимость. Такой протокол не является исполняемым напрямую, поскольку он допускает множество различных реализаций (процессов, которые ему соответствуют). Хореография может быть реализована путем написания оркестровки (например, в форме процесса BPEL) для каждого участника, участвующего в ней. Различия в оркестровке и хореографии основаны на аналогиях: оркестровка относится к центральному контролю (дирижером) поведения распределенной системы (оркестр, состоящий из многих игроков), в то время как хореография относится к распределенной системе (танцевальная команда). который действует по правилам (хореография), но без централизованного управления.
Сосредоточение внимания BPEL на современных бизнес-процессах, а также истории WSFL и XLANG привело к тому, что BPEL выбрал веб-сервисы в качестве своего внешнего коммуникационного механизма. Таким образом, средства обмена сообщениями BPEL зависят от использования языка описания веб-служб (WSDL) 1.1 для описания исходящих и входящих сообщений.
Помимо предоставления возможностей для отправки и получения сообщений, язык программирования BPEL также поддерживает:
- Механизм корреляции сообщений на основе свойств
- Типизированные переменные XML и WSDL
- Модель расширяемого языкового модуля, позволяющая писать выражения и запросы на нескольких языках: по умолчанию BPEL поддерживает XPath 1.0.
- Структуры структурированного программирования, включая if-then-elseif-else, while, последовательность (для включения выполнения команд по порядку) и поток (для обеспечения параллельного выполнения команд)
- Система определения объема, позволяющая инкапсулировать логику с локальными переменными , обработчиками сбоев, обработчиками компенсации и обработчиками событий.
- Сериализованные области для управления одновременным доступом к переменным .
Связь BPEL с BPMN
Для WS-BPEL не существует стандартной графической записи, поскольку технический комитет OASIS решил, что это выходит за рамки. Некоторые производители изобрели свои собственные обозначения. Эти нотации используют тот факт, что большинство конструкций в BPEL имеют блочную структуру (например, последовательность, while, pick, scope и т. Д.). Эта функция обеспечивает прямое визуальное представление описаний процессов BPEL в форме структурограмм в стиле напоминает диаграмму Насси – Шнейдермана .
Другие предложили использовать существенно другой язык моделирования бизнес-процессов, а именно модель и нотацию бизнес-процессов (BPMN), в качестве графического интерфейса для сбора описаний процессов BPEL. В качестве иллюстрации осуществимости этого подхода спецификация BPMN включает неформальное и частичное отображение [9] из BPMN в BPEL 1.1. Более подробное сопоставление BPMN с BPEL было реализовано в ряде инструментов, включая инструмент с открытым исходным кодом, известный как BPMN2BPEL. [10] Однако разработка этих инструментов выявила фундаментальные различия между BPMN и BPEL, которые делают очень трудным, а в некоторых случаях невозможным создание удобочитаемого кода BPEL из моделей BPMN. Еще более сложной является проблема BPMN-к-BPEL туда-обратно инженерии : генерации BPEL код из диаграмм BPMN и поддержания исходной модели BPMN и сгенерированный BPEL код синхронизированный, в том смысле , что любое изменение одного распространяющейся к другому. [ необходима цитата ]
Добавление поддержки "программирование в малом" в BPEL
Управляющие структуры BPEL, такие как if-then-elseif-else и while, а также его средства управления переменными зависят от использования «программирования на малых» языках для обеспечения логики. Все реализации BPEL должны поддерживать XPath 1.0 в качестве языка по умолчанию. Но дизайн BPEL предусматривает возможность расширения, чтобы разработчики систем могли использовать и другие языки. BPELJ [11] - это попытка, связанная с JSR 207 [12], которая может позволить Java функционировать как «программирование на малом» языке внутри BPEL.
BPEL4Люди
Несмотря на широкое распространение Web-сервисов в распределенных бизнес-приложениях, отсутствие человеческого взаимодействия было значительным пробелом для многих реальных бизнес-процессов.
Чтобы восполнить этот пробел, BPEL4People расширил BPEL от оркестровки только веб-сервисов до оркестровки человеческой деятельности на основе ролей.
Цели
В контексте бизнес-процесса BPEL4People
- поддерживает ролевое взаимодействие людей
- предоставляет средства для назначения пользователям общих человеческих ролей
- заботится о том, чтобы передать право собственности на задачу только человеку
- поддерживает сценарий как
- четырехглазый сценарий
- номинация
- эскалация
- прикованная казнь
путем расширения BPEL дополнительным независимым синтаксисом и семантикой.
Спецификация WS-HumanTask вводит определение человеческих задач и уведомлений, включая их свойства, поведение и набор операций, используемых для управления человеческими задачами. Протокол координации вводится для того, чтобы управлять автономностью и жизненным циклом человеческих задач с поддержкой сервисов во взаимодействии.
Спецификация BPEL4People представляет расширение WS-BPEL для решения проблем взаимодействия людей в WS-BPEL как первоклассного гражданина . Он определяет новый тип базовой деятельности, в которой в качестве реализации используются неавтоматизированные задачи, и позволяет определять задачи, локальные для процесса, или использовать задачи, определенные вне определения процесса. Это расширение основано на спецификации WS-HumanTask.
WS-BPEL 2.0
Версия 2.0 внесла некоторые изменения и новые функции:
- Новые типы действий: repeatUntil, validate, forEach (параллельный и последовательный), rethrow, extensionActivity ,pensateScope.
- Переименованные действия: переключатель / case переименован в if / else, прекратить переименован для выхода
- Обработчик завершения добавлен в действия области, чтобы обеспечить явное поведение для завершения
- Инициализация переменной
- XSLT для преобразования переменных (новая функция расширения XPath bpws: doXslTransform)
- Доступ XPath к данным переменных (синтаксис переменной XPath $ variable [.part] / location)
- Переменные схемы XML в действиях веб-сервисов (для взаимодействия сервисов в стиле WS-I doc / lit)
- Локально объявленный messageExchange (внутренняя корреляция действий получения и ответа)
- Разъяснение абстрактных процессов (синтаксис и семантика)
- Включить переопределение языка выражений для каждого действия
Смотрите также
- BPEL4Люди
- BPELscript
- Модель и обозначение бизнес-процесса
- Моделирование бизнес-процессов
- Список двигателей BPEL
- Язык разговора веб-служб
- Рабочий процесс
- WS-CDL
- Язык определения процессов XML
- Еще один язык рабочего процесса
Рекомендации
- ^ Стандарт OASIS WS-BPEL 2.0
- ^ Язык выполнения бизнес-процессов для веб-служб, версия 1.1 (5 мая 2003 г.)
- ^ «Члены OASIS формируют технический комитет языка исполнения бизнес-процессов веб-служб (WSBPEL)» . Технический комитет OASIS WSBPEL. 29 апреля 2003 г.
- ^ «Титульные страницы: язык потока веб-сервисов (WSFL)» . xml.coverpages.org/. 6 июня 2001 . Проверено 9 октября 2014 года .
- ^ «XLANG» . xml.coverpages.org/. 2001 . Проверено 9 октября 2014 года .
- ^ «Язык XLANG / s» . Microsoft . Проверено 9 октября 2014 года .
- ^ Технический комитет Web Services BPEL .
- ^ "choreology.com" . choreology.com. Архивировано из оригинального 27 февраля 2012 года . Проверено 17 апреля 2013 года .
- ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 15 сентября 2012 года . Проверено 17 апреля 2013 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ BPMN2BPEL .
- ^ BPELJ архивации 16 мая 2005 в Wayback Machine
- ^ JSR 207
дальнейшее чтение
- Книги по BPEL 2.0
- SOA для бизнес-разработчиков: концепции, BPEL и SCA . ISBN 978-1-58347-065-7