BPEL definition

来源:互联网 发布:mac怎么清理垃圾 编辑:程序博客网 时间:2024/05/17 22:44

Business Process Execution Language

From Wikipedia, the free encyclopedia

Jump to: navigation, search

Business Process Execution Language (or BPEL, pronounced 'bipple', or 'bee-pell'), is a business process modeling language that is executable. The origins of BPEL can be traced to WSFL and XLANG. It is serialized in XML and aims to enable programming in the large. 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.

Contents

[hide]
  • 1 Purpose
  • 2 BPEL Design Goals
  • 3 The BPEL language
  • 4 What's new in WS-BPEL 2.0?
  • 5 Adding 'programming in the small' support to BPEL
  • 6 History
  • 7 Relationship of BPEL to BPMN
  • 8 See also
    • 8.1 Standards
    • 8.2 BPEL and business process sites
    • 8.3 BPEL articles

[edit] Purpose

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. 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, etc. BPEL's development came out of the notion that programming in the large and programming in the small required different types of languages.

[edit] BPEL Design Goals

There were ten original design goals associated with BPEL:

  1. Define business processes that interact with external entities through Web Service operations defined using 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.
  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.

[edit] The BPEL language

BPEL is an Orchestration language, not a choreography language (see Web Service Choreography). The primary difference between orchestration and choreography is scope. An orchestration model provides a scope specifically focusing on the view of one participant (e.g. a peer to peer model). Instead, a choreography model encompasses all parties and their associated interactions giving a global view of the system. The orchestration and the choreography distinctions are based on analogies: orchestration describes central control of behavior as a conductor in an orchestra, while choreography is about distributed control of behavior where individual participants perform processing based on outside events, as in a choreographed dance where dancers react to behaviors of their peers.

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:

  • A property-based message correlation mechanism
  • XML and WSDL typed variables
  • An extensible language plug-in model to allow writing expressions and queries in multiple languages: BPEL supports Xpath 1.0 by default
  • Structured-programming constructs including if-then-elseif-else, while, sequence (to enable executing commands in order) and flow (to enable executing commands in parallel)
  • A scoping system to allow the encapsulation of logic with local variables, fault-handlers, compensation-handlers and event-handlers
  • Serialized scopes to control concurrent access to variables

[edit] What's new in WS-BPEL 2.0?

  • New activity types: repeatUntil, validate, forEach (parallel and sequential), rethrow, extensionActivity, compensateScope
  • Renamed activities: switch/case renamed to if/else, terminate renamed to exit
  • Termination Handler added to scope activities to provide explicit behavior for termination
  • Variable initialization
  • XSLT for variable transformations (New XPath extension function bpws:doXslTransform)
  • XPath access to variable data (XPath variable syntax $variable[.part]/location)
  • 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)
  • Clarification of Abstract Processes (syntax and semantics)
  • Enable expression language overrides at each activity

[edit] 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. 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.

[edit] History

IBM and Microsoft had each defined their own, fairly similar, 'programming in the large' languages, WSFL and XLANG, respectively. 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 was done to align BPEL with other Web Service standard naming conventions which start with WS- and accounts for the significant enhancements between BPEL4WS 1.1 and WS-BPEL 2.0. If you are not discussing a specific version, BPEL is sufficient.

In June 2007, Active Endpoints, Adobe, BEA, IBM, Oracle and SAP published the BPEL4People and WS-HumanTask specifications, which describe how human interaction in BPEL processes can be implemented.

[edit] 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. 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, etc.) 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 Modeling 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.

[edit] See also

  • List of BPEL engines
  • BPEL4People
  • Business Process Management
  • Business Process Modeling Notation
  • Web Services Conversation Language
  • WS-CDL [1]
  • Workflow
  • XML Process Definition Language
  • Yet Another Workflow Language

[edit] Standards

  • WS-BPEL 2.0 specification (OASIS standard)
  • OASIS WSBPEL TC Webpage
  • OASIS WSBPEL TC Issues List
  • Latest editor's copies of OASIS WSBPEL TC Specs
  • The BPEL4WS 1.1 specification

[edit] BPEL and business process sites

  • The Eclipse STP BPMN Diagram Editor
  • Orchestra, Open source BPEL Engine, designer, admin and real time monitoring tool
  • ActiveBPEL, Open source BPEL server and BPEL samples
  • Business Process Management Initiative Web Site
  • Business Modeling Forum
  • BPEL Resource Guide
  • Service Interaction Patterns (with BPEL code samples)
  • Service Interaction Patterns (with BPMN diagrams that match BPEL code samples)
  • The Open Source BPMS (Eclipse and Apache-based)
  • Apache ODE, Open source BPEL server
  • NetBeans Enterprise Pack
  • BPEL for Windows Workflow Foundation

[edit] BPEL articles

  • BPEL BluePrints: Web Services Orchestration Using BPEL - presented by the Java BluePrints Solutions Catalog
  • "SOA Best Practices: The BPEL Cookbook" - BPEL howto's from Oracle
  • "Pattern-based Evaluation of Oracle BPEL"
  • "What is BPEL and Why is it so important to my business?" - BPEL Primer from SoftCare
  • Description of the upcoming changes from BPEL 1.1 to BPEL 2.0
  • Oracle Article: Weaving Web Services Together
  • BPEL for Programmers and Architects (slides)
  • The Promise of Portable Business Processes
  • BPEL and Java
  • Process-centric realization of SOA: BPEL moves into the limelight
  • Validating BPEL Specifications using OCL
  • IBM Article: Business Process Choreography in WebSphere: Combining the Power of BPEL and J2EE
  • BPEL Primer
  • WS-BPEL Extension for Sub-processes, BPEL-SPE
  • Analysis of Web Services Composition Languages: The Case of BPEL4WS
  • BPEL Begone - How useful is this Standard?
  • Pattern-based Evaluation of IBM WebSphere BPEL
  • BPEL in SCA assembly model
 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 取保保证金不退怎么办 被诬陷经济诈骗怎么办 醉驾刑事拘留后怎么办 被别人举报赌博怎么办 涉黄刑事拘留怎么办取保候审 换了车牌保险怎么办 车辆转让后保险怎么办 立案后警察不管怎么办 打架后对方讹人怎么办 工商被恶意举报怎么办 店铺被工商举报怎么办 被买单侠恐吓怎么办? 团伙作案刑事拘留怎么办取保 欢乐麻将老输怎么办 回不了家怎么办身份证 没注意闯红灯了怎么办 摩托车被套牌了怎么办? 发现员工偷钱怎么办 盗窃刑事拘留7天怎么办 盗窃抓不到人怎么办 发现宿舍被盗后怎么办(  ) 发现宿舍被盗后怎么办() 回收到赃物电瓶怎么办 不知情买了赃物怎么办 盗窃单位要报警怎么办 上网吸烟被逮住怎么办 有人在微信骂我怎么办 网吧抽烟被拍照怎么办 诈骗被拘留该怎么办 行政拘留人跑了怎么办 车牌号被偷了怎么办 当员工提出辞职怎么办 老员工提出辞职怎么办 家人进看守所了怎么办 被贷款中介诈骗怎么办 喝完酒吐难受怎么办 犯罪嫌疑人死在看守所怎么办 犯罪嫌疑人死不承认怎么办 高血压进了看守所怎么办 看守所里被欺负怎么办 老师上课迟到了怎么办