KR20220063503A - 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템 - Google Patents

메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템 Download PDF

Info

Publication number
KR20220063503A
KR20220063503A KR1020200149443A KR20200149443A KR20220063503A KR 20220063503 A KR20220063503 A KR 20220063503A KR 1020200149443 A KR1020200149443 A KR 1020200149443A KR 20200149443 A KR20200149443 A KR 20200149443A KR 20220063503 A KR20220063503 A KR 20220063503A
Authority
KR
South Korea
Prior art keywords
information
key
ics
iot
message exchange
Prior art date
Application number
KR1020200149443A
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 KR1020200149443A priority Critical patent/KR20220063503A/ko
Publication of KR20220063503A publication Critical patent/KR20220063503A/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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/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)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 메시지 교환 방식을 이용한 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에 관한 것이다.
본 발명은 리플리카셋의 형태로 확장 및 제거되어 클러스터링되고, 사용자 단말과 인터페이싱하는 도메인 관련 서비스단부; 상기 도메인 관련 서비스단부와 계층화되고, 리플리카셋의 형태로 확장 및 제거되어 클러스터링되고, 사물장치와 인터페이싱하는 아이티 코어 서비스단부; 및 생성된 메시지 큐에 발행 및 구독하는 표준 프로토콜 메시지를 이용하여 송신 및 수신 정보를 처리하는 공유메모리를 포함한다.

Description

