통합서비스란?

ISM 통합 서비스

ISM에서 정의하여 사용하는 통합 서비스는 송신 – 수신 시스템 사이에 데이터를 주고 받기 위한 방법, 데이터의 형식, 데이터 처리 절차, 시스템 접근 방법 등 통합에 필요한 서비스를 수행하기 위한 모든 정보를 담고 있다. 통합 서비스는 여러 계층의 정보들이 모여서 이루어진 통합 객체로서 ISM 프로세스에서 런타임 시에 사용한다. 런타임 시에 사용할 때 통합 서비스 객체는 룰(rule)이라는 이름으로 표현된다.

시스템 간에 통합 서비스를 제공하기 위해 필요한 정보들을 용도별로 구분하면 각각 시스템, 데이터, 인터페이스 서비스, 매핑 등으로 구별할 수 있다. 파일 배치 서비스 처리 흐름을 통합 서비스 컴포넌트에 맞춰 구성하면 다음과 같다.

  • 시스템(송신 시스템)에 접근
  • 인터페이스 서비스에 지정된 위치(디렉토리, 파일)에서 파일 조회(get)
  • 데이터 구조대로 분석
  • 데이터 매핑
  • 지정된 시스템(수신 시스템)에 접근
  • 인터페이스 서비스에 지정된 위치(디렉토리,파일)로 파일 전송(put)

통합 서비스 컴포넌트

시스템

서버

물리적인 서버 머신의 정보를 관리한다. ISM에서 접근하기 위해 사용하는 호스트명 또는 Ip를 관리한다.

어플리케이션

어플리케이션 유형에 따른 연결 정보를 관리한다. 연결에 필요한 정보는 어플리케이션 유형별로 다르지만, 파일, DB 유형은 공통적으로 사용자 계정 정보를 필요로 하고, 전문 유형의 어플리케이션(소켓 등)은 포트 정보가 필요한다. 아래 그림은 DB 유형의 어플리케이션에 접근하기 위해 필요한 정보를 보여준다. DB 유형은 DBMS 유형에 따라 DB 명 외에 DB 서버를 기술하여야 하기도 한다.

시스템

시스템은 어플리케이션과 서버의 조합이다. 조합의 숫자는 대체로 서버의 수와 일치한다. 만일 여러 대의 서버에서 하나의 업무 어플리케이션이 작동한다면, 조합의 숫자는 서버의 수와 일치한다. 만일 같은 업무 어플리케이션의 인스터스가 여러 개라면, 조합의 숫자는 어플리케이션의 수와 서버의 수를 곱한 값이다. 이 구성은 웹 서버에서 주로 쓰인다.

시스템은 대행 시스템을 가질 수가 있는데, 대행 시스템은 런타임 시에 송신 시스템 또는 수신 시스템과의 인터페이스를 대신 수행해주는 인터페이스 프로세스를 의미한다. 연결정보가 프로그램 또는 컴포넌트에 고정적으로 설정되어야 하는 경우 – 주로 DBMS – 이외에는 동적으로 연결 정보를 조합하여 송신 시스템 또는 수신 시스템과 연결할 수 있다. 동적인 조합에 의한 연결이 가능한 시스템들에 대해서는 공통의 대행 시스템을 지정하여 처리한다.

Proxy system is used only in Businessware version.

프록시 시스템들은 다음과 같은 종류의 인터페이스들을 갖는다.

  • 실시간
    • 송신 시스템
      • 비동기 반응을 송신 시스템으로 보내는데 쓴다.
    • 수신 시스템
      • 요청을 수신 시스템으로 전달하는데 쓴다.
  • 배치
    • 송신 시스템
      • 데이터(파일, 테이블)을 송신 시스템에서 가져오는데 쓴다.
    • 수신 시스템
      • 데이터(파일, 테이블)을 수신 시스템으로 옮기는데 쓴다.
  • 디퍼드
    • 송신 시스템
      • 데이터(테이블)을 송신 시스템으로부터 가져오는데 쓴다.
    • 수신 시스템
      • 데이터(파일, 테이블)을 수신 시스템으로 옮기는데 쓴다.

데이터

송신 시스템에서 수신 시스템으로 전달하는 또는 수신 시스템에서 송신 시스템으로 되돌려주는 결과 등의 데이터를 정의한다. 데이터는 특정 필드들의 그룹을 조합한 형태로 구성한다.

필드

데이터를 구성하기 위한 최소 개체로 필드가 사용된다. 필드는 필드 그룹을 구성하는 단위이며 길이, 유형(Number, Character, Date 등), 형식(format) 정보를 관리한다.

필드 그룹

필드들을 조합한 것이 필드 그룹이다. 필드 그룹은 필드들이 나타나는 순서를 정의하고 각 필드가 필드 그룹 내에서 사용되는 방식 – 키 필드 여부, 입출력 유형 등 -을 관리한다. 필드 그룹은 필드 그룹 내의 개별 필드들을 구분하기 위한 방법 – 구분자 또는 길이 -을 관리한다.

데이터 구조

데이터 구조는 필드 그룹들의 조합이다. 데이터 구조는 마스터와 디테일로 구성된다. 마스터는 1회만 반복되는 필드 그룹이고 디테일은 여러 번 반복이 가능한 필드 그룹이다. 데이터 구조는 1개 이상의 마스터로 구성된다. 각 마스터는 1개 이상의 디테일을 가질 수 있다. 각 데이터 유형 별 데이터 구조의 구성 방식은 다음과 같다.

서비스 유형 데이터 구조 구성 설명
ISM 메시지 N 마스터 – N 디테일 헤더부 + 데이터부로 구성된다고 가정하면 데이터부의 반복 여부에 따라 마스터(헤더부) + 마스터(데이터부) 마스터(헤더부) + 디테일(데이터부) 마스터(헤더부) + 마스터(반복되지 않는 데이터부) + 디테일(반복되는 데이터부) 등의 방식으로 구성된다.
XML 메시지 XML

XML로 표현 가능한 구조로 구성한다.

데이터 구조 정의 시 XML Schema 또는 DTD를 이용하지 않는다.
파일 1 마스터 파일 데이터는 하나의 마스터로만 구성된다.
테이블 1 마스터 테이블 데이터는 하나의 마스터로만 구성된다. 여러 테이블을 join하여 데이터를 조회할 경우, join된 결과를 하나의 필드 그룹으로 하여 데이터 구조를 구성한다.

서비스

서비스는 송신 또는 수신 시스템과 인터페이스하는 데 필요한 데이터, 인터페이스 방식을 정의하는 인터페이스 서비스와 인터페이스 서비스들을 조합한 통합 서비스로 구분한다.

인터페이스 서비스

인터페이스에 필요한 데이터 및 데이터 추출 또는 반영 방법을 관리한다. 파일을 전송하는 배치 서비스에서는 파일 데이터 구조 정보 및 파일이 존재하는 경로, 파일이 존재할 때의 처리 방법, 파일을 전송한 뒤의 처리 방법 – 파일 권한 변경 – 등을 정의해야 한다. 인터페이스 서비스에서 사용하는 데이터 구조는 입력, 출력, 오류의 세 가지이다. 각 데이터 구조의 사용 방법은 다음과 같다.

송신에서 수신으로 전달되는 데이터는 요청으로, 수신에서 송신으로 되돌아오는 데이터는 응답으로 표현할 수 있다. 수신 시스템에서 처리 결과를 되돌려 줄 때는 정상 처리 데이터 외에도 오류 처리 데이터(업무 오류)도 포함되어 있고 오류 처리 데이터가 정상 처리 데이터와 데이터 구조가 다를 때, 오류 응답으로 표현할 수 있다.

  • 요청
    • 송신 서비스에서는 송신 시스템으로부터 입력된 데이터를 수신 서비스로 전달되기 위해 출력으로 사용한다. 수신 서비스에서는 송신 서비스로부터 전달된 데이터를 수신 시스템으로 전달되기 위해 변환된 형식의 입력 데이터로 사용한다.
  • 응답
    • 수신 서비스에서는 수신 시스템으로부터 되돌아온 응답 데이터를 송신 서비스로 데이터를 되돌려 주기 위해 수신 서비스의 출력 데이터로 사용한다. 송신 서비스에서는 수신 서비스로부터 되돌아온 응답 데이터를 송신 시스템으로 되돌려 주기 위해 변환된 형식의 입력 데이터로 사용한다.
  • 오류 응답
    • 오류 응답은 정상적으로 처리된 결과로서의 오류를 의미하며 오류 응답을 생성할 수 있는 주체는 수신 시스템이다. 수신 서비스는 응답 데이터의 오류 여부를 판단하여 오류인 경우 오류 데이터에 대한 변환이 정의되어 있다면 변환을 수행하여 되돌려 준다.

인터페이스 서비스에서는 데이터를 가져오거나 반영하기 위한 방법을 관리하는 데, 일반 온라인 서비스에서는 처리 대상 데이터가 요청된 메시지 내에 포함되어 있지만, 배치/디퍼드 방식에서는 처리를 위한 조건이나 서비스 구분자만이 포함되어 있다. 따라서 배치/디퍼드에서 사용되는 인터페이스 서비스에는 데이터를 추출/또는 반영하기 위한 방법을 관리한다. 아래 그림은 DB 송신 인터페이스 서비스에서 데이터를 가져오기 위한 방법을 정의한다.

데이터 매핑

각 송신/수신 인터페이스 서비스에서 사용할 데이터 구조가 정의되면 입출력 데이터 구조에 따라 변환이 필요할 수도 있다. 변환이 필요할 경우 입출력 데이터를 이용하여 변환을 정의한다.

통합 서비스

인터페이스 서비스는 각각 데이터를 가져오거나 반영하기 위한 방법은 관리하지만, 통합 서비스에서 어떤 과정을 통해 데이터를 가져오고 반영하는 지를 관리하지 않는다. 전체 처리 흐름(규칙)은 통합 서비스에서 관리한다. 서비스 모델링이라는 과정을 통해 통합 서비스의 송신 인터페이스 서비스와 수신 인터페이스 서비스, 두 서비스 사이의 데이터 변환, 두 서비스 사이의 라우팅 조건 등을 정의하고 최종적으로 대상 시스템까지 관리하는 것이 통합 서비스이다.

통합 서비스 관리

버전 관리

ISM에서 관리하는 데이터는 두 가지 유형으로 구성된다. 하나는 버전 정보를 가진 히스토리 데이터이고 다른 하나는 버전 정보가 없는 마스터 데이터이다. 런타임시에 또는 다른 아이템에서 참조할 때는 마스터에 데이터가 존재해야 한다. 예를 들어 시스템을 구성하기 위해서는 최소 하나의 어플리케이션과 하나의 서버가 있어야 한다. 그러기 위해서는 히스토리 영역에 있는 어플리케이션 정보와 서버 정보는 마스터 영역에 적용되어 있어야 한다.

컴포넌트 사이의 관계

ISM의 모든 데이터는 직접적인 계층 관계가 없다. 시스템은 어플리케이션과 서버 정보가 필요하지만, 시스템은 어플리케이션과 서버를 소유하고 있지 않다. 다만 연결 정보만 가지고 있다. 각 데이터는 따로 존재하고 따로 적용된다. 예를 들어 서버의 IP 주소가 바뀌면 시스템 정보를 변경하는 것이 아니라 서버 정보만 변경하여 적용하면 된다.