Конечная точка управления рабочим процессом
Данный раздел относится к версии Windows Workflow Foundation 4.
Конечная точка управления рабочим процессом позволяет разработчику вызывать операции удаленного управления экземплярами рабочего процесса, которые размещены с помощью WorkflowServiceHost. Эта функция может быть использована для программного выполнения таких операций управления, как приостановка, возобновление и завершение.
Управление экземплярами рабочего процесса
Платформа .NET Framework, версия 4 включает новый контракт IWorkflowInstanceManagement. В нем определен ряд операций управления, которые обеспечивают возможность удаленного управления экземплярами рабочего процесса, размещенных с помощью WorkflowServiceHost. WorkflowControlEndpoint является стандартной конечной точкой, обеспечивающей реализацию контракта IWorkflowInstanceManagement. WorkflowControlClient представляет собой класс, который используется для отправки операций управления WorkflowControlEndpoint.
Экземпляры рабочих процессов могут иметь следующие состояния.
- Активно
Состояния экземпляра рабочего процесса до достижения завершенного состояния при условии, что экземпляр не находится в приостановленном состоянии. В этом состоянии экземпляр рабочего процесса запускается и обрабатывает сообщения приложения.
- Приостановка
В этом состоянии экземпляр рабочего процесса не запускается даже при наличии действий, которые не выполнялись или были выполнены частично.
- Завершение
Завершающее состояние экземпляра рабочего процесса. Экземпляр рабочего процесса не может выполняться после достижения завершенного состояния.
IWorkflowInstanceManagement
Интерфейс IWorkflowInstanceManagement определяет набор операций управления с синхронными и асинхронными версиями. Для версий с транзакциями необходимо использовать привязку с поддержкой транзакций. В следующей таблице перечислены поддерживаемые операции управления.
Операции управления | Описание |
---|---|
Abort |
Принудительно останавливает выполнение экземпляра рабочего процесса. |
Cancel |
Переводит экземпляр рабочего процесса из активного или ожидающего состояния в завершенное состояние. |
Run |
Обеспечивает возможность запуска экземпляра рабочего процесса. |
Suspend |
Переводит экземпляр рабочего процесса из активного состояния в состояние ожидания. |
Terminate |
Переводит экземпляр рабочего процесса из активного или ожидающего состояния в завершенное состояние. |
Unsuspend |
Переводит экземпляр рабочего процесса из состояния ожидания в активное состояние. |
TransactedCancel |
Выполняет операцию отмены для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции. |
TransactedRun |
Выполняет операцию выполнения для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции. |
TransactedSuspend |
Выполняет операцию приостановки для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции. |
TransactedTerminate |
Выполняет операцию прекращения для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции. |
TransactedUnsuspend |
Выполняет операцию возобновления для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции. |
Контракт IWorkflowInstanceManagement не предусматривает возможности создания нового экземпляра рабочего процесса, а позволяет только управлять существующими экземплярами рабочего процесса. Дополнительные сведения удаленном создании нового экземпляра рабочего процесса см. в разделе Расширяемость узла службы рабочих процессов.
WorkflowControlEndpoint
WorkflowControlEndpoint является стандартной конечной точкой с фиксированным контрактом IWorkflowInstanceManagement. После добавления к экземпляру WorkflowServiceHost эта конечная точка может быть использована для отправки командных операций в любой экземпляр рабочего процесса, размещаемый в ведущем экземпляре. Дополнительные сведения о стандартных конечных точках см. в разделе Standard Endpoints.
WorkflowControlClient
WorkflowControlClient является классом, позволяющим отправлять сообщения управления WorkflowControlEndpoint в WorkflowServiceHost. Содержит метод для всех операций, поддерживаемых контрактом IWorkflowInstanceManagement, кроме транзакционных операций. WorkflowControlClient использует внешние транзакции для определения необходимости использования транзакционной операции.