BizTalk Server Overview
- What Is BizTalk Server?
- Why Is BizTalk Server?
- BizTalk Components and Capabilities
- BizTalk Architecture
What is BizTalk Server?
BizTalk Server: BizTalk is the Integration tool developed by Microsoft as a middleware product that helps to connect various systems together to transfer data.
BizTalk provides the base services to do powerful application integration across disparate systems and even organizations. Microsoft BizTalk Server is an application server that enables companies to integrate and manage automated business processes by exchanging business documents, within or across organizational boundaries
BizTalk Server also uses the latest releases of other Microsoft technologies. It’s built on the .NET Framework, and the developer tools are hosted in Microsoft Visual Studio. For storage, BizTalk Server uses SQL Server. BizTalk Server can run on 64-bit Windows Servers, taking advantage of the larger memory and other benefits that the hardware offers.
Microsoft has released latest version of BizTalk: BizTalk Server 2020.
Why is BizTalk Server?
BizTalk is, at its core, a messaging system that is based on a model called Publish-Subscribe. The main advantages of the Publish-Subscribe model include scalability (the ability to take advantage of available, changing, resources) and flexibility (works as the basis for many other programming approaches).
BizTalk provides the base services to do powerful application integration across disparate systems and even organizations. Microsoft BizTalk Server is an application server that enables companies to integrate and manage automated business processes by exchanging business documents such as purchase orders and invoices between disparate applications, within or across organizational boundaries.
It’s providing following facilities in integration which are very useful.
- With more than 15,000 enterprise customers world-wide and more than 80% of the Fortune Global 100 companies using it. We can safely conclude that it is a very successful product.
- Microsoft BizTalk Server provides a development and execution environment that orchestrates business processes, both within and between businesses.
- BizTalk provides the base services to do powerful application integration across disparate systems and even organizations. Microsoft BizTalk Server is an application server that enables companies to integrate and manage automated business processes by exchanging business documents, within or across organizational boundaries
- It is basically an Integration server with inbuild adapters for communication. It helps in Integrating Enterprise Applications at one common point.
- Solutions can be developed fast with BizTalk Server. Effort spent will be less.
- Support, Maintenance and updates are easy to manage and maintained.
- It provides guaranty that message will never loss in BizTalk if any technical issue occurs.
- It has retried mechanism as well as alternative transport mechanism for message processing.
- BizTalk is designed to operate in Multi Server Environment. We can run the application on various servers to manage load and highly Availability.
- Advantage for customers on cost saving in terms of development time.
- BizTalk has BAM Portal (Business Activity Monitoring Portal) to tracking the message information inside the BizTalk for the Business guys.
- BizTalk has several Tools like BRE, SSO which be effectively used.
- It can be used to communicate with wide range of Legacy Applications. There is always a scope to develop custom
For more details: https://vkbiztalk.com/2017/07/02/why-biztalk/
BizTalk Components and Capabilities
BizTalk has following components:
- Receive Port: BizTalk Receives messages from source systems via Receive Ports.
- Adapters: Information interchange with external systems. There are several types of in-build adapters which are using to send/receive message to applications from BizTalk. E.g. File, web service, FTP, SQL etc.
- Pipelines: Pipelines is basically used for converting message into xml format and promote message content/context properties on the message. So that subscriber (Send port or orchestration) can receive the message for further activity. BizTalk plays message in XML format only. If message is in another format, then it should be converted into xml format in pipeline and then proceed further. BizTalk provides in-build pipeline component to convert into xml from text & JSON files. If file format is different from xml, text or json, then there is require writing custom pipeline component to convert into xml for example click here.
- Schemas: Schemas is used to set the format of the message in xsd format.
- Maps: map is used to transform the message format from source to destination. Transformation allow the application to map one message specification to another and transform data as it is processed. BizTalk messages are XML documents within the system. and as such, transformations are created from Extensible Stylesheet Language (XSL). Microsoft has provided mapping tool inside BizTalk development. This tool has rich set of funtoid which help in message transformation. BizTalk also support custom XSLT for mapping.
- Message Box: The BizTalk server uses a publish-subscribe messaging engine architecture and the heart of this architecture is the BizTalk MessageBox database. This message box is responsible for storing the messages, message properties, subscriptions, orchestration states, tracking data and other such information. The Message Box is made up of two components: first is one or more Microsoft SQL Server databases and second is Messaging Agent. The SQL Server database provides the persistence store for many things including messages, message parts, message properties, subscriptions, orchestration state, tracking data, host queues for routing, and others. The BizTalk Server group may have one or more MessageBox databases into which it publishes messages and from which subscribers to those messages extract messages.
- Send Port: A send port is the location to which Microsoft BizTalk Server sends messages or from which BizTalk Server receives messages. It also provides the technology that BizTalk Server uses to implement the communication action. The name of the port uniquely identifies the location.
- Send Port Group: A send port group is a named collection of send ports that BizTalk Server can use to send the same message to multiple destinations in one configuration
- BizTalk Orchestration: Orchestrations are executable business processes that can subscribe to (receive) and publish (send) messages through the MessageBox database. In addition, orchestrations can construct new messages. When messages are sent from an orchestration, they are published to the MessageBox in the same manner as a message arriving on a receive location with the appropriate properties getting inserted into the database for use in routing. It is a flexible, powerful tool for representing an executable business process based on XLANG/s language. XLANG/s can be viewed as a messaging language with some of the expression capabilities of C#. You can design flow, interpret and generate data, call custom code, and organize the entire process in an intuitive visual drawing, and at run time, the BizTalk Orchestration Engine executes XLANG/s files which are the executable business processes that are produced by BizTalk Orchestration Designer.
- Role Links: role links is an abstraction layer between orchestrations and trading partners. Role links allow you to dynamically determine the trading partner for interaction based on message content, database values, basically on anything you can think of. A role is a collection of port types that either uses a service or implements a service. A role defines how parties interact with orchestrations.
- Party: Party connect with send port with help of role link. This will define at run time where message should process based on Party configuration
Message processing inside Biztalk as below:
- BizTalk Receive files from BizTalk receive port.
- Receive port can have multiple Receive location which can receive files or message from different connector (Adapters e.g. File, Ftp, SQL, web Service etc.)
- After received message at Receive port. Message processes through Receive Pipeline. In Receive pipeline message convert into xml files. If message format is different e.g. flat or csv file. BizTalk by default support xml, flat & csv files. Now it also supports json files from BizTalk 2013 and upper version. Inside BizTalk message will always be in xml format. If not, then it must be converted into xml file format in receive pipeline.
- After Receive pipeline there is mapping, this is optional, if message transformation requires before further process then BizTalk mapping apply to transform the message and it will be configured at Receive Port.
- After that message will be stored in message box database. BizTalk has its own database for message store & process so that it will full fil the one of most criteria in EAI concept that message will never be lost while processing in BizTalk.
- There will be two subscribers (Send Port & Orchestration) for incoming message received from Receive Port.
- In Orchestration there can be applied business logic, multiple mapping rules, automation etc. to achieve automatic business process. Orchestrations can subscribe to (receive) and publish (send) messages through the MessageBox. In addition, orchestrations can construct new messages.
- Mapping-Mapping for message format as per destination system require. This can be defined in orchestration or at Send port.
- Send Pipeline- The send pipeline is used to prepare a message coming from BizTalk Server for transmission to another service. this part is specified on send port. A send pipeline is responsible for processing documents before sending them to their final destinations. The send pipeline takes one message and produces one message to send. This will assemble the message, encode or change format e.g. from xml to flat file before sending to send port.
- Send port have the connection details of the destination system to send the message. A send port is the combination of a send pipeline and a send adapter. For single receive port there can be multiple send ports
BizTalk Host/Host Instances:
A host is a logical representation of a Microsoft Windows process that executes BizTalk Server artifacts such as send ports and orchestrations. A host instance is the physical representation of a host on a specific server. A host can be either an in-process host, which means it is owned and managed by BizTalk Server, or an isolated host, which means that the BizTalk Server code is running in a process that is not controlled by BizTalk Server. A good example of an isolated host is Internet Information Services (IIS), which hosts the receive functionality of the HTTP and SOAP adapters. Hosts are defined for an entire BizTalk Server group; a collection of BizTalk Servers that share configuration, MessageBoxes, ports, and so on.
For more details about Host/Host Instances click here.