KR102668939B1 - 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템 - Google Patents

레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템 Download PDF

Info

Publication number
KR102668939B1
KR102668939B1 KR1020210191984A KR20210191984A KR102668939B1 KR 102668939 B1 KR102668939 B1 KR 102668939B1 KR 1020210191984 A KR1020210191984 A KR 1020210191984A KR 20210191984 A KR20210191984 A KR 20210191984A KR 102668939 B1 KR102668939 B1 KR 102668939B1
Authority
KR
South Korea
Prior art keywords
broker
data
rest
user control
control device
Prior art date
Application number
KR1020210191984A
Other languages
English (en)
Other versions
KR20230102103A (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 KR1020210191984A priority Critical patent/KR102668939B1/ko
Publication of KR20230102103A publication Critical patent/KR20230102103A/ko
Application granted granted Critical
Publication of KR102668939B1 publication Critical patent/KR102668939B1/ko

Links

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
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 레스트 브로커(Rest Broker)를 이용한 IoT 데이터 전송 방법 및 그 시스템에 관한 것으로, 더욱 상세하게는 HTTP 방식의 IoT 기기들 간에 데이터 교환 작업을 중앙에 하나의 브로커를 통해 실시함으로써, 세션의 관리가 쉽고 데이터 교환 과정도 간단하게 구현할 수 있는 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에 관한 것이다.

Description

레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템{METHOD AND SYSTEM FOR TRANSFERRING IoT DATA USING REST BROKER}
본 발명은 레스트 브로커(Rest Broker)를 이용한 IoT 데이터 전송 방법 및 그 시스템에 관한 것으로, 더욱 상세하게는 HTTP 방식의 IoT 기기들 간에 데이터 교환 작업을 중앙에 하나의 브로커를 통해 실시함으로써, 세션의 관리가 쉽고 데이터 교환 과정도 간단하게 구현할 수 있는 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에 관한 것이다.
MQTT(Message Queue Telemetry Transport) 메시지 교환 방식을 사용한 IoT(Internet of Things) 기기들은 중앙의 MQTT 브로커를 이용하여 데이터를 교환한다. 이에 비해 REST(Representational State Transfer) HTTP(Hypertext Transfer Protocol) 기반의 메시지 전송은 송수신자간에 1:1로 이루어지기 때문에, SSDP(Simple Service Discovery Protocol)를 이용하여 장치나 서비스를 찾는 과정과 관리자 입장에선 메시 형태로 형성되는 많은 세션들의 관리가 쉽지 않다.
본 발명은 HTTP 방식의 IoT 기기들 간에 데이터 교환 작업을 중앙에 하나의 브로커를 통해 실시하므로 세션의 관리가 쉽고 데이터 교환을 과정도 간단하게 구현할 수 있도록 하는 것이다.
모든 데이터 제공자와 이용자들은 브로커에서 표준화한 방식의 송신과 수신 메시지 프로토콜을 사용하기 때문에, 개별 기기 간에 개별적으로 메시지 통신을 하기 위한 개별적인 프로그램 구현이 필요 없다.
제어 메시지를 받기 위한 장치들은 웹 서버를 실행하고 있어야 하는 부담을 가지지 않고 제공자든 이용자든 모두 클라이언트 기능만 가지면 된다. 메시지 발행자가 브로커로 데이터를 올리며(POST), 브로커는 이 데이터를 캐시하고 있다가 데이터를 폴링(GET)하는 장치에게 보낸다.
이 방식의 경우 명백한 단점이 하나 존재하는데 모든 메시지를 브로커를 통해 폴링 방식으로 가져오기 때문에 긴급한 실시간 메시지 전송이 어렵다. 이러한 특성이 있는 수신 대상 제어 장치와 브로커 간에는 웹소켓을 형성하여 두어 항시 전달(PUSH) 받을 수 있도록 한다.
본 발명은 다양한 프로그램 언어로 구현할 수 있으며, 브로커 프로그램과 IoT 장치용 클라이언트 프로그램으로 구성된다.
본 발명에 따른 프레임워크(framework)는 상수로 정의된 장치의 이름과 데이터 타입을 포함한 브로커의 서비스 포트 번호 등의 값만 바꾸어서 원하는 모든 장치에 프로그램을 다운로드하여 사용할 수 있는 장점이 있다.
이와 같은 메커니즘을 사용하여 IoT 기기 간 통신을 원하는 개발자들은 이 프레임워크 프로그램을 제공 받아 사용함으로서 개발 시간을 단축할 수 있고 인터페이스 표준화도 촉진할 수 있는 효과가 기대된다.
따라서 본 발명에서는 HTTP 방식의 IoT 기기들 간에 데이터 교환작업을 중앙에 하나의 브로커를 통해 실시함으로써, 세션의 관리가 쉽고 데이터 교환하는 과정도 간단하게 구현할 수 있는 레스트 브로커를 이용한 IoT 데이터 전송 프레임워크와 이를 통한 데이터 전송 방법을 제시하고자 한다.
다음으로 본 발명의 기술분야에 존재하는 선행기술에 대하여 간단하게 설명하고, 이어서 본 발명이 상기 선행기술에 비해서 차별적으로 이루고자 하는 기술적 사항에 대해서 기술하고자 한다.
한국공개특허 제2020-0130763호(2020.11.20.)는 파스(PaaS) 기반의 빅데이터 수집 서비스 브로커를 포함한 빅데이터 수집 장치에 관한 것으로, 이종의 빅데이터 클라우드로부터 빅데이터를 수집하고, 수집된 빅데이터를 파스로 제공하는 빅데이터 수집 서비스 브로커 및 빅데이터를 수집하고 데이터분산처리시스템으로 이관하는 기능을 갖는 어댑터를 포함한다.
상기 어댑터는, 웹문서로부터 수집된 데이터를 상기 데이터분산처리시스템으로 이관하는 기능을 제공하는 웹문서 어댑터; 및 레스트 응용프로그램인터페이스(API)를 통해 수집된 데이터를 상기 분산파일시스템으로 이관하는 레스트 응용프로그램인터페이스어댑터를 더 포함한다.
이상에서 보듯이 한국공개특허 제2020-0130763호는 빅데이터 수집 브로커에서 빅데이터 수집하고, 이를 데이터분산처리시스템으로 이관하는데 레스트 API를 사용하는 것이나, 이는 본 발명에서 HTTP 방식의 IoT 기기들 간에 데이터 교환작업을 중앙에 하나의 레스트 브로커를 통해 실시함으로써, 세션의 관리가 쉽고 데이터 교환하는 과정도 간단하게 구현할 수 있는 기술적 특징과 분명한 차이가 있다.
또한 한국등록특허 제2093314호(2020.03.19.)는 MQTT 프로토콜을 이용한 메시지 전달 시스템에 관한 것으로, MQTT 메시지 발행을 요청한 제1전자 장치에 부여된 고유 식별정보를 이용하여 상기 제1전자 장치에 대한 제1고유 토픽을 생성하고, 상기 생성된 제1고유 토픽을 포함하는 제1MQTT 메시지를 생성하여 전송하는 서비스 제공 서버 및 상기 서비스 제공 서버로부터 전송되는 제1MQTT 메시지를 수신하여 상기 제1MQTT 메시지를 구독하는 제2전자 장치가 수신 가능하도록 중계하는 MQTT 브로커를 포함한다.
상기 한국등록특허 제2093314호는 MQTT 브로커를 통해서 메시지를 전달하고자 하는 것으로, 본 발명의 HTTP 방식의 IoT 기기들 간에 데이터 교환작업을 중앙에 하나의 레스트 브로커를 통해 실시함으로써, 세션의 관리가 쉽고 데이터 교환하는 과정도 간단하게 구현할 수 있는 기술적 특징과 분명한 차이가 있다.
또한 레스트 API를 사용하여 MQTT 브로커를 통합하여 구성하는 방법이 기존에 제시되어 있으나, 이는 MQTT 브로커가 레스트 API를 사용하여 애플리케이션/모바일 통합을 지원하는 구조이다. 여기서 레스트 API는 애플리케이션과 서버 간의 상호 작용을 허용하여 제품 기능을 향상하고 필요할 때 필요한 위치에 데이터를 가져와 전체적으로 잘 연결된 생태계를 생성하는 역할을 한다.
그러나 본 발명은 HTTP 방식의 IoT 기기들 간에 데이터 교환작업을 중앙에 하나의 레스트 브로커를 통해 실시함으로써, 세션의 관리가 쉽고 데이터 교환하는 과정도 간단하게 구현할 수 있는 방법을 제시한다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 레스트 브로커를 이용한 IoT 데이터 전송 프레임워크를 제시하는 것을 그 목적으로 한다.
또한 본 발명은 상기 제시한 IoT 데이터 전송 프레임워크에서 IoT 데이터를 전송하는 방법을 제시하는 것을 또 다른 목적으로 한다.
또한 본 발명은 HTTP 방식의 IoT 기기들 간에 데이터 교환 작업을 중앙에 하나의 브로커를 통해 실시함으로써, 세션의 관리가 쉽고 데이터 교환을 과정도 간단하게 구현할 수 있는 레스트 브로커를 이용한 IoT 데이터 전송 프레임워크와 이를 통한 데이터 전송 방법을 제시하는 것을 또 다른 목적으로 한다.
또한 본 발명은 레스트 HTTP 기반의 메시지 전송이 송수신자간에 1:1로 이루어지기 때문에 SSDP를 이용하여 장치나 서비스를 찾는 과정과 관리자 입장에선 메시 형태로 형성되는 많은 세션들의 관리가 쉽지 않은 문제를 해결하는 것을 목적으로 한다.
또한 본 발명은 모든 데이터 제공자(IoT 기기)와 이용자들은 브로커에서 표준화한 방식의 송신과 수신 메시지지 프로토콜을 사용하기 때문에, 개별 기기 간에 개별적으로 메시지 통신을 위한 개별적인 프로그램 구현이 필요 없도록 하는 것을 목적으로 한다.
또한 본 발명은 제어 메시지를 받기 위한 장치들은 웹 서버를 실행하고 있어야 하는 부담을 가지지 않고 제공자든 이용자든 모두 클라이언트 기능만 가지면 되도록 하는 것을 목적으로 한다.
또한 본 발명은 메시지 발행자가 브로커로 데이터를 올리며(POST), 브로커는 이 데이터를 캐시하고 있다가 데이터를 폴링(GET)하는 이용자 제어장치에게 보내는 방식은 긴급한 실시간 메시지 전송이 어려우므로 수신 대상 제어 장치와 브로커 간에는 웹소켓을 형성하여 항시 전달(PUSH) 받을 수 있도록 하는 것을 목적으로 한다.
본 발명은 상수로 정의된 장치의 이름과 데이터 타입을 포함한 브로커의 서비스 포트 번호 등의 값만 바꾸어서 원하는 모든 장치에서 동일한 프로그램을 사용할 수 있도록 하는 것을 목적으로 한다.
또한 본 발명은 IoT 기기 간 통신을 원하는 개발자들은 이 프레임워크 프로그램을 제공 받아 사용함으로서 개발 시간을 단축할 수 있고 인터페이스 표준화도 촉진할 수 있도록 하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 시스템은, 복수의 IoT 기기; 복수의 이용자 제어장치; 및 상기 복수의 IoT 기기들 간 혹은 상기 복수의 IoT 기기들 각각과 상기 복수의 이용자 제어장치들 각각 간에 데이터 교환 작업을 수행하는 레스트 브로커;를 포함하는 것을 특징으로 한다.
상기 복수의 IoT 기기들은 상기 레스트 브로커에서 표준화한 방식의 송신과 수신 HTTP 메시지 프로토콜을 사용하며, 개별 상기 IoT 기기들 간에 별도의 개별적인 메시지 통신 수단을 구현할 필요가 없어, 세션의 관리와 데이터 교환을 상기 레스트 브로커를 통해서 수행하는 것을 특징으로 한다.
상기 복수의 IoT 기기와 상기 복수의 이용자 제어장치는 모두 클라이언트 기능만으로 제어 메시지를 송수신할 수 있으며, 상기 복수의 IoT 기기가 메시지 발행자로서, 상기 레스트 브로커에 데이터를 올리면(POST), 상기 레스트 브로커는 상기 데이터를 캐시하고 있다가 상기 데이터를 폴링(GET)하는 이용자 제어장치에게 송신하는 경우, 모든 메시지를 상기 레스트 브로커를 통해 폴링 방식으로 가져오기 때문에 긴급한 실시간 메시지 전송이 어려운 점을 해결하기 위해서, 수신대상 상기 이용자 제어장치와 상기 레스트 브로커 간에는 웹 소켓을 형성하여 항시 전달(PUSH) 받을 수 있도록 하는 것을 특징으로 한다.
또한 상기 레스트 브로커를 이용한 IoT 데이터 전송 시스템은, 상기 레스트 브로커 프로그램과 상기 복수의 IoT 기기 및 이용자 제어장치용 클라이언트 프로그램을 포함하며, 상수로 정의된 상기 IoT 기기의 이름과 데이터 타입을 포함한 상기 레스트 브로커의 서비스 포트 번호의 값만 바꾸어 원하는 상기 복수의 IoT 기기 및 상기 이용자 제어장치에 동일한 클라이언트 프로그램을 설치할 수 있는 것을 특징으로 한다.
상기 복수의 IoT 기기 혹은 상기 복수의 이용자 제어장치는, 클라이언트 장치로서, SSDP 프로토콜을 사용하여 상기 레스트 브로커의 IP정보를 찾고, 상기 레스트 브로커에게 상기 클라이언트 장치가 시작했음을 알리고 필요한 데이터베이스 테이블을 만들도록 요청하며, 상기 데이터를 수집하여 JSON 형식의 데이터를 만들고, HTTP 프로토콜을 사용하여 상기 데이터를 상기 레스트 브로커로 올리며(POST), 상기 레스트 브로커를 통해 상기 데이터가 도착했으면 상기 데이터를 받아오며(GET), JSON 형식의 상기 데이터를 파싱하고 해당 동작을 실시하고 그 결과를 통보하며, 상기 POST 데이터 송신 시 부가정보를 발견하면 상기 부가정보를 받으며(GET), 상기 JSON 형식의 부가정보를 파싱하여 상기 복수의 IoT 기기의 동작 구성정보를 업데이트하는 것을 포함하는 것을 특징으로 한다.
상기 레스트 브로커는, 데이터베이스 이용자가 테이블 생성 요청을 하는 경우 이를 만들며, 상기 데이터베이스에는 상기 복수의 IoT 기기가 상기 복수의 이용자 제어장치 중 하나에게 상기 데이터를 보내는 항목과 반대로 상기 이용자 제어장치가 상기 IoT 기기로 보내올 상기 데이터를 저장하는 제어항목을 만들며, 상기 데이터베이스를 이용하는 상기 IoT 기기가 요청 시 상기 데이터베이스의 구성정보를 제공하며, 상기 IoT 기기가 보내주는(POST) 모든 상기 검침 데이터를 받아 검침 테이블에 캐시하며, 상기 이용자 제어장치가 상기 검침 데이터를 요청하면 상기 검침 테이블에 캐시했던 상기 데이터를 꺼내 보내주며, 상기 이용자 제어장치가 보내주는(POST) 모든 제어 데이터를 받아 제어 테이블에 캐시하며, 상기 이용자 제어장치가 상기 제어 데이터를 폴링하면 제어 테이블에 캐시 했던 상기 제어 데이터를, 상기 이용자 제어장치가 검침 데이터를 보내오면 응답 메시지에 상기 제어 데이터를 동봉하여 보낼 수 있거나, 상기 이용자 제어장치가 상기 검침 데이터를 보내오면 응답 메시지에 "계속" 이라는 메시지를 보내서 상기 이용자 제어장치가 상기 레스트 브로커로 상기 제어 데이터를 폴링하도록 유도하며, 사전에 상기 이용자 제어장치에게 샘플링정보를 상기 제어 메시지로 전송할 수 있으며, 샘플링 주기를 인식하고 있는 상기 이용자 제어장치는 폴링 시점에 브로커에게 상기 제어 메시지를 폴링하여 캐시되었던 상기 제어 메시지를 전송받고, 상기 레스트 브로커와 상기 이용자 제어장치는 사전에 웹소켓을 열어 이를 항시 유지하고 있으며 상기 이용자 제어장치가 상기 제어 메시지를 보내오는 경우 즉시 바로 전달하거나, 상기 이용자 제어장치는 상기 검침 데이터 또는 상기 제어 데이터의 폴링 시간을 상황에 따라 수시로 변경할 수 있으며, 상기 IoT 기기 또는 상기 이용자 제어장치는 정해진 시점에 레스트 브로커와 연결하며 그 외 시간에는 슬립하는 것을 특징으로 한다.
상기 이용자 제어장치는, 부팅시 상기 레스트 브로커에게 연결하여 상기 이용자 제어장치의 데이터베이스 구성정보를 획득하고, 상기 레스트 브로커 데이터베이스에 캐시된 검침 데이터를 원하는 시점에 요청받아 사용하며, 상기 이용자 제어장치가 보낼 제어 데이터를 만들어 원하는 시점에 상기 레스트 브로커로 발송하고, 제어 명령은 상기 레스트 브로커를 통해 상기 이용자 제어장치에게 최종적으로 전달되고 상기 이용자 제어장치가 수행한 액션의 결과를 통보받는 것을 특징으로 한다.
한편, 본 발명의 또 다른 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법은, 레스트 브로커를 통해서, 복수의 IoT 기기들 간 혹은 상기 복수의 IoT 기기들 각각과 복수의 이용자 제어장치들 각각 간에 데이터 교환 작업을 수행하는 단계;를 포함하는 것을 특징으로 한다.
이상에서와 같이 본 발명의 레스트 브로커를 이용한 IoT 데이터 전송 프레임워크는 HTTP 방식의 IoT 기기들 간에 데이터 교환작업을 중앙에 하나의 브로커를 통해 실시하므로 세션의 관리가 쉽고 데이터 교환 과정도 간단하게 구현할 수 있는 장점이 있다.
또한 본 프레임워크은 상수로 정의된 장치의 이름과 데이터 타입을 포함한 브로커의 서비스 포트 번호 등의 값만 바꾸어서 원하는 모든 이용자 제어장치에 동일한 프로그램을 사용할 수 있는 장점이 있다.
이와 같은 본 발명에 의한 메카니즘을 사용하여 IoT 기기 간 통신을 원하는 개발자들은 이 프레임워크 프로그램을 제공받아 사용함으로서 개발 시간을 단축할 수 있고 인터페이스 표준화도 촉진할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에서 이용자 제어장치가 IoT 기기로부터 검침 데이터를 가져오는 폴링동작에 대한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에서 이용자 제어장치가 IoT 기기로 제어 데이터를 보내는 포스트동작에 대한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에서 센싱과 제어 기능이 모두 있는 장치의 경우 샘플링 동작 및 제어 데이터 비동기 전송에 대한 처리 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에서 URL 형식을 토대로 데이터 및 구성 정보를 처리하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 시스템에서 IoT 기기, 레스트 브로커 및 사용자 제어장치의 하드웨어 구조를 보인 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에 대한 바람직한 실시 예를 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 또한 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는 것이 바람직하다.
MQTT는 브로커를 통해 IoT 기기들이 N:N으로 통신할 수 있다. 그에 반해 레스트 HTTP는 기기들이 1:1로 통신한다. 따라서 1:N이나 N:N 통신 경로를 만들기 위해 매우 많은 세션을 만들고 통제하기 어려운 점이 있다.
이에 본 발명에서는 레스트 HTTP라 해도 중간에 브로커를 하나 두어 사용하는 메시지 교환 시스템을 구상하게 되었다. 레스트 브로커에 IoT 기기별로 데이터베이스를 두며 이 데이터베이스를 미리 정해두는 것이 아니라 동적으로 구성시킨다. 이용자는 동적으로 구성된 데이터베이스 구성정보를 레스트 브로커에게 물어서 알게 된다. 단, 이용자 제어장치와 제공자인 IoT 기기는 기기의 이름 내지 UUID 하나는 고정적(implicitly)으로 알고 있다. 이 정보만 알면 다른 모든 것은 레스트 브로커에 만들어져 있고 검색을 통해 몇 가지 장치(IoT 기기 및 이용자 제어장치)가 켜져서 네트워크에 붙었는지를 알아내서 정보를 주고받을 수 있는 시스템을 설계하였다.
도 1은 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에 대한 개념도이다.
도 1에 도시한 바와 같이, 본 발명에 따른 레스트 브로커를 이용한 IoT 데이터 전송 시스템은 1) 복수의 IoT 기기 간에 센싱(검침) 데이터를 송수신하는 프레임워크, 2) IoT 기기와 레스트 브로커 사이에서 데이터를 송수신하는 프레임워크, 3) IoT 기기와 이용자 제어장치 간에 데이터를 송수신하는 프레임워크, 4) IoT 기기와 SSDP 서버 사이에 정보를 송수신하는 프레임워크를 포함한다.
여기에서 IoT 기기(IoT device)는 복수개가 네트워크를 통해서 상호 연결되거나 이용자 제어장치와 상기 레스트 브로커를 통해서 메시지를 주고 받을 수 있다.
또한 SSDP 서버는 실시간으로 기기의 정보검색이 가능하도록 하는 것으로, UDP(User Datagram Protocol) 통신을 사용하고 통신구조는 HTTP(Hyper-Text Transfer Protocol)와 비슷하다. SSDP의 통신방식은 UPnP 프로토콜을 지원하는 디바이스에서 자신의 디바이스와 서비스를 광고하기 위해 검색 기능 메시지를 멀티캐스팅 방식으로 전달하는 광고 메시지 전달방식과 검색방식인 M-search 통신의 2가지로 분류된다.
SSDP 패킷의 기본구조는 IP Address, UDP, Multicast, SSDP M-Search, SSDP Notify로 구성된다. IP Address는 패킷 송수신을 위한 기기의 주소로 설정하고 Multicast의 UDP 통신으로 SSDP M-Search 또는 SSDP Notify를 전송한다.
이상에서 설명한 각 프레임워크에 대해서 이하에서 자세하게 설명하고자 한다.
도 2는 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에서 이용자 제어장치가 IoT 기기로부터 검침 데이터를 가져오는 폴링동작에 대한 흐름도이다.
도 2에 도시된 바와 같이, IoT 디바이스는 SSDP 서버로 레스트 브로커에 대한 탐색(discovery(Rest Broker))을 수행하여 레스트 브로커에 대한 통보(notify(Rest Broker)를 받게 된다. 이는 부팅 과정에서 실행된다.
다음으로 IoT 기기는 레스터 브로커에게 IoT 기기의 정보를 등록하고(post_device_start(name, serial)), 레스트 브로커는 데이터베이스 테이블을 생성한다. 다음으로 이용자 제어장치는 등록된 IoT 기기 정보를 통해서 IoT 기기를 생성하게 된다(get_iot_dev_Info).
또한 IoT 기기에서 생성한 검침 데이터를 샘플링하여 레스트 브로커가 데이터베이스에 쓰기를 수행하고(post_sense(name, serial)), 다시 이용자 제어장치에서 해당 검침 데이터에 대한 읽기를 수행한다(get_sense(name, serial)).
마지막으로 IoT 기기에서 레스트 브로커에게 post_device_shutdown(name, serial)을 전송함으로써, 셧다운하는 과정을 수행한다.
도 3은 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에서 이용자 제어장치가 IoT 기기로 제어 데이터를 보내는 포스트동작에 대한 흐름도이다.
도 3에 도시된 바와 같이, 비긴급성 제어와 긴급성 제어의 과정이 있는에, 비긴급성 제어는, IoT 기기 정보를 레스트 브로커에 등록하고, 이용자 제어장치가 이를 발견(discovery)하는 과정이다.
IoT 기기는 메시지의 발행자로서, IoT 기기의 정보를 레스트 브로커에 등록한다(post_device_info(name, serial)). 다음으로 레스트 브로커는 해당 IoT 기기에 대한 데이터베이스 테이블을 생성한다. 이어서 이용자 제어장치에서 해당 데이터베이스 테이블을 가져간다(get_iot_dev_info).
또한 이용자 제어장치가 제어 데이터를 IoT 기기에 넘겨주는 방식을 기재하고자 한다. 이를 위해 이용자 제어장치가 제어 데이터를 레스트 브로커에 등록하면(post_control(name, serial)), 레스트 브로커는 제어 데이터를 데이터베이스에 쓰기 동작을 통해서 기록한다. 다음으로 IoT 기기는 레스트 브로커로부터 해당 제어 데이터를 읽기 동작으로 가져가서(get_control(name, serial)) 제어동작을 수행한다. 상기 제어 데이터는 IoT 기기의 검침 데이터에 대한 샘플링 주기, 명령 등이 될 수 있다.
한편, 긴급성 제어를 수행하는 방법에 대해서 기재하고자 한다. 먼저, IoT 기기와 레스트 브로커는 서로 웹소켓(web socket)을 만든다. 이 상태에서 이용자 제어장치가 제어 데이터를 레스트 브로커에 등록하면, 레스트 브로커는 즉시 IoT 기기로 해당 제어 데이터를 전송한다(send_control(name, serial)). 여기서 제어 데이터는 IoT 기기의 검침에 대한 샘플링 데이터와 명령 등이다.
도 4는 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에서 센싱과 제어 기능이 모두 있는 장치의 경우 샘플링 동작 및 제어 데이터 비동기 전송에 대한 처리 흐름도이다.
도 4에 도시된 바와 같이, 센싱과 제어 기능이 모두 있는 기기의 경우, IoT 기기(발행자)의 입장에서, SSDP 서버에 웹소켓 프록시의 발견을 요청하고, 그에 따라 SSDP 서버로부터 결과를 통보 받는다.
샘플링 동작의 경우, 먼저 이용자 제어장치에서 샘플링 동작을 포함한 구성정보를 레스트 브로커에 등록하면(post(control-config)), IoT 기기는 해당 구성정정보를 가져가서 설정하게 된다(get(control-config)).
또한 데이터 샘플링은 반복적으로 수행되는데, 먼저 IoT 기기에서 검침(sensing) 데이터를 레스트 브로커에 등록하면(Post(data)), 이용자 제어장치는 해당 데이터를 레스터 브로커에서 가져올 수 있다(get(data)).
상기 데이터의 송수신은 IoT 기기에서 샘플링 주기마다 검침 데이터를 레스트 브로커에 지속적으로 전송하여 데이터베이스에 쓰기 동작을 수행하도록 하고, 이용자 제어장치는 필요할때마다 레스트 브로커를 통해서 데이터베이스로부터 해당 검침 데이터를 읽어갈 수 있다.
한편, 제어 데이터는 비동기적으로 전송하는 것이 가능하다. 이용자 제어장치가 제어정보를 레스트 브로커에 등록하면(post(control), 이에 응답하여 IoT 기기가 중간에 데이터를 등록하더라도(post(data)), 해당 제어정보에 대한 응답을 IoT 기기로 전송한다(response(control)). 다음으로 IoT 기기는 상기 응답에 따라 해당 제어정보를 가져간다(get(control)). 이어서 레스트 브로커는 응답을 다시 IoT 기기로 전송한다(response(control)).
도 5는 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템에서 URL 형식을 토대로 데이터 및 구성 정보를 처리하는 흐름도이다.
IoT 기기는 검침 데이터(예: 온도 30도)를 레스트 브로커에 등록할 때, /post/data/_dev_name/dev_id/{"temperature": "30" }와 같은 URL을 레스트 브로커로 전송하면, 레스트 브로커는 이를 데이터베이스에 등록한다. 다음으로 이용자 제어장치에서는 "/get/data/_dev_name/dev_id"라는 URL을 통해서 해당 IoT 기기의 device ID에 해당하는 검침 데이터를 가져가게 된다.
또한 구성(config)정보의 경우, 이용자 제어장치에서 /post/config/_dev_name/dev_id/{"sampling": 2 }}와 같은 URL을 통해서 구성정보를 레스트 브로커에 등록하면, IoT 기기는 레스트 브로커에 접속하여 "/get/config/_dev_name/dev_id"의 URL을 이용하여 dev_id에 해당하는 구성정보를 가져가 설정하게 된다.
도 6은 본 발명의 일 실시예에 따른 레스트 브로커를 이용한 IoT 데이터 전송 시스템에서 IoT 기기, 레스트 브로커 및 사용자 제어장치의 하드웨어 구조를 보인 도면이다.
도 6에 도시된 바와 같이, IoT 기기(20), 레스트 브로커(10) 및 이용자 제어장치(20)의 하드웨어 구조에서, 프로세서(100)가 메모리(200)에 상기 IoT 기기(20), 레스트 브로커(10) 및 이용자 제어장치(20)의 프로그램을 저장하고 실행함으로써, 레스트 브로커를 이용한 IoT 데이터 전송 시스템을 구성하게 된다.
우선, 상기 레스트 브로커(10)는 상기 복수의 IoT 기기들(20) 간 혹은 상기 복수의 IoT 기기들(20) 각각과 상기 복수의 이용자 제어장치들(30) 각각 간에 데이터 교환 작업을 수행한다.
또한 상기 복수의 IoT 기기들(20)은 상기 레스트 브로커(10)에서 표준화한 방식의 송신과 수신 HTTP 메시지 프로토콜을 사용하며, 개별 상기 IoT 기기들(20) 간에 별도의 개별적인 메시지 통신 수단을 구현할 필요가 없어, 세션의 관리와 데이터 교환을 상기 레스트 브로커를 통해서 수행한다.
상기 복수의 IoT 기기(20)와 상기 복수의 이용자 제어장치(30)는 모두 클라이언트 기능만으로 제어 메시지를 송수신할 수 있으며, 상기 복수의 IoT 기기(20)가 메시지 발행자로서, 상기 레스트 브로커(10)에 데이터를 올리면(POST), 상기 레스트 브로커(10)는 상기 데이터를 캐시하고 있다가 상기 데이터를 폴링(GET)하는 이용자 제어장치(30)에게 송신하는 경우, 모든 메시지를 상기 레스트 브로커(10)를 통해 폴링 방식으로 가져오기 때문에 긴급한 실시간 메시지 전송이 어려운 점을 해결하기 위해서, 수신대상 상기 이용자 제어장치(30)와 상기 레스트 브로커(10) 간에는 웹소켓을 형성하여 항시 전달(PUSH) 받을 수 있도록 한다.
상기 프로세서(100)는, 상기 레스트 브로커 혹은 상기 복수의 IoT 기기 및 이용자 제어장치로 사용됨에 따라, 상기 레스트 브로커 프로그램과 상기 복수의 IoT 기기 및 이용자 제어장치용 클라이언트 프로그램을 실행하도록 구성되며, 상수로 정의된 상기 IoT 기기의 이름과 데이터 타입을 포함한 상기 레스트 브로커의 서비스 포트 번호의 값만 바꾸어 원하는 상기 복수의 IoT 기기 및 상기 이용자 제어장치에 동일한 클라이언트 프로그램을 설치할 수 있다.
상기 복수의 IoT 기기 혹은 상기 복수의 이용자 제어장치는, 클라이언트 장치로서, 상기 프로세서(100)에서, SSDP 프로토콜을 사용하여 상기 레스트 브로커의 IP정보를 찾고, 상기 레스트 브로커에게 상기 클라이언트 장치가 시작했음을 알리고 필요한 데이터베이스 테이블을 만들도록 요청하며, 상기 데이터를 수집하여 JSON 형식의 데이터를 만들고, HTTP 프로토콜을 사용하여 상기 데이터를 상기 레스트 브로커로 올리며(POST), 상기 레스트 브로커를 통해 상기 데이터가 도착했으면 상기 데이터를 받아오며(GET), JSON 형식의 상기 데이터를 파싱하고 해당 동작을 실시하고 그 결과를 통보하며, 상기 POST 데이터 송신 시 부가정보를 발견하면 상기 부가정보를 받으며(GET), 상기 JSON 형식의 부가정보를 파싱하여 상기 복수의 IoT 기기의 동작 구성정보를 업데이트하는 것을 포함하는 동작을 수행하도록 구성된다.
상기 레스트 브로커의 프로세서(100)는, 데이터베이스 이용자가 테이블 생성 요청을 하는 경우 이를 만들며, 상기 데이터베이스에는 상기 복수의 IoT 기기가 상기 복수의 이용자 제어장치 중 하나에게 상기 데이터를 보내는 항목과 반대로 상기 이용자 제어장치가 상기 IoT 기기로 보내올 상기 데이터를 저장하는 제어항목을 만들며, 상기 데이터베이스를 이용하는 상기 IoT 기기가 요청 시 상기 데이터베이스의 구성정보를 제공하며, 상기 IoT 기기가 보내주는(POST) 모든 상기 검침 데이터를 받아 검침 테이블에 캐시하며, 상기 이용자 제어장치가 상기 검침 데이터를 요청하면 상기 검침 테이블에 캐시했던 상기 데이터를 꺼내 보내주며, 상기 이용자 제어장치가 보내주는(POST) 모든 제어 데이터를 받아 제어 테이블에 캐시하며, 상기 이용자 제어장치가 상기 제어 데이터를 폴링하면 제어 테이블에 캐시 했던 상기 제어 데이터를, 상기 이용자 제어장치가 검침 데이터를 보내오면 응답 메시지에 상기 제어 데이터를 동봉하여 보낼 수 있거나, 상기 이용자 제어장치가 상기 검침 데이터를 보내오면 응답 메시지에 "계속" 이라는 메시지를 보내서 상기 이용자 제어장치가 상기 레스트 브로커로 상기 제어 데이터를 폴링하도록 유도하며, 사전에 상기 이용자 제어장치에게 샘플링정보를 상기 제어 메시지로 전송할 수 있으며, 샘플링 주기를 인식하고 있는 상기 이용자 제어장치는 폴링 시점에 브로커에게 상기 제어 메시지를 폴링하여 캐시되었던 상기 제어 메시지를 전송받고, 상기 레스트 브로커와 상기 이용자 제어장치는 사전에 웹소켓을 열어 이를 항시 유지하고 있으며 상기 이용자 제어장치가 상기 제어 메시지를 보내오는 경우 즉시 바로 전달하거나, 상기 이용자 제어장치는 상기 검침 데이터 또는 상기 제어 데이터의 폴링 시간을 상황에 따라 수시로 변경할 수 있으며, 상기 IoT 기기 또는 상기 이용자 제어장치는 정해진 시점에 레스트 브로커와 연결하며 그 외 시간에는 슬립하는 동작을 수행하도록 구성된다.
한편, 상기 이용자 제어장치의 프로세서(100)는, 부팅시 상기 레스트 브로커에게 연결하여 상기 이용자 제어장치의 데이터베이스 구성정보를 획득하고, 상기 레스트 브로커 데이터베이스에 캐시된 검침 데이터를 원하는 시점에 요청받아 사용하며, 상기 이용자 제어장치가 보낼 제어 데이터를 만들어 원하는 시점에 상기 레스트 브로커로 발송하고, 제어 명령은 상기 레스트 브로커를 통해 상기 이용자 제어장치에게 최종적으로 전달되고 상기 이용자 제어장치가 수행한 액션의 결과를 통보받는 동작을 수행하도록 구성된다.
사용자 인터페이스(300)는 IoT 기기, 레스트 브로커 및 이용자 제어장치에서 각각 다른 형태로 존재하는 것이 바람직하다. 예를 들어, IoT 기기에서는 사용자 인터페이스가 시리얼 인터페이스를 포함하여 구성될 수도 있다.
데이터베이스 인터페이스(400)는 레스트 브로커(10)에서 데이터베이스 테이블을 생성하기 위해 반드시 필요한 수단이다.
네트워크 인터페이스(500)는 IoT 기기, 레스트 브로커 및 이용자 제어장치에서 유선 혹은 무선통신을 지원하도록 구성된다.
웹서버(600)는 레스트 브로커(10)에서 구비되어, 이용자 제어장치에서 웹기반으로 접근하여 서비스를 신청하거나 구성할 수 있도록 하는 것이 가능하다.
본 발명에 따른 레스트 브로커를 이용한 IoT 데이터 전송 시스템의 각 장치는 Non-OS(python), Linux, Window 등을 사용할 수 있다. 특히, IoT 기기에 Python 실행 환경을 설치하고, IoT 기기용 클라이언트 프로그램을 설치하여, 상기 IoT 기기용 클라이언트 프로그램의 동작 구성정보를 설정하여 사용할 수 있다.
또한 상기 레스트 브로커에는 Python 실행 환경이 설치되어 있으며, Proxy 서버용 서버 프로그램이 설치되어 있다. Proxy 서버용 서버 프로그램의 동작 구성정보를 설정하며, 클라이언트로서 IoT 기기, 이용자 제어장치와 상기 레스트 브로커 간에 상호 연동을 수행하도록 한다.
본 발명에 따른 레스트 브로커를 이용한 IoT 데이터 전송 시스템은 IoT 기기, 레스트 브로커, 이용자 제어장치는 각각 도 6에 도시된 구조를 일부 변형하거나 그대로 사용하여 해당 동작을 수행하는 프로그램과 구성정보를 메모리에 저장하여 상기 프로세서가 이를 참조하여 동작을 실행하도록 함으로써 구현할 수 있다.
이상에서 설명한 바와 같이, 본 발명의 레스트 브로커를 이용한 IoT 데이터 전송 프레임워크는 HTTP 방식의 IoT 기기들 간에 데이터 교환작업을 중앙에 하나의 브로커를 통해 실시하므로 세션의 관리가 쉽고 데이터 교환 과정도 간단하게 구현할 수 있는 장점이 있다.
또한 본 프레임워크은 상수로 정의된 장치의 이름과 데이터 타입을 포함한 브로커의 서비스 포트 번호 등의 값만 바꾸어서 원하는 모든 이용자 제어장치에 동일한 프로그램을 사용할 수 있는 장점이 있다.
이와 같은 본 발명에 의한 메카니즘을 사용하여 IoT 기기 간 통신을 원하는 개발자들은 이 프레임워크 프로그램을 제공받아 사용함으로서 개발 시간을 단축할 수 있고 인터페이스 표준화도 촉진할 수 있는 효과가 있다.
상기에서는 본 발명에 따른 바람직한 실시예를 위주로 상술하였으나, 본 발명의 기술적 사상은 이에 한정되는 것은 아니며 본 발명의 각 구성요소는 동일한 목적 및 효과의 달성을 위하여 본 발명의 기술적 범위 내에서 변경 또는 수정될 수 있을 것이다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
10 : 레스트 브로커 20 : IoT 기기
30: 이용자 제어장치 40 : SSDP 서버
50 : 데이터베이스 100 : 프로세서
200 : 메모리 300 : 사용자 인터페이스
400 : 데이터베이스 인터페이스 500 : 네트워크 인터페이스
600 : 웹서버

Claims (14)

  1. 복수의 IoT 기기;
    적어도 하나 이상의 이용자 제어장치; 및
    상기 복수의 IoT 기기들 간, 혹은 상기 복수의 IoT 기기들 각각과 상기 복수의 이용자 제어장치들 각각 간에 데이터 교환 작업을 수행하는 레스트 브로커;를 포함하며,
    상기 복수의 IoT 기기들은, 상기 레스트 브로커에서 표준화한 방식의 송신과 수신 HTTP 메시지 프로토콜을 사용하여, 세션의 관리와 데이터 교환을 상기 레스트 브로커를 통해서 수행하며,
    상기 복수의 IoT 기기와 상기 복수의 이용자 제어장치는, 모두 클라이언트 기능만으로 제어 메시지를 송수신할 수 있으며,
    상기 복수의 IoT 기기가 메시지 발행자로서, 상기 레스트 브로커에 데이터를 올리면(POST), 상기 레스트 브로커는 상기 데이터를 캐시하고 있다가 상기 데이터를 폴링(GET)하는 이용자 제어장치에게 송신하며,
    상기 레스트 브로커를 통해 상기 데이터를 폴링 방식으로 가져오기 때문에 긴급한 실시간 메시지 전송이 어려운 경우, 수신대상 상기 이용자 제어장치와 상기 레스트 브로커 간에는 웹소켓을 형성하여, 모든 메시지를 항시 전달(PUSH) 받을 수 있도록 하는 것을 포함하는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 시스템.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 레스트 브로커를 이용한 IoT 데이터 전송 시스템은,
    레스트 브로커 프로그램과 상기 복수의 IoT 기기 및 이용자 제어장치용 클라이언트 프로그램을 포함하며,
    상수로 정의된 상기 IoT 기기의 이름과 데이터 타입을 포함한 상기 레스트 브로커의 서비스 포트 번호의 값만 바꾸어 원하는 상기 복수의 IoT 기기 및 상기 이용자 제어장치에 동일한 클라이언트 프로그램을 설치할 수 있는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 시스템.
  5. 청구항 1에 있어서,
    상기 복수의 IoT 기기 혹은 상기 복수의 이용자 제어장치는, 클라이언트 장치로서,
    a1. SSDP 프로토콜을 사용하여 상기 레스트 브로커의 IP정보를 찾고,
    b1. 상기 레스트 브로커에게 상기 클라이언트 장치가 시작했음을 알리며,
    c1. 상기 데이터를 수집하여 JSON 형식의 데이터를 만들고,
    d1. HTTP 프로토콜을 사용하여 상기 데이터를 상기 레스트 브로커로 올리며(POST),
    e1. 상기 레스트 브로커를 통해 상기 데이터가 도착했으면 상기 데이터를 받아오며(GET),
    f1. JSON 형식의 상기 데이터를 파싱하고 해당 동작을 실시하고 그 결과를 통보하며,
    g1. POST 데이터 송신 시 부가정보를 발견하면 상기 부가정보를 받으며(GET),
    h1. 상기 JSON 형식의 부가정보를 파싱하여 상기 복수의 IoT 기기의 동작 구성정보를 업데이트하는 것을 포함하는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 시스템.
  6. 청구항 1에 있어서,
    상기 레스트 브로커는,
    a2. 데이터베이스 이용자가 테이블 생성 요청을 하는 경우 이를 만들며,
    b2. 상기 데이터베이스에는 상기 복수의 IoT 기기가 상기 복수의 이용자 제어장치 중 하나에게 상기 데이터를 보내는 항목과 반대로 상기 이용자 제어장치가 상기 IoT 기기로 보내올 상기 데이터를 저장하는 제어항목을 만들며,
    c2. 상기 데이터베이스를 이용하는 상기 IoT 기기가 요청 시 상기 데이터베이스의 구성정보를 제공하며,
    d2. 상기 IoT 기기가 보내주는(POST) 모든 검침 데이터를 받아 검침 테이블에 캐시하며,
    e2. 상기 이용자 제어장치가 상기 검침 데이터를 요청하면 상기 검침 테이블에 캐시했던 상기 데이터를 꺼내 보내주며,
    f2. 상기 이용자 제어장치가 보내주는(POST) 모든 제어 데이터를 받아 제어 테이블에 캐시하며,
    g2. 상기 이용자 제어장치가 상기 제어 데이터를 폴링하면 제어 테이블에 캐시 했던 상기 제어 데이터를, 상기 이용자 제어장치가 검침 데이터를 보내오면 응답 메시지에 상기 제어 데이터를 동봉하여 보낼 수 있거나, 상기 이용자 제어장치가 상기 검침 데이터를 보내오면 응답 메시지에 "계속" 이라는 메시지를 보내서 상기 이용자 제어장치가 상기 레스트 브로커로 상기 제어 데이터를 폴링하도록 유도하며, 사전에 상기 이용자 제어장치에게 샘플링정보를 제어 메시지로 전송할 수 있으며, 샘플링 주기를 인식하고 있는 상기 이용자 제어장치는 폴링 시점에 브로커에게 상기 제어 메시지를 폴링하여 캐시되었던 상기 제어 메시지를 전송받고, 상기 레스트 브로커와 상기 이용자 제어장치는 사전에 웹소켓을 열어 이를 항시 유지하고 있으며 상기 이용자 제어장치가 상기 제어 메시지를 보내오는 경우 즉시 바로 전달하거나, 상기 이용자 제어장치는 상기 검침 데이터 또는 상기 제어 데이터의 폴링 시간을 상황에 따라 수시로 변경할 수 있으며, 상기 IoT 기기 또는 상기 이용자 제어장치는 정해진 시점에 레스트 브로커와 연결하며 그 외 시간에는 슬립하는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 시스템.
  7. 청구항 1에 있어서,
    상기 이용자 제어장치는,
    a3. 부팅시 상기 레스트 브로커에게 연결하여 상기 이용자 제어장치의 데이터베이스 구성정보를 획득하고,
    b3. 레스트 브로커 데이터베이스에 캐시된 검침 데이터를 원하는 시점에 요청받아 사용하며,
    c3. 상기 이용자 제어장치가 보낼 제어 데이터를 만들어 원하는 시점에 상기 레스트 브로커로 발송하고,
    d3. 제어 명령은 상기 레스트 브로커를 통해 상기 이용자 제어장치에게 최종적으로 전달되고 상기 이용자 제어장치가 수행한 액션의 결과를 통보받는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 시스템.
  8. 레스트 브로커를 통해서, 복수의 IoT 기기들 간 혹은 상기 복수의 IoT 기기들 각각과 복수의 이용자 제어장치들 각각 간에 데이터 교환 작업을 수행하는 단계;를 포함하며,
    상기 복수의 IoT 기기들은, 상기 레스트 브로커에서 표준화한 방식의 송신과 수신 HTTP 메시지 프로토콜을 사용하여, 세션의 관리와 데이터 교환을 상기 레스트 브로커를 통해서 수행하며,
    상기 복수의 IoT 기기와 상기 복수의 이용자 제어장치는, 모두 클라이언트 기능만으로 제어 메시지를 송수신할 수 있으며,
    상기 복수의 IoT 기기가 메시지 발행자로서, 상기 레스트 브로커에 데이터를 올리면(POST), 상기 레스트 브로커는 상기 데이터를 캐시하고 있다가 상기 데이터를 폴링(GET)하는 이용자 제어장치에게 송신하며,
    상기 레스트 브로커를 통해 상기 데이터를 폴링 방식으로 가져오기 때문에 긴급한 실시간 메시지 전송이 어려운 경우, 수신대상 상기 이용자 제어장치와 상기 레스트 브로커 간에는 웹소켓을 형성하여, 모든 메시지를 항시 전달(PUSH) 받을 수 있도록 하는 것을 포함하는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 방법.
  9. 삭제
  10. 삭제
  11. 청구항 8에 있어서,
    상기 레스트 브로커를 이용한 IoT 데이터 전송 방법은,
    레스트 브로커용 프로그램과 상기 복수의 IoT 기기 및 이용자 제어장치용 클라이언트 프로그램을 통해서, 상수로 정의된 상기 IoT 기기의 이름과 데이터 타입을 포함한 상기 레스트 브로커의 서비스 포트 번호의 값만 바꾸어 원하는 상기 복수의 IoT 기기 및 상기 이용자 제어장치에 동일한 클라이언트 프로그램을 설치할 수 있는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 방법.
  12. 청구항 8에 있어서,
    상기 복수의 IoT 기기 혹은 상기 복수의 이용자 제어장치는, 클라이언트 장치로서,
    a1. SSDP 프로토콜을 사용하여 상기 레스트 브로커의 IP정보를 찾고,
    b1. 상기 레스트 브로커에게 상기 클라이언트 장치가 시작했음을 알리며,
    c1. 상기 데이터를 수집하여 JSON 형식의 데이터를 만들고,
    d1. HTTP 프로토콜을 사용하여 상기 데이터를 상기 레스트 브로커로 올리며(POST),
    e1. 상기 레스트 브로커를 통해 상기 데이터가 도착했으면 상기 데이터를 받아오며(GET),
    f1. JSON 형식의 상기 데이터를 파싱하고 해당 동작을 실시하고 그 결과를 통보하며,
    g1. POST 데이터 송신 시 부가정보를 발견하면 상기 부가정보를 받으며(GET),
    h1. 상기 JSON 형식의 부가정보를 파싱하여 상기 복수의 IoT 기기의 동작 구성정보를 업데이트하는 것을 포함하는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 방법.
  13. 청구항 8에 있어서,
    상기 레스트 브로커에서,
    a2. 데이터베이스 이용자가 테이블 생성 요청을 하는 경우 이를 만들며,
    b2. 상기 데이터베이스에는 상기 복수의 IoT 기기가 상기 복수의 이용자 제어장치 중 하나에게 상기 데이터를 보내는 항목과 반대로 상기 이용자 제어장치가 상기 IoT 기기로 보내올 상기 데이터를 저장하는 제어항목을 만들며,
    c2. 상기 데이터베이스를 이용하는 상기 IoT 기기가 요청 시 상기 데이터베이스의 구성정보를 제공하며,
    d2. 상기 IoT 기기가 보내주는(POST) 모든 검침 데이터를 받아 검침 테이블에 캐시하며,
    e2. 상기 이용자 제어장치가 상기 검침 데이터를 요청하면 상기 검침 테이블에 캐시했던 상기 데이터를 꺼내 보내주며,
    f2. 상기 이용자 제어장치가 보내주는(POST) 모든 제어 데이터를 받아 제어 테이블에 캐시하며,
    g2. 상기 이용자 제어장치가 상기 제어 데이터를 폴링하면 제어 테이블에 캐시 했던 상기 제어 데이터를, 상기 이용자 제어장치가 검침 데이터를 보내오면 응답 메시지에 상기 제어 데이터를 동봉하여 보낼 수 있거나, 상기 이용자 제어장치가 상기 검침 데이터를 보내오면 응답 메시지에 "계속" 이라는 메시지를 보내서 상기 이용자 제어장치가 상기 레스트 브로커로 상기 제어 데이터를 폴링하도록 유도하며, 사전에 상기 이용자 제어장치에게 샘플링정보를 제어 메시지로 전송할 수 있으며, 샘플링 주기를 인식하고 있는 상기 이용자 제어장치는 폴링 시점에 브로커에게 상기 제어 메시지를 폴링하여 캐시되었던 상기 제어 메시지를 전송받고, 상기 레스트 브로커와 상기 이용자 제어장치는 사전에 웹소켓을 열어 이를 항시 유지하고 있으며 상기 이용자 제어장치가 상기 제어 메시지를 보내오는 경우 즉시 바로 전달하거나, 상기 이용자 제어장치는 상기 검침 데이터 또는 상기 제어 데이터의 폴링 시간을 상황에 따라 수시로 변경할 수 있으며, 상기 IoT 기기 또는 상기 이용자 제어장치는 정해진 시점에 레스트 브로커와 연결하며 그 외 시간에는 슬립하는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 방법.
  14. 청구항 8에 있어서,
    상기 이용자 제어장치에서,
    a3. 부팅시 상기 레스트 브로커에게 연결하여 상기 이용자 제어장치의 데이터베이스 구성정보를 획득하고,
    b3. 레스트 브로커 데이터베이스에 캐시된 검침 데이터를 원하는 시점에 요청받아 사용하며,
    c3. 상기 이용자 제어장치가 보낼 제어 데이터를 만들어 원하는 시점에 상기 레스트 브로커로 발송하고,
    d3. 제어 명령은 상기 레스트 브로커를 통해 상기 이용자 제어장치에게 최종적으로 전달되고 상기 이용자 제어장치가 수행한 액션의 결과를 통보받는 것을 특징으로 하는 레스트 브로커를 이용한 IoT 데이터 전송 방법.
KR1020210191984A 2021-12-30 2021-12-30 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템 KR102668939B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210191984A KR102668939B1 (ko) 2021-12-30 2021-12-30 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210191984A KR102668939B1 (ko) 2021-12-30 2021-12-30 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템

Publications (2)

Publication Number Publication Date
KR20230102103A KR20230102103A (ko) 2023-07-07
KR102668939B1 true KR102668939B1 (ko) 2024-05-27

Family

ID=87154849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210191984A KR102668939B1 (ko) 2021-12-30 2021-12-30 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR102668939B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150116344A (ko) * 2014-04-07 2015-10-15 한국전자통신연구원 사물 인터넷 브로커링 방법 및 장치
KR102577985B1 (ko) * 2017-01-03 2023-09-15 한국전자통신연구원 사물인터넷 프로토콜 기반의 긴급상황 서비스 제공 방법

Also Published As

Publication number Publication date
KR20230102103A (ko) 2023-07-07

Similar Documents

Publication Publication Date Title
US11303697B2 (en) Method, apparatus and system for web service management
Mishra Performance evaluation of MQTT broker servers
Bozdag et al. A comparison of push and pull techniques for ajax
US8150978B2 (en) Apparatus and method for managing user interface
Schiekofer et al. REST based OPC UA for the IIoT
CN102859932B (zh) 用于提供消息的方法及装置
US8249100B2 (en) Method and arrangement for providing duplex communications between a client application and a service using an http request/reply channel
Velez et al. IEEE 1451-1-6: Providing common network services over MQTT
Rathod Performance evaluation of restful web services and soap/wsdl web services
Han et al. Extending the devices profile for web services standard using a REST proxy
US20180270331A1 (en) System and method for implementing augmented object members for remote procedure call
Manandhar MQTT based communication in IoT
Krawiec et al. Survey on technologies for enabling real-time communication in the web of things
KR102668939B1 (ko) 레스트 브로커를 이용한 IoT 데이터 전송 방법 및 그 시스템
US20070130312A1 (en) Web service provision apparatus and method and web service request apparatus and method
US10938960B2 (en) System and method for implementing augmented object members for remote procedure call
US20140297763A1 (en) Method of Managing Networked Devices
JP2013522783A (ja) リソース弱(resourceweak)デバイスからコンピュータクライアントにデータを提供するための方法
Steane et al. IOT status communication for home automation
Alrawe et al. RETRACTED ARTICLE: Proxying internet services for internet of things devices
Petrova-Antonova et al. Unified connectivity of IoT devices through abstraction of application protocols
Chen Bluetooth Low Energy Based CoAP Communication in IoT CoAPNonIP: An Architecture Grants CoAP in Wireless Personal Area Network
Klauck Seamless integration of smart objects into the internet using XMPP and mDNS/DNS-SD
Chakravarthi et al. IoT Application Technologies for Constrained Devices
Hemat Study and Comparison of Low Bandwidth IoT Protocols

Legal Events

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