I learned about workflow design last week at a great Microsoft TechEd session and think it's important enough to share with you. First, let me give you some background. As you're probably aware, Exchange 2000 Server features extensive workflow capabilities. The Exchange Workflow Designer that ships with Exchange 2000 lets you design workflow activities that you can implement with Exchange 2000. Microsoft's BizTalk 2000 Server also features workflow, or business-orchestration, capabilities. So the question is: "When should I use Exchange for workflow, and when should I use BizTalk?" An even bigger question is: "When should I use Exchange and BizTalk together to build my workflow or orchestrate my business processes?"
To answer these questions, we need to look at workflow and business orchestration from three perspectives: people-to-people, people-to-application, and application-to-application. People-to-people workflow occurs between individuals. Using Microsoft Outlook to send a meeting request is an example of people-to-people workflow. People-to-application workflow occurs when a person interacts with an application to perform a business activity or process. Using an airline reservation system to book a flight is an example of this type of workflow: The reservation site interacts with a back-end reservation database to provide people-to-application services on the front end. Application-to-application workflow, or orchestration, is more complex: Applications interact with each other behind the scenes as part of a business process or activity. A human resources (HR) system that automatically generates a request by the accounts management system to create a user account in the Active Directory (AD) is an example of application-to-application workflow.
Looking at workflow or orchestration activities from these three perspectives helps us to better position Exchange workflow and BizTalk orchestration and to answer questions about which program is appropriate for a given situation. The Exchange workflow designer might try to convince you that Exchange workflow can handle all three workflow types. Likewise, the BizTalk orchestration designer might claim that BizTalk is best-equipped for all three categories. In truth, the argument might be a bit of a religious argument.
However, at TechEd last week, Microsoft provided some general guidelines concerning the use of Exchange and BizTalk. Exchange 2000's workflow engine and mechanisms are best-suited for people-to-people workflow. For application-to-application workflow, BizTalk's orchestration feature is the superior choice. The middle ground, people-to-application workflow, is a gray area: You can use either Exchange or BizTalk, but circumstances might favor one over the other.
The whole idea behind Microsoft's .NET Enterprise Servers (which include both Exchange 2000 and BizTalk 2000) is that you can use the services and tools to build business solutions. You can use Exchange workflow and BizTalk orchestration in situations in which each is strong, or you might use a combination of both to build the best solution. Keep this interaction in mind if you want to build increasingly complex workflow applications.