3-8. 프레임워크의 개발

OAM Client Framework – 목차

■ 운용관리에 관한 이론적 고찰
1-1. OAM의 정의  1-2. EMS의 정의  1-3. OAM 표준화 동향  1-4. 3GPP 32 Series

■ OAM 프레임워크
2-1. OAM 프레임워크 필요성  2-2. OAM 시스템의 구성  2-3. OAM 요구사항  2-4. OAM 배포 아키텍쳐  2-5. OAM을 위한 Database의 구성 2-6. OAM 인터페이스  2-7. 구성 관리  2-8. 장애 관리  2-9. 성능 관리  2-10. 보안 관리

■ OAM 클라이언트 프레임워크
3-1. OAM Client 프레임워크 개요  3-10. 효과분석  3-2. 개발방법  3-3. 요구사항  3-4. 산출물 정의  3-5. 개발환경  3-6. 아키텍쳐 3-7. UI 정의  3-8. 프레임워크의 개발  3-9. 프레임워크를 사용한 개발

3-8. 프레임워크의 개발

1. 명령어 처리

운용자는 Managed System의 운용 및 관리를 위해 명령어를 사용하여 구성정보에 대한 조회, 추가, 변경, 삭제 등의 작업을 수행한다. 명령어는 문자 기반의 인터페이스(CLI, Command Line Interface) 형태로서 운용자는 명령어, 파라메터, 문법을 숙지하고 키보드를 사용하여 입력하여야 하므로 관리의 효율성이 떨어지게 된다. 따라서 OAM Client를 사용하여 GUI 기반으로 명령어를 실행하고, 실행 결과를 표, 그래프, 이미지 형태로 표시함으로써 사용자 경험을 높이고 Managed System을 효율적으로 운용하고 관리할 수 있게된다.

명령어의 실행은 주로 운용자에 의해 시작되며 자주 발생하는 동작이 아니므로, OAM Client는 OAM 서버에 TCP/IP로 연결 후에 명령어 실행을 요청하고 Managed System에서 실행된 결과는 OAM 서버를 거처 OAM Client로 도착한 후에 OAM Client에 의해 TCP/IP 연결이 해제된다.

OAM Client, OAM 서버, Managed System은 명령어를 처리하기 위해 동일한 명령어 정의를 공유해야 하며, 명령어 정의를 위해 XML을 사용할 수 있다.

OAM Client Framework에서는 위와 같은 기능사항들의 구현을 지원하기 위해 아래와 같은 라이브러리를 제공한다.

  1. 연결 관리 : TCP/IP 세션관리, 연결의 보안관리, 연결 실패시 재접속
  2. 명령어 정의 XML 관리 : XML 파서, XML 버전 검사, 최신 버전의 XML로 갱신
  3. 명령어 요청 생성 : 사용자가 입력한 파라메터 검사
  4. 명령어 응답 파서 : 응답값의 변조 유무 점검, 성공시 객체의 형태로 반환, 실패시 오류 문구 출력
  5. 명령어 응답 출력 : 그리드(Grid)로 출력, 그래프로 출력, 텍스트로 출력

사용자 삽입 이미지

[명령어 처리 UI 예제]

2. 구성 관리

Managed System의 구성을 위한 파라메터를 OAM Client를 통해 조회, 추가, 변경, 삭제할 수 있어야 한다. 구성을 관리하기 위한 방법은 하나의 파라메터를 관리하는 방법과 여러 개의 파라메터를 한꺼번에 관리하기 위한 방법이 있다. 전자의 경우 명령어를 사용하여 처리할 수 있으며, 후자의 경우 구성을 담고 있는 파일을 전송하여 Cron job으로 등록하여 사용자가 적은 시간에 일괄 처리할 수 있다. OAM Client Framework에서는 명령어를 통한 구성관리만을 지원한다.

명령어는 텍스트 기반으로 정의되어 있으므로 OAM Client에서는 운용자 정합 기능을 제공하여 마우스의 간단한 조작으로 관리할 수 있도록 하여야 한다. 조회는 명령어 실행의 응답값을 파싱하여 그리드, 이미지, 차트 등으로 표현할 수 있어야 한다. 명령어를 사용하여 구성 관리를 지원하기 위해 OAM Client Framework는 아래의 기능을 제공한다.

  1. 그리드 UI : 정렬 변경, 그룹화, 인쇄
  2. 운용자가 입력한 파라메터의 검증 : 범위, 데이터 종류, 정규식을 사용한 검증
  3. 운용자 재 확인 : 중요한 파라메터를 변경할 때는 비밀번호를 입력 받아야 한다.
  4. 보고서 작성 : 출력 결과는 워드, 엑셀 등의 보고서로 출력하는 기능을 제공

