Microsoft BizTalk Server helps companies integrate services and applications both within an organization and also with business partners to create business-to-business (B2B) solutions. Installing BizTalk Server is only half the battle. After installation, you must make adjustments to maximize security and performance. There are also several common tasks you’ll need to perform to complete your BizTalk deployment and begin to manage your services and transactions. Managing BizTalk Server is a complex process, so I can’t cover every aspect in detail here. Instead, I’ll focus on key issues to give you a feel for what to expect after deploying BizTalk Server.
Tweaking BizTalk security
Configuring security is naturally an important consideration for any service, and BizTalk Server is no exception. Unless yours is a small organization, one step you’ll likely need to take is to give other users the ability to manage BizTalk Server. When you install BizTalk Server, Setup creates a group named BizTalk Server Administrators. By default, the group contains the Administrators group and the account that was used to install BizTalk Server.
You can add users to the BizTalk Server Administrators group to give them the capability to manage BizTalk. However, group membership in BizTalk Server Administrators does not by itself grant complete administrative capabilities. Members of the BizTalk Server Administrators group who are not also members of the Windows 2000 Server Administrators group can perform the following tasks:
- Add and remove BizTalk Server groups
- View and change server group properties
- Manage transaction queues
- Add and remove receive functions and view/modify receive function properties
In order to perform all BizTalk Server management tasks, a user must also be a member of the Administrators group. Adding this group membership for a BizTalk administrator adds the following capabilities:
- Add and remove servers from a BizTalk Server group
- View and modify BizTalk Server properties
- View BizTalk Server status
- Free interchanges on a BizTalk Server
At this stage of the game, you should decide who needs partial management capabilities and who needs complete management capabilities. Add to the BizTalk Server Administrators group those users who don’t need to be able to manage servers and interchanges, and add to the Active Directory Administrators group those users who need complete management capabilities.
In addition, you also need to consider SQL Server permissions for your administrative team. BizTalk administrators need full access to the Shared Queue and BizTalk Messaging Management databases in order to fully administer BizTalk. If the user or group currently does not have the necessary permissions, open the SQL Server Enterprise Manager on the SQL Server and use the Security\Logins branch to add the user account or group and grant it the db_owner role for the BizTalk databases.
It’s also likely that you will rely on certificates to ensure security of transactions if you are using BizTalk Server to set up B2B links. BizTalk Server uses certificates to encrypt and decrypt data flowing across public links such as the Internet. Certificates are required to support SSL for secure HTTP and to support S/MIME. An important step in securing your B2B transactions, therefore, is to set up a certificate server and generate and install the certificates needed by BizTalk Server.
You can obtain certificates from a commercial Certificate Authority (CA), but there is generally no reason to do so considering that the general public will not use the certificates (and, therefore, the users do not have to trust the issuing CA). Instead, just set up a Windows 2000 or 2003 server running Certificate Services to generate the certificates you need.
You can configure BizTalk Server to use certificates to digitally sign outgoing documents, verify inbound document decryption, verify inbound document signatures, and perform encryption for S/MIME messages. Review the Certificates Overview section of the BizTalk Server Help documentation for the specific steps for configuring each certificate. You configure certificates in different locations in BizTalk Server according to the certificate’s function. Keep in mind that the BizTalk Server Messaging service account needs to be a member of the local Administrators group in order to access the certificate store.
Another security-related task you need to perform after installation is to configure the BizTalk Server Interchange Application to run under the service account. If you don’t take this step, a user must be logged on to the server for the programmatic submission of documents to work.
- On the server, open the Component Services console from the Administrative Tools folder.
- Drill down through the Component Services branch to locate the BizTalk Server Interchange Application.
- Right-click the application and choose Properties.
- Click the Advanced tab and clear the Disable Changes option, then click OK.
- Open the properties again and click the Identity tab.
- Select This User, enter the service account and password, and click OK.
You will also need to configure roles to enable specific accounts or groups to programmatically submit work items. The first step is to create the role and assign users or groups.
- Open the properties for the BizTalk Server Interchange Application in the Component Services branch again, click the Security tab, and enable the Enforce Access Checks For This Application option.
- Choose the option Perform Access Checks At The Process And Component Level, then click OK.
- Right-click the Roles node and choose New, Role.
- Enter a name for the role and click OK.
- Expand the newly created role, right-click the Users container, and choose New, User. Add accounts or groups as needed and click OK.
The second step is to associate the newly created role with the Submit and SubmitSync methods. While you are still in the Component Services console:
- Expand the BizTalk Server Interchange Application branch and open the Components\BizTalk.Interchange.1\Interfaces\Methods branch.
- Right-click Submit and choose Properties.
- Click the Security tab, and select the role(s) you previously created.
- Do the same for the SubmitSync node and close the Component Services console.
Managing groups and servers
BizTalk Server groups simplify BizTalk management by enabling you to manage a group of servers rather than manage each server separately. Server groups also provide scalability and redundancy by working from the same Shared Queue and Tracking databases, which enables them to work together to process documents.
An important post-installation task is to create BizTalk Server groups and configure the servers within the groups. You use the BizTalk Server Administration console to create and manage server groups. By default, Setup creates a group named BizTalk Server Group. You can add to this group and/or create additional groups. To add to the group, expand the Microsoft BizTalk Server 2002\BizTalk Server Group branch, right-click the group name, and choose New, Server. Enter the server’s name and click OK to add it to the group. Make sure each server you add to a group is running the same version and language of BizTalk Server as all others in the group.
To create a new group, right-click the Microsoft BizTalk Server 2002 branch in the BizTalk Server Administration console and choose New, Group. Enter a name for the group, specify the name and SQL server location for the Tracking and Shared Queue databases for the group, and then click OK.
Next, configure properties from the group. Right-click the group in the BizTalk Server Administration console and choose Properties. The General tab contains options for the SMTP server, Reliable Messaging Reply-To URL, Management Cache Refresh Interval, and Proxy Settings. The Management Cache Interval determines how frequently BizTalk Server updates configuration data. The cache contains group information and group properties, receive functions, database locations, and all other BizTalk Server Administration data. Configuration changes that you make are processed within the specified cache interval. Decrease the value if you need changes to propagate more quickly.
The Connection tab specifies the location of the Shared Queue and Tracking databases used by the group. You can migrate a group to a different set of databases through this tab. Keep in mind that the change doesn’t occur right away, but is subject to the administration cache value on the General tab.
Use the Tracking tab to configure logging of document interchanges and to configure which items are logged. Use the Parsers tab to configure the order in which BizTalk Server processes documents. Adjusting the order allows the most frequently used parser to operate on a document first, improving performance.
Next, configure each of the servers in the group. Expand the group, right-click the server, and choose Stop. Right-click again and choose Properties. Increasing the Maximum Number Of Receive Threads improves receive function throughput, assuming your servers are sized to handle it. Adjust the value upwards to improve performance, but understand that too high a number will degrade performance. The allowed values are from 1 to 128.
The Participate In Work-Item Processing option determines whether the server processes documents. Clear this option if you want the server to receive, but not process, incoming documents. Dedicating a server to document receipt generally improves overall performance. You can adjust the number of worker threads and time between Scheduler calls to further improve performance, but keep in mind that too high a value will have a negative impact on performance if the server isn’t sized to handle it. When you’ve finished tweaking the server settings, close the dialog box, right-click the server, and choose Start to restart it.
Creating and compiling XLANG schedules
XLANG schedules are XML-based documents that describe business processes and bind the process to application services. Before BizTalk Server can process documents, you need to create XLANG schedules that define the processes to be applied to those documents. You use the BizTalk Orchestration Designer to create those schedules. Defining workflow and interaction diagrams for BizTalk is a complex process in itself and very much tied to your business processes, so I can’t cover it in detail here. Instead, I’ll focus on key points to give you an understanding of the processes involved.
The BizTalk Orchestration Designer uses Visio as its core. Defining processes is very much a visual/graphical operation in BizTalk Server. You drag elements into the drawing to define the business process. These predefined elements include flowchart shapes such as Begin, Decision, Abort, Transaction, and so on. Implementation shapes provide access to BizTalk Messaging, queuing, scripts, and so on. Communication shapes define communication elements such as ports, port references, constants, and messages.
The result of your efforts in the Orchestration Designer is an XLANG schedule drawing. You then compile the schedule drawing into an XLANG schedule, which is an XML-based file that the XLANG Scheduler Engine can interpret and execute. To compile your finished drawing into an XLANG schedule, choose File | Make XLANG. Orchestration Designer prompts you for a file name and then begins compiling the schedule. It starts at the Begin shape and works its way down through the entire process tree until it reaches the End shape. The XLANG Scheduler Engine displays errors as it finds them.
Creating specifications and document maps
After you create the XLANG schedules that define the business processes your BizTalk solution will use, you need to define the documents with which that solution will work. You also need to map your documents with those of your business partners.
You create a specification for documents with the BizTalk Editor. The result is an XML schema that defines the document’s structure. You can easily create new EDIFACT, X12, and XML document specifications with the BizTalk Editor because BizTalk Editor includes several templates for common document types. These templates will likely not fit your needs exactly, but you can easily modify the documents, adding or removing records and fields as needed. You can also start from a blank specification if none of the templates suits your needs.
After creating and validating the document specifications, you need to map your partners’ documents to your own. The map transforms the data from a given incoming message conforming to a specification used by the partner to a specification used within your organization. For example, you might map a partner’s incoming Order specification into your ProcessOrder specification, which would translate the partner’s purchase order request data into the format required by your order-processing document.
You use the BizTalk Mapper to map documents. In a nutshell, the BizTalk Mapper provides a graphical interface for mapping links between fields in the source and destination documents. You start a new map, retrieve the source and destination documents, and then simply drag fields from the source document to the destination to create the link between them.
BizTalk Mapper also includes numerous functions (quaintly called functoids) that you can use to perform various manipulations on the fields. For example, you would use the Multiplication functoid to multiply the Quantity field in the source purchase order by the Price, and then link the results of that function to the ExtendedPrice field in the destination document. Using functoids is a graphical process in BizTalk Mapper, as well. You drag the functoid to the mapping grid, drag source fields to it, then drag the functoid to the desired destination field.
The final step in creating the map is to compile it. Choose Tools | Compile Map. BizTalk Mapper compiles the map, displays any warnings generated, and displays the compiled map in its Output pane where you can review the XML map.
Configuring BizTalk Messaging Services
With document specifications and maps in place, you should next turn your attention to configuring BizTalk Messaging Services to define how documents are sent and received. You use the BizTalk Messaging Manager for this configuration.
You begin by creating an organization, which serves as the source for a channel or destination for a messaging port. Choose File | New | Organization, enter an organization name, then click the Identifiers tab to verify, and if needed, add or modify the identifier for the organization.
Next, you create the document definitions that reference the document specifications to be shared between partners. Still in BizTalk Messaging Manager, choose File | New | Document Definition. In the resulting dialog box, enter a name for the document definition, select the Document Specification option, and click Browse to browse WebDav for the document. You can use the Global Tracking tab to specify certain fields to be logged to the Tracking Database for all instances of the document processed by a given channel.
Next, turn to creating messaging ports, which define the destination for documents. In the BizTalk Messaging Manager, choose File | New | Messaging Port | To An Organization. BizTalk Messaging Manager starts a wizard that steps you through the process of creating the port. You specify a name for the port, organization, primary transport (such as HTTP or SMTP), the transport address (such as URL or mailto address), allowed transport hours, and backup transport information. Within the wizard you also specify the envelope format and organization identifier, and then specify the security properties for the port, such as encoding type, encryption certificate, and digital signature.
When you complete the port wizard, BizTalk Messaging Manager launches the New Channel wizard, which helps you create the channel. Within the wizard, you specify either an XLANG schedule or application to process the documents and receipt options. The wizard then helps you choose the inbound document definition for the channel, set security verification options for incoming documents, and set tracking and filtering options for handling inbound documents. Next, the wizard helps you specify the outbound document, map an inbound to an outbound document, and specify whether to digitally sign the outbound document and what certificate to use for that purpose. Finally, you specify logging options for the channel and a handful of additional options, such as retry frequency and intervals.
The next step is to define the receive functions that will receive incoming documents and send them to BizTalk Messaging Service for processing. You turn to the BizTalk Server Administration tool for that. Expand the server group and click the Receive Functions node. Right-click Receive Functions and choose New, followed by the type of receive function to create (file, HTTP, or Message Queuing). In any case, you specify a name, server for running the receive function, preprocessor, and authentication credentials if needed. In the Advanced properties, you configure the envelope, channel, document definition name, and source and destination if the document doesn’t contain that information.
Move next to your partners' servers
After all of this configuration work on your servers, you need to go through it all again on your partners’ servers. You could do it manually (or expect them to do it manually), but that’s generally not practical for a variety of reasons. For one, your partners are likely widely separated from you geographically. Perhaps more importantly, the number of items to configure in even a relatively small business process makes it impractical from a time standpoint and subject to error.
You can use the BizTalk SEED Wizard to create a SEED package that you provide to your partners. They can then install the package, which creates the necessary specifications, channels, ports, and so on to enable them to interact with your test server. If all works as planned, your partners can then make modifications as needed to tie into your active system and start sharing transactions.
As you probably surmised, the process for setting up BizTalk Server and creating the B2B links needed to make it work is a very complex one. This has been a very broad overview of the process to help you understand the steps required when you get to that point. Naturally, there is a lot of planning, development, and testing that will go into the process.
To learn more about the steps for creating document specifications, creating ports and channels, and accomplishing the other tasks needed to get your B2B solutions in place, consult the Help documentation included with BizTalk Server. Also, open the Documentation folder of your BizTalk Server installation and open the Tutorial.doc file. This tutorial helps you through the process I’ve described here using the many sample files included with BizTalk Server.