enterprise service bus l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Enterprise Service Bus PowerPoint Presentation
Download Presentation
Enterprise Service Bus

Loading in 2 Seconds...

play fullscreen
1 / 56

Enterprise Service Bus - PowerPoint PPT Presentation


  • 824 Views
  • Uploaded on

Enterprise Service Bus. <Name> <Title> <Division> <Company>. Microsoft ESB Guidance for Partners. Agenda. What is a Microsoft ESB Reference Architecture Evolution of Architecture Hub/Bus and Beyond Microsoft ESB Guidance Introduction Client Test Tool ESB Architecture On-Ramps

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Enterprise Service Bus' - mio


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
enterprise service bus

Enterprise Service Bus

<Name>

<Title>

<Division>

<Company>

Microsoft ESB Guidance for Partners

agenda
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On-Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

enterprise service bus esb means different things to different people
Enterprise Service Bus (ESB) means different things to different people.

“An enterprise platform that implements standardized interfaces for communication, connectivity, transformation, and security.”

–Fiorano Software

“The ESB label simply implies that a product is some type of integration middleware product that supports both MOM and Web services protocols.”

–Burton Group

“A Web-services-capable infrastructure that supports intelligently directed communication and mediated relationships among loosely coupled and decoupled biz components.”

-Gartner Group

“A standards-based integration backbone, combining messaging, Web services, transformation, and intelligent routing.”

–Sonic Software

“To put it bluntly: If you have WebSphere MQ and other WebSphere brokers and integration servers, you have an ESB.”

–Bob Sutor, IBM

we need to agree on what an enterprise service bus is and what it does
We need to agree on what an Enterprise Service Bus is and what it does.

Message Broker

Message Transformation

Message Validation

Message-Oriented Middleware

Adaptation

Service Orchestration

Bavarian Purity Law of 1516

microsoft s products and technologies today offer a superset of esb functionality
Microsoft’s products and technologies today offer a superset of ESB functionality

BizTalk Server

Web Service Foundation

Visual Studio

Peripheral products/technologies

Architectural Guidance

slide6

Native

Native

Supported Service Consumer

Supported Service Provider

SOAP

SOAP

Standard Service Consumer

Standard Service Provider

An ESB is one important building block of a Service-Oriented Infrastructure

Service-Oriented Infrastructure

Enterprise Service Bus

Orchestration

ESB Core Services

Transformation

Adaptation

Adaptation

Routing

CI

SI

Exception Management

Management Portal

Provisioning Framework

Service Registry/Repository

Service Management

Security

Legend:

CI: Consumer Interceptor

SI: Service Interceptor

agenda7
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On-Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide8

Evolution of Architectures

Point-to-Point

Hub and Spoke

Message Bus

unmanaged / decentralized

managed / centralized

managed / decentralized

Supports lose coupling of systems

Message Broker

n lines of connectivity

Centralized management

Limited scalability

Single point of failure

Suitable for small environments

n² lines of connectivity

Common communication infrastructure

Common command infrastructure

n lines of connectivity

Proprietary communication protocols

Complex management

slide9

Hybrid Hub/Bus Architecture

Processing Hosts

Receive Hosts

Send Hosts

Outbound

Inbound

Network Load Balancer

MsgBox 1

Monitoring(MOM)

BizTalk ServerAdmin Host

BizTalk ServerTracking Host

BizTalk Mgmt DB

TrackingDB

MsgBox 3

MsgBox 2

Cluster

Cluster

Cluster

SAN

Data

Indexes

Logs

Data

Indexes

Logs

slide10

Expanding the SOA footprint

Business Unit 2

Business Unit 1

Business Unit 3

agenda11
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On-Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

microsoft esb guidance
Microsoft ESB Guidance

For BizTalk Server 2006

Architectural Guidance

Reusable Components

Sample Applications

Management Portal

microsoft esb guidance introduction
Microsoft ESB Guidance Introduction

On/Off ramps

Standardized metadata “envelope”

Dynamic Service Invocation through Itineraries

Loosely-coupled architecture, intermediaries/agents

Unified exception management

Provisioning and administration

developer sdk
Developer SDK

Developer’s Guide to the Microsoft ESB Guidance

VM with Microsoft ESB Guidance installed

Sample applications

Test Client

agenda15
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On-Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide16

ESB Client Tool

  • What is the ESB Client application?
    • ESB message generator
    • Test tool for ESB core Web services
    • Launch tool for samples
  • What does it do
    • SOAP client that can set SOAP headers for ESB metadata properties
    • SOAP client application for ESB Guidance core Web services
    • Implements ESB Guidance use cases
  • Why use it
    • Easy way to explore ESB Guidance components
    • Data-driven, can be extended to meet custom requirements
    • Can be used to test new intermediary functions
slide17

ESB Client Tool

private void SetSoapHeader(object hdrs, PropertyInfo p)

{

switch (p.Name)

{

#region Processing

case "ProcessingInstruction":

p.SetValue(hdrs, this.cmbProcessingInstruction.SelectedItem, null);

break;

case "Itinerary":

if (this.cmbItinerary.SelectedItem != null && this.cmbItinerary.SelectedItem.ToString() != "[None]")

p.SetValue(hdrs, this.cmbItinerary.SelectedItem, null);

break;

#endregion

#region Transformation

#region Routing

}

}

<?xml version="1.0" encoding="utf-8" ?>

<controlStates>

<!-- Use Case 1: point-to-point -->

<stateGroup name="ucPointToPoint" tabIndex="1">

<description>This use case shows usage of the ESB resolver service to perform runtime determination of an endpoint address based on a UDDI entry. This service could be used in the scenario of a Web service client communicating directly with a Web service (without going through the ESB).</description>

<states>

<state name="ucPointToPoint">

<controlValue name="ResolverFactRulesPolicy" value="1"/>

<controlValue name="ResolverFactSelectAssembly" value="1"/>

<controlValue name="ResolverFactSelectType" value="1"/>

<controlValue name="ResolverFactSelectMethod" value="1"/>

<controlValue name="ResolverFactXPath" value="1"/>

<controlValue name="ResolverFactUddi" value="3"/>

<controlValue name="rbResolverServiceUddiAddress" value="1"/>

</state>

</states>

</stateGroup>

BizTalk Receive Port

SOAP

Rec’v Loc n

Receive Pipeline

agenda18
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide19

Generic Send Port SOAP

Pipeline Components

Generic Send Port WSE

Pipeline Components

Generic Send Port JMS

JMSComponents

Generic Send PortOther

Pipeline Components

Custom Send Port 1..n

Pipeline Components

Microsoft ESB Guidance Architecture

Web Services

Core Services

Transformation Agent

Intermediary Agent /

Custom Application

Generic Delivery Agent

Resolver Web Service

Custom Delivery Agent 1 … n

Transformation Web Service

Off-ramps

On-ramps

BizTalk Server Orchestration Engine

SOAP Receiver

Pipeline Components

Context Setter

BizTalk Server Transformation Engine

WSE Receiver

Pipeline Components

Context Setter

BizTalk Server Business Rule Engine

JMS Receiver

JMSComponents

Context Setter

BizTalk ServerMessage Box(Microsoft SQL Server)

Custom

Receiver 1..n

Namespace Components

Context Setter

SharePoint Management Portal

Exception Management

Exception Handler 1..n

Generic Custom Application

Provisioning Framework

Exception Web Service

Processor

Exception Management

Exception Logger

B2B Gateway

slide20

Generic Send Port SOAP

Pipeline Components

Generic Send Port WSE

Pipeline Components

Generic Send Port JMS

JMSComponents

Generic Send PortOther

Pipeline Components

Custom Send Port 1..n

Pipeline Components

On/Off Ramps

Web Services

Core Services

Transformation Agent

Intermediary Agent /

Custom Application

Generic Delivery Agent

Resolver Web Service

Custom Delivery Agent 1 … n

Transformation Web Service

Off-ramps

On-ramps

BizTalk Server Orchestration Engine

SOAP Receiver

Pipeline Components

Context Setter

BizTalk Server Transformation Engine

WSE Receiver

Pipeline Components

Context Setter

BizTalk Server Business Rule Engine

JMS Receiver

JMSComponents

Context Setter

BizTalk ServerMessage Box(Microsoft SQL Server)

Custom

Receiver 1..n

Namespace Components

Context Setter

What are they?

SharePoint Management Portal

Exception Management

What do they do?

Exception Handler 1..n

Generic Custom Application

Provisioning Framework

Exception Web Service

Processor

Exception Management

Exception Logger

Why use them?

B2B Gateway

on off ramps
On/Off-Ramps
  • What is an ESB On/Off ramp
    • Structured/standardized way to enrich existing metadata
    • Exposed as SOAP/WSE interface by default
    • Can support any BizTalk adapter
    • Perform pre-delivery processing, and delivery
  • What does it do
    • Allows publication of messages with runtime metadata logic
      • Dynamic endpoint resolution
      • Transformation Invocation
      • Itinerary processing (ad hoc service invocation)
    • Uses ESB pipeline components (Context, Resolver, Namespace)
  • Why use it
    • Allows runtime resolution of endpoints (where does the message go?)
      • UDDI, BRE, custom assembly (IResolver interface), XPath
    • Allows runtime business logic to drive transformations
      • Alternative to Namespace#Root
      • Map to execute determined by
        • UDDI, BRE, custom assembly (IResolver interface), XPath
    • Allows for runtime service/application composition
    • Native IBM JMS over WMQ support
slide22

<soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=http://www.w3.org/2001/XMLSchema > <soap:Header> <EsbSoapHeaders xmlns=http://Microsoft.BizTalk.ESB.Receivers.Receivers_SoapHeaders > <ProcessingInstruction>TRANSFORM</ProcessingInstruction> <Itinerary>TRANSFORM,FULLFILLMENT,ROUTE</Itinerary> <MapRulesPolicy>Microsoft.BizTalk.ESB.Transformation</MapRulesPolicy> <MapType/> <MapUddiLabel/> <MapXPath/> <EndpointAddress/> <EndpointConfigurationString/> <EndpointConfigurationRulesPolicy/> <EndpointConfigurationUddiLabel/> <EndpointConfigurationXPath/> <EndpointDeliveryAgent/> <EndpointRulesPolicy/> <EndpointUddiLabel>ENDPOINT:Test.Out</EndpointUddiLabel> <EndpointXpath/> </EsbSoapHeaders> </soap:Header> <soap:Body> </soap:Body></soap:Envelope>

<soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=http://www.w3.org/2001/XMLSchema > <soap:Header> <EsbSoapHeaders xmlns=http://Microsoft.BizTalk.ESB.Receivers.Receivers_SoapHeaders > <ProcessingInstruction>TRANSFORM</ProcessingInstruction> <Itinerary>TRANSFORM,FULLFILLMENT,ROUTE</Itinerary> <MapRulesPolicy>Microsoft.BizTalk.ESB.Transformation</MapRulesPolicy> <MapType/> <MapUddiLabel/> <MapXPath/> <EndpointAddress/> <EndpointConfigurationString/> <EndpointConfigurationRulesPolicy/> <EndpointConfigurationUddiLabel/> <EndpointConfigurationXPath/> <EndpointDeliveryAgent/> <EndpointRulesPolicy/> <EndpointUddiLabel>ENDPOINT:Test.Out</EndpointUddiLabel> <EndpointXpath/> </EsbSoapHeaders> </soap:Header> <soap:Body> </soap:Body></soap:Envelope>

BizTalk ESB

ValidationService

ValidationService

FulfillmentService

FulfillmentService

FulfillmentService

ValidationService

RoutingService

Transformation Service

Business RulesService

RoutingService

RoutingService

Transformation Service

Transformation Service

Business RulesService

Business RulesService

BizTalkMessage Box DB

Spool

On/Off-Ramps – Itinerary Processing

  • Transformation
  • Fulfillment
  • Routing

What do I do??

  • UDDI label
  • Business rules engine
  • External assembly
  • XPath statement

How do I send a message to ESB?

  • Choose the order of service invocation
  • Determine service resolution
  • Map service invocation and resolution to SOAP headers
  • Send message to ESB on-ramp
  • Namespace normalization occurs
  • Context setter promotes SOAP headers
  • Publish to BizTalk Messaging Service

Promote SOAP Headers to BizTalk Context

If no Namespace…then add one

BizTalk Receive Port

SOAP

Rec’v Loc n

Receive Pipeline

slide23

Microsoft ESB Guidance

ESB Itinerary Processing

<Name><Title>

<Company>

on ramps namespace normalization
On-Ramps – Namespace Normalization
  • What is Namespace Normalization
    • Dynamically adding or removing Namespaces where required by either BizTalk or a subscribing system
  • What does it do
    • Properties for runtime construction of a namespace:
      • ExtactionNodeXpath
      • NamespaceBase
      • NamespacePrefix
      • Separator
      • XPath
    • Properties for removal of all namespaces and/or BOM:
      • Encoding
      • RemoveBOM
  • Why use it
    • Namespaces are required in BizTalk
    • Namespace#Root Identifies unique message
    • Many documents do NOT have namespaces
    • Many Namepace#Root documents are NOT unique
    • Some systems cannot work with Namespaces
slide25

BizTalkMessage Box DB

Spool

On-Ramps – Namespace Normalization

<CanonicalOrder OrderID="OrderID_0" OrderDate="OrderDate_1" Status="Status_2"> <OrderHeader> <CustomerName>CustomerName_0</CustomerName> <CustomerID>CustomerID_0</CustomerID> <ShipToLine1>ShipToLine1_0</ShipToLine1> <ShipToLine2>ShipToLine2_0</ShipToLine2> <BillToLine1>BillToLine1_0</BillToLine1> <BillToLine2>BillToLine2_0</BillToLine2> <OrderTotal>OrderTotal_0</OrderTotal> </OrderHeader> <OrderDetails> <LineItem Qty="Qty_0" PartNum="PartNum_1" Description="Description_2“ UnitPrice="UnitPrice_3" Ext="Ext_4" /> </OrderDetails> <B2BPartnerDetails CreditLimit="CreditLimit_0" AccountBalance="AccountBalance_1" LastOrderedData="LastOrderedData_2" DiscountLevel="DiscountLevel_3" /></CanonicalOrder>

<esbTest:CanonicalOrder xmlns:esbTest=http://schemas.microsoft.biztalk.esb.test.com/test/OrderID_0/OrderDate_1 OrderID="OrderID_0" OrderDate="OrderDate_1" Status="Status_2"> <OrderHeader>

<CustomerName>CustomerName_0</CustomerName>

<CustomerID>CustomerID_0</CustomerID>

<ShipToLine1>ShipToLine1_0</ShipToLine1>

<ShipToLine2>ShipToLine2_0</ShipToLine2>

<BillToLine1>BillToLine1_0</BillToLine1>

<BillToLine2>BillToLine2_0</BillToLine2>

<OrderTotal>OrderTotal_0</OrderTotal>

</OrderHeader>

<OrderDetails> <LineItem Qty="Qty_0" PartNum="PartNum_1" Description="Description_2" UnitPrice="UnitPrice_3" Ext="Ext_4" /> </OrderDetails> <B2BPartnerDetails CreditLimit="CreditLimit_0" AccountBalance="AccountBalance_1“ LastOrderedData="LastOrderedData_2" DiscountLevel="DiscountLevel_3" />

</esbTest:CanonicalOrder>

If no Namespace…then add one

BizTalk Receive Port

  • Message is published to ESB WITHOUT a Namespace
  • Namespace normalization pipeline component is executed
  • Namespace is applied according to predefined pipeline properties
  • Message is published to BizTalk MessageBox DB with Namespace

SOAP

Rec’v Loc n

Receive Pipeline

slide26

Microsoft ESB Guidance

ESB Namespace Normalization

<Name><Title>

<Company>

on ramps jms wmq
On-Ramps – JMS/WMQ
  • What is JMS over WMQ
    • IBM’s implementation of JMS using WMQ (MQSeries) as an underlying queuing provider
  • What does it do
    • BizTalk pipeline component implementation
      • Preserves IBM JMS (MQRFH2) headers as BizTalk context properties
        • MQRFH2 structure defined in cmqc.h
        • Read JMS headers via context properties
        • Accessible within .NET or orchestration expression shape
      • Writes IBM JMS (MQRFH2) Headers to outbound messages
        • Write to JMS headers via context properties
        • Accessible within .NET or orchestration expression shape
      • IBM JMS (MQRFH2) headers represented as property schema
  • Why use it
    • IBM JMS over WMQ ubiquitous in FinServ
    • JMS common transport in ESB scenarios
    • Scale/Perf usually requires queuing technology
    • IBM JMS over WMQ seems to be the most popular
slide28

WMQ

WMQ

WebSphere Application Server

BizTalk Receive Port

WMQ

Rec’v Loc n

Receive Pipeline

On-Ramps – JMS/WMQ

MQRFH2.NameValueData = <jms><Dst>DynamicRecFromBTS.Dest</Dst><Rto>DynamicRecFromBTS.Reply</Rto><Pri>99999</Pri><Dlv>999</Dlv><Exp>12319999</Exp><Cid></Cid><Gid></Gid><Seq>2147483647</Seq><Tms>01011536</Tms></jms>

MQMD.MsgId = 414D51204D6963726F7…

MQRFH2.Encoding = 546

MQRFH2.CodedCharSetId = 437

MQMD.Format = MQRFH2

MQRFH2.xsd<Shema> MQRFH2_StrucLength

MQRFH2_Version MQRFH2_Encoding

MQRFH2_CodedCharSetId MQRFH2_Format

MQRFH2_Flags MQRFH2_NameValueCCSID MQRFH2_ParseError MQRFH2_NameValueLength MQRFH2_NameValueData

JMSReplyTo = DynamicRecFromBTS.Reply

JMSDestination = DynamicRecFromBTS.Dest

JMSMessageID = 414D51204D6963726F7…

JMS_IBM_Encoding = 546

JMS_IBM_Character_Set = 437

JMS

JMS Submit to Topic

MQ Channel

WMQ Provider for JMS

  • Message submitted using JMS API
  • JMS Header set to destination queue
  • WMQ converts JMS message
  • JMS headers/properties mapped to MQRFH2 headers
  • BizTalk WMQ adapter parses MQMD headers
  • JMS/WMQ BizTalk pipeline parses MQRFH2 headers
  • BizTalk MQRFH2 property schema
  • MQRFH2 headers preserved with BizTalk

Writes JMS Header/Properties to BizTalk Context

slide29

Microsoft ESB Guidance

ESB JMS/WMQ

<Name><Title>

<Company>

agenda30
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide31

Generic Send Port SOAP

Pipeline Components

Generic Send Port WSE

Pipeline Components

Generic Send Port JMS

JMSComponents

Generic Send PortOther

Pipeline Components

Custom Send Port 1..n

Pipeline Components

Web Services

Web Services

Core Services

Transformation Agent

Intermediary Agent /

Custom Application

Generic Delivery Agent

Resolver Web Service

Custom Delivery Agent 1 … n

Transformation Web Service

Off-ramps

On-ramps

BizTalk Server Orchestration Engine

SOAP Receiver

Pipeline Components

Context Setter

BizTalk Server Transformation Engine

WSE Receiver

Pipeline Components

Context Setter

BizTalk Server Business Rule Engine

JMS Receiver

JMSComponents

Context Setter

BizTalk ServerMessage Box(Microsoft SQL Server)

Custom

Receiver 1..n

Namespace Components

Context Setter

What are they?

SharePoint Management Portal

Exception Management

What do they do?

Exception Handler 1..n

Generic Custom Application

Provisioning Framework

Exception Web Service

Processor

Exception Management

Exception Logger

Why use them?

B2B Gateway

web services
Web Services
  • What are the ESB Web Services
    • Resolver Web service
      • Reusable component enabling generic resolution methods
    • Transformation Web Service
      • High performance execution of BizTalk Maps (XSLT)
  • What do they do
    • Resolver accepts Fact Structure and/or BizTalk message
      • Determines resolution method from Fact Structure
        • UDDI, XPATH, external assembly (IResolver), BRE
      • Returns resolved item
      • Resolver class from Microsoft.BizTalk.ESB.Helpers namespace
    • Transformation accepts msgString, mapName and returns transformed XML
      • MapHelper class from Microsoft.BizTalk.ESB.MapHelpers namespace
      • msgString can be any XML document, mapName must be fully qualified i.e.Microsoft.BizTalk.ESB.Test.CanonicalOrder_To_OrderConfirmation, Microsoft.BizTalk.ESB.Test.Maps, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c2c8b2b87f54180a
  • Why use them
    • Resolver Web service
      • Allows location transparency of services and runtime lookups
    • Transformation Web service
      • Uses BizTalk’s transform caching service for high performance
      • No BizTalk MessageBox
slide33

Microsoft ESB Guidance

ESB Web Services

<Name><Title>

<Company>

agenda34
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide35

Generic Send Port SOAP

Pipeline Components

Generic Send Port WSE

Pipeline Components

Generic Send Port JMS

JMSComponents

Generic Send PortOther

Pipeline Components

Custom Send Port 1..n

Pipeline Components

Core Services

Web Services

Core Services

Transformation Agent

Intermediary Agent /

Custom Application

Generic Delivery Agent

Resolver Web Service

Custom Delivery Agent 1 … n

Transformation Web Service

Off-ramps

On-ramps

BizTalk Server Orchestration Engine

SOAP Receiver

Pipeline Components

Context Setter

BizTalk Server Transformation Engine

WSE Receiver

Pipeline Components

Context Setter

BizTalk Server Business Rule Engine

JMS Receiver

JMSComponents

Context Setter

BizTalk ServerMessage Box(Microsoft SQL Server)

Custom

Receiver 1..n

Namespace Components

Context Setter

What are they?

SharePoint Management Portal

Exception Management

What do they do?

Exception Handler 1..n

Generic Custom Application

Provisioning Framework

Exception Web Service

Processor

Exception Management

Exception Logger

Why use them?

B2B Gateway

core services
Core Services
  • What are the ESB Core Services
    • Transformation Agent
      • Reusable service for dynamic message transformation
    • Custom/Intermediary Agent
      • Example of custom service available for itinerary processing
    • Generic Delivery Agent
      • Service enabling dynamic routing for itinerary processing
  • What do they do
    • Transformation Agent allows for multiple resolution methods
      • Uses “Transform” XLANG Keyword
    • Custom/Intermediary Agents allow for ad-hoc service deployment
      • Pattern to accommodate runtime service composition
    • Generic Delivery Agent
      • Sets port address property using dynamic resolution (location transparency)
    • All agents support JIT resolution, manage exceptions and advance Itineraries
  • Why use them
    • Loosely coupled architecture to support Itinerary Processing
    • Enables Ad Hoc/Runtime Service Invocation
    • Manages advancement of Itinerary
    • Exception Management built in
    • BAM enabled for SLA
slide37

<soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=http://www.w3.org/2001/XMLSchema > <soap:Header> <EsbSoapHeaders xmlns=http://Microsoft.BizTalk.ESB.Receivers.Receivers_SoapHeaders > <ProcessingInstruction>TRANSFORM</ProcessingInstruction> <Itinerary>TRANSFORM,FULLFILLMENT,ROUTE</Itinerary> <MapRulesPolicy>Microsoft.BizTalk.ESB.Transformation</MapRulesPolicy> <MapType/> <MapUddiLabel/> <MapXPath/> <EndpointAddress/> <EndpointConfigurationString/> <EndpointConfigurationRulesPolicy/> <EndpointConfigurationUddiLabel/>ENDPOINT:Test.Out.Config

<EndpointConfigurationUddiLabel/> <EndpointConfigurationXPath/> <EndpointDeliveryAgent/> <EndpointRulesPolicy/> <EndpointUddiLabel>ENDPOINT:Test.Out</EndpointUddiLabel> <EndpointXpath/> </EsbSoapHeaders> </soap:Header> <soap:Body> </soap:Body></soap:Envelope>

<soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=http://www.w3.org/2001/XMLSchema > <soap:Header> <EsbSoapHeaders xmlns=http://Microsoft.BizTalk.ESB.Receivers.Receivers_SoapHeaders > <ProcessingInstruction>TRANSFORM</ProcessingInstruction> <Itinerary>TRANSFORM,FULLFILLMENT,ROUTE</Itinerary> <MapRulesPolicy>Microsoft.BizTalk.ESB.Transformation</MapRulesPolicy> <MapType/> <MapUddiLabel/> <MapXPath/> <EndpointAddress/> <EndpointConfigurationString/> <EndpointConfigurationRulesPolicy/> <EndpointConfigurationUddiLabel/>ENDPOINT:Test.Out.Config

</EndpointConfigurationUddiLabel> <EndpointConfigurationXPath/> <EndpointDeliveryAgent/> <EndpointRulesPolicy/> <EndpointUddiLabel>ENDPOINT:Test.Out</EndpointUddiLabel> <EndpointXpath/> </EsbSoapHeaders> </soap:Header> <soap:Body> </soap:Body></soap:Envelope>

Orchestration

Try

Catch

BizTalk Server 2006

Message Box DB

Any Transport

Send Port n

Spool

Send Pipeline

Core Services - Agents

Filter = (Microsoft.BizTalk.ESB.ProcessingInstruction == “FULLFILLMENT")

Filter = (Microsoft.BizTalk.ESB.ProcessingInstruction == “ROUTE")

Filter = (Microsoft.BizTalk.ESB.ProcessingInstruction == "TRANSFORM")

Itinerary of Services

  • Transformation
  • Fulfillment
  • Routing

Itinerary of Services

  • Transformation
  • Fulfillment
  • Routing
  • Is Microsoft.BizTalk.ESB.MapType in Message Context?
  • Resolve MapType to System.Type
  • facts = new Microsoft.BizTalk.ESB.Helpers.ResolverFacts();
  • mapName = Resolver.Resolve(facts, InboundMessage);
  • mapType = System.Type.GetType(mapName);
  • Apply map using Transform XLANG keyword
  • transform (OutboundMessage) = mapType(InboundMessage);
  • Advance Itinerary to route to next Service
  • itineraryStep =ItineraryHelper.Advance(OutboundMessage(Microsoft.BizTalk.ESB.Itinerary));
  • OutboundMessage(Microsoft.BizTalk.ESB.ProcessingInstruction) = itineraryStep.NextStep;
  • 5. Publish OutboundMessage Message
  • Are Microsoft.BizTalk.ESB.* Context properties in Message Set?
  • Resolve Facts to retrieve meta data for Service
  • facts = new Microsoft.BizTalk.ESB.Helpers.ResolverFacts();
  • metaData = Resolver.Resolve(facts, InboundMessage);
  • Apply Service Logic using meta data
  • Advance Itinerary to route to next Service
  • itineraryStep =ItineraryHelper.Advance(OutboundMessage(Microsoft.BizTalk.ESB.Itinerary));
  • OutboundMessage(Microsoft.BizTalk.ESB.ProcessingInstruction) = itineraryStep.NextStep;
  • 5. Publish OutboundMessage Message
  • Endpoint properties are resolved in Context Setter Pipeline Componenti.e EndPointUddiLabelEndPointConfigurationUddiLabel
  • Endpoint Config is parsed, PropertyNamespace resolved and written to Message Context
  • Is MessageToDeliver(Microsoft.BizTalk.ESB.EndpointAddress) Context property Set?
  • Resolve Facts to retrieve end point address for Servicefacts = new Microsoft.BizTalk.ESB.Helpers.ResolverFacts();endPointAddress = Resolver.Resolve(facts, InboundMessage);
  • Set Address property on Dynamic Port
  • Publish Message and Send to Endpoint

<Itinerary>TRANSFORM,

FULLFILLMENT,

ROUTE</Itinerary>

  • Define Itinerary of Services
  • Publish Message
  • First Step of Itinerary identified
  • Message routed to First Step (Transformation Agent)
  • Second Step of Itinerary identified
  • Message routed to Second Step (Fulfillment Agent)
  • Third Step of Itinerary identified
  • Message routed to Third Step (Routing Agent)
slide38

Microsoft ESB Guidance

Core Services

<Name><Title>

<Company>

agenda39
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide40

Generic Send Port SOAP

Pipeline Components

Generic Send Port WSE

Pipeline Components

Generic Send Port JMS

JMSComponents

Generic Send PortOther

Pipeline Components

Custom Send Port 1..n

Pipeline Components

Exception Management

Web Services

Core Services

Transformation Agent

Intermediary Agent /

Custom Application

Generic Delivery Agent

Resolver Web Service

Custom Delivery Agent 1 … n

Transformation Web Service

Off-ramps

On-ramps

BizTalk Server Orchestration Engine

SOAP Receiver

Pipeline Components

Context Setter

What is it?

BizTalk Server Transformation Engine

WSE Receiver

Pipeline Components

Context Setter

BizTalk Server Business Rule Engine

What does it do?

JMS Receiver

JMSComponents

Context Setter

Why use it?

BizTalk ServerMessage Box(Microsoft SQL Server)

Custom

Receiver 1..n

Namespace Components

Context Setter

SharePoint Management Portal

Exception Management

Exception Handler 1..n

Generic Custom Application

Provisioning Framework

Exception Web Service

Processor

Exception Management

Exception Logger

B2B Gateway

exception management
Exception Management
  • What is ESB Exception Management
    • Unified exception handling framework/API for BizTalk
    • Provides simplified API to manage orchestration exceptions
    • ESB portal for exception management
  • What does it do
    • Unifies “BizTalk failed message routing” API with ESB exception management
      • All messaging and orchestration exceptions are managed the same way
    • Persists message data and message context with ESB fault message
      • Analogous to “BizTalk failed message routing” mechanism
    • Exception processor will normalize all exception messages from ESB
      • Employs BAM Observation model for tracking Exception Trends
    • Management portal renders ESB fault message (with persisted data and context) and BAM tracking
  • Why use it
    • Provides message-oriented exception handling
    • Architecture enables highly-targeted exception handlers
    • Simplified API and message/context state management
    • Provides exception processing, portal rendering and trend analysis
    • Provides framework for common patterns that allow automated processes to react to and manage application exceptions
slide42

Orchestration

Try

Catch

SOAP Transport

Exception Rec’v Loc

Receive Pipeline

Intrerceptor

Configuration

(per Port)

Intrerceptor

Configuration

(per Port)

Interceptor

Configuration

(per Port)

Exception Management - Process

Any Transport

Any Transport

Add State…

Send Port n

Rec’v Loc n

Send Pipeline

Receive Pipeline

Failed Message Routing Enabled

Failed Message Routing Enabled

BTS Fault Msg

BTS Fault Msg

ESB Fault Msg

WSS Transport

ESB Fault Msg

ESB Audit Port

Spool

Send Pipeline

  • ESB BAM Exception Tracking

ESB Fault Processor

SuspendedQueue

Filter {BTS.FaultCode Exists}

Filter {BTS.FaultCode Exists Or ESB.FaultCode Exists}

BAM

BAM data

BAM ESB Event Data

  • BizTalk Failed Message Routing Processing
  • ESB Failed Orchestration Message Routing Processing
  • ESB Exception Service Processing
slide43

Exception Management - API

  • ApprovedRequest Orchestration Message is Preserved with FaultMsg
  • All Context Properties of original message are Preserved with FaultMsg
  • User can add multiple messages
  • BizTalk Application Name
  • Orchestration Shape
  • System.Exception Object
  • Processing Server
  • Date Time
  • Error Description
  • Error Type
  • Orchestration Instance ID
  • Orchestration Name
  • FailureCategory
  • FaultCode
  • FaultDescription
  • FaultSeverity
  • Fault Message Schema…
  • Associated Context Properties…
  • How to create a Fault Message…
  • Auto populated by the System…
  • Populated by the developer…
  • How to Add a Message…

System-Properties.xsd<Shema> Application Description ErrorType FailureCategory FaultCode FaultDescription FaultSeverity Scope ServiceInstanceID ServiceName MachineName DateTime RoutingURL

FaultMessage.xsd<Shema> FaultEnvelope Application Description ErrorType FailureCategory FaultCode FaultDescription FaultSeverity Scope ServiceInstanceID ServiceName

Orchestration Exception Handler

Expression Shape

FaultMsg = Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.CreateFaultMessage();

// Set Fault Message Properties

FaultMsg.Body.FailureCategory = "MessageBuild";

FaultMsg.Body.FaultCode = 100981;

FaultMsg.Body.FaultDescription = "Some unexpected error occurred";

FaultMsg.Body.FaultSeverity = Microsoft.BizTalk.ESB.Exception.Core.FaultSeverity.Severe;

// Add each message to the Fault Message

Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.AddMessage(FaultMsg,ApprovedRequest);

Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.AddMessage(FaultMsg,DeniedRequest);

slide44

Messages and Context Retrieved from ESB Fault Message as Collection of XmlDocuments

  • Original System.Exception Retrieved from ESB Fault Message
  • Loop through the Collection of Messages
  • Do Something cool!

Filter {ESB.FaultCode Exists Or

ESB.Application Exists Or

ESB.Description Exists Or

ESB.ErrorType Exists Or

ESB.FailureCategory Exists Or

ESB.FaultCode Exists Or

ESB.FaultDescription Exists Or

ESB.FaultSeverity Exists Or

ESB.Scope Exists Or

ESB.ServiceInstanceID Exists Or

ESB.ServiceName Exists}

//Retrieve the 2 messages from the Fault Message and submit them...

RequestMsg = Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.GetMessage(FaultMsg,"ApprovedRequest");

DeniedMsg = Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.GetMessage(FaultMsg,"DeniedRequest");

//Retrieve the System.Exception from the Original Service

newExc = Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.GetException(FaultMsg);

Orchestration

Try

Orchestration

Loosely Typed Orchestration

Orchestration Exception Handler (Catch)

Strongly Typed Orchestration

Expression Shape

Expression Shape

Expression Shape

Catch

Exception Management - Handlers

Strongly Typed Handler

Loosely Typed Handler

Order Process

//Retrieve a Collection of ALL messages from the Fault Message and submit them...

msgs = Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.GetMessages(FaultMsg);

//Retrieve the System.Exception from the Original Service

newExc = Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.GetException(FaultMsg);

//Loop through the collection of Messages and do something cool….

while (msgs.MoveNext())

{

tmpMsg = msgs.Current;

send (MessagePost.PostTmpMsg, tmpMsg);

}

FaultMsg = Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.CreateFaultMessage();

// Set Fault Message Properties

FaultMsg.Body.FailureCategory = "MessageBuild";

FaultMsg.Body.FaultCode = 100981;

FaultMsg.Body.FaultDescription = "Some unexpected error occurred";

FaultMsg.Body.FaultSeverity = Microsoft.BizTalk.ESB.Exception.Core.FaultSeverity.Severe;

// Add each message to the Fault Message

Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.AddMessage(FaultMsg,ApprovedRequest);

Microsoft.BizTalk.ESB.Exception.Core.ExceptionMgmt.AddMessage(FaultMsg,DeniedRequest);

Add State…

ESB Fault Msg

Spool

  • Order Process Receives Message
  • Exception Caught
  • ESB Fault Message Created
  • Messages added to ESB Fault Message
  • ESB Fault Message Published
  • Strongly Typed Handler Subscribes to ESB Fault Message
  • Loosely Typed Handler Subscribes to ESB Fault Message
  • Message and Context Retrieved from ESB Fault Message
  • Original System.Exception Retrieved from ESB Fault Message
  • Do Something cool!
slide45

Microsoft ESB Guidance

Exception Management

<Name><Title>

<Company>

agenda46
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide47

Generic Send Port SOAP

Pipeline Components

Generic Send Port WSE

Pipeline Components

Generic Send Port JMS

JMSComponents

Generic Send PortOther

Pipeline Components

Custom Send Port 1..n

Pipeline Components

Management Portal

Web Services

Core Services

Transformation Agent

Intermediary Agent /

Custom Application

Generic Delivery Agent

Resolver Web Service

Custom Delivery Agent 1 … n

Transformation Web Service

Off-ramps

On-ramps

BizTalk Server Orchestration Engine

SOAP Receiver

Pipeline Components

Context Setter

BizTalk Server Transformation Engine

What is it?

WSE Receiver

Pipeline Components

Context Setter

BizTalk Server Business Rule Engine

What does it do?

JMS Receiver

JMSComponents

Context Setter

BizTalk ServerMessage Box(Microsoft SQL Server)

Custom

Receiver 1..n

Namespace Components

Context Setter

Why use it?

SharePoint Management Portal

Exception Management

Exception Handler 1..n

Generic Custom Application

Provisioning Framework

Exception Web Service

Processor

Exception Management

Exception Logger

B2B Gateway

esb management portal
ESB Management Portal
  • What is Management Portal
    • Basic management portal for ESB guidance
  • What does it do
    • Rendering portal for exception management framework
      • Renders ESB fault message (with persisted data and context)
      • Renders exception trends via BAM tracking
    • Later…
      • Host ESB provisioning
      • ESB SLA metrics and monitoring
      • Registration and management of ESB services
      • Allow for repair-and-resubmit
  • Why use it
    • Web-based interface for ESB management
    • One stop for provisioning and management
slide49

ESB Management Portal

  • View Exception Faults on ESB
  • View Exceptions Trends (BAM)
  • View ESB Fault Details
  • View System.Exception
  • Inspect Messages and Context associated with ESB Fault
  • Repair-and-resubmit….
slide50

Microsoft ESB Guidance

ESB Management Portal

<Name><Title>

<Company>

agenda51
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide52

Supporting Technologies

  • Windows Server – UDDI Service
  • MOM – Monitoring
  • HIS Mainframe Integration
  • Visual Studio Team System – Service Modeling, Service Catalog, Integration with UDDI
agenda53
Agenda

What is a Microsoft ESB

Reference Architecture

Evolution of Architecture

Hub/Bus and Beyond

Microsoft ESB Guidance

Introduction

Client Test Tool

ESB Architecture

On Ramps

Web Services

Core Services

Exception Management

Management Portal

Supporting Technologies

Microsoft ESB Guidance Roadmap

slide54

Microsoft ESB Guidance Roadmap

  • Version
    • 0.8
    • Pre-release for validation
  • Support
    • Partner Based Modelhttp://www.microsoft.com/biztalk/solutions/soa/esbpartners.mspx
  • How do obtain
    • Send email to request to esbtlkt@microsoft.com
    • Also seehttp://www.microsoft.com/biztalk/solutions/soa/esb.mspx
  • Roadmap
    • RTM to coincide with BizTalk 2006 R2 (3rd Quarter)
related content
Related Content
  • Understanding Service Oriented Architecture
    • http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmaj/html/aj1soa.asp
  • Understanding BizTalk Server
    • http://msdn.microsoft.com/library/default.asp?url=/library/en-us/bts06gettingstarted/html/011684a5-0aaf-4355-b6a6-d6fef5993863.asp
    • http://msdn.microsoft.com/library/default.asp?url=/library/en-us/BTS_2004WP/html/5cab05ab-6848-4f6c-8d11-9abc4dd1d1fa.asp
  • MSDN Developer Center
    • http://msdn.microsoft.com/webservices/
    • http://msdn.microsoft.com/biztalk/
  • Brian Loesgen’s Blog
    • http://www.geekswithblogs.com/bloesgen
  • BPI Partner Competency Web Site
  • https://partner.microsoft.com/global/40029253
  • Microsoft SOA/ESB Web Site
  • http://www.microsoft.com/biztalk/solutions/soa/esb.mspx
slide56

© 2006 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.