워크플로 관리자 1.0 워크플로에서 사용자 지정 코드 작업과 유형 정의 및 사용

 

게시: 2016년 5월

Workflow Manager 1.0 워크플로는 완전히 선언적인 모델을 사용하여 만들어집니다. 하지만 사용자 지정 코드 기반의 작업이나 사용자 지정 데이터 유형이 필요한 경우 서버 관리자는 이 항목에 설명된 단계를 사용하여 이러한 사용자 지정 유형을 지원 유형에 추가할 수 있습니다.각 유형은 명시적으로 추가하는 것이 좋습니다(특히, 프로덕션 환경의 경우).또는 임의의 코드 실행에 대한 보호 기능을 사용하지 않을 수 있는데 이는 서버의 모든 어셈블리의 유형이 모두 허용된 것과 같은 효과를 갖습니다.이러한 접근 방식은 개발 과정을 단순화시킬 수 있지만 보안에 영향을 주므로 일반적으로 프로덕션 환경에는 적당하지 않습니다.

이 항목의 내용

  • 사용자 지정 코드 작업 지원

  • 사용자 지정 데이터 유형 지원

  • 사용자 지정 코드 작업이나 데이터 유형 제거

  • 임의의 코드 실행에 대한 보호 기능을 사용하지 않음으로써 사용자 지정 코드 지원

참고

이 항목에서는 Workflow Manager 1.0의 사용자 지정 코드 작업을 사용하는 방법을 간략하게 설명합니다.사용자 지정 코드 작업을 만드는 방법에 대한 자세한 내용은Designing and Implementing Custom Activities 및 Authoring Workflows, Activities, and Expressions Using Imperative Code을 참조하세요.Workflow Manager 1.0에서는 ActivityCodeActivity에서 상속된 사용자 지정 작업을 지원합니다.

사용자 지정 코드 작업 지원

Workflow Manager 1.0를 사용하면 사용자가 자신의 선언적 작업과 선언적 워크플로를 게시하고 사용할 수 있습니다.사용자의 작업 및 워크플로에서 바로 사용할 수 있는 다양한 기본 제공 워크플로 작업도 제공됩니다.또한 Workflow Manager 1.0에는 여러 가지 지원 유형과 작업이 포함된 '신뢰할 수 있는 표면'이 정의되어 있습니다.

참고

Workflow Manager 1.0 및 신뢰할 수 있는 표면의 기본 제공 작업에 대한 자세한 내용은 워크플로 관리자 1.0 작업 개요워크플로 관리자 1.0 신뢰할 수 있는 표면을 참조하세요.

허용 유형 및 작업 집합을 확장하면 Workflow Manager 1.0의 보안, 성능, 확장성 및 가용성에 커다란 영향을 줄 수 있습니다. 따라서 선언적 작업의 작성자에게는 수행할 능력이 없는 복잡한 계산이나 데이터 변환을 워크플로에서 수행해야 할 경우와 같이 꼭 필요한 경우가 아니라면 확장하지 않아야 합니다.이러한 경우 고급 사용자는 사용자 지정 코드 작업을 대신 사용할 수 있습니다.서버 관리자는 이 코드 작업이 포함되도록 허용 유형 집합을 확장할 수 있으므로 관리자는 이 코드 작업을 완전하게 신뢰할 수 있습니다.

참고

I/O 통신이 일관성 모델에 포함되도록 하려면 I/O를 수행하는 작업에 지원 Http 메시징 작업이 사용되어야 합니다.자세한 내용은 워크플로 관리자 1.0의 메시징Http 작업을 참조하세요.

관리자가 허용 유형 집합을 확장하려면 다음 단계를 수행해야 합니다.

  1. 유형(예: 사용자 지정 코드 작업)이 포함된 어셈블리를 모든 종속 파일과 함께 다음의 두 폴더로 복사합니다.

    • C:\Program Files\Workflow Manager\1.0\Workflow\WFWebRoot\bin

    • C:\Program Files\Workflow Manager\1.0\Workflow\Artifacts

  2. C:\Program Files\Workflow Manager\1.0\Workflow\WFWebRoot\bin에 AllowedTypes.xml 파일 만들기

  3. 다음 예와 같이 AllowedTypes.xml을 편집하고 <AllowedTypes> xml 요소 내에 원하는 형식을 추가합니다.

    <AllowedTypes>
      <Assembly Name="Contoso.DataTransformations">
        <Namespace Name="Contoso.DataTransformations.Activities">
          <Type>DoDomainSpecificCalculation1</Type>
        </Namespace>
      </Assembly>
    
      <Assembly Name="Contoso.StronglyTypedAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <Namespace Name="Contoso.FinancialCalculation.Activities">
          <Type> GetPresentValueOfABond</Type>
        </Namespace>
      </Assembly>
    </AllowedTypes>
    
  4. AllowedTypes.xml을 두 번째 폴더인 C:\Program Files\Workflow Manager\1.0\Workflow\Artifacts

  5. 다음에 표시될 유지 관리 창에서 Workflow Manager 1.0 서버를 다시 시작합니다.

참고

여러 서버를 배포한 경우 위의 단계를 각 서버에서 실행해야 합니다.

