다음을 통해 공유


Windows Workflow 개요

워크플로는 실세계 프로세스를 설명하는 모델로 저장되는 A workflow is a set of elemental units called 활동이라는 요소 단위의 집합입니다. 워크플로를 통해 단기 실행 작업과 장기 실행 작업의 실행 순서와 종속 관계를 설명할 수 있습니다. 이 작업은 모델을 시작부터 끝까지 통과하며 활동은 사람이 실행하거나 시스템 함수로 실행될 수 있습니다.

워크플로 런타임 엔진

실행 중인 모든 워크플로 인스턴스는 다음 중 하나를 통해 호스트 프로세스와 상호 작용하는 in-process 런타임 엔진에서 만들고 유지합니다.

  • 메서드와 같이 워크플로를 호출하는 WorkflowInvoker

  • 단일 워크플로 인스턴스의 실행을 명시적으로 제어하기 위한 WorkflowApplication

  • 다중 인스턴스 시나리오에서 메시지 기반 상호 작용에 사용하는 WorkflowServiceHost

이 클래스는 각각 활동 실행을 담당하는 ActivityInstance로 표현되는 코어 활동 런타임을 래핑합니다. 애플리케이션 도메인 내에는 동시에 실행되는 여러 ActivityInstance 개체가 있을 수 있습니다.

위의 세 가지 호스트 상호 작용 개체는 각각 워크플로 프로그램이라는 활동 트리에서 만들어집니다. 이 형식을 사용하거나 ActivityInstance를 래핑하는 사용자 지정 호스트를 사용하면 콘솔 애플리케이션, 폼 기반 애플리케이션, Windows 서비스, ASP.NET 웹 사이트 및 WCF(Windows Communication Foundation) 서비스를 포함한 모든 Windows 프로세스 내부에서 워크플로를 실행할 수 있습니다.

Workflow components in the host process
호스트 프로세스의 워크플로 구성 요소

워크플로 구성 요소 간의 상호 작용

다음 다이어그램에서는 워크플로 구성 요소가 서로 상호 작용하는 방법을 보여 줍니다.

Diagram that shows how workflow components interact.

위의 다이어그램에서는 Invoke 클래스의 WorkflowInvoker 메서드를 사용하여 여러 워크플로 인스턴스를 호출합니다. WorkflowInvoker는 호스트에서 관리할 필요 없는 간단한 워크플로에 사용되며, 호스트에서 관리해야 하는 워크플로(예: Bookmark 다시 시작)는 그 대신 Run을 사용하여 실행해야 합니다. 한 워크플로 인스턴스가 완료될 때까지 기다렸다가 다른 워크플로 인스턴스를 호출할 필요는 없습니다. 런타임 엔진은 여러 워크플로 인스턴스의 동시 실행을 지원합니다. 호출된 워크플로는 다음과 같습니다.

참고 항목