KR20150102591A - High Availability System - Google Patents

High Availability System Download PDF

Info

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

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

Disclosed are a high availability system and an operation method of a message broker in a high availability system. The high availability system of the present invention comprises: a plurality of clients in which a plurality of nodes communicate by publication - subscription messaging, which are respectively positioned in nodes different from each other among the nodes, and which includes an active client for periodically publishing a state message and a standby client; a server positioned in one among the nodes to detect an error of the active client based on state information on the clients, and publishing a fail-over message to the standby client; and a message broker for transferring a message published by the server to the clients, and transferring a message published by the clients to the server.

Description

고가용성 시스템{High Availability System}{High Availability System}

본 발명의 실시예는 고가용성 시스템 및 고가용성 시스템에서 메시지 브로커의 동작 방법에 관한 것이다. An embodiment of the present invention relates to a high availability system and a method of operating a message broker in a high availability system.

복수대의 장비를 그룹핑하여 이중화함으로써 무중단 서비스를 지원하는 기능을 HA(High Availability, 고가용성)라 한다. 서비스를 제공하는 네트워크 장비는 일반적으로 복수의 장비를 그룹핑하여 이중화함으로써 고가용성(HA: High Availability) 시스템을 구축하여 무중단 서비스를 지원할 수 있다. HA (High Availability) is a function that supports non-disruptive services by grouping a plurality of devices and duplicating them. In general, a network device providing a service can support a non-stop service by building a high availability (HA) system by grouping a plurality of devices and duplicating them.

한국등록특허공보 제10-0693663호Korean Patent Registration No. 10-0693663

본 발명은 클라이언트가 증가하더라도 상태 감시로 인해 네트워크 부하나 연결이 증가하지 않는 고가용성 시스템을 제공하고자 한다. The present invention provides a high-availability system in which a network portion or a connection is not increased due to status monitoring even when a client is increased.

본 발명의 실시예에 따른 고가용성 시스템은, 복수의 노드들이 발간-구독 메시징에 의해 통신하고, 상기 복수의 노드들 중 서로 다른 노드에 각각 위치하여, 주기적으로 상태 메시지를 발간하는 액티브 클라이언트와 스탠바이 클라이언트를 포함하는 복수의 클라이언트들; 상기 복수의 노드들 중 하나에 위치하여, 상기 복수의 클라이언트들의 상태 정보를 기초로 상기 액티브 클라이언트의 장애 여부를 검출하고, 상기 스탠바이 클라이언트로의 페일오버 메시지를 발간하는 서버; 및 상기 서버가 발간한 메시지를 상기 복수의 클라이언트들로 전달하고, 상기 복수의 클라이언트들이 발간한 메시지를 상기 서버로 전달하는 메시지 브로커;를 포함할 수 있다. A high availability system according to an embodiment of the present invention includes a plurality of nodes communicating by publish-subscribe messaging, each of the plurality of nodes being located at a different node, an active client periodically issuing a status message, A plurality of clients including a client; A server located in one of the plurality of nodes for detecting a failure of the active client based on state information of the plurality of clients and issuing a failover message to the standby client; And a message broker for delivering a message issued by the server to the plurality of clients and for delivering a message issued by the plurality of clients to the server.

상기 액티브 클라이언트는, 구동에 필요한 구동 파일을 상기 메시지 브로커로 전송할 수 있다. The active client can transmit a drive file necessary for driving to the message broker.

상기 메시지 브로커는, 상기 액티브 클라이언트의 구동 파일을 상기 스탠바이 클라이언트로 전달할 수 있다. The message broker may forward the activation file of the active client to the standby client.

상기 스탠바이 클라이언트는, 상기 구동 파일을 실행하여 상기 액티브 클라이언트의 서비스를 수행할 수 있다. The standby client can execute the service of the active client by executing the drive file.

상기 액티브 클라이언트는, 장애가 복구되면 장애 복구 메시지를 발간하고, 상기 메시지 브로커로부터 상기 서버가 발간한 구동 개시 메시지를 수신하고 서비스를 재개할 수 있다.The active client may issue a failure recovery message when the failure is restored, receive a drive start message issued by the server from the message broker, and resume service.

상기 스탠바이 클라이언트는, 상기 메시지 브로커로부터 상기 서버가 발간한 구동 중지 메시지를 수신하고 서비스를 중단할 수 있다.The standby client may receive a stop message issued by the server from the message broker and stop the service.

상기 메시지 브로커는, 상기 액티브 클라이언트와 스탠바이 클라이언트가 발간한 등록 요청 메시지를 상기 서버로 전달할 수 있다.The message broker may forward the registration request message issued by the active client and the standby client to the server.

상기 메시지 브로커는, 상기 서버가 발간한 등록 완료 메시지를 상기 액티브 클라이언트와 스탠바이 클라이언트로 전달할 수 있다.The message broker may forward the registration completion message issued by the server to the active client and the standby client.

상기 액티브 클라이언트와 스탠바이 클라이언트는 각각 적어도 하나 이상의 노드에 구비될 수 있다. The active client and the standby client may each be provided in at least one node.

상기 서버, 및 상기 액티브 클라이언트와 스탠바이 클라이언트 중 하나가 동일 노드에 위치할 수 있다. The server and one of the active client and the standby client may be located at the same node.

본 발명의 실시예에 따른 복수의 노드들이 발간-구독 메시징에 의해 통신하는 고가용성 시스템에서 메시지 브로커의 동작 방법은, 상기 복수의 노드들 중 서로 다른 노드에 각각 위치한 액티브 클라이언트와 스탠바이 클라이언트가 주기적으로 발간하는 상태 메시지를 수신하는 단계; 상기 복수의 노드들 중 하나에 위치하고 상기 액티브 클라이언트와 스탠바이 클라이언트의 상태 정보를 기초로 상기 액티브 클라이언트의 장애를 검출하는 서버에게 상기 상태 메시지를 전달하는 단계; 상기 서버가 상기 액티브 클라이언트의 장애에 대응하여 발간한 상기 스탠바이 클라이언트로의 페일오버 메시지를 상기 서버로부터 수신하는 단계; 및 상기 페일오버 메시지를 상기 액티브 클라이언트와 스탠바이 클라이언트에게 전달하는 단계;를 포함할 수 있다.A method of operating a message broker in a high availability system in which a plurality of nodes communicate by publish-subscribe messaging according to an embodiment of the present invention includes the steps of: Receiving a status message to be issued; Transmitting the status message to a server located in one of the plurality of nodes and detecting a failure of the active client based on status information of the active client and the standby client; Receiving from the server a failover message to the standby client issued by the server in response to a failure of the active client; And forwarding the failover message to the active client and the standby client.

상기 방법은, 상기 액티브 클라이언트로부터 구동에 필요한 구동 파일을 수신하는 단계;를 더 포함할 수 있다. The method may further include receiving a drive file necessary for driving from the active client.

상기 방법은, 상기 액티브 클라이언트의 구동 파일을 페일오버를 수행할 상기 스탠바이 클라이언트로 전달하는 단계;를 더 포함할 수 있다.The method may further include transmitting the activation file of the active client to the standby client to perform a failover.

상기 방법은, 상기 액티브 클라이언트가 장애 복구 후 발간한 장애 복구 메시지를 상기 서버로 전달하는 단계;를 더 포함할 수 있다.The method may further include delivering a failure recovery message issued by the active client after the failure recovery to the server.

상기 방법은, 상기 서버가 발간한 구동 개시 메시지를 상기 장애 복구된 액티브 클라이언트로 전달하는 단계;를 더 포함할 수 있다.The method may further include transmitting a drive start message issued by the server to the fail-over active client.

상기 방법은, 상기 서버가 발간한 구동 중지 메시지를 상기 스탠바이 클라이언트로 전달하는 단계;를 더 포함할 수 있다.The method may further include transmitting a stop message issued by the server to the standby client.

상기 방법은, 상기 액티브 클라이언트와 스탠바이 클라이언트가 발간한 등록 요청 메시지를 상기 서버로 전달하는 단계;를 더 포함할 수 있다. The method may further include transmitting a registration request message issued by the active client and the standby client to the server.

상기 방법은, 상기 서버가 발간한 등록 완료 메시지를 상기 액티브 클라이언트와 스탠바이 클라이언트로 전달하는 단계;를 더 포함할 수 있다. The method may further include transmitting a registration completion message issued by the server to the active client and the standby client.

상기 액티브 클라이언트와 스탠바이 클라이언트는 각각 적어도 하나 이상 구비될 수 있다.At least one of the active client and the standby client may be provided.

본 발명의 실시예에 따른 고가용성 시스템은 클라이언트가 증가하더라도 네트워크 부하의 증가 없이 상태 감시가 가능하다. 또한 본 발명의 실시예에 따른 고가용성 시스템은 클라이언트가 추가 또는 삭제시에도 서버의 변경 없이 운용될 수 있다. The high availability system according to the embodiment of the present invention can monitor the status without increasing the network load even when the number of clients increases. Also, the high availability system according to the embodiment of the present invention can be operated without changing the server even when a client is added or deleted.

도 1은 본 발명의 실시예에 따른 고가용성 시스템을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 고가용성 서비스를 위한 서버의 동작 방법을 개략적으로 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 고가용성 서비스를 위한 메시지 브로커의 동작 방법을 개략적으로 도시한 블록도이다.
도 4는 본 발명의 실시예에 따른 고가용성 시스템에서 메시지 흐름을 개략적으로 도시한 흐름도이다.
도 5는 본 발명의 실시예에 따른 고가용성 시스템이 적용되는 네트워크 환경의 예를 도시한다.
1 is a block diagram that schematically illustrates a high availability system in accordance with an embodiment of the present invention.
2 is a block diagram schematically illustrating a method of operating a server for a high availability service according to an embodiment of the present invention.
3 is a block diagram schematically illustrating a method of operating a message broker for a high availability service according to an embodiment of the present invention.
4 is a flow diagram schematically illustrating a message flow in a high availability system according to an embodiment of the present invention.
5 illustrates an example of a network environment to which a high-availability system according to an embodiment of the present invention is applied.

이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한, 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다. The following merely illustrates the principles of the invention. Thus, those skilled in the art will be able to devise various apparatuses which, although not explicitly described or shown herein, embody the principles of the invention and are included in the concept and scope of the invention. Furthermore, all of the conditional terms and embodiments listed herein are, in principle, intended only for the purpose of enabling understanding of the concepts of the present invention, and are not intended to be limiting in any way to the specifically listed embodiments and conditions . It is also to be understood that the detailed description, as well as the principles, aspects and embodiments of the invention, as well as specific embodiments thereof, are intended to cover structural and functional equivalents thereof. It is also to be understood that such equivalents include all elements contemplated to perform the same function irrespective of currently known equivalents as well as equivalents to be developed in the future.

따라서, 프로세서 또는 이와 유사한 개념으로 표시된 기능 블록을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다. 또한, 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니 되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지 관용의 다른 하드웨어도 포함될 수 있다. Thus, the functions of the various elements shown in the drawings, including the functional blocks shown in the figures or similar concepts, may be provided by use of dedicated hardware as well as hardware capable of executing software in connection with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which may be shared. Also, the use of terms such as processor, control, or similar concepts should not be construed as exclusive reference to hardware capable of executing software, but may include, without limitation, digital signal processor (DSP) hardware, (ROM), random access memory (RAM), and non-volatile memory. Other hardware may also be included.

상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하거나 간략하게 설명하는 것으로 한다. The above objects, features and advantages will become more apparent from the following detailed description in conjunction with the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

한편 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.On the other hand, when an element is referred to as "including " an element, it does not exclude other elements unless specifically stated to the contrary.

이하, 첨부된 도면을 참조하여 바람직한 실시예에 따른 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 고가용성 시스템을 개략적으로 도시한 블록도이다.1 is a block diagram that schematically illustrates a high availability system in accordance with an embodiment of the present invention.

도 1을 참조하면, 본 실시예에 따른 고가용성 시스템(100)은 외부 사용자의 서비스 요청에 대응하기 위해, 각 노드의 운용 상태를 지속적으로 확인하여 운용 중인 서비스에 문제가 발생하였는지, 또는 운용 중인 노드에 문제가 발생하였는지를 확인하여 문제가 발생한 경우 다른 노드로 요청된 서비스 권리를 전환시켜 연속적인 서비스를 할 수 있도록 한다. Referring to FIG. 1, the high availability system 100 according to the present embodiment continually checks the operation status of each node in order to respond to a service request of an external user, and determines whether a problem occurs in a service in operation, It is checked whether a problem has occurred in the node, and if a problem occurs, the service right requested to another node is switched so that the service can be continuously performed.

고가용성 시스템(100)은 서버 및 클라이언트로서 동작하는 노드들이 네트워크를 형성하는 시스템일 수 있다. 서버 및 클라이언트는 다양한 타입의 메시지를 생성하여 유선 또는 무선으로 송신 및 수신할 수 있고, 메시지를 처리하고 저장할 수 있다. 이를 위해 서버 및 클라이언트는 예를 들어, 적어도 하나의 프로세서, 적어도 하나의 메모리, 적어도 하나의 전원 공급부, 적어도 하나의 네트워크 인터페이스, 적어도 하나의 OS(Operating System) 등을 포함할 수 있다. The high availability system 100 may be a system in which nodes acting as servers and clients form a network. The server and the client can generate and send various types of messages, send and receive them wired or wirelessly, and process and store messages. To this end, the server and the client may comprise, for example, at least one processor, at least one memory, at least one power supply, at least one network interface, at least one operating system (OS)

