배치 서비스 개요

개요

배치 서비스는 파일·DB 시스템에서 다른 파일·DB 시스템으로 데이터를 전송할 때 사용한다. 데이터 전송이 온라인거래와 같이 자주 발생하더라도 데이터 전송 방식에 따라 배치 서비스를 사용할 수 있다. 배치 서비스는 송신시스템에서 직접 데이터를 전송하는 것이 아니라 전송이 필요한 데이터(파일 혹은 테이블 데이터)의 전송을 ISM에 요청함으로써 시작된다. ISM은 데이터 전송의 요청을 받으면 룰에 정의된대로 데이터를 조회하여(혹은 가져와서) 수신 시스템으로 전송한다. 만약 한 번에 처리해야 할 데이터가 많을 경우, 배치서비스는 트랜잭션 처리를 위해 데이터를 나누어 처리한다. 분할 처리 중 오류가 발생하여 재처리가 필요한 경우 오류가 발생한 데이터부터 다시 작업을 다시 처리한다.

배치 서비스에는 배치 서비스 수행 전이나 수행 후에 처리해야 할 작업을 정의할 수 있다. 이것을 '태스크(Task)'라고 부르며, 배치 서비스 수행 전의 작업을 '선 처리 태스크', 배치 서비스 수행 후의 작업을 '후 처리 태스크'라 한다. 태스크의 종류는 다음과 같다.

  • 파일
  • 테이블
  • 텔넷
  • 서비스
  • Stored Procedure

태스크는 배치 서비스와는 별도의 트랜잭션으로 수행한다.

배치 서비스 런타임 구성

배치 서비스는 배치 작업을 요청하는 배치 에이전트, 배치 매니저 그리고 각 송수신 시스템과 인터페이스를 수행하는 인터페이스 프로세스로 구성되어 있다. 배치 서비스는 master-backup 모드나 active-active 모드로 구성 가능하다. 배치 서비스가 active-active 모드로 구성되더라도, 배치 에이전트는 master-backup 모드를 지원하므로 active-active 모드를 위해서는 각 서버 또는 그룹 단위로 배치 에이전트가 연결하는 마스터 배치 매니저를 구별해야 한다.

배치 서비스의 작업 흐름은 다음과 같다.

  1. 배치 에이전트는 마스터 에이전트에게 배치 서비스의 수행을 요청
  2. 작업 요청을 수신한 배치 매니저는 내부의 송신 시스템 인터페이스 프로세스에게 데이터 조회를 요청
  3. 송신 시스템 인터페이스 프로세스가 작업을 완료하면 배치 매니저는 수신 시스템 인터페이스 프로세스에게 데이터 반영을 요청
  4. 수신 시스템 인터페이스 프로세스가 작업을 완료하면 배치 매니저는 작업 결과를 기록하고 작업을 종료
  5. 배치 에이전트는 작업 요청을 보낸 후 작업이 완료되었는지 여부를 알기 위해 배치 매니저에게 작업 결과 확인 요청(3초마다 요청하며 최대 100회)
  6. 작업이 완료되면 매니저는 작업이 완료된 결과를 에이전트에게 되돌려주며 에이전트는 그 결과를 수신하여 화면에 출력하고 프로세스의 종료 코드로 결과 코드를 설정하여 종료

배치 서비스가 작업을 실행하는 도중에 마스터 서버의 송수신 프로세스에 장애가 발생하면 마스터 서버의 배치 매니저는 백업 서버의 송수신 프로세스로 처리 요청을 보내 서비스를 수행한다. 송신 인터페이스 프로세스와 수신 인터페이스 프로세스 사이의 데이터 전송은 파일을 이용하기 때문에 기본적으로 배치 매니저는 송신 인터페이스 프로세스의 위치와 동일한 서버에서 실행되고 있는 수신 인터페이스 프로세스에 작업을 요청한다. 단 마스터 서버와 백업 서버가 공유 디스크를 사용하여 동시에 동일 파일에 대해서 접근가능하다면 송신 프로세스의 위치에 관계없이 수신 프로세스를 사용하게 된다. 예를 들어, 송신 인터페이스 프로세스는 마스터 서버에, 수신 인터페이스 프로세스는 백업 서버에서 실행되는 구성이 가능하다.

배치 에이전트

배치 서비스의 트리거 역할을 수행한다. 배치 서비스에서 처리해야 할 데이터에 관계된 정보(파일명, 처리 대상 데이터 조회 조건 등)를 배치 매니저에 전달하여 작업을 시작하도록 한다. 작업을 요청한 이후 주기적으로 작업의 수행결과를 확인하며 작업이 완료되면 그 결과를 프로세스의 exit code로 설정하고 종료한다. 작업결과 조회 주기는 3초이며 최대 100회까지 수행한다.

배치 매니저

배치 서비스 작업 전체를 제어한다. 데이터 조회와 반영에 대한 지시를 각 인터페이스 프로세스에 전달하며, 각 단계의 결과가 성공일 때 다음 단계로 진행한다. 배치 서비스 수행 전에 필요한 사전 작업(선처리)을 수행하며, 작업 완료 후 후속 작업(후처리)도 진행한다. 각 선처리, 배치 서비스, 후처리는 전 단계의 작업처리가 정상으로 완료되어야 작업을 수행한다. 배치 매니저는 배치 에이전트와 통신하며 배치 에이전트에게 작업 결과를 알려준다.

