서브프로세스의 라이프 사이클 관리 및 버전화 동작

다른 프로세스에 의해 시작된 프로세스를 서브프로세스라고 합니다. 서브프로세스의 라이프 사이클을 관리할 수 있는 방법과 서브프로세스의 버전화 동작은 이러한 프로세스가 모델링된 방법에 따라 결정됩니다.

모듈화와 재사용을 위해 캡슐화라는 프로그래밍 개념을 비즈니스 프로세스 모델에 적용해 볼 수 있습니다. 즉 하나 이상의 비즈니스 로직 단계를 별도의 프로세스로 구현한 후 이 프로세스를 기본 프로세스에서 호출하는 것입니다. 서브프로세스는 다른 프로세스를 시작할 수도 있습니다. 이렇게 하면 프로세스 인스턴스의 계층 구조를 원하는 깊이로 만들 수 있습니다. 이러한 프로세스를 전개할 경우 프로세스 투 프로세스 관계에 있는 모든 프로세스 템플리트는 동일한 Business Process Choreographer 데이터베이스에 전개되어야 합니다.

라이프 사이클 관리

서브프로세스는 호출 프로세스와 피어 투 피어 관계 또는 상위-하위 관계를 가질 수 있습니다. 이 관계는 프로세스 라이프 사이클을 관리하는 조치가 호출 프로세스에 대해 호출될 때 서브프로세스의 동작을 결정합니다. 라이프 사이클 조치는 일시중단, 재개, 종료, 삭제 및 보상으로 구성됩니다. 프로세스 라이프 사이클을 관리하는 조치는 맨 위 레벨 프로세스 인스턴스에서만 취해질 수 있습니다.

호출 프로세스-서브프로세스 관계는 하위 프로세스의 자율 속성에 따라 결정됩니다. 이 속성은 다음 값 중 하나를 가집니다.
피어
피어 프로세스는 맨 위 레벨 프로세스로 간주됩니다. 맨 위 레벨 프로세스는 다른 프로세스 인스턴스에 의해 호출되지 않았거나 다른 프로세스 인스턴스에 의해 호출되었지만 피어 자율을 가지고 있는 프로세스 인스턴스입니다. 서브프로세스가 피어 투 피어 관계의 일부인 경우 호출 프로세스 인스턴스에 대한 라이프 사이클 조치는 서브프로세스 인스턴스에 적용되지 않습니다.

그러나 단방향 인터페이스가 구현된 작성 작업을 가지고 있는 장기 실행 프로세스의 경우 자율 속성의 값은 자동으로 런타임에 피어로 설정됩니다. 자율 속성이 하위로 설정된 경우 이 값은 런타임에 무시됩니다.

하위
서브프로세스가 상위-하위 관계의 일부인 경우 상위 프로세스 인스턴스에 대한 라이프 사이클 조치가 서브프로세스 인스턴스에 적용됩니다. 예를 들어 상위 프로세스 인스턴스가 일시중단된 경우 하위 자율을 가지고 있는 모든 서브프로세스 인스턴스 또한 일시중단됩니다.

마이크로플로우는 항상 서브프로세스로서 실행됩니다. 그러나, 두 프로세스 사이에 다른 구성요소가 있으면 이 구성요소가 상위-하위 관계를 설정하지 못하도록 할 수 있습니다(예를 들어, 두 프로세스 구성요소 사이에 연결된 인터페이스 맵 구성요소).

버전화 동작

사용되는 프로세스의 버전은 프로세스가 초기 바인딩 시나리오와 지연 바인딩 시나리오 중 어느 시나리오에서 사용되는지에 따라 결정됩니다.
초기 바인딩
초기 바인딩 시나리오의 경우 호출되는 서브프로세스의 버전은 전개 동안에 결정됩니다. 호출 프로세스는 SCA(Service Component Architecture) 배선에 따라 정적으로 바인딩된 전용 서브프로세스를 호출합니다. 프로세스의 버전화는 무시됩니다.

초기 바인딩의 예로는 SCA 배선이 있습니다. 예를 들어 독립형 참조를 프로세스 구성요소에 배선할 경우 이 참조를 사용하는 프로세스를 호출하면 언제나 프로세스 구성요소가 나타내는 특정 버전으로 대상이 지정됩니다.

지연 바인딩
지연 바인딩 시나리오의 경우 호출 프로세스 인스턴스에서 서브프로세스를 호출할 때 호출될 서브프로세스 템플리트가 결정됩니다. 이 경우에는 현재 유효한 서브프로세스의 버전이 사용됩니다. 최신 버전의 프로세스가 기존의 이전 버전보다 우선합니다. 기존 프로세스 인스턴스는 시작할 때 관련된 프로세스 템플리트를 계속 사용합니다. 이에 따라 다음과 같은 프로세스 템플리트 카테고리가 만들어집니다.
  • 최신 버전이 아닌 프로세스 템플리트는 여전히 기존 장기 실행 프로세스 인스턴스에 유효합니다.
  • 현재 프로세스 템플리트는 새 프로세스 인스턴스에 사용됩니다.
  • 유효 날짜 및 시간에 따라 앞으로 유효하게 사용될 수 있는 프로세스 템플릿.

서브프로세스가 호출될 때 지연 바인딩을 적용하려면 참조 상대가 유효한 서브프로세스를 선택하게 될 서브프로세스 템플리트의 이름을 상위 프로세스에서 지정해야 합니다. 프로세스의 유효 시작 속성은 현재 유효한 서브프로세스 템플리트를 결정하는 데 사용됩니다. 모든 SCA 배선은 무시됩니다.

지연 바인딩의 예로는 새 프로세스를 Business Process Choreographer 탐색기에서 호출하는 경우가 있습니다. 작성되는 인스턴스는 항상 미래 시점이 아닌 유효 시작 날짜를 가진 프로세스 템플리트의 최신 버전을 기준으로 합니다.

프로세스 모델의 새 버전이 작성되고 기존 프로세스 모델이 마지막 바인딩 시나리오에서 사용될 때 프로세스의 새 버전이 유효하게 되면(예를 들어, 상위 프로세스가 서브프로세스의 새 버전 인스턴스를 호출하면) 호환성 문제점을 유발하는 변경 작업을 피해야 합니다. 다음과 같은 호환되지 않는 변경사항을 피해야 합니다.
  • 상관 세트 수정
  • 상위 프로세스가 서브프로세스와 통신하기 위해 사용하는 인터페이스 변경

ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)