KR102161211B1 - 고가용성 시스템 - Google Patents

고가용성 시스템 Download PDF

Info

Publication number
KR102161211B1
KR102161211B1 KR1020140024658A KR20140024658A KR102161211B1 KR 102161211 B1 KR102161211 B1 KR 102161211B1 KR 1020140024658 A KR1020140024658 A KR 1020140024658A KR 20140024658 A KR20140024658 A KR 20140024658A KR 102161211 B1 KR102161211 B1 KR 102161211B1
Authority
KR
South Korea
Prior art keywords
message
client
server
clients
standby
Prior art date
Application number
KR1020140024658A
Other languages
English (en)
Other versions
KR20150102591A (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 KR1020140024658A priority Critical patent/KR102161211B1/ko
Publication of KR20150102591A publication Critical patent/KR20150102591A/ko
Application granted granted Critical
Publication of KR102161211B1 publication Critical patent/KR102161211B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure

Abstract

본 발명은 고가용성 시스템 및 고가용성 시스템에서 메시지 브로커의 동작 방법을 개시한다.
본 발명의 고가용성 시스템은, 복수의 노드들이 발간-구독 메시징에 의해 통신하고, 상기 복수의 노드들 중 서로 다른 노드에 각각 위치하여, 주기적으로 상태 메시지를 발간하는 액티브 클라이언트와 스탠바이 클라이언트를 포함하는 복수의 클라이언트들; 상기 복수의 노드들 중 하나에 위치하여, 상기 복수의 클라이언트들의 상태 정보를 기초로 상기 액티브 클라이언트의 장애 여부를 검출하고, 상기 스탠바이 클라이언트로의 페일오버 메시지를 발간하는 서버; 및 상기 서버가 발간한 메시지를 상기 복수의 클라이언트들로 전달하고, 상기 복수의 클라이언트들이 발간한 메시지를 상기 서버로 전달하는 메시지 브로커;를 포함할 수 있다.

Description

고가용성 시스템{High Availability System}
본 발명의 실시예는 고가용성 시스템 및 고가용성 시스템에서 메시지 브로커의 동작 방법에 관한 것이다.
복수대의 장비를 그룹핑하여 이중화함으로써 무중단 서비스를 지원하는 기능을 HA(High Availability, 고가용성)라 한다. 서비스를 제공하는 네트워크 장비는 일반적으로 복수의 장비를 그룹핑하여 이중화함으로써 고가용성(HA: High Availability) 시스템을 구축하여 무중단 서비스를 지원할 수 있다.
한국등록특허공보 제10-0693663호
본 발명은 클라이언트가 증가하더라도 상태 감시로 인해 네트워크 부하나 연결이 증가하지 않는 고가용성 시스템을 제공하고자 한다.
본 발명의 실시예에 따른 고가용성 시스템은, 복수의 노드들이 발간-구독 메시징에 의해 통신하고, 상기 복수의 노드들 중 서로 다른 노드에 각각 위치하여, 주기적으로 상태 메시지를 발간하는 액티브 클라이언트와 스탠바이 클라이언트를 포함하는 복수의 클라이언트들; 상기 복수의 노드들 중 하나에 위치하여, 상기 복수의 클라이언트들의 상태 정보를 기초로 상기 액티브 클라이언트의 장애 여부를 검출하고, 상기 스탠바이 클라이언트로의 페일오버 메시지를 발간하는 서버; 및 상기 서버가 발간한 메시지를 상기 복수의 클라이언트들로 전달하고, 상기 복수의 클라이언트들이 발간한 메시지를 상기 서버로 전달하는 메시지 브로커;를 포함할 수 있다.
상기 액티브 클라이언트는, 구동에 필요한 구동 파일을 상기 메시지 브로커로 전송할 수 있다.
상기 메시지 브로커는, 상기 액티브 클라이언트의 구동 파일을 상기 스탠바이 클라이언트로 전달할 수 있다.
상기 스탠바이 클라이언트는, 상기 구동 파일을 실행하여 상기 액티브 클라이언트의 서비스를 수행할 수 있다.
상기 액티브 클라이언트는, 장애가 복구되면 장애 복구 메시지를 발간하고, 상기 메시지 브로커로부터 상기 서버가 발간한 구동 개시 메시지를 수신하고 서비스를 재개할 수 있다.
상기 스탠바이 클라이언트는, 상기 메시지 브로커로부터 상기 서버가 발간한 구동 중지 메시지를 수신하고 서비스를 중단할 수 있다.
상기 메시지 브로커는, 상기 액티브 클라이언트와 스탠바이 클라이언트가 발간한 등록 요청 메시지를 상기 서버로 전달할 수 있다.
상기 메시지 브로커는, 상기 서버가 발간한 등록 완료 메시지를 상기 액티브 클라이언트와 스탠바이 클라이언트로 전달할 수 있다.
상기 액티브 클라이언트와 스탠바이 클라이언트는 각각 적어도 하나 이상의 노드에 구비될 수 있다.
상기 서버, 및 상기 액티브 클라이언트와 스탠바이 클라이언트 중 하나가 동일 노드에 위치할 수 있다.
본 발명의 실시예에 따른 복수의 노드들이 발간-구독 메시징에 의해 통신하는 고가용성 시스템에서 메시지 브로커의 동작 방법은, 상기 복수의 노드들 중 서로 다른 노드에 각각 위치한 액티브 클라이언트와 스탠바이 클라이언트가 주기적으로 발간하는 상태 메시지를 수신하는 단계; 상기 복수의 노드들 중 하나에 위치하고 상기 액티브 클라이언트와 스탠바이 클라이언트의 상태 정보를 기초로 상기 액티브 클라이언트의 장애를 검출하는 서버에게 상기 상태 메시지를 전달하는 단계; 상기 서버가 상기 액티브 클라이언트의 장애에 대응하여 발간한 상기 스탠바이 클라이언트로의 페일오버 메시지를 상기 서버로부터 수신하는 단계; 및 상기 페일오버 메시지를 상기 액티브 클라이언트와 스탠바이 클라이언트에게 전달하는 단계;를 포함할 수 있다.
상기 방법은, 상기 액티브 클라이언트로부터 구동에 필요한 구동 파일을 수신하는 단계;를 더 포함할 수 있다.
상기 방법은, 상기 액티브 클라이언트의 구동 파일을 페일오버를 수행할 상기 스탠바이 클라이언트로 전달하는 단계;를 더 포함할 수 있다.
상기 방법은, 상기 액티브 클라이언트가 장애 복구 후 발간한 장애 복구 메시지를 상기 서버로 전달하는 단계;를 더 포함할 수 있다.
상기 방법은, 상기 서버가 발간한 구동 개시 메시지를 상기 장애 복구된 액티브 클라이언트로 전달하는 단계;를 더 포함할 수 있다.
상기 방법은, 상기 서버가 발간한 구동 중지 메시지를 상기 스탠바이 클라이언트로 전달하는 단계;를 더 포함할 수 있다.
상기 방법은, 상기 액티브 클라이언트와 스탠바이 클라이언트가 발간한 등록 요청 메시지를 상기 서버로 전달하는 단계;를 더 포함할 수 있다.
상기 방법은, 상기 서버가 발간한 등록 완료 메시지를 상기 액티브 클라이언트와 스탠바이 클라이언트로 전달하는 단계;를 더 포함할 수 있다.
상기 액티브 클라이언트와 스탠바이 클라이언트는 각각 적어도 하나 이상 구비될 수 있다.
본 발명의 실시예에 따른 고가용성 시스템은 클라이언트가 증가하더라도 네트워크 부하의 증가 없이 상태 감시가 가능하다. 또한 본 발명의 실시예에 따른 고가용성 시스템은 클라이언트가 추가 또는 삭제시에도 서버의 변경 없이 운용될 수 있다.
도 1은 본 발명의 실시예에 따른 고가용성 시스템을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 고가용성 서비스를 위한 서버의 동작 방법을 개략적으로 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 고가용성 서비스를 위한 메시지 브로커의 동작 방법을 개략적으로 도시한 블록도이다.
도 4는 본 발명의 실시예에 따른 고가용성 시스템에서 메시지 흐름을 개략적으로 도시한 흐름도이다.
도 5는 본 발명의 실시예에 따른 고가용성 시스템이 적용되는 네트워크 환경의 예를 도시한다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한, 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 프로세서 또는 이와 유사한 개념으로 표시된 기능 블록을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다. 또한, 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니 되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지 관용의 다른 하드웨어도 포함될 수 있다.
상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하거나 간략하게 설명하는 것으로 한다.
한편 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부된 도면을 참조하여 바람직한 실시예에 따른 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 고가용성 시스템을 개략적으로 도시한 블록도이다.
도 1을 참조하면, 본 실시예에 따른 고가용성 시스템(100)은 외부 사용자의 서비스 요청에 대응하기 위해, 각 노드의 운용 상태를 지속적으로 확인하여 운용 중인 서비스에 문제가 발생하였는지, 또는 운용 중인 노드에 문제가 발생하였는지를 확인하여 문제가 발생한 경우 다른 노드로 요청된 서비스 권리를 전환시켜 연속적인 서비스를 할 수 있도록 한다.
고가용성 시스템(100)은 서버 및 클라이언트로서 동작하는 노드들이 네트워크를 형성하는 시스템일 수 있다. 서버 및 클라이언트는 다양한 타입의 메시지를 생성하여 유선 또는 무선으로 송신 및 수신할 수 있고, 메시지를 처리하고 저장할 수 있다. 이를 위해 서버 및 클라이언트는 예를 들어, 적어도 하나의 프로세서, 적어도 하나의 메모리, 적어도 하나의 전원 공급부, 적어도 하나의 네트워크 인터페이스, 적어도 하나의 OS(Operating System) 등을 포함할 수 있다.
본 실시예에 따른 고가용성 시스템(100)은, 서버(Server)(10), 복수의 제1 내지 제n 액티브 클라이언트(Active Client)(30: 30_1, 30_2, ..., 30_n), 복수의 제1 내지 제m 스탠바이 클라이언트(Standby Client)(50: 50_1, ..., 50_m), 및 메시지 브로커(Message Broker)(70)를 포함할 수 있다.
서버(10), 제1 내지 제n 액티브 클라이언트(30; 30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m), 메시지 브로커(70) 각각은 적어도 하나의 노드에 위치할 수 있다.
서버(10), 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, 50_m)는 발간자(publisher) 및 구독자(subscriber)의 기능을 모두 수행할 수 있다.
발간자(publisher)와 구독자(subscriber)는 특정 타입 또는 특정 카테고리의 메시지를 이용하여 상호 통신할 수 있으며, 이 과정에서 채널이 형성될 수 있다.
예를 들어, 서버(10)가 메시지를 발간하고 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, 50_m)가 메시지를 구독하는 채널과, 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, 50_m)가 메시지를 발간하고 서버(10)가 메시지를 구독하는 채널이 형성될 수 있다. 발간자와 구독자 간의 통신은 메시지 브로커(70)를 통해 이루어질 수 있다. 이에 따라, 서버(10)는 한 쌍의 채널에 의해 복수의 클라이언트들과 통신이 가능하여, 클라이언트마다 통신을 위한 채널을 형성할 필요가 없다.
발간자는 메시지 브로커(70)에게 메시지를 전송하고, 구독자는 메시지 브로커(70)에 subscription을 등록(가입)하여 메시지를 전달받는다.
발간자에 의해 발간된 메시지는 가입된(subscribed) 모든 구독자들에게 전송되고, 동일 채널에 동시에 복수의 발간자들이 위치할 수 있다.
메시지는 메시지 타입 정보 및 목적지 정보 등을 포함할 수 있다. 메시지 타입 정보는 네트워크 등록 요청 메시지(REGISTER_ACTIVE/REGISTER_PASSIVE), 상태 정보를 나타내는 메시지(HEARTBEAT_ACTIVE/HEARTBEAT_PASSIVE), 페일오버 수행 메시지(DO_FAILOVER), 페일오버 중단 메시지(DO_STANDBY), 종료 메시지(FORCE_QUIT) 등을 포함할 수 있다. 목적지 정보는 발간된 메시지의 최종 구독자 정보를 포함할 수 있다. 예를 들어, 목적지 정보는 메시지를 수신할 클라이언트, 페일오버를 수행할 클라이언트 등일 수 있다.
제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 목적지 정보를 기초로 수신한 메시지가 자신에게 해당하는 메시지인지를 파악하고, 메시지 타입에 따라 해당 명령을 수행할 수 있다.
서버(10)는 클라이언트들(30, 50)을 관리하는 시스템으로서, 발간(publish)/구독(subscribe) 메시징을 이용하여 메시지 브로커를 통하여 액티브 클라이언트(30)의 상태를 감시하고, 장애 발생시 스탠바이 클라이언트(50)에서 동일한 기능을 구동하도록 명령을 보낸다.
서버(10)는 클라이언트들(30, 50)의 추가, 제거, 장애 발생, 페일오버 수행 등 클라이언트들의 상태 변화를 파악함으로써 정상적인 고가용성 서비스를 제공할 수 있도록 한다. 서버(10)는 채널에 가입된 클라이언트들(30, 50)의 식별자(ID), 상태 정보, 우선순위, 서비스 유형 등에 대한 정보를 가질 수 있다.
서버(10)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)의 등록 요청 메시지를 수신할 수 있다. 등록 요청 메시지는 클라이언트의 식별자(ID) 정보를 포함할 수 있다. 식별자 정보는 클라이언트가 위치하는 노드의 IP 어드레스일 수 있다. 서버(10)는 등록 요청한 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)를 액티브 클라이언트 리스트에 추가할 수 있다. 또한 서버(10)는 등록 요청한 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)를 스탠바이 클라이언트 리스트에 추가할 수 있다.
서버(10)는 리스트에 추가된 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 복수의 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)의 등록 요청에 대한 피드백으로 등록 완료 메시지를 발간할 수 있다. 이에 따라, 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 채널에 가입될 수 있다.
서버(10)는 채널에 가입된 클라이언트들(30, 50)의 정보를 바탕으로 고가용성(HA) 서비스를 시작하고, 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)를 액티브 상태(ACTIVE) 또는 스탠바이 상태(STANDBY)로 설정할 수 있다.
서버(10)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)의 상태 정보를 포함하는 상태 정보 메시지를 수신할 수 있다.
서버(10)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)의 상태 정보를 기초로 장애 여부를 검출할 수 있다. 서버(10)는 특정 액티브 클라이언트(30)의 상태 정보 메시지가 일정 기간 이상 수신되지 않는 경우 해당 액티브 클라이언트(30)가 장애라고 판단할 수 있다.
서버(10)는 복수의 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)들 중 적어도 하나가 장애라고 판단된 액티브 클라이언트(30)의 서비스를 수행하도록 페일오버 메시지(FAILOVER)를 발간할 수 있다. 이에 따라 액티브 클라이언트(30)에 장애가 발생하더라도 스탠바이 클라이언트(50)에 의해 연속적인 서비스를 수행할 수 있다.
서버(10)는 장애가 복구된 액티브 클라이언트(30)의 장애 복구 메시지를 수신하면, 장애가 복구된 액티브 클라이언트(30)가 서비스를 재개하도록 구동 개시 메시지를 발간할 수 있다. 예를 들어, 장애 복구 메시지는 장애가 복구된 액티브 클라이언트(30)가 발간하는 새로운 등록 요청 메시지일 수 있다. 그리고, 구동 개시 메시지는 새로운 등록 요청 메시지에 대한 피드백으로 서버가 발간한 등록 완료 메시지일 수 있다. 서버(10)는 장애가 복구된 액티브 클라이언트(30)를 액티브 클라이언트 리스트에 다시 추가하여 업데이트할 수 있다. 그리고, 서버(10)는 페일오버 수행 중인 스탠바이 클라이언트(50)의 서비스 수행을 중단하도록 구동 중지 메시지를 발간할 수 있다.
제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 동일한 서비스를 수행하거나 상이한 서비스를 수행할 수 있다. 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 등록 요청 메시지를 발간할 수 있다. 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 등록 요청에 대한 피드백으로 등록 완료 메시지를 수신하고, 해당 서비스를 개시할 수 있다.
제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 상태 정보 메시지를 주기적으로 발간할 수 있다. 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 장애가 발생한 경우 서비스를 중단하고, 장애가 복구되면 장애 복구 메시지(즉, 새로운 등록 요청 메시지)를 발간할 수 있다. 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 구동 개시 메시지(즉, 등록 완료 메시지)를 수신하면 중단된 서비스를 재개할 수 있다.
제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 스탠바이 상태에서 등록 요청 메시지를 발간할 수 있다. 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 등록 요청에 대한 피드백으로 등록 완료 메시지를 수신할 수 있다.
제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 상태 정보 메시지를 주기적으로 발간할 수 있다. 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 페일오버 메시지와 장애가 발생한 액티브 클라이언트(30)가 수행하던 서비스를 수행할 수 있는 구동 파일을 수신하고, 액티브 상태로 전환될 수 있다. 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 장애가 발생한 액티브 클라이언트(30)를 대신하여 서비스를 수행할 수 있다. 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 구동 중지 메시지를 수신하면 수행 중인 서비스를 중단하고, 다시 스탠바이 상태로 복귀할 수 있다.
메시지 브로커(70)는 서버(10)와 클라이언트(30, 50) 간의 메시지 전달을 위한 모듈이다.
메시지 브로커(70)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)가 발간한 등록 요청 메시지를 수신하여, 서버(10)로 전달할 수 있다.
메시지 브로커(70)는 서버(10)가 발간한 등록 완료 메시지를 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)로 각각 전달할 수 있다.
메시지 브로커(70)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)가 발간한 상태 정보 메시지를 수신하여, 서버(10)로 전달할 수 있다. 그리고, 메시지 브로커(70)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)로부터 별도의 경로를 통해 서비스 수행에 필요한 구동 파일을 수신하여 저장할 수 있다.
메시지 브로커(70)는 서버(10)가 발간한 페일오버 메시지를 수신하여, 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)로 각각 전달할 수 있다. 그리고, 메시지 브로커(70)는 페일오버 수행할 해당 스탠바이 클라이언트(50)로 장애가 발생한 액티브 클라이언트(30)의 구동 파일을 전달할 수 있다.
메시지 브로커(70)는 장애 복구된 액티브 클라이언트(30)가 발간한 장애 복구 메시지(즉, 새로운 등록 요청 메시지)를 수신하여 서버(10)로 전달할 수 있다. 메시지 브로커(70)는 서버(10)가 발간한 구동 개시 메시지(즉, 등록 완료 메시지) 및 구동 중지 메시지를 수신하여 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)로 전달할 수 있다. 이에 따라 장애 복구된 액티브 클라이언트(30)는 액티브 상태로 복귀하여 서비스를 재개하고, 페일오버를 수행하던 스탠바이 클라이언트(50)는 서비스를 중단하고 스탠바이 상태로 복귀할 수 있다.
도 2는 본 발명의 실시예에 따른 고가용성 서비스를 위한 서버의 동작 방법을 개략적으로 도시한 블록도이다.
도 2를 참조하면, 서버는 메시지 브로커를 통해 적어도 하나의 액티브 클라이언트와 적어도 하나의 스탠바이 클라이언트로부터 상태 정보 메시지를 주기적으로 수신할 수 있다(S21).
서버는 액티브 클라이언트의 상태 정보 메시지를 기초로 액티브 클라이언트의 장애 여부를 검출할 수 있다(S23). 서버는 액티브 클라이언트의 상태 정보가 정해진 주기에 수신되지 않으면 장애로 판단할 수 있다.
서버는 액티브 클라이언트가 장애로 판단되면, 스탠바이 클라이언트에게 페일오버를 요청하는 페일오버 메시지를 발간할 수 있다(S25). 메시지 브로커는 페일오버 메시지와 구동 파일을 스탠바이 클라이언트로 전달할 수 있다.
서버는 액티브 클라이언트로부터 장애 복구 메시지를 메시지 브로커를 통해 수신하면(S27), 장애 복구된 액티브 클라이언트가 서비스를 재개하도록 하는 구동 개시 메시지와 페일오버 중인 스탠바이 클라이언트가 서비스를 중단하도록 구동 중지 메시지를 발간할 수 있다(S29). 이에 따라 메시지 브로커를 통해 구동 개시 메시지를 수신한 액티브 클라이언트는 액티브 상태로 전환되어 서비스를 다시 시작하고, 구동 중지 메시지를 수신한 스탠바이 클라이언트는 서비스를 중단하여 스탠바이 상태로 전환될 수 있다.
도 3은 본 발명의 실시예에 따른 고가용성 서비스를 위한 메시지 브로커의 동작 방법을 개략적으로 도시한 블록도이다.
도 3을 참조하면, 메시지 브로커는 적어도 하나의 액티브 클라이언트와 적어도 하나의 스탠바이 클라이언트가 발간한 상태 정보 메시지를 주기적으로 수신하여 서버로 전달할 수 있다(S31).
메시지 브로커는 서버가 발간한 페일오버 메시지를 수신하여 스탠바이 클라이언트로 전달할 수 있다(S33). 메시지 브로커는 장애가 발생한 액티브 클라이언트의 구동 파일을 스탠바이 클라이언트로 전달할 수 있다.
예를 들어, 메시지 브로커는 복수의 액티브 클라이언트와 복수의 스탠바이 클라이언트에게 페일오버 메시지를 전달하고, 페일오버 메시지를 수신한 복수의 액티브 클라이언트와 복수의 스탠바이 클라이언트는 각각 페일오버 메시지의 페일오버 수행 클라이언트의 IP 어드레스를 기초로 자신의 메시지인지 여부를 확인할 수 있다. 해당 IP 어드레스의 스탠바이 클라이언트는 자신의 메시지로 확인되면, 수신한 구동 파일을 실행하고 페일오버 명령을 수행할 수 있다.
메시지 브로커는 액티브 클라이언트가 발간한 장애 복구 메시지를 수신하여 서버로 전달할 수 있다(S35).
메시지 브로커는 서버가 발간한 장애 복구된 액티브 클라이언트가 서비스를 재개하도록 하는 구동 개시 메시지와 페일오버 중인 스탠바이 클라이언트가 서비스를 중단하도록 구동 중지 메시지를 수신하여 액티브 클라이언트와 스탠바이 클라이언트로 전달할 수 있다(S37).
예를 들어, 액티브 클라이언트와 스탠바이 클라이언트는 각각 구동 개시 메시지와 구동 중지 메시지를 수신하고 자신의 메시지인지 여부를 확인한 후, 자신에게 해당하는 메시지의 명령을 수행할 수 있다. 액티브 클라이언트는 구동 개시 메시지를 자신의 메시지로 확인하고 서비스를 다시 시작할 수 있고, 스탠바이 클라이언트는 구동 중지 메시지를 자신의 메시지로 확인하고 서비스를 중단할 수 있다.
도 4는 본 발명의 실시예에 따른 고가용성 시스템에서 메시지 흐름을 개략적으로 도시한 흐름도이다.
도 4에서는 설명의 편의를 위해 하나의 액티브 클라이언트(30)와 하나의 스탠바이 클라이언트(50)만을 도시하였으나, 복수의 액티브 클라이언트(30)와 복수의 스탠바이 클라이언트(50)가 구비된 경우에도 동일하게 적용할 수 있음은 물론이다. 서버(10)가 발간한 메시지는 복수의 액티브 클라이언트(30)와 복수의 스탠바이 클라이언트(50)로 전달되고, 각 액티브 클라이언트(30)가 발간한 메시지는 서버(10)로 전달되고, 각 스탠바이 클라이언트(50)가 발간한 메시지는 서버(10)로 전달될 수 있다. 복수의 액티브 클라이언트(30)와 복수의 스탠바이 클라이언트(50)는 수신한 메시지가 자신의 메시지인지를 식별하고, 자신의 메시지인 경우 메시지 타입에 따라 명령을 수행할 수 있다.
도 4를 참조하면, 고가용성 시스템은 등록 단계(1), 상태 관리 단계(2) 및 페일오버 단계(3)로 운영될 수 있다.
등록 단계(1)에서, 액티브 클라이언트(30)는 등록 요청 메시지를 발간하고(S71), 메시지 브로커(70)는 등록 요청 메시지를 수신하여 서버(10)로 전달할 수 있다(S72). 서버(10)는 액티브 클라이언트(30)를 액티브 클라이언트 리스트에 추가할 수 있다(S73). 서버(10)는 등록 완료 메시지를 발간하고(S74), 메시지 브로커(70)는 등록 완료 메시지를 수신하여 액티브 클라이언트(30)로 전달할 수 있다(S75).
유사하게, 스탠바이 클라이언트(50)는 등록 요청 메시지를 발간하고(S76), 메시지 브로커(70)는 등록 요청 메시지를 수신하여 서버(10)로 전달할 수 있다(S77). 서버(10)는 스탠바이 클라이언트(50)를 스탠바이 클라이언트 리스트에 추가할 수 있다(S78). 서버(10)는 등록 완료 메시지를 발간하고(S79), 메시지 브로커(70)는 등록 완료 메시지를 수신하여 스탠바이 클라이언트(50)로 전달할 수 있다(S80).
상태 관리 단계(2)에서, 액티브 클라이언트(30)와 스탠바이 클라이언트(50)는 각각 자신의 상태 정보를 알리는 상태 정보 메시지를 주기적으로 발간할 수 있다(S81, S82). 액티브 클라이언트(30)와 스탠바이 클라이언트(50)는 동시에 또는 다른 시기에 상태 정보 메시지를 각각 발간할 수 있다. 메시지 브로커(70)는 상태 정보 메시지를 수신하여 동시에 또는 다른 시기에 서버(10)로 전달할 수 있다(S83). 서버(10)는 상태 정보 메시지를 기초로 액티브 클라이언트(30)와 스탠바이 클라이언트(50)의 상태를 확인하고, 상태 정보를 업데이트할 수 있다(S84).
페일오버 단계(3)에서, 액티브 클라이언트(30)는 자신의 서비스 수행을 위해 필요한 구동 파일을 메시지 브로커(70)에게 전달하여 백업할 수 있다(S91). 도 4의 실시예에서 구동 파일 백업(S91)은 페일오버 단계(3)에서 수행되고 있으나, 본 발명은 이에 한정되지 않고, 등록 단계(1) 또는 상태 관리 단계(2)에서 수행될 수도 있다. 액티브 클라이언트(30)의 상태 정보 메시지가 일정 기간 동안 수신되지 않으면, 서버(10)는 액티브 클라이언트(30)를 장애로 판단하고(S92), 페일오버 메시지를 발간할 수 있다(S93). 메시지 브로커(70)는 페일오버 메시지를 수신하여 페일오버를 수행할 스탠바이 클라이언트(50)로 전달하고(S95), 또한 백업된 액티브 클라이언트(30)의 구동 파일을 스탠바이 클라이언트(50)로 전달할 수 있다(S94).
도 5는 본 발명의 실시예에 따른 고가용성 시스템이 적용되는 네트워크 환경의 예를 도시한다.
도 5에 도시된 데이터 처리 네트워크(1000)에서 복수의 디바이스들(1010)은 제1네트워크(1020)와 제2네트워크(1070)를 통해 모니터링 서버(1080)와 통신할 수 있다. 복수의 디바이스들(1010)은 카메라, 이동 단말, 컴퓨팅 디바이스 등을 포함할 수 있다. 제1네트워크(1020)와 제2네트워크(1070)는 유선 또는 무선 네트워크일 수 있다. 또한 제1네트워크(1020)와 제2네트워크(1070)는 근거리 또는 원거리 네트워크일 수 있다.
게이트웨이(Gateway)(1050) 또는 미디어 서버(Media Server)는 통신 링크를 통해 제1네트워크(1020)와 제2네트워크(1070) 각각에 연결되어 제1네트워크(1020)와 제2네트워크(1070) 각각의 관문(point of entry)으로 기능할 수 있다. 게이트웨이(1050)는 통신을 위한 관문의 장비이기 때문에 장애 발생 시 모든 네트워크가 마비되는 특정 지점의 오류(Single point of failure)가 될 수도 있다.
따라서, 지속적인 네트워크 환경을 위해, 본 발명의 고가용성 시스템을 게이트웨이(1050)에 적용하여, 게이트웨이(1050)의 지속적인 서비스가 가능하도록 할 수 있다. 예를 들어, 게이트웨이(1050)에 액티브 클라이언트를 구현하고, 게이트웨이(1050)가 스탠바이 클라이언트, 메시지 브로커 및 서버가 구현된 노드와 네트워크를 형성할 수 있다. 다른 예로서, 게이트웨이(1050)에 서버와 액티브 클라이언트를 함께 구현하고, 스탠바이 클라이언트, 메시지 브로커가 구현된 노드와 네트워크를 형성할 수 있다.
본 실시예에 따른 고가용성 시스템은 하드웨어나 소프트웨어 또는 네트워크 등의 시스템 자원에 어떠한 결함이 발생하였을 경우라도 지속적으로 정상적인 서비스를 제공할 수 있다. 즉, 본 실시예에 따른 고가용성 시스템은 네트워크를 통해서 대상 사용자에게 직접적으로 서비스 등을 제공함에 있어서, 서비스의 안전성을 높일 수 있다.
본 발명의 실시예는 고가용성 시스템뿐만 아니라 클러스터링을 제공해야 하는 시스템 및 클라우드 컴퓨팅 환경에서의 노드 관리에 적용할 수 있다.
본 발명에 따른 고가용성 시스템의 운용 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해져야 할 것이다.
100: 고가용성 시스템
10: 서버
30: 액티브 클라이언트
50: 스탠바이 클라이언트
70: 메시지 브로커

Claims (10)

  1. 복수의 노드들이 발간-구독 메시징에 의해 통신하는 고가용성 시스템에 있어서,
    상기 복수의 노드들 중 서로 다른 노드에 각각 위치하고, 주기적으로 상태 메시지를 발간하는 액티브 클라이언트와 스탠바이 클라이언트를 포함하는 복수의 클라이언트들;
    상기 복수의 노드들 중 하나에 위치하고, 상기 복수의 클라이언트들의 상태 정보를 기초로 상기 액티브 클라이언트의 장애가 검출되면, 상기 스탠바이 클라이언트에게 페일오버를 요청하는 페일오버 메시지를 발간하는 서버; 및
    상기 서버가 발간한 메시지를 상기 복수의 클라이언트들로 전달하고, 상기 복수의 클라이언트들이 발간한 메시지를 상기 서버로 전달하는 메시지 브로커;를 포함하고,
    상기 메시지 브로커는 상기 복수의 클라이언트들이 주기적으로 발간하는 상태 메시지를 수신하여 상기 서버로 전달하고, 상기 액티브 클라이언트의 장애 발생 시에 상기 서버가 발간한 페일오버 메시지를 수신하여 상기 스탠바이 클라이언트들로 전달하고,
    상기 메시지 브로커는 상기 액티브 클라이언트가 발간한 장애 복구 메시지를 수신하여 상기 서버로 전달하고, 상기 서버가 발간한 구동 개시 메시지를 수신하여 상기 액티브 클라이언트로 전달하고,
    상기 메시지 브로커는 상기 서버가 발간한 구동 중지 메시지를 수신하여 상기 스탠바이 클라이언트로 전달하는, 고가용성 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 액티브 클라이언트는, 구동에 필요한 구동 파일을 상기 메시지 브로커로 전송하고,
    상기 메시지 브로커는, 상기 액티브 클라이언트의 장애 발생 시에 상기 액티브 클라이언트의 구동 파일을 상기 스탠바이 클라이언트로 전달하고,
    상기 스탠바이 클라이언트는, 상기 구동 파일을 실행하여 상기 액티브 클라이언트의 서비스를 수행하는, 고가용성 시스템.
  3. 삭제
  4. 삭제
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 액티브 클라이언트는, 장애가 복구되면 상기 장애 복구 메시지를 발간하고, 상기 메시지 브로커로부터 상기 서버가 발간한 구동 개시 메시지를 수신하여 서비스를 재개하고,
    상기 스탠바이 클라이언트는, 상기 메시지 브로커로부터 상기 서버가 발간한 구동 중지 메시지를 수신하고 서비스를 중단하는, 고가용성 시스템.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
KR1020140024658A 2014-02-28 2014-02-28 고가용성 시스템 KR102161211B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140024658A KR102161211B1 (ko) 2014-02-28 2014-02-28 고가용성 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140024658A KR102161211B1 (ko) 2014-02-28 2014-02-28 고가용성 시스템

Publications (2)

Publication Number Publication Date
KR20150102591A KR20150102591A (ko) 2015-09-07
KR102161211B1 true KR102161211B1 (ko) 2020-09-29

Family

ID=54243336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140024658A KR102161211B1 (ko) 2014-02-28 2014-02-28 고가용성 시스템

Country Status (1)

Country Link
KR (1) KR102161211B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003107207A1 (en) 2001-01-31 2003-12-24 Zambeel, Inc. Dynamic server directory for distributed computing system
US20100064168A1 (en) 2008-09-11 2010-03-11 Netapp, Inc. Transactional failover of data sets

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000009582A (ko) * 1998-07-27 2000-02-15 윤종용 데이터 보호가 가능한 고가용성 시스템 및 고가용성 시스템의데이터 보호 방법
KR100279660B1 (ko) * 1998-12-08 2001-02-01 이계철 인터넷 제어 메시지 프로토콜(icmp)을 이용한 분산처리 장치의 장애감시 이중화 방법
KR20020054515A (ko) * 2000-12-28 2002-07-08 엘지전자 주식회사 통신관리망에서 에이전트의 이중화 방법
KR100404906B1 (ko) * 2001-12-20 2003-11-07 한국전자통신연구원 클러스터 시스템의 고 가용성 구현장치 및 방법
US20050071477A1 (en) * 2003-03-27 2005-03-31 Microsoft Corporation Providing information links via a network
KR100693663B1 (ko) 2003-12-30 2007-03-14 엘지엔시스(주) 노드 장애 감지 방법 및 시스템
KR101265388B1 (ko) * 2009-07-02 2013-05-20 엔에이치엔비즈니스플랫폼 주식회사 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법
EP2426858B1 (en) * 2010-09-01 2012-10-31 Alcatel Lucent Method and apparatus for restoring a connection through a provider network upon request
KR20120074528A (ko) * 2010-12-28 2012-07-06 엘지에릭슨 주식회사 클러스터 노드 제어 방법 및 그를 위한 전화 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003107207A1 (en) 2001-01-31 2003-12-24 Zambeel, Inc. Dynamic server directory for distributed computing system
US20100064168A1 (en) 2008-09-11 2010-03-11 Netapp, Inc. Transactional failover of data sets

