Business Process Pipeline

Pipeline components are not designed to retry after a failed attempt. When the pipeline stops processing, the pipeline process fails and the order is not processed.

To implement high availability, you can implement code in the ASP page to retry a failed pipeline process, and after n failures, to write the transaction to an alternate database, file, or Message Queuing queue.

You can install pipeline components on multiple Web servers and make them highly available using a single-IP solution. With Network Load Balancing, you can create a single virtual server from all the servers on which pipeline components are installed. If there is a problem, the server that is not working is automatically removed from the cluster and the load is distributed to the functioning servers in the cluster.

The following figure shows how you might distribute pipeline components.

A figure that shows distributed pipeline components

Custom pipeline components can be hosted on a Component Load Balancing server, if they are CPU-intensive. (Component Load Balancing is available with Microsoft Application Center 2000.) There is a cost for sharing data between servers, but that cost might be acceptable if a large volume of processing will be done by the component. For example, a digital media site might encrypt music with a public key to prevent piracy. Encryption is CPU-intensive, so it could be worthwhile to move that process to a separate server. You might cluster the servers on which the encryption component is running and activate them by using one of the Web servers running other parts of the pipeline.

The following figure shows how you might separate CPU-intensive services from other services.

A figure that shows CPU-intensive services that are separated from other services

You use COM+ pipeline components to access the Order Processing pipeline (OPP). Components are pooled, but there is an initialization, reset, and recycle interface that is called when the OrderForm object is recycled into the pool. You can use that interface to release connections, free memory, and so on, when the OrderForm object is returned to the pool, and to initialize database connections when components are requested.

The Business Process Pipeline has the following single-point-of-failure dependencies:

  • The QueryCatalogInformation object accessing the Catalogs database
  • The Transactions database (to save and load baskets and orders)
  • Remote COM+ applications (if any)

Copyright © 2005 Microsoft Corporation.
All rights reserved.