워크플로
더 많은 작업
- Workflow; 워크플로우
- 작업 절차를 통한 정보 또는 업무의 이동을 의미하며, 작업 흐름이라고 해석할 수 있다.
- 업무들이 어떻게 구성되고,
- 누가 수행하며,
- 순서가 어떻게 되며,
- 어떻게 동기화를 시킬지,
- 업무를 지원하기 위한 정보가 어떻게 흐르는지 그리고
- 업무가 어떻게 추적되는지 등이다.
워크플로는 업무 처리 과정을 작업(activity, task), 작업 사이의 흐름, 작업을 수행하는 사람·시스템, 작업에 필요한 데이터로 정의한 것이다. 이 정의를 컴퓨터가 해석해 작업을 담당자에게 배정하고 순서대로 진행시키는 시스템을 워크플로 관리 시스템(WfMS)이라 한다. 전자결재, 구매 요청, 보험금 청구 처리 같은 사무 업무에서 시작해 BPM, 데이터 처리 파이프라인, 클라우드 서비스 오케스트레이션(AWS Step Functions)으로 넓어졌다.
워크플로는 네 가지 관점으로 기술한다.
- 제어 흐름(control-flow) : 작업의 실행 순서와 분기·병합
- 데이터(data) : 작업 사이에 오가는 데이터와 그 범위
- 자원(resource) : 작업을 누가(역할·사람·시스템) 수행하는지
- 예외 처리(exception handling) : 실패·취소·시간 초과 시 대응
워크플로 관리 연합(WfMC)은 1995년 워크플로 시스템의 구성과 인터페이스를 표준화한 참조 모델을 내놓았다. 가운데의 워크플로 실행 서비스(enactment service)가 하나 이상의 워크플로 엔진으로 프로세스를 실행하고, 주변 요소와 다섯 개의 인터페이스로 연결된다.
| 인터페이스 | 연결 대상 | 내용 |
|---|---|---|
| 1 | 프로세스 정의 도구 | 설계 도구가 만든 프로세스 정의를 엔진에 넘김(XPDL) |
| 2 | 워크플로 클라이언트 응용 | 사용자 작업 목록(worklist) 조회와 처리 결과 반환 |
| 3 | 호출 응용 프로그램 | 작업 수행 중 외부 응용 프로그램 실행 |
| 4 | 다른 워크플로 실행 서비스 | 서로 다른 워크플로 시스템 간 상호 운용 |
| 5 | 관리·모니터링 도구 | 프로세스 상태 감시, 사용자·자원 관리, 감사 기록 |
- Workflow Pattern
- 워크플로에서 반복해서 나타나는 제어 흐름·데이터·자원 구조를 정형화한 것으로, 워크플로 언어와 제품의 표현 능력을 비교하는 기준
반 데르 알스트(W.M.P. van der Aalst), 터 호프스테더(A.H.M. ter Hofstede) 등이 2003년 실제 워크플로 제품과 언어를 분석해 20개의 제어 흐름 패턴을 6개 범주로 정리했고, 2006년 개정에서 43개로 늘렸다. 데이터·자원·예외 처리 패턴도 따로 정의되어 있다. 이후 BPMN, BPEL 같은 프로세스 언어가 어떤 패턴을 표현할 수 있는지 평가하는 기준으로 널리 쓰인다.
- Basic Control-flow Patterns
모든 워크플로 언어가 지원하는 가장 기본적인 다섯 가지 패턴이다.
| 번호 | 패턴 | 설명 | 예 | BPMN 표현 |
|---|---|---|---|---|
| WCP-1 | 순차(Sequence) | 앞 작업이 끝나야 다음 작업이 시작된다 | 주문 접수가 끝나면 결제 처리 | 순서 흐름(화살표) |
| WCP-2 | 병렬 분기(Parallel Split, AND-split) | 한 지점에서 여러 흐름이 동시에 시작된다 | 결제가 끝나면 상품 포장과 영수증 발행을 동시에 | 병렬 게이트웨이(+) 분기 |
| WCP-3 | 동기화(Synchronization, AND-join) | 병렬로 나뉜 흐름이 모두 끝나야 다음 작업이 시작된다 | 포장과 영수증 발행이 둘 다 끝나야 배송 | 병렬 게이트웨이(+) 병합 |
| WCP-4 | 배타적 선택(Exclusive Choice, XOR-split) | 조건에 따라 여러 경로 중 하나만 선택한다 | 금액이 100만 원 이상이면 임원 결재, 미만이면 팀장 결재 | 배타적 게이트웨이(X) 분기 |
| WCP-5 | 단순 병합(Simple Merge, XOR-join) | 여러 대안 경로 중 어느 하나가 도착하면 동기화 없이 다음 작업을 진행한다. 동시에 둘 이상 도착하지 않는다고 가정 | 임원 결재든 팀장 결재든 끝나면 구매 발주 | 배타적 게이트웨이(X) 병합 |
짝으로 기억하면 쉽다. 병렬 분기(AND-split)는 동기화(AND-join)로, 배타적 선택(XOR-split)은 단순 병합(XOR-join)으로 닫는다. 병렬 분기를 단순 병합으로 닫으면 다음 작업이 여러 번 실행되고, 배타적 선택을 동기화로 닫으면 오지 않을 흐름을 영원히 기다리는 교착이 생긴다.
| 범주 | 대표 패턴 | 내용 |
|---|---|---|
| 기본 제어 | 순차, 병렬 분기, 동기화, 배타적 선택, 단순 병합 | 위 표 |
| 고급 분기·동기화 | 다중 선택(Multi-Choice, OR-split), 동기화 병합(Synchronizing Merge, OR-join), 다중 병합(Multi-Merge), 판별자(Discriminator) | 조건에 맞는 여러 경로를 고르고, 실제로 활성화된 경로만 기다리거나 첫 도착만 받아 진행 |
| 구조 | 임의 순환(Arbitrary Cycles), 암묵적 종료(Implicit Termination) | 반복 구조, 더 할 일이 없으면 종료 |
| 다중 인스턴스 | 동기화 없는 다중 인스턴스, 설계·실행 시점에 개수가 정해지는 다중 인스턴스 | 같은 작업을 여러 건 동시에 수행(예: 지원자별 서류 심사) |
| 상태 기반 | 지연 선택(Deferred Choice), 교차 병렬 라우팅(Interleaved Parallel Routing), 이정표(Milestone) | 외부 사건이 먼저 일어나는 쪽으로 경로가 정해지고, 순서는 자유롭되 동시에는 못 하는 작업 |
| 취소 | 작업 취소(Cancel Activity), 사례 취소(Cancel Case) | 진행 중인 작업이나 사례 전체를 중단 |
배타적 선택은 시스템이 데이터 조건으로 경로를 정하는 반면, 지연 선택은 먼저 일어나는 외부 사건(고객 응답이 먼저 오느냐, 기한이 먼저 지나느냐)이 경로를 정한다는 점이 다르다.
- W.M.P. van der Aalst, A.H.M. ter Hofstede, B. Kiepuszewski, A.P. Barros, 「Workflow Patterns」, Distributed and Parallel Databases 14(1), 2003.
- N. Russell, A.H.M. ter Hofstede, W.M.P. van der Aalst, N. Mulyar, 「Workflow Control-Flow Patterns: A Revised View」, BPM Center Report BPM-06-22, 2006.
- 「The Workflow Reference Model」, Workflow Management Coalition, 1995.