WO2022080706A1 - Communication network system and method for controlling same - Google Patents

Communication network system and method for controlling same Download PDF

Info

Publication number
WO2022080706A1
WO2022080706A1 PCT/KR2021/013245 KR2021013245W WO2022080706A1 WO 2022080706 A1 WO2022080706 A1 WO 2022080706A1 KR 2021013245 W KR2021013245 W KR 2021013245W WO 2022080706 A1 WO2022080706 A1 WO 2022080706A1
Authority
WO
WIPO (PCT)
Prior art keywords
nodes
server
synchronization information
information
leader node
Prior art date
Application number
PCT/KR2021/013245
Other languages
French (fr)
Korean (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 WO2022080706A1 publication Critical patent/WO2022080706A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Definitions

  • the present invention relates to a communication network system and a control method thereof, and more particularly, to a communication network system based on MQTT (Message Queue for Telemetry Transport) and a control method thereof.
  • MQTT Message Queue for Telemetry Transport
  • IoT Internet of Things
  • gateways do not have public IPs, so communication from the server to the gateway is difficult.
  • MQTT messaging protocol MQ Telemetry Transport
  • M2M machine-to-machine
  • MQTT protocol is a protocol of publish/subscribe structure based on message broker, unlike the communication model of Request and Response. Due to the characteristics of this structure, the message sender cannot determine whether the last message receiver has received the message.
  • a two-way MQTT communication model is used in which each message sender uses the function of publish/subscribe.
  • the communication connection between the IoT server and the MQTT server must be maintained continuously.
  • An object of the present invention for solving the above-described problems is to provide a communication network system capable of providing a high availability service and a control method thereof.
  • a communication network system for solving the above problems includes a plurality of nodes and a server for controlling the plurality of nodes, wherein the server requests synchronization information from the plurality of nodes, and the plurality of Any one of the plurality of nodes is set as a leader node based on a booting time included in the synchronization information received from the node, wherein the leader node is configured with the exception of the leader node among the plurality of nodes. It is characterized in that it transmits notification information indicating that it is a leader node to the remaining nodes.
  • the server based on the connection of the plurality of nodes to the server, it is characterized in that the request information for requesting the synchronization information is transmitted to the plurality of nodes.
  • the synchronization information includes information on booting time
  • the server is characterized in that the node having the fastest booting time included in the synchronization information received from the plurality of nodes is set as the leader node.
  • the server periodically receives synchronization information from the plurality of nodes, and determines activation states of the plurality of nodes based on the received synchronization information.
  • an effective time is set, and the server deletes the synchronization information in which the effective time has elapsed.
  • the server may control the leader node to periodically transmit notification information indicating that it is a leader node in order to prevent setting of at least two leader nodes among the plurality of nodes.
  • the remaining nodes determine whether the received plurality of pieces of notification information match.
  • the remaining nodes request that the server transmit request information for requesting synchronization information to the plurality of nodes.
  • control method of a communication network system is a control method of a communication network system including a plurality of nodes and a server controlling the plurality of nodes, the server requesting synchronization information to the plurality of nodes , setting, by the server, any one of the plurality of nodes as a leader node based on a booting time included in the synchronization information received from the plurality of nodes, and the leader node is the leader among the plurality of nodes and transmitting notification information indicating that the node is a leader node to the remaining nodes except for the node.
  • a computer program providing a control method of a communication network system according to the present invention for solving the above problems is stored in a computer-readable recording medium in combination with a computer that is hardware to perform any one of the methods described above. .
  • FIG 1 and 2 are conceptual diagrams for explaining the MQTT protocol of the present invention.
  • FIG. 3 is a conceptual diagram for explaining a communication network system of the present invention.
  • FIG. 4 is a flowchart for explaining a control method of a communication network system according to the present invention.
  • 'server' and 'node' include various devices capable of providing results to users by performing computational processing.
  • 'server' and 'node' are not only desktop PCs and notebooks (Note Book), but also smartphones, tablet PCs, cellular phones, and PCS phones (Personal Communication Service). phone), a synchronous/asynchronous IMT-2000 (International Mobile Telecommunication-2000) mobile terminal, a Palm Personal Computer (PC), and a Personal Digital Assistant (PDA).
  • IMT-2000 International Mobile Telecommunication-2000
  • PC Palm Personal Computer
  • PDA Personal Digital Assistant
  • FIG 1 and 2 are conceptual diagrams for explaining the MQTT protocol of the present invention.
  • MQTT stands for lightweight Publish/Subscribe (Pub/Sub) messaging protocol. It is mainly used in Machine-to-Machine (M2M) and Internet of Things (IoT).
  • M2M Machine-to-Machine
  • IoT Internet of Things
  • MQTT is designed for use in low power and low bandwidth environments for IoT.
  • MQTT has the advantage of being able to operate on a low power, unreliable network, and No TCP/IP basis. It is advantageous for controlling small devices and collecting sensor information.
  • the MQTT protocol publishes a message and subscribes to a topic of interest as a basic principle.
  • Pub connects to the broker server for the purpose of publishing a topic, and sub for the purpose of subscribing to a topic.
  • One or more Pubs and Subs can be configured to connect to a broker to publish or subscribe to topics.
  • multiple clients may subscribe to one topic.
  • Pubs and Subs can work based on topics. Topics can be hierarchically structured using forward slashes (/), and through this, a large number of sensor devices can be efficiently managed.
  • MQTT may be used as a message bus system.
  • the MQTT broker creates a message bus (or channel) and sends a message to it, the method in which applications attached to the bus read the message can be applied.
  • Topicic Messages of various topics can flow in the message bus, and a message channel named "Topic" can be formed to distinguish messages.
  • Applications can subscribe (Sub) or publish (Pub) messages by connecting to the message bus and registering interested topics.
  • the communication network system to which MQTT of the present invention is applied includes a plurality of nodes including at least one MQTT message bus (or MQTT channel), and interacts with the plurality of nodes,
  • a server LB that controls a plurality of nodes may be included.
  • each node (Node-1, Node-2), a plurality of MQTT message channels or a plurality of MQTT message buses may be formed.
  • each node may maintain a user's private channel (MQTT Topic).
  • GMP Global Message Proc
  • the message receiver may not be connected at the time of message transmission.
  • the GMP may transmit the message to the user message box.
  • a newly connected user can perform the process of checking whether there are unread messages in the message box.
  • a plurality of nodes and a server included in the communication network system of the present invention may form one cluster, and the server may control the plurality of nodes in various ways.
  • the leader node in order to provide a high-availability service, may be configured so that information systems such as servers, networks, and programs can continuously operate normally for a fairly long period of time.
  • FIG. 4 is a flowchart for explaining a control method of a communication network system according to the present invention.
  • the communication network system of the present invention may include a plurality of nodes and a server controlling the plurality of nodes.
  • the server may request (SyncReq) synchronization information from a plurality of nodes (S410). Each node receiving the synchronization information request may transmit synchronization information (Sync information) from the node to the server.
  • Synchronization information synchronization information
  • the received synchronization information may be stored in the server.
  • the server may transmit request information SyncReq for requesting synchronization information to the plurality of nodes based on the connection of the plurality of nodes to the server.
  • the server sets any one of the plurality of nodes as the leader node based on the booting time included in the synchronization information received from the plurality of nodes (S420).
  • the synchronization information Sync may include information about a boot time of each node.
  • the server may set a node having the fastest (or earliest or shortest) boot time included in the synchronization information received from the plurality of nodes as the leader node.
  • the server may periodically receive synchronization information from a plurality of nodes, and determine activation states of the plurality of nodes based on the received synchronization information.
  • the server may periodically transmit request information for requesting synchronization information to a plurality of nodes.
  • the server may determine which node among the plurality of nodes is in an active state and which node is in an inactive state based on the received synchronization information.
  • the server may determine that a node from which synchronization information has been received is in an activated state, and a node from which synchronization information has not been received may be determined to be inactive.
  • the synchronization information includes information on the node (eg, identification information, ID, etc.), and the server may identify the node that has transmitted the received synchronization information based on the information on the node.
  • an effective time (Time to Limit, TTL) may be set.
  • the server may delete the expired synchronization information to secure capacity.
  • the server included in the communication network system of the present invention may prevent at least two leader nodes among a plurality of nodes from being set.
  • the step of the leader node transmitting notification information indicating that it is a leader node to the remaining nodes excluding the leader node among the plurality of nodes is performed (S430).
  • the server of the present invention may control the leader node to periodically transmit notification information (or leader information) informing that it is a leader node in order to prevent at least two leader nodes from being set among a plurality of nodes. .
  • the node set as the leader node may periodically transmit information indicating that it is the leader node to the remaining nodes (ie, the remaining nodes excluding the leader node among the plurality of nodes).
  • information indicating that it is a leader node may be transmitted to the server.
  • the remaining nodes excluding the leader node among the plurality of nodes may determine whether the received pieces of notification information match.
  • the plurality of notification information may be simultaneously received from different nodes at the same time, or may be received from one node at different times.
  • the plurality of pieces of notification information may not be identical to each other. This is because it means a situation in which different nodes inform that each is a leader node.
  • the remaining nodes may request that the server transmit request information for requesting synchronization information to the plurality of nodes when a plurality of pieces of notification information do not match. That is, when the plurality of pieces of notification information do not match, the remaining nodes may request the server to transmit request information syncReq for requesting synchronization information to the plurality of nodes to perform the process of setting the leader node again.
  • the leader node may request that the server transmit request information for requesting synchronization information to a plurality of nodes.
  • the leader node even when the remaining nodes (worker nodes) except the leader node receive notification information indicating that the node is a leader node, since the node is not a leader node, the node that transmitted the notification information is the leader It can be determined that the node is misunderstood.
  • the corresponding node may request that the server transmit request information for requesting synchronization information to a plurality of nodes.
  • the server may newly receive synchronization information from a plurality of nodes, and set (select) the leader node again based on the boot time included in the synchronization information.
  • the remaining node may determine that only one node is set as a leader node.
  • the server may delete (or initialize) synchronization information of the node whose connection is terminated.
  • the method according to an embodiment of the present invention described above may be implemented as a program (or application) to be executed in combination with a server, which is hardware, and stored in a computer-readable recording medium.
  • the above-described program is C, C++, JAVA, machine language, etc. that a processor (CPU) of the computer can read through a device interface of the computer in order for the computer to read the program and execute the methods implemented as a program
  • It may include code (Code) coded in the computer language of Such code may include functional code related to a function defining functions necessary for executing the methods, etc., and includes an execution procedure related control code necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do.
  • the code may further include additional information necessary for the processor of the computer to execute the functions or code related to memory reference for which location (address address) in the internal or external memory of the computer to be referenced. there is.
  • the code uses the communication module of the computer to determine how to communicate with any other computer or server remotely. It may further include a communication-related code for whether to communicate and what information or media to transmit and receive during communication.
  • the storage medium is not a medium that stores data for a short moment, such as a register, a cache, a memory, etc., but a medium that stores data semi-permanently and can be read by a device.
  • examples of the storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, and an optical data storage device.
  • the program may be stored in various recording media on various servers accessible by the computer or in various recording media on the computer of the user.
  • the medium may be distributed in a computer system connected to a network, and a computer-readable code may be stored in a distributed manner.
  • a software module may contain random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.
  • RAM random access memory
  • ROM read only memory
  • EPROM erasable programmable ROM
  • EEPROM electrically erasable programmable ROM
  • flash memory hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present invention relates to a communication network system and a method for controlling same. The communication network system of the present invention comprises a plurality of nodes and a server that controls the plurality of nodes, wherein the server is characterized by requesting synchronization information from the plurality of nodes, and on the basis of a booting time included in the synchronization information received from the plurality of nodes, setting any one of the plurality of nodes as a leader node, and the leader node is characterized by transmitting, to the remaining nodes excluding the leader node among the plurality of nodes, notification information indicating that it is the leader node.

Description

통신 네트워크 시스템 및 그것의 제어방법Communication network system and its control method
본 발명은 통신 네트워크 시스템 및 그것의 제어방법에 관한 것으로, 보다 구체적으로, MQTT(Message Queue for Telemetry Transport)를 기반으로 한 통신 네트워크 시스템 및 그것의 제어방법에 관한 것이다.The present invention relates to a communication network system and a control method thereof, and more particularly, to a communication network system based on MQTT (Message Queue for Telemetry Transport) and a control method thereof.
IoT(Internet of Things) 기술의 빠른 발전에 발맞춰 IoT 디바이스 산업 시장이 급격하게 확대됨에 따라 IoT 디바이스들을 편리하게 관리하고 이용할 수 있는 IoT 게이트웨이 및 서버의 중요성이 대두되고 있다.As the IoT device industry market rapidly expands in line with the rapid development of Internet of Things (IoT) technology, the importance of IoT gateways and servers that can conveniently manage and use IoT devices is emerging.
현재 IoT 디바이스를 위한 효율적인 게이트웨이와 서버 시스템에 대한 다양한 연구가 활발히 진행되고 있다. 그러나 실제 응용환경에서 게이트웨이는 대부분 공인 IP를 가지지 않은 경우가 많아 서버에서 게이트웨이로의 통신에 어려움이 있다.Currently, various studies on efficient gateways and server systems for IoT devices are being actively conducted. However, in the actual application environment, most gateways do not have public IPs, so communication from the server to the gateway is difficult.
이러한 문제를 해결하기 위해 machine-to-machine (M2M) "Internet of Things" connectivity protocol인 MQTT 메세징 프로토콜(MQ Telemetry Transport)이 널리 쓰이고 있다.To solve this problem, MQTT messaging protocol (MQ Telemetry Transport), a machine-to-machine (M2M) "Internet of Things" connectivity protocol, is widely used.
하지만 MQTT 프로토콜을 Request, Response의 형태의 통신모델과는 다르게 메시지 broker를 기반한 publish/subscribe 구조의 프로토콜이다. 이러한 구조의 특징으로 메시지 송신자는 최종 메시지 수신자의 메시지 수신 여부를 파악할 수 없다.However, MQTT protocol is a protocol of publish/subscribe structure based on message broker, unlike the communication model of Request and Response. Due to the characteristics of this structure, the message sender cannot determine whether the last message receiver has received the message.
이러한 문제를 해결하기 위해 각 메시지 송수신자가 모두 publish/subscribe의 기능을 사용하는 양방향 MQTT 통신 모델을 이용하기도 한다.To solve this problem, a two-way MQTT communication model is used in which each message sender uses the function of publish/subscribe.
그러나 IoT 서버가 양방향 MQTT를 지원하기 위해서는 IoT 서버와 MQTT 서버가 지속적으로 통신 연결이 유지되어 있어야 한다.However, in order for the IoT server to support bidirectional MQTT, the communication connection between the IoT server and the MQTT server must be maintained continuously.
이러한 모델을 채택했을 때, 방대한 양의 데이터들을 처리하는 서버는 여러 요청을 수행하는데 있어서 시스템 자원낭비 및 성능저하와 같은 문제가 발생할 수 있다.When such a model is adopted, problems such as system resource waste and performance degradation may occur when a server that processes a large amount of data performs multiple requests.
최근에는, MQTT 기반의 경량 프로토콜로 저전력 장비를 운용할 때 고가용성 서비스(High Availability)를 제공하기 위한 기술 개발이 활발히 진행되고 있다.Recently, technology development for providing a high availability service (High Availability) when operating low-power equipment with a lightweight protocol based on MQTT is being actively developed.
상술한 바와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 고가용(High Availiability) 서비스를 제공하는 것이 가능한 통신 네트워크 시스템 및 그것의 제어방법을 제공하는 것이다.An object of the present invention for solving the above-described problems is to provide a communication network system capable of providing a high availability service and a control method thereof.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.
상술한 과제를 해결하기 위한 본 발명에 따른 통신 네트워크 시스템은, 복수의 노드 및 상기 복수의 노드를 제어하는 서버를 포함하고, 상기 서버는, 상기 복수의 노드로 동기화 정보를 요청하고, 상기 복수의 노드로부터 수신된 동기화 정보에 포함된 부팅시간에 근거하여, 상기 복수의 노드 중 어느 하나의 노드를 리더 노드로 설정하는 것을 특징으로 하며, 상기 리더 노드는, 상기 복수의 노드 중 상기 리더 노드를 제외한 나머지 노드로 리더 노드임을 알리는 알림 정보를 전송하는 것을 특징으로 한다.A communication network system according to the present invention for solving the above problems includes a plurality of nodes and a server for controlling the plurality of nodes, wherein the server requests synchronization information from the plurality of nodes, and the plurality of Any one of the plurality of nodes is set as a leader node based on a booting time included in the synchronization information received from the node, wherein the leader node is configured with the exception of the leader node among the plurality of nodes. It is characterized in that it transmits notification information indicating that it is a leader node to the remaining nodes.
이때, 상기 서버는, 상기 복수의 노드가 상기 서버에 연결되는 것에 근거하여, 상기 동기화 정보를 요청하는 요청 정보를 상기 복수의 노드로 전송하는 것을 특징으로 한다.In this case, the server, based on the connection of the plurality of nodes to the server, it is characterized in that the request information for requesting the synchronization information is transmitted to the plurality of nodes.
또한, 상기 동기화 정보는, 부팅시간에 대한 정보를 포함하고, 상기 서버는, 상기 복수의 노드로부터 수신된 동기화 정보에 포함된 부팅시간이 가장 빠른 노드를 리더 노드로 설정하는 것을 특징으로 한다.In addition, the synchronization information includes information on booting time, and the server is characterized in that the node having the fastest booting time included in the synchronization information received from the plurality of nodes is set as the leader node.
또한, 상기 서버는, 주기적으로 상기 복수의 노드로부터 동기화 정보를 수신하고, 상기 수신된 동기화 정보에 근거하여, 상기 복수의 노드의 활성화 상태를 판단하는 것을 특징으로 한다.In addition, the server periodically receives synchronization information from the plurality of nodes, and determines activation states of the plurality of nodes based on the received synchronization information.
또한, 상기 동기화 정보는, 유효시간이 설정되어 있으며, 상기 서버는, 상기 유효시간이 경과된 동기화 정보를 삭제하는 것을 특징으로 한다.In addition, in the synchronization information, an effective time is set, and the server deletes the synchronization information in which the effective time has elapsed.
또한, 상기 서버는, 복수의 노드 중 적어도 두 개의 리더 노드가 설정되는 것을 방지하기 위해, 주기적으로 리더 노드임을 알리는 알림 정보를 전송하도록 상기 리더 노드를 제어하는 것을 특징으로 한다.In addition, the server may control the leader node to periodically transmit notification information indicating that it is a leader node in order to prevent setting of at least two leader nodes among the plurality of nodes.
또한, 상기 나머지 노드는, 복수의 알림 정보가 수신되는 경우, 상기 수신된 복수의 알림 정보가 일치하는지 여부를 판단하는 것을 특징으로 한다.In addition, when a plurality of pieces of notification information are received, the remaining nodes determine whether the received plurality of pieces of notification information match.
또한, 상기 나머지 노드는, 상기 복수의 알림 정보가 불일치하는 경우, 상기 서버가 동기화 정보를 요청하는 요청 정보를 상기 복수의 노드로 전송할 것을 요청하는 것을 특징으로 한다.In addition, when the plurality of pieces of notification information do not match, the remaining nodes request that the server transmit request information for requesting synchronization information to the plurality of nodes.
또한, 본 발명에 따른 통신 네트워크 시스템의 제어방법은, 복수의 노드 및 상기 복수의 노드를 제어하는 서버를 포함하는 통신 네트워크 시스템의 제어방법으로, 상기 서버가 복수의 노드로 동기화 정보를 요청하는 단계, 상기 서버가 상기 복수의 노드로부터 수신된 동기화 정보에 포함된 부팅시간에 근거하여, 상기 복수의 노드 중 어느 하나의 노드를 리더 노드로 설정하는 단계 및 상기 리더 노드가 상기 복수의 노드 중 상기 리더 노드를 제외한 나머지 노드로 리더 노드임을 알리는 알림 정보를 전송하는 단계를 포함한다.In addition, the control method of a communication network system according to the present invention is a control method of a communication network system including a plurality of nodes and a server controlling the plurality of nodes, the server requesting synchronization information to the plurality of nodes , setting, by the server, any one of the plurality of nodes as a leader node based on a booting time included in the synchronization information received from the plurality of nodes, and the leader node is the leader among the plurality of nodes and transmitting notification information indicating that the node is a leader node to the remaining nodes except for the node.
상술한 과제를 해결하기 위한 본 발명에 따른 통신 네트워크 시스템의 제어방법을 제공하는 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상술한 방법 중 어느 하나의 방법을 수행하기 위해 컴퓨터 판독 가능한 기록매체에 저장된다. A computer program providing a control method of a communication network system according to the present invention for solving the above problems is stored in a computer-readable recording medium in combination with a computer that is hardware to perform any one of the methods described above. .
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.In addition to this, another method for implementing the present invention, another system, and a computer-readable recording medium for recording a computer program for executing the method may be further provided.
상기와 같은 본 발명에 따르면, 고가용성 서비스를 제공할 수 있는 새로운 통신 네트워크 시스템을 제공할 수 있다.According to the present invention as described above, it is possible to provide a new communication network system capable of providing a high availability service.
또한, 본 발명에 따르면, 리더 노드가 복수 개 생기는 것을 방지하여, 통신 혼선을 방지할 수 있다.In addition, according to the present invention, it is possible to prevent the occurrence of a plurality of leader nodes, thereby preventing communication confusion.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.
도 1 및 도 2는 본 발명의 MQTT 프로토콜을 설명하기 위한 개념도이다.1 and 2 are conceptual diagrams for explaining the MQTT protocol of the present invention.
도 3은 본 발명의 통신 네트워크 시스템을 설명하기 위한 개념도이다.3 is a conceptual diagram for explaining a communication network system of the present invention.
도 4는 본 발명의 통신 네트워크 시스템의 제어방법을 설명하기 위한 흐름도이다.4 is a flowchart for explaining a control method of a communication network system according to the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
설명에 앞서 본 명세서에서 사용하는 용어의 의미를 간략히 설명한다. 그렇지만 용어의 설명은 본 명세서의 이해를 돕기 위한 것이므로, 명시적으로 본 발명을 한정하는 사항으로 기재하지 않은 경우에 본 발명의 기술적 사상을 한정하는 의미로 사용하는 것이 아님을 주의해야 한다.Before the description, the meaning of the terms used in this specification will be briefly described. However, it should be noted that, since the description of the term is for the purpose of helping the understanding of the present specification, it is not used in the meaning of limiting the technical idea of the present invention unless explicitly described as limiting the present invention.
본 명세서에서 '서버' 및 '노드'는 연산처리를 수행하여 사용자에게 결과를 제공할 수 있는 다양한 장치들이 모두 포함된다. 예를 들어, '서버' 및 '노드'는 데스크 탑 PC, 노트북(Note Book) 뿐만 아니라 스마트폰(Smart phone), 태블릿 PC, 셀룰러폰(Cellular phone), 피씨에스폰(PCS phone; Personal Communication Service phone), 동기식/비동기식 IMT-2000(International Mobile Telecommunication-2000)의 이동 단말기, 팜 PC(Palm Personal Computer), 개인용 디지털 보조기(PDA; Personal Digital Assistant) 등도 해당될 수 있다. In this specification, 'server' and 'node' include various devices capable of providing results to users by performing computational processing. For example, 'server' and 'node' are not only desktop PCs and notebooks (Note Book), but also smartphones, tablet PCs, cellular phones, and PCS phones (Personal Communication Service). phone), a synchronous/asynchronous IMT-2000 (International Mobile Telecommunication-2000) mobile terminal, a Palm Personal Computer (PC), and a Personal Digital Assistant (PDA).
도 1 및 도 2는 본 발명의 MQTT 프로토콜을 설명하기 위한 개념도이다.1 and 2 are conceptual diagrams for explaining the MQTT protocol of the present invention.
MQTT는 경량의 Publish/Subscribe(Pub/Sub) 메시징 프로토콜을 의미한다. M2M(Machine-to-Machine)와 IoT(Internet of Things)에서의 주로 사용된다.MQTT stands for lightweight Publish/Subscribe (Pub/Sub) messaging protocol. It is mainly used in Machine-to-Machine (M2M) and Internet of Things (IoT).
MQTT는 IoT를 위해 낮은 전력과 낮은 대역폭 환경에서도 사용할 수 있도록 설계되었다.MQTT is designed for use in low power and low bandwidth environments for IoT.
MQTT는 저전력, 신뢰할 수 없는 네트워크, No TCP/IP 기반에서도 운용할 수 있다는 장점을 갖는다. 소형기기의 제어와 센서정보 수집에 유리하다.MQTT has the advantage of being able to operate on a low power, unreliable network, and No TCP/IP basis. It is advantageous for controlling small devices and collecting sensor information.
한편, 도 1을 참조하면, MQTT 프로토콜은 메시지를 발행(Publishing)하고, 관심 있는 주제를 구독(Subscribe)하는 것을 기본 원칙으로 한다.Meanwhile, referring to FIG. 1 , the MQTT protocol publishes a message and subscribes to a topic of interest as a basic principle.
Publisher(이하, "Pub"로 명칭함)과 Subscriber(이하, "Sub"로 명칭함)는 모두 Broker에 대한 클라이언트로 작동한다. Pub는 토픽(topic)을 발행하기 위한 목적으로, Sub는 토픽을 구독하기 위한 목적으로 Broker 서버에 연결한다.Publisher (hereinafter referred to as "Pub") and Subscriber (hereinafter referred to as "Sub") both act as clients to the Broker. Pub connects to the broker server for the purpose of publishing a topic, and sub for the purpose of subscribing to a topic.
하나 이상의 Pub와 Sub가 브로커에 연결해서 토픽을 발행하거나 구독하도록 형성될 수 있다.One or more Pubs and Subs can be configured to connect to a broker to publish or subscribe to topics.
또한, 다수의 클라이언트가 하나의 주제를 구독할 수도 있다.Also, multiple clients may subscribe to one topic.
일반적으로, Pub와 Sub는 토픽을 기준으로 작동할 수 있다. 토픽은 슬래시(/)를 이용해서 계층적으로 구성할 수 있으며, 이를 통해 대량의 센서 기기들을 효율적으로 관리할 수 있다. In general, Pubs and Subs can work based on topics. Topics can be hierarchically structured using forward slashes (/), and through this, a large number of sensor devices can be efficiently managed.
한편, 도 2를 참조하면, MQTT는 메시지 버스 시스템으로 이용될 수 있다.Meanwhile, referring to FIG. 2 , MQTT may be used as a message bus system.
MQTT 브로커(Broker)가 메시지 버스(또는 채널)을 만들고, 여기에 메시지를 흘려보내면, 버스에 붙은 애플리케이션들이 메시지를 읽어가는 방식이 적용될 수 있다.If the MQTT broker creates a message bus (or channel) and sends a message to it, the method in which applications attached to the bus read the message can be applied.
메시지 버스에는 다양한 주제의 메시지들이 흐를 수 있는데, 메시지를 구분하기 위해서 "Topic"을 이름으로 하는 메시지 채널을 형성할 수 있다.Messages of various topics can flow in the message bus, and a message channel named "Topic" can be formed to distinguish messages.
애플리케이션들은 메시지 버스에 연결하고, 관심있는 토픽(Topic)을 등록해서 메시지를 구독(Sub)하거나 발행(Pub)할 수 있다.Applications can subscribe (Sub) or publish (Pub) messages by connecting to the message bus and registering interested topics.
한편, 도 3을 참조하면, 본 발명의 MQTT가 적용된 통신 네트워크 시스템은, 적어도 하나의 MQTT 메시지 버스(또는 MQTT 채널)을 포함하는 노드를 복수 개 포함하고, 복수의 노드들과 상호 작용하며, 상기 복수의 노드들을 제어하는 서버(LB)를 포함할 수 있다.Meanwhile, referring to FIG. 3 , the communication network system to which MQTT of the present invention is applied includes a plurality of nodes including at least one MQTT message bus (or MQTT channel), and interacts with the plurality of nodes, A server LB that controls a plurality of nodes may be included.
각 노드(Node-1, Node-2)에는, 복수의 MQTT 메시지 채널 또는 복수의 MQTT 메시지 버스가 형성될 수 있다.In each node (Node-1, Node-2), a plurality of MQTT message channels or a plurality of MQTT message buses may be formed.
도 3에 도시된 것과 같이, 본 발명의 일 실시 예에 따른 통신 네트워크 시스템을 설명하면, 각 노드는, 유저의 개인 채널(Private Channel(MQTT Topic))을 유지할 수 있다. As shown in FIG. 3 , when describing a communication network system according to an embodiment of the present invention, each node may maintain a user's private channel (MQTT Topic).
개인 채널(Private channel)로 보낸 메시지는 Global Message Proc(이하, GMP라 함)로 전송된다. GMP는 이 메시지를 Message Queue에 적재할 수 있다. 이 때, 유저 연결 테이블을 확인하여, 유저가 어느 Node에 있는지를 찾아낼 수 있다.Messages sent to the private channel are transmitted to the Global Message Proc (hereinafter referred to as GMP). GMP can load this message into Message Queue. At this time, by checking the user connection table, it is possible to find out which node the user is in.
한편, 메시지 전송시점에 메시지 수신자가 연결하지 않은 상태일 수 있다. 이 경우, GMP는 유저 메시지 함에 메시지를 전송할 수 있다. On the other hand, the message receiver may not be connected at the time of message transmission. In this case, the GMP may transmit the message to the user message box.
새로 연결한 유저는 메시지 함에 읽지 않은 메시지가 존재하는지 확인하는 과정을 수행할 수 있다. A newly connected user can perform the process of checking whether there are unread messages in the message box.
한편, 본 발명의 통신 네트워크 시스템에 포함된 복수의 노드들과 서버는 하나의 클러스터(Cluster)를 형성할 수 있으며, 서버는, 복수의 노드들을 다양한 방식으로 제어할 수 있다.Meanwhile, a plurality of nodes and a server included in the communication network system of the present invention may form one cluster, and the server may control the plurality of nodes in various ways.
예를 들어, 본 발명의 통신 네트워크 시스템은, 고가용성 서비스를 제공하기 위해, 서버, 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간동안 지속적으로 정상 운영이 가능하도록 리더 노드를 설정할 수 있다.For example, in the communication network system of the present invention, in order to provide a high-availability service, the leader node may be configured so that information systems such as servers, networks, and programs can continuously operate normally for a fairly long period of time.
도 4는 본 발명의 통신 네트워크 시스템의 제어방법을 설명하기 위한 흐름도이다.4 is a flowchart for explaining a control method of a communication network system according to the present invention.
우선, 본 발명의 통신 네트워크 시스템은, 복수의 노드 및 상기 복수의 노드를 제어하는 서버를 포함할 수 있다.First, the communication network system of the present invention may include a plurality of nodes and a server controlling the plurality of nodes.
상기 서버는, 복수의 노드로 동기화 정보를 요청(SyncReq)할 수 있다(S410). 동기화 정보 요청을 받은 각 노드는, 해당 노드에서의 동기화 정보(Sync 정보)를 서버로 전송할 수 있다.The server may request (SyncReq) synchronization information from a plurality of nodes (S410). Each node receiving the synchronization information request may transmit synchronization information (Sync information) from the node to the server.
수신된 동기화 정보는 서버에 저장될 수 있다.The received synchronization information may be stored in the server.
서버는, 복수의 노드가 서버에 연결되는 것에 근거하여, 동기화 정보를 요청하는 요청 정보(SyncReq)를 복수의 노드로 전송할 수 있다.The server may transmit request information SyncReq for requesting synchronization information to the plurality of nodes based on the connection of the plurality of nodes to the server.
본 발명에서는, 서버가 복수의 노드로부터 수신한 동기화 정보에 포함된 부팅시간에 근거하여, 복수의 노드 중 어느 하나의 노드를 리더 노드로 설정하는 단계가 진행된다(S420).In the present invention, the server sets any one of the plurality of nodes as the leader node based on the booting time included in the synchronization information received from the plurality of nodes (S420).
구체적으로, 동기화 정보(Sync)는, 각 노드의 부팅시간(BootTime)에 대한 정보를 포함할 수 있다.Specifically, the synchronization information Sync may include information about a boot time of each node.
구체적으로, 서버는, 복수의 노드로부터 수신한 동기화 정보에 포함된 부팅시간이 가장 빠른(또는 가장 이른 또는 가장 짧은) 노드를 리더 노드로 설정할 수 있다.Specifically, the server may set a node having the fastest (or earliest or shortest) boot time included in the synchronization information received from the plurality of nodes as the leader node.
한편, 서버는, 주기적으로 복수의 노드로부터 동기화 정보를 수신하고, 수신한 동기화 정보에 근거하여, 복수의 노드들의 활성화 상태를 판단할 수 있다.Meanwhile, the server may periodically receive synchronization information from a plurality of nodes, and determine activation states of the plurality of nodes based on the received synchronization information.
예를 들어, 서버는, 주기적으로 복수의 노드로 동기화 정보를 요청하는 요청 정보를 전송할 수 있다.For example, the server may periodically transmit request information for requesting synchronization information to a plurality of nodes.
이 때, 서버는, 수신된 동기화 정보에 근거하여, 복수의 노드 중 어느 노드가 활성화 상태이고, 어느 노드가 비활성화 상태인지를 판단할 수 있다.In this case, the server may determine which node among the plurality of nodes is in an active state and which node is in an inactive state based on the received synchronization information.
예를 들어, 서버는, 동기화 정보가 수신된 노드는 활성화 상태로 판단하고, 동기화 정보가 미수신된 노드는 비활성화 상태로 판단할 수 있다.For example, the server may determine that a node from which synchronization information has been received is in an activated state, and a node from which synchronization information has not been received may be determined to be inactive.
동기화 정보에는, 노드에 대한 정보(예를 들어, 식별 정보, ID 등)가 포함되며, 서버는, 노드에 대한 정보에 근거하여, 수신된 동기화 정보를 전송한 노드를 식별할 수 있다.The synchronization information includes information on the node (eg, identification information, ID, etc.), and the server may identify the node that has transmitted the received synchronization information based on the information on the node.
한편, 동기화 정보는 유효시간(Time to Limit, TTL)이 설정될 수 있다.Meanwhile, in the synchronization information, an effective time (Time to Limit, TTL) may be set.
서버는, 용량 확보를 위해, 유효기간이 경과된(Expired) 동기화 정보를 삭제할 수 있다.The server may delete the expired synchronization information to secure capacity.
한편, 본 발명의 통신 네트워크 시스템에 포함된 서버는, 복수의 노드 중 적어도 두 개의 리더 노드가 설정되는 것을 방지할 수 있다.Meanwhile, the server included in the communication network system of the present invention may prevent at least two leader nodes among a plurality of nodes from being set.
이를 위해, 본 발명에서는, 리더 노드가 복수의 노드 중 상기 리더 노드를 제외한 나머지 노드로 리더 노드임을 알리는 알림 정보를 전송하는 단계가 진행된다(S430).To this end, in the present invention, the step of the leader node transmitting notification information indicating that it is a leader node to the remaining nodes excluding the leader node among the plurality of nodes is performed (S430).
구체적으로, 본 발명의 서버는, 복수의 노드 중 적어도 두 개 이상의 리더 노드가 설정되는 것을 방지하기 위해, 주기적으로 리더 노드임을 알리는 알림 정보(또는 리더 정보)를 전송하도록 리더 노드를 제어할 수 있다.Specifically, the server of the present invention may control the leader node to periodically transmit notification information (or leader information) informing that it is a leader node in order to prevent at least two leader nodes from being set among a plurality of nodes. .
한편, 서버의 제어가 없더라도, 리더 노드로 설정된 노드는, 주기적으로 리더 노드임을 알리는 정보를 나머지 노드들(즉, 복수의 노드 중 리더 노드를 제외한 나머지 노드)로 전송할 수 있다.Meanwhile, even without the control of the server, the node set as the leader node may periodically transmit information indicating that it is the leader node to the remaining nodes (ie, the remaining nodes excluding the leader node among the plurality of nodes).
또한, 리더 노드임을 알리는 정보는, 서버로도 전송될 수 있다.Also, information indicating that it is a leader node may be transmitted to the server.
한편, 복수의 노드 중 리더 노드를 제외한 나머지 노드는, 복수의 알림 정보(복수의 리더 정보)가 수신되는 경우, 수신된 복수의 알림 정보가 일치하는지 여부를 판단할 수 있다.Meanwhile, when a plurality of pieces of notification information (a plurality of leader information) are received, the remaining nodes excluding the leader node among the plurality of nodes may determine whether the received pieces of notification information match.
상기 복수의 알림 정보는, 동일한 시간에 동시에 서로 다른 노드로부터 수신될 수도 있고, 서로 다른 시간에 하나의 노드로부터 수신될 수도 있다.The plurality of notification information may be simultaneously received from different nodes at the same time, or may be received from one node at different times.
만일, 복수의 알림 정보가 동일한 시간 대에 동시에 서로 다른 노드로부터 수신되는 경우, 상기 복수의 알림 정보는 서로 동일하지 않을 수 있다. 이는, 서로 다른 노드들이 각자가 리더 노드임을 알리는 상황을 의미하기 때문이다.If a plurality of pieces of notification information are simultaneously received from different nodes in the same time zone, the plurality of pieces of notification information may not be identical to each other. This is because it means a situation in which different nodes inform that each is a leader node.
상기 나머지 노드는, 복수의 알림 정보가 불일치 하는 경우, 서버가 동기화 정보를 요청하는 요청 정보를 복수의 노드로 전송할 것을 요청할 수 있다. 즉, 나머지 노드는, 복수의 알림 정보가 불일치하는 경우, 다시 리더 노드를 설정하는 과정을 수행하도록, 서버로 동기화 정보를 요청하는 요청 정보(syncReq)를 복수의 노드로 전송할 것을 요청할 수 있다.The remaining nodes may request that the server transmit request information for requesting synchronization information to the plurality of nodes when a plurality of pieces of notification information do not match. That is, when the plurality of pieces of notification information do not match, the remaining nodes may request the server to transmit request information syncReq for requesting synchronization information to the plurality of nodes to perform the process of setting the leader node again.
한편, 리더 노드가 다른 노드로부터 알림 정보(리더 정보)를 수신한 경우에도, 상기 리더 노드는, 서버가 동기화 정보를 요청하는 요청 정보를 복수의 노드로 전송할 것을 요청할 수 있다.Meanwhile, even when the leader node receives notification information (leader information) from another node, the leader node may request that the server transmit request information for requesting synchronization information to a plurality of nodes.
또 다른 예로, 리더 노드를 제외한 나머지 노드(워커 노드)가, 해당 노드가 리더 노드라고 알려주는 알림 정보를 수신한 경우에도, 해당 노드는 리더 노드가 아니기 때문에, 상기 알림 정보를 전송한 노드가 리더 노드를 잘못 알고 있다고 판단할 수 있다.As another example, even when the remaining nodes (worker nodes) except the leader node receive notification information indicating that the node is a leader node, since the node is not a leader node, the node that transmitted the notification information is the leader It can be determined that the node is misunderstood.
이 경우에도, 상기 해당 노드는, 서버가 동기화 정보를 요청하는 요청 정보를 복수의 노드로 전송할 것을 요청할 수 있다.Even in this case, the corresponding node may request that the server transmit request information for requesting synchronization information to a plurality of nodes.
이후, 서버는, 복수의 노드로부터 새롭게 동기화 정보를 수신하고, 동기화 정보에 포함된 부팅시간에 근거하여, 리더 노드를 다시 설정(선택)할 수 있다.Thereafter, the server may newly receive synchronization information from a plurality of nodes, and set (select) the leader node again based on the boot time included in the synchronization information.
한편, 서로 다른 시간에 복수의 알림 정보가 수신되었고, 이러한 복수의 알림 정보가 일치하는 경우, 상기 나머지 노드는 하나의 노드만이 리더 노드로 설정되어 있는 상태라고 판단할 수 있다.Meanwhile, when a plurality of pieces of notification information are received at different times and the plurality of pieces of notification information match, the remaining node may determine that only one node is set as a leader node.
복수의 노드들이 서버와의 연결이 종료되는 경우, 서버는, 연결이 종료된 노드의 동기화 정보를 삭제(또는 초기화)할 수 있다.When the connection of the plurality of nodes to the server is terminated, the server may delete (or initialize) synchronization information of the node whose connection is terminated.
이상에서 전술한 본 발명의 일 실시예에 따른 방법은, 하드웨어인 서버와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.The method according to an embodiment of the present invention described above may be implemented as a program (or application) to be executed in combination with a server, which is hardware, and stored in a computer-readable recording medium.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-described program is C, C++, JAVA, machine language, etc. that a processor (CPU) of the computer can read through a device interface of the computer in order for the computer to read the program and execute the methods implemented as a program It may include code (Code) coded in the computer language of Such code may include functional code related to a function defining functions necessary for executing the methods, etc., and includes an execution procedure related control code necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do. In addition, the code may further include additional information necessary for the processor of the computer to execute the functions or code related to memory reference for which location (address address) in the internal or external memory of the computer to be referenced. there is. In addition, when the processor of the computer needs to communicate with any other computer or server located remotely in order to execute the above functions, the code uses the communication module of the computer to determine how to communicate with any other computer or server remotely. It may further include a communication-related code for whether to communicate and what information or media to transmit and receive during communication.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium is not a medium that stores data for a short moment, such as a register, a cache, a memory, etc., but a medium that stores data semi-permanently and can be read by a device. Specifically, examples of the storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, and an optical data storage device. That is, the program may be stored in various recording media on various servers accessible by the computer or in various recording media on the computer of the user. In addition, the medium may be distributed in a computer system connected to a network, and a computer-readable code may be stored in a distributed manner.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in relation to an embodiment of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by a combination thereof. A software module may contain random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.In the above, embodiments of the present invention have been described with reference to the accompanying drawings, but those of ordinary skill in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing the technical spirit or essential features thereof. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

Claims (17)

  1. 복수의 노드; 및a plurality of nodes; and
    상기 복수의 노드를 제어하는 서버를 포함하고,A server for controlling the plurality of nodes,
    상기 서버는, The server is
    상기 복수의 노드로 동기화 정보를 요청하고,request synchronization information to the plurality of nodes,
    상기 복수의 노드로부터 수신된 동기화 정보에 포함된 부팅시간에 근거하여, 상기 복수의 노드 중 어느 하나의 노드를 리더 노드로 설정하는 것을 특징으로 하며,Based on the boot time included in the synchronization information received from the plurality of nodes, any one of the plurality of nodes is set as a leader node,
    상기 리더 노드는,The leader node is
    상기 복수의 노드 중 상기 리더 노드를 제외한 나머지 노드로 리더 노드임을 알리는 알림 정보를 전송하는 것을 특징으로 하는 통신 네트워크 시스템.and transmitting notification information indicating that it is a leader node to the remaining nodes except for the leader node among the plurality of nodes.
  2. 제 1 항에 있어서,The method of claim 1,
    상기 서버는,The server is
    상기 복수의 노드가 상기 서버에 연결되는 것에 근거하여, 상기 동기화 정보를 요청하는 요청 정보를 상기 복수의 노드로 전송하는 것을 특징으로 하는 통신 네트워크 시스템.and transmitting request information for requesting the synchronization information to the plurality of nodes based on the connection of the plurality of nodes to the server.
  3. 제 2 항에 있어서,3. The method of claim 2,
    상기 동기화 정보는, 부팅시간에 대한 정보를 포함하고,The synchronization information includes information on boot time,
    상기 서버는, The server is
    상기 복수의 노드로부터 수신된 동기화 정보에 포함된 부팅시간이 가장 빠른 노드를 상기 리더 노드로 설정하는 것을 특징으로 하는 통신 네트워크 시스템.and a node having the fastest booting time included in the synchronization information received from the plurality of nodes is set as the leader node.
  4. 제 2 항에 있어서,3. The method of claim 2,
    상기 서버는, The server is
    주기적으로 상기 복수의 노드로부터 동기화 정보를 수신하고, 상기 수신된 동기화 정보에 근거하여, 상기 복수의 노드의 활성화 상태를 판단하는 것을 특징으로 하는 통신 네트워크 시스템.A communication network system, characterized in that periodically receiving synchronization information from the plurality of nodes, and determining activation states of the plurality of nodes based on the received synchronization information.
  5. 제 3 항에 있어서,4. The method of claim 3,
    상기 동기화 정보는, 유효시간에 대한 정보를 더 포함하고,The synchronization information further includes information about the effective time,
    상기 서버는,The server is
    상기 유효시간이 경과된 동기화 정보를 삭제하는 것을 특징으로 하는 통신 네트워크 시스템.and deleting the synchronization information whose valid time has elapsed.
  6. 제 1 항에 있어서,The method of claim 1,
    상기 서버는,The server is
    복수의 노드 중 적어도 두 개의 리더 노드가 설정되는 것을 방지하기 위해, 주기적으로 리더 노드임을 알리는 알림 정보를 전송하도록 상기 리더 노드를 제어하는 것을 특징으로 하는 통신 네트워크 시스템.In order to prevent at least two leader nodes from being set among a plurality of nodes, the communication network system according to claim 1, wherein the leader node is controlled to periodically transmit notification information indicating that it is a leader node.
  7. 제 2 항에 있어서,3. The method of claim 2,
    상기 나머지 노드는,The remaining nodes are
    복수의 알림 정보가 수신되는 경우, 상기 수신된 복수의 알림 정보가 일치하는지 여부를 판단하는 것을 특징으로 하는 통신 네트워크 시스템.When a plurality of pieces of notification information are received, the communication network system, characterized in that it is determined whether the received plurality of pieces of notification information match.
  8. 제 7 항에 있어서,8. The method of claim 7,
    상기 나머지 노드는,The remaining nodes are
    상기 복수의 알림 정보가 불일치하는 경우, 상기 서버가 동기화 정보를 요청하는 요청 정보를 상기 복수의 노드로 전송할 것을 요청하는 것을 특징으로 하는 통신 네트워크 시스템.When the plurality of pieces of notification information do not match, the server requests to transmit request information for requesting synchronization information to the plurality of nodes.
  9. 복수의 노드 및 상기 복수의 노드를 제어하는 서버를 포함하는 통신 네트워크 시스템의 제어방법으로,A method of controlling a communication network system comprising a plurality of nodes and a server controlling the plurality of nodes,
    상기 서버가 복수의 노드로 동기화 정보를 요청하는 단계;requesting, by the server, synchronization information from a plurality of nodes;
    상기 서버가 상기 복수의 노드로부터 수신된 동기화 정보에 포함된 부팅시간에 근거하여, 상기 복수의 노드 중 어느 하나의 노드를 리더 노드로 설정하는 단계; 및setting, by the server, any one of the plurality of nodes as a leader node based on a booting time included in the synchronization information received from the plurality of nodes; and
    상기 리더 노드가 상기 복수의 노드 중 상기 리더 노드를 제외한 나머지 노드로 리더 노드임을 알리는 알림 정보를 전송하는 단계를 포함하는 통신 네트워크 시스템의 제어방법.and transmitting, by the leader node, notification information indicating that the leader node is a leader node to the remaining nodes other than the leader node among the plurality of nodes.
  10. 제 9 항에 있어서,10. The method of claim 9,
    상기 서버는,The server is
    상기 복수의 노드가 상기 서버에 연결되는 것에 근거하여, 상기 동기화 정보를 요청하는 요청 정보를 상기 복수의 노드로 전송하는 것을 특징으로 하는 통신 네트워크 시스템의 제어방법.The method of controlling a communication network system, characterized in that, based on the connection of the plurality of nodes to the server, request information for requesting the synchronization information is transmitted to the plurality of nodes.
  11. 제 10 항에 있어서,11. The method of claim 10,
    상기 동기화 정보는, 부팅시간에 대한 정보를 포함하고,The synchronization information includes information on boot time,
    상기 서버는, The server is
    상기 복수의 노드로부터 수신된 동기화 정보에 포함된 부팅시간이 가장 빠른 노드를 상기 리더 노드로 설정하는 것을 특징으로 하는 통신 네트워크 시스템의 제어방법.The control method of a communication network system, characterized in that the node having the fastest booting time included in the synchronization information received from the plurality of nodes is set as the leader node.
  12. 제 10 항에 있어서,11. The method of claim 10,
    상기 서버는, The server is
    주기적으로 상기 복수의 노드로부터 동기화 정보를 수신하고, 상기 수신된 동기화 정보에 근거하여, 상기 복수의 노드의 활성화 상태를 판단하는 것을 특징으로 하는 통신 네트워크 시스템의 제어방법.A method for controlling a communication network system, characterized in that periodically receiving synchronization information from the plurality of nodes, and determining activation states of the plurality of nodes based on the received synchronization information.
  13. 제 11 항에 있어서,12. The method of claim 11,
    상기 동기화 정보는, 유효시간에 대한 정보를 더 포함하고,The synchronization information further includes information about the effective time,
    상기 서버는,The server is
    상기 유효시간이 경과된 동기화 정보를 삭제하는 것을 특징으로 하는 통신 네트워크 시스템의 제어방법.The method of controlling a communication network system, characterized in that the synchronization information for which the valid time has elapsed is deleted.
  14. 제 9 항에 있어서,10. The method of claim 9,
    상기 서버는,The server is
    복수의 노드 중 적어도 두 개의 리더 노드가 설정되는 것을 방지하기 위해, 주기적으로 리더 노드임을 알리는 알림 정보를 전송하도록 상기 리더 노드를 제어하는 것을 특징으로 하는 통신 네트워크 시스템의 제어방법.A method for controlling a communication network system, comprising: controlling the leader node to periodically transmit notification information indicating that it is a leader node in order to prevent setting of at least two leader nodes among a plurality of nodes.
  15. 제 10 항에 있어서,11. The method of claim 10,
    상기 나머지 노드는,The remaining nodes are
    복수의 알림 정보가 수신되는 경우, 상기 수신된 복수의 알림 정보가 일치하는지 여부를 판단하는 것을 특징으로 하는 통신 네트워크 시스템의 제어방법.When a plurality of pieces of notification information are received, the control method of a communication network system, characterized in that it is determined whether the received plurality of pieces of notification information match.
  16. 제 15 항에 있어서,16. The method of claim 15,
    상기 나머지 노드는,The remaining nodes are
    상기 복수의 알림 정보가 불일치하는 경우, 상기 서버가 동기화 정보를 요청하는 요청 정보를 상기 복수의 노드로 전송할 것을 요청하는 것을 특징으로 하는 통신 네트워크 시스템의 제어방법.When the plurality of pieces of notification information do not match, the server requests to transmit request information for requesting synchronization information to the plurality of nodes.
  17. 하드웨어인 컴퓨터와 결합되어, 청구항 제9항의 통신 네트워크 시스템의 제어방법을 수행하기 위해 컴퓨터 판독 가능한 기록매체에 저장된, 컴퓨터 프로그램.A computer program that is combined with a computer that is hardware and is stored in a computer-readable recording medium to perform the control method of the communication network system of claim 9 .
PCT/KR2021/013245 2020-10-13 2021-09-28 Communication network system and method for controlling same WO2022080706A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200131784A KR102367017B1 (en) 2020-10-13 2020-10-13 Communication network system and control method thereof
KR10-2020-0131784 2020-10-13

Publications (1)

Publication Number Publication Date
WO2022080706A1 true WO2022080706A1 (en) 2022-04-21

Family

ID=80474526

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/013245 WO2022080706A1 (en) 2020-10-13 2021-09-28 Communication network system and method for controlling same

Country Status (2)

Country Link
KR (1) KR102367017B1 (en)
WO (1) WO2022080706A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100628327B1 (en) * 2005-11-05 2006-09-27 한국전자통신연구원 Method and apparatus for data synchronization between telematics server and telematics terminal
KR20140052758A (en) * 2012-10-25 2014-05-07 주식회사 케이티 System of providing synchronization information and method thereof
WO2015118847A1 (en) * 2014-02-04 2015-08-13 日本電気株式会社 Wireless communication network system and method for determining representative sensor device
KR20190082926A (en) * 2016-11-28 2019-07-10 아마존 테크놀로지스, 인크. Messaging Protocol Communication Management
US20190349426A1 (en) * 2016-12-30 2019-11-14 Intel Corporation The internet of things

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101990184B1 (en) 2016-12-19 2019-06-17 전자부품연구원 Communication Method and System based on MQTT/HTTP for IoT Gateway Using Private-IP Address

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100628327B1 (en) * 2005-11-05 2006-09-27 한국전자통신연구원 Method and apparatus for data synchronization between telematics server and telematics terminal
KR20140052758A (en) * 2012-10-25 2014-05-07 주식회사 케이티 System of providing synchronization information and method thereof
WO2015118847A1 (en) * 2014-02-04 2015-08-13 日本電気株式会社 Wireless communication network system and method for determining representative sensor device
KR20190082926A (en) * 2016-11-28 2019-07-10 아마존 테크놀로지스, 인크. Messaging Protocol Communication Management
US20190349426A1 (en) * 2016-12-30 2019-11-14 Intel Corporation The internet of things

Also Published As

Publication number Publication date
KR102367017B1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
WO2012173444A2 (en) Apparatus and method for exchanging data between upnp based devices
AU2014200239B2 (en) System and method for multiple sender support in low latency fifo messaging using rdma
WO2012157940A2 (en) System and method for providing push service using feedback message
US20050068913A1 (en) Metaspace: communication middleware for partially connected mobile ad hoc networks
WO2020096087A1 (en) Method, system, and non-transitory computer-readable recording medium for managing message group
WO2018010269A1 (en) Message processing method and device
WO2011099690A2 (en) Method and apparatus for using service of home network device based on remote access
WO2014069827A1 (en) System and method for providing data analysis service in a cloud environment
WO2011074880A2 (en) System and method of multi-media conferencing between universal plug and play (upnp) enabled telephony devices and wireless area network (wan) devices
WO2013008994A1 (en) Method for device discovery and method for downloading content
WO2012050293A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
WO2014112811A1 (en) Method and apparatus for controlling traffic in electronic device
WO2015056833A1 (en) Web-based real time data pushing method and system thereof
US7966394B1 (en) Information model registry and brokering in virtualized environments
WO2013176431A1 (en) System and method for allocating server to server and for efficient messaging
WO2022080706A1 (en) Communication network system and method for controlling same
WO2018182065A1 (en) Multi-resource subscription association method in m2m system
WO2013062272A2 (en) Method and apparatus for providing cloud service
WO2013100484A1 (en) User terminal and method for sharing data between applications thereof
WO2013122359A1 (en) Wireless terminal device having network load reducing function, method for reducing network load in wireless terminal device, and recording medium
WO2012157939A2 (en) System and method for providing push service to reduce network load
JP2010146246A (en) Framework computer program for multi-agent system, network system and inter-agent communication method
WO2014056385A1 (en) Common message sending method, electronic device and storage medium
WO2013151369A1 (en) Method and system for providing game service using virtual ip in pc gaming center
WO2012026700A9 (en) File-transmitting method, and apparatuses for performing the method

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21880354

Country of ref document: EP

Kind code of ref document: A1