Components of the Business Process Management Solution

This section describes the major BizTalk Server components of the Business Process Management Solution. For information about the source files, see File Inventory for the Business Process Management Solution.


There are two main orchestrations: OrderBroker and OrderManager. The OrderBroker orchestration accepts customer requests through a Web service or in batches through FTP, and sends replies back through a Microsoft Message Queuing (MSMQ) queue. Requests go from the OrderBroker to the OrderManager. The two orchestrations are direct bound through the MessageBox database.

The OrderManager runs the requests through two asynchronous processing stages using the CableOrder1 and CableOrder2 orchestrations. Taken together, the CableOrder1 and CableOrder2 orchestrations represent a single business process. However, the process has been broken into two orchestrations so that stages can be changed without disrupting order processing. For more information about the design of the stages, see "Dividing Business Processes" in Some Design Principles in the Business Process Management Solution.

The CableOrder1 orchestration uses the Validate orchestration to validate the order and to translate request codes into actions, calls the Analyze orchestration to analyze the order, and then calls the Activate, Cancel, or Change orchestration depending on the required action. The CableOrder2 orchestration handles completion of the order by calling the Complete orchestration. Notice that CableOrder1 and CableOrder2 use Call shapes to invoke the subordinate orchestrations.


The Cancel orchestration includes a compensation block that calls the Activate orchestration. This ensures that the order is properly restored as part of the compensation for the cancel request.

The CableOrder1 and CableOrder2 orchestrations use direct binding. For more information about the direct binding of these orchestrations, see Implementation Highlights of the Business Process Management Solution.

Many of the orchestrations are written so that they can be interrupted during processing using the Interrupt orchestration. For more information about the interrupt mechanism, see Process Manager Logic.

Back-end Applications

The Business Process Management solution uses simulations for all of the back-end applications. CableOrder1, CableOrder2, and the orchestrations they use all employ a special OrderHandler object. The OrderHandler uses .NET remoting to communicate with a simulation of an order management system. The CableProvisioningSystemClient and BTSScnBPMProvisioning (the CableProvisioningSystemServer project) assemblies simulate the front and back ends of the order managing system, respectively.

The solution uses a Windows forms application, BSTScnBPMFacilities (the FacilitiesSimulator project), to simulate the MSMQ server that handles the facilities requests.

In addition to these components, the orchestrations also make entries in a SQL Server database to maintain a history of orders and their processing.


The solution uses only standard default pipelines configured through the BizTalk Administration console or binding files. The pipelines do, however, make extensive use of per-instance configuration. The receive port for orders sent by FTP uses per-instance configuration to configure the envelope. For more information about per-instance configuration, see How to Deploy Pipelines.

Custom Adapter

The solution uses a custom adapter, the OpsAdapter, to process some errors detected in the OrderManager and ErrorHandler orchestrations. The solution uses the adapter on ports for which error reporting is specified. The adapter takes the errors and sends them on to the operations system. For more information about error reporting, see Using Failed Message Routing.

Client Application

The solution includes an ASP.NET Web page backed by a C# program, CSRMain.aspx, to simulate the customer service system.

Other Assemblies

The solution uses two additional assemblies, Schemas and Utilities. The Schemas assembly defines the messages the solution uses for communicating among the different orchestrations such as the Interrupt message. The solution also uses several .NET messages defined in the SchemaClasses assembly.

The Utilities assembly includes utility classes and methods to help handle messages, to define an exception type specific to the solution, to read configuration values from the SSO secret store, and to help with error handling. The assembly also includes the Recaller object.

Other assemblies include map and schema assemblies such as OrderBrokerMaps, OrderBrokerSchemas, Maps, MessagingSchemas, and SchemaClasses.

The ServiceLevelTracking assembly contains the common artifacts used with BAM to track orders and processing. Order processing actions used by the stages are in the CableOrderActions assembly.

See Also

Patterns in the Business Process Management Solution
Processing in the Business Process Management Solution
Implementation Highlights of the Business Process Management Solution
Monitoring the Business Process Management Solution with BAM
Versioning the Business Process Management Solution
Business Process Management Solution Reference
Developing a Business Process Management Solution
File Inventory for the Business Process Management Solution