본 실시예에 따른 고가용성 시스템(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)를 포함할 수 있다. The high availability system 100 according to the present embodiment includes a server 10, a plurality of first to nth active clients 30: 30_1, 30_2, ..., 30_n, First to m-th standby clients 50: 50_1, ..., 50_m, and a message broker 70. [

서버(10), 제1 내지 제n 액티브 클라이언트(30; 30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m), 메시지 브로커(70) 각각은 적어도 하나의 노드에 위치할 수 있다. Each of the server 10, the first to nth active clients 30 (30_1, 30_2, ..., 30_n), the first to mth standby clients 50_1 to 50_m, and the message broker 70 And may be located in at least one node.

서버(10), 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, 50_m)는 발간자(publisher) 및 구독자(subscriber)의 기능을 모두 수행할 수 있다.The server 10, the first to nth active clients 30_1 to 30_n and the first to mth standby clients 50_1 and 50_m function as a publisher and a subscriber You can do it all.

발간자(publisher)와 구독자(subscriber)는 특정 타입 또는 특정 카테고리의 메시지를 이용하여 상호 통신할 수 있으며, 이 과정에서 채널이 형성될 수 있다. Publishers and subscribers can communicate with each other using messages of a particular type or a specific category, and channels can be formed during this process.

예를 들어, 서버(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)는 한 쌍의 채널에 의해 복수의 클라이언트들과 통신이 가능하여, 클라이언트마다 통신을 위한 채널을 형성할 필요가 없다. For example, when the server 10 issues a message and the first to nth active clients 30_1, 30_2, ..., 30_n and the first to mth standby clients 50_1, 50_m subscribe to the message The first to the n-th active clients 30_1 to 30_n and the first to m-th standby clients 50_1 and 50_m issue a message and a channel for the server 10 to subscribe to the message is formed . Communications between the publisher and the subscriber may be made via the message broker 70. Accordingly, the server 10 can communicate with a plurality of clients by a pair of channels, and it is not necessary to form a channel for communication for each client.

발간자는 메시지 브로커(70)에게 메시지를 전송하고, 구독자는 메시지 브로커(70)에 subscription을 등록(가입)하여 메시지를 전달받는다. The publisher sends a message to the message broker 70, and the subscriber registers (subscribes) the subscription to the message broker 70 to receive the message.

발간자에 의해 발간된 메시지는 가입된(subscribed) 모든 구독자들에게 전송되고, 동일 채널에 동시에 복수의 발간자들이 위치할 수 있다. A message published by the publisher is sent to all subscribed subscribers, and multiple publishers may be located on the same channel at the same time.

메시지는 메시지 타입 정보 및 목적지 정보 등을 포함할 수 있다. 메시지 타입 정보는 네트워크 등록 요청 메시지(REGISTER_ACTIVE/REGISTER_PASSIVE), 상태 정보를 나타내는 메시지(HEARTBEAT_ACTIVE/HEARTBEAT_PASSIVE), 페일오버 수행 메시지(DO_FAILOVER), 페일오버 중단 메시지(DO_STANDBY), 종료 메시지(FORCE_QUIT) 등을 포함할 수 있다. 목적지 정보는 발간된 메시지의 최종 구독자 정보를 포함할 수 있다. 예를 들어, 목적지 정보는 메시지를 수신할 클라이언트, 페일오버를 수행할 클라이언트 등일 수 있다. The message may include message type information and destination information. The message type information includes a network registration request message (REGISTER_ACTIVE / REGISTER_PASSIVE), a message indicating status information (HEARTBEAT_ACTIVE / HEARTBEAT_PASSIVE), a failover execution message (DO_FAILOVER), a failover interruption message DO_STANDBY, a termination message (FORCE_QUIT) . The destination information may include the last subscriber information of the published message. For example, the destination information may be a client to receive a message, a client to perform a failover, and the like.

제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 목적지 정보를 기초로 수신한 메시지가 자신에게 해당하는 메시지인지를 파악하고, 메시지 타입에 따라 해당 명령을 수행할 수 있다. The first through the nth active clients 30_1 through 30_n and the first through mth standby clients 50_1 through 50_m receive messages based on the destination information, And can execute the corresponding command according to the message type.

서버(10)는 클라이언트들(30, 50)을 관리하는 시스템으로서, 발간(publish)/구독(subscribe) 메시징을 이용하여 메시지 브로커를 통하여 액티브 클라이언트(30)의 상태를 감시하고, 장애 발생시 스탠바이 클라이언트(50)에서 동일한 기능을 구동하도록 명령을 보낸다. The server 10 manages the clients 30 and 50 and monitors the status of the active client 30 through a message broker using publish / subscribe messaging, (50) sends the command to drive the same function.

서버(10)는 클라이언트들(30, 50)의 추가, 제거, 장애 발생, 페일오버 수행 등 클라이언트들의 상태 변화를 파악함으로써 정상적인 고가용성 서비스를 제공할 수 있도록 한다. 서버(10)는 채널에 가입된 클라이언트들(30, 50)의 식별자(ID), 상태 정보, 우선순위, 서비스 유형 등에 대한 정보를 가질 수 있다. The server 10 can provide normal high-availability services by detecting changes in the status of clients, such as addition, removal, failure, fail-over, etc. of the clients 30 and 50. The server 10 may have information on an identifier (ID), status information, priority, service type, etc. of the clients 30 and 50 subscribed to the channel.

서버(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)를 스탠바이 클라이언트 리스트에 추가할 수 있다. The server 10 may receive the registration request messages of the first to nth active clients 30_1 to 30_n and the first to mth standby clients 50_1 to 50_m. The registration request message may include identifier information (ID) of the client. The identifier information may be the IP address of the node where the client is located. The server 10 may add the first to nth active clients 30_1, 30_2, ..., 30_n that have requested registration to the active client list. In addition, the server 10 may add the first through m-th standby clients 50_1, ..., 50_m requested to be registered to the standby client list.

서버(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)는 채널에 가입될 수 있다. The server 10 registers the first to n-th active clients 30_1, 30_2, ..., and 30_n added to the list and the registration requests of the first to m-th standby clients 50_1 to 50_m A registration completion message can be issued with feedback. Accordingly, the first to n-th active clients 30_1, 30_2, ..., 30_n and the first to m-th standby clients 50_1, ..., 50_m can be subscribed to the channel.

서버(10)는 채널에 가입된 클라이언트들(30, 50)의 정보를 바탕으로 고가용성(HA) 서비스를 시작하고, 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)를 액티브 상태(ACTIVE) 또는 스탠바이 상태(STANDBY)로 설정할 수 있다. The server 10 starts a high availability (HA) service based on the information of the clients 30 and 50 subscribed to the channel, and the first to nth active clients 30_1, 30_2, ..., The first to m-th standby clients 50_1 to 50_m can be set to the active state (ACTIVE) or the standby state (STANDBY).

서버(10)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)의 상태 정보를 포함하는 상태 정보 메시지를 수신할 수 있다. The server 10 transmits a status information message including status information of the first through n-th active clients 30_1, 30_2, ..., 30_n and the first through m-th standby clients 50_1, ..., .

서버(10)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)의 상태 정보를 기초로 장애 여부를 검출할 수 있다. 서버(10)는 특정 액티브 클라이언트(30)의 상태 정보 메시지가 일정 기간 이상 수신되지 않는 경우 해당 액티브 클라이언트(30)가 장애라고 판단할 수 있다. The server 10 can detect the failure based on the status information of the first through n-th active clients 30_1, 30_2, ..., 30_n. The server 10 may determine that the active client 30 has failed if the status information message of the specific active client 30 is not received for a predetermined period or more.

서버(10)는 복수의 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)들 중 적어도 하나가 장애라고 판단된 액티브 클라이언트(30)의 서비스를 수행하도록 페일오버 메시지(FAILOVER)를 발간할 수 있다. 이에 따라 액티브 클라이언트(30)에 장애가 발생하더라도 스탠바이 클라이언트(50)에 의해 연속적인 서비스를 수행할 수 있다. The server 10 issues a fail-over message (FAILOVER) so that at least one of the first through m-th standby clients 50_1, ..., and 50_m performs the service of the active client 30, can do. Accordingly, even if a failure occurs in the active client 30, the standby client 50 can continuously perform the service.

서버(10)는 장애가 복구된 액티브 클라이언트(30)의 장애 복구 메시지를 수신하면, 장애가 복구된 액티브 클라이언트(30)가 서비스를 재개하도록 구동 개시 메시지를 발간할 수 있다. 예를 들어, 장애 복구 메시지는 장애가 복구된 액티브 클라이언트(30)가 발간하는 새로운 등록 요청 메시지일 수 있다. 그리고, 구동 개시 메시지는 새로운 등록 요청 메시지에 대한 피드백으로 서버가 발간한 등록 완료 메시지일 수 있다. 서버(10)는 장애가 복구된 액티브 클라이언트(30)를 액티브 클라이언트 리스트에 다시 추가하여 업데이트할 수 있다. 그리고, 서버(10)는 페일오버 수행 중인 스탠바이 클라이언트(50)의 서비스 수행을 중단하도록 구동 중지 메시지를 발간할 수 있다. When the server 10 receives the failure recovery message of the active client 30 from which the failure has been restored, the server 10 may issue a start-up message so that the failed active client 30 can resume the service. For example, the failback message may be a new registration request message issued by the failed active client 30. The drive start message may be a registration completion message issued by the server as a feedback for a new registration request message. The server 10 can update the failed active client 30 by adding it back to the active client list. Then, the server 10 may issue a drive stop message to stop the service of the standby client 50 that is performing the failover.

제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 동일한 서비스를 수행하거나 상이한 서비스를 수행할 수 있다. 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 등록 요청 메시지를 발간할 수 있다. 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 등록 요청에 대한 피드백으로 등록 완료 메시지를 수신하고, 해당 서비스를 개시할 수 있다. The first to nth active clients 30_1, 30_2, ..., 30_n may perform the same service or perform different services. The first to nth active clients 30_1, 30_2, ..., 30_n may issue a registration request message. The first to n-th active clients 30_1, 30_2, ..., 30_n may receive the registration completion message as a feedback of the registration request and start the corresponding service.

제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 상태 정보 메시지를 주기적으로 발간할 수 있다. 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 장애가 발생한 경우 서비스를 중단하고, 장애가 복구되면 장애 복구 메시지(즉, 새로운 등록 요청 메시지)를 발간할 수 있다. 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n)는 구동 개시 메시지(즉, 등록 완료 메시지)를 수신하면 중단된 서비스를 재개할 수 있다. The first through n-th active clients 30_1, 30_2, ..., 30_n may periodically issue status information messages. The first to nth active clients 30_1, 30_2, ..., 30_n can stop the service if a failure occurs and issue a failure recovery message (i.e., a new registration request message) when the failure is restored. The first to nth active clients 30_1, 30_2, ..., 30_n may resume the suspended service upon receiving a drive start message (i.e., a registration completion message).

제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 스탠바이 상태에서 등록 요청 메시지를 발간할 수 있다. 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)는 등록 요청에 대한 피드백으로 등록 완료 메시지를 수신할 수 있다. The first to m-th standby clients 50_1, ..., and 50_m may issue a registration request message in a standby state. The first to m-th standby clients 50_1, ..., and 50_m may receive the registration completion message as feedback for the registration request.

제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)는 구동 중지 메시지를 수신하면 수행 중인 서비스를 중단하고, 다시 스탠바이 상태로 복귀할 수 있다. The first to m-th standby clients 50_1, ..., and 50_m may periodically issue status information messages. The first to m-th standby clients 50_1 to 50_m may receive a failover message and a drive file capable of performing a service performed by the failed active client 30, and may be switched to an active state . The first to m-th standby clients 50_1, ..., and 50_m can perform services on behalf of the failed active client 30. When the first to m-th standby clients 50_1, ..., and 50_m receive the drive stop message, they can stop the service being performed and return to the standby state again.

메시지 브로커(70)는 서버(10)와 클라이언트(30, 50) 간의 메시지 전달을 위한 모듈이다.The message broker 70 is a module for transferring messages between the server 10 and the clients 30 and 50.

메시지 브로커(70)는 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)가 발간한 등록 요청 메시지를 수신하여, 서버(10)로 전달할 수 있다. The message broker 70 receives a registration request message issued by the first through the n-th active clients 30_1, 30_2, ..., and 30_n and the first through m-th standby clients 50_1 through 50_m To the server 10.

메시지 브로커(70)는 서버(10)가 발간한 등록 완료 메시지를 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)로 각각 전달할 수 있다. The message broker 70 transmits the registration completion message issued by the server 10 to the first to nth active clients 30_1 to 30_n and the first to mth standby clients 50_1 to 50_n, 50_m, respectively.

메시지 브로커(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)로부터 별도의 경로를 통해 서비스 수행에 필요한 구동 파일을 수신하여 저장할 수 있다. The message broker 70 receives the status information messages issued by the first through the n-th active clients 30_1, 30_2, ..., and 30_n and the first through m-th standby clients 50_1 through 50_m To the server 10. The message broker 70 can receive and store the drive files necessary for service execution from the first to nth active clients 30_1, 30_2, ..., and 30_n through separate routes.

메시지 브로커(70)는 서버(10)가 발간한 페일오버 메시지를 수신하여, 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)로 각각 전달할 수 있다. 그리고, 메시지 브로커(70)는 페일오버 수행할 해당 스탠바이 클라이언트(50)로 장애가 발생한 액티브 클라이언트(30)의 구동 파일을 전달할 수 있다. The message broker 70 receives the failover message issued by the server 10 and transmits the failover message to the first to nth active clients 30_1, 30_2, ..., 30_n and the first to mth standby clients 50_1, ..., and 50_m, respectively. Then, the message broker 70 can deliver the operation file of the failed active client 30 to the corresponding standby client 50 to be failed over.

메시지 브로커(70)는 장애 복구된 액티브 클라이언트(30)가 발간한 장애 복구 메시지(즉, 새로운 등록 요청 메시지)를 수신하여 서버(10)로 전달할 수 있다. 메시지 브로커(70)는 서버(10)가 발간한 구동 개시 메시지(즉, 등록 완료 메시지) 및 구동 중지 메시지를 수신하여 제1 내지 제n 액티브 클라이언트(30_1, 30_2, ..., 30_n) 및 제1 내지 제m 스탠바이 클라이언트(50_1, ..., 50_m)로 전달할 수 있다. 이에 따라 장애 복구된 액티브 클라이언트(30)는 액티브 상태로 복귀하여 서비스를 재개하고, 페일오버를 수행하던 스탠바이 클라이언트(50)는 서비스를 중단하고 스탠바이 상태로 복귀할 수 있다. The message broker 70 can receive the failback message (i.e., a new registration request message) issued by the failing active client 30 and deliver it to the server 10. The message broker 70 receives the drive start message (i.e., the registration completion message) and the drive stop message issued by the server 10 and stores the first to nth active clients 30_1, 30_2, ..., 30_n, 1 to m-th standby clients 50_1, ..., 50_m. Accordingly, the failed active client 30 returns to the active state to resume the service, and the standby client 50 that has performed the failover can stop the service and return to the standby state.

도 2는 본 발명의 실시예에 따른 고가용성 서비스를 위한 서버의 동작 방법을 개략적으로 도시한 블록도이다. 2 is a block diagram schematically illustrating a method of operating a server for a high availability service according to an embodiment of the present invention.

도 2를 참조하면, 서버는 메시지 브로커를 통해 적어도 하나의 액티브 클라이언트와 적어도 하나의 스탠바이 클라이언트로부터 상태 정보 메시지를 주기적으로 수신할 수 있다(S21).Referring to FIG. 2, a server periodically receives a status information message from at least one active client and at least one standby client through a message broker (S21).

서버는 액티브 클라이언트의 상태 정보 메시지를 기초로 액티브 클라이언트의 장애 여부를 검출할 수 있다(S23). 서버는 액티브 클라이언트의 상태 정보가 정해진 주기에 수신되지 않으면 장애로 판단할 수 있다. The server can detect the failure of the active client based on the status information message of the active client (S23). The server can determine that the active client's status information is not received within a predetermined period of time.

서버는 액티브 클라이언트가 장애로 판단되면, 스탠바이 클라이언트에게 페일오버를 요청하는 페일오버 메시지를 발간할 수 있다(S25). 메시지 브로커는 페일오버 메시지와 구동 파일을 스탠바이 클라이언트로 전달할 수 있다. If it is determined that the active client has failed, the server may issue a fail-over message requesting the standby client to fail (S25). The message broker can pass the failover message and the running file to the standby client.

서버는 액티브 클라이언트로부터 장애 복구 메시지를 메시지 브로커를 통해 수신하면(S27), 장애 복구된 액티브 클라이언트가 서비스를 재개하도록 하는 구동 개시 메시지와 페일오버 중인 스탠바이 클라이언트가 서비스를 중단하도록 구동 중지 메시지를 발간할 수 있다(S29). 이에 따라 메시지 브로커를 통해 구동 개시 메시지를 수신한 액티브 클라이언트는 액티브 상태로 전환되어 서비스를 다시 시작하고, 구동 중지 메시지를 수신한 스탠바이 클라이언트는 서비스를 중단하여 스탠바이 상태로 전환될 수 있다. When the server receives the failure recovery message from the active client through the message broker (S27), the server issues a drive start message for causing the failed active client to restart the service and a standby client in the fail-over to suspend the service (S29). Accordingly, the active client receiving the drive start message through the message broker is switched to the active state to restart the service, and the standby client receiving the drive stop message can switch to the standby state by stopping the service.

도 3은 본 발명의 실시예에 따른 고가용성 서비스를 위한 메시지 브로커의 동작 방법을 개략적으로 도시한 블록도이다. 3 is a block diagram schematically illustrating a method of operating a message broker for a high availability service according to an embodiment of the present invention.

도 3을 참조하면, 메시지 브로커는 적어도 하나의 액티브 클라이언트와 적어도 하나의 스탠바이 클라이언트가 발간한 상태 정보 메시지를 주기적으로 수신하여 서버로 전달할 수 있다(S31).Referring to FIG. 3, the message broker periodically receives a status information message issued by at least one active client and at least one standby client, and transmits the status information message to the server (S31).

메시지 브로커는 서버가 발간한 페일오버 메시지를 수신하여 스탠바이 클라이언트로 전달할 수 있다(S33). 메시지 브로커는 장애가 발생한 액티브 클라이언트의 구동 파일을 스탠바이 클라이언트로 전달할 수 있다. The message broker can receive the failover message issued by the server and forward it to the standby client (S33). The message broker can forward the running file of the failed active client to the standby client.

예를 들어, 메시지 브로커는 복수의 액티브 클라이언트와 복수의 스탠바이 클라이언트에게 페일오버 메시지를 전달하고, 페일오버 메시지를 수신한 복수의 액티브 클라이언트와 복수의 스탠바이 클라이언트는 각각 페일오버 메시지의 페일오버 수행 클라이언트의 IP 어드레스를 기초로 자신의 메시지인지 여부를 확인할 수 있다. 해당 IP 어드레스의 스탠바이 클라이언트는 자신의 메시지로 확인되면, 수신한 구동 파일을 실행하고 페일오버 명령을 수행할 수 있다. For example, a message broker delivers a failover message to a plurality of active clients and a plurality of standby clients, and a plurality of active clients and a plurality of standby clients, each of which receives a failover message, It is possible to confirm whether or not the message is its own based on the IP address. When the standby client of the IP address is confirmed by its own message, it can execute the received drive file and execute the failover command.

메시지 브로커는 액티브 클라이언트가 발간한 장애 복구 메시지를 수신하여 서버로 전달할 수 있다(S35). The message broker may receive the failback message issued by the active client and forward it to the server (S35).

메시지 브로커는 서버가 발간한 장애 복구된 액티브 클라이언트가 서비스를 재개하도록 하는 구동 개시 메시지와 페일오버 중인 스탠바이 클라이언트가 서비스를 중단하도록 구동 중지 메시지를 수신하여 액티브 클라이언트와 스탠바이 클라이언트로 전달할 수 있다(S37). The message broker may receive a start-up message that causes the fail-over active client issued by the server to resume the service, and a suspend message that the standby client is failing to stop the service, and may forward the message to the active client and the standby client at step S37. .

예를 들어, 액티브 클라이언트와 스탠바이 클라이언트는 각각 구동 개시 메시지와 구동 중지 메시지를 수신하고 자신의 메시지인지 여부를 확인한 후, 자신에게 해당하는 메시지의 명령을 수행할 수 있다. 액티브 클라이언트는 구동 개시 메시지를 자신의 메시지로 확인하고 서비스를 다시 시작할 수 있고, 스탠바이 클라이언트는 구동 중지 메시지를 자신의 메시지로 확인하고 서비스를 중단할 수 있다. For example, the active client and the standby client can receive a driving start message and a driving stop message, check whether each message is a message of itself, and then execute an instruction of a corresponding message. The active client can confirm the start-up message with its own message and restart the service, and the standby client can confirm the start-stop message with its own message and stop the service.

도 4는 본 발명의 실시예에 따른 고가용성 시스템에서 메시지 흐름을 개략적으로 도시한 흐름도이다. 4 is a flow diagram schematically illustrating a message flow in a high availability system according to an embodiment of the present invention.

도 4에서는 설명의 편의를 위해 하나의 액티브 클라이언트(30)와 하나의 스탠바이 클라이언트(50)만을 도시하였으나, 복수의 액티브 클라이언트(30)와 복수의 스탠바이 클라이언트(50)가 구비된 경우에도 동일하게 적용할 수 있음은 물론이다. 서버(10)가 발간한 메시지는 복수의 액티브 클라이언트(30)와 복수의 스탠바이 클라이언트(50)로 전달되고, 각 액티브 클라이언트(30)가 발간한 메시지는 서버(10)로 전달되고, 각 스탠바이 클라이언트(50)가 발간한 메시지는 서버(10)로 전달될 수 있다. 복수의 액티브 클라이언트(30)와 복수의 스탠바이 클라이언트(50)는 수신한 메시지가 자신의 메시지인지를 식별하고, 자신의 메시지인 경우 메시지 타입에 따라 명령을 수행할 수 있다. Although only one active client 30 and one standby client 50 are shown in FIG. 4 for the sake of convenience, the present invention is equally applicable to a case where a plurality of active clients 30 and a plurality of standby clients 50 are provided. Of course. A message issued by the server 10 is delivered to a plurality of active clients 30 and a plurality of standby clients 50. A message issued by each active client 30 is delivered to the server 10, A message issued by the server 50 may be transmitted to the server 10. A plurality of active clients (30) and a plurality of standby clients (50) can identify whether a received message is a message of itself, and can execute an instruction according to a message type if the received message is its own message.

도 4를 참조하면, 고가용성 시스템은 등록 단계(1), 상태 관리 단계(2) 및 페일오버 단계(3)로 운영될 수 있다.Referring to FIG. 4, a high availability system may operate in registration phase 1, state management phase 2, and failover phase 3.

등록 단계(1)에서, 액티브 클라이언트(30)는 등록 요청 메시지를 발간하고(S71), 메시지 브로커(70)는 등록 요청 메시지를 수신하여 서버(10)로 전달할 수 있다(S72). 서버(10)는 액티브 클라이언트(30)를 액티브 클라이언트 리스트에 추가할 수 있다(S73). 서버(10)는 등록 완료 메시지를 발간하고(S74), 메시지 브로커(70)는 등록 완료 메시지를 수신하여 액티브 클라이언트(30)로 전달할 수 있다(S75).In the registration step 1, the active client 30 issues a registration request message (S71), and the message broker 70 receives the registration request message and delivers it to the server 10 (S72). The server 10 may add the active client 30 to the active client list (S73). The server 10 issues a registration completion message (S74), and the message broker 70 can receive the registration completion message and deliver it to the active client 30 (S75).

유사하게, 스탠바이 클라이언트(50)는 등록 요청 메시지를 발간하고(S76), 메시지 브로커(70)는 등록 요청 메시지를 수신하여 서버(10)로 전달할 수 있다(S77). 서버(10)는 스탠바이 클라이언트(50)를 스탠바이 클라이언트 리스트에 추가할 수 있다(S78). 서버(10)는 등록 완료 메시지를 발간하고(S79), 메시지 브로커(70)는 등록 완료 메시지를 수신하여 스탠바이 클라이언트(50)로 전달할 수 있다(S80).Similarly, the standby client 50 issues a registration request message (S76), and the message broker 70 can receive the registration request message and deliver it to the server 10 (S77). The server 10 may add the standby client 50 to the standby client list (S78). The server 10 issues a registration completion message (S79), and the message broker 70 can receive the registration completion message and deliver it to the standby client 50 (S80).

상태 관리 단계(2)에서, 액티브 클라이언트(30)와 스탠바이 클라이언트(50)는 각각 자신의 상태 정보를 알리는 상태 정보 메시지를 주기적으로 발간할 수 있다(S81, S82). 액티브 클라이언트(30)와 스탠바이 클라이언트(50)는 동시에 또는 다른 시기에 상태 정보 메시지를 각각 발간할 수 있다. 메시지 브로커(70)는 상태 정보 메시지를 수신하여 동시에 또는 다른 시기에 서버(10)로 전달할 수 있다(S83). 서버(10)는 상태 정보 메시지를 기초로 액티브 클라이언트(30)와 스탠바이 클라이언트(50)의 상태를 확인하고, 상태 정보를 업데이트할 수 있다(S84).In the state management step 2, the active client 30 and the standby client 50 can periodically publish a status information message informing their own status information (S81, S82). The active client 30 and the standby client 50 may publish status information messages at the same time or at different times, respectively. The message broker 70 can receive the status information message and deliver it to the server 10 at the same time or at another time (S83). The server 10 can check the status of the active client 30 and the standby client 50 based on the status information message and update the status information (S84).

페일오버 단계(3)에서, 액티브 클라이언트(30)는 자신의 서비스 수행을 위해 필요한 구동 파일을 메시지 브로커(70)에게 전달하여 백업할 수 있다(S91). 도 4의 실시예에서 구동 파일 백업(S91)은 페일오버 단계(3)에서 수행되고 있으나, 본 발명은 이에 한정되지 않고, 등록 단계(1) 또는 상태 관리 단계(2)에서 수행될 수도 있다. 액티브 클라이언트(30)의 상태 정보 메시지가 일정 기간 동안 수신되지 않으면, 서버(10)는 액티브 클라이언트(30)를 장애로 판단하고(S92), 페일오버 메시지를 발간할 수 있다(S93). 메시지 브로커(70)는 페일오버 메시지를 수신하여 페일오버를 수행할 스탠바이 클라이언트(50)로 전달하고(S95), 또한 백업된 액티브 클라이언트(30)의 구동 파일을 스탠바이 클라이언트(50)로 전달할 수 있다(S94). In the failover step (3), the active client (30) transfers the drive file necessary for performing its service to the message broker (70) and can back it up (S91). In the embodiment of FIG. 4, the drive file backup S91 is performed in the failover step 3, but the present invention is not limited to this and may be performed in the registration step 1 or the state management step 2. If the status information message of the active client 30 is not received for a certain period of time, the server 10 determines that the active client 30 is a failure (S92) and can issue a fail-over message (S93). The message broker 70 may receive the failover message and forward it to the standby client 50 to perform failover in step S95 and may also forward the backup file of the active client 30 to the standby client 50 (S94).

도 5는 본 발명의 실시예에 따른 고가용성 시스템이 적용되는 네트워크 환경의 예를 도시한다. 5 illustrates an example of a network environment to which a high-availability system according to an embodiment of the present invention is applied.

도 5에 도시된 데이터 처리 네트워크(1000)에서 복수의 디바이스들(1010)은 제1네트워크(1020)와 제2네트워크(1070)를 통해 모니터링 서버(1080)와 통신할 수 있다. 복수의 디바이스들(1010)은 카메라, 이동 단말, 컴퓨팅 디바이스 등을 포함할 수 있다. 제1네트워크(1020)와 제2네트워크(1070)는 유선 또는 무선 네트워크일 수 있다. 또한 제1네트워크(1020)와 제2네트워크(1070)는 근거리 또는 원거리 네트워크일 수 있다. In the data processing network 1000 shown in FIG. 5, the plurality of devices 1010 can communicate with the monitoring server 1080 through the first network 1020 and the second network 1070. The plurality of devices 1010 may include a camera, a mobile terminal, a computing device, and the like. The first network 1020 and the second network 1070 may be wired or wireless networks. Also, the first network 1020 and the second network 1070 may be local or remote networks.

게이트웨이(Gateway)(1050) 또는 미디어 서버(Media Server)는 통신 링크를 통해 제1네트워크(1020)와 제2네트워크(1070) 각각에 연결되어 제1네트워크(1020)와 제2네트워크(1070) 각각의 관문(point of entry)으로 기능할 수 있다. 게이트웨이(1050)는 통신을 위한 관문의 장비이기 때문에 장애 발생 시 모든 네트워크가 마비되는 특정 지점의 오류(Single point of failure)가 될 수도 있다. A gateway 1050 or a media server is connected to the first network 1020 and the second network 1070 through a communication link and is connected to the first network 1020 and the second network 1070 As a point of entry. Since the gateway 1050 is a gateway device for communication, it may be a single point of failure where all the networks are paralyzed in the event of a failure.

