Microsoft BizTalk Server is an Inter-Organisational Middleware System that enables companies to automate business processes, using adapters which are tailored to communicate with different software systems used in an enterprise. It provides enterprise application integration, business process automation, business-to-business communication, message broker and business activity monitoring.
BizTalk Server has a publish and subscribe architecture that uses adapters to receive and send messages, implements business processes through orchestration, and includes management and tracking of these different parts. BizTalk Server also includes trading partner management for business-to-business messaging, high availability to maximise uptime, a development platform to create your own components, an administration console to manage your artefacts, and business activity monitoring to manage aggregations, alerts, and profiles.
As newer versions have been released the full capabilities have been updated, even more so with the latest version. The enhancements that were added to the latest version 2016 are:
- BizTalk Server 2016 adds support Visual Studio 2015, Windows Server 2016, SQL Server 2016 and Office 2016
- Support for automatic deployment using VSTS, send tracking data to Azure Application Insights and Power BI, advanced scheduling options on receive locations, and more.
- Support for, on-premises and in Microsoft Azure IaaS virtual machines, high available (HA) solutions in Microsoft Azure and use of SQL Availability Groups.
- BizTalk Server Azure virtual machines are now fully supported for production environments.
- Connect to your Logic Apps hosted in Azure, and get access to all the connectors including Salesforce, SharePoint, CRM Online, and more. For example, you can receive an order in BizTalk Server, connect to your Logic App, and update Salesforce.
There are more features, or updates that have been added but are more behind the scenes enhancement.
Scenarios for BizTalk Server Solutions
As far as BizTalk Server for Business Automation is concerned, there are two core types of solutions that BizTalk Server supports, firstly Service Oriented, secondly Business Process Management.
Service Oriented solutions are solutions built within BizTalk Server that are made available as a Web Service, which can then be used by any type of applications that can call the web service. The design pattern for this type of solution is based on Service Oriented Architecture (SOA) which have several characteristics. Microsoft has provided an example of this type of solution:
https://docs.microsoft.com/en-us/biztalk/core/understanding-the-service-oriented-solution
Business Process Management solutions are designed within BizTalk application to manage a business process such as service order processing. Microsoft has provided an example of this type of solution:
https://docs.microsoft.com/en-us/biztalk/core/understanding-the-business-process-management-solution
BizTalk solutions can be built and maintained using Visual Studio. Specifically, Visual Studio contains BizTalk project templates that allow for rich applications to be created. Once a project is created then the BizTalk Mapper, Orchestration Designer and Pipeline Designer can be used. The orchestration design surface allows for specific actions and outcomes to be dragged and dropped onto the canvas, while populating properties and values as needed.
Orchestration Designer
Pipeline Designer
The BizTalk Business Rule Composer tool allows you to create business rules that allow setting of conditions and processes as needed.
BizTalk has many other tools, and components that can be used to help build very complex solutions for data integration both On-premises and in the Cloud.
BizTalk Server Architecture
There are two core designs that BizTalk Server can use, Scaled down and Large. Both designs support all components within BizTalk Server – one supports for scalable and other does not.
Scaled Down Deployment
This logical design combines some of the domains and BizTalk Servers to reduce the overall number of servers and firewalls that are needed. This architecture is not the most distributed but still separates the BizTalk Servers based on their function within the infrastructure.
Sample Microsoft diagram
Within this design, servers in each layer respond to the application hosts, such as BizTalk Hosts, SMTP, Message Queues. Each layer is protected by Firewalls to ensure a secure logical architecture.
Large Deployment
The key to building a large-scale deployment is about ensuring that each component of the BizTalk Server services is separate so at any point they can be scaled. The following Microsoft diagram shows a highly distributed BizTalk Server architecture.
Sample Microsoft diagram
This design also utilises “defense in depth” to ensure that each layer is protected from each other and that everything is contained within the firewall infrastructure. This design also separates each layer into the following five groups:
- Perimeter Network
- Service Interfaces domain
- Services domain
- Data domain
- Corporate domain
Each segmented group ensures that only allowed traffic and service communication has access to the components it requires.
The Messaging Engine
The BizTalk Server Messaging engine enables you to create business processes that span multiple applications by providing two core things:
- A way to specify and implement the logic driving that business process
- A mechanism for communicating across the applications that the business process uses
These two things are addresses by the messaging engine component itself. The following diagram from Microsoft outlines how the engine works to achieve this.
Sample Microsoft diagram
As you can see the message is received through an adapter. There are many adapters that provide different communication mechanisms, so a message might be acquired from a Web service, reading from a file, or in some other way. The messages get processed through the receive pipeline. The pipeline can contain various components that can convert the message from its native format into an XML document, validate digital signatures, and more. The message is then delivered into the MessageBox database on Microsoft SQL Server.
Orchestrations are the logic that drives a business process. These can consist or rules and executable code as needed. These orchestrations are not written in a code language such as C#, instead an appropriate tool is used to graphically organise a defined group of shapes to express conditions, loops, and other behaviour. Optionally you can use the Business Rule Engine, which is a simpler and easier way to express complex sets of rules in any business process.
Subscriptions are created to indicate the kinds of messages you want to receive. Messages normally arrive in the MessageBox database. Each message is then dispatched to its target orchestration, which takes whatever action was designed within the business process. Each message is then processed by a send pipeline, which may convert it from the internal XML format used by BizTalk Server to the format required by its destination, add a digital signature, and more. Messages are then sent out using a send adapter, which uses an appropriate mechanism to communicate with the application for which this message is destined.
When building solutions within the BizTalk Server engine, you end up with various artefacts (parts or components).
- Orchestrations
- Pipelines
- Message schemas
These artefacts can be worked with as a single unit, referred to as a BizTalk application. A BizTalk application combines all these pieces together into a single logical unit, making it the fundamental abstraction for management and deployment.
Ballard Chalmers and BizTalk Server for Business Automation
Ballard Chalmers is one of a handful of BizTalk development experts in the UK, with over 15 years of experience. If you would like to understand more about how BizTalk Server can benefit your enterprise click here, or for an informal chat you can give us a call on 01342 410 223 or contact us.