To help explain what BizTalk (or Microsoft BizTalk Server to give it its full name) is and what it can do for businesses let’s look at some common scenarios that you may relate to.
We have three systems that we need to pass information between on a regular daily basis. We have a HR system where we hold details of employees and pay these employees on a weekly or monthly basis, we have a finance system where we pay invoices to external suppliers and also process employee expenses and a training system where details of training courses employees are to do or have completed are held.
Now we need to pass to the finance system and training system details of new employees as well as any changes to employee details i.e. name change due to marriage, job title changes due to promotion, etc. We also need to pass approved expenses from the finance system to the HR system so employees can be reimbursed as well receive invoices from external suppliers and payment of these invoices.
In the simple most basic scenario we achieve the passing of information between systems using paper forms or even email. So when a new employee joins, his details are entered into the HR system most likely from a form and the new employee details passed to the finance and training systems either using the same form or printing off details from the HR system and passing these details onto the finance and training support functions to enter the new employee details into those systems manually. The same will occur for the approved expenses from the Finance system to the HR system and also receiving invoices and payment of these to suppliers. The main issues with a manual process are that it is prone to errors and delays and has no real audit trail.
Most businesses would have moved on a step by automating these processes rather than relying on a manual process especially if we are dealing with 10s or 100s of these forms on a daily basis which we would find in medium to large sized companies.
These automated processes would in effect mimic the manual process so you would have an automated process for extracting new and changed employee information from the HR system and delivering that to the finance system. You would also have a similar automated process for the new and changed data to the training system. This would be a separate process most likely as the data required by the Finance and Training systems would be different in structure and layout.
There would be another automated process for passing approved expense details from the finance system to the HR system and also receiving invoices from suppliers and payment of these to suppliers.
Architects typically call this a point to point solution design in that each feed of data is separate from each other. Whilst this is a good neat solution on day one of your step into integration as a business you will soon come to realise it acts more as a hindrance as your business moves forward and you look to want to replace the HR system for instance. In this scenario you would have to amend three point to point automated processes namely the HR data to the finance and training systems and the approved expense information from finance to HR. Now it may not seem a lot of work but if the HR data was required by other systems the amount of work to amend these point to point interfaces increases.
The diagram below helps explain this better.
This is where BizTalk can help by acting as what us architects call an integration hub and spoke model where there are no point to point interfaces and all data goes through BizTalk. This model has the advantage of decoupling systems so the HR system doesn’t need to know about the structure and layout of the data going to the Finance and Training systems.
The algorithm to determine the number of point to point interfaces required to connect all your application systems together is
n * (n — 1)/n.
So when we come to replace the HR system there are no changes to be made to the other systems interfaces and they would not need to know or be aware of the fact the HR system would be replaced. All data transformations are done in BizTalk and there is no requirement to make changes to the HR, finance, training or external suppliers systems.
If HR data is extracted from the HR system and passed to the finance system and similar data plus additional data is required for the training system then the common feed from the HR system can be updated to extract all the information for both the Finance and Training systems and within BizTalk only extract that information required for each of the Finance and Training systems.
Connectivity to each system is achieved by using what is known as adapters. These adapters provide a plug and play ability to connect BizTalk to each system and take away the necessity to understand the technology of each system. For instance there is an adapter that can connect to an IBM CICS system. This means other systems can access applications that run on the IBM CICS platform by using BizTalk as the broker. What we mean by broker in architectural terms it acts as the mediator or middle man and manages the process of converting the structure and format of data into something that the destination system can understand.
Bringing BizTalk into your organisation should not result in having to make changes to your systems as is commonly misunderstood. Any changes that are required are contained within BizTalk itself where a lot of what needs to be done are just configuration and very little if any code to be written.
That is not all that BizTalk can do albeit it does resolve your immediate integration requirements overnight.
BizTalk is also a Business Process Management (BPM) tool that can orchestrate your business processes. The most common use of BPM in BizTalk is to provide the glue between your different systems and act at an Enterprise workflow level by managing each system’s own workflow processes.
BizTalk also has a rich Business Rules Engine (BRE) where you can put all your organisations business rules that can be built into BizTalk orchestrations and these can be called from outside BizTalk using the API that is provided. By centralising your business rules into the BizTalk BRE you can provide a single repository for your organisation’s key decisions avoiding these being replicated across systems leading to expensive maintenance of these as your organisation continues to grow.
Another often underestimated feature that comes with BizTalk is the BAM (Business Activity Monitoring). BAM in BizTalk provides the visibility to understand what is going through BizTalk in real time as well as providing historical data that can provide trend analysis on the data captured. In the scenario above where we are receiving invoices from suppliers and making payment BAM can provide a real time update of the value of invoices coming into the organisation and how much is being paid out. This information may not be as readily available from the finance system and at best may only be provided on a daily basis. BAM comes with a portal where the data can be viewed and analysed by business and IT users.
BizTalk is not just an Enterprise Application Integration (EAI) tool but can also provide Electronic Data Interchange (EDI) and act as an Enterprise Service Bus (ESB). More recently Microsoft has been extending BizTalk into the cloud (Azure) and has started offering Windows Azure BizTalk Services which provides a simple, powerful and extensible cloud-based integration service for Business-To-Business (B2B), EDI and EAI. Windows Azure BizTalk Services also provides out of the box cloud to on-premises, line-of-business applications integration for SAP, Oracle, EBS, SQL Server and PeopleSoft. It allows you to connect with any HTTP, FTP, SFTP or REST data sources. There will be much more in Windows Azure BizTalk Services released over the next few years as Microsoft invest heavily in integration.
By Stewart Joyce, Associate Senior BizTalk Consultant
Have a comment? Let us know below, or send an email to email@example.com