Building your own XML messaging engine for a small number of installations or endpoints may be the most cost-effective choice. But it requires intimate knowledge of a family of XML protocols (i.e., XML, XSLT, XSD, and XQuery) and communications protocols (i.e., TCP/IP, SMTP, and HTTP). Unless you develop a custom workflow engine with a simple end-user interface, you'll also end up developing custom code around the business process that consumes multiple XML messaging transactions. For example, if you have a system that sends orders to a remote system for shipping and then needs to receive shipping information to update the local database, you'll have to wrap your XML messaging system with this business logic by developing custom code for each unique instance. BizTalk solves several of these problems for you. First of all, BizTalk has a document editor that makes it simple to define transformation documents. The BizTalk Mapper allows you to develop transformations between two predefined XML documents. It even allows you to write custom functions (functoids) that can do specialised processing on data. Also, you can call your own processing routines from within a BizTalk transformation. BizTalk's Message Manager allows you to build ports and channels that handle the underlying protocol plumbing without having to write any code. The BizTalk Administrator allows you to define receive events that replace the Windows services you'd have to create to handle the workflow. Finally, the BizTalk Orchestration engine uses Visio to allow architects or business analysts to visually design the workflow process around multiple transactions and systems and then turn the design over to a developer for implementation. Choose your path
If your system designs call for complicated or repeated development of XML messaging systems, you should decide in advance to pursue one of two paths. The first option: Develop your own set of standard tools that extend the .Net Framework and allow you to create repeatable and supportable XML messaging solutions. The second is to begin by supporting BizTalk in your applications. Although BizTalk has an associated server licensing cost, you'll recover the cost of the license many times over in the cost of maintenance associated with a custom solution for a system with large numbers of connections or endpoints




