애플리케이션 마이그레이션
본 장에서는 OpenFrame XSP 혹은 MSP 환경으로 AIM 온라인 애플리케이션을 마이그레이션하는 방법과 일반적인 Batch 애플리케이션을 마이그레이션하는 방법에 대해 기술한다.
1. 애플리케이션 마이그레이션을 위한 준비
OpenFrame/AIM 환경에서 구동되는 애플리케이션은 통신과 데이터베이스 기능을 간단한 API를 통해 이용할 수 있다. 통신과 데이터베이스 기능을 이용하기 위해서는 애플리케이션 프로그램의 작성 외에 다음과 같은 준비작업이 필요하다.
-
PSAM 맵으로부터 데이터 스키마 생성
단말과 통신하는 데이터의 형식을 PSAM 맵으로부터 생성한다.
-
서브 스키마로부터 데이터 스키마 생성
NDB로 읽고 쓰는 데이터의 형식을 ADL의 서브 스키마로부터 생성한다.
EBCDIC 문자를 ASCII로 변환하는 과정 및 변환할 때 발생하는 문제점에 대한 자세한 내용은 EBCDIC에서 ASCII로 변환과 EBCDIC에서 ASCII 변환 이슈를 참고한다. |
1.1. PSAM 맵으로부터 데이터 스키마 생성
PSAM 맵은 단말의 화면에 기본적으로 표시하는 내용과 애플리케이션에서 화면에 출력하는 내용, 그리고 단말에서 입력을 받아 애플리케이션으로 전달하는 내용을 모두 정의한다. 하지만 PSAM 맵은 일반적인 프로그래밍 언어가 아니라 애플리케이션 작성자는 PSAM 맵을 그대로 사용할 수는 없다.
애플리케이션 작성자가 단말로부터 입출력하는 형식을 애플리케이션에 직접 작성하게 되면 이후 유지보수의 문제가 발생할 수 있다. 화면을 수정하면 애플리케이션도 함께 수정해야 하는 문제가 발생한다.
AIM에서는 PSAM 맵으로부터 입출력 데이터 양식을 COBOL 문법으로 만들어내는 기능을 제공한다. 애플리케이션 작성자는 이 양식을 애플리케이션 내에 Copybook의 형태로 포함하기만 하면 된다.
다음은 PSAM 맵으로부터 입출력 데이터 양식을 만들어내는 툴인 jybfg000의 사용방법과 예제이다.
Usage: jybfg000 [OPTION]... FILE -h : display this help and exit -d : enable debug mode in jybfg000 -p : preview generated FID -v : variable length record format -l : record length (only for fixed length record. default:80) Examples: $ jybfg000 OIVPFID0.fmt * copybook : [/home/openframe/cobcpy/mapcpy/MENUREC.cbl] create. * binary image : [/home/openframe/psambin/OIVPFID0.BIN] create.
jybfg000는 PSAM 맵의 컴파일과 Copybook 생성을 동시에 한다. Copybook은 해당 PSAM 맵 내에서 지정한 레코드의 이름으로 생성하게 된다. Copybook의 생성은 aim 설정에서 PSAM 섹션의 PSAMCPY 키에 지정한 위치에 생성된다.
|
1.2. ADL 서브 스키마로부터 데이터 스키마 생성
AIM 애플리케이션에서 사용하는 데이터베이스는 ADL의 서브 스키마를 통해 정의한다.
서브 스키마에는 레코드 간의 관계 뿐 아니라 개별 레코드의 정의도 기술한다. 애플리케이션에서 각 레코드의 개별 필드에 접근하기 위해서는 이 레코드 정의가 필요하다. OpenFrame/NDB에서는 서브 스키마로부터 간단하게 데이터 구조를 추출하여 COBOL의 문법으로 출력하는 subsc 툴을 제공한다.
다음은 subsc의 사용방법과 예제이다.
$ subsc -h
== Subschema Copybook Generator ===
Usage: subsc subschema_name ...
Example: subsc SUBS4160
$ subsc SUBS0001
* subschema copybook
[/home/openframe/cobcpy/copy/SUBS0001.cbl] create.
subschema copybook generation success (SUBS0001)
Copybook은 OpenFrame 환경설정의 ndb 서브젝트에 META 섹션의 SUBSCPY 키에 지정한 위치에 생성된다.
|
2. 애플리케이션 전처리와 컴파일
애플리케이션을 OpenFrame에서 실행하기 위해서는 실행 환경에 맞는 전처리와 컴파일 과정이 필요하다.
2.1. 전처리
Mainframe에서 실행하던 애플리케이션 프로그램은 다음의 이유로 인해 OpenFrame 환경에서 바로 실행할 수 없다.
-
컴파일 오류
오픈 환경에서 지원하지 않는 문법이나 기능을 사용하는 경우 컴파일 단계에서 오류가 발생한다. 대표적으로 NDB를 사용하는 구문을 들 수 있다. 이런 경우 전처리 과정에서 경우에 따라 다른 구문으로 치환하거나 불필요한 경우 삭제한다.
-
환경 오류
Mainframe과의 컴파일과 실행 환경이 달라 발생하는 오류이다. 서브스키마에서 추출한 NDB의 레코드 구조에 대한 기술이 별도로 없는 것을 예로 들 수 있다. 전처리 과정에서 구문을 치환하거나 필요한 내용을 추가한다.
-
실행 오류
문법상으로 동일하지만 실제 실행 결과가 다른 오류가 발생한다. ENVIRONMENT DIVISION에서 선언하는 SPECIAL-NAMES 구문을 예로 들 수 있다. 이 경우는 전처리 과정에서 해당 구문을 OpenFrame에서 제공하는 것으로 치환한다.
OpenFrame에서는 OpenFrame COBOL 제품에 포함된 ofcbppf 툴을 사용하여 전처리를 수행한다. ofcbppf 툴에 대한 자세한 내용은 OpenFrame COBOL "사용자 안내서"를 참고한다. |