KR102060319B1 - IoT 플랫폼 서비스 서버 - Google Patents

IoT 플랫폼 서비스 서버 Download PDF

Info

Publication number
KR102060319B1
KR102060319B1 KR1020180110168A KR20180110168A KR102060319B1 KR 102060319 B1 KR102060319 B1 KR 102060319B1 KR 1020180110168 A KR1020180110168 A KR 1020180110168A KR 20180110168 A KR20180110168 A KR 20180110168A KR 102060319 B1 KR102060319 B1 KR 102060319B1
Authority
KR
South Korea
Prior art keywords
service
module
service server
mqtt
iot
Prior art date
Application number
KR1020180110168A
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 KR1020180110168A priority Critical patent/KR102060319B1/ko
Application granted granted Critical
Publication of KR102060319B1 publication Critical patent/KR102060319B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • H04L67/16
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • 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
    • H04L67/2809
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 oneM2M 표준 프로토콜 기반의 개방형 IoT 플랫폼 서버에 관한 것으로, 더욱 상세하게는 전문 지식이 없는 일반 메이커 사용자의 관점에서 보다 쉽고 간편한 구조로 자신이 필요로 하는 사물인터넷 디바이스와 서비스 애플리케이션을 제작하고, 이를 실제 서비스로 연동/구동 할 수 있는 경량화된 개방형 IoT 플랫폼에 관한 것이다.

Description

