ISM은 크게 세 가지 요소들로 구성된다. 통합을 위한 플랫폼 역할을 수행하는 BusinessWare, 해당 플랫폼 위에서 업무 서비스를 실행하고 제어하는 ISM 엔진, 그리고 ISM을 통해 수행되는 서비스들에 대한 관리와 실행, 모니터링을 직접 주관하는 ISM 웹 콘솔이 이에 해당한다.
EAI/ESB툴로서 통합 대상 시스템들 사이의 인터페이스 기능을 제공한다. 어플리케이션 유형에 따른 커넥터(어댑터)를 제공하여 일관성 있는 네트웍 인터페이스를 제공한다. 플랫폼으로서의 중요한 기능 중 하나로 각 컴포넌트 및 프로세스 간의 안전하고 빠른 메시징 기능을 제공한다. 동기/비동기/브로드캐스팅 등의 메시징 기능을 제공함으로써 통합 업무 서비스 유형에 따라 필요한 메시징 방식을 선택하도록 한다. 안정적인 메시징의 범위에는 메시지의 신속하고 정확한 전달만이 아니라 중복 전달 같은 것을 방지할 수 있는 체계도 필요하다. 데이터베이스와의 통신 시 이미 처리한 데이터의 중복 처리로 인해 오류가 발생할 가능성등을 제거하기 위해서는 메시지 통신에 대한 트랜잭션 관리 기능이 반드시 필요하다. Businessware는 이를 위해 J2EE 트랜잭션 서비스 표준을 지원하는 트랜잭션 관리자를 제공하며 이를 통해 신뢰할 수 있는 메시징을 지원한다. ISM 엔진은 Businessware의 메시징, 트랜잭션 관리 기능, 커넥터 기능을 활용하여 통합 업무 서비스를 수행한다. 통합에 관계된 대상 시스템과 ISM 엔진과의 통신은 Businessware의 커넥터/메시징 계층(layer)에서 중개를 한다. 통합 서비스를 수행하는 컴포넌트들은 BusinessWared의 Project를 실행 단위로 하여 구성된다. ISM의 모든 프로세스들은 프로세스 관점에서 보면 모두 BusinessWare 기반의 project이다.
ISM 엔진은 통합 업무 서비스를 실제로 수행하고 제어하는 핵심 컴포넌트다. ISM 엔진은 크게 패턴 관리, 서비스 처리, 서비스/정보 관리, 서비스 추적/모니터링 등을 수행하는 컴포넌트들로 구성된다.
어떤 송신 시스템에서 어떤 데이터를 가져와서 어떤 수신 시스템으로 데이터를 보내는 지에 대한 정의를 ISM 웹 콘솔을 통해 등록하면 ISM 엔진은 서비스 요청을 수신하였을 때, 등록된 정보를 바탕으로 송신 시스템과의 인터페이스를 수행하여 데이터를 추출하고 지정된 수신 시스템으로 추출한 데이터를 반영한다. 여기서 송신 시스템과 수신 시스템 사이의 인터페이스 방식을 패턴이라고 표현할 수 있으며 ISM웹 콘솔을 통해 등록된 여러 가지 유형의 인터페이스 방식(패턴)을 ISM 엔진을 통해 처리한다. ISM은 정의된 방식(패턴)에 따라 송신/수신 시스템과의 인터페이스를 수행하며 인터페이스 결과 데이터를 마찬가지 방식으로 정의된 내용에 따라 처리한다. ISM에 고정된 패턴은 존재하지 않지만, 흔히 사용하는 일반적인 패턴들은 다음과 같다.
이 외에 통합 서비스 요구 사항에 맞는 패턴들은 사용자가 정의하여 사용할 수 있다.
패턴에 따라 데이터를 처리하는 과정에서 업무 요건에 따라 데이터가 가공되어야 할 경우도 있다. 또는 데이터 오염을 방직하기 위해 데이터 처리 전에 검증 작업이 필요할 수도 있다. 서비스 처리기는 서비스 전체 흐름 속에서 각 처리 단계별로 필요한 작업들을 수행하는 역할을 수행한다. 각 처리 단계별로 필요한 작업은 다음과 같다.
최초에 데이터 처리 요청을 수신하였을 때, 외부 시스템으로부터 처리해야 할 데이터가 전송되는 경우는 입력된 데이터로부터 서비스 정보를 추출하는 작업이 필요하다. 서비스 정보를 추출하는 것은 ISM에서 관리하는 정보와 동일한 key를 갖는 통합 서비스 ID를 추출하는 작업이며 이 작업이 완료된 후 본격적인 ISM의 통합 서비스가 수행된다. 서비스 Id를 추출한 후에는 이 서비스 Id를 갖는 통합 서비스가 어떤 방식(패턴)으로 데이터를 처리하도록 정의되어 있는 지 확인하는 작업을 수행한다.
데이터의 내용에 따라 데이터를 처리하는 수신 시스템이 달라지는 경우 또는 데이터 오염을 방지하기 위해 검증을 수행하여야 할 때, 이럴 때 데이터를 분석한다. 데이터 내용에 관계없이 지정된 수신 시스템으로 데이터를 전송하는 경우는 분석 작업을 수행하지 않는다.
입력된 데이터를 검증하는 과정은 데이터 분석을 통해 데이터를 정의된 데이터 구조 형식으로 쪼갠 다음, 각 개별 필드의 값이 정의된 규칙에 맞는 지를 확인하는 과정이다. 데이터를 검증하는 방식은 정의된 값과 일치하는 지, 범위 내에 속하는 지, 지정된 목록 내에 존재하는 지, 또는 사용자가 지정한 검증 함수에 의해 정의된 결과가 나오는 지 등이다.
수신 시스템으로 데이터를 전송하기 위해 입력된 데이터를 가공해야 할 필요가 있을 때, ISM은 정의된 방식으로 데이터 변환을 수행한다. 변환은 개별 필드를 기준으로 1:1, N:1, 기본값, 변환함수 등을 통해 수행된다.
런타임 시에 사용하는 서비스 정보를 등록/변경/삭제/적용하는 관리 행동은 ISM 웹 콘솔을 통해 이루어지지만, 이 요청들을 각 통합 서비스 프로세스/컴포넌트들에 배포하는 역할은 서비스 정보 관리기에서 수행한다. ISM 웹 콘솔을 통해 생성된 서비스 정보는 프로세스에서 사용할 수 있는 형태가 아닌 텍스트 데이터로 존재한다. 서비스 정보 관리기는 이 데이터를 가공하여 프로세스가 사용할 수 있는 객체로 전환하는 작업을 수행한다. 객체로 전환한 후에는 각 프로세스가 변경된 서비스 정보를 사용할 수 있도록 각 프로세스에 정보 변경 내용을 통지하고 전달한다. 이 과정을 통해 서비스 정보는 운영 중에 동적으로 생성되고 변경된다.
통합 서비스가 정상적으로 수행되었는 지 여부를 알기 위해서는 어떤 데이터가 어떻게 처리되었는 지에 대한 결과 로그를 남기거나, 사용자가 보기 편한 형태로 제공하여야 한다. ISM 서비스 추적/모니터링 컴포넌트는 서비스 수행 결과를 별도의 미디어에 관리하여 웹콘솔에서 쉽게 접근할 수 있도록 한다. 서비스의 처리 결과만이 아닌 처리 상태 – 프로세스의 상태나 서비스 집중 상황 등 – 정보들을 제공하여 사용자가 웹콘솔을 통해 쉽게 확인하도록 한다. 모니터링 환경이 구성되어 있어서 특정 서비스의 오류 또는 장애 발생 시에 오류 또는 장애 상황을 사용자에게 통지하여 신속하게 상황을 인지하도록 지원한다.
웹콘솔은 엔진이 서비스를 수행하기 위한 정보들을 생성하고 관리한다. 통합 서비스 요건 전체를 관리하고 처리 결과, 통계 등의 정보들을 사용자에게 제공한다. 웹콘솔의 기능은 다음과 같다
통합 서비스를 구성하는 기능이 웹콘솔의 가장 기본적인 기능이다. 통합 서비스는 시스템, 데이터, 처리규칙 등의 개체가 모여 구성된다. 시스템은 각각 송수신 시스템을 의미하며, 데이터는 송수신 시스템 사이에 주고받는 데이터 구조, 처리 규칙은 데이터를 송수신 시스템 사이에서 주고 받기 위한 방법을 정의한다. 이 정보들을 웹콘솔에서 조합하여 하나의 통합 서비스를 생성한다. 통합 서비스는 버전으로 관리되어 동일한 이름의 통합 서비스라도 버전에 따라 다른 데이터, 다른 시스템과의 인터페이스로 정의할 수 있다.
외부의 요청에 의해 서비스가 수행되는 배치/온라인에 대해서는 웹콘솔을 통해 제어할 수 없지만, ISM 자체 스케쥴러에 의해 실행되는 디퍼드 서비스는 웹콘솔을 통해 제어한다. 서비스의 시작/중지/재개/종료에 이르는 전 과정을 웹콘솔을 통해 제어한다.
웹콘솔은 서비스 수행 결과를 확인할 수 있는 뷰를 제공하여 서비스들이 정상적으로 수행되었는 지, 그리고 어떤 데이터가 어떻게 처리되었는 지를 확인하도록 한다. 또한 각 서비스들의 시간별/일별 처리 현황 리포트를 제공하여 일별 서비스 수행 현황에 대한 정보 및 향후 시스템 운영 상황에 대한 예상을 가능하게 한다.
ISM 서비스 수행에 관계되는 컴포넌트들을 처리 흐름 상의 순서대로 나열하면 다음과 같다.
컴포넌트(시스템) | 역할 |
---|---|
외부 시스템(송신) | 서비스 수행 요청을 발생시킨다. |
채널 서비스 | 서비스 수행 요청을 받아들인다. 채널 서비스는 각 인터페이스 유형별로 요청을 수신하여 수신된 데이터에서 통합 서비스 정보를 추출하여 서비스 컨트롤러에게 넘겨준다. 서비스 컨트롤러의 작업 완료 후 처리 결과를 외부 시스템(송신)에게 되돌려 준다. |
서비스 컨트롤러 | 통합 서비스 정보를 조회하여 서비스의 처리 방법을 결정하고 처리 방법에 따라 컴포넌트 서비스로 요청을 전송한다. 데이터에 대한 변환이나 검증 작업 또는 라우팅이 필요하면 컨트롤러가 라우팅 결과에 따라 요청을 전송해야 할 컴포넌트 서비스를 결정한다. |
컴포넌트 서비스 | 서비스 컨트롤러로부터 받은 전송 요청을 외부 시스템(수신)으로 전달한다. 요청에 대한 처리 결과를 서비스 컨트롤러에게 되돌려 준다. 수신 시스템의 장애 시 수신 시스템의 복구 여부를 모니터링한다. |
외부 시스템(수신) | 서비스 수행 요청을 받아서 서비스를 수행하고 결과를 되돌려 준다. |
ISM에서 제공하는 서비스는 크게 배치/디퍼드/온라인의 세 유형으로 분류할 수 있다. 서비스 유형으로는 이 범주에 모두 포함할 수 있지만, ISM에서 제공하는 기능 범위를 벗어난 경우 Custom으로 분류한다.
사용자 요청이나 스케쥴러에 의해 배치 서비스는 파일 또는 테이블 데이터를 송신 시스템에서 수신 시스템으로 전송하는 서비스를 의미한다. 배치 서비스의 요청 데이터에는 파일 또는 테이블 데이터를 넘기기 위한 조건들이 포함된다. 스케쥴러에 의한 요청은 지정된 주기를 갖지만, 사용자의 요청은 지정된 주기를 갖지 않는다. 배치 서비스에서 지원하는 어플리케이션 유형은 파일, 데이터베이스의 두 가지이다. 통합 대상 시스템 수를 기준으로 하였을 때 1:1~n의 패턴을 지원한다.
ISM 자체적으로 관리하는 수행 주기에 의해 송신 시스템의 테이블 데이터를 수신 시스템으로 파일 또는 테이블 데이터 형태로 전송하여 동기화하는 서비스를 의미한다. 디퍼드 서비스로 처리되어야 할 대부분의 데이터는 즉각적이지는 않지만, 최대한 늦지 않게 동기화되어야 하는 데이터이다. ‘로그성 데이터들의 즉각적인 전송’ 또는 ‘최소한 원본 데이터 생성 후 어느 시간 이전에는 동기화 완료’ 등이 디퍼드 서비스로 처리되어야 할 데이터들이다. 이를 위해 ISM에서는 자체 스케쥴러를 통해 데이터 처리 주기를 결정한다. 배치 서비스의 스케쥴러는 ISM 외부 시스템에 존재하고, 일단위, 주단위 등의 주기 설정이 가능하지만, 디퍼드 서비스의 스케쥴러는 상대적으로 짧은 주기를 관리한다. 디퍼드 서비스에서 지원하는 어플리케이션 유형은 파일, 데이터베이스의 두 가지이다. 단 송신 시스템으로 사용할 수 있는 어플리케이션은 데이터베이스이다. 통합 대상 시스템 수를 기준으로 하였을 때는 배치와 마찬가지로 1:1~n의 패턴을 지원한다.
사용자의 요청에 데이터가 전송되어야 할 데이터가 모두 포함되어 있는 플랫 메시지를 처리하는 서비스이다. 사용자의 요청에 대한 응답은 즉각적이며, 짧은 시간 안에 서비스 수행이 완료되는 서비스이다. 주된 인터페이스 방식은 소켓/HTTP/TP모니터/WebService 등이다. 플랫 메시지는 헤더와 데이터의 구조로 구성된 것을 의미한다. 배치/디퍼드 서비스와 달리 온라인 서비스에는 좀 더 다양한 형태의 인터페이스 방식 – 요청/응답, publish/subscribe, 동기/비동기 – 등이 사용된다.