KR20180073154A - 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법 - Google Patents

사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법 Download PDF

Info

Publication number
KR20180073154A
KR20180073154A KR1020160176692A KR20160176692A KR20180073154A KR 20180073154 A KR20180073154 A KR 20180073154A KR 1020160176692 A KR1020160176692 A KR 1020160176692A KR 20160176692 A KR20160176692 A KR 20160176692A KR 20180073154 A KR20180073154 A KR 20180073154A
Authority
KR
South Korea
Prior art keywords
mqtt
broker
telemetry transport
queuing telemetry
message queuing
Prior art date
Application number
KR1020160176692A
Other languages
English (en)
Other versions
KR102004160B1 (ko
Inventor
허의남
김용현
Original Assignee
경희대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경희대학교 산학협력단 filed Critical 경희대학교 산학협력단
Priority to KR1020160176692A priority Critical patent/KR102004160B1/ko
Priority to US15/830,479 priority patent/US10826979B2/en
Publication of KR20180073154A publication Critical patent/KR20180073154A/ko
Application granted granted Critical
Publication of KR102004160B1 publication Critical patent/KR102004160B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • 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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • 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/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • H04L67/2809
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • 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/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 기술에 관한 것으로서, 일실시예에 따른 클라이언트 노드들 그룹화 장치는 클라이언트 노드로부터의 연결 요청을 수신하고, 상기 연결 요청에 응답하여 상기 클라이언트 노드에 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당하는 매니저부, 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커를 포함하고, 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 상기 클라이언트 노드의 식별자 정보 및 구독한 토픽 정보를 수신하는 MQTT(Message Queuing Telemetry Transport) 중개부, 및 상기 수신된 식별자 정보와 상기 토픽 정보를 데이터베이스에 저장하여 상기 클라이언트 노드를 신규 연결하는 부하 처리부를 포함할 수 있다.

Description

사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법{APPARATUS AND METHOD FOR LOGICAL GROUPING METHOD OF IOT CONNECTED CLIENT NODES USING CLIENT IDENTIFIER}
본 발명은 사물인터넷으로 다양한 목적에 따른 단말이 연결된 환경에서 MQTT(Message Queuing Telemetry Transport)를 기반으로 구독 토픽에 독립적인 클라이언트 노드들의 식별자를 이용하여 동적으로 논리적 그룹화를 수행하고, 긴급 상황 전파, 단말 유지 관리 등을 위한 해당 그룹별 일괄 메시지 전송하는 기술적 사상에 관한 것이다.
기존 MQTT(Message Queuing Telemetry Transport)에서 사용하는 토픽(Topic)을 이용한 그룹핑 과정은 새로운 그룹이 요구되는 경우 해당 노드들에 새로운 토픽을 구독시키는 추가 과정이 요구되어 지연 시간이 발생한다. 또한, 클라이언트 노드가 대량으로 연결된 MQTT 환경에서 토픽 기반 그룹핑을 위해서는 다수 계층의 토픽 구조가 형성되어 서비스 운영 시 복잡도가 급증된다. 또한, 일반적인 방법들과 같이 단순 클라이언트 간 구분을 위한 노드 ID만 존재할 경우에는 클라이언트 노드의 환경 정보를 확인할 수 없기 때문에 그룹핑 기능에 대한 목적을 상실하거나 한계점이 존재할 수 있다.
기존 기술들은 노드들의 그룹화 요구 시, 서비스 어플리케이션에 따른 단순 토픽 분류로 상황에 따른 구독 토픽 변경 과정이 요구되어 실시간 그룹화가 불가능하다. 구독할 토픽을 신규 추가하는 과정은 연결된 클라이언트 노드들과 미리 정의된 약속 과정이 필요하기에 IoT 기반 실시간 모바일 클라우드 서비스에서 불필요한 과정으로 인한 지연이 발생할 수 있다. 또한, 필요에 따라 실시간 그룹화 수행 시 클라이언트 노드에 미리 설치된 어플리케이션에 종속적인 그룹화 기준으로 인해 그룹화 기준 설정이 자유롭지 않다.
따라서 기존 기술에서는 실시간 모바일 클라우드 환경에서 IoT를 기반으로 연결된 다양한 노드에 대한 실시간 그룹화를 기반으로 원활한 서비스 제공에 한계점이 존재한다.
한국출원특허 제2014-0092596호 "사물 인터넷 메시징 서비스에 기반한 스마트 상황 분배 프레임워크 장치 및 그 제어 방법" 한국출원특허 제2014-0161797호 "확장형 게시-구독 메시징 서비스 방법 및 시스템"
본 발명은 사물인터넷으로 다양한 목적에 따른 단말이 연결된 환경에서 MQTT를 기반으로 구독 토픽에 독립적인 클라이언트 노드들의 식별자를 이용하여 동적으로 논리적 그룹화를 수행하는 것을 목적으로 한다.
본 발명은 논리적 그룹화를 통해 긴급 상황 전파, 단말 유지 관리 등을 위한 해당 그룹별 일괄 메시지를 전송하는 것을 목적으로 한다.
본 발명은 스마트 환경을 추구하는 홈, 의료 등 산업 전반에서 대량의 클라이언트 노드에 대한 대응이 가능하고 동적인 논리적 그룹화를 통해 대량의 클라이언트 노드들을 효율적으로 관리하는 것을 목적으로 한다.
일실시예에 따른 클라이언트 노드들 그룹화 장치는 클라이언트 노드로부터의 연결 요청을 수신하고, 상기 연결 요청에 응답하여 상기 클라이언트 노드에 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당하는 매니저부, 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커를 포함하고, 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 상기 클라이언트 노드의 식별자 정보 및 구독한 토픽 정보를 수신하는 MQTT(Message Queuing Telemetry Transport) 중개부, 및 상기 수신된 식별자 정보와 상기 토픽 정보를 데이터베이스에 저장하여 상기 클라이언트 노드를 신규 연결하는 부하 처리부를 포함할 수 있다.
일실시예에 따른 상기 매니저부는, 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 부하를 고려하여 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당하는 클라이언트 노드들을 그룹화 할 수 있다.
일실시예에 따른 상기 MQTT(Message Queuing Telemetry Transport) 중개부는, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 토픽 퍼블리시 메시지를 수신하고, 상기 토픽 퍼블리시 메시지의 수신에 응답하여 매니저부로 토픽 퍼블리시를 요청하며, 상기 매니저부는, 상기 요청에 응답하여 다른 MQTT(Message Queuing Telemetry Transport) 브로커에 토픽 퍼블리시와 관련된 내용을 브로드캐스팅하는 클라이언트 노드들을 그룹화 할 수 있다.
일실시예에 따른 노드들 그룹화 장치는 그룹별 일괄 메시지 전송을 수행하도록 제어하는 대시보드 제어부를 더 포함하고, 상기 대시보드 제어부는, 데이터베이스로부터 그룹별 클라이언트 노드 식별자 및 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 연결정보를 독출하고, 상기 독출된 그룹별 클라이언트 노드 식별자 및 상기 연결정보를 이용해서 특정 그룹에 속하는 적어도 하나 이상의 클라이언트 노드로 토픽 구독 상태 및 상기 그룹별 일괄 메시지를 퍼블리시 하도록 매니저부를 제어하는 클라이언트 노드들을 그룹화 할 수 있다.
일실시예에 따른 노드들 그룹화 장치는 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 자원 상태를 모니터링하는 모니터링부를 더 포함할 수 있다.
일실시예에 따른 상기 모니터링부는, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 네트워크 사용량 및 중앙처리장치의 사용량 중에서 적어도 하나를 모니터링할 수 있다.
일실시예에 따른 상기 매니저부는, 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 부하 상태를 모니터링할 수 있다.
일실시예에 따른 상기 매니저부는, 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 임계치 이상의 부하가 감지되는 경우, 새로운 MQTT(Message Queuing Telemetry Transport) 브로커를 생성하고, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 연결된 클라이언트 노드 중 적어도 일부를 상기 새로운 MQTT(Message Queuing Telemetry Transport) 브로커에 이주시킬 수 있다.
일실시예에 따른 매니저부에서, 클라이언트 노드로부터의 연결 요청을 수신하고, 상기 연결 요청에 응답하여 상기 클라이언트 노드에 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당하는 단계, MQTT(Message Queuing Telemetry Transport) 중개부에서, 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 상기 클라이언트 노드의 식별자 정보 및 구독한 토픽 정보를 수신하는 단계, 및 부하 처리부에서, 상기 수신된 식별자 정보와 상기 토픽 정보를 데이터베이스에 저장하여 상기 클라이언트 노드를 신규 연결하는 단계를 포함할 수 있다.
일실시예에 따른 클라이언트 노드들 그룹화 방법은 상기 MQTT(Message Queuing Telemetry Transport) 중개부에서, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 토픽 퍼블리시 메시지를 수신하는 단계, 및 상기 토픽 퍼블리시 메시지의 수신에 응답하여 매니저부로 토픽 퍼블리시를 요청하는 단계를 더 포함하고, 상기 매니저부에서, 상기 요청에 응답하여 다른 MQTT(Message Queuing Telemetry Transport) 브로커에 토픽 퍼블리시와 관련된 내용을 브로드캐스팅하는 단계를 더 포함할 수 있다.
일실시예에 따른 클라이언트 노드들 그룹화 방법 대시보드 제어부에서, 데이터베이스로부터 그룹별 클라이언트 노드 식별자 및 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 연결정보를 독출하는 단계, 상기 독출된 그룹별 클라이언트 노드 식별자 및 상기 연결정보를 이용해서 특정 그룹에 속하는 적어도 하나 이상의 클라이언트 노드로 토픽 구독 상태 및 상기 그룹별 일괄 메시지를 퍼블리시 하도록 상기 매니저부를 제어하는 단계를 더 포함할 수 있다.
일실시예에 따른 클라이언트 노드들 그룹화 방법은 모니터링부에서, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 자원 상태를 모니터링하는 단계를 더 포함하고, 상기 자원 상태는 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 네트워크 사용량 및 중앙처리장치의 사용량 중에서 적어도 하나를 포함할 수 있다.
일실시예에 따른 클라이언트 노드들 그룹화 방법은 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 임계치 이상의 부하가 감지되는지 여부를 판단하는 단계, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에서 임계치 이상의 부하가 감지되는 경우, 새로운 MQTT(Message Queuing Telemetry Transport) 브로커를 생성하는 단계, 및 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 연결된 클라이언트 노드 중 적어도 일부를 상기 새로운 MQTT(Message Queuing Telemetry Transport) 브로커에 이주시키는 단계를 포함할 수 있다.
일실시예에 따르면, 사물인터넷으로 다양한 목적에 따른 단말이 연결된 환경에서 MQTT를 기반으로 구독 토픽에 독립적인 클라이언트 노드들의 식별자를 이용하여 동적으로 논리적 그룹화를 수행할 수 있다.
일실시예에 따르면, 논리적 그룹화를 통해 긴급 상황 전파, 단말 유지 관리 등을 위한 해당 그룹별 일괄 메시지를 전송할 수 있다.
일실시예에 따르면, 스마트 환경을 추구하는 홈, 의료 등 산업 전반에서 대량의 클라이언트 노드에 대한 대응이 가능하고 동적인 논리적 그룹화를 통해 대량의 클라이언트 노드들의 효율적인 관리가 가능하다.
도 1은 일실시예에 따른 노드들 그룹화 장치를 설명하는 도면이다.
도 2는 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT 구조를 설명하는 도면이다.
도 3은 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 신규 노드의 연결 과정을 설명하는 도면이다.
도 4는 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 토픽 기반의 퍼블리시(Publish) 과정을 설명하는 도면이다.
도 5는 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 그룹별 일괄 메시지 전송 기능을 설명하는 도면이다.
도 6은 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 모니터링부에 의한 MQTT 브로커의 부하를 모니터링하는 실시예를 설명하는 도면이다.
도 7은 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 특정 MQTT 브로커의 부하 감지 및 확장을 설명하는 도면이다.
도 8은 기존 기술의 토픽 기반 그룹 메시지 전송 과정과 본 발명에 따른 노드 식별자 기반 그룹 메시지 전송을 대비하는 도면이다.
도 9는 개발자 식별자를 기반으로 클라이언트 노드들을 그룹핑하는 실시예를 설명하는 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 노드들 그룹화 장치(100)를 설명하는 도면이다.
본 발명은 동적으로 변경 가능한 논리적 그룹핑 기능을 수행하기 위해 기존 MQTT에서 발전된 형태의 분산 MQTT를 구성하고 중심이 되는 MQTT 브로커들의 매니저부를 기반으로 클라이언트 노드의 식별자와 메타정보를 관리하여 실시간 서비스를 가능하게 한다.
이를 위해, 일실시예에 따른 노드들 그룹화 장치(100)는 매니저부(110), MQTT 중개부(120), 및 부하 처리부(130)를 포함할 수 있다.
일실시예에 따른 매니저부(110)는 클라이언트 노드로부터의 연결 요청을 수신하고, 연결 요청에 응답하여 클라이언트 노드에 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당할 수 있다. 예를 들어, 매니저부(110)는 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 부하를 고려하여 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당할 수 있다.
일실시예에 따른 MQTT 중개부(120)는 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커를 포함할 수 있다. 예를 들어, MQTT(Message Queuing Telemetry Transport) 중개부(120)는 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 클라이언트 노드로부터 토픽 퍼블리시 메시지를 수신하고, 토픽 퍼블리시 메시지의 수신에 응답하여 매니저부(110)로 토픽 퍼블리시를 요청할 수 있다. 이에, 매니저부(110)는 요청에 응답하여 다른 MQTT(Message Queuing Telemetry Transport) 브로커에 토픽 퍼블리시와 관련된 내용을 브로드캐스팅하는 클라이언트 노드들을 그룹화할 수 있다.
또한, MQTT 중개부(120)는 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 클라이언트 노드로부터 클라이언트 노드의 식별자 정보 및 구독한 토픽 정보를 수신할 수 있다.
이에 일실시예에 따른 부하 처리부(130)는 수신된 식별자 정보와 토픽 정보를 데이터베이스에 저장하여 클라이언트 노드를 신규 연결할 수 있다.
일실시예에 따른 노드들 그룹화 장치(100)는 대시보드 제어부(미도시)를 더 포함할 수 있다.
대시보드 제어부(미도시)는 그룹별 일괄 메시지 전송을 수행하도록 매니저부(110)를 제어할 수 있다. 예를 들면, 대시보드 제어부(미도시)는 데이터베이스로부터 그룹별 클라이언트 노드 식별자 및 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 연결정보를 독출할 수 있다. 또한, 대시보드 제어부(미도시)는 독출된 그룹별 클라이언트 노드 식별자 및 연결정보를 이용해서 특정 그룹에 속하는 적어도 하나 이상의 클라이언트 노드로 토픽 구독 상태 및 그룹별 일괄 메시지를 퍼블리시 하도록 매니저부를 제어할 수 있다.
일실시예에 따른 노드들 그룹화 장치(100)는 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 자원 상태를 모니터링하는 모니터링부를 더 포함할 수 있다.
일례로, 모니터링부(미도시)는 MQTT(Message Queuing Telemetry Transport) 브로커의 내부에 포함될 수 있고, 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 자원 상태를 모니터링할 수 있다.
일례로, 모니터링부(미도시)는, 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 네트워크 사용량 및 중앙처리장치의 사용량 중에서 적어도 하나를 모니터링 할 수 있다. 이 경우, 매니저부(110)는, 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 부하 상태를 모니터링할 수 있다. 보다 구체적으로, 매니저부(110)는 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 임계치 이상의 부하가 감지되는 경우, 새로운 MQTT(Message Queuing Telemetry Transport) 브로커를 생성하고, 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 연결된 클라이언트 노드 중 적어도 일부를 새로운 MQTT(Message Queuing Telemetry Transport) 브로커에 이주시킬 수 있다.
일실시예에 따른 노드들 그룹화 장치(100)는 기존 ISO 표준인 MQTT(Message Queuing Telemetry Transport) 프로토콜을 기반으로 다양한 모바일 노드가 사물인터넷을 통해 연결된 상황에서 각종 서비스를 실시간으로 제공하기 위한 기술이다. MQTT는 현재 스마트 환경을 위해 사물인터넷을 접목하는 각종 산업 분야에서 활용되고 있는 메시지 전송 프로토콜이다.
본 발명에서는 표준 MQTT 프로토콜을 기반으로 개발한 확장성을 가진 분산형 MQTT를 이용하며, 확장성을 위한 분산형 MQTT 운영 방법과 클라이언트 노드의 식별자 관리 방법을 기반으로 실시간 논리적 그룹화에 따른 그룹별 일괄 메시지 전송이 가능하다.
이러한 특징에 따라 본 발명은 대량의 클라이언트 노드로 구성된 클라우드와 사물인터넷 환경에서 실시간 서비스 및 노드 관리가 요구되는 모든 분야에도 적용이 가능하다.
이하, 도 2 내지 7을 통해 본 발명의 일실시예에 따른 노드들 그룹화 장치 및 이에 상응하는 노드들 그룹화 방법을 구체적으로 설명한다.
도 2는 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT 구조(200)를 설명하는 도면이다.
도 2에서 보는 바와 같이, 매니저부(220)에서 MQTT 브로커들(230)의 리소스 모니터링과 최초 연결 클라이언트 노드들(240)의 로드 밸런싱을 수행하여, 상황에 따른 MQTT 브로커의 확장으로 실시간 서비스가 가능하다.
또한, 데이터베이스(270)를 이용한 연결 노드의 식별자 관리로 연결 노드에 대한 구독 토픽에 독립적인 메시지 전송이 가능하다. 이를 통해 연결 노드 식별자 기반의 동적인 논리적 그룹화가 가능하고 필요에 따라 그룹별 일괄 메시지 전송 기능을 제공한다.
본 발명에서는 기존 기술과 달리 구독 토픽에 독립적인 클라이언트 노드들(240)의 그룹 관리를 수행하여, 동적으로 논리적 그룹화가 가능하다. 구독 토픽에 독립적인 그룹화를 위해 MQTT에서 내부적으로 노드별 구분을 위해 생성되는 연결 노드 식별자(ID)를 이용하여 그룹화를 수행할 수 있다. 따라서 본 발명에서는 클라이언트 노드 식별자를 이용한 메시지 직접 전송이 가능하며, 동적 그룹화를 위해 논리적 클라이언트 노드 식별자 관리를 통해 그룹별 일괄 메시지 전송이 가능하다.
이를 위해, 도면부호 200을 살펴보면, 분산 MQTT의 구조(200)는 대시보드 제어부(210), 매니저부(220), MQTT 브로커들(230), 모니터부, 클라이언트 노드들(240), 부하 처리부(250), API 서버(260), 데이터베이스(270)를 포함한다.
먼저, 매니저부(220)는 브로커 간 메시지(토픽, 그룹 메시지) 전달, 브로커들의 로드 밸런싱, 로드 밸런싱 정책에 따른 브로커의 생성/삭제, 데이터베이스에 메시지 퍼블리시, 로그 저장의 기능을 수행한다.
MQTT 브로커들(230)은 표준 MQTT 프로토콜에 따른 메시지 Pub/Sub 기능을 수행하며, 클라이언트 노드들의 연결 및 해제 관련 로그를 데이터베이스에 저장하는 기능을 수행한다.
모니터부는 MQTT 브로커의 부하 상태를 모니터링하며 모니터링 로그를 데이터베이스(270)에 저장하는 기능을 수행한다.
대시보드 제어부(210)는 실시간 모바일 클라우드 서비스에서 서비스 제공자가 클라이언트 노드들을 관리하고 논리적 그룹화를 통한 그룹별 일괄 메시지 전송할 수 있도록 웹 기반 인터페이스를 제공할 수 있다.
도 3은 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 신규 노드의 연결 과정을 설명하는 실시예(300)이다.
분산 MQTT는 표준 MQTT 프로토콜을 따르는 MQTT 브로커(330)가 분산 노드로의 확장성을 가지기 때문에 클라이언트 노드(350)의 연결 과정이 요구된다.
클라이언트 노드(350)는 먼저 매니저부(320)에 연결을 시도하고 로드 밸런싱 정책에 따라 적절한 MQTT 브로커(330)를 할당 받는다.
MQTT 브로커(330)는 연결된 클라이언트 노드(350)의 식별자 정보와 구독한 토픽 정보를 API 서버(370)를 이용해서 데이터베이스(380)에 저장할 수 있다.
이때, MQTT 브로커(330)는 MQTT 브로커(330)의 자원 상태를 주기적으로 수집하여 부하 처리부(360) 및 API 서버(370)를 통해 데이터베이스(380)에 저장할 수 있다.
도 4는 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 토픽 기반의 퍼블리시(Publish) 과정을 설명하는 실시예(400)이다.
토픽 Publish 과정은 클라이언트 노드들(440) 중 연결된 하나의 클라이언트 노드가 특정 토픽으로 메시지를 퍼블리시 했을 시, 다른 클라이언트들에게 메시지를 퍼블리시 하는 과정을 나타낸다.
MQTT 브로커들(430) 중에서 특정 MQTT 브로커가 연결된 클라이언트 노드로부터 수신된 퍼블리시 메시지를 매니저부(420)에게 전달할 수 있다.
매니저부(420)는 다른 MQTT 브로커에 연결된 토픽 구독 클라이언트 노드에게 전달하기 위해 모든 MQTT 브로커에게 퍼블리시 내용을 브로드캐스팅 한다.
MQTT 브로커에서는 해당 토픽을 구독 중인 클라이언트 노드가 없을 시에는 브로드 캐스트를 무시한다.
일실시예에 따르면, 일실시예에 따른 매니저부(420)는 자원 상태를 주기적으로 수집하여 부하 처리부(450) 및 API 서버(460)를 통해 데이터베이스(470)에 저장할 수 있다.
도 5는 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 그룹별 일괄 메시지 전송 기능을 설명하는 실시예(500)이다.
실시예(500)에 따르면, 분산 MQTT의 핵심인 논리적으로 구성된 그룹에 대한 일괄 메시지 전송 기능을 나타낼 수 있다. 먼저, 대시보드 제어부(510)를 통해 서비스 제공자에 의한 동적인 논리적 그룹화가 되어 있을 때, 일괄 메시지 전송 요청에 대한 그룹별 클라이언트 식별자와 연결 MQTT 브로커의 정보들을 데이터베이스로부터 가져온다.
매니저부(520)는 연결 MQTT 브로커들(530) 중 특정 MQTT 브로커에 대한 정보를 통해 각각 클라이언트 식별자를 전달하고 해당되는 MQTT 브로커에서는 그룹에 속하는 클라이언트 노드들(540)에게 토픽 구독 상태와 독립적인 메시지를 퍼블리시한다.
일실시예에 따르면, 대시보드 제어부(510) 자원 상태를 주기적으로 수집하여 부하 처리부(550) 및 API 서버(560)를 통해 데이터베이스(570)에 저장할 수 있다.
도 6은 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 모니터링부(630)에 의한 MQTT 브로커의 부하를 모니터링하는 실시예(600)를 설명하는 도면이다.
실시예(600)에 따르면, 매니저부(610)는 모니터링부(630)와 부하 처리부(650)를 통해 MQTT 브로커(620)의 부하를 모니터링할 수 있다.
MQTT 브로커(620) 내에 위치한 모니터부(630)는 MQTT 브로커(620)의 자원 상태를 주기적으로 수집하여 API 서버(660)를 통해 데이터베이스(670)에 저장할 수 있다. 자원 상태는 네트워크 사용량, 중앙처리장치의 사용량 등이 있을 수 있고, 매니저부(610)는 모든 MQTT 브로커들의 부하 상태를 모니터링하며, 이에 따라 신규 연결되는 클라이언트 노드들을 MQTT 브로커에 할당 시 로드 밸런싱 결과를 이용할 수 있다.
도 7은 일실시예에 따른 노드들 그룹화 장치가 적용된 분산 MQTT에서 특정 MQTT 브로커의 부하 감지 및 확장을 설명하는 실시예(700)이다.
실시예(700)에 따르면, 부하 상태 모니터링 중 특정 MQTT 브로커(720)의 부하가 감지되었을 시 MQTT 브로커(730)의 확장을 수행할 수 있다.
실시예(700)는 새로운 MQTT 브로커(730)를 생성하여, 기존 MQTT 브로커(720)에 연결되어 있던 클라이언트들을 새로운 MQTT 브로커(730)로 이주시키는 과정을 나타낸다. 이주과정은 본 기술의 클라이언트 식별자 기반의 메시지 직접 전송을 이용하여 손쉬운 클라이언트 이주가 가능하다. 이에 반해 기존 기술과 같이 클라이언트 식별자 기반의 메시지 직접 전송이 불가할 시에는 이주가 요구되는 특정 클라이언트 노들들에게만 메시지를 전달할 방법이 토픽에 종속적이기 때문에 별도의 토픽 재구독 과정이 요구되어 부하 감지에 따른 실시간 클라이언트 노드 이주가 불가능하다.
생성된 MQTT 브로커(730) 내에 위치한 모니터부는 MQTT 브로커(730)의 자원 상태를 주기적으로 수집하여 부하 처리부(750) 및 API 서버(760)를 통해 데이터베이스(770)에 저장할 수 있다.
도 8은 기존 기술의 토픽 기반 그룹 메시지 전송 과정과 본 발명에 따른 노드 식별자 기반 그룹 메시지 전송을 대비하는 도면이다.
도면부호 810은 기존 기술의 토픽 기반 그룹 메시지 전송 과정에 해당하고, 도면부호 820은 본 발명에 따른 노드 식별자 기반 그룹 메시지 전송에 해당한다.
도면부호 810에서 보는 바와 같이, 기존 기술의 경우에는 토픽을 이용하여 그룹 메시지를 전송하기 때문에 새로운 그룹을 설정하고 그룹 메시지를 전송하기 위해 별도의 각 노드별 그룹 토픽 구독 과정을 거쳐야 하는 점에서 많은 지연 시간을 초래한다.
그러나, 도면부호 820에서 보는 바와 같이, 본 발명에서는 MQTT 브로커에서 노드 식별자 정보를 가지고 있으므로, 관리자는 노드 식별자를 이용한 그룹화를 지정하고, 해당 그룹에 노드 식별자 기반 일괄 그룹 메시지를 요청할 수 있다. 또한, 이와 같이 노드 식별자를 기반으로 동적인 그룹화가 가능하여, 노드 관리가 유연하고 간결해지기 때문에 실시간 서비스 환경에서 각 노드별 관리에 있어 지연 시간을 최소화할 수 있다.
이로써, 본 발명을 이용하는 경우 사물인터넷으로 다양한 목적에 따른 단말이 연결된 환경에서 MQTT를 기반으로 구독 토픽에 독립적인 클라이언트 노드들의 식별자를 이용하여 동적으로 논리적 그룹화를 수행하고, 긴급 상황 전파, 단말 유지 관리 등을 위한 해당 그룹별 일괄 메시지의 전송이 가능하다.
도 9는 개발자 식별자를 기반으로 클라이언트 노드들을 그룹핑하는 실시예를 설명하는 도면이다.
실시간 IoT 서비스를 위한 Pub/Sub 기능, 실시간 IoT 노드의 원격 관리 기능 등을 수행하기 위해서는 각 클라이언트 노드의 식별과 환경 정보를 시스템에서 확인 가능해야 한다.
이를 위해 본 발명에서는 다음과 같은 형태로 클라이언트 노드의 정보를 저장하고 동적인 그룹핑을 수행할 수 있다.
먼저, 본 발명에서는 수많은 스마트 전등이 배치된 대형 강의실에서 급히 일부 전등만 제어할 필요가 있는 경우를 고려할 수 있다.
이에, 본 발명에 따른 클라이언트 노드들 그룹핑 장치 및 방법에서는 관리 페이지의 대시보드를 통해 해당 위치(location)의 전등(node_id)을 그룹핑할 수 있다.
예를 들어, 해당 그룹에 대해 일괄 제어(ex. 켜다/끄다) 메시지를 전송해야 하는데, 시나리오에서 위치 정보를 확인할 수 없을 경우에는 각 전등마다 제어 메시지를 전송하거나 새로운 토픽을 구독시키기 위한 과정이 요구되어 많은 지연이 발생할 수 있다.
도면부호 910에 해당하는 표는 개발자 ID(developer_id)를 기반으로 개발자가 제공하고자 하는 서비스에 따라 도면부호 920에 해당하는 표와 같이 클라이언트 노드의 ID(node_id)가 생성될 수 있다. 이는 본 발명에서 의미하는 클라이언트 노드 식별자에 해당될 수 있다.
클라이언트 노드 식별자는 서비스 종류를 반영한 식별자로 할당되어 거시적인 클라이언트 노드 간의 식별이 가능하다. 이와 더불어 본 발명에서는 실시간으로 동적인 그룹화를 제공하기 위해 추가로 각 클라이언트 노드에 대한 메타정보를 관리할 수 있다. 메타정보에는 서비스 종류(service_id, service_type), 클라이언트 노드의 위치(location) 등이 포함된다. 이와 같이 클라이언트 노드의 식별자 및 메타정보를 기반으로 클라이언트 노드 수의 제약 없이 제공하는 서비스 종류와 클라이언트 노드의 위치에 따른 동적인 그룹핑이 가능하다.
한편, 도면부호 930의 표에서는 일괄 그룹 메시지의 전송을 위해 대시보드를 통한 클라이언트 노드를 선택하는 화면의 예시를 나타낸다.
결국 본 발명을 이용하는 경우, 동적으로 변경 가능한 논리적 그룹핑 기능을 수행하기 위해 기존 MQTT에서 발전된 형태의 분산 MQTT를 구성하고 중심이 되는 매니저부를 기반으로 클라이언트 노드의 식별자와 메타정보를 관리하여 실시간 서비스를 가능하다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 노드 그룹화 장치
110: 매니저부
120: MQTT 중개부
130: 부하 처리부

Claims (13)

  1. 클라이언트 노드로부터의 연결 요청을 수신하고, 상기 연결 요청에 응답하여 상기 클라이언트 노드에 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당하는 매니저부;
    적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커를 포함하고, 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 상기 클라이언트 노드의 식별자 정보 및 구독한 토픽 정보를 수신하는 MQTT(Message Queuing Telemetry Transport) 중개부, 및
    상기 수신된 식별자 정보와 상기 토픽 정보를 데이터베이스에 저장하여 상기 클라이언트 노드를 신규 연결하는 부하 처리부를 포함하는 클라이언트 노드들 그룹화 장치.
  2. 제1항에 있어서,
    상기 매니저부는,
    상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 부하를 고려하여 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당하는 클라이언트 노드들 그룹화 장치.
  3. 제1항에 있어서,
    상기 MQTT(Message Queuing Telemetry Transport) 중개부는,
    상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 토픽 퍼블리시 메시지를 수신하고, 상기 토픽 퍼블리시 메시지의 수신에 응답하여 매니저부로 토픽 퍼블리시를 요청하며,
    상기 매니저부는,
    상기 요청에 응답하여 다른 MQTT(Message Queuing Telemetry Transport) 브로커에 토픽 퍼블리시와 관련된 내용을 브로드캐스팅하는 클라이언트 노드들 그룹화 장치.
  4. 제1항에 있어서,
    그룹별 일괄 메시지 전송을 수행하도록 제어하는 대시보드 제어부를 더 포함하고,
    상기 대시보드 제어부는,
    데이터베이스로부터 그룹별 클라이언트 노드 식별자 및 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 연결정보를 독출하고,
    상기 독출된 그룹별 클라이언트 노드 식별자 및 상기 연결정보를 이용해서 특정 그룹에 속하는 적어도 하나 이상의 클라이언트 노드로 토픽 구독 상태 및 상기 그룹별 일괄 메시지를 퍼블리시 하도록 매니저부를 제어하는 클라이언트 노드들 그룹화 장치.
  5. 제1항에 있어서,
    상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 자원 상태를 모니터링하는 모니터링부
    를 더 포함하는 클라이언트 노드들 그룹화 장치.
  6. 제5항에 있어서,
    상기 모니터링부는,
    상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 네트워크 사용량 및 중앙처리장치의 사용량 중에서 적어도 하나를 모니터링 하는 클라이언트 노드들 그룹화 장치.
  7. 제1항에 있어서,
    상기 매니저부는,
    상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 부하 상태를 모니터링하는 클라이언트 노드들 그룹화 장치.
  8. 제1항에 있어서,
    상기 매니저부는,
    특정 MQTT(Message Queuing Telemetry Transport) 브로커에 임계치 이상의 부하가 감지되는 경우,
    새로운 MQTT(Message Queuing Telemetry Transport) 브로커를 생성하고, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 연결된 클라이언트 노드 중 적어도 일부를 상기 새로운 MQTT(Message Queuing Telemetry Transport) 브로커에 이주시키는 클라이언트 노드들 그룹화 장치.
  9. 매니저부에서, 클라이언트 노드로부터의 연결 요청을 수신하고, 상기 연결 요청에 응답하여 상기 클라이언트 노드에 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 할당하는 단계;
    MQTT(Message Queuing Telemetry Transport) 중개부에서, 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커 중에서 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 상기 클라이언트 노드의 식별자 정보 및 구독한 토픽 정보를 수신하는 단계, 및
    부하 처리부에서, 상기 수신된 식별자 정보와 상기 토픽 정보를 데이터베이스에 저장하여 상기 클라이언트 노드를 신규 연결하는 단계
    를 포함하는 클라이언트 노드들 그룹화 방법.
  10. 제8항에 있어서,
    상기 MQTT(Message Queuing Telemetry Transport) 중개부에서, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커를 통해 상기 클라이언트 노드로부터 토픽 퍼블리시 메시지를 수신하는 단계; 및
    상기 토픽 퍼블리시 메시지의 수신에 응답하여 매니저부로 토픽 퍼블리시를 요청하는 단계
    를 더 포함하고,
    상기 매니저부에서, 상기 요청에 응답하여 다른 MQTT(Message Queuing Telemetry Transport) 브로커에 토픽 퍼블리시와 관련된 내용을 브로드캐스팅하는 단계
    를 더 포함하는 클라이언트 노드들 그룹화 방법.
  11. 제8항에 있어서,
    대시보드 제어부에서, 데이터베이스로부터 그룹별 클라이언트 노드 식별자 및 상기 적어도 하나 이상의 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 연결정보를 독출하는 단계;
    상기 독출된 그룹별 클라이언트 노드 식별자 및 상기 연결정보를 이용해서 특정 그룹에 속하는 적어도 하나 이상의 클라이언트 노드로 토픽 구독 상태 및 상기 그룹별 일괄 메시지를 퍼블리시 하도록 상기 매니저부를 제어하는 단계
    를 더 포함하는 클라이언트 노드들 그룹화 방법.
  12. 제8항에 있어서,
    모니터링부에서, 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 자원 상태를 모니터링하는 단계
    를 더 포함하고,
    상기 자원 상태는 상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 대한 네트워크 사용량 및 중앙처리장치의 사용량 중에서 적어도 하나를 포함하는 클라이언트 노드들 그룹화 방법.
  13. 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 임계치 이상의 부하가 감지되는지 여부를 판단하는 단계;
    상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에서 임계치 이상의 부하가 감지되는 경우, 새로운 MQTT(Message Queuing Telemetry Transport) 브로커를 생성하는 단계;
    상기 특정 MQTT(Message Queuing Telemetry Transport) 브로커에 연결된 클라이언트 노드 중 적어도 일부를 상기 새로운 MQTT(Message Queuing Telemetry Transport) 브로커에 이주시키는 단계
    를 포함하는 클라이언트 노드들 그룹화 방법.
KR1020160176692A 2016-12-22 2016-12-22 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법 KR102004160B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160176692A KR102004160B1 (ko) 2016-12-22 2016-12-22 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법
US15/830,479 US10826979B2 (en) 2016-12-22 2017-12-04 Apparatus and method for logically grouping client nodes in an IoT environment using client identifiers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160176692A KR102004160B1 (ko) 2016-12-22 2016-12-22 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180073154A true KR20180073154A (ko) 2018-07-02
KR102004160B1 KR102004160B1 (ko) 2019-07-26

Family

ID=62630184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160176692A KR102004160B1 (ko) 2016-12-22 2016-12-22 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법

Country Status (2)

Country Link
US (1) US10826979B2 (ko)
KR (1) KR102004160B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074916B1 (ko) * 2018-08-01 2020-02-07 충북대학교 산학협력단 Rpl 기반 분산 mqtt 브로커 구조
KR102093314B1 (ko) * 2018-11-05 2020-03-25 유비라커산업(주) Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법
KR20200043129A (ko) * 2018-10-17 2020-04-27 조선대학교산학협력단 사물 인터넷 환경에서의 mqtt 프로토콜 기반 서버 시스템
KR102123314B1 (ko) * 2019-02-18 2020-06-17 금오공과대학교 산학협력단 단방향 데이터 전달기법을 적용한 mms 기반의 산업용 사물인터넷 플랫폼
KR20220075791A (ko) * 2020-11-30 2022-06-08 주식회사 쉬프트베리 네트워크 제어 서버 및 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10637960B2 (en) 2016-10-21 2020-04-28 Infiswift Technologies, Inc. Method for bridging publish/subscribe brokers for guaranteed low-latency delivery
US10708360B2 (en) * 2017-03-14 2020-07-07 Infiswift Technologies, Inc. Method for transport agnostic communication between internet of things client and broker
US10833881B1 (en) * 2017-11-06 2020-11-10 Amazon Technologies, Inc. Distributing publication messages to devices
CN110048927B (zh) * 2018-01-16 2020-12-15 华为技术有限公司 通信方法和通信装置
US10757181B1 (en) * 2018-03-14 2020-08-25 Palantir Technologies Inc. Dynamic balancing of operations by selecting subsets of nodes
WO2020112793A2 (en) * 2018-11-28 2020-06-04 Convida Wireless, Llc Framework for dynamic brokerage and management of topics and data at the service layer
CN109660617A (zh) * 2018-12-18 2019-04-19 中电科华云信息技术有限公司 一种基于服务器集群的消息推送方法
CN110062004A (zh) * 2019-04-30 2019-07-26 全球能源互联网研究院有限公司 一种基于物联网协议的报文处理系统及方法
CN110391840B (zh) * 2019-09-17 2019-12-17 中国人民解放军国防科技大学 太阳同步轨道卫星遥测参数异常判断方法和系统
CN111669315B (zh) * 2020-06-04 2022-11-18 拉扎斯网络科技(上海)有限公司 消息推送方法、装置、系统、电子设备及可读存储介质
CN112118296B (zh) * 2020-08-30 2023-12-29 浪潮金融信息技术有限公司 一种基于mqtt协议的物联网文件传输方法
DE102020214357A1 (de) 2020-11-16 2022-05-19 Volkswagen Aktiengesellschaft Computerimplementiertes Verfahren zum Übertragen von Nachrichten in einem auf einem MQTT-Protokoll basierenden Kommunikationsnetzwerk
CN112328417B (zh) * 2020-11-27 2023-12-12 杭州海兴电力科技股份有限公司 一种嵌入式多程序通讯方法和系统
US11811884B1 (en) * 2020-12-11 2023-11-07 Amazon Technologies, Inc. Topic subscription provisioning for communication protocol
US11477303B1 (en) * 2021-05-17 2022-10-18 Microsoft Technology Licensing, Llc Broker cell for distributed message system
CN113709263B (zh) * 2021-11-01 2022-03-18 深圳市城市交通规划设计研究中心股份有限公司 一种物联网协议mqtt的数据接入方法、计算机及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018716A1 (en) * 2001-02-21 2003-01-23 Brandyn Webb Populating online forums
KR20110079235A (ko) * 2009-12-31 2011-07-07 주식회사 네이블커뮤니케이션즈 그룹 메시지 서비스 방법
KR20140092596A (ko) 2013-01-16 2014-07-24 에스케이플래닛 주식회사 어플리케이션서비스 기반 서비스메뉴 제공 시스템 및 그 방법, 그리고 이에 적용되는 장치
JP2014161797A (ja) 2013-02-25 2014-09-08 Mitsubishi Heavy Ind Ltd 逆浸透膜装置及びその運転方法
WO2016014516A1 (en) * 2014-07-21 2016-01-28 Convida Wireless, Llc Service layer interworking using mqtt protocol
KR101625159B1 (ko) * 2014-11-28 2016-05-27 주식회사 케이티 동적 세션 할당 방법, 동적 세션 관리 방법 및 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122118B2 (en) * 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements
US20040032486A1 (en) * 2002-08-16 2004-02-19 Shusman Chad W. Method and apparatus for interactive programming using captioning
JP5068435B2 (ja) * 2005-07-15 2012-11-07 日本電気株式会社 情報交換システム、管理サーバ及びそれらに用いるネットワーク負荷軽減方法並びにそのプログラム
US8412021B2 (en) * 2007-05-18 2013-04-02 Fall Front Wireless Ny, Llc Video player user interface
US9535988B2 (en) * 2007-12-21 2017-01-03 Yahoo! Inc. Blog-based video summarization
US7809773B2 (en) * 2007-12-21 2010-10-05 Yahoo! Inc. Comment filters for real-time multimedia broadcast sessions
US9159074B2 (en) * 2009-03-23 2015-10-13 Yahoo! Inc. Tool for embedding comments for objects in an article
US8392555B2 (en) * 2009-06-01 2013-03-05 International Business Machines Corporation Push-back mechanism for pub/sub brokers
KR101609056B1 (ko) 2014-07-22 2016-04-04 울산대학교 산학협력단 사물 인터넷 메시징 서비스에 기반한 스마트 상황 분배 프레임워크 장치 및 그 제어 방법
KR101609532B1 (ko) 2014-11-19 2016-04-20 경북대학교 산학협력단 확장형 게시-구독 메시징 서비스 방법 및 시스템
US10645181B2 (en) * 2016-12-12 2020-05-05 Sap Se Meta broker for publish-subscribe-based messaging

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018716A1 (en) * 2001-02-21 2003-01-23 Brandyn Webb Populating online forums
KR20110079235A (ko) * 2009-12-31 2011-07-07 주식회사 네이블커뮤니케이션즈 그룹 메시지 서비스 방법
KR20140092596A (ko) 2013-01-16 2014-07-24 에스케이플래닛 주식회사 어플리케이션서비스 기반 서비스메뉴 제공 시스템 및 그 방법, 그리고 이에 적용되는 장치
JP2014161797A (ja) 2013-02-25 2014-09-08 Mitsubishi Heavy Ind Ltd 逆浸透膜装置及びその運転方法
WO2016014516A1 (en) * 2014-07-21 2016-01-28 Convida Wireless, Llc Service layer interworking using mqtt protocol
KR101625159B1 (ko) * 2014-11-28 2016-05-27 주식회사 케이티 동적 세션 할당 방법, 동적 세션 관리 방법 및 시스템

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074916B1 (ko) * 2018-08-01 2020-02-07 충북대학교 산학협력단 Rpl 기반 분산 mqtt 브로커 구조
KR20200043129A (ko) * 2018-10-17 2020-04-27 조선대학교산학협력단 사물 인터넷 환경에서의 mqtt 프로토콜 기반 서버 시스템
KR102093314B1 (ko) * 2018-11-05 2020-03-25 유비라커산업(주) Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법
KR102123314B1 (ko) * 2019-02-18 2020-06-17 금오공과대학교 산학협력단 단방향 데이터 전달기법을 적용한 mms 기반의 산업용 사물인터넷 플랫폼
KR20220075791A (ko) * 2020-11-30 2022-06-08 주식회사 쉬프트베리 네트워크 제어 서버 및 방법

Also Published As

Publication number Publication date
US10826979B2 (en) 2020-11-03
US20180183862A1 (en) 2018-06-28
KR102004160B1 (ko) 2019-07-26

Similar Documents

Publication Publication Date Title
KR102004160B1 (ko) 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법
CN109688235B (zh) 虚拟网络业务处理方法、装置和系统,控制器,存储介质
KR101926394B1 (ko) 클라우드 컴퓨팅 시스템 및 클라우드 시스템에서의 부하 분리 방법
US10506047B2 (en) Dynamically subscribing to management information and method and system for dispensing thereof
US9378070B2 (en) Generic distributed processing unit for multi-agent systems
CN106657314B (zh) 跨数据中心数据同步系统及方法
US20190132276A1 (en) Unified event processing for data/event exchanges with existing systems
JP2018532201A (ja) メッセージデータを転送するためのシステム及び方法
US9432449B2 (en) Managing connection failover in a load balancer
US10942792B2 (en) Event driven subscription matching
US9323591B2 (en) Listening for externally initiated requests
US7966394B1 (en) Information model registry and brokering in virtualized environments
CN111930525A (zh) Gpu资源使用方法、电子设备及计算机可读介质
CN109428926B (zh) 一种调度任务节点的方法和装置
US20190042294A1 (en) System and method for implementing virtualized network functions with a shared memory pool
KR20160110585A (ko) 사물 인터넷에서 dds 기반 사물 품질의 설정 방법
KR20190035592A (ko) 분산 클라우드 환경에서의 분산 브로커 코디네이터 시스템 및 방법
US11102293B2 (en) System and method for migrating an agent server to an agent client device
CN110233791B (zh) 数据去重方法和装置
US10701167B1 (en) Adaptive quorum for a message broker service
CN109076027B (zh) 网络服务请求
CN106911739B (zh) 一种信息分发方法及装置
EP2364477B1 (en) Method for preserving service in a highly available environment
JP2011141695A (ja) メッセージ処理装置およびメッセージ処理方法
US8380938B2 (en) Providing shared access to data storage resources across cluster computing environment boundaries

Legal Events

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