Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code:...

38

Transcript of Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code:...

Page 1: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.
Page 2: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Dynamic Messaging with Microsoft BizTalk Enterprise Service Bus Toolkit 2.0

Markus LandlerProgram ManagerInternational Customer Advisory Team Microsoft Corp.Session Code: INT306

Page 3: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Who are you?

Page 4: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Session objectives

Have an understanding of the ESB architectural style and its place within the overall Application PlatformUnderstand architecture of the ESB ToolkitHave seen the capabilities and features of theESBT, and how they can accelerate ESB deployments

Page 5: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Agenda

Service orientation, ESB: why it mattersArchitectural OverviewTechnical DrilldownDemos, demos, demosQuestion & Answers

Page 6: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Common Requirements

MessagingService InvocationDynamic TransformationDynamic Routing Protocol Mediation Endpoint ResolutionLoosely-Coupled & Event-DrivenWS* SupportQuality of Service (QoS) Management

Page 7: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Definitions

Page 8: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Definitions

Page 9: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Definitions

Page 10: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Definitions

Page 11: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Two Views of BizTalk?BizTalk was positioned as

a Hub-and-Spoke…

Now it’s an Enterprise Service Bus?

Page 12: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Re-thinking the Solution as a Set of Capabilities

Mapping ServiceRouting Process

Orchestration

ProtocolAdaptation

End Point Resolution

Pub/Sub Service Service ProvidersService Consumers

Page 13: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

BizTalk & ESB toolkit...

BizTalk is all about providing solutions based on configurationConfiguration happens at dev time or post-deployment

ESB Toolkit is all about runtime resolution, it interacts with external stores (e.g., service registry) to get operational configuration in a JIT mannerESB Toolkit adds a set of runtime resolution capabilities that BizTalk developers would need to create from scratch

Page 14: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Enter Microsoft ESB Toolkit…

From Patterns and PracticesProvides architectural guidance, patterns and practicesDelivers reusable BizTalk Server ESB and .NET components Enables construction of large and small-scale ESB solutions

Page 15: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

The ESBT Stack

BizTalk Server

Page 16: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

The ESBT Stack

BizTalk Server

Adapter Providers

Page 17: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

The ESBT Stack

BizTalk Server

Adapter Providers

Resolvers

Page 18: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

The ESBT Stack

BizTalk Server

Adapter Providers

Resolvers

Mediation Components

Mediation Policies

Page 19: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

ESB Toolkit 2.0 changes

Naming Built on BizTalk Server 2009Provides greatly enhanced tooling, on top of an optimized coreProvides even more extensibility pointsProvide even more prescriptive guidance about enterprise integration patternsStreamlined installation experience (PowerShell, configuration tool, etc.)

Page 20: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

ESB Toolkit Core Engine

Adapters Dynamic Ports

Pub Sub Engine

TransformationEngine

Business Rules Engine

HostEnvironment

ItineraryServices Resolvers

Adapter ProviderFramework

ASMX On-Ramps

BizTalkComponents

ESBComponents

Custom Web Components

WCF On-Ramps

ManagementPortal

Other Servers& Components

UDDI2.0 & 3.0

Governance Tools Databases

OrchestrationEngine

Frameworks ResolverFramework

Adapter Providers

Enterprise Library4

ExceptionManagement

Core WebServices

UDDI3.0

DevelopmentTools

Page 21: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Architectural Overview

Management (or custom) PortalException Management

Core ESB Services

External Services

Resolver Web Service

Transformation Web Service

Exception Web Service

Exception Logger

Exception Handler 1..nGeneric Custom Application

Transformation Agent

Generic Delivery Agent

On-ramps Off-ramps

Generic SOAPSend

Generic WCFSend

Generic JMSSend

Generic CustomSend

Pipeline Components

Pipeline Components

Pipeline Components

Pipeline Components

Generic SOAPReceive

Generic WCFReceive

Generic JMSReceive

Generic CustomReceive

Pipeline Components

Pipeline Components

JMSComponents

Namespace Components

Custom & Business Processes

Create New

Order

Scatter Gather Service

Update ERP

Systems

Page 22: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

ItineraryProcessing

Resolvers AdapterProviders

The Core ESBT Concepts

Page 23: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

ItineraryProcessingItinerary Concept

Heart of the ESB toolkitItineraries help provide the runtime flexibility that BizTalk doesn’t have by defaultItineraries provide a service composition mechanism

Page 24: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

ItineraryProcessingDeveloping Itineraries with ESBT 2.0

Leverages VS 2008 and its capabilities for Domain Specific LanguagesWe now have a Visual Itinerary Designer

Avoid creating itineraries in plain old XML (no more Notepad)Validate itinerary model at design-timeExport capabilities to the Itinerary repository (SQL) and fileMigration tool to move between environments

Page 25: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

ItineraryProcessingDeveloping Itineraries with V2

Page 26: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

ItineraryProcessingUsing Itineraries

Design Time

XML File

ItineraryDatabase

Run Time

Itinerary

OnRamp

Itinerary Selector

ESB Processing

Itinerary &Message

Message

Page 27: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

ItineraryProcessingThree Ways to Assign Itineraries

Client resolves itinerary via resolver service and then sends request to On-Ramp with itinerary header

Client sends request to an Itinerary On-Ramp passing itinerary SOAP or WCF Header

Client sends message to Itinerary Generic On-Ramp, pipeline component selects an itinerary using configurable resolver

AdvancedServiceClient

AdaptiveServiceClient

ServiceProxy

Page 28: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Resolvers

For runtime flexibility ESB Services are not hard-coded to specific endpoints or maps

This metadata is determined at runtimeResolver mechanism can locate and retrieve this metadataItineraries define which ESB services execute and in which orderResolvers define how ESB services execute

Resolvers

Page 29: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Resolvers Resolvers

Endpoint Resolution

UDDI 2.0

Artifact Resolution

ESB Resolvers

Static Static Map - BRE

WS-MEX BRE LDAP Itinerary - Static

XPATH Composite Itinerary - BREUDDI 3.0

ESB Guidance V1

ESB Toolkit 2.0

Page 30: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Adapter Providers

The Itinerary and Resolver mechanisms are .NET components. The endpoint information produced by the resolvers is stored in .NET based Dictionary objectsWe leverage BizTalk dynamic ports to handle the actual routing of messages. However, BizTalk isn’t built to work with Dictionary objectsAdapter providers act as a bridge between the .NET based ESB components and the BizTalk based ESB components

AdapterProviders

Page 31: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Adapter Providers AdapterProviders

FTP

MQSeries

FILE

Custom

WCF-BasicHTTP

WCF-WsHTTP

WCF-Custom

SMTP

ESB Adapter Providers

ESB Guidance V1

ESB Toolkit 2.0

Page 32: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Demo time!

Page 33: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

As

tim

e .

..

and luck

perm

itts

Demos – the plan

Simple routing slipAdvanced Routing slipSelecting an itinerary with BREDynamic routing with BREDynamic routing with Broker ServiceException Handling

Page 34: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Summary

Provide an understanding of the ESB architectural style and it's place within the overall Application PlatformArchitectural overview of the ESB TookitDemonstrated the capabilities that accelerate ESB deployments

Page 35: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

question & answer

Drop your buiness card to get a

„ESBT-classrom-in-a-box“ 2 DVD set

Page 36: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

www.microsoft.com/teched

Sessions On-Demand & Community

http://microsoft.com/technet

Resources for IT Professionals

http://microsoft.com/msdn

Resources for Developers

www.microsoft.com/learning

Microsoft Certification & Training Resources

Resources

Page 37: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

Complete an evaluation on CommNet and enter to win an Xbox 360 Elite!

Page 38: Markus Landler Program Manager International Customer Advisory Team Microsoft Corp. Session Code: INT306.

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