워크플로우 패턴

Workflow pattern

워크플로우 패턴은 소프트웨어 엔지니어링 또는 비즈니스 프로세스 엔지니어링 영역에서 정의된 특수한 형태의 설계 패턴입니다.워크플로우 패턴은 워크플로우 어플리케이션, 특히 프로세스 지향 어플리케이션 개발과 관련된 반복적인 문제와 검증된 솔루션을 구체적으로 말합니다.

개념.

워크플로우 패턴은 경제개발의 개념입니다.이들의 사용은 유지보수를 단순화하고 모델링 작업을 줄이는 전략을 따라야 한다.워크플로우가 실시간으로 수행됩니다.제어 메커니즘은 일반적인 작업 속도를 지원해야 합니다.설계 패턴은 워크플로우의 실행을 지연시켜야 합니다.

집약

일반적으로 워크플로우 패턴은 체인으로 집약될 수 있으며 시작 및 종료 조건을 명시적으로 정의해야 합니다.

어플

워크플로우 패턴은 다양한 컨텍스트에서 적용할 수 있으므로 잘못된 해석을 방지하기 위해 사용 조건을 명시적으로 정의하고 표시해야 합니다.

반데르알스트 분류

워크플로우 패턴의 잘 알려진 컬렉션은 Wil van der Aalst 등이 제안한 것이다.(2003년) 이전 버전의 Workflow Patterns.[2]에 기재되어 있습니다.이 패턴의 집합은 프로세스 지향 애플리케이션 개발의 한 가지 특정 측면, 즉 워크플로우/프로세스에서 활동 간의 제어 흐름 의존성에 대한 설명에 초점을 맞추고 있습니다.이러한 패턴은, 다음의 카테고리로 분류됩니다.

기본적인 제어 패턴

  • 시퀀스 - 2개 이상의 액티비티를 순차적으로 실행합니다.
  • 병렬 분할 - 두 개 이상의 액티비티를 임의의 순서로 또는 병렬로 수행합니다.
  • 동기화 - 순서나 병렬로 실행될 수 있는 두 개 이상의 액티비티를 동기화합니다.이전 액티비티가 모두 완료될 때까지 후속 액티비티의 실행을 진행하지 마십시오.또한 장벽 동기화라고도 합니다.
  • Exclusive Choice - 프로세스 실행이 배타적 선택에 도달했을 때 사용할 수 있는 데이터를 기반으로 여러 대안 중에서 하나의 실행 경로를 선택합니다.
  • 심플 머지 - 일련의 액티비티 중 하나가 완료될 때까지 기다린 후 계속 진행합니다.이러한 액티비티는 1개만 실행되는 것으로 상정됩니다.일반적으로 이러한 액티비티는 배타적 선택 또는 지연된 선택으로 인해 다른 경로로 진행됩니다(아래 참조).
  • 종료 - 정의된 이벤트 또는 상태 변경 시 활동 실행을 종료합니다.

고도의 분기 및 동기화 패턴

  • Multiple Choice(다양한 선택사항) - 여러 실행 경로 선택
  • 조건부 선택 - 식별된 상태 조건에 따라 여러 가지 대안 중 하나의 실행 경로를 선택합니다.
  • 동기화 병합 - 여러 실행 경로를 병합하고, 여러 경로를 사용하는 경우 동기화하며, 하나의 실행 경로만 사용하는 경우 단순 병합과 동일한 작업을 수행합니다.
  • Multiple Merge - 액티비티 세트 중 하나가 완료될 때까지 기다린 후 계속 진행합니다.대기 중인 액티비티 중 여러 개가 실행되면 이들 중 하나가 완료될 때마다 단순 병합이 실행됩니다.
  • 식별자 - 일련의 작업 중 하나가 완료될 때까지 기다린 후 계속 진행합니다. 대기 중인 여러 작업이 실행된 경우 식별자는 한 번만 작동합니다.
  • N-out-of-M Join - 식별자와 동일하지만 파라미터 N을 1보다 큰 자연수로 설정하여 앞서 말한 액티비티가 둘 이상 완료될 때까지 대기할 수 있게 되었습니다.

구조 패턴

  • 임의 주기 - 프로세스 모델에 존재할 수 있는 루프 유형에 구조적 제한을 가하지 마십시오.
  • 암묵적으로 종료 - 다른 할 일이 없는 경우 프로세스의 인스턴스를 종료합니다.

