220 likes | 363 Views
ESB Guidance 2.0. Kevin Gock http://www.itfocus.co.nz. Agenda. Enterprise Service Bus (ESB) ESB Guidance Itinerary Dynamic Endpoint Resolution Web Services ESB Management Portal Demo Questions?. Definition of ESB.
E N D
ESB Guidance 2.0 Kevin Gock http://www.itfocus.co.nz
Agenda • Enterprise Service Bus (ESB) • ESB Guidance • Itinerary • Dynamic Endpoint Resolution • Web Services • ESB Management Portal • Demo • Questions?
Definition of ESB Implementation of an infrastructure for enabling a service oriented architecture (SOA) • Enterprise – Integrate assets of one company • Service – Provides services e.g. Routing, Transformation • Bus – Pluggable messaging endpoints
Think of an ESB as ... Collection of architectural patterns based on • Traditional enterprise application integration (EAI) • Message-oriented middleware • Web services • .NET and Java interoperability • Host system integration • Interoperability with service registries and asset repositories
What is the ESB Guidance? • Enhancements to BizTalk • Developed by Patterns and Practices Team • Extends BizTalk • Itinerary-based invocation • Dynamic endpoint resolution • Message routing using registry or rules engine • Web Services • Fault Management and Reporting • Integration with 3rd Party SOA Governance Solutions • Sample Applications
Installation Install: • BizTalk ESB Core, Exception Handling packages • Itinerary Designer • ESB Configuration Tool • Documentation • Source Code Requires: • Windows 2008 • SQL Server 2008 • Visual Studio 2008 SP1 • Enterprise Library 4.0 • Unity Application Block 1.1 Use Microsoft Hyper-V for virtualisation
What is an Itinerary? • XML defining a sequence of Services to execute • Sent by a client as a SOAP header along with message
How does an Itinerary work? • Client Sends Itinerary and Message (both flow together for each Service executed) • ESB Pipeline sets Itinerary values as message context properties • Itinerary Subscribers: • Orchestration or ESB Agent (name=Transform/Routing) • Filter for specific name, type, state
Why have an Itinerary? • Makes message highly distributable. • Ability for any ESB container to process the message Caller must be changed to pass Itinerary
Dynamic Endpoint Resolution Allows an Itinerary service endpoint to be resolved, dynamically at runtime. Supported Resolvers: - UDDI - LDAP - Xpath - BRE - Static
Dynamic Endpoint Resolution Example • Itinerary – Resolvers XML Fragment: Processing: • Transform message using BRE • Send the Order to • static file location • location resolved by using UDDI search • Send the response back to caller
Why use Dynamic Endpoints? • Avoid consumers binding directly to a static endpoint. If endpoint changes then the consumer needs to change also. Example: Orchestration calls static WebServiceA .NET app calls static WebServiceA UDDI would be useful to lower maintenance by changing the UDDI registry only.
Demo - BRE • Resolver uses Itinerary’s data (policy=ResolveMap) for BRE to set transform
Demo – STATIC, UDDI • Itinerary – Resolvers XML Fragment: • STATIC defines the full location so dynamic resolution doesn’t occur • UDDI resolves to physical drive location
Creating Itineraries • Use VS 2008 with the ItineraryDsl project type • Validate and Export to XML
Web Services • Itinerary On-ramp • Resolver • Transformation • Exception Handling • UDDI • BizTalk Operations
Summary • Guidance implementing an ESB, best practices and reducing effort • Loose coupling with Itinerary and Dynamic Endpoint Resolution • Lots of useful Web Services • Management of the ESB via a Portal (faults, UDDI) • Still in CTP2 so there are outstanding issues • Source code for ESB and samples • Extensible and Free!
Thank you! Kevin Gock http://www.itfocus.co.nz