워크플로 관리자 1.0의 주요 개념

 

게시: 2016년 5월

이 항목에서는 Workflow Manager 1.0 주요 개념에 대해 간략하게 설명합니다.

주요 개념

  • 워크플로 관리 서비스

  • 워크플로 클라이언트 API

  • 작업

  • 워크플로

  • 인스턴스

  • Scope

  • 알림

  • DynamicValue

워크플로 관리 서비스

Workflow Manager 1.0는 워크플로 게시, 관리 및 실행을 위해 REST 기반 서비스 끝점을 표시합니다.워크플로 정의 및 해당 인스턴스와 상호 작용하는 모든 통신은 HTTP(S)를 통해 수행됩니다.

워크플로 관리에 대한 자세한 내용은워크플로 관리자 1.0 서버 관리를 참조하세요.

워크플로 클라이언트 API

Microsoft.Workflow.Client.dll의 패키지로 제공되는 워크플로 클라이언트 API는 워크플로 게시, 관리 및 실행에 사용할 수 있는 .NET 기반의 클래스 집합입니다.이 워크플로 클라이언트 API는 내부 HTTP 트래픽을 워크플로 관리 서비스로 추출해 내는 첫 번째 클래스 API 집합을 제공합니다.

작업

작업이란 워크플로 기능을 구성하는 블록이 포함된 명명된 엔터티입니다.대개 작업은 다른 작업을 통해 또는 개발자가 만든 사용자 지정 작업이나 Microsoft.Activities 네임스페이스에 제공된 작업을 통해 구성됩니다.

작업은 워크플로 클라이언트 API에서 ActivityDescription 클래스로 표현됩니다.이 클래스의 기본 구성원은 작업에 대한 XAML 기반의 정의를 나타내는 Xaml 속성입니다.

워크플로

워크플로는 활성화하거나 시작할 수 있는 워크플로를 나타내는 명명된 엔터티입니다.워크플로는 클라이언트 API에서 WorkflowDescription 클래스로 표현됩니다.이 클래스의 2가지 주요 속성은 다음과 같습니다.

  1. ActivityPath - 이 워크플로의 구현 본체로 사용될 작업을 지정합니다.

  2. ActivationFilter - 이 워크플로의 인스턴스를 활성화할 수 있는 메시지의 특성을 정의합니다.

인스턴스

워크플로 인스턴스는 특정 워크플로의 인스턴스를 나타내는 엔터티입니다.인스턴스는 다음과 같은 2가지 방법으로 만들어집니다.

  1. 명시적 방법으로, StartWorkflow API를 호출하면 특정 워크플로의 새 인스턴스가 시작됩니다.

  2. 묵시적 방법으로, PublishNotification API를 사용하면 지정된 워크플로의 ActivationFilter에 맞는 메시지가 게시됩니다.그런데, 하나의 메시지가 워크플로 0개 또는 1개 이상에 대한 ActivationFilter에 맞을 수 있습니다.이러한 메시지를 게시하면 ActivationFilter에 맞는 각각의 워크플로에 대해 새로운 인스턴스가 만들어집니다.

워크플로 인스턴스가 만들어지고 나면 인스턴스는 클라이언트 API에서 WorkflowInstanceInfo 클래스로 표현됩니다.

Scope

범위란 작업, 워크플로, 인스턴스, 구성 및 하위 범위를 위한 안전하고 명명된 컨테이너입니다.범위는 다중 테넌트 및 메시징에 대한 경계도 제공합니다(알림).범위는 워크플로 클라이언트 API를 사용하여 만들거나 수정할 수 있습니다.범위는 클라이언트 API에서 T:Microsoft.Workflow.Client.ScopeInfo 클래스로 표현됩니다.

워크플로가 설치될 때 루트 범위만 미리 만들어지며 이 루트 범위는 삭제할 수 없습니다.그 밖의 범위는 필요에 따라 만들 수 있습니다.중첩 수준이 여러 개인 범위도 지원됩니다.워크플로와 작업은 루트 범위 아래의 범위에 배포되어야 합니다.

작업, 워크플로인스턴스는 단일 범위에 속합니다.작업과 워크플로는 게시되어 있는 범위에 속합니다.인스턴스는 해당 워크플로와 같은 범위에 속합니다.

작업 xaml은 같은 범위에 속하거나, 바로 윗 상위 범위에 속하거나 또는 루트 범위를 제외한 임의의 상위 범위에 속하는 다른 작업을 참조하고 사용할 수 있습니다.

워크플로는 같은 범위, 바로 윗 상위 범위 또는 루트 범위를 제외한 임의의 상위 범위의 작업을 사용하여 정의할 수 있습니다.

범위의 보안 및 기타 구성 설정은 해당되는 모든 하위 범위에 상속됩니다.

범위는 명명 경계입니다.각각의 명명된 엔터티(작업, 워크플로 및 하위 범위)의 이름은 이들이 속한 범위 내에서 고유해야 합니다.

범위도 PublishNotification API의 대상입니다. 이는 PublishNotification에 전달된 단일 메시지는 대상 범위에 속한 워크플로만 활성화할 수 있습니다.

워크플로는 하위 범위에 대해 아무런 특정 의미 체계를 위임하지 않습니다.지정된 응용 프로그램에 적절한 범위 구조는 워크플로의 사용자에 의해 결정됩니다.

예를 들어 OnlineCollaborationSolution을 개발하는 ISV는 OnlineCollaborationSolution 응용 프로그램의 테넌트(예: Contoso, Fabrikam 및 Litware 등)를 나타내는 상위 수준 범위를 만들 수 있습니다.다음 다이어그램에서와 같이, OnlineCollaborationSolution은 자신의 테넌트가 리소스 모델에서 중첩된 범위로 표현되는 엔터티를 만들 수 있도록 허용할 수 있습니다.

Windows Azure Workflow Scopes

알림

워크플로 인스턴스는 알림 메시지를 통해 만들어지고 다시 시작될 수 있습니다.범위에 게시된 메시지는 워크플로에 정의된 대로 필터에 맞는 모든 워크플로 인스턴스에 퍼져 비동기적으로 배달될 수 있습니다.

워크플로에서의 메시징 에 대한 자세한 내용은워크플로 관리자 1.0의 메시징을 참조하세요.

DynamicValue

DynamicValue란 복잡한 데이터를 워크플로에 전달하거나, 워크플로 내 데이터를 조작하거나, JSON과 같은 워크플로 유형 밖의 데이터를 전달하기 위해 사용할 수 있는 동적 데이터 구조입니다.

DynamicValue에 대한 자세한 내용은동적 값에 대한 이해를 참조하세요.