Title: PTW095: EventDriven SOA: EDA in an SOA World
1PTW-095 Event-Driven SOA EDA in an SOA World
- Ken Wilner
- Vice President of Technology
2Agenda
- The Case for Events
- Event-Driven Applications
- Events and SOA
- Events and OpenEdge RA
- Case Study
- Summary
3Business Events
- Meaningful change in enterprise
- Two types
- Routine normal part of business process
pre-defined action - Credit rating changed
- Enter an order
- Truck unloaded
- Stock traded
- Exception Events an unanticipated occurrence
no pre-defined action - A machine breaks down
- The weather delays a shipment
- An employee is late
4Software Event
An automated record, typically in the form of a
message, of a business event.
5Process Order
Process Order
Light Weight Request/Reply
2
3
1
2a
Fulfill Order
ValidateOrder
Check Credit
Credit Rating
Heavy Weight Request/Reply
6Process Order Separate Polling Process
Process Order
Light Weight Request/Reply
2
3
1
Fulfill Order
ValidateOrder
Check Credit
Credit Rating
Heavy Weight Request/Reply Sent Periodically
Medium Weight Request/Reply
2a
2
1
CustomerMgmt
CheckCredit
7Process Order Event Driven Way
Light Weight Request/Reply
One-Way Event sent in Real Time
Medium Weight Request/Reply
8Invocation Models
- Request/Reply
- Request - a request to do something
- Reply - an indication that the request was
processed - Event
- an indication that something happened
9Request/Reply
Synchronous Bi-directional Communication
Please do this for me. Ill wait until I get the
reply.
Request
Consumer
Provider
Reply
Did it. Sorry it took me so long!!!
- Physical connection couples request/reply
- Consumer assumes reply received shortly after
request sent - Single provider receives each request implies
limited flexibility
10Request/Reply Flow
Online Ordering Application
Supplier Service
Inventory Mgmt Service
Order Mgmt Service
Credit Services
11Event
Asynchronous uni-directional communication
It happened
Event Source
Event Sink
Event
- Each event sent independently of another
- No built-in coupling between messages implies
gives flexibility and agility
12Event Flow
Fork
Join
Inventory Mgmt Service
Online Ordering Application
Order Mgmt Service
Shipping and Fulfilling
Credit Services
13Request/Reply vs. Events
asynchronous rpc
14Agenda
- The Case for Events
- Event-Driven Applications
- Events and SOA
- Events and OpenEdge RA
- Case Study
- Summary
15Events-Driven Application Models
Asynchronous One-way Communication
- Simple Events
- Brokered Events
- Enterprise Service Busses
- Event Stream Processing Engines
16Simple Event
Event
Event Source
Event Sink
It happened
17Simple Events Simulating Request/Reply
Request Event (req-id)
Event Source
Event Sink
Consumer
Provider
Reply Event (req-id)
- Req-id couples request/reply
- Reply sent independently of request
- Consumer assumes reply may be received along time
after request
18Brokered Events
Event Source
Event Sink
Event
Event
Message Broker
Message
Event Sink
Event Source
Event
Event
- Event routed from source to one or more sink
- Optionally stored persistently until delivered
19Brokered Events Point to Point
Send to One Interested Party
Sender
Receiver
Event Source
Event Sink
connect
20Brokered Events Point to Point
Send to One Interested Party Multiple Receivers
Sender
Receiver
Event Sink
Event Source
Event Sink
- Event delivered to one receiver
- Multiple receivers promotes scalability
- All receivers are created equally
21Brokered Events Publish/Subscribe
Send to All Interested Parties
Subscribers
Publisher
Event Sink
Event Source
Event Sink
subscribe
- Event broadcast to all interested parties, e.g.
Hot Deals - Subscribers can be added dynamically
22Enterprise Service Bus Routed Events
Intelligent Routing
Event Source
- Combined with brokered event mechanisms
- Content-based routing
23Enterprise Service Bus - Orchestration Service
Sophisticated Process Flow
Event
Event
Event Source
Event Sink
ESB
Event Sink
Event Source
Event
Event
- 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.
24Event Stream Processing (ESP)
Aggregating and Correlating Events
IF PRGS Price lt PRGS VWAP THEN Buy PRGS
EventManager
EventStream
Event
Event Source
Event Sink
Events
- Filter rules
- Aggregation of events
- Event detection patterns
25Agenda
- The Case for Events
- Event-Driven Applications
- Events and SOA
- Events and OpenEdge RA
- Case Study
- Summary
26Service-Oriented Architecture
An approach for building distributedcomputing
systems based on encapsulating business functions
as services that can be easily accessed in a
loosely coupled fashion.
27How Do Events Support These Principles?
- SOA is good.
- Events are good.
- How do I marry the two????
28SOA Model
Loosely Coupled Components Communicating Via
Well-Defined Interfaces
ServiceDirectory
Contract
Find / Details
SOAInfrastructure
Publish
Service Consumer
Service Provider
Contract
Bind / Invoke
29Service Elements
- Presentation layer or another service
- Locates service provider through agreed upon
service directory - Binds/invokes service based service interface
Fn()
Service Consumer
Fn()
- Only the service interfaces are exposed
- Service implementation is hidden from the service
consumer - Data store encapsulated by service
Service Implementation
Service Provider
ServiceLogic
Data
30Service Contracts
Everything You Need to Know to Access the Service
Provider
Service Requestor
Service Provider
Contract
- Service Interface
- Service Location and Transport
- Service Description and Sequencing Requirements
- Error Handling
- SLAs
31SOA and Events
Event Sink
Event Source
Service Consumer
Service Provider
Notification
Event Sink
Event Source
Service Consumer
One-way
32SOA Architectural Layers
Application Client Layer
Business Process Services
ESB Orch. Service
Intermediary Services
Brokered EventsESP, ESB Routed Event
Basic Services
Simple Events
33Broker as an Intermediary Service
Service Consumer
Event Source
Event Sink
Event
Event
ServiceIntermediary
One-way
One-way
Message Broker
One-way
One-way
Service Consumer
Event
Event Sink
Event Source
Event
34Enterprise Service Bus Routed Events
Intelligent Routing
ServiceIntermediary
ESB
One-way
Event
Yes
Event
Service Consumer
Event Source
order count lt 100
One-way
No
Event
One-way
35Agenda
- The Case for Events
- Event-Driven Applications
- Events and SOA
- Events and OpenEdge RA
- Case Study
- Summary
36OpenEdge RA Service Components
Users
Enterprise Services
Service Consumer
Presentation Layer
Integration Layer
Business Servicing Layer
Data Access Layer
Service Provider
Managed Data Stores
Unmanaged Data Stores
37Business Layer Integration
Presentation Layer/s
Integration Layer/s
Service Adapter
Service Interface
Business Workflows
Business Tasks
Business Entities
Data Access Layers
Managed
Unmanaged
38Service Adapter/Interface Requirements
Service Consumer
Event-Driven Service Adapter
Service Provider
39Service Adapter/Interface Requirements
40Agenda
- The Case for Events
- Event-Driven Applications
- Events and SOA
- Events and OpenEdge RA
- Case Study
- Summary
41Sedgwick Claims Management Services, Inc.
42Sedgwick Event Driven SOA
Update Claim Info
Changed Fields From-value To-Value
Event Capture (DB Triggers)
Users
Event Generator/ Quenching
New Claim
Change Log
EMAIL ALERT
State-Changed Events
Enterprise Service Bus
RULES ENGINE Sub-System
State-Changed Events
Email
IVR
Rules Processing Engine
RULES DATABASE
43Agenda
- Event-Driven Applications
- Events and SOA
- OpenEdge RA and Events
- Case Study
- Summary
44In 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
45Questions?
46Thank you for your time!
47The Business Value of Software Events
- Efficiency
- Push technology
- Replaces polling or batch processing mechanisms
- 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