Chapter 9. Integration into business processes 295
BPEL technology
If you have been implementing message flows in WebSphere Business
Integration Message Broker or process flows in WebSphere Business Integration
Workflow, then you are probably familiar with a lot of the concepts of BPEL
technology.
BPEL aims to provide a language that formally specifies business processes
based on Web services, thus extending the Web services interaction model to
support business processes. IBM have extended the standard BPEL
specification (sometimes referred to as BPEL+) to support Java snippet and Staff
activities.
Using a services-based architecture style, we exposed our components and
business processes using Web services technologies. We created composite
applications by using (or rather reusing) services. BPEL is crucial for business
process interoperability across Web services. Running business processes over
Web services is crucial for enterprise adoption of Web Services.
BPEL is best suited to provide the standards-based solution that addresses not
only business process representation and execution but also the sharing of
business processes across disparate systems. Business processes specified in
BPEL are fully executable and they are portable between BPEL compliant
environments. A BPEL business process interoperates with the Web services of
its partners, whether these Web services are realized based on BPEL.
BPEL is based on XML and WSDL. WSDL offers a very flexible binding
framework. SOAP over HTTP is only one binding. Other bindings allow
developers to reach out to EJB/RMI components, JMS destinations or even Java
objects without any performance degradation. The only constraint is that the
input and output parameters have to be describable using XML schema.
However, this is a very good constraint because it creates an important
abstraction which allows for better tooling.
For additional information about the specification, you can refer to the Business
Process Execution Language for Web Services Version 1.1 at:
http://ibm.com/developerworks/library/ws-bpel/
Definition: BPEL is an XML-based language for describing a flow of
messages across a set of services. Example:
???? First send message A to service A
???? Then wait until you receive message B from service B
???? Then tranform message B into message C
???? Then send message C in parallel to service D and Service F