For several years now, B2B, or business-to-business, has been a catchphrase for many businesses looking to provide better and more efficient ways to communicate with customers and suppliers. B2B loosely refers to processes that enable applications and business operations to communicate between business partners. For example, you might deploy a B2B solution to enable your top customers to query your product inventory database from their own systems, transmit and process purchase orders, and so on.
Microsoft recently released BizTalk Server 2002, which provides the framework by which you can quickly deploy B2B solutions. Like many of Microsoft's integration products, BizTalk Server 2002 isn't exactly cheap, but its power and flexibility can help you avoid a huge development effort that would probably be required to create solutions for your trading partners. If you weigh the cost of custom development against BizTalk Server, you'll probably find that this Microsoft solution could save you a lot of cash. In this article, I’ll offer an overview of BizTalk Server 2002's core components to help you begin to understand BizTalk Server's potential B2B role.
Bridging systems and processes
Nothing is ever adequately planned—at least, it often seems that way. If you decided to start a new business with interaction between your business partners as your key requirement, you'd be hard-pressed to choose applications and processes that would suit everyone. Many of your partners no doubt use custom solutions they've built in-house. Some are UNIX shops, others are Windows shops, and most probably use a mix of systems. You're probably more likely to be hit by a meteor on your way home than find a single off-the-shelf application or even a handful of applications that let you manage your business and also interact with your partners.
Now, throw in the fact that B2B wasn't in the cards when your business was set up 10, 20, or even 30 years ago. Then pile on the fact that your network and application infrastructure has—even with the best intentions—mutated into a multiheaded beast over the years. It's probably difficult enough just to get this creation you've inherited to play nice with all of its component systems and applications; think how much more difficult it will be to make it talk to your partners' systems.
If you've used or explored Microsoft's Host Integration Server (HIS), you know that it serves, at least in part, as a gateway between disparate systems. For example, HIS can act as a gateway between your Windows 2000 Servers and back-end UNIX systems. In a similar fashion, BizTalk Server acts as a gateway of sorts between your systems and applications and those of your business partners. In fact, it's likely that you will find uses for BizTalk Server just within your own organization to enable your systems and applications to talk to each other. This can particularly be true if your company comprises individual business units that all manage their own systems. You can use BizTalk to allow those systems to communicate, share data, and perform intersystem transactions.
BizTalk Server 2002 comprises several components, the first of which is Messaging Services.
System integration and transaction sharing naturally require communication between systems, whether internally or with your business partners. BizTalk's Messaging Services is a key component that supports that communication. This collection of services supports sending, receiving, parsing, and tracking documents; generating and correlating receipts; and securely mapping and validating data.
Sharing documents is a big part of any B2B integration project. BizTalk Server supports file, HTTP, and message queuing for document receipt. It supports HTTP and secure HTTP (HTTPS) via ASP on IIS, SMTP through Exchange Server, and FTP through IIS. BizTalk Server supports these same mechanisms for sending documents. It also provides Application Integration Components (AICs), which are COM objects your development team can use to transfer documents. In addition, BizTalk offers a loopback transport service that returns current state data to the application where it originated.
Just receiving a document isn't enough; it needs to be parsed and validated before any action can be taken on it. BizTalk Server provides a handful of data parsers to translate non-XML files into XML files. These parsers support ANSI X12, EDIFACT, flat files, and well-formed XML. You can also develop and use your own data parsers with BizTalk Server.
When a document arrives and is parsed, it can also be validated against a server-specific XML schema, or specification. (BizTalk Server provides an editor for creating and modifying these document specifications.) BizTalk maps documents against source and destination specifications, enabling it to map documents between source and target systems and applications. Documents that fail the validation are placed in a queue where they wait for further processing or error correction.
Reliability is another consideration for messaging in BizTalk Server. For example, you need guarantees that documents are delivered and that a glitch doesn't cause multiple copies to be delivered. You configure Messaging Services properties in BizTalk Server to control how documents are sent and received, set retry attempts and time between retries, specify timeout period, and so on. Documents are queued in a central SQL Server database, making them available to all participating BizTalk servers, which means that if a server goes down, the others can still access the pending documents to process them.
Security is no doubt a very important consideration, particularly if you're passing critical data between systems and partners. The different components of BizTalk Server take advantage of the security mechanisms in Windows 2000 and Windows .NET Server, including group security, Integrated Windows Authentication (IWA), SQL Server authentication, PKI, Kerberos, and so on. It supports digital signatures to authenticate transmitted documents and encryption to prevent interception. Receiving systems can decrypt and verify the authenticity of documents. Support for SSL helps you protect documents transferred through HTTP. Support for IPSec, L2TP, and other security mechanisms means you can extend key network segments to partners to facilitate systems integration.
BizTalk Orchestration Services
Just passing documents back and forth isn't much use without some logical processing on those documents. You need a mechanism to tie together all of those processes, and BizTalk Orchestration Services serve as that mechanism. You use Orchestration Services to create B2B processes and the framework in which they operate, including the relationships between processes, how documents are created, how they are processed, and so on.
BizTalk Orchestration Designer is a graphical tool based on Microsoft Visio that you use to develop these relationships and build your B2B or enterprise process framework. You use Orchestration Designer to build a graphical representation of your process workflow. When you're finished, BizTalk Server turns that graphical representation into an XLANG schedule, an executable, XML-based description of the process.
The BizTalk XLANG Scheduler Engine executes these XLANG schedules in response to the events to which they relate. The engine provides complete management of the schedules, including initiation, execution, and termination. The engine also manages in-process schedules, maintaining schedule state data in a SQL Server database (called dehydration) while it's waiting for a message to process. When a message arrives, the scheduler retrieves the state data from the database (called rehydration) and allows it to process the message so the process can proceed.
The BizTalk development process
You could create a B2B solution without BizTalk or other third-party development or integration tools, but doing so would mean building a lot of capability from the ground up, which means writing a lot of code. The main purpose for BizTalk Server is to simplify that development process and reduce it largely to a graphical point-and-shoot process.
I've already touched on Orchestration Designer, which you use to graphically define business processes, bind them to BizTalk components, and turn those processes into executable code. The next logical step in the process is to analyze the types of documents that need to be transferred (purchase orders, receipts, and so on) and build the specifications that will be used to create and validate documents. You use the BizTalk Editor to create, edit, and manage these specifications.
Once you've defined the specifications for both you and your partner’s documents, it's time to map those documents to one another. For example, you need to map a partner's purchase orders to the document format expected by your own systems. You use the BizTalk Mapper to map fields and records in one document specification with files and records in a second specification. The result is an XML-based template that BizTalk Server uses to translate, or remap, data between systems and processes.
I've already touched briefly on the messaging services in BizTalk, and the next step of the process involves developing the communication links between business processes, whether in-house or between partners. That's where BizTalk Messaging Manager comes into play. Messaging Manager provides a graphical interface that you use to configure Messaging Services to exchange and process documents. This includes defining communication channels and ports, defining organizations, defining documents, creating envelopes for transactions to control the communications process, and other aspects of intersystem transfers.
With the communication processes defined, the next step is to deploy BizTalk Server, the XLANG schedules, and the other supporting data and components that will make up your functioning B2B or enterprise-wide business system. You can deploy servers and data manually if yours is a relatively small deployment; you can turn to clustering solutions such as those built into Windows 2000 Server or .NET Server Enterprise Editions; or you can use Microsoft's Application Center 2000 to deploy and manage the clustered servers. A key advantage to using something like Application Center is that much of the deployment can be automated, meaning less hands-on work for your deployment team and therefore less chance for error. Plus, you gain the benefits of clustering to provide fail-over capability and fault tolerance. It's a safe bet that both are key requisites for your business and your partners' businesses.
Speaking of your partners, that's where the deployment plan goes next. After you deploy your systems, your partners need to deploy the appropriate packages that will enable their systems to communicate with yours, and vice versa. Fortunately, BizTalk Server simplifies that process by creating an XML package for each partner to use to configure BizTalk Server on its end to communicate with your systems, transfer documents, perform the necessary processing, and so on. You use the BizTalk SEED Wizard on your end to create the package, and your partners use the same wizard on their end to install the package. The result is that you can put the links in place much more quickly and with greater expected reliability than if you had to rely on your partners to develop and deploy their solutions. Partners can be trading with you in days rather than months.
The BizTalk SEED Wizard speeds up the task of deploying solutions to your partners, but what about simplifying and speeding up your own development tasks? BizTalk Server Accelerators serve that function.
Microsoft includes three accelerators with BizTalk Server 2002. The first is the Accelerator For HIPAA, which simplifies the development of solutions for healthcare providers. The Health Insurance Portability and Accountability Act of 1996 (HIPAA), among other things, mandates strict processes and practices to ensure portability of health care data. HIPAA requires adherence to a single content set and format for specific transaction types, such as submission of insurance claims. The BizTalk HIPAA Accelerator provides preconfigured schemas to support HIPAA transactions and systems.
The BizTalk Accelerator For Suppliers is geared toward businesses that need to quickly integrate their in-house systems for supply management, resource planning, customer management, and other critical business processes. The Accelerator For Suppliers also facilitates quick deployment to business partners, enabling you to put in place processes to facilitate buy/sell transactions with those partners. The accelerator includes predefined schemas and other tools to decrease the amount of time needed to build your B2B solution.
The third accelerator is the Accelerator For RosettaNet. This accelerator simplifies the task of developing, testing, and managing XLANG schedules that are RosettaNet-compliant, and developing a B2B solution that will enable your company to interact with partners that use systems based on the RosettaNet standard. The accelerator includes a handful of additional applications that help you develop and deploy the solution, including tools for managing the XLANG schedule database, test schedules, and merge document specifications. The Messaging Configuration Wizard will help you set up communication objects to enable your systems to communicate with your partners' systems.
Beyond the basics
There's no doubt that BizTalk Server is a very complex product, even though it simplifies what would otherwise be a Herculean task. There are many issues to consider as you move from the planning stage, through development, and finally to deployment. What hardware will you need? What accommodations do you need to make to your network to put the BizTalk Server in place and make it work? How do you bring together all the data you'll need to create document specifications and other process components? Will clustering offer advantages to your particular installation?
In many respects, a lot of the work you'll need to do to implement BizTalk Server is the same as if you were developing your own custom solution. For example, you need to examine your existing systems and processes to determine exactly what it is you need to automate, who your initial partners will be, how the communication will flow between partners, what the network and security requirements will be, and so on. With that out of the way, however, BizTalk Server can significantly decrease development and deployment time and the cash investment that goes with this time expenditure.