Microsoft BizTalk ESB Toolkit 
Saffieldin Ali
Agenda 
• Session One 
– ESB and SOA: why it matters (15Min) 
– Architectural Overview (15Min) 
– Technical Drilldown (15Min) 
– ESB Review (Pros and Cons)(15Min) 
• Session Two 
– Demos and POCs 
– Question & Answers
Service Oriented Architecture 
• “Service-oriented architecture (SOA) is a software 
design and software architecture design pattern based on 
distinct pieces of software providing application 
functionality as services to other applications via 
a protocol. This is known as service-orientation. It is 
independent of any vendor, product or technology.” Wikipedia
SOA Characteristics 
• Standardized service interfaces 
• Loose connection 
• Functional abstraction 
• Reusability 
• Service autonomy 
• Statelessness of service 
• Find-ability of service 
• Capacity of service for orchestration
ESB and SOA: why it matters 
“Accompanying the hype of service-oriented architectures (SOAs) are several misconceptions, 
one of the most prevalent - and the one with the biggest impact on IT organizations - is that 
SOA makes integration problems go away. 
• Point-to-Point 
– Complex Interface 
– Redundant Logic 
– Doesn’t Scale 
– Lacks Visibility 
• Business Impact 
– Delays Response to changing 
business needs 
SAP 
Service 
JD Edwards 
Service 
Java Appl. 
Service 
.Net Appl. 
Service 
CICS Service 
AS/400 
Service 
Oracle 
Service 
MS CRM 
Service 
Understanding the Three Patterns of Application Integration 
Gartner Research July 2008 
Nothing could be further from the truth.”
The mediation challenges 
Service Consumers Service Provider 
A 
--------------- 
--------------- 
X --------------- 
--------- 
B 
C 
--------------- 
--------------- 
Y --------------- 
--------- 
--------------- 
--------------- 
Z --------------- 
--------- 
X 
X 
1.1 
--------------- 
--------------- 
--------------- 
--------- 
Transform request message 
Transform request message 
and response message 
Disassemble batch 
message and 
transform request 
messages 
Transform and 
route to several 
services 
Add new 
Service interaction 
Location and address 
change 
New Service 
Version
BizTalk without ESB Toolkit = Hub-n-Spoke 
– The hub, handles the information exchange and 
transformation for many applications or data 
stores, the spokes. 
– Inside the hub there are capabilities for 
requirements such as message transformation, 
validation, routing, and asynchronous message 
delivery.
BizTalk Challenges 
• The need to redeploy bits for every change. 
• The components that we create are: 
– Static 
– Tightly bound 
– Hard coded 
– Directly connected to each other. 
• Change Management. 
• Regression Testing.
ESB Paradigm 
• Service Bus: “An architecture that enables separate applications to work in a 
decoupled fashion such that applications can be easily added or removed 
without affecting the others”. (Hohpe & Woolf). 
• The term (ESB) is widely used in the context of implementing an 
infrastructure for enabling a service-oriented architecture (SOA).
ESB to govern SOI 
ESB is only one of 
many building blocks 
that make up a 
comprehensive (SOI).
BizTalk as an ESB 
BizTalk Was Positioned As A Hub 
and Spoke 
It Can Be An Enterprise Service Bus?
BizTalk As a set of capabilities 
Service 
Consumer 
Service 
Consumer 
Service 
Consumer 
Service 
Provider 
Service Provider 
Service 
Provider 
Lightweight 
Service Composition 
Transport Protocol 
Conversion 
Dynamic Data/ 
Format Transformation 
Location & Version 
Transparency 
Service Interactions 
Support 
Enterprise Service Bus 
Error Handling 
& Repair 
“ESB Toolkit 2.2 consists of a series of 
interoperating components that 
support and implement a loosely 
coupled messaging environment that 
makes it easier to build message-based 
enterprise applications” MSDN
ESB Toolkit: Abstraction Layer on top of BizTalk 
Service Location Transparency: 
Resolve a service end point 
address for me 
Protocol Conversion 
End Point Resolution 
& Routing 
Message 
Transformation 
Lightweight Service 
Composition 
Service Interactions 
BizTalk ESB Toolkit 
Error Handling & 
Service Consumers Repair 
Message Transformation: 
Transform my message to fit with 
provider’s request 
Service Providers 
Service Composition: 
1. Transform my message 
2. Determine which endpoint I need 
3. Route my message 
4. Route the response to a second service 
5. Return the final result to me 
On Ramp Off Ramp
BizTalk ESB Toolkit Components 
Itinerary 
Service 
Message Processor 
ESB Toolkit Core 
Resolver Adapter 
Adapters Dynamic 
Ports 
Pub Sub 
Engine 
Transformation 
Engine 
Itinerary 
Mediation Policy 
Business Rules 
Engine 
Host 
Environment 
Itinerary 
Services 
Resolvers 
BizTalk Components 
On/Off-Ramps Management 
Portal 
Orchestration 
Engine 
Adapter 
Providers 
Core Web 
Services 
UDDI 
3.0 
Exception 
Management 
BAM 
ESB 
Toolkit 
Provider 
Context Finder Adapter Properties
BizTalk ESB Toolkit Architecture Drill Down 
ESB Toolkit Core 
Core Web Services 
Transformation Web Service 
Resolver Web Service 
Exception Web Service 
Operations Web Service 
UDDI Web Service 
ESB Management Portal 
Provisioning Framework 
BizTalk Send Ports 
Off-Ramps 
BizTalk Receive Ports 
On-Ramps 
Reports 
Alerts 
Exception 
Management Store 
Itinerary Services 
Resolver, Adapter Provider Frameworks 
Resolvers (…) Adapter Providers (…) 
Exception Management Framework 
Exception Logger 
Exception 
Handler 
Fault Processor 
UDDI 3.0 BAM 
Custom 
Send 
Custom Pipeline 
Generic JMS 
Send 
Pipeline 
Generic WCF 
Send 
Pipeline 
Generic SOAP 
Send 
Pipeline 
Itinerary 
Store 
Custom 
Receive 
Custom Pipeline 
Generic JMS 
Receive Pipeline 
Generic WCF 
Receive 
Pipeline 
Generic SOAP 
Receive 
Pipeline 
Transform Service Route Service Custom Service 
Business Rules Engine 
Transformation Engine 
Orchestration Engine 
BizTalk Pub/Sub Engine
ESB Toolkit: Itinerary 
 Allows us to implement the ESB pattern as opposed to a Hub/Spoke 
