Title: Web Service Orchestration with BPEL
1Web Service Orchestration with BPEL
- Christoph Schittko
- Principal Consultant
- Momentum Software
2Overview
- Service Oriented Architecture
- Service Orchestration
- Understanding BPEL
- Orchestration Demo
3Why Is This Talk Important?
- Web Services Emerge As The Common Integration
Technology - Web Services Emerge As The Foundation For Next
Generation Distributed Applications - Service Oriented Architecture Harnesses These
Trends - Service Orchestration Enables Efficient Service
Orientation
4Web Services Are Coming!
- We Are At The End Of The Pioneer Phase
- Internal Web Services Are Deployed!
- Commercial Web Services Are Emerging
- Key Standards WS- Are Still Maturing
- Toolkits are Maturing
5Service Oriented Architecture
6SOA Drivers
- Prepare For Change
- Changing Business Processes
- Adjust To Business Climate
- New Legislature
- Corporate Mergers
- Changing Business Partners
- New Suppliers
- New Customers
- Change Needs To Be Easy and Inexpensive
7Service Based Architecture Defined
- Autonomous Services
- Message Based Communication
- Alignment With Business Processes
- Services Are THE Building Blocks For
Applications - B2B (Business to Business)
- A2A (Application to Application)
8Service Orchestration
9Orchestration vs. Choreography
- Orchestration A Single Director In Control
- Choreography Defines Interaction. WS-Choreography
describes Publicly Visible Message Exchange
10The Perfect Match SOA Orchestration
- SOA Orchestration
- Externalized Processes Process Visibility
- High Degree Of Flexibility
- Low Cost Of Change
- Business Agility
11Product Suites are Migrating to SOA
- Cumbersome monolithic suites with self-sufficient
architectures are out - Replaced by decoupled application modules with
web service interoperability wrappers - Lower acquisition and maintenance costs
- Enables best-of-breed module assembly
- Reduces vendor lock-in
WS wrappers
Enterprise Software Suite
Module
Module
Module
Module
Module
Module
Shared Service
Shared Service
Shared Service
Shared Service
WS Integration
Legacy
Custom
Directory Services
12Service Orchestration Solution
- Integration and process automation between web
services only - Standardized BPEL process orchestrations
- Ideal fit for organizations with SOA
implementations, and multi-vendor best-of-breed
BPM approach
Typical Product Suite
13Orchestration Components
- Design Time Tools
- Service Management (WSDL, endpoints)
- Define Process Flow
- Data Mapping
- Debugging
- Deployment
- Process State Monitoring
- Exception Management
- Run Time Environment
- Expose Process As A Web Service
- Execute Processes
- (De-)Hydrate Process State
14Developing Orchestrations
Design Tool
.NET
ltprocessgt ltsequencegt ltreceive /gt
ltinvoke /gt lt/sequencegt lt/processgt
Process Designer
Services
BPEL Process
Java
Publishes To
Siebel
Orchestration Engine
15Executing Orchestrations
Youre approved!
Loan Service 1
ltprocessgt ltsequencegt ltreceive /gt
ltinvoke /gt lt/sequencegt lt/processgt
Loan Service 2
Credit Validation Service
Loan Service(Orchestration)
16Orchestration Environments
- Limited Support Orchestration Standards
- webMethods
- BizTalk 2000 / 2002 (2004)
- Intalio
-
- Industry Rallies around BPEL
- OpenStorm Orchestration Suite
- Collaxa
- Microsoft BizTalk 2004
- IBM Web Sphere Process Choreographer
- Many more
BPML
XLang
WSFL
WSCI
BPEL
17Service Orchestration With BPEL
- What can you do with BPEL?
18What Is BPEL?
- Business Process Execution Language, platform
independent, XML-based - A language to specify the behavior of business
processes between Web services and as Web
services - Contains process flow constructs for conditional
branching, parallel processes, nested
sub-processes, process joins, etc. - Uses WSDL to describe process interfaces so that
they can be more easily integrated into other
processes or applications. - Provided as an open standard under royalty free
terms.
19BPEL Goals
- Platform independence XML based language (Java,
.Net implementations available) - Services and Messages are first order citizens
- Provide an asynchronous programming model
- Leverage runtime metadata based interface like
WSDL - enterprise ready (security, transactional,
reliable, scalable, etc.)
20BPEL In The Web Service Stack
BPEL4WS
Process
WS- ReliableMessaging
Quality Of Service
WS- Security
WS-BA
WS-Coordination
UDDI
Discovery
XSD, WSDL, WS-Policy
Description
SOAP
Messaging
XML
HTTP, MQ, SMTP
Transport
21BPEL Structure Overview
Partner / Role Definitions
Process State
ltprocessgt ltpartnersgt lt/partnersgt
ltvariablesgt lt/variablesgt ltcorrelationSetsgt
lt/correlationSetsgt ltfaultHandlergt
ltfaultHandlergt ltcompensationHandlergt
lt/compensationHandlergt lteventHandlergt
lt/eventHandlergt (activities) lt/processgt acti
vities ltreceivegt, ltreplygt, ltinvokegt, ltassigngt,
ltthrowgt, ltterminategt, ltwaitgt,
ltemptygt, ltsequencegt, ltswitchgt,
ltwhilegt, ltpickgt, ltflowgt, ltscopegt, ltcompensationgt
Instance Matching
Transaction management
Exception Handling
Events
Process Flow
BPEL 1.1 Syntax
22BPEL Activities
Serialized ltsendgt, ltreceivegt, ltinvokegt, ltgt
- ltsequencegt
- ltflowgt
- ltpickgt
parallel ltsendgt, ltreceivegt, ltinvokegt, ltgt
Wait for one or more ltreceivegt or an alarm
condition
23BPEL Flow Control
- ltswitchgt ltcase /gt ltotherwise /gt lt/switchgt
- While
- Wait
24BPEL Data Manipulation
- Scoped via ltscopegt
- Assignments between Variables using XPath 1.0
- ltassigngt
- ltcopygt
- ltfrom variable"AutoLoanRequest"
- part"creditRating"
query"/creditRating/text()"/gt - ltto variable"InterstateCarLoanRequest"
part"credit" query"/credit/text()"/gt
- lt/copygt
- lt/assigngt
25BPEL Message Correlation
- ltpropertyAlias propertyName"orderNumber"
- messageType"POMessage" part"PO"
- query"/PO/Order"/gt
- ltcorrelationSetsgt
- ltcorrelationSet name"PurchaseOrder"
- properties"orderNumber"/gt
- lt/correlationSetsgt
-
- ltreceive partnerLink"Buyer" portType"PurchasingP
T" - operation"AsyncPurchase"
- variable"PO"gt
- ltcorrelationsgt
- ltcorrelation set"PurchaseOrder"
initiate"yes"gt - lt/correlationsgt
- lt/receivegt
26BPEL Transactions
- Support for transactional integrity
- ltcompensationHandlergt
- ltinvoke partnerLink"Seller"
- operation"SyncPurchase"
- gt
-
- ltcompensationHandlergt
- ltinvoke partnerLink"Seller"
- operation"CancelPurchase /gt
- lt/compensationHandlergt
- lt/invokegt
- Invoke via ltcompensategt
- ltswitchgt
- ltcase gt
- ltcompensate/gt
- lt/casegt
- Ongoing discussions in the OASIS TC about use of
WS-Coordination
27BPEL Error Handling
- ltfaultHandlersgt
- ltcatchAllgt
-
- lt/catchAllgt
- lt/faultHandlersgt
-
- ltswitchgt
- ltcase condition "bpwsgetVariableProperty(stockRe
sult,level) gt 100"gt - ltthrow faultName"OutOfStock"/gt
- lt/casegt
28Demo
29Orchestration Products
- OpenStorm Service Orchestrator
- Microsoft BizTalk Server 2004, Visio
- Collaxa
- IBM WebSphere Process Choreographer
- Oracle AS, JDeveloper
- webMethods
- Eclipse plug-in
- Oracle AS and JDeveloper
- BEA WebLogic 8.1
-
30Why BPEL?
- Cost Pressure Through Choice
- Scale Up
- Mix-and-Match
- Open Standard
- Supported By Microsoft And IBM