DOI QR코드

DOI QR Code

Design and Implementation of a Dynamic IoT Device Management System

동적 사물인터넷 장치 관리 시스템 설계 및 구현

  • 왕성혜 (호서대학교 재난안전시스템학과(컴퓨터공학)) ;
  • 문남미 (호서대학교 컴퓨터정보공학부) ;
  • 민홍 (가천대학교 AI.소프트웨어학부)
  • Received : 2021.02.19
  • Accepted : 2021.04.09
  • Published : 2021.04.30

Abstract

With the development of the Internet of Things technology, new devices are being developed and used to provide various applications and services. Most IoT devices have a high probability of error because they operate in harsh environments with limited resources. In addition, it is necessary to manage the Internet of Things devices dynamically because new devices are constantly deployed. In this paper, we design a system that allows users to monitor the mounting of new devices to perform the necessary tasks and implement prototypes to validate their operability. Our system also provides a web-based programming interface to direct work on new modules and share work content with each other.

사물인터넷 관련 기술의 발달로 새로운 장치들이 개발되고 있으며 다양한 응용과 서비스 제공에 활용되고 있다. 대부분의 사물인터넷 장치는 자원이 제한되어 있고 열악한 환경에서 동작하기 때문에 오류 발생 확률이 높다. 또한, 신규 장치들이 지속적으로 투입되기 때문에 동적으로 사물인터넷 장치를 관리하는 것이 필요하다. 본 논문에서는 신규 장치의 탑재 여부를 모니터링하여 필요한 작업을 수행할 수 있도록 해주는 시스템을 설계하고 프로토타입을 구현하여 운용성을 검증하였다. 또한, 웹 기반 프로그래밍 인터페이스를 제공하여 신규 모듈에 대한 작업을 지시하고 작업 내용들을 서로 공유할 수 있다.

Keywords

Ⅰ. 서론

사물인터넷과 관련된 기술의 발달로 개인의 건강관리[1], 스마트시티[2], 산업[3,4] 등 다양한 응용 분야에서 활용되고 있다. 사물인터넷 장치들은 주변 환경의 모니터링을 위한 센서들과 관리자의 판단이나 자동화된 분석 시스템의 결과에 따라 장치를 제어하는 액추에이터로 구성되어 있다. 이러한 사물인터넷 장치들은 유/무선 네트워크 기술을 통해 직/간접적으로 인터넷에 연결된다. 대부분의 사물인터넷 장치는 탑재된 프로세서, 메모리, 전원 등의 측면에서 제한된 자원을 사용하며 하드웨어적인 문제나 네트워크 통신 오류로 인해 잦은 오류가 발생한다. 따라서, 사물인터넷 장치를 통해 환경을 모니터링하고 제어하는 시스템에서는 오류로 인한 사물인터넷 장치의 단절과 신규 장치의 참여를 지원하는 체계가 필요하다.

관리자나 사용자 측면에서 원활한 시스템 운용을 위해서는 편리한 접근과 시스템 사용의 용이성이 제공되어야 한다. 이를 위해서 관리자와 사용자의 접근이 편리한 웹 기반의 인터페이스 기술을 활용할 수 있다. 웹 기반 인터페이스의 경우 다양한 시각화 도구를 제공하고 있고 다양한 단말 장치에 따라 적합한 화면 구성으로 분석 데이터를 제공할 수 있다. 또한 블록 기반의 프로그래밍 도구를 통해서 일부 기능들을 필요에 따라 개선하고 유사 기능은 공유하여 사용할 수 있는 환경을 구축할 수 있다.

본 논문에서는 사물인터넷 장치의 동적 추가와 제어를 관리할 수 있는 시스템을 설계하고 프로토타입 구현한다. 또한, 웹 기반 인터페이스 제공을 통해서 관리자가 사물인터넷 장치를 쉽게 제어할 수 있도록 하며 필요에 따라 다른 사용자와 제어 프로그램을 공유할 수 있도록 하는 기능도 지원한다. 제안된 시스템은 변동성이 높은 사물인터넷 장치에 대한 관리의 편이성을 높여주어 안정적으로 시스템이 운영될 수 있도록 해준다.