사용자 삽입 이미지

[구성 관리 UI 예제]

3. 성능 관리

Managed System의 주요한 성능 관리 대상들은 실시간으로 OAM Client와 NMS에 보고되어야 한다. 실시간으로 전달된 성능값은 OAM Client에서 그래프의 형태로 제공되고, 운용자는 성능 관리 대상의 그래프 추이를 통해 성능 저하 또는 장애를 예측할 수 있다.

성능값을 거의 실시간으로 보여주기 위해서 OAM 서버와 OAM Client는 TCP/IP로 연결되어 있으며, XML로 정해진 데이터를 전송 받는다. 성능 정보를 담은 XML은 3GPP의 TS 32.435[주:”Telecommunication management; Performance measurement; eXtensible Markup Language (XML) file format definition”, 3GPP TS 32.435, 2012년]에 정의된 정보 모델(Information Model)을 기반으로 전송하며 XML 스키마는 아래와 같다.

사용자 삽입 이미지

[성능 관리를 위한 XML 스키마]

TCP/IP를 통해 전달받은 XML 데이터는 차트, 이미지, 표 등의 여러가지 UI의 형태를 가질 수 있으며 미래에는 다른 형태의 UI를 가질 수도 있게된다. 모든 UI마다 성능값을 수신하기 위해 OAM 서버와 따라서 TCP/IP 연결을 수행하는 것은 자원을 낭비하는 것이므로 옵저버 패턴(Observer Pattern)을 사용하여 성능 데이터 수신을 담당하는 OMC Handler는 데이터를 수신한 후 등록된 UI의 update 메소드를 실행하여 성능값을 전달한다.

사용자 삽입 이미지

[성능 관리를 위한 옵저버 패턴]

성능관리를 위한 데이터는 TCP/IP로 연결된 채널을 통해 지속적으로 수신 받아야 하므로 HeartBeat를 통한 연결 감시를 수행하여야 하며, 연결이 단절되면 복구하기 위하여 재접속을 시도하여야 한다. 이러한 TCP/IP의 연결과 관련된 클래스들은 추상 팩토리 패턴(Abstract Factory Pattern)를 통해 생성하여 같은 품질의 성능과 보안성을 유지할 수 있다.

사용자 삽입 이미지

[성능 관리를 위한 추상 팩토리 패턴]

Managed System에서 수집된 성능은 지속적으로 OAM Client로 전달되어 차트로 표시되어야 한다. 따라서 OAM Client는 OAM 서버와의 연결을 지속적으로 관리하여야 하며 수신한 데이터는 차트에서 사용할 수 있는 형태로 가공되어야 한다. 성능 관리를 위해 OAM Client Framework가 제공하는 기능은 아래와 같다.

  1. 성능관리 XML 파싱 : XML로 전달된 데이터를 통해 성능 관리 대상 별로 성능값을 추출한다.
  2. TCP/IP 연결 관리 : OAM Client가 실행되면 TCP/IP 연결은 지속적으로 관리되어야 하므로 HeartBeat을 통해 연결의 무결성을 점검하고, 오류시 재접속을 수행한다.
  3. 성능값을 차트로 표현 : 성능값을 차트에서 사용할 수 있는 데이터로 변환한다.
  4. 자주 사용되는 성능의 템플릿 UI 제공 : CPU, Memory, Disk, NIC와 같은 공통적으로 감시되는 항목들은 템플릿 UI를 제공한다.

사용자 삽입 이미지

[성능 관리 UI 예제]

4. 형상 관리

Managed System의 성능은 수치로 표현될 수도 있지만 정상, 장애 등의 상태로도 표현할 수 있다. Managed System에는 성능을 측정하기 위한 OAM Agent가 서비스와 자원의 상태를 감시하고, 이 값이 구성관리에서 설정한 임계치와 비교하여 정상 범위를 벗어나면 Warning, Minor, Major, Critical 등급으로 장애를 판단하여 OAM Client에 전달한다. OAM Client에서는 실제 물리적인 운용 환경과 같은 하드웨어, 네트워크의 상태를 UI로 표현하고 장애가 발생했을 때 장애가 발생한 대상의 색상을 변경하여 가시 알람을 발생할 수 있다. Managed System의 상태는 성능 관리에서 사용된 XML을 사용하여 전달 받는다.

사용자 삽입 이미지

[형상관리 UI 예제]

Managed System을 운용 중에는 내적 혹은 외적인 요인으로 인하여 시스템 구성이나 망 구성이 변경될 수 있다. 변경된 형상은 OAM Client에도 반영이 되어야 하지만, UI의 변경이 발생할 때마다 OAM Client를 새로 빌드하여 배포하는 것은 유지보수 측면에서 불리하다. 따라서 OAM Client는 새로운 배포본이 필요없이 운용자가 직접 간단한 조작만으로 UI를 수정할 수 있거나, 제조사로부터 전달받은 설정값을 적용하여 UI가 변경될 수 있는 유연한 구조를 가져야 한다.

5. 장애 관리

Managed System에서 발생한 장애는 즉시 OAM Client와 NMS에 보고되어야 하고 운용자는 이를 감지하여 빠른 시간에 장애를 복구하기 위한 절차를 수행하여야 한다. OAM Client에서는 장애를 효과적으로 운용자에게 보고하기 위하여 장애에 대한 가시 알람과 가청 알람을 발생한다. 가시 알람은 형상 관리를 위한 UI 이미지에 장애를 나타내는 색상의 이미지를 사용하여 시각적인 알람을 나타낸다. 가청 알람은 장애를 나타내는 소리를 스피커를 통해 알려주어 운용자가 OAM Client를 보고 있지 않아도 빠르게 장애를 감지할 수 있다. 가시 알람은 동시에 여러 개의 이미지의 색상을 바꿀 수 있지만, 가청 알람은 여러 개의 음성을 동시에 출력할 경우 정상적으로 운용자가 인식할 수 없으므로 장애 등급과 같은 우선 순위를 기반으로 한 개의 음성만 출력하여야 한다. OAM 서버가 SMS 또는 MMS를 전송할 수 있는 기능이 있다면 운용자의 휴대폰으로 장애를 전송할 수도 있다.

사용자 삽입 이미지

[장애관리 UI 예제]

Managed System에서 발생한 장애는 또 다른 논리적 장애 또는 물리적 장애를 유발할 수가 있으며, 하드웨어에서 발생한 장애의 경우 수많은 장애 메시지가 짧은 시간동안 OAM Client로 도착할 수 있다. 따라서 장애 메시지를 효율적으로 관리하지 않으면 OAM Client가 고착상태에 빠질 수도 있으므로 메시지 대기열(Message Queue)을 사용하여 대량의 장애 메시지를 처리하여야 한다. 메시지 대기열 기술은 각기 다른 프로세스들이 대기열로 메시지들을 보내고 대기열로부터 메시지를 읽는 방식으로 통신을 가능하게 해준다. 메시지 대기열 기술의 확장은 보장된 메시지 배달, 효율적인 라우팅, 보안 및 우선 순위에 기반을 둔 메시징을 제공하며, 고성능을 필요로 하는 비동기와 동기 시나리오 모두에 대한 솔루션을 구현하기 위해 사용될 수 있다.[주:곽평근, “메시지 큐를 이용한 원장관리 시스템 IPC 설계 및 구현”, 연세대학교 공학대학원, 2005년]

사용자 삽입 이미지

[메시지 대기열을 사용한 장애 관리]

장애는 해제(cleard)되는 방식에 따라 자동으로 해제 되는 ADAC(Automatically Detected and Cleared) 장애와 수동으로 해제해야 하는 ADMC(Automatically Detected and Manually Cleared) 장애로 구분할 수 있다. ADAC 장애는 해제 메시지가 도착하면 알람이 자동으로 해제되지만, ADMC 장애는 자동으로 해제되지 않고 운용자가 장애를 복구한 후 OAM Client를 통해 장애를 해제하여야 한다. 운용자가 장애를 해제하면 OAM Client는 해제 메시지를 스스로 생성하여 메시지 대기열에 넣음으로써 장애 해제 매커니즘을 재활용 할 수 있다.

6. 보안 관리

OAM Client는 이동통신망의 운용지원부서에서 실행되며, OAM 서버와 OAM Client는 방화벽 안의 사설망 안에서 동작하므로 외부와 격리되어 있는 환경에서 운용되는 것이 일반적이다. 경우에 따라 외부의 망에서 실행되는 OAM Client는 IPSec과 같은 암호화 터널을 사용하여 OAM 서버와 통신을 수행하여야 한다.

운용자는 OAM Client를 사용하기 위해서는 아이디와 비밀번호를 입력하여 로그인 절차를 수행하여야 한다. 운용자 정보는 Database에 저장되며 비밀번호는 암호화하여야 한다. 운용자가 로그인을 여러 번 실패하게 되면 불법적인 접근을 시도하는 것으로 유추할 수 있으므로 로그인을 시도한 이력을 Database에 저장하여야 한다. 아이디와 비밀번호가 일치하면 인가된 PC에서 로그인 절차를 수행하였는지 검사하여야 하며, 비인가된 PC일 경우에는 로그인을 실패 처리하고 로그인 이력을 Database에 저장하고 최고 관리자에게 통보하여 불법적인 접근을 예방하여야 한다.

OAM Client를 사용하여 Managed System을 조작할 수 있는 운용자는 등급을 나누고 등급별로 실행 권한을 부여하여 제한된 조작만을 수행하도록 하여야 한다. 운용자 등급은 크게 3등급으로 나눌 수 있다.

  1. 최고 관리자 : 다른 운용자의 정보를 조회, 수정, 삭제할 수 있으며 OAM Client를 사용하여 조작한 모든 정보를 조회할 수 있다. 사업자 정책에 따라 많은 운용자가 사용하는 OAM Client라면 운용자 신청을 조회하여 승인하는 권한을 갖는다.
  2. 일반 운용자 : OAM Client를 사용하여 조회, 추가, 변경, 삭제와 같은 대부분의 기능을 수행할 수 있다.
  3. 모니터링 운용자 : OAM Client를 사용하여 조회만을 수행할 수 있다.

사용자 삽입 이미지

[운용자 관리의 UI 예제]

7. 통계 관리

Managed System의 상태 정보, 장애 정보는 OAM Agent에 의해 주기적으로 OAM 서버에 전송되고, OAM 서버의 Database에 저장된다. 운용자는 OAM Client를 사용하여 상태와 장애에 대한 통계를 조회하여 정상적인 서비스를 지속하기 위한 정책을 세우는 자료로 활용할 수 있다.

OAM 서버에 저장된 통계 조회를 위한 조건을 마우스 클릭만으로 설정할 수 있는 UI를 제공하여야 한다. 통계를 위한 조건으로 조회 항목, 조회할 시스템, 시간 범위, 시간 단위 등을 입력할 수 있으며 서비스의 종류에 따라 조회 항목은 하위 항목을 더 가질 수 있다.

조회할 통계 항목의 컬럼이 많으면 조회 화면이 옆으로 길어져 한눈에 알아보기 힘들므로 컬럼을 2개 또는 3개로 분류하여 다단으로 구성하여 보여줄 수 있다. 컬럼이 숫자형 Data를 가지고 있을 경우에는 그리드와 함께 그래프의 형태로 출력하면 더욱 직관적으로 Data의 의미를 파악할 수 있게된다.

사용자 삽입 이미지

[통계 관리의 UI 예제]

조회된 통계 Data는 보고서 작성을 위해 Microsoft Office에서 사용하는 문서 형태로 저장할 수 있어야 한다. 일반적으로 통계는 Excel로 저장한다. 엑셀파일을 생성하기 위해서는 Microsoft COM 객체를 사용하는 방법과 써드 파티 라이브러리를 사용하는 방법이 있으며, 전자는 OAM Client가 실행되는 PC에 Excel이 설치되어 있어야 하며 설치된 엑셀의 버전에 따라 API의 사용법이 다르므로 후자를 권한다.

OAM Client에서 Database를 통해 결과값을 얻어오기 위해서는 DB Provider를 통해 OAM Client와 Database간의 연결을 맺어줘야 한다. Oracle에 연결하기 위해서는 OAM Client가 실행되는 PC에 설치된 Oracle Client를 이용하는 방법과 100MB를 넘는 Oracle Instant Client의 dll을 포함하는 방법이 있으나 둘다 배포가 불편하고 배포 파일의 크기가 너무 큰 단점이 있다. 이 경우 경량화된 OCI 프로토콜을 사용하여 Oracle 서버에 직접 연결할 수 있는 써드 파티 라이브러리를 사용하는것이 배포에 유리하다.

통계를 위해 Database의 값을 효과적이고 편리하게 사용하기 위해서는 영속성 Framework를 사용할 수 있다. 영속성 Framework란 정보에 대한 접근과 저장을 단순화하는 라이브러리로써 관계형 데이터베이스 관리시스템(RDBMS)과 연동되는 코드를 작성하기 위한 Framework이다. 업계의 최신동향은 객체-관계(ORM, Object-Relational Mapping) 영속성 Framework를 사용하는 것이다. ORM 영속성 Framework는 테이블과 테이블의 각 행과 열을 추상화하기 때문에 개발자들은 데이터베이스가 아닌 객체를 통해 코드를 구현하게 된다. .NET 환경에서 사용 가능한 오픈 소스 ORM Framework로는 MyBatis.NET과 NHibernate가 보편적이다. 또한 마이크로소프트는 Entity Framework와 Linq to SQL 이라는 두 가지 ORM Framework를 제공한다.[주:Jonathan McCracken, “Test-Drive ASP.NET MVC (Pragmatic Programmers)”, Pragmatic Bookshelf, 2010년] 그 중에서도 NHibernate는 .NET 환경에서 가장 강력한 기능을 제공하는 ORM 도구이지만 OAM Client Framework를 배포 후에 이를 사용하여 개발하는 개발자의 이해도와 학습곡선을 고려했을 때 MyBatis.NET이 좀 더 사용하기 쉬운 구조이므로 MyBatis.NET을 사용하여 OAM Client Framework를 구성할 수 있다. MyBatis .NET을 사용하면 통계를 위한 쿼리를 외부의 XML에서 정의하여 통계의 변경 또는 성능 향상을 위한 쿼리 변경 시 새롭게 빌드하지 않아도 된다. 또한 쿼리의 결과는 객체로 변환되어 그리드 또는 차트의 Data Source로 쉽게 활용될 수 있다.

사용자 삽입 이미지

[MyBatis.NET을 사용한 통계 처리]

8. 배포 방법

OAM Client의 배포는 설치 파일을 통한 제공하거나, 웹 브라우저에서 실행하는 2가지의 방식을 사용할 수 있다. 설치 파일을 사용할 경우는 적은 수의 PC에 OAM Client가 설치되는 환경에서 사용되며 기능 개선을 위한 업그레이드를 위해서는 새로운 설치 파일을 배포하거나 자동 업그레이드 기능을 OAM Client에 포함하여야 한다. 웹 브라우저에서 실행하는 경우는 여러명의 운용자가 다양한 장소에서 OAM Client를 실행하는 환경에서 적합하다. 마이크로소프트에서는 웹 브라우저를 통해 응용 프로그램의 실행을 위한 바이너리 파일을 다운로드 받을 수 있는 기술인 ClickOnce 기능을 제공한다.

ClickOnce 배포를 사용하여 응용 프로그램을 게시하려면 공개/개인 키 쌍을 사용하여 응용 프로그램 및 배포 매니페스트에 강력한 이름을 지정하고, Authenticode 기술을 사용하여 서명하게 된다. OAM Client는 매니페스트에 서명하기 위해 pfx 확장자의 키 파일로 코드 서명을 수행한다. OAM Client는 웹브라우저를 통해 버전확인, 업데이트, 실행을 수행하므로, 서명되지 않거나 변조된 파일을 사용하여 OAM Client를 실행할 수 없는 구조이다. OAM Client를 최초 개발 또는 업데이트 시에는 실행에 필요한 파일들과 매니페스트를 OAM 서버에 위치한 웹 서버에 복사하고, 운용자는 웹 브라우저에서 실행 버튼을 누르면 XML 파일 기반의 메니페스트를 통해 OAM Client 실행을 위한 파일을 다운로드하여 OAM Client를 실행하게 된다. 운용자의 PC에 이미 다운로드 받아진 바이너리가 최신버전일 경우에는 다운로드는 생략되고 바로 실행이 가능하다.

사용자 삽입 이미지

[웹을 통한 배포 절차]

원칙적으로는 ClickOnce를 사용하기 위한 환경은 윈도우 서버에 인터넷 정보 서비스(IIS, Internet Information Service)를 사용해야 하지만, 유닉스 또는 리눅스 운용체제의 서버에 톰캣과 같은 웹서버를 설치하고 ClickOnce에 사용되는 MIME (Multipurpose Internet Mail Extensions) 종류를 변경해 줌으로써 IIS와 같은 환경을 꾸밀 수 있다. 아래는 톰켓의 설정파일인 web.xml에서 MIME 종류를 변경한 예제이다.

사용자 삽입 이미지

[웹으로 배포하기 위한 톰켓 설정]

CC BY-NC-ND 2.0 KR

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스

저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.

댓글 남기기