Content deleted Content added
m Task 16: replaced (2×) / removed (0×) deprecated |dead-url= and |deadurl= with |url-status=; |
m →WS-BPEL 2.0: {{code}} {{tt}} |
||
(15 intermediate revisions by 13 users not shown) | |||
Line 1:
{{Short description|Computer executable language}}
{{Use dmy dates|date=
{{multiple issues|
{{cleanup|reason=reihbase on refs, other issues tagged|date=July 2016}}
{{primary sources|date=October 2012}}
}}
{{Infobox technology standard
The '''Web Services Business Process Execution Language''' ('''WS-BPEL'''), commonly known as '''BPEL''' ('''Business Process Execution Language'''), is an [[OASIS (organization)|OASIS]]<ref>OASIS Standard WS-BPEL 2.0</ref> standard executable language for specifying actions within [[business process]]es with [[web service]]s. Processes in BPEL export and import information by using web service interfaces exclusively.▼
| title = WS-BPEL
| long_name = Web Services Business Process Execution Language
| image =
| caption =
| status = Published
| year_started = {{Start date|2001}}
| first_published = {{Start date and age|2003|04|df=y}}
| version = [http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf 2.0]
| version_date = {{Start date and age|2007|04|11|df=y}}
| organization = [[OASIS (organization)|OASIS]]
| committee = OASIS Web Services Business Process Execution Language (WSBPEL) TC
| editors =
| authors =
| base_standards = [[XML]]
| related_standards =
| abbreviation = WS-BPEL or BPEL
| ___domain = Web service integration
| license =
| website = {{URL|http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html}}
}}
▲The '''Web Services Business Process Execution Language''' ('''WS-BPEL'''), commonly known as '''BPEL''' ('''Business Process Execution Language'''), is an [[OASIS (organization)|OASIS]]<ref>OASIS Standard WS-BPEL 2.0</ref> standard executable language for specifying actions within [[business process]]es with [[web service]]s.
==Overview==
One can describe
# 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.
WS-BPEL aims to model the behavior of processes,<ref>[http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdf Business Process Execution Language for Web Services, Version 1.1]
As such, it is serialized in [[
==Programming in the large/small==
The concepts of ''programming in the large'' and ''programming in the small'' distinguish between two aspects of writing the type of long-running asynchronous processes that one typically sees in business processes:
# ''Programming in the large'' generally refers to the high-level [[state transition system|state transition]] interactions of a process. BPEL refers to this concept as an Abstract Process.
# ''Programming in the small'', in contrast, deals with short-lived programmatic behavior, often executed as a single transaction and involving access to local logic and resources such as [[computer file|file]]s, [[database]]s, et cetera.
Line 25 ⟶ 47:
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'''<ref>{{cite web|url=http://xml.coverpages.org/wsfl.html |title=Cover Pages: Web Services Flow Language (WSFL) |publisher=xml.coverpages.org/ |date=
With the advent and popularity of [[Business Process Modeling Language|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 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.{{Citation needed|date=June 2008}}
==Topics==
Line 36 ⟶ 57:
===Design goals===
There were ten original design goals associated with BPEL:
# Define business processes that interact with external entities through web service operations defined using [[Web Services Description Language
# Define business processes using an XML-based language.
# Define a set of Web service orchestration concepts that are meant to be used by both the external (abstract) and internal (executable) views of a business process.
# Provide both hierarchical and graph-like control regimes, and allow their use to be blended as seamlessly as possible.
# Provide data manipulation functions for the simple manipulation of data needed to define process data and control flow.
# Support an identification mechanism for process instances that allows the definition of instance identifiers at the application message level.
# Support the implicit creation and termination of process instances as the basic lifecycle mechanism.
# Define a long-running transaction model that is based on proven techniques like compensation actions and scoping to support failure recovery for parts of long-running business processes.
# Use Web Services as the model for process decomposition and assembly.
Line 48 ⟶ 69:
===The BPEL language===
BPEL is an [[Orchestration (
BPEL's focus on modern business processes, plus the histories of WSFL and XLANG, led BPEL to adopt web services as its external communication mechanism.
In addition to providing facilities to enable sending and receiving messages, the BPEL programming language also supports:
Line 61 ⟶ 82:
===Relationship of BPEL to BPMN===
There is no standard graphical notation for WS-BPEL, as the OASIS technical committee decided this was out of scope.
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.
===Adding 'programming in the small' support to 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.
===BPEL4People===
Line 88 ⟶ 109:
The ''WS-HumanTask'' specification introduces the definition of human tasks and notifications, including their properties, behavior and a set of operations used to manipulate human tasks. A coordination protocol is introduced in order to control autonomy and life cycle of service-enabled human tasks in an interoperable manner.
The ''BPEL4People'' specification
===WS-BPEL 2.0===
Version 2.0 introduced some changes and new features:
* New activity types: {{tt|repeatUntil, validate, forEach}} (parallel and sequential), {{tt|rethrow, extensionActivity, compensateScope}}
* Renamed activities: {{tt|switch/case}} renamed to {{tt|if/else}}, {{tt|terminate}} renamed to {{tt|exit}}
* Termination Handler added to scope activities to provide explicit behavior for termination
* Variable initialization
* [[XSLT]] for variable transformations (New XPath extension function {{code|bpws:doXslTransform}})
* [[XPath]] access to variable data (XPath variable syntax {{code|$variable[.part]/___location|xquery}})
* XML schema variables in Web service activities (for WS-I doc/lit style service interactions)
* Locally declared messageExchange (internal correlation of receive and reply activities)
Line 116 ⟶ 137:
==References==
{{
{{Reflist}}
Line 124 ⟶ 145:
{{OASIS Standards}}
{{Authority control}}
[[Category:XML-based standards]]
|