본 논문의 구성은 다음과 같다. 1장의 서론을 시작으로 2장에서는 기존의 관련 연구를 살펴본다. 3장과 4장에서는 제안된 시스템의 설계와 구현에 관해 설명하며 5장에서는 결론을 맺는다.

Ⅱ. 관련 연구

동적으로 장치를 관리하기 위해서는 다음과 같은 과정이 필요하다[5]. 먼저, 장치 검색과 해당 장치에 대한 상세명세가 이루어져야 한다. 다음으로 해당 장치의 명세에 따라 등록된 장치인지 신규로 등록되어야 하는 장치인지를 분류하고 신규로 등록된 장치의 경우에는 기존에 등록된 장치들과의 유사성이 높은 장치로 등록한다. 등록 이후에는 데이터 수집을 위한 API들과 맵핑을 통해 신규장치가 시스템에 통합될 수 있도록 한다.

사물인터넷 장치들을 동적으로 관리하는 시스템은 장치 인식을 위해 다양한 표준 프로토콜을 활용한다. 하드웨어 인터페이스 수준에서 개발된 SensPnP는 사물인터넷 장치들에 대한 ‘plug-and-play’ 기능을 제공하기 위한 시스템 구조를 제안하고 있다[6]. 제안된 시스템에서는 센서와 액추에이터가 프로세싱 유닛과 연결되는 과정에서 하드웨어적인 표준 인터페이스를 설계하고 연결된 핀들에서 전달되는 신호 정보를 분석하여 장치를 인식하는 방법을 제안하였다.

Koziolek 등은 표준화된 통신 프로토콜을 사용하여 ‘plug-and-produce’가 가능한 OpenPnP를 제안하였다[7]. 제안된 OpenPnP 시스템은 OPC (Open Platform Communications)에서 표준화를 진행하고 있는 OPC UA (OPC Unified Architecture)에 기반을 두고 있다. OPC UA는 서버/클라이언트 구조로 산업 자동화와 관련된 기계들 사이에 통신을 위한 프로토콜로 설계되었다. OpenPnP의 PnP 서비스는 MQTT  Message Queuing Telemetry Transport)의 발행 (publish)/구독 (subscribe) 기반의 프로토콜을 활용하여 장치를 인식하고 해제할 수 있도록 하였다.

IONMP (Input Output Nodes Messaging Protocol)는 센서와 액추에이터가 자신의 ID 정보와 가용성을 바탕으로 장치를 등록하고 해제하는 방법을 제안하고 있다[8]. 메시징 기반의 프로토콜을 통해서 서로 다른 이기종 장치들 사이에 표준화된 데이터 송수신이 가능하도록 하였다. 장치 등록을 위해서 JSON (Javascript Object Notation) 형식으로 장치의 특성을 명세하고 메시지 기반의 발행/구독 기능뿐만 아니라 제어, 알람, 질의 기능까지 설계하였다.

MsM (Microservice Middleware)은 사물인터넷 응용의 성능향상을 위해서 마이크로 서비스 기반으로 설계된 미들웨어이다[9]. 마이크로 서비스는 전체 시스템을 작은 독립된 컴포넌트들로 세분화하고 이들 간의 상호작용을 동적으로 변화할 수 있는 구조이다. 기존에 클라우드 기반의 시스템이 센서가 포함된 기반 네트워크로부터 데이터를 모으는 중앙 집중 방식을 사용한다면 MsM은 각 네트워크를 세부로 나누고 다수의 미들웨어단에서 경량 웹서비스를 제공함으로써 적은 자원으로도 데이터 수집과 분석이 가능한 서비스를 제공할 수 있다.

Ⅲ. 시스템 설계

1. 시스템 개요

그림 1은 제안된 시스템은 전체 개요를 보여준다. 사용자가 웹 페이지에서 자신의 계정으로 로그인 하고 계정에 등록된 사물인터넷 모듈들의 동작 방식을 확인 및 관리할 수 있다. 웹 서버는 PHP 기반으로 제작 하였고, 생성된 계정들은 MySQL 데이터베이스와 연동되어 관리된다. 각 계정에서 생성한 모듈들의 동작 방식들은 웹 서버에 JSON 파일로 저장되며, 웹 서버는 모든 계정의 JSON 파일들을 각 모듈을 통합 제어하는 Main Pi에게 FTP(File Transfer Protocol)를 사용해 전송한다. Main Pi는 전송 받은 JSON 파일을 파싱하여 모듈들의 상태 정보를 갱신하고, 모듈들이 사용자가 설정한 동작 방식에 맞게 동작하도록 실행 파일을 동적으로 생성하여 이를 각 장치에게 전송한다. 모듈은 동적으로 전송 받은 제어 파일을 실행하며 사용자가 웹 페이지에서 동작 방식을 수정하는 즉시 수정된 동작 방식을 수행하게 된다.

OTNBBE_2021_v21n2_97_f0001.png 이미지

그림 1. 시스템 개요

Fig. 1. System overview

신규 모듈을 등록하는 경우 신규 모듈이 자신의 IP, 이름 등 의 제어에 필요한 정보를 JSON 형식으로 Main Pi에게 전송한다. 전송은 FTP를 사용한다. 이 정보를 기반으로 Main Pi는 기존에 있던 모듈인지 신규 모듈인지 검사하고, 신규 모듈인 경우 핀맵(Pinmap)에 신규 모듈 정보를 추가한 다음 웹 서버에 전송한다. 웹 페이지는 서버에 저장된 핀맵 파일을 파싱하여 해당 계정에 연결 되어있는 모듈과 모듈에 해당하는 핀 번호를 갱신한다.

2. 웹 설계

메인 페이지에서는 데이터베이스를 확인하여 공유된 work 목록만을 출력하며, Work Manager, Sign In/Out, Pin Manager, New Unit 페이지로 이동할 수 있다. Sign In을 제외한 모든 메뉴들은 로그인을 필요로 하며, 로그인이 안된 상태에서 페이지 이동 시 Sign In 페이지로 자동 이동된다. Sign Out 은 세션을 제거함으로서 로그아웃을 수행한 뒤, 메인 페이지로 이동한다.

Work Manager 페이지는 데이터베이스에서 현재 사용자가 생성하거나 공유받은 작업 목록을 가져와 출력하고, 각 작업을 클릭할 시, 상세 정보를 출력하고 버튼을 통해 작업의 수정/삭제/공유 기능을 제공한다.

Work Manager 의 우측 상단 새 작업(new work) 버튼을 클릭하면 새로운 작업을 만들거나 수정할 수 있는 페이지 New Work 페이지로 이동할 수 있다. Pin Manager 페이지는 서버에 저장되어있는 사용자의 pinmap.json을 읽어와서 사용자에게 출력하고 만약 사용자가 정보를 수정하고 핀 번호 저장 버튼을 클릭하면 pinmap.json을 수정하고 다시 정보를 출력한다. New Unit 페이지는 사용자가 만약 자신의 공정에 새로운 유닛(Sensor or Actuator)을 등록했다면, 서버에서 해당 유닛을 감지하고 파일로 저장한다. New Unit 페이지에서는 해당 파일을 검사하여 새로 등록된 유닛이 있다면 유닛에 필요한 정보를 사용자에게 입력받아 서버에 전송함으로서 유닛을 동적으로 인식하여 사용할 수 있는 기능을 제공한다.