IoT 플랫폼 서비스 서버{IoT Platform Service Server}
본 발명은 oneM2M 표준 프로토콜 기반의 개방형 IoT 플랫폼 서비스 서버에 관한 것으로, 더욱 상세하게는 전문 지식이 없는 일반 메이커 사용자의 관점에서 보다 쉽고 간편한 구조로 자신이 필요로 하는 사물인터넷 디바이스와 서비스 애플리케이션을 제작하고, 이를 실제 서비스로 연동/구동 할 수 있는 경량화된 개방형 IoT 플랫폼 서비스 서버에 관한 것이다.
본 발명은 oneM2M 표준 프로토콜 기반의 개방형 IoT 플랫폼 서비스 서버에 관한 것이다.
최근 들어 자신이 필요한 것을 스스로 만드는 DIY(Do It Yourself), 메이커(Maker) 문화를 많이 볼 수 있다. 이러한 메이커 문화는 스스로 '만들다'라는 개념을 오픈소스 소프트웨어, 하드웨어, 3D프린팅과 같은 하이테크놀로지 최신 기술을 통해 실현하고 있으며, 개인의 제품 제작 방법 및 정보를 온·오프라인을 통해 공유함으로써 메이커 운동으로 빠르게 확산되고 있다.
이에 세계적으로 DIY를 통해 제작하고 개발된 다양한 사물인터넷 디바이스와 서비스를 등록하고, 상호 연동하여 서비스를 실현할 수 있는 다양한 형태의 개방형 IoT 플랫폼을 제공하고, 이를 활용한 실증 서비스를 유도하고 있다.
이러한 개방형 IoT 플랫폼들은 oneM2M (one machine-to-machine) 표준 플랫폼 구조로 각기 다른 서비스 군의 디바이스 특징별로 효율적인 통신 프로토콜과 연동을 위한 상세한 API (Application Programming Interface)와 라이브러리를 제공하고 있다. 그러나 전문 개발자가 아닌 일반 메이커들이 전문 지식 없이 이들 API를 분석하여 자신이 필요한 디바이스와 서비스를 개발하기란 매우 어려운 일이며, 까다로운 플랫폼 등록조건과 절차는 간단하게 만들어보고 구동해보고자 하는 일반 사용자들의 접근이 어려운 실정이다.
IoT 서비스를 구성하기 위해서는 IoT 디바이스로부터 측정된 특정 정보에 대한 실시간 커뮤니케이션 기술이 필수적인 요소로 작용하면서 주요 실시간 프로토콜로 XMPP (Extensible Messaging and Presence Protocol), CoAP (Constrained Application Protocol), MQTT 등이 주목 받고 있다.
특히 MQTT는 다양한 IoT 애플리케이션과 서비스가 개발되면서 기존의 HTTP와 같은 프로토콜만으로는 장치 간 커뮤니케이션의 요구사항을 수용할 수 없게 됨에 따라 제한된 통신 환경을 고려하여 낮은 전력, 낮은 대역폭 환경에서 사용이 가능하도록 설계되었으며 임베디드, 모바일 기기에 최적화된 라이트 메시징 프로토콜로써 M2M (machine-to-machine)과 IoT를 위한 대표적인 표준 프로토콜로 활용되고 있다
K. Tang, Y. Wang, H. Liu, Y. Sheng, X. Wang, and Z. Wei, "Design and implementation of push notification system based on the MQTT proocol," 2013 International Conference on Information Science and Computer Applications (ISCA 2013), pp. 116-119, 2013. Z. Suryady, G. Sinniah, S. Haseeb, M. Siddique, and M. Ezani "Rapid development of smart parking system with cloud-based platforms," in The 5th International Conference on Information and Communication Technology for The Muslim World (ICT4M), Kuching Malaysia, Nov. 2014. P. Bellavista, A. Corradi, and A. Reale, "Quality of Service in Wide Scale Publish-Subscribe Systems,"IEEE Communications Surveys & Tutorials, vol. 16, no. 3, Apr. 2014. N. Witthayawiroj, and P. Nilaphruek, "The Development of Smart Home System for Controlling and Monitoring Energy Consumption using WebSocket Protocol,"in IOP Conference Series: Materials Science and Engineering, vol. 185, 2017. Y. Zhangling, and D. Mao, "A Real-Time Group Communication Architecture Based on WebSocket,""International Journal of Computer and Communication Engineering, vol. 1, no. 4, pp. 408-411, Nov. 2012.
본 발명은 상기와 같은 종래기술의 문제점을 해결하는 것을 목적으로 한다.
구체적으로, 본 발명의 목적은 전문 지식이 없는 일반 메이커 사용자의 관점에서 쉽고 간편한 구조로 자신이 필요로 하는 사물인터넷 디바이스와 서비스 애플리케이션을 제작하고, 이를 실제 서비스로 연동/구동 할 수 있는 경량화된 개방형 IoT 플랫폼 서비스 서버를 제공하는 것이다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이러한 목적을 달성하기 위한 본 발명에 따른 서비스 서버는, IoT 장치와 서비스 애플리케이션 간의 MQTT 메시지를 교환하고 수집된 데이터에 대한 관리/활용하는 IoT 클라우드 서버의 서비스 서버에 있어서, MQTT 요구자(requester)를 통해 애플리케이션으로부터 수신된 요청에 따라 해당 토픽에 대한 발행과 구독을 제어하고 메시지 리스너(message listener)를 통해 IoT 디바이스로부터 발행된 메시지를 수신하는 MQTT 모듈, 상기 서비스 애플리케이션과 상기 서비스 서버 간 웹 소켓 통신을 지원하는 소켓(socket) 모듈, 상기 서비스 애플리케이션과 상기 서비스 서버 간 API 통신을 지원하는 HTTP API 모듈, 사용자의 설정에 따라 데이터의 생성, 수집, 분석을 수행하는 커스텀 데이터(Custom Data) 모듈, API 또는 소켓 통신을 통한 상기 서비스 애플리케이션의 기능 요청 시 사용 권한을 검증하는 권한(Authority) 모듈, 상기 서비스 애플리케이션으로부터 수신되는 요청에 따라 SQL문을 생성하여, 데이터베이스 조회, 등록, 수정 중 어느 하나 이상을 수행하는 SQL 매니저(manager)를 포함하는 것을 특징으로 한다.
상기 소켓 모듈은 상기 서비스 애플리케이션에서 발생한 이벤트에 따라 상기 MQTT 모듈로 발행, 구독 명령을 전송하는 이벤트 리스너(Event Listener), 상기 서비스 애플리케이션으로 구독에 대한 발생 메시지를 전송하거나 이벤트 처리에 대한 응답 메시지를 전송하는 메시지 에미터(Message Emitter)를 포함하는 것을 특징으로 한다.
상기 권한 모듈은 API 통신 시 세션(Session)의 존재 유무를 통해 권한을 확인하고, 웹 소켓 통신 시 JWT(Json Web Token)을 통해 Token 데이터를 디코딩하여 올바른 토큰인지를 검증하여 권한을 확인하는 것을 특징으로 한다.
이상과 같이 본 발명은 전문 지식이 없는 일반 메이커 사용자의 관점에서 쉽고 간편한 구조로 자신이 필요로 하는 사물인터넷 디바이스와 서비스 애플리케이션을 제작하고, 이를 실제 서비스로 연동/구동 할 수 있는 경량화된 개방형 IoT 플랫폼 서비스 서버를 제공하는 효과가 있다.
본 발명의 기술적 효과들은 이상에서 언급한 기술적 효과들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 효과들은 청구범위의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 발행과 구독 간의 MQTT 프로토콜을 통한 메시지 전송의 기본 구조를 나타낸 도면이다.
도 2는 웹 소켓을 지원하는 브라우저를 나타낸 도면이다.
도 3은 웹 소켓이 지원하는 룸 기능을 나타낸 도면이다.
도 4는 본 발명의 일실시 예에 따른 IoT 클라우드 서버 구성을 나타낸 도면이다.
도 5는 본 발명의 일실시 예에 따른 IoT 클라우드 서버의 서비스 서버에서의 구독이 진행되는 과정을 나타낸 도면이다.
도 6은 애플리케이션 서비스 모듈 구조를 나타낸 도면이다.
도 7은 본 발명의 일실시 예에 따른 IoT 클라우드 서버의 내부에 구축한 Mosquitto의 동작 화면이다.
도 8은 본 발명의 일실시 예에 따른 IoT 클라우드 서버의 서비스 서버 동작 화면이다.
이하, 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명한다. 참고로, 본 발명을 설명하는 데 참조하는 도면에 도시된 구성요소의 크기, 선의 두께 등은 이해의 편의상 다소 과장되게 표현되어 있을 수 있다. 또, 본 발명의 설명에 사용되는 용어들은 본 발명에서의 기능을 고려하여 정의한 것이므로 사용자, 운용자 의도, 관례 등에 따라 달라질 수 있다. 따라서, 이 용어에 대한 정의는 본 명세서의 전반에 걸친 내용을 토대로 내리는 것이 마땅하겠다.
또한, 본 발명의 목적이 구체적으로 실현될 수 있는 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 설명하지만, 이는 본 발명의 더욱 용이한 이해를 위한 것으로, 본 발명의 범주가 그것에 의해 한정되는 것은 아니다. 아울러, 본 발명의 실시 예를 설명함에 있어서, 동일 구성에 대해서는 동일 명칭 및 동일 부호가 사용되며 이에 따른 부가적인 설명은 생략하기로 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "... 부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
본 발명은 oneM2M 표준 플랫폼의 구조를 따라 MQTT (MQ Telemetry Transport) 프로토콜(protocol)를 기반으로 애플리케이션 연동을 위한 웹 소켓 (web socket) 통신 구조를 설계하고 이를 적용한 클라우드 플랫폼 서버에 관한 것이다.
MQTT 프로토콜의 가장 큰 특징은 메시지를 발행(publising)하고, 관심 있는 주제를 구독(subscribe) 하는 것을 기본 원칙으로 한다는 것이다.
도 1은 발행과 구독 간의 MQTT 프로토콜을 통한 메시지 전송의 기본 구조를 나타낸 도면이다. 발행자는 토픽을 발행하기 위한 목적으로 구독자는 토픽을 구독하기 위한 목적으로 브로커(broker)에 연결되며 발행자와 구독자는 모두 브로커에 대한 클라이언트로 동작한다. 이때 구독자가 특정 토픽(topic)을 구독한 상태라면 발행자로부터 해당 토픽으로 발행된 메시지를 브로커를 통해 수신받을 수 있으며 다수의 구독자가 하나의 토픽을 구독하거나 하나의 수신자가 다수 토픽에 대한 구독을 할 수 있다. 이처럼 MQTT 프로토콜에서 발행과 구독 간의 메시지 교환은 토픽을 기준으로 이루어진다. 토픽은 문자열로 표현하고 슬래시(/)를 이용해서 계층적으로 구성할 수 있어서 다수의 디바이스로부터 송수신되는 대량의 데이터들을 효율적으로 관리 할 수 있다.
웹 소켓 프로토콜은 전이중(full- duplex)을 제공하는 양방향 통신채널로 ws 프로토콜을 기반으로 클라이언트와 서버 사이에 지속적인 완전 양방향 연결 스트림을 만들어 주는 기술이다. 웹 소켓은 하나의 소켓을 통해 확장성과 실시간성을 보장하여 웹 애플리케이션을 구축하는 것이 가능하며 웹 서버와 웹 브라우저 상에 구현되어 두 지점 간에 실시간 상호 작용하도록 지원한다. 기존의 HTTP 프로토콜 기반으로 한 서버 시스템의 전송 효율 문제, 시스템 과부하의 문제점을 해결하고 IoT 서비스와 같이 실시간성이 요구되는 응용 프로그램을 한층 효과적으로 구현할 수 있으며 도 2와 같이 Opera Mini 브라우저를 제외한 대부분의 최신 버전의 웹 브라우저에서 웹 소켓을 지원하고 안드로이드 브라우즈와 iOS 사파리(Safari) 등 모바일 웹 환경에서도 웹소켓을 지원하기 함에 따라 모바일 환경에서도 다양한 활용이 가능하다. 또한 웹 소켓은 도 3과 같이 특정 네임스페이스 (namespace)를 통해 임의의 채널을 지정하는 룸 (room) 기능을 지원한다. 룸은 말 그래도 그 방에 있는 사람들끼리만 메시지를 주고받을 수 있는 기능으로 만일 MQTT 프로토콜을 지원하는 않는 특정 디바이스나 애플리케이션의 경우 특정 토픽 명으로 룸을 생성하고 클라이언트를 Join 시킴으로써 MQTT 프로토콜의 발행과 구독과 동일한 통신 구조의 메시지 교환 기능을 지원할 수 있다.
본 발명에서는 메이커 활동을 지원하기 위한 개방형 클라우드 서버를 구축하기 위해 oneM2M 국제 표준 프로토콜 기반의 메시지 송수신이 가능한 MQTT 프로토콜을 활용하며 서버와 애플리케이션 간의 효율성과 실시간성을 보장하기 위해 웹 소켓을 활용한다. 또한, 클라우드 서버와 연계하여 다양한 환경에서의 클라이언트 애플리케이션 제작을 지원하기 위한 서비스 모듈을 제시한다.
IoT 클라우드 서버는 IoT 디바이스와 서비스 애플리케이션 간의 MQTT 메시지를 교환하고 수집된 데이터에 대한 관리/활용을 위한 웹 서버로써 MQTT 프로토콜을 지원하기 위해 MQTT 브로커를 서버 내부에 구축하였으며 서비스 서버가 MQTT 브로커의 클라이언트로 동작하도록 구성하였다. 또한 서비스 애플리케이션의 확장성과 실시간성을 고려하여 즉각적인 메시지 전송을 위해 웹 소켓을 활용하였다.
도 4는 본 발명의 일실시 예에 따른 IoT 클라우드 서버 구성을 나타낸 도면이다.
도 4를 참조하면, 본 발명의 일실시 예에 따른 IoT 클라우드 서버는 서비스 서버(Service Server), MQTT Broker, 데이터베이스 서버(Database Server)로 구성된다.
서비스 서버는 MQTT 모듈, 소켓(socket) 모듈, 커스텀 데이터(Custom Data) 모듈, 권한(Authority) 모듈, SQL 매니저(manager)를 포함하여 구성된다.
MQTT 모듈은 서비스 서버를 MQTT 브로커에 연결하고 발행과 구독을 수행하기 위한 모듈로써, MQTT 요구자(requester)를 통해 애플리케이션으로부터 수신된 요청에 따라 해당 토픽에 대한 발행과 구독을 제어하고 메시지 리스너(message listener)를 통해 IoT 디바이스로부터 발행된 메시지를 수신한다.
소켓 모듈은 서비스 애플리케이션과 서비스 서버 간 웹 소켓 통신을 지원하기 위한 모듈로, 이벤트 리스너(Event Listener), 메시지 에미터(Message Emitter)를 포함하여 구성된다. Event Listener를 통해 애플리케이션에서 발생한 이벤트에 따라 MQTT 모듈로 발행과 구독 명령을 전송하고 Message Emitter를 통해 애플리케이션으로 구독에 대한 발생 메시지를 전송하거나 이벤트 처리에 대한 응답 메시지를 전송한다.
HTTP API 모듈은 서비스 애플리케이션과 서비스 서버 간 API 통신을 지원하기 위한 모듈로, 사용자 계정관리 또는 프로젝트 관리와 같은 IoT 서비스를 위한 애플리케이션의 API 요청에 따라 기능을 수행하고 결과정보를 전송한다.
커스텀 데이터(Custom Data) 모듈은 수신 데이터의 특성에 따라 개인 맞춤형 정보를 제공하기 위한 데이터의 커스터마이징을 제공하는 모듈로써, 사용자의 설정에 따라 데이터의 생성, 수집, 분석을 수행한다.
권한(Authority) 모듈, API 또는 소켓 통신을 통한 상기 서비스 애플리케이션의 기능 요청 시 사용 권한을 검증한다. API 통신 시 세션(Session)의 존재 유무를 통해 권한을 확인하고, 웹 소켓 통신 시 JWT(Json Web Token)을 통해 Token 데이터를 디코딩하여 올바른 토큰인지를 검증하여 권한을 확인한다.
SQL 매니저(manager)는 서비스 애플리케이션으로부터 수신되는 요청에 따라 SQL문을 생성하여, 데이터베이스 조회, 등록, 수정 중 어느 하나 이상을 수행한다. 다시 말하자면, SQL 매니저(manager)는 데이터베이스 조회, 등록, 수정 등의 Query를 수행하기 위한 모듈로 서비스 애플리케이션으로부터 수신되는 요청에 따라 SQL문을 생성하고 수행하며 결과 정보를 응답한다.
SQL(Structured Query Language, 구조화 질의어)은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다.
도 5는 본 발명의 일실시 예에 따른 IoT 클라우드 서버의 서비스 서버에서의 구독이 진행되는 과정을 나타낸 도면이다.
도 5를 참조하면, 먼저 서비스 애플리케이션에서 사용자 로그인을 요청하면 서비스 서버에서는 수신된 사용자 정보를 통해 사용자를 확인하고 검증이 완료되면 고유 Token을 생성하여 응답 메시지와 함께 애플리케이션으로 전송한다. 이후 애플리케이션에서 구독 이벤트가 발생하면 서버에서는 이벤트 리스너를 통해 Token과 구독 할 토픽에 대한 정보를 수신하고 해당 정보의 검증을 진행하여 검증이 완료되면 해당 토픽으로 소켓 품을 생성하고 클라이언트를 생성된 룸에 연결한다. 그 뒤 MQTT 브로커를 통해 수신된 토픽에 대한 구독을 진행하고 수행 결과를 애플리케이션으로 전송한다.
미 구독의 경우 서비스 서버에서는 구독과 동일한 검증 과정을 거친 후 MQTT 브로커를 통해 해당 토픽의 구독을 중지하고 클라이언트를 소켓 룸에서 제거한 뒤 수행 결과를 응답한다. 발행의 경우도 역시 구독과 동일한 검증 과정을 거친 후 수신된 토픽 및 데이터를 MQTT 브로커로 발행하고 수행 결과를 응답한다.
도 6은 애플리케이션 서비스 모듈 구조를 나타낸 도면이다. 서비스 모듈은 IoT 크라우드 서버와 서비스 애플리케이션 간의 MQTT 메시지 교환을 지원하고 API 통신을 통해 특정 정보를 요청/응답받는 모듈로써 애플리케이션에 라이브러리 형태로 적용된다. 도 6의 소켓 모듈은 서비스 서버와 웹 소켓 연결을 관리하고 구독에 대한 발행 메시지를 수신하거나 발행과 구독에 대한 이벤트를 발생시킨다.
HTTP Requester는 사용자 인증 또는 특정 정보에 대해 요청/응답을 위해 서비스 서버와의 API 통신을 지원하며 사용자 인증 시 수신된 Token 정보는 Authority Manager에 저장한다.
Event Handler는 소켓 모듈과 HTTP Requester에서 수신된 데이터를 애플리케이션으로 전송하기 위한 핸들러(handler)로써 메시지 수신 시 이벤트를 통해 메인쓰레드로 전송한다.
본 발명에서 제안한 IoT 클라우드 서버를 구현하기 위해 서비스 서버를 싱글 쓰레드/이벤트 기반의 Nodjs를 활용하여 구현하였으며 MQTT 브로커로는 경량화되고 소형디바이스를 사용하는 사물인터넷 환경에서 사용하기에 적합한 오픈 소스인 Mosquitto를 사용하였다. 또한 실제 서비스를 제공하기 위해 AWS(Amazon Web Services)를 통해 윈도우 서버를 구축하였다.
도 7은 IoT 클라우드 서버의 내부에 구축한 Mosquitto의 동작 화면으로 웹 서버의 초기 구동 시 Mosquitto가 같이 구동되고 IoT 클라우드 서버 내에서 클라이언트 역할을 하는 서비스 서버가 연결되는 것을 확인 할 수 있다. 또한 디바이스나 서비스 애플리케이션의 구독 요청에 따라 해당 토픽에 대한 구독을 시작하고 그에 대한 SUBACK를 클라이언트로 전송하며 발행을 수신받으면 해당 토픽에 대한 구독을 신청한 클라이언트에게 발행 메시지를 전송하는 것을 확인할 수 있다.
도 8은 IoT 클라우드 서버의 서비스 서버 동작 화면으로 서비스 애플리케이션의 API 또는 소켓 통신을 통한 기능 수행 시 사용자 권한을 지속적으로 확인하는 것을 볼 수 있으며 발행과 구독을 위한 소켓이 연결되면 해당 클라이언트의 정보를 확인하고 저장한다. 또한 클라이언트로부터 구독이나 발행 요청이 수신되면 Token과 토픽 정보를 확인하고 해당 토픽에 대한 발행과 구독이 진행되는 것을 확인할 수 있다.
본 발명에서는 관련 전문 개발자가 아닌 일반 사용자의 관점에서 보다 손쉽게 활용할 수 있는 개방형 IoT 경량화 플랫폼을 설계하여 구현하였다. MQTT 프로토콜을 활용하여 DIY IoT 디바이스와 발행과 구독을 통해 상호 간 효율적이고 최적화된 데이터 교환을 위해 MQTT 브로커를 서버 내부에 구성하고, 웹 소켓 기반의 서비스 웹 서버를 통해 애플리케이션으로 알림 및 데이터를 실시간으로 전송하는 MQTT 클라우드 서버를 설계·구현하였다.
본 발명에서 제안한 MQTT 클라우드 서버는 oneM2M 국제 표준 기반의 개방형 사물인터넷 환경에 적합한 통신 프로토콜을 활용함에 따라 사용자가 제작한 DIY 디바이스를 통해 실제 사물인터넷 서비스를 개발·사용할 수 있으며 이를 통해 메이커 운동에 대한 사용자 인식을 변화하고, 메이커 운동을 활성화하는 효과가 있다.
이상 본 발명의 실시 예에 따른 도면을 참조하여 설명하였지만, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면 상기 내용을 바탕으로 본 발명의 범주 내에서 다양한 응용, 변형 및 개작을 행하는 것이 가능할 것이다. 이에, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해져야 할 것이다.

