Upload
rodger-doyle
View
217
Download
2
Tags:
Embed Size (px)
Citation preview
SOA-10: Event-Driven SOA: EDA in an SOA World
Ken WilnerVice President of Technology
2 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
ProcessOrder Service
ExternalCreditRatingService
Process Order
Process Order
Fulfill Order
ValidateOrder
Check Credit
Credit Rating
1
23
Heavy Weight Request/Reply
Light Weight Request/Reply
3 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
ProcessOrder Service
ExternalCreditRatingService
Process Order – Separate Polling Process
Process Order
Fulfill Order
ValidateOrder
Check Credit
Credit Rating
1
23
Customer Mgmt
Service
CustomerMgmt
CheckCredit
12
2a
Light Weight Request/Reply
Heavy Weight Request/Reply
Sent Periodically
Medium Weight
Request/Reply
4 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
ExternalCreditRatingService
Process Order – Event Driven Way
Process Order
Fulfill Order
ValidateOrder
Check Credit
Credit Rating
1
23
ProcessOrder Service
Customer Mgmt
Service
CustomerMgmt
CheckCredit
12
2a
Light Weight Request/Reply
One-Way Event sent in
Real TimeMedium Weight
Request/Reply
5 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
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
6 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Agenda
Event-Driven Applications Events and SOA OpenEdge™ RA and Events Case Study Summary
7 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
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
8 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Request/Reply
ConsumerConsumer ProviderProvider
Request
Reply
Synchronous Bi-directional CommunicationPlease do this
for me. I’ll wait until I get
the 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
9 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Order Mgmt Service
Order Mgmt Service
Supplier ServiceSupplier Service
Request/Reply Flow
Online Ordering Application
Online Ordering Application
Inventory Mgmt Service
Inventory Mgmt Service
Credit ServicesCredit Services
10 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Event
EventSource
EventSource
EventSink
EventSink
Event
It happened
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
Asynchronous uni-directional communication
11 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Order Mgmt Service
Order Mgmt Service
Event Flow
Inventory Mgmt
Service
Inventory Mgmt
Service
Credit ServicesCredit Services
ForkJoin
Online Ordering
Application
Online Ordering
Application
Shipping and
Fulfilling
Shipping and
Fulfilling
12 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
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
Supports dynamic and
parallelReactivity Closed loop Dynamically
reactive
13 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Events-Driven Application Models
Simple Events Brokered Events Enterprise Service Busses Event Stream Processing Engines
Asynchronous One-way Communication
14 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Simple Event
EventSource
EventSource
EventSink
EventSink
Event
It happened
15 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Event SourceEvent Source Event SinkEvent Sink
Request Event (req-id)
Req-id couples request/reply
Reply sent independently of request
Consumer assumes reply may be received along time after request
ConsumerConsumer ProviderProvider
Simple Events – Simulating Request/Reply
Reply Event (req-id)
16 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Brokered Events
EventEvent
Source
EventSource
EventSink
EventSink
EventSink
EventSink
Message Broker
EventSource
EventSource
Event
EventEvent
Message
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.
17 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Message Broker
Queue
Brokered Events – Point to Point
EventSource
EventSource
connect
EventSink
EventSink
Send to One Interested Party
Sender Receiver
18 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Message Broker
Queue
Brokered Events – Point to PointSend to One Interested Party – Multiple Receivers
Sender Receiver
EventSource
EventSource
EventSink
EventSink
EventSink
EventSink
Event delivered to one receiver
Multiple receivers promotes scalability
All clients are created equal
19 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Brokered Events – Publish/Subscribe
Message Broker
Topic
EventSink
EventSink
EventSink
EventSink
subscribe
Send to All Interested Parties
EventSource
EventSource
Publisher Subscribers
Event broadcast to all interested parties, e.g. “Hot Deals”
Subscribers can be added dynamically
Durable subscriptions support guaranteed delivery
20 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Enterprise Service Bus – Routed Events
EventSource
EventSource
Intelligent Routing
EventSink
EventSink
EventSink
EventSink
ESBYes
No
order count < 100
Combined with brokered event mechanisms
Content-based routing
Transformation
Standards-based; e.g. XML and Web Services
21 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Enterprise Service Bus - Orchestration Service
Sophisticated Process Flow
EventEventSource
EventSource
EventSink
EventSink
EventSink
EventSink
EventESB
EventEventEvent
Source
EventSource
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.
22 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Event Stream Processing (ESP)
EventStreamEvent
Source
EventSource
EventSink
EventSink
Event
Rules
EventManager
Events
IF PRGS Price < PRGS VWAP THEN Buy PRGS
Aggregating and Correlating Events
Filter rules
Aggregation of events
Event detection patterns
23 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Agenda
Event-Driven Applications Events and SOA OpenEdge RA and Events Case Study Summary
24 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Service-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.
25 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
How Do Events Support These Principles?
SOA is good. Events are good. How do I marry
the two????
26 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
SOA: Component Architecture
Bind / Invoke
Service
Consumer
Service
ConsumerService
Provider
Service
Provider
ServiceDirector
y
ServiceDirector
y
Find / Details Publish
27 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Service Contracts
Service
Requestor
Service
RequestorService
Provider
Service
Provider
ContractContract
Everything You Need to Know to Access the Service Provider
Service Interface
Service Location and Transport
Service Description and Sequencing Requirements
Error Handling
SLAs
28 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
SOA and Events
Service
Consumer
Service
ConsumerService
Provider
Service
Provider
Event Sink
Event Source
Service
Consumer
Service
ConsumerService
Provider
Service
Provider
Notification
One-way
Event Sink
Event Source
29 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
SOA Architectural Layers
Business Process Services
Intermediary Services
Basic Services
Application Client Layer
Brokered EventsESP, ESB Routed Event
ESB Orch. Service
30 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Broker as an Intermediary Service
One-way
EventSource
EventSource
EventSink
EventSink
EventSink
EventSink
Message Broker
EventSource
EventSource
Event
Event
One-way
Service
Consumer
Service
Consumer
Service
Consumer
Service
Consumer
One-way
One-way
Event
Event
ServiceIntermediary
ServiceIntermediary
Service
Provider
Service
Provider
Service
Provider
Service
Provider
31 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Enterprise Service Bus – Routed Events
Intelligent Routing
ESBYes
No
order count < 100Service
Intermediary
ServiceIntermediary
EventEvent
Source
EventSource
Service
Consumer
Service
ConsumerOne-way
EventSink
EventSink
EventSink
EventSink
Event
Event
Service
Provider
Service
Provider
Service
Provider
Service
Provider
One-way
One-way
32 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Agenda
Event-Driven Applications Events and SOA OpenEdge RA and Events Case Study Summary
33 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
OpenEdge RA Service Components
Service Provider
Service Consumer
Users
Presentation Layer
Business Servicing Layer
Data Access Layer
Managed Data Stores
Unmanaged Data Stores
Enterprise Services
Integration Layer
34 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Business Layer Integration
Presentation Layer/s Integration Layer/s
Data Access Layers
Managed Unmanaged
Users EnterpriseServices
Service Interface
Business
Workflows
Business
TasksBusiness Entities
Service Adapter
35 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Service Elements and Service Contracts
Service Interface
Service Adapter
Service Adapter
Fn()Fn()
RequestReply
Service Consumer
Service Provider
Event-Driven Service
Interface
Event-Driven Service Adapter
Event-Driven Service Adapter
Fn()Fn()
One-Way
Event-Driven Service Adapter
Event-Driven Service Adapter
Fn()Fn()
Notification
Event-Driven Service
Interface
36 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Agenda
Event-Driven Applications Events and SOA OpenEdge RA and Events Case Study Summary
37 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Sedgwick Claims Management Services, Inc.
Carriers
Clients
Claimants
Examiners
States
JURIS
38 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
JURIS
WWW/IVR
Change Log
JMS
XMLEmail
MSG
Enterprise Service Bus
“State-Changed”
Events
Changed FieldsFrom-valueTo-Value
RULESDATABASE
EMAILALERT
RULES ENGINE Sub-SystemRULES ENGINE Sub-System
Sedgwick Event Driven SOA
Users Users
NewClaim
Update Claim Info
RulesProcessin
gEngine
IVR
Event Capture(DB Triggers)
Event Generator/ Quenching“State-
Changed”Events
39 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Agenda
Event-Driven Applications Events and SOA OpenEdge RA and Events Case Study Summary
40 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
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
41 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Questions?
42 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation
Thank you for your time!