1 / 123

Choreography, Orchestration, and Contracts Languages and Techniques for Service Composition

www.sensoria-ist.eu. Choreography, Orchestration, and Contracts Languages and Techniques for Service Composition. Gianluigi Zavattaro http://cs.unibo.it/~zavattar. Department of Computer Science University of Bologna.

sarai
Download Presentation

Choreography, Orchestration, and Contracts Languages and Techniques for Service Composition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. www.sensoria-ist.eu Choreography, Orchestration, and ContractsLanguages and Techniques for Service Composition Gianluigi Zavattarohttp://cs.unibo.it/~zavattar Department of Computer ScienceUniversity of Bologna Based on joint work with: Mario Bravetti, Claudio Guidi, Ivan Lanese, Fabrizio Montesi

  2. Plan of the Talk Plan of the Talk • An “open” world of services • Service composition • Orchestration (bottom-up) • Choreography (top-down) • Contract-based service discovery • Output persistence • Strong Compliance • Message Queues • Conclusion and future work

  3. Plan of the Talk Plan of the Talk • An “open” world of services • Service composition • Orchestration (bottom-up) • Choreography (top-down) • Contract-based service discovery • Output persistence • Strong Compliance • Message Queues • Conclusion and future work

  4. An “open” world of services • Service Oriented Computing is used to design systems working in a heterogeneous and open environment where services: • may appear and disappear • may not be realiable/trustworthy • can be located worldwide • are subject to communication via network that can cause delays, failures,…

  5. Let us organize problems… • Not only the issue of inter-operability (computing across different platforms): • Loose coupling: computing across enterprise boundaries (when you use a service you must account for possible deviations from the expected behavior) • Open endedness: new services can enter, and old ones leave, while computation proceeds (you should dynamically re-build your system at run-time)

  6. An Example: Web Services • WSDL (interface definition language) • UDDI (service discovery) • SOAP (service invocation protocol) -1- -2- PUBLISH SERVICE FIND SERVICE -3- SOAP

  7. Plan of the Talk Plan of the Talk • An “open” world of services • Service composition • Orchestration (bottom-up) • Choreography (top-down) • Contract-based service discovery • Output persistency • Strong Compliance • Message Queues • Conclusion and future work

  8. Buying an electronic ticket

  9. Buying an electronic ticket Web search engines Public advertisements Friends or colleagues …

  10. Buying an electronic ticket ticketing service 1 ticketing service 2 ticketing service n

  11. Buying an electronic ticket ticketing service 1 request ticketing service 2 ticketing service n

  12. Buying an electronic ticket ticketing service 1 ticketing service 2 no ticket ticketing service n

  13. Buying an electronic ticket ticketing service 1 request ticketing service 2 ticketing service n

  14. Buying an electronic ticket ticketing service 1 ticketing service 2 no ticket ticketing service n

  15. Buying an electronic ticket ticketing service 1 ticketing service 2 request ticketing service n

  16. Buying an electronic ticket ticketing service 1 ticketing service 2 ticket ticketing service n

  17. Buying an electronic ticket[using an orchestrator]

  18. Buying an electronic ticket[using an orchestrator] request orchestrator

  19. Buying an electronic ticket[using an orchestrator] ticketing service 1 ticketing service 2 orchestrator ticketing service n

  20. Buying an electronic ticket[using an orchestrator] ticketing service 1 ticketing service 2 request request orchestrator request ticketing service n

  21. Buying an electronic ticket[using an orchestrator] ticketing service 1 ticketing service 2 orchestrator ticketing service n

  22. Buying an electronic ticket[using an orchestrator] ticketing service 1 ticketing service 2 ticket orchestrator ticketing service n

  23. Buying an electronic ticket[using an orchestrator] ticketing service 1 ticketing service 2 cancel orchestrator cancel ticketing service n

  24. Buying an electronic ticket[using an orchestrator] ticketing service 1 ticketing service 2 ticket orchestrator ticketing service n

  25. Orchestration • The orchestrator provides a new “meta”-service • Central point of coordination: it invokes several “sub”-services • The client of the “meta”-service interacts only with the orchestrator

  26. Orchestration Languages • Languages used to program orchestrators • XLANG: proposed by Microsoft in 2001 • WSFL: proposed by IBM in 2001 • WS-BPEL (formerly BPEL4WS): proposed in 2002 by a consortium including IBM, Microsoft, SAP, BEA,…

  27. XLANG: based on -calculus Start; Receive(req1,req2); ( ( Invoke(req1)@srv1; Reply(req1) ) | ( Invoke(req2)@srv2; Reply(req2) ) ); End

  28. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  29. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  30. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  31. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  32. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  33. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  34. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  35. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  36. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  37. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  38. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  39. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  40. WSFL: based on Petri-nets Receive(req1,req2) Invoke(req1)@srv1 Invoke(req2)@srv2 Reply(req1) Reply(req2)

  41. WS-BPEL: join XLANG and WSFL Start; Receive(req1,req2); ( ( Invoke(req1)@srv1;Send(intLink); Reply(req1) ) | ( Invoke(req2)@srv2; Recv(intLink); Reply(req2) ) ); End

  42. WS-BPEL • Join the WSFL and XLANG approaches • Combine Petri-nets and -calculus • Add mechanisms for event, fault, termination and compensation handling • Timed events • Long-running transactions

  43. Plan of the Talk Plan of the Talk • An “open” world of services • Service composition • Orchestration (bottom-up) • Choreography (top-down) • Contract-based service discovery • Output persistence • Strong Compliance • Message Queues • Conclusion and future work

  44. Choreography Languages • Specification language (not executable) • No central point of coordination • The composed services interact reciprocally • WS-CDL: proposed by W3C in 2004 • BPEL4Chor: recently proposed by researchers involved in WS-BPEL

  45. Web Service Choreography Description Language • Describe the interaction among the combined services from a top abstract view Choreography (e.g. WS-CDL) Top abstract view of whole system: each action is a communication involving two of its participants Orchestration (e.g. WS-BPEL) One Party detailed view of the system that orchestrates a part of it by sending (to other parties) & receiving messages

  46. Similar to Specification of Chryptographic Protocols • Protocol for the request to a trusted entity of the creation of a session key: Alice  Trent: Alice, Bob Trent  Alice: {KAB}KA , {KAB}KB Alice  Bob: {KAB}KB

  47. Similar to UML Sequence Diagrams

  48. WS-CDL • Global view of service interactions Seller Buyer Bank

  49. WS-CDL • Global view of service interactions Seller Request Buyer Bank

  50. WS-CDL • Global view of service interactions Seller Request Offer Buyer PayDescr Bank

More Related