KR102093314B1 - Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법 - Google Patents

Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법 Download PDF

Info

Publication number
KR102093314B1
KR102093314B1 KR1020180134396A KR20180134396A KR102093314B1 KR 102093314 B1 KR102093314 B1 KR 102093314B1 KR 1020180134396 A KR1020180134396 A KR 1020180134396A KR 20180134396 A KR20180134396 A KR 20180134396A KR 102093314 B1 KR102093314 B1 KR 102093314B1
Authority
KR
South Korea
Prior art keywords
mqtt
message
electronic device
unique
topic
Prior art date
Application number
KR1020180134396A
Other languages
English (en)
Inventor
손성훈
Original Assignee
유비라커산업(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유비라커산업(주) filed Critical 유비라커산업(주)
Priority to KR1020180134396A priority Critical patent/KR102093314B1/ko
Application granted granted Critical
Publication of KR102093314B1 publication Critical patent/KR102093314B1/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/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • H04L67/2809
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

MQTT 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법이 제공된다. MQTT 프로토콜을 이용한 메시지 전달 시스템의 서비스 제공 서버는, MQTT 메시지 발행을 요청한 제1전자 장치에 부여된 고유 식별정보를 이용하여 제1전자 장치에 대한 제1고유 토픽을 생성하고, 생성된 제1고유 토픽을 포함하는 제1MQTT 메시지를 생성하여 전송하고, MQTT 브로커는 서비스 제공 서버로부터 전송되는 제1MQTT 메시지를 수신하여 상기 제1MQTT 메시지를 구독하는 제2전자 장치가 수신가능하도록 중계하고, 제2전자 장치는 MQTT 브로커를 통해 전달받은 제1MQTT 메시지를 분석하여 제1MQTT 메시지의 발행을 요청한 제1전자 장치를 확인한다.

Description

MQTT 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법{System and method for transporting message using MQTT protocol}
본 발명은 MQTT 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법에 관한 것으로서, 보다 상세하게는, 회원가입 없이도 고유 토픽을 이용하여 특정 사이트의 서비스를 이용할 수 있으며, 정확한 주문 및 상호 이력관리가 가능한 MQTT 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법에 관한 것이다.
MQTT(Message Queue Telemetry Transport) 프로토콜은 임베디드 장치 간의 통신을 위한 가벼운 메시징 프로토콜로서, 대역폭이 작은 네트워크에서 동작할 수 있도록 설계되었다. MQTT 시스템은 MQTT 브로커를 이용하여 각종 장치들(MQTT 클라이언트들)이 보내주는 메시지를 수집하고, 수집된 메시지를 구독하는 장치들에게 메시지를 전송해주는 중계 서버 역할을 제공한다.
MQTT 브로커에 연결되는 MQTT 클라이언트들은 메시지 발행(Publish)과 메시지 구독(Subscribe) 두 가지 동작을 할 수 있다. 즉, MQTT 클라이언트가 메시지를 특정 채널에 발행(topic 발행)하면, MQTT 브로커에 의해 이 채널을 구독하는 모든 MQTT 클라이언트들에게 메시지가 전달된다.
이러한 MQTT 프로토콜은 M2M(Machine-to-Machine)과 IOT(Internet Of Things)에서 사용하기 위해 만들어졌으며, 특히, IOT를 위해서 저전력, 저대역폭에서도 사용가능하다는 장점이 있다.
그러나, 기존의 MQTT 시스템의 경우, 메시지를 수신한 MQTT 클라이언트(Subscriber)는 메시지를 발행한 MQTT 클라이언트(Publisher)가 누구인지를 확인할 수 없으므로, MQTT 클라이언트(Publisher)만을 수신처로 하는 토픽을 발행할 수가 없다.
예를 들어, 고객이 스마트폰 A에서 MQTT 프로토콜을 이용하여 B 매장의 음식을 주문하는 경우, B 매장의 포스 단말기는 주문이 접수된 것만 인지할 뿐, 어느 고객(또는 어느 스마트폰)이 음식을 주문하였는지는 인지할 수 없으므로, 스마트폰 A에게 주문이 완료되었음을 알려주는 응답을 할 수가 없다.
따라서, 온라인 네트워크에서 MQTT 프로토콜을 이용하여 메시지를 발행 및 구독하는 경우, MQTT 클라이언트(Subscriber)가 메시지 발행자가 누구인지 인지할 수 있으며, 이후 동일한 발행자에 의해 메시지가 발행된 이력이 있는지를 쉽게 판단할 수 있도록 하는 기술이 필요하다.
국내 공개특허 제10-2017-0111768호(2017.10.12. 공개)
전술한 문제점을 해결하기 위하여 본 발명이 이루고자 하는 기술적 과제는, MQTT 프로토콜을 이용하여 메시지를 수신한 MQTT 클라이언트(Subscriber)가 토픽 발행자가 누구인지 인지할 수 있으며, 이후 발행된 토픽이 동일한 발행자에 의해 발행되었는지를 쉽게 판단하도록 하는 MQTT 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법을 제시하는 데 있다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 기술적 과제를 해결하기 위한 수단으로서, 본 발명의 실시 예에 따르면, MQTT 프로토콜을 이용한 메시지 전달 시스템은, MQTT 메시지 발행을 요청한 제1전자 장치에 부여된 고유 식별정보를 이용하여 상기 제1전자 장치에 대한 제1고유 토픽을 생성하고, 상기 생성된 제1고유 토픽을 포함하는 제1MQTT 메시지를 생성하여 전송하는 서비스 제공 서버; 상기 서비스 제공 서버로부터 전송되는 제1MQTT 메시지를 수신하여 상기 제1MQTT 메시지를 구독하는 제2전자 장치가 수신가능하도록 중계하는 MQTT 브로커; 및 상기 MQTT 브로커를 통해 전달받은 제1MQTT 메시지를 분석하여 상기 제1MQTT 메시지의 발행을 요청한 제1전자 장치를 확인하는 제2전자 장치;를 포함한다.
상기 서비스 제공 서버는, 상기 제1전자 장치에 부여된 고유 식별정보를 포함하는 제1고유 토픽을 생성하고, 상기 생성된 고유 토픽과 상기 제1전자 장치가 MQTT 메시지 구독을 신청한 제2전자 장치에게 전달하고자 하는 상세요청내용을 포함하는 제1MQTT 메시지를 생성한 후, 상기 생성된 제1MQTT 메시지를 상기 MQTT 브로커에게 전송한다.
상기 서비스 제공 서버는, 상기 제1전자 장치의 고유 식별정보와, 상기 제1고유 토픽의 암호화를 위한 암호화 랜덤키와, 체크섬정보와, 상기 고유 식별정보의 종류를 구분하는 구분자를 이용하여 임시 고유 토픽을 생성하고, 상기 임시 고유 토픽을 상기 암호화 랜덤키를 이용하여 암호화하여 상기 제1고유 토픽을 생성한다.
상기 서비스 제공 서버는, 상기 제1MQTT 메시지의 발행처에 해당하는 상기 암호화된 제1고유 토픽을 상기 제1MQTT 메시지의 헤드(head)에 기재하고, 상기 제1전자 장치에 표시되는 다수의 UI 화면들 중 적어도 하나를 통해 입력되는 상세요청내용을 상기 제1MQTT 메시지의 바디(body)에 기재하여 제1MQTT 메시지를 생성한다.
상기 제2전자 장치는, 상기 수신된 제1MQTT 메시지를 분석하여 상기 제1고유 토픽과 상기 상세요청내용을 확인하고, 상기 확인된 상세요청내용에 해당하는 동작이 수행되도록 처리하며, 상기 상세요청내용에 해당하는 동작이 수행되면, 상기 제2전자 장치에 부여된 고유 식별정보를 이용하여 생성된 상기 제2전자 장치에 대한 제2고유 토픽과 상기 상세요청내용에 응답하기 위한 응답내용을 포함하는 제2MQTT 메시지를 생성하여 상기 MQTT 브로커로 전송하며, 상기 MQTT 브로커는 상기 제2전자 장치로부터 수신되는 제2MQTT 메시지를 상기 제1전자 장치가 수신가능하도록 중계한다.
상기 제2전자 장치는, 상기 수신된 제1MQTT 메시지를 분석하여 상기 제1고유 토픽과 상기 상세요청내용을 확인하고, 상기 확인된 상세요청내용에 해당하는 동작이 수행되도록 처리하며, 상기 상세요청내용에 해당하는 동작이 수행되면, 상기 제2전자 장치에 부여된 고유 식별정보를 이용하여 생성된 상기 제2전자 장치에 대한 제2고유 토픽과 상기 상세요청내용에 포함된 제3전자 장치에게 전달할 상세요청내용을 포함하는 제3MQTT 메시지를 생성하여 상기 MQTT 브로커로 전송하며, 상기 MQTT 브로커는 상기 제2전자 장치로부터 수신되는 제3MQTT 메시지를 상기 제3전자 장치가 수신가능하도록 중계한다.
한편, 본 발명의 다른 실시 예에 따르면, MQTT 프로토콜을 이용한 메시지 전달 시스템의 메시지 전달 방법은, (A) 서비스 제공 서버가, MQTT 메시지 발행을 요청한 제1전자 장치에 부여된 고유 식별정보를 이용하여 상기 제1전자 장치에 대한 제1고유 토픽을 생성하고, 상기 생성된 제1고유 토픽을 포함하는 제1MQTT 메시지를 생성하여 MQTT 브로커로 전송하는 단계; (B) 상기 MQTT 브로커가, 상기 서비스 제공 서버로부터 전송되는 제1MQTT 메시지를 수신하여 상기 제1MQTT 메시지를 구독하는 제2전자 장치가 수신가능하도록 중계하는 단계; 및 (C) 상기 제2전자 장치가, 상기 MQTT 브로커를 통해 전달받은 제1MQTT 메시지를 분석하여 상기 제1MQTT 메시지의 발행을 요청한 제1전자 장치를 확인하는 단계;를 포함한다.
본 발명에 따르면, MQTT 메시지의 헤드에 메시지를 발행한 발행자의 고유 토픽을 기재한 후 메시지를 전송함으로써, 메시지를 수신한 MQTT 클라이언트(Subscriber)는 메시지 발행자(Publisher)가 누구인지 명확히 인지하여 메시지 발행자를 타겟으로 하는 메시지를 발행할 수 있다.
또한, 본 발명에 따르면, 메시지를 발행한 발행자에게는 랜덤 토픽이 아닌 고유 토픽을 생성하여 메시지의 헤드에 기재함으로써, MQTT 클라이언트(Subscriber)는 동일한 발행자(즉, 동일한 디바이스 또는 동일한 전자 장치)로부터 메시지가 발행되었는지의 여부를 판단할 수 있다.
또한, 본 발명에 따르면, MQTT 시스템에서 각각의 Iot Unit (Publisher/Subscriber)기능을 가지는 장치에 대해, 메시지를 송수신하는 동안 고유한 토픽을 형성하고, 메시지 내용에 Publisher의 TOPIC를 지정하여 Subscriber가 Publisher의 요청을 수행 시 정확성 상승 및 상호 작용이 가능하다. 예를 들어, 고유 토픽을 기기마다 생성함으로써 특정 사이트의 주문 시 비회원 주문이 가능하며, 별도의 회원가입을 하지 않고도 정확한 주문 관리 및 상호 이력관리가 가능하다.
또한, 본 발명에 따르면, WEB/API 서버 부하 및 트래픽 감소가 가능하다. 즉, 각 IOT 장치가 일정 시간에 한 번씩 서버를 히트하던 API polling을 수행하지 않고도, 구동 신청한 메시지가 수신되었음을 알 수 있다.
또한, 본 발명에 따르면, 중계 정확성을 증가시킬 수 있다. 발생한 이벤트에 대해서 주문번호를 MQTT로 전송하고 이를 기반으로 API에서 데이터를 가져오도록 함으로써 보다 정확한 정보 전달이 가능하다.
또한, 본 발명에 따르면, 각 IOT 장치의 live 상태 정확성이 증가할 수 있다. WEB/API 서버에 항상 연결된 IOT 장치에서 메시지 수신이나 연결상태에 대한 MQTT 이벤트를 통해 실시간에 가까운 상태 확인이 가능하다.
또한, 본 발명에 따르면, IOT 장치는 MQTT 연결상태에만 집중하고 다른 추가적 연결이 필요하지 않으므로 코드도 단순해져 디바이스 간의 통신 오류를 감소시킬 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 의한 MQTT를 이용한 메시지 전달 시스템을 도시한 도면,
도 2는 도 1에 도시된 본 발명의 일 실시 예에 따른 서비스 제공 서버를 도시한 블록도,
도 3은 제1고유 토픽을 생성하는 일련의 동작을 보여주는 예시도,
도 4는 본 발명의 실시 예에 따른 MQTT 메시지의 포맷,
도 5는 본 발명의 실시 예를 무인 택배 보관 시스템에 적용한 경우, 택배 물품 보관 및 수령을 포함하는 전반적인 동작을 보여주는 도면,
도 6은 본 발명의 일 실시 예에 따른 MQTT 프로토콜을 이용한 메시지 전달 방법을 도시한 흐름도,
도 7은 도 6의 S630단계를 자세히 설명하기 위한 흐름도,
도 8은 본 발명의 다른 실시 예에 따른 상품 주문 시 MQTT 프로토콜을 이용한 메시지 전달 방법을 도시한 흐름도, 그리고,
도 9 내지 도 11은 본 발명의 다른 실시 예에 따른 무인 택배 서비스 이용 시 MQTT 프로토콜을 이용한 메시지 전달 방법을 도시한 흐름도이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시 예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다.
본 명세서에서 제1, 제2 등의 용어가 구성요소들을 기술하기 위해서 사용된 경우, 이들 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안 된다. 이들 용어들은 단지 어느 구성요소를 다른 구성요소와 구별시키기 위해서 사용되었을 뿐이다. 여기에 설명되고 예시되는 실시 예들은 그것의 상보적인 실시 예들도 포함한다.
어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다.
또한, 어떤 엘리먼트(또는 구성요소)가 구현됨에 있어서 특별한 언급이 없다면, 그 엘리먼트(또는 구성요소)는 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어 어떤 형태로도 구현될 수 있는 것으로 이해되어야 할 것이다.
또한, 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명에서 실시하고자 하는 구체적인 기술내용에 대해 첨부도면을 참조하여 상세하게 설명하기로 한다.
아래의 특정 실시 예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
도 1에 도시된 MQTT를 이용한 메시지 전달 시스템의 각각의 구성은 기능 및 논리적으로 분리될 수 있음을 나타내는 것이며, 반드시 각각의 구성이 별도의 물리적 장치로 구분되거나 별도의 코드로 작성됨을 의미하는 것은 아님을 본 발명의 기술분야의 평균적 전문가는 용이하게 추론할 수 있을 것이다.
또한, 본 발명의 실시 예에 따른 제1 내지 제6전자 장치들(10~60) 및 서비스 제공 서버(100)는 예를 들면, 스마트폰, 데스크탑 PC(Personal Computer), 서버, 랩탑 PC(Laptop PC), 넷북 컴퓨터(Netbook Computer), 포스 단말기(POS) 등 프로그램의 설치 및 실행이 가능한 모든 전자기기들 중 하나이거나 IOT 장치일 수 있다.
도 1은 본 발명의 일 실시 예에 의한 MQTT를 이용한 메시지 전달 시스템을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시 예에 의한 MQTT를 이용한 메시지 전달 시스템은 제1전자 장치(10), 서비스 제공 서버(100), MQTT 브로커(200) 및 제2 내지 제6전자 장치들(20~60)을 포함할 수 있다.
제1전자 장치(10)는 서비스 제공 서버(100)에서 제공하는 웹브라우저 또는 서비스 어플리케이션(이하, 'WEB/APP'라 함)을 이용하여 제2 내지 제6전자 장치들(20~60) 중 적어도 하나에게 제1MQTT 메시지를 발행하도록 요청하거나, 직접 제1MQTT 메시지를 발행할 수 있다. 본 발명의 실시 예에서는 제1전자 장치(10)가 서비스 제공 서버(100)에게 제1MQTT 메시지의 발행을 요청하는 경우를 예로 들어 설명한다.
이러한 제1전자 장치(10)는 서비스 제공 서버(100)로부터 제공되는 웹브라우저를 화면에 표시하거나 또는 서비스 어플리케이션을 설치 및 실행하여 서비스를 이용하는 스마트폰과 같은 단말기를 예로 들 수 있다.
서비스 제공 서버(100)는 서비스 제공 서버(100)가 제공하는 서비스를 이용하도록 WEB/APP을 제1전자 장치(10)에게 제공할 수 있다. 서비스 제공 서버(100)는 음식 배달/주문 서비스, 무인 택배 보관 서비스, 전광판 제어 서비스 등 다양한 M2M과 IOT 센싱 기반의 서비스가 가능하다.
특히, 서비스 제공 서버(100)는 제1전자 장치(10)의 요청에 의해 MQTT 프로토콜을 이용하여 제1MQTT 메시지를 발행하고, 제2 내지 제6전자 장치들(20~60)에서 각각 발행되는 제2 내지 제6MQTT 메시지들 중 제1전자 장치(10)가 구독 신청한 전자 장치에서 발행되는 MQTT 메시지를 제1전자 장치(10)에게 전송할 수 있다.
MQTT 브로커(200)는 제1 내지 제6MQTT 메시지의 발행(Publish) 또는 구독(Subscribe)을 신청한 MQTT 클라이언트들, 즉, 제2 내지 제6전자 장치들(20~60)과 통신가능하게 연결되며, 발행된 제2 내지 제6MQTT 메시지들을 구독신청한 전자 장치가 수신가능하도록 중계역할을 할 수 있다.
제2 내지 제6전자 장치들(20~60)은 서비스 제공 서버(100)에서 제공하는 서비스를 실제로 실행하는 IOT 장치로서, 예를 들어, 주문을 받기 위해 포스에 설치된 IOT 장치(20), 음식점의 주방에 설치된 IOT 장치(30), 전광판에 설치된 IOT 장치(40), 무인 택배함에 설치된 IOT 장치(50) 및 고객의 스마트폰(60)을 예로 들 수 있으며, 이는 M2M과 IOT 기반의 서비스가 가능한 장치들 중 일부로서, 이에 한정되지 않는다.
또한, 제1전자 장치(10)와 제6전자 장치(60)는 서비스 제공 서버(100)에서 제공하는 WEB/APP을 설치하여 MQTT 서비스를 사용하는 점이 동일하나, WEB/APP의 구체적인 동작은 다음과 같은 차이점이 있을 수 있다. 즉, 제1전자 장치(10)는 WEB/APP이 서비스 제공 서버(100)에게 MQTT 메시지의 발행을 요청하는 반면, 제2전자 장치(20)는 WEB/APP이 직접 MQTT 메시지를 발행하고, 다른 발행처로부터 수신된 MQTT 메시지를 분석할 수도 있다.
본 발명의 일 실시 예에 따르면, 제1전자 장치(10)는 WEB/APP이 제공하는 다수의 UI(User Interface) 화면들을 통해 상세요청내용을 사용자로부터 입력받아 제1전자 장치(10)의 고유 식별정보와 함께 서비스 제공 서버(100)로 전송할 수 있다. 상세요청내용은 MQTT 메시지를 통해 제2전자 장치(20)에게 전달하고자 하는 구체적인 서비스 요청 내용을 포함하며, 예를 들어, 음식점(A)에서 메뉴(B)를 주문하는 내용을 포함한다.
서비스 제공 서버(100)는 MQTT 메시지 발행을 요청한 제1전자 장치(10)에 부여된 고유 식별정보를 이용하여 제1전자 장치(10)에 대한 제1고유 토픽을 생성하고, 생성된 제1고유 토픽을 포함하는 제1MQTT 메시지를 생성하여 MQTT 브로커(200)로 전송할 수 있다.
도 2는 도 1에 도시된 본 발명의 일 실시 예에 따른 서비스 제공 서버(100)를 도시한 블록도이다.
도 2를 참조하면, 서비스 제공 서버(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다.
통신부(110)는 제1전자 장치(10) 및 MQTT 브로커(200)와 통신하는 통신 회로를 포함할 수 있다.
메모리(120)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(120)에는 서비스 제공 서버(100)가 제공하는 동작, 기능 등을 구현 및/또는 제공하기 위하여, 구성요소들에 관계된 명령 또는 데이터, 하나 이상의 프로그램 및/또는 소프트웨어, 운영체제 등이 저장될 수 있다.
예를 들어, 메모리(120)에 저장되는 프로그램은 서비스 제공 서버(100)에서 제공하는 서비스를 이용하고자 하는 제1전자 장치(10)에게 고유 식별정보를 요청하고, 제1전자 장치(10)에 부여된 고유 식별정보를 포함하는 제1고유 토픽을 생성하고, 생성된 제1고유 토픽을 이용하여 제1MQTT 메시지를 생성하는 MQTT 메시지 프로그램을 포함할 수 있다.
또한, 메모리(120)에는 생성된 제1고유 토픽의 암호화를 위한 다수의 암호화 코드 테이블들이 저장될 수 있다. 암호화 코드 테이블은 100진법을 적용한 것으로서, 00~99에 해당하는 숫자마다 암호화할 코드들이 매핑되어 있으며, 각 암호화 코드 테이블마다 동일한 숫자에 다른 암호화 코드가 매핑될 수 있다.
[표 1]은 1번 암호화 코드 테이블의 일 예이다.
숫자(100진법) 암호화 코드
00 $A
01 %P
99 #D
[표 1]을 참조하면, 예를 들어, 암호화는 100진법을 사용하며, 1번 테이블은 '%영문대문자'로 이루어진 암호화 코드 25개, '$영문대문자'로 이루어진 암호화 코드 25개, '#영문대문자'로 이루어진 암호화 코드 25개, '@영문대문자'로 이루어진 암호화 코드 25로 이루어질 수 있다. 이러한 방식으로, 각 숫자에 매핑되는 암호화 코드는 숫자, 영문 대소문자, 기호 등 다양한 문자와 기호를 2개 이상 혼합하여 만들 수 있다.
또한, 메모리(120)에는 서비스 제공 서버(100)에서 제공하는 서비스를 이용하는 제1전자 장치(10)에 대해 생성된 제1고유 토픽이 저장될 수 있다.
프로세서(130)는 메모리(120)에 저장된 MQTT 메시지 프로그램을 실행하여 제1고유 토픽을 생성하고, 생성된 제1고유 토픽과 제1전자 장치(10)가 MQTT 메시지 구독을 신청한 제2전자 장치(20)에게 전달하고자 하는 상세요청내용을 포함하는 제1MQTT 메시지를 생성한 후, 생성된 제1MQTT 메시지를 MQTT 브로커(200)에게 전송할 수 있다. 그리고, 프로세서(130)는 생성된 제1고유 토픽을 메모리(120)에 저장하여, 이후 동일한 제1전자 장치(10)로부터 MQTT 메시지 발생 요청이 있는 경우, 저장된 제1고유 토픽을 사용하여 MQTT 메시지를 생성할 수 있다.
따라서, 프로세서(130)는 제1전자 장치(10)의 사용자가 서비스 제공 서버(100)에 별도의 회원가입을 하지 않아도 제1전자 장치(10)에 대한 제1고유 토픽을 생성하여 MQTT 메시지 발행 및 전달이 가능하도록 할 수 있다. 이는 제1전자 장치(10) 뿐만 아니라 제2 내지 제6전자 장치들(20~60)에 대해서도 동일하다.
자세히 설명하면, 프로세서(130)는 제1전자 장치(10)의 고유 식별정보와, 제1고유 토픽의 암호화를 위한 암호화 랜덤키와, 체크섬정보와, 고유 식별정보의 종류를 구분하는 구분자를 이용하여 임시 고유 토픽을 생성하고, 임시 고유 토픽을 암호화 랜덤키를 이용하여 암호화하여 제1고유 토픽을 생성할 수 있다.
제1전자 장치(10)의 고유 식별정보는 IMEI(International Mobile Equipment Identity)에서 제공하는 국제이동단말기 식별번호 15자를 예로 들 수 있다. 제1전자 장치(10)가 PC 또는 블루투스 장치와 같이 IMEI를 부여받지 않은 장치인 경우, 제1전자 장치(10)의 고유 식별정보로서 맥 어드레스(MAC Address) 15자 또는 블루투스 어드레스 15자를 사용할 수도 있다. 맥 어드레스와 블루투스 어드레스는 일 예로서, 제1전자 장치(10)의 고유 식별정보로서 제1전자 장치(10)의 주변기기에 속하는 장치의 식별번호가 사용될 수 있음을 의미한다.
암호화 랜덤키는 다수의 암호화 코드 테이블들에 매핑된 번호로서, 암호화 랜덤키가 '1'인 경우, 프로세서(130)는 1번 암호화 코드 테이블을 이용하여 제1고유 토픽을 생성한다.
구분자는 제1전자 장치(10)의 고유 식별정보가 IMEI인지, 맥 어드레스인지, 블루투스 어드레스인지를 구분하기 위한 정보이다.
체크섬정보는 고유 식별정보+암호화 랜덤키+구분자로 이루어진 숫자들의 오류 검출을 위한 정보이다. 예를 들어, 체크섬정보는, 고유 식별정보(예를 들어, 15자)+암호화 랜덤키(예를 들어, 1자)+구분자(예를 들어, 1자)로 이루어진 숫자들을 모두 더하고, 모두 더한 숫자의 마지막 자리의 숫자와 체크섬정보를 더할 때 마지막 숫자가 0이 되도록 하는 숫자를 사용할 수 있다.
도 3은 제1고유 토픽을 생성하는 일련의 동작을 보여주는 예시도이다.
도 3을 참조하면, 프로세서(130)는 IMEI 15자, 암호화 랜덤키 1자, 구분자 1자, 체크섬 1자를 이용하여 임시 고유 토픽을 생성하고, 이를 5번 암호화 코드 테이블을 이용하여 100진법 암호화하여 '%A%F#G@K$S#A%B@N#C'이라는 제1고유 토픽을 생성한다.
그리고, 프로세서(130)는 암호화된 제1고유 토픽을 MQTT 메시지의 헤드(head)에 기재하고, 제1전자 장치(10)로부터 수신되는 상세요청내용을 MQTT 메시지의 바디(body)에 기재하여 제1MQTT 메시지를 생성할 수 있다.
도 4는 본 발명의 실시 예에 따른 MQTT 메시지의 포맷이다.
도 4를 참조하면, MQTT 메시지는 24자의 헤드와 (N+M)자의 바디를 포함하며, 헤드의 24자는 변경가능하고, N과 M은 정수이다.
헤드에는 암호화된 고유 토픽(18자)과, 바디 길이(4자)와, CRC-Check Sum(2자리)가 기재된다. 바디 길이는 예를 들어, 10진법을 사용하면 바디에 10,000자까지 기재할 수 있으며, 4바이트라고 보면 100만자 이상의 롱 데시멀까지 기재가능하다.
바디에는 제어코드(N자)와 제어코드별 데이터(즉, 상세요청내용, M자)가 기재된다. 바디에는 IOT 유닛, 즉, 제1전자 장치(10)의 전달 자료와 중계 명령이 제어 형식으로 기재된다. 예를 들어, 제어코드는 제1전자 장치(10)에 표시되는 UI들에서 사용자가 지정한 카테고리(예를 들어, 음식점 이름, 메뉴, 수량, 주소 등)에는 음식점의 포스 단말기(20)를 나타내는 정보가 기재되고, 제어코드 데이터에는 각 제어코드에 해당하는 상세내용(예를 들어, ABC 식당의 D 세트메뉴 1개와 실제 주소)과 구독자 정보(전화번호 또는 고유 토픽)가 기재될 수 있다.
도 4와 같이 MQTT 메시지 내에 고유 토픽을 넣음으로써 상호 MQTT 메시지의 전달이 가능하며, 또한 정확한 의미 전달도 가능하다.
다시 도 1을 참조하면, MQTT 브로커(200)는 서비스 제공 서버(100)로부터 전송되는 제1MQTT 메시지를 수신하여 제1MQTT 메시지를 구독하는 제2전자 장치(20)가 수신가능하도록 중계할 수 있다. MQTT 브로커(200)는 제1MQTT 메시지의 바디에 기재된 제어코드 데이터로부터 제1MQTT 메시지의 구독자가 제2전자 장치(20)임을 인지하고, 제1MQTT 메시지를 제2전자 장치(20)로 전달할 수 있다.
제2전자 장치(20)는 MQTT 브로커(200)를 통해 전달받은 제1MQTT 메시지를 복호화한다. 제2전자 장치(20)는 제1MQTT 메시지의 헤드에 기재된 제1고유 토픽을 분석하여 제1MQTT 메시지의 발행을 요청한 제1전자 장치(10)를 확인하고, 제1전자 장치(10)가 요청한 상세요청내용을 확인할 수 있다. 제2전자 장치(20)는 제1전자 장치(10)의 제1고유 토픽, 전화 번호, 상세요청내용을 제2전자 장치(20)의 메모리에 저장하거나 연결된 데이터베이스에 저장하여 이력 관리를 할 수 있다.
그리고, 제2전자 장치(20)는 확인된 상세요청내용에 해당하는 동작을 수행하고, 동작 수행 결과를 포함하는 상세응답내용과 제2전자 장치(20)의 제2고유 토픽을 포함하는 제2MQTT 메시지를 생성하여 MQTT 브로커(200)로 전송할 수 있다.
자세히 설명하면, 제2전자 장치(20)는 제2전자 장치(20)의 고유 식별정보와 암호화 랜덤키와, 구분자와, 체크섬을 이용하여 제2고유 토픽을 생성하고, 제2고유 토픽을 MQTT 메시지의 헤드에 기재하고, 동작 수행 결과(예를 들어, '주문한 메뉴가 완성되었습니다. 배달 출발합니다')를 바디에 기재하여 제2MQTT 메시지를 생성한다. 이 때, 제2전자 장치(20)는 바디에 제2MQTT 메시지의 구독자가 제1전자 장치(10)임을 명시할 수 있다.
MQTT 브로커(200)는 제2전자 장치(20)로부터 수신한 제2MQTT 메시지를 서비스 제공 서버(100)로 전달한다.
서비스 제공 서버(100)는 제2MQTT 메시지를 복호화하여 헤드에 기재된 제2고유 토픽으로부터 제2전자 장치(20)가 메시지 발행처임을 확인하고, 바디에 기재된 상세응답내용을 보여주는 화면 또는 음성을 생성하여 제1전자 장치(10)로 전송할 수 있다.
제1전자 장치(10)는 서비스 제공 서버(100)로부터 수신되는 상세응답내용을 화면 또는 음성을 통해 사용자가 인지가능하도록 출력한다.
상술한 일 실시 예에서는 사용자가 제1전자 장치(10)에서 음식을 배달주문하고, 제2전자 장치(20)가 음식 주문이 완료되었음을 제1전자 장치(10)에게 안내하는 1:1 구조의 MQTT 메시지 전달 시스템에 대해 설명하였다.
이와는 다른 예로, MQTT 메시지 전달은 1:1:1 형태로 적용가능하며, 확장가능하다. 예를 들어, 서비스 제공 서버(100)는 제1전자 장치(10)의 메시지 발행 요청에 의해 제1MQTT 메시지를 발행하여 MQTT 브로커(200)로 전송하고, MQTT 브로커(200)는 제1MQTT 메시지를 제5전자 장치(50)로 전달한다.
제5전자 장치(50)는 수신된 제1MQTT 메시지를 분석하여 제1고유 토픽과 상세요청내용을 확인하고, 확인된 상세요청내용에 해당하는 동작이 수행되도록 처리한다. 이 때, 제5전자 장치(50)는 상세요청내용에 포함된 제6전자 장치(60)의 정보를 확인한다. 상세요청내용에 해당하는 동작이 수행되면, 제5전자 장치(50)는 제5전자 장치(50)에 부여된 고유 식별정보를 이용하여 제5전자 장치에 대한 제5고유 토픽을 생성하고, 제5고유 토픽과 제6전자 장치(60)에게 전달할 상세요청내용을 포함하는 제5MQTT 메시지를 생성하여 MQTT 브로커(200)로 전송할 수 있다.
이러한 1:1:1의 시스템은 예를 들어 무인 택배 보관 시스템에 적용할 수 있다. 즉, 제1전자 장치(10)가 무인 택배 서비스를 사용하는 택배 기사의 스마트폰이고, 제5전자 장치(50)가 무인 택배 보관함이며, 제6전자 장치(60)가 택배 수령인의 스마트폰인 경우 적용될 수 있다.
도 5는 본 발명의 실시 예를 무인 택배 보관 시스템에 적용한 경우, 택배 물품 보관 및 수령을 포함하는 전반적인 동작을 보여준다.
도 5를 참조하면, 택배 물품 보관 및 수령을 포함하는 동작은 택배 기사가 무인 택배함에 물품을 보관하는 동작과, 무인 택배함에 물품이 보관되었음을 택배 수령인에게 알리는 동작과, 택배 수령인이 무인 택배함에 보관된 물품을 찾는 동작과, 무인 택배함이 택배 기사에게 물품이 수취되었음을 알리는 동작을 포함한다.
이하에서는 도 6 내지 도 11을 참조하여 본 발명의 실시 예들에 따른 MQTT 프로토콜을 이용한 메시지 전달 방법을 설명한다.
도 6 내지 도 11에 도시된 제1전자 장치(10), 제2전자 장치(20), 제5전자 장치(50), 제6전자 장치(60), 서비스 제공 서버(100) 및 MQTT 브로커(200)는 도 1 내지 도 5를 참조하여 설명한 MQTT 프로토콜을 이용한 메시지 전달 시스템의 구성요소이므로 구체적인 설명은 생략한다.
도 6은 본 발명의 일 실시 예에 따른 MQTT 프로토콜을 이용한 메시지 전달 방법을 도시한 흐름도이다.
도 6을 참조하면, 제1전자 장치(10)는 WEB/APP이 제공하는 UI를 통해 서비스 이용을 위한 상세요청내용을 입력하고, 서비스 제공 서버(100)에게 상세요청내용 전송 및 제1MQTT 메시지 발행을 요청한다(S605, S610).
서비스 제공 서버(100)는 서비스 제공 서버(100)에 제1전자 장치(10)의 제1고유 토픽이 존재하는지 확인한다(S615).
미존재하는 경우, 서비스 제공 서버(100)는 제1전자 장치(10)에게 고유 식별정보를 요청하여 수신할 수 있다(S620, S625). S620단계에서, 서비스 제공 서버(100)는 제1전자 장치(10)에게 IMEI 정보, 맥 어드레스, 블루투스 어드레스를 포함하는 다수의 식별정보들 중 하나를 요청하거나, 다수의 식별정보들에 우선순위를 부여하여 높은 우선순위에 부합하는 정보를 제공하도록 요청할 수 있다.
서비스 제공 서버(100)는 제1전자 장치(10)의 고유 식별정보를 이용하여 제1고유 토픽을 생성하여 저장한다(S630).
도 7은 도 6의 S630단계를 자세히 설명하기 위한 흐름도이다.
도 7을 참조하면, 서비스 제공 서버(100)는 제1전자 장치(10)로부터 수신된 고유 식별정보를 확인한다(S700).
확인결과, 서비스 제공 서버(100)는 고유 식별정보가 맥 어드레스이면 구분자로서 1을 지정하고, IMEI 정보이면 구분자로서 2를 지정하고, 블루투스 어드레스이면 구분자로서 3을 지정할 수 있다(S710~S740).
서비스 제공 서버(100)는 고유 토픽을 생성하기 위한 암호화 랜덤키, 즉, 암호화에 사용할 암호화 코드 테이블을 지정하고, 체크 섬을 계산한다(S750, S760).
서비스 제공 서버(100)는 S710단계~S760단계에서 수집된 정보를 취합하여 임시 고유 토픽(예를 들어, 18자)을 생성하고, 암호화 랜덤키에 대응하는 암호화 코드 테이블을 이용하여 임시 고유 토픽을 암호화한다(S770, S780).
이로써, 서비스 제공 서버(100)는 제1전자 장치(10)에 해당하는 제1고유 토픽을 완성한다(S790).
다시 도 6을 참조하면, 서비스 제공 서버(100)는 S630단계에서 생성된 제1고유 토픽과 수신된 상세요청내용과 구독자인 제2전자 장치(20)의 정보와 서비스 제공 서버(100)의 주소를 포함하는 제1MQTT 메시지를 생성한다(S635).
또는, S615단계에서 제1고유 토픽이 존재하면, 서비스 제공 서버(100)는 기저장된 제1고유 토픽을 확인하고(S640), S635단계에서, 확인된 제1고유 토픽과 상세요청내용을 포함하는 제1MQTT 메시지를 생성한다.
서비스 제공 서버(100)는 S635단계에서 생성된 제1MQTT 메시지를 MQTT 브로커(200)로 전송한다(S645).
MQTT 브로커(200)는 수신된 제1MQTT 메시지의 바디에 기재된 구독자를 확인하고, 확인된 구독자, 즉, 제2전자 장치(20)로 제1MQTT 메시지를 전달한다(S650).
제2전자 장치(20)는 전달받은 제1MQTT 메시지를 복호화 및 분석하여 제1고유 토픽(즉, 제1전자 장치(10))을 확인하고, 상세요청내용에 해당하는 동작을 직접 수행하거나, 연계된 장치에게 수행하도록 요청할 수 있다(S655). S655단계에서, 제2전자 장치(20)는 제1MQTT 메시지의 헤드로부터 제1고유 토픽을 확인하여 저장하고, 바디로부터 상세요청내용을 확인하고, 확인된 상세요청내용에 해당하는 동작을 수행할 수 있다.
제2전자 장치(20)는 상세요청내용에 해당하는 동작이 수행되면, 제2전자 장치(20)의 고유 식별정보를 이용하여 제2고유 토픽을 생성하고, 상세요청내용에 응답하기 위한 상세응답내용을 작성하고, 헤드에는 제2고유 토픽을 기재하고, 바디에는 상세응답내용과 구독자로서 제1전자 장치(10)와 서비스 제공 서버(100)의 주소를 기재하여 제2MQTT 메시지를 생성한다(S660).
제2전자 장치(20)는 생성된 제2MQTT 메시지를 MQTT 브로커(200)로 전송하고, MQTT 브로커(200)는 제1전자 장치(10)와 통신하는 서비스 제공 서버(100)에게 제2MQTT 메시지를 전달한다(S665, S670).
서비스 제공 서버(100)는 제2MQTT 메시지를 복호화하여 제1전자 장치(10)가 구독자임을 확인하고, 바디에 기재된 상세응답내용을 보여주는 UI 또는 음성을 생성하여 제1전자 장치(10)로 전송한다(S675).
도 8은 본 발명의 다른 실시 예에 따른 상품 주문 시 MQTT 프로토콜을 이용한 메시지 전달 방법을 도시한 흐름도이다.
도 8을 참조하면, 제1전자 장치(10)는 WEB/APP이 제공하는 UI를 통해 주문할 메뉴와 식당을 사용자로부터 선택받으면, 선택된 메뉴와 식당을 포함하는 상세요청내용을 서비스 제공 서버(100)에게 전송하며 제1MQTT 메시지 발행을 요청한다(S805, S810).
서비스 제공 서버(100)는 서비스 제공 서버(100)에 제1전자 장치(10)의 제1고유 토픽이 존재하는지 확인한다(S815).
미존재하는 경우, 서비스 제공 서버(100)는 제1전자 장치(10)로부터 고유 식별정보를 수신하여 제1고유 토픽을 생성하여 저장한다((S820, S825, S830).
서비스 제공 서버(100)는 S830단계에서 생성된 제1고유 토픽과 상세요청내용과 서비스 제공 서버(100)의 주소와 제2전자 장치(20)를 구독자로 지정한 정보를 포함하는 제1MQTT 메시지를 생성하고(S835), 생성된 제1MQTT 메시지를 MQTT 브로커(200)로 전송한다(S845).
MQTT 브로커(200)는 수신된 제1MQTT 메시지의 바디에 기재된 제2전자 장치(20)로 제1MQTT 메시지를 전달한다(S850).
제2전자 장치(20)는 전달받은 제1MQTT 메시지를 복호화 및 분석하여 헤드에 기재된 제1고유 토픽을 확인하고, 바디에 기재된 상세요청내용, 즉, 주문된 메뉴를 확인한다(S855~S865).
제2전자 장치(20)는 POS에서 해당하는 메뉴를 주문 접수 후 고객 주문 번호를 수신한다(S870).
주문된 메뉴가 완성되면, 제2전자 장치(20)는 제2고유 토픽을 생성하거나 기저장된 제2고유 토픽을 읽어와 메시지의 헤드에 기재하고, 제1고유 토픽을 구독자로 지정하여 서비스 제공 서버(100)의 주소와 함께 바디에 기재하고, 또한, 주문한 메뉴(상품)의 수령을 요구하는 상세응답내용을 바디에 기재하여 제2MQTT 메시지를 생성한다(S875).
제2전자 장치(20)는 생성된 제2MQTT 메시지를 MQTT 브로커(200)로 전송하고, MQTT 브로커(200)는 제2MQTT 메시지의 바디에 기재된 서비스 제공 서버(100)를 수신처로 인지하고, 서비스 제공 서버(100)에게 제2MQTT 메시지를 전달한다(S880, S885).
서비스 제공 서버(100)는 제2MQTT 메시지를 복호화하여 바디에 기재된 제1고유 토픽으로부터 제1전자 장치(10)가 구독자임을 확인하고, 바디에 기재된 상세응답내용인 주문상품 수령요구를 보여주는 UI를 생성하여 제1전자 장치(10)로 전송한다(S890, S895). 이로써, 제1전자 장치(10)는 수신된 UI를 화면에 표시하여 사용자가 인지하도록 한다.
도 9 내지 도 11은 본 발명의 다른 실시 예에 따른 무인 택배 서비스 이용 시 MQTT 프로토콜을 이용한 메시지 전달 방법을 도시한 흐름도이다.
도 9는 무인 택배 서비스 중 도 5에 도시된 택배 물품 보관 동작을 설명하기 위한 흐름도이다.
도 9를 참조하면, 제1전자 장치(10)의 사용자인 택배 기사는 무인 택배 보관함에 도달하면, 무인 택배 전용 WEB/APP이 제공하는 UI를 통해 택배 수령인 정보(예를 들어, 이름, 전화번호, 주소 등)를 입력한다(S905).
제1전자 장치(10)는 택배 기사의 요청에 의해, 택배 수령인 정보를 포함하는 상세요청내용을 서비스 제공 서버(100)에게 전송하며 제1MQTT 메시지 발행을 요청한다(S910).
서비스 제공 서버(100)는 서비스 제공 서버(100)에 제1전자 장치(10)의 제1고유 토픽이 존재하는지 확인하고(S915), 미존재하면, 제1전자 장치(10)에게 고유 식별정보를 요청하여 수신하고(S920, S925), 수신된 고유 식별정보, 암호화 랜덤키, 구분자, 체크섬을 이용하여 제1고유 토픽을 생성하여 저장한다(S930).
서비스 제공 서버(100)는 택배 수령인 정보가 수신되면, 무인 택배함 중 사용가능한 보관함의 개방을 요청하는 내용과, 수신된 상세요청내용과, 생성된 제1고유 토픽과, 서비스 제공 서버(100)의 주소와, 제5전자 장치(50)를 구독자로 지정한 정보를 포함하는 제1MQTT 메시지를 생성하고(S935), 생성된 제1MQTT 메시지를 MQTT 브로커(200)로 전송한다(S945).
MQTT 브로커(200)는 수신된 제1MQTT 메시지의 바디에 기재된 제5전자 장치(50)로 제1MQTT 메시지를 전달한다(S950).
제5전자 장치(50)는 전달받은 제1MQTT 메시지를 복호화 및 분석하여 헤드에 기재된 제1고유 토픽을 확인하고, 바디에 기재된 상세요청내용, 즉, 택배 수령인 정보와 보관함 개방 요청을 확인한다(S955~S965). 이 때, 제5전자 장치(50)는 제1전자 장치(10)의 제1고유 토픽과 제1전자 장치(10)의 전화번호를 매핑하여 연결된 데이터베이스 또는 제5전자 장치(50)의 메모리에 저장한다.
제5전자 장치(50)는 다수의 택배 보관함들 중 사용가능한 보관함을 개방하고, 이후 택배 기사에 의해 물품이 보관된 후 보관함이 닫히면, 해당 보관함 식별정보를 택배 수령인 정보에 매핑하여 저장한다(S970).
도 10은 도 5에 도시된 보관 물품 수령인 알림 동작을 설명하기 위한 흐름도이다.
도 10을 참조하면, 제5전자 장치(50)는 S965단계에서 확인된 상세요청내용 중 택배 수령인 정보를 검색하고, 제5전자 장치(50)에 해당하는 제5고유 토픽을 생성한다(S1010, S1015).
제5전자 장치(50)는 생성된 제5고유 토픽을 헤드에 기재하고, 물품 수령 요구 알림과 택배 수령인의 단말기인 제6전자 장치(60)를 구독자 정보로서 바디에 기재하여 제5MQTT 메시지를 생성한다(S1020). 물품 수령 요구 알림은 무인 택배 보관함의 주소, 보관함 번호, 택배 기사 정보를 포함할 수 있다.
제5전자 장치(50)는 생성된 제5MQTT 메시지를 MQTT 브로커(200)로 전송하고, MQTT 브로커(200)는 수신된 제5MQTT 메시지의 바디에 기재된 제6전자 장치(60)로 제5MQTT 메시지를 전달한다(S1025, S1030).
제6전자 장치(60)는 제5MQTT 메시지를 수신하면, 무인 택배 전용 WEB/APP을 실행하여 제5MQTT 메시지를 복호화 및 분석하여 헤드에 기재된 제5고유 토픽을 확인하여 메시지 발행처를 확인하고, 바디에 기재된 물품 수령 요구 알림을 확인한다(S1035~S1050).
제6전자 장치(60)는 S1050단계에서 확인된 물품 수령 요구 알림을 안내하는 화면을 표시한다(S1055). 이로써 택배 수령인은 해당 물품이 무인 택배함에 보관되었음을 인지한다.
도 11은 도 5에 도시된 수령인 물품 찾기 동작 및 수취 알림 동작을 설명하기 위한 흐름도이다.
도 11을 참조하면, 택배 수령인이 무인 택배함에 도달하면, 제6전자 장치(60)는 무인 택배 전용 WEB/APP을 실행하여 제6전자 장치(60)에 해당하는 제6고유 토픽을 생성한다(S1105).
택배 수령인이 S1105단계에서 실행되는 WEB/APP이 제공하는 UI를 통해 보관함 개방 명령을 입력하면(S1110), 제6전자 장치(60)는 메시지의 헤드에 제6고유 토픽을 기재하고 바디에 보관함 개방 명령을 기재하여 제6MQTT 메시지를 생성한다(S1115).
S1110단계에서, 보관함 개방 명령은 물품이 보관된 보관함 정보, 제1전자 장치(10)의 전화번호를 포함한다. 또한, S1115단계에서 제6전자 장치(60)는 구독자를 제5전자 장치(50)로 지정하여 바디에 더 기재한다.
제6전자 장치(60)는 생성된 제6MQTT 메시지를 MQTT 브로커(200)로 전송하고, MQTT 브로커(200)는 수신된 제6MQTT 메시지의 바디에 기재된 제5전자 장치(50)로 제6MQTT 메시지를 전달한다(S1120, S1125).
제5전자 장치(50)는 제6MQTT 메시지를 수신 및 복호화하여 헤드에 기재된 제6고유 토픽을 확인하여 메시지 발행처를 확인하고, 바디에 기재된 상세요청내용을 확인한다(S1130~S1140).
제5전자 장치(50)는 S1140단계에서 확인된 상세요청내용에 해당하는 동작, 즉, 해당하는 보관함을 개방하고 물품 수령이 완료된 것으로 판단할 수 있다(S1145).
제5전자 장치(50)는 확인된 상세요청내용 중 제1전자 장치(10)의 전화번호를 확인하고, 확인된 전화번호에 매핑저장된 제1고유 토픽을 제5전자 장치(50)의 메모리(미도시)에서 검색한다(S1150, S1155).
제5전자 장치(50)는 기저장된 제5고유 토픽을 메시지의 헤드에 기재하고, 물품 수취가 완료되었음을 안내하는 물품 수취 완료 알림과 서비스 제공 서버(100)와 제1전자 장치(10)를 구독자로서 바디에 기재하여 제5'MQTT 메시지를 생성한다(S1160).
제5전자 장치(50)는 생성된 제5'MQTT 메시지를 MQTT 브로커(200)로 전송하고, MQTT 브로커(200)는 제5'MQTT 메시지의 바디에 기재된 서비스 제공 서버(100)에게 제5'MQTT 메시지를 전달한다(S1165, S1170).
서비스 제공 서버(100)는 제5'MQTT 메시지를 복호화하여 제1전자 장치(10)가 구독자임을 확인하고, 바디에 기재된 물품 수취 완료 안내 UI를 생성하여 제1전자 장치(10)로 전송한다(S1175, S1180). 이로써, 제1전자 장치(10)는 수신된 UI를 화면에 표시하여 택배 기사가 인지하도록 한다.
한편, 이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시 예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서, 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주하여야 할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10~60: 제1 내지 제6전자 장치들
100: 서비스 제공 서버
200: MQTT 브로커

Claims (6)

  1. MQTT 프로토콜을 이용한 메시지 전달 시스템에 있어서,
    MQTT 메시지 발행을 요청한 제1전자 장치에 부여된 고유 식별정보를 이용하여 상기 제1전자 장치에 대한 제1고유 토픽을 생성하고, 상기 생성된 제1고유 토픽을 포함하는 제1MQTT 메시지를 생성하여 전송하는 서비스 제공 서버;
    상기 서비스 제공 서버로부터 전송되는 제1MQTT 메시지를 수신하여 상기 제1MQTT 메시지를 구독하는 제2전자 장치가 수신가능하도록 중계하는 MQTT 브로커; 및
    상기 MQTT 브로커를 통해 전달받은 제1MQTT 메시지를 분석하여 상기 제1MQTT 메시지의 발행을 요청한 제1전자 장치를 확인하는 제2전자 장치;를 포함하고,
    상기 서비스 제공 서버는,
    상기 제1전자 장치의 고유 식별정보와, 상기 제1고유 토픽의 암호화를 위한 암호화 랜덤키와, 체크섬정보와, 상기 고유 식별정보의 종류를 구분하는 구분자를 이용하여 임시 고유 토픽을 생성하고, 상기 임시 고유 토픽을 상기 암호화 랜덤키를 이용하여 암호화하여 상기 제1전자 장치에 부여된 고유 식별정보를 포함하는 제1고유 토픽을 생성하고,
    상기 생성된 고유 토픽과 상기 제1전자 장치가 MQTT 메시지 구독을 신청한 제2전자 장치에게 전달하고자 하는 상세요청내용을 포함하는 제1MQTT 메시지를 생성한 후, 상기 생성된 제1MQTT 메시지를 상기 MQTT 브로커에게 전송하는 것을 특징으로 하는 MQTT 프로토콜을 이용한 메시지 전달 시스템.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 서비스 제공 서버는,
    상기 제1MQTT 메시지의 발행처에 해당하는 상기 제1고유 토픽을 상기 제1MQTT 메시지의 헤드(head)에 기재하고, 상기 제1전자 장치에 표시되는 다수의 UI 화면들 중 적어도 하나를 통해 입력되는 상세요청내용을 상기 제1MQTT 메시지의 바디(body)에 기재하여 제1MQTT 메시지를 생성하는 것을 특징으로 하는 MQTT 프로토콜을 이용한 메시지 전달 시스템.
  5. 제1항에 있어서,
    상기 제2전자 장치는,
    상기 수신된 제1MQTT 메시지를 분석하여 상기 제1고유 토픽과 상기 상세요청내용을 확인하고, 상기 확인된 상세요청내용에 해당하는 동작이 수행되도록 처리하며, 상기 상세요청내용에 해당하는 동작이 수행되면, 상기 제2전자 장치에 부여된 고유 식별정보를 이용하여 생성된 상기 제2전자 장치에 대한 제2고유 토픽과 상기 상세요청내용에 응답하기 위한 응답내용을 포함하는 제2MQTT 메시지를 생성하여 상기 MQTT 브로커로 전송하며,
    상기 MQTT 브로커는 상기 제2전자 장치로부터 수신되는 제2MQTT 메시지를 상기 제1전자 장치가 수신가능하도록 중계하는 것을 특징으로 하는 MQTT 프로토콜을 이용한 메시지 전달 시스템.
  6. MQTT 프로토콜을 이용한 메시지 전달 시스템의 메시지 전달 방법에 있어서,
    (A) 서비스 제공 서버가, MQTT 메시지 발행을 요청한 제1전자 장치에 부여된 고유 식별정보를 이용하여 상기 제1전자 장치에 대한 제1고유 토픽을 생성하고, 상기 생성된 제1고유 토픽을 포함하는 제1MQTT 메시지를 생성하여 MQTT 브로커로 전송하는 단계;
    (B) 상기 MQTT 브로커가, 상기 서비스 제공 서버로부터 전송되는 제1MQTT 메시지를 수신하여 상기 제1MQTT 메시지를 구독하는 제2전자 장치가 수신가능하도록 중계하는 단계; 및
    (C) 상기 제2전자 장치가, 상기 MQTT 브로커를 통해 전달받은 제1MQTT 메시지를 분석하여 상기 제1MQTT 메시지의 발행을 요청한 제1전자 장치를 확인하는 단계;를 포함하고,
    상기 (A) 단계에서, 상기 서비스 제공 서버는,
    상기 제1전자 장치의 고유 식별정보와, 상기 제1고유 토픽의 암호화를 위한 암호화 랜덤키와, 체크섬정보와, 상기 고유 식별정보의 종류를 구분하는 구분자를 이용하여 임시 고유 토픽을 생성하고, 상기 임시 고유 토픽을 상기 암호화 랜덤키를 이용하여 암호화하여 상기 제1전자 장치에 부여된 고유 식별정보를 포함하는 제1고유 토픽을 생성하고,
    상기 생성된 고유 토픽과 상기 제1전자 장치가 MQTT 메시지 구독을 신청한 제2전자 장치에게 전달하고자 하는 상세요청내용을 포함하는 제1MQTT 메시지를 생성한 후, 상기 생성된 제1MQTT 메시지를 상기 MQTT 브로커에게 전송하는 것을 특징으로 하는 MQTT 프로토콜을 이용한 메시지 전달 방법.
KR1020180134396A 2018-11-05 2018-11-05 Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법 KR102093314B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180134396A KR102093314B1 (ko) 2018-11-05 2018-11-05 Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180134396A KR102093314B1 (ko) 2018-11-05 2018-11-05 Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법

Publications (1)

Publication Number Publication Date
KR102093314B1 true KR102093314B1 (ko) 2020-03-25

Family

ID=70001719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180134396A KR102093314B1 (ko) 2018-11-05 2018-11-05 Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법

Country Status (1)

Country Link
KR (1) KR102093314B1 (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111564006A (zh) * 2020-07-14 2020-08-21 江苏云柜网络技术有限公司 一种快递柜寄件控制方法及系统
KR102219380B1 (ko) * 2020-11-16 2021-02-24 주식회사 자임 Mqtt 기반 통신에서 트래픽에 의한 지연을 감소시키기 위한 방법 및 시스템
CN112887769A (zh) * 2021-01-21 2021-06-01 海信视像科技股份有限公司 一种显示设备
CN112995302A (zh) * 2021-02-07 2021-06-18 深圳市桑达无线通讯技术有限公司 一种基于mqtt传输协议实现的远程终端管理方法
CN113364838A (zh) * 2021-05-26 2021-09-07 中建三局智能技术有限公司 一种基于mqtt的设备自组网方法及系统
WO2021201870A1 (en) * 2020-04-02 2021-10-07 Hewlett-Packard Development Company, L.P. Configuring a publisher device of a publish-subscribe system
WO2022033083A1 (zh) * 2020-08-14 2022-02-17 浙江三维通信科技有限公司 译码方法、译码系统、电子装置和存储介质
CN114095546A (zh) * 2021-10-27 2022-02-25 许昌许继软件技术有限公司 一种基于mqtt协议的报文监视方法及装置
CN114390033A (zh) * 2021-12-28 2022-04-22 国网天津市电力公司营销服务中心 基于可扩展通信协议的回路状态巡检仪采集系统及方法
KR102477368B1 (ko) 2021-11-04 2022-12-15 주식회사 라온아이오티 MQTT 프로토콜을 이용한 IoT 기기간 메시지 전달 방법 및 시스템
WO2023098816A1 (zh) * 2021-12-02 2023-06-08 中兴通讯股份有限公司 基于mqtt协议的设备通信方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170033399A (ko) * 2014-07-21 2017-03-24 콘비다 와이어리스, 엘엘씨 Mqtt 프로토콜을 이용한 서비스 층 상호연동
KR20170111768A (ko) 2016-03-29 2017-10-12 전자부품연구원 M2M/IoT 시스템에서 MQTT 프로토콜을 활용한 메시지 전달 방법
KR20180031852A (ko) * 2016-09-19 2018-03-29 충남대학교산학협력단 Mqtt 프로토콜 연동을 위한 어댑터 및 그를 이용한 데이터 교환 시스템
KR20180073154A (ko) * 2016-12-22 2018-07-02 경희대학교 산학협력단 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법
KR101863284B1 (ko) * 2017-02-17 2018-07-02 금오공과대학교 산학협력단 MQTT(Message Queue Telemetry Transport)를 이용한 비콘 연동 채팅 서비스 시스템
KR20180105917A (ko) * 2017-03-16 2018-10-01 한국전자통신연구원 Mqtt 프로토콜을 이용한 웨어러블 데이터 제공 및 지능화된 웨어러블 정보 서비스 시스템 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170033399A (ko) * 2014-07-21 2017-03-24 콘비다 와이어리스, 엘엘씨 Mqtt 프로토콜을 이용한 서비스 층 상호연동
KR20170111768A (ko) 2016-03-29 2017-10-12 전자부품연구원 M2M/IoT 시스템에서 MQTT 프로토콜을 활용한 메시지 전달 방법
KR20180031852A (ko) * 2016-09-19 2018-03-29 충남대학교산학협력단 Mqtt 프로토콜 연동을 위한 어댑터 및 그를 이용한 데이터 교환 시스템
KR20180073154A (ko) * 2016-12-22 2018-07-02 경희대학교 산학협력단 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법
KR101863284B1 (ko) * 2017-02-17 2018-07-02 금오공과대학교 산학협력단 MQTT(Message Queue Telemetry Transport)를 이용한 비콘 연동 채팅 서비스 시스템
KR20180105917A (ko) * 2017-03-16 2018-10-01 한국전자통신연구원 Mqtt 프로토콜을 이용한 웨어러블 데이터 제공 및 지능화된 웨어러블 정보 서비스 시스템 및 방법

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021201870A1 (en) * 2020-04-02 2021-10-07 Hewlett-Packard Development Company, L.P. Configuring a publisher device of a publish-subscribe system
CN111564006A (zh) * 2020-07-14 2020-08-21 江苏云柜网络技术有限公司 一种快递柜寄件控制方法及系统
WO2022033083A1 (zh) * 2020-08-14 2022-02-17 浙江三维通信科技有限公司 译码方法、译码系统、电子装置和存储介质
KR102219380B1 (ko) * 2020-11-16 2021-02-24 주식회사 자임 Mqtt 기반 통신에서 트래픽에 의한 지연을 감소시키기 위한 방법 및 시스템
CN112887769A (zh) * 2021-01-21 2021-06-01 海信视像科技股份有限公司 一种显示设备
CN112887769B (zh) * 2021-01-21 2023-09-19 青岛海信传媒网络技术有限公司 一种显示设备
CN112995302A (zh) * 2021-02-07 2021-06-18 深圳市桑达无线通讯技术有限公司 一种基于mqtt传输协议实现的远程终端管理方法
CN113364838B (zh) * 2021-05-26 2022-08-26 中建三局智能技术有限公司 一种基于mqtt的设备自组网方法及系统
CN113364838A (zh) * 2021-05-26 2021-09-07 中建三局智能技术有限公司 一种基于mqtt的设备自组网方法及系统
CN114095546A (zh) * 2021-10-27 2022-02-25 许昌许继软件技术有限公司 一种基于mqtt协议的报文监视方法及装置
CN114095546B (zh) * 2021-10-27 2024-03-01 许昌许继软件技术有限公司 一种基于mqtt协议的报文监视方法及装置
KR102477368B1 (ko) 2021-11-04 2022-12-15 주식회사 라온아이오티 MQTT 프로토콜을 이용한 IoT 기기간 메시지 전달 방법 및 시스템
WO2023098816A1 (zh) * 2021-12-02 2023-06-08 中兴通讯股份有限公司 基于mqtt协议的设备通信方法及装置
CN114390033A (zh) * 2021-12-28 2022-04-22 国网天津市电力公司营销服务中心 基于可扩展通信协议的回路状态巡检仪采集系统及方法

Similar Documents

Publication Publication Date Title
KR102093314B1 (ko) Mqtt 프로토콜을 이용한 메시지 전달 시스템 및 그의 메시지 전달 방법
US11385779B2 (en) Autofill for a user device
US11604921B2 (en) Systems and methods for autofill field classification
US20180123796A1 (en) Authentication-based message display method and communication terminal thereof
CN112367164B (zh) 业务请求处理方法、装置、计算机设备和存储介质
US10372710B2 (en) Using metadata to take action on an SMS message on a proprietary system
US9047366B2 (en) Method and system for providing tag information
KR101071786B1 (ko) 모바일 표준 템플릿 데이터를 제공하는 서버 및 시스템
KR101379711B1 (ko) 전화번호를 이용한 파일 암호화 및 복호화 방법
US12135798B2 (en) Secure resolution of email-based queries involving confidential third-party data
JP2015090993A (ja) 暗号制御装置、暗号制御方法、及びプログラム
CN110808974A (zh) 数据获取方法及装置、计算机装置及存储介质
EP3024191B1 (en) Data processing system, center apparatus and program
CN107111635B (zh) 内容传递方法
CN104427003B (zh) 传送装置、传送方法和中继系统
KR20120047720A (ko) 데이터 전송 관리 방법 및 시스템
JP5915672B2 (ja) 端末装置、情報管理装置及びプログラム
JP2011013935A (ja) 分散データ管理システム、サーバ装置、クライアント携帯端末及びプログラム
JP6265201B2 (ja) 分散管理システム及び分散管理方法
JP2023119855A (ja) 情報処理システム、情報処理方法、及びプログラム
CN116800629A (zh) 数据处理方法、数据处理装置、服务器及存储介质
CN116827611A (zh) 一种数据传输方法、装置、电子设备及存储介质
KR20150133542A (ko) 파일형태의 멀티미디어 컨텐츠 게시물 제공 시스템, 방법 및 컴퓨터 프로그램이 기록된 기록매체
JP2006209676A (ja) セキュリティシステム及びセキュリティ方法
JP2017084097A (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant