- The Company
- Order-Fulfillment Process
- Problems with the Current Implementation
- Solution Requirements
- BizTalk Server 2004A Brief Introduction
- Proposed Solution: Hardware
- Messaging Protocols
- Proposed Solution: BizTalk Application
- Business Rules
- BizTalk Licensing
- Time Estimate
- Cost Estimate
Proposed Solution: BizTalk Application
A partial view of the proposed BizTalk orchestration includes the following (see Figure 3):
- An orchestration is used to support the PinkAndBlue fulfillment process. The orchestration is initialized when a new order is inserted into the Orders SQL Server table, which is monitored by a SQL adapter-based receive pipeline.
- The orders are received and updated using SQL adapter-based ports to communicate with the database.
- A request response synchronous web service port is used to communicate with the credit card processing company web service.
- Customer emails are sent using a send port that uses an SMTP transport.
- Warehouse messages are sent/received using ports bound to the FTP transport. The messages are converted to XML from a comma-delimited format (and vice versa) using an appropriate schema. A map with a lookup functoid is used to look up the warehouse code using the Zip code. Functoids are a feature of the BizTalk Mapper that provide a number of functions to transform the data elements in the messages.
- Content-based routing is used to route the warehouse message to the correct warehouse by using a property promotion schema to promote the warehouse code.
- The warehouse prepares the package for shipping and drops a comma-delimited message text file into a designated directory. The receive port uses a custom pipeline having the flat file disassembler to convert the comma-delimited file into an XML message. Thus, when the message reaches the orchestration, it is in XML format.
- The arrival of the message file activates the orchestration that is associated with this order. This process is called correlation: Even if there are thousands of orchestrations waiting for the same type of message, only the original orchestration that sent the message is activated and the incoming message passed to it.
- Messages to/from the credit card transaction vendor are encrypted/decrypted using a .NET component invoked inside an expression shape.
- A SAP adapter-based port is used to pass the invoice details to the SAP application.
This process achieves the following objectives mandated by PinkAndBlue:
- Very little development is required. Only a component for encryption and decryption of credit card messages has to be developed. Moreover, the basic code for this task already exists in a .NET component, which can be reused.
- The orchestration, message map, and pipeline are all created using designers hosted inside Visual Studio .NET. This helps .NET developers complete the tasks in an environment familiar to them.
- The transport protocols are very loosely tied to the message-processing business logic. As such, the protocols can be easily swapped with another protocol when required.
- The different outgoing messages are constructed based on the original messages using a combination of message maps and promoted properties. The message formats can be easily changed when required, without any impact on the process.
Archie is also impressed with the capabilities of BizTalk orchestration because it allows complex logic to be built into message exchange. This will be handy for any future change in the message-processing logic.