SOA-10: Event-Driven SOA: EDA in an SOA World Ken Wilner
Transcription
SOA-10: Event-Driven SOA: EDA in an SOA World Ken Wilner
SOA-10: Event-Driven SOA: EDA in an SOA World Ken Wilner Vice President of Technology Process Order Process Order Service 3 Fulfill Order Light Weight Request/Reply Process Order 2 1 Validate Order Check Credit External Credit Rating Service Credit Rating Heavy Weight Request/Reply 2 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Process Order – Separate Polling Process Process Order Service Light Weight Request/Reply Process Order 2 3 1 Validate Order Fulfill Order Customer Mgmt Service Credit Rating Check Credit Heavy Weight Request/Reply Sent Periodically Medium Weight Request/Reply 2a 2 Customer Mgmt 3 © 2005 Progress Software Corporation External Credit Rating Service 1 Check Credit SOA-10: Event-Driven SOA: EDA in an SOA World Process Order – Event Driven Way Process Order Service Light Weight Request/Reply Process Order 2 3 1 Validate Order Fulfill Order Customer Mgmt Service Credit Rating Check Credit Medium Weight Request/Reply 2a 2 Customer Mgmt 4 © 2005 Progress Software Corporation External Credit Rating Service One-Way Event sent in Real Time 1 Check Credit SOA-10: Event-Driven SOA: EDA in an SOA World The Business Value of Software Events Efficiency – – – – Push technology Replaces batch processing or polling Real-time monitoring of business state Parallel activities Agility – Facilitates instance-level long running business processes – Promotes flexible processes that are adaptable to changes in the business environment 5 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Agenda Event-Driven Applications Events and SOA OpenEdge™ RA and Events Case Study Summary 6 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Invocation Models Request/Reply – Request - a request to do something – Reply - an indication that the request was processed Event – an indication that something occurred in the past 7 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Request/Reply Synchronous Bi-directional Communication Please do this for me. I’ll wait until I get the reply. Request Provider Consumer Reply Did it. Sorry it took me so long!!! Physical connection couples request/reply Failure of connection terminates execution Consumer assumes reply received shortly after request sent Single provider receives request implies limited scalability 8 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Request/Reply Flow Online Ordering Application Supplier Service Inventory Mgmt Service Order Mgmt Service 9 © 2005 Progress Software Corporation Credit Services SOA-10: Event-Driven SOA: EDA in an SOA World Event Asynchronous uni-directional communication It happened Event Event Source Event Sink Each event sent independently of another Coupling between events handling by source and sink Multiple sources may send the same event and multiple sinks may receive same event so highly scaleable 10 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Event Flow Fork Online Ordering Application Inventory Mgmt Service Order Mgmt Service Join Shipping and Fulfilling Credit Services 11 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Request/Reply vs. Events Request/Reply Events Component to Component Coupling 1 to 1 Many to many Flow of Control Synchronous Asynchronous Path of Execution Linear and hierarchical Reactivity Closed loop Supports dynamic and parallel Dynamically reactive 12 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Events-Driven Application Models Asynchronous One-way Communication Simple Events Brokered Events Enterprise Service Busses Event Stream Processing Engines 13 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Simple Event Event Event Source Event Sink It happened 14 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Simple Events – Simulating Request/Reply Request Event (req-id) Event Provider Sink Event Consumer Source Reply Event (req-id) Req-id couples request/reply Reply sent independently of request Consumer assumes reply may be received along time after request 15 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Brokered Events Event Source Event Event Event Sink Event Event Sink Message Broker Message Event Source Event Event routed from source to one or more sink Optionally stored persistently until delivered Various ack modes guarantee delivery, e.g. auto, client, duplicates O.K. 16 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Brokered Events – Point to Point Send to One Interested Party Sender Receiver Message Broker Event Source Queue Event Sink connect 17 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Brokered Events – Point to Point Send to One Interested Party – Multiple Receivers Sender Receiver Message Broker Event Source Queue Event Sink Event delivered to one receiver Multiple receivers promotes scalability All clients are created equal 18 © 2005 Progress Software Corporation Event Sink SOA-10: Event-Driven SOA: EDA in an SOA World Brokered Events – Publish/Subscribe Send to All Interested Parties Subscribers Publisher Message Broker Event Source Event Sink Topic Event Sink subscribe Event broadcast to all interested parties, e.g. “Hot Deals” Subscribers Durable can be added dynamically subscriptions support guaranteed delivery 19 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Enterprise Service Bus – Routed Events Intelligent Routing ESB Yes Event Source order count < 100 No Combined Event Sink Event Sink with brokered event mechanisms Content-based routing Transformation Standards-based; e.g. XML and Web Services 20 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Enterprise Service Bus Orchestration Service Sophisticated Process Flow Event Source Event Source Event ESB Event Event Event Event Sink Event Sink Combines basic ESB services with long running stateful processes Supports looping constructs, state management, conditional constructs, fork thread, join, etc. Publish event, wait for event, etc. 21 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Event Stream Processing (ESP) Aggregating and Correlating Events IF PRGS Price < PRGS VWAP THEN Buy PRGS Event Source Event Stream Event Manager Event Event Sink Rules Events Filter rules Aggregation Event of events detection patterns 22 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Agenda Event-Driven Applications Events and SOA OpenEdge RA and Events Case Study Summary 23 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Service-Oriented Architecture An approach for building distributed computing systems based on encapsulating business functions as services that can be easily accessed in a loosely coupled fashion. 24 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World How Do Events Support These Principles? SOA is good. Events are good. How do I marry the two???? 25 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World SOA: Component Architecture Service Director y Find / Details Service Consumer 26 © 2005 Progress Software Corporation Publish Bind / Invoke Service Provide r SOA-10: Event-Driven SOA: EDA in an SOA World Service Contracts Everything You Need to Know to Access the Service Provider Service Provide r Service Requestor Contract Service Interface Service Location and Transport Service Description and Sequencing Requirements Error Handling SLAs 27 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World SOA and Events Event Sink Notification Service Consumer Event Source One-way Service Consumer 28 © 2005 Progress Software Corporation Event Source Service Provide r Event Sink Service Provide r SOA-10: Event-Driven SOA: EDA in an SOA World SOA Architectural Layers Application Client Layer ESB Orch. Service Brokered Events ESP, ESB Routed Event Business Process Services Intermediary Services Basic Services 29 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Broker as an Intermediary Service Event Service Consumer Source Event Event One-way One-way Event Service Sink Provide r Service Message Intermediary Broker One-way Event Service Source Consumer One-way Event 30 © 2005 Progress Software Corporation Event Service Event Provide Sink r SOA-10: Event-Driven SOA: EDA in an SOA World Enterprise Service Bus – Routed Events Intelligent Routing ESB Yes Event Service Source Consumer Event One-way Event Service Intermediary Service Event Provide Sink r order count < 100 One-way No 31 © 2005 Progress Software Corporation Event One-way Service Event Provide Sink r SOA-10: Event-Driven SOA: EDA in an SOA World Agenda Event-Driven Applications Events and SOA OpenEdge RA and Events Case Study Summary 32 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World OpenEdge RA Service Components Enterprise Services Users Service Consumer Presentation Layer Integration Layer Business Servicing Layer Data Access Layer Service Provider Managed Data Stores 33 © 2005 Progress Software Corporation Unmanaged Data Stores SOA-10: Event-Driven SOA: EDA in an SOA World Business Layer Integration Enterprise Services Users Presentation Layer/s Integration Layer/s Service Adapter Service Interface Business Workflows Business Tasks Business Entities Data Access Layers Managed 34 © 2005 Progress Software Corporation Unmanaged SOA-10: Event-Driven SOA: EDA in an SOA World Service Elements and Service Contracts Fn() Fn() Fn() Service Adapter Event-Driven Service Adapter Event-Driven Service Adapter Service Consumer Request Reply Service Interface Service Provider 35 © 2005 Progress Software Corporation One-Way Event-Driven Service Interface Notification Event-Driven Service Interface SOA-10: Event-Driven SOA: EDA in an SOA World Agenda Event-Driven Applications Events and SOA OpenEdge RA and Events Case Study Summary 36 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Sedgwick Claims Management Services, Inc. Clients Claimants JURIS Carriers Examiners States 37 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Sedgwick Event Driven SOA Update Claim Info Users Event Capture (DB Triggers) JURIS New Claim EMAIL ALERT WWW/IVR Email Changed Fields From-value To-Value Change Log “StateChanged” Events Event Generator/ Quenchin g JMS Enterprise Service Bus XML MSG RULES ENGINE Sub-System Email “StateChanged” Events IVR Rules Processin g Engine 38 © 2005 Progress Software Corporation RULES DATABASE SOA-10: Event-Driven SOA: EDA in an SOA World Agenda Event-Driven Applications Events and SOA OpenEdge RA and Events Case Study Summary 39 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World In Summary SOA is the architecture for the agile business Events are great for maximum agility, and for building reactive systems Define the right services and use the right invocation method 40 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Questions? 41 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World Thank you for your time! 42 © 2005 Progress Software Corporation SOA-10: Event-Driven SOA: EDA in an SOA World