Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 제20장 고급 트랜잭션 처리 원격 예비 시스템 트랜잭션 처리 모니터 고성능 트랜잭션 시스템 장기 트랜잭션 실시간 트랜잭션 시스템 일관성의 약성 단계 트랜잭션형 작업흐름 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 원격 예비 시스템 원격 예비 시스템은 주 사이트가 파손되더라도 트랜잭션 처리가 계속되도록 하여 높은 가용도를 제공한다. 트랜잭션 처리는 중복 분산 시스템에서 보다 더 빠르다. 원격 사이트는 주 사이트가 고장 날 때 탐지해야만 한다; 주 사이트와 원격 예비사이트 간에 여려 통신 링크를 유지한다. 예비 사이트가 처리를 인수하면,그것이 새로운 주 사이트가 된다;제어를 이전하려면,이전 주 사이트가 이전 예비 사이트로부터 재실행 로그를 받아 지역적으로 모든 갱신을 적용해야 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 원격 예비 시스템(계속) 예비 사이트는 주기적으로 재실행 로그 레코드를 처리하고 검사점을 수행하며 로그의 이전 부분을 삭제할 수 있다;예비 사이트에 의한 작업 인수시 지연을 줄인다. 긴급 예비 구조: -예비 사이트는 지역적으로 갱신을 적용하면서 도달하는 즉시 재실행 로그 레코드를 계속해서 처리한다. - 주 사이트의 고장을 탐지하면,예비 사이트는 끝나지 않은 트랜잭션을 복귀시키고 새로운 트랜잭션을 처리할 준비를 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 원격 예비 시스템(계속) 갱신이 예비 사이트에 로깅될 때까지 트랜잭션 완료를 지연시킴으로써 갱신의 지속성을 보장한다;지속성의 정도를 낮게 하여 이러한 지연을 피한다. 하나의 안전은 트랜잭션의 완료 로그 레코드가 주 사이트에 기록되는 즉시 완료한다-예비 사이트가 인수하기 전에 갱신이 예비 사이트에 도달하지 않을 수 있다. 두개의 완전 안전은 트랜잭션의 완료 로그 레코드가 주 사이트와 예비사이트에 기록되면 완료한다-두 사이트가 모두 고장나면 가용도가 감소한다. 두개의 안전은 주 사이트와 예비 사이트가 모두 활동 중이면 두개의 완전 안전처럼 처리한다. 주 사이트만이 활동 중이면, 트랜잭션은 완료 로그 레코드가 주 사이트에 기록되는 즉시 완료한다. 두개의 완전 안전보다 가용도가 높다; 하나의 안전에서의 트랜잭션 잃음의 문제가 없다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 트랜잭션 처리 모니터 TP 모니터는 단일 프로세스로부터 수 많은 터미널을 지원하기 위한 다중 스레드 서버를 위해 처음 개발되었다. 수 많은 클라이언트와 여러 서버를 가진 복합 트랜잭션 처리 시스템을 구축하고 관리하기 위한 하부 구조를 제공한다. 다음과 같은 서비스를 제공한다. -사용자 인터페이스 어플리케이션 작성을 손쉽게 하는 프리젠테이션 기능 -클라이언트 요청과 서버 응답의 영속적인 큐잉 -클라이언트에서 서버로의 메시지 라우팅 -트랜잭션이 여러 서버를 액세스할 때 2단계 완료의 조정 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 TP 모니터 구조 클라이언트당 프로세스 모델 - 터미널당 개별적인 로그인 세션 대신, 서버 프로세스가 터미널과 통신하여 인증 처리하고 행위를 실행한다. -메모리 요구 사항이 높다. -다중 태스킹-프로세스간 문맥 교환에 높은 CPU 비용 단일 프로세스 모델 - 모든 원격 터미널을 단일 서버 프로세스에 연결한다. -클라이언트-서버 환경에서 사용된다. -서버 프로세스는 다중 스레드 된다; 스레드 연결 비용이 낮다. -어플리케이션 간에 보호가 없다. -병렬 또는 분산 데이터베이스에는 부적합하다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 TP모니터 구조(계속) 다중 서버,단일 라우터 모델 - 여러 어플리케이션 서버 프로세스가 공통 데이터베이스를 액세스한다; 클라이언트들은 요청을 보내는 단일 통신 프로세스를 통해 어플리케이션과 통신한다. -여러 어플리케이션에 대해 독립 서버 프로세스들 -다중 스레드 서버 프로세스 -병렬 또는 분산 데이터베이스에서 실행 다수 서버,다수 라우터 모델- 여러 프로세스가 클라이언트들과 통신한다. -클라이언트 통신 프로세스들은 요청을 적절한 서버에 보내는 라우터 프로세스들과 상호 작용한다. -제어기 프로세스는 다른 프로세스를 가동시키고 제어한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 TP 모니터 구조(계속) 원격 서버 파일 클라이언트 (a)클라이언트당 프로세스 모델 원격 서버 파일 클라이언트 (b)단일 프로세스 모델 모니터 원격 라우터 서버 파일 클라이언트 (c)다수 서버,단일 라우터 모델 원격 라우터 서버 파일 클라이언트 (d)다수 서버,다수 라우터 모델 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 TP 모니터의 상세 구조 input queue authorization lock manager application servers recovery manager log manager database and resource managers network output queue Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 TP 모니터를 이용한 어플리케이션 조정 TP 모니터는 각 서브 시스템을 어떤 자원의 집합에 트랜잭션 같은 액세스를 제공하는 자원 매니저로 취급한다. TP 모니터와 자원 매니저간의 인터페이스는 트랜잭션 프리미티브의 집합으로 정의된다. 자원 매니저 인터페이스는 X/Open 분산 트랜잭션 처리 표준으로 정의된다. TP 모니터 시스템은 그들의 서비스에 트랜잭션형 RPC 인터페이스를 제공한다; RPC 기법은 일련의 RPC 호출을 트랜잭션내에 내포시키기 위한 호출을 제공한다. RPC로 수행된 갱신은 트랜잭션의 범위 내에서 수행되며, 고장이 있으면 복귀될 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 고성능 트랜잭션 시스템 고성능 하드웨어와 병렬화가 트랜잭션 처리의 비율을 높이는데 도움을 주지만, 고성능을 얻기에는 불충분하다. -디스크 입출력이 병목이다-처리기 속도 증가에 비해 입출력 시간(10ms)이 감소하지는 않는다. -병렬 트랜잭션들이 동일 데이터 항목을 읽고 쓰기를 시도하면서 효율적인 병렬화를 감소시키는 데이터 충돌을 야기한다. 데이터베이스 버퍼의 크기를 증가 시킴으로써 데이터베이스 시스템이 디스크에 의존하는 정도를 줄일 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 메인 메모리 데이터베이스 상용 64비트 시스템은 14GB까지의 메인 메모리를 지원할 수 있다. 메모리에 거주하는 데이터는 보다 빠른 데이터 처리를 허용한다. 디스크 관련 제한: -로깅이 병목이다. 그룹 완료 개념하에서는, 안정 저장 장치로의 출력의 수가 감소될 수 있어 이러한 병목을 해소한다. -수정된 버퍼 블록에 대한 갱신 비율이 높으면, 디스크 데이터 전송율이 병목이 될 수 있다. - 시스템 이상이 발생하면, 메인 메모리의 모든 내용을 잃게 된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 메인 메모리 데이터베이스 최적화 메인 메모리 데이터베이스에서는 여러 페이지에 걸쳐 포인터를 가질 수 있는 내부 데이터 구조를 필요로 한다(공간 비용을 줄이기 위해). 디스크 데이터베이스에서, 여러 페이지를 순회하기 위한 입출력 비용이 상당히 높을 것이다. 버퍼 페이지는 결코 대치되지 않을 것이므로 데이터가 액세스 되기 전에 메모리내의 버퍼 페이지를 고정 시킬 필요가 없다. 공간 비용을 최소화하기 위한 질의 처리 기법의 설계 - 질의 평가시 메인 메모리 한도 초과를 피한다. 로킹과 래칭 같은 연산 수행을 향상시킴으로써 병목이 되지 않도록 한다. 다른 페이지에 공간을 내주기 위해 페이지를 출력할 필요가 거의 없으므로, 회복 알고리즘을 최적화한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 그룹 완료 그룹 완료 기법은 거의 꽉 찬 블록만이 출력되도록 보장한다. 이것은 완료한 트랜잭션당 출력 연산 회수를 줄인다. 그룹 완료가 로깅 비용은 줄이지만, 충분히 큰 트랜잭션 그룹이 완료 준비가 될 때까지 트랜잭션 완료가 지연된다. 트랜잭션의 그룹이 완료 준비가 되는데는 많은 시간이 걸리지 않으므로, 고성능 트랜잭션 시스템에서 이러한 지연은 허용할 만하다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 장기 트랜잭션 최하위 단계의 원자적 데이터 베이스 연산을 가진 내포 트랜잭션으로 표현된다. 트랜잭션이 실패하면, 활동중인 단기 트랜잭션만이 중단된다. 어떠한 단기 트랜잭션들이 일단 회복되면 활동 장기 트랜잭션은 재개한다. 장기간의 기다림과 중단의 가능성으로 인해 장기 대화형 트랜잭션의 관리는 보다 복잡하다. 기다림 과 중단에 대한 대안이 필요하다; 대체 기법들은 직렬성을 요구하지 않고도 정확성을 보장해야만 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 동시성 제어 직렬성 없는 정확성: -정확성은 데이터베이스에 대한 특정 일관성 제약 조건에 의존한다. -정확성은 각 트랜잭션이 수행하는 연산의 속성에 의존한다. 데이터베이스를 동시성이 별개로 관리될수 있는 서브 데이터베이스로 분리할 때 데이터베이스 일관성 제약 조건을 사용한다. read와 write 이외의 몇몇 연산을 기본적인 저급 연산으로 취급해 동시성 제어를 확장하여 그들을 다룬다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 동시성 제어(계속) A+B의 합계가 보존되는 비충돌 직렬 가능 스케줄 T1 T2 read(A) A:=A-50 write(A) read(B) B:=B-10 write(B) B:=B+50 A:=A+10 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 내포 및 다단계 트랜잭션 내포 또는 다단계 트랜잭션 T는 아래와 같은 서브 트랜잭션의 집합과 T상의 부분 순서 P로 표현된다. T={t1, t2, …., tn} T내의 서브 트랜잭션 ti는 T를 중단시키지 않고도 중단될 수 있다. 대신, T는 ti를 재시작하도록 하거나 실행시키지 않을 수 있다. ti가 완료하면, 이것으로 ti를 영구적이도록 하지는 않는다(15장에서의 상황과 다르다). 대신, ti는 T를 완료하고 T가 중단되면 여전히 중단될 수 있다(또한 보상을 요구한다). T의 실행은 부분 순서P를 위배해서는 안 된다. 즉, 선행 그래프 내에 간선 ti tj가 나타나면 P의 전이 내포 내에 tj ti가 있어서는 안 된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 내포 및 다단계 트랜잭션(계속) 내포의 최하위 단계: 표준 read와 write 연산 다단계 트랜잭션: T의 서브 트랜잭션은 종료시 로크를 해제할 수 있다. Saga:다단계 장기 트랜잭션 내포 트랜잭션 :T의 서브 트랜잭션 ti가 소유한 로크는 ti의 종료시 자동으로 T에 배정된다. 내포는 동시성을 강화할 수 있는 고급 연산을 생성할 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 내포의 예 트랜잭션 T1을 증가 또는 감소 연산을 수행하는 서브 트랜잭션 Ta와 Tb를 사용해 재작성 - T1은 다음으로 구성된다. *A에서 50을 빼는 T1,1 *B에 50을 더하는 T1,2 트랜잭션 T2를 증가 또는 감소 연산을 수행하는 서브 트랜잭션 Tc와 Td를 사용해 재작성 - T2는 다음으로 구성된다. *B에서 10을 빼는 T2,1 *A에 10을 더하는 T2,2 서브 트랜잭션에 순서는 지정되지 않는다; 어떠한 실행도 정확한 결과를 생성한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 보상 트랜잭션 undo 연산에 대한 대안; 보상 트랜잭션으로 연쇄 복귀 문제를 다룬다. 실패한 트랜잭션이 생성한 모든 변경을 취소하는 대신,실패에 대한 보상 행위를 취한다. 비행기 예약을 하는 서브 트랜잭션 Ti,1, 렌터카를 예약하는 Ti,2및 호텔을 예약하는 Ti,3로 이루어진 여행 예약의 장기 트랜잭션 Ti를 고려해 보자. -호텔에서 예약을 취소한다. - Ti 모두를 취소하는 대신, 이전 호텔 예약을 삭제하고 새로운 예약을 생성함으로써 Ti,3의 실패를 보상한다. 실패한 트랜잭션의 의미 사용을 필요로 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 구현상의 문제 장기 트랜잭션이 시스템 이상시 생존하기 위해서는 데이터베이스의 변경 뿐만이 아니라 이들 트랜잭션에 속한 내부 시스템 데이터의 변경 또한 로깅해야만 한다. 물리적으로 큰 데이터 항목(CAD 설계, 문서 텍스트)으로 인해 갱신의 로깅은 보다 복잡해진다; 이전 값과 새로운 값 모두를 저장하는 것은 바람직하지 않다. 큰 데이터 항목의 회복을 보장하는 비용을 줄이기 위한 두 가지 방법: -연산 로깅. 데이터 항목에 수행된 연산과 데이터 항목명만이 로그에 저장된다. -로깅과 그림자 페이징. 작은 데이터 항목으로부터 로깅 사용; 큰 데이터 항목에 대해서는 그림자 페이징 사용. 수정된 페이지만이 이중으로 저장될 필요가 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 실시간 트랜잭션 시스템 실시간 제약 조건을 가진 시스템에서는 실행의 정확성에 데이터베이스 일관성과 데드라인의 만족 모두를 포함한다. -하드 데드라인 후에 태스크가 종료하면 0 값을 가진다. -소프트 데드라인 후에 태스크가 종료하면 값을 갖는다. read와 write 연산 실행 시간의 넓은 분산은 시간의 제약을 받는 시스템에 있어 트랜잭션 관리 문제를 복잡하게 한다;따라서 메인 메모리 데이터베이스가 흔히 사용된다. 실시간 시스템의 설계에는 과다한 하드웨어 자원을 필요로 하지 않고도 데드라인을 충족할 수 있는 충분한 처리 능력이 존재하도록 보장함을 내포한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 일관성의 약성 단계 성능 향상을 위해 직렬성을 보장하지 않는 일관성의 대체 개념을 사용한다. 2차 일관성은 반드시 직렬성을 보장할 필요는 없이 연쇄 복귀를 피한다. -2단계 로킹과는 달리, S 로크는 언제라도 해제될 수 있고 언제라도 얻을 수 있다. -X 로크는 트랜잭션이 완료하거나 중단될 때까지 해제 될 수 없다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 2차 일관성을 가진 스케줄의 예 T4가 값을 쓰기 전후에 T3에서 Q의 값을 읽는 2차 일관성을 가진 비직렬 가능 스케줄 T3 T4 lock-S(Q) read(Q) unlock(Q) lock-X(Q) write(Q) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 커서 일관성 범용 레코드 지향 언어(PASCAL, COBOL, C, PL/I, FORTRAN 등)로 작성된 프로그램용으로 설계된 2차 일관성의 유형 릴레이션 전체에 로킹하지 않고 커서 안정성은 다음을 보장한다. - 현재 반복 처리중인 튜플은 공유 유형으로 로크된다. -어떤 수정된 튜플들은 트랜잭션이 완료할 때까지 배타 유형으로 로크된다. 동시성을 증가시키고 시스템 성능 향상의 수단으로 과다하게 액세스 되는 릴레이션에 사용된다. 그 사용은 단순한 동시성 제약 조건을 가진 특수한 상황으로 한정한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 트랜잭션 작업 흐름 작업 흐름은 서로 다른 처리 주체가 수행하는 여러 태스크의 상호 협조 실행을 내포하는 행위이다. 네트워크와 자치적인 데이터베이스 시스템의 증가에 따라, 작업 흐름은 여러 시스템을 내포하는 태스크들을 편리하게 수행하는 방법을 제공한다. 작업 흐름을 전산화하려면 다음과 같은 사항을 언급해야 한다. - 작업 흐름의 명세 - 수행되어야 할 태스크를 상세화하고 실행 요구 사항을 정의한다. - 작업 흐름의 실행 - 계산의 정확성, 데이터 무결성 및 지속성에 관련된 전통적인 데이터베이스 보호를 제공하는 동시에 작업흐름내에 지정된 트랜잭션을 실행한다. 트랜잭션의 개념을 작업 흐름의 문맥으로 확장한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 작업 흐름 명세 작업 흐름의 상태 - 작업 흐름을 구성하고 있는 태스크들의 상태 집합과 실행 계획내 모든 변수의 상태(즉, 값)로 구성된다. 정적 명세에 의한 태스크들의 상호 협조 - 태스크와 그들 간의 종속이 작업 흐름 시작 전에 정의된다. 작업 흐름 내 각 태스크의 실행을 위한 사전 조건 수립; 모든 가능한 태스크와 그들의 종속이 미리 알려지지만 사전 조건을 만족하는 태스크들만이 실행된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 작업 흐름 명세 (계속) 종속을 통한 사전 조건 정의: -다른 태스크의 실행 상태 “태스크 tj가 끝날 때까지 태스크 ti는 시작할 수 없다” -다른 태스크의 출력 값 “태스크 tj가 25보다 큰 값을 돌려주면 태스크 ti가 시작할 수 있다” -외부 사건에 의해 수정되는 외부 변수 “태스크 tj의 완료 24시간 내에 태스크 ti는 시작되어야 한다” 동적 태스크 스케쥴링 예 : 전자 메일 라우팅 시스템 내에서 주어진 메일 메시지를 스케줄할 다음 태스크는 목적 주소와 가동중인 중간 라우터에 따른다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 작업 흐름의 고장-원자성 요구사항 통상의 ACID 트랜잭션 요구 사항이 작업 흐름 어플리케이션에 너무 강하고 구현 가능하지 않더라도, 작업 흐름은 프로세스가 불일치 상태에 놓이지 않도록 보장하는 제한된 트랜잭션형 속성은 만족해야 한다. 허용 가능한 종료 상태 - 작업 흐름의 모든 실행은 설계자가 정의한 고장-원자성을 만족하는 상태로 종료할 것이다. -완료 - 작업 흐름의 목적을 달성하였다. -중단 - 작업 흐름이 목적을 달성하는 데는 실패한 타당한 종료 상태 작업 흐름은 시스템 고장에 관계없이 허용 가능한 종료 상태에 도달해야만 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 작업 흐름의 실행 작업 흐름 관리 시스템은 다음을 포함한다: 스케쥴러 - 실행,다양한 사건의 모니터 및 태스크간 종속에 관련된 조건 평가를 위한 다양한 태스크로 제기된 작업 흐름을 처리하는 프로그램 태스크 에이전트 - 처리 주체에 의한 태스크 실행을 제어한다. 작업 흐름 시스템의 상태를 질의하기 위한 기법 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 작업 흐름 관리 시스템의 구조 중앙집중 - 단일 스케쥴러가 동시 실행되는 작업 흐름의 태스크들을 스케쥴한다. -데이터가 중앙 데이터베이스에 저장된 작업 흐름 시스템에서 사용된다. -작업 흐름의 상태를 추적하기가 보다 쉽다. 부분 분산 - 각 작업 흐름마다 하나의 스케쥴러를 가진다. 완전 분산 - 스케쥴러를 가지지 않지만, 태스크 에이전트가 태스크 종속성과 기타 작업 흐름 실행 요구 사항을 만족하기 위해 서로 통신함으로써 그들의 실행을 조정한다. -가장 단순한 작업 흐름 실행 시스템에서 사용된다. -전자 메일에 근거한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 작업 흐름 스케쥴러 작업 흐름을 실행하기 전에 스케쥴러는 작업 흐름이 허용 가능하지 않은 상태로 종료하는지를 결정해야 한다. 허용 가능한 종료가 보장 될 수 없으면, 작업 흐름은 실행되어서는 안 된다. 모든 서브 트랜잭션이 완료하든지 또는 그렇지 않든지 하는 고장-원자성 요구 사항을 가진 서브 트랜잭션 S1과 S2로 표현된 두개의 태스크로 구성된 작업 흐름을 고려해 보자. - S1과 S2가 완료할 준비 상태를 제공하지 않고 보상 트랜잭션을 가지고 있지 않으면, 한 서브 트랜잭션은 완료되고 다른 서브 트랜잭션은 중단될 가능성이 있다. -양 서브 트랜잭션이 같은 상태에 돌입할 수 없다. -작업 흐름 명세가 불안하고 거절되어야 한다 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 작업 흐름의 회복 작업 흐름 처리 요소 중 어디에서 실패가 발생한다면, 작업 흐름이 궁극적으로 허용 가능 종료 상태에 도달하도록 보장하라. 고장-회복 루틴은 고장시 각 태스크의 실행 상태에 관한 정보를 포함해 스케쥴러의 상태 정보를 복구할 필요가 있다.안정 저장 장치에 상태 정보를 로깅한다. 영속 파이프 - 메시지가 영구 저장 장치에 저장되므로 고장시 잃지 않는다. -에이전트가 완료하기 전, 메시지를 내보낼 필요가 있던 없던 간에 영속 메시지 큐에 기록한다. -영속 메시지 시스템은 궁극적으로는 메시지가 전달되도록 해야 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 작업 흐름의 회복(계속) 휘발성 저장 장치 내 메시지 큐에 대해 -큐의 내용을 회복하는 대신, 스케쥴러는 그들의 요청을 다시 보낸다. -요청을 여러 번 수령하는가를 탐지하기 위해 받는 측의 안정 저장 장치에 요청이 로깅되어야 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수