Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Audience Questions: Who’s in the audience? IT Workers, developers? Who’s using Web Services today? How are you using web services? Internal integration projects? B2B Partner integration? Sell service based applications
  • Who’s in the audience? IT Workers, developers? Who’s using Web Services today? How are you using web services? Internal integration projects? B2B Partner integration? Sell service based applications Integration becomes a first order concern The application is the network
  • Key Standards, WS-Security and WS-RM are still maturing …
  • Archictural Pattern: Producer, Consumer, Registry
  • The Service Oriented Paradigm applies the lessons learned from the distributed component era. There is no successful enterprise-wide component architecture. Enterprise-wide deployment of components fails. Successful deployments of distributed systems were loosely coupled, message based, location aware and focused on a given problem.
  • TODO: Fix The Arrows! The Design Tool Is Pulling In The Service Descriptions
  • Segue to BPEL
  • Welcome to the anglebracket portion of the talk
  • Where does BPEL fit into the WS-* Family of specifications? BPEL fit well in this world of modular standards. It builds on WSDL and consequently also on XML Schema. It integrates WS-Addressing and is expected to integrate with WS-Coordination for transaction control. Since it builds on WSDL it can also implicitly leverage WS-Policy(Assertion) to advertise the policies of processes it exposes.
  • Now let’s look at the structure of a BPEL process and the language elements that allow to control the process flow. We will go into more details shortly.
  • Move data from one message to another, transform on during the move, even use for dynamic selection of partner services.
  • Harvest the benefits of a commodity market, like the PC market
  • BPEL

    1. 1. Web Service Orchestration with BPEL Christoph Schittko Principal Consultant Momentum Software
    2. 2. Overview <ul><li>Service Oriented Architecture </li></ul><ul><li>Service Orchestration </li></ul><ul><li>Understanding BPEL </li></ul><ul><li>Orchestration Demo </li></ul>
    3. 3. Why Is This Talk Important? <ul><li>Web Services Emerge As The Common Integration Technology </li></ul><ul><li>Web Services Emerge As The Foundation For Next Generation Distributed Applications </li></ul><ul><li>Service Oriented Architecture Harnesses These Trends </li></ul><ul><li>Service Orchestration Enables Efficient Service Orientation </li></ul>
    4. 4. Web Services Are Coming! <ul><li>We Are At The End Of The Pioneer Phase </li></ul><ul><ul><li>Internal Web Services Are Deployed! </li></ul></ul><ul><ul><li>Commercial Web Services Are Emerging </li></ul></ul><ul><li>Key Standards WS-* Are Still Maturing </li></ul><ul><li>Toolkits are Maturing </li></ul>
    5. 5. Service Oriented Architecture
    6. 6. SOA Drivers <ul><li>Prepare For Change </li></ul><ul><ul><li>Changing Business Processes </li></ul></ul><ul><ul><ul><li>Adjust To Business Climate </li></ul></ul></ul><ul><ul><ul><li>New Legislature </li></ul></ul></ul><ul><ul><ul><li>Corporate Mergers </li></ul></ul></ul><ul><ul><li>Changing Business Partners </li></ul></ul><ul><ul><ul><li>New Suppliers </li></ul></ul></ul><ul><ul><ul><li>New Customers </li></ul></ul></ul><ul><li>Change Needs To Be Easy and Inexpensive </li></ul>
    7. 7. Service Based Architecture Defined <ul><li>Autonomous Services </li></ul><ul><li>Message Based Communication </li></ul><ul><li>Alignment With Business Processes </li></ul><ul><li>Services Are THE Building Blocks For Applications </li></ul><ul><ul><li>B2B (Business to Business) </li></ul></ul><ul><ul><li>A2A (Application to Application) </li></ul></ul>
    8. 8. Service Orchestration
    9. 9. Orchestration vs. Choreography <ul><li>Orchestration A Single Director In Control </li></ul><ul><li>Choreography Defines Interaction. WS-Choreography describes Publicly Visible Message Exchange </li></ul>
    10. 10. The Perfect Match: SOA + Orchestration <ul><li>SOA + Orchestration = </li></ul><ul><ul><li>Externalized Processes & Process Visibility </li></ul></ul><ul><ul><li>High Degree Of Flexibility </li></ul></ul><ul><ul><li>Low Cost Of Change </li></ul></ul><ul><ul><li>Business Agility </li></ul></ul>
    11. 11. Product Suites are Migrating to SOA <ul><li>Cumbersome monolithic suites with self-sufficient architectures are out </li></ul><ul><li>Replaced by decoupled application modules with web service interoperability wrappers </li></ul><ul><ul><li>Lower acquisition and maintenance costs </li></ul></ul><ul><ul><li>Enables best-of-breed module assembly </li></ul></ul><ul><ul><li>Reduces vendor lock-in </li></ul></ul>Legacy Custom Module Enterprise Software Suite Module Module Shared Service Shared Service Shared Service Shared Service WS wrappers Module Module Module Directory Services WS Integration
    12. 12. Service Orchestration Solution <ul><li>Integration and process automation between web services only </li></ul><ul><li>Standardized BPEL process orchestrations </li></ul><ul><li>Ideal fit for organizations with SOA implementations, and multi-vendor best-of-breed BPM approach </li></ul>Typical Product Suite: Web Service Security Transactions Activity Monitor Orchestration Engine Process Designer Data Store <ul><li>Database </li></ul><ul><li>MQ </li></ul>Scalability, Clustering, Fault Tolerance
    13. 13. Orchestration Components <ul><li>Design Time Tools </li></ul><ul><ul><li>Service Management (WSDL, endpoints) </li></ul></ul><ul><ul><li>Define Process Flow </li></ul></ul><ul><ul><li>Process State Monitoring </li></ul></ul><ul><ul><li>Exception Management </li></ul></ul><ul><li>Run Time Environment </li></ul><ul><ul><li>Expose Process As A Web Service </li></ul></ul><ul><ul><li>Execute Processes </li></ul></ul><ul><ul><li>(De-)Hydrate Process State </li></ul></ul><ul><ul><li>Data Mapping </li></ul></ul><ul><ul><li>Debugging </li></ul></ul><ul><ul><li>Deployment </li></ul></ul>
    14. 14. Developing Orchestrations Services <process> <sequence> <receive … /> <invoke … /> </sequence> </process> Design Tool BPEL Process Orchestration Engine Process Designer Publishes To .NET Java Siebel
    15. 15. Executing Orchestrations <process> <sequence> <receive … /> <invoke … /> </sequence> </process> Loan Service (Orchestration) Credit Validation Service Loan Service 1 Loan Service 2 You’re approved!
    16. 16. Orchestration Environments <ul><li>Limited Support Orchestration Standards </li></ul><ul><ul><li>webMethods </li></ul></ul><ul><ul><li>BizTalk 2000 / 2002 (2004) </li></ul></ul><ul><ul><li>Intalio </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Industry Rallies around BPEL </li></ul><ul><ul><li>OpenStorm Orchestration Suite </li></ul></ul><ul><ul><li>Collaxa </li></ul></ul><ul><ul><li>Microsoft BizTalk 2004 </li></ul></ul><ul><ul><li>IBM Web Sphere Process Choreographer </li></ul></ul><ul><ul><li>Many more… </li></ul></ul>BPML BPEL XLang WSFL WSCI
    17. 17. Service Orchestration With BPEL What can you do with BPEL?
    18. 18. What Is BPEL? <ul><li>B usiness P rocess E xecution L anguage, platform independent, XML-based </li></ul><ul><li>A language to specify the behavior of business processes between Web services and as Web services </li></ul><ul><li>Contains process flow constructs for conditional branching, parallel processes, nested sub-processes, process joins, etc. </li></ul><ul><li>Uses WSDL to describe process interfaces so that they can be more easily integrated into other processes or applications. </li></ul><ul><li>Provided as an open standard under royalty free terms. </li></ul>
    19. 19. BPEL Goals <ul><li>Platform independence – XML based language (Java, .Net implementations available) </li></ul><ul><li>Services and Messages are first order citizens </li></ul><ul><li>Provide an asynchronous programming model </li></ul><ul><li>Leverage runtime metadata based interface like WSDL </li></ul><ul><li>‘ enterprise ready’ (security, transactional, reliable, scalable, etc.) </li></ul>
    20. 20. BPEL In The Web Service Stack HTTP, MQ, SMTP Transport XML SOAP Messaging XSD, WSDL, WS-Policy Description UDDI Discovery WS- Reliable Messaging Quality Of Service BPEL4WS Process WS- Security WS- BA WS- Coordination
    21. 21. BPEL Structure Overview <ul><ul><ul><ul><li><process> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><partners> … </partners> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><variables> … </variables> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><correlationSets> … </correlationSets> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><faultHandler> … <faultHandler> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><compensationHandler> … </compensationHandler> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><eventHandler> … </eventHandler> </li></ul></ul></ul></ul><ul><ul><ul><ul><li>(activities)* </li></ul></ul></ul></ul><ul><ul><ul><ul><li></process> </li></ul></ul></ul></ul><ul><ul><ul><ul><li>activities = <receive>, <reply>, <invoke>, <assign>, <throw>, <terminate>, <wait>, <empty>, <sequence>, <switch>, <while>, <pick>, <flow>, <scope>, <compensation> </li></ul></ul></ul></ul>Instance Matching Transaction management Process Flow Process State Partner / Role Definitions Exception Handling Events BPEL 1.1 Syntax
    22. 22. BPEL Activities <ul><li><sequence> </li></ul><ul><li><flow> </li></ul><ul><li><pick> </li></ul>Serialized <send>, <receive>, <invoke>, <…> parallel <send>, <receive>, <invoke>, <…> Wait for one or more <receive> or an alarm condition
    23. 23. BPEL Flow Control <ul><li><switch> <case /> <otherwise /> </switch> </li></ul><ul><li>While </li></ul><ul><li>Wait </li></ul>
    24. 24. BPEL Data Manipulation <ul><li>Scoped via <scope> </li></ul><ul><li>Assignments between Variables using XPath 1.0 </li></ul><ul><li>< assign > </li></ul><ul><li>< copy > </li></ul><ul><li>< from variable=&quot;AutoLoanRequest&quot; </li></ul><ul><li>part=&quot;creditRating&quot; query=&quot;/creditRating/text()&quot;/> </li></ul><ul><li>< to variable=&quot;InterstateCarLoanRequest&quot; part=&quot;credit&quot; query=&quot;/credit/text()&quot;/> </li></ul><ul><li></ copy > </li></ul><ul><li></ assign > </li></ul>
    25. 25. <ul><li>< propertyAlias propertyName=&quot;orderNumber&quot; </li></ul><ul><li>messageType=&quot;POMessage&quot; part=&quot;PO&quot; </li></ul><ul><li>query=&quot;/PO/Order&quot;/> </li></ul><ul><li>< correlationSets > </li></ul><ul><li>< correlationSet name=&quot;PurchaseOrder&quot; </li></ul><ul><li>properties=&quot;orderNumber&quot;/> </li></ul><ul><li></ correlationSets > </li></ul><ul><li>… </li></ul><ul><li><receive partnerLink=&quot;Buyer&quot; portType=&quot;PurchasingPT&quot; </li></ul><ul><li>operation=&quot;AsyncPurchase&quot; </li></ul><ul><li>variable=&quot;PO&quot;> </li></ul><ul><li>< correlations > </li></ul><ul><li>< correlation set=&quot;PurchaseOrder&quot; initiate=&quot;yes&quot;> </li></ul><ul><li></ correlations > </li></ul><ul><li></receive> </li></ul>BPEL Message Correlation
    26. 26. BPEL Transactions <ul><li>Support for transactional integrity </li></ul><ul><ul><li><compensationHandler> </li></ul></ul><ul><ul><li><invoke partnerLink=&quot;Seller&quot; </li></ul></ul><ul><ul><li>operation=&quot;SyncPurchase&quot; </li></ul></ul><ul><ul><li>… > </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><ul><li>< compensationHandler > </li></ul></ul><ul><ul><li><invoke partnerLink=&quot;Seller&quot; </li></ul></ul><ul><ul><li>operation=&quot;CancelPurchase“ …/> </li></ul></ul><ul><ul><li></ compensationHandler > </li></ul></ul><ul><ul><li></invoke> </li></ul></ul><ul><ul><li>Invoke via <compensate> </li></ul></ul><ul><li><switch> </li></ul><ul><li> <case …> </li></ul><ul><li>< compensate /> </li></ul><ul><li></case> </li></ul><ul><li>Ongoing discussions in the OASIS TC about use of WS-Coordination </li></ul>
    27. 27. BPEL Error Handling <ul><li>< faultHandlers > </li></ul><ul><li>< catchAll > </li></ul><ul><li>… </li></ul><ul><li></ catchAll > </li></ul><ul><li></ faultHandlers > </li></ul><ul><li>… </li></ul><ul><li><switch> </li></ul><ul><li><case condition= &quot;bpws:getVariableProperty(stockResult,level) > 100&quot;> </li></ul><ul><li>< throw faultName=&quot;OutOfStock&quot;/> </li></ul><ul><li></case> </li></ul>
    28. 28. Demo
    29. 29. Orchestration Products <ul><li>OpenStorm Service Orchestrator </li></ul><ul><li>Microsoft: BizTalk Server 2004, Visio </li></ul><ul><li>Collaxa </li></ul><ul><li>IBM WebSphere Process Choreographer </li></ul><ul><li>Oracle AS, JDeveloper </li></ul><ul><li>webMethods </li></ul><ul><li>Eclipse plug-in </li></ul><ul><li>Oracle: AS and JDeveloper </li></ul><ul><li>BEA WebLogic 8.1 </li></ul><ul><li>… </li></ul>
    30. 30. Why BPEL? <ul><li>Cost Pressure Through Choice </li></ul><ul><li>Scale Up </li></ul><ul><li>Mix-and-Match </li></ul><ul><li>Open Standard </li></ul><ul><li>Supported By Microsoft And IBM </li></ul>