애플리케이션 간 통신
본 장에서는 이와 같이 2개 이상의 업무 애플리케이션이 트랜잭션을 처리할 때 업무 애플리케이션들 사이에 일어나는 통신에 대해 설명한다.
1. 개요
단말로부터 요청된 업무를 처리할 때 하나 이상의 업무 애플리케이션이 연결되어 처리하는 경우가 있다. 이런 경우에 업무 애플리케이션은 단말과의 통신 외에 다른 업무 애플리케이션과도 통신을 하게 된다.
업무 애플리케이션 간 통신을 할 때도 업무 애플리케이션이 단말과 통신할 때와 마찬가지로 MQN을 통해 통신한다. PROGRAM A가 PROGRAM B가 사용하고 있는 MQN에 메시지를 쓰면 PROGRAM B는 PROGRAM A가 보낸 메시지를 수신하게 된다.
2. 제어권을 넘기는 통신
업무 애플리케이션 간 통신에 있어 제어권이란 단말과 통신하는 것을 말한다. 단말 사용자가 업무를 진행하는 중에 통신하는 애플리케이션이 바뀌게 되면 제어권이 넘어가는 것이다.
다음은 PROGRAM A가 PROGRAM B에게 단말의 제어권을 넘기는 과정에 대한 설명이다.
-
처음 단말은 PROGRAM A에 메시지를 보낸다.
-
PROGRAM A는 필요한 처리를 하고 PROGRAM B에 메시지를 전달한다.
-
PROGRAM B는 PROGRAM A로부터 받은 메시지로 업무를 처리하고 단말에 메시지를 보낸다. 이 경우 PROGRAM A는 PROGRAM B에 제어권을 넘긴 것이 된다.
3. 제어권을 넘기지 않는 통신
온라인 업무는 개별 트랜잭션의 처리 시간이 짧아야 시스템이 원활하게 운영된다.
비교적 많은 양의 데이터를 갱신하거나 프린터를 출력하는 등의 업무는 트랜잭션 처리 시간이 길어져 시스템 전체적으로 볼 때 병목이 될 수 있다. 이런 경우에 처리 시간이 긴 구간을 별도의 업무 애플리케이션으로 분리하여 단말과의 통신과 상관 없이 백그라운드로 처리할 수 있다. 이런 형태의 통신을 제어권을 넘기지 않는 통신이라고 한다.
다음은 PROGRAM A가 PROGRAM B에게 단말의 제어권을 넘기지 않는 과정에 대한 설명이다.
-
처음 단말로부터 들어온 메시지는 PROGRAM A가 받아 처리를 시작한다.
-
트랜잭션 중에 데이터를 갱신하는 처리를 위해 메시지를 PROGRAM B로 보내고 PROGRAM A는 곧바로 단말에 응답 메시지를 보낸다.
-
PROGRAM B는 PROGRAM A로부터 받은 메시지에 따라 데이터를 갱신하는 업무를 처리한다. PROGRAM B의 트랜잭션의 종료 여부와 관계없이 PROGRAM A로부터 단말에 응답 메시지가 전달되어 단말 사용자는 이후 업무를 진행할 수 있다. PROGRAM A 역시 계속 업무를 처리할 준비 상태에 있게 된다.
PROGRAM B와 같이 제어권이 없는 메시지를 받아 업무를 처리하는 경우 요청된 트랜잭션이 끝나면 단말에 강제메시지를 보내거나 콘솔에 메시지를 출력하는 등의 기능을 통해 업무의 종료를 알린다. 강제메시지는 이와 같이 업무 애플리케이션이 현재 자기와 통신하고 있지 않은 단말에 메시지를 보낼 때 사용되는 기능이다.