Microsoft BizTalk Server 2009
Microsoft CorporationApril 2009
Abstract
Microsoft® BizTalk® Server 2009 helps organizations meet the challenges of creating automated business processes that connect diverse systems. From its initial roots in EAI and B2B integration, BizTalk Server continues to add new capabilities and engine im
create powerful service-oriented architectures and business process integration and management solutions, and that enable administrators and business users to more effectively monitor ongoing business processes. BizTalk Server 2009 represents the next release in Microsoft’s long
to enable the connected enterprise.
This technical overview provides you with a guided tour o walkthrough of the important features and business
primer on how developers, administrators, and business users use BizTalk Server to develop and manage business process solutions.
Microsoft BizTalk Server 2009 Technical Overview
Microsoft® BizTalk® Server 2009 helps organizations meet the challenges of creating automated business processes that connect diverse systems. From its initial roots in EAI and B2B integration, BizTalk Server continues to add new capabilities and engine improvements that allow developers to
oriented architectures and business process integration and management solutions, and that enable administrators and business users to more effectively monitor ongoing
Server 2009 represents the next release in Microsoft’s long to enable the connected enterprise.
provides you with a guided tour of BizTalk Server 2009. It provides a
walkthrough of the important features and business benefits of BizTalk Server and provides a detailed primer on how developers, administrators, and business users use BizTalk Server to develop and manage business process solutions.
Technical Overview
Microsoft® BizTalk® Server 2009 helps organizations meet the challenges of creating automated business processes that connect diverse systems. From its initial roots in EAI and B2B integration,
provements that allow developers to oriented architectures and business process integration and management solutions, and that enable administrators and business users to more effectively monitor ongoing
Server 2009 represents the next release in Microsoft’s long-term strategy
provides a
benefits of BizTalk Server and provides a detailed primer on how developers, administrators, and business users use BizTalk Server to develop and
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This technical overview is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. Unless otherwise noted, the companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted in examples herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred.
© 2009 Microsoft Corporation. All rights reserved.
Microsoft, BizTalk, Hyper-V, InfoPath, PerformancePoint, SharePoint, Visual Studio, Windows, Windows PowerShell, and Windows Server are trademarks of the Microsoft group of companies.
SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.
Contents
Microsoft BizTalk Server 2009 Technical Overview ... 1
Abstract ... 1
P
RODUCTO
VERVIEW...5
BizTalk Server 2009 Key Capabilities ... 5
New Features in BizTalk Server 2009 ... 6
Updated Platform Support ... 6
Hyper-V Virtualization Support ... 6
Improved Failover Clustering ... 6
Enhanced Business Activity Monitoring (BAM) ... 6
Enhanced Support for AS2 ... 7
Enhanced Support for EDI ... 7
Improvements to Host Integration Server 2009 and the BizTalk Adapters for Host Systems ... 7
BizTalk RFID ... 7
Universal Description Discovery and Integration (UDDI) ... 7
Enterprise Service Bus 2.0 ... 7
BizTalk Adapter Pack ... 9
Changed features and tools ... 9
The Role of BizTalk Server in a Service-Oriented Architecture ... 10
BizTalk Server Business Scenario... 10
How BizTalk Server Works ... 11
The Publish/Subscribe Model ... 12
How Messaging and Orchestration Services Process Messages ... 13
Building a BizTalk Application ... 14
BizTalk Projects and Assemblies ... 14
C
REATING AM
ESSAGINGA
PPLICATION... 16
Building Schemas ... 16
Mapping Data ... 17
Connecting Through Adapters ... 21
Processing Messages Through a Pipeline ... 24
B
UILDING AB
IZT
ALKO
RCHESTRATION... 28
Orchestration Designer ... 28
Calling External Assemblies ... 31
Service Integration Scenarios ... 31
BizTalk Service Integration Capabilities ... 32
BizTalk Orchestration in SOA Designs ... 32
T
HEB
USINESSR
ULESF
RAMEWORK... 33
The Business Rule Composer ... 33
Business Rule Policy ... 35
The Rule Engine Deployment Wizard ... 35
B
USINESS-
TO-B
USINESSI
NTEGRATION... 37
EDI Parties ... 38
BizTalk Server Accelerators ... 39
B
UILDINGRFID
S
OLUTIONS... 41
BizTalk RFID Infrastructure ... 41
M
ONITORINGB
USINESSA
CTIVITY... 43
Business Activity Monitoring (BAM)... 43
BAM Activities ... 44
BAM Views ... 44
Aggregating and Filtering Data ... 45
Gaining Better Visibility in SOA Solutions ... 45
M
ANAGEMENT ANDO
PERATIONS... 46
Deploying a BizTalk Application ... 46
Tracking and Debugging BizTalk Processes Using the Group Hub Page ... 47
Monitoring BizTalk Applications Using MOM ... 49
Implementing Load Balancing ... 50
Securing Applications ... 50
Product Overview
BizTalk Server is Microsoft's premier server for building business process and integration solutions. BizTalk Server 2009, the sixth major version of the product, builds on the innovation and success introduced by the previous four versions and now includes full support and integration with Windows Server® 2008, SQL Server® 2008, and Visual Studio® 2008.
BizTalk Server 2009 offers significant improvements and capabilities over BizTalk Server 2006 R2 for connecting applications and businesses, automating and managing business processes, and building solutions based on a service-oriented architecture. What used to take customers months and years to design and implement can now be accomplished in just days and weeks.
BizTalk Server 2009 Key Capabilities
BizTalk Server provides a host of capabilities that enable developers to create powerful business process integration and management solutions and allow administrators and business users to effectively monitor ongoing business processes. BizTalk Server 2009 includes the following core capabilities:
• Messaging. BizTalk Server enables the efficient processing of incoming and outgoing
messages. This capability provides connectivity to disparate systems and trading partners through a variety of file formats and adapters and is enforced by message-level security.
• Orchestration. BizTalk orchestration provides transactional and non-transactional message
processing through centrally managed business processes. Orchestrations enable the automation and standardization of complex processes that are composed in an intuitive visual drawing and executed by the BizTalk Orchestration engine at run time.
• Business Rules Framework. The Business Rules Framework enables the creation of business
rule policies that define the logic for a given business process. The policy logic abstracts the business process logic out of an orchestration. This enables updates to be made to the business process logic without requiring recoding of the orchestration.
• Business-to-Business integration. Electronic transactions with trading partners can play a vital
role in enterprise business processes. BizTalk Server enables business-to-business
integration through industry standards and well-established protocols such as Electronic Data Exchange (EDI) data (including X12, EDIFACT, and HIPAA support) and Availability
Statement 2 (AS2) data for EDI over the Internet. BizTalk Server Accelerators speed up the development of B2B solutions within specific industry segments that adhere to specific protocols such as SWIFT, HL7, and RosettaNet.
• BizTalk RFID. BizTalk RFID provides a device management and event processing platform
that enables the development, deployment, and management of Radio Frequency ID (RFID) and sensor solutions.
• Business Activity Monitoring (BAM). BAM provides real-time monitoring and archived
statistical data of BizTalk processes. BAM enables business users to gain true end-to-end visibility of these processes.
• Management and operations. BizTalk Server has robust management of the BizTalk Server
runtime environment, including application management, application deployment, host management, and process execution tracking and reporting.
• Tools. BizTalk Server provides a number of tools that help configure, design, deploy, manage,
and view BizTalk processes and capabilities. These tools come in a variety of forms; some are integrated into Microsoft Visual Studio 2008, some are add-ins to the Microsoft Management Console (MMC), while others are Web-based.
This technical overview will provide you with a technical overview of these BizTalk Server 2009 capabilities. For more detailed information, refer to the BizTalk Server 2009 Capabilities Guide and Poster.
New Features in BizTalk Server 2009
BizTalk Server 2009 builds on the core architecture of BizTalk Server 2006 and makes strides in many aspects of application-to-application, business-to-business, and business-process automation. The following is a list of both new and enhanced features in this release.
Updated Platform Support
BizTalk Server 2009 supports the latest Microsoft platform technologies, including Windows Server 2008, SQL Server 2008, Visual Studio 2008 SP1, and the .NET Framework 3.5 SP1. These platform updates enable greater scalability and reliability, and many advances in the latest developer tools.
• Integration with Windows Server 2008 offers modular, minimal installation, improved network
performance and control, improved high availability features, enhanced administration and management with Server Manager and Windows PowerShell™ command-line interface, and enhanced virtualization with Hyper-V™.
• Integration with SQL Server 2008 (while maintaining support for SQL Server 2005) offers
better manageability and scalability, an optimized virtual SQL Server implementation, improved performance (especially in a 64-bit environment), BAM enhancements, support for Unified Dimensional Model (UDM) cubes in SQL Server Analysis Services, and scalable real-time aggregation.
• Integration with Visual Studio 2008 SP1 introduces a number of improvements to the
underlying Visual Studio-based BizTalk project system, which enhances debugging support for artifacts such as BizTalk maps (XSLT), pipeline components, and XLANG orchestrations, BizTalk Server 2009 enables support for unit testing with Microsoft Visual Studio Team System 2008 Test Edition. With new support for the latest version of .NET Framework and improved integration with Visual Studio, developers can now take advantage of BizTalk artifact property pages being integrated into Project Designer tabs, as well as migration with the Visual Studio Project Update Wizard, support for the Microsoft Build Engine (MSBUILD), and support for both release and debug builds.
One new component of Microsoft Visual Studio Team System 2008 Team Foundation Server is the Application Life-Cycle Management (ALM) feature. This enables development teams to leverage the integrated source control, bug tracking, support for team development, integration with Microsoft Office Project Server 2007, and support for automating builds by using MSBuild.
Hyper-V Virtualization Support
BizTalk Server 2009 takes advantage of the latest virtualization improvements included as part of Windows Server 2008 Hyper-V, which can lead to reduced costs through lower hardware, energy, and management overhead, plus the creation of a more dynamic IT infrastructure.
Improved Failover Clustering
By taking advantage of Windows Server 2008 clustering, BizTalk Server can now be deployed in multi-site cluster scenarios, where cluster nodes can reside on separate IP subnets and avoid complicated VLANs.
Enhanced Business Activity Monitoring (BAM)
By expanding the system-provided BAM functionality with SQL Server 2008 Analysis Services, BizTalk Server 2009 provides support for UDM cubes and scalable real-time aggregations, which enhances
Enhanced Support for AS2
Transmitting EDI transactions over the Internet is an efficient alternative to sending and receiving EDI using value-added networks (VANs). Using the Internet for data exchange reduces costs, increases efficiency, and has advantages in terms of redundancy and scalability.
To support this trend, BizTalk Server 2006 R2 introduced support for EDIINT AS2 (Applicability Statement 2). AS2 is a specification that enables transport of business data over the Internet in a safe and reliable manner. BizTalk Server uses AS2-defined methods to send, receive, encrypt, decrypt, decompress, sign, and verify signatures between partners using HTTP over the Internet. BizTalk Server helps ensure the security of messages through the use of encryption keys, digital signatures, certificates, and non-repudiation.
BizTalk Server 2009 expands these capabilities with support for multiple message attachments, configurable auto message resend, end-to-end file name preservation, improved reporting to address new features, and Drummond recertification.
Enhanced Support for EDI
Electronic Data Interchange (EDI) is one of the most prevalent means by which businesses exchange data electronically. It represents approximately 75 percent of all business-to-business electronic transactions and grows at about 5 to 7 percent per year. EDI usage entails message syntax and standards (including ANSI X12 and UN/EDIFACT), messaging protocols, and transports. BizTalk Server 2006 R2 introduced the ability to process EDI messages using EDI pipeline components, as well as AS2 support.
BizTalk Server 2009 improves EDI support with control of envelope headers, automatic rollover of control numbers, configurable content delimiter character, support for multiple batches per party, HIPAA schemas now supporting equivalent segments, and updated reporting to cover all new features.
Improvements to Host Integration Server 2009 and the BizTalk Adapters for Host Systems In addition to the new platform support, Host Integration Server now offers two new features: the WCF Channel for WebSphere MQ (Transport Channel, Data Format Channel Encoder), and the WCF Service for Host Applications (based on Transaction Integrator). Host Integration Server also offers support for new versions of IBM products such as CICS, IMS, CICS HTTP transport, DB2, DB2/400, and DB2 Universal Database. Transaction Integrator now has a fully managed runtime, extended data conversions, and performance improvements. The Host Files & DB2 .NET Data Provider offer
extended data conversions, performance improvements, the entity data model provider, Workflow Foundation for data activity scenario, an offline file load scenario, the BizTalk Adapter for WebSphere MQ, and a pipeline data conversion component which works with Visual Studio Designer.
BizTalk RFID
BizTalk RFID has been extended to mobile devices (such as handheld devices and forklift readers), and integrates with BizTalk Server. It also offers support for key industry standards, enabling the use of new readers with Low Level Reader Protocol (LLRP), machine readable tag data standards (TDT for EPC), and Web Services for device management and Discovery, Configuration, Initialization (DCI). Universal Description Discovery and Integration (UDDI)
Version 3.0 of UDDI supports registry affiliation, subscription API, digital signatures, and other extended discovery features.
Microsoft Enterprise Service Bus Guidance 2.0
Microsoft Enterprise Service Bus (ESB) Guidance 2.0 is an offering from the Microsoft Patterns & Practices (P&P) team (http://go.microsoft.com/fwlink/?LinkId=148337) that includes architectural guidance, patterns, practices, and a set of BizTalk Server 2009 and .NET components to simplify the
extends the capabilities of Microsoft BizTalk Server 2009 to support a loosely coupled messaging architecture. Most developers are familiar with code-oriented, procedural, or object-oriented
development paradigms; however, when starting to develop BizTalk Server solutions, developers tend to overlook the message-oriented capabilities of BizTalk Server.
BizTalk Server includes a powerful publish/subscribe mechanism that works by creating and filling subscriptions. When a new message arrives in the MessageBox database, a message agent identifies subscribers and sends the message to any endpoints that have subscriptions. Subscriptions can be created in several ways, including binding an orchestration to a receive port, having a correlated receive waiting for a message, or creating a send port with a filter condition that matches a property of the message (such as the type, the receive point, or the value of a routable property).
By providing this efficient and scalable approach, BizTalk Server enables developers to create a series of discrete sub-processes, define the types of messages that trigger their invocation, and not worry about the sequence. A process initiated by the arrival of a message performs its processing on the message, and may then deliver this or another message to the MessageBox database, which in turn may activate one or more sub-processes.
Microsoft provides key building blocks that are required for building comprehensive service-oriented Infrastructures, including Windows Server 2008, .NET Framework, and BizTalk Server 2009. Microsoft ESB Guidance 2.0 is founded on BizTalk Server 2009 because it provides the basis for the most common ESB services, including the following:
• Message routing • Message validation • Message transformation
• Extensible adapter framework for connectivity • Service orchestration
• Business rules engine • Business activity monitoring
• Web service and WS-* integration (WCF adapter)
Microsoft ESB Guidance 2.0 extends the functionality of BizTalk Server 2009 to provide a range of new capabilities focused on building robust, connected, service-oriented applications. Microsoft ESB Guidance 2.0 treats BizTalk Server components as individual units of work that can be connected as desired to form loosely coupled solutions. The following are some of the core capabilities provided by ESB Guidance 2.0 to enhance BizTalk Server 2009:
• Policy-driven mediation:
o Provides itinerary-based service invocation that supports lightweight service
composition at the time of message publication. The Itinerary mechanism dynamically resolves service endpoints and mediation requirements, and routes messages using a registry or the rules engine. This approach enables developers to implement loosely coupled patterns such as VETO/VETRO.
o Adds support for server-side itineraries, processing instructions that are dynamically
added to messages upon receipt. Hosting itineraries in a central location enables the ESB to process messages from clients that are completely unaware of itineraries or the internal processes that will process submitted messages.
o Uses an enhanced version of Microsoft ESB Resolver and Adapter Provider
Framework, which enables dynamic resolution of endpoints and transformation requirements, effectively decoupling the consumer from the services.
• Connecting systems:
o Provides pipeline components that perform normalization of XML message
namespaces.
o Provides WebSphere MQ connectivity.
o Facilitates messaging patterns that enable dynamic service aggregation, message
routing, message validation, and message transformation.
o Incorporates service registry and repository integration using UDDI 3.0 and
WS-MetadataExchange.
o Supports the LOB adapters that are addressed through WCF-Custom.
• Management and monitoring:
o Implements exception mediation and fault management.
o Includes a sample Web portal that facilitates message repair and resubmission. o Provides BizTalk Server endpoint and registry integration, management, and
publication.
o Provides a centralized repository of versioned server-side itineraries. o Supports reporting and analytics for exceptions, alerts, and registrations.
• SOA governance:
o Integrates with third-party SOA governance solutions, including management agents
for BizTalk Server 2009 from AmberPoint and SOA Software. BizTalk Adapter Pack
The Windows Communication Foundation Line of Business (WCF LOB) SDK & BizTalk Adapter Pack 2.0 is now upgraded to the latest platform. In addition to enhancements to the existing adapters, the pack includes two new adapters: the BizTalk Adapter for SQL Server and BizTalk Adapter for Oracle eBusiness Applications.
Changed features and tools
The following features and tools were available in BizTalk Server 2006, and are replaced by new features in BizTalk Server 2009.
Base EDI Adapter BizTalk Server 2009 includes support for processing EDI and AS2 messages using XSD-based EDI schemas and pipeline components. This feature replaces the Base EDI Adapter and schemas included in previous releases of BizTalk Server.
MSMQt Adapter The MSMQt adapter is not included in BizTalk Server 2009. To communicate with Microsoft Message Queuing (MSMQ,) use the MSMQ adapter.
Human Workflow Services (HWS) HWS is not included in BizTalk Server 2009. As an alternative, you should now use Windows Workflow Foundation, which is installed as part of the .NET Framework. Business Activity Services (BAS) Business Activity Services (BAS) is not included in BizTalk Server 2009. You can use the EDI and AS/2 features for this functionality.
BizTalk Server Migration Project The BizTalk Server Migration Project enabled migration BizTalk Server 2002 artifacts to a BizTalk Server 2006 project. The BizTalk Server Migration Project is not included in BizTalk Server 2009. BizTalk Server 2009 uses the Visual Studio .NET Migration Wizard to migrate BizTalk Server projects and artifacts from earlier versions of BizTalk Server. (Note that
Health and Activity Tracking (HAT) Tool The tracked services and tracked messages reports that used to reside in the HAT module are now part of the New Query tab of the HUB group page.
The Role of BizTalk Server in a Service-Oriented Architecture
Service-Oriented Architecture (SOA) is an IT architectural style that supports the transformation of IT assets into a set of linked services or repeatable business tasks that can be accessed as needed over a network. The value of implementing BizTalk Server as a platform for SOA is apparent when you consider how an organization can improve operational processes, achieve greater alignment of IT with the business goals, and maximize the reuse of IT assets through composite applications.
The BizTalk messaging capability contributes to service orientation by enabling applications to be exposed as services, or rather by creating service façades that enable the application to interact with other services. BizTalk orchestration provides the ability to design workflows to automate business processes and to compose services from multiple service providers. By providing real-time visibility into BizTalk and non-BizTalk processes, Business Activity Monitoring (BAM) is a major asset in the realm of management and governance.
As an example, BizTalk Server can play a major role in SOA by allowing enterprises to implement very agile service oriented infrastructure using the Enterprise Service Bus (ESB) Guidance 2.0
For more information on creating SOA solutions using Microsoft products and technologies, refer to http://go.microsoft.com/fwlink/?LinkId=140027.
BizTalk Server Business Scenario
BizTalk Server 2009 supports a broad spectrum of business scenarios and industries from financial services to manufacturing and healthcare. To understand how BizTalk Server solves common business problems, we’ll use a sample scenario throughout this technical overview to demonstrate how a fictitious company, Northwind Traders, has implemented BizTalk Server as an integration and business process management solution to support its supply chain business requirements.
Northwind Traders is large retail chain store with locations throughout the United States. Northwind Traders has several LOB applications that are used to manage internal business processes at different levels within the company. A CRM application is used to manage customer account information for the sales department and a centralized ERP application is used to manage inventory for the entire business.
Figure1: The Northwind Traders business scenario
Each store has a custom inventory application that is used to maintain inventory for that particular store. Each of these systems presents its own unique integration challenges. Additionally, in the past Northwind Traders has had difficulty with accurate inventory tracking within and to a given store and has decided to implement an RFID strategy to better track inventory.
Northwind Traders has hundreds of suppliers located throughout the world that provide Northwind Traders with its in-store products. Integration with these trading partners has been one of the greatest challenges for Northwind Traders since each partner often uses it own proprietary systems and unique document formats to exchange purchase order information and shipping acknowledgments. Also, changing or adding new suppliers has always been a time-consuming process that requires several layers of approvals and sometimes even changes to the business process itself.
Finally, as with many companies, Northwind Traders has had challenges in enabling its business managers to make timely and critical business decisions due to lack of information about the state of various business processes. Latency in inventory and sales reporting information has often resulted in loss of sales opportunities and prevented managers from executing on critical buying opportunities. As you review this technical overview, you will learn how Northwind Traders has successfully implemented BizTalk Server 2009 to solve many of its integration and business process automation requirements.
How BizTalk Server Works
At the core of BizTalk Server 2009 are the Messaging Engine and the Orchestration Engine, which provide the underlying architecture for integrating and exchanging messages between various services, both within and outside your organization.
The BizTalk Messaging Engine:
• Receives inbound messages.
• Evaluates message content to identify how the message is to be routed and processed. • Delivers messages to their respective destinations.
• Tracks the status and state of documents.
The BizTalk Orchestration Engine, in contrast, coordinates and schedules message processing and performs complex logic on the message as it is passed through a defined workflow.
The Publish/Subscribe Model
BizTalk Server implements the publish/subscribe model to route messages. The publish/subscribe model enables developers to design processes and services that subscribe to messages rather than create point-to-point connections between two services. This enables new service providers and consumers to be added or existing services to be modified without having to redesign the application. In this model (as shown in Figure 1) the message providers, also called the publishers, submit
messages to a central store (the MessageBox database). The subscribers, which can be send ports or orchestrations, subscribe to specific messages. After the MessageBox receives a message of interest, the message is delivered to all subscribers.
Subscriptions in BizTalk Server are based on matching expressions to name and value pairs
associated with each message that is processed by BizTalk Server. These name and value pairs are known as message context properties. Each BizTalk message has a message context associated with it, which travels with the message as it is processed by BizTalk Server. The message context is represented in memory as an object, and persisted with the message as a set of name and value pairs when stored in the MessageBox database. When a message is received by the MessageBox, certain message context properties are evaluated against known subscriptions, which are expressions made up of potential message context properties and values and operators (such as “And”, “Or”, and “Exists”).
For example, in the Northwind Traders solution, restock orders are submitted by each retail store. These orders are received by BizTalk Server where they are routed to the orchestration that is responsible for coordinating the restock process across multiple systems. As this orchestration processes the restock order, it will eventually create a purchase order and send it to a subscribing send port to reach a specific supplier.
How Messaging and Orchestration Services Process Messages
Figure 2. The BizTalk Server publish/subscribe model
Figure 2 shows how BizTalk Server implements the publish/subscribe model.
1. Messages enter the BizTalk Server system through a receive port. Each receive port contains one or more receive locations. Each receive location is configured with an adapter, which defines the communication method used to connect to and receive data from an external system or application, such as a file folder, an HTTP site, an SQL database, or a third-party application.
2. The received message is processed by the receive pipeline. A pipeline can contain various components that help decrypt a secure message, split batched messages, convert a message from its native format into an XML document, or validate the digital signature of a message. 3. Receive ports can optionally be configured with one or more maps, which transform messages
from one data structure to another. Maps are used to transform messages from various disparate formats to a single internal or canonical format used by the BizTalk application. 4. The message is then delivered to a Microsoft SQL Server database, called the MessageBox.
When a message arrives in the MessageBox, the metadata associated with the message is evaluated against the existing subscriptions to determine which send ports or orchestrations the message should be delivered to.
5. An orchestration defines the logic that controls a business process workflow. A business process can use one or more orchestrations. Each of these orchestrations consists of specific types of shapes that are used to express conditions, loops, and other behaviors.
6. The message, which may or may not be processed by an orchestration, can be delivered to a send port. The send port can transform the message data using a map and then process the message through a send pipeline.
7. The send pipeline may convert the message from the internal XML format used by BizTalk Server to the format required by its destination as well as encrypt the message for secure communication.
8. The send port then uses an adapter to connect and transmit the data to the external system or application.
Building a BizTalk Application
BizTalk Server 2009 provides a rich set of development tools for designing, organizing, and building the various elements of a BizTalk application. The BizTalk project system is hosted in Visual Studio 2008 and provides developers with a fully integrated design experience to create parts of a BizTalk application or an entire business solution. As shown in Figure 3, the core element of a BizTalk solution is a BizTalk project—a collection of items (artifacts) including schemas, orchestrations, pipelines, maps, Web message types, classes, and references. These artifacts are compiled into an assembly before deployment for testing or to a production environment.
Figure 3. BizTalk projects hosted within Visual Studio 2008 BizTalk Projects and Assemblies
A simple BizTalk Server business application may consist of a single BizTalk project compiled into a single assembly. However, a more complex business solution that integrates many disparate systems and processes may require many different assemblies that are deployed individually to several different BizTalk Server computers. Individual BizTalk projects can be developed separately by different developers who are responsible for specific parts of an application. These projects can be deployed individually or combined into a single application solution.
A BizTalk project consists of one or more artifacts, which are saved as specific file types. Each type of artifact plays a specific role in the BizTalk solution. The BizTalk project system provides a
corresponding graphical design tool for creating and modifying each type of artifact.
• Schemas. A schema provides a definition for the structure of the data within an XML
message. While BizTalk Server natively processes XML formatted messages, special
extensions of the XSD standards enable BizTalk Server to process EDI and flat-file messages. BizTalk Editor is the design tool that simplifies the process of defining schemas.
• Maps. A map is used to transform the data from one structure to another. BizTalk Mapper is
the design tool that presents a source schema and destination schema side-by-side and enables you to define transformations between the data elements of different messages.
• Pipelines. A pipeline performs a variety of operations to prepare incoming or outgoing
messages for further processing. Pipeline Designer enables you to implement operations such as encryption and decryption, compression, reformatting, and validation.
• Orchestrations. An orchestration represents the workflow for a business process.
Orchestration Designer enables you to design the logic and flow for an orchestration by dragging and configuring different graphical shapes to the designer surface.
Creating a Messaging Application
The BizTalk Server 2009 messaging subsystem enables communication with a wide range of systems and applications. It supports the conversion to and from different data formats to handle proprietary protocols and standards-based services.
BizTalk Server relies on the use of structured documents for all internal messaging and orchestration operations. Regardless of the format of the incoming message (for example, XML, flat-file, or EDI) the BizTalk messaging and orchestration engines can only process XML formatted messages internally. To create a basic message processing application, a developer must:
1. Create the schema definitions for all types of messages to be processed by BizTalk Server. 2. Create one or more maps to transform the data from one schema structure to another. 3. Configure the receive ports and receive locations to enable the receiving of messages. 4. Configure the send ports for the sending of data to external systems.
5. Create a custom pipeline for any custom processing that the message data requires. Building Schemas
The schemas processed by BizTalk Server can come from a variety of different sources. A schema definition might be predefined by some external application or it might be sent by a trading partner. To integrate with an existing EDI application, BizTalk Server provides over 8,000 different schemas to support existing EDIFACT and X12 message standards. However, in many cases you will have to create the schemas yourself for XML or flat-file document structures by using BizTalk Editor.
Supported Schema Types
BizTalk Server 2009 natively supports the following schema types:
• XML. The BizTalk messaging and orchestration engines require that all messages be in XML
format. An XML schema defines the hierarchical structure of an XML message. BizTalk Server identifies and validates all messages against an associated schema.
• Flat-file. A flat-file schema defines the structure of messages that are received in a flat-file
format. A flat file can be either delimited or positional. The XML Schema Definition language (XSD) does not natively support the flat-file structure; therefore, BizTalk Server uses the annotation capabilities of XSD to store this extra information within the XSD schema itself. BizTalk Server defines a rich set of specific annotation tags that can be used to store all of the required additional information.
• EDI. BizTalk Server enables the creation and use of schemas to represent standard EDI
document formats such in EDIFACT and X12. An EDI message is a variation of a text message and does not use typical delimiters such as carriage returns and linefeeds. As with flat-file schemas, BizTalk Server uses the annotation capabilities of XSD to store the extra information related to the format of the EDI messages.
It's not uncommon for a single solution to use all three schema types. In the case of Northwind Traders, all communications between Northwind Traders and its suppliers use flat-file or standard EDI message formats as defined by X12 or EDIFACT. Communications among BizTalk Server, internal systems, and Web services use XML.
BizTalk Editor
You use BizTalk Editor to create, edit, and manage the schemas for a BizTalk application without needing to learn all the intricacies of the XSD syntax. This tool runs within the Microsoft Visual Studio 2008 environment and starts automatically when you either add a new schema to a BizTalk project or open an existing schema in the project. As shown in Figure 4, BizTalk Editor displays a hierarchical order of records, field elements, and field attributes to represent the structure of message instances.
Figure 4. BizTalk Editor
Creating and Validating Schemas
You can use the following methods to create and validate schemas by using BizTalk Editor:
• Create a schema from scratch. You may use this method to create XML, flat-file, or EDI
schemas for those messages which do not have any instances, or for messages meant only for internal use. You can also use this method when other tools do not provide the necessary functionality.
• Create a schema from scratch in conjunction with other schemas. In real-world scenarios, you
will mostly create complex schemas by modifying the existing schemas by using the XSD processes of importing, including, and redefining schemas created previously.
• Modify existing schemas. Regardless of the original source of a schema, you can use the
BizTalk Schema Editor to modify and ensure the validity of an XSD schema.
• Use the Flat File Schema Wizard. The Flat File Schema Wizard provides a simple-to-use
wizard interface to assist in the development of flat-file schemas.
• Generate a schema from an instance message. You can generate an XML schema that
corresponds to a particular instance message that consists of well-formed XML. Mapping Data
You use a BizTalk map to convert an input message that conforms to one schema into an output message that conforms to a different schema. These conversions can be either simple or complex, involving calculations and consolidation of information.
A map defines the relationship between an input and output schema by using links and functoids. A link defines a direct data copy of a record or field. A link specifies the basic function of copying data from an element or attribute in an input instance message to an element or attribute in an output instance message. You create links between records and fields in the source and destination schemas at design time. As a result, during run time, links direct the creation of an output instance message conforming to the destination schema from an input instance message conforming to the source schema. Links may either directly connect to items in the other schema or form connections through functoids. Functoids are described in a later section.
Transforming and Translating Messages
Maps enable you to transform and translate messages.
Transformation is the process of converting an XML document that conforms to one schema into an XML document that conforms to another schema. In other words, transformation is the process of taking information from one message and inserting it into another message. A transformation can simply change the formatting applied to the data, but more often, data transformation results in some structural changes in the document.
In addition to simply mapping data between two messages, the transformation process can include operations such as:
• Flattening records received in a message that has a hierarchical format to one with a flatter
design
• Averaging data from multiple input nodes and sending the output to a single field in the
destination message
• Applying mathematical functions on values in the source message and then writing the result
to the destination message
• Concatenating multiple elements from the source message into a single field in the destination
message
• Looking up a value from the source message in a database or an in-memory table and
extracting new values to be written to the destination message
Translating Messages
Translation is a special case of data transformation that involves changing the format of an instance message, typically from non-XML (flat-file or EDI) to XML format, or vice versa. For example, if your internal processes utilize XML data but your trading partner needs to receive messages in a flat-file format, you can perform the necessary translation before sending messages to the trading partner. Data translation can be especially helpful in solving enterprise application integration problems by rendering a given type of message into alternative formats required by existing systems.
Data transformation and translation is typically common when building integration solutions. BizTalk maps allow you to translate or transform messages. You can use maps in orchestrations or when processing a message in a send or receive port. This section discusses the role played by BizTalk maps in the BizTalk Server architecture.
Message transformation and translation are an important part of the Northwind Traders
implementation. The restock orders from each store are received in XML format. The data in the restock message must be transformed into an IDOC structure in order to update the SAP ERP system. Additionally, Northwind Traders uses a single XML format when processing orders internally. However, each supplier requires its own unique format, either flat-file or EDI, for purchase orders sent by Northwind Traders. When the purchase order is being processed by the send port, a map is used to
transform the message from the standard internal XML format to the supplier-specific EDI or flat-file format.
BizTalk Mapper
BizTalk Mapper is a tool that runs within the Microsoft Visual Studio 2008 environment and enables you to create and edit maps. You use BizTalk Mapper to define the relationship between an input and an output schema by using links and functoids as shown in Figure 5. BizTalk Mapper supports one-to-one and one-to-one-to-many links. For example, a link can connect a single record or field from the source schema to a single record or field in the destination schema. A link can also connect a single record or field from the source schema to multiple records or fields in the destination schema. BizTalk Mapper supports complex structural transformations from records and fields in the source schema to records and fields in the destination schema.
Figure 5. BizTalk Mapper
BizTalk Mapper provides a solution for a variety of mapping scenarios, ranging from simple parent-child tree-type operations to detailed operations that are complex and involve looping records and hierarchies. BizTalk Mapper stores maps in a file with a .btm extension. The file saves design information about the map, such as the locations of icons that represent functoids, the links between schema items and functoids, etc. When you build or compile the map, BizTalk Mapper converts the information about the map into the corresponding XSLT stylesheet.
As with most other BizTalk artifacts, before the map can be used by BizTalk Server, the project containing the map needs to be compiled into an assembly. As you develop a map, BizTalk Server generates compiler errors if it encounters any type mismatches between the source and destination schemas. The compiled map is generated into XSLT code that is executed when the map is applied by BizTalk Server during run time.
Functoids
While links copy values from one message to another, functoids perform more complex data manipulations on the contents of the message, such as:
• Adding the value of two fields in the source schema and copying the result to the destination
schema
• Converting a character to its American Standard Code for Information Interchange (ASCII)
format
• Returning the average of a field in a repeating record and copying the result to a field in the
destination schema
Functoids enable you to graphically create complex transformations more easily than you can with standard XSLT. They allow you to extend the functionality of the map to perform a variety of operations on data as the data is being transformed from the source message to the destination message.
There are approximately 70 functoids that provide simple mathematical functions, string manipulation, date and time insertion, and complex scientific calculations. The most common use of a functoids is to perform numeric calculations, such as summing the total number of products ordered. Functoids that can have zero or more inbound links can be chained to provide additional functionality. The basic functoid categories for predefined functoids include:
Functoid Description
Conversion Perform conversions between numeric bases, such as from hexadecimal to decimal.
Cumulative Perform accumulation operations for values that occur multiple times within an instance message.
Date and Time Introduce the current date, time, or both into the message or add days to a specified date, in the output data. This enables you to insert the processed date and time into a message or calculate an anticipated ship date. Logical Perform specific logical tests at run time or determine whether output
instance data is created at run time. These functoids return either True or False.
Mathematical Perform calculations by using specific values (arguments) in a specified order or structure.
Scientific Convert a numeric value to a scientific value. For example, the Cosine functoid takes a value in radians from a field or record and returns the value of the cosine.
String Manipulate data strings by using string functions. The String Concatenate functoid combines two or more inputs, such as nodes, constants, or other functoids, and builds a string. The String Find functoid finds one text string within another text string and returns the position of the first character of the found string.
Functoids perform calculations by using predefined formulas and specific values, called arguments. These calculations are executed based on the designated order of the records and fields. To use a functoid in a BizTalk application, you simply need to drag it from the Toolbox to the grid page and link it to the source and destination schema nodes as shown in Figure 6.
Figure 6. BizTalk Functoids
Note: For more information on different categories of functoids available in BizTalk Server, refer to the “Functoid Categories” article on http://msdn2.microsoft.com/en-us/library/aa546768.aspxMSDN at http://go.microsoft.com/fwlink/?LinkId=140029.
In addition to using the predefined functoids, you can also write your own functoids as a script file or a .NET assembly. The BizTalk Server SDK contains examples on how to use scripting functoids as well as create custom functoids.
Connecting Through Adapters
BizTalk Server 2009 requires specialized adapters to exchange messages with disparate applications and systems. An adapter is a.NET-based software component that enables BizTalk Server to interface with different types of systems through standards-based protocols and with specialized applications that use proprietary communication mechanisms.
Most adapters support both send and receive operations, whereas others support communication in a single direction only. You define the behavior of an adapter by configuring the properties of the send port or the receive location for a given instance of an adapter.
Receive adapter
A receive adapter works in conjunction with a receive port and a receive pipeline to retrieve messages from the source location, also known as the endpoint. Once received, the messages are saved to the MessageBox database.
Each receive adapter has specific context information about the message or the metadata that is associated with the protocol that it supports. This metadata can include information such as the original file name, the time the message was received, and the sender information. The metadata is saved along with the message data and can be accessed by the BizTalk Messaging Engine when evaluating subscriptions for routing purposes or by the BizTalk Orchestration Engine to make processing decisions within an orchestration instance.
Send adapter
A send port adapter and the send pipeline work together via the messaging engine to send the message from the MessageBox to a specific endpoint.
BizTalk Server 2009 natively provides adapter support for communicating with many different systems. The following table describes the native adapters available in BizTalk Server:
Adapter Description
File For transferring files in and out of BizTalk Server through the local file system. The File adapter consists of two adapters, a receive adapter and a send adapter.
FTP For exchanging data between an FTP server and BizTalk Server, and allows for the integration of vital data stored on a variety of platforms with line-of-business (LOB) applications. The FTP adapter consists of two adapters, a receive adapter and a send adapter.
HTTP For exchanging data between BizTalk Server and an application by means of the HTTP protocol. Applications can send messages to a server by sending HTTP POST or HTTP GET requests to a specified HTTP URL.
SOAP For receiving and sending data through Web service requests. The SOAP adapter supports bi-directional communication. This adapter is provided for backward compatibility. For new implementations the WCF-BasicHttp adapter should be used in place of the SOAP adapter.
MSMQ Supports Microsoft Message Queuing 2.0 and Message Queuing 3.0 from BizTalk Server 2009. Enables communications across heterogeneous networks and systems that may be temporarily offline.
MQ Series Serves as a bridge between BizTalk Server and IBM MQSeries servers. SQL For exchanging data between BizTalk Server and a SQL Server database. The
SQL adapter can be used to poll data from one or more data tables and then transmit the data as one or more XML messages to BizTalk Server. Also, you can use the SQL adapter to insert, update, and delete the data in SQL Server tables by using SQL updategrams or by invoking stored procedures.
Windows® SharePoint® Services
Exchanges messages between BizTalk Server and Windows SharePoint Services. Enables two-way transformations of messages to and from Microsoft Office InfoPath®.
POP3 To receive messages from a POP3-enabled mailbox to BizTalk Server.
SMTP To send messages to an e-mail address by using the SMTP protocol.
In the case of Northwind Traders, the ability to use native adapters included with BizTalk Server 2009 enabled them to easily integrate users, internal systems, and trading partners. For example, each store manager submits restock orders through a SharePoint site that is monitored by BizTalk Server using the Windows SharePoint Services adapter. During the processing of orders, updates are sent to users via e-mail using the SMTP adapter. Approval messages are received via e-mail using the POP3 adapter. The SAP adapter is used to communicate with the ERP system, and the SQL adapter is used to send to and receive data from the warehouse inventory system. Northwind Traders service-enabled each of the remote store inventory systems to enable communication using the WCF adapter. Northwind Traders communicates with its many suppliers by using adapters for FTP, HTTP, SOAP, and POP3/SMTP.
WCF Adapters
A major addition to BizTalk Server 2009 is several new adapters that enable communication to and from BizTalk Server and Web services-based applications via Windows Communication Foundation (WCF). The WCF adapters support HTTP/HTTPS, SOAP, MTOM, TCP, MSMQ, and Named Pipes transports. The WCF adapters include:
• WCF-BasicHttp • WCF-WsHttp • WCF-NetTcp • WCF-NetMsmq • WCF-NetNamedPipe • WCF-Custom • WCF-CustomIsolated
Each adapter includes a custom UI for configuring the most commonly used features of that particular binding as well as a custom binding adapter that supports WCF extensibility.
Some of the supported use cases for the new WCF adapters include:
• Exposing BizTalk orchestrations as a WCF web service
• Exposing BizTalk Content-Based Routing applications as WCF Web services • Consuming WCF services from BizTalk orchestrations
• Consuming WCF services from Content-Based Routing applications • Transactional message receive
• Transactional message send
• Using WS-* headers for routing and message processing • Using custom headers for routing and message processing • Using custom binding elements
• Using custom bindings
• Using BizTalk dynamic send ports
• Using BizTalk Server as a SOAP intermediary
Rather than building a custom adapter, Northwind Traders created WCF service façades for the store inventory systems, which BizTalk Server integrates with by using one of the WCF adapters.
In addition to these WCF adapters, BizTalk Server 2009 provides the BizTalk WCF Service Publishing Wizard and the BizTalk WCF Service Consuming Wizard.
• The BizTalk WCF Service Publishing Wizard helps you create and publish BizTalk
orchestrations as WCF services and publish schemas as WCF services.
• The BizTalk WCF Service Consuming Wizard helps you generate BizTalk artifacts, such as
orchestrations and types, to consume a WCF service based on the metadata document of the WCF service.
Microsoft also provides a broad array of technology and application adapters that enable BizTalk Server to connect to numerous line-of-business (LOB) applications such as SAP, PeopleSoft, JD Edwards, Oracle, Siebel, Microsoft Dynamics, and many others. Adapters are released or updated regularly. You can see a list of the LOB adapters currently available here:
http://go.microsoft.com/fwlink/?LinkID=88542.
Additional Sources for Adapters
In addition to the adapters included in BizTalk Server 2009, there are two additional sources of BizTalk adapters:
• BizTalk partner adapters. For unique and specialized integration scenarios, adapters have
been created by a number of third-party companies. These application-specific and
technology-specific adapters can be purchased from companies who specialize in developing adapters or from those companies that provide adapters to enable integration with their proprietary applications. Some examples of third-party adapters include SAP, Lotus Notes, and CICS.
• Microsoft WCF Line of Business Adapter SDK.If you are unable to locate an adapter to support your communication requirements, you can develop your own custom adapter. To simplify this process Microsoft provides a consistent framework for developers to build line–of-business adapters based on Windows Communication Foundation (WCF). The WCF LOB adapter SDK includes a rich set of development tools to automate and simplify adapter development in a consistent and repeatable manner. You can download the SDK from http://go.microsoft.com/fwlink/?LinkID=96184.
• Pre-existing Custom Adapters. Existing custom adapters that were built with the Adapter
Framework (prior to the BizTalk Server 2009 release) are still supported for backward compatibility.
Processing Messages Through a Pipeline
The purpose of a pipeline is to prepare a message for processing by the server after it has been received by an adapter or to prepare a message for sending through an adapter after it has been processed by BizTalk Server. A pipeline is a set of .NET components that process messages in a predefined sequence to complete a specific task, such as encrypting a document or validating a document against a schema. Pipelines enable pre- and post-processing of messages as they enter or leave the MessageBox database, which means that pipelines can process messages either as they are received or just before they are sent out through a send port.
Pipelines provide additional processing to messages such as encoding and decoding, encrypting and decrypting, and other processing that might be required when working with messages in BizTalk Server. You can also call a pipeline component from within an orchestration.
Pipeline Processing Stages
Pipelines are divided into categories of work called processing stages. The stages determine the sequence in which the processes are performed. Processing stages are implemented in a prescribed order that cannot be modified. Each stage of a pipeline contains one or more pipeline components that can be configured to work with the specific requirements of the messaging solution or orchestrated business process. Each stage defines logical work groups, determines which components can go in that stage, and specifies how the pipeline components in the stage are executed.
The processing stages for a pipeline depend upon its intended use. BizTalk Server provides two types of pipelines: receive and send. These pipelines require separate categories of work, such as message encoding versus decoding. The pipeline also governs the process sequence by the use of policy files that specify the order in which each stage needs to be executed. For instance, an incoming message must be decoded or decrypted before it can be disassembled.
Pipeline Processing Tasks
Within each stage, pipeline components perform specific tasks. For example, components within the stages of a receive pipeline may decode, disassemble, and then convert documents from other formats to XML. The components in the stages of a send pipeline do just the opposite; convert documents from XML to other formats, assemble, and finally encrypt the message.
BizTalk Server pipelines perform these transformations as well as other data-specific actions, such as data encryption or decryption and property promotion, on both incoming and outgoing messages. Pipelines commonly perform:
• Data normalization from various formats to XML • Data transformation from XML to various formats
• Property promotion and demotion to enable routing decisions based on specific data in a
message
• Document disassembly and assembly • Document decoding and encoding • Document decryption and encryption
• Document signing and digital signature verification Receive Pipelines
After a message is received by the receive adapter, the receive pipeline takes the initial message, performs some transformations, and disassembles the raw data into zero, one, or multiple messages. The BizTalk Server then processes these individual messages.
You can use receive pipelines to:
• Process messages as they are received by BizTalk Server. For example, you can use receive
pipelines to decode and/or decrypt messages as well as verify the sender of messages as they are being received. This is important because messages exchanged over the Internet are frequently encrypted, and it is necessary to confirm the identity of the sender of the message.
• Extract individual messages from a message interchange.
• Validate messages against a schema to ensure that they meet the requirements of your
processes.
Send Pipelines
A send pipeline processes messages as they are sent by BizTalk Server. The pipeline takes one message and produces one message to send. For example, you can use send pipelines to encrypt messages using a public key or digitally sign outbound messages using a private key as the proof of the sender. Before a message is sent, you can also use the validate component of a send pipeline to ensure that a message is valid against a known schema.
By default, the send pipeline consists of three empty stages: Pre-assemble, Assemble, and Encode. You can either create a new send pipeline or use one of the two default send pipelines included in BizTalk Server, the pass-through send pipeline and the XML send pipeline.
In the Northwind Traders scenario, different pipelines are used depending on the required data formats and specific agreements that Northwind Traders has with its various suppliers. If the supplier requires flat-file messages, then a flat-file pipeline is used to process the messages. If a supplier requires EDI messaging support then messages are processed through a native EDI pipeline. If the supplier supports EDI over the Internet then an EDI and AS/2 pipeline is used. If a supplier requires all
data exchanges to be encrypted than a pipeline is configured to encrypt outgoing messages and to decrypt all messages received.
Custom Pipeline Components
BizTalk Server 2009 pipelines allow you to customize the processing of documents received or sent by various adapters. Custom pipeline components extend the behavior of default pipelines by enabling you to process virtually any data format. The only requirement for creating custom receive pipeline components is that the data emerges from the pipeline as XML.
Custom pipelines are a powerful solution for legacy systems that require integration with other products but do not follow standards. For example, your data may contain carriage returns in odd places or contain records that span multiple lines of text.
Other examples of situations when you may consider using a custom pipeline include:
• Validations that cannot be expressed in an XML schema
• Decryption algorithms not supported by BizTalk Server out of the box • Checks on signature formats that BizTalk Server does not yet recognize • Conversions that might not be possible by using BizTalk Mapper • Requirement for a custom disassemble algorithm to split up messages Pipeline Designer
Pipeline Designer provides a graphical representation of a pipeline and enables you to create or modify send and receive pipelines, view the pipeline templates included with BizTalk Server, move pipeline components within a pipeline, and configure pipelines, stages, and pipeline components. You can navigate between pipelines by clicking the tabs at the top of the design surface as shown in Figure 7. The file extension for both receive and send pipelines is .btp.
Figure 7. Pipeline Designer
BizTalk schemas, maps, pipelines, adapters, send ports, receive locations, and receive ports provide the core components of a BizTalk messaging application. The BizTalk messaging capabilities provide developers easy-to-use tools for enabling or exposing services. You can use BizTalk messaging to create service facades for older legacy systems that cannot be service enabled by using the WCF SDK and the BizTalk WCF adapters.
Building a BizTalk Orchestration
A business process is a set of actions that, taken together, meet a specific business need. Business process automation enables the coordination of common business processes, for example approving a purchase order, with people and business applications—such as Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), or other LOB applications. These processes frequently start as manual tasks that require integration and input from various systems and individuals. The process may take hours, days, weeks, or months to complete.
BizTalk orchestration is a flexible and powerful capability that provides various services and tools to enable you to design, automate, and manage business processes. Similar to traditional procedural programming languages, an orchestration represents the underlying logic for processing messages. BizTalk orchestration provides a transactional programming model that includes support for exception handling and recovery from failed transactions. You can define two types of transactions when creating an orchestration:
• Atomic transaction. Enables a transaction to automatically role back to a previous state in
case the transaction does not successfully complete.
• Long running transaction. Can span days, weeks, and longer time durations, contain nested
transactions, and use custom exception handling to recover from error scenarios.
As a result, orchestrations provide you the flexibility to define the course of action in the event of a business process failure.
In the Northwind Traders scenario, restocking the store's inventory is a process that requires data to be sent to and received from many different systems both internal and external to the organization. The restocking process begins when a store manager submits a purchase order. The order is then processed to determine the appropriate supplier for each item in the order. Then an order is placed with each appropriate supplier. A supplier sends a notification when the product has shipped. Once all the products for the order have arrived at the Northwind Traders distribution center, the order is shipped from the distribution center to the store. When the store receives the shipment the process is complete.
Orchestration Designer
Orchestration Designer provides a design surface that enables you to create visual representations of your business processes. The design surface is a working canvas where you drag different shapes from the Toolbox as shown in Figure 8. The shapes correspond to the different actions that you need to perform when processing a message. In most cases, you must configure options for each shape that you use when you build the orchestration.
The design surface is divided into three areas: one Process Area and two Port Surfaces. The Process Area contains shapes that describe the actual process flow of the orchestration. For example, scope shapes helps you define transactions in a business process. A scope contains one or more blocks. It has a body and can optionally have any number of exception-handling blocks as well as a
compensation block appended to it.
The Process Area of the design surface is flanked on both sides by Port Surfaces, which contain only Port and Role Link shapes that interact with the send and receive shapes in the Process Area. You can use either side (right or left) of a Port Surface to create a send or receive port. This enables you to create well-documented orchestrations that have fewer crisscrossing connectors, making your
Figure 8. Orchestration Designer
Steps to Develop an Orchestration
The steps for developing an orchestration are as follows:
1. Define the schemas to describe the format of the messages to be processed by the orchestration.
2. Add and configure the shapes to represent the various actions that are required to define the business process.
3. Define new message instances to be processed within the orchestration. 4. Define the orchestration ports to receive and send messages.
5. Define and assign orchestration variables to declare and manage the data used in the orchestration.
6. Bind the send and receive shapes to ports, and specify the physical ports that they will use. 7. Build, deploy, and test the orchestration.