소개

본 장에서는 OpenFrame OSI 애플리케이션 프로그래밍에 대한 개념과 특징적인 구조에 대해 기술한다.

1. 개요

개발자는 OpenFrame OSI(이하 OSI) 시스템에서 운영되는 새로운 애플리케이션을 개발하거나, 기존 IMS/DC에서 운영하던 애플리케이션들을 마이그레이션하여 트랜잭션 서비스를 구성할 수 있다. OSI 시스템에서 제공하는 많은 리소스들은 IMS/DC가 제공하는 기능 및 서비스를 동일하게 제공한다.

OSI 프로그래밍은 CBLTDLI 함수를 기본으로 해서 각각의 함수들의 기능들을 조합하여 업무 프로그램을 구성한다. CBLTDLI 함수의 종류와 기능은 애플리케이션 인터페이스에서 설명한다.

2. 데이터베이스

IMS/DC 시스템이 사용하는 데이터베이스는 계층적 데이터베이스 관리 시스템으로 고객의 업무 데이터를 구조적으로 저장하고 관리하는 기능을 제공한다. 이 데이터베이스를 IMS/DB라고 부르는데 IMS/DC에서 실행되는 애플리케이션이나 순수 Batch 애플리케이션이 이 데이터베이스(IMS/DB)에 접근하기 위해서는 표준 DL/I 함수를 호출해야 한다.

각 프로그램 언어에서 제공되는 표준 애플리케이션 인터페이스인 DL/I를 통해 애플리케이션은 표준 DL/I 함수를 사용할 수 있다.

OSI에서는 데이터베이스 구조를 UNIX에서 재구현하며 IMS/DC와 모든 기능을 동일하게 제공하도록 OpenFrame HiDB를 연동한다.

3. 데이터 통신

사용자가 단말을 통해 애플리케이션이 처리한 데이터의 결과값을 볼 수 있도록 IMS/DC는 시스템 서버(Control Region)과 사용자 서버(Dependent Region)을 제공한다.

OSI는 Tmax와의 연동을 통해 IMS/DC의 기능을 OSI에서도 동일하게 제공하고 효율적으로 트랜잭션을 처리한다. OSI는 IMS/DC에서 운영 중인 고객의 프로그램을 OSI에서 동일하게 운영할 수 있도록 IMS/DC에서 제공하는 DL/I 인터페이스와 동일한 인터페이스를 제공한다.

CBLTDLI이라는 인터페이스를 제공하기 때문에 사용자 서버(Dependent Region)의 MPP, BMP에서 운영되는 사용자 프로그램을 간단한 마이그레이션만으로 OSI에서 운영할 수 있다.

4. 애플리케이션

OSI는 IMS/DC에서 동작하던 애플리케이션을 동일하게 동작할 수 있도록 IMS/DC에서 제공하던 기능 및 기반 구조를 제공한다.

IMS/DC 애플리케이션은 Non IMS/DC 애플리케이션과는 다르게 반드시 PSB(Program Specification Block)를 하나씩 가지고 있어야 한다. PSB는 애플리케이션에 IMS에서 제공하는 서비스를 실행하기 위한 인터페이스 역할을 한다. 이러한 서비스에는 메시지를 단말에 보내는 방식, 데이터베이스에 접근하는 방식, IMS 명령어, IMS 서비스 Call이 있다. OSI 애플리 케이션은 IMS 서비스 처리방식을 PSB를 통해서 결정할 수 있다.

PSB와 애플리케이션은 OSI 시스템에 의해서 동시에 로딩되며, 애플리케이션 내부에서 실행되는 Call 함수를 통해 OSI의 실행 모듈들은 애플리케이션이 요청하는 기능을 수행한다. 각각의 MPP 애플리케이션들은 MPP 타입 사용자 서버를 통해 OSI의 기능들(DL/I Call 함수, 명령어 등)을 실행할 수 있으며, 이를 위해서 필요한 시스템 정의들은 미리 등록되어 있어야 한다. 시스템 정의는 IMS/DC에서 사용하였던 시스템 매크로를 통해 할 수 있다.

Batch 애플리케이션은 위의 경우와는 다른 방식으로 실행된다. Batch 애플리케이션이 OSI 시스템에서 실행되기 위해서는 BMP(Batch Message Processing Region) 서버가 필요하다. 이 서버는 Batch JOB(JCL 기동)을 통해서 요청되는 애플리케이션의 함수들을 처리할 수 있다.

애플리케이션을 작성할 때 ENTRY 문에는 프로그램에서 사용하는 PCB를 정의하는데, 정의된 PCB를 통해 OSI 시스템의 기능을 이용할 수 있다. PCB는 애플리케이션에서 사용되는 OpenFrame HiDB에 대한 VIEW나 메시지 소스 또는 메시지 대상과 통신하기 위해 시스템에서 제공하는 컨트롤 블록이다. OSI에서 PCB는 400개까지 사용할 수 있다.

다음은 애플리케이션의 PCB에 대한 설명이다.

  • Database Program Control Block (DB-PCB)

    애플리케이션이 데이터베이스에 저장되어 있는 정보를 어떤 방식으로 읽어올 것인가를 기술한다. 똑같은 데이터베이스라도 DB-PCB에 기술되어 있는 방식에 따라서 다르게 읽혀진다.

  • IO Program Control Block (IO-PCB)

    OSI는 기본적으로 단말을 사용하여 동작하고 이러한 Online 방식으로 기동되는 애플리케이션은 IO-PCB를 필요로 한다.

  • Alternative Program Control Block (ALT-PCB)

    애플리케이션 안에서 다른 프로그램 혹은 다른 터미널로 메시지를 전달하고자 할 때 ALT-PCB를 사용한다. ALT-PCB는 목적지를 변경하여 사용이 가능하다.

PSB와 DBD의 자세한 문법에 대한 자세한 내용은 OpenFrame HiDB "HiDB안내서"를 참고한다.

다음은 앞에서 설명한 애플리케이션의 일반적인 동작 구조를 그림으로 나타낸 것이다.

figure 1 1
애플리케이션 동작 구조