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?
2. Guido Schmutz Working for Trivadis for more than 14 years Oracle ACE Director for Fusion Middleware and SOA Co-Author of different books Consultant, Trainer Software Architect for Java, Oracle, SOA and EDA Member of Trivadis Architecture Board Trivadis Technology Manager More than 20 years of software development experience Contact: guido.schmutz@trivadis.com Blog: http://guidoschmutz.wordpress.com
3. Trivadis facts & figures Swiss IT consulting company 11 locationswithmorethan 550 employees Financially independent and sustainably profitable Key figures 2009 Revenue CHF 100 / EUR 66 mio. Services for more than 650 clients in over 1‘600 projects Over 160 Service Level Agreements More than 5'000 training participants Research and development budget: CHF 5.0 / EUR 3.3 mio.
5. Agenda Introduction to Events Event Processing Event Delivery Network Events meet Services Events and BPM Summary
6. Whatis an Event? 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. Events may represent various things: Update of a database State of Change in a process/workflow Reported Problem Anticipated Problem Any “business situation” raised by an application
7. “Event-Driven” Events Events Things that happen or change Business Events Events that are meaningful in a business context Event Objects Discrete report of events Event-Driven The behaviour of an entity that acts when it recognizes an event EDA Architectural style in which one or more components are event-driven and minimally coupled Other Events Business Events Event objects Event-driven EDA
8. Event Types Ordinary Events common non-critical events Typically generated intermittently Notable Events Important and need to be acted upon Typically occur at low volume Stream Events Continuous stream of events May not be significant individually but part of a critical pattern Transactional Events Important events generated through business transactions Could be high volume without necessarily having a correlation pattern Source: Oracle
9. Event Metamodel Standardize structure for events across enterprise Simplifies event integration Events generally have to major parts Header Body Similar to a Web Service (SOAP) message but there is no official standard yet
11. EDA Simplified Conceptual View Basic concept large number of inbound events and messages are captured and processed to produce a smaller number of outbound events Source: Oracle
13. 5 Principles of an EDA Reports current events Notification reports a discrete occurrence as it happens Pushes notifications Pushed by the event producer, not pulled by the event consumer Respond immediately Consumer reacts immediately after it recognizes the event Communicates one-way Notification is “fire-and-forget” type of communication Is free of commands Notification is a report, not a specific request or command Does not prescribe the action the event consumer will perform
14. When vs. What When Event Processing (CEP, SEP) What SOA / BPM
15. Agenda Introduction to Events Event Processing Event Delivery Network Events meet SOA/BPM Events and BPM Summary
16. Event Processing Events at sources are rarely directly actionable Not significant enough for the business to react and take meaningful action Especially true for streaming and high volume events Event processing is the manipulation of eventsthrough the application of business rules to identify actionable Threads Opportunities Anomalies
24. Fundamental CEP Design Pattern Filtering In-memory caching Aggregation over windows Database lookups Database Writes Correlation (Joins) Event pattern matching State machines Hierarchical Events Dynamic Queries Source: http://www.coral8.com/system/files/assets/pdf/Coral8DesignPatterns.pdf
25. Event Processing Network (EPN) Event processing needs several processing steps intermingled with user logic Events are filtered Events are derived Requires the components (event processors, channels) to be connected in a network fashion=> EPN Source: Oracle
26. Event Processing with Oracle CEPOracle CEP – Constructs & Visual Tooling Event-driven components Adapter Complex Event Processor Sink Event types Event objects are instances of event types Implemented as JavaBeans, Maps or “Tuples” Graphical visualization and editing of Event Processing Network (EPN) through Eclipse
28. Event Processing with IBM WebSphere Business Event Empower Business Users to define and procatively manage business events
29. Agenda Introduction to Events Event Processing Event Delivery Network Events meet Services (SOA/BPM) Events and BPM Summary
30. Event Delivery Network (EDN) Provides an abstract mediation layer for event publishing and delivery Goal: Decrease coupling between producer and consumers Source: Oracle
31. Capabilities of EDN Event Definition Defined using a neutral language such as Event Definition Language (EDL) Publish-subscribe abstraction Details totally abstracted from consumers and producers Routing Routed to interested parties using defined rules Declarative specification Events and rules specified in a declarative manner Rich semantics Rich subscription semantics allow flexibility Subscription granularity Subscriptions can be based on namespaces, event names and content Implementation abstraction Totally abstracted from the users of the EDN (JMS, Database)
32. Event Delivery Network in Oracle SOA platform PATTERNDETECTION BUSINESSVISIBILITY MANAGEMONITOR DESIGN SECURE JDEV POLICYMANAGER EM BAM CEP BPEL /BPMNBUSINESS RULESHUMAN WORKFLOW ORCHESTRATE SERVICE BUS / MEDIATOREVENT DELIVERY NETWORK (EDN) DATA INTEGRATOR INTEGRATEVIRTUALIZE REG/REP EVENTS SERVICES ERP MAINFRAME PARTNERS DB Source: Oracle Adapters & B2B
33. Agenda Introduction to Events Event Processing Event Delivery Network Events meet Services (SOA/BPM) Events and BPM Summary
34. Events meet Services Using Events to increase decoupling in your SOA! Event-Driven Services Events producedby a Service
35. Different Typesof Interaction Time-Driven An agent or group of agents initiates an interaction at a specified time Request-Driven A client requests a service from a server Initiated by the client and completes when server replies Event-Driven Event Producer initiates interaction by creating an event
36. Customer ManagementSample Scenario Customer Management Application is created New Customer operation is implemented in BPEL orchestrating service calls One of the service calls is informing another system (Account Management) of the new customer
38. Customer ManagementEnhancement of Scenario An Other system is interested when a new customer is added Offers a service Create New Customer Therefore the Customer Management system has to be changed a new service call has to be added to the service orchestration
40. Customer ManagementEvaluation of enhancement New interested parties can only be added through changing the Customer Management system Resources need to be coordinated Difficult if the responsibilities for those systems are different Each new system will be a source for new errors System will be less reliable Adaption has to be handledby Customer Management Has to bechanged!!
41. Customer ManagementScenario: Using Event instead Instead of the Customer Management system having to inform each interested party, it just signals an “New Customer” event All interested party subscribe at the EDN and get informed, when such an event has been signaled
50. Customer ManagementEvaluation of “Using Events instead” Customer Management is decoupled from other systems No longer dependent on the availability Potential new interested parties can be introduced without having to change the Customer Management system Separation of Concerns => Transformation done when consuming event Decoupling
51. Customer ManagementScenario Event with not enough info To reduce overhead, you might only want to pass minimal information with an event Not the complete customer like shown before Subscriber can use any service offered to enrich the event Similar to Claim Check Pattern with messaging “Inversion of Control”
54. Event-Driven improves agility Event-Driven systems are more agile than request-driven systems because they are minimally coupled When a reply to the transaction originator is required, a request-driven approach should be used Inserting request-driven service Inserting event-driven service
55. Capture Events at the point of greatest value Requirements determine which source of event data are most relevant
56. Agenda Introduction to Events Event Processing Event Delivery Network Events meet Services (SOA/BPM) Events and BPM Summary
57. Event-Drivenand BPM Business Processes always involve business events in a general sense Not event-driven in every aspect Not EDA for all interactions Most processes are a mix of event-, request- and time-driven interactions
62. EDN, CEP and BAM – the event-driven enterprise EDA delivers real-time event processing for monitoring, analyzing, and acting on business process optimization