Brian Loesgen
Principal SOA Architect
Microsoft Corporation
http://blog.BrianLoesgen.com
SOA317
Session Objectives
Have an understanding of the ESB architectural
style and its place within the overall
Application Platform
Understand architecture of the ESB Guidance
Have seen the capabilities and features of
V2, and how they can accelerate
ESB deployments
Agenda
Service-orientation; ESB: why it matters
Architectural Overview
Technical Drilldown
Demos, demos, demos
Service composition
Governance
Common Requirements
Messaging
Service Invocation
Dynamic Transformation
Dynamic Routing
Protocol Mediation
Endpoint Resolution
Loosely-Coupled & Event-Driven
WS* Support
Quality of Service (QoS) Management
Two Views of BizTalk?
BizTalk was positioned as
a Hub-and-Spoke…
Now it’s an
Enterprise Service Bus?
Re-thinking the Solution as a Set of
Capabilities
Service Consumers
Routing
Mapping
Service
Process
Orchestration
Protocol
Adaptation
Pub/Sub
Service
End Point
Resolution
Service Providers
SOA Pattern Implementation
ESB Usage Patterns
Message Routing
Message
Transformation
Architectural
Design Patterns
Message Router
Perimeter
Service Router
Content Enricher
Metadata
Centralization
Message Broker
Content-Based
Router
Data Model
Transformation
Policy
Centralization
Data Format
Transformation
Rules
Centralization
Scatter-Gather
Recipient List
Event-Driven
Messaging
Routing Slip
Gateway
Repair and
Resubmit
Reply
Forward
Protocol Bridge
VETO/VETRO
ESB Guidance
Legacy Wrapper
BizTalk... BizTalk+ESB Guidance...
BizTalk is all about providing solutions based
on configuration
Configuration happens at dev time or post-deployment
ESB Guidance is all about runtime resolution, it
interacts with external stores (e.g., services registry) to
get operational configuration in a JIT manner
ESB Guidance adds a set of runtime resolution
capabilities that BizTalk developers would need to
create from scratch
Enter Microsoft ESB Guidance…
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
Mediation Policies
Mediation Components
Resolvers
Adapter Providers
BizTalk Server
ESB Guidance 2.0 Changes
Built on BizTalk Server 2009
Provides greatly enhanced tooling, on top of
an optimized core
Provides even more extensibility points
Provide even more prescriptive guidance about
enterprise integration patterns
Streamlined installation experience (Powershell,
configuration tool, etc)
ESB Guidance Core Engine
Components
Custom
Web Components
ASMX
On-Ramps
WCF
On-Ramps
Management
Portal
Core Web
Services
ESB
Components
Itinerary
Services
Resolvers
Adapter
Providers
Development
Tools
Frameworks
Resolver
Framework
Adapter Provider
Framework
Enterprise Library
4
Exception
Management
Adapters
Dynamic
Ports
Host
Environment
UDDI
3.0
Transformation
Engine
Business Rules
Engine
Orchestration
Engine
Pub Sub
Engine
UDDI
2.0
Governance
Tools
Databases
BizTalk
Components
Other Servers
& Components
Architectural Overview
External Services
Resolver Web Service
Transformation Web Service
On-ramps
Off-ramps
Core ESB Services
Generic SOAP
Receive
Pipeline
Components
Generic WCF
Receive
Pipeline
Components
Generic JMS
Receive
JMS
Components
Generic Custom
Receive
Namespace
Components
Transformation
Agent
Generic Delivery
Agent
Custom & Business Processes
Create
New
Order
Scatter
Gather
Service
Update
ERP
Systems
Pipeline
Components
Generic WCF
Send
Pipeline
Components
Generic JMS
Send
Pipeline
Components
Generic Custom
Send
Pipeline
Components
Management (or custom) Portal
Exception Management
Exception Web Service
Generic SOAP
Send
Exception Handler 1..n
Generic Custom Application
Exception Logger
The Core ESBG Concepts
Itinerary
Processing
Resolvers
Adapter
Providers
Itinerary Concept
Itinerary
Processing
Heart of the ESB guidance
Itineraries help provide the runtime flexibility
that BizTalk doesn’t have by default
Itineraries provide a service
composition mechanism
Developing Itineraries with V2
Itinerary
Processing
Leverages VS 2008 and its capabilities for
Domain Specific Languages
We now have a Visual Itinerary Designer
Avoid creating itineraries in plain old XML
(no more Notepad)
Validate itinerary model at design-time
Export capabilities to the Itinerary repository (SQL)
and file
Migration tool to move between environments
Developing Itineraries
Itinerary
Processing
Using Itineraries
Itinerary
Processing
Design Time
Run Time
Message
OnRamp
Itinerary
Itinerary
Database
XML File
Itinerary
Selector
Itinerary &
Message
ESB
Processing
Three Ways to Assign Itineraries
Itinerary
Processing
Advanced
Service
Client
Client sends request to an Itinerary On-Ramp
passing itinerary SOAP or WCF Header
Adaptive
Service
Client
Client resolves itinerary via resolver service and
then sends request to On-Ramp with itinerary header
Service
Proxy
Client sends message to Itinerary Generic On-Ramp,
pipeline component selects an itinerary using
configurable resolver
Resolvers
Resolvers
For runtime flexibility ESB Services are not hardcoded 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 Shipped with V2
Resolvers
ESB Resolvers
Endpoint Resolution
Artifact Resolution
ESB Guidance V1
ESB Guidance V2
Adapter Providers
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
ESB Adapter Providers
FTP
SQL
MQSeries
FILE
SMTP
Custom
ESB Guidance V1
ESB Guidance V2
Using ESB Itineraries and Resolvers
Service Composition
Composing, Choreographing or “Chaining”
services is a key capability for an ESB
Composed Service
Physical Service
Physical Service
Physical Service
Service Composition with
We have two options
Messaging-based: Lightweight composition
using only Itineraries and BizTalk ports (using
ItineraryForward pipeline component)
Orchestration-based: Orchestrations available
for more complex business processes
ESB Itineraries: Composing Services
Unified Exception Management
Any Transport
OnRamp
Orchestration
Scope
Any Transport
Off-Ramp
SQL Transport
SOAP Transport
Exception On-Ramp
Compensation
ESB Audit Off-Ramp
Filter {BTS.FaultCode Exists}
Filter {BTS.FaultCode Exists Or
ESB.FaultCode Exists}
Exception
Database
BizTalk Failed Message Routing Processing
ESB Failed Orchestration Message Routing Processing
ESB Exception Service Processing
ESB Administration Portal
Overview
Sample application, used for an IT Pro type view
into the ESB
Located at http://localhost/esb.portal/
ASP.NET-based
This is a sample of how ESB operational metrics
and data can be surfaced
Process or group-specific portals could be
created in SharePoint, leveraging ESBG assets
such as BAM tracking and exception handling
ESB Administration Portal
Features
The Portal provides
Graphical metrics
Repair and resubmit functionality
Alerting based on exception events
Auditing trails for repair and resubmit
Unified view of the .NET Exception data + BizTalk message +
BizTalk context properties
Historical views of exception data
Remote web-based access
Filtering of exceptions based on application
Management Portal
SOA Governance Integration
Governance
Integrated with leading governance solutions
from AmberPoint and SOA Software
Specific functionality varies by governance
provider, but typically include:
Service metrics
Policy-driven security
Policy-driven service-level agreement
Alerting
SOA Governance Architecture
Governance
IIS
Web Service
On-ramp
ESB Core Services
Management
Point
Publish/Subscribe
Infrastructure
Off-ramp
Virtualized
Service
Governance Server
Security Enforcement
Service Registry
Service Metrics Collection
SLA Enforcement
Governance Portal
Service Configuration
Metrics Reporting
Metrics Reporting
Service Lifecycle Management
Physical
Service
Announcing the BizTalk ESB Toolkit
Name change
From “ESB Guidance” to “BizTalk ESB Toolkit”
General Availability
Mid June 09
Packaging &
Distribution
Signed binaries and samples code (MSDN -> Download Center)
Documentation (MSDN)
Private Fixes (Microsoft Connect site)
License
free for BizTalk Customers
Support &
Bug Reporting
Managed MSDN forums with Microsoft Customer Support
Services* in the loop to fix issues as required
Online Community
Managed MSDN forums
* Ramping up through the summer
Summary
Provide an understanding of the ESB
architectural style and it's place within the
overall Application Platform
Architectural overview of the ESB Guidance
Demonstrated the capabilities and new features
of V2 that accelerate ESB deployments
Call to Action:
Get ready and involved!
Attend BizTalk Sessions @TechEd
Explore the existing resources on our website
Upgrade to BizTalk Server 2009, or download
the Evaluation version
Figure out how your organization can save
today with BizTalk!
Related BizTalk Content at TechEd
Breakout Sessions
SOA304 Introducing the Microsoft Integration Server: BizTalk Server 2009
SOA318 Microsoft BizTalk Goes Mobile: Collecting Physical World Events from Mobile Devices
SOA317 Dynamic Messaging with Microsoft BizTalk Enterprise Service Bus (ESB) Guidance v2
ARC306 Connecting Enterprise Applications to Existing Data
SOA301 Achieving Success with Integration in the Enterprise Using Microsoft BizTalk Server 2009
SOA321 Best Practices for Virtualization of Microsoft BizTalk Server 2009 with Hyper-V
SOA305 Enhancing the SAP User Experience: Building Rich Composite Applications in Microsoft Office
SharePoint Server 2007 Using the BizTalk Adapter Pack
SOA312 Microsoft BizTalk: Application Lifecycle Management and Productivity Enhancements
SOA205 Radio Frequency Identification: Affecting End Users, Online, ERP to Plant Floor
Interactive Sessions
SOA04-INT Deep Dive with Microsoft BizTalk Server 2009 Development Platform
SOA06-INT Integrating with Partners: Learn to Develop with EDI/AS2 in Microsoft BizTalk Server 2009
Hands on Labs
SOA05-HOL Microsoft BizTalk Server: Building and Deploying Your First BizTalk Server Solution
SOA01-HOL Microsoft BizTalk Server: Analyzing Business Activity Data with Business Activity Monitoring (BAM)
SOA02-HOL Extending BizTalk Server 2009 BAM Capabilities through Representation State Transfer (REST)
SOA03-HOL Microsoft BizTalk Server: Capturing Data with Business Activity Monitoring (BAM)
SOA04-HOL Connecting Microsoft .NET Applications to Legacy IBM Mainframe and Midrange Systems Using Microsoft
Host Integration Server 2009
Additional Resources
BizTalk Website
BizTalk Server Roadmap
Introducing Microsoft BizTalk Server
Microsoft BizTalk Server Technical Overview
BizTalk Technical Posters (including interactive “posters”)
BizTalk MSDN Developer Center
Microsoft SOA
Real World SOA Customer Stories
Microsoft BPM
Microsoft's People-Ready Process vision
Integrated architecture for process-centric applications
Track Resources
SOA
www.microsoft.com/soa
msdn.microsoft.com/wcf
msdn.microsoft.com/wf
www.microsoft.com/net
msdn.microsoft.com/biztalk
www.microsoft.com/biztalk
“Dublin”
www.microsoft.com/net/dublin
“Oslo”
msdn.microsoft.com/oslo
www.microsoft.com/net/oslo.aspx
msdn.microsoft.com/azure/netservices
www.microsoft.com/azure/netservices
twitter.com/dotnetservices
Resources
www.microsoft.com/teched
www.microsoft.com/learning
Sessions On-Demand & Community
Microsoft Certification & Training Resources
http://microsoft.com/technet
http://microsoft.com/msdn
Resources for IT Professionals
Resources for Developers
www.microsoft.com/learning
Microsoft Certification and Training Resources
Complete an
evaluation on
CommNet and
enter to win!
© 2009 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.