WS-BPEL: язык для описания бизнес-процессов с веб-сервисами. Узнайте о выполнении, экспорте/импорте данных и разнице между исполняемыми и абстрактными процессами.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Компьютерно-исполняемый язык
Computer executable language
Язык исполнения бизнес-процессов веб-сервисов (WS-BPEL), обычно называемый BPEL (Business Process Execution Language), — это стандарт OASIS, представляющий собой исполняемый язык для определения действий в бизнес-процессах, использующих веб-сервисы. Процессы в BPEL экспортируют и импортируют информацию исключительно посредством интерфейсов веб-сервисов.
The Web Services Business Process Execution Language (WS BPEL), commonly known as BPEL (Business Process Execution Language), is an OASIS standard executable language for specifying actions within business processes with web services. Processes in BPEL export and import information by using web service interfaces exclusively.
Обзор
Можно описать взаимодействие веб-сервисов двумя способами: как исполняемые бизнес-процессы и как абстрактные бизнес-процессы. Исполняемый бизнес-процесс моделирует реальное поведение участника в бизнес-взаимодействии. Абстрактный бизнес-процесс – это частично специфицированный процесс, не предназначенный для непосредственного выполнения. В отличие от исполняемых процессов, абстрактный процесс может скрывать некоторые необходимые конкретные операционные детали. Абстрактные процессы выполняют описательную функцию, имея более одного возможного варианта использования, включая описание наблюдаемого поведения и/или шаблон процесса. WS-BPEL предназначен для моделирования поведения процессов посредством языка, позволяющего специфицировать как исполняемые, так и абстрактные бизнес-процессы. Таким образом, он расширяет модель взаимодействия веб-сервисов и обеспечивает поддержку бизнес-транзакций. Он также определяет модель интеграции, обеспечивающую взаимодействие, которая должна способствовать расширению автоматизированной интеграции процессов как внутри организаций, так и между ними. Его разработка основывалась на понимании того, что программирование крупных систем и программирование небольших задач требуют различных типов языков. Соответственно, он сериализуется в XML и предназначен для программирования крупных систем.
One can describe Web service interactions in two ways: as executable business processes and as abstract business processes. An executable business process: models an actual behavior of a participant in a business interaction. An abstract business process: is a partially specified process that is not intended to be executed. Contrary to Executable Processes, an Abstract Process may hide some of the required concrete operational details. Abstract Processes serve a descriptive role, with more than one possible use case, including observable behavior and/or process template. WS BPEL aims to model the behavior of processes, via a language for the specification of both Executable and Abstract Business Processes. By doing so, it extends the Web Services interaction model and enables it to support business transactions. It also defines an interoperable integration model that should facilitate the expansion of automated process integration both within and between businesses. Its development came out of the notion that programming in the large and programming in the small required different types of languages. As such, it is serialized in XML and aims to enable programming in the large.
История
Истоки WS BPEL восходят к Web Services Flow Language (WSFL) и Xlang. В 2001 году IBM и Microsoft разработали собственные, весьма схожие языки для "программирования в масштабе всего приложения": WSFL (Web Services Flow Language) и Xlang соответственно. Microsoft даже создала скриптовый вариант под названием XLANG/s, который впоследствии стал основой для их служб Orchestrations в BizTalk Server. Они специально указали в документации, что этот язык "является проприетарным и не имеет полной документации". С появлением и ростом популярности BPML, а также успехом BPMI.org и движения открытых BPMS, возглавляемого JBoss и Intalio Inc., IBM и Microsoft решили объединить эти языки в новый язык – BPEL4WS. В апреле 2003 года BEA Systems, IBM, Microsoft, SAP и Siebel Systems представили BPEL4WS 1.1 в OASIS для стандартизации через Технический комитет по веб-службам BPEL. Хотя BPEL4WS выпускался в версиях 1.0 и 1.1, технический комитет OASIS WS BPEL 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.
The origins of WS BPEL go back to Web Services Flow Language (WSFL) and Xlang. In 2001, IBM and Microsoft had each defined their own fairly similar, "programming in the large" languages: WSFL (Web Services Flow Language) and Xlang, respectively. Microsoft even went ahead and created a scripting variant called XLANG/s which would later serve as the basis for their Orchestrations services inside their BizTalk Server. They specifically documented that this language "is proprietary and is not fully documented." With the advent and popularity of BPML, and the growing success of BPMI. org and the open BPMS movement led by JBoss and Intalio Inc., IBM and Microsoft decided to combine these languages into a new language, BPEL4WS. In April 2003, BEA Systems, IBM, Microsoft, SAP, and Siebel Systems submitted BPEL4WS 1.1 to OASIS for standardization via the Web Services BPEL Technical Committee. Although BPEL4WS appeared as both a 1.0 and 1.1 version, the OASIS WS BPEL technical committee voted on 14 September 2004 to name their spec "WS BPEL 2.0". (This change in name aligned BPEL with other web service standard naming conventions which start with "WS " (similar to WS Security) and took account of the significant enhancements made between BPEL4WS 1.1 and WS BPEL 2.0.) If not discussing a specific version, the moniker BPEL is commonly used. In June 2007, Active Endpoints, Adobe Systems, BEA, IBM, Oracle, and SAP published the BPEL4People and WS HumanTask specifications, which describe how human interaction in BPEL processes can be implemented.
Отношение BPEL к BPMN
Стандартной графической нотации для WS-BPEL не существует, поскольку технический комитет OASIS решил, что это выходит за рамки области применения. Некоторые поставщики разработали собственные нотации. Эти нотации используют тот факт, что большинство конструкций в BPEL имеют блочную структуру (например, sequence, while, pick, scope и т.д.). Эта особенность позволяет напрямую визуализировать описания процессов BPEL в виде структурграмм, в стиле, напоминающем диаграмму Насси–Шнейдермана. Другие предложили использовать существенно отличающийся язык моделирования бизнес-процессов, а именно Business Process Model and Notation (BPMN), в качестве графического интерфейса для представления описаний процессов BPEL. В качестве иллюстрации реализуемости этого подхода спецификация BPMN включает неформальное и частичное соответствие между BPMN и BPEL 1.1. Более детальное соответствие BPMN и BPEL реализовано в ряде инструментов, включая инструмент с открытым исходным кодом BPMN2BPEL. Однако разработка этих инструментов выявила фундаментальные различия между BPMN и BPEL, которые значительно затрудняют, а в некоторых случаях делают невозможным, генерацию читаемого человеком кода BPEL из моделей BPMN. Еще более сложной является задача обратной разработки BPMN в BPEL: генерация кода BPEL из диаграмм BPMN и поддержание синхронизации между исходной моделью BPMN и сгенерированным кодом BPEL, в том смысле, что любое изменение в одном из них должно отражаться в другом.
There is no standard graphical notation for WS BPEL, as the OASIS technical committee decided this was out of scope. Some vendors have invented their own notations. These notations take advantage of the fact that most constructs in BPEL are block structured (e. g., sequence, while, pick, scope, etcetera.) This feature enables a direct visual representation of BPEL process descriptions in the form of structograms, in a style reminiscent of a Nassi–Shneiderman diagram. Others have proposed to use a substantially different business process modeling language, namely Business Process Model and Notation (BPMN), as a graphical front end to capture BPEL process descriptions. As an illustration of the feasibility of this approach, the BPMN specification includes an informal and partial mapping from BPMN to BPEL 1.1. A more detailed mapping of BPMN to BPEL has been implemented in a number of tools, including an open source tool known as BPMN2BPEL. However, the development of these tools has exposed fundamental differences between BPMN and BPEL, which make it very difficult, and in some cases impossible, to generate human readable BPEL code from BPMN models. Even more difficult is the problem of BPMN to BPEL round trip engineering: generating BPEL code from BPMN diagrams and maintaining the original BPMN model and the generated BPEL code synchronized, in the sense that any modification to one is propagated to the other.
Добавление поддержки "программирования в малом" к BPEL
Структуры управления BPEL, такие как "if then elseif else" и "while", а также возможности манипулирования переменными, опираются на использование языков "программирования в малом" для реализации логики. Все реализации BPEL должны поддерживать XPath 1.0 в качестве языка по умолчанию. Однако, конструкция BPEL предусматривает расширяемость, позволяющую разработчикам систем использовать и другие языки. BPELJ – это проект, связанный с JSR 207, который может обеспечить возможность использования Java в качестве языка "программирования в малом" внутри BPEL.
BPEL's control structures such as 'if then elseif else' and 'while' as well as its variable manipulation facilities depend on the use of 'programming in the small' languages to provide logic. All BPEL implementations must support XPath 1.0 as a default language. But the design of BPEL envisages extensibility so that systems builders can use other languages as well. BPELJ is an effort related to JSR 207 that may enable Java to function as a 'programming in the small' language within BPEL.
BPEL4Люди
Несмотря на широкое распространение веб-сервисов в распределенных бизнес-приложениях, отсутствие взаимодействия с людьми являлось существенным недостатком для многих реальных бизнес-процессов. Чтобы восполнить этот пробел, BPEL4People расширил BPEL, добавив к оркестрации веб-сервисов оркестрацию ролевой деятельности людей.
Despite wide acceptance of Web services in distributed business applications, the absence of human interactions was a significant gap for many real world business processes. To fill this gap, BPEL4People extended BPEL from orchestration of Web services alone to orchestration of role based human activities as well.