Guido schmutz-jax2011-event-driven soa


Published on

How can the concepts of event-driven linked with the concepts of serivce-oriented architectures. and what is the added value of such a combination?
What do events mean in the context of Business Process Management (BPM) and Business Activity Monitoring (BAM), and how can such architectures/solutions be enhanced with the concepts of Complex Event Processing?

Published in: Technology
  • Be the first to comment

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

No notes for slide

Guido schmutz-jax2011-event-driven soa

  1. 1. Event-Driven SOA: Events meet Services<br />Guido Schmutz (<br />Senior Architect/Technology Manager<br />Trivadis AG<br />
  2. 2. Guido Schmutz<br />Working for Trivadis for more than 14 years<br />Oracle ACE Director for Fusion Middleware and SOA<br />Co-Author of different books<br />Consultant, Trainer Software Architect for Java, Oracle, SOA and EDA<br />Member of Trivadis Architecture Board<br />Trivadis Technology Manager<br />More than 20 years of software development experience<br />Contact:<br />Blog:<br />
  3. 3. Trivadis facts & figures<br />Swiss IT consulting company<br />11 locationswithmorethan 550 employees<br />Financially independent and sustainably profitable<br />Key figures 2009<br />Revenue CHF 100 / EUR 66 mio.<br />Services for more than 650 clients in over 1‘600 projects<br />Over 160 Service Level Agreements<br />More than 5'000 training participants<br />Research and development budget: CHF 5.0 / EUR 3.3 mio.<br />
  4. 4. Trivadis Integration Architecture Blueprint<br />
  5. 5. Agenda<br />Introduction to Events<br />Event Processing<br />Event Delivery Network<br />Events meet Services<br />Events and BPM<br />Summary<br />
  6. 6. Whatis an Event?<br />An Event is a significant (in the sense that it may affect some action), atomic (happens completely or not at all) occurrence (e.g. fact becoming true, a state transition) in the reality.<br />Events may represent various things:<br />Update of a database<br />State of Change in a process/workflow<br />Reported Problem<br />Anticipated Problem<br />Any “business situation” raised by an application<br />
  7. 7. “Event-Driven”<br />Events<br />Events<br />Things that happen or change<br />Business Events<br />Events that are meaningful in a business context<br />Event Objects<br />Discrete report of events<br />Event-Driven<br />The behaviour of an entity that acts when it recognizes an event<br />EDA<br />Architectural style in which one or more components are event-driven and minimally coupled<br />Other<br />Events<br />Business<br />Events<br />Event objects<br />Event-driven<br />EDA<br />
  8. 8. Event Types<br />Ordinary Events<br />common non-critical events<br />Typically generated intermittently<br />Notable Events<br />Important and need to be acted upon<br />Typically occur at low volume<br />Stream Events<br />Continuous stream of events<br />May not be significant individually but part of a critical pattern<br />Transactional Events<br />Important events generated through business transactions<br />Could be high volume without necessarily having a correlation pattern<br />
  9. 9. Event Metamodel<br />Standardize structure for events across enterprise<br />Simplifies event integration<br />Events generally have to major parts<br />Header<br />Body<br />Similar to a Web Service (SOAP) message but there is no official standard yet<br />
  10. 10. How does an Event look like?<br />
  11. 11. EDA Simplified Conceptual View<br />Basic concept<br />large number of inbound events and messages are captured and processed to produce a smaller number of outbound events<br />
  12. 12. EDA High Level Conceptual View<br />
  13. 13. 5 Principles of an EDA<br />Reports current events<br />Notification reports a discrete occurrence as it happens<br />Pushes notifications<br />Pushed by the event producer, not pulled by the event consumer<br />Respond immediately<br />Consumer reacts immediately after it recognizes the event<br />Communicates one-way<br />Notification is “fire-and-forget” type of communication<br />Is free of commands<br />Notification is a report, not a specific request or command<br />Does not prescribe the action the event consumer will perform<br />
  14. 14. When vs. What<br />When<br />Event Processing<br />(CEP, SEP)<br />What<br />SOA / BPM<br />
  15. 15. Agenda<br />Introduction to Events<br />Event Processing<br />Event Delivery Network<br />Events meet SOA/BPM<br />Events and BPM<br />Summary<br />
  16. 16. Event Processing<br />Events at sources are rarely directly actionable<br />Not significant enough for the business to react and take meaningful action<br />Especially true for streaming and high volume events<br />Event processing is the manipulation of eventsthrough the application of business rules to identify actionable<br />Threads<br />Opportunities<br />Anomalies<br />
  17. 17. Building blocks of Event Processing<br />
  18. 18. 3 Typesof Event Processing<br />Relativity can be causal<br />temporal, spatial or other<br />
  19. 19. Simple Event Processing (SEP)<br />
  20. 20. Event Stream Processing (ESP)<br />
  21. 21. Complex Event Processing (CEP)<br />
  22. 22. Complex Event Processing (CEP)<br />Complex<br />Event<br />Processor<br />Event Source<br />Filtering; Temporal and causality constraints<br />Validate<br />Aggregation; event-data join<br />Enrich<br />Transform<br />Create “complex event”<br />Intelligent routing; content-based routing; event-driven flows<br />Route<br />Operate<br />Service invocation; alert; dynamic flows<br />Event Consumer<br />Source: IBM<br />
  23. 23. Complex Event Processing vs. Traditional Analysis<br />
  24. 24. Fundamental CEP Design Pattern<br />Filtering<br />In-memory caching<br />Aggregation over windows<br />Database lookups<br />Database Writes<br />Correlation (Joins)<br />Event pattern matching<br />State machines<br />Hierarchical Events<br />Dynamic Queries<br />Source:<br />
  25. 25. Event Processing Network (EPN)<br />Event processing needs several processing steps intermingled with user logic<br />Events are filtered<br />Events are derived<br />Requires the components (event processors, channels) to be connected in a network fashion=> EPN<br />
  26. 26. Event Processing with Oracle CEPOracle CEP – Constructs & Visual Tooling<br />Event-driven components<br />Adapter<br />Complex Event Processor<br />Sink<br />Event types<br />Event objects are instances of event types<br />Implemented as JavaBeans, Maps or “Tuples”<br />Graphical visualization and editing of Event Processing Network (EPN) through Eclipse<br />
  27. 27. Event Processing with Oracle CEPCQL Source Editing<br />Syntax Highlighting<br />Validation<br />Query templates<br />
  28. 28. Event Processing with IBM WebSphere Business Event<br />Empower Business Users to define and procatively manage business events<br />
  29. 29. Agenda<br />Introduction to Events<br />Event Processing<br />Event Delivery Network<br />Events meet Services (SOA/BPM)<br />Events and BPM<br />Summary<br />
  30. 30. Event Delivery Network (EDN)<br />Provides an abstract mediation layer for event publishing and delivery<br />Goal: Decrease coupling between producer and consumers<br />
  31. 31. Capabilities of EDN<br />Event Definition<br />Defined using a neutral language such as Event Definition Language (EDL)<br />Publish-subscribe abstraction<br />Details totally abstracted from consumers and producers<br />Routing<br />Routed to interested parties using defined rules<br />Declarative specification<br />Events and rules specified in a declarative manner<br />Rich semantics<br />Rich subscription semantics allow flexibility<br />Subscription granularity<br />Subscriptions can be based on namespaces, event names and content<br />Implementation abstraction<br />Totally abstracted from the users of the EDN (JMS, Database)<br />
  33. 33. Agenda<br />Introduction to Events<br />Event Processing<br />Event Delivery Network<br />Events meet Services (SOA/BPM)<br />Events and BPM<br />Summary<br />
  34. 34. Events meet Services<br />Using Events to increase decoupling in your SOA!<br />Event-Driven Services<br />Events producedby a Service<br />
  35. 35. Different Typesof Interaction<br />Time-Driven<br />An agent or group of agents initiates an interaction at a specified time<br />Request-Driven<br />A client requests a service from a server<br />Initiated by the client and completes when server replies<br />Event-Driven<br />Event Producer initiates interaction by creating an event<br />
  36. 36. Customer ManagementSample Scenario<br />Customer Management Application is created<br />New Customer operation is implemented in BPEL orchestrating service calls<br />One of the service calls is informing another system (Account Management) of the new customer<br />
  37. 37. Customer ManagementSample Implementation<br />Implementation with Oracle SOA Suite<br />
  38. 38. Customer ManagementEnhancement of Scenario<br />An Other system is interested when a new customer is added<br />Offers a service Create New Customer<br />Therefore the Customer Management system has to be changed<br />a new service call has to be added to the service orchestration<br />
  39. 39. Customer ManagementEnhancement Implementation<br />Implementation with Oracle SOA Suite<br />
  40. 40. Customer ManagementEvaluation of enhancement<br />New interested parties can only be added through changing the Customer Management system<br />Resources need to be coordinated<br />Difficult if the responsibilities for those systems are different<br />Each new system will be a source for new errors<br />System will be less reliable<br />Adaption has to be handledby Customer Management<br />Has to bechanged!!<br />
  41. 41. Customer ManagementScenario: Using Event instead<br />Instead of the Customer Management system having to inform each interested party, it just signals an “New Customer” event<br />All interested party subscribe at the EDN and get informed, when such an event has been signaled<br />
  42. 42. Customer ManagementImplementation with Events<br />Implementation using Business Events (EDN)<br />
  43. 43. Customer ManagementImplementation with Events<br />
  44. 44. Customer ManagementImplementation with Events<br />XML schemadefinespayload<br />Event Definition Language (EDL) definesevent<br />
  45. 45. Customer ManagementImplementation with Events<br />Using BPEL invokeactivitytopublishtheevent<br />
  46. 46. Customer ManagementImplementation with Events<br />Mediator could also publishevents<br />
  47. 47. Customer ManagementImplementation with Events<br />Mediator with „Subscribe to Events“<br />
  48. 48. Customer ManagementImplementation with Events<br />
  49. 49. Customer ManagementImplementation with Events<br />Filter on eventpayloadusingXpathexpression<br />
  50. 50. Customer ManagementEvaluation of “Using Events instead”<br />Customer Management is decoupled from other systems<br />No longer dependent on the availability<br />Potential new interested parties can be introduced without having to change the Customer Management system<br />Separation of Concerns => Transformation done when consuming event<br />Decoupling<br />
  51. 51. Customer ManagementScenario Event with not enough info<br />To reduce overhead, you might only want to pass minimal information with an event<br />Not the complete customer like shown before<br />Subscriber can use any service offered to enrich the event<br />Similar to Claim Check Pattern with messaging<br />“Inversion of Control”<br />
  52. 52. Event-Driven SOA (ED-SOA)Decoupling on Domain Level<br />
  53. 53. Event-Driven SOA (ED-SOA)Decoupling on Domain Level<br />Application Landscape organized through domains<br />
  54. 54. Event-Driven improves agility<br />Event-Driven systems are more agile than request-driven systems because they are minimally coupled<br />When a reply to the transaction originator is required, a request-driven approach should be used<br />Inserting request-driven service Inserting event-driven service <br />
  55. 55. Capture Events at the point of greatest value<br />Requirements determine which source of event data are most relevant<br />
  56. 56. Agenda<br />Introduction to Events<br />Event Processing<br />Event Delivery Network<br />Events meet Services (SOA/BPM)<br />Events and BPM<br />Summary<br />
  57. 57. Event-Drivenand BPM<br />Business Processes always involve business events in a general sense<br />Not event-driven in every aspect<br />Not EDA for all interactions<br />Most processes are a mix of event-, request- and time-driven interactions<br />
  58. 58. Using CEP with BPM<br />
  59. 59. Order Fulfillment Process – Event vs. Request-Driven<br />Event-Driven<br />Request-Driven<br />
  60. 60. Agenda<br />Introduction to Events<br />Event Processing<br />Event Delivery Network<br />Events meet Services (SOA/BPM)<br />Events and BPM<br />Summary<br />
  61. 61. Summary: EDA, BPM and BAM<br />
  62. 62. EDN, CEP and BAM – the event-driven enterprise<br />EDA delivers real-time event processing for monitoring, analyzing, and acting on business process optimization<br />
  63. 63. Thanks a lot!<br />Q & A<br />
  64. 64. Event-Driven SOA: Events meet Services<br />Guido Schmutz (<br />Senior Architect/Technology Manager<br />Trivadis AG<br />