New Work 페이지는 처음에 유닛의 정보를 pinmap.json 에서 받아와서 변수에 저장한다. 이를 통해 각 유닛의 이름에 매칭되는 이미지를 센서 리스트박스(sensor list box)와 액추에이터 리스트박스(actuator list box)에 출력한다. 유닛의 이미지를 드래그앤드랍(drag&drop) 방식을 사용하여 작업을 만들며, 제출(submit) 버튼을 통해 서버 데이터베이스에 적용한다.

3. 데이터 흐름

그림 2와 3은 사용자와 IoT 장치 사이의 데이터 흐름을 보여준다.

OTNBBE_2021_v21n2_97_f0002.png 이미지

그림 2. 사용자로부터 IoT 장치까지의 데이터 흐름

Fig. 2. Data flow from users to IoT devices

 

OTNBBE_2021_v21n2_97_f0003.png 이미지

그림 3. IoT 장치로부터 사용자까지의 데이터 흐름

Fig. 3. Data flow from IoT devices to users

그림 2에서와 같이 사용자로부터 IoT 장치까지의 데이터 흐름은 웹 페이지의 Work Manager에서 사용자로 인해 동작 방식을 생성하게 되며, 생성된  동작 방식은 JSON 파일로 저장을 하게 된다. 그리고 서버에서 사용자 계정의  디렉터리에  저장되어  있는 동작 방식을 Main Pi로 전달하게 되며 이 과정은 FTP를 사용하게 된다. 그 후 Main Pi는 전달받은 파일을 읽어 동작 방식에 맞는 제어 명령을  모듈들에게  전달하게 되고 모듈은 전달받은  명령대로 실행을 수행하게 된다.

그림 3은 IoT 장치로부터 사용자까지의 데이터 흐름을 보여준다. 연결된 모듈은 자신의 정보가 담긴 JSON 파일을 Main Pi에게 전달하게 되고 이 과정은 FTP를 사용한다. 이때 Main Pi는 전달받은 정보를 파싱(parsing), 신규 모듈 여부를 검사하게 되며 신규 모듈일 경우 핀 맵을 갱신하게 되고 갱신된 핀맵 정보를 서버에게 전달하게 된다. 웹 페이지는 서버에서 갱신된 내용을 바탕으로 Work Manager와 Pin Manager 페이지에서 각각 신규 모듈에 해당하는 아이콘과 Pin 번호가 새롭게 생성되는 것을  확인할 수 있다.

Ⅳ. 시스템 구현

시스템 구현 및 시연을 위해서 하드웨어 플랫폼은 라즈베리 파이 4를 사용했으며 그림 4는 라즈베리 파이의 핀 맵의 설정 및 설정 결과를 확인하는 페이지를 보여준다.

OTNBBE_2021_v21n2_97_f0004.png 이미지

그림 4. 핀 관리자 페이지

Fig. 4. Pin manager page

그림 5는 블록 기반의 프로그래밍을 통해 작업을 생성하는 인터페이스를 보여준다. 관리자 웹 페이지를 통해서 등록된 모듈을 확인할 수 있으며 센서와 액추에이터의 조합으로 특정 이벤트 발생 시 액추에이터를 동작시키는 일련의 명령어 생성이 가능하다.

OTNBBE_2021_v21n2_97_f0005.png 이미지

그림 5. 작업 관리자 페이지

Fig. 5. Work manager page

그림 6은 제안 시스템의 가용성을 확인하기 위한 프로토타입을 보여준다. 두 개의 공간으로 분리했으며 해당 공간에 사물인터넷 장치가 추가될 때마다 관리자 웹 페이지에서 새로운 모듈이 생성되고 생성된 모듈을 제어할 수 있는 아이콘이 생성된다. 웹 페이지를 통해 왼쪽 공간에 대한 모듈 제어 프로그램을 작성한 후에 이를 오른쪽에 공유하면 동일한 작업이 수행된다.

OTNBBE_2021_v21n2_97_f0006.png 이미지

그림 6. 프로토타입

Fig. 6. Prototype

Ⅴ. 결론

사물인터넷의 활용 분야가 넓어지면서 동적으로 장치가 등록되고 해지되는 상황에 대한 고려가 필요하게 되었다. 본 논문에서는 모듈이 등록 또는 해지될 때마다 이를 인식하여 웹 기반 관리 시스템에 실시간으로 반영하여 사용자가 모듈을 쉽게 제어할 수 있는 웹 기반 프로그래밍 환경을 제공하는 시스템을 설계하고 구현하였다. 또한, 제안된 시스템은 유사 환경에서 복잡한 프로그래밍 없이 기존 프로그램에 대한 공유를 통해 빠르고 편리하게 원하는 환경을 설정해주는 방법을 제공한다.

※ 이 논문은 2019년도 정부(과학기술정보통신부)의 재원으로 정보통신기획평가원의 지원을 받아 수행된 연구임(No. 2019-0-00708, 뉴로모픽 아키텍처 기반 자율형 IoT 응용통합개발환경).

References

  1. B. Cho, "Analysis and Design of Fitness Healthcare System based on IoT," The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 20, No. 1, pp. 187-192, Feb. 2020. DOI: https://doi.org/10.7236/JIIBC.2020.20.1.187
  2. J. Park and E. Park, "Performance Evaluation of IoT Cloud Platforms for Smart Buildings," Journal of the Korea Academia-Industrial cooperation Society, Vol. 21, No. 5, pp. 664-671, May 2020. DOI: https://doi.org/10.5762/KAIS.2020.21.5.664
  3. S. Hwang, et. al., "Real-time Processing of Manufacturing Facility Data based on Big Data for Smart-Factory," The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 19, No. 5, pp. 219-227, Oct. 2019. DOI: https://doi.org/10.7236/JIIBC.2019.19.5.219
  4. H. Kim and S. Song, "A Study on the Global Companies Trend of Industrial Internet of Things," The Journal of Korea Institute of Information, Electronics, and Communication Technology, Vol. 12, No. 4, pp. 387-394, Oct. 2019. DOI: https://doi.org/10.17661/jkiiect.2019.12.4.387
  5. A. Mavrogiorgou, A. Kiourtis, and D. Kyriazis, "A plug 'n' play approach for dynamic data acquisition from heterogeneous IoT medical devices of unknown nature," Evolving Systems, Vol. 11, No. 2, pp. 269-289, Apr. 2019. DOI: https://doi.org/10.1007/s12530-019-09286-5
  6. S. Roy, S. Misra, and N. Raghuwanshi, "SensPnP: Seamless Integration of Heterogeneous Sensors With IoT Devices," IEEE Transactions on Consumer Electronics, Vol. 65, No. 2, pp. 205-214, May 2019. DOI: https://doi.org/10.1109/TCE.2019.2903351
  7. H. Koziolek, A. Burger, M. Platenius-Mohr, J. Ruckert, F. Mendoza, and R. Braun, "Automated industrial IoT-device integration using the OpenPnP reference architecture," Software: Practice and Experience, Vol. 50, No. 3, pp. 246-274, Mar. 2020. DOI: https://doi.org/10.1002/spe.2765
  8. R. Venkataramana, "IONMP - An open standard plug and play protocol for IOT entities," Proc. of IEEE International Conference on Electronics, Computing and Communication Technologies, pp.1-6, Jul. 2020. DOI: https://doi.org/10.1109/CONECCT50063.2020.9198427
  9. A. Benayache, A. Bilami, S. Barkat, P. Lorenz, and H. Taled, "MsM: A microservice middleware for smart WSN-based IoT application," Journal of Network and Computer Applications, Vol. 144, pp. 138-154, Oct. 2019. DOI: https://doi.org/10.1016/j.jnca.2019.06.015