41
Integration Patterns Integration Patterns Overview Overview Christopher Baldwin Architect Microsoft EMEA [email protected]

Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA [email protected]

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Integration Patterns OverviewIntegration Patterns Overview

Christopher BaldwinArchitectMicrosoft [email protected]

Page 2: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

AgendaAgenda

Overview of Microsoft patterns & practices

Integration patterns

Pattern based design example

Page 3: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Patterns & PracticesPatterns & Practices

Reference ArchitecturesReference ArchitecturesReference ArchitecturesReference ArchitecturesBuilding BlocksBuilding BlocksBuilding BlocksBuilding Blocks

Lifecycle Guidance Lifecycle Guidance Guidance for tasks such as deployment and operations Guidance for tasks such as deployment and operations

in a production environmentin a production environment

Lifecycle Guidance Lifecycle Guidance Guidance for tasks such as deployment and operations Guidance for tasks such as deployment and operations

in a production environmentin a production environment

Enterprise Solution Enterprise Solution PatternsPatterns

Enterprise Solution Enterprise Solution PatternsPatterns

D A D I

A

D

I

D A D I

A

D

I

Atomic solutions to recurring Atomic solutions to recurring problemsproblems

Sub-system-level guidance for Sub-system-level guidance for common servicescommon services

System-level guidance for common System-level guidance for common customer scenarioscustomer scenarios

D A D I

A

D

I

Page 4: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

ScenariosScenarios

Baseline Architectures (aka Skeletal Apps)

Patterns and Reference Model

Block Library

• Compositions of pattern implementations that meet requirements of scenarios

• Pattern implementations include blocks and tool-generated code

Architecture Scenarios• Ex. clients submitting one-way service requests via

message queues, SOAP message, transaction spanning message queue and business action, …

Tools• Pattern selection• Patten implementation • Block inclusion• Code generation • Configuration

• Selected patterns of distributed applications

• Meaningful pattern compositions

• A library of configurable, generally applicable blocks • Blocks or block compositions may implement patterns,

but they don’t imply patterns directly

Abstract Code-based

Page 5: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Patterns Traceable Down to BitsPatterns Traceable Down to Bits

Pattern Pattern Implementations,Implementations,

Blocks, Frameworks & Blocks, Frameworks & LogicalLogicalServersServers

Pattern SetPattern Set

Patterns Patterns Bound to Bound to PlatformPlatform

Bits & Bits & HardwareHardware

Page 6: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Enterprise Architecture - PatternsEnterprise Architecture - Patterns

Business ArchitectureBusiness Architecture

Integration ArchitectureIntegration Architecture

Application ArchitectureApplication Architecture

Operational ArchitectureOperational Architecture

Development ArchitectureDevelopment Architecture

Integration ArchitectureIntegration Architecture

Architecture

Design

Implementation

Database Application Deployment Infrastructure

Enterprise Solution PatternsEnterprise Solution Patterns

Architecture

Design

Implementation

Database Application Deployment Infrastructure

Enterprise Integration PatternsEnterprise Integration Patterns

Page 7: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

AgendaAgenda

Overview of Microsoft patterns & practices

Integration patterns

Pattern based design example

Page 8: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Integration Patterns BookIntegration Patterns Book

Available to download from http://msdn.microsoft.com/patterns

Page 9: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Patterns arePatterns are

GuidanceConceptual, platform independentTextualAt minimum, cover

Context Problem Forces Solution

Separate Implementation Pattern

Page 10: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Integration PatternsIntegration Patterns

IntegratingLayerIntegratingLayer

SystemConnectionsSystemConnections

IntegrationTopologiesIntegrationTopologies

Page 11: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Integration PatternsIntegration Patterns Intent of Integration

Unified data access Streamlined business process Consolidated view of systems

How to Connect Via the database Via the business logic layer Via the user interface

How to Interconnect Through a central “hub” Open communication One-to-many communication

Integrating Layer Entity Aggregation Process Integration Portal Integration

System Connection Data Integration Function Integration Presentation Integration

Integration Topologies Message Broker Message Bus Publish-Subscribe

Page 12: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Integrating LayerIntegrating Layer

Page 13: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Portal IntegrationPortal Integration

How can users efficiently perform tasks that require access to information that resides in multiple disparate systems?

Create a Portal Application that displays the information retrieved from multiple applications in a unified user interface

Page 14: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Entity IntegrationEntity Integration

How can enterprise data that is redundantly distributed across multiple repositories be effectively maintained by applications?

Introduce an Entity Aggregation layer that provides a logical representation of the entities at an enterprise level with physical connections that support access to the back-end repositories

Page 15: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Process IntegrationProcess Integration

