Orchestrating Web Services - Business Process Execution Language for Web Services
(Page 4 of 4 )
As we mentioned earlier, BPEL is a language that allows the modeling of participant behavior in business interactions based on Web services. These include intracompany application integration scenarios as well as B2B interactions. The language is used to compose a set of Web services into new Web services. A BPEL process manifests itself as a Web service that can be consumed by other business partners and as a requestor of Web services offered by other providers.
Let's delve into the BPEL specification. We'll explain the motivation behind the key language concepts, define an external view of the business process, and then look at how you can compose services into a new business process.
Design GoalsThe development of the BPEL language was guided by the following fundamental design goals:
Business processes interact with the external world through Web services, and the interactions are described using WSDL portType definitions. The process binding (association of portTypes to concrete service endpoints) is out of scope and addressed by the process deployment and/or runtime infrastructure. The operations of the portTypes are entry points into the process.
Business processes are described in an XML-based language. The graphical representation of business processes is outside the scope of BPEL. The language syntax is defined by a corresponding XML schema. This is a logical consequence of the fact that the business process language is built on top of Web services.
The process language defines concepts for abstract views of business protocols and internal views of a process. Executable business processes model actual behavior of a participant in a business interaction. Business protocols, in contrast, use process descriptions that specify the mutually visible message exchange behavior of each of the parties involved in the protocol, without revealing their internal behavior.
The language combines the benefits of both hierarchical languages (such as XLANG) and graph-oriented languages (such as WSFL).
A limited set of constructs is provided, sufficient for simple data manipulation needed to define process-relevant data and control flow. BPEL isn't intended to be a general-purpose data-manipulation language.
Process instances can be identified with application data defined by the business partner. No explicit factory pattern or particular instance identifier concept is required.
Process instances are implicitly created and terminated. Additional process lifecycle operations can be addressed in the future.
The process language defines a long-running transaction model based on scoping and compensation actions, providing backward recovery at a granularity chosen by the author of the process model.
Web services are used as a simple recursive modularization model for process decomposition and assembly. BPEL allows you to combine structured activities to express arbitrarily complex algorithms that represent the implementation of the service.
The language is compatible with other Web service standards, which may be developed orthogonal to the business process language itself. For example, this allows the process developer to independently address QoS attributes and process logic aspects.
The BPEL data model is built on top of WSDL 1.1 messages and XML Schema 1.0 types. All data used within a process model is defined using WSDL message definitions and XML schema types and elements. XPath 1.0 is used for data manipulation. Expressions used for the selection of data, for conditions, and for other purposes are specified as XPath expressions.
Please check back next week for the continuation of this article.