8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
1/21
Building the Modern ESB with the Microsoft ESB Toolkit: An
Architectural Overview With a Focus on Dynamic Messaging
Brian LoesgenPrincipal SOA ArchitectMicrosoft Corporationhttp://blog.BrianLoesgen.com
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
2/21
Session Objectives
Explain architecture of the ESB Toolkit Drilldown into dynamic messaging
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
3/21
Agenda
Service-orientation; ESB: why it matters Architectural Overview of ESB Toolkit Demos focused on dynamic messaging
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
4/21
Re-think a Solution as a Set of Capabilities(the fundamental truth behind SOA success)
MappingServiceRouting
Custom
Orchestration(Service)
ProtocolAdaptation
End PointResolution
Pub/SubService Service ProvidersService Consumers
Custom
Orchestration(Service)
EnrichmentService
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
5/21
SOA Pattern Implementation
PolicyCentralization
RulesCentralization
Event-DrivenMessaging
Data FormatTransformation
Protocol Bridge
Message Router
Message Broker
Legacy Wrapper
ArchitecturalDesign PatternsMessage Routing
Scatter-Gather
Routing Slip
Recipient List
MessageTransformation
Content Enricher
Data ModelTransformation
ESB Usage Patterns
Repair andResubmit
VETO/VETRO
Gateway
ReplyForward
MetadataCentralization
PerimeterService Router
Content-BasedRouter
ESB Toolkit
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
6/21
BizTalk... BizTalk+ESB Toolkit...
BizTalk is all about providing solutions basedon configuration Configuration happens at dev time or post-
deployment
ESB Toolkit is all about runtime resolution, itinteracts with external stores (e.g., servicesregistry) to get operational configuration in a JITmanner
ESB Toolkit adds a set of runtime resolutioncapabilities that BizTalk developers would need tocreate from scratch
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
7/21
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
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
8/21
The ESB Stack
BizTalk Server
Adapter Providers
Resolvers
Itinerary Components
Itineraries (Mediation Policies)
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
9/21
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
GENERICPIPELINE
PIPELINE
CUSTOMPIPELINE
Generic SOAPReceive
Generic WCFReceive
Generic JMSReceive
Generic CustomReceive
PIPELINE
PIPELINE
JMSPIPELINE
CUSTOMPIPELINE
ENRICH SERVICE
ExceptionManagement
Store
CUSTOM SERVICE
ESB SERVICES
Resolver Web Service
Transformation WebService
Exception Web Service
UDDI Service
Operations Service
ItineraryConfiguration
Store
Resolver-Adapter Framework
CUSTOM RESOLVER
RESOLVERS () ADAPTER PROVIDERS()
CUSTOM ADAPTER PROVIDER
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
10/21
The Core ESBG Concepts
ItineraryProcessing
Resolvers
Adapter
Providers
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
11/21
Itinerary Concept
Heart of the ESB Toolkit Itineraries help provide the runtime flexibilitythat BizTalk doesnt have by default
Itineraries provide a service compositionmechanism
ItineraryProcessing
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
12/21
Developing Itineraries ItineraryProcessing
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
13/21
Using ItinerariesDesign Time
ItineraryProcessing
XML File
ItineraryRepository
Run Time
Itinerary
OnRamp
ItinerarySelector
ESBProcessing
Itinerary &
Message
Message
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
14/21
Three Ways to Assign Itineraries ItineraryProcessing
Client resolves itinerary via resolver service andthen sends request to On-Ramp with itinerary header
Client sends request to an Itinerary On-Ramppassing itinerary SOAP or WCF Header
Client sends message to Itinerary Generic On-Ramp,pipeline component selects an itinerary usingconfigurable resolver
AdvancedServiceClient
AdaptiveServiceClient
ServiceProxy
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
15/21
Resolvers
For runtime flexibility ESB Services are nothard-coded to specific endpoints or maps This metadata is determined at runtime
Resolver mechanism can locate andretrieve this metadata Itineraries define which ESB services
execute and in which order Resolvers define how ESB services execute
Resolvers
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
16/21
Resolvers Shipped with V2
Endpoint Resolution Artifact Resolution
ESB Resolvers
Resolvers
ESB Toolkit V1
ESB Toolkit V2
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
17/21
Adapter Providers
The Itinerary and Resolver mechanismsare .NET components. The endpoint informationproduced by the resolvers is stored in.NET based Dictionary objects
We leverage BizTalk dynamic ports to handle theactual routing of messages. However, BizTalk isntbuilt to work with Dictionary objects
Adapter providers act as a bridge between the.NET based ESB components and the BizTalkbased ESB components
AdapterProviders
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
18/21
Adapter Providers AdapterProviders
FTP
MQSeries
ESB Toolkit V1
ESB Toolkit V2
FILE
Custom
SQL
SMTP
ESB Adapter Providers
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
19/21
Using ESB Itineraries and Resolvers
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
20/21
Summary
Architectural overview of the ESB Toolkit Demonstrated the dynamic messagingcapabilities and features of the ESB Toolkitthat accelerate ESB deployments
8/8/2019 Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit
21/21
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 p urposes 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 c ommitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy o f any information provided after the date of this presentation.MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION I N THIS PRESENTATION.