Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Overview  





2 Programming in the large/small  





3 History  





4 Topics  



4.1  Design goals  





4.2  The BPEL language  





4.3  Relationship of BPEL to BPMN  





4.4  Adding 'programming in the small' support to BPEL  





4.5  BPEL4People  



4.5.1  Objectives  







4.6  WS-BPEL 2.0  







5 See also  





6 References  





7 Further reading  














Business Process Execution Language






Dansk
Deutsch
Español
فارسی
Français

Italiano
Magyar

Polski
Português
Română
Русский
Svenska
Українська


 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

(Redirected from BPEL4WS)

WS-BPEL
Web Services Business Process Execution Language
AbbreviationWS-BPEL or BPEL
StatusPublished
Year started2001 (2001)
First publishedApril 2003; 21 years ago (2003-04)
Latest version2.0
11 April 2007; 17 years ago (2007-04-11)
OrganizationOASIS
CommitteeOASIS Web Services Business Process Execution Language (WSBPEL) TC
Base standardsXML
DomainWeb service integration
Websitedocs.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[1] 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.

Overview[edit]

One can describe Web-service interactions in two ways: as executable business processes and as abstract business processes.

  1. Anexecutable business process: models an actual behavior of a participant in a business interaction.
  2. Anabstract 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,[2] 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[3] 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.

Programming in the large/small[edit]

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:

  1. Programming in the large generally refers to the high-level state transition interactions of a process. BPEL refers to this concept as an Abstract Process. A BPEL Abstract Process represents a set of publicly observable behaviors in a standardized fashion. An Abstract Process includes information such as when to wait for messages, when to send messages, when to compensate for failed transactions, etc.
  2. 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 files, databases, et cetera.

History[edit]

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[4] (Web Services Flow Language) and Xlang,[5] 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."[6]

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.[7] Although BPEL4WS appeared as both a 1.0 and 1.1 version, the OASIS WS-BPEL technical committee voted[8] 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[citation needed].

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]

Topics[edit]

Design goals[edit]

There were ten original design goals associated with BPEL:

  1. Define business processes that interact with external entities through web service operations defined using Web Services Description Language (WSDL) 1.1, and that manifest themselves as Web services defined using WSDL 1.1. The interactions are "abstract" in the sense that the dependence is on portType definitions, not on port definitions.
  2. Define business processes using an XML-based language. Do not define a graphical representation of processes or provide any particular design methodology for processes.[9]
  3. 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. Such a business process defines the behavior of a single autonomous entity, typically operating in interaction with other similar peer entities. It is recognized that each usage pattern (i.e., abstract view and executable view) will require a few specialized extensions, but these extensions are to be kept to a minimum and tested against requirements such as import/export and conformance checking that link the two usage patterns.
  4. Provide both hierarchical and graph-like control regimes, and allow their use to be blended as seamlessly as possible. This should reduce the fragmentation of the process modeling space.
  5. Provide data manipulation functions for the simple manipulation of data needed to define process data and control flow.
  6. Support an identification mechanism for process instances that allows the definition of instance identifiers at the application message level. Instance identifiers should be defined by partners and may change.
  7. Support the implicit creation and termination of process instances as the basic lifecycle mechanism. Advanced lifecycle operations such as "suspend" and "resume" may be added in future releases for enhanced lifecycle management.
  8. 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.
  9. Use Web Services as the model for process decomposition and assembly.
  10. Build on Web services standards (approved and proposed) as much as possible in a composable and modular manner.

The BPEL language[edit]

BPEL is an orchestration language, and not a choreography language. The primary difference between orchestration and choreography is executability and control. An orchestration specifies an executable process that involves message exchanges with other systems, such that the message exchange sequences are controlled by the orchestration designer. A choreography specifies a protocol for peer-to-peer interactions, defining, e.g., the legal sequences of messages exchanged with the purpose of guaranteeing interoperability. Such a protocol is not directly executable, as it allows many different realizations (processes that comply with it). A choreography can be realized by writing an orchestration (e.g., in the form of a BPEL process) for each peer involved in it. The orchestration and the choreography distinctions are based on analogies: orchestration refers to the central control (by the conductor) of the behavior of a distributed system (the orchestra consisting of many players), while choreography refers to a distributed system (the dancing team) which operates according to rules (the choreography) but without centralized control.

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. Thus BPEL's messaging facilities depend on the use of the Web Services Description Language (WSDL) 1.1 to describe outgoing and incoming messages.

In addition to providing facilities to enable sending and receiving messages, the BPEL programming language also supports:

Relationship of BPEL to BPMN[edit]

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[10] 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.[11] 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.[citation needed]

Adding 'programming in the small' support to BPEL[edit]

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[12] is an effort related to JSR 207[13] that may enable Java to function as a 'programming in the small' language within BPEL.

BPEL4People[edit]

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.

Objectives[edit]

Within the context of a business process BPEL4People

by extending BPEL with additional independent syntax and semantic.

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 introduces a WS-BPEL extension to address human interactions in WS-BPEL as a first-class citizen. It defines a new type of basic activity which uses human tasks as an implementation, and allows specifying tasks local to a process or use tasks defined outside of the process definition. This extension is based on the WS-HumanTask specification.

WS-BPEL 2.0[edit]

Version 2.0 introduced some changes and new features:

See also[edit]

References[edit]

  1. ^ OASIS Standard WS-BPEL 2.0
  • ^ Business Process Execution Language for Web Services, Version 1.1 Archived 3 December 2020 at the Wayback Machine (5 May 2003)
  • ^ "OASIS Members Form Web Services Business Process Execution Language (WSBPEL) Technical Committee". OASIS WSBPEL Technical Committee. 29 April 2003.
  • ^ "Cover Pages: Web Services Flow Language (WSFL)". xml.coverpages.org/. 6 June 2001. Retrieved 9 October 2014.
  • ^ "XLANG". xml.coverpages.org/. 2001. Retrieved 9 October 2014.
  • ^ "XLANG/s Language". Microsoft. Retrieved 9 October 2014.
  • ^ Web Services BPEL Technical Committee.
  • ^ "choreology.com". choreology.com. Archived from the original on 27 February 2012. Retrieved 17 April 2013.
  • ^ Chinosi, Michele (1 January 2009). "Representing business processes: conceptual model and design methodology". {{cite journal}}: Cite journal requires |journal= (help)
  • ^ "Archived copy" (PDF). Archived from the original (PDF) on 15 September 2012. Retrieved 17 April 2013.{{cite web}}: CS1 maint: archived copy as title (link)
  • ^ BPMN2BPEL.
  • ^ BPELJ Archived 16 May 2005 at the Wayback Machine
  • ^ JSR 207
  • Further reading[edit]

    Books on BPEL 2.0

    Retrieved from "https://en.wikipedia.org/w/index.php?title=Business_Process_Execution_Language&oldid=1189662744"

    Categories: 
    XML-based standards
    Web service specifications
    Workflow languages
    Hidden categories: 
    Webarchive template wayback links
    CS1 errors: missing periodical
    CS1 maint: archived copy as title
    Articles with short description
    Short description is different from Wikidata
    Use dmy dates from January 2020
    Articles needing cleanup from July 2016
    All pages needing cleanup
    Cleanup tagged articles with a reason field from July 2016
    Wikipedia pages needing cleanup from July 2016
    Articles lacking reliable references from October 2012
    All articles lacking reliable references
    Articles with multiple maintenance issues
    All articles with unsourced statements
    Articles with unsourced statements from June 2008
    Articles with unsourced statements from July 2013
    Articles needing additional references from October 2008
    All articles needing additional references
    Articles with J9U identifiers
    Articles with LCCN identifiers
     



    This page was last edited on 13 December 2023, at 06:36 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki