소개

본 절에서는 IPF의 기본 개념과 구조에 대해서 설명한다.

1. 개요

IPF(Interactive Programming Facilities)는 COBOL과 같은 응용 프로그램으로부터 TSO(Time Sharing Option) 명령어를 호출하거나 스크린형 디스플레이 단말에 대한 입출력을 실시할 수 있는 프로그램이다. TSO에 대한 자세한 내용은 OpenFrame Batch "TSO 운영자 안내서"를 참고한다.

컴퓨터 시스템의 이용 분야의 확대에 따라 최종 사용자에게도 조작하기 쉬운 시스템에 대한 요구가 날로 커져가고 있으며, 데이터베이스를 근간으로 하여 데이터 조작이나 검색 등을 보다 간단하고 효율적으로 수행하고 그 결과를 사용자에게 적합한 형태의 디스플레이 단말로 출력해 보여줄 필요가 있다.

TSO 커맨드를 실행함에 있어서도 사용자의 편의를 위해 디스플레이 단말을 통한 입출력 처리가 요구된다. IPF는 이러한 요구에 따라 개발된 사용자와 시스템 간의 디스플레이 단말을 통한 대화형 프로그래밍 패키지를 제공한다.

2. IPF 기능

IPF는 다음과 같은 기능을 제공한다.

  • TSO 커맨드 처리

    IPF에서는 COBOL, PL/I 등과 같은 고급 언어로 작성된 프로그램에서 TSO 명령어 또는 CLIST를 호출해서 실행시킬 수 있는 기능을 제공한다. 이 기능을 이용하기 위해서는 IPFCMD 서브루틴의 파라미터에 TSO 명령어 또는 CLIST 이름을 기술한 캐릭터 라인을 지정해 CALL 문으로 호출해야 한다. IPFCMD의 자세한 설명은 IPF 서브루틴 을 참고한다.

  • 풀 스크린형 입출력 처리

    IPF에서는 디스플레이 단말에 대해 화면 단위의 데이터 입출력 처리를 고급 언어에서도 간단하게 수행할 수 있도록 하는 기능을 제공한다. 풀 스크린형 디스플레이 단말에서는 디스플레이 화면 전체를 필드라고 부르는 단위의 집합으로 간주한다. 필드는 데이터의 입출력 처리를 실시하는 최소한의 단위를 말하며 이는 다시 텍스트 필드와 입력 필드, 출력 필드로 나눌 수 있다. 즉, 풀 스크린형 디스플레이 단말이란 필드의 모임에 대해서 입출력 처리를 동시에 실시할 수 있는 디스플레이 단말을 의미한다.

    풀 스크린형 디스플레이 단말의 표준 화면은 가로와 세로가 각각 80 x 24의 크기를 갖는다. 고정된 크기의 디스플레이 단말에 상관없이 사용자는 더 큰 화면을 설계할 수 있는데 이를 논리 화면이라고 하고, 디스플레이 단말을 물리 화면이라고 한다.

    논리 화면은 메뉴 정의체라 부르는 맵 파일에 정의할 수 있고 IPFMIO와 같은 IPF의 서브루틴을 이용해서 논리 화면을 물리 화면에 표시할 수 있다. IPFMIO와 메뉴 정의체의 자세한 설명은 IPF 서브루틴메뉴 정의체 를 참고한다.

3. IPF 구조

IPF는 고급 언어(COBOL, PL/I 등)의 서브루틴의 모임이다. 응용 프로그램은 이 IPF 서브루틴을 호출함으로써 의도한 기능을 수행할 수 있다. IPF 서브루틴에서는 응용 프로그램의 호출을 받으면 TSOMGR의 Tmax 서비스를 호출하여 데이터와 파라미터를 전달한다. 화면 입출력과 관련된 IPF 서브루틴의 경우 TSOMGR는 미리 컴파일된 맵 정보 파일을 읽어와서 화면의 필드 정보를 구성하여 OpenFrame GW를 통해 디스플레이 단말로 내보낸다. 화면의 입력값이 있는 경우 TSOMGR가 이를 OpenFrame GW에서 전달받아 입력 데이터를 추출하여 다시 IPF 서브루틴을 통해 응용 프로그램으로 리턴한다.