따라서, 지속적인 네트워크 환경을 위해, 본 발명의 고가용성 시스템을 게이트웨이(1050)에 적용하여, 게이트웨이(1050)의 지속적인 서비스가 가능하도록 할 수 있다. 예를 들어, 게이트웨이(1050)에 액티브 클라이언트를 구현하고, 게이트웨이(1050)가 스탠바이 클라이언트, 메시지 브로커 및 서버가 구현된 노드와 네트워크를 형성할 수 있다. 다른 예로서, 게이트웨이(1050)에 서버와 액티브 클라이언트를 함께 구현하고, 스탠바이 클라이언트, 메시지 브로커가 구현된 노드와 네트워크를 형성할 수 있다. Thus, for a persistent network environment, the high availability system of the present invention can be applied to the gateway 1050 to enable continuous service of the gateway 1050. [ For example, an active client may be implemented in the gateway 1050, and the gateway 1050 may form a network with the node on which the standby client, message broker, and server are implemented. As another example, a server and an active client may be implemented together in the gateway 1050, and a standby client and a message broker may form a network with the implemented node.

본 실시예에 따른 고가용성 시스템은 하드웨어나 소프트웨어 또는 네트워크 등의 시스템 자원에 어떠한 결함이 발생하였을 경우라도 지속적으로 정상적인 서비스를 제공할 수 있다. 즉, 본 실시예에 따른 고가용성 시스템은 네트워크를 통해서 대상 사용자에게 직접적으로 서비스 등을 제공함에 있어서, 서비스의 안전성을 높일 수 있다. The high availability system according to the present embodiment can continuously provide a normal service regardless of any defects occurring in system resources such as hardware, software, or a network. That is, the high-availability system according to the present embodiment can enhance the security of the service in providing the service directly to the target user through the network.

본 발명의 실시예는 고가용성 시스템뿐만 아니라 클러스터링을 제공해야 하는 시스템 및 클라우드 컴퓨팅 환경에서의 노드 관리에 적용할 수 있다. The embodiments of the present invention can be applied not only to a high availability system but also to a system in which clustering must be provided and node management in a cloud computing environment.

본 발명에 따른 고가용성 시스템의 운용 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The method of operating the high-availability system according to the present invention can be implemented as a computer-readable code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers of the technical field to which the present invention belongs.

본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, You will understand. Accordingly, the true scope of protection of the present invention should be determined only by the appended claims.

100: 고가용성 시스템
10: 서버
30: 액티브 클라이언트
50: 스탠바이 클라이언트
70: 메시지 브로커
100: High availability system
10: Server
30: Active Client
50: Standby client
70: Message Broker

Claims (10)

복수의 노드들이 발간-구독 메시징에 의해 통신하는 고가용성 시스템에 있어서,
상기 복수의 노드들 중 서로 다른 노드에 각각 위치하여, 주기적으로 상태 메시지를 발간하는 액티브 클라이언트와 스탠바이 클라이언트를 포함하는 복수의 클라이언트들;
상기 복수의 노드들 중 하나에 위치하여, 상기 복수의 클라이언트들의 상태 정보를 기초로 상기 액티브 클라이언트의 장애 여부를 검출하고, 상기 스탠바이 클라이언트로의 페일오버 메시지를 발간하는 서버; 및
상기 서버가 발간한 메시지를 상기 복수의 클라이언트들로 전달하고, 상기 복수의 클라이언트들이 발간한 메시지를 상기 서버로 전달하는 메시지 브로커;를 포함하는, 고가용성 시스템.
In a high availability system in which a plurality of nodes communicate by publish-subscribe messaging,
A plurality of clients located at different ones of the plurality of nodes and each including an active client and a standby client that periodically issue status messages;
A server located in one of the plurality of nodes for detecting a failure of the active client based on state information of the plurality of clients and issuing a failover message to the standby client; And
And a message broker for delivering a message issued by the server to the plurality of clients and for delivering a message issued by the plurality of clients to the server.
제1항에 있어서,
상기 액티브 클라이언트는, 구동에 필요한 구동 파일을 상기 메시지 브로커로 전송하는, 고가용성 시스템.
The method according to claim 1,
Wherein the active client sends to the message broker a drive file necessary for driving.
제2항에 있어서,
상기 메시지 브로커는, 상기 액티브 클라이언트의 구동 파일을 상기 스탠바이 클라이언트로 전달하는, 고가용성 시스템.
3. The method of claim 2,
Wherein the message broker delivers the activation file of the active client to the standby client.
제3항에 있어서,
상기 스탠바이 클라이언트는, 상기 구동 파일을 실행하여 상기 액티브 클라이언트의 서비스를 수행하는, 고가용성 시스템.
The method of claim 3,
And the standby client performs the service of the active client by executing the drive file.
제1항에 있어서,
상기 액티브 클라이언트는, 장애가 복구되면 장애 복구 메시지를 발간하고, 상기 메시지 브로커로부터 상기 서버가 발간한 구동 개시 메시지를 수신하여 서비스를 재개하는, 고가용성 시스템.
The method according to claim 1,
Wherein the active client issues a failback message when the failure is restored and receives a drive start message issued by the server from the message broker to resume service.
제5항에 있어서,
상기 스탠바이 클라이언트는, 상기 메시지 브로커로부터 상기 서버가 발간한 구동 중지 메시지를 수신하고 서비스를 중단하는, 고가용성 시스템.
6. The method of claim 5,
Wherein the standby client receives from the message broker a drive stop message issued by the server and stops the service.
제1항에 있어서,
상기 메시지 브로커는, 상기 액티브 클라이언트와 스탠바이 클라이언트가 발간한 등록 요청 메시지를 상기 서버로 전달하는, 고가용성 시스템.
The method according to claim 1,
Wherein the message broker delivers a registration request message issued by the active client and the standby client to the server.
제7항에 있어서,
상기 메시지 브로커는, 상기 서버가 발간한 등록 완료 메시지를 상기 액티브 클라이언트와 스탠바이 클라이언트로 전달하는, 고가용성 시스템.
8. The method of claim 7,
Wherein the message broker delivers a registration completion message issued by the server to the active client and the standby client.
제1항에 있어서,
상기 액티브 클라이언트와 스탠바이 클라이언트는 각각 적어도 하나 이상의 노드에 구비된, 고가용성 시스템.
The method according to claim 1,
Wherein the active client and the standby client are each provided at at least one node.
제1항에 있어서,
상기 서버, 및 상기 액티브 클라이언트와 스탠바이 클라이언트 중 하나가 동일 노드에 위치하는, 고가용성 시스템.
The method according to claim 1,
Wherein the server and one of the active client and the standby client are located at the same node.
KR1020140024658A 2014-02-28 2014-02-28 High Availability System KR102161211B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140024658A KR102161211B1 (en) 2014-02-28 2014-02-28 High Availability System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140024658A KR102161211B1 (en) 2014-02-28 2014-02-28 High Availability System

Publications (2)

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

Family

ID=54243336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140024658A KR102161211B1 (en) 2014-02-28 2014-02-28 High Availability System

Country Status (1)

Country Link
KR (1) KR102161211B1 (en)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000009582A (en) * 1998-07-27 2000-02-15 윤종용 High-availability system and data protection method of thereof for protection of data
KR20000038701A (en) * 1998-12-08 2000-07-05 이계철 Method for duplicating error monitoring of distribution processor using internet control message protocol
KR20020054515A (en) * 2000-12-28 2002-07-08 엘지전자 주식회사 Duplication method of agent in telecommunication management network
KR20030051930A (en) * 2001-12-20 2003-06-26 한국전자통신연구원 Apparatus and method for embodying high availability in cluster system
WO2003107207A1 (en) * 2001-01-31 2003-12-24 Zambeel, Inc. Dynamic server directory for distributed computing system
KR20040086539A (en) * 2003-03-27 2004-10-11 마이크로소프트 코포레이션 Providing information links via a network
KR100693663B1 (en) 2003-12-30 2007-03-14 엘지엔시스(주) System and Method for detecting obstacle of node
US20100064168A1 (en) * 2008-09-11 2010-03-11 Netapp, Inc. Transactional failover of data sets
KR20110002708A (en) * 2009-07-02 2011-01-10 엔에이치엔(주) High availability data base management system and method for managing database using high availability data base management system
KR20120074528A (en) * 2010-12-28 2012-07-06 엘지에릭슨 주식회사 Cluster node control method and internet protocol private branch exchange
KR20130062340A (en) * 2010-09-01 2013-06-12 알까뗄 루슨트 Method and apparatus for restoring a connection through a provider network upon request

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000009582A (en) * 1998-07-27 2000-02-15 윤종용 High-availability system and data protection method of thereof for protection of data
KR20000038701A (en) * 1998-12-08 2000-07-05 이계철 Method for duplicating error monitoring of distribution processor using internet control message protocol
KR20020054515A (en) * 2000-12-28 2002-07-08 엘지전자 주식회사 Duplication method of agent in telecommunication management network
WO2003107207A1 (en) * 2001-01-31 2003-12-24 Zambeel, Inc. Dynamic server directory for distributed computing system
KR20030051930A (en) * 2001-12-20 2003-06-26 한국전자통신연구원 Apparatus and method for embodying high availability in cluster system
KR20040086539A (en) * 2003-03-27 2004-10-11 마이크로소프트 코포레이션 Providing information links via a network
KR100693663B1 (en) 2003-12-30 2007-03-14 엘지엔시스(주) System and Method for detecting obstacle of node
US20100064168A1 (en) * 2008-09-11 2010-03-11 Netapp, Inc. Transactional failover of data sets
KR20110002708A (en) * 2009-07-02 2011-01-10 엔에이치엔(주) High availability data base management system and method for managing database using high availability data base management system
KR20130062340A (en) * 2010-09-01 2013-06-12 알까뗄 루슨트 Method and apparatus for restoring a connection through a provider network upon request
KR20120074528A (en) * 2010-12-28 2012-07-06 엘지에릭슨 주식회사 Cluster node control method and internet protocol private branch exchange

Also Published As

Publication number Publication date
KR102161211B1 (en) 2020-09-29

Similar Documents

Publication Publication Date Title
KR102004160B1 (en) Apparatus and method for logical grouping method of iot connected client nodes using client identifier
KR101891365B1 (en) Providing a witness service
US10983880B2 (en) Role designation in a high availability node
CN107526659B (en) Method and apparatus for failover
RU2670794C9 (en) Method and system for forming flexible node on local or distributed computing systems
US20030005350A1 (en) Failover management system
CN106330475B (en) Method and device for managing main and standby nodes in communication system and high-availability cluster
US20140026000A1 (en) Highly available server system based on cloud computing
EP3210367B1 (en) System and method for disaster recovery of cloud applications
CN104221004A (en) Cluster wide consistent detection of interconnect failures
JP2004519024A (en) System and method for managing a cluster containing multiple nodes
EP2637102B1 (en) Cluster system with network node failover
EP2656212B1 (en) Activate attribute for service profiles in unified computing system
JP2013161251A (en) Computer failure monitoring program, method, and device
CN112799786A (en) Exit method, device, equipment and storage medium of micro-service instance
CN104158707A (en) Method and device of detecting and processing brain split in cluster
CN110830283A (en) Fault detection method, device, equipment and system
Thean et al. Container-based MQTT broker cluster for edge computing
CN112217847A (en) Micro service platform, implementation method thereof, electronic device and storage medium
CN110958151B (en) Keep-alive detection method, keep-alive detection device, node, storage medium and communication system
JP2015060375A (en) Cluster system, cluster control method, and cluster control program
JPH09293059A (en) Decentralized system and its operation management method
JP4806382B2 (en) Redundant system
KR102161211B1 (en) High Availability System
JP6856574B2 (en) Service continuation system and service continuation method

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