What is BizTalk Server ?

If you wanted to explain BizTalk Server for a technology guy the answer will be: 
BizTalk Server is a middle ware product from Microsoft that helps to connect various systems together.
Lets take an example: If you look at any modern organisation it will running it operations using variety of software products. SAP for their ERP needs, Salesforce for their CRM needs, Oracle for their Database needs, + tons of other home grown system like HR, Finance, Web, Mobile etc.

At one point in time these systems need to talk to each other, example a customer data that's residing in your SAP system may be required in your CRM  system (Salesforce). In a similar way the contact details you collected from your company web site need to go into few back end systems like CRM, ERP, Marketing etc.

This business need can be addressed in a layman way by allowing each system to talk to all dependent underlying system. From our example, the web will have piece of code that will update contact details in CRM, ERP, Marketing system etc (similar way each system will have their own implementation to update relevant systems). If you go down this route you will end up with 2 major issues. One creating a spaghetti of connections/dependencies between various systems, and second whenever a small change is required you need to touch multiple systems. There are various other challenges like understanding the interfaces of all the underlying systems, transport protocol, data formats etc.

Products like BizTalk server (there are other vendors like Tibco, Mulesoft, IBM Websphere Message Broker) etc solve this problem of being a middle man.

When you use BizTalk Server, all the systems talk to only one central system i.e BizTalk server and it's the responsibility of BizTalk server to deliver the message to corresponding underlying system. It takes care of various challenges I highlighted earlier.

In a real world example, imagine BizTalk server as a post man delivering letters. It's impossible for all of us to go and deliver letters to each address, hence we post it post office and they take care of delivering it.

If you see BizTalk from bird eye view you will find it middleware. A middle man who work as a communicator between two business, system or/and applications. You can found many diagram on the internet that shows it as a middle man or tunnel that use by two willing systems to exchange their data.

If you want to see it more technically then you can say it is integration or/and transformation tool. With the robust and highly managed framework, BizTalk has infra structure that provided communication channel with capabilities to provide desire data molding and transformation. In organization, some time data exchange with accuracy with minimum effort is desire goal. Here BizTalk play vital role and provide services to exchange data in the form they can understand. It makes to applications transparent to each other and allows them to send and receive information in the way they used to send regardless of what kind of candidate is existing for the information.

If you go further deep you will find it messaging engine based on SOA. To make BizTalk work for every plate form Microsoft used XML. People say BizTalk only understand XML. Not purely, you can also send binary files through BizTalk. But when you want functionality, logging, your business rules then you can only play in XML. BizTalk is SOA (Services Oriented Architecture), many types of adapters are available to interact different kind of systems and can be changes and configured at administration level.

So, this is creepy stuff that can anyone say about BizTalk to impress his Boss, or to clear his interview as introduction. Now let go into deep and taste BizTalk further.

Next I can talk about Message Box. Take a look to following image that you can found on many other websites,

Four major components can be seen
  1. Receive Port
  2. Message Box
  3. Send Port
  4. Orchestration
Yeah your guess is right, Receive port where we receive request and send port where we send request but what is message box and Orchestration.

First if we talk about flow of execution. Message reach at receive port through adapter we configure it reaches here as we configure it’s receive location and adapter. Then it goes through pipeline toward message box. From message box, message is sent to the port subscribe for this message. It can be more than one port. Message is published in message box to all recipients. As port is identified, message is sent to orchestration for the port and again come back to message box and then send port’s map and pipeline. Finally adapter send message where it should go. Maps are optional, it is according to need. Pipeline is compulsory, but few built-in pipeline are available and you can use them if you do not want to do anything in pipelines.

Message box is simply we can say a SQL Server Database. Here we define the message arrive should be sent to which port. Message arrived with unique signature; we call it message name space. This name space should be unique in subscription. It helps the BizTalk to transport message to correct location. There is the other type of subscription of message and also untyped messages that are routed on the basis of data that contain but those are beyond scope of overview.

Receive location is further explode into receive location, pipeline and maps. Receive port execution is done such manner, first adapter then pipeline and then port. Receive location is a here as a separate artifact. Configuration of receive location is important to initiate service. Here we define what adapter will be used to get message. Further we can introduce pipeline here. Pipeline is used to perform any operation prior to send message to message box. Normally we used to disassemble any file.

Then inbound maps are faced, here we can mapping operation. BizTalk Mapper is a tool ship with BizTalk Server with vast variety of mapping operations.

Orchestration is an implementation of your business logic. Microsoft provide BizTalk template that will install in Visual Studio having GUI interface for orchestration, map and other component.

Message sent to orchestration on the basis of subscription and then again to Message Box to noted down the changes done in orchestration and finally to send port. On send port we also have map, pipeline and adapter to perform any changes at sending end. This execution occurs in reverse order as compare to receive port means first outbound maps then pipeline and then adapter.

This is execution of any message through BizTalk.

1 comment: