Microsoft BizTalk Server is a server side product that is aimed to provide integration between system as well as business process automation. The product is used in many organisations to integrate system ranging from internal systems to partner, vendor and customer system. It also allows you to implement a workflow (called an orchestration) to manage, automate the flow of data throughout the organisation.
The business challenges BizTalk addresses
Companies and their systems have evolved over the past decade and the solutions that these systems need to deliver are complex. These systems have also introduced a whole new set of challenges that professional need to look at, these are
System isolation
Using an integration tool such as BizTalk allows you to keep your systems independent and disparate. This allows you to focus on the functionality of a single system and not on trying to make a single ERP solution that does everything. Large systems which I term as a "Mother" systems, try to do everything, changes normally are complex and require long development runs to implement simple changes.
Business reengineering also becomes a nightmare as the impact of a business change may cripple the organisation due to the fact the development may take too long and cost a far too much. The reasons I call them mother systems, is they are normally the "mother of all stuff-ups".
System integration
Through BizTalk, you are able to isolate and then integrate systems by sharing data between systems. BizTalk will be responsible for getting the data from system A, then passing it through an orchestration allowing you to process, route, apply business rules and finally deliver it to one or many systems. This does require the organisation to adopt a Service Oriented Architecture (SOA) over a period of time.
Supply chain management
Integrating with many customers, suppliers and trading partners can be really tough, however one will typically find that the Business to business data transmitted between these companies is very similar, however normally in different formats and over different technologies. To implement this end-to-end supply chain for each business partner takes a lot of development time, thus incurring large expenses especially if there are many partners. Using BizTalk you will be able to reduce this time drastically and improve the time-to-market to the partner.
Data integrity across systems
Through routing of information between systems one is able to keep data synchronised where changes made will be reflected in all other systems. Not only does this improve the quality of the organisations data, it assists the Business Intelligence and the relevant information workers to get a reporting across the organisation.
Business Processes
Many companies are exceptionally week in managing critical business procedures and typically work in on different steps of a procedure on different system. This poses many business challenges to users especially with communication, timing and managing the process. Using BizTalk one can route information across the organisation, thus assisting business adopt formalised process management for critical processes.
This assists the business in formalising their business process and in doing so weaknesses will be identified and hopefully rectified. This will enter the company into a new age of process management.
Tracking
With business processes spanning many departments across the organisation, information is hard to track. Using BizTalk one is able to track the movement of data in a real time manner as well as report on the information and where it is within a process.
Change management
The only constant in the information technology industry is change, and this change is complicated by both changes in technology as well as within the business. As an IT team, we need to be able to quickly adopt to these changes by implementing new systems and processes. Using BizTalk one can achieve this through the use of adapters, maps, business rules and orchestrations.
History of BizTalk
BizTalk is definitely not a new product and it has gone through multiple releases, and as with all Microsoft products it has matured and stabilised over the past few years. Below is a short overview to the history of BizTalk.
2000 - BizTalk Server 2000
Microsoft released BizTalk late 2000. The BizTalk editor had a Mapper for translating data, a management desk for tracking data. Orchestrations were introduced to manage business processes. The product hade protocols for EDI, HTTP, HTTPS, MSMQ, SMTP, File transfer. An enterprise and standard version was released.
2002 - BizTalk Server 2002
Several new features were introduced such as the integration with Visual Studio .NET. SEED was introduced assist configuring with trading partners. BizTalk integration with Microsoft Operations Manager (MOM). There was a big drive was on web services. Changes were made to orchestrations with transaction support. The mappers were changed to support mixed XML. Developers could create functiods. There were also changes to many adapters with a few new adapters.
2004 - BizTalk Server 2004
Changes were made to how messaging and orchestrations integrated. The orchestration designer was significantly changed. Human Workflow Services, Business Activity Services added. A welcome content-based routing mechanism introduced. Security changed and SSO introduced. The rules engine and integration of rules into orchestrations. Pipeline designer for assembling and disassembling messages. Better support for industry standards. Used Microsoft .NET 1.0
2006 - BizTalk Server 2006
Used Microsoft .NET 2.0. The deployment model changed with a more modular approach. Easier to configure. Business Activity Monitoring was introduced. Health and Activity Tracking introduced with improvements to monitor. Development support in Visual Studio 2005 The processing of XML changed with some welcome changes should there be failures in messages. Recoverable interchange processing. Developers could create flat-file schemas with a wizard. Changes to the orchestration designer. BizTalk application introduced to allow solutions to be separated. Monitoring was radically changed. Many improvements were made to adapters with an introduction of new adapters. BAM improved and enhanced, the BAM portal, alerts, notifications, Web Portals and BAM interceptors added.
2007 - BizTalk Server 2006 R2
Runs on Microsoft .NET 2.0 with Microsoft .NET 3.0 using Windows Communication Foundation and Windows Workflow Foundation. RFID functionality added to BizTalk EDI Adapters changed. The BizTalk Adapter Pack introduced allowing adapters to be created and consumed with .NET Framework applications. BAM Interceptors for WF and WCF introduced. SSO 4.0 adopted.
Tools and Services
There are many tools, engines and services offered by BizTalk and I will breifly discuss each one as to give you a basic understanding to what the product entails.
Messaging engine
BizTalk processes data in the form of messages and communication between systems is based on the exchange of messages. Thus the messages engine is essential to BizTalk Services. The BizTalk messaging engine performs the following
- Uses adapters to physically send and receive data in the form of messages to and from different systems.
- Pass the messages through pipelines to encrypt\decrypt, compress\decompress the message
- Format the external data into XML for processing
- Map the data from one data structure to an internally understood data structure
- Extract key data from the messages that will be used for routing the messages.
- Track documents
- Deliver the message to the MessageBox.
- Route data to the necessary orchestrations for processing and finally to send adapters to be delivered to destination systems.
Adapters
BizTalk's prime objective is to route data between different systems which is controlled by a business process, this data is represented in the form of messages. However these systems that need to be integrated run on different technologies, written by different vendors with different development tools and are transported with various different protocols.
BizTalk has an extensive library of adapters that allow communication between systems over well defined and common industry protocols, these include SMTP, POP3, FTP, Web Services, MSMQ, MQ-Series. There are also product specific adapters such as Siebel, SAP, SQL Server which have been written to interact with specific software. There are also adapter such as the EDI and SWIFT adapters allowing connectivity to the SWIFT and EDI networks.
This list of adapters is by no means extensive and is only for you to get an idea of what they are, there are many, many different adapters; some come with BizTalk others you need to pay additional licence fees to use and then there is a whole bunch of commercially available adapters. Developers can then also write their own adapters.
Mapping
When dealing with data from different systems, there is always the need to translate data from one the source data structure to the destination data structure. The mapping engine does exactly this, however it includes an extensive functoid library that allows you to do data manipulation, aggregation and transformation. This too is customisable and developers are able to fully code against this mapping engine.
Internally BizTalk uses data in an XML format and translation is done through mapping; basically this is BizTalk's way of doing XSLT. External systems may not unnecessarily use XML and this is where the Pipelines and adapters come in.
Orchestration services
The BizTalk orchestration services are used to define, manage and execute business process. These processes included looking at the data and making decisions on the data. Typically the orchestration will engage in a process of getting data related from others systems, correlating the data, making decisions on the data and based on the outcomes of these decisions send messages to destination systems.
A single BizTalk orchestration may engage with obtaining or updating data from many different systems. Transactional integrity of this data can then be maintained by BizTalk across many different system. These orchestrations are also not time bound and may run for hours, weeks, months and even years.
Pipelines
Pipelines are typically used to encrypt\decrypt messages, compress\decompress message and mime encode the messages. Additional conversion may be done in the pipeline to get the data into a format the mappers understand for receive pipelines or to a format the adapters understand in a send pipeline.
MessageBox Database
The MessageBox is a SQL server database that BizTalk uses to store, route, pass to orchestrations and finally to send ports. The MessageBox is thus used to track the entire life of the message over time. The MessageBox also stores versions of the message as data may change through the orchestration. This then allows information workers and administrators to troubleshoot data.
Application development tools
BizTalk development is development is done within the Visual Studio environment and when BizTalk is installed onto the developer's box a few project templates are added to Visual Studio.
The first thing to do is to create a BizTalk project and then add the following items to your project
- Schema. The BizTalk Editor allows you define XSL schemas which are used to describe your data.
- Map. The BizTalk Mapper allows you to define transformations from one schema to another schema. The conversion allows you to add functoids to the map to perform data manipulation, conversion and aggregation.
- Pipeline. The Pipeline designer allows you to define the process for incoming and outgoing messages.
- Orchestrations. The Orchestration designer allows you to model your message flow according to a business process.
- SDK. An advanced developer can use the BizTalk SDK to define custom pipelines, orchestrations and adapters for BizTalk.
Business Rule Engine
The Business Rule Engine allows developers to define basic rules that can be implemented within orchestrations. These rules can be used to define calculations, decision structures thus affecting the branching of an orchestration based on the rule conditions. Rules are exposed to users through the Business Rule Composer, allowing non-developers to change and adjust the rules using non-technical terminology. These rules then are applied and orchestrations are immediately adjusted.
Business rules are ideal for giving users a way to control the execution and outcomes of orchestrations without having to engage a developer to change the orchestration.
Message activity and tracking
Health and Activity Tracking (HAT) allows administrators to monitor, track and resolve problems with business processes. HAT provides a valuable and indispensable tool for administrators to manage and troubleshoot the BizTalk Serves.
HAT includes the following benefits
- Tracking to see start, end times of messages as well as the current status
- Health allows you to view the current state of a process
- Monitoring live data allows you to see what is happening on the server, thus identifying issues
- Analysing live and archived data and tracking the complete message flow, changes to messages and the route the message whet through and orchestration.
- Orchestration debugging
- Business rule activity tracking
Business Activity Monitoring (BAM)
BAM provides information workers the ability to view running process and draw reports on process statistics and key information. This information is near real and can be configured with alerts and notifications, the information worker then can react to different situations based on the activity. In 2006 R2, developers can write their own components that can publish information to BAM. The BAM information can be extracted and manipulated within excel or through the BAM portal running on SharePoint.
BAM gives you the ability to
- Access views of data to understand what is happening
- Search for activities and query key data
- Summarise and aggregate data to draw statistics
- Drill down from summarised data to detailed data.
- Configure alerts and notifications to notify users when certain thresholds have been exceeded.
- Escalate issues to administrators from the BAM portal
Business Activity Services (BAS)
BizTalk provides a mechanism to manage relationships between trading partners. Through trading partner management (TPM) and using the Business Activity Service, our are able to define the partners, define the protocols and formats of messages used in the relationship. Developers use this information in orchestrations to define dynamic ports where information can be routed to and from the partners in different formats. Through an easy interface, information workers can easily add, edit and manage partners. BizTalk will apply these changes, thus preventing development and changes.
RFID
BizTalk RFID is an RFID device-level management set of components introduced BizTalk Server 2006 R2. Using RFID, you can eliminate many existing challenges faced with RFID devices as it allows a uniform way to discover, communicate and manage these devices. BizTalk RFID includes a SDK that developers need to build vertical applications that are reliant on RFID tag information -- everything from track-and-trace to asset tracking and inventory control. Although independent of BizTalk Server, the RFID tag information can then be sent to BizTalk and then passed through orchestrations.