Also Published As

Publication number Publication date
KR20150102591A (ko) 2015-09-07

Similar Documents

Publication Publication Date Title
KR102004160B1 (ko) 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법
US9141491B2 (en) Highly available server system based on cloud computing
RU2601863C2 (ru) Обеспечение службы-свидетеля
US9325757B2 (en) Methods and systems for fault-tolerant distributed stream processing
US20030005350A1 (en) Failover management system
CN104408071A (zh) 一种基于集群管理器的分布式数据库高可用方法及系统
CN110830283B (zh) 故障检测方法、装置、设备和系统
CN104221004A (zh) 对互连失效在群集范围内的一致性检测
CN104158707A (zh) 一种检测并处理集群脑裂的方法和装置
US11223522B1 (en) Context-based intelligent re-initiation of microservices
CN106230622B (zh) 一种集群实现方法及装置
CN112217847A (zh) 微服务平台及其实现方法、电子设备及存储介质
US7020717B1 (en) System and method for resynchronizing interprocess communications connection between consumer and publisher applications by using a shared state memory among message topic server and message routers
KR20150111608A (ko) 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치
CN110661637A (zh) 分布式系统成员变更方法和分布式系统
CN110958151B (zh) 保活检测方法、装置、节点、存储介质及通信系统
CN109412890B (zh) 基于dds的联合试验平台中间件节点状态检测方法
CN103827830A (zh) 用于在事务性中间件机器环境中防止单点瓶颈的系统和方法
CN110233791B (zh) 数据去重方法和装置
KR102161211B1 (ko) 고가용성 시스템
JP2015060375A (ja) クラスタシステム、クラスタ制御方法及びクラスタ制御プログラム
CN111884847A (zh) 用于处理故障的方法和装置
CN108418863B (zh) 控制器集群的管理方法、sdn控制器及存储介质
JP2009075710A (ja) 冗長化システム
CN114679349A (zh) 一种数据通信方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant