Microsoft Solution for Supplier Enablement


Architecture Guide

Microsoft Corporation
Service Release 1, May 2002

Applies to:
 Microsoft Solution for Supplier Enablement
 Microsoft Commerce Server 2002
 Microsoft BizTalk Server 2002

Summary: This guide provides information about the architecture of the Microsoft Solution for Supplier Enablement (MSSE) and its underlying product, Microsoft BizTalk Accelerator for Suppliers (AFS) Service Release 1. It also describes the various technologies that contribute to the solution. (38 printed pages)

Contents

Introduction
Solution Design
Solution Technologies
Solution Architecture
Performance and Scalability
URL Resources
Appendix A: Performance Characterization Hardware Details
Appendix B: Catalog Publishing Performance Characterization Data
Appendix C: Remote Shopping Performance Characterization Data
Appendix D: Purchase Order Reception Performance Characterization Data

Introduction

The Microsoft® Solution for Supplier Enablement (MSSE) integrates a number of different Microsoft products into a solution that allows suppliers of various sizes to begin trading electronically with their trading partners. These products include Microsoft BizTalk Server®2002, Microsoft Commerce Server®2002, Microsoft SQL Server™ 2000, and Microsoft BizTalk Accelerator for Suppliers (AFS) Service Release 1. AFS provides the integration of the other products required by this solution. Thus, a description of the architecture of the MSSE is the same as a description of the architecture of AFS.

This document consists of three sections. The first describes the design of the MSSE from the perspective of the three-phase design approach used by the Microsoft Solutions Framework (MSF):

The second section describes the various underlying technologies that are used to create the MSSE. This includes the Microsoft Windows Server System servers products already mentioned, as well as more general technologies such as XML and the XML-based business document standards upon which the MSSE relies.

The third section describes the architecture of the MSSE. In other words, how all of the constituent products are integrated to achieve the solution.

Reader Guidance

Anyone reading this paper should also read the product documentation for Microsoft BizTalk Accelerator for Suppliers (AFS), Microsoft BizTalk Server, and Microsoft Commerce Server, each of which contains specific and detailed information about the corresponding products. Additionally, the MSSE Deployment Guide specifies network, software, and hardware configuration details, including network diagrams, hardware specifications, and step-by-step software configuration instructions.

Solution Design

The solution design of the MSSE consists of brief descriptions of the sequence of conceptual, logical, and physical designs that resulted in this particular implementation of supplier enablement.

Conceptual Design

The conceptual design of the MSSE can be expressed as a statement of the basic functional requirements of the three areas of functionality in the MSSE: catalog publication, remote shopping, and purchase order reception.

Catalog Publishing Requirements

The basic functional requirement of the catalog publishing functionality in the MSSE is that it provides a product catalog system capable of publishing catalog data to trading partners in the supported XML formats.

Remote Shopping Requirements

The basic functional requirement of the remote shopping functionality in the MSSE is that it provides a Web site capable of supporting relevant remote shopping sessions using the supported protocols.

Purchase Order Reception/Response Requirements

The basic functional requirement of the purchase order reception functionality in the MSSE is that it provides an order processing system capable of receiving purchase orders from trading partners in the supported XML formats.

Logical Design

The logical design of the MSSE can be expressed as a statement of the logical components required to implement the three areas of functionality in the MSSE: catalog publication, remote shopping, and purchase order reception.

The logical components for all three functional areas can be divided into five distinct categories, as follows:

Within each of these categories, there are of course many ways in which, and many degrees to which, the architecture of the MSSE could be divided and analyzed. This document explains the analysis at a fairly high level.

Logical Components of Catalog Publishing

The logical components of the catalog publishing functionality in the MSSE, categorized as described above, are:

Data Sources

Persisted Data

User Interfaces

External Components

Processes

Logical Components of Remote Shopping

The logical components of the remote shopping functionality in the MSSE, categorized as described above, are:

Data Sources

Persisted Data

User Interfaces

External Components

Processes

Logical Components of Purchase Order Reception

The logical components of the purchase order reception functionality in the MSSE, categorized as described above, are:

Data Sources

Persisted Data

User Interfaces

External Components

Processes

Physical Design

The physical design of the MSSE can be expressed as a statement of the physical components required to implement the logical components of the design, as described in the previous section.

Physical Components of Catalog Publishing

Like the logical components, the physical components of the catalog publishing functionality in the MSSE are divided into the following categories: data sources, persisted data, user interfaces, external components, and processes.

Data Sources

Persisted Data

User Interfaces

External Components

Processes

Physical Components of Remote Shopping

Like the logical components, the physical components of the remote shopping functionality in the MSSE are divided into the following categories: data sources, persisted data, user interfaces, external components, and processes.

Data Sources

Persisted Data

User Interfaces

External Components

Processes

Physical Components of Purchase Order Reception

Like the logical components, the physical components of the purchase order reception functionality in the MSSE are divided into the following categories: data sources, persisted data, user interfaces, external components, and processes.

Data Sources

Persisted Data

User Interfaces

External Components

Processes

Solution Technologies

The MSSE relies on certain technologies about which you must be (or become) familiar. These include several emerging XML standards, the Microsoft BizTalk Accelerator for Suppliers (AFS) product, and several existing Microsoft Windows Server System products.

Developers working with the MSSE must be familiar with Web user interface technologies such as HTML, Active Server Pages (ASP), Visual Basic Scripting Edition (VBScript), Internet Explorer, DHTML, XML data islands, and so on. Familiarity with COM, including development of COM objects using Microsoft Visual Basic, is also required.

This section briefly reviews the main technologies used by the MSSE, including the relevant XML standards, and the roles of AFS, Commerce Server, BizTalk Server, and SQL Server.

XML Standards

XML has quickly become central to business-to-business (B2B) integration efforts. Microsoft Commerce Server 2002 has defined a number of XML formats, including those used to represent product catalogs and purchase orders. Companies like Commerce One and Ariba have also defined standards that include definitions for these same business documents, namely, xCBL and cXML, respectively.

Microsoft has responded to the emerging importance of XML by releasing Microsoft BizTalk Server 2002, one of the primary functions of which is the transformation of one XML format into another, and an associated user interface that makes this task easier.

This section provides an overview of the XML formats, or standards, that are important to the MSSE, including the Commerce Server XML standard, xCBL 3.0, cXML 1.1, cXML 1.2, SAP XML, and other related XML standards.

Commerce Server XML Standard

Microsoft Commerce Server 2002 defines XML formats for two documents that are directly relevant to Microsoft BizTalk Accelerator for Suppliers (AFS) — one for product catalogs and one for purchase orders.

The Commerce Server CatalogManager object has a method called ExportXML that can be used to export the contents of one or more catalogs to a file, formatted as XML. As shipped in Commerce Server 2002, this format is known as Commerce Server Catalog XML v2.0 format.

This updated API also supports export of an XML Data Reduced (XDR) file for the version 2.0 format of the current Commerce Server catalog schema. This file is used when the schema has been changed such that the maps in BizTalk Server need to be regenerated.

Commerce Server also defines an XML format for purchase orders, known as the Commerce Server Orders XML v1.0 format. Version 1.0 of this format can be successfully transformed using maps in BizTalk Server. This version did not change between Commerce Server 2000 and Commerce Server 2002.

These formats are important to AFS processing. The Commerce Server Catalog XML v2.0 format is exported from Commerce Server and submitted to the BizTalk Server transformation process during catalog publishing. The Commerce Server Orders XML v1.0 format is submitted to the Commerce Server Order Processing pipeline by the BizTalk Server transformation process during purchase order reception.

xCBL 3.0 Standard

xCBL (XML Common Business Library) is a non-proprietary, robust standard for business document exchange, and although it is authored and maintained by Commerce One, xCBL data format standards and specifications are available free of charge in prominent XML repositories for anyone to use. Microsoft BizTalk Accelerator for Suppliers (AFS) uses version 3.0 of this standard.

The BizTalk Server specification files (XDR files) for xCBL 3.0 that are included in AFS were obtained from the xCBL 3.0 XDR files available from Commerce One. The specification files were modified to work with BizTalk Editor and BizTalk Mapper. Commerce One periodically updates their XML schema definitions.

For more information about the xCBL standard, see http://www.xcbl.org/.

For remote shopping, Commerce One has adopted and extended the SAP Open Catalog Interface (OCI) 2.0 standard. Although Commerce One uses this standard in conjunction with the xCBL 3.0 standard, it is based on HTML form fields rather than XML.

For more information about the SAP OCI 2.0 standard, see http://www.commerceone.net/.

cXML 1.1 and cXML 1.2 Standards

cXML (commerce eXtensible Markup Language) is a streamlined standard for business document exchange, and although it is authored and maintained by Ariba, any company may freely use all aspects of this specification, subject to the terms of the Ariba license agreement.

Microsoft BizTalk Accelerator for Suppliers (AFS) supports versions 1.1 and 1.2 of this standard in its implementation.

Clarus has fully implemented version 1.1 of cXML.

The BizTalk Server specification files (XDR files) for cXML 1.1 and cXML 1.2 that are included in AFS were derived from the cXML 1.1 and cXML 1.2 DTD files available from Ariba. The specification files were modified to work with BizTalk Editor and BizTalk Mapper. Ariba periodically updates their XML schema definitions.

For more information about the cXML standards, see http://www.cxml.org/.

SAP Interface Repository Standard

The XML-based Interface Repository (IFR) is part of the Internet Business Framework. Its aim is to publish all standard SAP interfaces centrally as XML interfaces in agreement on W3C standards, and to provide the customer with the necessary infrastructure for business scenarios.

SAP Open Catalog Interface Standard

Open Catalog Interface (OCI) is the interface between catalogs and Commerce Server 2002. The SAP OCI uses standard Internet protocols, which have been configured to work with AFS. The OCI standard consists of two separate and distinct sections: the outbound section and the inbound section.

The outbound section sends and defines information from AFS to the catalog application. The information you send can include URLs and login data.

The inbound section sends and defines information from the catalog to AFS. The information you send can include items selected from the catalog, such as item descriptions, quantities ordered, and prices.

The following figure shows how catalogs are integrated with AFS using the SAP OCI standard.

Figure 1

Other XML Standards

The MSSE does not directly support other XML standards. But because BizTalk Server is used for XML transformation, and because BizTalk Server is designed to support generic XML transformation, it is straightforward to extend the AFS architecture to support other standards.

Maps and orchestrations in BizTalk Server can be customized to support other XML standards such as:

Also, specific vertical industries or individual companies may have developed their own private XML data formats.

Role of Microsoft BizTalk Accelerator for Suppliers

Microsoft BizTalk Accelerator for Suppliers (AFS) is essentially the same as the MSSE. This new accelerator product for BizTalk Server is what provides the basic functionality of the MSSE.

AFS includes:

Role of Commerce Server 2002

Microsoft Commerce Server 2002 is central to the MSSE. For example, AFS assumes that you are using the Commerce Server Product Catalog System for the catalog you want to provide to your trading partner. One of the new Commerce Server Business Desk modules supplied with AFS, called Catalog Publisher, is used to initiate the process of transforming and transporting your Commerce Server catalog to your trading partner.

AFS also assumes that you are using the Commerce Server orders database to store and manage the orders you receive from your trading partners. Orders, when received, are transformed and placed into the orders database, and another new Business Desk module provided with AFS, called Orders Manager, is used to view and process those orders.

Specifically, AFS and the MSSE extend Commerce Server in the following ways:

Another way in which AFS makes explicit use of Commerce Server is its use of a Commerce Server pipeline object to move order details from a purchase order received from a trading partner into the Commerce Server orders database.

Role of BizTalk Server 2002

Microsoft BizTalk Accelerator for Suppliers (AFS) uses BizTalk Server 2002 to transform XML files from one format into a different XML format. This includes the transformation of Commerce Server Catalog XML v2.0 files into their xCBL 3.0, cXML 1.1, or cXML 1.2 equivalent. It also includes the transformation of purchase orders formatted using the xCBL 3.0 standard, the SAP XML standard, the cXML 1.1 standard, or the cXML 1.2 standard into their Commerce Server Order XML v1.0 equivalent.

BizTalk Server also provides a mechanism for sending transformed catalogs to your trading partners. The mechanism chosen largely depends on the capabilities of your trading partners. They might have a URL to which you can post the transformed catalog for automated processing. On the other hand, some trading partners might require you to transmit the catalog by some other means, such as a file upload, after which manual processing may be required.

For order reception, the BizTalk Orchestration Designer and an associated XLANG schedule are used to control the sequence of processing steps that are performed in the course of converting a xCBL 3.0, SAP XML, cXML 1.1, or cXML 1.2 purchase order into a form that can be stored in your Commerce Server orders database.

BizTalk Server application integration components (AICs) are used in several situations where special processing is required to properly complete a catalog transformation.

Role of SQL Server 2000

Microsoft SQL Server 2000 provides the underlying data persistence for catalog and order data within the MSSE. This dependency is inherited from the Commerce Server dependency on SQL Server.

Solution Architecture

This section provides a description of the architecture of the MSSE, first from a high-level, and then in a detailed manner for each of the functional areas of the MSSE: catalog publishing, remote shopping, and purchase order reception/response. Readers should also review the MSSE Deployment Guide for more information about the MSSE network, software, and hardware configuration details. The MSSE Deployment Guide provides the implementation details for deploying a core-medium or medium-level solution.

The following figure illustrates the architecture of the MSSE and shows the Commerce Server Business Desk tasks required to create a trading partner profile, publish a catalog to a trading partner, and work with purchase orders received from a trading partner. These tasks are labeled with circled numbers and are explained following the figure.

The figure also shows how data flows between various entities in the course of catalog publication and purchase order reception. Particular data flows are labeled with letters and are explained following the figure.

Figure 2

The workflow for catalog publication and purchase order reception for MSSE consists of the following tasks:

  1. In order to publish a catalog to a trading partner using AFS, your catalog data must be in the Commerce Server Product Catalog System. You can either create a new catalog and its products using Business Desk interactively, or you can import a catalog from another source.
  2. You use the Trading Partner Manager module in Business Desk to create a trading partner profile. A trading partner profile contains information about the catalog publication format (protocol) and target location for your catalogs. It also contains your account information, for example, the shared secret for authentication at the targeted trading partner.
  3. You use the Catalog Publisher module in Business Desk to create a catalog publication. A catalog publication contains information about your Commerce Server catalog, the trading partner profile, your supplier identifier, the catalog language, and the credential domain of your supplier identifier. An example of a credential domain is the Dun & Bradstreet Data Universal Numbering System (DUNS). For more information, see Publishing Catalogs to Trading Partners.
  4. In the Catalog Publisher module, you select the catalog publication you created and publish the catalog to a trading partner.
  5. You view and update the fulfillment status of your orders received from trading partners in the Orders Manager module in Business Desk.

Data flows through AFS and between AFS, trading partners, and buyers occur in the following sequence:

  1. A. Catalog Editor module reads and writes catalog data.
    The Catalog Editor module can be used to interactively enter catalog data, or to import catalog data from an XML or CSV (comma-separated values) file. Catalog data is read from and written to the catalog database using Commerce Server catalog objects.
  2. B. Catalog Publisher module exports catalog data.
    When a catalog is published, the Catalog Publisher module uses the ExportXML method of the Commerce Server CatalogManager object.
  3. C. Catalog data is placed in a shared directory as an XML file.
    The catalog data is copied to a shared directory as an XML file in Commerce Server Catalog XML v2.0 format. BizTalk Server (BTS) uses a file receive function to retrieve the file from the shared directory.
  4. D. BTS sends the transformed catalog data to the trading partner.
    BTS transforms the catalog data to one of the following formats: xCBL 3.0, cXML 1.1, or cXML 1.2, depending on what the trading partner accepts, as configured in the trading partner profile.
  5. E. Buyer and trading partner interact through a buyer application.
    The buyer shops in the buyer application provided by the trading partner, using a data format that is not known, nor particularly relevant, to AFS.
  6. F. Trading partner initiates remote shopping when configured.
    If the scenario includes remote shopping, the trading partner initiates (and the supplier terminates) remote shopping using one of the standards: SAP OCI 2.0, cXML 1.1, or cXML 1.2.
  7. G. Buyer shops directly on the supplier Web site.
    If the scenario includes remote shopping, the buyer shops directly on the supplier Web site.
  8. H. Trading partner sends a purchase order to the supplier.
    The trading partner sends purchase order data to a receive page in the AFS Solution Site in xCBL 3.0, cXML 1.1, cXML 1.2, or SAP XML format.
  9. I. Purchase order is routed to BTS for transformation.
    The receive page in the AFS Solution Site places the purchase order data, still in xCBL 3.0, cXML 1.1, cXML 1.2, or SAP XML format, into a message queue, from which a BTS receive function retrieves it.
  10. J. BTS sends the transformed purchase order to Commerce Server.
    BTS transforms the purchase order data into Commerce Server Order XML v1.0 format and sends it to another receive page in the AFS Solution Site.
  11. K. Commerce Server processes and saves the purchase order.
    After running the Order Processing pipeline, the second receive page saves the purchase order data to the orders database using Commerce Server order objects (for example, the OrderGroup object).
  12. L. Orders Manager module manipulates the purchase orders.
    The Orders Manager module reads and writes purchase order data to and from the orders database using Commerce Server order objects.
  13. M. Commerce Server writes an order response message to a Message Queuing queue.
    After order processing is complete Commerce Server writes an order response message to a Message Queuing queue on the BizTalk Server.
    Note An asynchronous order response message is supported for xCBL 3.0 and SAP XML formatted messages.
  14. N. BizTalk Server sends an order response message back to the trading partner.
    The BizTalk Server Message Queuing receive function retrieves the message from the queue and then BizTalk Messaging transforms and transports the order response message to the trading partner.

Catalog Publishing Architecture

In the MSSE, catalog publishing begins when a business manager clicks the Refresh button in Commerce Server Business Desk. The following figure shows a supplier using Commerce Server 2002, BizTalk Server 2002, and the extensions provided by Microsoft BizTalk Accelerator for Suppliers (AFS) to upload their product catalog to a trading partner. An important aspect of the flow concerns the format of the data at various points, as shown by the lettered circles and the data format key that follows the figure.

Figure 3

Data Format Key:
A: Commerce Server Catalog XML v2.0, or CSV

B: XML file

C: Commerce Server Catalog XML v2.0

D: xCBL3.0, cXML 1.1, or cXML 1.2 catalog

Starting at the top and working toward the bottom, the figure above shows the following steps in publishing catalogs:

  1. Using the Refresh Catalog task in the Commerce Server Business Desk Catalog Editor module (supplied with AFS), the catalog data is exported from the Commerce Server catalog database by the ExportXML method, in the Commerce Server Catalog XML v2.0 format, and sent to BizTalk Server 2002.
  2. BizTalk Server transforms the catalog data into one of the following three formats, depending on the target trading partner: xCBL 3.0, cXML 1.1, or cXML 1.2. It then posts the catalog to a URL provided by the trading partner. Alternatively, BizTalk Server can be configured to write the transformed XML to a file, after which some other method of trading partner upload can be used.
  3. The trading partner processes the catalog data in preparation for making the associated products and/or services available for sale.

Preparation for catalog publishing involves the following steps, many of which are performed automatically by the installation process, or which can be done manually using files and instructions provided in the AFS Software Development Kit (SDK):

  1. Establish a Commerce Server 2002 catalog. Use the Commerce Server Business Desk Catalog Manager module (supplied with Commerce Server 2002) to import a catalog that is in either XML or CSV (comma-separated value) format. Alternatively, catalogs can be created and populated with products directly using Business Desk.
  2. Configure BizTalk Server. The installation process performs much of the BizTalk Server configuration automatically. Alternatively, these steps can be performed manually using BizTalk Messaging Manager:
  3. Configure Commerce Server. Perform the following configuration steps in the Business Desk Trading Partner Manager module (supplied with AFS) to establish a sales channel:

The installation process performs much of the configuration required for catalog publishing automatically. For more information about the installation process and the configuration that must be performed following installation, see the Microsoft BizTalk Accelerator for Suppliers Installation Guide (a separate HTML file) and the "Operations Overview" topic in the AFS Online Help.

For installations where manual configuration is required, the AFS Software Development Kit (SDK) provides source code files and various XML files for configuring Commerce Server and BizTalk Server. These files include:

Remote Shopping Architecture

The architecture of the remote shopping functionality within the MSSE differs enough between the two supported protocols that they are presented separately in the sub-sections that follow.

Open Catalog Interface (OCI) Remote Shopping Architecture

Microsoft BizTalk Accelerator for Suppliers (AFS) validates the organization user for trading partners based on the Open Catalog Interface (OCI) 2.0 Outbound Section message. The OCI Outbound Section could be originated either on the Commerce One EBD application or the SAP EBP application. Validation is successful if the trading partner is pre-registered in Commerce Server Business Desk. Anonymous users are not validated and, therefore, are denied access to the supplier AFS site.

OCI supports remote shopping at the supplier level, but not at the product level. When a user chooses to initiate a remote shopping session, a new browser opens (or their existing browser is re-directed) to the chosen supplier site. On the supplier site, they can shop normally, viewing products, and adding and removing products from their remote basket. When they check out of the remote basket, information about the remotely selected products is returned to their buyer application and displayed in its basket.

The following figure, and the associated numbered descriptions that follow, provides a more detailed, step-by-step account of this process.

Figure 4

  1. A user shopping on an OCI-based Web site chooses to initiate a remote shopping session with a supplier site that is using AFS. This results in a new browser window opening, or the current browser redirecting to the established starting page for a remote shopping session.
  2. The starting page for a remote shopping session is the page OCIAccept.asp. This page processes the OCI Outbound Section, extracting the required information from the form fields.
  3. The starting page also creates a remote shopping session and a remote basket for the session. It validates the extracted information against the organization profile and uses the purchasing manager credential of the organization to create a registered user session. It verifies the user name and password from the OCI outbound message.
  4. The page OCIAccept.asp ends by redirecting the user to the page RemoteBasketNav.asp.
  5. For OCI-based remote shopping sessions, the page RemoteBasketNav.asp always redirects the user to the page RemoteBasket.asp.
  6. From the page RemoteBasket.asp, the user shops on the supplier site, freely adding and removing products from their remote basket, and visiting the other pages on the site.
  7. Upon remote shopping checkout, the page FormPostRemoteBasket.asp runs. This page displays a form in the user browser with the contents of the remote basket stored as hidden form fields (as defined by the inbound section of the OCI 2.0 standard). The action page associated with the form is a URL supplied with the outbound section, and specifies the page in the buying application that is used to process the inbound section.

When the user clicks the submit button on the page FormPostRemoteBasket.asp, or when it automatically submits itself, the form containing the products chosen in the remote shopping session is (HTTP) posted to the OCI-based Web site. This completes the RoundTrip process.

For more detailed information about the RoundTrip remote shopping architecture, see "Implementation Details" in the AFS Online Help.

Punchout (cXML 1.1 and 1.2) Remote Shopping Architecture

MSSE includes remote shopping functionality for Punchout using the cXML 1.1 and cXML 1.2 standards. This format can be used with processing for Ariba Punchout or for Clarus Tap Out.

Ariba Punchout

In the Microsoft BizTalk Accelerator for Suppliers (AFS) implementation, when users shop in the Ariba buyer application and choose to add a product to their shopping basket that the associated supplier has designated as remotely configurable, the buyer application opens a browser that displays a remote basket page on the supplier Web site. The remote basket already contains the chosen product.

As provided in AFS, the remote basket page allows users to freely manipulate their remote basket, adding or removing products as they choose. When the users check out of the remote basket, the browser is closed and they are returned to the Ariba buyer application where their remotely selected products are now displayed.

The following figure provides a more detailed, step-by-step account of this process.

