of 42 /42
SOA-10: Event-Driven SOA: EDA in an SOA World Ken Wilner Vice President of Technology

SOA-10: Event-Driven SOA: EDA in an SOA World

Embed Size (px)

DESCRIPTION

SOA-10: Event-Driven SOA: EDA in an SOA World. Ken Wilner Vice President of Technology. Process Order. Process Order Service. External Credit Rating Service. Process Order. Light Weight Request/Reply. 2. 3. 1. Fulfill Order. Validate Order. Check Credit. Credit Rating. - PowerPoint PPT Presentation

Citation preview

Page 1: SOA-10:  Event-Driven SOA:  EDA in an SOA World

SOA-10: Event-Driven SOA: EDA in an SOA World

Ken WilnerVice President of Technology

Page 2: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 3: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 4: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 5: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 6: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 7: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 8: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 9: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 10: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 11: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 12: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 13: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 14: SOA-10:  Event-Driven SOA:  EDA in an SOA World

14 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation

Simple Event

EventSource

EventSource

EventSink

EventSink

Event

It happened

Page 15: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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)

Page 16: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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.

Page 17: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 18: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 19: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 20: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 21: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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.

Page 22: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 23: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 24: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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.

Page 25: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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????

Page 26: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 27: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 28: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 29: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 30: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 31: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 32: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 33: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 34: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 35: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 36: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 37: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 38: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Email

“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

Page 39: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 40: SOA-10:  Event-Driven SOA:  EDA in an SOA World

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

Page 41: SOA-10:  Event-Driven SOA:  EDA in an SOA World

41 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation

Questions?

Page 42: SOA-10:  Event-Driven SOA:  EDA in an SOA World

42 SOA-10: Event-Driven SOA: EDA in an SOA World© 2005 Progress Software Corporation

Thank you for your time!