KR101033447B1 - 시스템 장애를 정밀도 좋게 검출하는 기술 - Google Patents

시스템 장애를 정밀도 좋게 검출하는 기술 Download PDF

Info

Publication number
KR101033447B1
KR101033447B1 KR1020097011538A KR20097011538A KR101033447B1 KR 101033447 B1 KR101033447 B1 KR 101033447B1 KR 1020097011538 A KR1020097011538 A KR 1020097011538A KR 20097011538 A KR20097011538 A KR 20097011538A KR 101033447 B1 KR101033447 B1 KR 101033447B1
Authority
KR
South Korea
Prior art keywords
state
server
processing
state table
received
Prior art date
Application number
KR1020097011538A
Other languages
English (en)
Other versions
KR20090102747A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20090102747A publication Critical patent/KR20090102747A/ko
Application granted granted Critical
Publication of KR101033447B1 publication Critical patent/KR101033447B1/ko

Links

Images

Classifications

    • 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
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Machine Translation (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 시스템에 발생한 장애를 정밀도 좋게 검출하는 것을 과제로 한다. 본 발명은 디스패처(dispatcher) 장치와, 복수의 제1 계층 서버와, 적어도 하나의 제2 계층 서버를 구비하는 시스템을 제공한다. 각 디스패처 장치는 외부의 단말 장치로부터 받은 처리 요구를 하나의 제1 계층 서버에 전송하고, 각각의 제2 계층 서버의 가동 상태를, 전송된 이 처리 요구에 대응하는 처리 응답에 포함시켜 수신하며, 수신한 가동 상태에 기초하여 제2 계층 서버마다의 가동 상태를 나타내는 상태 테이블을 생성하고, 상태 테이블을 각 제1 계층 서버에 송신한다. 또한, 어느 하나의 제1 계층 서버로부터 수신한 상태 테이블에 의해 이미 기억하고 있는 상태 테이블을 갱신한다.

Description

시스템 장애를 정밀도 좋게 검출하는 기술{TECHNIQUE FOR ACCURATELY DETECTING SYSTEM FAILURE}
본 발명은 시스템 장애를 정밀도 좋게 검출하는 기술에 관한 것이다. 특히, 본 발명은 복수의 서버 장치가 상호 통신하는 시스템에 있어서, 장애를 정밀도 좋게 검출하는 기술에 관한 것이다.
최근, 대규모 웹사이트는 단일의 서버 장치가 아니라 복수의 서버 장치를 구비한 시스템에 의해 실현된다. 이러한 시스템은 다층 서버 시스템이라고 불리며, 예컨대, HTTP 프로토콜에 관한 제어를 행하는 서블릿 서버, 호출된 애플리케이션을 동작시키는 애플리케이션 서버, 데이터베이스의 트랜잭션을 행하는 데이터베이스 서버 등을 구비한다. 이러한 다층 서버 시스템에 있어서 발생한 장애를 검출하기 위해서, 종래, 이들 서버군과는 별개로 마련된 감시용 서버가 이용되고 있다.
감시용 서버는 시스템 내의 각 서버로부터 그 상태를 정기적으로 수집한다. 예컨대, 공급 전압, CPU의 온도, 및 CPU의 비지율 등의 하드웨어의 상태가 수집되고, 그 상태가 통상과는 다른 경우에, 상기 시스템에 이상이 발생했다고 판단된다. 단, 이러한 감시용 서버만으로는 소프트웨어에 발생한 이상을 판단할 수 없는 경우가 있다. 이 때문에, 각 서버에 있어서는 상기 서버로부터 다른 서버에 요구한 트 랜잭션의 소요 시간을 계측하고, 그 시간의 길이가 소정의 범위 내인지의 여부를 판단함으로써, 소프트웨어 유래의 장애를 검출 가능하게 하고 있다.
장애 검출에 관한 참고 기술로서는 이하의 특허 문헌 1∼2를 참조해 주길 바란다.
특허 문헌 1: 일본 특허 공개 제2001-282759호 공보
특허 문헌 2: 일본 특허 공개 제2003-196178호 공보
상술한 다층 서버 시스템에 있어서는 제1 서버가 제2 서버에 처리를 요구하고, 요구를 받은 제2 서버가 제3 서버에 또한 처리를 요구하는 경우가 있다. 이러한 경우, 제1 서버에 반송되는 처리 응답이 지연되어도, 제2 서버 및 제3 서버 중 어느 것에 장애가 발생하고 있는지는 제1 서버는 모른다. 이러한 경우에 제2 서버에 장애가 발생한 것으로 간주하여 처리 요구의 송신 경로 등을 변경해 버리면, 부주의하게 처리 효율을 저하시킬 우려가 있다.
또한, 서버 상에서 동작하는 프로그램이 Java 언어(등록 상표)로 기술되어 있는 경우에는 Java의 미들웨어가 가베지 수집(GC)을 정기적으로 행하는 경우가 있다. GC란, 프로그램이 확보하였으나 불필요해진 기억 영역을, 그 프로그램의 동작과는 독립적으로, 예컨대 정기적으로 해방하는 처리이다. 이 경우에는 서버에 있어서의 처리가 일시적으로는 지연되지만, GC가 종료되면 즉시 원래 상태로 되돌아간다. 이러한 일시적인 상태를 가지고 서버에 장애가 발생했다고 판단하면, 시스템을 효율적으로 활용하는 관점에서 부적절하다.
그래서 본 발명은 상기 과제를 해결할 수 있는 시스템, 방법 및 프로그램을 제공하는 것을 목적으로 한다. 이 목적은 특허 청구의 범위에서의 독립항에 기재된 특징의 조합에 의해 달성된다. 또한 종속항은 본 발명의 한층 더 유리한 구체예를 규정한다.
상기 과제를 해결하기 위해서, 본 발명의 일 측면에 있어서는 외부의 단말 장치로부터 요구된 처리를 분배하는 복수의 디스패처(dispatcher) 장치와, 분배된 상기 처리를 행하는 복수의 제1 계층 서버와, 제1 계층 서버로부터 받은 요구에 따라서 상기 처리의 일부를 행하는 적어도 하나의 제2 계층 서버를 구비하는 시스템으로서, 각각의 디스패처 장치는 각각의 제2 계층 서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위한 기억 장치와, 요구된 처리를 분배하기 위해, 외부의 단말 장치로부터 받은 처리 요구를 복수의 제1 계층 서버 중에서 선택한 하나의 제1 계층 서버에 전송하는 전송부와, 각각의 제2 계층 서버의 가동 상태를, 전송된 처리 요구에 대응하는 처리 응답에 포함시켜 수신하고, 수신한 가동 상태에 기초하여 제2 계층 서버마다의 가동 상태를 평가하며, 제2 계층 서버마다의 가동 상태를 나타내는 상태 테이블을 생성하여 기억 장치에 기억하는 테이블 생성부와, 상태 테이블의 생성에 따라, 생성한 상태 테이블을 기억 장치로부터 읽어내어 각각의 제1 계층 서버에 송신하는 테이블 송신부와, 어느 하나의 제1 계층 서버로부터의 상태 테이블의 수신에 따라, 수신한 상태 테이블에 의해 기억 장치에 기억한 상태 테이블을 갱신하는 제1 테이블 갱신부를 갖고, 각각의 제1 계층 서버는 각각의 제2 계층 서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위한 기억 장치와, 디스패처 장치의 전송부로부터 처리 요구의 전송을 받는 것에 따라, 요구된 처리의 일부를 제2 계층 서버에 처리시키기 위해, 제2 계층 서버에 처리 요구를 송신하는 요구 송신부와, 제2 계층 서버에 송신한 처리 요구에 대한 처리 응답의 상태를 상기 제2 계층 서버의 가동 상태로서, 디스패처 장치의 전송부로부터 전송을 받은 처리 요구에 대한 처리 응답에 포함시켜 상기 디스패처 장치에 회신하는 상태 회신부와, 디스패처 장치의 테이블 송신부로부터 상태 테이블을 수신하는 것에 따라, 수신한 상기 상태 테이블에 기초하여 기억 장치에 이미 저장된 상태 테이블을 갱신하는 제2 테이블 갱신부와, 상태 테이블의 갱신에 따라, 갱신한 상태 테이블을 각각의 디스패처 장치에 회신하는 테이블 회신부를 갖는 시스템을 제공한다. 또한, 상기 시스템에 의해 각 서버의 상태를 관리하는 방법, 및 상기 시스템으로서 복수의 정보 처리 장치를 기능시키는 프로그램을 제공한다.
또한, 상기한 발명의 개요는 본 발명의 필요한 특징 모두를 열거한 것은 아니며, 이들 특징군의 서브컴비네이션도 또한 발명이 될 수 있다.
도 1은 정보 시스템(10)의 구성의 일례를 도시한다.
도 2는 본 실시형태에 따른 정보 시스템(10)의 전체 구성을 도시한다.
도 3은 디스패처 장치(100-1)의 기능 구성을 도시한다.
도 4는 서블릿 서버(110-1)의 기능 구성을 도시한다.
도 5는 기억 장치(300) 또는 기억 장치(400)가 기억하는 상태 테이블의 데이터 구조의 일례를 도시한다.
도 6은 디스패처 장치(100-1)가 처리 요구 및 처리 응답을 송수신하는 처리의 구체예를 도시한다.
도 7은 S640에 있어서의 처리의 상세한 예를 도시한다.
도 8은 서블릿 서버(110-1)가 처리 요구 및 처리 응답을 송수신하는 처리의 구체예를 도시한다.
도 9는 S860에 있어서 순차적으로 갱신되는 가동 상태의 상태 천이도이다.
도 10은 본 실시형태에 따른 정보 시스템(10)에 의해 가동 상태가 순차적으로 갱신되는 과정을 도시한다.
도 11은 디스패처 장치(100-1) 또는 서블릿 서버(110-1)로서 기능하는 정보 처리 장치(500)의 하드웨어 구성의 일례를 도시한다.
<부호의 설명>
10: 정보 시스템 100: 디스패처 장치
110: 서블릿 서버 120: APP 서버
130: DB 서버 135: 데이터베이스
140: 시스템 감시 장치 150: 정보 공유 장치
300: 기억 장치 310: 전송부
320: 테이블 생성부 330: 테이블 송신부
340: 제1 테이블 갱신부 350: 정지 판단부
400: 기억 장치 410: 요구 송신부
420: 상태 회신부 430: 제2 테이블 갱신부
440: 테이블 회신부 500: 정보 처리 장치
이하, 발명의 실시형태를 통해 본 발명을 설명하지만, 이하의 실시형태는 특허 청구의 범위에 관한 발명을 한정하는 것은 아니며, 또한 실시형태 내에서 설명되어 있는 특징의 조합 모두가 발명의 해결 수단에 반드시 필수적인 것은 아니다.
도 1은 정보 시스템(10)의 구성의 일례를 도시한다. 정보 시스템(10)은 디스패처 장치(100-1∼2)와, 서블릿 서버(110-1∼4)와, APP 서버(120-1∼3)와, DB 서버(130)와, 데이터베이스(135)와, 시스템 감시 장치(140)와, 정보 공유 장치(150)를 구비한다. 디스패처 장치(100-1∼2)의 각각은 서블릿 서버(110-1∼4)에 직접 접속되어 있다. 그리고, 디스패처 장치(100-1∼2)는 외부의 단말 장치로부터 요구된 처리를 서블릿 서버(110-1∼4)에 분배한다.
예컨대, 디스패처 장치(100-1∼2)의 각각은 순차적으로 수취하는 처리 요구를 라운드로빈 방식에 의해 서블릿 서버(110-1∼4)의 각각에 전송해도 좋다. 즉, 디스패처 장치(100-1)는 첫번째로 수취한 처리 요구를 서블릿 서버(110-1)에 전송하고, 두번째로 수취한 처리 요구를 서블릿 서버(110-2)에 전송하며, 세번째로 수취한 처리 요구를 서블릿 서버(110-3)에 전송하고, 네번째로 수취한 처리 요구를 서블릿 서버(110-4)에 전송한다. 다섯번째부터는 원래대로 되돌아가, 처리 요구는 서블릿 서버(110-1)에 전송된다.
서블릿 서버(110-1∼4)의 각각은 본 발명에 따른 제1 계층 서버의 일례이며, 구체적으로는 예컨대 HTTP 서버 등이다. 그리고, 서블릿 서버(110-1∼4)의 각각은 디스패처 장치(100-1∼2)로부터 분배된 처리 요구에 따라서 처리를 행한다. 처리 과정에서, 소정의 애플리케이션 프로그램의 호출이나, 데이터베이스에 대한 액세스가 필요한 경우가 있다. 그러한 경우에는 서블릿 서버(110-1∼4)의 각각은 APP(애플리케이션) 서버(120-1∼3) 또는 DB 서버(130)에 대하여 또한 처리 요구를 송신하여, 외부의 단말 장치로부터 요구된 처리의 적어도 일부를 처리시킨다. APP 서버(120-1∼3)의 각각은 본 발명에 따른 제2 계층 서버의 일례이며, 외부의 단말 장치가 요구한 처리의 일부를, 서블릿 서버(110-1∼4)로부터 받은 요구에 따라서 처리한다. DB 서버(130)는 처리 과정에서 데이터베이스(135)로부터 데이터를 읽어내거나, 또는 데이터베이스(135)를 갱신해도 좋다. 또, DB 서버(130)도 또한 제2 계층 서버의 일례이다. 즉 제2 계층 서버에는 서블릿 서버로부터 직접 요구를 받는 것 외에, 다른 서버/ 장치[여기서는 APP 서버(100-1∼3)]를 통해 간접적으로 요구를 받고, 그 요구에 따라서 요구된 처리의 일부를 처리하는 것도 포함된다.
시스템 감시 장치(140)는 디스패처 장치(100-1∼2), 서블릿 서버(110-1∼4), APP 서버(120-1∼3) 및 DB 서버(130)의 각각에 있어서 동작하고 있는 에이전트 소프트웨어 등으로부터, 이들 각각의 장치·서버의 상태를 나타내는 데이터를 수신한다. 예컨대, 각각의 장치·서버에 있어서의 CPU의 이용률, 하드디스크 드라이브의 액세스 빈도 등의 하드웨어의 가동 상태나, CPU나 케이스의 온도 등의 물리 상태를 나타내는 데이터가 수신된다. 그리고, 정보 공유 장치(150)는 시스템 감시 장치(140)가 수신한 이들 각각의 데이터에 기초하여, 정보 시스템(10)이 갖는 어느 하나의 장치·서버에 이상이 발생했는지의 여부를 판단하고, 그 판단 결과를 외부 에 통지하거나, 이상이 발생한 장치·서버를 정지시키는 등의 처리를 행한다.
도 1에 도시하는 정보 시스템(10)에 따르면, 정보 시스템(10) 중의 각 장치·서버의 상태를 감시하여, 정보 시스템(10)에 발생한 이상을 검출할 수 있다고도 생각된다. 그러나, 이러한 정보 시스템(10)의 구성에 따라서는 소프트웨어가 주된 원인으로 발생한 이상은 적절하게 검출할 수 없는 경우가 있다. 예컨대, 소프트웨어의 설계 등의 불량이 원인인 데드록(dead lock)은 소프트웨어 그 자체는 설계대로 정상 동작하고 있기 때문에, CPU의 상태 등에 따라서는 그 발생을 적절하게 검출할 수 없다. 또한, 본래 필요한 서버·장치에 더하여 시스템 감시 장치(140) 및 정보 공유 장치(150)가 필요하기 때문에, 다른 서버·장치가 정상이어도 시스템 감시 장치(140) 및 정보 공유 장치(150) 자체의 이상이 원인으로 되어 잘못 이상을 검출해 버리는 경우가 있다.
이에 비하여, 이후에서 설명하는 정보 시스템(10)에 따르면, 이상 검출을 위한 기구를, 처리 요구나 처리 응답의 송수신의 기구에 편입시킴으로써, 정보 시스템(10)에 있어서의 본래의 동작에 악영향을 주지 않고서, 여러 종류의 이상을 검출할 수 있다.
이후, 구체적으로 설명한다.
도 2는 본 실시형태에 따른 정보 시스템(10)의 전체 구성을 도시한다. 정보 시스템(10)은 도 1과 마찬가지로, 디스패처 장치(100-1∼2)와, 서블릿 서버(110-1∼4)와, APP 서버(120-1∼3)와, DB 서버(130)와, 데이터베이스(135)를 구비한다. 단, 도 1에 도시한 정보 시스템(10)과는 달리, 도 2의 정보 시스템(10)은 시스템 감시 장치(140) 및 정보 공유 장치(150)를 구비하지 않아도 좋다. 디스패처 장치(100-1∼2), 서블릿 서버(110-1∼4), APP 서버(120-1∼3), DB 서버(130) 및 데이터베이스(135)의 각각에 있어서의 처리의 개요는 도 1에 도시한 것과 동일하다. 단, 각각의 서버·장치에 있어서는 처리 요구 및 처리 응답의 송수신에 더하여, 이상 검출을 위한 처리를 행한다. 또한, 이상 검출에 이용하기 위해서, 각각의 서버·장치는 처리 요구를 다른 서버·장치에 송신하고 나서, 그 처리 응답을 수신하기까지의 소요 시간을 계측하는 기구를 구비하는 것으로 한다.
도 3은 디스패처 장치(100-1)의 기능 구성을 도시한다. 디스패처 장치(100-1)는 기억 장치(300)와, 전송부(310)와, 테이블 생성부(320)와, 테이블 송신부(330)와, 제1 테이블 갱신부(340)와, 정지 판단부(350)를 갖는다. 우선, 이들 각 부재와 하드웨어 자원과의 관계에 대해서 간단히 서술한다. 기억 장치(300)는 다른 각 부재에 필요한 정보를 기억하는 것이며, 예컨대 후술하는 RAM(1020) 또는 하드디스크 드라이브(1040)에 의해 실현된다. 전송부(310) 및 테이블 송신부(330)는 정보의 송수신 등을 행하는 것이며, 후술하는 CPU(1000) 및 통신 인터페이스(1030)를, 인스톨된 프로그램에 기초하여 동작시킴으로써 실현된다. 테이블 생성부(320), 제1 테이블 갱신부(340) 및 정지 판단부(350)는 정보의 연산·가공 및 조건 판단을 행하는 것이며, 후술하는 CPU(1000)를, 인스톨된 프로그램에 기초하여 동작시킴으로써 실현된다.
기억 장치(300)는 각 장치·서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위해서 마련되어 있다. 상태 테이블이란, 구체적으로는 서블릿 서버(110-1 ∼4), APP 서버(120-1∼3) 및 DB 서버(130)의 각각의 가동 상태를 나타내는 것을 말한다. 그리고, 가동 상태란, 예컨대, 정상 상태, 동작하고 있으나 처리에 임계값 이상의 시간을 필요로 하는 고부하 상태, 동작하고 있지 않는 이상 상태, 고부하 상태의 의심이 있는 고부하 의심 상태, 및 이상 상태의 의심이 있는 이상 의심 상태 중 어느 하나이다.
전송부(310)는 요구된 처리를 분배하기 위해서, 외부의 단말 장치로부터 받은 처리 요구를, 복수의 서블릿 서버(110-1∼4) 중에서 선택한 하나의 서블릿 서버(110)에 전송한다. 전술한 바와 같이, 서블릿 서버(110)의 선택은 라운드로빈 방식으로 행해져도 좋다. 테이블 생성부(320)는 각각의 APP 서버(120-1∼3) 및 DB 서버(130)의 가동 상태를, 전송된 처리 요구에 대응하는 처리 응답에 포함시켜 수신한다.
여기서 처리 응답에 포함시켜 수신하는 가동 상태란, 바람직하게는 그 처리 요구에 따라서 서블릿 서버(110-1∼4)가 APP 서버(120-1∼3)에 요구한 처리의 소요 시간을 나타내는 정보이다. 즉, 전송부(310)가 어떤 처리 요구 A를 서블릿 서버(110-1)에 전송하고, 그것을 수신한 서블릿 서버(110-1)가 그 요구 A에 따라서 처리 요구 B를 APP 서버(120-1)에 송신한 경우, 그 처리 요구 B에 따른 처리의 소요 시간이, 처리 요구 A에 대한 처리 응답 A에 포함시켜 수신된다.
각 가동 상태의 구체예로서, 예컨대, 이상 상태는 소요 시간이 5초를 초과한 것을 나타내고, 고부하 상태는 소요 시간이 2초를 초과하고 5초 이하인 것을 나타내며, 정상 상태는 소요 시간이 2초 이하인 것을 나타낸다. 테이블 생성부(320)가 수신하는 시점에서는 가동 상태는 이러한 소요 시간을 나타내는 수치 그 자체여도 좋고, 이미 그 수치에 기초하여 판단된 각 상태를 나타내는 것이어도 좋다. 또한, 가동 상태는 소요 시간 외에, 각 서버나 장치에 있어서의 처리의 상태를 나타내는 그 외의 지표값을 나타내는 것이어도 좋다.
지표값의 예로서는 처리의 작업 처리량, 레이턴시 등을 들 수 있다. 또한, 테이블 생성부(320)는 각 처리에 대한 소요 시간을 가동 상태로서 수신하는 것이 아니라, 일정 기간에 응답을 수신한 복수 처리에 대한 소요 시간의 평균을 가동 상태로서 수신해도 좋다. 그리고, 테이블 생성부(320)는 수신한 가동 상태에 기초하여 APP 서버(120-1∼3) 및 DB 서버(130)의 각각에 대한 가동 상태를 평가하고, 평가한 각 가동 상태를 나타내는 상태 테이블을 생성하여 기억 장치(300)에 기억한다.
가동 상태의 평가란, 어떤 APP 서버(120)에 대해서 수신한 가동 상태 그 자체를 그 APP 서버(120)의 가동 상태로서 취급하는 처리여도 좋고, 동일한 APP 서버(120)에 대해서 다른 복수의 가동 상태를 수신한 경우에, 이들 복수의 가동 상태에 기초하여 단일의 가동 상태를 정하는 처리여도 좋다. 또한, 테이블 생성부(320)는 서블릿 서버(110-1∼4)의 각각에 대해서 처리 요구를 송신하고 나서 그 처리 요구에 대한 처리 응답을 수신하기까지의 소요 시간에 기초하여, 서블릿 서버(110)마다의 가동 상태를 평가하고, 상태 테이블에 포함시켜 생성해도 좋다.
테이블 송신부(330)는 상태 테이블의 생성에 따라, 생성한 그 상태 테이블을 기억 장치(300)로부터 읽어내어, 각각의 서블릿 서버(110-1∼4)에 송신한다. 제1 테이블 갱신부(340)는 어느 하나의 서블릿 서버(110-1∼4)로부터의 상태 테이블의 수신에 따라, 수신한 이 상태 테이블에 의해, 기억 장치(300)에 이미 기억하고 있는 상태 테이블을 갱신한다. 정지 판단부(350)는 기억 장치(300)에 기억한 상태 테이블에 있어서, 어떠한 서블릿 서버(110)도, 가동 상태가 정상 상태가 아닌 것을 조건으로 하여, 테이블 생성부(320)에 의한 가동 상태의 수신 및 테이블 송신부(330)에 의한 상태 테이블의 송신을 정지시킨다.
또한, 디스패처 장치(100-2)가 갖는 각 기능에 대해서는 디스패처 장치(100-1)와 거의 동일하기 때문에 설명을 생략한다.
도 4는 서블릿 서버(110-1)의 기능 구성을 도시한다. 서블릿 서버(110-1)는 기억 장치(400)와, 요구 송신부(410)와, 상태 회신부(420)와, 제2 테이블 갱신부(430)와, 테이블 회신부(440)를 갖는다. 디스패처 장치(100-1)의 경우와 마찬가지로 우선, 하드웨어 자원과의 관련에 대해서 서술한다. 기억 장치(400)는 다른 각 부재에 필요한 정보를 기억하는 것이며, 예컨대 후술하는 RAM(1020) 또는 하드디스크 드라이브(1040)에 의해 실현된다. 요구 송신부(410) 및 테이블 회신부(440)는 처리 응답 등의 송수신을 행하는 것이며, 후술하는 CPU(1000) 및 통신 인터페이스(1030)를, 인스톨된 프로그램에 기초하여 동작시킴으로써 실현된다. 상태 회신부(420) 및 제2 테이블 갱신부(430)는 정보의 연산·가공 및 조건 판단을 행하는 것이며, 후술하는 CPU(1000)를, 인스톨된 프로그램에 의해 동작시킴으로써 실현된다.
기억 장치(400)는 서블릿 서버(110-1∼4), APP 서버(120-1∼3) 및 DB 서 버(130)의 각각의 가동 상태를 나타내는 상태 테이블을 저장하기 위해서 마련되어 있다. 요구 송신부(410)는 디스패처 장치[예컨대 디스패처 장치(100-1)]의 기억 장치(300)로부터 처리 요구의 전송을 받는 것에 따라, 요구된 처리의 일부를 APP 서버(120-1∼3) 또는 DB 서버(130)[이후, APP 서버(120-1) 등이라고 부름]에 처리시키기 위해, APP 서버(120-1) 등에 처리 요구를 송신한다. 상태 회신부(420)는 요구 송신부(410)가 APP 서버(120-1) 등에 송신한 처리 요구에 대한 처리 응답의 상태를, 그 APP 서버(120-1)의 가동 상태로서, 디스패처 장치(100-1)의 기억 장치(300)로부터 전송을 받은 처리 요구에 대한 처리 응답에 포함시켜 그 디스패처 장치(100-1)에 회신한다.
여기서, 처리 응답의 상태란, 예컨대, 처리 요구의 송신으로부터 처리 응답의 수신까지의 소요 시간을 말한다. 즉, 처리의 일례로서, 요구 송신부(410)는 처리 요구를 APP 서버(120-1)에 송신했을 때에 타이머를 리셋하고, 그 처리 요구에 대한 처리 응답을 수신했을 때에 그 타이머의 값을 참조하여, 처리의 소요 시간을 계측한다. 그리고 그 소요 시간이, 그 처리 응답의 상태가 된다.
제2 테이블 갱신부(430)는 디스패처 장치[예컨대 디스패처 장치(100-1)]의 테이블 송신부(330)로부터 상태 테이블을 수신하는 것에 따라, 수신한 그 상태 테이블에 기초하여, 기억 장치(400)에 이미 저장된 상태 테이블을 갱신한다. 제2 테이블 갱신부(430)는 기억 장치(400)에 어떠한 것도 저장되어 있지 않은 경우에는 수신한 그 상태 테이블을 기억 장치(400)에 저장해도 좋다. 테이블 회신부(440)는 상태 테이블의 갱신에 따라, 갱신한 그 상태 테이블을 각각의 디스패처 장치에 회 신한다. 회신처는 제2 테이블 갱신부(430)에 대한 상태 테이블의 송신원에는 한정되지 않고, 서블릿 서버(110-1)에 직접 접속하는 모든 디스패처 장치(100)의 각각이다. 또한, 회신하는 상태 테이블은 서블릿 서버(110-1∼4)로부터 디스패처 장치(100-1∼2)에 대한 처리 응답의 메시지에 포함시켜 송신되어도 좋다.
이상, 도 3 및 도 4를 참조하여 설명한 바와 같이, 정보 시스템(10)에 있어서는 디스패처 장치(100) 및 서블릿 서버(110)가 상태 테이블을 상호 송신하여 그 내용을 서로 반영한다. 이에 따라, 디스패처 장치(100-1∼2) 및 서블릿 서버(110-1∼4) 사이에서 각 서버·장치의 가동 상태를 적절하게 공유시킬 수 있다. 각각의 서버·장치는 수신한 복수의 상태 테이블에 기초하여, 이미 기억하고 있는 상태 테이블을 갱신함으로써, 정상 상태이지만 어떤 처리에만 우연히 처리 시간을 필요로 한 것과 같은 경우라도, 상태를 잘못 판단하는 것을 방지할 수 있다.
도 5는 기억 장치(300) 또는 기억 장치(400)가 기억하는 상태 테이블의 데이터 구조의 일례를 도시한다. 기억 장치(300) 및 기억 장치(400)의 각각은 상태 테이블로서, 서버 ID에 대응시켜, 그 서버 ID에 의해 식별되는 서버·장치의 가동 상태를 기억하고 있다. 또한, 기억 장치(300) 및 기억 장치(400)의 각각은 상태 테이블에 대응시켜, 그 상태 테이블의 개정 시기를 나타내는 버전 ID를 더 기억한다. 또한, 기억 장치(300) 및 기억 장치(400)는 각각 디스패처 장치(100) 및 서블릿 서버(110)에 있어서 독립적으로 관리된다.
구체예로서, 기억 장치(300)는 서블릿 서버(110-1)라고 하는 서버 ID에, 그 서버의 가동 상태로서 정상 상태를 대응시켜 기억한다. 한편, 기억 장치(300)는 APP 서버(120-1)라고 하는 서버 ID에, 그 서버의 가동 상태로서 고부하 의심 상태를 대응시켜 기억한다. 또한, 기억 장치(300)는 DB 서버(130)라고 하는 서버 ID에, 그 서버의 가동 상태로서 정상 상태를 대응시켜 기억한다. 버전 ID는 개정 시기나 순서를 식별 가능하게 하는 것이며, 이에 따라 상태 테이블 갱신의 가부를 판단할 수 있다. 구체적으로는 이하와 같다.
기억 장치(300)에 있어서의 버전 ID에 관한 처리로서, 테이블 생성부(320)는 새롭게 상태 테이블을 생성할 때마다, 그 상태 테이블에 대응시켜, 이전 회에 생성한 상태 테이블보다도 다음 개정에 의해 생성된 것을 나타내는 버전 ID를 생성하여 기억 장치(300)에 기억한다. 예컨대 버전 ID가 정수값으로서 관리되는 경우, 테이블 생성부(320)는 새롭게 상태 테이블을 생성할 때마다, 이미 기억하고 있는 버전 ID를 인크리먼트하여 기억 장치(300)에 기억한다. 상태 테이블을 생성하는 주기는 예컨대 수분 간격이나 수초 간격 등, 디스패처 장치(100-1∼2)에 공통적으로 정해져 있다. 따라서, 생성되는 상태 테이블의 ID는 대체적으로 동기하고 있으나, 디스패처 장치(100-1∼2) 사이에서 동기를 유지하기 위한 처리를 행하고 있지 않기 때문에, 완전히 동기하고 있다고는 할 수 없다.
또한, 테이블 송신부(330)는 테이블 생성부(320)에 의해 생성되어 기억 장치(300)에 기억된 상태 테이블을, 버전 ID에 대응시켜 기억 장치(300)로부터 읽어내어, 각각의 서블릿 서버(110-1∼4)에 송신한다. 기억 장치(400)에 있어서의 버전 ID에 관한 처리로서, 제2 테이블 갱신부(430)는 상태 테이블에 대응시켜 수신한 버전 ID가, 기억 장치(400)에 저장된 버전 ID와 비교하여 같은 시기 또는 다음 시기 의 개정을 나타내는 것을 조건으로 하여, 수신한 그 상태 테이블에 기초하여, 기억 장치(400)에 저장된 상태 테이블을 갱신한다. 그리고 그 경우에는 제2 테이블 갱신부(430)는 수신한 그 버전 ID를 갱신 후의 상태 테이블에 대응시켜 기억 장치(400)에 저장한다.
또한, 테이블 회신부(440)는 상태 테이블의 갱신에 따라, 갱신한 그 상태 테이블을, 갱신에 이용한 상태 테이블에 대응하는 버전 ID에 대응시켜 각각의 디스패처 장치(100)에 회신한다. 이 회신을 받아 제1 테이블 갱신부(340)는 상태 테이블에 대응시켜 수신한 버전 ID가, 기억 장치(300)에 기억한 버전 ID와 비교하여 같은 시기 또는 다음 시기의 개정을 나타내는 것을 조건으로 하여, 수신한 이 상태 테이블에 의해, 기억 장치(300)에 기억한 상태 테이블을 갱신한다.
이상과 같이, 상태 테이블이 버전 ID에 대응시켜 관리됨으로써, 통신 트래픽의 집중 등으로 일부의 상태 테이블이 지연되어 도착한 경우라도, 최신의 상태 테이블만을 선택해서 참조할 수 있다.
도 6은 디스패처 장치(100-1)가 처리 요구 및 처리 응답을 송수신하는 처리의 구체예를 도시한다. 디스패처 장치(100-1)는 예컨대 정기적으로, 또는 어떠한 요구·응답을 수신할 때마다, 이하의 처리를 행한다. 디스패처 장치(100-1)는 외부의 단말 장치로부터 처리 요구를 수신하면(S600: YES), 그 처리 요구를, 복수의 서블릿 서버(110-1∼4) 중에서 선택한 하나의 서블릿 서버(110)에 전송한다(S610). 전송부(310)는 전송한 처리 요구에 대한 처리 응답을 수신하면(S620: YES), 그 처리 응답을 외부의 단말 장치에 대해서 회신한다(S630).
다음으로, 테이블 생성부(320)는 이 처리 응답의 메시지에 기초하여 상태 테이블을 생성한다(S640). 구체적으로는 테이블 생성부(320)는 이 처리 응답의 메시지 중에서, 각각의 APP 서버(120-1∼3) 및 DB 서버(130)의 가동 상태를 취득하고, 취득한 이 가동 상태에 기초하여, APP 서버(120-1∼3) 및 DB 서버(130)에 대한 서버·장치마다의 가동 상태를 평가한다. 또한, 테이블 생성부(320)는 처리 요구를 전송하고 나서 이 처리 응답을 수신하기까지의 소요 시간에 기초하여, 서블릿 서버(110-1∼4)의 가동 상태를 평가한다. 평가된 가동 상태는 상태 테이블에 포함시켜 생성된다. 새롭게 생성한 상태 테이블은 이미 기억 장치(300)에 기억하고 있는 상태 테이블을 대신하여 기억 장치(300)에 기억된다. 또한, 버전 ID는 인크리먼트된다. 또한, 가동 상태의 평가는 과거의 미리 정해진 기간 내에 수신한 복수의 처리 응답에 포함되는 가동 상태에 기초하는 것이며, 동일한 서버·장치에 대해서 복수의 가동 상태에 기초하여 평가가 행해져도 좋다. 상세한 것은 후술한다. 또한, 테이블 생성부(320)는 새롭게 생성한 상태 테이블과, 이미 기억하고 있는 상태 테이블을 비교하여 동일한 경우에는 새롭게 생성한 상태 테이블에 의해 기억 장치(300)를 갱신하지 않아도 좋다. 이 경우에는 이후에 설명하는 테이블 송신부(330)는 S660에 있어서 상태 테이블을 송신하지 않아도 좋다.
다음으로, 정지 판단부(350)는 상태 테이블의 송수신을 정지해야 하는 조건이 성립했는지의 여부를 판단한다(S650). 정지해야 하는 조건이란, 예컨대, 서블릿 서버(110-1∼4)의 어떠한 가동 상태도 정상 상태가 아닌 것을 말한다. 이러한 경우에는 디스패처 장치(100-1∼2) 및 서블릿 서버(110-1∼4) 사이에서 상태 테이블의 상호 송신을 원활하게 행할 수 없게 되기 때문이다. 정지 조건이 성립하고 있지 않으면(S650: NO), 테이블 송신부(330)는 생성된 상태 테이블을 기억 장치(300)로부터 읽어내어, 각각의 서블릿 서버(110)에 대해서 송신한다(S660). 정지 조건이 성립하고 있으면(S650: YES), 테이블 송신부(330)는 상태 테이블을 송신하지 않고 다음 처리로 이행한다.
또한, 정지 판단부(350)는 정지 조건이 성립한 경우라도, 성립으로부터 미리 정해진 기간이 경과한 것을 조건으로 하여, 테이블 생성부(320)에 의해 가동 상태의 수신 및 테이블 송신부(330)에 의한 상태 테이블의 송신을 재개시켜도 좋다. 재개해도 즉시 정지 조건이 성립한 경우에는 정지 판단부(350)는 가동 상태의 수신 및 상태 테이블의 송신을 정지하고, 상기 미리 정해진 기간보다도 긴 기간 대기한다. 그리고, 그 기간 경과 후에 정지 판단부(350)는 가동 상태의 수신 및 상태 테이블의 송신을 재개한다. 이와 같이, 장애 회복이 지연됨에 따라서 대기 시간을 길게 함으로써, 장애 발생 시의 정보 시스템(10)의 부하를 가능한 한 경감하여, 장애로부터의 회복을 촉진시킬 수 있다.
또한, 제1 테이블 갱신부(340)는 서블릿 서버(110-1∼4)로부터 새로운 상태 테이블을 수신했는지의 여부를 판단한다(S670). 즉, 제1 테이블 갱신부(340)는 어느 하나의 서블릿 서버(110-1∼4)로부터의 상태 테이블의 수신에 따라, 이 상태 테이블에 대응시켜 수신한 버전 ID가, 이미 기억 장치(300)에 기억되어 있는 버전 ID와 비교하여 같은 시기 또는 다음 시기의 개정을 나타내는지의 여부를 판단한다. 같은 시기 또는 다음 시기의 개정을 나타낸다고 하는 것은 예컨대, 수신한 버전 ID 의 번호가, 이미 기억하고 있는 버전 ID의 번호와 동일하거나, 그것보다도 크다고 하는 것이다. 새로운 상태 테이블을 수신한 것을 조건으로 하여(S670: YES), 제1 테이블 갱신부(340)는 수신한 그 상태 테이블에 의해, 기억 장치(300)에 기억한 상태 테이블을 갱신한다(S680).
또한, 새로운 상태 테이블을 생성하는 처리를 하고 있는 동안에, 서블릿 서버(110)로부터 상태 테이블을 수신한 경우에는 테이블 송신부(330)가 새롭게 생성한 상태 테이블을 송신하고 나서, 제1 테이블 갱신부(340)가 상태 테이블의 갱신을 시도하는 것이 바람직하다. 이와 같이, 처리의 소요 시간 등에 기초하는 가동 상태의 평가를 우선시킴으로써, 가동 상태의 평가에 이용하는 소요 시간 등의 정보를 정보 시스템(10) 전체에서 증가시킬 수 있으며, 그로 인해, 가동 상태의 평가의 정밀도를 높일 수 있다.
도 7은 S640에 있어서의 처리의 상세한 예를 도시한다. 도 7을 참조해서, 전송부(310)가 수신한 처리 응답의 메시지에 기초하여 테이블 생성부(320)가 각 장치·서버의 가동 상태를 평가하는 처리의 상세를 설명한다. 테이블 생성부(320)는 전송부(310)가 서블릿 서버(110-1∼4)로부터 과거의 미리 정해진 시간 내에 수신한 복수의 처리 응답에 포함시켜, 각 서버·장치의 가동 상태를 수신하고, 수신한 가동 상태를 집계한다(S700). 구체적인 처리의 일례를 이하에 서술한다.
우선, 테이블 생성부(320)는 각 처리 응답에 대해서 이하의 처리를 행한다. 테이블 생성부(320)는 그 처리 응답의 수신까지의, 대응하는 처리 요구의 송신으로부터의 소요 시간을 산출한다. 이것은 테이블 생성부(320)에 있어서 처리 요구의 송신 시에 타이머를 리셋하고, 처리 응답의 수신 시에 그 타이머를 참조함으로써 실현된다. 이 시간을 시간 A로 한다. 또한, 테이블 생성부(320)는 이 처리 응답의 메시지로부터, 이 처리 요구에 따라서 서블릿 서버(110)가 APP 서버(120)에 요구한 처리의 소요 시간을 취득한다. 이 시간을 시간 B로 한다. 그리고, 테이블 생성부(320)는 시간 A로부터 시간 B를 뺌으로써, 서블릿 서버(110)에 있어서의 처리의 소요 시간을 산출한다.
이 처리 요구에 따라서 APP 서버(120)가 DB 서버(130)에 대하여 또한 처리를 요구하고 있었던 경우에는 테이블 생성부(320)는 그 소요 시간을 메시지로부터 더 취득한다. 이 시간을 시간 C로 한다. 그 경우에는 테이블 생성부(320)는 서블릿 서버(110)에 있어서 계측된 소요 시간 B로부터, 이 시간 C를 뺌으로써, APP 서버(120)에 있어서의 처리의 소요 시간을 산출한다. 이와 같이, 테이블 생성부(320)는 어떠한 하나의 처리 요구로부터 파생적으로 순차 요구된 복수의 처리의 각각에 대해서, 그 소요 시간을 산출한다. 소요 시간은 전술한 5초 및 2초를 임계값으로 하여, 가동 상태의 정보로 변환된다. 이상의 처리를, 테이블 생성부(320)는 상술한 과거의 미리 정해진 시간 내에 수신한 각각의 처리 응답에 대해서 행한다. 그리고, 테이블 생성부(320)는 이렇게 해서 판단된 가동 상태를, 서블릿 서버(110-1∼4), APP 서버(120-1∼3) 및 DB 서버(130)의 각각에 대해서 집계한다.
다음으로, 테이블 생성부(320)는 각각의 서블릿 서버(110-1∼4)에 대해서, 상기 서블릿 서버(110)에 대하여 집계된 가동 상태 모두가, 고부하 상태 또는 이상 상태를 나타내는지의 여부를 판단한다(S710). 어떠한 서블릿 서버(110)에 대해서 도, 집계된 가동 상태 모두가 고부하 상태 또는 이상 상태를 나타내고 있는 것을 조건으로 하여(S710: YES), 정지 판단부(350)는 상태 테이블의 송수신을 정지해야 하는 조건이 성립했다고 판단하고(S720), 본 도면의 처리를 종료한다. 이 경우, 테이블 생성부(320)는 상태 테이블을 생성하지 않아도 좋다.
다음으로, 테이블 생성부(320)는 APP 서버(120-1∼3) 및 DB 서버(130)의 각각(이하, 처리의 대상을 당해 서버라고 부름)에 대해서 이하의 처리를 행한다(S730). 테이블 생성부(320)는 당해 서버에 대해서 수신한 가동 상태 중, 당해 서버가 정상인 것을 나타내는 가동 상태의 비율이 미리 정해진 기준값(N)인 것을 조건으로 하여(S740: YES), 당해 서버가 정상 상태라고 평가한다(S750). 이 기준값(N)은 0보다 큰 매우 작은 값인 것이 바람직하다. 이것은 서버에 일단 이상이 발생하면 이후의 처리는 더 지연되는 경향이 있고, 일시적으로라도 상황이 개선되는 일은 드물기 때문이다. 즉, 정상이라고 판단할 수 있는 처리가 약간 관측될 때에는 이상 상태에 있어서 우연히 정상적으로 처리가 완료되었다고는 생각하기 어렵고, 정상 상태에 있어서 우연히 다른 처리에 시간이 걸리고 있다고 생각하는 편이 자연스럽기 때문이다. 이 때문에, 테이블 생성부(320)는 정상 상태를 나타내는 가동 상태가 하나라도 포함되어 있으면, 당해 서버가 정상 상태라고 평가해도 좋다.
정상 상태라고 평가되지 않는 경우(S740), 다음으로, 테이블 생성부(320)는 당해 서버에 대해서 수신한 가동 상태 중, 당해 서버가 고부하인 것을 나타내는 가동 상태의 비율이 미리 정해진 기준값(K) 이상인지의 여부를 판단한다(S760). 기준값(K) 이상인 것을 조건으로 하여(S760: YES), 테이블 생성부(320)는 당해 서버가 고부하 상태라고 평가한다(S770). 이 기준값(K)도, 0보다 큰 매우 작은 값인 것이 바람직하고, 테이블 생성부(320)는 고부하 상태를 나타내는 가동 상태가 하나라도 포함되어 있으면, 다른 가동 상태가 모두 이상 상태를 나타내고 있어도, 당해 서버가 고부하 상태라고 판단해도 좋다. 고부하인 것을 나타내는 가동 상태의 비율이 기준값(K) 미만인 것을 조건으로 하여(S760: NO), 테이블 생성부(320)는 당해 서버가 이상 의심 상태라고 판단한다(S780). 테이블 생성부(320)는 이상의 처리를 APP 서버(120-1∼3) 및 DB 서버(130)의 각각에 대해서 반복한다(S790).
도 8은 서블릿 서버(110-1)가 처리 요구 및 처리 응답을 송수신하는 처리의 구체예를 도시한다. 요구 송신부(410)는 디스패처 장치[예컨대 디스패처 장치(100-1)]의 기억 장치(300)로부터 처리 요구의 전송을 받으면(S800: YES), 요구된 처리의 일부를 APP 서버(120-1∼3) 등에 처리시키기 위해, APP 서버(120-1) 등에 처리 요구를 송신한다(S810). 송신처를 예컨대 APP 서버(120-1)로 한다. 요구 송신부(410)가 APP 서버(120-1)에 송신한 처리 요구에 대한 처리 응답을 수신하면(S820: YES), 상태 회신부(420)는 그 처리 응답의 상태를, 그 APP 서버(120-1)의 가동 상태로서 취득한다(S830). 예컨대, 처리 요구로부터 처리 응답까지의 소요 시간이 APP 서버(120-1)로부터 취득되어도 좋다. 그리고, 상태 회신부(420)는 APP 서버(120-1)의 가동 상태를, 디스패처 장치(100-1)의 기억 장치(300)로부터 전송을 받은 처리 요구에 대한 처리 응답에 포함시켜 그 디스패처 장치(100-1)에 회신한다(S840).
다음으로, 제2 테이블 갱신부(430)는 디스패처 장치[예컨대 디스패처 장 치(100-1)]로부터 새로운 상태 테이블을 수신했는지의 여부를 판단한다(S850). 즉, 제2 테이블 갱신부(430)는 디스패처 장치(100-1)로부터 상태 테이블을 수신하면, 그 상태 테이블에 대응시켜 수신한 버전 ID가, 기억 장치(400)에 이미 저장된 버전 ID와 비교하여 같은 시기 또는 다음 시기의 개정을 나타내는 것을 조건으로 하여, 새로운 상태 테이블을 수신했다고 판단한다. 새로운 상태 테이블을 수신한 것을 조건으로 하여(S850: YES), 제2 테이블 갱신부(430)는 수신한 그 상태 테이블에 기초하여, 기억 장치(400)에 저장된 상태 테이블을 갱신한다(S860). 상태 테이블의 갱신은 이와 같이, 상태 테이블을 수신할 때마다 행해지기 때문에, 디스패처 장치(100-1∼2)의 각각으로부터 수신한 상태 테이블의 정보는 통합되어 기억 장치(400)의 상태 테이블에 반영된다. 그리고, 테이블 회신부(440)는 갱신한 그 상태 테이블을 디스패처 장치(100-1∼2)의 각각에 대해서 회신한다(S870).
도 9는 S860에 있어서 순차적으로 갱신되는 가동 상태의 상태 천이도이다. 제2 테이블 갱신부(430)는 상태 테이블에 있어서 관리된 APP 서버(120-1∼3) 및 DB 서버(130)의 각 가동 상태를, 도 9에 도시하는 상태 천이도에 따라서 갱신한다. 구체적으로는 제2 테이블 갱신부(430)는 처리 대상인 서버의 가동 상태가, 이미 기억 장치(400)에 기억되어 있는 상태 테이블에 있어서 정상 상태가 아니고, 또한, 디스패처 장치(100)의 테이블 송신부(330)로부터 수신한 상태 테이블에 있어서는 정상 상태인 것을 조건으로 하여, 상기 서버의 가동 상태를 정상 상태로 갱신한다. 즉, 고부하, 이상, 고부하 의심 또는 이상 의심의 어떠한 상태도, 정상 상태를 수신한 것을 조건으로 하여 정상 상태로 갱신된다.
또한, 제2 테이블 갱신부(430)는 처리 대상인 서버의 가동 상태가, 이미 기억 장치(400)에 기억되어 있는 상태 테이블에 있어서 정상 상태이고, 또한, 서블릿 서버(110)의 테이블 송신부(330)로부터 수신한 상태 테이블에 있어서는 이상 상태 또는 이상 의심 상태인 것을 조건으로 하여, 상기 서버의 가동 상태를 이상 의심 상태로 갱신한다. 즉, 제2 테이블 갱신부(430)에 있어서는 이상 상태를 수신했다고 해서 즉시 이상 상태라고는 판단되지 않는다. 그리고, 제2 테이블 갱신부(430)는 가동 상태를 이상 의심 상태로 갱신하고 나서 정상 상태로 되돌리지 않고서 미리 정해진 기간이 경과한 것을 조건으로 하여, 상기 가동 상태를 이상 상태로 갱신한다.
또한, 제2 테이블 갱신부(430)는 처리 대상인 서버의 가동 상태가, 이미 기억 장치(400)에 기억되어 있는 상태 테이블에 있어서 정상 상태이고, 또한, 서블릿 서버(110)의 테이블 송신부(330)로부터 수신한 상태 테이블에 있어서는 고부하 상태인 것을 조건으로 하여, 상기 서버의 가동 상태를 고부하 의심 상태로 갱신한다. 즉, 제2 테이블 갱신부(430)에 있어서는 고부하 상태를 수신했다고 해서 즉시 고부하 상태라고는 판단되지 않는다. 그리고, 제2 테이블 갱신부(430)는 가동 상태를 고부하 의심 상태로 갱신하고 나서 정상 상태로 되돌리지 않고서 미리 정해진 기간이 경과한 것을 조건으로 하여, 상기 가동 상태를 고부하 상태로 갱신한다.
도 10은 본 실시형태에 따른 정보 시스템(10)에 의해 가동 상태가 순차적으로 갱신되는 과정을 도시한다. 여기서는 설명의 형편상, 정보 시스템(10)은 디스패처 장치(100-1∼2)와, 서블릿 서버(110-1)와, APP 서버(120-1∼3)를 갖는 것으로 하고, 서블릿 서버(110-2) 및 DB 서버(130)는 갖지 않는 것으로 한다. 또한, APP 서버(120-1∼3)를, 표 안에서 각각 A∼C라고 표기한다. 또한, 버전 ID의 초기값을 0으로 한다. 즉, 모든 서버·장치에 있어서의 기억 장치는 버전 ID로서 수치 0을 기억하고 있다. 또한, 상태 테이블은 APP 서버(120-1∼3)의 가동 상태를 포함하고, 서블릿 서버(110-1∼2)의 가동 상태를 포함하지 않는 것으로 한다.
초기 상태인 시간 0의 시점에 있어서, 디스패처 장치(100-1)의 기억 장치(300)는 APP 서버(120-1∼3)의 각각의 가동 상태를 모두 정상 상태로 하는 상태 테이블을 기억하고 있다. 이 상태 테이블을 A, B, C라고 표기한다. 디스패처 장치(100-2)의 기억 장치(300) 및 서블릿 서버(110-1)의 기억 장치(400)도 마찬가지이다. 시간 0의 다음의 시간 1에 있어서, 테이블 생성부(320)는 APP 서버(120-3)의 가동 상태를 이상 의심 상태라고 판단한다. 이것은 예컨대 어느 일정 기간 내에 디스패처 장치(100-1)로부터의 요구를 받아 APP 서버(120-1)에서 실행된 처리 모두가 이상 상태라고 판단되어야 하는 소요 시간이 필요했기 때문이다. 이때의 상태 테이블의 상태를 A, B, C(-)라고 표기한다. 기호 -는 이상 상태를 나타내고, 기호 (-)는 이상 의심 상태를 나타낸다. 이 시점에서 디스패처 장치(100-1)의 기억 장치(300)에 있어서 버전 ID는 인크리먼트되어 1이 된다. 그러나 아직 서블릿 서버(110-1)에 있어서 버전 ID가 0인 상태이므로, 도면 중에서는 버전 ID를 0이라고 표기한다.
시간 2에 있어서, 서블릿 서버(110-1)의 제2 테이블 갱신부(430)는 디스패처 장치(100-1)의 테이블 송신부(330)로부터 상태 테이블을 수신한다. 기억 장치(300) 에 이미 기억되어 있는 상태 테이블에 있어서, APP 서버(120-3)는 정상 상태이지만, 수신한 상태 테이블에 있어서 APP 서버(120-3)는 이상 의심 상태이다. 이 때문에, 서블릿 서버(110-1)의 제2 테이블 갱신부(430)는 가동 상태를 이상 의심 상태로 갱신한다. 따라서, 서블릿 서버(110-1)에 있어서도 상태 테이블은 A, B, C(-)가 된다.
또한, 동일한 시간 2에 있어서, 디스패처 장치(100-2)의 테이블 생성부(320)는 디스패처 장치(100-1)와 비교해서 약간 지연되어, 디스패처 장치(100-1)와는 독립적으로 상태 테이블을 생성한다. 이때, 테이블 생성부(320)는 APP 서버(120-2)의 가동 상태를 이상 의심 상태라고 판단한다. 이것은 예컨대 어느 일정 기간 내에 디스패처 장치(100-2)로부터의 요구를 받아 APP 서버(120-2)에서 실행된 처리 모두가, 이상 상태라고 판단되어야 하는 소요 시간이 필요했기 때문이다. 이 결과 생성되는 상태 테이블은 A, B(-), C이다. 이 시점에서, 디스패처 장치(100-1∼2) 및 서블릿 서버(110-1) 모두에서 버전 ID가 1이 된다.
시간 3에 있어서, 서블릿 서버(110-1)의 테이블 회신부(440)는 상태 테이블을 디스패처 장치(100-1) 및 디스패처 장치(100-2)에 대하여 송신한다. 디스패처 장치(100-1)에 있어서, 기억하고 있는 상태 테이블과 수신한 상태 테이블은 동일하기 때문에 아무런 처리도 행해지지 않는다. 디스패처 장치(100-2)에 있어서, 기억하고 있는 상태 테이블 및 수신한 상태 테이블은 버전 ID가 모두 1로서 동일하기 때문에, 제1 테이블 갱신부(340)는 수신한 상태 테이블에 의해, 기억하고 있는 상태 테이블을 갱신한다. 예컨대, 기억하고 있는 상태 테이블은 수신한 상태 테이블 에 의해 치환된다. 이 결과, 디스패처 장치(100-2)의 기억 장치(300)에 있어서, 상태 테이블은 A, B, C(-)가 된다.
시간 4에 있어서, 디스패처 장치(100-2)의 테이블 생성부(320)는 APP 서버(120-2)의 가동 상태를 이상 의심 상태라고 재차 판단한다. 이것은 다음의 일정 기간 내에 있어서도, 디스패처 장치(100-2)로부터의 요구를 받아 APP 서버(120-2)에서 실행된 처리 모두가, 이상 상태라고 판단되어야 하는 소요 시간이 필요했기 때문이다. 이 결과 생성되는 상태 테이블은 A, B(-), C이다. 또한, 생성되는 버전 ID는 2이다. 그리고, 다음의 시간 5에 있어서, 디스패처 장치(100-2)의 테이블 송신부(330)는 생성한 이 상태 테이블을 서블릿 서버(110-1)에 송신한다.
서블릿 서버(110-1)의 제2 테이블 갱신부(430)는 수신한 버전 ID인 2가, 기억하고 있는 버전 ID인 1보다 크기 때문에, 수신한 이 상태 테이블에 의해, 기억하고 있는 상태 테이블을 갱신한다. APP 서버(120-2)에 대해서, 기억하고 있는 가동 상태는 정상 상태이고, 수신한 가동 상태는 이상 의심 상태이기 때문에, 제2 테이블 갱신부(430)는 APP 서버(120-2)의 가동 상태를 이상 의심 상태로 갱신한다. APP 서버(120-3)에 대해서, 기억하고 있는 가동 상태는 이상 의심 상태이고, 수신한 가동 상태는 정상 상태이기 때문에, 제2 테이블 갱신부(430)는 APP 서버(120-3)의 가동 상태를 정상 상태로 갱신한다. 이 결과, 상태 테이블은 A, B(-), C가 된다.
다음의 시간 6에 있어서, 서블릿 서버(110-1)의 테이블 회신부(440)는 갱신한 상태 테이블을 디스패처 장치(100-1∼2)의 각각에 회신한다. 디스패처 장치(100-2)에 있어서, 이미 기억하고 있는 상태 테이블 및 수신한 상태 테이블은 동 일하기 때문에, 제1 테이블 갱신부(340)는 아무런 처리를 행하지 않는다. 한편, 서블릿 서버(110-1)는 기억하고 있는 것과는 다른 상태 테이블 A, B(-), C를 수신하고, 또한, 버전 ID도 같은 시기의 개정을 나타내기 때문에, 수신한 이 상태 테이블에 의해, 기억하고 있는 상태 테이블을 치환한다. 이 결과, 상태 테이블은 A, B(-), C가 된다.
다음의 시간 7 및 8에 있어서, 디스패처 장치(100-1∼2)의 테이블 생성부(320)는 APP 서버(120-1∼3)의 가동 상태를 평가하지만, 평가 전과 동일한 상태이기 때문에 도 10 중의 표기는 변화하지 않는다. 마찬가지로, 서블릿 서버(110-1)의 제2 테이블 갱신부(430)는 상태 테이블을 디스패처 장치(100-1∼2)로부터 수신하지만, 이미 기억하고 있는 상태 테이블과 동일하기 때문에 도 10 중의 표기는 변화하지 않는다.
시간 9에 있어서, 서블릿 서버(110-1)의 제2 테이블 갱신부(430)는 APP 서버(120-2)의 가동 상태를 이상 의심 상태로 갱신하고 나서 미리 정해진 시간이 경과했기 때문에, APP 서버(120-2)의 가동 상태를 이상 상태로 갱신한다. 갱신된 가동 상태는 상태 테이블에 포함시켜 디스패처 장치(100-1∼2)에 회신된다. 이 결과, 상태 테이블은 A, B-, C가 된다. 시간 10에 있어서, 디스패처 장치(100-1∼2)의 제1 테이블 갱신부(340)는 수신한 상태 테이블에 의해, 이미 기억하고 있는 상태 테이블을 갱신한다. 이 결과, 상태 테이블은 A, B-, C가 된다.
도 11은 디스패처 장치(100-1) 또는 서블릿 서버(110-1)로서 기능하는 정보 처리 장치(500)의 하드웨어 구성의 일례를 도시한다. 정보 처리 장치(500)는 호스 트 컨트롤러(1082)에 의해 상호 접속되는 CPU(1000), RAM(1020), 및 그래픽 컨트롤러(1075)를 갖는 CPU 주변부와, 입출력 컨트롤러(1084)에 의해 호스트 컨트롤러(1082)에 접속되는 통신 인터페이스(1030), 하드디스크 드라이브(1040), 및 CD-ROM 드라이브(1060)를 갖는 입출력부와, 입출력 컨트롤러(1084)에 접속되는 ROM(1010), 플렉시블 디스크 드라이브(1050), 및 입출력 칩(1070)을 갖는 레거시(legacy) 입출력부를 구비한다.
호스트 컨트롤러(1082)는 RAM(1020)과, 높은 전송 레이트로 RAM(1020)를 액세스하는 CPU(1000) 및 그래픽 컨트롤러(1075)를 접속한다. CPU(1000)는 ROM(1010) 및 RAM(1020)에 저장된 프로그램에 기초해서 동작하여, 각부의 제어를 행한다. 그래픽 컨트롤러(1075)는 CPU(1000) 등이 RAM(1020) 내에 마련한 프레임 버퍼 상에 생성하는 화상 데이터를 취득하여, 표시 장치(1080) 상에 표시시킨다. 이것을 대신해서, 그래픽 컨트롤러(1075)는 CPU(1000) 등이 생성하는 화상 데이터를 저장하는 프레임 버퍼를, 내부에 포함해도 좋다.
입출력 컨트롤러(1084)는 호스트 컨트롤러(1082)와, 비교적 고속의 입출력 장치인 통신 인터페이스(1030), 하드디스크 드라이브(1040), 및 CD-ROM 드라이브(1060)를 접속한다. 통신 인터페이스(1030)는 네트워크를 통해 외부의 장치와 통신한다. 하드디스크 드라이브(1040)는 정보 처리 장치(500)가 사용하는 프로그램 및 데이터를 저장한다. CD-ROM 드라이브(1060)는 CD-ROM(1095)으로부터 프로그램 또는 데이터를 판독하여, RAM(1020) 또는 하드디스크 드라이브(1040)에 제공한다.
또한, 입출력 컨트롤러(1084)에는 ROM(1010)과, 플렉시블 디스크 드라이 브(1050)나 입출력 칩(1070) 등의 비교적 저속의 입출력 장치가 접속된다. ROM(1010)은 정보 처리 장치(500)의 기동 시에 CPU(1000)가 실행하는 부트 프로그램이나, 정보 처리 장치(500)의 하드웨어에 의존하는 프로그램 등을 저장한다. 플렉시블 디스크 드라이브(1050)는 플렉시블 디스크(1090)로부터 프로그램 또는 데이터를 판독하여, 입출력 칩(1070)을 통해 RAM(1020) 또는 하드디스크 드라이브(1040)에 제공한다. 입출력 칩(1070)은 플렉시블 디스크(1090)나, 예컨대 병렬 포트, 직렬 포트, 키보드 포트, 마우스 포트 등을 통해 각종의 입출력 장치를 접속한다.
정보 처리 장치(500)에 제공되는 프로그램은 플렉시블 디스크(1090), CD-ROM(1095), 또는 IC 카드 등의 기록 매체에 저장되어 이용자에 의해 제공된다. 프로그램은 입출력 칩(1070) 및/또는 입출력 컨트롤러(1084)를 통해, 기록 매체로부터 읽어내고 정보 처리 장치(500)에 인스톨되어 실행된다. 프로그램이 정보 처리 장치(500) 등에 작용하여 행하게 하는 동작은 도 1 내지 도 10에 있어서 설명한 디스패처 장치(100-1) 및 서블릿 서버(110-1)에 있어서의 동작과 동일하기 때문에, 설명을 생략한다. 또한, 디스패처 장치(100-2) 및 서블릿 서버(110-2∼4)의 동작·하드웨어 구성에 대해서도, 도 11에 도시하는 정보 처리 장치(500)와 거의 동일하기 때문에 설명을 생략한다.
이상에 나타낸 프로그램은 외부의 기억 매체에 저장되어도 좋다. 기억 매체로서는 플렉시블 디스크(1090), CD-ROM(1095) 외에, DVD나 PD 등의 광학 기록 매체, MD 등의 광자기 기록 매체, 테이프 매체, IC 카드 등의 반도체 메모리 등을 이 용할 수 있다. 또한, 전용 통신 네트워크나 인터넷에 접속된 서버 시스템에 마련한 하드디스크 또는 RAM 등의 기억 장치를 기록 매체로서 사용하여, 네트워크를 통해 프로그램을 정보 처리 장치(500)에 제공해도 좋다.
이상, 본 실시형태에 따른 정보 시스템(10)에 따르면, 처리 요구·처리 응답 등의 메시지에 포함시켜 가동 상태를 송수신시킬 수 있기 때문에, 본래 필요한 장치·서버 외에 추가 장치를 필요로 하지 않고, 또한, 소프트웨어 유래의 장애를 포함한 폭넓은 종류의 장애를 검출할 수 있다. 또한, 어떤 서버 A가 다른 서버 B에 처리를 요구하고, 서버 B가 서버 C에 또한 처리를 요구한다고 하는 것처럼, 호출 관계가 계층적인 경우에 있어서도 장애 발생 개소를 정밀도 좋게 판단할 수 있다. 또한, 디스패처 장치(100) 및 서블릿 서버(110) 사이에서 가동 상태의 평가 결과를 교환함으로써, 잘못된 평가나 일시적인 평가의 오류를 정정할 수 있다. 예컨대, Java(등록 상표)의 GC 등에 의해 일시적으로 지연된 처리를 장애로서 잘못 판단하는 것을 회피하여, 가동 상태 평가의 정밀도를 높일 수 있다.
이상, 본 발명을 실시형태를 이용하여 설명하였으나, 본 발명의 기술적 범위는 상기 실시형태에 기재된 범위에는 한정되지 않는다. 상기 실시형태에, 다양한 변경 또는 개량을 가하는 것이 가능한 것이 당업자에게 분명하다. 그러한 변경 또는 개량을 가한 형태도 본 발명의 기술적 범위에 포함될 수 있는 것이, 특허 청구의 범위의 기재로부터 분명하다.

Claims (10)

  1. 외부의 단말 장치로부터 요구된 처리를 분배하는 복수의 디스패처(dispatcher) 장치와, 분배된 상기 처리를 행하는 복수의 제1 계층 서버와, 제1 계층 서버로부터 받은 요구에 따라서 상기 처리의 일부를 행하는 적어도 하나의 제2 계층 서버를 구비하는 시스템으로서,
    각각의 상기 디스패처 장치는,
    각각의 제2 계층 서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위한 기억 장치와,
    요구된 처리를 분배하기 위해서, 외부의 단말 장치로부터 받은 처리 요구를 상기 복수의 제1 계층 서버 중에서 선택한 하나의 제1 계층 서버에 전송하는 전송부와,
    각각의 상기 제2 계층 서버의 가동 상태를, 전송된 상기 처리 요구에 대응하는 처리 응답에 포함시켜 수신하고, 수신한 가동 상태에 기초하여 제2 계층 서버마다의 가동 상태를 평가하며, 제2 계층 서버마다의 가동 상태를 나타내는 상태 테이블을 생성하여 기억 장치에 기억하는 테이블 생성부와,
    상기 상태 테이블의 생성에 따라, 생성한 상기 상태 테이블을 기억 장치로부터 읽어내어 각각의 상기 제1 계층 서버에 송신하는 테이블 송신부와,
    어느 하나의 제1 계층 서버로부터의 상태 테이블의 수신에 따라, 수신한 상기 상태 테이블에 의해 기억 장치에 기억한 상기 상태 테이블을 갱신하는 제1 테이 블 갱신부
    를 갖고,
    각각의 상기 제1 계층 서버는
    각각의 제2 계층 서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위한 기억 장치와,
    디스패처 장치의 전송부로부터 처리 요구의 전송을 받는 것에 따라, 요구된 처리의 일부를 제2 계층 서버에 처리시키기 위해, 제2 계층 서버에 처리 요구를 송신하는 요구 송신부와,
    제2 계층 서버에 송신한 상기 처리 요구에 대한 처리 응답의 상태를 상기 제2 계층 서버의 가동 상태로서 디스패처 장치의 전송부로부터 전송을 받은 처리 요구에 대한 처리 응답에 포함시켜, 상기 디스패처 장치에 회신하는 상태 회신부와,
    디스패처 장치의 테이블 송신부로부터 상태 테이블을 수신하는 것에 따라, 수신한 상기 상태 테이블에 기초하여 기억 장치에 이미 저장된 상태 테이블을 갱신하는 제2 테이블 갱신부와,
    상태 테이블의 갱신에 따라, 갱신한 상기 상태 테이블을 각각의 상기 디스패처 장치에 회신하는 테이블 회신부
    를 포함하는 시스템.
  2. 제1항에 있어서, 디스패처 장치 및 제1 계층 서버의 각각에 있어서의 기억 장치는 상태 테이블에 대응시켜 상기 상태 테이블의 개정 시기를 나타내는 버전 ID 를 더 기억하고,
    상기 테이블 생성부는 새롭게 상태 테이블을 생성할 때마다, 상기 상태 테이블에 대응시켜, 이전 회에 생성한 상태 테이블보다도 다음 개정에 의해 생성된 것을 나타내는 버전 ID를 생성하여 기억 장치에 기억하며,
    상기 테이블 송신부는 생성한 상태 테이블을 버전 ID에 대응시켜 기억 장치로부터 읽어내어 각각의 상기 제1 계층 서버에 송신하고,
    상기 제2 테이블 갱신부는 상태 테이블에 대응시켜 수신한 버전 ID가, 기억 장치에 저장된 버전 ID와 비교하여 같은 시기 또는 다음 시기의 개정을 나타내는 것을 조건으로 하여, 수신한 상기 상태 테이블에 기초하여 기억 장치에 저장된 상기 상태 테이블을 갱신하며, 또한, 수신한 상기 버전 ID를 갱신 후의 상기 상태 테이블에 대응시켜 기억 장치에 저장하고,
    상기 테이블 회신부는 상태 테이블의 갱신에 따라, 갱신한 상기 상태 테이블을, 갱신에 이용한 상태 테이블에 대응하는 버전 ID에 대응시켜 각각의 디스패처 장치에 회신하며,
    상기 제1 테이블 갱신부는 상태 테이블에 대응시켜 수신한 버전 ID가, 기억 장치에 기억한 버전 ID와 비교하여 같은 시기 또는 다음 시기의 개정을 나타내는 것을 조건으로 하여, 수신한 상기 상태 테이블에 의해 기억 장치에 기억한 상기 상태 테이블을 갱신하는 시스템.
  3. 제1항에 있어서, 상기 상태 회신부는 디스패처 장치의 전송부로부터 전송을 받은 처리 요구에 대한 처리 응답에, 상기 가동 상태로서, 상기 처리 요구에 따라서 제2 계층 서버에 요구한 처리의 소요 시간을 나타내는 정보를 포함시켜 상기 디스패처 장치에 회신하고,
    상기 테이블 생성부는 상기 하나의 제1 계층 서버로부터, 상기 하나의 제1 계층 서버에 대해서 전송한 상기 처리 요구에 따른 처리의 소요 시간을, 상기 가동 상태로서, 상기 처리 요구에 대한 처리 응답에 포함시켜 수신하는 시스템.
  4. 제1항에 있어서, 상기 테이블 생성부는 또한, 각각의 상기 제1 계층 서버에 대해서 처리 요구를 송신하고 나서 상기 처리 요구에 대한 처리 응답을 수신하기까지의 소요 시간에 기초하여, 제1 계층 서버마다의 가동 상태를 평가해서, 상기 상태 테이블에 포함시켜 생성하고,
    상기 디스패처 장치는 생성한 상기 상태 테이블에 있어서, 어떠한 상기 제1 계층 서버도, 가동 상태가 정상 상태가 아닌 것을 조건으로 하여, 상기 테이블 생성부에 의한 가동 상태의 수신 및 상기 테이블 송신부에 의한 상태 테이블의 송신을 정지시키는 정지 판단부를 더 포함하는 시스템.
  5. 제1항에 있어서, 제2 계층 서버의 가동 상태는 정상 상태, 동작하고 있으나 처리에 임계값 이상의 시간을 필요로 하는 고부하 상태, 및 동작하고 있지 않는 이상 상태 중 어느 하나이며,
    상기 테이블 생성부는 동일한 제2 계층 서버에 대해서 복수의 상기 가동 상 태를 수신하고, 제2 계층 서버마다, 상기 제2 계층 서버에 대해서 수신한 상기 가동 상태 중, 상기 제2 계층 서버가 정상인 것을 나타내는 가동 상태의 비율이 미리 정해진 기준값 이상인 것을 조건으로 하여, 상기 제2 계층 서버가 정상 상태라고 평가하는 시스템.
  6. 제5항에 있어서, 상기 테이블 생성부는 정상 상태라고 평가하지 않았던 제2 계층 서버의 각각에 대하여, 상기 제2 계층 서버에 대해서 수신한 상기 가동 상태 중, 상기 제2 서버가 고부하인 것을 나타내는 가동 상태의 비율이 미리 정해진 기준값 이상인 것을 조건으로 하여, 상기 제2 계층 서버가 고부하 상태라고 평가하는 시스템.
  7. 제1항에 있어서, 제2 계층 서버의 가동 상태는 정상 상태, 동작하고 있으나 처리에 임계값 이상의 시간을 필요로 하는 고부하 상태, 동작하고 있지 않는 이상 상태, 고부하 상태의 의심이 있는 고부하 의심 상태, 및 이상 상태의 의심이 있는 이상 의심 상태 중 어느 하나이며,
    상기 제2 테이블 갱신부는 제2 계층 서버마다, 상기 제2 계층 서버의 가동 상태가, 이미 기억 장치에 기억되어 있는 상태 테이블에 있어서 정상 상태가 아니고, 또한, 디스패처 장치의 테이블 송신부로부터 수신한 상태 테이블에 있어서는 정상 상태인 것을 조건으로 하여, 상기 제2 계층 서버의 가동 상태를 정상 상태로 갱신하는 시스템.
  8. 제7항에 있어서, 상기 제2 테이블 갱신부는 제2 계층 서버마다, 상기 제2 계층 서버의 가동 상태가, 이미 기억 장치에 기억되어 있는 상태 테이블에 있어서 정상 상태이고, 또한, 디스패처 장치의 테이블 송신부로부터 수신한 상태 테이블에 있어서는 이상 상태 또는 이상 의심 상태인 것을 조건으로 하여, 상기 제2 계층 서버의 가동 상태를 이상 의심 상태로 갱신하며, 또한, 가동 상태를 이상 의심 상태로 갱신하고 나서 정상 상태로 되돌리지 않고서 미리 정해진 기간이 경과한 것을 조건으로 하여, 상기 가동 상태를 이상 상태로 갱신하는 시스템.
  9. 외부의 단말 장치로부터 요구된 처리를 분배하는 복수의 디스패처 장치와, 분배된 상기 처리를 행하는 복수의 제1 계층 서버와, 제1 계층 서버로부터 받은 요구에 따라서 상기 처리의 일부를 행하는 적어도 하나의 제2 계층 서버를 구비하는 시스템에서 가동 상태를 관리하는 방법으로서,
    각각의 상기 디스패처 장치는,
    각각의 제2 계층 서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위한 기억 장치를 갖고,
    디스패처 장치로서 기능하는 각각의 컴퓨터에서,
    요구된 처리를 분배하기 위해, 외부의 단말 장치로부터 받은 처리 요구를 상기 복수의 제1 계층 서버 중에서 선택한 하나의 제1 계층 서버에 대해서 전송부에 의해 전송하는 단계와,
    각각의 상기 제2 계층 서버의 가동 상태를, 전송된 상기 처리 요구에 대응하는 처리 응답에 포함시켜 수신하고, 수신한 가동 상태에 기초하여 제2 계층 서버마다의 가동 상태를 평가하며, 제2 계층 서버마다의 가동 상태를 나타내는 상태 테이블을 생성하여 테이블 생성부에 의해 기억 장치에 기억하는 단계와,
    상기 상태 테이블의 생성에 따라, 생성한 상기 상태 테이블을 기억 장치로부터 읽어내어 각각의 상기 제1 계층 서버에 대해서 테이블 송신부에 의해 송신하는 단계와,
    어느 하나의 제1 계층 서버로부터의 상태 테이블의 수신에 따라, 수신한 상기 상태 테이블에 의해 기억 장치에 기억한 상기 상태 테이블을 제1 테이블 갱신부에 의해 갱신하는 단계
    를 포함하며,
    각각의 제1 계층 서버는,
    각각의 제2 계층 서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위한 기억 장치를 갖고,
    제1 계층 서버로서 기능하는 각각의 컴퓨터에서,
    디스패처 장치의 전송부로부터 처리 요구의 전송을 받는 것에 따라, 요구된 처리의 일부를 제2 계층 서버에 처리시키기 위해, 제2 계층 서버에 처리 요구를 요구 송신부에 의해 송신하는 단계와,
    제2 계층 서버에 송신한 상기 처리 요구에 대한 처리 응답의 상태를, 상기 제2 계층 서버의 가동 상태로서, 디스패처 장치의 전송부로부터 전송을 받은 처리 요구에 대한 처리 응답에 포함시켜 상기 디스패처 장치에 상태 회신부에 의해 회신하는 단계와,
    디스패처 장치의 테이블 송신부로부터 상태 테이블을 수신하는 것에 따라, 수신한 상기 상태 테이블에 기초하여 기억 장치에 이미 저장된 상태 테이블을 제2 테이블 갱신부에 의해 갱신하는 단계와,
    상태 테이블의 갱신에 따라, 갱신한 상기 상태 테이블을 각각의 상기 디스패처 장치에 대해서 테이블 회신부에 의해 회신하는 단계
    를 포함하는 방법.
  10. 외부의 단말 장치로부터 요구된 처리를 분배하는 복수의 디스패처 장치와, 분배된 상기 처리를 행하는 복수의 제1 계층 서버와, 제1 계층 서버로부터 받은 요구에 따라서 상기 처리의 일부를 행하는 적어도 하나의 제2 계층 서버를 구비하는 시스템으로서 복수의 정보 처리 장치를 기능시키는 프로그램을 기록한 컴퓨터 판독가능 기록 매체로서,
    상기 프로그램은, 각각의 정보 처리 장치를,
    각각의 제2 계층 서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위한 기억 장치와,
    요구된 처리를 분배하기 위해, 외부의 단말 장치로부터 받은 처리 요구를 상기 복수의 제1 계층 서버 중에서 선택한 하나의 제1 계층 서버에 전송하는 전송부와,
    각각의 상기 제2 계층 서버의 가동 상태를, 전송된 상기 처리 요구에 대응하는 처리 응답에 포함시켜 수신하고, 수신한 가동 상태에 기초하여 제2 계층 서버마다의 가동 상태를 평가하며, 제2 계층 서버마다의 가동 상태를 나타내는 상태 테이블을 생성하여 기억 장치에 기억하는 테이블 생성부와,
    상기 상태 테이블의 생성에 따라, 생성한 상기 상태 테이블을 기억 장치로부터 읽어내어 각각의 상기 제1 계층 서버에 송신하는 테이블 송신부와,
    어느 하나의 제1 계층 서버로부터의 상태 테이블의 수신에 따라, 수신한 상기 상태 테이블에 의해 기억 장치에 기억한 상기 상태 테이블을 갱신하는 제1 테이블 갱신부
    를 포함하는 디스패처 장치로서 기능시키고,
    다른 각각의 정보 처리 장치를,
    각각의 제2 계층 서버의 가동 상태를 나타내는 상태 테이블을 저장하기 위한 기억 장치와,
    디스패처 장치의 전송부로부터 처리 요구의 전송을 받는 것에 따라, 요구된 처리의 일부를 제2 계층 서버에 처리시키기 위해, 제2 계층 서버에 처리 요구를 송신하는 요구 송신부와,
    제2 계층 서버에 송신한 상기 처리 요구에 대한 처리 응답의 상태를, 상기 제2 계층 서버의 가동 상태로서, 디스패처 장치의 전송부로부터 전송을 받은 처리 요구에 대한 처리 응답에 포함시켜, 상기 디스패처 장치에 회신하는 상태 회신부와,
    디스패처 장치의 테이블 송신부로부터 상태 테이블을 수신하는 것에 따라, 수신한 상기 상태 테이블에 기초하여 기억 장치에 이미 저장된 상태 테이블을 갱신하는 제2 테이블 갱신부와,
    상태 테이블의 갱신에 따라, 갱신한 상기 상태 테이블을 각각의 상기 디스패처 장치에 회신하는 테이블 회신부
    를 포함하는 제1 계층 서버로서 기능시키는 것인 컴퓨터 판독가능 기록 매체.
KR1020097011538A 2006-12-27 2007-12-26 시스템 장애를 정밀도 좋게 검출하는 기술 KR101033447B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006350936 2006-12-27
JPJP-P-2006-350936 2006-12-27

Publications (2)

Publication Number Publication Date
KR20090102747A KR20090102747A (ko) 2009-09-30
KR101033447B1 true KR101033447B1 (ko) 2011-05-09

Family

ID=39588526

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097011538A KR101033447B1 (ko) 2006-12-27 2007-12-26 시스템 장애를 정밀도 좋게 검출하는 기술

Country Status (6)

Country Link
US (2) US20080215325A1 (ko)
JP (1) JP4866429B2 (ko)
KR (1) KR101033447B1 (ko)
CN (1) CN101568905B (ko)
TW (1) TW200841189A (ko)
WO (1) WO2008081844A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4827721B2 (ja) * 2006-12-26 2011-11-30 ニュアンス コミュニケーションズ,インコーポレイテッド 発話分割方法、装置およびプログラム
US20100017486A1 (en) * 2008-07-16 2010-01-21 Fujitsu Limited System analyzing program, system analyzing apparatus, and system analyzing method
KR101010911B1 (ko) * 2008-12-31 2011-01-26 엔에이치엔(주) 메시징 네트워크 시스템의 메시지 송수신 방법
KR20120060655A (ko) * 2010-12-02 2012-06-12 한국전자통신연구원 서버 공격을 탐지할 수 있는 라우팅 장치와 라우팅 방법 및 이를 이용한 네트워크
CN104219105A (zh) * 2013-05-31 2014-12-17 英业达科技有限公司 错误通报装置及方法
US20150006730A1 (en) * 2013-06-27 2015-01-01 Sap Ag Enabling multi-tenant virtual servers in a cloud system
JP2015118685A (ja) * 2013-11-12 2015-06-25 株式会社リコー 情報処理システム、情報処理方法、及びプログラム
US9329937B1 (en) * 2013-12-31 2016-05-03 Google Inc. High availability architecture
JP2015215827A (ja) * 2014-05-13 2015-12-03 富士通株式会社 送信順序決定プログラム、送信順序決定装置及び送信順序決定方法
US10134425B1 (en) * 2015-06-29 2018-11-20 Amazon Technologies, Inc. Direction-based speech endpointing
CN107291558B (zh) * 2016-03-30 2020-11-24 阿里巴巴集团控股有限公司 一种应用程序接口死锁监控方法和装置
TWI691852B (zh) 2018-07-09 2020-04-21 國立中央大學 用於偵測階層式系統故障之偵錯裝置及偵錯方法、電腦可讀取之記錄媒體及電腦程式產品
JP7063292B2 (ja) 2019-03-15 2022-05-09 オムロン株式会社 制御システム、設定装置、および設定プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186833A (ja) 2001-12-20 2003-07-04 Hitachi Ltd 応答性測定評価装置及びこの装置を利用した分散計算機システム
JP2003196178A (ja) 2001-12-25 2003-07-11 Hitachi Ltd 階層構成サーバシステム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817092A (en) 1987-10-05 1989-03-28 International Business Machines Threshold alarms for processing errors in a multiplex communications system
JP3350293B2 (ja) * 1994-08-09 2002-11-25 株式会社東芝 対話処理装置及び対話処理方法
US5806021A (en) * 1995-10-30 1998-09-08 International Business Machines Corporation Automatic segmentation of continuous text using statistical approaches
US5968122A (en) * 1997-03-31 1999-10-19 Alcatel Alsthom Compagnie Generale D'electricite Method for propagating between views of connection object status in network
US6694055B2 (en) * 1998-07-15 2004-02-17 Microsoft Corporation Proper name identification in chinese
US20020032564A1 (en) * 2000-04-19 2002-03-14 Farzad Ehsani Phrase-based dialogue modeling with particular application to creating a recognition grammar for a voice-controlled user interface
GB9930731D0 (en) * 1999-12-22 2000-02-16 Ibm Voice processing apparatus
CA2408222A1 (en) 2000-05-10 2001-11-15 Tech Link International Entertainment Ltd. Security system for high level transactions between devices
US6873953B1 (en) * 2000-05-22 2005-03-29 Nuance Communications Prosody based endpoint detection
JP2001356972A (ja) * 2000-06-15 2001-12-26 Fast Net Kk ネットワーク監視システム及びネットワーク監視方法
US6934756B2 (en) * 2000-11-01 2005-08-23 International Business Machines Corporation Conversational networking via transport, coding and control conversational protocols
US20020075306A1 (en) * 2000-12-18 2002-06-20 Christopher Thompson Method and system for initiating communications with dispersed team members from within a virtual team environment using personal identifiers
US20020075304A1 (en) * 2000-12-18 2002-06-20 Nortel Networks Limited Method and system for supporting communications within a virtual team environment
US7177810B2 (en) * 2001-04-10 2007-02-13 Sri International Method and apparatus for performing prosody-based endpointing of a speech signal
US7099912B2 (en) * 2001-04-24 2006-08-29 Hitachi, Ltd. Integrated service management system
US7313526B2 (en) * 2001-09-05 2007-12-25 Voice Signal Technologies, Inc. Speech recognition using selectable recognition modes
US7076430B1 (en) * 2002-05-16 2006-07-11 At&T Corp. System and method of providing conversational visual prosody for talking heads
US6996583B2 (en) 2002-07-01 2006-02-07 International Business Machines Corporation Real-time database update transaction with disconnected relational database clients
US7337115B2 (en) * 2002-07-03 2008-02-26 Verizon Corporate Services Group Inc. Systems and methods for providing acoustic classification
US7567902B2 (en) * 2002-09-18 2009-07-28 Nuance Communications, Inc. Generating speech recognition grammars from a large corpus of data
US7373300B1 (en) * 2002-12-18 2008-05-13 At&T Corp. System and method of providing a spoken dialog interface to a website
US7243071B1 (en) * 2003-01-16 2007-07-10 Comverse, Inc. Speech-recognition grammar analysis
US20040193400A1 (en) * 2003-03-24 2004-09-30 Mcdonald David D. Method and system for producing cohesive phrases from fixed phrases in a natural language system
US7493251B2 (en) * 2003-05-30 2009-02-17 Microsoft Corporation Using source-channel models for word segmentation
KR100577387B1 (ko) * 2003-08-06 2006-05-10 삼성전자주식회사 음성 대화 시스템에서의 음성 인식 오류 처리 방법 및 장치
JP4516306B2 (ja) * 2003-11-28 2010-08-04 株式会社日立製作所 ストレージネットワークの性能情報を収集する方法
US7756709B2 (en) * 2004-02-02 2010-07-13 Applied Voice & Speech Technologies, Inc. Detection of voice inactivity within a sound stream
JP4855655B2 (ja) * 2004-06-15 2012-01-18 株式会社ソニー・コンピュータエンタテインメント 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
US7680647B2 (en) * 2005-06-21 2010-03-16 Microsoft Corporation Association-based bilingual word alignment
US9300790B2 (en) * 2005-06-24 2016-03-29 Securus Technologies, Inc. Multi-party conversation analyzer and logger
US20070067172A1 (en) * 2005-09-22 2007-03-22 Minkyu Lee Method and apparatus for performing conversational opinion tests using an automated agent

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186833A (ja) 2001-12-20 2003-07-04 Hitachi Ltd 応答性測定評価装置及びこの装置を利用した分散計算機システム
JP2003196178A (ja) 2001-12-25 2003-07-11 Hitachi Ltd 階層構成サーバシステム

Also Published As

Publication number Publication date
TW200841189A (en) 2008-10-16
WO2008081844A1 (ja) 2008-07-10
KR20090102747A (ko) 2009-09-30
US9128836B2 (en) 2015-09-08
CN101568905A (zh) 2009-10-28
JP4866429B2 (ja) 2012-02-01
CN101568905B (zh) 2011-10-12
US20080215325A1 (en) 2008-09-04
US20120023366A1 (en) 2012-01-26
JPWO2008081844A1 (ja) 2010-04-30

Similar Documents

Publication Publication Date Title
KR101033447B1 (ko) 시스템 장애를 정밀도 좋게 검출하는 기술
US7623460B2 (en) Cluster system, load distribution method, optimization client program, and arbitration server program
US20100042675A1 (en) Request processing method and computer system
US20120317636A1 (en) Management system, management method and management program for managing industrial control system
US20080058961A1 (en) Methods and arrangements to collect data
US20080288812A1 (en) Cluster system and an error recovery method thereof
US8073993B2 (en) Management of redundant physical data paths in a computing system
US20030236800A1 (en) Dynamic recovery system and method
US20030014507A1 (en) Method and system for providing performance analysis for clusters
US20170039118A1 (en) Cluster system, server device, cluster system management method, and computer-readable recording medium
US8589598B2 (en) Management of redundant physical data paths in a computing system
JP2018055481A (ja) ログ監視装置、ログ監視方法及びログ監視プログラム
US9817914B2 (en) Extensible markup language (XML) performance optimization on a multi-core central processing unit (CPU) through core assignment
KR100943213B1 (ko) 홈네트워크에서의 오류 모델과 규칙 기반의 오류 관리 장치및 그 방법
US8473788B2 (en) Monitoring program, monitoring apparatus, and monitoring method
US20190124145A1 (en) Method and apparatus for availability management
CN111104266A (zh) 访问资源的分配方法、装置、存储介质和电子设备
US20060248531A1 (en) Information processing device, information processing method and computer-readable medium having information processing program
CN111865935B (zh) 一种数据传输系统
US7409605B2 (en) Storage system
JP4375121B2 (ja) データベース管理システムにおける処理代行方法
CN114764324A (zh) 企业资源规划系统及其集成方法
KR102575524B1 (ko) 가상화 기반 전투체계를 위한 분산정보처리장치 및 이의 자원 할당 방법
JP5477122B2 (ja) コンピュータシステム、コンピュータシステムの管理方法、ゲートウェイ装置、及びプログラム
CN113225225B (zh) 根镜像检测方法、装置、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee