Event Driven Architecture André Hoekzema Enterprise Technology Architect Microsoft Nederland andre.hoekzema@microsoft.com
Agenda Introduction Standardize on Event Based Interaction Use Event Processing Effectively Patterns of Response
Introduction
Aspirations in the Global Event Cloud Situational Awareness Sense & Respond Track & Trace
Digital Archeology Customer Employee Product Sales SAP Finance Outlook Passwd change new auto pay account login deposit activity history withdrawal logout account balance transfer enquiry change Passwd / .NET Linux J2EE Unix OS/390 MQ DB2 Finance People Soft SAP Siebel Dir Outlook Customer Employee Product Sales CBDI
EDA Characteristics Respond Sense Analyze Update expectations; Invoke distributed services in real-time Detect events across extended environment in real-time Analyze Aggregate events across multiple sources; compare reality with expectations
Standardise on Event-Based Interaction Sense
Some Definitions Business Event: An event relevant to a commercial enterprise Bank Depostit Stock Trade Customer Order Password Change Shipment Delivery Event object (sometimes also just called “event”): A report or record of an event happening XML document describing the bank deposit Shipping notification in e-mail Row in a database table
What Makes EDA Different from Most Conventional Business Applications? Event-driven Architecture (Gartner) Events are pushed not pulled (recipient need not poll repeatedly) Recipients act immediately upon event arrival, not when a request is made or on a pre-planned schedule (runs sooner) Event source does not specify what action the recipient will perform – the recipient determines the operation (less coupling)
Observer pattern One-to-many dependency - when one object changes state, all dependents are notified and updated
Event-Based Interaction Producers Event Based Interaction Consumers (Sink) Notification Service Notification Publish Subscribe Communications Service Oriented Notification Service Decouples Producer and Consumer with Publish Subscribe Functionality
Service Oriented Communication Two fundamental aspects of a service-oriented (SO) world are: A common protocol for communication between SO applications A common foundation for creating SO applications Application Y Application X Windows Communication Foundation
Service Oriented Infrastructure SOAP is not enough: Must connect with existing applications that don’t speak SOAP Need to translate among different data formats No agreement on a queued messaging protocol SOAP Notification Service Application Y Application X Messages
Standards Emerging WS-Notification WS-Base Notification WS-Brokered WS-Topics approved OASIS standard as of October 2006 WS-EventNotification (new) W3C Submission in March 2006 WS-Eventing WS-Resource Transfer (new)
Event Passing Benefit is experienced mostly in the IT department The absence of control coupling Easy to add new sinks, move a sink, or eliminate a sink Publish Subscribe Sink++ Source++ Sink Event Source
Notification Technologies WS Protocol Based WCF + Customer Finance Framework (CFF), WCF + Robotics Studio Rules Based BizTalk Rules Engine, SQL Server Notification Service, SQL Server Service Broker Notification Protocols Notification Rules Publish Subscribe Sink++ Source++ Sink Event Source
Summary Event-Driven Interaction Events are pushed, Immediate response by Consumer, Reaction unknown by Sender. “Extreme” Decoupling with Notification Service Rules Based: BTS Rules Engine, SQL Service Broker, SQL Notification Service Protocol Based: not yet oo the box, WCF + CFF, WCF + Robotic Studio Protocol Ws-Eventing, WS-Notification, (WS-EventNotification) Communications Re-use of Service Oriented Infrastructure Microsoft Platform: WCF, BizTalk Server, W2K3 Benefits Flexibility and Maintainability Systems that possibly align with global event cloud
Use Event Processing Effectively Analyse
Types of Event Processing Simple Event Processing Event Stream Processing Complex Event Processing
Event Stream Processing (ESP) Multiple ordered events in one or a few event streams. Typically high-volume and low-latency Stock quotes, click streams, RFID Service Oriented Communication ESP System Event Processing Agent (EPA) Fast filtering, calculate aggregates (sum, average), Boolean Response (ERP, BAM, BPM, ..) Event Event Streams
Event Stream Processing RFID Inventory Management Inventory < $4K > $1,500
RFID Support in BizTalk Server R2 Device Layer Physical Layer Business Applications RFID Event Processes Business Intelligence SQL / SQL BI for data analytics R2
BizTalk RFID Server Event Processing Agent Biztalk Server or Business Application Business Applications BizTalk RFID API & Web Services RFID Event Processes Custom Event Handlers Rules Engine Event Handlers SQL Server Event Sink RFID Sink Database Event Processing Agent Device Service Provider Interface (DSPI) Device Providers Device Layer RFID Devices Physical Layer
A Distributed Notification Architecture Local Broker (middleware) Border Broker Inner Broker Border Network Filter-based or Flooding Producer Consumer
iGPS : Transforming the Retail Pallet Pooling Industry Retail Regional DC Retail Supplier Retail Store Pallet Manufacturer XAM RFID Portal Retailer RFID Portal Retail Pallet Depot Pallet Pool for Major Retailers RFID Tags Embedded End-to-End Solution Microsoft.com/rfid
Deployments TBH M Allen D Ray RFID Readers RFID Reader Mobile External WMS, ERP Central Server Edge Server Customer ERP Web Services WCF Deployments TBH M Allen D Ray Deployments 4/2007 - Central & 2 Sites 6/2007 - 6 Sites 9/2007 - 15 Sites 12/2007 - 30 Sites Q1 2008 > 50 Sites -Central Server Edge Server (Mfg) Edge Server (Depot) Q3 2007: >2,000,000 transactions/month Q2 2008: >10,000,000 transactions/month
Complex Event Processing Use Complex-event Processing (CEP) for operational business intelligence (BI) CEP is a sophisticated form of EDA that deals with multiple events at a time CEP systems find patterns in business event data CEP Leverages platform capabilities
Complex Event Processing Cloud may contain many Event Types, Streams, Channels The events may be unrelated CEP System issues pattern detection using Rules and Algorithms Complex-event Objects Response (BAM, BPM) Event CEP System Service Oriented Communication CEP System Event Processing Agent (EPA) Event Cloud
Complex Event Processing B2B Scenario Suspicious or multiple txns Multiple txns on same credit card within 10 min at locations over 20 miles apart? Suspicious purchase? (Notify cardholder)
Patterns for Complex Event Processing Filtering Correlations (Joins) Aggregation over Windows Hierarchal Events Event Pattern Matching In-memory Caching Database Lookups Dynamic Queries State Machines http://www.coral8.com/system/files/assets/pdf/Coral8DesignPatterns.pdf
Summary Use Event Processing Effectively Basic Types Simple Event Processing, Event Stream Processing Complex Event Processing Event Processing Capabilities Patterns for Event Processing leverage full Platform Capabilities: SOA/BPM, Data/BI, Scalability Technologies BizTalk Server 2006/R2 + RFID Edge Server SQL Server 2005, .NET Framework Benefits Earlier and Improved Businss Insight
Patterns of Response Respond
Sample Applications That Use CEP with Business Events Algorithmic trading — Finance, energy Compliance reporting and monitoring — RegNMS, others Customer experience management — Call center and Web clicks Financial controls — "Track and trace," surveillance Fraud detection — Anti-money-laundering, credit cards, telco Hospital monitoring — Emergency room management Military — Intelligence, battlefield operations, satellite Pharmaceutical — Supply chain management, pedigree tracking Security — Intrusion detection, denial of service Sensor networks — RFID, GPS and others Transportation operations — Trucks, airlines, ships or trains "Triple play" telco — Telephone, television and Internet
Patterns of Response Invoke Service (Orchestration) Update BAM Dashboard Initiate Human Workflow Web 2.0 Subscriptions BAM Web 2.0 Notification Service Application Y Application X
BAM as Key Enabler for CEP Predlog pripravljen Predlagano gradivo Obravnava gradiva Služba Vlade za zakonodjo Drug organ DU Mnenje Službe Vlade Obravnava na DT Vlade Delovna telesa Priprava predloga Predlagatelj DO Mnenje DO zaključena Mnenje DT seji Vlade mnenje pozitivno Vlada Dopoljnjevanje Gradivo dopoljnjeno Dopoljnjeno mnenja negativno mnenje Besedilo predloga zakona za prvo obravnavo Matično delovno telo DZ Prva obravnava pripravljeno Sekretariat za zakonodajo Pripombe pozitivno mnenje sekreteriata Zapisnik seje Sklepi in stališča Državni zbor Zakon ni sprejet Predlagatelj Priprava predloga za drugo obravnavo Priprava dopolnitve zakon se ne sprejme Druga obravnava potrebni večji popravki potrebni manjši popravki Amandmaji Poslanci Drugo zainter. DT amandmajev vloženi Dopolnitev pripravljena Besedilo predloga za drugo obravnavo besedilo zakona za drugo obravnavo za tretjo obravnavo število sprejetih Stališča in sklepi DZ Sprejeti amandmaji tretjo obravnavo veliko majhno Tretja obravnava Mnenje MDT DZ izglasovan Zapisnik seje Zakon je Sprejet zakon Letni program ali zahtevek Vlade Predlog za Event Activity Event Driven Process Design BAM Dash Board
Summary Patterns of Response Once you have gained business insight .. Where to Start Event Driven Process Design + BAM as enabler for CEP Benefits Ability to act on earlier and Improved Businss Insight
Platform Architecture User Experience Composite Apps Office App Devices Web Portal Collaboration Composition Layer Data Aggregation Workflow Orchestration Eventing Service Agents Business Rules Data Platform Data Management Data Integration Core Infrastructure Application Server Applications ERP SCM CICS CRM Business Intelligence Development and Tooling Identity & Access Management
Microsoft Platform Stack User Experience Composite Apps Office App Devices Web Portal Collaboration Composition Layer Data Aggregation Workflow Orchestration Eventing Service Agents Business Rules Data Platform Data Management Data Integration Core Infrastructure Application Server Applications ERP SCM CICS CRM Business Intelligence Development and Tooling Identity & Access Management Office Business Applications (OBA)
Conlusion Event Driven Architecture for Flexible and Maintainable Systems Event Processing for improved Business Insight Leverage full Platform Capabilities to support Event Driven Architecture Resources: Roy Schulte (Gartner), Brenda Michelson (EventLinks), David Luckham (Power of Events), Nico Copier (Microsoft), Eric van Bever (Microsoft), Richard Evdemon (Microsoft), Shy Cohen (Microsoft), Jack van Hoof (Dutch Railways), CBDI-Forum
Discussion, Questions & Issues
© 2007 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.