소개
본 장에서는 OpenFrame GW의 구조와 특징에 대해 기술한다.
1. 개요
OpenFrame GW는 Mainframe 리호스팅 솔루션인 OpenFrame을 구성하는 여러 제품들 중 하나로 다수의 3270 터미널을 실시간으로 관리 및 모니터링해주고, 온라인 제품들(OSC, OSI, AIM)과 터미널 사이에서 데이터 처리, 트랜잭션, 터미널 관리를 한다.
사용자는 3270 프로토콜의 터미널과 OpenFrame GW에서 제공하는 웹 프로토콜 터미널을 이용하여 OpenFrame과 통신할 수 있다.
OpenFrame GW는 다음과 같은 서비스를 제공한다.
-
애플리케이션 프로그램과 터미널 사이의 연결을 관리
-
애플리케이션 프로그램과 터미널 간에 데이터 전송
-
애플리케이션 프로그램 간의 터미널 공유
-
터미널 접속을 위한 LU 이름 자동할당
-
네트워크 작업을 감시 및 관리
-
웹 브라우저를 활용하여 3270 애뮬레이터 제공
2. 기능
OpenFrame GW는 네트워크 통신을 관리하고 이와 관련된 다음과 같은 기능들을 지원한다.
-
터미널의 시작과 종료 및 접근 제어
-
애플리케이션 프로그램을 통하여 터미널의 연결을 종료할 수 있으며 설정에 따라 터미널에 연결할 수 있다.
-
할당된 리소스에 따라 터미널의 연결을 제어한다.
-
-
동적인 리소스 관리
-
실행 중에 리소스의 변경이 있을 경우 사용 가능한 리소스를 데이터베이스를 통해 읽어온다.
-
동적인 리소스 관리를 통해 실시간 터미널 연결을 제어한다.
-
-
DB를 통한 리소스 공유
-
사용 가능한 애플리케이션 서버와 이와 관련된 리소스들을 DB를 통하여 공유한다.
-
연결 중인 터미널과 OpenFrame GW의 정보를 DB를 통하여 관리하며 공유한다.
-
-
입출력 처리
-
OpenFrame GW는 애플리케이션 프로그램과 터미널 간의 데이터 전송을 관리한다. 터미널 연결은 소켓 통신과 웹 통신을 통해 입출력하며, 애플리케이션 프로그램과의 통신은 Tmax를 통해 입출력한다.
-
3270 프로토콜과 Tmax 프로토콜을 사용하여 OpenFrame GW 내부적으로 각각의 데이터를 변환하여 입출력한다.
-
-
편리성, 신뢰성
-
네트워크 통신에서 발생하는 에러의 영향을 줄여준다.
-
OpenFrame GW를 통해 애플리케이션 프로그램은 데이터의 형식을 유지할 수 있다.
-
-
트랜잭션 스케줄링
-
애플리케이션 프로그램의 트랜잭션을 스케줄링한다.
-
-
웹 터미널 사용
-
3270프로토콜의 터미널에 더하여 사용자에게 웹 터미널을 제공한다.
-
사용자는 웹 터미널을 통해서 OpenFrame GW 내부적으로 3270 데이터 프로토콜을 유지하며 3270 프로토콜 애뮬레이터와 동일하게 사용 가능하다.
-
-
다중 터미널/다중 서버 통신
-
여러 대의 터미널의 연결이 가능하고 OpenFrame GW가 연결을 관리한다.
-
여러 대의 애플리케이션 서버와 연결이 가능하고 각 연결을 관리하며 서로 통신이 가능하다.
-
3. 구조
OpenFrame GW는 WAS 위의 웹 서버로 구현된다. DB(Tibero)에는 현재 접속된 터미널과 기동되어 있는 Online Region(OSC, OSI, AIM, ...)들의 정보가 저장된다.
OpenFrame의 Online Region은 Tmax의 CLH를 통해 접근하며, DB를 통해 리소스를 공유한다. 접속하는 터미널 수가 증가하더라도 커넥션 스케줄링은 Tmax가 수행하므로 Tmax 커넥션이 허용하는 범위 내에서 터미널 접속이 가능하다.
-
WAS(Web Application Server)
OpenFrame GW는 WAS(JEUS) 위에서 동작한다.
-
DB
현재 접속된 터미널, VTAM 정보 및 Online Region 정보를 저장한다. 구체적으로 다음과 같은 정보가 저장된다.
-
연결된 게이트웨이 정보
현재 기동 중인 OpenFrame GW 정보를 저장한다.
-
현재 접속된 터미널 정보
게이트웨이별 접속된 터미널들의 정보를 저장한다. 이를 이용하여 동일한 LU 이름으로 접속을 허가하지 않는 기능을 제공하고, 시스템 관리자에게는 현재 접속된 터미널들의 리스트를 제공하여 운영상에서 발생하는 문제들에 대응할 수 있도록 한다.
-
LU 자동할당 리소스 정보
각 게이트웨이(PORT)들에서 자동으로 할당할 수 있는 LU들에 대해 정의된 VTAM 리소스 정보를 저장한다. 자세한 내용은 LU 자동할당을 참고한다.
-
Online Region 정보
현재 기동되어 있는 Online Region(OSCOIVP1, AIM, OSI, ...)들의 정보를 저장한다.
-
-
CLH
Tmax의 클라이언트 핸들러이다. 클라이언트와 서버 사이를 중계하며 서비스를 제공하는 업무처리 서버에 서비스를 요청하고, 서버에 대한 연결 및 관리를 한다. tpcall과 같은 함수를 통해 들어오는 클라이언트의 요청을 해당 서버에게 전달한다.
-
REGION
애플리케이션 프로그램을 실행시키며 CLH를 통하여 OpenFrame GW와 통신한다.
-
웹 브라우저
웹 브라우저는 WAS(JEUS)의 요청에 대한 응답을 기반으로 사용자에게 결과를 출력하고 입력받는 동작 UI를 제공한다.
4. 동작과정
아래의 그림은 3270 터미널로 로그온하여 Online Region의 트랜잭션을 수행하는 동작과정을 설명한다.
-
Terminal A가 OpenFrame GW에 접속한 후 Online Region에 LOGON을 시도한다. (OSC, OSI의 경우 Region Server 이름, AIM의 경우 Procedure 이름으로 시도)
-
OpenFrame GW는 DB에 접근하여 Terminal A의 정합성을 체크한다.
-
DB에서 Terminal A가 유효할 경우에 LOGON을 허용한다.
-
LOGON에 성공한 후 트랜잭션 이름을 입력한다.
-
OpenFrame GW는 Online Region으로 트랜잭션을 전달하고, 실행 결과를 받는다.
-
Online Region으로부터 받은 데이터를 분석하여 Terminal A에 결과 값을 출력한다.
5. OpenFrame과 JEUS의 연동
OpenFrame GW는 WAS(JEUS) 위에서 동작한다. 따라서 하나의 WAS(Web Application Server)에 하나 이상 서버가 존재할 수 있고, 각 서버에 OpenFrame GW를 올려서 하나의 WAS에 여러 개의 OpenFrame GW를 동작시킬 수 있다. OpenFrame GW는 같은 OpenFrame에 연결할 수도 있고 서로 다른 OpenFrame에 각각 연결할 수도 있다.
WAS에 대한 자세한 내용은 "JEUS Domain 안내서"를 참고한다. |
6. OpenFrame GW와 OpenFrame간의 문자셋 변환 과정
OpenFrame GW는 3270 에뮬레이터 뿐만 아니라 웹 터미널과 통신하여 OpenFrame에서 처리한 메시지를 적절한 문자셋(CPM)을 이용해 변환한 후 전달하는 기능을 제공한다.
기본적으로 3270 애뮬레이터는 각 나라의 문자에 맞는 EBCDIC 형태의 문자로 3270 데이터를 OpenFrame GW로 전송하며, 웹 터미널은 ASCII 형태의 문자로 데이터를 전송한다. OpenFrame은 EBCDIC 형태의 문자로만 데이터를 주고받을 수 있기 때문에 웹 터미널의 경우 ASCII 형태의 문자를 EBCDIC 형태로 변환하는 과정이 필요한데, OpenFrame GW는 이를 CPM이라는 미리 정의된 문자셋을 이용해 처리한다.
다음은 일본어 문자셋(ASCEBCJP:EBCASCJP)을 이용하여 웹 터미널이 OpenFrame GW를 거쳐 OpenFrame과 데이터를 주고받는 과정에 대한 설명이다.
-
전송 과정
웹 터미널이 UTF-16 인코딩으로 JSON 형태의 데이터를 OpenFrame GW로 전송한다. OpenFrame GW는 최종적으로 데이터를 EBCDIC 형태로 변환하기 위해 우선 UTF-16 인코딩의 데이터를 ASCII 형태로 변환한다. 이 때 IBM943.ucm 문자셋을 사용해 유니코드로 표현된 데이터를 ASCII 형태로 변환한다. 그리고 ASCII 형태로 변환된 데이터는 다시 ASCEBCJP.cpm 문자셋을 사용해 EBCDIC 형태로 변환된다.
-
응답 과정
EBCDIC 형태로 OpenFrame GW로 전송된 데이터는 다시 웹 터미널로 전송되기 위해 UTF-16 인코딩으로 변환되어야 한다. 이 때 IBM290_300.ucm을 사용하여 EBCDIC 형태의 데이터를 유니코드 형태로 변환한다.