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

Язык, исполняемый компьютером

WS-BPEL
Язык выполнения бизнес-процессов веб-сервисов
АббревиатураWS-BPEL или BPEL
СтатусОпубликовано
Год начался2001 (2001)
Впервые опубликованоАпрель 2003 г.; 21 год назад (2003-04)
Последняя версия2.0
11 апреля 2007 г. ; 17 лет назад (2007-04-11)
ОрганизацияОАЗИС
КомитетЯзык выполнения бизнес-процессов веб-сервисов OASIS (WSBPEL) TC
Базовые стандартыXML
ДоменИнтеграция веб-сервисов
Веб-сайтdocs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html

Язык выполнения бизнес-процессов веб-сервисов ( WS-BPEL ), обычно известный как BPEL ( язык выполнения бизнес-процессов ), является стандартным исполняемым языком OASIS [1] для указания действий в бизнес-процессах с веб-сервисами . Процессы в BPEL экспортируют и импортируют информацию исключительно с использованием интерфейсов веб-сервисов.

Обзор

Взаимодействие веб-сервисов можно описать двумя способами: как исполняемые бизнес-процессы и как абстрактные бизнес-процессы.

  1. Исполняемый бизнес-процесс : моделирует реальное поведение участника делового взаимодействия.
  2. Абстрактный бизнес-процесс : частично определенный процесс, который не предназначен для выполнения. В отличие от исполняемых процессов, абстрактный процесс может скрывать некоторые из требуемых конкретных рабочих деталей. Абстрактные процессы выполняют описательную роль с более чем одним возможным вариантом использования , включая наблюдаемое поведение и/или шаблон процесса .

WS-BPEL нацелен на моделирование поведения процессов [2] с помощью языка для спецификации как исполняемых, так и абстрактных бизнес-процессов. Тем самым он расширяет модель взаимодействия веб-сервисов и позволяет ей поддерживать бизнес-транзакции. Он также определяет совместимую модель интеграции, которая должна способствовать расширению автоматизированной интеграции процессов как внутри, так и между предприятиями. Его разработка возникла из идеи [3] , что программирование в большом и программирование в малом требуют разных типов языков.

Таким образом, он сериализован в XML и нацелен на обеспечение возможности программирования в целом.

Программирование в большом/малом

Концепции программирования в целом и программирования в малом различают два аспекта написания типа длительных асинхронных процессов, которые обычно встречаются в бизнес-процессах:

  1. Программирование в целом обычно относится к высокоуровневым взаимодействиям переходов состояний процесса. BPEL называет эту концепцию абстрактным процессом. Абстрактный процесс BPEL представляет собой набор публично наблюдаемых поведений в стандартизированном виде. Абстрактный процесс включает в себя информацию, например, когда ждать сообщений , когда отправлять сообщения, когда компенсировать неудачные транзакции и т. д.
  2. Программирование в малых масштабах , напротив, имеет дело с кратковременным программным поведением, часто выполняемым как одна транзакция и подразумевающим доступ к локальной логике и ресурсам, таким как файлы , базы данных и т. д.

История

Истоки WS-BPEL восходят к языку потоков веб-сервисов (WSFL) и Xlang .

В 2001 году IBM и Microsoft определили свои собственные довольно похожие языки « программирования на больших »: WSFL [4] ( Web Services Flow Language ) и Xlang [ 5] соответственно. Microsoft даже пошла дальше и создала вариант скрипта под названием XLANG/s , который позже послужил основой для их служб Orchestrations внутри их 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 для стандартизации через Технический комитет BPEL веб-сервисов. [7] Хотя BPEL4WS появился как в версиях 1.0 и 1.1, Технический комитет OASIS WS-BPEL проголосовал [8] 14 сентября 2004 года за название своей спецификации «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 было связано десять целей:

  1. Определите бизнес-процессы, которые взаимодействуют с внешними сущностями через операции веб-сервисов, определенные с помощью языка описания веб-сервисов (WSDL) 1.1, и которые проявляют себя как веб-сервисы, определенные с помощью WSDL 1.1. Взаимодействия являются «абстрактными» в том смысле, что зависимость находится от определений portType, а не от определений портов.
  2. Определите бизнес-процессы с использованием языка на основе XML. Не определяйте графическое представление процессов и не предоставляйте какую-либо конкретную методологию проектирования для процессов. [9]
  3. Определите набор концепций оркестровки веб-сервисов, которые должны использоваться как внешними (абстрактными), так и внутренними (исполняемыми) представлениями бизнес-процесса. Такой бизнес-процесс определяет поведение одной автономной сущности, обычно работающей во взаимодействии с другими подобными равноправными сущностями. Признано, что каждый шаблон использования (т. е. абстрактный вид и исполняемый вид) потребует нескольких специализированных расширений, но эти расширения должны быть сведены к минимуму и протестированы на соответствие таким требованиям, как импорт/экспорт и проверка соответствия, которые связывают два шаблона использования.
  4. Обеспечить как иерархические, так и графоподобные режимы управления и позволить их использование смешивать максимально бесшовно. Это должно уменьшить фрагментацию пространства моделирования процесса.
  5. Предоставляют функции манипулирования данными для простого манипулирования данными, необходимыми для определения данных процесса и управления потоком.
  6. Поддерживать механизм идентификации для экземпляров процесса, который позволяет определять идентификаторы экземпляров на уровне сообщений приложения. Идентификаторы экземпляров должны определяться партнерами и могут меняться.
  7. Поддерживать неявное создание и завершение экземпляров процесса как базовый механизм жизненного цикла. Расширенные операции жизненного цикла, такие как «приостановка» и «возобновление», могут быть добавлены в будущих выпусках для улучшенного управления жизненным циклом.
  8. Определите модель долгосрочных транзакций, основанную на проверенных методах, таких как компенсационные действия и определение области действия, для поддержки восстановления после сбоев для частей долгосрочных бизнес-процессов.
  9. Используйте веб-сервисы в качестве модели для декомпозиции и сборки процессов.
  10. По возможности разрабатывайте на основе стандартов веб-сервисов (утвержденных и предлагаемых) с использованием компонуемой и модульной модели.

Язык BPEL

BPEL — это язык оркестровки , а не язык хореографии . Основное различие между оркестровкой и хореографией заключается в исполняемости и управлении. Оркестровка определяет исполняемый процесс, который включает обмен сообщениями с другими системами, так что последовательности обмена сообщениями контролируются разработчиком оркестровки. Хореография определяет протокол для одноранговых взаимодействий, определяя, например, допустимые последовательности сообщений, которыми обмениваются с целью обеспечения взаимодействия. Такой протокол не является непосредственно исполняемым, поскольку он допускает множество различных реализаций (процессов, которые ему соответствуют). Хореография может быть реализована путем написания оркестровки (например, в форме процесса BPEL) для каждого участвующего в ней однорангового узла. Различия между оркестровкой и хореографией основаны на аналогиях: оркестровка относится к центральному управлению (дирижером) поведением распределенной системы (оркестра, состоящего из многих игроков), тогда как хореография относится к распределенной системе (танцевальной команде), которая работает по правилам (хореографии), но без централизованного управления.

Сосредоточение BPEL на современных бизнес-процессах, а также истории WSFL и XLANG привели к тому, что BPEL принял веб-сервисы в качестве своего внешнего механизма коммуникации. Таким образом, возможности обмена сообщениями BPEL зависят от использования языка описания веб-сервисов (WSDL) 1.1 для описания исходящих и входящих сообщений.

Помимо предоставления возможностей для отправки и получения сообщений, язык программирования BPEL также поддерживает:

Связь BPEL с BPMN

Для WS-BPEL нет стандартной графической нотации, поскольку технический комитет OASIS решил, что это выходит за рамки. Некоторые поставщики придумали свои собственные нотации. Эти нотации используют тот факт, что большинство конструкций в BPEL имеют блочную структуру (например, sequence, while, pick, scope и т. д.). Эта функция позволяет напрямую визуально представлять описания процессов BPEL в виде структурограмм , в стиле, напоминающем диаграмму Насси–Шнейдермана .

Другие предложили использовать существенно иной язык моделирования бизнес-процессов, а именно Business Process Model and Notation (BPMN), в качестве графического интерфейса для захвата описаний процессов BPEL. В качестве иллюстрации осуществимости этого подхода спецификация BPMN включает неформальное и частичное отображение [10] из BPMN в BPEL 1.1. Более подробное отображение BPMN в BPEL было реализовано в ряде инструментов, включая инструмент с открытым исходным кодом, известный как BPMN2BPEL. [11] Однако разработка этих инструментов выявила фундаментальные различия между BPMN и BPEL, которые делают очень сложным, а в некоторых случаях и невозможным, создание читаемого человеком кода BPEL из моделей BPMN. Еще более сложной является проблема проектирования BPMN-BPEL в обратном направлении : создание кода BPEL из диаграмм BPMN и поддержание синхронизации исходной модели BPMN и сгенерированного кода BPEL в том смысле, что любое изменение одного из них распространяется на другой. [ необходима ссылка ]

Добавление поддержки «программирования в малом» в BPEL

Управляющие структуры BPEL, такие как «if-then-elseif-else» и «while», а также его возможности манипулирования переменными зависят от использования «программирование на малых» языках для предоставления логики. Все реализации BPEL должны поддерживать XPath 1.0 в качестве языка по умолчанию. Но дизайн BPEL предусматривает расширяемость, чтобы разработчики систем могли использовать и другие языки. BPELJ [12] — это работа, связанная с JSR 207 [13] , которая может позволить Java функционировать как «программирование на малых» языках в BPEL.

BPEL4People

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

Чтобы заполнить этот пробел, BPEL4People расширил BPEL, перейдя от оркестровки только веб-сервисов к оркестровке ролевой деятельности человека.

Цели

В контексте бизнес-процесса BPEL4People

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

путем расширения BPEL дополнительным независимым синтаксисом и семантикой.

Спецификация WS-HumanTask вводит определение человеческих задач и уведомлений, включая их свойства, поведение и набор операций, используемых для управления человеческими задачами. Вводится протокол координации для управления автономностью и жизненным циклом человеческих задач с поддержкой сервисов в совместимой манере.

Спецификация BPEL4People вводит расширение WS-BPEL для решения человеческих взаимодействий в WS-BPEL как гражданина первого класса . Оно определяет новый тип базовой деятельности, которая использует человеческие задачи в качестве реализации и позволяет указывать задачи, локальные для процесса, или использовать задачи, определенные вне определения процесса. Это расширение основано на спецификации WS-HumanTask.

WS-BPEL 2.0

В версии 2.0 появились некоторые изменения и новые функции:

  • Новые типы действий: repeatUntil, validate, forEach (параллельный и последовательный), rethrow, extensionActivity, compensScope
  • Переименованы действия: switch/case переименован в if/else, terminate переименован в exit
  • Обработчик завершения добавлен в область действия для предоставления явного поведения при завершении
  • Инициализация переменной
  • XSLT для преобразования переменных (новая функция расширения XPath bpws:doXslTransform)
  • Доступ XPath к переменным данным (синтаксис переменной XPath $variable[.part]/location)
  • Переменные схемы XML в действиях веб-служб (для взаимодействия служб в стиле WS-I doc/lit)
  • Локально объявленный messageExchange (внутренняя корреляция действий получения и ответа)
  • Разъяснение абстрактных процессов (синтаксис и семантика)
  • Включить переопределение языка выражений для каждого действия

Смотрите также

Ссылки

  1. ^ Стандарт OASIS WS-BPEL 2.0
  2. ^ Business Process Execution Language for Web Services, версия 1.1 Архивировано 3 декабря 2020 г. на Wayback Machine (5 мая 2003 г.)
  3. ^ "Участники OASIS формируют технический комитет Web Services Business Process Execution Language (WSBPEL)". Технический комитет OASIS WSBPEL. 29 апреля 2003 г.
  4. ^ "Титульные страницы: Web Services Flow Language (WSFL)". xml.coverpages.org/. 6 июня 2001 г. Получено 9 октября 2014 г.
  5. ^ "XLANG". xml.coverpages.org/. 2001. Получено 9 октября 2014 .
  6. ^ "XLANG/s Language". Microsoft . Получено 9 октября 2014 г. .
  7. ^ Технический комитет BPEL веб-сервисов.
  8. ^ "choreology.com". choreology.com. Архивировано из оригинала 27 февраля 2012 года . Получено 17 апреля 2013 года .
  9. ^ Чиноси, Микеле (1 января 2009 г.). «Представление бизнес-процессов: концептуальная модель и методология проектирования». {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  10. ^ "Архивная копия" (PDF) . Архивировано из оригинала (PDF) 15 сентября 2012 . Получено 17 апреля 2013 .{{cite web}}: CS1 maint: archived copy as title (link)
  11. ^ BPMN2BPEL.
  12. BPELJ Архивировано 16 мая 2005 г. на Wayback Machine
  13. ^ JSR 207

Дальнейшее чтение

Книги по BPEL 2.0
  • SOA для бизнес-разработчиков: концепции, BPEL и SCA . ISBN 978-1-58347-065-7 
Retrieved from "https://en.wikipedia.org/w/index.php?title=Business_Process_Execution_Language&oldid=1270907788#BPEL4People"