수행 태스크는 클라이언트 애플리케이션에 의해 자동으로, 또는 컴포넌트를 호출하여
작성됩니다. 이 태스크는 사용자가 BPEL 프로세스의 일부로 작업을
수행하거나(인라인 태스크) 공용으로 사용 가능한 웹 서비스를 구현할 때(독립형 태스크) 사용자를
지원합니다. 수행 태스크의
라이프사이클 중 특정 태스크 상태에서만 특정 상호작용이 가능하며 이러한 상호작용은
다시 태스크 상태에 영향을 줍니다.
태스크의 라이프사이클 중에 발생하는 상태 전이는 태스크에 단일 소유권
또는 병렬 소유권이 있는지 여부에 따라서도 달라집니다.
단일 소유권이 있는 수행할 작업 태스크
다음 다이어그램은
단일 소유자가 있는 수행 태스크의 라이프사이클 중에 발생할 수 있는
상태 전이를 보여줍니다.
독립형
수행 태스크의 경우에는 태스크의 autonomy 속성이 peer로 설정된 것으로 가정합니다.
태스크가
작성되고 나면 태스크는 비활성 상태가 됩니다. 이 상태에서는 태스크 특성을 업데이트하거나
사용자 정의 특성을 설정할 수 있습니다. 예를 들어, 태스크의 예정, 만기 또는 삭제 시간까지의
지속 기간을 변경할 수 있습니다. 수행할 작업 태스크에 대해 작업하려면
태스크가 시작되어야 합니다.
태스크가 시작되고 나면 태스크는 준비 상태가 됩니다. 이 상태에서, 태스크는 잠재적 소유자 중
한 명이 태스크를 청구하여 해당 태스크와 연관되는 작업을 수행할 때까지 기다립니다.
이 상태에서는 다음과 같은 예외 이벤트가 발생할 수 있습니다.
- 태스크가 시간 내에 청구되거나 완료되지 않는 경우 태스크가 에스컬레이트됩니다.
또는 권한 있는 사용자가 수동으로 에스컬레이션을 트리거할 수 있습니다.
태스크는 에스컬레이션됨
하위 상태가 되고 태스크의 나머지 라이프사이클에서 이 하위 상태를
유지합니다.
- 태스크가 수동으로 일시중단될 수 있습니다. 태스크는 일시중단된 하위 상태가 됩니다.
태스크에 대한 대부분의 조치는 이 상태에서 차단됩니다. 수동으로 재개하거나
일시중단 조치에서 설정된 타이머에 의해 자동으로 재개할 수 있습니다.
- 태스크가 만기될 수 있습니다. 이 상태로 변경되면 태스크가 종료합니다.
- 태스크의 예정, 만기 또는 삭제 시간을 다시 스케줄하기 위해
태스크의 작성자, 시작자 또는 관리자는 지속 기간 또는 특정 시간에 대해 적절한 특성을 편집할 수 있습니다.
- 태스크가 종료 조치를 사용하여 수동으로 종료될 수 있습니다. 이 상태로 변경되면 태스크가 종료합니다.
표준 태스크 플로우에서는
잠재적 소유자 중 하나가 태스크를 청구하고 소유자가 됩니다.
태스크는 청구됨 상태가 되고 소유자 및 편집자는 이 태스크에 대해
작업할 수 있습니다. 태스크가 청구됨 상태가 되면
태스크 소유자는 다음 조치를 취할 수 있습니다.
- 소유자가 자신의 작업에 대한 지원이 필요한 경우, 서브태스크를 사용하여
작업 일부를 위임할 수 있습니다. 이 서브태스크는 협업 태스크나 호출 태스크가
될 수 있습니다. 그러면 상위 태스크가 '서브태스크 대기 중' 하위 상태가 되고
해당되는 모든 서브태스크가 종료 상태에 도달할 때까지 이 상태로 유지됩니다. 상위 태스크는
서브태스크를 기다리는 동안 일시중단될 수 있지만, 완료될 수 없어서
청구를 취소할 수 없습니다. 상위 태스크가 일시중단되면 모든 서브태스크도 일시중단됩니다.
- 작업 완료를 다른 누군가에게 위임하려는 경우
예를 들면 작업을 완료하기 위한 후속 태스크로 협업 태스크를
작성할 수 있습니다. 상위 태스크는 전달됨 종료 상태가 됩니다.
- 태스크에 대한 전체 책임을 위임하려는 경우, 소유자 작업 항목을
다른 잠재적 소유자나 관리자에게 전송할 수 있습니다.
- 태스크의 소유권을 포기하려는 경우 태스크의 청구를 취소할 수 있습니다.
태스크는 다시 준비 상태가 되고, 잠재적 소유자 중 한 명이
청구할 수 있습니다. 태스크의 청구가
취소되는 경우에는 이 조치가 태스크의 마감 시간 또는 만기 시간이나 에스컬레이션
타이밍에 영향을 미치지 않음에 유의하십시오.
청구됨 상태에서는 다음과 같은 예외 이벤트가 발생할 수 있습니다.
- 태스크는 시간 내에 완료되지 않거나 서브태스크가 완료되기까지
너무 오래 대기하는 경우 에스컬레이트됩니다. 권한이 있는 사용자가 수동으로 에스컬레이션을 트리거할 수도 있습니다. 태스크는
에스컬레이트된 하위 상태가 됩니다.
- 태스크가 수동으로 일시중단될 수 있습니다. 태스크는 일시중단된 하위 상태가 됩니다.
태스크에 대한 대부분의 조치는 이 상태에서 차단됩니다. 수동으로 재개하거나
일시중단 조치에서 설정된 타이머에 의해 자동으로 재개할 수 있습니다. 또는 타이머가
만기될 때 태스크에 대한 청구가 취소되고 다시 준비 상태가 됩니다.
- 태스크가 만기될 수 있습니다. 이는 태스크가 종료되는 상태 변경입니다.
- 태스크의 예정, 만기 또는 삭제 시간을 다시 스케줄하기 위해
태스크의 작성자, 시작자 또는 관리자는 지속 기간 또는 특정 시간에 대해 적절한 특성을 편집할 수 있습니다.
- 태스크가 종료 조치를 사용하여 수동으로 종료될 수 있습니다. 이는 태스크가 종료되는 상태 변경입니다.
- 태스크를 다시 시작할 수 있습니다. 태스크는 다시
준비 상태가 됩니다. 태스크의 하위 상태가 있는 경우 취소됩니다. 태스크와 연관된
에스컬레이션이 비활성 상태로 재설정되고 정상 라이프사이클을
시작합니다.
태스크에 서브태스크가 있는 경우, 이러한 서브태스크는 종료되고 삭제됩니다.
태스크에 대한 작업이 완료되면 소유자가 태스크를 완료합니다. 그러면
태스크는 성공적으로 완료된 경우 완료됨 상태가 되고 오류가 발생하면
실패 상태가 됩니다.
실패함, 종료됨, 완료됨 및 만기됨 상태는
작업을 수행할 수 없는 종료 상태입니다. 태스크 템플리트가
자동 삭제를 지정하면, 태스크는 즉시 삭제되거나 삭제 타이머 만기 후에 삭제됩니다.
자동 삭제가 없으면, 태스크는 명시적으로 삭제될 때까지 종료 상태로
유지됩니다. 상위 태스크가 삭제되면 해당되는 서브태스크 및 후속 태스크도
삭제됩니다.
전달됨 상태는 후속 태스크에서 작업이 계속 필요함을
표시합니다. 상위 태스크 자동 삭제는 후속 태스크가 종료 상태에
도달하자마자 적용됩니다. 자동 삭제가 없으면, 상위 태스크를 명시적으로
삭제할 때까지 상위 및 후속 태스크가 해당 상태로
유지됩니다. 상위 태스크가 삭제되면 후속 태스크도
삭제됩니다.
일부 추가 규칙이
인라인 수행 태스크에 적용됩니다. 인라인 태스크는 BPEL 프로세스의 중요한 부분이므로
프로세스 라이프사이클을 통해 라이프사이클을 제어합니다.
- 태스크는 BPEL 프로세스에 의해 내재적으로 작성되고 시작됩니다.
- 태스크는 BPEL 프로세스에서 사용자 태스크 활동에 의해 표시됩니다. 태스크와 활동은 모두 동일한 상태를 갖습니다. 예를 들어,
해당 태스크가 준비 상태가 되면 사용자 태스크 활동도 준비 상태가 됩니다.
사용자 태스크 활동은 전달됨 상태나 태스크 하위 상태를
반영하지 않습니다.
- 인라인 태스크에 서브태스크가 있는 경우, 사용자 태스크 활동은 이 서브태스크를
인식하지 못하여 상위 태스크가 완료될 때까지 청구됨 상태에서 대기합니다.
- 인라인 태스크에 후속 태스크가 있는 경우, 사용자 태스크 활동은 이 후속 태스크를
인식하지 못하여 후속 태스크가 완료될 때까지 청구됨 상태에서 대기합니다.
- 인라인 수행 태스크는 만기될 때까지 지속 기간을
갖지 않으므로 수동으로 종료할 수 없습니다. 만기 및 종료는 둘 다 사용자 태스크 활동 또는 BPEL 프로세스에 의해 제어됩니다.
- 이러한 태스크는 BPEL 프로세스와 함께 삭제됩니다. 수동으로 삭제할 수도 없고,
삭제될 때까지 지속되지도 않습니다.
병렬 소유권이 있는 수행할 작업 태스크
다음 다이어그램은
병렬 소유권이 있는 수행 태스크의 라이프사이클 중에 발생할 수 있는
상태 전이를 보여줍니다.
상위 태스크는 청구되거나
수동으로 완료될 수 없습니다. 상위 태스크는 실행 중 상태가 되며 완료 조건이 참이 되거나 만기에
도달할 때까지 실행 중 상태로 유지됩니다.