BPEL 프로세스 인스턴스에 대한 상태 전이 다이어그램

프로세스는 프로세스 인스턴스의 라이프사이클 동안 중요한 사항이 발생할 때마다 상태를 변경합니다. 예를 들어, API 요청으로 인해 실행 중 상태의 프로세스가 일시중단됨 상태가 될 수 있습니다. 상태 전이 다이어그램은 프로세스 라이프사이클 동안 발생할 수 있는 상태 전이를 보여줍니다. 마이크로플로우와 장기 실행 프로세스가 서로 다른 상태 전이 다이어그램을 가지고 있습니다.

이 다이어그램에서 사용되는 규칙

다이어그램에서의 상태 전이는 숫자로 표시됩니다. 이 숫자는 지원하는 텍스트에 설명됩니다. 또한 내부에는 다음과 같은 유형의 기호가 있습니다.
기호 설명
임시 상태를 표시하는 기호
임시 상태. 이 상태는 표시되지 않습니다.
지속적 상태를 표시하는 기호
지속적 상태
임시 종료 상태를 표시하는 기호
임시 종료 상태
지속적 종료 상태를 표시하는 기호
지속적 종료 상태
자동으로 트리거되는 상태 전이를 표시하는 기호
비즈니스 플로우 관리자에 의해 자동으로 트리거되는 상태 전이
외부 상호작용에서 발생되는 상태 전이를 표시하는 기호
API를 사용하는 외부 상호작용의 결과인 상태 전이
비즈니스 플로우 관리자나 사용자 상호작용에 의해 제어되는 상태 전이를
표시하는 기호
비즈니스 플로우 관리자에 의해 제어되거나, API를 사용하는 외부 상호작용의 결과인 상태 전이

마이크로플로우 인스턴스에 대한 상태 전이 다이어그램

마이크로플로우는 프로세스가 항상 트랜잭션에서 실행되고 인스턴스 정보가 프로세스 인스턴스를 탐색하는 동안 지속되지 않으므로 Stateless 상태가 될 것으로 간주됩니다. 그러나 프로세스 정의와 비즈니스 플로우 관리자가 구성된 방법에 따라 마이크로플로우 상태는 감사 로그나 공통 기본 이벤트에 표시될 수 있습니다.

다음 다이어그램은 마이크로플로우 인스턴스의 가능한 상태를 보여줍니다.다이어그램은 실행 중 상태에서 프로세스 종료 상태로 이어지는 마이크로플로우에 대한
상태 및 상태 전이를 보여줍니다.

프로세스 인스턴스의 표준 초기화 후, 프로세스 인스턴스가 도달하는 첫 번째 프로세스 상태는 실행 중 상태입니다(1). 프로세스 인스턴스가 실행되어 정상적으로 완료된 경우 프로세스 상태가 실행 중에서 완료됨으로 변경됩니다(2). 결함이 프로세스 경계에 도달하면 프로세스는 실패 중 상태가 됩니다(3). 결함 핸들러가 실행되는 동안 프로세스는 실패 상태로 유지됩니다. 이 다음에, 프로세스 인스턴스는 실패 상태가 됩니다(4).

비즈니스 플로우 관리자에 의해 모든 상태 전이가 트리거됩니다. 마이크로플로우가 시작된 후에는 이 자동 단계에 영향을 줄 수 없습니다.

장기 실행 프로세스 인스턴스에 대한 상태 전이 다이어그램

장기 실행 프로세스는 몇 개의 트랜잭션에서 실행됩니다. 장기 실행 프로세스의 상태는 지속되므로 볼 수 있습니다. 다음 다이어그램에서는 장기 실행 프로세스 인스턴스에 대해 발생할 수 있는 상태 전이를 보여줍니다.
다이어그램은
실행 중 상태에서 프로세스 종료 상태 중 하나로 이어지는 장기 실행 프로세스 인스턴스에 대한
상태 및 상태 전이를 보여줍니다.

실행 중, 완료됨, 실패 중, 실패함 상태와 이 상태 간의 상태 전이는 마이크로플로우와 같습니다.

프로세스 인스턴스는 외부 요청 또는 종료 활동에 의해 종료됩니다. 프로세스 인스턴스 종료는 여러 탐색 단계에 걸쳐 발생할 수 있으므로 체인으로 연결된 여러 트랜잭션에 걸쳐 발생할 수 있습니다(예를 들어, 장기 실행 활동이나 서브프로세스를 종료하기 위해). 이 종료 단계 중, 프로세스 인스턴스는 종료 상태가 됩니다(5), (14), (18). 프로세스의 모든 장기 실행 파트가 종료될 때, 프로세스 인스턴스 상태도 종료됨으로 변경됩니다(6).

하위 프로세스가 종료되고 나중에 상위 프로세스가 실패하면 하위 프로세스를 보상할 수 있습니다. 보상 중에 하위 프로세스는 보상 중 상태가 됩니다(7). 보상이 성공적으로 종료되면 하위 프로세스가 보상됨 상태가 됩니다(8). 보상이 실패하면 하위 프로세스는 보상 실패 상태가 됩니다. 이 상태 트랜잭션은 상위 프로세스에 의해 자동으로 초기화됩니다.

프로세스 인스턴스의 탐색이 여전히 활성 상태이면(즉, 실행 중 또는 실패 중 상태이면), API 요청으로 일시중단될 수 있습니다. 그런 다음, 지정된 시간 후에 또는 재개 요청에 의해 다시 활성화될 수 있습니다. 프로세스 상태가 일시중단 요청으로 인해 실행 중 또는 실패 중 상태에서 일시중단됨으로 변경되고(11), (12) 재개 요청으로 일시중단됨 상태에서 실행 중 또는 실패 중 상태로 변경됩니다(10), (13). 일시중단됨 상태의 프로세스는 종료됨 상태도 될 수 있습니다(14). 최상위 레벨 프로세스 인스턴스만 일시중단됨 및 재개됨 상태가 될 수 있습니다. 그러나 일시중단 또는 재개 상태는 하위 프로세스로 전파됩니다.

프로세스가 종료 상태(완료됨, 종료됨 또는 실패)중 하나에 도달하면 다시 시작 API 요청으로 다시 시작될 수 있습니다(15), (16), (17). 하위 프로세스 인스턴스만 보상할 수 있는 반면 최상위 레벨 프로세스 인스턴스만 다시 시작될 수 있습니다.

프로세스 인스턴스는 종료 상태에 도달할 때 삭제될 수 있습니다(19). 완료 시 자동으로 삭제 속성을 설정하여 프로세스를 삭제하거나 명시적 삭제 요청으로 트리거할 수 있습니다.




피드백

이 Information Center는 Eclipse 기술로 구현됩니다. (http://www.eclipse.org 웹 사이트 참조)