Brian Loesgen Building the Modern ESB With the Microsoft ESB Toolkit

Embed Size (px)

Citation preview

  • 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.