소개

본 장에서는 MFS(Message Format Service)의 기본 개념과 구성 요소에 대해 설명한다.

1. 기본 개념

MFS는 TN3270에 사용자가 원하는 화면을 구성할 수 있도록 도와주는 모듈이다. MFS는 단말과 사용자 애플리케이션 사이에서 사용자 데이터를 단말의 종류에 맞게 화면에 출력해주거나 화면으로부터 입력받은 데이터를 사용자 데이터에 적합하게 구성한다.

figure 1 1
MFS 처리 순서
  1. 단말에서 데이터 입력을 받는다. (Device Input)

  2. 입력받은 데이터를 처리할 애플리케이션에 MFS를 통해 메시지를 전달한다. (Input Message)

  3. 애플리케이션이 처리한 결과를 메시지로 MFS에 전달한다. (Output Message)

  4. 결과 화면을 단말에 출력한다. (Device Output)

2. 구성 요소

MFS는 MFS 포맷 컴파일러 툴, MFS 라이브러리로 구성되어 있다.

  • MFS 포맷 컴파일러 툴

    MFS 문법에 맞게 작성된 포맷 파일을 기계언어로 컴파일하는 툴로, osimfsgen가 이에 해당한다.

  • MFS 라이브러리

    시스템 서버(Control Region)에서 단말과 사용자 서버(Dependent Region)간에 주고받는 메시지를 변환하는데, 이때 MFS라이브러리에서 변환기능을 제공한다.

다음 그림은 MFS 구성 요소 간의 관계에 대한 설명이다.

figure 1 2
MFS 구성 요소

2.1. MFS 포맷 컴파일러 툴(osimfsgen)

osimfsgen은 MFS 문법에 맞게 작성된 포맷 파일(화면 정보를 매크로로 정의한 텍스트 파일)을 기계어로 컴파일하는 툴이다.

osimfsgen을 통해서 MID, MOD, DIF, DOF 총 4가지의 바이너리 파일들이 생성된다(물리적으로 DIF와 DOF는 한개의 파일이다).

  • MID(Message Input Descriptor)

    DIF로부터 입력받은 화면 정보를 전달받아 사용자 애플리케이션으로 트랜잭션 정보와 함께 입력 데이터를 전달할 때 사용된다.

  • MOD(Message Output Descriptor)

    사용자 애플리케이션의 결과로 단말에 데이터를 전송하거나 단말에서 사용자가 MOD 이름을 입력하면 MOD에 연결된 DOF를 통해서 화면 정보와 데이터가 조합되어 화면에 출력된다.

  • DIF(Device Input Format)

    화면에 출력되는 정보 중 입력 가능한 필드에 대한 정보를 관리한다.

  • DOF(Device Output Format)

    화면에 출력되는 모든 정보를 관리한다.

MFS 바이너리들의 관계는 아래와 같다. 현재 버전에서는 사용자 서버(Dependent Server)에서도 출력 메시지를 MFS 라이브러리를 거쳐서 TN3270 단말로 보낼 수 있다.

figure 1 3
MFS 바이너리 관계

각각의 바이너리 심볼들은 포맷 파일에 기술된 매크로를 바탕으로 생성되는데, DFLD 매크로는 DOF와 DIF 정보 생성에 영향을 주며, MFLD 매크로는 MOD와 MID 정보 생성에 영향을 준다.

osimfsgen 툴의 자세한 사용법은 OpenFrame OSI "툴 참조 안내서"를 참고한다.

2.2. MFS 라이브러리

메시지 변환은 단말에서 시스템 서버(Control Region)로, 사용자 서버(Dependent Region)에서 단말로 전달될 때 이루어진다. 이때 시스템 서버 혹은 사용자 서버는 부팅할 때 사용된 JCL 안에 기술되어 있는 Format Library 내에 있는 바이너리 파일들을 읽어서 변환하는데, 이런 기능들을 MFS 라이브러리가 제공한다.