KR101969652B1 - 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램 - Google Patents

데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램 Download PDF

Info

Publication number
KR101969652B1
KR101969652B1 KR1020170153908A KR20170153908A KR101969652B1 KR 101969652 B1 KR101969652 B1 KR 101969652B1 KR 1020170153908 A KR1020170153908 A KR 1020170153908A KR 20170153908 A KR20170153908 A KR 20170153908A KR 101969652 B1 KR101969652 B1 KR 101969652B1
Authority
KR
South Korea
Prior art keywords
information
devices
topic
message
server
Prior art date
Application number
KR1020170153908A
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 KR1020170153908A priority Critical patent/KR101969652B1/ko
Application granted granted Critical
Publication of KR101969652B1 publication Critical patent/KR101969652B1/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/2866Architectures; Arrangements
    • H04L67/2895Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/2842
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching

Abstract

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

Description

데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램 {APPARATUS AND METHOD FOR TRANSMITTING DATA, IOT SYSTEM EMPLOYING THE SAME, PROGRAM RECORDING DATAUM, AND PROGRAM RECORDED ON MEDIUM FOR EXECUTING THE METHOD}
본 발명은 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램에 관한 것으로 보다 상세하게는 캐시메모리를 활용한 군집 기반 코앱 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램에 관한 것이다.
사물 인터넷은 사물들끼리 유선 또는 무선 네트워크로 연결되어 정보를 공유하는 것을 의미하며, 사물 간 상호 작용을 통하여 다양한 서비스를 제공할 수 있다. 여기서 사물이란 가전제품, 모바일 장비, 웨어러블 컴퓨터 등 다양한 임베디드 시스템을 포함한다. 최근 전세계적으로 사물 인터넷에 대한 관심도가 높아지고 있다.
사물 인터넷에서는 사물들을 연결하여 기능을 수행하기 위하여 작은 서들이나 칩을 활용한다. 센서나 칩의 한정적인 자원을 효과적으로 활용하기 위하여 CoAP(Constrained Application Protocol), MQTT(Message Queueing Telemetry ransport) 등의 프로토콜들이 개발되었다.
수요의 증가에 따라 사물 인터넷에 활용되는 기기의 수도 매우 늘어나게 되었는데, 현재 사용되고 있는 프로토콜들은 확장성(scalability)이 낮으며 접속 기기의 수가 늘어날 경우 트래픽 오버헤드(traffic overhead)를 일으키는 문제점들이 존재한다.
이러한 제한적인 사물인터넷 환경에서 메시지 전달을 좀 더 효율적으로 하기 위한 방법을 찾는 것이 중요한 과제로 대두되고 있다.
기존 CoAP방식의 경우 URI-path가 기본 설정(default)이다. URI-path는 하나의 토픽에 대한 절대 경로 세그먼트(a segment of the absolute path to the resource)를 의미한다. 클라이언트의 토픽 요청 메시지는 서버 내 그 토픽을 갖고 있는 호스트(host)에 도달하게 되므로 반드시 URI-path를 포함해야만 한다. 하지만 URI-path는 상기 정의에서 알 수 있듯 하나의 토픽만 요청할 수 있다. 복수의 토픽을 요청하기 위해서는 복수의 메시지를 보내야만 한다는 문제점이 발생한다.
한편 복수의 기기를 클러스터 헤드(Cluster Head)가 관리하는 군집 기반(Cluster based) 데이터 수집 방식의 경우 서버가 복수의 기기 각각에 대해 직접 데이터를 송수신하는 경우에 비해 서버에 걸리는 부하가 줄어든다는 장점이 있다. 하지만 클라이언트의 토픽 요청이 있을 때마다 클러스터 헤드는 센서에 해당 토픽을 요청하기 때문에 데이터 전송 측면에서 비효율적인 면이 있고 센서의 동작속도와 수명에도 부정적인 영향을 미친다.
대한민국 등록 특허 제10-1742524호
본 발명은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 클러스터 방식의 데이터 전송 효율성을 개선하고 센서의 동작속도와 수명을 개선하며 URI-path를 기본으로 사용하는 기존 코앱 방식의 데이터 전송 효율성을 개선하는 것을 목적으로 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급된 과제로 제한되지 않는다. 언급되지 않은 다른 기술적 과제들은 이하의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시 예에 따라 사물 인터넷 네트워크상에서 서버 및 복수 개의 기기 사이에서 데이터를 전달하는 장치로, 상기 복수 개의 기기에 상기 장치의 식별자를 송신하는 송신부; 상기 복수 개의 기기로부터 토픽 정보를 수신하는 수신부; 및 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 클러스터링부를 포함하며, 상기 수신부는 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장하고 상기 송신부는 상기 클러스터링 결과 및 상기 클러스터링 된 기기들로부터 수신한 정보를 상기 서버로 송신하는 것을 특징으로 한다.
상기 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장함에 있어서, 상기 수신한 정보의 속성을 구분하는 테이블에 저장하며, 상기 속성은 상기 클러스터링 된 기기들 각각의 식별자, 상기 클러스터링 된 기기들로부터 수신한 각 토픽의 범주, 상기 클러스터링 된 기기들로부터 수신한 각 토픽이 저장된 시간, 상기 클러스터링 된 기기들로부터 수신한 각 토픽의 값인 것을 특징으로 한다.
상기 테이블은 상기 테이블에 저장된 값이 기 설정된 조건을 충족 할 때마다 업데이트 되며 상기 기 설정된 조건은 상기 복수 개의 기기로부터 수신한 각 토픽이 저장된 시간으로부터 일정 시간이 경과한 것이며, 상기 테이블에서 상기 일정 시간이 경과한 데이터는 상기 테이블상에서 만료되는 것을 특징으로 한다.
상기 서버가 하나 이상의 사용자 단말로부터 수신한 제어 메시지에 기반하여 생성한 정보 메시지를 상기 수신부가 수신한 경우에 요청된 토픽 정보가 상기 캐시메모리에 모두 저장되어 있는 경우 상기 송신부는 상기 캐시메모리에 저장된 토픽 정보를 상기 서버에 송신하고, 상기 요청된 토픽 정보 중 일부만 캐시메모리에 저장되어 있는 경우(만료된 경우를 포함) 상기 송신부는 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보가 없는 기기들에 대하여 제1 요청메시지를 송신하고 상기 수신부가 상기 제1 요청메시지에 따른 정보를 수신한 뒤, 상기 송신부는 상기 제1 요청메시지에 따른 정보와 상기 캐시메모리에 저장된 정보를 함께 서버에 송신하고, 상기 요청된 토픽 정보가 캐시메모리에 없는 경우(만료된 경우를 포함) 상기 송신부는 상기 클러스터링 된 기기들 중 요청된 토픽 정보와 연관된 기기들에 대하여 제2 요청메시지를 송신하고 상기 수신부가 상기 제2 요청메시지에 따른 정보를 수신한 뒤, 상기 송신부는 제2 요청메시지에 따른 정보를 서버에 송신할 수 있다.
상기 정보 메시지는 상기 클러스터링 된 기기들로부터 송신된 토픽 정보와 관련된 정보와 겟 메서드(get method) 명령의 옵션을 포함하며, 상기 겟 메서드(get method) 명령의 옵션은 상기 정보 메시지가 상기 토픽 정보를 복수로 포함할 수 있도록 하는 멀티 유알아이 패스(Multi-URI-path), 상기 정보 메시지에 대한 응답시간을 제한하는 시간 제한(Time-limit), 상기 토픽 정보가 수정된 시간을 요청하는 수정시간(Include-modified-time)을 더 포함하는 것을 특징으로 한다.
상기 겟 메서드(get method) 명령의 옵션 중 멀티 유알아이 패스(Multi-URI-path)가 선택된 경우 상기 시간 제한(Time-limit)이 함께 선택되는 것을 특징으로 한다.
본 발명의 다른 일 실시 예에 따라 서버, 복수 개의 기기, 및 상기 서버와 상기 복수 개의 기기 사이에서 데이터를 전달하는 데이터 전달 장치를 포함하는 사물 인터넷 시스템으로, 상기 데이터 전달 장치는 상기 복수 개의 기기에 자신의 식별자를 송신하고, 상기 식별자를 송신받은 기기는 상기 식별자 및 구독하고자 하는 토픽 정보를 포함하는 요청 메시지를 상기 데이터 전달 장치로 송신하며, 상기 데이터 전달 장치는 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하여 클러스터링 결과 및 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장한 후 상기 서버로 송신하고, 상기 서버는 상기 시스템에 접속된 하나 이상의 사용자 단말로부터 토픽 정보를 포함하는 제어 메시지를 수신하며 기 설정된 조건이 될 때마다 상기 데이터전달 장치로 상기 제어 메시지에 기반하여 생성된 정보 메시지를 송신하고, 상기 정보 메시지는 상기 토픽 정보와 관련된 정보와 겟 메서드(get method) 명령의 옵션을 포함할 수 있는 것을 특징으로 한다.
상기 정보 메시지를 수신한 상기 데이터 전달 장치는 요청된 토픽 정보가 상기 캐시메모리에 모두 저장되어 있는 경우 상기 캐시메모리에 저장된 토픽 정보를 상기 서버에 송신하고, 상기 요청된 토픽 정보 중 일부만 캐시메모리에 저장되어 있는 경우(만료된 경우를 포함) 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보가 없는 기기들에 대해 제1 요청메시지를 송신하여 이로부터 수신한 정보와 상기 캐시메모리에 저장된 정보를 함께 서버에 송신하고, 상기 요청된 토픽 정보가 캐시메모리에 없는 경우(만료된 경우를 포함) 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보와 연관된 기기들에 대해 제2 요청메시지를 송신하여 이로부터 수신한 정보를 서버에 송신할 수 있다.
상기 겟 메서드(get method) 명령의 옵션은 상기 정보 메시지가 상기 토픽 정보를 복수로 포함할 수 있도록 하는 멀티 유알아이 패스(Multi-URI-path), 상기 정보 메시지에 대한 응답시간을 제한하는 시간 제한(Time-limit), 상기 토픽 정보가 수정된 시간을 요청하는 수정시간(Include-modified-time)을 더 포함하는 것을 특징으로 한다.
상기 겟 메서드(get method) 명령의 옵션 중 멀티 유알아이 패스(Multi-URI-path)가 선택된 경우 상기 시간 제한(Time-limit)이 함께 선택되는 것을 특징으로 한다.
상기 기 설정된 조건은 기 설정된 시간이 지난 경우, 상기 토픽 정보와 관련된 정보가 변경된 경우, 및 상기 토픽 정보와 관련된 수치값이 기 설정된 값에 도달한 경우 중 적어도 하나를 포함하는 것을 특징으로 한다.
본 발명의 다른 일 실시 예에 따라 사물 인터넷 네트워크상의 복수 개의 장치들 사이에서 데이터를 전달하는 방법으로, 데이터 전달 장치가 복수 개의 기기로 자신의 식별자를 송신하는 단계; 상기 복수 개의 기기가 상기 데이터 전달 장치로 토픽 정보를 포함하는 요청메시지를 송신하는 단계; 상기 데이터 전달 장치가 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 단계; 상기 데이터 전달 장치가 클러스터링 결과 및 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장한 후 서버로 송신하는 단계; 상기 서버가 상기 사물 인터넷 네트워크에 접속된 하나 이상의 사용자 단말로부터 토픽 정보 및 해당 토픽 정보와 관련된 정보를 포함하는 제어 메시지를 수신하는 단계; 및 상기 서버가 기 설정된 조건이 될 때마다 상기 데이터 전달 장치에 상기 제어 메시지에 기반하여 생성된 정보 메시지를 송신하는 단계를 포함하며, 상기 정보 메시지는 상기 토픽 정보와 관련된 정보와 겟 메서드(get method) 명령의 옵션을 포함할 수 있는 것을 특징으로 한다.
상기 데이터 전달 방법에 있어서 상기 정보 메시지를 수신한 상기 데이터 전달 장치는 요청된 토픽 정보가 상기 캐시메모리에 모두 저장되어 있는 경우 상기 캐시메모리에 저장된 토픽 정보를 상기 서버에 송신하고, 상기 요청된 토픽 정보 중 일부만 캐시메모리에 저장되어 있는 경우(만료된 경우를 포함) 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보가 없는 기기들에 대해 제1 요청메시지를 송신하여 이로부터 수신한 정보와 상기 캐시메모리에 저장된 정보를 함께 서버에 송신하고, 상기 요청된 토픽 정보가 캐시메모리에 없는 경우(만료된 경우를 포함) 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보와 연관된 기기들에 대해 제2 요청메시지를 송신하여 이로부터 수신한 정보를 서버에 송신하는 단계;를 더 포함하는 것을 특징으로 한다.
상기 겟 메서드(get method) 명령의 옵션은, 겟 메서드(get method) 기본 옵션에 상기 정보 메시지가 상기 토픽 정보를 복수로 포함할 수 있도록 하는 멀티 유알아이 패스(Multi-URI-path), 상기 정보 메시지에 대한 응답시간을 제한하는 시간 제한(Time-limit), 상기 토픽 정보가 수정된 시간을 요청하는 수정시간(Include-modified-time)을 더 포함하는 것을 특징으로 한다.
상기 겟 메서드(get method) 명령의 옵션 중 멀티 유알아이 패스(Multi-URI-path)가 선택된 경우 상기 시간 제한(Time-limit)이 함께 선택되는 것을 특징으로 한다.
본 발명의 다른 실시 예에 따르면 상기 데이터 전달 방법을 실행시키기 위한 프로그램을 기록한 기록매체를 제공할 수 있다.
본 발명의 또 다른 실시 예에 따르면 하드웨어와 결합하여 상기 데이터 전달 방법을 실행시키기 위하여 매체에 저장된 프로그램을 제공할 수 있다.
본 발명은 캐시 메모리를 포함한 클러스터 헤드와 클러스터링 결과의 속성을 구분하여 저장할 수 있는 테이블을 활용함으로써 군집 기반 코앱 데이터의 전송 효율성을 개선하고 센서의 동작속도와 수명에 이점을 갖는 효과가 있다.
본 발명은 겟 메서드(get method)의 옵션을 추가로 정의하여 사용함으로써 기존 코앱 방식보다 효율적으로 토픽을 주고 받을 수 있다.
본 발명의 효과는 상술한 효과들로 제한되지 않는다. 언급되지 않은 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 군집 기반 코앱 시스템 구조를 설명하기 위한 도면이다.
도 2는 군집 기반 코앱 시스템 구조의 동작흐름을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 데이터 전달 장치 및 사물 인터넷 시스템을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 데이터 전달 장치의 예시적인 블록도이다.
도 5는 본 발명의 일 실시 예에 따른 데이터 전달 방법을 설명하기 위한 것으로 캐시메모리에 요청된 데이터가 없는 경우를 설명하기 위한 예시적인 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 데이터 전달 방법을 설명하기 위한 것으로 캐시메모리에 요청된 데이터가 모두 있는 경우를 설명하기 예시적인 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 데이터 전달 방법을 설명하기 위한 것으로 캐시메모리에 요청된 데이터가 일부만 있는 경우를 설명하기 위한 예시적인 흐름도이다.
도 8은 본 발명의 일 실시 예와 비교 예들간에 센서 수에 따른 대역폭 사용량을 비교한 그래프이다.
도 9는 본 발명의 일 실시 예와 비교 예들간에 메시지 요청 간격(interval)에 따른 대역폭 사용량을 비교한 그래프이다.
도 10은 본 발명의 일 실시 예와 비교 예들간에 센서에 대한 요청 횟수를 비교하는 그래프이다.
본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술하는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되지 않으며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 갖는다. 공지된 구성에 대한 일반적인 설명은 본 발명의 요지를 흐리지 않기 위해 생략될 수 있다. 본 발명의 도면에 서 동일하거나 상응하는 구성에 대하여는 가급적 동일한 도면부호가 사용된다. 본 발명의 이해를 돕기 위하여, 도면에서 일부 구성은 다소 과장되거나 축소되어 도시될 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서 전체에서 사용되는 '~부'는 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부'가 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함할 수 있다. 구성요소와 '~부'에서 제공하는 기능은 복수의 구성요소 및 '~부'들에 의해 분리되어 수행될 수도 있고, 다른 추가적인 구성요소와 통합될 수도 있다.
본 발명의 실시 예에 따라 제공되는 데이터 전달 장치는, 사물 인터넷 시스템 상에서 서버와 사물 인터넷 기기들 사이의 중간 기기 역할을 하도록 제공될 수 있다. 본 발명의 실시 예 따르면, 사물 인터넷 기기들과 서버 간에 1:1 통신이 이루어지는 것이 아니라 중간 기기를 통해 멀티캐스트를 활용하여 채널 점유시간, 대역폭 사용량 등의 측면에서 데이터 전달 효율을 높일 수 있다.
이하, 첨부되는 도면을 참조하여 본 발명의 실시 예들을 구체적으로 설명한다.
본 발명은 코앱(CoAP) 및 군집 기반 코앱(Cluster-based CoAP) 프로토콜보다 개선된 프로토콜을 제안한다.
도 1은 군집 기반 코앱 시스템 구조를 설명하기 위한 도면이다.
클러스터 헤드는 서버에 특정 토픽에 관한 정보를 담고 있는 메시지를 보낸다. 서버는 특정 조건에서 메시지들을 클러스터 헤드에 대한 메시지 대기행렬에 보낸다. 클러스터 헤드가 상기 메시지를 수신하는 경우 클러스터 내부에 있는 각 센서들에 대해 멀티캐스팅 방식으로 메시지를 송신한다. 클러스터 헤드는 자신의 식별자를 클러스터 내부에 있는 인접 센서들에 대해 브로드캐스팅 방식으로 송신한다. 상기 식별자를 받은 센서들은 센서 자신의 식별자와 센서 자신과 연관된 토픽 정보를 각각 클러스터 헤드에 송신한다. 클러스터 헤드는 상기 센서가 송신하는 메시지를 일정 시간 동안 수집하고 서버에 클러스터가 형성되었음을 알리는 메시지를 송신한다.
도 2는 군집 기반 코앱 시스템 구조의 동작흐름을 설명하기 위한 도면이다.
클러스터 헤드는 센서의 업데이트 된 상태에 관한 정보를 얻기 위해 CoAP 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) 및 상기 수신부(120)가 클러스터링 된 기기들로부터 수신한 메시지를 임시 저장할 수 있는 캐시메모리를 포함할 수 있다.
상술한 바와 같이, 본 발명의 일 실시 예에 따른 데이터 전달 장치(100)는 사물 인터넷 네트워크상에서 서버 및 복수 개의 기기 사이에서 데이터를 전달하도록 제공된다.
송신부(110)는 복수 개의 기기에 데이터 전달 장치(100)의 식별자를 송신할 수 있다. 일 실시 예에 따라, 송신부(110)는 복수 개의 기기에 식별자를 브로드캐스팅 방식으로 송신할 수 있다.
송신부(110)가 식별자를 송신하면, 식별자를 수신한 기기들은 원하는 군집을 관리하는 장치의 식별자와 구독하고자 하는 토픽 정보가 포함된 메시지를 생성한다.
수신부(120)는 식별자를 전달받은 복수 개의 기기로부터 토픽 정보를 수신할 수 있다. 일 실시 예에 따라, 수신부(120)는 복수 개의 기기로부터 토픽 정보와 해당 데이터 전달 장치의 식별자를 포함하는 요청 메시지를 수신할 수 있으며, 이 때 요청 메시지는 포스트 메서드(post method) 명령을 사용하여 발송되는 메시지일 수 있다.
클러스터링부(130)는 수신한 요청 메시지 내의 토픽 정보에 기반하여, 복수 개의 기기들을 클러스터링할 수 있다. 일 실시 예에 따라, 구독하고자 하는 토픽이 동일한 기기들을 클러스터링하여 군집을 생성할 수 있다.
클러스터링부(130)에서 군집 형성이 완료되면, 수신부(120)는 클러스터링 결과 및 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장하고, 송신부(110)는 이를 서버(20)로 송신할 수 있다. 일 실시예에 따라 상기 클러스터링 결과 및 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장하는 것은 상기 수신한 정보의 속성을 구분하는 테이블에 저장하는 것이 바람직하다.
이를 하기의 표와 같이 구분한다.
속성 설명
식별자(Device-ID) Device Identifier
토픽의 범주 Category of data
저장된 시간 Time at which the cache table was modified
토픽의 값 Value for the topic
상기 표1을 참조하면 상기 클러스터링 된 기기들로부터 수신한 정보는 각각의 기기에 관한 식별자, 각 기기가 처리하는 토픽의 범주(예를 들면 온도, 습도), 상기 각 기기로부터 수신한 토픽이 수정 내지 저장된 시간, 상기 각 기기가 송신한 토픽의 값(수치)이 구분되어 상기 캐시메모리의 테이블에 저장된다.
상기 캐시메모리의 테이블을 업데이트 하는 것은 상기 테이블에 저장된 값이 기 설정된 조건을 만족하는 경우에 실행되도록 하는 것이 좋다. 상기 기 설정된 조건은 상기 테이블의 속성 중 하나인 저장된 시간으로부터 일정 시간이 경과한 경우일 수 있으며 이 때 상기 일정 시간은 20초 내지 40초인 것이 좋다. 이때 상기 일정 시간이 경과한 데이터는 상기 테이블에서 만료 내지 삭제되어야 한다. 상기 테이블에서 만료된 데이터는 더 이상 사용될 수 없기 때문에 만료된 데이터에 대한 요청이 있는 경우 송신부(110)는 상기 요청에 관한 데이터를 얻기 위해 클러스터링 된 기기들 중 해당 토픽과 연관된 기기들에 대해 요청메시지를 송신한다. 즉 캐시메모리의 존재로 클러스터링 된 기기들에 대해 브로드캐스팅 방식으로 요청메시지를 송신할 필요가 없다.
일 실시 예에 따라, 송신부(110)는 데이터 전달 장치(100)의 식별자, 및 클러스터링 된 기기들로부터 송신된 토픽 정보를 포함하는 요청 메시지를 포스트 메서드 명령을 사용하여 서버(20)로 송신할 수 있다.
상술한 바와 같은 과정으로 데이터 전달 장치(100)는 복수 개의 기기(10)들에 대한 군집 형성을 완료할 수 있다. 이하, 군집 형성 완료 후 본 발명의 일 실시 예에 따른 데이터 전달 장치(100)가 데이터를 전달하는 과정을 설명한다.
송신부(110)는 클러스터링을 통해 군집 형성된 기기들로부터 송신된 토픽 정보 및 데이터 전달 장치(100)의 식별자를 포함하는 요청 메시지를 서버(20)로 송신한다. 이 과정에서, 일 실시 예에 따라 송신부(110)는 겟 메서드(getmethod) 명령을 사용하여 요청 메시지를 서버(20)로 송신할 수 있다.
이후, 수신부(120)는 서버(20)로부터 요청 메시지에 대한 ACK 메시지를 수신한다. 이러한 과정을 통해 데이터 전달 장치(100)는 서버(20)에 Observe등록을 할 수 있다.
사용자 단말(30)들로부터 데이터를 수신하기 위해, 수신부(120)는 서버(20)로부터 정보 메시지를 수신한다. 상기 정보 메시지는 서버(20)가 복수 개의 사용자 단말(30)로부터 수신한 제어 메시지에 기반하여 생성된 것일 수 있다. 상기 정보 메시지에는 군집 형성된 기기들로부터 송신된 토픽 정보와 관련된 정보와 겟 메서드(getmethod) 명령의 옵션을 포함할 수 있다.
수신부(120)가 상기 정보메시지를 수신한 경우 데이터 전달 장치(100)는 해당 메시지에서 요청된 정보를 서버(20)에 전달해야 한다. 본 발명의 일 실시예에 따라 캐시메모리를 활용하는 데이터 전달 장치(100)가 서버(20)에 상기 정보메시지에 따른 응답을 하는 과정은 세 가지 경우로 나뉜다. 첫 번째, 요청된 토픽 정보가 상기 캐시메모리에 모두 저장되어 있는 경우 상기 송신부(110)는 상기 캐시메모리에 저장된 토픽 정보를 상기 서버(20)에 송신한다. 캐시메모리에 저장된 정보를 사용하므로 클러스터링 된 기기들에 접근할 필요가 없다. 두 번째는 요청된 토픽 정보 중 일부만 캐시메모리에 저장되어 있는 경우이다. 캐시메모리에 일부만 저장되어 있다는 것은 아직 클러스터링 된 기기들 중 일부로부터 정보를 수신하지 못했거나 정보를 수신하여 캐시메모리에 저장했음에도 일정 시간이 경과하여 만료된 것을 의미한다. 이 경우 송신부(110)는 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보가 없는 기기들에 대하여 제1 요청메시지를 송신하고 수신부(120)가 상기 제1 요청메시지에 따른 정보를 수신한 뒤, 상기 송신부(110)는 상기 제1 요청메시지에 따른 정보와 상기 캐시메모리에 저장된 정보를 함께 서버(20)에 송신하게 된다. 두 번째의 경우에도 클러스터링 된 기기들 중 요청된 정보가 없는 일부 기기들에 대하여만 접근하는 장점이 있다. 세 번째는 요청된 토픽 정보가 캐시메모리에 없는 경우이다. 즉 요청된 토픽 정보에 해당하는 데이터가 캐시메모리 상에서 모두 만료되었거나 아직 클러스터링 된 기기들로부터 수신하지 못한 경우이다. 이 때 송신부(110)는 상기 클러스터링 된 기기들 중 요청된 토픽 정보와 연관된 기기들에 대하여 제2 요청메시지를 송신하고 수신부(120)가 상기 제2 요청메시지에 따른 정보를 수신한 뒤, 송신부(110)는 제2 요청메시지에 따른 정보를 서버(20)에 송신하게 된다. 세 번재의 경우에도 클러스터링 된 기기들 모두에 대해 브로드캐스팅 방식으로 요청메시지를 송신하는 것은 수신부(120)가 수신한 정보메시지에서 클러스터링 된 기기들 전부에 대한 토픽 정보를 요청할때만 해당된다. 결국 캐시메모리의 활용을 통해 클러스터링 된 기기들에 대해 브로드캐스팅 방식으로 요청메시지를 송신하고 이로부터 응답받는 경우의 수를 현저히 감소시킬 수 있다. 이는 데이터 전송 효율성을 개선하며, 실질적으로 사물 인터넷 환경에서 센서에 해당하는 클러스터링 된 기기들의 동작 속도와 수명에 긍정적으로 작용하게 된다.
상기 겟메서드(get method) 명령의 옵션은 종래 코앱(CoAP) 프로토콜에서 정의되어 있는 것으로 기본 옵션은 'Accept'와 'Conditional GETs' 두 가지가 있다. 본 발명의 일 실시예는 상기 기본 옵션에 추가로 아래 표에 기재된 것과 같은 옵션을 새롭게 정의한다.
Name Type Description
멀티유알아이패스
(Multi-URI-path)
100 Request multiple resource representatives
시간 제한
(Time-limit)
101 Limit the response time
수정시간
(Include-modified-time)
102 Request the representative with modified-time attribute
상기 표2를 참조하면 종래 코앱(CoAP) 프로토콜은 uri-path가 기본(default)으로 설정되어 하나의 토픽에 관한 정보만을 포함할 수 있도록 하는 것에 반해, 멀티 유알아이 패스(Multi-URI-path) 옵션을 추가하여 토픽에 관한 정보를 복수로 포함할 수 있도록 한다. 이 경우 복수의 토픽에 관한 정보를 담고 있는 요청메시지는 하나의 메시지로 송신될 수 있다. 상기 멀티 유알아이 패스(Multi-uri-path)가 선택되는 경우 상기 정보메시지에 대한 응답시간은 상기 시간제한(Time-limit) 옵션을 통해 별도로 제한하는 것이 좋다. 동일한 응답시간을 적용하는 경우 기본 설정에 따른 요청메시지(URI-path)에 대한 응답을 기다리는 경우에 비해 시간이 길어질 수 있음에도 응답시간이 경과한 것으로 판단하여 제대로 정보전달이 이루어지지 못하기 때문이다. 상기 시간제한(Time-limit) 옵션을 통해 별도로 제한하는 응답시간은 20초 내지 40초인 것이 좋다. 수정시간(Include-modified-time) 옵션은 토픽의 정보가 수정된 시간(상기 캐시메모리 테이블의 속성값으로서 저장된 시간을 의미)을 요청한다.
상술한 바와 같이 데이터 전달 장치(100)가 서버(20)에 Observe 등록을 완료하였으므로, 송신부(110)가 별도의 요청 메시지를 보내지 않더라도 수신부(120)가 기 설정된 조건이 될 때마다 정보 메시지를 수신할 수 있다. 상기 기 설정된 조건은 토픽 정보와 관련된 정보가 변경된 경우, 기 설정된 시간이 지난 경우, 및 상기 토픽 정보와 관련된 수치값이 기 설정된 값에 도달한 경우 중 적어도 하나를 포함할 수 있다.
송신부(110)는 토픽 정보와 관련된 정보 메시지를 해당 토픽 정보에 기반하여 형성된 군집에 속하는 기기들에게 멀티캐스팅 방식으로 송신할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 데이터 전달 방법을 설명하기 위한 것으로 캐시메모리에 요청된 데이터가 없는 경우를 설명하기 위한 예시적인 흐름도이다.
서버는 클라이언트들로부터 겟 메서드(get method) 명령이 포함된 요청 메시지(request message)를 받는다. 도 5에서 클라이언트1은 센서1과 센서3에 대한 요청 메시지(GET/센서1, GET/센서3)를, 클라이언트2는 센서2에 대한 요청 메시지(GET/센서2)를 송신하고 있다. 서버는 상기 요청 메시지들을 수신하기 위해 일정 시간 동안 대기한 뒤, 멀티 유알아이 패스(Multi-URI-path) 옵션을 포함한 하나의 요청 메시지(GET/cluster Multi-uri-path[센서1, 센서2, 센서3])로 클러스터 헤드에 송신한다. 클러스터 헤드는 캐시메모리의 캐시테이블을 참조하고 상기 캐시테이블에 요청된 데이터가 없기 때문에 멀티캐스팅을 통하여 각 센서들에게 요청메시지(Multicast[{"topic":"센서1"},{"topic":"센서2"},{"topic":"센서3"}])를 송신한다. 각 센서들은 토픽에 관한 정보들을 담고 있는 데이터(2.05 content)를 송신한다. 클러스터 헤드는 센서들로부터 수신한 상기 데이터(2.05 content)들을 이용하여 상기 캐시 테이블을 업데이트하고 수신한 상기 데이터(2.05 content)들을 한번에 보낸다. 즉, 상기 서버의 요청 메시지(request message)에 멀티 유알아이 패스(Multi-URI-path) 옵션이 포함되어 있기 때문에 클러스터 헤드도 이에 상응하도록 센서1 내지 센서3의 토픽 정보를 포함하는 하나의 메시지( 2.05 content[{"센서1":"value"},"센서2":"value"},"센서3":"value"}] )로 송신하는 것이다. 이 후 서버는 각 클라이언트 요청에 따른 메시지를 각각 하나의 메시지(2.05 content)로 송신한다.
도 6은 본 발명의 일 실시 예에 따른 데이터 전달 방법을 설명하기 위한 것으로 캐시메모리에 요청된 데이터가 모두 있는 경우를 설명하기 예시적인 흐름도이다.
서버는 클라이언트들로부터 겟 메서드(get method) 명령이 포함된 요청 메시지(request message)를 받는다. 도 6에서 클라이언트1은 센서2과 센서3에 대한 요청 메시지(GET/센서2, GET/센서3)를, 클라이언트2는 센서1에 대한 요청 메시지(GET/센서1)를 송신하고 있다. 서버는 상기 요청 메시지(request message)들을 수신하기 위해 일정 시간 동안 대기한 뒤, 멀티 유알아이 패스(Multi-URI-path) 옵션을 포함한 하나의 요청 메시지(GET/cluster Multi-uri-path[센서1, 센서2, 센서3])로 클러스터 헤드에 송신한다. 클러스터 헤드는 캐시메모리의 캐시테이블을 참조하고 요청된 데이터가 상기 캐시테이블에 존재하고 있으므로 각 센서들에 대해 요청 메시지(request message)를 송신할 필요 없이 바로 상기 캐시테이블에서 상기 요청된 데이터를 하나의 메시지( 2.05 content[{"센서1":"value"},"센서2":"value"},"센서3": "value"}] )로 서버에 송신한다. 이후의 절차는 도 5에서 설명한 것과 같은 방식으로 이루어진다.
도 7은 본 발명의 일 실시 예에 따른 데이터 전달 방법을 설명하기 위한 것으로 캐시메모리에 요청된 데이터가 일부만 있는 경우를 설명하기 위한 예시적인 흐름도이다.
상기 도 5와 도 6에서 상술한 바와 같이 클러스터 헤드는 요청된 데이터가 캐시테이블에 있는 지 참조한다. 참조 결과, 센서1의 토픽 정보는 캐시테이블에 존재하나 센서2의 토픽 정보는 캐시테이블에 없기 때문에 클러스터 헤드는 센서2에 대해서만 요청 메시지(GET/센서2)를 송신한다. 센서2는 토픽정보를 포함한 메시지(2.05 content "resource representative")를 클러스터 헤드에 송신한다. 클러스터 헤드는 센서2가 송신한 상기 메시지(2.05 content "resource representative")를 기준으로 캐시테이블을 업데이트하고 캐시테이블의 센서1에 관한 데이터와 센서2로부터 수신한 데이터를 하나의 메시지( 2.05 content[{"센서1":"value"},"센서2":"value"}] )로 서버에 송신한다. 이후의 절차는 도 5에서 설명한 것과 같은 방식으로 이루어진다.
이하 도 8 내지 도 10을 참조하여 실시 예1의 효과에 대해 구체적으로 설명한다.
도 8은 본 발명의 일 실시 예와 비교 예들간에 센서 수에 따른 대역폭 사용량을 비교한 그래프이다.
본 실험에서 클러스터 헤드가 요청 메시지를 위해 대기하는 시간은 1초로 고정하였고, 토픽을 요청하는 간격은 60초, 캐시테이블에 하나의 토픽 정보를 저장하는 시간은 30초로 고정하였다. 그리고 서버의 수를 변경하며 각 비교예 및 실시예1이 요구하는 대역폭 사용량(Bandwidth)을 측정하였다.
도 8을 참조하면 Clusted-based CoAP은 센서의 수가 20일 때 CoAP에 비해 좋은 성능을 보여준다. 실시예1은 캐시메모리를 사용하여 Cluster-based CoAP보다 개선된 결과를 보여준다. 멀티 유알아이 패스(Multi-URI-path) 옵션을 사용함으로써 복수의 메시지는 하나의 메시지로 보내진다는 점에서 메시지의 패킷 크기를 증가시키나 메시지 송신횟수를 감소시켜준다. 이는 대역폭 사용량(Bandwidth) 측면에서 긍정적으로 작용한다. 클러스터 헤드는 캐시테이블에 있는 데이터를 사용하는 경우 센서에 요청 메시지를 보내지 않는다. 결국 센서에 대한 요청 메시지를 감소시켜주며 대역폭 사용량(Bandwidth)도 감소시킨다. 센서에 대한 요청 메시지의 감소는 센서의 수명과 동작속도에 긍정적으로 작용한다.
센서의 수가 증가함에 따라 CoAP의 대역폭 사용량은 꾸준히 증가하며 Cluster-based와 실시예1간 대역폭 사용량(Bandwidth) 차이도 증가하는 것을 알 수 있다..
도 9는 본 발명의 일 실시 예와 비교 예들간에 메시지 요청 간격(interval)에 따른 대역폭 사용량(Bandwidth)을 비교한 그래프이다.
본 실험에서 클러스터 헤드가 요청 메시지를 위해 대기하는 시간은 1초로 고정하고 센서의 수는 50개, 캐시테이블에 하나의 토픽 정보를 저장하는 시간은 30초로 고정하였다. 그리고 토픽을 요청하는 간격(interval)을 변경하며 각 비교예 및 실시예1이 요구하는 대역폭 사용량(Bandwidth)을 측정하였다.
도 9를 참조하면 토픽을 요청하는 메시지의 간격(interval)이 짧을수록 다른 비교 예들에 비해 실시예1이 좋은 성능을 보여주고 있음을 확인할 수 있다. 캐시메모리에 저장된 데이터가 만료되기 전에 요청메시지 횟수가 증가하는 경우 클러스터 헤드는 센서에 요청메시지를 보낼 필요가 없다. 즉 짧은 간격(interval)으로 요청메시지 횟수가 증가하는 경우 캐시메모리에 저장된 데이터는 아직 만료되기 전일 것이므로 클러스터 헤드는 센서와의 송수신을 할 필요 없이 캐시메모리의 데이터를 사용하여 바로 서버로 송신한다. 이것이 대역폭 사용량(Bandwidth)이 감소하는 이유이다. 그러나 요청메시지의 간격(interval)이 증가하는 경우, 캐시메모리에 저장된 데이터가 만료되었을 확률이 증가함에 따라 멀티 유알아이 패스(Multi-URI-path)옵션을 사용하는 빈도도 낮아지게 된다. 그 결과 비교 예들과 실시예1간의 대역폭 사용량(Bandwidth)차이는 점점 줄어드는 것을 확인할 수 있다.
도 10은 본 발명의 일 실시 예와 비교 예들간에 센서에 대한 요청 횟수를 비교하는 그래프이다.
본 실험에서 클러스터 헤드가 요청 메시지를 위해 대기하는 시간은 1초로 고정하고 센서의 수는 50개, 캐시테이블에 하나의 토픽 정보를 저장하는 시간은 30초 및 토픽을 요청하는 간격(interval)은 30초 고정하였다. 그 후 각 비교예 및 실시예1이 센서에 전송한 요청 메시지의 횟수(The number of requests transferred to a sensor)를 측정하였다. 도 10을 참조하면 Cluster-based CoAP는 CoAP에 비해 근소하게 낮은 것을 확인 할 수 있다. 클러스터 헤드에 전송된 요청메시지로서 동일한 토픽을 요청하는 메시지가 중복되었기 때문이다.
이는 Cluster-based CoAP의 성능이 요청 횟수가 매우 많을 때 가장 좋을 것이란 것을 의미한다. 그리고 실시예1은 캐시메모리의 활용으로 인해 가장 좋은 성능을 보여주고 있음을 확인할 수 있다.

Claims (16)

  1. 사물 인터넷 네트워크상에서 서버 및 복수 개의 기기 사이에서 데이터를 전달하는 장치로,
    상기 복수 개의 기기에 상기 장치의 식별자를 송신하는 송신부;
    상기 복수 개의 기기로부터 토픽 정보를 수신하는 수신부; 및
    상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 클러스터링부를 포함하며,
    상기 수신부는 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장하며, 상기 송신부는 클러스터링 결과 및 상기 클러스터링 된 기기들로부터 수신한 정보를 상기 서버로 송신하는 데이터 전달 장치.
  2. 제1항에 있어서,
    상기 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장함에 있어서,
    상기 수신한 정보의 속성을 구분하는 테이블에 저장하며,
    상기 속성은 상기 클러스터링 된 기기들 각각의 식별자, 상기 클러스터링 된 기기들로부터 수신한 각 토픽의 범주, 상기 클러스터링 된 기기들로부터 수신한 각 토픽이 저장된 시간, 상기 클러스터링 된 기기들로부터 수신한 각 토픽의 값인 것을 특징으로 하는 데이터 전달 장치.
  3. 제2항에 있어서,
    상기 테이블은 상기 테이블에 저장된 값이 기 설정된 조건을 충족 할 때마다 업데이트되며 상기 기 설정된 조건은 상기 클러스터링 된 기기들로부터 수신한 각 토픽이 저장된 시간으로부터 일정 시간이 경과한 것이며, 상기 테이블에서 상기 일정 시간이 경과한 데이터는 상기 테이블상에서 만료되는 것을 특징으로 하는 데이터 전달 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 서버가 하나 이상의 사용자 단말로부터 수신한 제어 메시지에 기반하여 생성한 정보 메시지를 상기 수신부가 수신한 경우에,
    요청된 토픽 정보가 상기 캐시메모리에 모두 저장되어 있는 경우 상기 송신부는 상기 캐시메모리에 저장된 토픽 정보를 상기 서버에 송신하고,
    상기 요청된 토픽 정보 중 일부만 캐시메모리에 저장되어 있는 경우(만료된 경우를 포함) 상기 송신부는 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보가 없는 기기들에 대하여 제1 요청메시지를 송신하고 상기 수신부가 상기 제1 요청메시지에 따른 정보를 수신한 뒤, 상기 송신부는 상기 제1 요청메시지에 따른 정보와 상기 캐시메모리에 저장된 정보를 함께 서버에 송신하며,
    상기 요청된 토픽 정보가 캐시메모리에 없는 경우(만료된 경우를 포함) 상기 송신부는 상기 클러스터링 된 기기들 중 요청된 토픽 정보와 연관된 기기들에 대하여 제2 요청메시지를 송신하고 상기 수신부가 상기 제2 요청메시지에 따른 정보를 수신한 뒤, 상기 송신부는 제2 요청메시지에 따른 정보를 서버에 송신하는 것을 특징으로 하는 데이터 전달 장치.
  5. 제4항에 있어서,
    상기 정보 메시지는 상기 클러스터링 된 기기들로부터 송신된 토픽 정보와 관련된 정보와 겟 메서드(get method) 명령의 옵션을 포함하며, 상기 겟 메서드(get method) 명령의 옵션은 상기 정보 메시지가 상기 토픽 정보를 복수로 포함할 수 있도록 하는 멀티 유알아이 패스(Multi-URI-path), 상기 정보 메시지에 대한 응답시간을 제한하는 시간 제한(Time-limit), 상기 토픽 정보가 수정된 시간을 요청하는 수정시간(Include-modified-time)을 더 포함하는 것을 특징으로 하는 데이터 전달 장치.
  6. 제5항에 있어서,
    상기 겟 메서드(get method) 명령의 옵션 중 멀티 유알아이 패스(Multi-URI-path)가 선택된 경우 상기 시간 제한(Time-limit)이 함께 선택되는 것을 특징으로 하는 데이터 전달 장치.
  7. 서버, 복수 개의 기기, 및 상기 서버와 상기 복수 개의 기기 사이에서 데이터를 전달하는 데이터 전달 장치를 포함하는 사물 인터넷 시스템으로,
    상기 데이터 전달 장치는 상기 복수 개의 기기에 자신의 식별자를 송신하고,
    상기 식별자를 송신받은 기기는 상기 식별자 및 구독하고자 하는 토픽 정보를 포함하는 요청 메시지를 상기 데이터 전달 장치로 송신하며,
    상기 데이터 전달 장치는 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하여 클러스터링 결과 및 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장한 후 상기 서버로 송신하고,
    상기 서버는 상기 시스템에 접속된 하나 이상의 사용자 단말로부터 토픽 정보를 포함하는 제어 메시지를 수신하며 기 설정된 조건이 될 때마다 상기 데이터전달 장치로 상기 제어 메시지에 기반하여 생성된 정보 메시지를 송신하고, 상기 정보 메시지는 상기 토픽 정보와 관련된 정보와 겟 메서드(get method) 명령의 옵션을 포함할 수 있는 것을 특징으로 하는 사물 인터넷 시스템.
  8. 제7항에 있어서,
    상기 정보 메시지를 수신한 상기 데이터 전달 장치는
    요청된 토픽 정보가 상기 캐시메모리에 모두 저장되어 있는 경우 상기 캐시메모리에 저장된 토픽 정보를 상기 서버에 송신하고,
    상기 요청된 토픽 정보 중 일부만 캐시메모리에 저장되어 있는 경우(만료된 경우를 포함) 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보가 없는 기기들에 대해 제1 요청메시지를 송신하여 이로부터 수신한 정보와 상기 캐시메모리에 저장된 정보를 함께 서버에 송신하고,
    상기 요청된 토픽 정보가 캐시메모리에 없는 경우(만료된 경우를 포함) 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보와 연관된 기기들에 대해 제2 요청메시지를 송신하여 이로부터 수신한 정보를 서버에 송신하는 것을 특징으로 하는 사물 인터넷 시스템.
  9. 제8항에 있어서,
    상기 겟 메서드(get method) 명령의 옵션은 상기 정보 메시지가 상기 토픽 정보를 복수로 포함할 수 있도록 하는 멀티 유알아이 패스(Multi-URI-path), 상기 정보 메시지에 대한 응답시간을 제한하는 시간 제한(Time-limit), 상기 토픽 정보가 수정된 시간을 요청하는 수정시간(Include-modified-time)을 더 포함하는 것을 특징으로 하는 사물 인터넷 시스템.
  10. 제9항에 있어서,
    상기 겟 메서드(get method) 명령의 옵션 중 멀티 유알아이 패스(Multi-URI-path)가 선택된 경우 상기 시간 제한(Time-limit)이 함께 선택되는 것을 특징으로 하는 사물 인터넷 시스템.
  11. 사물 인터넷 네트워크상의 복수 개의 장치들 사이에서 데이터를 전달하는 방법으로,
    데이터 전달 장치가 복수 개의 기기로 자신의 식별자를 송신하는 단계;
    상기 복수 개의 기기가 상기 데이터 전달 장치로 토픽 정보를 포함하는 요청
    메시지를 송신하는 단계;
    상기 데이터 전달 장치가 상기 토픽 정보에 기반하여 상기 복수 개의 기기를 클러스터링하는 단계;
    상기 데이터 전달 장치가 클러스터링 결과 및 클러스터링 된 기기들로부터 수신한 정보를 캐시메모리에 저장한 후 서버로 송신하는 단계;
    상기 서버가 상기 사물 인터넷 네트워크에 접속된 하나 이상의 사용자 단말로부터 토픽 정보 및 해당 토픽 정보와 관련된 정보를 포함하는 제어 메시지를 수신하는 단계; 및
    상기 서버가 기 설정된 조건이 될 때마다 상기 데이터 전달 장치에 상기 제어 메시지에 기반하여 생성된 정보 메시지를 송신하는 단계를 포함하며,
    상기 정보 메시지는 상기 토픽 정보와 관련된 정보와 겟 메서드(get method) 명령의 옵션을 포함할 수 있는 것을 특징으로 하는 데이터 전달 방법.
  12. 제11항에 있어서,
    상기 정보 메시지를 수신한 상기 데이터 전달 장치는
    요청된 토픽 정보가 상기 캐시메모리에 모두 저장되어 있는 경우 상기 캐시메모리에 저장된 토픽 정보를 상기 서버에 송신하고,
    상기 요청된 토픽 정보 중 일부만 캐시메모리에 저장되어 있는 경우(만료된 경우를 포함) 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보가 없는 기기들에 대해 제1 요청메시지를 송신하여 이로부터 수신한 정보와 상기 캐시메모리에 저장된 정보를 함께 서버에 송신하고,
    상기 요청된 토픽 정보가 캐시메모리에 없는 경우(만료된 경우를 포함) 상기 클러스터링 된 기기들 중 상기 요청된 토픽 정보와 연관된 기기들에 대해
    제2 요청메시지를 송신하여 이로부터 수신한 정보를 서버에 송신하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 전달 방법.
  13. 제12항에 있어서,
    상기 겟 메서드(get method) 명령의 옵션은, 겟 메서드(get method) 기본 옵션에 상기 정보 메시지가 상기 토픽 정보를 복수로 포함할 수 있도록 하는 멀티 유알아이 패스(Multi-URI-path), 상기 정보 메시지에 대한 응답시간을 제한하는 시간 제한(Time-limit), 상기 토픽 정보가 수정된 시간을 요청하는 수정시간(Include-modified-time)을 더 포함하는 것을 특징으로 하는 데이터 전달 방법.
  14. 제13항에 있어서,
    상기 겟 메서드(get method) 명령의 옵션 중 멀티 유알아이 패스(Multi-URI-path)가 선택된 경우 상기 시간 제한(Time-limit)이 함께 선택되는 것을 특징으로 하는 데이터 전달 방법.
  15. 제11항 내지 제14항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  16. 하드웨어와 결합되어 제11항 내지 제14항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된 프로그램.

KR1020170153908A 2017-11-17 2017-11-17 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램 KR101969652B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170153908A KR101969652B1 (ko) 2017-11-17 2017-11-17 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170153908A KR101969652B1 (ko) 2017-11-17 2017-11-17 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램

Publications (1)

Publication Number Publication Date
KR101969652B1 true KR101969652B1 (ko) 2019-04-16

Family

ID=66281707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170153908A KR101969652B1 (ko) 2017-11-17 2017-11-17 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램

Country Status (1)

Country Link
KR (1) KR101969652B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140102751A (ko) * 2011-12-14 2014-08-22 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 연결된 장치들을 위한 시맨틱 캐쉬 클라우드 서비스
KR20160148703A (ko) * 2014-05-27 2016-12-26 후아웨이 테크놀러지 컴퍼니 리미티드 클러스터링 저장 방법 및 장치
KR101742524B1 (ko) 2016-05-13 2017-06-01 연세대학교 산학협력단 CoAP 기반 매시업 서비스를 제공하기 위한 시스템 및 그 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140102751A (ko) * 2011-12-14 2014-08-22 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 연결된 장치들을 위한 시맨틱 캐쉬 클라우드 서비스
KR20160148703A (ko) * 2014-05-27 2016-12-26 후아웨이 테크놀러지 컴퍼니 리미티드 클러스터링 저장 방법 및 장치
KR101742524B1 (ko) 2016-05-13 2017-06-01 연세대학교 산학협력단 CoAP 기반 매시업 서비스를 제공하기 위한 시스템 및 그 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Architecture for IoT Domain With CoAP Observe Feature(Jelena Misić et al, IEEE, 2018.02.01.) *
CoAP-Based Mobility Management for the Internet of Things(Seung-Man Chun et al, 2015.07.03.) *
Performance Improvement of Cache Management In Cluster Based MANET(Abdulaziz Zam et al, 2013.10.24.) *

