orchestration choreography and collaboration in web
play

Orchestration, Choreography and Collaboration in Web Services and - PowerPoint PPT Presentation

Orchestration, Choreography and Collaboration in Web Services and ebXML Ron Ten-Hove Staff Software Engineer Sun Microsystems | JavaOne 2003 | Session 3176 Goals Examine message sequencing in Web Services and Business Web Services 2


  1. Orchestration, Choreography and Collaboration in Web Services and ebXML Ron Ten-Hove Staff Software Engineer Sun Microsystems | JavaOne 2003 | Session 3176

  2. Goals Examine message sequencing in Web Services and Business Web Services 2 | JavaOne 2003 | Session 3176

  3. Ron Ten-Hove • Staff Engineer, Sun Java™ Web Services Business Integration Product Development ─ Developed EAI Products for Forté Software (now part of Sun Microsystems) ─ EAI Web Services ─ ebXML BPSS ─ WSCI ─ JSR 208 • Et cetera 3 | JavaOne 2003 | Session 3176

  4. The next important area of development of Web Services is so-called Choreography. Many new concepts and specifications are emerging. 4 | JavaOne 2003 | Session 3176

  5. Agenda • Definitions • Abstract Models • Web Services • Business Web Services • Summary 5 | JavaOne 2003 | Session 3176

  6. Service-Oriented Architecture (SOA) • Services, Services Everywhere • Business Processes: ─ Use Services ─ Provide Services • Useful EAI Approach • SOAP + WSDL = Web Services • ebXML Business Web Services 6 | JavaOne 2003 | Session 3176

  7. Some Terminology (WS Flavored) • Collaboration ─ Two or more peers ─ Business-oriented goals • Orchestration ─ Running business processes • Choreography ─ Sequencing “interface” ─ Client/Server 7 | JavaOne 2003 | Session 3176

  8. Definitions (Cont.) Trading Partner’s Service Service Firewall Process Engine Service Service Service 8 | JavaOne 2003 | Session 3176

  9. Definitions (Cont.) Trading Partner’s Service Collaboration Service Firewall Process Engine Service Service Service 9 | JavaOne 2003 | Session 3176

  10. Definitions (Cont.) Trading Partner’s Service Collaboration Service Firewall Process Engine Orchestration Service Service Service 10 | JavaOne 2003 | Session 3176

  11. Definitions (Cont.) Trading Partner’s Service Collaboration Service Firewall Process Engine Orchestration Choreography Service Service Service 11 | JavaOne 2003 | Session 3176

  12. Choreography • Sequencing of Service operations • Direct dependencies • Interface ─ Observable messages • Constrains client using Service 12 | JavaOne 2003 | Session 3176

  13. Orchestration • Process Engine ─ Invokes Services ─ Offers Services ─ Stateful ─ Complex rules: • Sequencing • Concurrent sequences (flows) • Synchronization of flows • Conforms to Choreography for each Service used 13 | JavaOne 2003 | Session 3176

  14. Collaboration • B2B (Peer-to-peer) • Message exchange only • Like paired services, but ─ Uses Internet ─ Trading Partner Agreement ─ Business Semantics • Electronic Data Interchange (EDI) 14 | JavaOne 2003 | Session 3176

  15. Abstract Models • Abstract Models ─ Influence Specifications ─ Model Checking ─ Emphasize certain aspects • π -Calculus • Petri Nets • State Diagrams/Activity Diagrams 15 | JavaOne 2003 | Session 3176

  16. π -Calculus • Model of concurrent computation • Interacting, named agents • Dynamic configuration • “Calculus of Mobile Processes” • Influence on newer process specifications _ _ <C> x y u y A B _ _ <foo> z z z _ u C 16 | JavaOne 2003 | Session 3176

  17. Petri Nets • Model of concurrent, interacting systems • Graph of ─ Places ─ Transitions ─ Directed arcs connecting transitions and places • Models ─ Collaboration ─ Orchestration • Good for modeling, not execution 17 | JavaOne 2003 | Session 3176

  18. Petri Nets 18 | JavaOne 2003 | Session 3176

  19. State Machine • States linked by directed transitions • More detail than Petri net • Simple synchronization primitives • Models ─ Simple orchestration ─ Most choreographies • UML StateChart, Sequential Function Chart, Grafcet, etc. 19 | JavaOne 2003 | Session 3176

  20. State Diagram Place Order Book Shipping Arrange Insurance 20 | JavaOne 2003 | Session 3176

  21. Activity Diagrams • UML variation of State Machine • Roles (“Swim lanes”) • Initiating role • Message exchange between roles • Models ─ Collaboration ─ Orchestration (optionally) 21 | JavaOne 2003 | Session 3176

  22. Activity Diagrams Buyer Seller Accept Send Quote Receipt Request Accept Send Receipt Receipt et cetera... 22 | JavaOne 2003 | Session 3176

  23. Web Services • Technology stack Application • Based on web protocols SOAP • Port 80 as a tunnel HTTP • SOAP 1.1 ─ RPC TCP ─ Message exchange IP • WSDL 1.1 ─ Description of service Datalink ─ Bind service to SOAP Physical 23 | JavaOne 2003 | Session 3176

  24. The Problem With Web Services • Web Services Description Language 1.1 ─ Operations, Operations Everywhere ─ Services modeled as message exchanges ─ Unordered • No Choreography • No Collaboration ─ Paired services pattern • Orchestration: Not applicable 24 | JavaOne 2003 | Session 3176

  25. WSDL Structure Part Part Part Part Message Message ... Operation Port Type Binding ... Port ... Service ... Adapted from: Microsoft MSDN 25 | JavaOne 2003 | Session 3176

  26. WSDL Structure Part Part Part Part Abstract Message Message Endpoint Type ... Operation Port Type Binding ... Port ... Service ... Adapted from: Microsoft MSDN 26 | JavaOne 2003 | Session 3176

  27. WSDL Structure Part Part Part Part Abstract Message Message Endpoint Type ... Operation Port Type Binding ... Concrete Endpoint Port ... Service ... Adapted from: Microsoft MSDN 27 | JavaOne 2003 | Session 3176

  28. WSDL Structure Part Part Part Part Abstract Message Message Endpoint Type ... Operation Port Type Binding ... Concrete Endpoint Port ... Endpoint Instance Service ... Adapted from: Microsoft MSDN 28 | JavaOne 2003 | Session 3176

  29. WSDL Structure Part Part Part Part Abstract Message Message Endpoint Type ... Operation Port Type Binding ... Concrete Endpoint Port ... Endpoint Instance Service ... Adapted from: Microsoft MSDN 29 | JavaOne 2003 | Session 3176

  30. Web Service Choreography • Layered on top of PortType ─ Reuse • Client/Service contract • Ordering of Operation invocations 30 | JavaOne 2003 | Session 3176

  31. Choreography Example Read() Open for ) Update ( n i LogOff() m d A n i g o L Update() Idle Read() L LogOff() o g i n U s e r ( ) Open for Read 31 | JavaOne 2003 | Session 3176

  32. Simple Choreography Isn’t Enough • Pure Client/Service ─ Only one initiator ─ Synchronous Messaging • Single Service Only 32 | JavaOne 2003 | Session 3176

  33. Specifications to the Rescue • WSCL 1.0 ─ Basic choreography language ─ Layered directly atop WSDL 1.1 • WSCI 1.0 ─ Rich choreography language ─ Layered directly atop WSDL 1.1 • BPEL4WS ─ Broad orchestration language ─ Choreography support ─ Layered directly atop WSDL 1.1 33 | JavaOne 2003 | Session 3176

  34. Added Features • Correlation • Transactions • Exceptions • Compensation • Roles • Dynamic Participation 34 | JavaOne 2003 | Session 3176

  35. Correlation • Asynchronous responses ─ How to correlate to request? • ebXML message meta-data ─ Unique message IDs ─ Ref-to message ID • Use message content ─ E.g., purchase order number • Multiple correlation items possible 35 | JavaOne 2003 | Session 3176

  36. Correlation Example Buyer Seller /po/head@no Send Purchase Accept Order PO /inv/ref/po /inv/id/num Accept Send Invoice Invoice /pay/ref/inv Send Ship Payment Goods 36 | JavaOne 2003 | Session 3176

  37. Transactions • Multiple operations complete or fail like a single one • Various models: ─ ACID—Atomic • Locks resources • Costly for long-running operations ─ Nested (Open) • Relaxes isolation requirement • Complex error recovery • In tension with loose coupling 37 | JavaOne 2003 | Session 3176

  38. Exceptions • Choreography distinguishes: ─ “Happy path” ─ Error paths • Technical problems • Fault response from Service – Multiple types • Error paths can ─ Retry ─ Complain ─ Clean up 38 | JavaOne 2003 | Session 3176

  39. Compensation • Undo a committed transaction/operation ─ Needed in open transaction model ─ Distinct from rollback • Explicit compensation handler ─ Sequence of operations to achieve “undo” 39 | JavaOne 2003 | Session 3176

  40. Roles • Assigning role names to port types • Pairing roles ─ E.g., Buyer, Seller ─ Links port types directly 40 | JavaOne 2003 | Session 3176

  41. Dynamic Participation • Selection of target service at run-time • Uses dynamic data ─ Message contents ─ Previous message contents • π -Calculus influence ─ Service address is a channel ─ Port type is channel type 41 | JavaOne 2003 | Session 3176

  42. Business Web Services Trading Partner’s Services Business Services Business Services Interfaces Interfaces Service Firewall Process Engine Service Service Service 42 | JavaOne 2003 | Session 3176

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend