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