How do you coordinate the execution of a long-running business function that spans multiple disparate applications?

Define a business process model that describes the individual steps that make up the complex business function; Create a separate process manager component that can interpret multiple concurrent instances of this model and that can interact with the existing applications

Page 16: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Integration PatternsIntegration Patterns

IntegratingLayerIntegratingLayer

SystemConnectionsSystemConnections

IntegrationTopologiesIntegrationTopologies

Page 17: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

System ConnectionsSystem Connections

Page 18: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Integration TopologiesIntegration Topologies

Page 19: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Additional Integration PatternsAdditional Integration Patterns

Page 20: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

AgendaAgenda

Overview of Microsoft patterns & practices

Integration patterns

Pattern based design example

Page 21: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Team Scenario?

IntegratingLayerIntegratingLayer

SystemConnectionsSystemConnections

IntegrationTopologiesIntegrationTopologies

Page 22: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Pattern based design – team scenarioPattern based design – team scenario Global Bank

Mid-sized bank Grown through acquisition Limited and disparate online presence

Online initiative Electronic Bill Presentment and Payment (EBPP)

Trace use of patterns throughout design Build full baseline architecture Discuss via the Artefacts created

Page 23: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Business Scenario: ConvergenceBusiness Scenario: Convergence

“In the Convergence pattern, competitors from previously distinct industries start competing to satisfy the requirements of a specific customer set. There are three distinct flavors of this pattern: product, in which product boundaries blur; supplier, in which suppliers become ‘one stop shops’; and complementor, in which companies combine to deliver greater value”

- Profit Patterns, Adrian J. Slywotsky

Page 24: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

CEO’s view – CEO’s view – High level enterprise ArchHigh level enterprise Arch

<<Enterprise Process Portfolio>>

Global Bank

Customer Clearinghouse Brokerage

<<Creates>>

<<supply>>

Federal Reserve

<<Resources>>

<<physical>>Output

Global Bank Enterprise Portfolio : CEO Process View

<<physical>>Capital

<<information>>Strategy

<<BusinessService>>Basic Banking -

Consumer

<<BusinessService>>Insuring

<<BusinessService>>Investing

<<Mission>> <<Vision>> <<GuidingPrinciples>>

<<Guides>>

<<Guides>> <<Guides>>

<<information>>Regulation

Credit Bureau3rd Party ServicesOther Financial Institutions

incomplete

incomplete

<<people>>

<<Control>>

<<achieves>>

<<Goal>>Process Goal:

Quantitative Goal

<<Goal>>Process Goal:

Qualitative Goal<<achieves>>

<<BusinessService>>Lending

<<BusinessService>>Sales, General &

Administrative

<<BusinessService>>Basic Banking -

Comercial

Page 25: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

GM of Banking – GM of Banking – EBPP viewEBPP view

<<BusinessService>>

Basic Banking - Commercial

Customer Commercial Customer

<<Creates>>

<<supply>><<Resources>>

<<abstract>>Output

Global Bank Enterprise Portfolio - GM Process View

<<physical>>Capital

<<abstract>>BankingStrategy

<<Mission>> <<Vision>> <<GuidingPrinciples>>

<<Guides>>

<<Guides>> <<Guides>>

<<information>>BankingRegulation

<<BusinessService>>

Basic Banking - Consumer

<<BusinessService>>Consumer Lending

<<BusinessService>>Consumer Banking

Other Financial InstitutionsCredit Bureau

incomplete

incomplete

<<people>>

<<Control>>

<<Goal>>Process Goal:

Quantitative Goal

<<Goal>>Process Goal:

Qualitative Goal

<<achieves>>

<<BusinessService>>Payment Processing

<<BusinessService>>Electronic Bill

Presentment and Payment

(Online Bill Payment)

<<BusinessService>>Loan Servicing

<<BusinessService>>Account Management

<<BusinessService>>Loan Origination

<<achieves>>

<<achieves>>

<<achieves>>

<<BusinessService>>Electronic Funds

Transfer

<<BusinessService>>Cash Management

(Checking & Savings)

<<BusinessService>>Card Services

Page 26: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

EBPP Director – EBPP Director – HL Processes viewHL Processes view

<<BusinessService>>

Basic Banking – Consumer Banking

<<Creates>> <<physical>>Output

<<BusinessService>>Cash Management

(Checking & Savings)

<<BusinessService>>Electronic Bill

Presentment and Payment

(Online Bill Payment)

<<BusinessService>>Loan Servicing

Customer

<<Goal>>Process Goal:

Quantitative Goal

<<achieves>>

<<Mission>> <<Vision>> <<GuidingPrinciples>>

<<Guides>>

<<Guides>> <<Guides>>

