업무흐름망
workflow net
업무흐름망은 업무 한 건의 진행 상태를 토큰 배치로 놓고, 그 상태가 조건을 나타내는 장소와 실행을 나타내는 전이를 거쳐 시작점에서 끝점까지 흐르는지를 검증하는 페트리망의 한 종류다.
성숙도 상록
용어와 역어
경쟁 역어: 워크플로망, WF-net
정착한 한국어 역어가 없다. workflow를 업무흐름으로 풀고, Petri net의 net은 구조를 강조하는 망으로 옮긴다.
관련 개념
- 관련 DEMO 트랜잭션 패턴DEMO가 한 업무의 요청·약속·실행·선언·수용을 정의한다면, 업무흐름망은 그 상태 전이가 끝까지 도달하고 서로 막지 않는지 검사한다.
- 관련 약속 이론페트리망의 전이는 입력 토큰이 있으면 발화하지만 사람의 업무는 수락이 있어야 움직인다. 약속 이론이 형식망에 없는 권한과 자발성을 보충한다.
- 관련 업무 원장토큰의 현재 배치인 마킹이 실행 상태라면 업무 원장은 그 이동을 사건으로 보존한다. 하나는 현재 상태를, 다른 하나는 사라지지 않는 이력을 준다.
- 관련 처리량 회계끝점에 도달하지 못한 실행 인스턴스는 진행 중인 일이다. 처리량 회계는 그 미완료 건수를 묶인 돈으로 읽는다.
- 관련 제약이론반복해서 토큰을 기다리게 만드는 전이나 입력 장소가 운영 제약의 후보다. 다만 망의 구조만으로 실제 처리율은 알 수 없다.
이 문서를 가리키는 글 3개
- 관련 DEMO 트랜잭션 패턴요청부터 수용까지의 화행 연쇄를 상태 전이로 옮기면 한 업무의 실행망이 된다. 업무흐름망은 실패 분기를 포함한 그 망이 끝까지 닫히는지 검사한다.
- 관련 제약이론업무흐름망은 토큰이 반복해서 기다리는 전이와 장소를 구조로 드러낸다. 제약이론은 그중 어디에 개선 노력을 몰아야 하는지 정한다.
- 관련 업무 원장업무흐름망의 마킹은 한 건이 지금 어디까지 왔는지를 표현한다. 업무 원장은 그 이동을 분개해 현재 상태뿐 아니라 이력의 보존 불변식까지 건다.
업무를 노드와 연결로 그리면 구조는 남지만 실행은 사라진다.
검토라는 노드는 무엇을 검토하는지, 지금 몇 건이 들어 있는지,
어떤 조건에서 다음 단계로 갈 수 있는지 스스로 말하지 못한다.
페트리망은 이 공백을 토큰으로 채운다.
토큰의 배치는 주문이나 환자나 승인 요청 같은 실제 업무 한 건이 지금 어디까지 왔는지 나타낸다.
페트리망의 노드는 한 종류가 아니다.
장소(place)는 조건이나 상태를 나타내고, 전이(transition)는 일이나 사건을 나타낸다.
호(arc)는 장소와 전이 사이만 잇는다.
토큰이 어느 장소에 몇 개 놓였는지를 마킹(marking)이라 하며, 마킹이 그 순간의 시스템 상태다.
한 건이 시작할 때는 토큰 하나지만, 병렬 작업이 열리면 같은 건을 나타내는 토큰이 여러 장소에 놓일 수 있다.
여러 업무 건을 서로 구분하려면 색채 페트리망처럼 토큰에 식별값을 주는 확장이 필요하다.
이 구분은 대기 중과 승인한다를 같은 상자로 그리는 흔한 오류를 막는다.
앞은 상태이고 뒤는 상태를 바꾸는 사건이라서 같은 종류가 아니다.
게이트도 별도 원자가 아니다.
전이의 모든 입력 장소에 필요한 토큰이 있으면 그 전이가 활성화된다.
전이가 발화하면 입력 토큰을 소비하고 출력 장소에 새 토큰을 놓는다.
분기, 합류, 동시 실행, 동기화는 이 규칙과 호의 모양에서 나온다.
데이터 값에 따른 조건까지 필요하면 색채 페트리망 같은 상위 형식에서 토큰에 값을 넣고 전이에 가드를 붙인다.
따라서 더 정확한 문장은 노드·연결·게이트가 아니라 장소·전이·호·토큰이다.
게이트는 전이가 열리는 조건으로 접힌다.
업무흐름망은 페트리망에 업무의 시작과 끝을 더한 특수한 종류다. 들어오는 호가 없는 시작 장소 하나와 나가는 호가 없는 끝 장소 하나가 있고, 모든 노드가 시작에서 끝으로 가는 경로 위에 있어야 한다. 한 토큰이 시작 장소에 놓이면 한 건의 업무가 시작되고, 끝 장소에 도달하면 그 건이 끝난다. 이 제한 덕분에 도형을 그리는 데서 멈추지 않고 완료 가능성을 검사할 수 있다.
판정 기준은 건전성(soundness)이다. 어느 도달 가능한 상태에서도 끝으로 갈 길이 남아 있어야 하고, 끝났을 때는 끝 장소의 토큰 하나만 남아야 하며, 영원히 실행될 수 없는 죽은 전이가 없어야 한다. 첫째는 끝으로 빠져나갈 수 없는 교착과 폐쇄 반복을, 둘째는 뒤에 남은 일을, 셋째는 장식뿐인 절차를 잡는다. 모든 화살표가 이어져 보인다는 사실만으로는 이 셋을 보증하지 못한다.
여기서 형식의 경계도 드러난다. 건전한 망은 업무가 끝난다는 것만 보증하지, 그 업무가 옳거나 가치 있다고 보증하지 않는다. 시간, 사람, 비용, 권한도 기본 업무흐름망에는 없다. 처리 시간과 용량을 붙여야 병목을 계산할 수 있고, 약속 이론을 붙여야 누가 전이를 수락할 수 있는지 말할 수 있다. 업무 원장을 붙여야 토큰이 움직인 이력이 삭제되지 않는다.
그러므로 일을 설계하는 최소 문법은 둘로 나뉜다. 정적 구조는 노드와 연결이면 충분하고, 게이트는 전이를 여는 조건이다. 실행을 설계하려면 실제 업무의 상태를 나타내는 토큰 배치가 반드시 더 필요하다. 그 위에서 목표는 망의 부품이 아니라 망 전체를 평가하는 바깥 기준이다. 업무흐름망은 일을 무엇으로 그릴지보다, 그 그림이 실제 한 건을 끝까지 보내는지를 묻는 이론이다.
참고문헌
- Carl Adam Petri (1962). Kommunikation mit Automaten. Dissertation, Schriften des IIM 2, Universität Bonn
- Tadao Murata (1989). Petri Nets: Properties, Analysis and Applications. Proceedings of the IEEE 77(4), 541-580
- Wil M. P. van der Aalst (1997). Verification of Workflow Nets. Lecture Notes in Computer Science 1248, 407-426
- Wil M. P. van der Aalst (1998). The Application of Petri Nets to Workflow Management. Journal of Circuits, Systems and Computers 8(1), 21-66
- Wil M. P. van der Aalst, Kees M. van Hee, Arthur H. M. ter Hofstede, Natalia Sidorova, H. M. W. Verbeek, Marc Voorhoeve, Moe T. Wynn (2011). Soundness of Workflow Nets: Classification, Decidability, and Analysis. Formal Aspects of Computing 23, 333-363