맨위로가기

윈도우 워크플로 파운데이션

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

윈도우 워크플로 파운데이션(Windows Workflow Foundation, WF)은 .NET Framework를 위한 워크플로 엔진으로, 응용 프로그램에서 순차적, 상태 머신, 규칙 기반 워크플로를 생성하고 실행할 수 있게 해준다. .NET Framework 3.0에서 처음 도입되었으며, 이후 버전에서 기능이 개선되었다. WF는 XAML 또는 .NET 언어를 사용하여 워크플로를 정의하고, 비주얼 스튜디오를 통해 워크플로를 설계, 디버깅, 컴파일할 수 있는 개발 도구를 제공한다. 윈도우 워크플로 파운데이션은 Microsoft Office SharePoint Server, Microsoft Speech Server, Microsoft Dynamics CRM, Microsoft BizTalk Server 등 다양한 마이크로소프트 제품에서 사용된다.

더 읽어볼만한 페이지

  • 윈도우 비스타 - 퍼블 플레이스
    퍼블 플레이스는 짝맞추기, 손과 눈의 협응력, 암호 해독 등 다양한 종류의 세 가지 미니 게임(퍼블 페어스, 컴피 케이크, 퍼블 숍)으로 구성된 게임 모음집이다.
  • 윈도우 비스타 - 윈도우 디스플레이 드라이버 모델
    윈도우 비스타부터 도입된 윈도우 디스플레이 드라이버 모델(WDDM)은 성능 향상, 안정성, 새로운 기술 지원을 목표로 개발된 디스플레이 드라이버 아키텍처로, 가상화된 비디오 메모리, GPU 스케줄링, 프로세스 간 Direct3D 표면 공유, 향상된 오류 허용성 등의 특징을 가지며 데스크톱 윈도우 관리자(DWM)를 통한 합성 데스크톱 환경 구현에 필수적이다.
윈도우 워크플로 파운데이션 - [IT 관련 정보]에 관한 문서
개요
이름윈도우 워크플로 파운데이션
영어Windows Workflow Foundation (WF)
개발마이크로소프트
최초 출시일2006년 11월 21일
최신 버전WF45
최신 버전 출시일2012년 8월 15일
운영 체제마이크로소프트 윈도우
플랫폼.NET Framework
장르소프트웨어 프레임워크
웹사이트윈도우 워크플로 파운데이션 공식 문서

2. 워크플로 파운데이션 버전

.NET Framework 버전에 따라 윈도우 워크플로 파운데이션은 다음과 같이 발전해 왔다.[3]


  • .NET Framework 3.0: (하위 섹션에서 상세히 다룸)
  • .NET Framework 3.5: (하위 섹션에서 상세히 다룸)
  • .NET Framework 4: (하위 섹션에서 상세히 다룸)
  • 이후 버전: (하위 섹션에서 상세히 다룸)

2. 1. .NET Framework 3.0

워크플로 파운데이션은 처음 .NET Framework 버전 3에서 출시되었으며,[3] 주로 `System.Workflow.Activities`, `System.Workflow.ComponentModel` 및 `System.Workflow.Runtime` 네임스페이스를 사용한다. 버전 3의 워크플로는 순차 모델(활동이 순서대로 실행되고, 한 활동의 완료가 다음 활동으로 이어짐) 또는 상태 머신 모델(활동이 외부 이벤트에 응답하여 실행됨)을 사용하여 생성되었다. 마이크로소프트 셰어포인트 2007은 WF 3을 사용한다.

2. 2. .NET Framework 3.5

.NET Framework 3.5에서는 워크플로를 Windows Communication Foundation(WCF)과 통합하는 메시징 활동이 도입되었다. 새로운 `ReceiveActivity`를 통해 워크플로는 들어오는 WCF 메시지에 응답할 수 있었다. 버전 3.5 워크플로의 새로운 기능은 `System.ServiceModel` 네임스페이스를 사용한다.[3] 마이크로소프트 셰어포인트 2010은 WF 3.5를 사용한다.

2. 3. .NET Framework 4

.NET Framework 4에서 윈도우 워크플로 파운데이션은 데이터 계약 해결자, 플로우차트(Flowchart) 및 기타 흐름 제어 활동과 같은 새로운 기능을 통해 대폭 개선되었다.[3] .NET 4의 워크플로는 `System.Activities` 네임스페이스를 사용한다. 특히, 버전 4에는 더 이상 워크플로 런타임 객체가 없으며, 대신 `WorkflowApplication` 또는 `WorkflowInvoker`를 사용하여 워크플로를 직접 실행한다.

이전 버전의 .NET Framework에서 생성된 활동은 `Interop` 활동을 사용하여 .NET 4 워크플로에서 실행할 수 있다.

2. 4. 이후 버전

윈도우 폰의 이후 버전 및 릴리스에는 업데이트된 상태 머신 및 동적 업데이트가 포함될 예정이다.[3]

3. 워크플로 만들기

워크플로는 XML 기반 언어인 XAML을 사용하여 선언적으로 정의하거나, 닷넷을 지원하는 언어(VB.NET, C 샤프, C++/CLI)를 사용하여 코드 내에서 표현할 수 있다.[1]

워크플로는 워크플로 디자이너를 사용하여 XAML로 정의하거나, C# 또는 VB.NET과 같은 .NET 언어로 프로그래밍 방식으로 조립하여 생성된다. 디자이너를 사용하는 경우, 도구 상자에서 활동을 끌어다 워크플로 디자이너 캔버스에 조립하며, 워크플로 인수와 변수도 디자이너 내에서 생성되고 할당된다. 워크플로가 코드로 조립되는 경우, 활동은 다른 CLR 객체처럼 인스턴스화되어 단일 부모 활동(일반적으로 Sequence 또는 Flowchart)의 컬렉션으로 조립된다. 그런 다음 단일 부모 활동은 WorkflowApplication 또는 WorkflowInvoker를 사용하여 실행되며 워크플로로 실행된다. 여기서 "워크플로"라는 용어는 일반적으로 호스트에 의해 실행되는 루트 활동을 의미한다. 워크플로는 즉시 사용 가능한 활동과 사용자 지정 활동을 모두 사용할 수 있다.

3. 1. 워크플로 구성 요소

워크플로는 활동(Activity)으로 구성된다. 개발자는 자신만의 도메인 특화 활동을 작성하여 워크플로 내에서 사용할 수 있다. WF는 제어 흐름(Control Flow) 개념을 구현하는 다양한 범용 활동을 제공한다.[1]

비주얼 스튜디오 2005에 대한 확장 세트는 다음 항목을 포함한다.[3]

  • 비주얼 워크플로 디자이너: 사용자들이 워크플로를 설계할 수 있다.
  • 비주얼 디버거: 사용자들이 설계된 워크플로를 디버깅할 수 있다.
  • 프로젝트 시스템: 비주얼 스튜디오 2005 안에서 워크플로를 컴파일할 수 있다.

3. 2. 개발 도구

윈도우 워크플로 파운데이션은 비주얼 스튜디오 2005에 대한 확장 집합을 통해 지원된다. 이러한 확장은 다음을 포함한다.

  • 비주얼 워크플로 디자이너: 사용자들이 워크플로를 설계할 수 있다.
  • 비주얼 디버거: 사용자들이 설계된 워크플로를 디버깅할 수 있다.
  • 프로젝트 시스템: 비주얼 스튜디오 2005 안에서 워크플로를 컴파일할 수 있다.

4. 워크플로의 종류

윈도우 워크플로 파운데이션(WF)을 사용하면 세 가지 종류의 워크플로를 만들 수 있다. 순차적 워크플로, 상태 머신 워크플로, 규칙 기반 워크플로가 있다.

4. 1. 순차적 워크플로 (Sequential Workflow)

활동들이 정해진 순서대로 실행되는 워크플로이다. 한 활동이 완료되면 다음 활동이 실행되는 방식으로 진행된다.

4. 2. 상태 머신 워크플로 (State-Machine Workflow)

외부 이벤트에 응답하여 활동이 실행되는 워크플로로, 특정 상태에서 다른 상태로 전환하면서 프로세스가 진행된다.[1]

4. 3. 규칙 기반 워크플로 (Rules-driven Workflow)

정의된 규칙에 따라 실행되는 워크플로이다. 비즈니스 규칙을 기반으로 프로세스의 흐름을 제어할 수 있다.

5. 워크플로 실행 및 관리

.NET Framework 3.0 워크플로 런타임은 워크플로의 실행과 관리를 수행하며, 임의의 CLR 애플리케이션 도메인(Windows 서비스, 콘솔 서비스, 웹 애플리케이션)에서 실행된다. 호스트는 직렬화 등의 서비스를 필요에 따라 제공하며, 워크플로 인스턴스의 이벤트(유휴 상태, 중지 등)를 추적할 수 있다.

5. 1. 워크플로와의 통신

호스트 애플리케이션은 워크플로를 실행하기 전에 환경을 설정하고, 해당 인터페이스를 구현한 객체를 제공한다.[1] 해당 인터페이스를 구현한 객체가 이벤트를 발생시키면, 대응하는 워크플로가 이에 반응하여 데이터를 주고 받는다.[1] 인터페이스 상의 메서드는 호스트와의 통신을 위해 워크플로에서 호출된다.[1]

6. 워크플로 사용 시나리오

윈도우 워크플로 파운데이션은 문서 승인, 채용, 구매와 같이 정해진 순서의 비즈니스 프로세스를 실행하는 애플리케이션을 만드는 데 사용된다.[1] 이러한 프로세스는 짧은 시간 안에 실행될 수도 있지만, 일반적으로 오래 실행되므로 애플리케이션은 단계 사이에 메모리를 절약하기 위해 종료해야 한다.[1]

6. 1. 주요 특징

윈도우 워크플로 파운데이션으로 모델링할 비즈니스 프로세스는 일반적으로 다음과 같은 특징을 갖는다.

  • 항목의 구매 가격을 결정하는 데 필요한 세금 또는 배송 계산, 구매, 채용 또는 프로세스를 승인하는 데 필요한 일련의 단계와 같이 주기적으로 변경될 수 있는 특정 비즈니스 로직을 가진다.[1]
  • 몇 시간 또는 며칠 간격으로 워크플로에 여러 입력이 발생한다.[1]
  • 상황에 따라 워크플로 실행이 다른 분기로 이동해야 할 수 있는 고급 비즈니스 로직을 가진다.[1]
  • 데이터베이스, 웹사이트 또는 다른 클라이언트 애플리케이션이나 웹 서비스와 같은 다른 시스템과 상호 작용해야 한다.[1]

7. Windows Workflow Foundation이 사용되는 제품

제품명버전
마이크로소프트 오피스 셰어포인트 서버2007
마이크로소프트 스피치 서버2007
Microsoft Dynamics CRM4.0
마이크로소프트 비즈토크 서버2006


참조

[1] 웹사이트 Windows Workflow Foundation (WF) FAQ https://social.techn[...] Microsoft 2018-12-22
[2] 웹사이트 A Developer's Introduction to Windows Workflow Foundation (WF) in .NET 4 http://msdn.microsof[...] 2010-04-21
[3] 뉴스 .NET Framework 3.0 https://blogs.msdn.m[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com