KR102031726B1 - 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법 - Google Patents

분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법

Info

Publication number
KR102031726B1
KR102031726B1 KR1020170153357A KR20170153357A KR102031726B1 KR 102031726 B1 KR102031726 B1 KR 102031726B1 KR 1020170153357 A KR1020170153357 A KR 1020170153357A KR 20170153357 A KR20170153357 A KR 20170153357A KR 102031726 B1 KR102031726 B1 KR 102031726B1
Authority
KR
South Korea
Prior art keywords
server
topic
client
main
topics
Prior art date
Application number
KR1020170153357A
Other languages
English (en)
Other versions
KR20190056185A (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 KR1020170153357A priority Critical patent/KR102031726B1/ko
Publication of KR20190056185A publication Critical patent/KR20190056185A/ko
Application granted granted Critical
Publication of KR102031726B1 publication Critical patent/KR102031726B1/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/16
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

하나의 그룹에 속하는 복수의 서버들의 정보를 관리하는 메인 서버를 포함하는 분산된 게시-구독 기법을 이용한 사물 인터넷 시스템의 작동 방법은, 제1 서버가 상기 메인 서버의 IP 주소를 이용하여 상기 메인 서버로 상기 그룹에 가입하기 위한 등록을 요청하는 단계와, 상기 메인 서버가 상기 제1 서버를 상기 그룹에 등록하고, 상기 메인 서버는 상기 제1 서버로 상기 복수의 서버들 중에서 제3 서버의 IP 주소를 전송하는 단계와, 상기 제1 서버는 상기 제3 서버의 IP 주소를 이용하여 상기 제3 서버로 상기 제3 서버가 관리하는 토픽들 중에서 제1 토픽을 요청하는 단계와, 상기 제3 서버는 상기 제1 토픽을 상기 제1 서버에게 전송하고, 상기 제3 서버로부터 상기 제1 토픽에 대한 정보를 구독한 제1 클라이언트에게 상기 제1 토픽과 상기 제1 서버의 IP 주소를 전송하는 단계와, 상기 제1 클라이언트가 상기 제1 서버의 IP 주소와 상기 제1 토픽을 이용하여 상기 제1 서버로 상기 제1 토픽에 대한 정보의 구독을 요청하는 단계를 포함한다.

Description

분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법{OPERATING METHOD FOR INTERNET OF THINGS SYSTEM BASED ON CoAP USING DISTRIBUTED PUBLISH-SUBSCRIBE TECHNIQUE}
본 발명의 개념에 따른 실시 예는 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법에 관한 것으로, 특히, 서버들의 부하를 줄이기 위한 CoAP 기반 사물 인터넷 시스템의 작동 방법에 관한 것이다.
최근 사물 인터넷에 대한 관심도가 증가하는 추세이다. 사물 인터넷이란 사물들이 인터넷에 연결되어 사람과 사물, 사물과 사물 사이에 정보를 교환하고 상호 소통하는 지능형 인프라를 의미한다. 최근 하드웨어의 발전과 함께 사물인터넷 장비들의 성능이 증가되었으며, 이러한 고성능 장비들을 이용한 스트리밍 서비스가 많이 개발되고 있다.
그러나, 사물 인터넷은 자원에 제한이 있어서 하이퍼본문전송규약(hypertext transfer protocol(HTTP))과 같은 일반적인 웹 프로토콜을 사용하기 힘들다. 이러한 문제를 해결하기 위해 경량화 프로토콜들이 등장하고 있다. 특히, CoAP observe(constrained application protocol observe) 프로토콜과 MQTT(MQ telemetry transport) 프로토콜은 게시/구독 통신 구조를 지원하는 대표적인 프로토콜로써 사물인터넷 스트리밍 서비스를 지원하기에 적합한 프로토콜이다.
하지만 이 두 프로토콜은 하나의 브로커 또는 서버를 사용하므로 스트리밍 서비스의 수 또는 사용자의 수가 증가하면 서버에 부하를 증가시키고 서버의 처리 시간을 지연시킨다.
등록특허 제10-1782245호는 CoAP 프로토콜에 기반하여 복수의 스마트 기기 중에서 대표 기기가 서비스 서버로부터 비콘 서비스에 기반한 콘텐츠를 수신하고, 수신된 콘텐츠를 다른 스마트 기기에 전송함으로써 네트워크의 비용을 줄일 수 있는 발명이 개시된다.
그러나, 상기 선행기술문헌은 서로 다른 장소에서 서로 다른 서비스를 원하는 복수의 클라이언트들이 존재할 경우에는 여전히 개별 기기가 직접 서버로 콘텐츠를 요청해야 하므로 서버에 부하를 증가시키고 서버의 처리 시간을 지연키는 문제점이 여전히 남아있다.
등록특허 제10-1782245호
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법은 서버들 사이에서 토픽들을 분산하여 관리함으로써 서버들의 부하를 줄이는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위한 본 발명의 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법은 하나의 그룹에 속하는 복수의 서버들의 정보를 관리하는 메인 서버를 포함하고, 제1 서버가 상기 메인 서버의 IP 주소를 이용하여 상기 메인 서버로 상기 그룹에 가입하기 위한 등록을 요청하는 단계와, 상기 메인 서버가 상기 제1 서버를 상기 그룹에 등록하고, 상기 메인 서버는 상기 제1 서버로 상기 복수의 서버들 중에서 제3 서버의 IP 주소를 전송하는 단계와, 상기 제1 서버는 상기 제3 서버의 IP 주소를 이용하여 상기 제3 서버로 상기 제3 서버가 관리하는 토픽들 중에서 제1 토픽을 요청하는 단계와, 상기 제3 서버는 상기 제1 토픽을 상기 제1 서버에게 전송하고, 상기 제3 서버로부터 상기 제1 토픽에 대한 정보를 구독한 제1 클라이언트에게 상기 제1 토픽과 상기 제1 서버의 IP 주소를 전송하는 단계와, 상기 제1 클라이언트가 상기 제1 서버의 IP 주소와 상기 제1 토픽을 이용하여 상기 제1 서버로 상기 제1 토픽에 대한 정보의 구독을 요청하는 단계를 포함한다.
상기 방법은 상기 메인 서버가 상기 제1 토픽에 대응하는 제1 센서로부터 제1 센서 값을 수신하는 단계와, 상기 메인 서버가 상기 제1 센서 값을 상기 제1 서버로 전송하는 단계와, 상기 제1 서버는 상기 메인 서버로부터 상기 제1 센서 값을 수신하고, 상기 제1 센서 값을 상기 제1 클라이언트로 전송하는 단계를 더 포함한다.
상기 방법은 제2 클라이언트가 상기 메인 서버로 상기 제1 토픽에 대한 정보의 구독을 요청하면, 상기 메인 서버는 상기 복수의 서버들 중에서 상기 제1 토픽을 관리하는 서버를 검색하는 단계와, 검색의 결과, 상기 복수의 서버들 중에서 상기 제1 서버가 상기 제1 토픽을 관리하는 서버라고 판단이 되면, 상기 메인 서버는 상기 제2 클라이언트로 상기 제1 토픽과 상기 제1 서버의 IP 주소를 전송하는 단계를 더 포함한다.
상기 방법은 상기 메인 서버가 상기 제1 토픽에 대응하는 제1 센서로부터 제1 센서 값을 수신하는 단계와, 상기 메인 서버가 상기 제1 센서 값을 상기 제1 서버로 전송하는 단계와, 상기 제1 서버는 상기 메인 서버로부터 상기 제1 센서 값을 수신하고, 상기 제1 센서 값을 상기 제1 클라이언트와 상기 제2 클라이언트로 전송하는 단계를 더 포함한다.
상기 방법은 상기 제1 클라이언트가 상기 메인 서버로 제2 토픽에 대한 정보의 구독을 요청하면, 상기 메인 서버는 상기 복수의 서버들 중에서 상기 제2 토픽을 관리하는 서버를 검색하는 단계와, 검색의 결과, 상기 복수의 서버들 중에서 상기 제2 토픽을 관리하는 서버가 존재하지 않는다고 판단이 되면, 상기 메인 서버는 상기 복수의 서버들 중에서 제4 서버에게 상기 제2 토픽을 관리할 것을 요청하는 단계와, 상기 메인 서버가 상기 서버 4로부터 응답 메시지를 수신하면, 상기 메인 서버는 상기 제1 클라이언트로 상기 제2 토픽과 상기 제4 서버의 주소를 전송하는 단계를 더 포함한다.
상기와 같은 목적을 달성하기 위한 본 발명의 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법은 하나의 그룹에 속하는 복수의 서버들의 정보를 관리하는 메인 서버를 포함하고, 상기 복수의 서버들 중에서 제1 서버는 제2 서버로 상기 제2 서버가 관리하는 토픽들 중에서 적어도 하나 이상의 제1 토픽을 요청하는 단계와, 상기 제1 서버는 상기 제2 서버로부터 상기 제1 토픽을 수신하는 단계와, 상기 제1 서버는 상기 메인 서버로 상기 제1 토픽을 전송하는 단계와, 상기 제2 서버는 상기 제2 서버로부터 상기 제1 토픽을 구독한 제1 클라이언트에게 상기 제1 토픽과 상기 제1 서버의 IP 주소를 전송하는 단계와, 상기 제1 클라이언트는 상기 제1 서버로 상기 제1 토픽에 대한 구독을 요청하는 단계를 포함한다.
상기 방법은 상기 메인 서버가 상기 제1 토픽에 대응하는 제1 센서로부터 제1 센서 값을 수신하는 단계와, 상기 메인 서버는 상기 제1 센서 값을 상기 제1 서버로 전송하는 단계와, 상기 제1 서버는 상기 메인 서버로부터 상기 제1 센서 값을 수신하고, 상기 제1 센서 값을 상기 제1 클라이언트로 전송하는 단계를 더 포함한다.
상기 제1 서버가 상기 제2 서버로 적어도 하나 이상의 제1 토픽을 요청하는 단계는, 상기 제1 서버가 상기 제2 서버로 상기 제2 서버가 관리하는 토픽들의 수를 요청하는 단계와, 상기 제1 서버는 상기 제2 서버로부터 상기 제2 서버가 관리하는 토픽들의 수를 수신하는 단계와, 상기 제1 서버는 상기 제1 서버가 관리하는 토픽들의 수와 상기 제2 서버가 관리하는 토픽들의 수를 비교하는 단계와, 비교의 결과 상기 제1 서버가 관리하는 토픽들의 수보다 상기 제2 서버가 관리하는 토픽들의 수가 더 많으면, 상기 제1 서버가 상기 제2 서버로 상기 제2 서버가 관리하는 토픽들 중에서 적어도 하나 이상의 제1 토픽을 요청하는 단계를 포함한다.
상기 방법은 제2 클라이언트가 상기 메인 서버로 상기 제1 토픽에 대한 정보의 구독을 요청하면, 상기 메인 서버는 상기 복수의 서버들 중에서 상기 제1 토픽을 관리하는 서버를 검색하는 단계와, 검색의 결과, 상기 복수의 서버들 중에서 상기 제1 서버가 상기 제1 토픽을 관리하는 서버라고 판단이 되면, 상기 메인 서버는 상기 제2 클라이언트로 상기 제1 토픽과 상기 제1 서버의 IP 주소를 전송하는 단계를 더 포함한다.
상기 방법은 상기 메인 서버가 상기 제1 토픽에 대응하는 제1 센서로부터 제1 센서 값을 수신하는 단계와, 상기 제1 서버는 상기 메인 서버로부터 상기 제1 센서 값을 수신하고, 상기 제1 센서 값을 상기 제1 클라이언트와 상기 제2 클라이언트로 전송하는 단계를 더 포함한다.
상기한 바와 같은 본 발명의 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법은 서버들 사이에서 토픽들을 분산하여 관리함으로써 서버들의 부하를 줄일 수 있는 효과를 제공할 수 있다.
또한, 상기한 바와 같은 본 발명의 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법은 토픽들의 수가 증가하거나 스트리밍 서비스가 증가하더라도 서버의 처리 시간을 감소시킬 수 있는 효과를 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 사물 인터넷 네트워크 시스템을 나타낸다.
도 2는 본 발명의 실시 예에 따른 서버의 그룹 가입 절차를 설명하기 위한 데이터 흐름을 나타낸다.
도 3은 본 발명의 실시 예에 따른 클라이언트의 구독 등록 절차와 구독 요청 절차를 설명하기 위한 데이터 흐름을 나타낸다.
도 4는 본 발명의 실시 예에 따른 토픽 분산 절차를 설명하기 위한 데이터 흐름을 나타낸다.
도 5는 본 발명의 실시 예에 따른 분산된 게시-구독 기법을 이용한 사물 네트워크 시스템의 구조를 나타낸다.
도 6은 본 발명의 실시 예에 따른 분산된 게시-구독 기법에 대한 등록 처리 시간을 나타낸다.
도 7은 본 발명의 실시 예에 따른 분산된 게시-구독 기법에 대한 전체 지연을 나타낸다.
도 1은 본 발명의 실시 예에 따른 CoAP 기반 사물 인터넷 네트워크 시스템을 나타낸다. 도 1을 참조하면, CoAP 기반 사물 인터넷 네트워크 시스템(10)은 복수의 센서들(100-1, 100-2, 100-3, 100-4), 메인 서버(200), 복수의 서브 서버들(300-1, 300-2, 300-3), 및 복수의 클라이언트들(410-1, 410-2, 410-3, 430-1, 430-2, 430-3, 450-1, 450-2, 450-3)을 포함한다.
본 명세서에서 CoAP 기반 사물 인터넷 네트워크 시스템(10)은 CoAP observe 프로토콜 기반의 분산된 게시-구독 기법이 적용된 시스템을 의미한다.
CoAP observe 프로토콜이란 클라이언트가 관심있는 서브젝트(subject) 또는 토픽(topic)을 서버에 등록하면, 상기 서버는 등록된 서브젝트 또는 토픽에 대응하는 센서로부터 센서 값을 수신하자마자 상기 클라이언트의 요청 없이도 바로 상기 센서 값을 상기 클라이언트에게 전달하는 통신 방식을 의미한다. 따라서, CoAP observe 프로토콜은 특히 스트리밍과 같은 서비스에 적합한 통신 구조를 가진다.
본 명세서에서 토픽은 클라이언트가 구독하고자 하는 정보를 의미할 수 있다. 예컨대, 제1 토픽은 습도 센서에 대응하는 '습도'를 의미할 수 있고, 제2 토픽은 온도 센서에 대응하는 '온도'를 의미할 수 있다. 실시 예에 따라, 제1 토픽은 제1 습도 센서에 대응하는 '습도'를 의미할 수 있고, 제2 토픽은 제2 습도 센서에 대응하는 '습도'를 의미할 수 있다.
본 명세서에서는 특히 분산된 게시-구독 기법을 이용한 CoAP observe 프로토콜의 확장을 제안한다. 표 1은 본 명세서에서 제안하는 확장된 CoAP observe 프로토콜을 나타낸다. 표 1에 기재된 바와 같이, 리다이렉트(REDIRECT) 옵션, 조인(JOIN) 옵션, 쿼리(QUERY) 옵션, 및 시프트(SHIFT) 옵션 각각은 CoAP 옵션 필드들을 사용하고, 리다이렉트(REDIRECT) 옵션, 조인(JOIN) 옵션, 쿼리(QUERY) 옵션, 및 시프트(SHIFT) 옵션 각각은 토픽들을 서버들 사이에서 분산시켜 관리하기 위해 사용될 수 있다.
옵션 이름
옵션 설명
REDIRECT
특정 토픽을 관리하는 다른 서버 주소를 포함하는 패킷임을 나타냄
JOIN
서버가 그룹에 참여하기 위해 사용됨
QUERY
수신자의들의 토픽 수를 검색하기 위해 사용됨
SHIFT
수신자로부터 특정 토픽들을 가져오기 위해 사용됨
본 발명의 실시 예에 따른 사물 인터넷 네트워크 시스템은 두 개 이상의 서버가 하나의 그룹을 형성하여 하나의 서버에 부하가 집중되지 않도록 토픽을 분산시켜 관리할 수 있다. 한편, 복수의 서버들 각각은 독립적으로 토픽과 클라이언트인 구독자를 관리하며 서비스를 제공하므로 구독자는 다수의 서버들을 하나의 강력한 서버로 인식할 수 있다.
그룹이 형성된 후 또 다른 서버가 이 그룹에 참여하기 위해서는 별도의 가입 절차가 필요하며 이하 도 2를 참조하여 서버의 그룹 가입 절차를 상세히 설명한다.
도 2는 본 발명의 실시 예에 따른 서버의 그룹 가입 절차를 설명하기 위한 데이터 흐름을 나타낸다. 도 2를 참조하면, 서버 5는 상기 그룹에 포함된 서버 2로 메인 서버의 IP(internet protocol) 주소를 요청하는 겟(GET) 메시지를 전송한다.
서버 2는 메인 서버의 IP 주소를 포함하는 응답 메시지(2.05 content)를 서버 5로 전송한다. 여기서 메인 서버는 복수의 서버들을 하나의 그룹으로 생성하고 원형 큐(circular queue)를 이용하여 상기 그룹에 속하는 서버들의 정보를 관리할 수 있다.
서버 5는 메인 서버의 IP 주소를 수신하고, 메인 서버의 IP 주소를 이용하여 메인 서버로 풋(PUT) 메시지를 전송한다. 상기 풋 메시지는 상기 그룹에 가입하기 위한 등록을 요청하는 조인 옵션을 포함한다.
메인 서버는 서버 5를 메인 서버가 관리하는 그룹에 등록시킨 후, 서버 3의 IP 주소와 서버 4의 IP 주소를 포함하는 응답 메시지(2.04 changed)를 서버 5로 전송한다.
서버 5는 서버 3의 IP 주소를 이용하여 서버 3으로 겟 메시지를 전송한다. 상기 겟 메시지는 서버 3이 관리하는 토픽들 중에서 제1 토픽을 요청하는 시프트 옵션을 포함한다.
서버 3은 서버 5에게 서버 3이 관리하는 토픽들 중에서 제1 토픽을 포함하는 응답 메시지(2.05 content)를 전송하고, 서버 3은 서버 3으로부터 상기 제1 토픽에 대한 정보를 구독한 제1 클라이언트와 제2 클라이언트 각각에게 응답 메시지(2.05 content)를 전송할 수 있다. 상기 응답 메시지(2.05 content)는 observe option(제1 토픽)과 서버 5의 IP 주소를 포함하고, 제1 클라이언트와 제2 클라이언트에게 '제1 토픽에 대한 정보는 서버 5로부터 수신하라'는 정보를 알리는 리다이렉트 옵션을 포함한다.
제 1클라이언트와 제2 클라이언트는 서버 5로부터 제1 토픽을 구독하기 위한 제1 토픽 구독 요청 절차가 필요하며 이하 도 3을 참조하여 구독 등록 절차와 구독 요청 절차를 상세히 설명한다.
도 3은 본 발명의 실시 예에 따른 클라이언트의 구독 등록 절차와 구독 요청 절차를 설명하기 위한 데이터 흐름을 나타낸다. 도 3을 참조하면, 제1 클라이언트는 제1 토픽에 대한 정보의 구독을 요청하기 위해 observe option(제1 토픽)을 포함하는 겟 메시지(GET)를 메인 서버로 전송한다.
메인 서버는 서버 1과 서버 2 중에서 제1 토픽를 관리하는 서버를 라운드로빈(Round Robin)방식을 이용하여 검색한다. 검색의 결과, 서버 1이 제1 토픽을 관리하는 서버라고 판단이 되면, 메인 서버는 메시지(2.05 content)를 제1 클라이언트에게 전송할 수 있다. 예컨대, 상기 메시지는 observe option(제1 토픽)과 서버 1의 IP 주소를 포함하고, '습도 정보는 서버 1로부터 수신하라'는 정보를 알리는 리다이렉트 옵션(REDIRECT)을 포함할 수 있다.
그러나, 제1 토픽을 관리하는 서버가 존재하지 않는다고 판단이 되면, 메인 서버는 서버 1에게 제1 토픽을 포함하는 포스트 메시지(POST)를 전송한다. 예컨대, 포스트 메시지는 서버 1에게 제1 토픽을 관리하라는 정보를 알리는 메시지를 의미할 수 있다. 서버 1은 포스트 메시지에 대한 응답 메시지(2.01 created)를 메인 서버로 전송한다.
메인 서버는 서버 1로부터 응답 메시지를 수신한 후, 메시지(2.05 content)를 제1 클라이언트로 전송할 수 있다. 상기 메시지는 observe option(제1 토픽)과 서버 1의 IP 주소를 포함하고 '습도 정보는 서버 1로부터 수신하라'는 정보를 알리는 리다이렉트 옵션을 포함한다.
observe option(제1 토픽)과 서버 1의 IP 주소를 포함하는 리다이렉트 옵션을 포함하는 메시지를 수신한 제1 클라이언트는 observe option(제1 토픽)을 포함하고 제1 토픽에 대한 정보의 구독을 요청하는 겟 메시지(GET)를 서버 1로 전송한다. 서버 1은 제1 클라이언트로 observe option(제1 토픽)를 포함하는 응답 메시지(2.05 content)를 전송한다.
따라서, 메인 서버가 제1 토픽에 대응하는 제1 센서로부터 제1 센서 값을 수신하면, 메인 서버는 상기 제1 센서 값을 제1 서버로 전송한다. 제1 서버는 메인 서버로부터 제1 센서 값을 수신하고, 상기 제1 센서 값을 제1 토픽에 대한 정보의 구독을 요청한 제1 클라이언트로 전송한다.
도 4는 본 발명의 실시 예에 따른 토픽 분산 절차를 설명하기 위한 데이터 흐름을 나타낸다. 도 4를 참조하면, 토픽 분산 절차에서는 두 서버 사이의 주기적인 상호 작용이 필요하다. 서버 1은 주기적으로 서버 2에게 쿼리 옵션(QUERY)을 포함하는 메시지를 전송한다. 쿼리 옵션은 수신자의 토픽들의 수를 요청하는 옵션을 의미할 수 있다.
서버 2는 상기 메시지에 응답하여 서버 1에게 자신이 관리하는 토픽들의 수를 포함하는 응답 메시지(2.05 content)를 전송한다.
서버 1은 자신이 관리하는 토픽들의 수보다 서버 2가 관리하는 토픽들의 수가 더 많다고 판단이 되면, 서버 1은 겟 메시지(GET)를 서버 2로 전송한다. 상기 겟 메시지는 서버 2가 관리하는 토픽들 중에서 적어도 하나 이상의 제2 토픽을 요청하는 시프트 옵션을 포함한다. 서버 2는 상기 제2 토픽을 포함하는 응답 메시지(2.05 content)를 서버 1로 전송한다.
서버 1은 메인 서버에게 제2 토픽과 시프트 옵션을 포함하는 풋 메지시(PUT)를 전송한다. 상기 풋 메시지는 메인 서버에게 서버 1가 제2 토픽을 관리하겠다는 정보를 알리는 메시지를 의미할 수 있다.
서버 2는 제2 토픽의 이동을 알리기 위해 서버 2로부터 제2 토픽에 대한 정보를 구독한 제1 클라이언트에게 메시지(2.05 content)를 전송한다. 상기 메시지는 observe option(제2 토픽)과 서버 1의 IP 주소를 포함하고, 제1 클라이언트에게 '제2 토픽에 대한 정보는 서버 1로부터 수신하라'는 정보를 알리는 리다이렉트 옵션을 포함한다.
제1 클라이언트는 제2 토픽에 대한 정보의 구독을 요청하기 위해 observe option(제2 토픽)을 포함하는 겟 메시지(GET)를 서버 1로 전송한다. 따라서, 서버 2가 관리하는 토픽들의 일부가 서버 1로 분산되어 관리됨으로써 토픽들의 수가 증가하더라도 서버 2에 부하가 집중되는 것을 방지할 수 있는 효과가 있다. 또한, 토픽들이 서버들에게 분산되어 관리되므로 도 7에서 설명할 바와 같이 전체 지연 시간이 감소한다.
제2 클라이언트가 메인 서버로 제2 토픽에 대한 정보의 구독을 요청하면, 메인 서버는 상기 제2 클라이언트로 상기 제2 토픽과 상기 서버 1의 IP 주소를 전송한다.
메인 서버가 제2 토픽에 대응하는 제2 센서로부터 제2 센서 값을 수신하면, 상기 메인 서버는 서버 1로 상기 제2 센서 값을 전송하고, 메인 서버로부터 상기 제2 센서 값을 수신한 서버 1은 상기 제2 센서 값을 제1 클라이언트와 제2 클라이언트로 전송한다.
따라서, 제2 토픽에 대한 정보의 구독을 요청한 클라이언트들의 수에 상관 없이 메인 서버는 서버 1로 제2 센서 값을 한번 전송하면, 상기 서버 1은 제2 센서 값을 수신하자마자 제2 토픽에 대한 정보의 구독을 요청한 클라이언트들의 요청 없이도 바로 각 클라이언트에게 제2 센서 값을 전송할 수 있다.
도 5는 본 발명의 실시 예에 따른 분산된 게시-구독 기법을 이용한 사물 네트워크 시스템의 구조를 나타낸다. 도 5를 참조하면, 하나의 그룹을 이루는 서버들 각각은 토픽들을 분산하여 관리한다. 제1 서버는 자신이 관리하는 제1 토픽에 대응하는 제1 센서로부터 제1 센서 값을 수신하면, 제1 서버에게 제1 토픽에 대한 구독 등록 및 구독 요청한 클라이언트들 각각으로부터 제1 센서 값에 대한 요청 없이도 각 클라이언트로 제1 센서 값을 전송할 수 있다.
마찬가지로, 제2 서버는 자신이 관리하는 제2 토픽에 대응하는 제2 센서로부터 제2 센서 값을 수신하면, 제2 서버에게 제2 토픽에 대한 구독 등록 및 구독 요청한 클라이언트들 각각으로부터 제2 센서 값에 대한 요청 없이도 각 클라이언트로 제2 센서 값을 전송할 수 있다.
도 6은 본 발명의 실시 예에 따른 분산된 게시-구독 기법에 대한 등록 처리 시간을 나타내고, 도 7은 본 발명의 실시 예에 따른 분산된 게시-구독 기법에 대한 전체 지연을 나타낸다.
도 6을 참조하면, 분산된 게시-구독 기법이 MQTT 프로토콜과 CoAP observe 프로토콜에 비해 등록 처리 시간이 더 길다. 왜냐하면, 클라이언트가 특정 토픽에 대한 정보를 요청하는 겟 메시지를 발행한 서버가 해당 토픽을 관리하지 않을 경우, 상기 클라이언트는 리다이렉트 옵션을 포함하는 메시지를 수신하기 때문이다.
그러나, 도 7을 참조하면, 전체 지연은 서버의 처리 시간과, 서버를 통한 게시자로부터 구독자까지의 전송 시간의 합을 의미한다. 토픽들의 수가 증가함에 따라 분산된 게시-구독 기법이 MQTT 프로토콜과 CoAP observe 프로토콜에 비해 전체 지연이 적다. 왜냐하면, 분산된 게시-구독 기법은 토픽들의 수가 증가함에 따라 토픽들이 서버들에게 분산되므로 처리 시간이 감소하기 때문이다.
100-1~100-4; 복수의 센서들
200; 메인 서버
300-1~300-3; 복수의 서버들
410-1~450-3; 복수의 클라이언트들

Claims (10)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 하나의 그룹에 속하는 복수의 서버들의 정보를 관리하는 메인 서버를 포함하는 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법에 있어서,
    상기 복수의 서버들 중에서 제1 서버는 제2 서버로 상기 제2 서버가 관리하는 토픽들 중에서 적어도 하나 이상의 제1 토픽을 요청하는 단계;
    상기 제1 서버는 상기 제2 서버로부터 상기 제1 토픽을 수신하는 단계;
    상기 제1 서버는 상기 메인 서버로 상기 제1 토픽을 전송하는 단계;
    상기 제2 서버는 상기 제2 서버로부터 상기 제1 토픽을 구독한 제1 클라이언트에게 상기 제1 토픽과 상기 제1 서버의 IP 주소를 전송하는 단계; 및
    상기 제1 클라이언트는 상기 제1 서버로 상기 제1 토픽에 대한 구독을 요청하는 단계;를 포함하고,
    상기 제1 서버가 상기 제2 서버로 적어도 하나 이상의 제1 토픽을 요청하는 단계는,
    상기 제1 서버가 상기 제2 서버로 상기 제2 서버가 관리하는 토픽들의 수를 요청하는 단계;
    상기 제1 서버는 상기 제2 서버로부터 상기 제2 서버가 관리하는 토픽들의 수를 수신하는 단계;
    상기 제1 서버는 상기 제1 서버가 관리하는 토픽들의 수와 상기 제2 서버가 관리하는 토픽들의 수를 비교하는 단계; 및
    비교의 결과 상기 제1 서버가 관리하는 토픽들의 수보다 상기 제2 서버가 관리하는 토픽들의 수가 더 많으면, 상기 제1 서버가 상기 제2 서버로 상기 제2 서버가 관리하는 토픽들 중에서 적어도 하나 이상의 제1 토픽을 요청하는 단계;를 포함하여,
    상기 제2 서버가 관리하는 토픽들의 일부가 상기 제1 서버로 분산되어 관리되는 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법.
  7. 제6항에 있어서,
    상기 메인 서버가 상기 제1 토픽에 대응하는 제1 센서로부터 제1 센서 값을 수신하는 단계;
    상기 메인 서버는 상기 제1 센서 값을 상기 제1 서버로 전송하는 단계; 및
    상기 제1 서버는 상기 메인 서버로부터 상기 제1 센서 값을 수신하고, 상기 제1 센서 값을 상기 제1 클라이언트로 전송하는 단계;를 더 포함하는 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법.
  8. 삭제
  9. 제6항에 있어서,
    제2 클라이언트가 상기 메인 서버로 상기 제1 토픽에 대한 정보의 구독을 요청하면, 상기 메인 서버는 상기 복수의 서버들 중에서 상기 제1 토픽을 관리하는 서버를 검색하는 단계; 및
    검색의 결과, 상기 복수의 서버들 중에서 상기 제1 서버가 상기 제1 토픽을 관리하는 서버라고 판단이 되면, 상기 메인 서버는 상기 제2 클라이언트로 상기 제1 토픽과 상기 제1 서버의 IP 주소를 전송하는 단계;를 더 포함하는 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법.
  10. 제9항에 있어서,
    상기 메인 서버가 상기 제1 토픽에 대응하는 제1 센서로부터 제1 센서 값을 수신하는 단계; 및
    상기 제1 서버는 상기 메인 서버로부터 상기 제1 센서 값을 수신하고, 상기 제1 센서 값을 상기 제1 클라이언트와 상기 제2 클라이언트로 전송하는 단계를 더 포함하는 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법.
KR1020170153357A 2017-11-16 2017-11-16 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법 KR102031726B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170153357A KR102031726B1 (ko) 2017-11-16 2017-11-16 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170153357A KR102031726B1 (ko) 2017-11-16 2017-11-16 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법

Publications (2)

Publication Number Publication Date
KR20190056185A KR20190056185A (ko) 2019-05-24
KR102031726B1 true KR102031726B1 (ko) 2019-10-14

Family

ID=66680211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170153357A KR102031726B1 (ko) 2017-11-16 2017-11-16 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법

Country Status (1)

Country Link
KR (1) KR102031726B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1969480A4 (en) * 2002-03-28 2008-12-03 Precache Inc METHOD AND DEVICE FOR RELIABLE AND EFFICIENT ROUTING ON CONTENT BASES AND QUESTIONS AND ANSWERS IN A PUBLISH SUBSCRIBE NETWORK
US8140630B2 (en) * 2008-03-05 2012-03-20 International Business Machines Corporation Publish/subscribe message broker for message sequences
KR101782245B1 (ko) 2016-01-28 2017-09-26 이화여자대학교 산학협력단 복수의 스마트 기기에 대한 CoAP 기반의 콘텐츠 제공 방법

Also Published As

Publication number Publication date
KR20190056185A (ko) 2019-05-24

Similar Documents

Publication Publication Date Title
US11418620B2 (en) Service request management
JP5898980B2 (ja) ネットワーク環境において非持続性のメッセージの複数のキューを管理する方法、システム及び記憶媒体
JP5232876B2 (ja) フィードをベースにした移動端末へのコンテンツの自動送信技術
US7418509B2 (en) Method and apparatus for a distributed server tree
US20020007374A1 (en) Method and apparatus for supporting a multicast response to a unicast request for a document
TWI315478B (en) Method of redirecting client requests to web services
WO2007032549A1 (ja) コンテンツ配信方法及びシステム
US20040181575A1 (en) Method and apparatus for providing peer-to-peer push using broadcast query
CN1981501A (zh) 调度内容文件的分发的方法和缓存服务器网络
CA2355286A1 (en) Optimizing bandwidth consumption for document distribution over a multicast enabled wide area network
RU2007145053A (ru) Способ и устройство для одновременного хостинга нескольких поставщиков услуг в сети
US20080034078A1 (en) Presence information management system, presence server device, gateway device and client device
US7231458B2 (en) Method and apparatus for discovering client proximity using race type translations
CN102055718A (zh) 一种在http streaming系统中实现分层请求内容的方法,装置和系统
US20140019549A1 (en) Control System for Conferencing Applications in Named-Data Networks
JP2015510301A5 (ko)
JP2008097314A (ja) 端末からのアクセス要求を空間的及び/又は時間的に分散させる仮接続方法、サーバ及びプログラム
AU777806B2 (en) Method and apparatus for anonymous subject-based addressing
TW200929941A (en) Apparatus and method for transmitting streaming services
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
CN103139658A (zh) 一种视频直播分发网络的被动式媒体流分发方法
KR102031726B1 (ko) 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법
US7167921B1 (en) Full duplex re-transmitter
US20110167171A1 (en) System and method for network content delivery
JP2018516478A5 (ko)

Legal Events

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