В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
Язык выполнения бизнес-процессов веб-сервисов | |
Аббревиатура | WS-BPEL или BPEL |
---|---|
Статус | Опубликовано |
Год начался | 2001 (2001) |
Впервые опубликовано | Апрель 2003 (2003-04) |
Последняя версия | 2.0 11 апреля 2007 г. (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 экспортируют и импортируют информацию исключительно с использованием интерфейсов веб-сервисов.
Взаимодействие веб-сервисов можно описать двумя способами: как исполняемые бизнес-процессы и как абстрактные бизнес-процессы.
WS-BPEL нацелен на моделирование поведения процессов [2] с помощью языка для спецификации как исполняемых, так и абстрактных бизнес-процессов. Тем самым он расширяет модель взаимодействия веб-сервисов и позволяет ей поддерживать бизнес-транзакции. Он также определяет совместимую модель интеграции, которая должна способствовать расширению автоматизированной интеграции процессов как внутри, так и между предприятиями. Его разработка возникла из идеи [3] , что программирование в большом и программирование в малом требуют разных типов языков.
Таким образом, он сериализован в XML и нацелен на обеспечение возможности программирования в целом.
Концепции программирования в целом и программирования в малом различают два аспекта написания типа длительных асинхронных процессов, которые обычно встречаются в бизнес-процессах:
Истоки 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 было связано десять целей:
BPEL — это язык оркестровки , а не язык хореографии . Основное различие между оркестровкой и хореографией заключается в исполняемости и управлении. Оркестровка определяет исполняемый процесс, который включает обмен сообщениями с другими системами, так что последовательности обмена сообщениями контролируются разработчиком оркестровки. Хореография определяет протокол для одноранговых взаимодействий, определяя, например, допустимые последовательности сообщений, которыми обмениваются с целью обеспечения взаимодействия. Такой протокол не является непосредственно исполняемым, поскольку он допускает множество различных реализаций (процессов, которые ему соответствуют). Хореография может быть реализована путем написания оркестровки (например, в форме процесса BPEL) для каждого участвующего в ней однорангового узла. Различия между оркестровкой и хореографией основаны на аналогиях: оркестровка относится к центральному управлению (дирижером) поведением распределенной системы (оркестра, состоящего из многих игроков), тогда как хореография относится к распределенной системе (танцевальной команде), которая работает по правилам (хореографии), но без централизованного управления.
Сосредоточение BPEL на современных бизнес-процессах, а также истории WSFL и XLANG привели к тому, что BPEL принял веб-сервисы в качестве своего внешнего механизма коммуникации. Таким образом, возможности обмена сообщениями BPEL зависят от использования языка описания веб-сервисов (WSDL) 1.1 для описания исходящих и входящих сообщений.
Помимо предоставления возможностей для отправки и получения сообщений, язык программирования BPEL также поддерживает:
Для 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, такие как «if-then-elseif-else» и «while», а также его возможности манипулирования переменными зависят от использования «программирование на малых» языках для предоставления логики. Все реализации BPEL должны поддерживать XPath 1.0 в качестве языка по умолчанию. Но дизайн BPEL предусматривает расширяемость, чтобы разработчики систем могли использовать и другие языки. BPELJ [12] — это работа, связанная с JSR 207 [13] , которая может позволить Java функционировать как «программирование на малых» языках в BPEL.
Несмотря на широкое распространение веб-сервисов в распределенных бизнес-приложениях, отсутствие человеческого взаимодействия было существенным пробелом для многих реальных бизнес-процессов.
Чтобы заполнить этот пробел, BPEL4People расширил BPEL, перейдя от оркестровки только веб-сервисов к оркестровке ролевой деятельности человека.
В контексте бизнес-процесса BPEL4People
путем расширения BPEL дополнительным независимым синтаксисом и семантикой.
Спецификация WS-HumanTask вводит определение человеческих задач и уведомлений, включая их свойства, поведение и набор операций, используемых для управления человеческими задачами. Вводится протокол координации для управления автономностью и жизненным циклом человеческих задач с поддержкой сервисов в совместимой манере.
Спецификация BPEL4People вводит расширение WS-BPEL для решения человеческих взаимодействий в WS-BPEL как гражданина первого класса . Оно определяет новый тип базовой деятельности, которая использует человеческие задачи в качестве реализации и позволяет указывать задачи, локальные для процесса, или использовать задачи, определенные вне определения процесса. Это расширение основано на спецификации WS-HumanTask.
В версии 2.0 появились некоторые изменения и новые функции:
This article needs additional citations for verification. (October 2008) |
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite web}}
: CS1 maint: archived copy as title (link)