Compartilhar via


Visão geral do fluxo de trabalho do Windows

Um fluxo de trabalho é um conjunto de unidades elementais chamadas atividades que são armazenadas como um modelo que descreve um processo do mundo real. Os fluxos de trabalho fornecem uma maneira de descrever a ordem de execução e as relações dependentes entre partes do trabalho de curta ou longa execução. Esse trabalho passa pelo modelo do início ao fim e as atividades podem ser executadas por pessoas ou por funções do sistema.

Motor de execução de fluxo de trabalho

Cada instância de fluxo de trabalho em execução é criada e mantida por um mecanismo em tempo de execução em processo com o qual o processo de host interage por meio de um dos seguintes:

  • WorkflowInvoker, que chama o fluxo de trabalho como um método.

  • A WorkflowApplication para controle explícito sobre a execução de uma única instância de fluxo de trabalho.

  • WorkflowServiceHost para interações mensagem- com base em cenários de várias instâncias.

Cada uma dessas classes encapsula o tempo de execução (runtime) de atividade principal, representado como ActivityInstance, responsável pela execução da atividade. Pode haver vários ActivityInstance objetos em um domínio de aplicativo em execução simultânea.

Cada um dos três objetos de interação de host anteriores é criado a partir de uma árvore de atividades conhecida como um programa de fluxo de trabalho. Usando esses tipos ou um host personalizado que encapsula ActivityInstance, os fluxos de trabalho podem ser executados em qualquer processo do Windows, incluindo aplicativos de console, aplicativos baseados em formulários, Serviços do Windows, sites ASP.NET e serviços do Windows Communication Foundation (WCF).

Componentes de fluxo de trabalho no processo de host
Componentes de fluxo de trabalho no processo principal

Interação entre componentes de fluxo de trabalho

O diagrama a seguir demonstra como os componentes de fluxo de trabalho interagem entre si.

Diagrama que mostra como os componentes de fluxo de trabalho interagem.

No diagrama anterior, o Invoke método da WorkflowInvoker classe é usado para invocar várias instâncias de fluxo de trabalho. WorkflowInvoker é usado para fluxos de trabalho leves que não precisam de gerenciamento do host; fluxos de trabalho que precisam de gerenciamento do host (como Bookmark a retomada) devem ser executados usando Run em vez disso. Não é necessário aguardar a conclusão de uma instância de fluxo de trabalho antes de invocar outra; O mecanismo de runtime dá suporte à execução de várias instâncias de fluxo de trabalho simultaneamente. Os fluxos de trabalho invocados são os seguintes:

Consulte também