Jacques and Ahmed


Published on

  • Be the first to comment

  • Be the first to like this

Jacques and Ahmed

  1. 1. Web Services Integration An “Event-Driven SOA” Hybrid Architectural Approach To Dynamic Choreography Of Ubiquitous Services
  2. 2. Web Services Integration Ubiquitous Computing Environment How to integrate ? SD MMC E -Tower Game Telephone PC DVD Audio TV STB DVC Map Info IC Card SD MMC SD MMC SIM ♪ Digital Contents Infra Info Personal Info Automobile Service Mobile Office Home Outdoor Shop
  3. 3. Web Services Integration Proposed Solution Summary Event Notification (Pushing) Service Invocation (Pulling) Style Event Message Bus (Publish / Subscribe) Event-Driven Architecture (EDA) Business Collaboration (Choreography) Service Message Bus (Request / Response) Service-Oriented Architecture (SOA) Business Process (Orchestration) Mechanism Architecture Integration
  4. 4. Web Services Integration Specifications and Standards , WS-Eventing , WS-ECA
  5. 5. Web Services Integration Orchestration vs. Choreography
  6. 6. Web Services Integration Orchestration WS-BPEL <ul><li>XML-based language used to specify business processes based on Web Services </li></ul><ul><li>BPEL processes describe </li></ul><ul><ul><li>Long running, stateful, transactional, conversations between two or more partner web services </li></ul></ul><ul><li>BPEL is key to implementing several SOA characteristics </li></ul><ul><ul><li>Conversational </li></ul></ul><ul><ul><li>Mostly Async </li></ul></ul><ul><ul><li>XML Document-based </li></ul></ul><ul><ul><li>Orchestrated </li></ul></ul>
  7. 7. Web Services Integration Choreography WS-CDL <ul><li>Expressive and rich declarative language for modeling global interaction patterns view of the multiple parties composition </li></ul><ul><ul><li>W3C standardization, Formal basis </li></ul></ul><ul><li>Still work-in-progress </li></ul><ul><ul><li>Draft state, No support from MS and IBM </li></ul></ul><ul><li>A lot of open problems </li></ul><ul><ul><li>Not an executable language </li></ul></ul><ul><ul><li>How, where, and when the coordination protocols are to be used </li></ul></ul><ul><ul><li>How to ensure/check information alignment, choreography coordination </li></ul></ul><ul><ul><li>How to analyze choreography correctness and conformance </li></ul></ul><ul><ul><li>How to generate correct behavioral interfaces </li></ul></ul>
  8. 8. Service Integration Styles Service Vs Event <ul><li>Service Invocation (Pulling ) </li></ul><ul><ul><li>One-way or two-way request/reply </li></ul></ul><ul><ul><ul><li>Request that executes a service </li></ul></ul></ul><ul><ul><ul><li>Response with service result </li></ul></ul></ul><ul><ul><li>Each request consumed exactly once, one reply per request </li></ul></ul><ul><li>Event Notification (Pushing) </li></ul><ul><ul><li>One-way; data describes an interesting occurrence </li></ul></ul><ul><ul><li>Each message consumed zero or more times </li></ul></ul>
  9. 9. Service Integration Styles Service Vs Event WS-Eventing, WS-ECA WS-BPEL, WS-CDL, WSCI, BPML Base technology Proper to complicated business environments such as ubiquitous enterprises Proper to robust business transactions Applications Push events to multiple distributed event-based systems Invoke well-defined services of providers one by one Action Initiated by event notification Initiated by service request Initiation Publish/subscribe mechanism Request/response mechanism Communication method Event Notification (pushing) Service Invocation (pulling) Category
  10. 10. Service Integration Architecture SOA vs. EDA <ul><li>Service-Oriented Architecture (SOA) </li></ul><ul><ul><li>Service requestors and service providers </li></ul></ul><ul><ul><li>Composite services, including business processes </li></ul></ul><ul><ul><li>Reuse of deployed/executing services </li></ul></ul><ul><li>Event-Driven Architecture (EDA) </li></ul><ul><ul><li>Event emitters and event handlers </li></ul></ul><ul><ul><li>Subscribe by event type, many handlers per event </li></ul></ul><ul><ul><li>Reuse of reactions to event types </li></ul></ul>
  11. 11. Service Integration Architecture SOA vs. EDA
  12. 12. Service Integration Architecture Service-Oriented Architecture (SOA) <ul><li>Service coordinator </li></ul><ul><ul><li>Requestor of multiple services </li></ul></ul><ul><ul><li>Aggregates service behavior into user application </li></ul></ul><ul><ul><li>Chooses what services to run when, passes data between them </li></ul></ul><ul><li>Service provider </li></ul><ul><ul><li>Implements a service </li></ul></ul><ul><ul><li>Can be used by any requestor </li></ul></ul>
  13. 13. Service Integration Architecture Event-Driven Architecture (EDA) <ul><li>Event producer </li></ul><ul><ul><li>Detects interesting occurrences </li></ul></ul><ul><li>Event emitter </li></ul><ul><ul><li>Reifies occurrences into events </li></ul></ul><ul><ul><li>Sends events for broadcast </li></ul></ul><ul><li>Event handler </li></ul><ul><ul><li>Receives events </li></ul></ul><ul><ul><li>Decides if and how to react </li></ul></ul><ul><li>Event consumer </li></ul><ul><ul><li>Reacts to events </li></ul></ul><ul><ul><li>Performs reaction tasks </li></ul></ul>
  14. 14. Services Integration Mechanism “Spaghetti&quot; Scenario <ul><li>Point-to-point integration and heterogeneous approaches. </li></ul><ul><li>Complex integration and dependencies between systems. </li></ul><ul><li>Very costly and time consuming to change interoperation. </li></ul>
  15. 15. Services Integration Mechanism Messaging Pattern <ul><li>Message Bus </li></ul><ul><ul><li>What architecture enables separate applications to work together but in a decoupled fashion such that applications can be easily added or removed without affecting the others? </li></ul></ul><ul><ul><li>Structure the connecting middleware between these applications as a Message Bus that enables them to work together using messaging. </li></ul></ul>
  16. 16. Services Integration Mechanism Message-Based Integration <ul><li>Loosely Coupled Solution </li></ul><ul><ul><li>Basic Elements of an Integration Solution </li></ul></ul>
  17. 17. Services Integration Mechanism Messaging Pattern <ul><li>Request-Reply </li></ul><ul><ul><li>When an application sends a message, how can it get a response from the receiver? </li></ul></ul><ul><ul><li>Send a pair of Request-Reply messages, each on its own channel. </li></ul></ul>
  18. 18. Services Integration Mechanism Messaging Pattern <ul><li>Publish-Subscribe </li></ul><ul><ul><li>How can the sender broadcast an event to all interested receivers? </li></ul></ul><ul><ul><li>Send the event on a Publish-Subscribe Channel, which delivers a copy of a particular event to each receiver. </li></ul></ul>
  19. 19. Services Integration Mechanism (Service vs. Event) Message Bus <ul><li>Service Message Bus </li></ul><ul><ul><li>Enables service invocation </li></ul></ul><ul><ul><li>Messages are request/reply </li></ul></ul><ul><li>Event Message Bus </li></ul><ul><ul><li>Enables event notification </li></ul></ul><ul><ul><li>Messages describe events publish/subscribe </li></ul></ul>
  20. 20. Services Integration Mechanism Event-driven SOA Process chain
  21. 21. Services Integration Mechanism Service(Invoke) Vs Event (Generator)
  22. 22. Services Integration Event-driven SOA Solution Model Message Bus
  23. 23. Services Integration Future Work (WS-ECA) <ul><li>WS-Eventing & SOAP </li></ul><ul><li>Use XML-Family standards </li></ul><ul><li>Web services in devices </li></ul>Device Device WS-ECA Rules Actions Invoke Service Generate extEvent Generate intEvent Events Service events Time events Internal events External events Variables Event variables Device variables ECA Rule Event Condition Action WS-ECA Rules Services WS-Eventing Service invocation WS-ECA Rules WS-ECA Rules WS-ECA Rules Services WS-ECA Rules WS-ECA Rules Web service providers Event sources WS-Eventing Service invocation
  24. 24. Service Integration Future Work <ul><li>Tie things together </li></ul><ul><ul><li>EDA SAO Framework </li></ul></ul><ul><ul><li>WS-Eventing </li></ul></ul><ul><ul><li>WS-Notification </li></ul></ul><ul><ul><li>WS-ECA </li></ul></ul><ul><ul><li>EDA patterns handle distributed coordination </li></ul></ul><ul><li>Apply to SASSY </li></ul><ul><ul><li>Hybrid (EDA-SOA) architecture paradigm in the construction of pervasive real-world software systems. </li></ul></ul>
  25. 25. Web Service Integration Q/A: Questions And Answers
  26. 26. Service Integration References <ul><li>How EDA extends SOA and why it is important, Jack van Hoof, http://jack.vanhoof.soa.eda.googlepages.com/How_EDA_extends_SOA_and_why_it_is_important_-_Jack_van_Hoof_-_v6.0_-_2006.pdf </li></ul><ul><li>Enterprise Service Integration Patterns, Bobby Woolf, http://roots.dnd.no/modules.php?op=modload&name=Downloads&file=index&req=getit&lid=221 </li></ul><ul><li>Patterns and Best Practices for Enterprise Integration, Gregor Hohpe, http://www.eaipatterns.com/ </li></ul><ul><li>Services, Architecture and a bit of Orientation SOA and Java, Steve Elliott, http://www.dubjug.org/files/ijtc2007/presentations/IJTC-SOA-sde-nov07-v2.pdf </li></ul><ul><li>A Critical Overview of the Web Services Choreography Description Language (WS-CDL), Alistair Barros, Marlon Dumas, Phillipa Oaks, http://www.bptrends.com/publicationfiles/03-05%20WP%20WS-CDL%20Barros%20et%20al.pdf </li></ul><ul><li>Combining Service-Oriented Architecture and Event-Driven Architecture using an Enterprise Service Bus, Jean-Louis Maréchaux, http://www.ibm.com/developerworks/library/ws-soa-eda-esb/index.html </li></ul>
  27. 27. Services Integration Future Work (WS-ECA) <ul><li>General structure of ECA Rule </li></ul><ul><li>Examples of ECA Rules </li></ul><ul><ul><li>(conditional response) </li></ul></ul><ul><ul><ul><li>on e1 if c1 do a1 </li></ul></ul></ul><ul><ul><ul><li>on e1 if c2 do a2 </li></ul></ul></ul><ul><ul><li>(transitive property) on e1 if c1 do { on e2 if c2 do a2} </li></ul></ul><ul><ul><ul><li>Rule 1: on e1 if c1 do a1 (  e1’) </li></ul></ul></ul><ul><ul><li>cf. action a1 generate internal event e1’ </li></ul></ul><ul><ul><ul><li>Rule 2: on e1’^e2 if c2 do a2 </li></ul></ul></ul><ul><ul><li>(logical operation) </li></ul></ul><ul><ul><ul><li>Event on (e1^e2) | e3 if c1 do a1 </li></ul></ul></ul><ul><ul><ul><li>Condition on e1 if c1|(c2^~c3) do a1 </li></ul></ul></ul><ul><ul><ul><li>Action on e1 if c1 do a1|(a2^a3) </li></ul></ul></ul>on event if condition do action
  28. 28. Services Integration Mechanism Messaging Approach <ul><li>Publishes a message to a common message channel. </li></ul><ul><li>Read the message from the channel at a later time. </li></ul>
  29. 29. Services Integration EDA Layers
  30. 30. Services Integration Challenges And Approaches <ul><li>Fundamental Challenges </li></ul><ul><ul><li>Networks are unreliable </li></ul></ul><ul><ul><li>Networks are slow </li></ul></ul><ul><ul><li>Any two applications are different </li></ul></ul><ul><ul><li>Change is inevitable </li></ul></ul><ul><li>Four Main Approaches </li></ul><ul><ul><li>File Transfer </li></ul></ul><ul><ul><li>Shared Database </li></ul></ul><ul><ul><li>Remote Procedure Invocation </li></ul></ul><ul><ul><li>Messaging </li></ul></ul>
  31. 31. Services Integration Criteria <ul><li>Service coupling </li></ul><ul><li>Integration simplicity </li></ul><ul><li>Integration technology </li></ul><ul><li>Data format </li></ul><ul><li>Data format evolution and extensibility </li></ul><ul><li>Data timeliness </li></ul><ul><li>Data or functionality </li></ul><ul><li>Asynchronicity </li></ul>
  32. 32. Services Integration Messaging Benefits <ul><li>Specific benefits of messaging include: </li></ul><ul><ul><li>Remote Communication </li></ul></ul><ul><ul><li>Platform/Language Integration </li></ul></ul><ul><ul><li>Asynchronous Communication </li></ul></ul><ul><ul><li>Variable Timing </li></ul></ul><ul><ul><li>Throttling </li></ul></ul><ul><ul><li>Reliable Communication </li></ul></ul><ul><ul><li>Disconnected Operation </li></ul></ul><ul><ul><li>Mediation </li></ul></ul><ul><ul><li>Thread Management </li></ul></ul>
  33. 33. Services Integration Challenges of Asynchronous Messaging <ul><li>Inherent challenges of asynchronous model </li></ul><ul><ul><li>Complex programming model </li></ul></ul><ul><ul><li>Sequence issues </li></ul></ul><ul><ul><li>Synchronous scenarios </li></ul></ul><ul><ul><li>Performance </li></ul></ul><ul><ul><li>Limited platform support </li></ul></ul><ul><ul><li>Vendor lock-in </li></ul></ul>