단일 메시지 RTC(Run-To-Completion) 처리

IBM® Rational® Rhapsody®는 상태 차트가 일부 외부 액터가 상태 차트에 적용한 단일 메시지에 반응한다고 가정합니다. 외부 액터는 시스템 이벤트 큐 또는 다른 오브젝트일 수 있습니다.

상태 차트에 의한 메시지 처리는 단계로 파티션됩니다. 각 단계에서 메시지는 처리를 위해 상태 차트로 디스패치됩니다.

메시지가 디스패치되면, 메시지가 트리거한 상태 전이를 사용할 수 있습니다. 각 직교 컴포넌트는 메시지 디스패치의 결과로 최대 하나의 상태 전이를 실행할 수 있습니다. 충돌하는 상태 전이는 동일 단계에서 실행되지 않습니다.

선택된 상태 전이 실행 순서는 정의되지 않습니다. 상태 차트에서 명시적으로 정의하지 않은 임의 순회를 기반으로 합니다.

각 컴포넌트는 메시지의 결과로 하나의 상태 전이를 실행할 수 있습니다. 모든 컴포넌트가 상태 전이 실행을 완료하면 메시지를 이용한다고 하며 단계가 종료됩니다.

메시지에 반응한 후 상태 차트는 일부 상태가 출력, 활성 널 상태 전이(임시 구성)를 갖는 상태 구성에 도달할 수 있습니다. 이 경우, 상태 차트가 안정된 상태 구성(더 이상 상태 전이가 활성화되지 않음)에 도달할 때까지 추가 단계를 수행해야 합니다. 널 상태 전이는 널 이벤트(임시 구성이 발생할 때마다 상태 차트로 디스패치됨)에 의해 트리거됩니다. 널 이벤트는 안정된 구성에 도달할 때까지 일련의 단계로 디스패치됩니다. 안정된 구성에 도달하면 메시지에 대한 반응이 완료되고 디스패처로 제어가 리턴되며, 새 메시지를 디스패치할 수 있습니다.

주: 이론적으로는 상태 차트가 안정된 구성에 도달하지 못할 수 있습니다. 실질적인 솔루션은 안정된 구성에 도달하기 위해 상태 차트에 허용된 최대 단계 수에 대한 제한을 설정하는 것입니다. 현재 구현에서는 최대 단계 수에 도달하면 메시지 처리가 완료된 것으로 간주합니다.

피드백