KR102036154B1 - IoT 서비스를 위한 메시지 관리 장치 및 방법 - Google Patents

IoT 서비스를 위한 메시지 관리 장치 및 방법 Download PDF

Info

Publication number
KR102036154B1
KR102036154B1 KR1020170163339A KR20170163339A KR102036154B1 KR 102036154 B1 KR102036154 B1 KR 102036154B1 KR 1020170163339 A KR1020170163339 A KR 1020170163339A KR 20170163339 A KR20170163339 A KR 20170163339A KR 102036154 B1 KR102036154 B1 KR 102036154B1
Authority
KR
South Korea
Prior art keywords
message
virtual queue
stored
virtual
received
Prior art date
Application number
KR1020170163339A
Other languages
English (en)
Other versions
KR20190064065A (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 KR1020170163339A priority Critical patent/KR102036154B1/ko
Publication of KR20190064065A publication Critical patent/KR20190064065A/ko
Application granted granted Critical
Publication of KR102036154B1 publication Critical patent/KR102036154B1/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/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • H04L67/322
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

IoT(Internet of Things) 서비스를 위한 메시지 관리 방법에 관한 것이며, 메시지 관리 방법은, 제1 단말 기기로부터 수신한 수신 메시지를 메시지 유형에 따라 분류하여 복수의 가상 큐 중 어느 하나의 가상 큐에 저장하는 단계; 및 상기 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐에 저장된 메시지들을 제2 단말 기기로 제공하는 단계를 포함하고, 상기 복수의 가상 큐는 긴급 관련 제1 가상 큐, 중요 관련 제2 가상 큐 및 일반 관련 제3 가상 큐를 포함할 수 있다.

Description

IoT 서비스를 위한 메시지 관리 장치 및 방법 {MESSAGE MANAGE APPARATUS AND METHOD FOR SUPPORTING SERVICE IN INTERNET OF THINGS}
본원은 IoT 서비스를 위한 메시지 관리 장치 및 방법에 관한 것이다. 특히, 본원은 IoT에서 긴급 상황을 우선적으로 지원하는 MQTT(message queue telemetry transport) 브로커를 제공하는 기술에 관한 것이다.
최근 스마트 홈, 스마트 그리드, 건강 관리 및 스마트 팩토리와 같은 다양한 IoT(Internet of Things) 서비스에 대한 수요가 크게 증가하고 있다. 대부분의 IoT 서비스는 제한된 컴퓨팅 기능, 제한된 스토리지 용량 및 제한된 전력과 같이 많은 리소스가 제한된 장치를 사용하며, 이러한 장치는 저전력 손실 네트워크(Low-power Lossy Networks, LLN)를 통해 서로 통신한다. 이때, 이러한 제한된 환경은 높은 패킷 손실과 IoT 서비스에서 예측할 수 없는 긴 지연을 초래할 수 있다.
안정적인 IoT 서비스를 지원하기 위해 organization for the advancement of structured information standards (OASIS)는 message queue telemetry transport (MQTT) 프로토콜을 international organization for standardization (ISO)(즉, ISO / IEC PRF 20922)로 표준화한 바 있다. MQTT는 publish/subscribe을 기반으로 하는 경량형 메시징 프로토콜을 의미한다. MQTT에서 장치들은 메시지의 토픽(Topic)에 따라 게시된 메시지를 관심있는 장치에 분배하는 브로커 서버를 통해 메시지를 교환한다. MQTT는 매우 작은 메시지 헤더 크기(즉, 2 바이트)를 사용하여 제한된 IoT 서비스 환경에서 메시지 오버 헤드를 작게 유지한다. 따라서, MQTT는 IoT 서비스를 신뢰성 있게 만드는 필수 기술 중 하나로 널리 인식되고 있다.
한편, 차량 추적, 사고 탐지, 건강 상태 인식 및 산업 기계 모니터링과 같은 모니터링 애플리케이션이 IoT 애플리케이션으로서 가장 일반적이고 대표적인 것으로 간주되고 있다. 이러한 애플리케이션에서, 특히 비상 사태의 경우에는 적시(timely)에 안정적인 메시지 전달이 중요하다고 할 수 있다.
MQTT 표준은 3 가지 QoS (Quality of Service) 레벨을 정의하여 메시지 전달의 신뢰성을 관리한다. QoS 레벨은 메시지 전달에서 확인 응답(acknowledgement) 및 재전송(retransmission)의 사용을 결정하므로, 메시지는 QoS 레벨에 따라 최대 한 번 (즉, QoS 레벨 0), 적어도 한 번 (즉, QoS 레벨 1) 또는 정확히 한 번 (즉, QoS 레벨 2) 전달된다. 그러나 MQTT 표준은 메시지 전달의 적시성을 지원하는 어떠한 메커니즘도 정의하고 있지 않으므로, 비상 사태의 전달에도 긴 지연이 발생될 수 있다. 따라서 긴급 상황으로 인해 게시된 특정 메시지에 대한 우선 순위 지원과 우선 순위 지원과 함께 안정성을 제공하는 메커니즘이 원활한(seamless) IoT 서비스를 위해 필요하다고 할 수 있다.
최근 IoT 서비스를 위하여 적시에 신뢰할 수 있는 메시지의 전달과 관련된 많은 연구가 수행된 바 있다. 일예로, 논문 ["Implementing and Evaluating Priority Control Mechanism for Heterogeneous Remote Monitoring IoT System", Takuma Tachibana, Tetsuo Furuichi, Hiroshi Mineno, Proceedings of the 13th International Conference on Mobile and Ubiquitous Systems: Computing Networking and Services, Pages 239-244]에서는 데이터 유형(예를 들어, 이미지, 텍스트 및 비디오) 및 데이터에 대한 전송 간격을 고려하여 IoT 장치에 대한 전송 시간을 명시하기 위한 우선 순위 제어 메커니즘을 제안했다. 상기의 메커니즘에서는 브로커 서버가 사용되며, 서버는 모든 IoT 장치의 전송 우선 순위를 관리한다. 이 메커니즘은 IoT 장치의 전송 우선 순위를 제어하여 메시지 전달의 적시성을 보장할 수 있다. 그러나 상기의 메커니즘은 MQTT와 같은 애플리케이션 프로토콜 사양을 전혀 고려하지 않고 설계됨에 따라, 기존 IoT 시스템과의 호환성이 낮은 문제가 있다.
또한, 논문 ["Adaptive Periodic Communication over MQTT for Large-Scale Cyber-Physical Systems", Hyun-Chul Jo, Hyun-Wook Jin, 2015 IEEE 3rd International Conference on Cyber-Physical Systems, Networks, and Applications (CPSNA) (2015), pp: 66-69]에서는 주기적인 메시지의 적시성을 보장하기 위해 게시 주기를 조정하는 MQTT에 대한 주기적인 N 대 1 통신을 위한 적응 프레임워크를 제안했다. 그러나 이 프레임워크는 모든 메시지의 우선 순위가 동일한 주기적 통신 요구 사항에만 초점을 맞추고 있음에 따라 비상 사태에 적합하지 않은 단점이 있다. 즉, 상기의 프레임워크에서는 모든 메시지의 우선 순위가 동일함에 따라 비상 사태 관련 메시지의 전달이 적시에 이루어지지 않는 단점이 있다.
또한, 논문 ["Toward better horizontal integration among IoT services", Ala Al-Fuqaha, Abdallah Khreishah, Mohsen Guizani, Ammar Rayes, Mehdi Mohammadi, IEEE Communications Magazine, Volume 53 (2015), Pages 72-79]에서는 MQTT 브로커가 메시지의 우선 순위를 다시 정할 수 있도록 고안된 Enhanced MQTT를 제안했다. MQTT 브로커는 게시된 메시지의 전달 우선 순위를 제어하므로, Enhanced MQTT가 비상 사태에서 메시지 전달의 적시성을 보장할 수 있다. 그러나 상기의 논문에서는 우선 순위 제어 메커니즘에 대한 구체적인 메커니즘을 제시하고 있지 않음에 따라 실제 환경에서 적용하는데 어려운 문제가 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, IoT(Internet of Things) 서비스 환경에서 긴급 상황을 우선적으로 지원, 즉 IoT에서 비상 사태에 적시적(timely)이고 신뢰성 있는 메시지 전달을 지원할 수 있는 IoT 서비스를 위한 메시지 관리 장치 및 방법을 제공하려는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 종래 MQTT 대비 IoT 서비스 환경에서 발생하는 비상 사태 관련 메시지에 대하여 더 낮은 지연과 더 낮은 메시지 손실이 이루어지도록 하는 IoT 서비스를 위한 메시지 관리 장치 및 방법을 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 방법은, 제1 단말 기기로부터 수신한 수신 메시지를 메시지 유형에 따라 분류하여 복수의 가상 큐 중 어느 하나의 가상 큐에 저장하는 단계; 및 상기 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐에 저장된 메시지들을 제2 단말 기기로 제공하는 단계를 포함하고, 상기 복수의 가상 큐는 긴급 관련 제1 가상 큐, 중요 관련 제2 가상 큐 및 일반 관련 제3 가상 큐를 포함할 수 있다.
또한, 상기 저장하는 단계는, 상기 수신 메시지의 헤더에 포함된 메시지 유형의 값에 따라 상기 수신 메시지를 긴급 메시지, 중요 메시지 및 일반 메시지 중 어느 하나로 분류할 수 있다.
또한, 상기 메시지 유형의 값은 0 내지 15 중 어느 하나의 값을 가지며, 상기 저장하는 단계는, 상기 메시지 유형의 값이 0 인 경우 상기 수신 메시지를 긴급 메시지로 분류하여 상기 제1 가상 큐에 저장하고, 상기 메시지 유형의 값이 1 내지 14 중 어느 하나인 경우 상기 수신 메시지를 일반 메시지로 분류하여 상기 제3 가상 큐에 저장하고, 상기 메시지 유형의 값이 15인 경우 상기 수신 메시지를 중요 메시지로 분류하여 상기 제2 가상 큐에 저장할 수 있다.
또한, 상기 메시지 전달 우선 순위는, 상기 제3 가상 큐보다 상기 제2 가상 큐에 높게 부여되고, 상기 제2 가상 큐보다 상기 제1 가상 큐에 높게 부여될 수 있다.
또한, 상기 제공하는 단계는, 상기 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐 각각에 저장된 메시지들의 QoS(Quality of Service) 레벨을 조정하는 단계를 포함하고, 상기 QoS 레벨의 조정에 의하여 상기 복수의 가상 큐에 저장된 메시지들이 제공될 수 있다.
또한, 상기 제공하는 단계는, 상기 제1 가상 큐에 저장된 메시지를 상기 제2 가상 큐 및 제3 가상 큐에 저장된 메시지보다 우선으로 제공하고, 상기 제2 가상 큐에 저장된 메시지를 상기 제1 가상 큐에 저장된 메시지가 없는 경우에 제공하고, 상기 제3 가상 큐에 저장된 메시지를 상기 제1 가상 큐 및 상기 제2 가상 큐에 저장된 메시지가 없는 경우에 제공할 수 있다.
한편, 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 장치는, 제1 단말 기기로부터 수신한 수신 메시지를 메시지 유형에 따라 분류하여 복수의 가상 큐 중 어느 하나의 가상 큐에 저장하는 분류부; 및 상기 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐에 저장된 메시지들을 제2 단말 기기로 제공하는 우선 순위 제어부를 포함하고, 상기 복수의 가상 큐는 긴급 관련 제1 가상 큐, 중요 관련 제2 가상 큐 및 일반 관련 제3 가상 큐를 포함할 수 있다.
또한, 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 시스템은, 메시지를 생성하여 메시지 관리 장치로 제공하는 제1 단말 기기와 상기 메시지 관리 장치로부터 제공되는 메시지를 수신하는 제2 단말 기기를 포함하는 복수의 단말 기기; 및 상기 제1 단말 기기로부터 수신한 수신 메시지를 메시지 유형에 따라 분류하여 복수의 가상 큐 중 어느 하나의 가상 큐에 저장하고, 상기 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐에 저장된 메시지들을 제2 단말 기기로 제공하는 메시지 관리 장치를 포함하고, 상기 복수의 가상 큐는 긴급 관련 제1 가상 큐, 중요 관련 제2 가상 큐 및 일반 관련 제3 가상 큐를 포함할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 수신 메시지를 메시지 유형에 따라 분류하여 긴급/중요/일반 가상 큐 중 어느 하나의 가상 큐에 저장하고, 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 메시지 제공(전달)이 이루어지도록 함으로써, IoT(Internet of Things) 서비스 환경에서 긴급 상황을 우선적으로 지원, 즉 IoT에서 비상 사태에 적시적(timely)이고 신뢰성 있는 메시지 전달을 지원할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 수신 메시지를 긴급/중요/일반 메시지로 분류하여 관리하고, 분류 결과에 따라 메시지 전달 우선 순위의 부여(할당) 및 그에 따라 각 가상 큐에 저장된 메시지의 QoS 레벨을 제어함으로써, 긴급 메시지 및 중요 메시지의 전달에 있어서 종래 MQTT 대비 더 낮은 지연과 더 낮은 메시지 손실이 이루어지도록 할 수 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1은 본원의 일 실시예에 따른 IoT 서비스를 위한 메시지 관리 시스템의 개략적인 구성을 나타낸 도면이다.
도 2는 본원의 일 실시예에 따른 IoT 서비스를 위한 메시지 관리 장치의 개략적인 구성을 나타낸 도면이다.
도 3은 본원의 일 실시예에 따른 IoT 서비스를 위한 메시지 관리 장치에 적용되는 메시지 포맷을 나타낸 도면이다.
도 4는 본원의 일 실시예에 따른 IoT 서비스를 위한 메시지 관리 장치에 적용되는 메시지의 유형을 나타낸 도면이다.
도 5는 본원의 일 실시예에 따른 실험에 적용되는 파라미터의 예를 나타낸 도면이다.
도 6은 본원의 일 실시예에 따른 실험에서 장치의 수가 증가함에 따른 긴급 메시지의 지연 변화를 나타낸 도면이다.
도 7은 본원의 일 실시예에 따른 실험에서 제1 단말 기기의 수가 증가에 따른 중요 메시지의 지연 변화를 나타낸 도면이다.
도 8은 본원의 일 실시예에 따른 실험에서 메시지 유형에 따른 메시지 손실률을 나타낸 도면이다.
도 9는 본원의 일 실시예에 따른 IoT 서비스를 위한 메시지 관리 방법에 대한 개략적인 흐름을 나타낸 도면이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 시스템(1)의 개략적인 구성을 나타낸 도면이고, 도 2는 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 장치(100)의 개략적인 구성을 나타낸 도면이다.
도 1 및 도 2를 참조하면, 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 시스템(1)은 메시지 관리 장치(100), 제1 단말 기기(200)와 제2 단말 기기(300)를 포함하는 복수의 단말 기기를 포함할 수 있다.
본원의 일 실시예에 따른 메시지 관리 시스템(1)에서 복수의 단말 기기 간에는 메시지 관리 장치(100)를 통해 메시지의 교환이 이루어질 수 있다. 제1 단말 기기(200)는 메시지를 생성하여 메시지 관리 장치(100)로 제공할 수 있으며, 제2 단말 기기(300)는 메시지 관리 장치(100)로부터 제공되는 메시지를 수신할 수 있다. 일예로, 제1 단말 기기(200)는 게시자(publisher) 단말 기기, 제2 단말 기기(300)는 구독자(Subscriber) 단말 기기로 달리 표현될 수 있다.
단말 기기는 IoT 서비스에 적용 가능한 모든 장치일 수 있으며, IoT 장치, 센싱 장치 등으로 달리 표현될 수 있다.
메시지 관리 장치(100)는 복수의 단말 기기 중 적어도 일부의 단말 기기(게시자 단말 기기)에 의하여 메시지의 토픽(Topic)에 따라 게시된 메시지들을 해당 토픽에 관심있어 하는 다른 단말 기기(구독자 단말 기기)로 분배할 수 있으며, 이에 따라 단말 기기들 간에 메시지 교환이 이루어지도록 할 수 있다. 이때, 본원에서 제안하는 메시지 관리 장치(100)는 메시지들의 전달 우선 순위를 고려하여 단말 기기들 간의 메시지 교환이 이루어지도록 할 수 있다.
이러한 본원에서 제안하는 메시지 관리 장치(100)는, 적시(timely)에 신뢰할 수 있는 메시지 전달을 지원하는 것을 목표로 하여, IoT 모니터링 애플리케이션을 위해 긴급 이벤트(즉, 긴급 메시지)를 우선적으로 지원하는 MQTT 브로커(broker)라 달리 표현될 수 있다. 즉, 메시지 관리 장치(100)는 서버, 브로커, 브로커 서버 등으로 달리 표현될 수 있으며, 본원에서 제안하는 메시지 관리 장치(100)는 이하 p-MQTT, 또는 p-MQTT 브로커 서버라 지칭될 수 있다. 메시지 관리 장치(100)에 대한 구체적인 설명은 다음과 같다.
메시지 관리 장치(100)는 분류부(110, Classification) 및 우선 순위 제어부(120, Priority control)를 포함할 수 있다.
분류부(110)는 제1 단말 기기(200)로부터 수신한 수신 메시지(달리 표현하여, 게시된 메시지)를 메시지 유형에 따라 분류하여 복수의 가상 큐(10) 중 어느 하나의 가상 큐에 저장할 수 있다. 이때, 도1의 도면 상에서는 메시지 관리 장치(100)가 하나의 제1 단말 기기(200)로부터만 메시지를 수신하는 것으로 예시하였으나, 이에만 한정되는 것은 아니고 복수의 단말 기기로부터 메시지를 수신할 수 있다.
복수의 가상 큐(10)는 긴급 관련 제1 가상 큐(2), 중요 관련 제2 가상 큐(4) 및 일반 관련 제3 가상 큐(6)를 포함할 수 있다. 구체적으로, 복수의 가상 큐(10)는 메시지 유형에 따른 분류에 기반하여, 긴급 메시지로 분류된 메시지를 저장하는 제1 가상 큐(2), 중요 메시지로 분류된 메시지를 저장하는 제2 가상 큐(4) 및 일반 메시지로 분류된 메시지를 저장하는 제3 가상 큐(6)를 포함할 수 있다. 이때, 제1 가상 큐(2)는 긴급 큐(Urgent queue), 제2 가상 큐(4)는 중요 큐(Critical queue), 제3 가상 큐(6)는 일반 큐(Normal queue)로 달리 표현될 수 있다.
분류부(110)는 수신 메시지의 헤더에 포함된 메시지 유형(Message Type) 필드를 확인하여 메시지 유형의 값에 따라 수신 메시지를 긴급 메시지, 중요 메시지 및 일반 메시지 중 어느 하나로 분류할 수 있다. 이때, 메시지 유형의 값은 0 내지 15 중 어느 하나의 값을 가질 수 있다. 또한, 메시지 유형의 값은 수신 메시지를 전송한 사용자(즉, 게시자)에 의하여 설정될 수 있다. 이는 도 3 및 도 4를 참조하여 보다 쉽게 이해될 수 있다.
도 3은 본원의 일 실시예에 따른 IoT 서비스를 위한 메시지 관리 장치에 적용되는 메시지 포맷을 나타낸 도면이고, 도 4는 본원의 일 실시예에 따른 IoT 서비스를 위한 메시지 관리 장치에 적용되는 메시지의 유형(즉, p-MQTT의 메시지 유형)을 나타낸 도면이다. 본원의 일 실시예에 따른 메시지 관리 장치(100, p-MQTT)에는 호환성을 위해 종래의 MQTT와 동일한 메시지 포맷이 적용될 수 있다. 즉, 도 3은 종래 MQTT 프로토콜의 메시지 포맷이자 본원에서 제안하는 p-MQTT에 적용되는 메시지 포맷이라 할 수 있다.
도 3 및 도 4를 참조하면, 본원의 일 실시예에 따른 메시지 관리 장치(100)에 적용되는 메시지 포맷의 경우, 메시지 유형(Message Type)이 4비트(0~3)로 정의됨에 따라 16개의 메시지 유형이 정의될 수 있다.
이때, 종래의 MQTT 프로토콜 메시지의 경우에도 메시지 유형이 16개로 정의되는데, 종래의 MQTT 메시지에서는 14개의 메시지 유형(즉, 1~14)만 정의되어 있고, 0 값과 15 값을 갖는 메시지 유형은 "reserved", 즉 사용하지 않는 타입으로 정의되어 있다. 여기서, MQTT 메시지 유형의 값이 1 내지 14인 경우에 대한 메시지가 갖는 의미(즉, 메시지 유형에 대한 정의) 및 메시지 포맷 구조에 대한 구체적인 설명은 본원이 속하는 기술분야의 통상의 지식을 가진 자에게는 잘 알려져 있으므로, 이하 자세한 설명은 생략하기로 한다.
한편, 본원의 일 실시예에 따른 메시지 관리 장치(100, p-MQTT)에서는 종래 MQTT와는 달리, 종래 MQTT에서 "reserved" 로 정의된 값(즉, 0과 15)을 긴급 메시지와 중요 메시지의 메시지 유형을 추가하기 위한 용도로 이용할 수 있다.
즉, 도 4를 참조하면 본원의 일 실시예에 따른 메시지 관리 장치(100, p-MQTT)에 적용되는 메시지의 유형의 경우, 0 값은 해당 메시지를 긴급(URGENT) 메시지로 분류하기 위한 용도로 사용되고, 15 값은 해당 메시지를 중요(CRITICAL) 메시지로 분류하기 위한 용도로 사용될 수 있다. 또한, 메시지 유형의 값이 1 내지 14 중 어느 하나에 해당하는 경우에는 해당 메시지를 일반(Normal) 메시지로 분류하기 위한 용도로 사용될 수 있다.
분류부(110)는 수신 메시지의 헤더의 메시지 유형 필드를 확인(검사)하여, 메시지 유형 값이 0 인 경우 수신 메시지를 긴급 메시지로 식별하고, 메시지 유형 값이 15인 경우 수신 메시지를 중요 메시지로 식별하고, 메시지 유형 값이 1 내지 14 중 어느 하나의 값을 갖는 경우 수신 메시지를 일반 메시지로 식별할 수 있다.
달리 말해, 분류부(110)는 수신 메시지의 헤더의 메시지 유형 필드를 확인(검사)함으로써 해당 수신 메시지의 메시지 유형의 값을 확인할 수 있다. 이후, 분류부(110)는 확인된 메시지 유형의 값에 따라 수신 메시지를 긴급 메시지, 중요 메시지 및 일반 메시지로 분류할 수 있다. 구체적으로, 분류부(110)는 수신 메시지의 메시지 유형의 값이 0 인 경우 수신 메시지를 긴급 메시지로 분류하여 제1 가상 큐(2)에 저장할 수 있다. 또한, 분류부(110)는 메시지 유형의 값이 1 내지 14 중 어느 하나인 경우 수신 메시지를 일반 메시지로 분류하여 제3 가상 큐에 저장(6)할 수 있다. 또한, 분류부(110)는 메시지 유형의 값이 15인 경우 수신 메시지를 중요 메시지로 분류하여 제2 가상 큐(4)에 저장할 수 있다. 이에 따르면, 수신 메시지는 메시지 유형의 값에 따라 메시지 관리 장치(100), 즉 p-MQTT 브로커 서버에 의해 긴급 메시지, 중요 메시지 및 일반 메시지 중 어느 하나로 식별될 수 있다.
복수의 가상 큐(10)에는 제1 단말 기기(200), 즉 게시자로부터 개별적으로 전송된 메시지가 메시지 유형에 따라 분류되어 저장될 수 있다. 또한, 메시지 관리 장치(100)는 제1 가상 큐(2), 제2 가상 큐(4) 및 제3 가상 큐(6)를 유지 및 관리할 수 있다. 여기서 긴급 큐인 제1 가상 큐(2)에는 다른 메시지보다 긴급하게 전송되어야 하는 메시지가 긴급 메시지로서 저장될 수 있다. 또한, 제2 가상 큐(4)에는 긴급 메시지보다 덜 긴급한 메시지(즉, 긴급 메시지보다는 긴급하지 않은 메시지)가 중요 메시지로서 저장될 수 있으며, 제2 가상 큐(4)에 저장된 메시지는 높은 신뢰성이 요구될 수 있다. 또한, 제3 가상 큐(6)에는 기존 MQTT 표준에서 사용되는 메시지인 메시지 유형 값 1 내지 14의 값을 가지는 메시지가 일반 메시지로서 저장될 수 있다.
우선 순위 제어부(120)는 복수의 가상 큐(10)에 대하여 부여된 메시지 전달 우선 순위를 고려하여 복수의 가상 큐(10)에 저장된 메시지들을 제2 단말 기기(300)로 제공할 수 있다.
이때, 메시지 전달 우선 순위는 일반 메시지가 저장된 제3 가상 큐(6)보다 중요 메시지가 저장된 제2 가상 큐(4)에 높게 부여되고, 중요 메시지가 저장된 제2 가상 큐(4)보다 긴급 메시지가 저장된 제1 가상 큐(2)에 높게 부여될 수 있다.
또한, 우선 순위 제어부(120)는 복수의 가상 큐(10)에 저장된 메시지들을 제2 단말 기기(300)로 제공함에 있어서, 제1 가상 큐(2)에 저장된 메시지(긴급 메시지)를 제2 가상 큐 및 제3 가상 큐에 저장된 메시지(즉, 중요 메시지와 일반 메시지)보다 우선으로 제공할 수 있다. 또한, 우선 순위 제어부(120)는 제2 가상 큐(4)에 저장된 메시지(중요 메시지)를 제1 가상 큐(2)에 저장된 메시지가 없는 경우에 제3 단말 기기(300)로 제공할 수 있다. 또한, 우선 순위 제어부(120)는 제3 가상 큐(6)에 저장된 메시지(일반 메시지)를 제1 가상 큐 및 제2 가상 큐에 저장된 메시지(즉, 긴급 메시지와 중요 메시지)가 없는 경우에 제3 단말 기기(300)로 제공할 수 있다.
또한, 우선 순위 제어부(120)는 복수의 가상 큐(10)에 대하여 부여된 메시지 전달 우선 순위를 고려하여 복수의 가상 큐(10) 각각에 저장된 메시지들의 QoS(Quality of Service) 레벨을 조정할 수 있다. 이에 따라, QoS 레벨의 조정에 의하여 복수의 가상 큐(10)에 저장된 메시지들이 제2 단말 기기(300)로 제공될 수 있다. 이때, 도 1의 도면 상에서는 메시지가 하나의 제2 단말 기기(300)로만 제공되는 것으로 예시하였으나, 이에만 한정되는 것은 아니고, 제공되는 해당 메시지의 토픽을 구독하는 복수의 단말 기기로 해당 메시지가 제공될 수 있다.
우선 순위 제어부(120)는 제1 가상 큐(2)에 저장된 메시지(긴급 메시지)의 QoS 레벨을 0으로 조정할 수 있다. 또한, 우선 순위 제어부(120)는 제2 가상 큐(4)에 저장된 메시지(중요 메시지)의 QoS 레벨은 2로 조정할 수 있다. 또한, 우선 순위 제어부(120)는 제3 가상 큐(6)에 저장된 메시지(일반 메시지)의 QoS 레벨은 조정 없이 초기 설정 값으로 유지될 수 있다. 이때, 메시지 관리 장치(100)가 복수의 단말 기기로부터 수신하는 모든 수신 메시지의 QoS 레벨은 1로 설정되어 있을 수 있으며, 이에 따라 제3 가상 큐(6)에 저장된 메시지(일반 메시지)의 QoS 레벨은 조정 없이 초기 설정 값인 1 로 유지될 수 있다.
또한, QoS 레벨이 0으로 조정된 메시지(즉, QoS 레벨이 0 값을 갖는 메시지)는 전달 여부의 확인 없이 최대 한 번만 제2 단말 기기(300)로 전달될 수 있다. 또한, QoS 레벨이 1 값을 갖는 메시지는 적어도 한 번(1회) 제2 단말 기기(300)로 전달될 수 있다. 또한, QoS 레벨이 2로 조정된 메시지(즉, QoS 레벨이 2 값을 갖는 메시지)는 정확히 한 번 제2 단말 기기(300)로 전달될 수 있다.
다시 말해, 우선 순위 제어부(120)는 복수의 가상 큐(10) 각각에 메시지 전달 우선 순위를 부여(할당)할 수 있으며, 이에 따라 복수의 가상 큐(10) 각각 내에 저장된 메시지의 QoS 레빌(수준)을 조정할 수 있다. 메시지 전달 우선 순위는 제1 가상 큐(2), 제2 가상 큐(4) 및 제3 가상 큐(6) 순으로 높게 부여(할당)할 수 있다.
제1 가상 큐(2)에는 제2 가상 큐(4) 및 제3 가상 큐(6) 대비 가장 높은 메시지 전달 우선 순위가 부여(할당)되므로, 제1 가상 큐(2)에 저장된 메시지가 존재하는 경우, 제1 가상 큐(2)에 저장된 긴급 메시지가 제2 가상 큐(4) 및 제3 가상 큐(6)에 저장된 메시지의 존재 여부와 관계없이 우선적으로 제2 단말 기기(300)로 제공(전달)될 수 있다. 이러한 경우, 우선 순위 제어부(120)는 적시에 긴급 메시지를 전달하기 위해, 제1 가상 큐(2)에 저장된 긴급 메시지의 헤더의 QoS 레벨을 0으로 조정할 수 있다. 이때, 긴급 메시지의 헤더의 QoS 레벨이 0으로 조정됨에 따라, 제1 가상 큐(2)에 저장된 긴급 메시지는 확인 응답 (acknowledgement) 및 재전송(retransmission) 없이 최대 한 번 제2 단말 기기(300)로 제공(전달)될 수 있다.
제2 가상 큐(4)에는 제1 가상 큐(2) 보다는 낮고 제3 가상 큐(6) 보다는 높은 메시지 전달 우선 순위가 부여(할당)되므로, 제2 가상 큐(4)에 저장된 중요 메시지는 제1 가상 큐(2)에 저장된 메시지가 없는 경우(즉, 제1 가상 큐가 비어있는 경우)에만 제2 단말 기기(300)로 제공(전달)될 수 있다. 이러한 경우, 우선 순위 제어부(120)는 제2 가상 큐(4)에 저장된 중요 메시지의 헤더의 QoS 레벨을 2 로 조정할 수 있다. 이때, 중요 메시지의 헤더의 QoS 레벨이 2 로 조정됨에 따라, 제2 가상 큐(4)에 저장된 중요 메시지는 제2 단말 기기(300)로 정확히 한 번 제공(전달)될 수 있으며, 이 경우 메시지 전달의 안전성이 향상될 수 있다.
제3 가상 큐(6)에는 제1 가상 큐(2) 및 제2 가상 큐(4) 대비 가장 낮은 메시지 전달 우선 순위가 부여(할당)되므로, 제3 가상 큐(6)에 저장된 일반 메시지는 제1 가상 큐(2)에 저장된 메시지와 제2 가상 큐(4)에 저장된 메시지가 모두 없는 경우(즉, 제1 가상 큐와 제2 가상 큐가 모두 비어있는 경우)에만 제2 단말 기기(300)로 제공(전달)될 수 있다. 이러한 경우, 우선 순위 제어부(120)는 제3 가상 큐(6)에 저장된 일반 메시지의 헤더의 QoS 레벨을 변경 없이 초기 설정 값(일예로 1)으로 유지할 수 있다. 또한 우선 순위 제어부(120)는 제3 가상 큐(6)에 저장된 일반 메시지의 경우, 게시자에 의해 설정된 메시지 유형의 값 또한 변경 없이 초기 설정 값 그대로 유지할 수 있다.
이러한 본원의 일 실시예에 따른 메시지 관리 장치(100, p-MQTT)는 복수의 가상 큐(10) 각각에 메시지 전달 우선 순위를 부여(할당)하고, 그에 따라 복수의 가상 큐(10) 각각 내의 메시지의 QoS 레벨을 조정함으로써, 비상 사태에 적시적이고 신뢰성 있는 메시지 전달을 지원할 수 있다.
이하에서는 본원에서 제안하는 메시지 관리 장치(100), 즉 p-MQTT의 성능을 평가하기 위한 실험적 구현 결과에 대하여 기술하기로 한다. 본원의 일 실험예에서는, 메시지 관리 장치(100)인 p-MQTT 브로커 서버를 우분투 버전 16.04.2에서 오픈 소스 Mosquitto 소프트웨어 버전 1.4.13을 사용하여 구현하였다. 또한 본원의 일 실험예에서는, 게시자인 제1 단말 기기(200)와 구독자인 제2 단말 기기(300)를 Eclipse Paho 프로젝트에서 제공하는 오픈 소스 라이브러리를 사용하여 구현하였다.
본원의 일 실험예에서는 복수의 제1 단말 기기(200), 즉 복수의 게시자가 p-MQTT 브로커 서버(100)에 연결되어 주기적으로 메시지를 전송할 수 있다. 이때, 일예로 본원의 일 실험예에서는 복수의 제1 단말 기기(200) 중 하나의 단말 기기(하나의 게시자)만 비상 사태를 포함하는 긴급 메시지 또는 중요 메시지를 생성하고, 다른 단말 기기들(다른 게시자)은 일반 메시지를 생성하도록 설정된다.
본원의 일 실험에 적용되는 구체적인 파라미터의 예는 도 5를 참조하여 보다 쉽게 이해될 수 있다.
도 5는 본원의 일 실시예에 따른 실험에 적용되는 파라미터의 예를 나타낸 도면이다.
도 5를 참조하면, 본원의 일 실험예에서는 복수의 제1 단말 기기의 수(즉, 게시자 장치의 수)가 변경될 때 메시지 지연과 메시지 손실률의 변화를 확인하기 위해, 게시자 수(Number of publishers, 즉 제1 단말 기기의 수)가 100 개에서 1,000개로 변화되도록 설정될 수 있다. 또한, 제1 단말 기기(200)인 게시자 당 총 메시지 수(Total number of messages per publisher)는 4로 설정됨에 따라, 각 게시자(복수의 제1 단말 기기 각각)는 실험 중에 4 개의 메시지를 p-MQTT로 전송할 수 있다. 이때, 각 게시자는 생성된 메시지 수가 4에 도달할 때까지 성공적인 메시지의 전송이 이루어진 후에 새로운 메시지를 생성할 수 있다. 또한, 메시지 크기(Size of message)는 4 바이트로 설정될 수 있다. 또한, 복수의 제1 단말 기기 각각, 즉 각 게시자에 의하여 게시된 메시지의 QoS 레벨(QoS level of published message)은 1로 설정될 수 있으며, 이에 따라 모든 메시지가 초기에 QoS 레벨 1을 갖도록 게시될 수 있다. 그러나, 게시된 메시지가 긴급 메시지인 경우에는 본원의 메시지 관리 장치(100, p-MQTT 브로커 서버)에 의하여 게시된 메시지의 QoS 레벨이 0으로 변경(조정)되고, 게시된 메시지가 중요 메시지인 경우에는 본원의 메시지 관리 장치(100, p-MQTT 브로커 서버)에 의하여 게시된 메시지의 QoS 레벨이 2로 변경(조정)될 수 있다. 본원의 일 실시예에 따른 실험에서는 실험이 10회 반복된다.
이하 도 6 내지 도 8을 참조한 설명에서 MQTT는 기존 종래의 MQTT를 의미하고, p-MQTT는 본원에서 제안하는 긴급 이벤트(즉, 긴급 메시지)를 우선적으로 지원하는 기능이 고려된 MQTT를 의미한다.
도 6은 본원의 일 실시예에 따른 실험에서 장치의 수(즉, 제1 단말 기기의 수)가 증가함에 따른 긴급 메시지의 지연 변화를 나타낸 도면이다.
도 6을 참조하면, 전반적으로 본원에서 제안하는 p-MQTT가 적용되었을 때의 긴급 메시지의 지연은 기존 MQTT를 사용하는 경우보다 평균 35.3 % 낮게 나타났다. 이는 본원에서 제안하는 p-MQTT 브로커 서버의 긴급 큐(2)가 가장 높은 메시지 전달 우선 순위를 가지기 때문에, 긴급 메시지가 다른 메시지(중요 메시지나 일반 메시지)보다 먼저 전달되기 때문이라 할 수 있다.
도 6에서 p-MQTT와 MQTT 간의 긴급 메시지 지연의 차이는 제1 단말 기기의 수(장치 수)가 증가함에 따라 증가됨을 확인할 수 있다. 그 이유는 p-MQTT 브로커 서버의 긴급 메시지에 대한 큐 지연이 우선 순위 제어로 인해 짧게 유지되기 때문이라 할 수 있다. 반면에, MQTT 브로커 서버의 긴급 메시지에 대한 큐 지연은 전송된 메시지 수가 증가함에 따라 증가함을 확인할 수 있다.
도 7은 본원의 일 실시예에 따른 실험에서 제1 단말 기기의 수(장치의 수)가 증가에 따른 중요 메시지의 지연 변화를 나타낸 도면이다.
도 7을 참조하면, 중요 메시지의 경우에도, p-MQTT는 우선 순위 제어로 인해 기존 MQTT보다 더 나은 지연 성능을 나타냄을 확인할 수 있다. 이때, 중요 메시지에 대한 지연 차이는 앞서 도 6을 참조하여 살펴본 긴급 메시지에 대한 지연 차이의 결과보다 적게 나타남을 확인할 수 있다. 그 이유는 중요 큐(4)가 긴급 큐(2)보다 낮은 메시지 전달 우선 순위를 가지므로, 각 가상 큐에 저장된 메시지의 QoS 레벨이 다른 값으로 조정되기 때문이라 할 수 있다. 보다 구체적으로, 긴급 큐(2)에 저장된 긴급 메시지의 QoS 레벨은 적시에 메시지 전달만 필요하기 때문에 0으로 조정되는 반면, 중요 메시지의 QoS 레벨은 신뢰할 수 있는 메시지 전달을 위해 2로 조정되어 필요한 경우 여러 제어 메시지 교환 및 재전송이 유발될 수 있기 때문이라 할 수 있다.
도 8은 본원의 일 실시예에 따른 실험에서 메시지 유형에 따른 메시지 손실률을 나타낸 도면이다.
도 8을 참조하면, 긴급(Urgent) 메시지의 경우, p-MQTT는 긴급 메시지가 QoS 레벨의 조정으로 인해 확인 응답(acknowledgement)을 필요로 하지 않으므로, 기존 MQTT보다 약간 높은 메시지 손실률을 보이나, 그 차이는 크게 나타나지 않는다. 이는 p-MQTT가 긴급 메시지를 위한 전용 가상 큐(2)를 유지 보수(관리)함으로써 메시지 손실을 줄이기 때문이라 할 수 있다.
중요 메시지의 경우, p-MQTT의 메시지 손실률은 기존 MQTT의 메시지 손실률보다 51.8 % 낮게 나타났다. 그 이유는, 신뢰성 있는 메시지 전달을 위해 본원에서 제안하는 p-MQTT에서는 중요 메시지의 QoS 레벨을 2로 조정하는 반면, 기존의 MQTT에서는 메시지 유형에 관계없이 메시지의 QoS 레벨을 1로 설정하기 때문이라 할 수 있다.
이러한 본원은 비상 사태에 있어서 적시적이고 신뢰할 수 있는 메시지 전달을 지원하기 위해, IoT 모니터링 애플리케이션에 대한 비상 사태를 우선적으로 지원하는 MQTT 브로커(p-MQTT), 즉 메시지 관리 장치(100)를 제안한다.
이를 위해, p-MQTT는 브로커 서버로 들어오는 게시된 메시지를 메시지 유형에 따라 긴급 메시지, 중요 메시지 및 일반 메시지 중 어느 하나로 분류하고, 분류 결과에 따라 전달 우선 순위의 부여(할당) 및 메시지의 QoS 레벨을 조정(제어)할 수 있다. 이러한 본원에서 제안하는 p-MQTT의 성능을 평가하기 위해 본원의 일 실시예에 따른 실험에서는 오픈 소스 Mosquitto와 Paho를 사용하여 실험적인 구현을 수행하였고, p-MQTT와 기존 MQTT의 성능을 비교했다. 그 결과, 본원에서 제안하는 p-MQTT가 기존의 MQTT에 비해 긴급 메시지 및 중요 메시지에 대해 각각 35.3 % 및 18.1 %의 더 낮은 지연을 나타냄을 확인할 수 있다. 더욱이, p-MQTT는 평균적으로 중요한 메시지에 대하여 기존의 MQTT 대비 51.8 % 더 낮은 메시지 손실률을 나타냄을 확인할 수 있다.
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.
도 9는 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 방법에 대한 개략적인 흐름을 나타낸 도면이다.
도 9에 도시된 메시지 관리 방법은 앞서 설명된 메시지 관리 장치(100)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 메시지 관리 장치(100)에 대하여 설명된 내용은 메시지 관리 방법에 대한 설명에도 동일하게 적용될 수 있다.
도 9를 참조하면, 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 방법은, 단계S10에서 분류부(110)가, 제1 단말 기기로부터 수신한 수신 메시지를 메시지 유형에 따라 분류하여 복수의 가상 큐 중 어느 하나의 가상 큐에 저장할 수 있다. 여기서, 복수의 가상 큐는 긴급 관련 제1 가상 큐, 중요 관련 제2 가상 큐 및 일반 관련 제3 가상 큐를 포함할 수 있다.
또한, 단계S10에서는 분류부(110)가 수신 메시지의 헤더에 포함된 메시지 유형의 값에 따라 수신 메시지를 긴급 메시지, 중요 메시지 및 일반 메시지 중 어느 하나로 분류할 수 있다. 이때, 메시지 유형의 값은 0 내지 15 중 어느 하나의 값을 가질 수 있다.
또한, 단계S10에서는 분류부(110)가, 메시지 유형의 값이 0 인 경우 수신 메시지를 긴급 메시지로 분류하여 제1 가상 큐에 저장하고, 메시지 유형의 값이 1 내지 14 중 어느 하나인 경우 수신 메시지를 일반 메시지로 분류하여 제3 가상 큐에 저장하고, 메시지 유형의 값이 15인 경우 수신 메시지를 중요 메시지로 분류하여 제2 가상 큐에 저장할 수 있다.
다음으로, 본원의 일 실시예에 따른 IoT(Internet of Things) 서비스를 위한 메시지 관리 방법은, 단계S20에서 우선 순위 제어부(120)가, 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 복수의 가상 큐에 저장된 메시지들을 제2 단말 기기로 제공할 수 있다.
이때, 메시지 전달 우선 순위는, 제3 가상 큐보다 제2 가상 큐에 높게 부여되고, 제2 가상 큐보다 제1 가상 큐에 높게 부여될 수 있다.
또한, 단계S20는 메시지 전달 우선 순위를 고려하여 복수의 가상 큐 각각에 저장된 메시지들의 QoS(Quality of Service) 레벨을 우선 순위 제어부(120)에 의해 조정하는 단계를 포함할 수 있다. 이때, QoS 레벨의 조정에 의하여 복수의 가상 큐에 저장된 메시지들이 제공될 수 있다.
또한, 단계S20에서 우선 순위 제어부(120)는, 제1 가상 큐에 저장된 메시지를 제2 가상 큐 및 제3 가상 큐에 저장된 메시지보다 우선으로 제공하고, 제2 가상 큐에 저장된 메시지를 제1 가상 큐에 저장된 메시지가 없는 경우에 제공하고, 제3 가상 큐에 저장된 메시지를 제1 가상 큐 및 제2 가상 큐에 저장된 메시지가 없는 경우에 제공할 수 있다.
상술한 설명에서, 단계 S10 내지 S20은 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본원의 일 실시 예에 따른 IoT 서비스를 위한 메시지 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
1: IoT 서비스를 위한 메시지 관리 시스템
100: 메시지 관리 장치
110: 분류부
120: 우선 순위 제어부
200: 제1 단말 기기
300: 제2 단말 기기

Claims (9)

  1. IoT(Internet of Things) 서비스를 위한 메시지 관리 방법에 있어서,
    제1 단말 기기로부터 수신한 수신 메시지를 메시지 유형에 따라 분류하여 복수의 가상 큐 중 어느 하나의 가상 큐에 저장하는 단계; 및
    상기 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐에 저장된 메시지들을 제2 단말 기기로 제공하는 단계,
    를 포함하고,
    상기 복수의 가상 큐는 긴급 관련 제1 가상 큐, 중요 관련 제2 가상 큐 및 일반 관련 제3 가상 큐를 포함하며,
    상기 저장하는 단계는,
    상기 수신 메시지의 헤더에 포함된 메시지 유형 필드를 검사함으로써 확인된 0 내지 15 중 어느 하나의 값을 갖는 16가지의 메시지 유형의 값에 따라, 상기 메시지 유형의 값이 0 인 경우 상기 수신 메시지를 긴급 메시지로 분류하여 상기 제1 가상 큐에 저장하고, 상기 메시지 유형의 값이 1 내지 14 중 어느 하나인 경우 상기 수신 메시지를 일반 메시지로 분류하여 상기 제3 가상 큐에 저장하고, 상기 메시지 유형의 값이 15인 경우 상기 수신 메시지를 중요 메시지로 분류하여 상기 제2 가상 큐에 저장하며,
    상기 메시지 유형 필드는, 16가지의 메시지 유형의 값 중 0값과 15값을 가지는 사용하지 않는 타입으로 정의된 메시지의 유형이 상기 수신 메시지를 긴급 메시지와 중요 메시지로 분류하기 위한 용도로 사용될 수 있도록 재정의된, 수정된 헤더에 포함된 필드이고,
    상기 제1 단말 기기로부터 수신되는 상기 수신 메시지의 QoS 레벨은 초기 설정 값이 1로 설정된 것이고,
    상기 제공하는 단계는,
    상기 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐 각각에 저장된 메시지들의 QoS(Quality of Service) 레벨을 조정하되, 상기 제1 가상 큐에 긴급 메시지로 분류되어 저장된 메시지의 QoS 레벨을 비상 사태시 적시적 메시지 전달을 위해 전달 여부의 확인 없이 최대 한 번 상기 제2 단말 기기로 전달되도록 초기 설정 값인 1에서 0으로 조정하고, 상기 제2 가상 큐에 중요 메시지로 분류되어 저장된 메시지의 QoS 레벨을 비상 사태시 안정적 메시지 전달을 위해 정확히 한 번 상기 제2 단말 기기로 전달되도록 초기 설정 값인 1에서 2로 조정하고, 상기 제3 가상 큐에 일반 메시지로 분류되어 저장된 메시지의 QoS 레벨을 조정 없이 초기 설정 값인 1로 유지하고,
    QoS 레벨의 조정에 의해 상기 복수의 가상 큐 각각에 저장된 메시지들을 상기 제3 가상 큐보다 상기 제2 가상 큐에 높게 부여되고 상기 제2 가상 큐보다 상기 제1 가상 큐에 높게 부여된 상기 메시지 전달 우선 순위를 고려하여 상기 제2 단말 기기로 제공하되,
    QoS 레벨이 0으로 조정된 상기 제1 가상 큐에 저장된 긴급 메시지를 상기 제2 가상 큐 및 제3 가상 큐에 저장된 메시지보다 우선으로 제공하고,
    QoS 레벨이 2로 조정된 상기 제2 가상 큐에 저장된 중요 메시지를 상기 제1 가상 큐에 저장된 메시지가 없는 경우에 제공하고,
    QoS 레벨이 조정 없이 초기 설정 값인 1로 유지된 상기 제3 가상 큐에 저장된 일반 메시지를 상기 제1 가상 큐 및 상기 제2 가상 큐에 저장된 메시지가 없는 경우에 제공하는 것인, 메시지 관리 방법.
  2. 제1항에 있어서,
    상기 저장하는 단계는,
    상기 수신 메시지의 헤더에 포함된 메시지 유형의 값에 따라 상기 수신 메시지를 긴급 메시지, 중요 메시지 및 일반 메시지 중 어느 하나로 분류하는 것인, 메시지 관리 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. IoT(Internet of Things) 서비스를 위한 메시지 관리 장치에 있어서,
    제1 단말 기기로부터 수신한 수신 메시지를 메시지 유형에 따라 분류하여 복수의 가상 큐 중 어느 하나의 가상 큐에 저장하는 분류부; 및
    상기 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐에 저장된 메시지들을 제2 단말 기기로 제공하는 우선 순위 제어부,
    를 포함하고,
    상기 복수의 가상 큐는 긴급 관련 제1 가상 큐, 중요 관련 제2 가상 큐 및 일반 관련 제3 가상 큐를 포함하며,
    상기 분류부는,
    상기 수신 메시지의 헤더에 포함된 메시지 유형 필드를 검사함으로써 확인된 0 내지 15 중 어느 하나의 값을 갖는 16가지의 메시지 유형의 값에 따라, 상기 메시지 유형의 값이 0 인 경우 상기 수신 메시지를 긴급 메시지로 분류하여 상기 제1 가상 큐에 저장하고, 상기 메시지 유형의 값이 1 내지 14 중 어느 하나인 경우 상기 수신 메시지를 일반 메시지로 분류하여 상기 제3 가상 큐에 저장하고, 상기 메시지 유형의 값이 15인 경우 상기 수신 메시지를 중요 메시지로 분류하여 상기 제2 가상 큐에 저장하며,
    상기 메시지 유형 필드는, 16가지의 메시지 유형의 값 중 0값과 15값을 가지는 사용하지 않는 타입으로 정의된 메시지의 유형이 상기 수신 메시지를 긴급 메시지와 중요 메시지로 분류하기 위한 용도로 사용될 수 있도록 재정의된, 수정된 헤더에 포함된 필드이고,
    상기 제1 단말 기기로부터 수신되는 상기 수신 메시지의 QoS 레벨은 초기 설정 값이 1로 설정된 것이고,
    상기 우선 순위 제어부는,
    상기 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐 각각에 저장된 메시지들의 QoS(Quality of Service) 레벨을 조정하되, 상기 제1 가상 큐에 긴급 메시지로 분류되어 저장된 메시지의 QoS 레벨을 비상 사태시 적시적 메시지 전달을 위해 전달 여부의 확인 없이 최대 한 번 상기 제2 단말 기기로 전달되도록 초기 설정 값인 1에서 0으로 조정하고, 상기 제2 가상 큐에 중요 메시지로 분류되어 저장된 메시지의 QoS 레벨을 비상 사태시 안정적 메시지 전달을 위해 정확히 한 번 상기 제2 단말 기기로 전달되도록 초기 설정 값인 1에서 2로 조정하고, 상기 제3 가상 큐에 일반 메시지로 분류되어 저장된 메시지의 QoS 레벨을 조정 없이 초기 설정 값인 1로 유지하고,
    QoS 레벨의 조정에 의해 상기 복수의 가상 큐 각각에 저장된 메시지들을 상기 제3 가상 큐보다 상기 제2 가상 큐에 높게 부여되고 상기 제2 가상 큐보다 상기 제1 가상 큐에 높게 부여된 상기 메시지 전달 우선 순위를 고려하여 상기 제2 단말 기기로 제공하되,
    QoS 레벨이 0으로 조정된 상기 제1 가상 큐에 저장된 긴급 메시지를 상기 제2 가상 큐 및 제3 가상 큐에 저장된 메시지보다 우선으로 제공하고,
    QoS 레벨이 2로 조정된 상기 제2 가상 큐에 저장된 중요 메시지를 상기 제1 가상 큐에 저장된 메시지가 없는 경우에 제공하고,
    QoS 레벨이 조정 없이 초기 설정 값인 1로 유지된 상기 제3 가상 큐에 저장된 일반 메시지를 상기 제1 가상 큐 및 상기 제2 가상 큐에 저장된 메시지가 없는 경우에 제공하는 것인, 메시지 관리 장치.
  8. IoT(Internet of Things) 서비스를 위한 메시지 관리 시스템에 있어서,
    메시지를 생성하여 메시지 관리 장치로 제공하는 제1 단말 기기와 상기 메시지 관리 장치로부터 제공되는 메시지를 수신하는 제2 단말 기기를 포함하는 복수의 단말 기기; 및
    상기 제1 단말 기기로부터 수신한 수신 메시지를 메시지 유형에 따라 분류하여 복수의 가상 큐 중 어느 하나의 가상 큐에 저장하고, 상기 복수의 가상 큐에 대하여 부여된 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐에 저장된 메시지들을 제2 단말 기기로 제공하는 메시지 관리 장치,
    를 포함하고,
    상기 복수의 가상 큐는 긴급 관련 제1 가상 큐, 중요 관련 제2 가상 큐 및 일반 관련 제3 가상 큐를 포함하며,
    상기 메시지 관리 장치가 상기 제1 단말 기기로부터 수신하는 상기 수신 메시지의 QoS 레벨은 초기 설정 값이 1로 설정된 것이고,
    상기 메시지 관리 장치는,
    상기 수신 메시지의 헤더에 포함된 메시지 유형 필드를 검사함으로써 확인된 0 내지 15 중 어느 하나의 값을 갖는 16가지의 메시지 유형의 값에 따라, 상기 메시지 유형의 값이 0 인 경우 상기 수신 메시지를 긴급 메시지로 분류하여 상기 제1 가상 큐에 저장하고, 상기 메시지 유형의 값이 1 내지 14 중 어느 하나인 경우 상기 수신 메시지를 일반 메시지로 분류하여 상기 제3 가상 큐에 저장하고, 상기 메시지 유형의 값이 15인 경우 상기 수신 메시지를 중요 메시지로 분류하여 상기 제2 가상 큐에 저장하며,
    상기 메시지 유형 필드는, 16가지의 메시지 유형의 값 중 0값과 15값을 가지는 사용하지 않는 타입으로 정의된 메시지의 유형이 상기 수신 메시지를 긴급 메시지와 중요 메시지로 분류하기 위한 용도로 사용될 수 있도록 재정의된, 수정된 헤더에 포함된 필드이고,
    상기 메시지 관리 장치는,
    상기 메시지 전달 우선 순위를 고려하여 상기 복수의 가상 큐 각각에 저장된 메시지들의 QoS(Quality of Service) 레벨을 조정하되, 상기 제1 가상 큐에 긴급 메시지로 분류되어 저장된 메시지의 QoS 레벨을 비상 사태시 적시적 메시지 전달을 위해 전달 여부의 확인 없이 최대 한 번 상기 제2 단말 기기로 전달되도록 초기 설정 값인 1에서 0으로 조정하고, 상기 제2 가상 큐에 중요 메시지로 분류되어 저장된 메시지의 QoS 레벨을 비상 사태시 안정적 메시지 전달을 위해 정확히 한 번 상기 제2 단말 기기로 전달되도록 초기 설정 값인 1에서 2로 조정하고, 상기 제3 가상 큐에 일반 메시지로 분류되어 저장된 메시지의 QoS 레벨을 조정 없이 초기 설정 값인 1로 유지하고,
    QoS 레벨의 조정에 의해 상기 복수의 가상 큐 각각에 저장된 메시지들을 상기 제3 가상 큐보다 상기 제2 가상 큐에 높게 부여되고 상기 제2 가상 큐보다 상기 제1 가상 큐에 높게 부여된 상기 메시지 전달 우선 순위를 고려하여 상기 제2 단말 기기로 제공하되,
    QoS 레벨이 0으로 조정된 상기 제1 가상 큐에 저장된 긴급 메시지를 상기 제2 가상 큐 및 제3 가상 큐에 저장된 메시지보다 우선으로 제공하고,
    QoS 레벨이 2로 조정된 상기 제2 가상 큐에 저장된 중요 메시지를 상기 제1 가상 큐에 저장된 메시지가 없는 경우에 제공하고,
    QoS 레벨이 조정 없이 초기 설정 값인 1로 유지된 상기 제3 가상 큐에 저장된 일반 메시지를 상기 제1 가상 큐 및 상기 제2 가상 큐에 저장된 메시지가 없는 경우에 제공하는 것인, 메시지 관리 시스템.
  9. 제1항 또는 제2항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터에서 판독 가능한 기록매체.
KR1020170163339A 2017-11-30 2017-11-30 IoT 서비스를 위한 메시지 관리 장치 및 방법 KR102036154B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170163339A KR102036154B1 (ko) 2017-11-30 2017-11-30 IoT 서비스를 위한 메시지 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170163339A KR102036154B1 (ko) 2017-11-30 2017-11-30 IoT 서비스를 위한 메시지 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190064065A KR20190064065A (ko) 2019-06-10
KR102036154B1 true KR102036154B1 (ko) 2019-10-24

Family

ID=66848401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170163339A KR102036154B1 (ko) 2017-11-30 2017-11-30 IoT 서비스를 위한 메시지 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102036154B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102200590B1 (ko) * 2019-10-15 2021-01-08 에이치투오시스템테크놀로지(주) 엠큐티티 프로토콜 기반 긴급 메시지 처리 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514087A (ja) 2008-03-05 2011-04-28 インターナショナル・ビジネス・マシーンズ・コーポレーション publish/subscribeメッセージ・ブローカ
US20170099332A1 (en) 2014-03-21 2017-04-06 Ptc Inc. Systems and methods using binary dynamic rest messages

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101792404B1 (ko) * 2016-03-29 2017-11-01 전자부품연구원 M2M/IoT 시스템에서 MQTT 프로토콜을 활용한 메시지 전달 방법
KR101809365B1 (ko) * 2016-05-04 2017-12-14 전자부품연구원 M2M/IoT 플랫폼에서 MQTT 프로토콜을 활용한 메시지 단편화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514087A (ja) 2008-03-05 2011-04-28 インターナショナル・ビジネス・マシーンズ・コーポレーション publish/subscribeメッセージ・ブローカ
US20170099332A1 (en) 2014-03-21 2017-04-06 Ptc Inc. Systems and methods using binary dynamic rest messages

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MQTT Broker에서 우선순위에 따른 메시지 처리를 위한 방법에 관한 연구(김성진, 오창헌, 2017년7월)*

Also Published As

Publication number Publication date
KR20190064065A (ko) 2019-06-10

Similar Documents

Publication Publication Date Title
US11956800B2 (en) Preempting an allocation of uplink resources
WO2020156591A1 (zh) 一种多链路数据传输方法及装置和存储介质
US20210282049A1 (en) Charging rule binding method, device, and system
KR101670642B1 (ko) 클라이언트 디바이스 상에서의 패킷 송신을 스케줄링하기 위한 시스템 및 방법
WO2021032131A1 (zh) 一种用户面信息上报方法及装置
US10313919B2 (en) Method and device for providing transmission differentiation in mobile communication system
CN106664440B (zh) 用于在多媒体系统中接收和发送信息的方法和设备
EP2283621B1 (en) Methods and devices for managing a network
US20170142732A1 (en) Allocation of shared resources for virtualized networking
US10965428B2 (en) Methods and systems for transmission of TCP ACK packets
WO2023185353A1 (zh) 数据传输方法、电子设备和存储介质
US20070058534A1 (en) Session relay apparatus and relaying method
EP3005633A1 (en) Management of multilevel queues for shared network adapters
Kim et al. Message queue telemetry transport broker with priority support for emergency events in Internet of Things
JP2016521095A (ja) スケジューリング方法および基地局
US10172032B2 (en) Admission control of 4G/LTE conversational sessions by cellular backhaul satellite network
KR102036154B1 (ko) IoT 서비스를 위한 메시지 관리 장치 및 방법
KR102153543B1 (ko) 무선 환경에서 usb 통신을 위한 버퍼 관리 방법 및 장치
US20050122904A1 (en) Preventative congestion control for application support
US20100303053A1 (en) Aggregated session management method and system
CN110740472B (zh) 一种下行数据传输的控制方法和系统
KR20160052422A (ko) 네트워크에서 플로우 컨트롤 방법
KR101566397B1 (ko) 대역폭 관리 장치, 중앙 관리 장치, 및 대역폭 관리 방법
US20230216809A1 (en) Congestion control method and apparatus
EP3177067A1 (en) Network controller, system, and method for resource allocation

Legal Events

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