메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템{Layered IoT service system using message exchange method}
본 발명은 사물 인터넷 관리용 클러스터 서버 또는 마이크로서비스 리플리카셋에 고가용성과 확장성을 제공하기 위한 메시지 교환 방법 및 시스템에 관한 것이다.
IoT(Internet of Things)는 사람과 사물의 인터페이싱을 실현한 미래 인터넷 기술의 하나이다.
IoT의 궁극적인 목표는 네트워크로 연결된 사물과 사물장치가 서로 협력하여 M2M(Machine to Machine) 통신을 통해 인간에게 유용한 서비스를 제공하는 것이다.
따라서 통신을 위한 표준 프로토콜을 선점하기 위해 oneM2M, AllSeen, OMA, BBF, 3GPP 등의 국제표준화기관의 활동이 활발하며, 지속적으로 시장의 요구사항을 스펙에 추가하여 표준화를 제고하고 있다.
최근에는 국제적인 기업들이 앞서 언급한 표준들에 기반하여 IoT 제품을 출시하고, 동시에 그들을 관리하기 위한 단일 사물장치형 서버 플랫폼을 제공하고 있다.
IoT 플랫폼 시장은 5G와 같은 네트워크 기술 및 인프라가 확대되고 빅데이터, 머신러닝, 인공지능(AI), 증강현실(AR), 보안 등 다양한 차세대 기술을 흡수하게 되면서 더욱 확대될 것으로 예상된다.
그러나, 종래 IoT 플랫폼은 서비스의 규모에 따라 사물장치 및 사용자 단말에 대한 서비스를 확장하기 어려운 문제점이 있다.
본 발명은 종래 기술적 필요성에 따라 안출된 것으로, 응용서비스 서버 및 IoT 관리 서버로 계층 분리된 서버클러스터의 고가용성과 확장성을 위하여 공유메모리에 기반한 메시지 교환을 이용하는 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서의 정보 처리 방법을 제공하고자 한다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템은 리플리카셋의 형태로 확장 및 제거되어 클러스터링되고, 사용자 단말과 인터페이싱하는 도메인 관련 서비스단부; 상기 도메인 관련 서비스단부와 계층화되고, 리플리카셋의 형태로 확장 및 제거되어 클러스터링되고, 사물장치와 인터페이싱하는 아이티 코어 서비스단부; 및 생성된 메시지 큐에 발행 및 구독하는 표준 프로토콜 메시지를 이용하여 송신 및 수신 정보를 처리하는 공유메모리를 포함한다.
본 발명의 일 실시예에 따르면, ICS 클러스터(또는 리플리카셋) 및 DSS 클러스터(또는 리플리카셋)의 계층 분리를 통해 사용자 단말의 수와 사물장치의 수에 따라 별도의 확장성 있는 서비스를 제공할 수 있는 효과가 있다.
도 1은 본 발명에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템을 설명하기 위한 구성블록도.
도 2는 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 IoT 목표 응용서비스를 위한 DSS와 ICS간 메시지 공유 및 점유에 관한 방법을 나타낸 표.
도 3은 본 발명의 일실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1:1 메시지 교환 절차를 설명하기 위한 도면.
도 4는 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1:N 메시지 교환 절차를 설명하기 위한 참고도.
도 5는 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1:1ofN 메시지 교환 절차를 설명하기 위한 참고도.
도 6은 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1:1ofN과 1:1 메시지 교환 절차를 결합한 메시지 교환 절차를 설명하기 위한 참고도.
도 7은 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1ofN:1 메시지 교환 절차를 설명하기 위한 참고도.
도 8은 IoT 사물장치(210)관리를 위한 과정을 시스템 초기화, 사물장치등록, 사물장치접근 및 관리, 정보의 보고, 고가용성 및 확장성으로 나누고 각 과정에서 사용될 Redis의 키를 정의하고 설명한 표.
도 9는 본 발명의 일 실시에에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 모든 ICS에게 사물장치들의 PSK를 공유하는 과정을 설명하기 위한 신호흐름도.
도 10은 본 발명의 일 실시예에서 사물장치의 등록 과정을 설명하기 위한 신호흐름도.
도 11은 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 IoT 사물장치에 접근하여 값을 얻거나 설정하는 과정을 설명하기 위한 신호흐름도.
도 12는 본 발명의 일 실시예에서 추가적인 정보 보고에 대한 정보 공유 과정을 설명하기 위한 신호흐름도.
도 13은 본 발명의 일 실시에에서 정보보고 과정을 설명하기 위한 신호흐름도.
도 14는 본 발명의 일 실시예에서 새로운 ICS가 구동되었을 때 ICS 클러스터(또는 리플리카셋)에 합류(Join)되는 서비스 디스커버리 과정을 설명하기 위한 신호흐름도.
도 15는 본 발명의 일 실시예에서 합류된 새로운 ICS가 기존의 ICS와 동기화 되는 과정을 설명하기 위한 신호흐름도.
도 16은 본 발명의 일 실시예에서 서비스 수행중인 ICS(201-f)에 장애가 발생했을 경우 장애극복(Failover)하는 과정을 설명하기 위한 신호흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
도 1은 본 발명에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템을 설명하기 위한 구성블록도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템은 도메인 관련 서비스단부(101, Domain Specific Service, 이하, “DSS”라함), 아이티 코어 서비스단부(201, IoT Core Service, 이하, “ICS”라 함) 및 공유메모리(300)를 포함한다.
DSS(101)는 특정 도메인을 위한 IoT 응용서비스로써 사용자 단말(120) 및 RDB(140)와 인터페이싱하고, 클러스터 또는 마이크로서비스 리플리카셋(100)으로 구성된다. 여기서, RDB(140)에는 사용자 정보, 사물장치(관찰자원, 값 등)의 정보가 저장된다.
이때, DSS(101)와 사용자 단말(120) 및 APS(1300는 FLB(110)(Front-end Load Balancer)을 통해 연결된다.
여기서, FLB(110)는 사용자 단말(120)의 요청에 따른 요청 정보 처리 시, 부하분산 정책에 의해 선택된 하나의 DSS(101)에게 요청 정보를 전달한다.
사용자 단말(120)들은 Web Pages(121)를 GUI로, 사용자의 요청을 받고 요청에 대한 응답과 사물장치(210)로부터 발생되는 이벤트를 사용자 단말(120)에게 게시한다. 여기서 Web Pages(121)는 공유된 하나의 볼륨으로 운용되고, 도메인 전용 프론트앤드 사용자 인터페이스의 역할을 한다.
APS(130)(Access Permission Service)는 사용자 단말(120)의 요청에 대한 인증/인가를 수행하는 서비스이며 FLB(110)와 연계하여 동작된다. 이러한 APS(130)는 멀티테넌시를 구현하고, 사용자 수준별 접근 관리를 수행한다.
아이티 코어 서비스단부(201)는 사물장치(210)를 관리하기 위한 서비스로써 사물장치(210)들과 인터페이싱하고, 클러스터 또는 마이크로서비스 리플리카셋(200)으로 구성된다.
아이티 코어 서비스단부(201)들로 이루어지는 클러스터 또는 마이크로서비스 리플리카셋(200)는 DSS(101)들로 이루어진 클러스터 또는 마이크로서비스 리플리카셋(100)과 계층화되는 것이 바라람직하다.
이러한 아이티 코어 서비스단부(201)는 BLB(Back-end Load Balancer, 220)를 통해 사물장치(210)들과 연결되고, BLB(Back-end Load Balancer, 220)는 사물장치(210)로부터 유입되는 메시지의 처리 부하를 분산시키는 역할을 한다.
공유메모리(300)는 DSS(101)가 사용자 단말(120)의 요청/응답 정보를 REST API를 통해 ICS(201)에 전달하고, ICS(201)가 사물장치(210)에서 발생하는 이벤트를 DSS(101)에 전달할 수 있도록, 표준 프로토콜 메시지가 이용된다.
이때, ICS(201)가 전달하는 사물장치(210)에서 발생하는 이벤트는 LwM2M과 같은 임의의 사물인터넷의 표준 프로토콜 메시지가 이용되는 것이 바람직하다.
본 발명의 일 실시예에서는 계층별 확장성을 실현하기 위한 각 클러스터(또는 리플리카셋) 계층간 그리고 각 클러스터 내부의 개별 서비스(ICS(201) 또는 DSS(101))간 구체적이며 체계적인 공유메모리(300) 기반 메시지 교환 방법이 이용된다.
본 발명의 일 실시예에 따르면, ICS 클러스터(또는 리플리카셋) 및 DSS 클러스터(또는 리플리카셋)의 계층 분리를 통해 사용자 단말(120)의 수와 사물장치(210)의 수에 따라 별도의 확장성 있는 서비스를 제공할 수 있는 효과가 있다.
도 2는 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 IoT 목표 응용서비스를 위한 DSS(101)와 ICS(201)간 메시지 공유 및 점유에 관한 방법을 나타낸 도표이다. 여기서, 도 2에 도시된 데이터 접근 유형은 공유메모리(300)에 직접 접근하여 정보를 입력하거나 필요한 정보를 획득하는 유형이고, 이벤트 통보 유형은 공유메모리(300)에서 관리하는 키나 키의 값들이 변경될 경우 이벤트 수신채널을 구독 신청한 모든 수신자(R100)가 공유메모리(300) 변경 이벤트를 받도록 하는 메시지교환 절차 유형이다.
도 2는 서비스(ICS(201) 또는 DSS(101))간 메시지 교환 단위에 대한 요약이다.
공유메모리(300)(도 2 모양 칼럼의 연두색 박스)는 키-값 쌍의 데이터구조를 갖고 발행(PUB: publish)/구독(SUB: subscription), 메시지큐 기능을 포함하는 일종의 저장 사물장치이다.
클러스터를 이루는 서버 또는 마이크로서비스(도 2 모양 칼럼의 회색 원)는 공유메모리(300)를 통하여 도 2에 도시된 유형 칼럼과 같이 1:1, 1:N, 1:1ofN, 1ofN:1, Data Access, Event Notification 형태로 메시지를 공유 및 점유한다.
도 2의 도시된 칼럼은 수신자와 송신자의 동작에 대하여 설명한다.
도 3은 본 발명의 일실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 수신자와 송신자가 1:1인 경우, 1:1 메시지 교환 절차를 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, DSS(101)와 아이티 코어 서비스단부(201) 중 정보를 수신하는 측이 수신자(R100)고, 정보를 전송하는 측이 송신자(T200)가 된다.
수신자(R100)는 임의의 개별키로 공유메모리(300)에 메시지큐 채널을 개설한다. 여기서, 임의의 개별키는 수신자(R100)의 식별자나 메시지 식별자를 포함한 시스템 상의 유일한 키이다.
다음으로 송신자(T200)가 수신자(R100)에게 보낼 정보를 해당 개별키 메시지 큐에 밀어 넣으면(PUSH), 비동기 대기중인 수신자(R100)는 개별키 메시지 큐로부터 정보를 꺼낸다(POP).
한편, 도 3의 수신자와 송신자는 송신 또는 수신 기능에 따라 그 기능이 변경될 수 있다.
여기서, 개별키를 공유하는 방법은 1:1 메시지 교환이 독립적으로 이루어 질 수 있지만, 본 발명에서 1:1 메시지 교환은 독립적으로 이루어 지지 않고 1:1ofN 메시지 교환을 통해 개별키를 공유합니다.
먼저 도 3에서의 수신자는 자기가 수신할 채널 개별키를 미리 정의된 전역키의 값에 포함하여 푸쉬함과 동시에 수신할 채널키에 대해 비동기 수신대기 합니다.
한편, 미리 정의된 전역키에 대한 신호를 비동기 수신한 송신자(비동키 팝을 선점한 임의의 송신자)는 앞선 개별키로 메시지를 푸쉬할 수 있다.
도 4는 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1:N 메시지 교환 절차를 설명하기 위한 참고도이다.
도 4에 도시된 바와 같이, 1:N 메시지 교환 시에는 구독신청(SUB; subscription) 및 발행(PUB; publish)과 같은 방법을 이용한다.
먼저, 모든 수신자(R100-1 내지 R100-3)가 공유메모리(300)에 특정 전역키를 이용하여 구독신청(SUB)을 수행하고, 송신자(T200)는 보내야할 정보 발생시 상기 공유메모리(300)에 전역키 메시지 채널에 정보 발행(PUB)을 한다. 본 실시예에서는 3개의 수신자(R100-1 내지 R100-3)를 예를 들어 설명하고 있으나 수신자의 개수를 한정하는 것은 아니다.
그러면, 공유메모리(300)에 특정 전역키를 이용하여 구독신청(SUB)한 모든 수신자(R100-1 내지 R100-3)는 송신자(T200)가 송신한 정보를 수신할 수 있다.
도 5는 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1:1ofN 메시지 교환 절차를 설명하기 위한 참고도이다.
도 5에 도시된 바와 같이, 1:1ofN 메시지 교환 시에는 전역키를 이용한 메시지큐 비동기 수신대기 방법을 이용한다.
먼저 모든 수신자(R100-1 내지 R100-3)는 전역키 메시지큐에 대해 비동기 수신대기 한다.
그리고 송신자(T200)는 보내야할 정보를 해당 전역키 메시지큐에 밀어 넣으면(PUSH), 클러스터(또는 리플리카셋)로 구성된 수신 대기중인 모든 수신자(R100-1 내지 R100-3) 중 오직 하나의 수신자(R100-1 내지 R100-3 중 하나)가 먼저 정보를 꺼내 간다(POP). 이때, 클러스터로 구성된 모든 수신자(R100-1 내지 R100-3)들 중 어떤 수신자가 선택되어 정보를 꺼내 갈지는 알 수도 없고, 알 필요도 없으며, CPU, 네트워크 등의 자원이 가장 여유로운 임의의 수신자가 정보를 꺼내 갈 확률이 높기 때문에 부하분산의 효과를 볼 수 있다.
한편, 도 5에 도시된 1:1ofN 메시지 교환 시에는 전역키를 이용한 메시지큐 비동기 수신대기 방법을 이용하여 개별키를 공유할 수 있다.
또한, 도 5의 수신자와 송신자는 송신 또는 수신 기능에 따라 그 기능이 변경될 수 있다.
도 6은 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1:1ofN과 1:1 메시지 교환 절차를 결합한 메시지 교환 절차를 설명하기 위한 참고도이다.
도 5에 도시된 바와 같이, 먼저 모든 수신자(R100-1 내지 R100-3)는 전역키 메시지큐에 대해 비동기 수신대기 한다.
이후, 송신자(T200)는 1:1ofN 메시지 교환 절차 중 전역키 메시지큐에 값을 밀어 넣는(PUSH)하는 과정에서 자신이 응답을 받기위한 고유 개별키 메시지큐의 이름을 값에 포함함과 동시에 1:1 메시지 교환 절차를 수행하기 위한 고유 개별키 메시지큐에 대하여 비동기 수신 대기한다.
여기서, 임의 선택된 수신자(R100)가 응답메시지를 개별키 메시지큐에 밀어 넣으면(PUSH), 최초 송신자(T200)는 응답메시지를 꺼냄(POP)으로써 요청 및 응답 과정이 진행된다.
이러한, 본 발명의 일실시예에 따른 방법은 요청 및 응답을 처리하기 위한 양방향 메시지 교환도 실현할 수 있는 장점이 있다.
도 7은 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 1ofN:1 메시지 교환 절차를 설명하기 위한 참고도이다.
도 7은 다른 실시예들과 달리 송신자가 복수개인 경우이다. 도 7에 도시된 바와 같이, 1ofN:1 메시지 교환 절차는 동일한 작업을 수행하는 클러스터(또는 리플리카셋)내의 서비스(ICS(201) 또는 DSS(101))들 중 임으로 선택된 오직 하나의 서비스(ICS(201) 또는 DSS(101))가 정보를 보내게 함으로써 데이터 입력의 독립성을 제공하고 오버헤드를 줄이기 위한 절차이다.
먼저 데이터의 수신자(R100)는 특정 전역키에 대하여 비동기 수신 대기한다.
다음으로, 모든 송신자(T200-1 내지 T20-3)는 경쟁적으로 분산락을 획득하고, 분산락을 획득한 오직 하나의 송신자(T200-1 내지 T200-3 중 하나)만이 해당 전역키 메시지큐에 정보를 밀어 넣으며(PUSH), 수신 대기중인 수신자(R100)는 전역키 메시지큐로부터 정보를 꺼낸다(POP).
이러한, 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서는 1ofN:1 메시지 교환 절차를 통하여 모든 서비스(ICS(201) 또는 DSS(101))가 동일한 DB Insert 작업을 할 때 발생할 수 있는 데이터 중복 입력이나 불필요한 DB 쿼리 등의 오버헤드를 줄일 수 있는 효과가 있다.
<실시예>
본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서의 정보 처리 방법은 다음과 같다.
공유메모리(300)는 직접 구현할 수도 있으며 오픈소스를 이용할 수도 있다. 여기서, 공유메모리(300)로 사용될 수 있는 오픈소스는 Zookeeper, Kafka, MongoDB, Memcached, Redis 등 다양하나 본 발명의 일 실시예에서는 Redis와 LwM2M 기반의 IoT관리 및 응용서비스를 이용하는 예에 대하여 설명하기로 한다.
여기서, 도 8은 IoT 사물장치(210)관리를 위한 과정을 시스템 초기화, 사물장치등록, 사물장치접근 및 관리, 정보의 보고, 고가용성 및 확장성으로 나누고 각 과정에서 사용될 Redis의 키를 정의하고 설명한 표이다.
각 과정별로 키가 사용되는 방법을 설명한다.
<시스템 초기화>
LwM2M 기반의 ICS(201)와 사물장치(210) 간에는 CoAP over UDP가 사용될 수 있으며, 이 경우 보안 통신을 위해 DTLS(Datagram Transport Layer Security) 가 사용된다. 여기서, DTLS 보안모드는 PSK(Pre-Shared Key), RPK(Raw Public Key) 및 x.509 인증모드가 있다.
시스템 초기화 과정에서 인증모드에 따라 모든 ICS(201)에게 인증을 위한 정보를 공유해야 한다.
본 발명의 일 실시예에서는 성능면에서 가장 적절한 PSK 보안모드를 이용한다. 이를 위해서는 모든 ICS(201)가 등록될 사물장치(210) 즉, LwM2M 클라이언트의 PSK 정보를 가지고 있어야 된다.
도 9는 본 발명의 일 실시에에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 모든 ICS(201)에게 사물장치(210)들의 PSK를 공유하는 과정을 설명하기 위한 신호흐름도이다.
도 9에 도시된 바와 같이, ICS(201)들은 초기 구동 시 dtls:psk:shrareout 키(4)에 대한 구독을 공유메모리(300)에 신청(SUB)한다.
그리고 DSS(101)들은 공유메모리(300)에 rdb:access:psk 키(2)를 설정함으로써 1ofN:1 메시지 교환 절차를 위한 분산락 키 획득 경쟁을 시도한다.
경쟁과정에서 rdb:access:psk 키(2)를 가장 먼저 설정한 DSS(101)가 DB에 로부터 사물장치(210)들의 PSK 정보를 획득하고, Redis에 dtls:psk:shrareout 키(3)로 PSK 정보들을 발행(PUB)한다.
한편, dtls:psk:shrareout 키(3)를 구독(SUB)중인 모든 ICS(201)들은 PSK 정보를 획득한 후 자신의 메모리에 저장하고 이후에 등록하는 사물장치(210)들과 보안을 위한 핸드쉐이크를 수행 후 보안채널을 형성한다.
<사물장치(210) 등록>
도 10은 본 발명의 일 실시예에서 사물장치의 등록 과정을 설명하기 위한 신호흐름도이다.
도 10에 도시된 바와 같이, 먼저, 시스템 초기화 과정에서 모든 DSS(101)는 client:registration 키(에 구독을 등록(SUB)하고, 모든 ICS(201)는 dtsl:session:sync 키에 구독을 등록(SUB)한 상태이다.
이후, IoT 사물장치(210)로부터 유입되는 등록요청 메시지(CoAP request, 1)는 BLB(220)에 의해 부하분산 되고, 부하분산 정책에 의해 임의의 ICS(201)에 전달된다.
해당 ICS(201)는 등록을 요청한 IoT 사물장치(210)의 정보를 client:registration 키(2)에 발행(PUB)함으로써, 모든 DSS(101)와 1:N 메시지 교환을 수행함과 동시에 등록을 요청한 IoT 사물장치(210)의 세션정보를 dtls:session:sync 키(2)에 발행(PUB)함으로써 모든 ICS(201)와 1:N 메시지 교환을 수행한다.
만약, IoT 사물장치(210)의 등록정보를 RDB(130)에 저장하여 관리할 필요가 있다면, 정보의 저장을 위해 client:registration 키(3)를 구독한 모든 DSS(101)는 RDB(130)와 1ofN:1 메시지 교환을 위해 rdb:access:registration:{ep} 키(4)에 분산락 획득 경쟁을 시도한다. 여기서 {ep}는 가변적인 등록요청 IoT 사물장치(210)의 엔드 포인트 즉, 고유 식별자이다.
한편, Redis(Remote Dictionary Server)에서는 'set key_이름' 명령어에 'nx' 옵션을 추가하여 분산락을 실현한다.
분산락을 획득한 오직 하나의 DSS(101)가 등록요청 IoT 사물장치(210)의 정보를 RDB(130)에 삽입한다. 즉, client:registration 키(4)를 구독한 모든 DSS(101)들은 자신과 세션을 맺고 있는 사용자 단말(120)(예를 들어, 웹 클라이언트)들에게 이벤트를 전송하여 게시된 페이지를 실시간 갱신하게 한다.
다시 이전 단계로 돌아가서 dtsl:session:sync 키(2)를 구독한 ICS(201)들은 새로운 IoT 사물장치(210)와의 세션정보를 자신에게 저장함으로써 IoT 사물장치(210)의 리소스 접근 시 활용하거나 추후에 발생할 수 있는 장애에 대비한다.
즉, 임의의 IoT 사물장치(210)와 메시지를 교환중인 ICS(201)에게 장애가 발생할 경우, 그 IoT 사물장치(210)는 다른 정상 ICS(201)와 보안통신을 위한 핸드쉐이크 과정없이 바로 메시지를 교환할 수 있는 효과가 있다.
<사물장치 접근 및 관리>
도 11은 본 발명의 일 실시예에 따른 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템에서 IoT 사물장치에 접근하여 값을 얻거나 설정하는 과정을 설명하기 위한 신호흐름도이다.
도 11에 도시된 바와 같이, 먼저, 시스템 초기화 과정에서 모든 DSS(101) 및 ICS(201)들과의 1:1ofN 통신을 위해 usr:request 키(2)에 비동기 팝을 설정한다.
사용자 단말(120)로부터의 특정 IoT 사물장치(210)의 리소스 값에 대한 조회 또는 설정 요청은 FLB(110)의 부하분산 정책에 의해 선택된 하나의 DSS(101)에게 전달된다.
해당 DSS(101)는 usr:request 키(2)에 조회/설정 요청정보(1) 및 응답(8)을 받기위한 response:{DSSid}:{requested} 키(2)의 이름을 병합하여 밀어 넣고(PUSH), 이와 동시에 응답에 대한 1:1통신을 위해 response:{DSSid}:{requestid} 키(2)에 비동기 팝을 설정한다. 여기서 {DSSid}는 FLB(110)에 의해 선택된 DSS(101)의 식별자이며 {requestid}는 DSS(101)가 생성하는 고유한 식별자이다.
그리고 푸쉬된 정보는 usr:request 키(3)에 비동기 팝을 설정한 모든 ICS(201) 중 오직 하나의 ICS(201)가 꺼내게(POP) 되며, 그 정보는 조회/설정 요청 정보 및 응답을 위한 키 즉, response:{DSSid}:{requestid}로 파싱된다.
다음으로 해당 ICS(201)는 조회/설정 요청정보를 이용하여 IoT 사물장치(210)에게 조회/설정을 요청(4)하고, 응답받은 결과(5)는 response:{DSSid}:{requestid} 키(6)에 밀어 넣는다(PUSH).
마지막으로 response:{DSSid}:{requestid} 키(7)에 비동기 팝을 설정한 최초의 DSS(101)는 응답 정보를 꺼내어(POP) 사용자 단말(120)에게 응답한다.
한편, 도 11에 도시된 바와 같이, 미리 정의된 전역키에 대한 신호를 비동기 수신한 송신자(비동키 팝을 선점한 임의의 송신자)는 앞선 개별키로 메시지를 푸쉬할 수 있다.
<정보의 보고>
도 12는 본 발명의 일 실시예에서 추가적인 정보 보고에 대한 정보 공유 과정을 설명하기 위한 신호흐름도이다.
도 12에 도시된 바와 같이, 먼저, IoT 사물장치(210)로부터 정보를 보고받기 위하여, 해당 IoT 사물장치(210)에 정보 보고를 설정(Observation)해야 한다.
기본적인 정보보고 설정 과정은 앞서 설명한 사물장치(210) 접근 및 관리 과정과 동일하다.
단, 정보보고 설정은 도 12에 도시된 바와 같이, 추가적인 정보보고 설정정보(Observation) 공유 과정이 필요하다.
먼저, 시스템 초기화 과정에서 모든 ICS(201)들은 observation:sync 키(2)를 구독 등록(SUP)한다.
사물장치(210) 접근 및 관리 과정을 통해 사용자 단말(120)로부터 IoT 사물장치(210)로 정보보고가 설정되고, 정보고고 설정을 수신한 IoT 사물장치(210)로부터 설정 성공 응답을 받은 ICS(201)는 observation:sync 키(3)에 정보보고 설정정보를 발행(PUB)한다.
정보보고 설정정보를 수신한 다른 모든 ICT들은 자신의 메모리에 정보보고 설정정보를 저장함으로써 추후에 발생할 수 있는 장애에 대비할 수 있다.
즉, 임의의 IoT 사물장치(210)로부터 보고되는 정보를 수신중인 ICS(201)에게 장애가 발생할 경우, 그 IoT 사물장치(210)는 다른 새로운 정상 ICS(201)에게 정보를 보고할 수 있다.
이때 새로운 정상 ICS(201)는 observation:sync 키(3)를 통하여 정보보고 설정정보를 미리 공유하였으므로, 보고되는 정보들은 모두 사용자 단말(120)에게 전달될 수 있다.
만약 해당 IoT 사물장치(210)에 대한 정보보고 설정정보가 미리 공유되지 않았다면 보고되는 정보는 무시될 것이다.
도 13은 본 발명의 일 실시에에서 정보보고 과정을 설명하기 위한 신호흐름도이다.
도 13에 도시된 바와 같이, 먼저, 시스템 초기화 과정에서 모든 DSS(101)는 dev:notification 키(3)에 구독 등록(SUB)한다.
IoT 사물장치(210)로부터 정보보고(Notification)를 수신한 ICS(201)는 dev:notification 키(2)에 정보를 발행(PUB)함으로써 모든 DSS(101)와 1:N 메시지 교환을 수행한다.
IoT 사물장치(210)가 보고하는 정보(5)는 RDB(130)에 저장되어 관리될 필요가 있으며, 정보의 저장을 위해 dev:notification 키(3)를 구독한 모든 DSS(101)는 RDB(130)와 1ofN:1 메시지 교환을 위해 rdb:access:notification:{ep}:{token} 키(4)에 분산락 획득 경쟁을 시도하고, 분산락을 획득한 오직 하나의 DSS(101)가 IoT 사물장치(210)로부터 보고되는 정보를 RDB(130)에 삽입한다. 여기서 {ep}는 가변적인 정보를 보고하는 IoT 사물장치(210)의 엔드 포인트 고유 식별자이며, {token}은 보고되는 정보의 고유 식별자이다.
dev:notification 키(3)를 구독한 모든 DSS(101)들은 자신과 세션을 맺고 있는 사용자 단말(120)(예를 들어, 웹 클라이언트)들에게 이벤트를 전송하여 게시된 페이지를 실시간 갱신하게 한다.
<고가용성 및 확장성>
도 14는 본 발명의 일 실시예에서 새로운 ICS가 구동되었을 때 ICS 클러스터(또는 리플리카셋)에 합류(Join)되는 서비스 디스커버리 과정을 설명하기 위한 신호흐름도이다.
BLB(Back-end Load Balancer, 220)는 부하분산을 담당하는 LBA(222)(Load Balancing Application)와 주기적으로 CoAP Ping을 활용하여 ICS(201)의 상태를 체크하는 HCA(221)(Health Checking Application)를 포함한다.
도 14에 도시된 바와 같이, 먼저, 시스템의 초기화 과정에서, HCA(221)와 LBA(222)는 모든 ICS(201)의 식별자 정보 셋(중복을 허용하지 않는 자료구조) 예를 들어, ICS(201) 들의 IP:Port의 셋을 lcs:member:set 키(3)를 통해 얻고 그들의 기능을 수행함과 동시에, lcs:member:set의 변경 이벤트를 구독 신청한다.
다음으로 새로운 ICS(201)가 클러스터(100)에 합류하여 lcs:member:set에 자신의 IP:PORT를 추가(1)하면 lcs:member:set의 변경 이벤트를 구독 신청한 HCA(221)와 LBA(222)는 lcs:member:set의 변경 이벤트(2)를 수신하고, 다음으로 HCA(221)와 LBA(222)는 다시 새롭게 갱신된 모든 ICS(201)의 IP:Port의 셋을 이용하여 그들의 기능을 수행한다(3).
HCA(221)와 LBA(222)는 모든 ICS(201)의 IP:Port의 셋을 자신의 로컬 메모리에 캐시 하여 즉, 변경이 있을 경우에만 셋을 갱신하도록 하여 성능을 제고할 수도 있다.
도 15는 본 발명의 일 실시예에서 합류된 새로운 ICS가 기존의 ICS와 동기화 되는 과정을 설명하기 위한 신호흐름도이다.
새로운 ICS(201-j)가 다른 ICS(201)와 동기화되지 않는다면 IoT 사물장치(210)로부터의 정보보고를 받을 수 없으며, DTLS 기반의 IoT 사물장치(210)의 등록도 받아들일 수 없다.
이에, 합류되는 ICS(201-j)는 초기화 과정에서 기존의 ICS(201)들 중 하나에게 정보보고 설정정보 및 DTLS 세션정보를 모두 수신하여 자신의 로컬 메모리에 저장해야 한다.
따라서 새로운 ICS(201-j)와 기존 ICS(201) 간 1:1ofN 양방향 통신이 요구된다.
이에, 도 15에 도시된 바와 같이, 먼저 시스템 초기화 과정에서 모든 ICS(201)는 lcs:sync:request 키(2)에 비동기 팝을 설정하다.
새로 합류되는 ICS(201-j)는 lcs:sync:request 키(1)에 자신이 수신할 lcs:sync:response:{ip:port} 키(1)의 이름 값으로 포함하여 밀어 넣음(PUSH)과 동시에 lcs:sync:response:{ip:port} 키(1)에 비동기 팝을 설정하여 응답 받을 준비를 한다. 여기서 {ip:port}는 가변적이며 새로 합류한 ICS(201-j)의 식별자이다.
이후, lcs:sync:request 키(2)에 비동기 팝을 설정한 기존의 ICS(201)들 중 오직 하나가 lcs:sync:request 키(2)에서 값을 꺼내고(POP), 자신이 가진 정보보고 설정정보(Observation) 및 DTLS 세션정보를 직렬화 하여 lcs:sync:request 키(2)의 값에서 추출한 lcs:sync:reponse{ip:port}라는 이름의 키(3)에 밀어 넣는다(PUSH).
마지막으로 새로운 ICS(201-j)는 직렬화된 데이터를 활용하여 정보보고 설정정보 및 DTLS 세션정보를 자신의 메모리에 동기화한다.
<서비스 수행 중 장애 발생시>
도 16은 본 발명의 일 실시예에서 서비스 수행중인 ICS(201-f)에 장애가 발생했을 경우 장애극복(Failover)하는 과정을 설명하기 위한 신호흐름도이다.
임의의 ICS(201)에 장애가 발생한 경우, 주기적으로 상태를 체크하는 HCA(221)에 의해 발견된다.
도 16에 도시된 바와 같이, HCA(221)가 먼저 해당 ICS(201)를 서비스에서 제외시키기 위해 ICS(201):member:set 키(1)에서 ICS(201)의 식별자 즉, IP:Port를 제거(1)하면, ICS(201):member:set 변경 이벤트(2)를 받은 HCA(221)는 더이상 해당 ICS(201)는 상태체크를 하지 않고(3), LBA(222)는 부하분산시 해당 ICS(201)를 제외시킨다.
따라서, 본 발명의 일 실시예에 따르면, 기존의 단일 장치 기반의 IoT 플랫폼에 비해 우수한 확장성과 고가용성을 제공할 수 있는 효과가 있다.
또한, 본 발명은 IoT 플랫폼을 사용자 및 사물 계층으로 분리하고, 각 계층을 클러스터(또는 마이크로서비스 리플리카셋)로 구성함으로써, 사용자 및 사물 각각의 규모에 따라 별도로 확장성 및 고가용성을 제공할 수 있는 효과가 있다.
이러한, 본 발명의 일 실시예에 따르면, 공유메모리에 기반한 메시지 교환 방법을 이용하기 때문에 도메인에 특화된 서비스(DSS)와 IoT 프로토콜 핵심 서비스(ICS)간 코드결합도가 전혀 없기 때문에, 새로운 응용서비스가 요구될 경우 사용자 및 사물을 위한 새로운 서비스를 보다 용이하게 구성하고 기존의 서비스를 재사용할 수 있는 효과가 있다.
이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술분야에 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호 범위는 전술한 실시예에 국한되어서는 아니되며 이하의 특허청구범위의 기재에 의하여 정해져야 할 것이다.

Claims (1)

  1. 리플리카셋의 형태로 확장 및 제거되어 클러스터링되고, 사용자 단말과 인터페이싱하는 도메인 관련 서비스단부;
    상기 도메인 관련 서비스단부와 계층화되고, 리플리카셋의 형태로 확장 및 제거되어 클러스터링되고, 사물장치와 인터페이싱하는 아이티 코어 서비스단부; 및
    생성된 메시지 큐에 발행 및 구독하는 표준 프로토콜 메시지를 이용하여 송신 및 수신 정보를 처리하는 공유메모리를 포함하는 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템.
KR1020200149443A 2020-11-10 2020-11-10 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템 KR20220063503A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200149443A KR20220063503A (ko) 2020-11-10 2020-11-10 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200149443A KR20220063503A (ko) 2020-11-10 2020-11-10 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템

Publications (1)

Publication Number Publication Date
KR20220063503A true KR20220063503A (ko) 2022-05-17

Family

ID=81799692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200149443A KR20220063503A (ko) 2020-11-10 2020-11-10 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템

Country Status (1)

Country Link
KR (1) KR20220063503A (ko)

Similar Documents

Publication Publication Date Title
US11122027B2 (en) End-to-end M2M service layer sessions
US10986017B2 (en) Large-scale real-time multimedia communications
US10645181B2 (en) Meta broker for publish-subscribe-based messaging
US10425530B2 (en) System and method for mobile core data services
EP1542399A1 (en) The method for connecting devices in dynamic family networking
US10455641B2 (en) Protocol data unit management
CN101785281A (zh) 自动服务发现和动态连接管理
CN107528891B (zh) 一种基于WebSocket的自动集群方法及其系统
CN110462600B (zh) 用于联网媒体分发的系统、方法和设备
CN112968965B (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
WO2014014909A1 (en) Control system for conferencing applications in named-data networks
US20080208959A1 (en) Hanging request system and method for client/server communication
CN108289055B (zh) 一种基于Redis订阅服务的分布式实时聊天系统及方法
US20090154374A1 (en) Communication of configuration management notifications in a packet-switched network
CN111064742B (zh) 一种基于网络代理实现内网访问的方法、装置及相关设备
US20130185329A1 (en) Distributed database
CN110771117B (zh) 一种采用面向id的网络的会话层通信
CN111066339B (zh) 用于分布式移动网络的系统和方法
KR20150067037A (ko) M2m 시스템에서 구독의 기준정보 최적화 방법 및 장치
KR100597405B1 (ko) 소켓 어플리케이션 프로그램을 이용한 데이터 중계 시스템및 데이터 중계 방법
KR20220063503A (ko) 메시지 교환 방식을 이용한 계층화된 IoT 서비스 시스템
US20100228976A1 (en) Method and apparatus for providing secured network robot services
CN113515392B (zh) Rpc调用方法、装置、设备及存储介质
CN110474781B (zh) 一种组播数据转发的方法及装置
CN101860544A (zh) 会话启动协议消息的发送系统及方法