KR102451255B1 - 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버 - Google Patents

초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버 Download PDF

Info

Publication number
KR102451255B1
KR102451255B1 KR1020200143811A KR20200143811A KR102451255B1 KR 102451255 B1 KR102451255 B1 KR 102451255B1 KR 1020200143811 A KR1020200143811 A KR 1020200143811A KR 20200143811 A KR20200143811 A KR 20200143811A KR 102451255 B1 KR102451255 B1 KR 102451255B1
Authority
KR
South Korea
Prior art keywords
iot
information
library
integrated development
cloud server
Prior art date
Application number
KR1020200143811A
Other languages
English (en)
Other versions
KR20220058246A (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 KR1020200143811A priority Critical patent/KR102451255B1/ko
Publication of KR20220058246A publication Critical patent/KR20220058246A/ko
Application granted granted Critical
Publication of KR102451255B1 publication Critical patent/KR102451255B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버는 웹으로부터 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스에서 수행되는 기능을 포함하는 태스크(task) 정보 및 상기 IoT 디바이스의 구동을 위한 라이브러리 정보를 수집하는 수집부, 가상 환경에서 상기 IoT 프레임워크 정보, 상기 태스크 정보 및 상기 라이브러리 정보를 검증하는 검증부, 상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 저장하는 데이터베이스, 사용자 단말로부터 상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받는 선택부 및 상기 선택된 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행하는 프로그래밍부를 포함한다.

Description

초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버{LIBRARY MANAGEMENT METHOD FOR SOFTWARE DEVELOPMENT FOR SUBMINIATURE IOT DEVICE AND INTEGRATED DEVELOPMENT CLOUD SERVER}
본 발명은 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버에 관한 것이다.
IoT는 무선 통신기술, 마이크로 전자 기계 시스템(Microelectromechanical System, 이하 MEMS) 및 마이크로 서비스 (Microservices)와 같은 기술 및 개발 방법론의 발달과 융합으로 다양한 사물이 네트워크로 연결되어 다양한 서비스를 제공하기 위한 IoT 서비스 인프라에 관한 것이다.
이러한 IoT 서비스 인프라에는 IoT의 사물(thing)에 해당되며 각종 데이터를 발생시키는 IoT 디바이스 계층과 이러한 IoT 디바이스에서 발생하는 데이터를 수집, 분석, 가공 등을 통해 서비스를 제공하는 서비스 계층으로 나눌 수 있다. IoT 디바이스 계층에는 디바이스에 실제 탑재되는 MCU, 메모리, 전력관리, 센서 등과 같은 MEMS와 이를 제어하기 위한 IoT 소프트웨어로 구성될 수 있다. 그리고 서비스 계층에는 수많은 IoT 디바이스에서 발생하는 데이터를 수집하고 통합하는 IoT 서비스 엣지(Edge)가 있고, IoT 서비스 엣지에서 통합된 데이터를 분석 및 가공해서 필요한 서비스를 제공하는 IoT 서비스 클라우드 서버가 존재하는 것이 일반적이다. 또한, 이러한 IoT 디바이스, IoT 서비스 엣지, IoT 서비스 클라우드 서버 사이에서의 네트워크를 통한 연결 또한 IoT 서비스 인프라에서 아주 중요한 역할을 한다.
IoT 디바이스는 이러한 IoT 서비스 인프라와 연계되어 구성될 때 그 가치가 구현된다. 그러므로, IoT 디바이스에 사용될 소프트웨어는 단순히 IoT 디바이스를 제어하기 위한 목적뿐만 아니라 IoT 서비스 인프라와의 연계를 고려하여 진행되어야만 한다. 또한, 이러한 물리적인 디바이스와 그 인터페이스를 다루는 임베디드 소프트웨어 개발 분야는 응용 소프트웨어 개발자가 쉽게 진입하기 어렵기 때문에 IoT 관련 기술 발전에 큰 걸림돌이 될 수 있다.
즉, IoT 소프트웨어 개발은 IoT 서비스 인프라와의 연계를 기본으로 진행되어야 하며, 이러한 복잡한 기술적 요구 및 임베디드 소프트웨어 개발에 특화된 요구를 최소한의 노력으로 만족하며, 보다 다양한 IoT 소프트웨어를 비주얼 프로그래밍 방식으로 쉽게 개발할 수 있는 IoT 통합 개발 환경(IDE)이 요구된다.
그리고, IoT 서비스 인프라와의 연계를 고려한 IoT 개발 환경을 구성하는 것 또한 어렵기 때문에 모든 개발환경이 모두 준비된 클라우드 기반 IoT 통합 개발 환경이 요구된다.
한국공개특허공보 제2009-0004210호 (2009.01.12. 공개)
웹으로부터 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스에 수행되는 기능을 포함하는 태스크(task) 정보 및 IoT 디바이스의 구동을 위한 라이브러리 정보를 수집하고, 가상 환경에서 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 검증하고, 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 저장하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
사용자 단말로부터 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받고, 선택된 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 수단으로서, 본 발명의 일 실시예는, 웹으로부터 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스에서 수행되는 기능을 포함하는 태스크(task) 정보 및 상기 IoT 디바이스의 구동을 위한 라이브러리 정보를 수집하는 수집부, 가상 환경에서 상기 IoT 프레임워크 정보, 상기 태스크 정보 및 상기 라이브러리 정보를 검증하는 검증부, 상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 저장하는 데이터베이스, 사용자 단말로부터 상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받는 선택부 및 상기 선택된 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행하는 프로그래밍부를 포함하는 통합 개발 클라우드 서버를 제공할 수 있다.
본 발명의 다른 실시예는, 웹으로부터 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스에서 수행되는 기능을 포함하는 태스크(task) 정보 및 상기 IoT 디바이스의 구동을 위한 라이브러리 정보를 수집하는 단계, 가상 환경에서 상기 IoT 프레임워크 정보, 상기 태스크 정보 및 상기 라이브러리 정보를 검증하는 단계, 상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 저장하는 단계, 사용자 단말로부터 상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받는 단계 및 상기 선택된 IoT 프레임워크 정보, 태스크 정보및 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행하는 단계를 포함하는 통합 개발 환경 제공 방법을 제공할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 다수의 사용자들이 가상 환경을 통해 제공되는 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보 등을 이용하여 쉽고 빠르게 IoT 애플리케이션을 개발할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
IoT 디바이스에 탑재되는 IoT 애플리케이션을 클라우드 기반의 가상 환경을 통해 비전문 개발자들도 쉽게 개발할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
클라이언트의 로컬 환경이 아닌 서버 단에서 구동되는 소프트웨어를 통해 웹 기반의 가상 환경을 제공하고, 동시에 불특정 다수에 의한 서버 사용에 따른 서버 부하의 문제를 해결하기 위해, 가상 환경인 도커(Docker) 기반의 사용자별 검증 서비스를 제공하도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
가상 환경을 통해 웹으로부터 수집된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보에 대한 검증 서비스를 제공함과 동시에, 가상 환경을 통해 빌드된 IoT 애플리케이션에 대해 검증 서비스를 제공하도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
IoT 서비스 인프라에 대한 연동에 대한 구체적인 설계 및 개발 없이 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 쉽게 개발할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
다양한 임베디드 OS 및 디바이스 라이브러리와 같이 특정 하드웨어에 종속되지 않고 IoT 소프트웨어를 쉽게 작성 할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
클라우드 환경에서 웹기반으로 개발이 가능하고 소스 코드 또한 내장된 버전 관리 시스템을 통해 관리가 되기 때문에 별도의 버전 관리 시스템을 구비하지 않아도 되는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
비주얼 프로그래밍 방식으로 IoT 소프트웨어를 쉽게 개발하고 필요시 직접 개발된 소스 코드를 편집할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
클라우드 환경에서 IoT 소프트웨어를 작성하고, 작성된 IoT 소프트웨어를 IoT 소프트웨어 에이전트 프로그램을 통해 직접 IoT 디바이스에 쉽게 설치할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
가상 환경은 사용자에게 저작 환경을 제공하여 사용자가 이를 활용할 수 있도록 할 뿐만 아니라, 가상 환경에서 제공하는 최신의 검증된 오픈 소스 기반의 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보들을 연계하여 사용자에게 제공할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
검증되지 않은 오픈 소스 기반의 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 가상 환경을 통해 사용자들에게 제공되는 경우, 제공된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보에 대한 신뢰성 및 이용성에 제약이 따를 수 있으며, 비전문가들이 손쉽게 IoT 애플리케이션을 개발하기 위한 환경을 제공하는데 방해되도록 하는 문제점을 해결하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 통합 개발 환경 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 가상 환경에서 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 검증하여 데이터베이스에 저장하는 과정을 설명하기 위한 예시적인 도면이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 태스크 정보를 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 일 실시예에 따른 사용자 단말로부터 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받는 과정을 설명하기 위한 예시적인 도면이다.
도 6은 본 발명의 일 실시예에 따른 IoT 애플리케이션을 위한 프로그래밍을도시한 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 7은 본 발명의 일 실시예에 따른 IoT 애플리케이션에 대해 에뮬레이션을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 8은 본 발명의 일 실시예에 따른 IoT 애플리케이션을 구동할 때 발생하는 전력 소모를 시뮬레이션하는 과정을 설명하기 위한 예시적인 도면이다.
도 9는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 통합 개발 환경 시스템의 구성도이다. 도 1을 참조하면, 통합 개발 환경 시스템(1)은 사용자 단말(100), IoT (Internet of Things) 디바이스(110) 및 통합 개발 클라우드 서버(120)를 포함할 수 있다. 사용자 단말(100), IoT 디바이스(110) 및 통합 개발 클라우드 서버(120)는 통합 개발 환경 시스템(1)에 의하여 제어될 수 있는 구성요소들을 예시적으로 도시한 것이다.
도 1의 통합 개발 환경 시스템(1)의 각 구성요소들은 일반적으로 네트워크(network)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 통합 개발 클라우드 서버(120)는 사용자 단말(100) 또는 IoT 디바이스(110)와 동시에 또는 시간 간격을 두고 연결될 수 있다.
네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
사용자 단말(100)은 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스(110)에서 수행되는 기능을 포함하는 태스크(task) 정보 및 IoT 디바이스(110)의 구동을 위한 라이브러리 정보를 개발 또는 개선시킬 수 있으며, 통합 개발 클라우드 서버(120)에 저장된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택하여 IoT 애플리케이션을 개발할 수 있다. 이 때, IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 개발 또는 개선시키고, IoT 애플리케이션을 개발하는 사용자 단말(100)은 동일한 단말에 의해 수행될 수도 있고, 서로 다른 단말에 의해 수행될 수도 있다. 도 1에서는, 제 1 사용자 단말(101)에 의해 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보가 개발 또는 개선되고, 제 2 사용자 단말(102)에 의해 IoT 애플리케이션이 개발되는 것을 상정하여 본 발명을 설명하도록 한다.
제 1 사용자 단말(101)은 오픈 소스 기반의 커뮤니티에서 공개된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 개발 또는 개선시킬 수 있다. 본 발명에 따르면, 불특정 다수의 사용자에 의해 개발 또는 개선된 오픈 소스 기반의 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 지속적으로 수집함으로써, IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보에 대한 무한한 확장성을 제공할 수 있다.
제 1 사용자 단말(101)은 개발 또는 개선한 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 통합 개발 클라우드 서버(120)로 전송할 수 있다. 또는, 제 1 사용자 단말(101)은 개발 또는 개선한 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 가상 환경과 연동된 데이터베이스로 업로드할 수 있다.
이와 달리, 통합 개발 클라우드 서버(120)가 능동적으로 개발 또는 개선한 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 가상 환경을 수집할 수도 있다.
이러한 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보는 제 2 사용자 단말(102)이 IoT 애플리케이션을 개발하는데 이용된다.
제 2 사용자 단말(102)은 가상 환경을 통해 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택함으로써, IoT 애플리케이션이 생성되도록 할 수 있다.
통합 개발 클라우드 서버(120)는 웹으로부터 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 수집할 수 있다. 여기서, 태스크 정보는 IoT 디바이스(110)에서 수행되는 기능에 관한 복수의 태스크로 구성된 마이크로 서비스의 소스 코드를 포함하고, 라이브러리 정보는 복수의 운영체제에 대한 라이브러리 및 복수의 IoT 디바이스(110)에 대한 라이브러리를 포함할 수 있다.
통합 개발 클라우드 서버(120)는 가상 환경에서 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 검증할 수 있다. 이 때, IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보는 가상 환경인 통합 개발 환경의 관리 권한을 가진 소수의 관리자에 의해 추가 검증을 거칠 수도 있다.
예를 들어, 통합 개발 클라우드 서버(120)는 가상 환경에서 적어도 하나의 패턴에 기초하여 마이크로 서비스의 소스 코드를 분석하여 태스크 정보를 검증할 수 있다. 이 때, 통합 개발 클라우드 서버(120)는 분석 결과에 기초하여 중복 소스 코드 또는 부적합 소스 코드 중 적어도 하나에 대한 가이드 정보를 제공할 수 있다. 적어도 하나의 패턴은 예를 들어, 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 등을 포함할 수 있다.
예를 들어, 통합 개발 클라우드 서버(120)는 디버거를 이용하여 마이크로 서비스의 소스 코드에 대해 디버깅을 수행하여 태스크 정보를 검증할 수 있다.
예를 들어, 통합 개발 클라우드 서버(120)는 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 데이터베이스에 저장할 수 있다. 예를 들어, 통합 개발 클라우드 서버(120)는 검증된 결과에 기초하여 가상 환경과 연동된 데이터베이스로 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 각각 동기화시킬 수 있다. 이 때, IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보는 가상 환경인 통합 개발 환경의 관리 권한을 가진 소수의 관리자에 의해 추가 작업을 거친 후 데이터베이스에 저장될 수도 있다.
통합 개발 클라우드 서버(120)는 웹을 통해 수집된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보 외에도 제 2 사용자 단말(102)에 의해 개발된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 검증할 수도 있다.
통합 개발 클라우드 서버(120)는 사용자 단말(100)로부터 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받을 수 있다.
통합 개발 클라우드 서버(120)는 선택된 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행할 수 있다. 이 때, 통합 개발 클라우드 서버(120)는 개발/빌드 및 실행을 위한 가상머신 또는 컨테이너를 제공할 수 있다. 예를 들어, 통합 개발 클라우드 서버(120)는 선택된 라이브러리 정보에 기초하여 복수의 운영체제에 대한 라이브러리 및 복수의 IoT 디바이스(110)에 대한 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성하여 개발/빌드 및 실행을 위한 가상 환경을 제공할 수 있다.
통합 개발 클라우드 서버(120)는 에뮬레이터를 이용하여 IoT 애플리케이션에 대해 에뮬레이션을 수행할 수 있다. 여기서, 에뮬레이터는 마이크로컨트롤러 유닛(MCU: Micro Controller Unit) 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성할 수 있다.
통합 개발 클라우드 서버(120)는 시뮬레이터를 이용하여 선택된 라이브러리 정보에 기초하여 IoT 애플리케이션을 구동할 때 발생하는 전력 소모를 시뮬레이션할 수 있다. 예를 들어, 통합 개발 클라우드 서버(120)는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 전력 소모를 시뮬레이션할 수 있다.
통합 개발 클라우드 서버(120)는 가상 환경인 IoT 통합 개발 환경을 지원할 수 있다. IoT 통합 개발 환경은 태스크별로 XML을 생성시킬 수 있다. 이 때, 생성된 XML의 정보는 소스 코드를 생성하는 과정에서 참고될 수 있다.
여기서, IoT 통합 개발 환경은 물리적인 컴퓨터에 종속되지 않는 클라우드의 형태로 동작할 수 있다. 종래의 경우, 통합 개발 환경은 로컬 PC에 다운로드되어 실행됨으로써, 특정 PC에 종속되었다. 그러나 본 발명에서 제안하는 클라우드 기반의 IoT 통합 개발 환경의 경우, 개발자들이 웹 브라우저를 통해 IoT 통합 개발 환경에 접속함으로써, 해당 서비스에서 제공하는 개발 환경을 통해 개발을 할 수 있게 된다. 즉, 개발자들은 인터넷에 연결 가능한 곳이라면, 클라우드 기반의 IoT 통합 개발 환경을 통해 기존의 개발 환경을 그대로 불러올 수 있다.
이러한 IoT 통합 개발 환경은 프로젝트(파일) 관리/브라우징 기능, 편집기 기능, 자동 저장 및 리비전 기능, 협업 기능, 웹 기반 SSH 터미널 기능, 맞춤형 UI 기능 등을 제공할 수 있다.
IoT 디바이스(110)는 IoT 소프트웨어 에이전트에 의해 다운로드된 IoT 애플리케이션이 설치될 수 있다. 여기서, IoT 소프트웨어 에이전트는 통합 개발 클라우드 서버(120)로부터 IoT 소프트웨어를 다운로드될 수 있다.
이후, IoT 디바이스(110)가 IoT 서비스 엣지로 IoT 디바이스(110)의 등록을 요청하면, IoT 디바이스(110)의 등록 요청은 IoT 서비스 엣지를 통해 IoT 클라우드로 전달될 수 있다. 이 때, IoT 디바이스(110)는 IoT 클라우드에서 생성된 디바이스 ID를 IoT 서비스 엣지를 통해 수신할 수 있다.
도 2는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버의 구성도이다. 도 2를 참조하면, 통합 개발 클라우드 서버(120)는 수집부(210), 검증부(220), 데이터베이스(230), 선택부(240) 및 프로그래밍부(250)를 포함할 수 있다.
수집부(210)는 웹으로부터 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스(110)에서 수행되는 기능을 포함하는 태스크 정보 및 IoT 디바이스(110)의 구동을 위한 라이브러리 정보를 수집할 수 있다.
IoT 프레임워크 정보는 예를 들어, IoT 서비스 프로파일을 조회하고, IoT 서베스 엣지를 통해 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 사용자 단말(100)로 전송하도록 하는 IoT 클라우드 프레임워크 또는 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 IoT 클라우드로 전송하도록 하는 IoT 엣지 프레임워크를 포함할 수 있다.
태스크 정보는 IoT 디바이스(110)에서 수행되는 기능에 관한 복수의 태스크로 구성된 마이크로 서비스의 소스 코드를 포함할 수 있다.
라이브러리 정보는 복수의 운영체제에 대한 라이브러리 및 복수의 IoT 디바이스(110)에 대한 라이브러리(예를 들어, MCU, 센서, 네트워크 모듈 등)를 포함할 수 있다.
예를 들어, 수집부(210)는 오픈 소스 기반의 커뮤니티를 통해 다수의 개발자에 의해 제약 없이 개발 또는 개선된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 수집할 수 있다.
검증부(220)는 웹으로부터 수집된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 가상 환경에서 검증할 수 있다. 이 때, IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보는 가상 환경인 통합 개발 환경의 관리 권한을 가진 소수의 관리자에 의해 추가 검증을 거칠 수 있다.
데이터베이스(230)는 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 저장할 수 있다. 가상 환경에서 수집된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 검증하여 데이터베이스에 저장하는 과정에 대해서는 도 3을 통해 상세히 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 가상 환경에서 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 검증하여 데이터베이스에 저장하는 과정을 설명하기 위한 예시적인 도면이다.
도 3을 참조하면, 수집부(210)가 웹(300)으로부터 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 수집하면, 검증부(220)는 가상 환경에서 수집된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 검증하고, 데이터베이스(230)는 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 각각의 데이터베이스(예를 들어, IoT 프레임워크 정보 데이터베이스, 태스크 정보 데이터베이스, 라이브러리 정보 데이터베이스)에 저장할 수 있다.
예를 들어, 검증부(220)는 제 1 커뮤니티(310)를 통해 수집된 태스크 정보(311), IoT 프레임워크 정보, 라이브러리 정보를 검증하고, 검증 결과에 기초하여 태스크 정보(311)를 데이터베이스(230)에 저장할 수 있다.
다른 예를 들어, 검증부(220)는 제 2 커뮤니티(312)를 통해 수집된 태스크 정보, IoT 프레임워크 정보(313), 라이브러리 정보를 검증하고, 검증 결과에 기초하여 IoT 프레임워크 정보(313)를 데이터베이스(230)에 저장할 수 있다.
또 다른 예를 들어, 검증부(220)는 제 3 커뮤니티(314)를 통해 수집된 태스크 정보, IoT 프레임워크 정보, 라이브러리 정보(315)를 검증하고, 검증 결과에 기초하여 라이브러리 정보(315)를 데이터베이스(230)에 저장할 수 있다.
이후, 데이터베이스(230)에 저장된 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보는 가상 환경인 통합 개발 환경의 관리 권한을 가진 관리자에 의해 추가적인 검증 또는 관리를 거쳐, 최종적으로 사용자 단말(100)로 제공될 수 있다.
이러한 과정을 거쳐, 데이터베이스(230)에 저장된 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보는 사용자 단말(100)에 의해 IoT 애플리케이션을 개발하는데 이용될 수 있다. 또한, 효율적이고, 효과적인 방법으로 최신의 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보를 검증하고 관리하여 사용자들에게 제공되도록 할 수 있다.
다시 도 2로 돌아와서, 검증부(220)는 패턴 분석부(221) 및 디버깅부(222)를 포함할 수 있다.
패턴 분석부(221)는 가상 환경에서 적어도 하나의 패턴에 기초하여 마이크로 서비스의 소스 코드를 분석하여 태스크 정보를 검증할 수 있다. 태스크 정보를 검증하는 과정에 대해서는 도 4a 및 도 4b를 통해 상세히 설명하도록 한다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 태스크 정보를 설명하기 위한 예시적인 도면이다.
도 4a는 본 발명의 일 실시예에 따른 태스크를 도시한 예시적인 도면이다. 도 4a를 참조하면, 태스크(400)는 IoT 디바이스(110)에서 수행되는 기능을 포함할 수 있다. 예를 들어, 태스크(400)는 온도 센서에서 온도 정보를 가져오도록 하는 기능을 포함할 수 있다.
태스크(400)는 비전문적인 사용자의 IoT 애플리케이션의 개발을 돕기 위해 시각적(Visual)으로 코딩할 수 있도록 지원한다. 이러한 태스크(400)는 XML(401), C코드로 구성된 헤더(402, Header) 및 바디(403, Body)로 구성될 수 있다.
도 4b는 본 발명의 일 실시예에 따른 복수의 태스크로 구성된 마이크로 서비스를 도시한 예시적인 도면이다. 도 4b를 참조하면, 태스크 정보는 IoT 디바이스(110)에서 수행되는 기능에 관한 복수의 태스크(411~414)로 구성된 마이크로 서비스(410)의 소스 코드를 포함할 수 있다. 여기서, 마이크로 서비스란 애플리케이션을 느슨하게 결합된 태스크의 모임으로 구조화하는 서비스 지향 아키텍쳐(SOA, Service Oriented Architecture) 스타일의 일종인 소프트웨어 개발 기법을 의미한다.
패턴 분석부(221)는 가상 환경에서 적어도 하나의 패턴에 기초하여 마이크로 서비스(410)의 소스 코드를 분석하여 태스크 정보를 검증할 수 있다. 여기서, 적어도 하나의 패턴은 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 등을 포함할 수 있다.
패턴 분석부(221)는 분석 결과에 기초하여 중복 소스 코드, 비효율적인 소스 코드 또는 부적합 소스 코드 중 적어도 하나에 대한 가이드 정보를 제공할 수 있다. 이를 통해, 개발자가 가이드 정보를 참고하여, 태스크 정보를 수정 또는 개선하도록 할 수 있다. 예를 들어, 패턴 분석부(221)는 "해당 패턴을 적용하여 개선하면 전력 소모량을 10mA/h를 줄일 수 있습니다."와 같은 가이드 정보를 제공할 수 있다.
디버깅부(222)는 디버거를 이용하여 마이크로 서비스(410)의 소스 코드에 대해 디버깅을 수행하여 태스크 정보를 검증할 수 있다. 여기서, 디버거는 오류를 포함하고 있는 프로그램에서 오류를 알아내기 위해 이용되는 프로그램을 의미한다.
다시 도 2로 돌아와서, 선택부(240)는 사용자 단말(100)로부터 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받을 수 있다. 예를 들어, 선택부(240)는 사용자 단말(100)로부터 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보의 검색을 요청받고, 검색 결과에 기초하여 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받을 수 있다. 다른 예를 들어, 선택부(240)는 IoT 프레임워크 리스트로부터 IoT 프레임워크 정보를 선택받고, 태스크 리스트로부터 태스크 정보를 선택받고, 라이브러리 리스트로부터 라이브러리 정보를 선택받을 수 있다. IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받는 과정에 대해서는 도 5를 통해 상세히 설명하도록 한다.
도 5는 본 발명의 일 실시예에 따른 사용자 단말로부터 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받는 과정을 설명하기 위한 예시적인 도면이다. 도 5를 참조하면, 선택부(240)는 가상 환경을 통해 사용자 단말(100)로부터 태스크 리스트(500)에 포함된 적어도 하나의 태스크를 선택받을 수 있다. 이와 달리, 선택부(240)는 사용자 단말(100)로부터 태스크의 검색을 요청받고, 검색 결과로 도출된 태스크를 선택받을 수 있다. 이러한 과정을 거쳐, 선택부(240)는 사용자 단말(100)에 의해 IoT 디바이스(110)에서 수행되는 기능과 관련하여 복수의 태스크를 선택받을 수 있다.
선택부(240)는 사용자 단말(100)로부터 IoT 프레임 워크 정보(501) 및 라이브러리 정보(502)에서 환경에 대한 내용을 선택받을 수 있다.
다시 도 2로 돌아와서, 프로그래밍부(250)는 선택된 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행할 수 있다. IoT 애플리케이션을 위한 프로그래밍을 수행하는 과정에 대해서는 도 6을 통해 상세히 설명하도록 한다.
도 6은 본 발명의 일 실시예에 따른 IoT 애플리케이션을 위한 프로그래밍을도시한 수행하는 과정을 설명하기 위한 예시적인 도면이다. 도 6을 참조하면, 프로그래밍부(250)는 선택된 태스크 정보(611), IoT 프레임워크 정보(612) 및 라이브러리 정보(613)에 기초하여 IoT 애플리케이션(610)을 위한 프로그래밍을 수행함으로써, IoT 애플리케이션(610)을 빌드(Build)할 수 있다.
예를 들어, 프로그래밍부(250)는 IoT 디바이스(110)에서 수행되는 다양한 기능을 포함하는 최소 단위인 태스크를 통합 개발 화면을 통해 인스턴스로서 생성한 뒤, 서로 필요에 따라 연결하여 프로그래밍할 수 있도록 한다.
예를 들어, 사용자가 온도 센서에서 온도 정보를 가져오고, 발생한 100개의 데이터의 평균값을 도출하고, 데이터를 IoT 서비스 엣지로 전송하길 원하는 경우, 선택부(240)는 사용자 단말(100)로부터 온도 센서에서 온도 정보를 가져오도록 하는 제 1 태스크, 발생한 100개의 데이터의 평균값을 도출하도록 하는 제 2 태스크, 데이터를 IoT 서비스 엣지로 전송하도록 하는 제 3 태스크를 선택받고, 프로그래밍부(250)는 선택된 태스크 정보에 기초하여 프로그래밍을 수행하고, 프로그래밍에 기초하여 IoT 애플리케이션(610)을 빌드할 수 있다.
이후, 사용자가 온도 데이터의 평균 정보가 아닌 실시간 온도 데이터를 전송받길 원하는 경우, 선택부(240)는 온도 센서에서 온도 정보를 가져오도록 하는 제 1 태스크, 데이터를 IoT 서비스 엣지로 전송하도록 하는 제 3 태스크를 선택받고, 프로그래밍부(250)는 선택된 태스크 정보에 기초하여 프로그래밍을 수행하고, 프로그래밍에 기초하여 IoT 애플리케이션(610)을 빌드할 수 있다. 이 때, 생성된 IoT 애플리케이션에 기초하여 IoT 디바이스(110)에 대한 정보를 업데이트할 수 있다.
이와 달리, 사용자가 온도 센서에서 온도 정보를 1초에 한번씩 가져오도록 하고, 데이터를 IoT 서비스 엣지로 전송하길 원하는 경우, 선택부(240)는 사용자 단말(100)로부터 온도 센서에서 온도 정보를 1초에 한번씩 가져오도록 하는 제 1 태스크, 데이터를 IoT 서비스 엣지로 전송하도록 하는 제 2 태스크를 선택받고, 프로그래밍부(250)는 선택된 태스크 정보에 기초하여 프로그래밍을 수행하고, 프로그래밍에 기초하여 IoT 애플리케이션(610)을 빌드할 수 있다.
이러한 과정을 통해, 빌드된 IoT 애플리케이션(610)은 조합된 태스크 정보, 환경 정보, 애플리케이션 소스 코드(application source code)가 탑재되어, IoT 디바이스(110)에 다운로드될 수 있다.
다시 도 2로 돌아와서, 프로그래밍부(250)는 추상화 계층 생성부(251)를 포함할 수 있다.
추상화 계층 생성부(251)는 선택된 라이브러리 정보에 기초하여 복수의 운영체제에 대한 라이브러리 및 복수의 IoT 디바이스(110)에 대한 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성할 수 있다.
종래의 IoT 디바이스의 경우, 보드 제조사가 제공하는 디폴트 IoT OS에서 구동되는 IoT 소프트웨어를 개발해야만 했다. 즉, 종래의 경우, 보드 제조사가 제공하는 디폴트 IoT OS 이외의 IoT OS를 활용하는 것이 불가능했다.
그러나, 본 발명에서는 보드 서포트 패키지(BSP: Board Support Package) 및 드라이버 상에 선택된 라이브러리 정보에 기초하여 복수의 운영체제에 대한 라이브러리 및 복수의 IoT 디바이스(110)에 대한 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성함으로써, 디폴트 IoT OS 이외의 IoT OS를 활용하는 것이 가능하다.
즉, 본 발명에서는 디폴트 IoT OS 이외의 다양한 IoT OS에서 구동되는 IoT 소프트웨어를 개발할 수 있다.
다시 도 2로 돌아와서, 검증부(220)는 빌드된 IoT 애플리케이션에 대한 검증을 수행할 수 있다. 이를 위해, 검증부(220)는 에뮬레이션부(223) 및 시뮬레이션부(224)를 더 포함할 수 있다.
에뮬레이션부(223)는 에뮬레이터를 이용하여 IoT 애플리케이션에 대해 에뮬레이션을 수행할 수 있다. 여기서, 에뮬레이터는 마이크로컨트롤러 유닛 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성할 수 있다. 에뮬레이션을 수행하는 과정에 대해서는 도 7을 통해 상세히 설명하도록 한다.
도 7은 본 발명의 일 실시예에 따른 IoT 애플리케이션에 대해 에뮬레이션을 수행하는 과정을 설명하기 위한 예시적인 도면이다. 도 6 및 도 7을 참조하면, 에뮬레이션부(223)는 에뮬레이터(700)를 이용하여 IoT 애플리케이션(600)에 대해 에뮬레이션을 수행함으로써, 사용자 단말(100)에 의해 선택된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보에 기초하여 빌드된 IoT 애플리케이션(600)을 가상의 MCU 보드를 통해 정상적으로 동작되는지에 대해 에뮬레이션을 수행할 수 있다.
이 때, 에뮬레이션시 발생되는 다양한 정보는 가시화되어 표시될 수 있다. 예를 들어, 에뮬레이션부(223)는 에뮬레이터(700)를 이용하여 IoT 애플리케이션(600)이 가상의 MCU 모드 상에 적용된 화면 및 에뮬레이션의 동작과 관련된 콘솔 화면을 사용자 단말(100)로 제공할 수 있다.
이는, 실제 IoT 디바이스(110)의 동작 모드를 살펴보면, 디폴트 IoT OS가 보드 서포트 패키지 및 드라이버 상에 설치되고, 보드 서포트 패키지 및 드라이버는 하드웨어 계층과 연동되므로, 본 발명에서는 IoT 디바이스(110)의 통합 개발 클라우드 서버(120)가 에뮬레이션 동작 모드를 제공함에 따라, 별도의 IoT 디바이스(110)에 별도의 IoT 서비스 프로파일을 설치하여 테스트를 수행할 필요없이, 에뮬레이터를 통해 가상 환경에서 IoT 디바이스(110)를 구성하여 테스트할 수 있도록 하는 장점을 제공할 수 있다.
다시 도 2로 돌아와서, 시뮬레이션부(224)는 시뮬레이터를 이용하여 선택된 라이브러리 정보에 기초하여 IoT 애플리케이션을 구동할 때 발생하는 전력 소모를 시뮬레이션할 수 있다.
IoT 클라우드 및 IoT 서비스 엣지를 시뮬레이션하기 위한 소프트웨어를 통해 하나의 IoT 디바이스(110)에서 발생하는 정보를 리코딩한 뒤, 이를 복제(Cloning)하여 수많은 IoT 디바이스(110)에서 데이터가 발생하는 것처럼 모사해서 IoT 클라우드 및 IoT 서비스 엣지의 테스팅 및 개발과 같은 과정을 하나의 PC에서 시뮬레이션할 수 있다.
상기 소프트웨어는 IoT 환경에서 사용되는 다양한 프로토콜(예컨대, MQTT, MQTT-SN, MQTT-Broker, CoAP, HTTP/sClient, HTTP/sServer, ModbusoverTCP, BACnet/IPServer 등)을 지원할 수 있다. 각 단계에 대한 설명은 하기와 같다.
-MQTT, CoAP,Modbus, BACnet, HTTP Learner를 통해서 IoT 디바이스(110)와 IoT 플랫폼, 센서, 다른 디바이스와의 통신 패킷을 리코딩한다.
- 이렇게 리코딩한 데이터를 하나의 템플릿으로 사용하여, 수많은 IoT 센서들 또는 IoT 서비스 엣지를 가상으로 복제(Cloning)한다.
- 가상으로 복제(Cloning)한 IoT 디바이스(110)들을 동작(Running)시킨 후 발생하는 데이터를 기반으로 IoT 서비스 엣지 및 IoT 클라우드를 개발 및 테스트를 진행한다.
전력 소모를 시뮬레이션하는 과정에 대해서는 도 8을 통해 상세히 설명하도록 한다.
도 8은 본 발명의 일 실시예에 따른 IoT 애플리케이션을 구동할 때 발생하는 전력 소모를 시뮬레이션하는 과정을 설명하기 위한 예시적인 도면이다. 도 6을 참조하면, 선택부(240)는 사용자 단말(100)로부터 보드 서포트 패키지(620), 네트워크 모듈(621), 센서(622)를 더 선택받을 수 있다.
도 8을 참조하면, 시뮬레이션부(224)는 사용자 단말(100)에 의해 선택된 보드서포트 패키지(620), 네트워크 모듈(621), 센서(622) 등에 기초하여, 사용자 단말(100)로부터 MCU 데이터(810), 네트워크 데이터(820), 센서 데이터(830), 시뮬레이션 기간(840) 등을 입력받을 수 있다.
시뮬레이션부(224)는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들 상태에서의 전력 소모량에 기초하여 전력 소모를 시뮬레이션할 수 있다. 이 때, 시뮬레이션부(224)는 시뮬레이션 기간(840)에 기간에 따른 전력 소모량의 산출값을 시각화하여 표시할 수 있다.
예를 들어, 시뮬레이션부(224)는 온습도 센서에 대해 기준전압, 한번 센싱시 시간, 센싱시 센서보드의 전류 소모량, 아이들 상태시 센서보드의 전류 소모량, 센싱 주기 등의 항목에 기초하여 전력 소모를 시뮬레이션할 수 있다.
다른 예를 들어, 시뮬레이션부(224)는 MCU 보드에 대해 기준전압, 데이터 프로세싱에 걸리는 시간, 데이터 프로세싱시 센서보드의 전류 소모량, 아이들 상태시 전류 소모량 등의 항목에 기초하여 전력 소모를 시뮬레이션할 수 있다.
또 다른 예를 들어, 시뮬레이션부(224)는 네트워크 모듈에 대해 기준 전압, 데이터 송신하는데 걸리는 시간, 데이터 수신하는데 걸리는 시간, 데이터 송신하는데 네트워크 모듈의 토탈 전류 소모량, 데이터 수신하는데 네트워크 모듈의 토탈 전류 소모량, 아이들 상태시 전류 소모량 등의 항목에 기초하여 전력 소모를 시뮬레이션할 수 있다.
시뮬레이션부(224)는 IoT 디바이스(110)를 구성하는 MCU 보드, 네트워크 모듈(621) 및 센서(622)에 기초하여 IoT 디바이스(110)의 전체 전력 소모량을 산출할 수 있다.
이러한 과정을 통해, IoT 디바이스(110)의 라이브러리 정보 중 일부에 해당하는 MCU 보드, 센서, 네트워크에 대해 장기 운용에 따른 전력 소모 시뮬레이션을 제공함으로써, 사용자의 목적에 따라 최적의 라이브러리(예를 들어, 저전력으로 운용될 수 있는 장비)가 선택되도록 할 수 있다.
도 9는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법의 순서도이다. 도 9에 도시된 통합 개발 클라우드 서버(120)에서 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 도 1 내지 도 8에 도시된 실시예에 따라 통합 개발 클라우드 서버(120)에 의해 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 1 내지 도 8에 도시된 실시예에 따른 통합 개발 클라우드 서버(120)에도 적용된다.
단계 S910에서 통합 개발 클라우드 서버(120)는 웹으로부터 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스에서 수행되는 기능을 포함하는 태스크 정보 및 IoT 디바이스의 구동을 위한 라이브러리 정보를 수집할 수 있다.
단계 S920에서 통합 개발 클라우드 서버(120)는 가상 환경에서 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 검증할 수 있다.
단계 S930에서 통합 개발 클라우드 서버(120)는 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 저장할 수 있다.
단계 S940에서 통합 개발 클라우드 서버(120)는 사용자 단말로부터 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받을 수 있다.
단계 S950에서 통합 개발 클라우드 서버(120)는 선택된 IoT 프레임워크 정보, 태스크 정보및 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행할 수 있다.
상술한 설명에서, 단계 S910 내지 S950은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
도 1 내지 도 9를 통해 통합 개발 클라우드 서버에서 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 또한, 도 1 내지 도 9를 통해 통합 개발 클라우드 서버에서 IoT 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램의 형태로도 구현될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 사용자 단말
110: IoT 디바이스
120: 통합 개발 클라우드 서버
210: 수집부
220: 검증부
221: 패턴 분석부
222: 디버깅부
223: 에뮬레이션부
224: 시뮬레이션부
230: 데이터베이스
240: 선택부
250: 프로그래밍부
251: 추상화 계층 생성부

Claims (12)

  1. IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버에 있어서,
    웹으로부터 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스에서 수행되는 기능을 포함하는 태스크 정보 및 상기 IoT 디바이스의 구동을 위한 라이브러리 정보를 수집하는 수집부;
    가상 환경에서 상기 IoT 프레임워크 정보, 상기 태스크 정보 및 상기 라이브러리 정보를 검증하는 검증부;
    상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 저장하는 데이터베이스;
    사용자 단말로부터 상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받는 선택부; 및
    상기 선택된 IoT 프레임워크 정보, 태스크 정보, 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행하는 프로그래밍부
    를 포함하고,
    상기 태스크 정보는 상기 IoT 디바이스에서 수행되는 기능에 관한 복수의 태스크로 구성된 마이크로 서비스의 소스 코드를 포함하고,
    상기 마이크로 서비스의 소스 코드는 IoT 애플리케이션을 상기 복수의 태스크의 모임으로 구조화된 서비스 지향 아키텍쳐(SOA, Service Oriented Architecture)에 해당하는 소스 코드이고,
    상기 검증부는 시뮬레이터를 이용하여 상기 선택된 라이브러리 정보에 기초하여 상기 IoT 애플리케이션을 구동할 때 발생하는 전력 소모를 시뮬레이션하는 시뮬레이션부를 포함하고,
    상기 시뮬레이션부는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 상기 전력 소모를 시뮬레이션하는 것인, 통합 개발 클라우드 서버.
  2. 제 1 항에 있어서,
    상기 검증부는 상기 가상 환경에서 적어도 하나의 패턴에 기초하여 상기 마이크로 서비스의 소스 코드를 분석하여 상기 태스크 정보를 검증하는 패턴 분석부를 포함하는 것인, 통합 개발 클라우드 서버.
  3. 제 2 항에 있어서,
    상기 패턴 분석부는 상기 소스코드의 분석 결과에 기초하여 중복 소스 코드 또는 부적합 소스 코드 중 적어도 하나에 대한 가이드 정보를 제공하는 것인, 통합 개발 클라우드 서버.
  4. 제 2 항에 있어서,
    상기 적어도 하나의 패턴은 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 중 적어도 하나를 포함하는 것인, 통합 개발 클라우드 서버.
  5. 제 2 항에 있어서,
    상기 검증부는 디버거를 이용하여 상기 마이크로 서비스의 소스 코드에 대해 디버깅을 수행하여 상기 태스크 정보를 검증하는 디버깅부를 더 포함하는 것인, 통합 개발 클라우드 서버.
  6. 제 1 항에 있어서,
    상기 검증부는 에뮬레이터를 이용하여 상기 IoT 애플리케이션에 대해 에뮬레이션을 수행하는 에뮬레이션부를 포함하는 것인, 통합 개발 클라우드 서버.
  7. 제 6 항에 있어서,
    상기 에뮬레이터는 마이크로컨트롤러 유닛(MCU: Micro Controller Unit) 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성하는 것인, 통합 개발 클라우드 서버.
  8. 삭제
  9. 삭제
  10. 제 1 항에 있어서,
    상기 라이브러리 정보는 복수의 운영체제에 대한 라이브러리 및 복수의 IoT 디바이스에 대한 라이브러리를 포함하는 것인, 통합 개발 클라우드 서버.
  11. 제 10 항에 있어서,
    상기 프로그래밍부는 상기 선택된 라이브러리 정보에 기초하여 상기 복수의 운영체제에 대한 라이브러리 및 복수의 IoT 디바이스에 대한 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성하는 추상화 계층 생성부를 포함하는 것인, 통합 개발 클라우드 서버.
  12. IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법에 있어서,
    웹으로부터 IoT 소프트웨어 환경인 IoT 프레임워크 정보, IoT 디바이스에서 수행되는 기능을 포함하는 태스크 정보 및 상기 IoT 디바이스의 구동을 위한 라이브러리 정보를 수집하는 단계;
    가상 환경에서 상기 IoT 프레임워크 정보, 상기 태스크 정보 및 상기 라이브러리 정보를 검증하는 단계;
    상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 저장하는 단계;
    사용자 단말로부터 상기 검증된 IoT 프레임워크 정보, 태스크 정보 및 라이브러리 정보를 선택받는 단계; 및
    상기 선택된 IoT 프레임워크 정보, 태스크 정보및 라이브러리 정보 중 적어도 하나에 기초하여 IoT 애플리케이션을 위한 프로그래밍을 수행하는 단계
    를 포함하고,
    상기 태스크 정보는 상기 IoT 디바이스에서 수행되는 기능에 관한 복수의 태스크로 구성된 마이크로 서비스의 소스 코드를 포함하고,
    상기 마이크로 서비스의 소스 코드는 IoT 애플리케이션을 상기 복수의 태스크의 모임으로 구조화된 서비스 지향 아키텍쳐(SOA, Service Oriented Architecture)에 해당하는 소스 코드이고,
    상기 검증하는 단계는,
    시뮬레이터를 이용하여 상기 선택된 라이브러리 정보에 기초하여 상기 IoT 애플리케이션을 구동할 때 발생하는 전력 소모를 시뮬레이션하는 단계를 포함하고,
    상기 시뮬레이션하는 단계는,
    센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 상기 전력 소모를 시뮬레이션하는 단계를 포함하는 것인, 통합 개발 환경 제공 방법.
KR1020200143811A 2020-10-30 2020-10-30 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버 KR102451255B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200143811A KR102451255B1 (ko) 2020-10-30 2020-10-30 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200143811A KR102451255B1 (ko) 2020-10-30 2020-10-30 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버

Publications (2)

Publication Number Publication Date
KR20220058246A KR20220058246A (ko) 2022-05-09
KR102451255B1 true KR102451255B1 (ko) 2022-10-07

Family

ID=81582328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200143811A KR102451255B1 (ko) 2020-10-30 2020-10-30 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버

Country Status (1)

Country Link
KR (1) KR102451255B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019502993A (ja) * 2015-12-14 2019-01-31 アフェロ インコーポレイテッドAfero, Inc. モノのインターネット(IoT)システムのための統合開発ツール

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090004210A (ko) 2007-07-06 2009-01-12 이양선 통합 개발 환경을 이용한 소프트웨어 프로그램을 개발하기위한 장치 및 통합 개발 환경을 이용한 소프트웨어프로그램 개발 시스템
KR101674515B1 (ko) * 2015-01-20 2016-11-09 주식회사 크레스프리 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법
KR20170078459A (ko) * 2015-12-29 2017-07-07 주식회사 아이디어피스 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법
KR20190060561A (ko) * 2017-11-24 2019-06-03 포항공과대학교 산학협력단 이종 디바이스의 선택적 추상화를 통한 사물 인터넷 어플리케이션의 개발 환경을 통합하는 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019502993A (ja) * 2015-12-14 2019-01-31 アフェロ インコーポレイテッドAfero, Inc. モノのインターネット(IoT)システムのための統合開発ツール

Also Published As

Publication number Publication date
KR20220058246A (ko) 2022-05-09

Similar Documents

Publication Publication Date Title
De Farias et al. COMFIT: A development environment for the Internet of Things
CN111367534B (zh) 一种基于应用环境的服务编排方法及系统
Forti et al. Mimicking FogDirector application management
Powell et al. The test and training enabling architecture (TENA)
Arcaini et al. ASM-based formal design of an adaptivity component for a Cloud system
Grønli et al. Meeting quality standards for mobile application development in businesses: A framework for cross-platform testing
KR102214060B1 (ko) IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법
KR102451255B1 (ko) 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버
Robert et al. Software frameworks for SDR
Rosa et al. Lightweight formalisation of adaptive middleware
Jha et al. Smartdbo: smart docker benchmarking orchestrator for web-application
Ustok et al. Service development kit for media-type virtualized network services in 5G networks
Ivester et al. Interactive and extensible framework for execution and monitoring of wireless sensor networks
Asp A comparison of Ionic 2 versus React Native and Android in terms of performance, by comparing the performance of applications
Bouchefra et al. Performance Tools
Alanko CONTAINER SYSTEM VISIBILITY & MODELEXTRACTION
Galpaya Stress Testing Tool to check the performance of a Moodle Instance
Perez et al. DICE simulation tools: final version
Oliver First Steps in Retrofitting a Versatile Software Testing Infrastructure to Android
Oliver Why We Need New Software Testing Technologies
Jensen Architectural Design and Implementation of a Visualization and Control-Interface for BabbleSim
de Almeida Graças Measuring Performance in Network-Intensive Web Applications
Barve Principles and Techniques for Performance Management and Validation of Cloud Hosted Distributed Applications
Kuorilehto System level design issues in low-power wireless sensor networks
Guerrero et al. Unit Testing of Fiori Applications

Legal Events

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