OpenFrame 소개
1. 개요
OpenFrame은 Mainframe에서 운영되던 애플리케이션 및 데이터에 대한 수정이나 재개발 작업없이 UNIX 시스템 환경에서 운영할 수 있도록 하는 리호스팅 솔루션이다.
Mainframe에서 UNIX 서버로 하드웨어를 전환할 경우 기존 애플리케이션과 데이터를 어떻게 변환하여 새로운 시스템에 적용할 것인지를 고려해야 할 뿐만 아니라 한 기업의 자산이자 노하우인 업무 로직을 어떻게 보존할 것인지도 생각해야 한다. 수년에 걸쳐 개발된 코드 전체가 모여 형성된 업무 로직을 코드 리엔지니어링을 통해 새로운 애플리케이션 환경에 적용시킨다는 것은 비용의 문제는 차치하고서라도 위험스러운 일이 될 수 있다. 또한 Mainframe 애플리케이션은 급변하는 비즈니스 환경에 적응하는데 많은 시간이 소요되고, 성능이나 기능을 확장하기가 쉽지 않다. 특히 신기술과 병합이 복잡하기 때문에 비용이 증대되는 문제점이 있다.
반면 OpenFrame은 Mainframe에서 사용하던 애플리케이션과 데이터를 개방형 환경에서 그대로 사용할 수 있으므로 비용과 시간을 절감할 수 있고 업무 로직을 그대로 보존할 수 있다.
OpenFrame 도입 효과
OpenFrame을 도입하여 Mainframe 환경에서 개방형 환경으로 전환하면 기존의 업무 로직과 특성화된 비즈니스 프로세스를 그대로 활용할 수 있으므로 신속하게 플랫폼 마이그레이션 작업을 완료할 수 있다. 재개발로 인한 불가피한 시스템 불안정과 이를 해결하는 데 소요되는 불필요한 시간 낭비도 줄일 수 있다.
특히 OpenFrame의 트랜잭션 처리를 담당하는 TP-Monitor가 리호스팅을 위한 한정된 용도로 개발된 것이 아니라, 수많은 고객사에서 검증된 자사 제품인 Tmax® (이하 Tmax) 엔진을 그대로 사용하므로 한정된 용도로 개발되었거나 다른 목적으로 개발된 제품을 변형한 타사의 제품과는 차별화된 성능과 기능을 제공한다. Tmax 제품이 업그레이드될 때마다 필요하다면 업그레이드된 Tmax 엔진을 OpenFrame에 도입할 수 있으므로 최고의 성능을 지닌 트랜잭션 처리 미들웨어를 보유하는 효과까지 기대할 수 있다.
OpenFrame 적용 분야
OpenFrame은 Mainframe을 사용하여 업무를 처리하던 모든 분야에서 사용할 수 있다.
시대가 급변하여 새로운 업무 로직이 필요한 몇몇 분야는 리호스팅보다 재개발에 대한 수요가 높을 수 있다. 하지만 OpenFrame을 사용하여 리호스팅을 한 후 기존 애플리케이션의 기능 확장이나 웹 환경 등 새로운 환경과의 연계가 어렵지 않으므로, 업무 로직 변경 중에 발생할 수 있는 문제를 피하면서 기존의 업무와 밀접한 연속성이 필요한 미션 크리티컬한 모든 업무에 적용할 수 있다. 따라서 Mainframe 환경에서 다운사이징을 고려할 경우에는 리호스팅 솔루션인 OpenFrame이 가치를 충분히 발휘할 수 있다.
2. 특징
OpenFrame 솔루션은 다음과 같은 특징을 갖고 있다.
검증된 미들웨어를 사용한 솔루션
트랜잭션 모니터링 기능을 담당할 서브 시스템을 구현할 때, Mainframe의 마이그레이션을 위한 한정된 용도로만 만들어진 제품이라면 매우 제한적으로 사용되고 있으므로 그 성능에 대해서 충분한 검증을 받았다고 볼 수 없다. OpenFrame은 검증된 자사의 TP-Monitor인 Tmax를 사용하고 있다. 따라서 마이그레이션 과정뿐만 아니라 추후 발생할 대용량 트랜잭션 처리 과정에서도 우수한 기술력을 제공받을 수 있으므로, 안정성과 우수한 성능을 기대할 수 있다.
Online과 Batch의 동시 지원으로 인한 리호스팅 토탈 솔루션
대부분의 타사 제품은 리호스팅에 필요한 솔루션 전체가 아니라 Online과 Batch 등 한 부분에 특화된 솔루션에 한정하여 지원하는 경우가 대부분이다. 따라서 전체 리호스팅 작업을 수행하기 위해서는 서로 다른 업체의 여러 가지 솔루션을 직접 결합하거나 SI 업체 등을 통해 결합된 솔루션을 사용해야 하는 경우가 대부분이다.
OpenFrame은 Mainframe에서 사용하던 모든 애플리케이션과 데이터를 아무런 제약없이 개방형 환경에서 구현하는 데 필요한 모든 구성요소를 제공하는 토탈 솔루션이다.
개방형 환경에서의 자유로운 연동
연동은 Mainframe 환경에서 개방형 환경으로 리호스팅한 직후에 바로 직면하는 중요한 문제는 아닐 수 있다. 하지만 운영 중인 시스템을 확장하거나 다른 시스템과 연동해야 하는 상황이 자주 발생할 경우에 OpenFrame은 다른 리호스팅 솔루션과 비교하여 뛰어난 장점을 가지고 있다.
자사의 미들웨어인 Tmax는 다른 X/Open DTP 모델을 준수하는 Tuxedo와 같은 상용 TP-Monitor와 자연스럽게 연동된다. 따라서 OpenFrame AIM이나 OpenFrame Batch for XSP 및 MSP로 작성된 업무 시스템의 확장이 용이하다.
또한 자사의 WAS(Web Application Server)인 JEUS®(이하 JEUS)와 연동을 통해 웹 환경과도 자연스럽게 연동할 수 있는 큰 장점을 가지고 있다. 즉, OpenFrame을 구성하고 있는 모듈들은 개방 환경의 최신 기술인 TP-Monitor와 WAS를 기반으로 구현되어 있어 OpenFrame 자체로도 차세대 시스템을 운용하는데 무리가 없는 솔루션이다. 더욱이 기반기술들이 TP-Monitor 와 WAS 표준을 준수하고 있으므로 타 시스템과의 연동 및 확장이 뛰어나다.
부하분산 및 장애극복 지원
Mainframe을 개방 환경으로 전환할 때 보통 2대 이상의 머신으로 하드웨어를 구성하여 Mainframe과 동일한 성능을 갖는 환경을 구축하게 된다. 이러한 환경에서 업무를 구성할 때 머신 간의 부하분산 및 머신 장애에 대한 대책이 중요한 이슈가 되었다.
OpenFrame은 Tmax로부터 부하분산 및 장애극복에 대해 완벽하게 지원받으므로 이러한 하드웨어 레벨의 문제가 해결되었다. 또한 OpenFrame 시스템을 멀티 노드로 구성하여 훨씬 쉽고 보다 안정적으로 분산처리를 할 수 있다. 즉, 부하가 증가할 경우 Tmax에 의해 부하를 분산시키거나 물리적인 서버를 증설하여 부하를 분산시켜 문제를 해결할 수 있다.
Tmax 시스템은 데이터의 범위에 따라 처리할 노드를 할당하여 부하를 분산시킨다. 다음은 Tmax에서 부하를 분산시키는 여러 가지 방법을 나타낸 그림이다.
-
데이터 값에 따른 부하분산 방법
-
노드별 하드웨어 성능에 따라 처리량을 조절하여 전체 시스템의 성능 증대 및 처리시간을 단축시키는 하드웨어 성능에 따른 부하분산 방법
-
특정 노드에 집중된 부하를 동적으로 분산하여 전체 시스템의 처리량 증대 및 처리 시간을 단축시키는 다이나믹 부하분산 방법
다음은 Tmax 애플리케이션을 수행하는 과정에서 장애가 발생한 경우의 처리과정을 나타낸 그림이다.
Tmax 시스템의 각 노드는 서로 다른 노드를 감시하는 Peer-to-Peer 방식으로 구성되어 있어서 아무리 많은 노드로 구성되어 있는 시스템이라 하더라도 동일한 조건하에서 즉각적으로 장애에 대응할 수 있다. 위의 그림에서 보듯이 Node1과 Node2가 동일한 애플리케이션을 수행하고 있는 상태에서 Node1의 Work1이 실패할 경우에는 Tmax에 의해 자동으로 Node2의 Work1에서 Node1의 작업을 수행한다.
는 장애가 발생하기 전에 클라이언트의 업무를 처리하는 노드를 나타내고, 는 장애가 발생한 후에 클라이언트의 업무를 처리하는 노드를 나타낸다. |
다음은 Tmax 시스템을 운영 중에 네트워크 장애가 발생한 경우의 처리과정을 나타낸 그림이다.
시스템 운영 중에 네트워크 연결 실패 등의 예기치 못한 장애가 발생할 경우 Tmax가 이를 자동으로 감지하고 해당 서버를 재기동하게 된다. 만약 한 노드의 전체가 복구 불가능한 상태가 되었을 경우 해당 노드로의 요청은 자동으로 다른 노드로 포워딩되며, 사용자는 장애가 발생한 노드에 영향을 받지 않고 해당 업무를 안정적으로 수행할 수 있다.
위의 그림과 같이 Node1에서 입금을 처리하던 업무 처리 프로세스가 네트워크 상의 문제 등으로 연결이 되지 않으면 Tmax가 이를 자동으로 감지하여 Node2로 연결을 시도하고, 대기 중인 입금 서비스를 Node2에 전달하여 대신 처리하도록 한다.
JCL에 대한 엔진 차원의 구현
UNIX 환경에서 JCL을 처리할 때 타사 제품은 대부분 UNIX 셸 스크립트나 자체적인 스크립트를 사용하는 방식을 채택한다. OpenFrame에서는 자체의 처리 엔진(TJES)으로, 부가적인 전환작업 없이 그대로 JCL을 처리할 수 있으므로 스크립트 방식보다는 한 단계 우수한 추상성을 갖추고 있다.
편리한 프로세스 관리
사용자가 생성한 프로세스는 Tmax에 의해 기동부터 종료까지 관리된다. 따라서 Tmax가 제공하는 다양한 모니터링 정보를 이용하여 손쉽게 프로세스를 관리할 수 있다.
리호스팅의 장점을 그대로 수용
OpenFrame의 다양한 특징 외에도 다음과 같은 리호스팅의 일반적인 장점을 그대로 수용하였다.
-
확장성과 유연성
OpenFrame은 IBM, HP, SUN 등의 시스템 환경과 호환이 가능하고, 다양한 인터페이스(TCP, X.25, SNA, Gateway, Java, TP Gateway 등)를 제공한다. 또한 새 기술을 적용하여 새로운 서비스를 개발하고 이를 시스템에 통합하기 쉽다. 즉, 개방형 환경에서 진보한 기술을 채택하여 비즈니스 수행을 개선시킬 수 있으며, 이러한 OpenFrame의 기능은 차세대 시스템을 수용하기 위한 기반이 된다.
-
각종 비용의 절감
재개발이나 많은 인력을 필요로 하는 방법과는 달리 자동화된 OpenFrame 솔루션의 사용으로 기존 하드웨어와 소프트웨어 그리고 애플리케이션 데이터를 재사용하여 인력 및 시간 그리고 비용 절감의 효과를 기대할 수 있으며, 미래 재개발에 대한 추가적인 투자 비용까지도 줄일 수 있다.
-
기술 인력의 전면적 교체 압력 감소
개방형 환경으로 완전 이행할 경우에는 Mainframe을 담당하던 개발 인원과 운영 인원이 전혀 필요하지 않지만 리호스팅의 경우에는 기존 인원의 숙련된 기술을 활용하여 업무를 수행할 수 있다.
-
업무 로직 승계
애플리케이션 재개발과 달리 기존 업무 로직을 그대로 사용하므로 업무의 연속성을 도모할 수 있다.
-
통합 관리 및 개발 환경
Mainframe보다 훨씬 편리한 GUI 방식으로 시스템의 각종 상황을 모니터링할 수 있고, 신규 COBOL 및 JCL 프로그램 개발에 필요한 모든 환경을 통합 화면으로 제공함으로써 사용자의 편의성을 극대화하였다.
3. 환경 비교
다음은 리호스팅 하기 전의 Mainframe 환경과 리호스팅한 후의 OpenFrame 환경을 비교한 표이다.
환경 | Mainframe | OpenFrame |
---|---|---|
운영체제 |
OS IV (XSP, MSP) |
UNIX |
하드웨어 |
Fujitsu (Mainframe) |
HP, SUN, IBM (P-series) |
레코드 관리 |
VSAM |
OpenFrame TSAM |
트랜잭션 처리 |
AIM/DC |
OpenFrame AIM/DC |
데이터베이스 |
Symfoware (RDBMS) |
Tibero |
AIM/DB (NDB) |
OpenFrame NDB |
|
사용자 인터페이스 |
PSAM, Web, 4GL |
OpenFrame PSAM, Web, 4GL |
Batch 작업 |
JES |
TJES |
프로그래밍 언어 |
COBOL |
COBOL, C/C++ |
통신 프로토콜 |
FNA |
TCP/IP |
문자 셋 |
EBCDIC(JEF) |
ASCII(Shift-JIS) |
4. Mainframe 용어
OpenFrame은 Mainframe에서 사용하던 애플리케이션과 데이터에 대한 수정없이 개방 환경에서 그대로 사용하는 것이 목표이므로 Mainframe에 대한 이해없이 OpenFrame에서 사용하는 각종 용어나 설명을 이해하기 어렵다.
따라서 본 안내서에서 자주 언급되는 Mainframe의 용어에 대해서 다음과 같이 간단히 기술하였으며, OpenFrame의 용어는 “용어해설”에서 별도로 설명한다.
-
AIM(Advanced Information Management System)
Mainframe에서 Online 처리를 담당하는 부분으로 트랜잭션의 관리가 중시된다. Online Transaction 및 통신 기능을 담당하는 DC와 Network 구조의 데이터베이스 기능을 제공하는 DB(NDB)로 구성된다.
-
JES(Job Entry Subsystems)
Mainframe의 작업 관리 시스템이다.
-
JCL(Job Control Language)
JOB을 운영체제에 전달하여 어떤 작업을 할지 제시하는 역할을 담당하며, 특정 데이터셋에 대하여 하드웨어 장치의 할당을 요구하고 실행해야 할 프로그램을 지시한다.