인터페이스 프로세스

송신 또는 수신 시스템과 인터페이스를 수행하며 데이터를 가져오거나 전송하는 역할을 수행한다. 송신/수신 프로세스는 배치 서비스 내에서의 역할에 따라 나뉠 뿐이며 배치 서비스에 따라 각 인터페이스 프로세스는 송신과 수신의 역할을 동시에 수행한다.

공통 프로세스

ISM에서는 기본적으로 1개의 연계시스템은 1개의 송수신 인터페이스 프로세스를 필요로 한다. 따라서 파일 또는 DB 시스템의 수가 많아지면 그에 따른 인터페이스 프로세스의 수가 많아지게 된다. 하지만 실제 서비스 수행 횟수는 많지 않거나 수행에 소요되는 시간이 짧은 시스템에 대해서도 각각의 프로세스를 할당하여 실행하는 것은 시스템 자원의 측면에서는 낭비일 수 있다. 이런 인터페이스 프로세스들을 하나 또는 몇 개 이내의 프로세스로 통합하면 시스템 자원을 효율적으로 사용하게 되고 관리도 용이하게 된다. 이를 위해 프로세스를 통합하고자 하는 시스템들에 대한 배치 인터페이스 작업을 '공통 프로세스'를 통해 수행하도록 지정할 수 있다. '공통 프로세스'는 '공통 시스템'으로 등록된 시스템 중 배치 인터페이스 유형 별로 '대행 프로세스'를 지정하는 것이다. ISM에 등록된 시스템 별로 해당 시스템이 배치 인터페이스에서 사용될 때의 대행 시스템을 지정하면 배치 매니저에서 해당 시스템이 아닌 대행 시스템 프로세스를 찾아서 서비스 수행 요청을 보낸다. 대행 시스템은 배치 송신,배치 수신의 두 가지 유형에 대해 각각 지정한다. 파일 시스템인 경우 송신 인터페이스와 수신 인터페이스 모두 대행 시스템에 의해 처리 가능하다. DB 시스템인 경우 송신 인터페이스만 대행 시스템에 의해 처리 가능하다.

배치 서비스 전달

배치 매니저가 현재 처리 중인 작업이 많아서 더 이상의 작업 요청을 처리할 수 없다고 판단하였을 때, 다른 서버에서 실행 중인 배치 매니저를 통해 작업을 처리하는 기능이다. 에이전트에서 배치 매니저에게 배치 처리 요청을 보내면 배치 매니저는 현재 처리 중인 작업 수와 최대 동시 처리 가능 작업 수의 정보를 비교한다. 현재 처리 요청이 최대 동시 처리 수를 초과한 요청이라면 에이전트에게 전달(forward) 지시를 내리고, 에이전트는 에이전트에 등록된 백업 배치 매니저에게 서비스 처리 요청을 전달한다.

배치 매니저가 처리 가능한 최대 동시 처리 수는 ism.xml에 정의되어 있다.

<batch>
<job threshold="30"/> <!-- 최대 동시 처리 수 = 30 -->
</batch>
                                        

시스템 인터페이스 패턴

배치 인터페이스에서 사용할 수 있는 패턴은 다음과 같다. 인터페이스 방식은 동기 방식이지만, 처리 결과를 이용한 응답 변환등은 수행하지 않으며 응답 데이터를 관리하지 않는다.

동기구분 요청/전송 구분 비고
ACK 전송 동기 방식으로 데이터를 조회하고 데이터를 반영한다. 응답 데이터에 대한 처리는 수행하지 않는다.

여기에 정의된 일반적인 의미의 패턴이 아니라 ISM에서 배치 서비스를 등록할 때 사용하기 위한 패턴 유형이다.

배치 서비스 지원 인터페이스 유형

  • 송신 시스템
    • 파일(FTP, sFTP, FTPS, SCP)
    • 데이터베이스(Oracle, MSSQL, Mysql, Informix, Sybase, Teradata, DB2, DB2AS400)
  • 수신 시스템
    • 파일(FTP, sFTP, FTPS, SCP)
    • 데이터베이스(Oracle, MSSQL, Mysql, Informix, Sybase, Teradata, DB2, DB2AS400)

별도의 인터페이스 방식으로 인터페이스를 원할 때는 파일 방식의 인터페이스에 대한 커스텀 핸들러를 구현해야 한다. 송신 수신 간에 지원 가능한 인터페이스 유형의 조합은 다음과 같다. 세로축은 송신 시스템이며 가로축은 수신 시스템이다.

파일 데이터베이스 기타(파일 기준)
파일 O O O
데이터베이스 O O O
기타(파일 기준) O O O

송신 시스템이 서비스 호출 방식으로 데이터를 보내는 방식은 허용하지 않는다. 수신 시스템으로 서비스 호출 방식으로 데이터를 보내는 방식은 커스텀 핸들러를 통해 구현 가능하다.