The familiar control operations of starting, pausing, and terminating processes are sufficient for managing programs where execution is contained within a single process; however, these operations are insufficient when the program is durable because a durable program spans multiple processes over time. A similar control mechanism that is not scoped to a single process is required for managing durable programs. The Workflow Instance Management Protocol specifies such a control mechanism.
Durable program instances can be hosted on a variety of execution environments or hosts, for example on a desktop computer, a server farm, and so on. The Workflow Instance Management Protocol is provided on durable program hosts that support messaging (that is, messaging hosts) for the external control of various lifetime and execution aspects of the durable program instances running on that host. External control consists of operations for terminating, suspending, and resuming the execution of durable program instances where the client for these operations is typically system administration tooling.
The Workflow Instance Management Protocol defines a set of request and reply SOAP messages that specify these external control operations. This specification also describes the interdependencies of these operations and how they relate to an abstract model of the durable program instance state.
For example, consider an expense approval durable program that is running in a messaging host. The host for the expense approval durable program exposes an expense approval messaging endpoint. The expense approval endpoint and its protocol are part of the definition of the expense approval application. The host can also expose a messaging endpoint that supports the Workflow Instance Management Protocol. This is a generic, infrastructural endpoint provided by the host for the administration of instances of the expense approval durable program. Using this infrastructural endpoint, an administrator of the application can have available tooling that uses the Workflow Instance Management Protocol to control the execution of instances of the expense approval workflows. Using the Abandon, Cancel, Terminate, Suspend, and Unsuspend operations defined in this protocol, the tooling enables the administrator to perform tasks, such as terminating a particular Instance or temporarily suspending its execution.
In some scenarios, operations in the Workflow Instance Management Protocol are used by the system internals itself. For example, the Run operation can be utilized internally by the system for recovery after system failure.