Claims (3)

  1. IoT 장치와 서비스 애플리케이션 간의 MQTT 메시지를 교환하고 수집된 데이터에 대한 관리/활용하는 IoT 클라우드 서버의 서비스 서버에 있어서,
    상기 서비스 서버는
    MQTT 요구자(requester)를 통해 애플리케이션으로부터 수신된 요청에 따라 해당 토픽에 대한 발행과 구독을 제어하고 메시지 리스너(message listener)를 통해 IoT 디바이스로부터 발행된 메시지를 수신하는 MQTT 모듈,
    상기 서비스 애플리케이션과 상기 서비스 서버 간 웹 소켓 통신을 지원하는 소켓(socket) 모듈,
    상기 서비스 애플리케이션과 상기 서비스 서버 간 API 통신을 지원하는 HTTP API 모듈,
    사용자의 설정에 따라 데이터의 생성, 수집, 분석을 수행하는 커스텀 데이터(Custom Data) 모듈,
    API 또는 소켓 통신을 통한 상기 서비스 애플리케이션의 기능 요청 시 사용 권한을 검증하는 권한(Authority) 모듈,
    상기 서비스 애플리케이션으로부터 수신되는 요청에 따라 SQL문을 생성하여, 데이터베이스 조회, 등록, 수정 중 어느 하나 이상을 수행하는 SQL 매니저(manager)를 포함하는 것을 특징으로 하는 서비스 서버
  2. 제 1항에 있어서,
    상기 소켓 모듈은
    상기 서비스 애플리케이션에서 발생한 이벤트에 따라 상기 MQTT 모듈로 발행, 구독 명령을 전송하는 이벤트 리스너(Event Listener),
    상기 서비스 애플리케이션으로 구독에 대한 발생 메시지를 전송하거나 이벤트 처리에 대한 응답 메시지를 전송하는 메시지 에미터(Message Emitter)를 포함하는 것을 특징으로 하는 서비스 서버
  3. 제 1항에 있어서,
    상기 권한 모듈은 API통신시 세션(Session)의 존재 유무를 통해 권한을 확인하고, 웹 소켓 통신시 JWT(Json Web Token)을 통해 Token 데이터를 디코딩하여 올바른 토큰인지를 검증하여 권한을 확인하는 것을 특징으로 하는 서비스 서버
KR1020180110168A 2018-09-14 2018-09-14 IoT 플랫폼 서비스 서버 KR102060319B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180110168A KR102060319B1 (ko) 2018-09-14 2018-09-14 IoT 플랫폼 서비스 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180110168A KR102060319B1 (ko) 2018-09-14 2018-09-14 IoT 플랫폼 서비스 서버

Publications (1)

Publication Number Publication Date
KR102060319B1 true KR102060319B1 (ko) 2019-12-30

Family

ID=69103084

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180110168A KR102060319B1 (ko) 2018-09-14 2018-09-14 IoT 플랫폼 서비스 서버

Country Status (1)

Country Link
KR (1) KR102060319B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112613024A (zh) * 2021-01-07 2021-04-06 国网上海市电力公司 一种数据交互方法、装置、系统及存储介质
CN112612985A (zh) * 2020-12-24 2021-04-06 广州致远电子有限公司 基于WebSocket的多用户和多类型消息的推送系统及方法
CN113076360A (zh) * 2020-12-09 2021-07-06 福建省凯特科技有限公司 一种基于安全服务中间件技术的数据交换平台
CN114866528A (zh) * 2022-04-01 2022-08-05 广东美味鲜调味食品有限公司 一种基于MQTT和Websocket的数据通讯方法
CN115514612A (zh) * 2022-09-22 2022-12-23 杭州职业技术学院 基于Redis消息机制实现的数据采集方法、系统及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
oneM2M 사물인터넷 플랫폼 기술동향(김성윤, 김기영, 한국정보과학회, 2014년)
oneM2M 표준 플랫폼을 이용한 통합 IoT 관리시스템 (이만성 et al, 한국정보과학회, 2018년6월)
사물인터넷 소프트웨어 플랫폼 기술동향(2015년. ETRI)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076360A (zh) * 2020-12-09 2021-07-06 福建省凯特科技有限公司 一种基于安全服务中间件技术的数据交换平台
CN112612985A (zh) * 2020-12-24 2021-04-06 广州致远电子有限公司 基于WebSocket的多用户和多类型消息的推送系统及方法
CN112613024A (zh) * 2021-01-07 2021-04-06 国网上海市电力公司 一种数据交互方法、装置、系统及存储介质
CN112613024B (zh) * 2021-01-07 2024-05-03 国网上海市电力公司 一种数据交互方法、装置、系统及存储介质
CN114866528A (zh) * 2022-04-01 2022-08-05 广东美味鲜调味食品有限公司 一种基于MQTT和Websocket的数据通讯方法
CN115514612A (zh) * 2022-09-22 2022-12-23 杭州职业技术学院 基于Redis消息机制实现的数据采集方法、系统及存储介质
CN115514612B (zh) * 2022-09-22 2023-08-11 杭州职业技术学院 基于Redis消息机制实现的数据采集方法、系统及存储介质

