demystifying orchestration with patterns - micro · pdf filealexander) patterns. an example...

33
Demystifying Orchestration with Patterns Dragos Manolescu, ThoughtWorks with Boris Lublinsky, CNA Insurance [email protected] Copyright © 2005 Dragos Manolescu

Upload: lamtu

Post on 06-Feb-2018

222 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Demystifying Orchestration with

PatternsDragos Manolescu, ThoughtWorks

with Boris Lublinsky, CNA [email protected]

Copyright © 2005 Dragos Manolescu

Page 2: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Outline

Technical Context

Motivation

Objectives and Method

An Example

Five Orchestration Patterns

Next Steps and Summary

Page 3: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Technical Context: SOA

SOA is ... <space intentionally left blank>

Built to last: services

Built to change: orchestration

An orchestration-oriented business model

Page 4: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Orchestration Layer

Orchestration

Page 5: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

State of the Art

Better alignment with the business

Focus on core competency

Improved flexibility

Increased ability to specialize

Better manageability

Page 6: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

State of the Practice

Must use SOA somehow

Web Services:

Distributed system technology

The ultimate API

People jumped on the bandwagon unprepared

Page 7: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Motivation

Misunderstanding of SOA

Stuck in the first stage of SOA adoption

How to use orchestration

How to evaluate orchestration products

Page 8: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Objectives and Method

Architects: improve SOA design

Evaluators: ask the right questions

Explain orchestration with patterns:

Patterns passed the test of time

Patterns distill expert knowledge

Patterns establish a shared vocabulary

Page 9: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

“Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution.” (Christopher Alexander)

Patterns

Page 10: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

An Example

Mortgage Decisioning Process:

External servicesInternal services

Start/Stop

Get Credit Rating

Credit Score

>500

Get Flood

Certification

Get Property

Appraisal

A

Decision

Loan

Generate

Documents

Print and

Mail Docs

Start/Stop

NO

Page 11: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Orchestration Engine

Implement with SOA

How do you compose the services in a flexible way?

Decision Service

Document Generation

ServicePrinting Service

Credit Rating Service

Flood Certification

Service

Property Appraisal Service

Glue Code

Page 12: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Forces

The business changes trading partners and the way they interact with them

Agility is critical to business survival

Service interfaces do not guarantee interoperability

Page 13: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Solution

Factor out service coordination into a specialized component

Decision Service

Document Generation

ServicePrinting Service

Credit Rating Service

Flood Certification

Service

Property Appraisal Service

Orchestration Engine

Page 14: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Consequences

Improves modifiabilitySimplifies application codeIncreases sensitivity to architectural mismatchRequires specialized expertise

Known Uses: FiveSight PXE, Microsoft BizTalk Server, Oracle BPEL Process Manager.

Page 15: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Orchestration Language

Generic orchestration engine

How do you specify service coordination?

Mortgage Decisioning Business Process ?

Orchestration Engine

AutomobileDecisioningBusiness Process

Sell Loans Business Process

Page 16: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Forces

Business experts want an unambiguous specification

Orchestration involves different abstractions than general-purpose languages

Often-times the business processes are ill-defined

Page 17: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Solution

Use a language specialized in coordination

Mortgage Decisioning Business Process

Orchestration Engine

<<depends>>

Process Definition

Orchestration Language

<<uses>>

Page 18: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Consequences

Improves correctness

Improves flexibility

Increases interface complexity

Provides insufficient constructs

Known Uses: BPMN, BPEL, BPEL-J, FusionWare, Orc

Page 19: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Visual Modeler

Technical users employ a Visual Editor

How can non-technical users participate?

Mortgage Decisioning Business Process

Orchestration Engine

<<depends>>

Process Definition

Orchestration Language

<<uses>>

Technical User

Business User

Visual Editor

<<generates>>

Visual composition?

Simulation?

What-if scenarios?

Page 20: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language
Page 21: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Forces

Business analysts understand flow charts

Flexibility is worthless without prompt feedback

Simulation and what-if scenarios require data that is not always available

Page 22: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Solution

Add a tool specialized in visual composition, simulation, and running what-if scenarios

Mortgage Decisioning Business Process

Orchestration Engine

<<depends>>

Process Definition

Orchestration Language

<<uses>>

Technical User

Business User

Visual Editor

<<generates>>

Visual Modeler

<<bind>>

Page 23: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Consequences

Orchestration users leverage flexibilityImproves communication between business analysts and technical usersAs accurate as the available dataCan be computationally intensive

Known uses: IBM WebSphere Business Integration Modeler, Staffware Workflow

Page 24: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Business Activity Monitoring

The Orchestration Engine lies at the focal point

How do you obtain and act upon business process information?

Orchestration Engine

Mortgage Decisioning Business Process

Sell Loans Business Process

(BAM)

Events Knowledge

Page 25: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Nothing exists until it is measured.

Niels Henrik David Bohr

Page 26: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Forces

Business process information critical to tuning the business

Transforming business events into business knowledge requires zero-latency environments

Specialized BAM tools already existBusiness processes might not be the best source for BAM

Page 27: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Solution

Extend the engine with BAM functionality; integrate it in the BAM response mechanism

Orchestration Engine

Orchestration BAM Support

Specialized BAM Tool<<uses>>

Event absorptionProcess and filterAlert and notification

Page 28: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Consequences

Convergence of orchestration and BAM tools

Increases the implementation complexity (real-time processing, analytics, alerts)

Known uses: Microsoft BizTalk Server

Page 29: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

What’s Next?

Page 30: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Orchestrationengine

Orchestrationlanguage

Compensation

Transitionconditions

Ruleslanguage

Orchestrationeditor

Visualmodeler

Orchestrationport

Mapper Orchestrationinstance

Orchestrationcontext

Monitoring and control

BAM

Worklist Work assignment policies

Orchestration

Page 31: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Orchestrationengine

Orchestrationlanguage

Compensation

Transitionconditions

Ruleslanguage

Orchestrationeditor

Visualmodeler

Orchestrationport

Mapper Orchestrationinstance

Orchestrationcontext

Monitoring and control

BAM

Worklist Work assignment policies

System decomposition

Service definition and metadata Service repository

Service implementation

Compositeservices

Service versioning

Service monitoringand management

Servicesecurity

Serviceinvocation

styles

Serviceregistry

Enterprise service bus

Orchestration and SOA

Page 32: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

Summary

SOA: beyond building (Web) services

Orchestration: “built to change” SOA

Orchestration patterns:

Improve design

Help evaluate platforms and tools

Page 33: Demystifying Orchestration with Patterns - micro · PDF fileAlexander) Patterns. An Example Mortgage Decisioning Process: External services ... Orchestration engine Orchestration language

For More Information

Web site: orchestrationpatterns.com

Yahoo! group: orchestrationpatterns-book

Tak (thank you).