This section will discuss the role of Microsoft BizTalk Server within the Microsoft integration technology stack.
What is it?
BizTalk Server is Microsoft’s premier integration server product. It is a high performing and scalable platform which can be used to implement many different types of integration solution. BizTalk Server provides many of the different features you would need to implement integration solutions and also some additional features (discussed below) which provide added value features to your integration solutions such as BAM however they are all included in the same package.
BizTalk works in a way that it receives messages from somewhere which can involve an application sending a message to it (such as over a web service or MLLP connection) and then the message is saved to the durable messaging store. BizTalk can then take some actions on the message such as routing or starting an orchestration based workflow. BizTalk will then send messages to external systems which is done using a push integration pattern. BizTalk does not support a pull based approach for the sending of messages but you can combine with other technologies from Microsoft such as MSMQ or Azure Service Bus where a message can be delivered for collection by an application using a pull approach.
The below diagram shows you at a high level how BizTalk works internally:
As you can see there is the send and receive ports either side of the message box with the optional chance to execute an orchestration in the middle.
BizTalk contains the following core features:
The heart of BizTalk providing durable messaging and orchestration persistence features.
The ability to process messages, transform and route them and to connect to external systems.
A channel which is configured with an adapter and a pipeline to process a message and send it to another system.
A connector which can connect to a specific application or protocol to communicate with an external system. An example would be the HTTP adapter.
Pipelines can act upon messages when they flow through a port. A pipeline can contain out of the box or custom components which can manipulate or process the message. An example might be decrypting a message.
A map is used to transform a message from one type to another. Maps work based on schema which define a message structure.
An orchestration is a workflow feature which can be used to process messages and implement a business or system based process. An example of the use of an orchestration may be to mash together data from two systems to create a combined message. Orchestrations have the ability to persist their state so that they can wait for long running actions to take place or so that they can recover from system failures.
Added Value Features
BizTalk also contains the following features which are not necessarily used in every implementation but are really powerful features which can help you to deliver good solutions, they all come with BizTalk out of the box or can be installed as a free add-on:
- Business Activity Monitoring
Business Activity Monitoring is a feature which allows you to define a business view of a business process then to map the implementation view to the business view. During execution information about the executing processes are processed in the BAM sub-system which allows the business user to get a view of their business process and whats happening inside BizTalk. The business user is also able to create views of the data to extract key performance indicators and aggregated views of the data across different dimensions such as time. This data can help the user to gain significant intelligence from their integration processes.
- Business Rules
Business Rules are a feature which can be used to abstract any decision logic from the executing processes. This means logic can be changed by updating the rule policy rather than changing the code which would require a re-deployment. The BizTalk Rules Engine has a powerful runtime capable of high performance and also a developer story around rules development. One of the weaknesses of BizTalk for some customers is that the Business Rules policies are difficult to edit and update without IT involvement. In these cases a customer would usually consider a more complete Rules product from a specialist rules vendor such as InRule, but for many cases the BizTalk Rules Engine can be a very powerful feature.
BizTalk comes with an EDI module within BizTalk that leverages the core messaging capabilities but also adds some EDI specific pieces including Trading Partner Management which can be used to maintain EDI agreements for your partners. The EDI module also adds some schema, pipelines and orchestrations which are reusable and provide functionality for most EDI implementations.
BizTalk has a set of available adding called accelerators. These accelerators are specific to industry standard integration scenarios and provide schema, pipelines and orchestrations which can help you to implement these types of project. There are accelerators for most of the main industry standards including:
- ESB Toolkit
The ESB Toolkit is an add on for BizTalk which provides features which will help you to implement the ESB integration pattern using BizTalk Server. There is more about this on the ESB Toolkit page within this site.
BizTalk provides an RFID module which is intended to help you implement supply chain integration solutions. The RFID module comes with BizTalk but is deployed separately and helps you to connect RFID devices to your integration processes and the module also provides a simple message processing channel which can process RFID scan events.
- RFID Mobile
BizTalk RFID mobile is an additional RFID feature which can be added to mobile devices allowing scanning to be performed offline and then when the device is connected the scanned information can be pushed to the RFID processing system.
- Enterprise Adapters
BizTalk comes with a set of Enterprise Adapters provides you with features to connect to some of the common line of business systems such as SAP, Oracle, Seibel.
The key strength of BizTalk is that it provides a very rich set of features which can help you tackle most of the common integration problems. While it may not be the best tool for every single integration problem it is a bit like a powerful swiss army knife of integration tools but with chain saws and lasers and other things.
Many people do not often appreciate that one of the biggest strengths of BizTalk is the hosting model and message box. This provides a reliable and durable messaging store which can be taken advantage of by the messaging subsystem to implement durable publish/subscribe based messaging and also the orchestration engine which can use the message box for state persistence for long running processes. The message box also supports the subscription and correlation models which allow static and dynamic configuration and routing messages between destinations and workflow instances.
For delivering the basics of a messaging and integration solution, BizTalk messaging and orchestration can give you a lot of what you need. There are however a number of other features such as Business Rules Engine and Business Activity Monitoring which allow you to build more dynamic solutions and open up the KPI based data in your integration and business processes to users.
BizTalk has dependencies on the following things which you need to be aware of.
BizTalk requires a SQL Server to host its required databases. A SQL Server which performs well is a key element in a successful BizTalk implementation
The SQL Server which is used by BizTalk is part of a SQL Cluster using Windows Fail over clustering. Sometimes you may also want to use Fail Over Clustering on the BizTalk nodes too if you have a BizTalk adapter such as the FTP adapter which needs to be clustered for high availability. You should not cluster all resources on the BizTalk nodes, just those resources which need it.
Technical Info & Questions
BizTalk Server supports the following hosting options:
- On Premise on Physical Servers
- On Premise on Virtual Servers – (see technet wiki for more info)
- In Windows Azure IaaS
- Other cloud provider are possible but its best to check their supportability with the provider
In general if you are on physical servers or using a VM infrastructure based on hyper-v or VMWare then your usually OK as long as its inline with the technet wiki article mentioned above.
Many customers who purchase BizTalk are likely to have some kind of existing agreement such as an Enterprise Agreement with Microsoft and in these cases you need to engage with your Microsoft account team or licensing reseller as you will probably have prices specific to your agreement.
If you do not have an existing agreement then there is some licensing information on technet wiki which can help you get into the details of the costs – Click Here.
In summary the license costs are a per core license model for BizTalk Server nodes and a per core license model for SQL Server nodes. You will require both.
BizTalk Server is also available as a virtual machine hosted in the Microsoft Azure Cloud. This purchase model allows you to pay as you go with your BizTalk investment. This means stretching out the cost and also the option to turn off machines to reduce cost if there are periods of no use. Azure can also offer the opportunity to reduce risk if you think your project might not last very long or to do burst load options too where you have temporary nodes.
One of the best licensing options for BizTalk is around development and testing licenses where its possible to use MSDN licenses to cover you for those environments.
- Azure Service Bus Relay
Azure Service Bus Relay can be used as a way to implement hybrid integration solutions where a client outside of the network is able to make a call to a cloud hosted web service endpoint which BizTalk has exposed by registering with the Azure Service Bus Relay.
- Azure Service Bus Brokered Messages
Azure Service Bus Brokered Messaging can be combined with BizTalk to implement queued messaging in the cloud with BizTalk as a receiver or sender of messages. One of the common patterns could be to level load spikes with the queue in the cloud or to implement asynchronous messaging patterns. If BizTalk is the sender then its likely to be sending information about events from applications to the queues in the cloud which can then be processed by a partner. If BizTalk is the receiver of the message then it is likely that messages are send to the organisation via a queue and BizTalk is able to implement the EAI processes to integrate into line of business applications to make appropriate updates when processing the message.
- Azure Service Bus Notification Services
Azure Service Bus Notifications could be combined with BizTalk if you have line of business applications where you want to publish information which can then be broadcast via the notification hub to millions of devices. BizTalk would provide value in integrating with the line of business application to extract data and debatch or publish it and notification hubs would specialize in the mass broadcast and decoupling of device specific implementations.
WCF is a framework technology designed to implement connectivity to an application. BizTalk can leverage WCF in the use of some of its out of the box adapters for HTTP, NetTcp and other protocols. A developer can also extend BizTalk’s adapter processing through the development of bindings and behaviours which can be referenced by BizTalk.
- SQL Server Integration Services
SQL Server Integration Services is a tool which is specialized for ETL based data integration. BizTalk can be combined with SSIS in the import or export of data. An example might be if BizTalk were to receive a file with a complex data structure which it might then transform to a format which is easy to be loaded into SQL. BizTalk could use the SQL adapter but for large amounts of data it might be a lot quicker to write the data out to disk and for BizTalk to then trigger an SSIS package to do the load of data. SSIS and BizTalk working together is usually considered when your looking at database level integration and are working with large amounts of data.
MSMQ can be used as a queuing system outside of BizTalk which can be used to store messages. Some of the very big BizTalk implementations use MSMQ to help them decouple messaging between BizTalk applications and also to keep the spool size internally in the BizTalk SQL database down which can aid the throughput of BizTalk.
- WCF LOB SDK
The WCF LOB SDK can be used as a way to write WCF based custom adapters which use the WCF framework and fit into BizTalk via WCF bindings rather than the traditional adapter framework.