Building the Modern ESB with the Microsoft ESB Toolkit: An ...

Post on 18-Dec-2014

1,978 views 2 download

description

 

transcript

Building the Modern ESB with the Microsoft ESB Toolkit: An Architectural Overview With a Focus on Dynamic Messaging

Brian Loesgen

Principal SOA Architect

Microsoft Corporation

http://blog.BrianLoesgen.com

Session Objectives

• Explain architecture of the ESB Toolkit

• Drilldown into dynamic messaging

Agenda

• Service-orientation; ESB: why it matters

• Architectural Overview of ESB Toolkit

• Demos – focused on dynamic messaging

Re-think a Solution as a Set of Capabilities(the fundamental truth behind SOA success)

Mapping Service

RoutingCustom

Orchestration (Service)

ProtocolAdaptation

End Point Resolution

Pub/Sub Service Service ProvidersService Consumers

Custom Orchestration

(Service)

EnrichmentService

SOA Pattern Implementation

PolicyCentralization

RulesCentralization

Event-DrivenMessaging

Data Format Transformation

Protocol Bridge

Message Router

Message Broker

Legacy Wrapper

Architectural Design Patterns

Message Routing

Scatter-Gather

Routing Slip

Recipient List

Message Transformation

Content Enricher

Data Model Transformation

ESB Usage Patterns

Repair andResubmit

VETO/VETRO

Gateway

Reply Forward

MetadataCentralization

Perimeter Service Router

Content-BasedRouter

ESB Toolkit

BizTalk... BizTalk+ESB Toolkit...

• BizTalk is all about providing solutions based on configuration

• Configuration happens at dev time or post-deployment

• ESB Toolkit is all about runtime resolution, it interacts with external stores (e.g., services registry) to get operational configuration in a JIT manner

• ESB Toolkit adds a set of runtime resolution capabilities that BizTalk developers would need to create from scratch

Enter Microsoft ESB Toolkit…• From Patterns and Practices

• Provides architectural guidance, patterns and practices

• Delivers reusable BizTalk Server ESB and .NET components

• Enables construction of large and small-scale ESB solutions

The ESB Stack

BizTalk Server

Adapter Providers

Resolvers

Itinerary Components

Itineraries (Mediation Policies)

BizTalk ESB Toolkit ArchitectureESB Core

Core Engine Services

ESB MANAGEMENT PORTAL

Provisioning Framework

Reports

Alerts

Exception Management

Exception Logger

Exception Handler or Custom Application

Fault Processor

TRANSFORM SERVICE

ROUTE SERVICE

ON-RAMPS OFF-RAMPS

Generic SOAPSend

Generic WCFSend

Generic JMSSend

CustomSend

PIPELINE

GENERIC

PIPELINE

PIPELINE

CUSTOM

PIPELINE

Generic SOAPReceive

Generic WCFReceive

Generic JMSReceive

Generic CustomReceive

PIPELINE

PIPELINE

JMS PIPELINE

CUSTOM PIPELINE

ENRICH SERVICE

Exception

Management

Store

CUSTOM SERVICE

ESB SERVICES

Resolver Web Service

Transformation Web Service

Exception Web Service

UDDI Service

Operations Service

Itinerary

Configuration

Store

Resolver-Adapter Framework

CUSTOM RESOLVER

RESOLVERS (…) ADAPTER PROVIDERS(…)

CUSTOM ADAPTER PROVIDER

The Core ESBG Concepts

Itinerary

Processing

ResolversAdapter

Providers

Itinerary Concept

• Heart of the ESB Toolkit

• Itineraries help provide the runtime flexibility that BizTalk doesn’t have by default

• Itineraries provide a service composition mechanism

Itinerary

Processing

Developing Itineraries Itinerary

Processing

Using ItinerariesDesign Time

Itinerary

Processing

XML File

Itinerary

Repository

Run Time

Itinerary

OnRamp

Itinerary Selector

ESB Processing

Itinerary &Message

Message

Three Ways to Assign ItinerariesItinerary

Processing

Client resolves itinerary via resolver service and then sends request to On-Ramp with itinerary header

Client sends request to an Itinerary On-Ramp passing itinerary SOAP or WCF Header

Client sends message to Itinerary Generic On-Ramp, pipeline component selects an itinerary using configurable resolver

AdvancedServiceClient

AdaptiveServiceClient

ServiceProxy

Resolvers

• For runtime flexibility ESB Services are not hard-coded to specific endpoints or maps• This metadata is determined at runtime

• Resolver mechanism can locate and retrieve this metadata

• Itineraries define which ESB services execute and in which order

• Resolvers define how ESB services execute

Resolvers

Resolvers Shipped with V2

Endpoint Resolution Artifact Resolution

ESB Resolvers

Resolvers

ESB Toolkit V1

ESB Toolkit V2

Adapter Providers

• The Itinerary and Resolver mechanisms are .NET components. The endpoint information produced by the resolvers is stored in .NET based Dictionary objects

• We leverage BizTalk dynamic ports to handle the actual routing of messages. However, BizTalk isn’t built to work with Dictionary objects

• Adapter providers act as a bridge between the .NET based ESB components and the BizTalk based ESB components

Adapter

Providers

Adapter Providers Adapter

Providers

FTP

MQSeries

ESB Toolkit V1

ESB Toolkit V2

FILE

Custom

SQL

SMTP

ESB Adapter Providers

Using ESB Itineraries and Resolvers

Summary

• Architectural overview of the ESB Toolkit

• Demonstrated the dynamic messaging capabilities and features of the ESB Toolkit that accelerate ESB deployments

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market

conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.