WHAT'S IN THIS CHAPTER?
Getting started with workflow services
Implementing message correlation
Configuring workflow services
Hosting workflow services
Workflows are presented in software development as an effective tool for solving problems or accomplishing business goals. By splitting them into smaller and more manageable pieces, they can be coordinated into a single process.
Workflows also bring reusability and maintainability — two core quality principles in software engineering. They are promoted by workflows because they have smaller pieces that can be reused across several processes and are easier to maintain. These pieces or reusable assets receive the name of activities, and usually describe the work performed by the people or software involved in the process.
When designing workflows within an enterprise application using a bottom-up approach, they are first designed as a set of primitive activities to control the execution flow, communicate with the outside world, or execute actions to change the workflow's internal state. These workflows can later be converted to activities and used as a compositional unit for creating other workflows that coordinate work at a higher level. In this way, the design process can be applied recursively to a number of abstraction levels that you might find necessary.
The same design paradigm can be applied in the service-oriented world. A service can be implemented through a combination of primitive activities in a workflow, ...