Figure 5

  1. A user using an Ariba buyer application adds an item to their local basket that has been configured for Punchout. This results in a Punchout setup request being sent to the page punchout.asp on your supplier Web site. The request typically specifies a particular product for which the Punchout session is being initiated.
  2. Remote shopping sessions are authenticated based on the sender node (organization and shared secret) in the XML PunchOutSetupRequest message.
  3. The page punchout.asp builds a remote basket for the Punchout session and puts any items included in the Punchout setup request into that basket. It then sends back a Punchout setup response message (cXML PunchOutSetupResponse messsage) to the buyer application. This response includes the URL for the page RemoteBasketNav.asp. This URL includes an ID generated for this user as one of the query string arguments.
  4. A Punchout browser is launched by the Ariba buyer application.
  5. The browser is directed to the URL provided in the Punchout setup response (step 2). The URL includes the Auth Ticket of the user, which uniquely identifies the user to the supplier site and displays the associated catalog set.
  6. Logic in the page RemoteBasketNav.asp redirects the user to one of five different pages, based on the specified operation (Create, Edit, or Inspect), and whether or not a selected item has been specified.

    In the AFS implementation, the Create and Edit operations are handled in the same manner.

  7. In the AFS Solution Site, Inspect operations only allow navigation between the pages InspectBasket.asp and InspectProduct.asp. The Create and Edit operations allow the user to freely navigate between the home page, the product catalog pages, and the basket page.
  8. If the specified operation is Create or Edit, the user can also navigate to and from other pages in the site. If the specified operation is Inspect, the user is restricted to the basket and product pages, and is not allowed to add additional products to their basket. If a problem was detected when the remote shopping session began, and the user was redirected to the page default.asp, continuing on to enter the supplier site does not constitute a remote shopping session.
  9. When the user clicks the checkout button on either the page RemoteBasket.asp or the page InspectBasket.asp, the page FormPostRemoteBasket.asp is invoked. The page FormPostRemoteBasket.asp displays a button for submitting the order to the trading partner. Usually, before the user has a chance to click this button, client-side script on the page will automatically submit the order for them. During the Inspect Operation, the Punchout message does not contain the item in the details.
  10. The page FormPostRemoteBasket.asp builds the Punchout order message (cXML PunchOutOrderMessage), which includes the details of the items to be purchased, and generates an auto-submitting form that posts itself to the URL supplied in the original Punchout setup request. It then logs the user out of the site, ending the Punchout session. During Inspect operations the PunchOutOrderMessage does not contain the <itemln> node. For example, the item/product details are not returned to the buyer application.

For more detailed information about the Punchout remote shopping architecture, see "Implementation Details" in the AFS Online Help.

Clarus Tap Out

Remote shopping from the Clarus trading partner is known as Tap Out and uses the cXML 1.1 standard.

Users can return to the same supplier Web site and update the contents of their remote shopping basket created during a prior remote shopping session using the Edit operation. An Edit operation is used so that those products are shown again in their remote basket.

As with the Ariba implementation, remote shopping users can freely manipulate their remote basket, adding or removing products as they choose. When they check out of the remote basket, the browser is closed and the users are returned to the Clarus buyer application, where their remotely selected products are now displayed.

Purchase Order Reception Architecture

In Microsoft BizTalk Accelerator for Suppliers (AFS), purchase order reception begins when a trading partner (HTTP) posts a purchase order to the ASP page you have established for that purpose. The reception of a purchase order ends when the purchase order data is saved to the Commerce Server orders database. Processing of the purchase order continues as the order is fulfilled and shipped to the customer.

The following figure, and the associated numbered descriptions that follow, describe the steps involved in the purchase order reception process.

Figure 6

  1. Purchase order reception begins when the trading partner (HTTP) posts a purchase order in one of the supported XML formats to the URL you provided them for this purpose. The trading partner must include the XML format being used in the query string argument in the URL.
  2. In the page ReceivePO.asp the purchase order undergoes preprocessing so that BizTalk Server (BTS) can properly transform it; this preprocessing is different for each supported standard. Next, the XML comprising the purchase order is enclosed in a BizTalk Framework 2.0 envelope, and the trading partner name and standard are stored as an envelope property. For xCBL 3.0 and SAP XML purchase orders, the OrderResponse message is constructed (using XSL to transform the Order Response message) and placed in another envelope property.

    The purchase order XML document is then placed in one of four different Message Queuing queues, based on the standard used. (Each of the four protocol-specific receive functions in BTS is watching a different message queue, waiting for purchase orders to be placed there.) The page then waits (polls) for the Message Queuing acknowledgement (dotted line from the Message Queuing queue to 2).

    Note If Commerce Server and BTS are installed on different computers, Message Queuing is responsible for moving the purchase order XML document from the former to the latter.

    For xCBL 3.0 and SAP XML purchase orders, the HTTP response (dotted line from 2 to 1) only contains the HTTP status indicating whether the purchase order was successfully received and passed to the Message Queuing queue.

    For cXML 1.1 and 1.2 purchase orders, the HTTP response also includes the OrderResponse message (constructed using XSL to transform the OrderRequest message).

    For more information about the page ReceivePO.asp, see "Purchase Order Reception from the Trading Partner" in AFS Online Help.

  3. One of four different BTS Message Queuing receive functions retrieves the purchase order from its corresponding message queue and passes it to the corresponding transform channel. This is the start of BTS processing.
  4. Using the appropriate map, the BTS transform channel converts the purchase order from its source XML format (xCBL 3.0, SAP XML, cXML 1.1, or cXML 1.2) to the Commerce Server Order XML v1.0 format. AFS provides distinct maps for use by BTS for transformation from each of the four supported formats. You can create maps for transforming from other XML formats.

    Next, the transformed XML document is passed to the corresponding transform messaging port.

    Note Due to the architecture of BTS, there are four distinct combinations of transform channel and messaging port, one for each of the four supported source XML formats. All four of these channel/messaging port pairs pass the transformed XML document to an instance of the same XLANG schedule.

    For more information about transform channel processing, see "Transform Channel and Messaging Port" in the AFS Online Help.

  5. The transform messaging port passes the transformed XML document to an instance of the XLANG schedule. The transform messaging port does not perform any additional processing of the document. The same XLANG schedule is used for all of the different XML formats.

    For more information about transform messaging port processing, see "Transform Channel and Messaging Port" in the AFS Online Help.

  6. As delivered, the XLANG schedule only performs a single action: (HTTP) posting the transformed XML document to the configured ASP receive page (_recvpo.asp) in the Commerce Server 2002 supplier site. This is accomplished by passing the transformed XML document to a transport channel.

    For more information about XLANG schedule processing, see "XLANG Schedule" in the AFS Online Help.

  7. The transport channel does not perform any processing on the transformed XML document. It passes the document through to the transport messaging port.
    Note Because the document has already been transformed to the Commerce Server Order XML v1.0 format, and because it is being posted to a single ASP receive page regardless of the source XML format, a single transport channel/messaging port pair is used.

    For more information about transport channel processing, see "Transport Channel and Messaging Port" in the AFS Online Help.

  8. The transport messaging port sends the transformed XML document to the ASP receive page _recvpo.asp.
  9. The ASP receive page (_recvpo.asp) in the Commerce Server supplier site retrieves the trading partner name and originating message standard from the BTF 2.0 envelope. For xCBL3.0 and SAP XML purchase orders, the OrderResponse message is also retrieved from the BTF 2.0 envelope. Then the envelope itself is removed. The trading partner is verified, and if necessary, an organization profile is created for the trading partner.

    For more information about how the trading partner is identified so that its organization profile object can be retrieved, see the "VerifyOrganization" routine in the AFS Online Help.

    The purchase order XML document is then converted into an equivalent Dictionary object, which is passed to the Order Processing pipeline. If the pipeline completes successfully, the following steps are taken:

    For more information about the processing that occurs in the page _recvpo.asp, see "Purchase Order Reception from BizTalk Server" in the AFS Online Help.

  10. The Order Processing pipeline runs to process the purchase order.
  11. After the order has been saved to the Commerce Server orders database, you can use the Orders Manager module in Commerce Server Business Desk to manage the order during the fulfillment process.
  12. A BizTalk Server Message Queuing receive function retrieves the messages and BizTalk Messaging delivers the message to the trading partner, routing the message to the appropriate channel and message port based on the destination organization configured in the header of the envelope message.

For more detailed information about the purchase order reception architecture, see "Implementation Details" in the AFS Online Help.

Performance and Scalability

This section provides a high-level review of the performance and scalability characteristics of the Microsoft Solution for Supplier Enablement (MSSE).

Summary

The Microsoft BizTalk Accelerator for Suppliers (AFS) Solution Site included in the MSSE is based on the Commerce Server Retail Solution Site. Although the MSSE usage profile suggests that the B2B-oriented MSSE site will experience less Web browsing traffic than a retail Web site, an important performance goal of the MSSE was to maintain Web site performance (insignificant performance degradation) while also processing the additional B2B transactions that occur in the MSSE.

The medium deployment configuration, as defined in the MSSE Deployment Guide, is the base configuration for the site profile. It is recommended that users determine capacity requirements based on the methodology defined in the document "Microsoft Commerce Server 2000 Supplier Site Performance Characteristics: Transaction Cost Analysis," which can be found at http://www.microsoft.com/commerceserver/performance.

Users can refer to this document to review the relative impact of the MSSE B2B transactions on Solution Site performance. MSSE B2B transaction performance is CPU-bound.

The core-medium deployment configuration is intended for small businesses that do not anticipate a need to scale.

Performance characterization data for the three main feature areas (catalog publishing, remote shopping, and purchase order reception/response) on the two supported deployments (core-medium and medium) is included in the appendices.

Interactions in the AFS Solution Site

This section provides details about the interactions that occur between the MSSE and a trading partner.

Retail Shopping

Retail shopping interactions are simulated using the Application Center Testing (ACT) tool to stress the site to a "steady state" of approximately 65%-75% CPU utilization, which represents the performance "baseline." Retail shopping includes the interactions of many concurrent users visiting the site. The interactions include:

Catalog Publishing

Catalog publishing interactions include publishing catalogs of various sizes to a file in both the cXML 1.2 and xCBL 3.0 formats. The performance data includes:

Additionally, the impact of this processing on the AFS Solution Site was measured by determining the number of ASP pages served before and during the processing of these interactions.

There is an impact on performance while publishing catalogs, but the duration of that impact is relatively short when publishing catalogs of less than 60,000 SKUs. It is recommended that catalogs containing more than 60,000 SKUs be broken into multiple, smaller catalogs.

Note Performance characterization was not performed for the cXML 1.1 standard, although it is reasonable to assume that it would be very similar to the results for cXML 1.2 standard.

For performance data related to catalog publishing, see APPENDIX B: Catalog Publishing Performance Characterization Data.

Remote Shopping

Remote shopping interactions include the remote shopping setup requests and checking out remote shopping baskets of various sizes. The performance data includes:

Performance was characterized for both the cXML 1.2 and OCI 2.0 protocols.

Additionally, the impact of this processing on the AFS Solution Site was measured by determining the number of ASP pages served before and during the processing of these transactions.

There is an impact on performance while processing remote shopping interactions, but the duration of that impact is relatively short. If it is anticipated that remote shopping baskets will include more than 100 line items, administrators should consider scaling the Commerce Server Web servers by adding additional Web servers to a Web farm or by using faster processors.

Note Performance characterization was not performed for the cXML 1.1 standard, although it is reasonable to assume that it would be very similar to the results for cXML 1.2 standard.

For performance data related to remote shopping, see APPENDIX C: Remote Shopping Performance Characterization Data.

Purchase Order Reception/Response

Purchase order reception interactions include receiving and processing purchase orders of various sizes and in various frequencies in the cXML 1.2, SAP XML, and xCBL 3.0 formats. The performance data includes:

The impact of this processing on the AFS Solution Site has been measured by determining the number of ASP pages served before and during processing of these transactions.

Note Performance characterization was not performed for the cXML 1.1 standard, although it is reasonable to assume that it would be very similar to the results for cXML 1.2 standard.
NoteThe xCBL 3.0 and SAP XML formats are significantly more complex than the cXML 1.2 format, which results in larger XML documents. The larger documents require additional time and resources to process and thus have a greater impact on performance.

