Book Image

Microsoft BizTalk ESB Toolkit 2.1

Book Image

Microsoft BizTalk ESB Toolkit 2.1

Overview of this book

An Enterprise Service Bus (ESB) is an architectural pattern and a key enabler in implementing the infrastructure for a service-oriented architecture (SOA). The BizTalk ESB Toolkit is a collection of tools and libraries that extend the BizTalk Server capabilities of supporting a loosely coupled and dynamic messaging architecture. It functions as middleware that provides tools for rapid mediation between services and their consumers. Enabling maximum flexibility at runtime, the BizTalk ESB Toolkit simplifies loosely coupled composition of service endpoints and management of service interactions. The thing about the technology that gets most readers excited is how easy it is to quickly implement flexible and well-architected ESB solutions. "Microsoft BizTalk Server 2010 ESB Toolkit 2.1" provides you with an easy-to-follow view of the tools and services that make up the toolkit. The content is packed with practical examples on how to utilize the technology, which will be appealing to the readers. This book provides you with all the information you need in one publication. The content is based on practical examples on how to use the technology to make it easier for readers to follow. This book starts off with a quick, high level introduction to ESB architectural principles, how these principles map into the ESB toolkit features, and an introduction to the different components that provide those features. The book then reveals the ins and outs of Itineraries. Next, you'll get engaged in the different ways errors can be handled and monitored by means of the ESB Toolkit features. There will be a hands-on sample on building a custom Repair and Resubmit solution to reprocess failed messages. Get to know the different web services that expose the ESB Toolkit features to external applications and how to use them with quick samples. The book ends with a preview to the new version of the toolkit.
Table of Contents (13 chapters)

The ESB Toolkit


In this section, we will get to know what the ESB Toolkit is all about, why it was created, and the benefits it brings to any BizTalk solution, especially to build ESB architectures.

We all need a bit of guidance

As we saw in the previous section, ESB is an architectural model that can bring huge benefits to the integration architecture of a company, but there would be potentially many ways to achieve the same goal.

Around 2007, a group of talented architects and developers from the Microsoft BizTalk product group and the Patterns and Practices team came up with the idea of the ESB Guidance, as a set of architectural guidelines and re-usable components that would help us to build an ESB based in Microsoft BizTalk Server 2006 R2. This ESB Guidance was renamed later on to ESB Toolkit with its 2.0 version along with BizTalk 2009. The latest versions of it are the 2.1 that came with BizTalk 2010 (the one that we will cover in this book) and the latest one (2.2) that comes with BizTalk 2013.

Note

The main difference between ESB Toolkit 2.1 and 2.2 versions is that the ESB Toolkit 2.2 can be installed directly from the BizTalk installer splash screen, but the rest remain the same, so the contents described in this book apply to both versions.

Most of the current technologies and IT development platforms nowadays provide huge flexibility and power in terms of implementing solutions, but that flexibility and power sometimes make it difficult to know the better way to implement some common patterns.

In the old days of .NET, we all needed to implement common patterns such as aspect oriented programming, error handling libraries, logging, and so on, and there were teams around the world implementing the same things on and on, each of them on their own flavor. But then the Enterprise Library came along to make our life a bit easier.

The ESB Toolkit is to BizTalk the same as the Enterprise Library is to any .NET application. It just helps to implement common architectural and development practices in a reliable and proven way. Whether you are building an ESB or not, some of the ESB Toolkit principles and re-usable components will be really useful to build high quality BizTalk solutions.

ESB Toolkit features

The aim of the ESB Toolkit is to cover all of the capabilities required by a proper ESB by leveraging existing features in BizTalk Server, introducing new re-usable components and documenting it all together so we don't get lost along the way.

We can map the main ESB capabilities we listed in previous sections to the BizTalk and ESB Toolkit features like:

ESB Capability

Mapping to BizTalk and ESB Toolkit

Message Routing

BizTalk content-based routing and ESB Toolkit itineraries

Connectivity

BizTalk Adapters and ESB Toolkit ramps

Exchange Patterns

BizTalk Adapters and existing architecture

Transformation

BizTalk maps and ESB Toolkit components

Service Directory

BizTalk UDDI Services and ESB Toolkit itineraries

Rules Dynamic Resolution

BizTalk Business Rules and ESB Toolkit dynamic resolution

Validation

BizTalk Schemas and ESB Toolkit components

Aggregation

BizTalk orchestrations and ESB Toolkit itineraries

Service Orchestration

BizTalk orchestrations and ESB Toolkit itineraries

Assured Delivery

BizTalk Adapters and ESB Toolkit Exception Handling

Management and Governance

BizTalk management console, ESB Toolkit management portal, and Business Activity Monitoring (BAM)

Security

BizTalk Security and SSO

As we mentioned earlier, all these capabilities are pretty much required to build a full-blown ESB architecture and they should be interoperable and decoupled enough to provide the flexibility and scalability that we need.

All this can be very well represented with the representation of the ESB Toolkit architecture and main components shown in the following figure.

Itineraries

The itinerary is one of the core concepts on the implementation of an ESB solution. It's the definition of the flow of certain piece of information or message must follow, through the ESB to fulfill one specific business process or interface.

The itinerary is composed of a set of steps or processing units that pretty much can be mapped to one or more of the stages defined by the VETRO pattern. Those steps or processing units are called Itinerary Services. They can be either the standard itinerary service components that come with the ESB Toolkit (the Transformation and Routing Services) or our own custom developed itinerary services.

We will get to know the itineraries more in detail in the next chapter of this book.

Ramps and web services

The ramps are the connection points where the systems can connect to send messages to the ESB and receive messages from it. Those are respectively the On-Ramps and the Off-Ramps and are implemented as WCF web services and BizTalk send ports, although we could build our own ramps based on other types of BizTalk adapters.

The ESB Toolkit also provides a set of web services that expose the functionality of some ESB features to any external systems. Those services are:

  • Itinerary processing

  • Exception management

  • Endpoints and maps resolution

  • Messages transformation

  • BizTalk Server operations

  • BAM services

  • UDDI services

We will cover these in detail in Chapter 2, Itinerary Services and Chapter 4, Understanding the ESB Web Services.

Services directory

The services directory is provided in BizTalk and the ESB Toolkit by means of the Universal Description, Discovery, and Integration (UDDI) services. These services provide a centralized registry of the services available across an organization, either for internal or external consumers, exposing all of the required information to categorize, organize, discover, and manage those services' definitions.

We will talk more about it in Chapter 4, Understanding the ESB Web Services.

Exception Management framework

Exception Management framework is a set of components and APIs that provide a standardized approach to handle, notify, and process any exceptional situations that might occur during the processing of a message. It's pretty much like the counterpart of the exception handling in the Enterprise Library.

We will dedicate a whole chapter to this topic later on in this book.