Global Bank Enterprise Portfolio - Process Owner View: Consumer banking

<<physical>>Capital

<<abstract>>Consumer

Banking Strategy

<<information>>Banking Regulation

<<BusinessService>>Account Management

<<BusinessService>>Loan Origination

incomplete

incomplete

Credit BureauClearinghouseOther Financial Institutions

<<supply>>

<<Resources>>

<<people>>

<<Control>>

<<Goal>>Process Goal:

Qualitative Goal

<<achieves>>

<<BusinessService>>Investment

Management

Page 27: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

EBPP Major Use CasesEBPP Major Use Cases

Notification Package

Bill Payment System Package

Customer Package

Customer

Signup for EBPP

Get Potential EBPP Payees

(UC4)

Get Current EBPP Payees

(UC5)

Add \ Remove EBPP Payee

(UC3)

Get Current Bills (UC6)

Request Bill Payment (UC7)

Global BankUse Case Diagram - EBPP

Quit EBPP

Biller

Register as EBPP Payee

Bill Payment System

Submit Bills for EBPP

Customers

Send Notifications

Bills due

EBPP Administrator

Notification System

Process Submitted Bills

Transaction Processing

EBPP Subscription Update (UC 2)

Manage Notification

Profile

Add Notification Event

New Bills

Get Customer Data (UC1)

Update Bill Status (UC10)

Get Bill Data (UC8)

Transaction Management

Transfer Funds (UC9)

Page 28: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Transaction Processing Services

Integration Services

Biller Services

Global Bank Bank Enterprise Portfolio - Process Owner ViewConsumer banking: EBPP - Subscription Management

<<BusinessService>>Electronic Bill Presentment and Payment

(Online Bill Payment - Subscription Processing)

<<Goal>>Process Goal:

Quantitative Goal

<<achieves>>

<<Goal>>Process Goal:

Qualitative Goal<<achieves>>

Customer Services

Bill Consoldation Services

<<BusinessService>>Maintain Billers

<<BusinessService>>Presentment

<<BusinessService>>Payment

Tra

nsf

er

Fu

nd

s (U

C9

)

Up

da

te B

ill S

tatu

s (U

C1

0)

Ge

t C

ust

om

er

Da

ta (

UC

1)

[PaymentRequested]

Ad

d\R

em

ove

Pa

yee

s (U

C3

)

Ge

t C

urr

en

t P

aye

es

(UC

5)

Ge

t C

urr

en

t B

ills

(UC

6)

Ge

t C

ust

om

er

Da

ta (

UC

1)

Ge

t P

ote

ntia

l Pa

yee

s (U

C4

)

Ge

t B

ill D

ata

(U

C8

)

<<BusinessService>>Process EBPP Subscriptions

[EBPP Subscription Modifications]

Ge

t S

ub

scri

ptio

n U

pd

ate

s

Tra

nsm

it S

ub

scri

ptio

n U

pd

ate

s to

Su

pp

lier

Pro

cess

Su

bsc

rip

tion

Up

da

te R

esu

lts

Up

da

te S

ub

scri

ptio

n L

ist

<<payee>> Electric Company

<<payee>> Water Company

<<payee>> Sewer Company

Pa

yee

In

sta

nce

s

D1

D2

D3

D4

Re

qu

est

Bill

Pa

yme

nt

(UC

7)

Se

nd

Su

bsc

rip

tion

Ch

an

ge

s

Se

nd

Su

bsc

rip

tion

Ch

an

ge

s

Se

nd

Su

bsc

rip

tion

Ch

an

ge

s

EBPP Update Subscriptions (UC 2)Data Integration Specifications:D1 : Fixed File - File TransferD2 : XML - Batch Request ResponseD3 : XML - Transactional WebService

Page 29: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Transaction

Global Bank Enterprise Portfolio - Process WorkerConsumer banking: EBPP - Bill Presentment & Payment

Customer File Bill Consolidation

Start

Collect Customer

Credentials

Get Customer Data

Get Current Bills

Authenticate Customer

Present Current Bills

No Current Bills for Payment

Unable to Validate

Get Account Data

Select Bills For Payment

Select Account Validate

Availability of Funds

Insufficient Funds

Request Bill Payment

Transfer FundsUpdate Bill Status Succeeded Payment complete

Web Interface

Get Payee Account Data

Compensating Transaction

Reverse TransferUpdate Bill

Status

Failed

Failed

Transaction ManangmentAccount Management

Payment Failed

Page 30: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Layers?

Page 31: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

SOI?

Page 32: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Implementing Service Oriented Implementing Service Oriented IntegrationIntegration How do you integrate information systems that

were not designed to work together? Coupling affects interoperability Divergence in platform type systems and data

structures Machine boundaries are important

Design systems to produce and consume XML-based Web Services.

Comply with industry standards, specifically WS-I

Page 33: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Implementing Service Oriented Implementing Service Oriented Integration Integration

Implementing Service Oriented Integration

Using ASP.NET

WSDLSchemaWeb Method

Using BizTalk

Page 34: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com
Page 35: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

[STAThread] static void Main(string[] args) { Gateway.Gateway gateway = new Gateway.Gateway(); Gateway.GetAccountInfoRequest request = new Gateway.GetAccountInfoRequest(); request.AccountID = "123"; try { Gateway.GetAccountInfoResponse response = gateway.GetAccountInfo(request); System.Console.WriteLine("{0} {1} {2}", response.AccountID, response.Name, response.Balance); } catch (SoapException se) { Console.WriteLine(se.Message); } System.Console.ReadLine(); }

[STAThread] static void Main(string[] args) { Gateway.Gateway gateway = new Gateway.Gateway(); Gateway.GetAccountInfoRequest request = new Gateway.GetAccountInfoRequest(); request.AccountID = "123"; try { Gateway.GetAccountInfoResponse response = gateway.GetAccountInfo(request); System.Console.WriteLine("{0} {1} {2}", response.AccountID, response.Name, response.Balance); } catch (SoapException se) { Console.WriteLine(se.Message); } System.Console.ReadLine(); }

<?xml version="1.0" encoding="utf-16" ?> - <xs:schema xmlns="http://msdn.microsoft.com/patterns" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" elementFormDefault="qualified" targetNamespace="http://msdn.microsoft.com/patterns" id="CreditAccountRequest" xmlns:xs="http://www.w3.org/2001/XMLSchema">- <xs:element name="CreditAccountRequest">- <xs:complexType>- <xs:sequence>  <xs:element name="AccountID" type="xs:string" />   <xs:element name="Amount" type="xs:decimal" />   </xs:sequence>  </xs:complexType>  </xs:element>  </xs:schema>

<?xml version="1.0" encoding="utf-16" ?> - <xs:schema xmlns="http://msdn.microsoft.com/patterns" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" elementFormDefault="qualified" targetNamespace="http://msdn.microsoft.com/patterns" id="CreditAccountRequest" xmlns:xs="http://www.w3.org/2001/XMLSchema">- <xs:element name="CreditAccountRequest">- <xs:complexType>- <xs:sequence>  <xs:element name="AccountID" type="xs:string" />   <xs:element name="Amount" type="xs:decimal" />   </xs:sequence>  </xs:complexType>  </xs:element>  </xs:schema>ConsumerConsumer

Message SchemaMessage Schema

[WebMethod] [SoapDocumentMethod(ParameterStyle=SoapParameterStyle.Bare)] public GetAccountInfoResponse GetAccountInfo( [XmlElement("GetAccountInfoRequest")] GetAccountInfoRequest getAccountInfoRequest) { CedarBank.ICedarBank bank = CedarBankPlugInFactory.GetCedarBankImpl();

CedarBank.AccountInfo cedarAccountInfo = bank.GetAccountInfo(getAccountInfoRequest.AccountID);

return BuildAccountInfo(getAccountInfoRequest, cedarAccountInfo); }

[WebMethod] [SoapDocumentMethod(ParameterStyle=SoapParameterStyle.Bare)] public GetAccountInfoResponse GetAccountInfo( [XmlElement("GetAccountInfoRequest")] GetAccountInfoRequest getAccountInfoRequest) { CedarBank.ICedarBank bank = CedarBankPlugInFactory.GetCedarBankImpl();

CedarBank.AccountInfo cedarAccountInfo = bank.GetAccountInfo(getAccountInfoRequest.AccountID);

return BuildAccountInfo(getAccountInfoRequest, cedarAccountInfo); }

ProviderProvider

Page 36: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

How is this Description of SOI How is this Description of SOI Different?Different?

Fits in with all integration alternatives.

Written in the context of higher and lower level decisions.

Written with separation of conceptual and implementation.

Page 37: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Baseline?

Early Conversation

Page 38: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Baseline Architecture from PatternsBaseline Architecture from Patterns

Technology?

Page 39: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Baseline Implementation from Baseline Implementation from PatternsPatterns

Deployment?

Page 40: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Baseline Infrastructure from Baseline Infrastructure from ImplementationImplementation

Agile?

Page 41: Integration Patterns Overview Christopher Baldwin Architect Microsoft EMEA cbaldwin@microsoft.com

Agenda ReviewAgenda Review

Overview of Microsoft patterns & practices

Integration patterns

Pattern based design example