450 likes | 772 Views
Dynamic Messaging with Microsoft BizTalk Enterprise Service Bus (ESB) Guidance v2. Brian Loesgen Principal SOA Architect Microsoft Corporation http://blog.BrianLoesgen.com SOA317. Session Objectives.
E N D
Dynamic Messaging with Microsoft BizTalk Enterprise Service Bus (ESB) Guidance v2 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
BizTalk was positioned as a Hub-and-Spoke… Now it’s an Enterprise Service Bus? Two Views of BizTalk?
Re-thinking the Solution as a Set of Capabilities Routing Mapping Service Process Orchestration End Point Resolution Protocol Adaptation Pub/Sub Service Service Consumers Service Providers
SOA Pattern Implementation ESB Usage Patterns Message Routing Message Transformation Architectural Design Patterns Message Router Perimeter Service Router Content Enricher MetadataCentralization Message Broker Content-Based Router Data Model Transformation PolicyCentralization Scatter-Gather Data Format Transformation Rules Centralization Recipient List Event-DrivenMessaging Routing Slip Gateway Repair andResubmit Reply Forward Protocol Bridge Legacy Wrapper VETO/VETRO ESB Guidance
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 EngineComponents Custom Web Components ASMX On-Ramps WCF On-Ramps Management Portal Core Web Services ESBComponents Itinerary Services Resolvers Adapter Providers Development Tools Frameworks Resolver Framework Adapter ProviderFramework Enterprise Library4 ExceptionManagement Adapters Dynamic Ports Host Environment UDDI 3.0 BizTalkComponents Transformation Engine Pub Sub Engine Business Rules Engine Orchestration Engine Other Servers& Components UDDI 2.0 Governance Tools Databases
Architectural Overview External Services Resolver Web Service Transformation Web Service Off-ramps On-ramps Core ESB Services Generic Delivery Agent Transformation Agent Generic SOAP Send Pipeline Components Generic SOAP Receive Pipeline Components Generic WCF Send Pipeline Components Generic WCF Receive Pipeline Components Custom & Business Processes Generic JMS Send Generic JMS Receive Pipeline Components JMSComponents Create New Order Scatter Gather Service Update ERP Systems Generic Custom Send Generic Custom Receive Pipeline Components Namespace Components Management (or custom) Portal Exception Management Exception Handler 1..n Generic Custom Application Exception Web Service Exception Logger
The Core ESBG Concepts ItineraryProcessing Resolvers AdapterProviders
Itinerary Concept ItineraryProcessing • 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 ItineraryProcessing • 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 ItineraryProcessing
Using Itineraries ItineraryProcessing Design Time Run Time Message OnRamp Itinerary Itinerary Selector ItineraryDatabase XML File Itinerary &Message ESB Processing
Three Ways to Assign Itineraries ItineraryProcessing • Client sends request to an Itinerary On-Ramp passing itinerary SOAP or WCF Header AdvancedServiceClient AdaptiveServiceClient • Client resolves itinerary via resolver service and then sends request to On-Ramp with itinerary header ServiceProxy • Client sends message to Itinerary Generic On-Ramp, pipeline component selects an itinerary using configurable resolver
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 ESB Resolvers Resolvers Endpoint Resolution Artifact Resolution UDDI 2.0 Static Static Map - BRE WS-MEX BRE SQL Itinerary - Static UDDI 3.0 XPATH Composite Itinerary - BRE ESB Guidance V1 ESB Guidance 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 AdapterProviders
Adapter Providers ESB Adapter Providers FTP WCF-BasicHTTP SQL AdapterProviders MQSeries WCF-WsHTTP WCF-Custom FILE SMTP Custom ESB Guidance V1 ESB Guidance V2
demo Using ESB Itineraries and Resolvers
Composing, Choreographing or “Chaining” services is a key capability for an ESB Service Composition 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
demo ESB Itineraries: Composing Services
Unified Exception Management Any Transport Orchestration Any Transport Off-Ramp OnRamp Scope SQL Transport SOAP Transport ESB Audit Off-Ramp Exception On-Ramp Compensation Filter {BTS.FaultCode Exists} Filter {BTS.FaultCode Exists OrESB.FaultCode Exists} ExceptionDatabase BizTalk Failed Message Routing Processing ESB Failed Orchestration Message Routing Processing ESB Exception Service Processing
ESB Administration PortalOverview • 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 PortalFeatures • 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
demo Management Portal
Governance SOA Governance Integration • 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
Governance SOA Governance Architecture IIS ESB Core Services Web ServiceOn-ramp Off-ramp Virtualized Service Physical Service Publish/SubscribeInfrastructure ManagementPoint Governance Server Security Enforcement Service Registry Service Metrics Collection SLA Enforcement Governance Portal Service Configuration Metrics Reporting Metrics Reporting Service Lifecycle Management
Announcing the BizTalk ESB Toolkit * 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, ordownloadthe 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/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/wcf • msdn.microsoft.com/wf • www.microsoft.com/net • msdn.microsoft.com/azure/netservices • www.microsoft.com/azure/netservices • twitter.com/dotnetservices
Resources • www.microsoft.com/teched Sessions On-Demand & Community www.microsoft.com/learning Microsoft Certification & Training Resources • http://microsoft.com/technet • Resources for IT Professionals • http://microsoft.com/msdn Resources for Developers www.microsoft.com/learning Microsoft Certification and Training Resources
© 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.