Home arrow Web Services arrow Page 4 - Orchestrating Web Services

Orchestrating Web Services

You can use existing Web services to construct more complex Web services. It involves a certain amount of choreography, however. This article gets you started. It is excerpted from chapter 12 of Building Web Services with Java: Making sense of XML, SOAP, WSDL, and UDDI, written by Steve Graham et al. (Sams; ISBN: 0672326418).

Author Info:
By: Sams Publishing
Rating: 5 stars5 stars5 stars5 stars5 stars / 3
August 03, 2006
  1. · Orchestrating Web Services
  2. · Two-Level Programming Model
  3. · SkatesTown Requirements
  4. · Business Process Execution Language for Web Services

print this article

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 Goals

The 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.

DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.

blog comments powered by Disqus

- Dealing with Loose Coupling in a Service-Ori...
- Loose Coupling in a Service-Oriented Archite...
- Safety, Idempotence, and the Resource-Orient...
- The Resource-Oriented Architecture in Action
- Features of the Resource-Oriented Architectu...
- The Resource-Oriented Architecture
- Getting Started with Flex
- Automated Billing and Faxing for the Web
- An Introduction to Web Services
- The Foundations of Web Services: From Novice...
- Web Services Reengineering: Finishing Touches
- Fault Handling with Web Services
- Flow and Web Services
- Process Lifecycles and Web Services
- Business Processes and Web Services

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 

Developer Shed Affiliates


© 2003-2019 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials