A typical system is like below:
Customers -- Processes -- Services -- Data Library -- Database
It is relatively easy to create Database, Data Library, Service programs, and Business Process Programs.
Developer can use
- Biztalk to model business process across heterogeneous applications
- Windows Workflow Foundation (WF) to model business processes involving human intervention
But:
- How should I manage or control the state of a business process involving systems and people?
- How do I allow business users to modify the business process on demand?
Biztalk 2006 does not allow to modify process on demand. Business users have to ask developer to change, compile and deploy new orchestration assembly. But WF allows to change or create workflow on demand.
Biztalk is not designed for user intervention either, while WF has sequential and stateful workflow to support user intervention.
So we can combine Biztalk and WF together to make everybody happy in two ways:
1. WF accesses Biztalk
This is a common design. WF deals with user interaction to fill in forms, then WF sends request to Biztalk to complete process across other systems.
2. Biztalk accesses WF services
In this design, Biztalk sends Web Service request to WF service for business users intervention. Also business users can access WF program to get Biztalk statistics through Biztalk BAM.
Although Biztalk R2 will build WF engine inside, the above two kinds of integration will still be reasonable.