다음은 IPF 시스템의 구조를 나타낸 그림이다.

figure ipf architecture 1
IPF 구조
  • TSOMGR

    응용 프로그램에서 호출한 IPF 서브루틴으로부터 데이터와 파라미터를 전달받아 이미 컴파일되어 있는 맵 정보 파일에서 필요한 맵에 대한 정보를 읽어와서 화면의 필드 정보를 구성한 후 OpenFrame GW로 전달한다. 화면에서 입력값이 있는 경우 OpenFrame GW를 통해 이를 전달받아 필요한 데이터를 추출한 후 IPF 서브루틴을 통해 응용 프로그램으로 리턴한다.

  • IKJEFT01/KEQEFT01

    사용자가 디스플레이 단말을 통해 IPF에 접속하면 TSOMGR가 각각의 TSO 사용자에 대한 JOB을 실행시킨다. 각각의 JOB은 IKJEFT01/KEQEFT01 유틸리티를 통해 지정된 CLIST 스크립트를 분석하여 TSO 명령어를 실행시킨다. TSO의 CALL 명령어로 COBOL과 같은 응용 프로그램을 호출할 수 있다.

  • IPF 서브루틴

    COBOL과 같은 응용 프로그램에 기술되어 TSOMGR로 Tmax 서비스를 호출한다. IPFCMD 서브루틴은 TSO 명령어를 호출하는 기능을 수행하고, IPFMIO 서브루틴은 화면에 대한 입출력 처리를 하는 기능을 수행한다. IPF의 각 서브루틴을 호출할 때, 응용 프로그램에서 IPF 서브루틴에 정보를 주고받을 때 CALL 문의 파라미터를 사용해서 호출한다.

  • OpenFrame GW

    OpenFrame에서 제공하는 Webterminal과 같은 디스플레이 단말에서 사용자가 입력한 데이터를 TSOMGR에 전달하고, 응용 프로그램에서 처리한 데이터를 TSOMGR를 통해 전달받아 디스플레이 단말의 화면에 출력한다.

  • TSOMAPGEN

    고객이 작성한 맵 파일을 읽어들여 파싱하고 .map 파일의 형태로 컴파일하여 지정한 라이브러리에 저장한다.

4. IPF 접속과 종료

IPF를 실행하기 위해 3270 터미널 또는 OpenFrame에서 제공하는 Webterminal과 같은 디스플레이 단말에 접속한 후 로그인을 해야 한다. 디스플레이 단말 접속 후 TSO라는 명령을 입력하면 로그인 화면이 표시된다. 로그인 정보를 입력한 후 준비 화면이 표시되면 TSO 명령어나 CLIST 이름을 입력하여 IPF의 원하는 동작을 수행할 수 있다. 모든 작업이 끝난 후에는 로그오프를 통해 IPF를 종료한다.

4.1. 접속 및 실행

OpenFrame에서 제공하는 Webterminal과 같은 디스플레이 단말에 접속하면 커서가 위치한 입력창이 표시된다. 이때 다음과 같이 IPF 기동을 위한 명령어 TSO를 입력한다.

TSO

위 명령을 입력하고 <Enter> 키를 치면 다음과 같이 로그인 화면이 표시된다.

 ---------------------------------------------------------------
           USERID    :
           PASSWORD  :
           PROCEDURE :
 ---------------------------------------------------------------

사용자 아이디, 패스워드, 프러시저명을 입력하고 <Enter> 키를 치면 다음과 같이 준비 화면이 표시된다.

READY

READY 아래쪽에 커서가 위치한 입력창이 표시된다. 이 부분에 TSO 명령 또는 실행시킬 CLIST 이름을 입력해서 원하는 동작을 수행할 수 있다.

4.2. 종료

TSO나 CLIST 명령을 수행하고 나면 종료 메시지가 표시된다. 이때 <Enter> 키를 치면 다시 화면이 초기화되고 준비 화면(READY) 상태로 돌아간다. 종료를 원할 경우 입력창에 LOGOFF 명령을 입력한다.

READY
LOGOFF

LOGOFF 명령이 입력되면 다음과 같이 로그오프 화면을 호출하고 IPF가 종료된다.

 ---------------------------------------------------------------
                        SESSION LOGOFF
 ---------------------------------------------------------------