소개
본 장에서는 Mapping Support의 구조 및 맵의 구성에 대해서 설명한다.
1. 개요
Mapping Support는 OpenFrame OSC(이하 OSC) 프로그램과 TN3270 터미널 사이의 통신을 위한 프로그래밍 인터페이스를 제공하는 시스템으로 OSC 애플리케이션 서버의 서브 시스템이다.
TN3270 터미널의 입출력은 3270 데이터 스트림이라는 데이터 구조로 정의되어 있다. Mapping Support는 맵(Map)이라는 리소스를 사용해서 OSC 애플리케이션 프로그램으로부터 주어진 데이터를 3270 데이터 스트림 형태로 변환하거나, 터미널로부터 받은 3270 데이터 스트림을 OSC 애플리케이션에서 사용하는 데이터 형식으로 변환하는 역할을 수행한다.
다음은 Mapping Support의 기본적인 구조를 나타낸 그림이다.
Mapping Support 기능은 다음과 같은 장점이 있다.
-
터미널에 대한 의존성 제거
애플리케이션 개발자는 복잡한 3270 데이터 스트림 구조를 파악하고 이를 제어하는 프로그램 로직을 애플리케이션에 구현할 필요가 없으며, 상대적으로 단순한 몇 가지 EXEC CICS 명령어를 통해서 터미널 입출력 제어가 가능하다.
-
화면 구성을 애플리케이션 로직으로부터 분리
화면 구성에 변경이 필요할 경우에는 맵만 변경하고 프로그램 로직이 변경이 필요한 경우에는 프로그램만 수정하면 된다. 따라서 기존 화면을 그대로 사용하는 새로운 프로그램을 작성하거나 이미 존재하는 프로그램과 맵을 유지 보수하는 것이 편리하다.
2. Map 구성
하나의 맵은 Physical Map, Symbolic Map, Map Source Code의 3가지 형태로 구성된다.
Map Source Code에는 하나 이상의 맵 셋(Mapset)이 선언되어 있어야 하며, 이러한 Map Source Code를 컴파일하면 하나의 맵 셋마다 맵 셋 이름을 파일 이름으로 갖는 하나의 Physical Map 파일과 하나의 Symbolic Map 파일이 생성된다.
-
Physical Map
맵을 구성하는 각 필드들의 속성과 데이터 변환에 필요한 정보들을 저장하고 있는 바이너리 파일이다. Physical Map은 OSC 애플리케이션 서버에서 3270 데이터 스트림과 Symbolic Map에 선언된 데이터 구조 사이의 변환 과정에서 사용된다.
-
Symbolic Map
애플리케이션에서 사용하는 데이터의 구조가 정의되어 있는 COBOL copybook 파일이다. TN3270 터미널로부터 받아온 데이터는 Physical Map의 정보를 토대로 Symbolic Map에 정의된 형태로 변환된다. 반대로 애플리케이션에서 TN3270 터미널로 데이터를 보낼 때에는 Symbolic Map에 정의되어 있는 형식으로 데이터를 구성해야 한다.
-
Map Source Code
사용자가 작성한 IBM 어셈블러 매크로 소스 코드를 의미한다. Map Source Code를 이용해서 실제로 COBOL이나 OSC 애플리케이션 서버에서 사용할 Physical Map과 애플리케이션 컴파일에 사용되는 Symbolic Map을 생성할 수 있다.
다음은 Mapping Support의 구조에서 3가지 형태의 맵이 사용되는 흐름을 나타낸 그림이다.
위의 흐름을 세부적으로 설명하면 다음과 같다.
-
사용자는 IBM 어셈블러 매크로 포맷에 따라 Map Source Code를 작성하거나, 리호스팅 대상이 되는 IBM CICS Transaction Server(이하 CICS)에서 사용되던 Map Source Code를 마이그레이션한다.
-
Map Source Code를 mscmapc 툴을 사용하여 컴파일한다. Map Source Code에 DFHMSD, DFHMDI, DFHMDF 매크로를 제외한 다른 IBM 어셈블러 매크로가 포함되어 있을 경우에는 mscasmc라는 툴을 사용해서 어셈블러 매크로를 전처리한 이후에 mscmapc 툴을 사용해서 맵을 컴파일해야 한다.
-
컴파일을 통해서 생성된 Symbolic Map은 해당 맵을 사용하는 OSC 애플리케이션을 컴파일할 때 프로그램 소스 코드와 함께 포함하여 컴파일한다.
-
OSC 애플리케이션 서버에서는 Physical Map 파일을 이용하여 3270 데이터 스트림과 애플리케이션 데이터의 변환을 수행한다.