pattern. 
 It provides the runtime flexibility that BizTalk doesn’t have by default: 
◦ Declarative way to configure BizTalk runtime behaviour. 
◦ Xml based. 
◦ Deployed into SQL as row entry in a table.
ESB Toolkit: Resolver 
 For runtime flexibility ESB Services are not hardcoded to 
specific endpoints or maps. (Xml Based) 
 This metadata must be determined at runtime. 
 The Resolver mechanism can locate and retrieve this 
metadata.
ESB Toolkit: Resolver cont. 
 The ESB Toolkit ships with the following resolvers: 
◦ STATIC 
◦ UDDI 
◦ XPATH 
◦ BRE 
◦ BRI (For Itineraries only) 
◦ We can extend the mechanism to add additional resolvers.
ESB Toolkit: Adapter Providers 
 Act as a bridge between the .NET based ESB components and 
the BizTalk ports. 
 It’s core responsibility is to take the information retrieved 
from the Resolver components and to convert it into BizTalk 
context properties so that the send ports can use this to route 
the message.
ESB Toolkit: Adapter Providers Cont. 
 The toolkit includes the following adapter providers: 
◦ WCF (WSHttp, BasicHttp and Custom) 
◦ SMTP 
◦ FTP 
◦ File 
◦ We can extend the mechanism to add additional adapter providers like MSMQ.
Itinerary Based Routing & Processing 
BizTalk Dynamic Send Port 
• Light-weight service composition (sequencing) 
– Invokes itinerary (internal) services and 
external services 
– Dynamic service context resolution at runtime 
• Maps internal service invocation to BizTalk 
service containers 
– pipelines in ports and orchestrations. 
Pub/Sub Engine 
BizTalk Receive Port 
Routing Service 
On Ramp 
Receive 
Pipeline 
Resolver 
Adapter Provider 
Off Ramp 
Send 
Pipeline 
The “heart” of the ESB Toolkit
ESB and Business Agility 
 2 Maps deployed in production: 
◦ Map Message1 to Message2 
◦ Map Message2 to Message3 
 New business scenario: 
◦ Need to map Message1 to Message3 
How will we accomplish this?
ESB and Business Agility Cont. 
 Traditional BizTalk Solutions: 
◦ New orchestration that takes the inbound message and applies 
consecutive maps. 
◦ New map that directly transforms from Format1 to Format3. 
 All of the above will require deployment of new dlls to 
production.
ESB and Business Agility Cont. 
 ESB solution: 
◦ BizTalk ESB is a set of services. 
◦ SO, Itinerary that executes the consecutive maps. 
 No dll deployment is required. 
 Allows reuse of existing content by connecting existing 
components that weren’t originally chained together.
BizTalk ESB Toolkit provides 
Service Composition Challenges: 
• Location & Version Changes 
• Sequencing Changes 
• Data Semantics Mismatch 
• Transport Protocol Mismatch 
• Interaction Model Mismatch 
• Quality of protection 
• Error Recovery 
• Monitoring & Visibility 
• Quality of service 
BizTalk ESB Solutions: 
 Dynamic Endpoint Resolution 
 Itinerary-based Routing 
 Dynamic Transformation 
 Protocol Mediation (Adapters) 
 Itineraries-based Processing 
 BizTalk Security Model & SSO 
 Exception Framework & Portal 
 BAM Integration 
 Exception Management Portal
ESB Review 
• Benefits 
• Reusing of services. 
– Reusing Pipeline components & Orchestrations for multiple 
message types. 
• Deployment of changes / new versions with less or NO 
downtime. 
– Orchestrations are not bound anymore to a Map or a XSD. 
• Out of the box BAM. 
• Centralized Error Handling. 
– Management Portal. 
• Performance. 
– Out of the box Cache. 
– Low latency scenarios. 
• Using Pipeline Components (Messaging Services) instead of 
Orchestrations. 
• You want to expose web services with BizTalk. 
• Disadvantages 
• ESB Toolkit adds complexity to a BizTalk 
project. 
• Little documentation. 
• Installation is difficult. 
– BizTalk 2009 & BizTalk 2010. 
– Management Portal can be difficult to install. 
• It’s not fully functional out of the box. 
– Instead it provides a base set of ESB 
components that must be extended. 
– Management Portal is sample. 
• Performance. 
– Off Ramps are Dynamic Ports.
Conclusion 
Provides the right benefits to cope with 
complex and rapidly changing integration challenges 
Lower operational costs 
Higher levels of service re-use 
Faster response to business changes 
Visibility to business and exception metrics
Open Discussions 
• Question and Answer 
• Demos, Demos
Thanks You

Biztalk ESB Toolkit Introduction

  • 1.
    Microsoft BizTalk ESBToolkit Saffieldin Ali
  • 2.
    Agenda • SessionOne – ESB and SOA: why it matters (15Min) – Architectural Overview (15Min) – Technical Drilldown (15Min) – ESB Review (Pros and Cons)(15Min) • Session Two – Demos and POCs – Question & Answers
  • 3.
    Service Oriented Architecture • “Service-oriented architecture (SOA) is a software design and software architecture design pattern based on distinct pieces of software providing application functionality as services to other applications via a protocol. This is known as service-orientation. It is independent of any vendor, product or technology.” Wikipedia
  • 4.
    SOA Characteristics •Standardized service interfaces • Loose connection • Functional abstraction • Reusability • Service autonomy • Statelessness of service • Find-ability of service • Capacity of service for orchestration
  • 5.
    ESB and SOA:why it matters “Accompanying the hype of service-oriented architectures (SOAs) are several misconceptions, one of the most prevalent - and the one with the biggest impact on IT organizations - is that SOA makes integration problems go away. • Point-to-Point – Complex Interface – Redundant Logic – Doesn’t Scale – Lacks Visibility • Business Impact – Delays Response to changing business needs SAP Service JD Edwards Service Java Appl. Service .Net Appl. Service CICS Service AS/400 Service Oracle Service MS CRM Service Understanding the Three Patterns of Application Integration Gartner Research July 2008 Nothing could be further from the truth.”
  • 6.
    The mediation challenges Service Consumers Service Provider A --------------- --------------- X --------------- --------- B C --------------- --------------- Y --------------- --------- --------------- --------------- Z --------------- --------- X X 1.1 --------------- --------------- --------------- --------- Transform request message Transform request message and response message Disassemble batch message and transform request messages Transform and route to several services Add new Service interaction Location and address change New Service Version
  • 7.
    BizTalk without ESBToolkit = Hub-n-Spoke – The hub, handles the information exchange and transformation for many applications or data stores, the spokes. – Inside the hub there are capabilities for requirements such as message transformation, validation, routing, and asynchronous message delivery.
  • 8.
    BizTalk Challenges •The need to redeploy bits for every change. • The components that we create are: – Static – Tightly bound – Hard coded – Directly connected to each other. • Change Management. • Regression Testing.
  • 9.
    ESB Paradigm •Service Bus: “An architecture that enables separate applications to work in a decoupled fashion such that applications can be easily added or removed without affecting the others”. (Hohpe & Woolf). • The term (ESB) is widely used in the context of implementing an infrastructure for enabling a service-oriented architecture (SOA).
  • 10.
    ESB to governSOI ESB is only one of many building blocks that make up a comprehensive (SOI).
  • 11.
    BizTalk as anESB BizTalk Was Positioned As A Hub and Spoke It Can Be An Enterprise Service Bus?
  • 12.
    BizTalk As aset of capabilities Service Consumer Service Consumer Service Consumer Service Provider Service Provider Service Provider Lightweight Service Composition Transport Protocol Conversion Dynamic Data/ Format Transformation Location & Version Transparency Service Interactions Support Enterprise Service Bus Error Handling & Repair “ESB Toolkit 2.2 consists of a series of interoperating components that support and implement a loosely coupled messaging environment that makes it easier to build message-based enterprise applications” MSDN
  • 13.
    ESB Toolkit: AbstractionLayer on top of BizTalk Service Location Transparency: Resolve a service end point address for me Protocol Conversion End Point Resolution & Routing Message Transformation Lightweight Service Composition Service Interactions BizTalk ESB Toolkit Error Handling & Service Consumers Repair Message Transformation: Transform my message to fit with provider’s request Service Providers Service Composition: 1. Transform my message 2. Determine which endpoint I need 3. Route my message 4. Route the response to a second service 5. Return the final result to me On Ramp Off Ramp
  • 14.
    BizTalk ESB ToolkitComponents Itinerary Service Message Processor ESB Toolkit Core Resolver Adapter Adapters Dynamic Ports Pub Sub Engine Transformation Engine Itinerary Mediation Policy Business Rules Engine Host Environment Itinerary Services Resolvers BizTalk Components On/Off-Ramps Management Portal Orchestration Engine Adapter Providers Core Web Services UDDI 3.0 Exception Management BAM ESB Toolkit Provider Context Finder Adapter Properties
  • 15.
    BizTalk ESB ToolkitArchitecture Drill Down ESB Toolkit Core Core Web Services Transformation Web Service Resolver Web Service Exception Web Service Operations Web Service UDDI Web Service ESB Management Portal Provisioning Framework BizTalk Send Ports Off-Ramps BizTalk Receive Ports On-Ramps Reports Alerts Exception Management Store Itinerary Services Resolver, Adapter Provider Frameworks Resolvers (…) Adapter Providers (…) Exception Management Framework Exception Logger Exception Handler Fault Processor UDDI 3.0 BAM Custom Send Custom Pipeline Generic JMS Send Pipeline Generic WCF Send Pipeline Generic SOAP Send Pipeline Itinerary Store Custom Receive Custom Pipeline Generic JMS Receive Pipeline Generic WCF Receive Pipeline Generic SOAP Receive Pipeline Transform Service Route Service Custom Service Business Rules Engine Transformation Engine Orchestration Engine BizTalk Pub/Sub Engine
  • 16.
    ESB Toolkit: Itinerary  Allows us to implement the ESB pattern as opposed to a Hub/Spoke pattern.  It provides the runtime flexibility that BizTalk doesn’t have by default: ◦ Declarative way to configure BizTalk runtime behaviour. ◦ Xml based. ◦ Deployed into SQL as row entry in a table.
  • 17.
    ESB Toolkit: Resolver  For runtime flexibility ESB Services are not hardcoded to specific endpoints or maps. (Xml Based)  This metadata must be determined at runtime.  The Resolver mechanism can locate and retrieve this metadata.
  • 18.
    ESB Toolkit: Resolvercont.  The ESB Toolkit ships with the following resolvers: ◦ STATIC ◦ UDDI ◦ XPATH ◦ BRE ◦ BRI (For Itineraries only) ◦ We can extend the mechanism to add additional resolvers.
  • 19.
    ESB Toolkit: AdapterProviders  Act as a bridge between the .NET based ESB components and the BizTalk ports.  It’s core responsibility is to take the information retrieved from the Resolver components and to convert it into BizTalk context properties so that the send ports can use this to route the message.
  • 20.
    ESB Toolkit: AdapterProviders Cont.  The toolkit includes the following adapter providers: ◦ WCF (WSHttp, BasicHttp and Custom) ◦ SMTP ◦ FTP ◦ File ◦ We can extend the mechanism to add additional adapter providers like MSMQ.
  • 21.
    Itinerary Based Routing& Processing BizTalk Dynamic Send Port • Light-weight service composition (sequencing) – Invokes itinerary (internal) services and external services – Dynamic service context resolution at runtime • Maps internal service invocation to BizTalk service containers – pipelines in ports and orchestrations. Pub/Sub Engine BizTalk Receive Port Routing Service On Ramp Receive Pipeline Resolver Adapter Provider Off Ramp Send Pipeline The “heart” of the ESB Toolkit
  • 22.
    ESB and BusinessAgility  2 Maps deployed in production: ◦ Map Message1 to Message2 ◦ Map Message2 to Message3  New business scenario: ◦ Need to map Message1 to Message3 How will we accomplish this?
  • 23.
    ESB and BusinessAgility Cont.  Traditional BizTalk Solutions: ◦ New orchestration that takes the inbound message and applies consecutive maps. ◦ New map that directly transforms from Format1 to Format3.  All of the above will require deployment of new dlls to production.
  • 24.
    ESB and BusinessAgility Cont.  ESB solution: ◦ BizTalk ESB is a set of services. ◦ SO, Itinerary that executes the consecutive maps.  No dll deployment is required.  Allows reuse of existing content by connecting existing components that weren’t originally chained together.
  • 25.
    BizTalk ESB Toolkitprovides Service Composition Challenges: • Location & Version Changes • Sequencing Changes • Data Semantics Mismatch • Transport Protocol Mismatch • Interaction Model Mismatch • Quality of protection • Error Recovery • Monitoring & Visibility • Quality of service BizTalk ESB Solutions:  Dynamic Endpoint Resolution  Itinerary-based Routing  Dynamic Transformation  Protocol Mediation (Adapters)  Itineraries-based Processing  BizTalk Security Model & SSO  Exception Framework & Portal  BAM Integration  Exception Management Portal
  • 26.
    ESB Review •Benefits • Reusing of services. – Reusing Pipeline components & Orchestrations for multiple message types. • Deployment of changes / new versions with less or NO downtime. – Orchestrations are not bound anymore to a Map or a XSD. • Out of the box BAM. • Centralized Error Handling. – Management Portal. • Performance. – Out of the box Cache. – Low latency scenarios. • Using Pipeline Components (Messaging Services) instead of Orchestrations. • You want to expose web services with BizTalk. • Disadvantages • ESB Toolkit adds complexity to a BizTalk project. • Little documentation. • Installation is difficult. – BizTalk 2009 & BizTalk 2010. – Management Portal can be difficult to install. • It’s not fully functional out of the box. – Instead it provides a base set of ESB components that must be extended. – Management Portal is sample. • Performance. – Off Ramps are Dynamic Ports.
  • 27.
    Conclusion Provides theright benefits to cope with complex and rapidly changing integration challenges Lower operational costs Higher levels of service re-use Faster response to business changes Visibility to business and exception metrics
  • 28.
    Open Discussions •Question and Answer • Demos, Demos
  • 29.

Editor's Notes

  • #20 When the message has been processed, it is going to be sent to its destination through a dynamic send port, (a.k.a off-ramp). Usually, when using a dynamic port, we’d set the port properties such as transport type and location programmatically in an expression shape (orchestration) or in a custom pipeline component. In the case of ESB Guidance this is all done using an Adapter Provider. In other words, the Adapter Provider serves to write and promote context properties for specific adapters. ESB Guidance comes with support for the most common adapters such as WCF-BasicHttp, WCF-WSHttp, MQSeries, FILE and FTP. But for the purpose of this article, we’ll create a SMTP provider. After a resolver executes, the dynamic resolution service checks whether the result is an endpoint (not a transformation). If it is an endpoint, the service instantiates the adapter manager, which validates and fixes the transport type and the outbound transport location.The adapter manager uses the suffix stated in the transport location (eg FTP://) to determine the appropriate adapter provider. An adapter provider is a custom assembly that must implement the IAdapterProvider interface. The adapter provider uses the properties of the Resolution structure within the Dictionary instance generated by the resolver to set all the protocol-specific properties of the message that enable the BizTalk run-time engine to perform dynamic resolution.