단말과의 통신

본 장에서는 OpenFrame AIM이 사용자가 단말에 접속하여 업무를 처리할 수 있도록 지원하는 단말과의 통신 기능에 대해 설명한다.

1. 설정

OpenFrame AIM은 TN3270 프로토콜을 사용하는 단말과의 통신을 지원한다. 지원하는 단말의 종류에는 TN3270 프로토콜을 사용하는 에뮬레이터와 웹브라우저를 통해 단말 기능을 사용할 수 있는 웹터미널(Web Terminal) 이 있다. 사용자는 화면 단말로 접속하여 데이터를 조회하거나 갱신하는 업무를 처리하고, 결과를 출력하는 등의 업무를 수행할 수 있다.

단말이 OpenFrame AIM에 접속하기 위해서는 먼저 단말과 OpenFrame AIM 간에 필요한 내용을 설정해야 한다. OpenFrame AIM은 접속할 수 있는 단말에 대한 정보를 ADL WORKSTATION 커맨드를 통해 정의한다.

단말의 설정에 관한 내용은 해당 단말이나 단말 에뮬레이터에서 제공하는 별도의 매뉴얼을 참고한다.

다음은 WORKSTATION 커맨드에 관한 정의 예이다.

WS-GROUP NAME IS TMAXRDTP.
WORKSTATION NAME IS TPWS001
; TYPE IS T7366LC1
; TERMINAL IS L7366#1
; MUK IS #1 MUKN001 #2 MUKN002
; AUTO-PATHON TO TPPROC01
; AUTHOR IS T.KIM
; DATE-WRITTEN 2008.01.10
; REMARKS  SAMPLE FOR WORKSTATION COMMAND .
END.

2. 단말 연결

OpenFrame AIM 시스템에서 업무를 수행하려면 단말을 시스템에 연결해야 한다. 본 절에서는 입력 장치가 있는 단말과 입력 장치가 없는 단말의 연결 방법에 대해서 설명한다.

2.1. 입력 장치가 있는 단말

입력 장치가 있는 화면 단말의 경우 OpenFrame AIM 시스템에 연결하는 과정은 다음과 같은 과정으로 이루어진다.

  1. 게이트웨이에 접속(CONNECT)

  2. AIM 시스템의 프러시저에 연결(LOGON)

다음 그림은 단말을 시스템에 연결하는 과정을 설명한다.

figure 2 1
단말의 연결 단계
접속(CONNECT)

단말은 게이트웨이에 접속한다. 네트워크 설정이 올바르게 되어 있고 단말에 설정된 내용이 정확하고 ADL WORKSTATION 커맨드에 기록된 내용에 부합하면 단말은 성공적으로 게이트웨이에 접속하게 된다. 게이트웨이에 접속하는 것은 물리적으로 연결되어 이후 통신이 가능한 상태가 되었음을 의미한다. 접속에 성공하면 LOGON 프롬프트가 화면에 나타난다.

로그온(LOGON)

게이트웨이에 접속하는 것에 성공한 다음에는 OpenFrame AIM 시스템의 프러시저에 로그온(LOGON)한다. 로그온은 단말에서 LOGON 명령어를 통해 실행한다. LOGON 명령어를 입력할 때 프러시저의 이름을 함께 설정한다.

LOGON 명령어의 형식은 다음과 같다.

LOGON AIM,[단말명],프러시저명
옵션 설명

단말명

로그온할 단말명을 설정한다. 커맨드를 입력하는 단말의 이름을 기술해야 한다. 단말명은 생략 가능하다.

프러시저명

단말에서 접속할 프러시저의 이름을 설정한다.

다음은 TPWS001이라는 단말이 OpenFrame AIM의 TPPROC01이라는 프러시저에 로그온하는 예제이다.

LOGON AIM,TPWS001,TPPROC01

단말이 로그온에 성공하면 OpenFrame AIM은 단말을 논리적으로 인식하게 되고, 단말은 비로소 OpenFrame AIM 시스템의 자원을 이용할 수 있는 준비가 된다. 또한 TPPROC01이라는 프러시저에 접속한다.

LOGON 커맨드에 대해서는 OpenFrame AIM "운영자 안내서"의 "AIM 업무"를 참고한다.

2.2. 입력 장치가 없는 단말

입력 장치를 갖추지 못한 단말의 경우는 게이트웨이에 접속은 할 수 있으나 로그온을 능동적으로 하지 못한다. 업무 애플리케이션으로부터 나오는 결과물을 출력하려면 해당 단말도 업무 애플리케이션과 논리적으로 연결되어야 하기 때문에 로그온 과정이 필요하다.

이런 경우에는 다른 입력장치가 있는 단말이나 혹은 업무 애플리케이션에서 별도의 명령어를 통해 해당 단말을 로그온시킨다. 다른 단말을 로그온시키기 위해 사용하는 명령어는 SLOGON 커맨드이다. SLOGON 커맨드는 aimcmd를 통해 입력한다.

다음은 SLOGON 명령어의 형식이다. SLOGON 명령어의 형식은 LOGON 커맨드와 유사하다.

SLOGON 단말명[,프러시저명]
옵션 설명

단말명

로그온하려는 단말의 이름을 설정한다.

프러시저명

단말과 연결할 프러시저의 이름을 설정한다.

3. 업무 시작

단말을 프러시저에 연결하면 업무를 시작하게 된다. 연결된 단말이 처리할 수 있는 애플리케이션의 범위는 ADL PROCEDURE 커맨드와 MQN 커맨드에 의해 정의된다.

MQN 커맨드에 의해 정의되는 MQN(Message Queue Node)은 개별 업무 애플리케이션이 단말과 통신하는 채널의 역할을 한다. 만약 업무 애플리케이션이 메시지 파일 인터페이스를 사용한다면 MQN을 정의할 때 이 MQN이 속하게 되는(BELONGS TO) 프러시저의 이름을 선언함으로 개별 업무 애플리케이션들은 선언된 프러시저로 묶을 수 있다. 단말 사용자는 처리할 개별 애플리케이션을 선택하지 않고 로그온 과정을 통해 단말을 프러시저에 연결하여 이 프러시저에 정의된 순서대로 업무를 처리하게 된다.

단말이 프러시저에 연결되면 DCMS는 해당하는 PROCEDURE 커맨드에 지정된 화면을 내려 보내거나, 지정된 업무 애플리케이션에 단말이 연결되었다는 메시지를 전달한다.

초기 화면을 내려 보내는 경우 화면의 포맷ID(FID)는 PROCEDURE 커맨드의 TOP MENU 절이나 INITIAL-FID 절에서 지정한다.

초기 화면을 내려 보내지 않고 프러시저가 연결되었다는 메시지를 바로 업무 애플리케이션으로 전달하는 경우는 PROCEDURE 커맨드의 COMMAND TYPE 절에서 해당 애플리케이션의 SMQN(Secondary Message Queue Node) 이름을 설정한다. 이 경우에는 단말이 프러시저에 성공적으로 연결됐다는 메시지가 해당 애플리케이션에 전달되고 이후 애플리케이션에서 처리하게 된다.

입력 장치가 없는 단말의 경우에는 프러시저와의 연결을 능동적으로 하지 못하고 다른 업무 애플리케이션이나 운영자 콘솔에서 SPATHON 커맨드를 발행해야 연결할 수 있다. 해당 단말이 프러시저에 연결되면 해당 프러시저에 속한 업무 애플리케이션으로부터 전달받은 내용을 출력할 수 있다.

4. 단말과 업무 애플리케이션의 통신

AIM은 업무 애플리케이션이 단말과 통신하는 방식으로 파일 인터페이스를 제공한다. 업무 애플리케이션은 단말과 통신하는 것을 의식하지 않고 순차 파일에서 레코드를 하나씩 읽어 처리하듯이 진행하게 된다.

단말에서 입력한 내용은 일단 DCMS의 버퍼에 저장된다. 업무 애플리케이션은 AIM이 제공하는 파일 I/O 인터페이스를 통해 이 버퍼의 내용을 읽어 들인다.

COBOL로 작성된 애플리케이션의 경우 READ 명령을 통해 메시지를 읽어 들이게 된다. 읽어 들인 메시지를 처리하고 단말에 돌려보내는 결과 역시 파일 I/O 인터페이스를 통해 내보내게 된다. COBOL로 작성된 애플리케이션의 경우 WRITE 명령을 통해 메시지를 내보내게 된다.

figure 2 2
단말과 업무 애플리케이션 간의 통신

각 업무 애플리케이션은 MQN(Message Queue Node)이라는 공간을 DCMS 버퍼 내에 갖는다. 이 MQN은 업무 애플리케이션이 단말과 통신하는데 사용되는 사서함의 역할을 한다.

단말로부터 입력되는 메시지는 지정된 MQN 으로 전송한다. 트랜잭션은 MQN이 갖고 있는 SMQN(Secondary Message Queue Node)의 이름으로 실행된다. 하나의 MQN은 하나 이상의 SMQN을 가질 수 있다.

figure 2 3
MQN과 업무 애플리케이션 간의 통신

MQN과 SMQN은 ADL의 PED 커맨드와 MQN 커맨드에 정의한다. MQN과 SMQN의 이름은 각 업무 애플리케이션 별로 유일해야 한다.

다음은 PED 커맨드와 MQN 커맨드의 작성 예이다.

PED NAME IS PEDEX01
; AUTHOR IS T.H.KIM
; DATE-WRITTEN 2008.01.10
; REMARKS PED EXAMPLE.
AP NAME IS APTEST01
; TRANSACTION-POINT IS SYSTEM.
MQN NAME IS MQNEX01 FOR MQNDS01.
END.

MQN NAME IS MQNEX01 BELONGS TO PROCEX01
; TYPE IS MESSAGE FILE.
SMQN NAME IS SMQNEX01
; PROCESSING TASK LIMIT IS 255.
END.

이 예제에서 업무 애플리케이션 APTEST01은 MQNEX01이라는 MQN을 MQNDS01이라는 DD로 갖는다. MQNEX01은 PROCEX01이라는 프러시저에 속하게 되고 SMQNEX01이라는 SMQN으로 메시지를 처리한다.