Similar Documents

Publication Publication Date Title
CN111602452B (zh) 用于多播-广播会话释放和修改的方法和系统
CN108512885B (zh) 用于网络包处理的方法、系统和存储介质
KR102615419B1 (ko) 가입 및 통지 서비스
EP3621269A1 (en) Live broadcast method, system and related device
CN114270344A (zh) 用于递送实时消息的消息传递平台
EP3229420A1 (en) Method for establishing persistent connection between multiple smart devices and server, and smart device
CN106230896A (zh) 一种消息推送方法、装置及系统
KR20120123203A (ko) 푸쉬 서비스 관리 방법 및 장치와 그 방법에 대한 프로그램 소스를 저장한 기록 매체
CN111083193A (zh) 长连接消息发送方法、服务器及存储介质
US11251981B2 (en) Communication method and apparatus
US20100017523A1 (en) Communication control apparatus and communication control method
EP1344347B1 (en) Managing network traffic using hashing functions
CN108228625B (zh) 一种推送消息处理方法及装置
CN110808948A (zh) 远程过程调用方法、装置及系统
WO2021087892A1 (zh) 资源的订阅方法、设备及存储介质
CN112491951B (zh) 对等网络中的请求处理方法、服务器及存储介质
KR101969652B1 (ko) 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램
TWI469578B (zh) Access control method, access control device and access control program
WO2016197783A2 (zh) 控制消息的发送方法及装置
EP2282448A1 (en) Technique for controlling device management response messages
JPWO2006043411A1 (ja) 通信装置および端末存在確認方法
WO2014056146A1 (zh) 数据推送方法,装置及系统
CN114585026A (zh) 频点切换方法、终端、基站和存储介质
KR101972470B1 (ko) 데이터 전달 장치, 방법, 및 그를 이용한 사물 인터넷 시스템
CN110932874B (zh) 分布式消息广播通知实现方法

Legal Events

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