Similar Documents

Publication Publication Date Title
KR102060319B1 (ko) IoT 플랫폼 서비스 서버
Kodali et al. MQTT based home automation system using ESP8266
JP7357704B2 (ja) グループベース通信システム内での暗号化キー管理のための方法、装置、およびコンピュータプログラム製品
US7627658B2 (en) Presentation service which enables client device to run a network based application
US10892906B2 (en) Method, apparatus, and computer program product for a scalable group-based communication system with a reduced client memory footprint requirement
JP7047173B2 (ja) グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法
US10547466B2 (en) Multiplexing message distribution within group-based communication system
TW202044074A (zh) 遠端即時多媒體教學方法、裝置及系統、電子設備以及電腦可讀取的記錄媒體
TWI695650B (zh) 用於連接電子裝置的方法和系統
CN112527376B (zh) 基于反向代理服务实现DevOps自动化的方法
Jia et al. A web service framework for astronomical remote observation in Antarctica by using satellite link
Tanganelli et al. A distributed architecture for discovery and access in the internet of things
García-Zubia et al. Towards a Distributed Architecture for Remote Laboratories.
Krejci Building NETCONF-enabled network management systems with libnetconf
US10574618B1 (en) Processing client devices
Erdmann et al. Evolution of the VISPA-project
Balakrishnan et al. Home Automation System using ESP8266 based MQTT
AU2020103430A4 (en) Method, apparatus, and computer program product for encryption key management within a group-based communication system
Oh Design and Implementation of MQTT based on Arduino
Chakrabarty et al. A novel extended-cloud based approach for Internet of Things
Ayad et al. A generic architecture for intelligent systems based on IoT technology
Osais et al. A multilayer peer-to-peer framework for distributed synchronous collaboration
US10341178B1 (en) Configuring client devices
Rajaraajeswari et al. Integration approaches for the internet of things (IoT) era
Krammer et al. A Grid based Neural Network Execution Service.

Legal Events

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