Язык выполнения бизнес-процессов
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Язык выполнения бизнес-процессов веб-сервисов | |
Аббревиатура | WS-BPEL или BPEL |
---|---|
Статус | Опубликовано |
Год начался | 2001 |
Впервые опубликовано | апрель 2003 г |
Последняя версия | 2.0 11 апреля 2007 г |
Организация | ОАЗИС |
комитет | Язык выполнения бизнес-процессов веб-служб OASIS (WSBPEL) TC |
Базовые стандарты | XML |
Домен | Интеграция веб-сервисов |
Веб-сайт | документы |
( Язык выполнения бизнес-процессов веб-сервисов WS -BPEL ), широко известный как BPEL ( язык выполнения бизнес-процессов ), является языком OASIS. [1] стандартный исполняемый язык для определения действий внутри бизнес-процессов с веб-сервисами . Процессы в BPEL экспортируют и импортируют информацию, используя исключительно интерфейсы веб-сервисов.
Обзор
[ редактировать ]Взаимодействие веб-сервисов можно описать двумя способами: как исполняемые бизнес-процессы и как абстрактные бизнес-процессы.
- Исполняемый бизнес-процесс : моделирует фактическое поведение участника бизнес-взаимодействия.
- Абстрактный бизнес-процесс : это частично определенный процесс, который не предназначен для выполнения. В отличие от исполняемых процессов, абстрактный процесс может скрывать некоторые необходимые конкретные рабочие детали. Абстрактные процессы выполняют описательную роль и имеют более одного возможного варианта использования процесса , включая наблюдаемое поведение и/или шаблон .
Цель 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 для стандартизации через Технический комитет 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:
- Определите бизнес-процессы, которые взаимодействуют с внешними объектами посредством операций веб-служб, определенных с использованием языка описания веб-служб (WSDL) 1.1, и которые проявляются как веб-службы, определенные с использованием WSDL 1.1. Взаимодействия являются «абстрактными» в том смысле, что зависимость зависит от определений portType, а не от определений портов.
- Определите бизнес-процессы, используя язык на основе XML. Не определяйте графическое представление процессов и не предоставляйте какую-либо конкретную методологию проектирования процессов. [9]
- Определите набор концепций оркестрации веб-сервисов, которые предназначены для использования как внешними (абстрактными), так и внутренними (исполняемыми) представлениями бизнес-процесса. Такой бизнес-процесс определяет поведение одного автономного объекта, обычно действующего во взаимодействии с другими аналогичными одноранговыми объектами. Признано, что каждый шаблон использования (т. е. абстрактное представление и исполняемое представление) потребует нескольких специализированных расширений, но эти расширения должны быть сведены к минимуму и проверены на соответствие таким требованиям, как импорт/экспорт и проверка соответствия, которые связывают два использования. узоры.
- Обеспечьте как иерархические, так и графические режимы управления и позвольте максимально плавно сочетать их использование. Это должно уменьшить фрагментацию пространства моделирования процессов.
- Предоставьте функции манипулирования данными для простого манипулирования данными, необходимыми для определения данных процесса и потока управления.
- Поддерживайте механизм идентификации экземпляров процессов, который позволяет определять идентификаторы экземпляров на уровне сообщений приложения. Идентификаторы экземпляров должны определяться партнерами и могут меняться.
- Поддержка неявного создания и завершения экземпляров процессов в качестве основного механизма жизненного цикла. Расширенные операции жизненного цикла, такие как «приостановка» и «возобновление», могут быть добавлены в будущих выпусках для улучшения управления жизненным циклом.
- Определите модель долгосрочных транзакций, основанную на проверенных методах, таких как компенсационные действия и определение объема, для поддержки восстановления после сбоев для частей долговыполняющихся бизнес-процессов.
- Используйте веб-службы в качестве модели для декомпозиции и сборки процессов.
- Опирайтесь на стандарты веб-сервисов (утвержденные и предложенные), насколько это возможно, компонуемым и модульным образом.
Язык 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, выбор, область действия и т. д.). Эта функция обеспечивает прямое визуальное представление описаний процессов BPEL в форме структурограмм в стиле напоминает диаграмму Насси-Шнейдермана .
Другие предложили использовать существенно другой язык моделирования бизнес-процессов, а именно модель и нотацию бизнес-процессов (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» и «пока», а также средства манипулирования переменными, зависят от использования «программирования на малых» языках для обеспечения логики. Все реализации BPEL должны поддерживать XPath 1.0 в качестве языка по умолчанию. Но конструкция BPEL предусматривает расширяемость, позволяющую сборщикам систем использовать и другие языки. БПЭЛЖ [12] это попытка, связанная с JSR 207 [13] это может позволить Java функционировать как «маленький» язык в рамках BPEL.
BPEL4Люди
[ редактировать ]Несмотря на широкое распространение веб-сервисов в распределенных бизнес-приложениях, отсутствие человеческого взаимодействия было существенным пробелом для многих реальных бизнес-процессов.
Чтобы восполнить этот пробел, BPEL4People расширил BPEL от оркестровки только веб-сервисов до оркестровки человеческой деятельности на основе ролей.
Цели
[ редактировать ]В контексте бизнес-процесса BPEL4People
- поддерживает ролевое взаимодействие людей
- предоставляет средства назначения пользователям общих человеческих ролей
- заботится о том, чтобы делегировать право собственности на задачу только человеку
- поддерживает сценарий как
- четырех глаз сценарий
- номинация
- эскалация
- прикованная казнь
расширяя BPEL дополнительным независимым синтаксисом и семантикой.
Спецификация WS-HumanTask вводит определение неавтоматизированных задач и уведомлений, включая их свойства, поведение и набор операций, используемых для управления неавтоматизированными задачами. Введен протокол координации для управления автономией и жизненным циклом неавтоматизированных задач, связанных с обслуживанием, совместимым образом.
Спецификация BPEL4People представляет расширение WS-BPEL, позволяющее рассматривать взаимодействие людей в WS-BPEL как первоклассных граждан . Он определяет новый тип базовой деятельности, который использует неавтоматизированные задачи в качестве реализации и позволяет указывать задачи, локальные для процесса, или использовать задачи, определенные вне определения процесса. Это расширение основано на спецификации WS-HumanTask.
WS-BPEL 2.0
[ редактировать ]Версия 2.0 внесла некоторые изменения и новые функции:
- Новые типы действий: restartUntil, validate, forEach (параллельные и последовательные), rethrow, ExtensionActivity, CompensopeScope.
- Переименованные действия: переключатель/регистр переименован в if/else, завершение переименовано в выход.
- В действия области действия добавлен обработчик завершения, чтобы обеспечить явное поведение при завершении.
- Инициализация переменной
- XSLT для преобразований переменных (новая функция расширения XPath bpws:doXslTransform)
- Доступ XPath к переменным данным (синтаксис переменных XPath $variable[.part]/location)
- Переменные схемы XML в действиях веб-службы (для взаимодействия со службами в стиле WS-I doc/lit)
- Локально объявленное messageExchange (внутренняя корреляция действий получения и ответа)
- Уточнение абстрактных процессов (синтаксис и семантика)
- Включить переопределение языка выражений при каждом действии
См. также
[ редактировать ]- BPEL4Люди
- BPELскрипт
- Модель бизнес-процесса и обозначения
- Моделирование бизнес-процессов
- Список двигателей BPEL
- Язык общения веб-сервисов
- Рабочий процесс
- WS-CDL
- Язык определения процессов XML
- Еще один язык рабочего процесса
Ссылки
[ редактировать ]Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2008 г. ) |
- ^ Стандарт OASIS WS-BPEL 2.0
- ^ Язык выполнения бизнес-процессов для веб-сервисов, версия 1.1. Архивировано 3 декабря 2020 г. на Wayback Machine (5 мая 2003 г.).
- ^ «Члены OASIS формируют Технический комитет по языку выполнения бизнес-процессов веб-сервисов (WSBPEL)» . Технический комитет OASIS WSBPEL. 29 апреля 2003 г.
- ^ «Титульные страницы: Язык потока веб-служб (WSFL)» . xml.coverpages.org/. 6 июня 2001 года . Проверено 9 октября 2014 г.
- ^ «КСЛАНГ» . xml.coverpages.org/. 2001 . Проверено 9 октября 2014 г.
- ^ «Язык XLANG/s» . Майкрософт . Проверено 9 октября 2014 г.
- ^ Технический комитет веб-служб BPEL .
- ^ «choreology.com» . хореология.com. Архивировано из оригинала 27 февраля 2012 года . Проверено 17 апреля 2013 г.
- ^ Чиноси, Микеле (1 января 2009 г.). «Представление бизнес-процессов: концептуальная модель и методология проектирования» .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 15 сентября 2012 года . Проверено 17 апреля 2013 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ BPMN2BPEL .
- ↑ BPELJ. Архивировано 16 мая 2005 г. в Wayback Machine.
- ^ JSR 207
Дальнейшее чтение
[ редактировать ]- Книги по BPEL 2.0
- SOA для бизнес-разработчика: концепции, BPEL и SCA . ISBN 978-1-58347-065-7