KR100844101B1 - 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법 - Google Patents

동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법 Download PDF

Info

Publication number
KR100844101B1
KR100844101B1 KR1020050109655A KR20050109655A KR100844101B1 KR 100844101 B1 KR100844101 B1 KR 100844101B1 KR 1020050109655 A KR1020050109655 A KR 1020050109655A KR 20050109655 A KR20050109655 A KR 20050109655A KR 100844101 B1 KR100844101 B1 KR 100844101B1
Authority
KR
South Korea
Prior art keywords
monitoring
elapsed time
time
failure
fault
Prior art date
Application number
KR1020050109655A
Other languages
English (en)
Other versions
KR20070052065A (ko
Inventor
윤희용
이수명
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020050109655A priority Critical patent/KR100844101B1/ko
Publication of KR20070052065A publication Critical patent/KR20070052065A/ko
Application granted granted Critical
Publication of KR100844101B1 publication Critical patent/KR100844101B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

폴트 톨러런스를 필요로 하는 애플리케이션의 오브젝트 상태를 모니터링하고, 시스템의 안정상태에 상관없이 탄력적이고 정확한 모니터링 주기를 유지하고 오브젝트에서 발생하는 고장을 신속하고 정확하게 발견하는 동적 윈도우 기반 고장 모니터링 방법에 관한 것으로, 컴퓨터 시스템의 애플리케이션 내부에서 특정 기능을 구현하는 오브젝트수단, 상기 오브젝트수단의 상태를 감시하는 감시수단, 모니터링 주기를 정하고 상기 오브젝트수단의 유효상태를 판단하여 고장여부를 모니터링하는 모니터링수단, 상기 오브젝트수단의 고장을 발견하는 고장발견수단을 포함하는 구성을 마련한다.
상기와 같은 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법을 이용하는 것에 의해, 안정된 시스템 상태는 물론 불안정한 상태에서도 훨씬 더 탄력적이고 정확한 모니터링 주기를 예측할 수 있다.
고장 모니터링, 고장 감시, 폴트 톨러런스, 폴트 톨러런트

Description

동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법{DYNAMIC WINDOW-BASED ADAPTIVE FAULT MONITORING SYSTEM AND METHOD THEREOF}
도 1은 종래 기술에 따른 부정확한 고장 모니터링의 예를 나타내는 도면,
도 2는 종래의 어뎁테이션 모델의 동작 방식을 나타내는 도면,
도 3은 본 발명에 따라 순차 번호를 사용하여 모니터링되는 오브젝트의 상태가 정상인지 비정상인지 판단하는 방법을 나타내는 도면,
도 4는 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템의 전체 구성을 도시한 구성도,
도 5는 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템을 도시한 블록도,
도 6은 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법을 설명하는 흐름도,
도 7은 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법을 컴퓨터 프로그래밍 언어로 나타낸 도면,
도 8은 본 발명에 따른 동적 윈도우의 크기를 결정하는 방식을 나타내는 도면,
도 9는 종래의 모니터링 방법과 본 발명에 따른 모니터링 방법에서의 성능을 시뮬레이션한 결과를 대비하여 나타내는 그래프.
* 도면의 주요 부분에 대한 부호의 설명 *
501: 오브젝트수단 502: 감시수단
503: 모니터링수단 504: 고장발견수단
505: 고장알림수단
본 발명은 고장 모니터링 방법에 관한 것으로, 특히 폴트 톨러런스(Fault Tolerance)를 필요로 하는 애플리케이션(application)의 오브젝트(object) 상태를 모니터링(monitoring)하고, 시스템의 안정상태에 상관없이 탄력적이고 정확한 모니터링 주기를 유지하고 오브젝트에서 발생하는 고장을 신속하고 정확하게 발견하는 동적 윈도우 기반 고장 모니터링 방법에 관한 것이다.
좀 더 자세히 말하자면, 오브젝트의 고장을 신속하고 정확하게 발견하기 위해 비동기 호출 접근방법을 사용하여 이전에 측정된 응답시간 값들의 저장하고, 모니터링 주기를 계산하기 위해 사용될 응답시간 값들의 범위인 윈도우 크기를 동적으로 조절하여 안정된 시스템 상태는 물론 불안정한 상태에서도 탄력적이고 정확한 모니터링 주기를 유지하고 고장을 발견하는 동적 윈도우 기반 고장 모니터링 방법에 관한 것이다.
폴트 톨러런스란 컴퓨터 시스템을 구성하는 요소에 고장이 발생해도 시스템은 계속 그 기능을 실행하는 내고장성을 갖춘 신뢰성이 높은 컴퓨터를 말한다. 따라서 사용자가 전혀 모르게 고장난 모듈을 온라인(On-Line) 상태에서 교환할 수 있으며, 어떠한 고장이 발생하더라도 데이터의 손실 없이 시스템이 정상동작을 계속한다. 예비 자원이 있고 고가이므로, 처리가 정지되면 영향이 큰 은행, 항공사, 전화국 등의 온라인 시스템 등에 사용된다.
폴트 톨러런스는 크게 고장 발견(Fault Detection), 고장 진단(Fault Diagnosis), 고장 복구(Fault Recovery)의 3가지 단계를 통해 이루어지며, 이러한 단계들은 동작중인 응용 소프트웨어에 아무런 영향을 주지 않는다. 3가지 단계에 대하여 설명하면 다음과 같다.
첫 번째 단계인 고장 발견은 주로 하드웨어로 구성된 비교기(Compare Logic)를 통하여 이루어지는데, 시스템 내에서 고장이 발생되면 해당 모듈 또는 시스템이 고장 상태로 들어간다. 고장이 발생되면 운영체제는 각 하드웨어 모듈들의 상태를 분석하여 어느 모듈이 고장을 유발시켰는가를 분석하여 알아낸다.
두 번째 단계인 고장 진단은 고장이 일시적(transient)인 것인지 영구적(hard)인 것인지 진단한다. 만약 고장이 영구적이라면 그 모듈을 시스템 구성에서 제거한다. 만약 고장이 발생하여 자가 진단을 수행한 결과 아무런 문제가 없다고 판단되면, 시스템은 일단 그 고장을 일시인 것으로 인식하고 모든 동작을 계속 수행한다. 그러나 일시 고장이 일정시간 동안 정해진 수를 넘게 되면 운영체제는 이 또한, 시스템 구성에서 제거한다.
세 번째 단계인 고장 복구는 고장을 유발한 모듈을 시스템에서 제거하여 시스템을 재구성하면서 이루어진다.
폴트 톨러런스를 유지할 수 있는 중요한 기능 중 하나는 데이터를 항상 두 개 복사하도록 해놓음으로써 폴트 톨러런스를 유지시킨다는 점이다. 즉 CPU가 데이터 쓰기를 할 경우 항상 두 개의 메모리에 저장시켜 놓는 메모리 섀도잉(shadowing)을 수행한다. 어느 한 CPU 또는 CPU 모듈이 메모리에 있는 프로세스(process)를 수행하는 과정에서 이상이 생기더라도 또 다른 메모리에 있는 데이터를 다른 CPU 또는 CPU 모듈이 수행하게 함으로써 시스템에 영향을 전혀 주지 않고 폴트 톨러런스를 유지할 수 있다.
이와 같이 폴트 톨러런스의 일례가 대한민국 특허 공개공보 2000-0011834호(고장 - 허용오차를 계산하는 컴퓨터 시스템 및 이를 동작시키는 방법, 고장 - 관리컴퓨터 장치, 및 고장 - 허용오차계산 장치)에 개시되어 있다.
상기 공보에 개시된 기술은 고장 허용오차(fault tolerant) 계산을 위한 컴퓨터 시스템에 있어서, 네트워크상에 상호접속된 다수의 호스트 컴퓨터들과; 상기 다수의 호스트 컴퓨터들 중의 다른 한 컴퓨터상에서 각각 처리하는 응용 모듈의 한개 이상의 카피들과; 상기 호스트 컴퓨터들 중의 다른 한 컴퓨터들 상에 각각 저장된 응용 모듈의 한 개 이상의 유휴(idle) 백업 카피들과; 상기 다수의 호스트 컴퓨터들 중의 한 컴퓨터를 처리하는 관리기 데몬(manager daemon) 처리부로서, 상기 응용 모듈의 처리하는 카피들 중의 고장 난 한 카피에 대해 표시를 수신하고 고장 복구를 초기화하는 관리기 데몬 처리부; 및 상기 관리기 데몬 처리부에 등록 메시지를 공급하는 수단으로서, 상기 등록 메시지가 상기 응용 모듈 및 상기 응용 모듈의 복사도를 명시하고, 상기 복사도가 상기 시스템 내에 유지될 제 1 응용 모듈을 처리하는 카피들의 수를 나타내는 등록 메시지 공급 수단을 구비하는 고장 - 허용오차를 계산하는 컴퓨터 시스템 및 이를 동작시키는 방법, 고장 - 관리컴퓨터 장치, 및 고장 - 허용오차계산 장치에 대해 개시되어 있다.
또, 폴트 톨러런스의 다른 일례가 대한민국 등록특허 10-0455525호(폴트 톨러런트 계산기 시스템)에 개시되어 있다.
상기 공보에 개시된 기술은 계산기 본래의 처리를 지연시키지 않고 메인 계산기의 다운을 신속하게 검출하며 또한 중단된 처리 위치를 정확하게 특정할 수 있는 폴트 톨러런트 계산기 시스템을 제공하고, 이를 위해, 주계산기와, 평상시에 상기 주계산기와 동일한 처리를 가상으로 실행하는 보조 계산기와, 처리 대상에 접속된 바운더리 스캔 소자인 통신 소자와, 상기 통신 소자와 상기 주계산기 또는 상기 보조 계산기 중 어느 한쪽 사이의 접속 전환을 행하는 전환 수단으로 구성하고, 상기 주계산기로부터 상기 통신 소자로 공급되는 클록 신호의 유무에 따라 상기 접속 전환을 행하는 폴트 톨러런트 계산기 시스템에 대해 개시되어 있다.
이러한 폴트 톨러런스는 유비쿼터스(Ubiquitous) 환경에서 사용되는 항공 교통 제어나 방어 시스템 등의 매우 민감한 시스템에서부터 911이나 메디컬 시스템 등과 같은 비교적 덜 민감한 시스템까지 많은 종류의 애플리케이션에서 필요로 한 다. 또한, 항공수단, 통신 시스템과 같은 임베디드(embedded) 애플리케이션, 전화나 네트워킹(networking) 시스템과 같은 통신 시스템, 그리고 금융이나 공급 체인(supply chain) 애플리케이션과 같은 기업 애플리케이션도 동일한 요구사항들이 있다. OMG(Object Management Group, 객체 관리 그룹)에 의해 제공된 폴트 톨러런트 코바(Fault-Tolerant CORBA) 표준은 폴트 톨러런스를 이행하기 위한 방법을 정의하고, 애플리케이션의 고신뢰성 보장을 목표로 한다. 그 표준의 고장 관리는 폴트 톨러런스를 필요로 하는 오브젝트에 대한 고장 발견(detection), 알림(notification), 그리고 분석(analysis/diagnosis)의 동작들을 포함하고 있다.
본 발명에서는 위의 표준에서 정의된 고장 관리 동작들 중 오브젝트의 상태를 모니터링하고 고장 발생 시 고장을 발견하는 고장 발견에 초점을 맞춘다. 여기에서 고장 발생 시 고장을 빠르게 발견하고 경과 시간에 따라 오브젝트에 대한 모니터링 주기를 탄력적으로 조절하는 것이 중요하다. 고장 발견 메커니즘(mechanism)은 기본적으로 모니터 또는 발견자로부터 모니터링되는 오브젝트로 보내진 요청 메시지가 제때에 돌아오지 않았을 때 타임아웃(timeout) 이벤트를 발생시키는 방법을 사용한다. 유비쿼터스 환경에서 실제 크레쉬(crash)와 네트워크 부하에 의한 응답지연을 구별하는 것은 매우 어렵다. 따라서 평균 전송 시간보다 훨씬 더 작은 타임아웃 값 또는 모니터링 주기는 부정확한 고장 발견을 야기할 것이고, 평균 전송 시간보다 훨씬 더 큰 타임아웃 값은 고장 발견의 지연을 초래하기 때문에 고장 모니터링 방법은 신중하게 설계되어야 한다.
현재 다양한 종류의 고장 발견 모델들이 존재한다. 크레쉬 리커버리(Crash- Recovery) 모델과 Chandra와 Toueg에 의해 제안된 모델은 잘못된 고장의 발견이나 크레쉬 경고가 발생했을 때 타임아웃 값을 증가시키는 방법을 제시하였다. 또, Sotoma와 Mauro Madeira에 의해 제시된 어뎁테이션(Adaptation) 모델은 시스템 및 네트워크 부하에 의해 변화되어 경과 시간을 측정하고, 그 경과 시간의 변화에 따라 타임아웃 값을 변화시켜 정확하게 고장을 발견하는 것을 목표로 한다. 또 다른 고장 발견 모델로써 AFM(Adaptive Fault Monitoring, 어뎁티브 폴트 모니터링)은 모니터링 주기를 계산하기 위해 필요한 수많은 인자 값들과 경과 시간 값들을 버퍼(buffer)에 저장한다.
이러한 다양한 고장 발견 모델들을 좀 더 정확하게 설계하기 위해서는 도 1 및 도 2에 따라 설명하는 몇 가지의 상황을 피해야 한다.
도 1은 종래 기술에 따른 부정확한 고장 모니터링의 예를 나타내는 도면이다.
도 1에 도시된 왕복 시간(round-trip time)은 메시지가 모니터와 모니터링되는 오브젝트 사이를 왕복하는 소요시간이고, 타임아웃 이벤트는 응답시간이 이전에 설정된 모니터링 주기를 초과했을 때 발생하는 이벤트이다. 도 1a에서 도시하는 바와 같이, 모니터와 모니터링되는 오브젝트 사이의 평균 왕복 시간이 5초이고 타임아웃 이벤트가 4초에 발생한다면, 그 시스템은 고장이라고 가정한다. 따라서 이 시스템은 이에 따른 많은 문제를 갖게 될 것이다.
반면, 도 1b에서 도시하는 바와 같이 평균 왕복 시간이 5초이고 타임아웃 이 벤트가 8초에 발생한다면, 그 시스템은 고장을 발견하는데 3초 지연되게 된다. 이를 해결하기 위해 Chandra와 Toueg는 잘못된 크레쉬 경고, 즉 타임아웃 이벤트가 발생했을 때 모니터링 주기를 증가시키는 방법을 제시했다.
도 2는 종래의 어뎁테이션 모델의 동작 방식을 나타내는 도면이다.
도 2는 상기 Chandra와 Toueg에 의해 제안된 모델을 개선하기 위한 방법으로 어뎁테이션 모델의 동작 방식을 나타낸다. 이 모델은 응답(response)과 타임아웃의 두 가지 이벤트를 사용해서 모니터링 주기를 조절한다. 만약 응답 이벤트가 발생한다면, 설정된 모니터링 주기 안에 응답 메시지가 도착했다는 증거이므로 그 모델은 ①과 ②의 곱에 의해 다음 모니터링 주기를 조절한다. 여기에서 ①은 이전까지의 경과 시간의 평균값으로, 어뎁테이션 모델에서는 3개의 경과 시간 값만을 고정으로 사용한다. ②는 현재 설정된 모니터링 주기이다. 만약, 타임아웃 이벤트가 발생했을 때, 어뎁테이션 모델은 ①과 ③의 곱에 의해 다음 모니터링 주기를 조절한다. 여기에서 타임아웃 변수(factor)는 사용자의 경험에 의해 미리 설정된 고정된 값이다.
그러나 상기 크레쉬 리커버리 모델과 Chandra와 Toueg에 의해 제안된 모델에 있어서는 타임아웃 값이 네트워크상의 트래픽 또는 시스템의 부하에 의해 여러 번 증가하여 여러 번 타임아웃 값을 증가시키게 되고, 결국 그 부하가 평상시의 상태로 되돌아간 후에도 여전히 긴 타임아웃 값을 불필요하게 유지하게 되어 매우 느린 고장 발견을 이끄는 문제가 있었다.
또, 상기 어뎁테이션 모델에 있어서는 평균값들을 계산하기 위해서 타임아웃이나 응답 이벤트가 발생한 후에 타임아웃 값을 조절하는데, 응답 이벤트가 발생하면 단지 몇 개의 고정된 과거 경과 시간 값만을 이용하고, 타임아웃 이벤트가 발생하면 미리 설정된 고정 배수 값을 이용해 모니터링 주기를 조절하는 방식을 채택하기 때문에 반응시간이 느리고 불안정한 시스템에서 부정확한 타임아웃 값을 설정할 수 있는 문제가 있었다.
또, 상기 AFM 모델은 불안정한 시스템 환경에서 측정된 경과 시간이 증가 후 감소 또는 감소 후 증가시마다 이전의 경과 시간 값들을 초기화하고, 단지 몇 개의 시간 및 인자 값들만을 고정으로 사용하기 때문에 보다 정확한 고장 모니터링 주기를 예측하기에 적합하지 않은 문제가 있었다.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위해 이루어진 것으로서, 응답시간 값들의 범위인 윈도우 크기를 동적으로 조절하여 안정된 시스템 상태는 물론 불안정한 상태에서도 훨씬 더 탄력적이고 정확한 모니터링 주기를 예측하는 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법을 제공하는 것이다.
본 발명의 다른 목적은 복잡한 대규모 유비쿼터스 환경에 존재하는 모바일, PDA, 무선 노트북 등과 같은 고장 발생에 민감한 시스템들에 대해 매우 효과적으로 고장 모니터링을 하는 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템은 컴퓨터 시스템의 애플리케이션 내부에서 특정 기능을 구현하는 오브젝트수단, 상기 오브젝트수단의 상태를 감시하는 감시수단, 모니터링 주기를 정하고 상기 오브젝트수단의 유효상태를 판단하여 고장여부를 모니터링하는 모니터링수단, 상기 오브젝트수단의 고장을 발견하는 고장발견수단을 포함하고, 상기 모니터링수단이 다음 모니터링 주기를 연산하기 위해 사용될 응답시간 또는 이벤트 발생시간 값들의 범위인 윈도우 크기를 동적으로 조절하고, 상기 모니터링 주기 내에 상기 오브젝트수단의 유효상태를 알 수 있는 응답이나 이벤트를 지정된 횟수이상 수신하지 못하면 고장으로 판단하는 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템에 있어서, 경과 시간들의 수인 윈도우 크기, 상기 윈도우 크기 안에 있는 각각의 경과 시간에 대한 가중치, 가장 최근의 경과 시간에 더해지는 값, 및 경과 시간을 이용하여 상기 다음 모니터링 주기가 예측되는 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템에 있어서, 상기 윈도우 크기가 큰 경우는 윈도우 크기가 작은 경우에 비해 가장 최근의 경과 시간에 대한 가중치를 작게 갖고, 상기 경과 시간이 오래된 것일수록 가중치가 작아지는 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템에 있어서, 상기 다음 모니터링 주기는 식 eTime + inc의 실행에 의해 연산되며, 상기 eTime은 유효 확인 요청시간부터 응답수신 시간까지 또는 이벤트 대기 시작시간부터 이벤트 발생시간까지의 경과 시간이고, inc는 다음 모니터링 주기를 얻기 위해 가장 최근의 경과 시간에 더해지는 값인 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템에 있어서, 상기 inc는 식
Figure 112005065900818-pat00001
의 실행에 의해 연산되며, 상기 eTime은 경과 시간이고, weight는 윈도우 크기 안에 있는 각각의 경과 시간에 대한 가중치이고, winSize는 윈도우 크기이고, i는 순서를 나타내는 임의의 변수인 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템에 있어서, 상기 weight[i]는 식
Figure 112005065900818-pat00002
의 실행에 의해 연산되며, 상기 i는 순서를 나타내는 임의의 변수이고, j는 0부터 i번째까지의 weight를 연산하기 위한 임의의 변수인 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템에 있어서, 상기 weight[0]은 식
Figure 112005065900818-pat00003
의 실행에 의해 연산되며, 상기 winSize는 윈도우 크기인 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템에 있어서, 상기 윈도우 크기는 가장 최근의 경과 시간들이 연속으로 증가한 후 감소하거나 또는 감 소한 후 증가하는 측정 데이터들의 범위인 것을 특징으로 한다.
또, 상기 목적을 달성하기 위해 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법은 컴퓨터 시스템의 애플리케이션 내부에서 컴퓨터 시스템의 특정 기능을 구현하는 오브젝트수단, 상기 오브젝트수단의 상태를 감시하는 감시수단, 모니터링 주기를 정하고 상기 오브젝트수단의 유효상태를 판단하여 고장여부를 모니터링하는 모니터링수단, 및 상기 오브젝트수단의 고장을 발견하는 고장발견수단을 포함하는 고장 모니터링 시스템을 포함하는 시스템 고장 모니터링 방법에 있어서, 상기 모니터링수단이, 상기 오브젝트수단의 유효확인을 요청하는 확인요청 시간을 저장하는 단계, 상기 감시수단에게 상기 오브젝트수단의 유효확인을 요청하는 단계, 상기 요청에 따라 상기 감시수단에서 확인된 상기 오브젝트수단의 유효상태 확인 응답을 모니터링 주기 이내에 수신하였는지 확인하는 단계, 응답수신 시간을 저장하는 단계, 유효확인 요청시간부터 응답수신 시간까지의 경과 시간을 연산하여 저장하는 단계, 이전의 경과 시간과 비교하여 증감을 검사하는 단계, 다음 모니터링 주기를 연산하는 단계를 실행하고, 상기 모니터링수단이 다음 모니터링 주기를 연산하기 위해 사용될 응답시간 값들의 범위인 윈도우 크기를 상기 경과 시간을 이용하여 동적으로 조절하고, 상기 감시수단으로부터 지정된 횟수이상 응답을 수신하지 못하면 고장으로 판단하여 상기 고장발견수단에게 알리는 것을 특징으로 한다.
또, 상기 목적을 달성하기 위해 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법은 컴퓨터 시스템의 애플리케이션 내부에서 특정 기능을 구현하는 오브젝트수단, 상기 오브젝트수단의 상태를 감시하는 감시수단, 모니터링 주기를 정하고 상기 오브젝트수단의 유효상태를 판단하여 고장여부를 모니터링하는 모니터링수단, 및 상기 오브젝트수단의 고장을 발견하는 고장발견수단을 포함하는 고장 모니터링 시스템을 포함하는 시스템 고장 모니터링 방법에 있어서, 상기 모니터링수단이, 이벤트 대기 시작시간을 저장하는 단계, 이벤트를 대기하는 단계, 상기 감시수단에서 주기적으로 검사된 상기 오브젝트수단의 유효상태 확인 이벤트를 모니터링 주기 이내에 수신하여 발생하였는지 확인하는 단계, 이벤트 발생시간을 저장하는 단계, 이벤트 대기 시작시간부터 이벤트 발생시간까지의 경과 시간을 연산하여 저장하는 단계, 이전의 경과 시간과 비교하여 증감을 검사하는 단계, 다음 모니터링 주기를 연산하는 단계를 실행하고, 상기 모니터링수단이 다음 모니터링 주기를 연산하기 위해 사용될 응답시간 값들의 범위인 윈도우 크기를 상기 경과 시간을 이용하여 동적으로 조절하고, 상기 감시수단으로부터 지정된 횟수이상 이벤트를 수신하지 못하면 고장으로 판단하여 상기 고장발견수단에게 알리는 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법에 있어서, 상기 다음 모니터링 주기를 연산하는 단계는, 경과 시간들의 수인 윈도우 크기를 연산하는 단계, 상기 윈도우 크기를 이용하여 상기 윈도우 크기 안에 있는 각각의 경과 시간에 대한 가중치를 연산하는 단계, 상기 가중치를 이용하여 가장 최근의 경과 시간에 더해지는 값을 연산하는 단계, 상기 더해지는 값과 상기 경과 시간을 이용하여 상기 감시수단으로부터 응답을 수신할 시간을 예측하는 단계를 더 포함하는 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법에 있어서, 경과 시간들의 수인 윈도우 크기, 상기 윈도우 크기 안에 있는 각각의 경과 시간에 대한 가중치, 가장 최근의 경과 시간에 더해지는 값, 및 경과 시간을 이용하여 상기 다음 모니터링 주기가 예측되는 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법에 있어서, 상기 윈도우 크기가 큰 경우는 윈도우 크기가 작은 경우에 비해 가장 최근의 경과 시간에 대한 가중치를 작게 갖고, 상기 경과 시간이 오래된 것일수록 가중치가 작아지는 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법에 있어서, 상기 다음 모니터링 주기는 식 eTime + inc의 실행에 의해 연산되며, 상기 eTime은 유효확인 요청시간부터 응답수신 시간까지 또는 이벤트 대기 시작시간부터 이벤트 발생시간까지의 경과 시간이고, inc는 다음 모니터링 주기를 얻기 위해 가장 최근의 경과 시간에 더해지는 값인 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법에 있어서, 상기 inc는 식
Figure 112005065900818-pat00004
의 실행에 의해 연산되며, 상기 eTime은 경과 시간이고, weight는 윈도우 크기 안에 있는 각각의 경과 시간에 대한 가중치이고, winSize는 윈도우 크기이고, i는 순서를 나타내는 임의의 변수인 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법에 있어서, 상기 weight[i]는 식
Figure 112005065900818-pat00005
의 실행에 의해 연산되며, 상기 i는 순서를 나타내는 임의의 변수이고, j는 0부터 i번째까지의 weight를 연산하기 위한 임의의 변수인 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법에 있어서, 상기 weight[0]은 식
Figure 112005065900818-pat00006
의 실행에 의해 연산되며, 상기 winSize는 윈도우 크기인 것을 특징으로 한다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법에 있어서, 상기 윈도우 크기는 가장 최근의 경과 시간들이 연속으로 증가한 후 감소하거나 또는 감소한 후 증가하는 측정 데이터들의 범위인 것을 특징으로 한다.
본 발명에 관한 구체 설명에 앞서 일반적으로 고장 모니터링을 위해 사용되는 두 가지 모니터링 형태인 풀(pull)과 푸쉬(push) 모니터링에 대해 설명한다. 고장 모니터링 시스템에서 풀과 푸쉬 모니터링 형태는 고장 발견을 위한 정보 흐름의 방향이 다르다. 풀 기반 고장 모니터링 형태에서 고장 발견자는 모니터링되는 오브젝트의 유효상태, 즉 생존 여부를 확인하기 위해 그 오브젝트의 상태를 감시하는 감시 프로세스의 'is_alive()' 메소드(method)를 주기적으로 호출하고, 감시 프로세스는 호출에 따른 결과를 고장 발견자에게 되돌려준다. 반면, 푸쉬 기반 고장 모니터링 형태에서 감시 프로세스는 오브젝트의 상태를 주기적으로 확인한 후 고장 발견자의 'i_am_alive()' 메소드를 호출하여 그 오브젝트의 생존 유무를 보고한다.
본 발명에서는 모니터링 주기를 정확하게 결정하기 위해 몇 가지 새로운 방식들을 채택한다. 무엇보다도 모니터가 모니터링되는 오브젝트의 현재 상태를 확인하기 위해 'is_alive()' 메소드를 주기적으로 호출하거나, 감시 프로세스가 모니터링되는 오브젝트의 상태를 주기적으로 확인한 후 'i_am_alive()' 메소드를 호출하여 해당 모니터에게 그 결과를 보고하는 방식을 채택한다.
도 3은 본 발명에 따라 순차 번호를 사용하여 모니터링되는 오브젝트의 상태가 정상인지 비정상인지 판단하는 방법을 나타내는 도면이다.
도 3에서 도시하는 바와 같이, 메시지 송수신의 성공과 실패는 검정점과 흰점으로 각각 표시된다. 예를 들어, 풀 모니터링에서 A의 경우는 'is_alive(1)'이 도착한 후에 'is_alive(2)'가 전송되었으므로 정상인 상태이다. 그러나 B의 경우는 'is_alive(1)'이 도착하기 전에 'is_alive(2)'가 도착했기 때문에 'is_alive(1)'의 손실을 나타낸다. 따라서 이 경우에서는 고장 알림자(notifier)에게 그 상태를 보고할 필요가 있다. 마지막으로 C의 경우에서, 'is_alive(1)'이나 'is_alive(2)'의 어느 것도 도착하지 않았기 때문에 아무도 해당 오브젝트의 상태를 판단할 수 없다. 이것은 메시지의 지연이나 손실에 의해 발생된 결과이기 때문에 타임아웃 이벤트를 발생시키고 모니터링 주기를 조절할 필요가 있다. 푸쉬 모니터링 역시 'i_am_alive()' 메소드를 사용하여 위와 같은 상태 판단 방식을 채택한다.
본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법의 또 다른 특징은 윈도우를 탄력적으로 조절하여 모니터링 주기를 계산하기 위해 사용될 과거 경과 시간 값들의 범위를 제한하는 것이다. 여기에서 윈도우는 어느 순간의 이전 경과 시간들의 수이다. 예를 들어, 부하가 큰 폭으로 변하는 시스템이 있다고 하자. 부하량이 점차 증가하는 네트워크에서 지연과 오브젝트의 고장을 구별하기 위해, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법은 타임아웃이 세 번 발생했을 때 그 오브젝트를 고장이라고 가정한다. 또한, 모니터는 모니터링 주기를 계산하기 위해 여러 가지 변수들을 그것의 버퍼에 저장하고 그것들을 이용한다.
다음 모니터링 주기를 예측하기 위해 사용될 수 있는 가장 중요한 단서는 측정된 과거의 경과 시간 값들이다. 따라서 얼마나 많은 과거의 경과 시간 값들을 예측을 위해 포함시키는가가 효율성 있는 고장 모니터링을 위한 관건이다. 이를 위해 본 발명에서는 윈도우 크기를 고정시키지 않고 각 모니터링 사이클(cycle)마다 그것을 조절하고, 가장 최신의 경과 시간들이 연속으로 증가한 후 감소하거나 또는 감소한 후 증가하는 측정 데이터들의 범위를 정하여 다음 경과 시간의 예측에 반영한다. 더불어 그 윈도우 안의 각 경과 시간들에 대한 가중치는 그 예측의 정확성을 결정하는 또 하나의 중요한 요소이다. 그것은 이전의 경과 시간 값들보다 최근의 경과 시간 값들이 다음 경과 시간을 예측하기 위해 더 많은 영향을 미칠 가능성이 있기 때문에 채택된 방식이다. 여기에서 그 가중치는 시뮬레이션을 통해 얻어진 경험치들을 정형화한 방정식을 통해 계산된다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시 예를 첨부된 도면을 참조로 하여 상세히 설명하기로 한다. 또한, 본 발명의 설명에 있어서는 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템에 대해 도 4 내지 도 5에 따라 설명한다.
도 4는 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템의 전체 구성을 도시한 구성도이다.
도 4에서 도시하는 바와 같이, 본 발명에 따른 고장 모니터링 시스템은 폴트 톨러런스가 필요한 애플리케이션(401)의 오브젝트(402)를 모니터링하고, 고장의 발생시 이를 발견하기 위해 풀 및 푸쉬 기반 모니터링 방법을 사용한다. 풀 기반 모니터링에서 고장 모니터(403)는 대상 애플리케이션(401)의 오브젝트(402) 상태를 얻기 위해 요청 메시지를 보내고 그 결과를 되돌려받는다. 또한, 안정한 또는 불안정한 시스템 상태에 따라 변화하는 응답시간, 그리고 다음 모니터링 주기를 계산하기 위한 각 변수들을 시퀀스(sequence) 번호와 함께 데이터베이스(404)에 저장하고, 어뎁테이션 알고리즘(405)은 그 변수 값을 사용하여 다음 모니터링 주기를 계산한다. 푸쉬 기반 모니터링에서는 대상 시스템의 특정 프로세스가 오브젝트(402)의 상태를 주기적으로 검사한 후 그 결과를 고장 모니터(403)에게 보고하는 방식을 채택하고, 나머지의 동작은 풀 기반 모니터링과 같다.
도 5는 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템을 도시한 블록도이다.
도 5에서 도시하는 바와 같이, 본 발명에 따른 고장 모니터링 시스템은 컴퓨터 시스템의 애플리케이션 내부에서 특정 기능을 구현하는 오브젝트수단(501), 오브젝트수단(501)의 상태를 감시하는 감시수단(502), 모니터링 주기를 정하고 상기 오브젝트수단(501)의 유효상태를 판단하여 고장여부를 모니터링하는(503), 오브젝트수단(501)의 고장을 발견하는 고장발견수단(504), 오브젝트수단(501)의 고장을 알리는 고장알림수단(505)을 구비한다.
도 5a에 도시된 풀 기반 고장 모니터링 형태에서는 모니터링수단(503)이 고장발견수단(504)으로부터 로컬(local) 또는 리모트(remote)에 존재하는 오브젝트수단(501)의 유효 유무 확인 요청을 받으면, 감시수단(502)에게 유효 확인 요청을 한다. 유효 확인 요청을 받은 감시수단(502)이 오브젝트수단(501)의 상태를 확인하여, 오브젝트수단(501)이 유효할 경우 모니터링수단(503)에게 '유효' 응답을 송출한다. 이를 수신한 모니터링수단(503)이 '유효' 응답을 고장발견수단(504)에게 송출한다. 이때, 모니터링수단(503)이 모니터링 주기 이내에 감시수단(502)으로부터 지정된 횟수이상 응답을 수신하지 못하면 고장으로 판단하여 이를 고장발견수단(504)에게 송출하고, 고장알림 메시지가 고장알림수단(505)에게 송출된다. 다음 모니터링 주기는 유효확인 요청시간부터 응답수신 시간까지의 경과 시간을 이용하여 동적으로 조절된다.
또, 도 5b에 도시된 푸쉬 기반 고장 모니터링 형태에서는 감시수단(502)이 오브젝트수단(501)의 유효 상태를 주기적으로 확인한 후, 모니터링수단(503)에게 '유효' 이벤트를 발생시킨다. 이벤트가 발생되면 모니터링수단(503)이 오브젝트수단(501)의 유효한 상태를 고장발견수단(504)에게 보고한다. 이때, 모니터링수단(503)이 모니터링 주기 이내에 감시수단(502)으로부터 지정된 횟수이상 이벤트가 발생되지 않으면 고장으로 판단하여 이를 고장발견수단(504)에게 송출하고, 고장알림 메시지가 고장알림수단(505)에게 송출된다. 다음 모니터링 주기는 이벤트 대기 시작시간부터 이벤트 발생시간까지의 경과 시간을 이용하여 동적으로 조절된다.
다음에 본 발명의 실시예에 따른 동적 윈도우 기반 고장 모니터링 방법에 대해 도 6 내지 도 9에 따라 설명한다.
도 6은 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법을 설명하는 흐름도로서, 도 6a는 풀 기반 고장 모니터링 방법과 감시 방법을 설명하는 흐름도이고, 도 6b는 푸쉬 기반 고장 모니터링 방법과 감시 방법을 설명하는 흐름도이다.
도 6a에서 도시하는 바와 같이, 풀 기반 고장 모니터링 형태에서는 모니터링수단(503)이 고장발견수단(504)으로부터 로컬(local) 또는 리모트(remote)에 존재하는 오브젝트수단(501)의 유효 유무 확인 요청을 받고, 초기 응답수신 시간을 예측한다(ST 6010a). 다음으로, 확인요청 시간인 현재 시각을 저장한(ST 6020a) 후, 감시수단(502)에게 유효확인 요청을 한다(ST 6030a). 유효 확인 요청을 수신한(ST 6031a) 감시수단(502)이 오브젝트수단(501)의 상태를 확인하여(ST 6032a) 오브젝트 수단(501)이 유효한지 확인한다(ST 6033a). 오브젝트수단(501)이 유효할 경우, 모니터링수단(503)에게 '유효' 응답을 송출한다(ST 6034a). 오브젝트수단(501)이 유효하지 않을 경우에는 응답을 송출하지 않고 감시수단(503)으로부터의 요청을 수신하기 위해 대기한다.
다음으로, 모니터링수단(503)이 모니터링 주기 이내에 감시수단(502)으로부터 유효상태 확인 응답을 수신하였는지 확인하고(ST 6040a), 응답을 수신한 경우 응답수신 시간을 저장한다(ST 6050a). 단계 ST 6020a와 단계 ST 6050a에서 저장한 유효확인 요청시간부터 응답수신 시간까지의 경과 시간을 연산하여 저장한(ST 6070a) 후, 현재 경과 시간이 이전의 경과 시간에 비해 증가했는지 감소했는지를 검사한다(ST 6080a). 연산된 경과 시간과 검사된 경과 시간의 증감 정도에 따라 다음 모니터링 주기를 연산하여(ST 6090a) 다시 모니터링 과정을 반복한다.
다음 모니터링 주기는 경과 시간들의 수인 윈도우 크기, 상기 윈도우 크기 안에 있는 각각의 경과 시간에 대한 가중치, 가장 최근의 경과 시간에 더해지는 값, 경과 시간을 이용하여 상기 감시수단으로부터 응답을 수신할 시간을 예측하며, 이는 추후에 자세히 설명한다.
단계 ST 6040a에서 모니터링 주기 이내에 감시수단(502)으로부터 응답이 수신되지 않는다면, 타임아웃 횟수를 증가시키고(ST 6060a) 타임아웃 횟수가 지정된 횟수 이상인지 확인한다(ST 6061a). 타임아웃 횟수가 지정된 횟수 이상이라면 고장으로 판단하여 이를 고장발견수단(504)에게 송출하고 고장알림 메시지가 고장알림수단(505)에게 송출된다(ST 6062a). 고장알림수단(505)이 각 알림을 수신하기를 원 하는 개체들에게 고장 보고를 전파하여 고장이 처리되게 한다(ST 6063).
또, 도 6b에서 도시하는 바와 같이, 푸쉬 기반 고장 모니터링 형태에서는 감시수단(502)이 오브젝트수단(501)의 유효 상태를 주기적으로 확인한 후(ST 6010b), 오브젝트수단(501)의 유효상태가 유효한지 확인한다(ST 6011b). 오브젝트수단(501)이 유효할 경우, 모니터링수단(503)에게 '유효' 이벤트를 발생시킨다(ST 6012b). 오브젝트수단(501)이 유효하지 않을 경우에는 이벤트를 발생시키지 않고 다시 오브젝트수단(501)의 상태를 주기적으로 확인하기 위해 대기한다.
다음으로, 모니터링수단(503)이 이벤트 대기 시작시간을 저장하고(ST 6020b), 이벤트가 발생하기를 대기한다(ST 6030b). 모니터링 주기 이내에 감시수단(502)으로부터 이벤트가 발생되었는지 확인하여(ST 6040b), 이벤트가 발생되었을 경우 이벤트 발생 시간을 저장한다(ST 6050b). 단계 ST 6020b와 단계 ST 6050b에서 저장한 이벤트 대기 시작시간부터 이벤트 발생시간까지의 경과 시간을 연산하여 저장한(ST 6070b) 후, 현재 경과 시간이 이전의 경과 시간에 비해 증가했는지 감소했는지를 검사한다(ST 6080b). 연산된 경과 시간과 검사된 경과 시간의 증감 정도에 따라 다음 모니터링 주기를 연산하여(ST 5090b) 다시 모니터링 과정을 반복한다.
다음 모니터링 주기는 풀 기반 고장 모니터링 형태에서의 모니터링 주기와 동일하게 예측되므로 이는 추후에 자세히 설명한다.
단계 ST 6040b에서 모니터링 주기 이내에 감시수단(502)으로부터 이벤트가 발생되지 않는다면, 타임아웃 이벤트의 횟수를 증가시키고(ST 6060b) 타임아웃 이 벤트의 횟수가 지정된 횟수 이상인지 확인한다(ST 6061b). 타임아웃 이벤트의 횟수가 지정된 횟수 이상이라면 고장으로 판단하여 이를 고장발견수단(504)에게 송출하고 고장알림 메시지가 고장알림수단(505)에게 송출된다(ST 6062b). 고장알림수단(505)이 각 알림을 수신하기를 원하는 개체들에게 고장 보고를 전파하여 고장이 처리되게 한다(ST 6063b).
도 7은 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법을 컴퓨터 프로그래밍 언어로 나타낸 도면이다.
도 7에 도시된 변수들에 대한 설명은 다음과 같다.
seqNum: 각 패킷에 부착된 시퀀스번호,
sTime: 모니터링 사이클이 시작되는 시각 또는 메시지가 전송된 시각,
rTime: 모니터가 응답 메시지를 수신한 시각,
eTime: 경과 시간 (rTime - sTime),
winSize: 다음 모니터링 주기를 계산하기 위해 사용된 경과 시간 값들의 수,
weight: 윈도우 크기 안에 있는 각 경과 시간에 곱해진 값,
inc: 다음 모니터링 주기를 얻기 위해 현재 경과 시간으로 더해진 값,
monInter: 감시 프로세스로부터 응답 메시지가 수신될 시간을 예측한 값,
toutCnt: 타임아웃의 발생 회수(초기값: 0).
도 7a는 풀 기반 고장 모니터링수단과 감시수단의 동작을 나타낸 알고리즘이 다.
도 7a의 모니터링수단(503)의 동작프로세스(이하 '모니터링 프로세스'라 한다)에서 도시하는 바와 같이, 모니터링수단(503)이 로컬 또는 리모트 노드에 존재하는 오브젝트수단(501)을 모니터링한다. 3행에서 현재 시각을 sTime에 저장한 후, 4행에서 대상 시스템의 'is_alive()' 메소드(method)를 비동기 호출한다. 이때 현재 요청 메시지의 시퀀스 번호가 호출한 메소드의 파라미터(parameter) 값으로 넘겨지게 된다. 여기에서 오브젝트수단(501)으로부터 응답이 수신된다면, 정상 상태로써 모니터링수단(503)이 계속해서 다음 행을 수행한다. 그러나 만약 응답이 수신되지 않는다면 10행에서 타임아웃 카운트(count)를 증가시키고, 만약 타임아웃이 세 번 발생한다면, 12행에서와 같이 모니터는 고장알림수단(505)에게 알림 메시지를 보낸다. 5행에서 현재 시각을 저장하고 6행에서 경과 시간을 계산한 후에 7행에서 현재 eTime이 이전의 것에 비해 증가했는지 아니면 감소했는지를 검사한다. 마지막으로 8행에서 winSize, weight, inc 그리고 monInter가 결정된다.
도 8은 본 발명에 따른 동적 윈도우의 크기를 결정하는 방식을 나타내는 도면이다.
도 8에서 도시하는 것과 같이, 현재 메시지 7번이 수신되었고, 경과 시간이 메시지 1번부터 5번까지 단조롭게 감소한 후 메시지 6번부터 7번까지 단조롭게 증가하는 형태를 갖는다. 따라서 메시지 1번부터 7번까지의 범위 내의 경과 시간 값들을 다음 모니터링 주기를 계산하기 위해 사용하며, 윈도우 크기(winSize)는 7이 된다.
가장 최근의 경과 시간에 대한 가중치인 weight[0]를 계산하기 위해 방정식(1)이 사용된다. 이미 언급했던 것처럼 가중치 계산식은 시뮬레이션을 통해 경험으로 판단되어 다음 모니터링 주기를 가장 잘 예측할 것이라 예상되는 값들을 정형화해서 유도한 방정식이다. 방정식 (1)은 윈도우 크기가 증가하면 weight[0]가 더 작아지는 반비례의 관계에 있으므로, 윈도우 크기가 클 경우는 다음 모니터링 주기를 더욱 정확하게 계산하기 위해서 상대적으로 가장 최근의 경과 시간에 대한 가중치가 작아져야 하고, 또한 윈도우 크기가 작은 경우에 비해서 여러 개의 경과 시간들이 포함되어야 한다.
Figure 112005065900818-pat00007
(1)
더 최근의 경과 시간이 다른 경과 시간들보다 다음 메시지의 경과 시간을 예측하는데 더 많은 영향을 미치기 때문에 나머지 경과 시간들은 점차 작아지는 값을 갖게 한다. weight[i]와 weight[l]이 각각 i번째 이전 경과 시간, 가장 최근 경과 시간에 대한 가중치라고 가정하자. 이들의 가중치는 방정식 (2)를 사용해 계산될 수 있다.
Figure 112005065900818-pat00008
(2)
불안정한 시스템 및 네트워크 환경에 의해 경과 시간이 불규칙하게 변화하여 예상을 벗어날 경우를 대비하기 위해 다음 모니터링 주기는 가장 최근의 경과 시간 값보다 약간 더 클 필요가 있다. 그러므로 가장 최근에 경과 시간에 더해지는 값인 inc는 방정식(3)과 같이 현재 윈도우 안의 경과 시간들을 사용해 계산할 수 있다.
Figure 112005065900818-pat00009
(3)
Figure 112005065900818-pat00010
(4)
inc 값의 계산은 가중치와 경과 시간의 곱에 대한 합과 윈도우 크기(winSize)에 의해 결정된다는 점, 그리고 윈도우 크기가 증가할 때 그 값은 더욱 작아진다. 이로 인해 더 많은 경과 시간들이 예측에 포함되기 때문에, 그 계산 결과는 더 작아질 것으로 기대된다.
또, 도 7a의 감시수단(502)의 동작프로세스(이하 '감시 프로세스'라 한다)에서 도시하는 바와 같이, 감시수단(502)이 오브젝트수단(501)의 상태를 확인한다. 오브젝트수단(501)의 상태를 확인하는 감시 프로세스의 'is_alive()' 메소드가 모니터링수단(503)으로부터 호출되었고, 만약 오브젝트수단(501)가 유효하다면 '유효' 응답인 "true"를 모니터링수단(503)으로 반환한다.
도 7b는 푸쉬 기반 고장 모니터링수단과 감시수단의 동작을 나타낸 알고리즘이다.
도 7b의 모니터링 프로세스에서 도시하는 바와 같이, 모니터링수단(503)이 로컬 또는 리모트 노드에 존재하는 오브젝트수단(501)을 모니터링한다. 모니터링수단(503)의 프로세스의 1행은 모니터링되는 오브젝트수단(501)로부터 응답 메시지를 수신하는 한 계속해서 반복된다. 2행에서 시작시간이 sTime에 저장된 후, 3행에서 모니터링 수단(503)이 오브젝트수단(501)으로부터의 이벤트를 기다린다. 만약 이벤트가 발생하면 그것은 현재 시각을 rTime에 저장하고 풀 모드(mode)에서처럼 eTime, winSize, weight 등을 연산한다. 10행에서 만약 타임아웃 이벤트가 발생하고 이벤트의 발생 횟수가 3이 되면, 11행에서 모니터링수단(503)은 고장알림수단(505)에게로 알림 메시지를 보낸다.
또, 도 7b의 감시 프로세스에서 도시하는 바와 같이, 감시수단(502)이 1행에서 오브젝트수단(501)의 생존 유무를 주기적으로 검사한다. 만약 오브젝트수단(501)이 살아있다면, 3행에서 감시수단(502)은 모니터링수단(503)의 'i_am_alive()‘ 메소드를 호출한다.
도 9는 종래의 모니터링 방법과 본 발명에 따른 모니터링 방법에서의 성능을 시뮬레이션한 결과를 대비하여 나타내는 그래프이다.
도 9에서 도시하는 바와 같이, 본 발명에 따른 고장 모니터링 방법은 풀과 푸쉬 기반 모니터링이 성능상 거의 차이가 없기 때문에 풀 기반 모니터링만을 고려하며, 모니터링 방법들의 성능 평가는 경과 시간이 크게 변화하지 않는 안정한 시스템 및 네트워크 환경에서 먼저 수행되고, 불안정한 환경에서 두번째로 수행된다. 모니터 프로세스의 초기 모니터링 주기는 1.2(milliseconds, 밀리초)로 설정된다.
도 9a는 안정한 상태의 시스템 환경에서 어뎁테이션 방법(ADA), 적응적인 고장 모니터링 방법(AFM), 그리고 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법(win)에 의해 예측된 모니터링 주기들을 나타낸다. 도 9a에서 도시하는 바와 같이, 어뎁테이션 방법은 다른 두 방법들에 비해 응답 메시지의 경과 시간의 변화에 탄력적으로 대응하지 못한다.
도 9b는 불안정한 상태의 시스템 환경에서 모니터링과 감시 프로세스 사이를 왕복하는 20개의 메시지를 사용한 경우, 각 방법들에 의해 측정된 모니터링 주기를 나타낸다. 경과 시간이 0.8과 8.5(밀리초) 사이를 폭넓게 변화하는 점에 주목하면, 안정한 상태의 경우와 비슷한 결과가 나타나지만, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 방법이 다른 두 방법보다 더 좋은 결과를 나타냄을 알 수 있다.
도 9c는 불안정한 상태에서 100개의 메시지를 사용할 때 각 방법에 의해 측정된 모니터링 주기를 나타낸다. 역시 본 발명에 따른 방법이 훨씬 더 탄력적이고 빠르게 그 경과 시간에 대응하는 것을 알 수 있다.
이상, 본 발명자에 의해서 이루어진 발명은 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
즉, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템 및 방법은 유비쿼터스 환경에서 휴대폰, 무선 노트북, PDA, 센서 등의 각종 단말기기에 대해 각종 서비스를 제공하는 인터넷 서비스 제공(Internet Service Provider, ISP), 이동통 신 사업, 은행 및 증권, 대규모 환경의 애플리케이션 개발 등과 같은 분야에서 신뢰성 있는 서비스를 제공하기 위한 시스템에 적용 및 응용될 수 있음은 물론이다. 또한, 시스템 장애나 불안정한 네트워크 환경 하에서 발생하는 고장에 민감한 은행의 인터넷 뱅킹 서비스, 공공 정부 서비스, 전자상거래 시스템의 온라인 결제 서비스 등에서 본 발명에 따른 모니터링 시스템 및 방법을 채택하거나 활용할 가능성이 크다.
상술한 바와 같이, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법에 의하면, 안정된 시스템 상태는 물론 불안정한 상태에서도 훨씬 더 탄력적이고 정확한 모니터링 주기를 예측할 수 있다는 효과가 얻어진다.
또, 본 발명에 따른 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법에 의하면, 복잡한 대규모 유비쿼터스 환경에서 고장 발생에 민감한 시스템들에 대해 매우 효과적으로 고장 모니터링하여 신뢰성 있는 서비스를 제공할 수 있다는 효과도 얻어진다.

Claims (18)

  1. 컴퓨터 시스템의 애플리케이션 내부에서 특정 기능을 구현하는 오브젝트수단,
    상기 오브젝트수단의 상태를 감시하는 감시수단,
    모니터링 주기를 예측하고 상기 감시수단의 감시결과에 따라 상기 오브젝트수단의 유효상태를 판단하여 고장여부를 모니터링하는 모니터링수단,
    상기 오브젝트수단의 고장을 발견하는 고장발견수단을 포함하고,
    상기 모니터링수단은 다음 모니터링 주기를 예측하기 위해 사용될 응답 경과시간 또는 이벤트 경과 시간 값들의 범위인 윈도우 크기를 동적으로 조절하고, 상기 모니터링 주기 내에 상기 오브젝트수단의 유효상태를 알 수 있는 응답이나 이벤트를 지정된 횟수이상 수신하지 못하면 고장으로 판단하는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 시스템.
  2. 제 1항에 있어서,
    상기 모니터링수단은 상기 윈도우 크기, 상기 윈도우 크기에 포함되는 각각의 경과 시간에 대한 가중치, 가장 최근의 경과 시간에 더해지는 값 및 상기 경과 시간을 이용하여 상기 다음 모니터링 주기를 예측하는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 시스템.
  3. 제 2항에 있어서,
    상기 모니터링수단은 조절되는 상기 윈도우 크기가 이전의 모니터링 주기에서 예측되었던 윈도우 크기보다 커지는 경우, 다음 모니터링 주기의 예측시에 상기 경과 시간이 최근의 것일수록 상대적으로 적은 가중치가 연산되게 하고, 윈도우 크기가 작은 경우에 비해 상대적으로 더 많은 수의 경과 시간을 상기 예측을 위한 연산에 사용하는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 시스템.
  4. 제 1항에 있어서,
    상기 다음 모니터링 주기는 식
    eTime + inc
    의 실행에 의해 연산되어 예측되며,
    상기 eTime은 유효확인 요청시간부터 응답수신 시간까지의 경과 시간 또는 이벤트 대기 시작시간부터 이벤트 발생시간까지의 경과 시간이고, inc는 다음 모니터링 주기를 얻기 위해 가장 최근의 경과 시간에 더해지는 값인 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 시스템.
  5. 제 4항에 있어서,
    상기 inc는 식
    Figure 112007047339131-pat00011
    의 실행에 의해 연산되며,
    상기 weight는 윈도우 크기에 포함되는 각각의 경과 시간에 대한 가중치이고, winSize는 윈도우 크기이고, i는 순서를 나타내는 임의의 변수인 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 시스템.
  6. 제 5항에 있어서,
    상기 weight[i]는 식
    Figure 112007047339131-pat00012
    의 실행에 의해 연산되며,
    상기 j는 0부터 i-1번째까지의 weight를 연산하기 위한 임의의 변수인 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 시스템.
  7. 제 6항에 있어서,
    상기 weight[0]은 식
    Figure 112007047339131-pat00013
    의 실행에 의해 연산되는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 시스템.
  8. 제 1항 내지 제 7항 중 어느 한 항에 있어서,
    상기 모니터링수단은 가장 최근의 경과 시간들이 연속으로 증가한 후 감소하거나 또는 연속적으로 감소한 후 증가하는 측정 데이터들의 범위를 상기 윈도우 크기로 지정하는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 시스템.
  9. 컴퓨터 시스템의 애플리케이션 내부에서 특정 기능을 구현하는 오브젝트수단, 상기 오브젝트수단의 상태를 감시하는 감시수단, 모니터링 주기를 예측하고 상기 감시수단의 감시결과에 따라 상기 오브젝트수단의 유효상태를 판단하여 고장여부를 모니터링하는 모니터링수단, 상기 오브젝트수단의 고장을 발견하는 고장발견수단을 포함하는 고장 모니터링 시스템을 포함하는 시스템 고장 모니터링 방법에 있어서,
    상기 모니터링수단이
    상기 오브젝트수단의 유효확인을 요청하는 확인요청 시간을 저장하는 단계,
    상기 감시수단에게 상기 오브젝트수단의 유효확인을 요청하는 단계,
    상기 요청에 따라 상기 감시수단에서 확인된 상기 오브젝트수단의 유효상태 확인 응답을 모니터링 주기 이내에 수신하였는지 확인하는 단계,
    상기 확인 응답을 수신한 경우 응답수신 시간을 저장하는 단계,
    상기 유효확인 요청시간부터 응답수신 시간까지의 경과 시간을 연산하여 저장하는 단계,
    이전의 응답 경과 시간과 비교하여 증감을 검사하는 단계,
    상기 경과 시간을 이용하여 응답 경과 시간 값들의 범위인 윈도우 크기를 동적으로 조절하여 다음 모니터링 주기를 예측하는 단계,
    상기 감시수단으로부터 지정된 횟수이상 응답을 수신하지 못하면 고장으로 판단하여 상기 고장발견수단에게 보고하는 단계를 포함하는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
  10. 컴퓨터 시스템의 애플리케이션 내부에서 특정 기능을 구현하는 오브젝트수단, 상기 오브젝트수단의 상태를 감시하는 감시수단, 모니터링 주기를 예측하고 상기 감시수단의 감시결과에 따라 상기 오브젝트수단의 유효상태를 판단하여 고장여부를 모니터링하는 모니터링수단, 상기 오브젝트수단의 고장을 발견하는 고장발견수단을 포함하는 고장 모니터링 시스템을 포함하는 시스템 고장 모니터링 방법에 있어서,
    상기 모니터링수단이
    이벤트 대기 시작시간을 저장하는 단계,
    이벤트를 대기하는 단계,
    상기 감시수단에서 주기적으로 검사된 상기 오브젝트수단의 유효상태 확인 이벤트를 모니터링 주기 이내에 수신하여 발생시켰는지 확인하는 단계,
    상기 이벤트가 발생된 경우 이벤트 발생시간을 저장하는 단계,
    상기 이벤트 대기 시작시간부터 이벤트 발생시간까지의 경과 시간을 연산하여 저장하는 단계,
    이전의 이벤트 경과 시간과 비교하여 증감을 검사하는 단계,
    상기 경과 시간을 이용하여 이벤트 경과 시간 값들의 범위인 윈도우 크기를 동적으로 조절하여 다음 모니터링 주기를 예측하는 단계,
    상기 감시수단으로부터 지정된 횟수이상 이벤트가 발생되지 않으면 고장으로 판단하여 상기 고장발견수단에게 보고하는 단계를 포함하는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
  11. 제 9항 또는 제 10항에 있어서,
    상기 다음 모니터링 주기를 예측하는 단계는
    상기 윈도우 크기를 지정하는 단계,
    상기 윈도우 크기를 이용하여 상기 윈도우 크기에 포함되는 상기 경과 시간에 대한 가중치를 연산하는 단계,
    상기 가중치를 이용하여 가장 최근의 경과 시간에 더해지는 값을 연산하는 단계,
    상기 더해지는 값과 상기 경과 시간을 이용하여 상기 감시수단으로부터 응답을 수신할 시간을 예측하는 단계를 포함하는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
  12. 삭제
  13. 제 11항에 있어서,
    상기 가중치를 연산하는 단계는
    조절되는 상기 윈도우 크기가 이전의 모니터링 주기에서 예측되었던 윈도우 크기보다 커지는 경우, 상기 경과 시간이 최근의 것일수록 상대적으로 적은 가중치가 연산되게 하고, 윈도우 크기가 작은 경우에 비해 상대적으로 더 많은 수의 경과 시간을 상기 연산에 사용하는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
  14. 제 9항 또는 제 10항에 있어서,
    상기 다음 모니터링 주기는 식
    eTime + inc
    의 실행에 의해 연산되어 예측되며,
    상기 eTime은 유효확인 요청시간부터 응답수신 시간까지의 경과 시간 또는 이벤트 대기 시작시간부터 이벤트 발생시간까지의 경과 시간이고, inc는 다음 모니터링 주기를 얻기 위해 가장 최근의 경과 시간에 더해지는 값인 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
  15. 제 14항에 있어서,
    상기 inc는 식
    Figure 112007047339131-pat00014
    의 실행에 의해 연산되며,
    상기 weight는 윈도우 크기에 포함되는 각각의 경과 시간에 대한 가중치이고, winSize는 윈도우 크기이고, i는 순서를 나타내는 임의의 변수인 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
  16. 제 15항에 있어서,
    상기 weight[i]는 식
    Figure 112007047339131-pat00015
    의 실행에 의해 연산되며,
    상기 j는 0부터 i-1번째까지의 weight를 연산하기 위한 임의의 변수인 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
  17. 제 16항에 있어서,
    상기 weight[0]은 식
    Figure 112007047339131-pat00016
    의 실행에 의해 연산되는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
  18. 제 17항에 있어서,
    상기 윈도우 크기는 가장 최근의 경과 시간들이 연속으로 증가한 후 감소하거나 또는 연속적으로 감소한 후 증가하는 측정 데이터들의 범위로 지정되는 것을 특징으로 하는 동적 윈도우 기반 고장 모니터링 방법.
KR1020050109655A 2005-11-16 2005-11-16 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법 KR100844101B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050109655A KR100844101B1 (ko) 2005-11-16 2005-11-16 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050109655A KR100844101B1 (ko) 2005-11-16 2005-11-16 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법

Publications (2)

Publication Number Publication Date
KR20070052065A KR20070052065A (ko) 2007-05-21
KR100844101B1 true KR100844101B1 (ko) 2008-07-07

Family

ID=38274916

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050109655A KR100844101B1 (ko) 2005-11-16 2005-11-16 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법

Country Status (1)

Country Link
KR (1) KR100844101B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100937098B1 (ko) * 2008-07-28 2010-01-15 임태환 운영시스템의 장애 발생 판단방법

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0998269A (ja) * 1995-09-29 1997-04-08 Ricoh Elemex Corp 画像読取装置
KR19990033133A (ko) * 1997-10-23 1999-05-15 윤종용 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치
KR19990032772A (ko) * 1997-10-21 1999-05-15 윤종용 전자기기의 자기 진단 기능을 가지는 감시장치 및 그 제어방법
JPH11143729A (ja) * 1997-11-07 1999-05-28 Nec Corp フォールトトレラントコンピュータ
KR20000011834A (ko) * 1998-07-20 2000-02-25 보토스 알. 제이 고장-허용오차를계산하는컴퓨터시스템및이를동작시키는방법,고장-관리컴퓨터장치,및고장-허용오차계산장치
KR20010057820A (ko) * 1999-12-23 2001-07-05 구자홍 네트워크 상태 모니터링 방법 및 장치
JP2001290668A (ja) * 2000-04-04 2001-10-19 Koken:Kk フォールトトレラント計算機及びこれを用いた通信システム
JP2002215415A (ja) * 2001-01-15 2002-08-02 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法
KR100455525B1 (ko) * 1999-01-11 2004-11-06 가부시키가이샤 고켄 폴트 톨러런트 계산기 시스템

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0998269A (ja) * 1995-09-29 1997-04-08 Ricoh Elemex Corp 画像読取装置
KR19990032772A (ko) * 1997-10-21 1999-05-15 윤종용 전자기기의 자기 진단 기능을 가지는 감시장치 및 그 제어방법
KR19990033133A (ko) * 1997-10-23 1999-05-15 윤종용 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치
JPH11143729A (ja) * 1997-11-07 1999-05-28 Nec Corp フォールトトレラントコンピュータ
KR20000011834A (ko) * 1998-07-20 2000-02-25 보토스 알. 제이 고장-허용오차를계산하는컴퓨터시스템및이를동작시키는방법,고장-관리컴퓨터장치,및고장-허용오차계산장치
KR100455525B1 (ko) * 1999-01-11 2004-11-06 가부시키가이샤 고켄 폴트 톨러런트 계산기 시스템
KR20010057820A (ko) * 1999-12-23 2001-07-05 구자홍 네트워크 상태 모니터링 방법 및 장치
JP2001290668A (ja) * 2000-04-04 2001-10-19 Koken:Kk フォールトトレラント計算機及びこれを用いた通信システム
JP2002215415A (ja) * 2001-01-15 2002-08-02 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法

Also Published As

Publication number Publication date
KR20070052065A (ko) 2007-05-21

Similar Documents

Publication Publication Date Title
Garg et al. Analysis of preventive maintenance in transactions based software systems
US20170068581A1 (en) System and method for relationship based root cause recommendation
US7100079B2 (en) Method and apparatus for using pattern-recognition to trigger software rejuvenation
US20100241905A1 (en) System and Method for Detecting Security Intrusions and Soft Faults Using Performance Signatures
US20080288812A1 (en) Cluster system and an error recovery method thereof
Joshi et al. Automatic model-driven recovery in distributed systems
Chen et al. Hybrid context inconsistency resolution for context-aware services
WO2017000536A1 (zh) 一种bfd检测方法与装置
Jagadeesan et al. When failure is (not) an option: Reliability models for microservices architectures
CN101334744B (zh) 一种检测多处理器系统故障的方法、系统和装置
US7657793B2 (en) Accelerating software rejuvenation by communicating rejuvenation events
CN108964947B (zh) 后台服务质量检测方法和装置、计算机设备
CN101013973A (zh) 网元状态监测方法和网络管理设备
KR100844101B1 (ko) 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법
CN103731315A (zh) 一种服务器故障检测方法
US8423833B2 (en) System and method for multivariate quality-of-service aware dynamic software rejuvenation
US7607051B2 (en) Device and method for program correction by kernel-level hardware monitoring and correlating hardware trouble to a user program correction
Ma et al. On the quality of service of crash-recovery failure detectors
Rinsaka et al. A faster estimation algorithm for periodic preventive rejuvenation schedule maximizing system availability
CN102932196B (zh) 一种主机系统状态的检测方法和装置
Liang et al. A failure detection method of remote disaster recovery and backup system
CN114610560A (zh) 系统异常监控方法、装置和存储介质
Lee et al. Dynamic window-based adaptive fault monitoring for ubiquitous computing systems
Katsaros et al. Optimal object state transfer-recovery policies for fault tolerant distributed systems
CN115129508B (zh) 一种内存可纠正错误的带外处理方法、装置、设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120425

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130409

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150312

Year of fee payment: 7

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20150709

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160621

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180712

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 12