- General agnosticism to operating-system and programming languages - BizTalk itself is a server product on top of the operating system, hence not agnostic to operating system, although BizTalk can easily interoperate between Java and .NET applications using internet protocol using in-built adapter of BizTalk like SOAP/HTTP
- General use of XML as standard communication language - BizTalk communicates messages from and to BizTalk using XML as standard language. BizTalk still supports other type of messages like text and CSV, but standard format recommended is XML.
- Support for web-services standards - BizTalk supports web services standards like SOAP ( using SOAP adapter ), WSE 2.0 and WSE 3.0. BizTalk also supports WS-* standards using WSE adapters for BizTalk. WS-Security, WS-AtomicTransaction 1.0, MTOM standards are also supported via WCF Adapter.
- Support for various Message exchange patterns - BizTalk is a publish/subscribe messaging system. When a message is published in BizTalk ( SQL database ), message can be transformed and translated and sent to subscribers. Subscriptions in BizTalk is achieved via Filters on Send Port or through the Orchestrations. BizTalk supports both synchronous request/response feature via out of the box HTTP, SOAP and WCF adapters and asynchronous request/response model also via MSMQ and IBM MQSeries adapters.
- Adapters for supporting integration with legacy systems - BizTalk out of the box doesn't come with Adapters to connect to legacy systems, but there are many add-on and third-party adapters available to connect to legacy systems. With BizTalk Server 2009 license, BizTalk Server adapters are included which provides ability to connect to SAP, Siebel, Oracle, PeopleSoft, JDEdwards, TIBCO, Ability to connect to Host application like IBM Mainframe CICS, IMS and AS/400. It also enables the information exchange to IBM DB2.
- A standardized security model to authorize, authenticate and audit use of ESB - BizTalk supports web-service security standards like WS-Security - BizTalk also provides message level security mechanism on both Inbound and Outbound messages. Message security can be achieved either via Encryption or Digital Signature
- Facilitation of the transformation of data formats and values ( often via XSLT ) between the formats of the sending and receiving application - BizTalk comes out of the box with Mapper functionality. BizTalk Mapper is a visual editor to transform the data formats from one to another. BizTalk Mapper also has ability to use custom XSL to transform the data. Functoids, a reusable functions are also integral part of BizTalk transformation process. Functoids are like operations that needs to be performed on data. It comes with set of standard and advances functoids to manipulate data strings, scientific calculations, numerical calculations, Logical and date/time functions.
- Validation against schemas for sending and receiving messages - All the schemas that are created in BizTalk are deployed in BizTalk Application. When the message arrives in BizTalk for specified schema, before receiving message, a validation can be done against schema in pipeline component and be used in pipeline on receive location.
- The ability to apply business rules uniformly - BizTalk comes with declarative .net based Business rules engine/framework. BizTalk applications can use the BRE engine to apply the business rule using XML document, database or .net Objects. BRE even though ships with BizTalk it is available to be used externally by other applications as well.
- Enriching messages from other source - Messages coming in to the BizTalk server can be enriched before sending to the destination via Map. BizTalk Map along with functoids can be used to enrich the message.
- The splitting and combining of multiple messages and the handling of exception - BizTalk supports splitting a message into multiple using Envelope and Document schema. Envelope and document schema can be then used in Pipeline to debatch the message. Just like debatch, multiple messages coming in biztalk can be combined in various ways.
- Routing or transforming messages conditionally, based on a non-centralized policy - BizTalk Server provides content-based routing feature via the filters created on either Send Port or Send Port groups. Content based routing can be enabled for either specific message type, context properties on the message or for specific receive port or the combination of one or more.
- Queuing, holding messages if applications temporarily become unavailable - BizTalk has a central SQL store which ensures the reliability of messages as in guaranteed delivery. When a Biztalk in a node fails, the message is picked up by another server in the farm. BizTalk provides guaranteed delivery or holding messages from the source unless it is persisted in message box.
Looking into all the characteristics of ESB and verifying the feature set available in BizTalk it does is an ESB.
What is Enterprise Service Bus
As defined in Wikipedia, “An ESB generally provides an abstraction layer on top of implementation of enterprise messaging system, which allows integration architects to exploit the value of messaging without writing code. Unlike the more classical EAI approach of a monolithic stack in hub and spoke architecture, an ESB builds on base functions broken up into their constituent parts, with distributed deployment where needed, working in harmony as necessary!”
ESB Characteristics
As defined in Wikipedia, Following are the salient characteristics of ESB. We will look through all characteristics and see if BizTalk and the new "ESB Toolkit" built on top of BizTalk fits as an ESB. Following are the core capabilities as function to ESB :
Invocation - Support for Synchronous and asynchronous transport protocols, service mapping ( location and binding ). BizTalk Server out of the box supports standard protocols like FILE, FTP, HTTP, SOAP, SMTP and POP3.
Routing - Addressability, static/deterministic routing, content based routing, rule based routing, policy base routing. BizTalk Server provides content-based routing feature via the filters created on either Send Port or Send Port groups. Content based routing can be enabled for either specific message type, context properties on the message or for specific receive port or the combination of one or more. BizTalk ESB toolkit built on top of BizTalk Server has a feature to enable routing of an message based on built in Business Rules Engine ( BRE ). Itinerary can be created to use BRE resolver executing business rule policy in ESB toolkit. BizTalk server out of the box supports both static routing as well as dynamic routing at runtime and is easily configurable.
Mediation - Adapters, protocol transformation, service mapping.
Messaging - Message processing, message transformation and message enhancement. BizTalk comes with a Mapper tool to transform message from one schema to other schema. It also comes with solving complex transformation via both built-in functoids and custom functoids for flexible extension. BizTalk has a messaging engine to process messages. At a high level, BizTalk will receive messages via receive port ( and one or more receive location ), which can do inbound transformation on the message for normalization, message then is stored into BizTalk messagebox ( guaranteed delivery ). Based upon the subscription, messages is routed to subscriber via send port.
Process choreography - Implementation of complex business processes. To meet business needs on solving complex business processes like inventory control or order approval process, BizTalk provides Orchestration to create business process graphically. BizTalk comes with visio add-in to collaborate easily with Business users to create business processes.
Service Orchestration - Coordination of multiple implementation services exposed as a single, aggregate service.
Complex event processing - Event-interpretation, correlation, pattern-matching.
Quality of Service - Security, reliable delivery, transaction management
Management - Monitoring, Audit, Logging, metering, Admin console, BAM
Following are the salient characteristics to ESB :












