Поделиться через


Общие сведения о Windows Workflow

Рабочий процесс представляет собой набор элементов, называемых действиями , которые хранятся в виде модели, описывающей реальный процесс. Рабочие процессы позволяют описывать порядок выполнения этапов краткосрочных и долгосрочных работ, а также зависимости между этими этапами. Работа проходит по модели от начала и до конца, а действия могут выполняться как людьми, так и системными функциями.

Среда выполнения рабочих процессов

Каждый работающий экземпляр рабочего процесса создается и обслуживается внутрипроцессной подсистемой среды выполнения, с которой ведущий процесс взаимодействует с помощью одного из следующих инструментов:

  • WorkflowInvoker, который вызывает рабочий процесс как метод.

  • WorkflowApplication для явного управления выполнением одного экземпляра рабочего процесса.

  • WorkflowServiceHost для взаимодействия с помощью сообщений в многоэкземплярных сценариях.

Каждый из этих классов является оболочкой для среды выполнения основной операции, представленной как объект ActivityInstance, ответственный за выполнение операции. В домене приложения может быть несколько объектов ActivityInstance, работающих параллельно.

Каждый из трех предыдущих объектов взаимодействия узлов создается из дерева операций, называемого программой рабочего процесса. Используя эти типы или пользовательский узел, который упаковывает ActivityInstance, рабочие процессы можно выполнять внутри любого процесса Windows, включая консольные приложения, приложения на основе форм, службы Windows, ASP.NET веб-сайты и службы Windows Communication Foundation (WCF).

Workflow components in the host process
Компоненты рабочего процесса в хост-процессе

Взаимодействие между компонентами рабочего процесса

На следующей диаграмме показано взаимодействие компонентов рабочего процесса.

Diagram that shows how workflow components interact.

На предыдущей диаграмме используется метод Invoke класса WorkflowInvoker для вызова нескольких экземпляров рабочего процесса. WorkflowInvoker используется для упрощенных рабочих процессов, не требующих управления с сервера. Рабочие же процессы, требующие управления с сервера (например, возобновление Bookmark), должны выполняться с помощью Run. Чтобы вызвать экземпляр рабочего процесса, не обязательно ждать завершения другого. Среда выполнения допускает одновременное выполнение нескольких экземпляров рабочего процесса. Вызываются следующие рабочие процессы:

  • Действие Sequence, содержащее дочернее действие WriteLine. Переменная Variable родительского действия привязана к InArgument дочернего действия. Дополнительные сведения о переменных, аргументах и привязке см. в разделе "Переменные и аргументы".

  • Настраиваемое действие ReadLine. OutArgument действия ReadLine возвращается в вызывающий метод Invoke.

  • Настраиваемое действие, происходящее от абстрактного класса CodeActivity. CodeActivity может обращаться к возможностям среды выполнения (например, к отслеживанию и свойствам) с помощью CodeActivityContext, доступного в качестве параметра метода Execute. Дополнительные сведения об этих функциях времени выполнения см. в разделе "Отслеживание рабочих процессов" и "Трассировка " и "Свойства выполнения рабочего процесса".

См. также