KR20180072918A - 데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템 - Google Patents

데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템 Download PDF

Info

Publication number
KR20180072918A
KR20180072918A KR1020160175882A KR20160175882A KR20180072918A KR 20180072918 A KR20180072918 A KR 20180072918A KR 1020160175882 A KR1020160175882 A KR 1020160175882A KR 20160175882 A KR20160175882 A KR 20160175882A KR 20180072918 A KR20180072918 A KR 20180072918A
Authority
KR
South Korea
Prior art keywords
devices
server
information
transmitting
identifier
Prior art date
Application number
KR1020160175882A
Other languages
English (en)
Other versions
KR101972470B1 (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 KR1020160175882A priority Critical patent/KR101972470B1/ko
Publication of KR20180072918A publication Critical patent/KR20180072918A/ko
Application granted granted Critical
Publication of KR101972470B1 publication Critical patent/KR101972470B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 사물 인터넷상에서 데이터 전송 효율을 높일 수 있는 데이터 전달 장치 및 방법에 관한 것이다. 본 발명의 일 실시 예에 따라 사물 인터넷 네트워크상에서 서버 및 복수 개의 기기 사이에서 데이터를 전달하는 장치는, 상기 복수 개의 기기에 상기 장치의 식별자를 송신하는 송신부; 상기 복수 개의 기기로부터 토픽 정보를 수신하는 수신부; 및 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 클러스터링부를 포함하며, 상기 송신부는 상기 클러스터링부의 클러스터링 결과를 상기 서버로 송신할 수 있다.

Description

데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템{APPARATUS AND METHOD FOR TRANSMITTING DATA, AND IOT SYSTEM EMPLOYING THE SAME}
본 발명은 데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템에 관한 것이다.
사물 인터넷은 사물들끼리 유선 또는 무선 네트워크로 연결되어 정보를 공유하는 것을 의미하며, 사물 간 상호 작용을 통하여 다양한 서비스를 제공할 수 있다. 여기서 사물이란 가전제품, 모바일 장비, 웨어러블 컴퓨터 등 다양한 임베디드 시스템을 포함한다. 최근 전세계적으로 사물 인터넷에 대한 관심도가 높아지고 있다.
사물 인터넷에서는 사물들을 연결하여 기능을 수행하기 위하여 작은 센서들이나 칩을 활용한다. 센서나 칩의 한정적인 자원을 효과적으로 활용하기 위하여 CoAP(Constrained Application Protocol), MQTT(Message Queueing Telemetry Transport) 등이 프로토콜들이 개발되었다.
수요의 증가에 따라 사물 인터넷에 활용되는 기기의 수도 매우 늘어나게 되었는데, 현재 사용되고 있는 프로토콜들은 확장성(scalability)이 낮으며 접속 기기의 수가 늘어날 경우 트래픽 오버헤드(traffic overhead)를 일으키는 문제점들이 존재한다.
본 발명의 실시 예는 사물 인터넷상에서 데이터 전송 효율을 높일 수 있는 데이터 전달 장치 및 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명의 실시 예는 사물 인터넷에서 데이터 전송시 채널 점유 시간, 대역폭 사용량 등에 있어서 효과적인 데이터 전달 장치 및 방법을 제공하는 것을 목적으로 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급된 과제로 제한되지 않는다. 언급되지 않은 다른 기술적 과제들은 이하의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시 예에 따라 사물 인터넷 네트워크상에서 서버 및 복수 개의 기기 사이에서 데이터를 전달하는 장치는, 상기 복수 개의 기기에 상기 장치의 식별자를 송신하는 송신부; 상기 복수 개의 기기로부터 토픽 정보를 수신하는 수신부; 및 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 클러스터링부를 포함하며, 상기 송신부는 상기 클러스터링부의 클러스터링 결과를 상기 서버로 송신할 수 있다.
상기 송신부는, 상기 복수 개의 기기에 상기 장치의 식별자를 브로드캐스팅 방식으로 송신할 수 있다.
상기 수신부는, 상기 복수 개의 기기로부터 토픽 정보를 포함하는 요청 메시지를 수신하며, 상기 요청 메시지는 포스트 메서드(post method) 명령을 사용하여 상기 복수 개의 기기로부터 발송되는 것일 수 있다.
상기 송신부는, 상기 장치의 식별자, 및 클러스터링된 기기들로부터 송신된 토픽 정보를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 상기 서버로 송신할 수 있다.
상기 송신부는, 클러스터링된 기기들로부터 송신된 토픽 정보 및 상기 장치의 식별자를 포함하는 요청 메시지를 겟 메서드(get method) 명령을 사용하여 요청 메시지를 상기 서버로 송신하고, 상기 수신부는, 상기 겟 메서드 명령을 사용하여 서버로 송신된 요청 메시지에 대한 ACK 메시지를 수신할 수 있다.
상기 수신부는, 상기 서버가 하나 이상의 사용자 단말로부터 송신받은 제어 메시지에 기반하여 생성한 정보 메시지를 수신하며, 상기 정보 메시지는 클러스터링된 기기들로부터 송신된 토픽 정보와 관련된 정보를 포함할 수 있다.
상기 수신부는 기 설정된 조건이 될 때마다 상기 서버로부터 상기 정보 메시지를 수신할 수 있다.
상기 송신부는 상기 정보 메시지를 상기 클러스터링된 기기들에게 멀티캐스팅 방식으로 송신할 수 있다.
본 발명의 일 실시 예에 따라 제공되는 사물 인터넷 시스템은, 서버, 복수 개의 기기, 및 상기 서버와 상기 복수 개의 기기 사이에서 데이터를 전달하며, 상기 데이터 전달 장치는 상기 복수 개의 기기에 자신의 식별자를 송신하고, 상기 식별자를 송신받은 기기는 상기 식별자 및 구독하고자 하는 토픽 정보를 포함하는 요청 메시지를 상기 데이터 전달 장치로 송신하며, 상기 데이터 전달 장치는 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하여 클러스터링 결과를 상기 서버로 송신할 수 있다.
상기 서버는 상기 시스템에 접속된 하나 이상의 사용자 단말로부터 토픽 정보를 포함하는 제어 메시지를 수신하며, 기 설정된 조건이 될 때마다 상기 데이터 전달 장치로 상기 제어 메시지에 기반하여 생성된 정보 메시지를 송신하고, 상기 정보 메시지는 상기 토픽 정보와 관련된 정보를 포함할 수 있다.
상기 기 설정된 조건은, 기 설정된 시간이 지난 경우, 상기 토픽 정보와 관련된 정보가 변경된 경우, 및 상기 토픽 정보와 관련된 수치값이 기 설정된 값에 도달한 경우 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시 예에 따라, 사물 인터넷 네트워크상의 복수 개의 장치들 사이에서 데이터를 전달하는 방법은, 데이터 전달 장치가 복수 개의 기기로 자신의 식별자를 송신하는 단계; 상기 복수 개의 기기가 상기 데이터 전달 장치로 토픽 정보를 포함하는 요청 메시지를 송신하는 단계; 상기 데이터 전달 장치가 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 단계; 및 상기 데이터 전달 장치가 클러스터링 결과를 서버로 송신하는 단계를 포함할 수 있다.
상기 데이터 전달 장치가 복수 개의 기기로 자신의 식별자를 송신하는 단계는, 상기 복수 개의 기기에 상기 식별자를 포함하는 메시지를 브로드캐스팅 방식으로 송신함으로써 수행될 수 있다.
상기 복수 개의 기기가 상기 데이터 전달 장치로 토픽 정보를 포함하는 요청 메시지를 송신하는 단계는, 상기 복수 개의 기기가 토픽 정보 및 상기 식별자를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 송신함으로써 수행될 수 있다.
상기 데이터 전달 장치가 클러스터링 결과를 서버로 송신하는 단계는, 상기 데이터 전달 장치가 상기 식별자 및 클러스터링된 기기들로부터 전송된 토픽 정보를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 송신함으로써 수행될 수 있다.
상기 데이터 전달 방법은, 상기 데이터 전달 장치가 상기 서버에 클러스터링된 기기들에 관한 정보를 등록하는 단계를 더 포함할 수 있다.
상기 데이터 전달 장치가 상기 서버에 클러스터링된 기기들에 관한 정보를 등록하는 단계는: 상기 데이터 전달 장치가 상기 클러스터링된 기기들로부터 전송된 토픽 정보 및 상기 식별자를 포함하는 요청 메시지를 겟 메서드 명령을 사용하여 상기 서버로 송신하는 단계; 및 상기 서버가 상기 겟 메서드 명령을 사용하여 송신된 요청 메시지에 대한 ACK 메시지를 상기 데이터 전달 장치로 송신하는 단계를 포함할 수 있다.
상기 데이터 전달 방법은, 상기 서버가 상기 사물 인터넷 네트워크에 접속된 하나 이상의 사용자 단말로부터 토픽 정보 및 해당 토픽 정보와 관련된 정보를 포함하는 제어 메시지를 수신하는 단계를 더 포함할 수 있다.
상기 데이터 전달 방법은, 상기 서버가 기 설정된 조건이 될 때마다 상기 데이터 전달 장치에 상기 제어 메시지에 기반하여 생성된 정보 메시지를 송신하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 실시 예에 따르면, 상기 데이터 전달 방법을 실행하기 위한 프로그램을 기록한 기록 매체를 제공할 수 있다.
본 발명의 실시 예에 의하면, 사물 인터넷상에서 데이터 전송 효율을 높일 수 있는 데이터 전달 장치 및 방법이 제공된다.
또한, 본 발명의 실시 예에 의하면, 사물 인터넷에서 데이터 전송시 채널 점유 시간, 대역폭 사용량 등에 있어서 효과적인 데이터 전달 장치 및 방법이 제공된다.
본 발명의 효과는 상술한 효과들로 제한되지 않는다. 언급되지 않은 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 MQTT 시스템의 구조를 설명하기 위한 도면이다.
도 2는 CoAP 프로토콜의 예시를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 데이터 전달 장치 및 사물 인터넷 시스템을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 데이터 전달 장치의 예시적인 블록도이다.
도 5는 본 발명의 일 실시 예에 다른 데이터 전달 방법을 설명하기 위한 예시적인 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 데이터 전달 방법을 설명하기 위한 예시적인 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 데이터 전달 장치의 클래스 다이어그램을 나타낸다.
도 8은 본 발명의 일 실시 예와 비교 예들에 따른 채널 점유 시간을 나타낸 그래프이다.
도 9는 본 발명의 일 실시 예와 비교 예들에 따른 대역폭 사용량을 나타낸 그래프이다.
도 10은 본 발명의 일 실시 예와 비교 예들에 따른 커넥션 유지 오버헤드(connection maintenance overhead)를 나타낸 그래프이다.
본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술하는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되지 않으며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 갖는다. 공지된 구성에 대한 일반적인 설명은 본 발명의 요지를 흐리지 않기 위해 생략될 수 있다. 본 발명의 도면에서 동일하거나 상응하는 구성에 대하여는 가급적 동일한 도면부호가 사용된다. 본 발명의 이해를 돕기 위하여, 도면에서 일부 구성은 다소 과장되거나 축소되어 도시될 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서 전체에서 사용되는 '~부'는 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부'가 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함할 수 있다. 구성요소와 '~부'에서 제공하는 기능은 복수의 구성요소 및 '~부'들에 의해 분리되어 수행될 수도 있고, 다른 추가적인 구성요소와 통합될 수도 있다.
본 발명의 실시 예에 따라 제공되는 데이터 전달 장치는, 사물 인터넷 시스템 상에서 서버와 사물 인터넷 기기들 사이의 중간 기기 역할을 하도록 제공될 수 있다. 본 발명의 실시 예 따르면, 사물 인터넷 기기들과 서버 간에 1:1 통신이 이루어지는 것이 아니라 중간 기기를 통해 멀티캐스트를 활용하여 채널 점유 시간, 대역폭 사용량 등의 측면에서 데이터 전달 효율을 높일 수 있다.
이하, 첨부되는 도면을 참조하여 본 발명의 실시 예들을 구체적으로 설명한다.
본 발명은 CoAP(Constrained Application Protocol) 및 MQTT(Message Queueing Telemetry Transport) 프로토콜보다 개선된 프로토콜을 제안한다.
도 1은 종래의 MQTT 프로토콜을 설명하기 위한 도면이다.
MQTT 프로토콜은 기본적으로 메시지를 발간하고, 수신하고자 하는 토픽을 구독하는 것을 원칙으로 한다. 발간-구독 모델은 센서들 가운데 브로커를 필요로 한다. 브로커는 수신하고자 하는 토픽을 기반으로 클라이언트들에게 메시지를 발송한다. 클라이언트는 구독자가 될 수도 있으며, 발간자가 될 수도 있다. 발간자와 구독자는 토픽을 기반으로 작동한다. MQTT는 TCP를 기반으로 만들어진 메시징 모델이기 때문에, MQTT의 헤더가 작더라도 통신 상황에 따라 데이터를 제공하여 오버헤드가 존재한다. 따라서 낮은 성능의 기기나 좋지 못한 네트워크 환경에서는 적용이 어려운 문제점이 존재ㅎ나다.
도 2는 종래의 CoAP 프로토콜을 설명하기 위한 도면이다.
CoAP은 요청/응답 모델로 클라이언트가 짧은 주기로 메시지를 반복해서 보내는 경우 큰 오버헤드가 발생하여 문제되었다. 이를 해결하기 위해 Observe 기능이 제안되었으며 이는 서버에 일정 공간을 할당하여 특정 토픽을 구독하고자 하는 클라이언트는 해당 토픽을 통해 서버로 접근하도록 하는 방식이다. 특정 토픽에 대하여 클라이언트가 Observe 요청을 하면, 해당 토픽에 대한 내용이 변경될 때마다 별도의 요청 메시지 없이 변경 내용을 수신할 수 있도록 한다.
도 2는 온도에 관한 정보를 수신하는 CoAP 프로토콜의 예시이다. 도 2를 참조하면, 클라이언트는 특정 주제에 관해 Observe 등록을 하기 위해 서버에게 겟(GET) 메시지를 보내 요청한다. 서버는 리스트에 클라이언트의 정보를 저장하고, 특정 토픽과 관련된 정보를 포함하는 메시지를 발송한다. 이러한 과정을 통해 Observe 등록을 마치면, 특정 토픽에 관한 정보가 변경되었을 때 별도의 요청 없이도 클라이언트에게 메시지를 발송한다.
도 3은 본 발명의 일 실시 예에 따른 데이터 전달 장치 및 사물 인터넷 시스템을 설명하기 위한 도면이다.
본 발명의 일 실시 예에 따른 데이터 전달 장치(100)는, 토픽 정보에 기반한 클러스터링 기능을 갖추어 기기(10)들을 관리할 수 있다. 사용자 단말(30)과 기기(10)는 데이터 전달 장치(100)를 통해서만 통신할 수 있다.
각각의 기기(10)는 구독하고자 하는 토픽 정보를 포함하는 메시지를 통해 데이터 전달 장치(100)에 등록 절차를 거친다. 기기(10)로부터 전송된 토픽 정보에 기반하여 클러스터링을 완료하여 기기 군집을 형성한 후, 데이터 전달 장치(100)는 서버(20)로부터 기기 군집에 속해 있는 기기로 전송될 메시지를 수신한다. 데이터 전달 장치(100)는 서버(20)로부터 수신한 메시지를 멀티캐스팅을 이용하여 해당 기기 군집에 속한 기기들에 송신한다.
즉, 본 발명의 일 실시 예에 따른 데이터 전달 장치(100)는 기기들을 토픽 정보를 기반으로 클러스터링하여 군집을 형성하고, 해당 군집의 우두머리(cluster head) 역할을 할 수 있다.
데이터 전달 장치(100)와 서버(20) 사이의 연결은 계속 유지되도록 관리될 수 있다. 일 실시 예에 따라, 서버(20)는 일정 시간 간격으로 데이터 전달 장치(100)에 연결 상태와 관련된 메시지를 송신할 수 있다.
사용자 단말(30)은 토픽 정보를 포함한 메시지를 서버(20)로 송신한다. 서버(20)는 수신한 메시지를 메시지 큐 형태로 저장할 수 있다. 서버(20)는 기설정된 시간이 지나거나, 특정 조건이 만족되면 메시지 큐에 저장된 메시지들을 데이터 전달 장치(100)로 전송할 수 있다. 데이터 전달 장치(100)는 서버(20)로부터 메시지를 받으면 멀티캐스팅을 통해 각 토픽을 구독하고자 하는 기기에 관련 메시지를 송신할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 데이터 전달 장치(100)의 예시적인 블록도이다.
도 4를 참조하면, 일 실시 예에 따른 데이터 전달 장치(100)는 송신부(110), 수신부(120), 및 클러스터링부(130)를 포함할 수 있다.
상술한 바와 같이, 본 발명의 일 실시 예에 따른 데이터 전달 장치(100)는 사물 인터넷 네트워크상에서 서버 및 복수 개의 기기 사이에서 데이터를 전달하도록 제공된다.
송신부(110)는 복수 개의 기기에 데이터 전달 장치(100)의 식별자를 송신할 수 있다. 일 실시 예에 따라, 송신부(110)는 복수 개의 기기에 식별자를 브로드캐스팅 방식으로 송신할 수 있다.
송신부(110)가 식별자를 송신하면, 식별자를 수신한 기기들은 원하는 군집을 관리하는 장치의 식별자와 구독하고자 하는 토픽 정보가 포함된 메시지를 생성한다.
수신부(120)는 식별자를 전달받은 복수 개의 기기로부터 토픽 정보를 수신할 수 있다. 일 실시 예에 따라, 수신부(120)는 복수 개의 기기로부터 토픽 정보와 해당 데이터 전달 장치의 식별자를 포함하는 요청 메시지를 수신할 수 있으며, 이 때 요청 메시지는 포스트 메서드(post method) 명령을 사용하여 발송되는 메시지일 수 있다.
클러스터링부(130)는 수신한 요청 메시지 내의 토픽 정보에 기반하여, 복수 개의 기기들을 클러스터링할 수 있다. 일 실시 예에 따라, 구독하고자 하는 토픽이 동일한 기기들을 클러스터링하여 군집을 생성할 수 있다.
클러스터링부(130)에서 군집 형성이 완료되면, 송신부(110)는 클러스터링 결과를 서버(20)로 송신할 수 있다. 일 실시 예에 따라, 송신부(110)는 데이터 전달 장치(100)의 식별자, 및 클러스터링된 기기들로부터 송신된 토픽 정보를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 서버(20)로 송신할 수 있다.
상술한 바와 같은 과정으로 데이터 전달 장치(100)는 복수 개의 기기(10)들에 대한 군집 형성을 완료할 수 있다. 이하, 군집 형성 완료 후 본 발명의 일 실시 예에 따른 데이터 전달 장치(100)가 데이터를 전달하는 과정을 설명한다.
송신부(110)는 클러스터링을 통해 군집 형성된 기기들로부터 송신된 토픽 정보 및 데이터 전달 장치(100)의 식별자를 포함하는 요청 메시지를 서버(20)로 송신한다. 이 과정에서, 일 실시 예에 따라 송신부(110)는 겟 메서드(get method) 명령을 사용하여 요청 메시지를 서버(20)로 송신할 수 있다.
이후, 수신부(120)는 서버(20)로부터 요청 메시지에 대한 ACK 메시지를 수신한다. 이러한 과정을 통해 데이터 전달 장치(100)는 서버(20)에 Observe 등록을 할 수 있다.
사용자 단말(30)들로부터 데이터를 수신하기 위해, 수신부(120)는 서버(20)로부터 정보 메시지를 수신한다. 상기 정보 메시지는 서버(20)가 복수 개의 사용자 단말(30)로부터 송신받은 제어 메시지에 기반하여 생성된 것일 수 있다. 상기 정보 메시지에는 군집 형성된 기기들로부터 송신된 토픽 정보와 관련된 정보가 포함될 수 있다.
상술한 바와 같이 데이터 전달 장치(100)가 서버(20)에 Observe 등록을 완료하였으므로, 송신부(110)가 별도의 요청 메시지를 보내지 않더라도 수신부(120)가 기설정된 조건이 될 때마다 정보 메시지를 수신할 수 있다. 일 실시 예에 따라, 기설정된 조건은 토픽 정보와 관련된 정보가 변경된 경우, 기설정된 시간이 지난 경우, 및 상기 토픽 정보와 관련된 수치값이 기설정된 값에 도달한 경우 중 적어도 하나를 포함할 수 있다.
송신부(110)는 토픽 정보와 관련된 정보 메시지를 해당 토픽 정보에 기반하여 형성된 군집에 속하는 기기들에게 멀티캐스팅 방식으로 송신할 수 있다.
도 5는 본 발명의 일 실시 예에 다른 데이터 전달 방법(200)을 설명하기 위한 예시적인 흐름도이다.
도 5를 참조하면, 본 발명의 일 실시 예에 다른 데이터 전달 방법(200)은 데이터 전달 장치(100)가 복수 개의 센서 기기(10)에 브로드캐스팅 방식으로 자신의 식별자를 포함하는 메시지를 송신하는 단계(S210)를 포함한다.
그리고 나서, 복수 개의 센서 기기(10)가 데이터 전달 장치(100)로 센서 응답을 보내는 단계(S220)가 수행된다. 일 실시 예에 따라, 상기 센서 응답을 보내는 단계(S220)는 상기 복수 개의 기기가 토픽 정보 및 상기 식별자를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 송신함으로써 수행될 수 있다.
센서 응답을 수신한 데이터 전달 장치(100)가 ACK 메시지를 해당 센서 기기로 보내면, 토픽 정보에 기반한 클러스터링 단계가 완료된다.
이후, 데이터 전달 장치(100)가 클러스터링 결과를 서버(20)로 송신하는 단계(S230)가 수행된다. 일 실시 예에 따라, 클러스터링 결과 송신 단계(S230)는 상기 데이터 전달 장치가 상기 식별자 및 클러스터링된 기기들로부터 전송된 토픽 정보를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 송신함으로써 수행될 수 있다. 서버(20)가 ACK 메시지를 데이터 전달 장치(100)로 송신하면(S240), 기기들에 대한 군집 형성 과정이 완료된다.
도 6은 군집 형성 완료 후 본 발명의 일 실시 예에 따른 데이터 전달 방법(300)을 설명하기 위한 예시적인 흐름도이다.
도 6을 참조하면, 본 발명의 일 실시 예에 따른 데이터 전달 방법(300)은 토픽 정보와 식별자를 포함하는 메시지를 전송함으로써 데이터 전달 장치(100)가 서버(20)에 군집 기기들에 관한 정보를 등록하는 단계(S310)를 포함한다.
상기 서버(20)에 군집 기기들에 관한 정보를 등록하는 단계(S310)는, 데이터 전달 장치가 군집 기기들로부터 전송된 토픽 정보 및 데이터 전달 장치의 식별자를 포함하는 요청 메시지를 겟 메서드 명령을 사용하여 서버로 송신하는 단계, 및 서버가 해당 요청 메시지에 대한 ACK 메시지를 데이터 전달 장치로 송신하는 단계를 포함할 수 있다. 데이터 전달 장치(100)가 ACK 메시지를 수신하면, 서버(20)의 Observer 리스트에 등록이 완료되었음을 나타낸다.
이후, 서버(20)는 사물 인터넷 네트워크에 접속된 하나 이상의 사용자 단말(30)로부터 토픽 정보 및 해당 토픽 정보와 관련된 정보를 포함하는 제어 메시지를 수신한다(S320). 도 6을 참조하면, 예를 들어 사용자 단말1은 토픽1과 관련된 정보를 포함하는 제어 메시지를 송신하고, 사용자 단말2는 토픽2와 관련된 정보를 포함하는 제어 메시지를 송신할 수 있다.
서버(20)는 상기 제어 메시지에 기반하여 데이터 전달 장치(100)에 전송할 정보 메시지를 생성할 수 있다.
상술한 바와 같이, 데이터 전달 장치(100)가 서버(20)에 Observe 등록을 완료하였기 때문에, 등록된 토픽과 관련된 정보가 변경되거나, 다른 기설정된 조건이 될 때마다 서버(20)는 데이터 전달 장치(100)에 상기 정보 메시지를 전송할 수 있다(S330).
예를 들어, 도 6을 참조하면, 센서 기기1 및 3은 토픽1에 기반하여 군집 형성되었고, 센서 기기2 및 3은 토픽2에 기반하여 군집 형성되었다고 가정한다. 따라서, 데이터 전달 장치(100)는 토픽1을 포함하는 정보 메시지는 센서 기기1 및 3에, 그리고 토픽2를 포함하는 정보 메시지는 센서 기기2 및 3에 멀티캐스팅 방식으로 송신할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 데이터 전달 장치의 클래스 다이어그램을 나타낸다. Cluster Manager 클래스는 데이터 전달 장치의 리소스 생성/제거를 담당하는 클래스이다. Cluster 클래스는 특정한 토픽과 관련한 정보가 업데이트되는 경우 TopicObserver 클래스를 통해 데이터 전달 장치(100)에 메시지를 전송한다. TimeoutTask 클래스는 해당 데이터 전달 장치(100)가 메시지를 받는 조건 및 메시지의 유효 시간을 관리하는 클래스이다.
본 발명의 실시 예에 따른 데이터 전달 방법은 예를 들어 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM)과 같은 불휘발성 메모리, 플로피 디스크, 하드 디스크 또는 광학적 판독 매체 예를 들어 시디롬, 디브이디 등과 같은 형태의 저장매체일 수 있으나, 이에 제한되지는 않는다.
본 출원인은 본 발명의 실시 예에 따른 데이터 전달 장치 및 방법의 효과를 입증하기 위해, 종래의 MQTT 및 CoAP 프로토콜과 본 발명의 실시 예에 대하여 시뮬레이션 실험을 진행하였다.
실험에 따른 본 발명의 실시 예(이하, 실시 예1)의 구현을 위해, 5개의 센서 기기, 5개의 사용자 단말, 1개의 데이터 전달 장치와 서버를 사용하였다. 무선 환경에서 구현하였으며 패킷의 손실은 없는 것으로 가정하였다. 센서 기기의 클러스터링을 통해 하나의 군집은 5개의 센서 기기를 포함하는 것으로 가정하였다. 또한, 각 사용자 단말은 10 바이트 크기의 메시지를 100번 전송하는 것으로 가정하였다. 본 실험에서, 와이어샤크를 이용하여 채널 점유 시간, 대역폭 사용량, 및 커넥션 유지 오버헤드를 측정하였다.
이하, 도 8 내지 10을 참조하며 실시 예1의 효과에 대해 구체적으로 설명한다.
도 8은 본 발명의 일 실시 예와 비교 예들에 따른 채널 점유 시간을 나타낸 그래프이다.
본 실험에서, 메시지 전송 과정에서 사용자 단말에서 서버로 데이터 전송시 채널 점유 시간은 세 가지 기법 모두 같다고 가정하고, 서버로부터 센서 기기까지 메시지를 전송할 때 사용된 채널 점유 시간을 비교하였다. CoAP기법은 CON 메시지를 전송하고 ACK 메시지를 받을 때까지의 시간을 측정하였으며, MQTT 기법은 SUBSCRIBE 메시지를 전송하고 SUBACK 메시지를 받을 때까지의 시간을 측정하였다. 도 8을 참조하면, 실시 예1에 따른 경우 채널 점유 시간이 다른 기법들보다 50%이상 감소함을 확인할 수 있다.
도 9는 본 발명의 일 실시 예와 비교 예들에 따른 대역폭 사용량을 나타낸 그래프이다.
본 실험에서, 대역폭 사용량은 전송된 메시지의 바이트 수로 측정하였다. 세 가지 기법에 있어서 사용자 단말로부터 서버까지의 메시지 이동은 모두 같다고 가정하며, 서버로부터 센서 기기까지 메시지가 전송될 때의 바이트 수를 측정하였다. 도 9를 참조하면, 실시 예1에 따른 경우 대역폭 사용량이 현저하게 낮아짐을 확인할 수 있다.
도 10은 본 발명의 일 실시 예와 비교 예들에 따른 커넥션 유지 오버헤드(connection maintenance overhead)를 나타낸 그래프이다. 도 6을 참조하면, 커넥션 유지 오버헤드 또한 실시 예1에 따른 경우 다른 비교 예들보다 더 적음을 확인할 수 있다. 비교 예들에 있어서는 모든 구독자가 서버와 통신 연결을 유지하기 위해 메시지를 보내야하지만, 실시 예1의 경우 각 센서 기기가 서버와 직접 통신을 하지 않고 데이터 전달 장치를 통해 통신하기 때문에 커넥션 유지 오버헤드가 적어진다.
이상의 실시 예들은 본 발명의 이해를 돕기 위하여 제시된 것으로, 본 발명의 범위를 제한하지 않으며, 이로부터 다양한 변형 가능한 실시 예들도 본 발명의 범위에 속하는 것임을 이해하여야 한다. 본 발명의 기술적 보호범위는 특허청구범위의 기술적 사상에 의해 정해져야 할 것이며, 본 발명의 기술적 보호범위는 특허청구범위의 문언적 기재 그 자체로 한정되는 것이 아니라 실질적으로는 기술적 가치가 균등한 범주의 발명에 대하여까지 미치는 것임을 이해하여야 한다.
10 : 센서 기기
20 : 서버
30 : 사용자 단말
100 : 데이터 전달 장치
200, 300 : 데이터 전달 방법

Claims (20)

  1. 사물 인터넷 네트워크상에서 서버 및 복수 개의 기기 사이에서 데이터를 전달하는 장치로,
    상기 복수 개의 기기에 상기 장치의 식별자를 송신하는 송신부;
    상기 복수 개의 기기로부터 토픽 정보를 수신하는 수신부; 및
    상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 클러스터링부를 포함하며,
    상기 송신부는 상기 클러스터링부의 클러스터링 결과를 상기 서버로 송신하는 데이터 전달 장치.
  2. 제1 항에 있어서,
    상기 송신부는,
    상기 복수 개의 기기에 상기 장치의 식별자를 브로드캐스팅 방식으로 송신하는 데이터 전달 장치.
  3. 제1 항에 있어서,
    상기 수신부는,
    상기 복수 개의 기기로부터 토픽 정보를 포함하는 요청 메시지를 수신하며, 상기 요청 메시지는 포스트 메서드(post method) 명령을 사용하여 상기 복수 개의 기기로부터 발송되는 메시지인 데이터 전달 장치.
  4. 제1 항에 있어서,
    상기 송신부는,
    상기 장치의 식별자, 및 클러스터링된 기기들로부터 송신된 토픽 정보를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 상기 서버로 송신하는 데이터 전달 장치.
  5. 제1 항에 있어서,
    상기 송신부는,
    클러스터링된 기기들로부터 송신된 토픽 정보 및 상기 장치의 식별자를 포함하는 요청 메시지를 겟 메서드(get method) 명령을 사용하여 요청 메시지를 상기 서버로 송신하고,
    상기 수신부는,
    상기 겟 메서드 명령을 사용하여 서버로 송신된 요청 메시지에 대한 ACK 메시지를 수신하는 데이터 전달 장치.
  6. 제1 항에 있어서,
    상기 수신부는,
    상기 서버가 하나 이상의 사용자 단말로부터 송신받은 제어 메시지에 기반하여 생성한 정보 메시지를 수신하며,
    상기 정보 메시지는 클러스터링된 기기들로부터 송신된 토픽 정보와 관련된 정보를 포함하는 데이터 전달 장치.
  7. 제6 항에 있어서,
    상기 수신부는 기 설정된 조건이 될 때마다 상기 서버로부터 상기 정보 메시지를 수신하는 데이터 전달 장치.
  8. 제7 항에 있어서,
    상기 송신부는 상기 정보 메시지를 상기 클러스터링된 기기들에게 멀티캐스팅 방식으로 송신하는 데이터 전달 장치.
  9. 서버, 복수 개의 기기, 및 상기 서버와 상기 복수 개의 기기 사이에서 데이터를 전달하는 데이터 전달 장치를 포함하는 사물 인터넷 시스템으로,
    상기 데이터 전달 장치는 상기 복수 개의 기기에 자신의 식별자를 송신하고,
    상기 식별자를 송신받은 기기는 상기 식별자 및 구독하고자 하는 토픽 정보를 포함하는 요청 메시지를 상기 데이터 전달 장치로 송신하며,
    상기 데이터 전달 장치는 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하여 클러스터링 결과를 상기 서버로 송신하는 사물 인터넷 시스템.
  10. 제9 항에 있어서,
    상기 서버는 상기 시스템에 접속된 하나 이상의 사용자 단말로부터 토픽 정보를 포함하는 제어 메시지를 수신하며, 기 설정된 조건이 될 때마다 상기 데이터 전달 장치로 상기 제어 메시지에 기반하여 생성된 정보 메시지를 송신하고, 상기 정보 메시지는 상기 토픽 정보와 관련된 정보를 포함하는 사물 인터넷 시스템.
  11. 제10 항에 있어서,
    상기 기 설정된 조건은,
    기 설정된 시간이 지난 경우, 상기 토픽 정보와 관련된 정보가 변경된 경우, 및 상기 토픽 정보와 관련된 수치값이 기 설정된 값에 도달한 경우 중 적어도 하나를 포함하는 사물 인터넷 시스템.
  12. 사물 인터넷 네트워크상의 복수 개의 장치들 사이에서 데이터를 전달하는 방법으로,
    데이터 전달 장치가 복수 개의 기기로 자신의 식별자를 송신하는 단계;
    상기 복수 개의 기기가 상기 데이터 전달 장치로 토픽 정보를 포함하는 요청 메시지를 송신하는 단계;
    상기 데이터 전달 장치가 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 단계; 및
    상기 데이터 전달 장치가 클러스터링 결과를 서버로 송신하는 단계를 포함하는 데이터 전달 방법.
  13. 제12 항에 있어서,
    상기 데이터 전달 장치가 복수 개의 기기로 자신의 식별자를 송신하는 단계는, 상기 복수 개의 기기에 상기 식별자를 포함하는 메시지를 브로드캐스팅 방식으로 송신함으로써 수행되는 데이터 전달 방법.
  14. 제12 항에 있어서,
    상기 복수 개의 기기가 상기 데이터 전달 장치로 토픽 정보를 포함하는 요청 메시지를 송신하는 단계는, 상기 복수 개의 기기가 토픽 정보 및 상기 식별자를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 송신함으로써 수행되는 데이터 전달 방법.
  15. 제12 항에 있어서,
    상기 데이터 전달 장치가 클러스터링 결과를 서버로 송신하는 단계는, 상기 데이터 전달 장치가 상기 식별자 및 클러스터링된 기기들로부터 전송된 토픽 정보를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 송신함으로써 수행되는 데이터 전달 방법.
  16. 제12 항에 있어서,
    상기 데이터 전달 방법은,
    상기 데이터 전달 장치가 상기 서버에 클러스터링된 기기들에 관한 정보를 등록하는 단계를 더 포함하는 데이터 전달 방법.
  17. 제16 항에 있어서,
    상기 데이터 전달 장치가 상기 서버에 클러스터링된 기기들에 관한 정보를 등록하는 단계는:
    상기 데이터 전달 장치가 상기 클러스터링된 기기들로부터 전송된 토픽 정보 및 상기 식별자를 포함하는 요청 메시지를 겟 메서드 명령을 사용하여 상기 서버로 송신하는 단계; 및
    상기 서버가 상기 겟 메서드 명령을 사용하여 송신된 요청 메시지에 대한 ACK 메시지를 상기 데이터 전달 장치로 송신하는 단계를 포함하는 데이터 전달 방법.
  18. 제12 항에 있어서,
    상기 데이터 전달 방법은,
    상기 서버가 상기 사물 인터넷 네트워크에 접속된 하나 이상의 사용자 단말로부터 토픽 정보 및 해당 토픽 정보와 관련된 정보를 포함하는 제어 메시지를 수신하는 단계를 더 포함하는 데이터 전달 방법.
  19. 제18 항에 있어서,
    상기 데이터 전달 방법은,
    상기 서버가 기 설정된 조건이 될 때마다 상기 데이터 전달 장치에 상기 제어 메시지에 기반하여 생성된 정보 메시지를 송신하는 단계를 더 포함하는 데이터 전달 방법.
  20. 컴퓨터로 판독 가능한 기록 매체로,
    제12 항 내지 제19 항 중 어느 한 항에 기재된 데이터 전달 방법을 실행하기 위한 프로그램을 기록한 기록 매체.
KR1020160175882A 2016-12-21 2016-12-21 데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템 KR101972470B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160175882A KR101972470B1 (ko) 2016-12-21 2016-12-21 데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160175882A KR101972470B1 (ko) 2016-12-21 2016-12-21 데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템

Publications (2)

Publication Number Publication Date
KR20180072918A true KR20180072918A (ko) 2018-07-02
KR101972470B1 KR101972470B1 (ko) 2019-04-26

Family

ID=62913886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160175882A KR101972470B1 (ko) 2016-12-21 2016-12-21 데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템

Country Status (1)

Country Link
KR (1) KR101972470B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101602099B1 (ko) * 2015-01-30 2016-03-10 충남대학교산학협력단 사물인터넷에서 레스트 기반의 서비스 연동 시스템 및 그 방법
KR20160119370A (ko) * 2015-04-03 2016-10-13 충남대학교산학협력단 Dds 기반의 사물 인터넷의 네트워크와 지그비 네트워크와의 연동 시스템 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101602099B1 (ko) * 2015-01-30 2016-03-10 충남대학교산학협력단 사물인터넷에서 레스트 기반의 서비스 연동 시스템 및 그 방법
KR20160119370A (ko) * 2015-04-03 2016-10-13 충남대학교산학협력단 Dds 기반의 사물 인터넷의 네트워크와 지그비 네트워크와의 연동 시스템 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박나연 외 4인, "유동적 노드 그룹핑을 위한 MQTT 노드 관리 플랫폼 설계", 2016년 한국컴퓨터종합학술대회 논문집(2016. 6.)* *

Also Published As

Publication number Publication date
KR101972470B1 (ko) 2019-04-26

Similar Documents

Publication Publication Date Title
US11071013B2 (en) Method and system for group communication, group server, and group member device
Glaroudis et al. Survey, comparison and research challenges of IoT application protocols for smart farming
CN109391500B (zh) 一种配置管理方法、装置及设备
CN106230896A (zh) 一种消息推送方法、装置及系统
CN105847381A (zh) 内容服务器的调度方法及装置
US20070288632A1 (en) Method and system for remotely accessing devices in a network
CN109474684A (zh) 一种获取直播视频流的方法、装置、终端设备及存储介质
CN103795689A (zh) 资源订阅方法及装置
CN104350724A (zh) 客户端借助于opc-ua对服务的访问
KR101990184B1 (ko) 사설 IP를 가지는 IoT 게이트웨이를 위한 MQTT/HTTP 기반 통신 방법 및 시스템
EP2564550B1 (en) Method for providing message and device therefor
WO2019154481A1 (en) A method for updating a number of hops that is to be used for communication between a publisher mesh node and a subscriber mesh node in a wireless mesh network
KR101809365B1 (ko) M2M/IoT 플랫폼에서 MQTT 프로토콜을 활용한 메시지 단편화 방법
CN108228625B (zh) 一种推送消息处理方法及装置
JP2022537643A (ja) リソース購読方法、機器、サーバ及びコンピュータ記憶媒体
CN102594733B (zh) 匿名交友的实现方法、系统和装置
WO2016065842A1 (zh) M2m群组及其通告资源创建、信息交互方法和存储介质
KR102577985B1 (ko) 사물인터넷 프로토콜 기반의 긴급상황 서비스 제공 방법
Choi et al. Cluster-based CoAP for message queueing in Intemet-of-Things networks
WO2021032269A1 (en) Distribution of constrained device data
CN109510868A (zh) 一种建立p2p网络的方法、装置、终端设备及存储介质
US10439963B2 (en) Increasing capacity in a topic-subscription messaging system
KR101972470B1 (ko) 데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템
CN106332177B (zh) 一种实现成员资源处理的方法及装置
US20070038746A1 (en) Event management methods and systems

Legal Events

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