다중 인스턴스(MI)

  • MI(동기화 안 함) - 한 액티비티의 여러 인스턴스를 나중에 동기화하지 않고 생성합니다.
  • 이전에 알려진 설계 시간에 대한 지식을 가진 MI - 설계 시간에 인스턴스 수를 알고 있을 때(동기화 사용) 하나의 액티비티의 여러 인스턴스를 생성합니다.
  • 이전에 알려진 런타임 지식을 가진 MI - 런타임 중 어느 시점에서 다수의 인스턴스를 판별할 수 있는 경우(FOR 루프에서와 마찬가지로 병렬로) 하나의 액티비티의 여러 인스턴스를 생성합니다.
  • 실행 시 사전 지식이 없는 MI - 여러 인스턴스를 판별할 수 없는 경우(WHY 루프에서와 같이 병렬로) 한 작업의 여러 인스턴스를 생성합니다.

상태 기반 패턴

  • 지연된 선택 - 여러 대체 스레드 중 하나를 실행합니다.실행할 스레드의 선택은 실행이 연기된 선택에 도달한 시점에서 이용 가능한 데이터에 근거하는 것이 아니라 이벤트(예를 들어 애플리케이션 사용자가 워크리스트에서 태스크를 선택하거나 프로세스 실행 엔진에 의해 수신되는 메시지)에 의해 결정됩니다.
  • Interleaved Parallel Routing - 자원 가용성에 따라 여러 액티비티를 임의의 순서로 실행하지만 이들 액티비티를 동시에 실행하지는 않습니다.
  • 마일스톤 - 마일스톤에 도달하기 전에 언제든지 특정 활동을 허용하며, 이후 활동을 더 이상 실행할 수 없습니다.

취소 패턴

  • 활동 취소 - 활성화된 활동의 실행을 중지합니다.
  • 케이스 취소 - 실행 중인 프로세스의 실행을 중지합니다.
  • Cancel Wait - 사전 완료 이벤트 없이 실행 중인 프로세스의 실행을 계속합니다.

위의 워크플로우 패턴은 프로세스 지향 애플리케이션 개발을 지원하는 상용 제품의 기능을 평가하기 위해 사용되었습니다., BPEL, BPMN, UML 액티비티 다이어그램, XPDL 등, 제안된 표준의 평가에도 사용되고 있습니다.이러한 패턴이 모두 애플리케이션 도메인에 관련된 것은 아니기 때문에 위의 워크플로우 패턴을 사용하여 특정 애플리케이션에 대해 특정 언어 또는 시스템을 선택할 때 주의해야 합니다.

워크플로우 패턴은 워크플로우 언어 및 YAWL(Yet Another Workflow Language)이라는 오픈 소스 시스템의 설계에서도 초기 요구 사항으로 사용되었습니다.

위의 워크플로우 패턴 세트에 대한 몇 가지 확장이 제안되었습니다.특히 이러한 패턴을 개발한 동일한 연구 그룹에서는 워크플로 데이터 패턴, 워크플로 리소스 패턴, 워크플로 예외 처리 패턴 및 서비스 상호 작용 패턴 세트도 제안했습니다.

다른 분류

워크플로우 패턴의 다른 분류는 다음과 같습니다.

독립/풀링
예약된 작업의 각 구성요소가 서로 독립적으로 완료되고 다른 구성요소에 대한 특정 종속성이 없는 경우.예를 들어, 직원이 카운터에서 서빙을 하는 경우가 있습니다.Raoul은 Jamie가 대기 중인 고객을 기다리지 않고 대기 중인 고객을 응대할 수 있습니다.
시퀀셜
스케줄된 작업의 각 구성요소는 이전 구성요소에 의존합니다.이 경우 이전 구성 요소는 후속 구성 요소를 통해 워크플로우의 진행을 제어합니다.예를 들어, 생산 라인에서 베티는 Veronica가 라디에이터를 제자리에 장착할 때까지 라디에이터 캡을 모델 T Ford에 부착할 수 없습니다.
상호의존/네트워크화
예약된 작업의 각 구성요소는 완료되는 하나 또는 다수의 다른 구성요소에 의존합니다.이 경우 이전 구성 요소는 후속 구성 요소를 통해 워크플로우를 제어합니다.예를 들어 프로젝트 팀을 들 수 있습니다. 사라는 케빈과 조지가 몇 가지 작업을 완료할 때까지 기다려야 작업을 수행할 수 있습니다.

기타 시점

워크플로우 패턴은 제어 [3]흐름에 국한되지 않습니다.기타 (워크플로우) 패턴 컬렉션에는 다음이 포함됩니다.

  • 자원 패턴,[4]
  • 데이터 패턴,[5][6]
  • 예외 패턴,[7]
  • 서비스 인터랙션 [8]패턴
  • 병렬 및 파이프라인 패턴.[9]

이러한 패턴 컬렉션은 상용 워크플로우 프로세스(Websphere, Oracle BPEL, Staffware, SAP 워크플로우, Windows Workflow Foundation 등)와 오픈 [10]소스 모두를 평가하는 데 사용되어 왔습니다.

패턴을 구현하는 워크플로우 시스템

  • Tavaxy[11] Galaxy와 Taverna 간의 상호 운용성을 가능하게 하는 패턴 기반의 워크플로우 시스템이다.[12]
  • YAWL, 또 다른 워크플로우 언어
  • 기능 프로그래밍을 위한 워크플로우 기반 그래픽 언어인 Cameleon(프로그래밍 언어).

레퍼런스

  1. ^ "Workflow Patterns Home Page". Workflowpatterns.com. Retrieved 2021-11-26.
  2. ^ 데어 올스트, 아서 H.M. Hofstede, Bartek Kiepuszewski, Alistair P. Barros(2003)."워크플로우 패턴"In: 분산병렬 데이터베이스 14 (1): 페이지 5-51. doi:10.1023/A:1022883727209.
  3. ^ N. 러셀, A.H.M. ter Hofstede, W.M. van der Aalst, N.M.P.멀야르워크플로우 제어-흐름 패턴: 수정된 뷰.BPM Center Report BPM-06-22, BPMcenter.org, 2006.
  4. ^ N. 러셀, W.M.P. van der Aalst, A.H.M. ter Hofstede, D.에드먼드."워크플로우 리소스 패턴:식별, 표현 및 도구 지원"을 참조하십시오.O. Pastor와 J. Falcao e Cunha 편집자, 컴퓨터 과학 강의 노트 3520권, 216-232페이지, 제17회 고급 정보 시스템 엔지니어링 회의(CAiSE'05)진행.2005년 베를린 스프링거-벨라그
  5. ^ N. 러셀, A.H.M. Ter Hofstede, D.에드몬드, W.M.P. 반 데 알스트."워크플로우 데이터 패턴:식별, 표현 및 도구 지원"을 참조하십시오.L. Delcambre, C. Kop, H.C. Mayr, J. Mylopoulos 및 O.목사, 편집자, 제24회 개념 모델링 국제회의(ER 2005), 컴퓨터 과학 강의 노트 3716권, 353-368쪽.2005년 베를린 스프링거-벨라그
  6. ^ N. Trcka, W.M.P. van der Aalst, N. Sidorova."데이터 흐름 안티 패턴:워크플로우에서 데이터 흐름 오류 검색"을 참조하십시오.P. van Eck, J. Gordijn, R에서.Wieringa, 편집자, Advanced Information Systems Engineering, 제21회 Advanced Information Systems Engineering(CAi'09), 컴퓨터 공학 강의 노트 5565권, 425-439페이지.스프링거-벨라그, 베를린, 2009년
  7. ^ N. 러셀, W.M.P. 반 데 알스트, A.H.M. 테르 호프스테드."워크플로우 예외 패턴"E. Dubois와 K에서.제18회 국제정보시스템공학회의(CAiSE'06), 컴퓨터 과학 강의 노트 4001권 (288-302쪽)의 편집자 폴.스프링거-벨라그, 베를린, 2006년
  8. ^ W.M.P. van der Aalst, A.J. Moij, C.스털, 그리고 K.울프. "서비스 상호작용: 패턴, 공식화 및 분석"M. Bernardo, L. Padovani, G. Zavattaro 편집자, Formal Methods for Web Services, 컴퓨터 과학 강의 노트 5569권, 42-88쪽.스프링거-벨라그, 베를린, 2009년
  9. ^ C. 포타소, G. 알론소대규모 과학 지원 워크플로우에 관한 HPDC2006 워크숍(WORKS06)의 Proc., 프랑스 파리, 2006년 6월.
  10. ^ P. Wohed, N.C. Russell, A.H.M. Ter Hofstede, B.안데르손과 W.M.P. 반 데 알스트.「오픈 소스 BPM 시스템의 패턴 베이스의 평가:jBPM, OpenWFE 및 Enhydra Shark의 사례.입력: Information and Software Technology, 51 (8) : 1187-1216, 2009.
  11. ^ Abouelhoda, M.; Issa, S.; Ghanem, M. (2012). "Tavaxy: Integrating Taverna and Galaxy workflows with cloud computing support". BMC Bioinformatics. 13: 77. doi:10.1186/1471-2105-13-77. PMC 3583125. PMID 22559942.
  12. ^ Abouelhoda, M.; Alaa, S.; Ghanem, M. (2010). "Meta-workflows". Proceedings of the 1st International Workshop on Workflow Approaches to New Data-centric Science - Wands '10. p. 1. doi:10.1145/1833398.1833400. ISBN 9781450301886. S2CID 17343728.

추가 정보

외부 링크