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.