이제, 3단계에서 추가된 유형을 새로 게시된 작업 및 워크플로에서 사용할 수 있습니다.

참고

Workflow Manager 1.0에서는 Activity 또는 CodeActivity 기본 클래스에서 파생된 사용자 지정 코드 작업에 대해서만 위의 방식을 사용할 수 있습니다.

사용자 지정 데이터 유형 지원

사용자 지정 데이터 유형도 허용 유형 집합에 추가할 수 있습니다.이 유형을 워크플로에서 사용하려면 위와 동일한 단계를 수행해야 합니다.하지만 이 사용자 지정 데이터 유형의 속성에 액세스하거나 이 유형을 초기화하려면 추가적인 작업이 허용 유형 목록에 추가되어야 합니다.속성 참조는 표현식 변환기에 의해 자동으로 처리되지 않으므로 VB 표현식은 사용할 수 없습니다.예를 들어 사용자 지정 유형인 Employee에 Name 및 Salary 속성이 있는데, 워크플로에서 이러한 속성에 액세스해야 할 경우 GetEmployeeName 및 GetEmployeeSalary 사용자 지정 코드 작업을 작성해 허용 유형 목록에 추가해야 합니다.

사용자 지정 코드 작업이나 데이터 유형 제거

앞서 추가했던 유형을 허용 유형 목록에서 제거하려면 다음 단계를 수행해야 합니다.

  1. 각 서버의 두 위치(C:\Program Files\Workflow Manager\1.0\Workflow\WFWebRoot\bin 및 C:\Program Files\Workflow Manager\1.0\Workflow\Artifacts)에서 AllowedTypes.xml을 편집하여 제거할 유형 또는 유형에 대한 참조를 허용 유형 목록에서 제거합니다.

  2. 모든 서버에서 WorkflowServiceBackend 서비스를 중지합니다.

  3. 모든 서버에서 WorkflowMgmtPool 응용 프로그램 풀을 중지합니다. 이는 Workflow Manager 1.0 서버를 사용할 수 없도록 렌더링합니다. 따라서 이 단계는 유지 관리 창에서 수행해야 합니다.

  4. 앞에서 C:\Program Files\Workflow Manager\1.0\Workflow\WFWebRoot\bin 및 C:\Program Files\Workflow Manager\1.0\Workflow\Artifacts에 복사한 모든 서버에서 모든 사용자 지정 파일을 제거합니다.

  5. 모든 서버에서 WorkflowMgmtPool 응용 프로그램 풀을 시작합니다.

  6. 모든 서버에서 WorkflowServiceBackend 서비스를 시작합니다.

  7. 제거된 유형이 사용된 모든 선언적 작업 및 워크플로를 제거하여 제거된 유형을 더 이상 참조할 수 없도록 하거나, 제거된 유형을 더 이상 참조하지 않는 이러한 작업 및 워크플로의 새 버전을 게시합니다.

임의의 코드 실행에 대한 보호 기능을 사용하지 않음으로써 사용자 지정 코드 지원

Workflow Manager 1.0에서는 관리자가 임의의 코드 실행에 대한 보호 기능을 사용하지 않도록 설정할 수 있습니다.이는 사용자 지정 코드가 사용되는 솔루션을 개발할 때 필요한 유형을 허용 유형 목록에 추가함에 따른 초과 작업 시간을 면할 수 있는 편리한 옵션입니다.임의의 코드 실행에 대한 보호 기능을 사용하지 않도록 설정하는 것은 서버의 모든 어셈블리의 유형이 모두 허용 유형 목록에 추가된 것과 비슷한 효과를 갖습니다.이 방식은 보안에 영향을 주므로 워크플로 작업을 업로드하거나 Workflow Manager 1.0에서 사용된 데이터베이스를 수정하는 권한이 신뢰할 수 있는 사용자에게만 허용되도록 Workflow Manager 1.0가 구성된 경우에만 사용해야 합니다.

임의의 코드 실행에 대한 보호 기능을 사용하지 않도록 설정하려면

Workflow Manager 1.0에서 임의의 코드 실행에 대한 보호 기능을 사용하지 않도록 설정하려면 관리자가 다음 단계를 수행해야 합니다.

  1. 워크플로 PowerShell 명령 창을 엽니다.

    참고

    워크플로 PowerShell 명령 창을 여는 방법은 PowerShell을 사용하여 워크플로 관리자 1.0 구성을 참조하세요.

  2. 다음 매개 변수를 사용하여 Set-WFServiceConfiguration cmdlet을 실행합니다.

임의의 코드 실행에 대한 보호 기능을 다시 사용하도록 설정하려면

Workflow Manager 1.0에서 임의의 코드 실행에 대한 보호 기능을 다시 사용하도록 설정하려면 관리자가 다음 단계를 수행해야 합니다.

  1. 워크플로 PowerShell 명령 창을 엽니다.

    참고

    워크플로 PowerShell 명령 창을 여는 방법은 PowerShell을 사용하여 워크플로 관리자 1.0 구성을 참조하세요.

  2. 다음 매개 변수를 사용하여 Set-WFServiceConfiguration cmdlet을 실행합니다.