For performance data related to purchase order reception, see APPENDIX D: Purchase Order Reception Performance Characterization Data.

Usage Profile

The performance of the MSSE exceeds the following usage profile:

For more information on the process of developing an online usage profile, see the document "Commerce Server 2000: Creating a Usage Profile for Capacity Planning," which can be found at:http://www.microsoft.com/commerceserver/performance.

Site Profile

The site profile addresses a medium-sized business with the following characteristics:

Test Tools

The Application Center Testing (ACT) tool was used to perform these tests.

Scalability Considerations

This section considers a number of factors related to the scalability of various technologies used by the MSSE.

Commerce Server (AFS Solution Site)

The AFS Solution Site is typically deployed on a separate Web server than the Business Desk Web site. Administrators can scale-out the AFS Solution Site by creating a Web farm that uses Network Load Balancing (NLB). Availability will be enhanced through the redundancy provided by the Web farm and performance will be enhanced because the load will be distributed across the servers in the Web farm. Increased Web site traffic and increased complexity of the content in the Web site will both impact performance. If CPU utilization remains consistently above 80 percent, additional servers should be added to the Web farm. Alternatively, performance can be scaled-up by substituting Web servers with faster CPUs.

Commerce Server (Business Desk Site)

The Business Desk Web site hosts the administration user interface and is typically subject to less traffic than the AFS Solution Site. As required, this Web site can be scaled using similar means as the AFS Solution Site.

BizTalk Server

BizTalk Server (BTS) can be scaled-up by adding additional memory and by increasing CPU speed. BTS also supports scaling-out the Messaging Services by adding multiple BTS Servers into BizTalk Groups. The MSSE has not been tested with this configuration.

SQL Server

SQL Server can be scaled-up by adding additional memory and by increasing CPU speed. Commerce Server and BTS product documentation defines how to improve performance by scaling-out the deployment of the databases used by these applications across multiple SQL servers. The MSSE has not been tested with this configuration.

URL Resources

The following URL provides additional information:

Microsoft Solution for Supplier Enablement:

http://www.microsoft.com/business/solutions/MSSE/

Appendix A: Performance Characterization Hardware Details

Results of this type of performance testing may vary depending on the hardware and software configuration details of each MSSE implementation.

This appendix shows the hardware used for performance characterization in each of the two tested deployments: core-medium and medium.

Core-Medium Deployment Hardware Configuration

The following table lists the tested hardware configuration for the core-medium deployment configuration.

Server Processor RAM Hard Disk Space Network Adapters
Web Dual 1 GHz 512 MB 12 GB 1
SQL Quad400 MHz 2 GB 25 GB 1

* Network adapters are all 100baseT.

Medium Deployment Hardware Configuration

The following table lists the tested hardware configuration for the medium deployment configuration.

Server Processor RAM Hard Disk Space Network Adapters
ISA Server

(external)

Dual 733 MHz 2 GB 12 GB 1
DMZ Web Server Dual 733 MHz 2 GB 12 GB 1
DMZ Web Server Dual 733 MHz 2 GB 12 GB 1
DMZ Web Server Quad 550 MHz 1 GB 12 GB 1
ISA server (internal) Quad 550 MHz 1 GB 12 GB 1
Business Desk Server Quad 550 MHz 1 GB 12 GB 1
BizTalk Server Quad550 MHz 1 GB 12 GB 1
SQL Server Quad 550 MHz 1 GB 25 GB 1

* Network adapters are all 100baseT.

Note In the medium deployment, SQL Server experiences greater load than in the core-medium deployment. This is because there are three DMZ Web servers accessing it rather than just one. The performance characteristics presented in appendices B, C, and D reflect this configuration.

Appendix B: Catalog Publishing Performance Characterization Data

This appendix shows the performance characterization for the catalog publishing feature of the MSSE. It contains two sets of tables.

These tests were performed using Commerce Server catalogs based on the AdventureWorks catalog provided in the AFS SDK.

Time to Publish Catalogs

The following tables show the amount of time taken to publish catalogs of various sizes in each of the two tested deployments: core-medium, and medium. The total time taken to publish a catalog is shown as the sum of two distinct phases of the publication process:

Core-Medium

Protocol cXML 1.2     xCBL 3.0    
Time TE TT Total TE TT Total
Scenarios            
1,000 6 16 22 3 13 16
10,000 27 73 100 27 153 180
30,000 83 361 444 67 959 1,026
60,000 141 1,342 1,483 131 4,194 4,325

Medium

Protocol cXML 1.2     xCBL 3.0    
Time TE TT Total TE TT Total
Scenarios            
1,000 4 10 14 3 69 72
10,000 25 61 86 26 118 144
30,000 85 271 356 75 674 749
60,000 153 833 986 181 2,345 2,526

Table Key:

Performance Impact During Catalog Publication

The following tables show the performance impact of publishing catalogs of various sizes in each of the two tested deployments: core-medium and medium. Relative to a baseline measurement, the average and minimum number of ASP pages served per second by the AFS Solution Site while catalogs are being published are shown. For the minimum number of ASP pages served, the duration of the minimum measurement is also shown.

Core-Medium

Protocol cXML 1.2       xCBL 3.0      
# of SKUs Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
1,000 68.8
(4,128)
48.0
(2,880)
See Note < 1 68.8
(4,128)
47.9
(2,874)
See Note < 1
10,000 68.8
(4,128)
66.3
(3,978)
See Note < 1 68.8
(4,128)
65.7
(3,942)
See Note < 1
30,000 69.5
(4,170)
64.0
(3,840)
See Note < 1 69.5
(4,170)
62.5
(3,750)
See Note < 1
60,000 69.5
(4,170)
60.9
(3,654)
See Note < 1 69.5
(4,170)
60.3
(3,618)
See Note < 1

Note The impact on site performance was a brief spike representing less than a second in elapse time.

Medium

Protocol cXML 1.2       xCBL 3.0      
# of SKUs Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
1,000 75.7
(4,542)
74.4
(4,464)
See Note < 1 75.7
(4,542)
65.6
(3,936)
See Note < 1
10,000 75.7
(4,542)
77.3
(4,638)
See Note < 1 75.7
(4,542)
81.0
(4,860)
See Note < 1
30,000 74.1
(4,446)
73.1
(4,386)
See Note < 1 74.1
(4,446)
73.9
(4,434)
See Note < 1
60,000 74.1
(4,446)
73.9
(4,434)
See Note < 1 74.1
(4,446)
74.1
(4,446)
See Note < 1

Note The impact on site performance was a brief spike representing less than a second in elapse time.

Table Key:

Appendix C: Remote Shopping Performance Characterization Data

This appendix shows the performance characterization for the remote shopping feature of the MSSE in each of the tested deployments: core-medium and medium. It contains a set of tables that show, relative to a baseline measurement, the average and minimum number of ASP pages served per second by the AFS Solution Site while certain remote shopping operations are being performed. For the minimum number of ASP pages served, the duration of the minimum measurement is also shown.

This test was performed using products from the AdventureWorks catalog provided in the MSSE SDK.

Core-Medium

Protocol cXML 1.2       OCI 2.0      
Scenarios Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
100 setup
requests
70

(4,200)

63.5

(3,810)

See Note <1 70

(4,200)

63

(3,780)

See Note <1
100x10
checkout
70

(4,200)

70

(4,200)

See Note <1 70

(4,200)

72.5

(4,350)

See Note <1
100x100
checkout
70

(4,200)

67.1

(4,026)

See Note <1 70

(4,200)

65.5

(3,930)

See Note <1

Note The impact on site performance was a brief spike representing less than a second in elapse time.

Medium

Protocol cXML 1.2       OCI 2.0      
Scenarios Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
100 setup
requests
81

(4,860)

82.8

(4,968)

See Note <1 81

(4,860)

83

(4,980)

See Note <1
100x10
checkout
81

(4,860)

80.1

(4,806)

See Note <1 81

(4,860)

83.5

(5,010)

See Note <1
100x100
checkout
81

(4,860)

80

(4,800)

See Note <1 81

(4,860)

76.2

(4,572)

See Note <1

Note The impact on site performance was a brief spike representing less than a second in elapse time.

Note For the medium deployment environment, the Avg values are larger than the Base values. This is because the CPU utilization never reached 100%, and was thus able to support the additional load of the simulated remote shopping users.

Table Key:

Appendix D: Purchase Order Reception Performance Characterization Data

This appendix shows the performance characterization for the purchase order reception feature of the MSSE. It contains two sets of tables.

These tests were performed using cXML 1.2 , xCBL 3.0, and SAP XML purchase orders similar to those provided in the AFS SDK.

Time to Receive and Process Purchase Orders

The following tables show the amount of time taken to receive purchase orders of various sizes in each of the deployments: core-medium and medium.Times were recorded for the following processes.

Core-Medium

Protocol cXML 1.2   xCBL3.0   SAP XML  
Time TR Total TR Total TR Total
Scenario            
100x10
continuous
106 163 116 187 133 155
100x100
continuous
973 992 973 998 973 997
100x10
burst
95 133 76 181 81 149
100x100
burst
61 149 82 185 97 159

Medium

Protocol cXML 1.2   xCBL3.0   SAP XML  
Time TR Total TR Total TR Total
Scenario            
100x10
continuous
90 107 90 102 91 110
100x100
continuous
972 983 973 990 971 983
100x10
burst
20 113 23 96 22 143
100x100
burst
30 245 66 410 27 242
Note For the medium deployment environment, the Avg values are larger than the Base values. This is because the CPU utilization never reached 100%, and was thus able to support the additional load of the simulated purchase orders.

Table Key:

Performance Impact During Purchase Order Reception

The following tables show the performance impact of receiving purchase orders of various sizes at various speeds in the tested deployments: core-medium and medium. Relative to a baseline measurement, the average and minimum number of ASP pages served per second by the MSSE Solution Site while receiving purchase orders are shown. Please note that the average is measured over Total processing time, where Total is the elapse time between sending the first order until all of the orders are in the Commerce Server database.

Core-Medium

Protocol cXML 1.2       xCBL 3.0       SAP XML      
Scenarios Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
100x10
continuous
70

(4,200)

28.7

(1,722)

See Note <1 70

(4,200)

12.8

(768)

0 20 70

(4,200)

19.8

(1,188)

See Note <1
100x100
continuous
70

(4,200)

58.1

(3,486)

See Note <1 70

(4,200)

42

(2,520)

0
50 70

(4,200)

56

(3,360)

0 10
100x10
burst
70

(4,200)

22

(1,320)

0 5 70

(4,200)

24

(1,440)

0 20 70

(4,200)

31.4

(1,884)

0.5

(30)

10
100x100
burst
70

(4,200)

12.5

(750)

0 50 70

(4,200)

11.8

(708)

0 90 70

(4,200)

8.6

(516)

0 101

Note The impact on site performance was a brief spike representing less than a second in elapse time.

Medium

Protocol cXML 1.2       xCBL 3.0       SAP XML      
Scenarios Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
Base
(CU)
Avg
(CU)
Min
(CU)
Dur
at Min
100x10
continuous
81

(4,860)

75

(4,500)

See Note < 1 81

(4,860)

82.4

(4,944)

Note 1 < 1 81

(4,860)

81.6

(4,896)

See Note < 1
100x100
continuous
81

(4,860)

79.7

(4,782)

See Note < 1 81

(4,860)

81

(4,860)

Note 1 < 1 81

(4,860)

83.7

(5,022)

See Note < 1
100x10
burst
81

(4,860)

80

(4,800)

See Note < 1 81

(4,860)

34.5

(2,070)

Note 1 < 1 81

(4,860)

79

(4,740)

See Note < 1
100x100
burst
81

(4,860)

63

(3,780)

See Note < 1 81

(4,860)

53

(3,180)

0.5 1 81

(4,860)

62

(3,720)

See Note < 1

Note The impact on site performance was a brief spike representing less than a second in elapse time.

Table Key: