메시지 편집
본 장에서는 OpenFrame AIM에서 제공하는 메시지 편집 과정에 대해 설명한다.
1. 개요
OpenFrame AIM 시스템에 TN3270 프로토콜을 이용하여 접속한 단말이 보내는 메시지는 TN3270 스트림이다.
메시지 편집 기능이란 단말이 보낸 TN3270 데이터 스트림을 업무 애플리케이션이 읽어 들일 수 있는 포맷으로 바꾸어주는 기능을 말한다. 역으로 업무 애플리케이션이 작성한 메시지를 단말로 내려 보낼 때 TN3270 프로토콜로 변환하는 역할도 한다.
OpenFrame AIM이 제공하는 메시지 편집 기능은 업무 애플리케이션 작성자가 단말과 통신하기 위해 설계하는 I/O 레코드를 단말의 종류나 단말이 이용하는 프로토콜을 고려하지 않고 독립적으로 설계할 수 있도록 한다. I/O 레코드에 단말이나 프로토콜에 중립적인 제어코드를 사용함으로 업무 애플리케이션 작성자는 효율적인 애플리케이션 작성에만 집중할 수 있다.
단말로부터 입력된 메시지는 적절한 편집을 거쳐 DCMS의 버퍼에 저장되었다가 업무 애플리케이션으로 전달된다. 또한 업무 애플리케이션에서 단말로 보내지는 메시지 역시 DCMS의 버퍼에 저장되었다가 적절한 편집을 거쳐 단말로 보내진다. 이 편집 과정은 포맷ID(이하 FID)라고 하는 스크립트에 정의된 형식을 따라 이루어진다. FID의 형식은 OpenFrame AIM에서 PSAM(Presentation Service Access Method)이라는 이름으로 정의된다.
메시지 편집 기능을 통해 DCMS는 접속되어 있는 화면 단말에 어떤 화면이 나타나 있는지 기억하고 있다가 이 단말에서 데이터가 입력되면 기억하고 있는 FID를 통해 단말로부터 입력 받은 메시지를 입력 레코드 형식으로 편집하여 업무 애플리케이션에 전달한다. 반대로 업무 애플리케이션에서 단말로 출력하는 경우에는 업무 애플리케이션에서 출력하는 메시지의 제어정보 영역에 출력하고자 하는 화면을 나타내는 FID를 설정한다.
화면 단말에서 입력되어 올라온 메시지를 업무 애플리케이션의 입력 레코드로 변환하거나 혹은 업무 애플리케이션에서 출력 레코드에 기록한 내용을 단말에 맞는 포맷으로 편집하는 작업은 모두 DCMS에서 일어난다.
DCMS는 최초 업무 애플리케이션에서 단말로 메시지를 출력할 때 제어정보 영역에 기록된 FID의 이름을 확인하여 해당 FID 파일을 지정된 저장소로부터 읽어온다. 읽어온 FID를 통해 업무 애플리케이션에서 출력 레코드의 형식으로 기록한 데이터를 단말에 맞는 형식의 메시지로 변환한다.
다음 그림은 메시지 편집 과정이다.
-
메시지를 업무 애플리케이션의 입력 레코드로 변환 과정
화면 단말에서 입력되어 올라온 메시지를 업무 애플리케이션의 입력 레코드로 변환하는 작업은 다음의 과정으로 진행된다.
-
메시지에서 입력 레코드에 필요한 데이터를 추출하여 기록한다.
-
입력 레코드의 각 필드의 속성을 메시지에서 추출하여 기록한다.
-
-
메시지를 내려 보내는 작업 과정
업무 애플리케이션에서 화면 단말이나 프린터 단말로 메시지를 내려 보내는 작업은 다음의 과정으로 진행된다.
-
출력 레코드의 각 필드들의 데이터를 메시지의 적당한 곳에 위치시킨다.
-
FID에 기록되어 있는 고정 문자나 선 등을 추가한다.
-
수치 데이터를 지정된 위치에 추가한다.
-
이미지 데이터를 지정된 위치에 추가한다.
-
출력 레코드 각 필드의 속성을 해당 단말에 맞게 지정한다.
-
2. 메시지 편집 구성
업무 애플리케이션이 DCMS로부터 입력 받거나 DCMS로 출력하는 메시지는 단말과의 입출력 내용이 담기는 메시지 영역과 업무 처리를 위한 부가 정보인 제어정보 영역으로 구성된다.
-
메시지 영역
단말과 업무 애플리케이션 사이를 오가는 메시지 영역이 메시지 편집의 대상이 된다.
-
제어정보 영역
단말과 무관하게 DCMS와 업무 애플리케이션 사이에 오가는 정보는 메시지 편집의 대상이 아니다.
화면 단말로부터 입력 받은 메시지는 DCMS에서 현재 표시된 화면에 해당하는 FID의 내용에 따라 편집되어 업무 애플리케이션에 입력으로 사용될 데이터가 추출된다. 화면에 표시된 모든 내용이 추출되는 것이 아니라 FID에서 입력 필드로 설정된 필드들의 값만 추출되어 정해진 레코드 포맷으로 편집된다. 입력 필드의 속성 역시 입력 레코드의 각 필드 앞에 위치하는 제어 코드에 삽입된다. 업무 애플리케이션에 입력되는 이 제어코드는 단말의 기종이나 프로토콜에 무관하게 정의된다.
화면 단말에서 입력을 끝낸 단말 사용자는 입력을 완료했다는 신호로 엔터키(Enter Key)나 기능키(Function Key) 같은 특수한 키를 누르게 된다. 이때 눌려진 키 값도 입력 레코드에 표시한다.
아래의 표는 이런 특수 키를 눌렀을 때 업무 애플리케이션으로 전달되는 코드 값을 나타낸다.
Attention Key | Attention Code | Remarks |
---|---|---|
ENTER key |
E000 |
|
CLEAR key |
C000 |
|
PF key |
F0nn |
nn은 PF key의 일련번호를 나타냄 (01~24) |
PA key |
A00n |
n은 PA key의 일련번호를 나타냄 (1~3) |
단말로 출력되는 메시지는 DCMS에서 단말에 표시될 FID의 내용에 따라 편집되어 전송된다. 업무 애플리케이션에서 각 필드에 설정한 데이터는 FID에 설정된 오프셋에 맞춰 삽입된다. 또한 출력 레코드의 각 필드의 앞에 위치하는 제어 코드 역시 단말의 기종이나 프로토콜에 맞는 속성값으로 변환되어 출력 메시지에 삽입된다.
출력의 경우는 업무 애플리케이션에서 작성한 데이터뿐만 아니라 FID에 정의되어 있는 고정 데이터 역시 삽입된다. 이렇게 삽입되는 고정 데이터는 문자나 숫자뿐 아니라 표의 윤곽선 등의 선도 포함한다. 업무 애플리케이션에서 작성한 데이터나 FID에 미리 정의되어 있는 데이터 외에 시스템 가변 데이터 역시 단말 출력에 포함될 수 있다. 메시지의 일련 번호, 단말 이름, 날짜, 시간, 페이지 번호 등이 이에 속한다.
메시지에 대한 자세한 내용은 OpenFrame AIM “리소스 안내서”를 참고한다. |
업무 애플리케이션에서 화면 단말로 결과를 출력할 때 출력할 내용이 한 화면에 표시될 수 있는 것보다 많은 경우 화면을 분할하여 출력하는 페이징 기능을 사용하도록 FID를 작성할 수 있다. FID에 페이징 기능을 사용하도록 설정되어 있으면 DCMS는 출력물에 대해 페이지 이동을 제공한다. 업무 애플리케이션은 한 차례 출력물을 DCMS에 전달하고 이후 단말로부터 입력되는 페이지 이동 명령은 DCMS에 의해 처리된다.