KR102214060B1 - IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 - Google Patents
IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 Download PDFInfo
- Publication number
- KR102214060B1 KR102214060B1 KR1020190131312A KR20190131312A KR102214060B1 KR 102214060 B1 KR102214060 B1 KR 102214060B1 KR 1020190131312 A KR1020190131312 A KR 1020190131312A KR 20190131312 A KR20190131312 A KR 20190131312A KR 102214060 B1 KR102214060 B1 KR 102214060B1
- Authority
- KR
- South Korea
- Prior art keywords
- iot
- information
- integrated development
- development
- operating system
- Prior art date
Links
- 238000011161 development Methods 0.000 title claims abstract description 194
- 238000000034 method Methods 0.000 title claims description 55
- 238000004891 communication Methods 0.000 claims description 11
- 238000004088 simulation Methods 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 6
- 230000014509 gene expression Effects 0.000 claims description 3
- 230000003252 repetitive effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009440 infrastructure construction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- H04L67/16—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버는 IoT 서비스 인프라 정보를 제공하는 IoT 서비스 인프라 정보 관리부, 운영체제 정보 및 라이브러리 정보를 제공하는 IoT 디바이스 정보 관리부, 상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 선택부, 상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 프로그래밍부 및 상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 IoT 서비스 프로파일 생성부를 포함한다.
Description
본 발명은 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 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 통합개발환경 (IDE)이 요구된다.
IoT 서비스 인프라 정보, 선택된 운영 체제, 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하도록 하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
이러한 개발 블록들의 조합으로 IoT 소프트웨어를 쉽게 개발할 수 있도록 비주얼 프로그래밍 방식의 IoT 통합 개발 환경(IDE)을 제공하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
IoT 서비스 인프라 구축 및 IoT 소프트웨어 개발에 익숙하지 않은 응용 소프트웨어 개발자 또는 초보 임베디드 소프트웨어 개발자들이 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 비주얼 프로그래밍 방식으로, 웹기반의 클라우드 환경에서, 언제 어디에서나 손쉽게 개발하기 위한 방법을 제공하기 위한 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
고급 개발자들이 부차적인 개발에 노력과 시간을 소비하는 것을 줄이도록 하여 보다 핵심에 접근해서 개발을 진행할 수 있도록 IoT 통합 개발 환경(IDE)을 제공하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
특히, IoT 서비스 인프라 구축 및 연동은 방대한 지식 및 자원이 필요한 분야로서 경험이 없는 개인 또는 집단이 쉽게 이해하고 시작하기 어려운 분야이기 때문에 이러한 깊은 이해없이도 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 개발 할 수 있도록 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
그리고, 각종 IoT 디바이스에서 사용되는 다양한 임베디드 운영체제(Operating System, 이하 OS) 및 라이브러리는 종류도 다양하고 각기 사용하는 방법을 익혀야 하기 때문에 이러한 다양한 기능을 한 방법으로 추상화하여 개발자는 다양한 IoT 디바이스 환경에 대한 고려를 최소화하여 개발을 진행할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
더 나아가서 이렇게 개발된 IoT 소프트웨어는 IoT 서비스 인프라와 연계되며, IoT 통합 개발 환경(IDE) 또한 클라우드를 기반으로 하고 있기 때문에 개발 환경을 따로 개발자의 PC에 설치하지 않고도 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 개발할 수 있도록 환경을 제공하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 수단으로서, 본 발명의 일 실시예는, IoT 서비스 인프라 정보를 제공하는 IoT 서비스 인프라 정보 관리부, 운영체제 정보 및 라이브러리 정보를 제공하는 IoT 디바이스 정보 관리부, 상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 선택부, 상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 프로그래밍부 및 상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 IoT 서비스 프로파일 생성부를 포함하는 통합 개발 클라우드 서버를 제공할 수 있다.
본 발명의 다른 실시예는, IoT 서비스 인프라 정보를 저장하는 단계, 운영체제 정보 및 라이브러리 정보를 저장하는 단계, 상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 단계, 상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 단계 및 상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 단계를 포함하는 통합 개발 방법을 제공할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, IoT 서비스 인프라에 대한 연동에 대한 구체적인 설계 및 개발 없이 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 쉽게 개발할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
다양한 임베디드 OS 및 디바이스 라이브러리와 같이 특정 하드웨어에 종속되지 않고 IoT 소프트웨어를 쉽게 작성 할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
클라우드 환경에서 웹기반으로 개발이 가능하고 소스 코드 또한 내장된 버전 관리 시스템을 통해 관리가 되기 때문에 별도의 버전 관리 시스템을 구비하지 않아도 되는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
비주얼 프로그래밍 방식으로 IoT 소프트웨어를 쉽게 개발하고 필요시 직접 개발된 소스 코드를 편집할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
클라우드 환경에서 IoT 소프트웨어를 작성하고, 작성된 IoT 소프트웨어를 IoT 소프트웨어 에이전트 프로그램을 통해 직접 IoT 디바이스에 쉽게 설치할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 통합 개발 환경 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 초소형 IoT 디바이스가 IoT 서비스 인프라와의 연동하여 작동되도록 하는 전체 과정을 설명하기 위한 동작 흐름도이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 프로그래밍을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 일 실시예에 따른 클라우드기반의 IoT 통합 개발 환경 내에서 태스크를 관리하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 에뮬레이터를 생성하는 과정을 설명하기 위한 예시적인 도면이다.
도 7은 본 발명의 일 실시예에 따른 가상의 IoT 디바이스를 생성하여 시뮬레이션을 수행하기 위한 구성을 도시한 예시적인 도면이다.
도 8a 내지 도 8d는 본 발명의 일 실시예에 따른 시뮬레이션을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 9는 본 발명의 일 실시예에 따른 최적의 소스 코드를 제공하는 과정을 설명하기 위한 예시적인 도면이다.
도 10은 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법의 순서도이다.
도 2는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 초소형 IoT 디바이스가 IoT 서비스 인프라와의 연동하여 작동되도록 하는 전체 과정을 설명하기 위한 동작 흐름도이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 프로그래밍을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 일 실시예에 따른 클라우드기반의 IoT 통합 개발 환경 내에서 태스크를 관리하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 에뮬레이터를 생성하는 과정을 설명하기 위한 예시적인 도면이다.
도 7은 본 발명의 일 실시예에 따른 가상의 IoT 디바이스를 생성하여 시뮬레이션을 수행하기 위한 구성을 도시한 예시적인 도면이다.
도 8a 내지 도 8d는 본 발명의 일 실시예에 따른 시뮬레이션을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 9는 본 발명의 일 실시예에 따른 최적의 소스 코드를 제공하는 과정을 설명하기 위한 예시적인 도면이다.
도 10은 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 통합 개발 환경 시스템의 구성도이다. 도 1을 참조하면, 통합 개발 환경 시스템(1)은 통합 개발 클라우드 서버(100), IoT 디바이스(110), IoT 서비스 엣지(120), IoT 클라우드(130), IoT 서비스 저장소(140) 및 IoT 소프트웨어 버전관리 데이터베이스를 포함할 수 있다. 통합 개발 클라우드 서버(100), IoT 디바이스(110), IoT 서비스 엣지(120), IoT 클라우드(130), IoT 서비스 저장소(140) 및 IoT 소프트웨어 버전관리 데이터베이스는 통합 개발 환경 시스템(1)에 의하여 제어될 수 있는 구성요소들을 예시적으로 도시한 것이다.
도 1의 통합 개발 환경 시스템(1)의 각 구성요소들은 일반적으로 네트워크(network)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 통합 개발 클라우드 서버(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 서비스 프로파일을 조회하고, IoT 서비스 엣지(120)를 통해 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 사용자 단말로 전송하도록 하는 IoT 클라우드 프레임워크 및 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 IoT 클라우드(130)로 전송하도록 하는 IoT 엣지 프레임워크를 포함할 수 있다.
통합 개발 클라우드 서버(100)는 운영체제 정보 및 라이브러리 정보를 제공할 수 있다. 여기서, 운영체제 정보는 복수의 운영체제 각각에 대한 가상화 모듈을 포함하고, 라이브러리 정보는 복수의 라이브러리 각각에 대한 가상화 모듈을 포함할 수 있다.
통합 개발 클라우드 서버(100)는 운영체제 정보에 기초하여 운영체제를 선택받고, 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받을 수 있다.
통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보, 선택된 운영체제 및 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행할 수 있다. 여기서, 복수의 개발 블록은 IoT 디바이스(110)가 수행하는 동작에 관한 코드로 이루어진 것일 수 있다.
통합 개발 클라우드 서버(100)는 복수의 개발 블록에 기초하여 IoT 클라우드 프레임워크 상에서 IoT 디바이스(110)가 수행하는 동작을 정의하고, IoT 엣지 프레임워크 상에서 IoT 디바이스(110)가 수행하는 동작을 정의하는 운용 계층을 생성할 수 있다.
통합 개발 클라우드 서버(100)는 선택된 복수의 라이브러리 각각에 대한 가상화 모듈 및 선택된 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성할 수 있다.
통합 개발 클라우드 서버(100)는 적어도 하나의 패턴에 기초하여 프로그래밍된 소스 코드를 분석하여 소스 코드 최적화를 수행할 수 있다. 여기서, 적어도 하나의 패턴은 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 등을 포함할 수 있다.
통합 개발 클라우드 서버(100)는 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다. 여기서, IoT 서비스 프로파일은 IoT 소프트웨어에 대한 일종의 명세서로, IoT 통합 개발 환경에서 제공하는 화면을 통해 IoT 서비스 프로파일이 작성 및 등록되면, IoT 서비스 프로파일이 서비스 저장소(140)에 등록될 수 있다. IoT 서비스 프로파일은 IoT 프레임워크의 IoT 서비스 프로파일 관리를 통해 등록, 조회, 수정, 삭제 등이 가능하다.
통합 개발 클라우드 서버(100)는 프로그래밍된 소스 코드를 검증하고 디버깅하기 위한 에뮬레이터를 생성할 수 있다. 여기서, 에뮬레이터는 마이크로컨트롤러 유닛(MCU: Micro Controller Unit) 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성할 수 있다.
통합 개발 클라우드 서버(100)는 에뮬레이터를 이용하여 IoT 서비스 프로파일의 구동 시 발생하는 전력 소모를 시뮬레이션할 수 있다.
통합 개발 클라우드 서버(100)는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 전력 소모를 시뮬레이션할 수 있다.
이를 위해, 통합 개발 클라우드 서버(100)는 IoT 통합 개발 환경(IDE)를 지원할 수 있다. IoT 통합 개발 환경은 조합된 개발 블록을 기반으로 XML을 생성시킬 수 있다. 이 때, 생성된 XML의 정보는 소스 코드를 생성하는 과정에서 참고될 수 있다.
여기서, IoT 통합 개발 환경(IDE)은 물리적인 컴퓨터에 종속되지 않는 클라우드의 형태로 동작할 수 있다. 종래의 경우, 통합 개발 환경은 로컬 PC에 다운로드되어 실행됨으로써, 특정 PC에 종속되었다. 그러나 본 발명에서 제안하는 클라우드 기반의 IoT 통합 개발 환경의 경우, 개발자들이 웹 브라우저를 통해 IoT 통합 개발 환경(IDE)에 접속함으로써, 해당 서비스에서 제공하는 개발 환경을 통해 개발을 할 수 있게 된다. 즉, 개발자들은 인터넷에 연결 가능한 곳이라면, 클라우드 기반의 IoT 통합 개발 환경을 통해 기존의 개발 환경을 그대로 불러올 수 있다.
이러한 IoT 통합 개발 환경은 프로젝트(파일) 관리/브라우징 기능, 편집기 기능, 자동 저장 및 리비전 기능, 협업 기능, 웹 기반 SSH 터미널 기능, 맞춤형 UI 기능 등을 제공하고, 개발/빌드 및 실행을 위한 가상머신 또는 컨테이너를 제공할 수 있다.
한편, IoT 디바이스(110)가 IoT 서비스 엣지(120)로 IoT 디바이스(110)의 등록을 요청하면, IoT 디바이스(110)의 등록 요청은 IoT 서비스 엣지(120)를 통해 IoT 클라우드(130)로 전달될 수 있다. 이 때, IoT 디바이스(110)는 IoT 클라우드(130)에서 생성된 디바이스 ID를 IoT 서비스 엣지(120)를 통해 수신할 수 있다.
IoT 디바이스(110)는 IoT 소프트웨어 에이전트(160)에 의해 다운로드된 IoT 소프트웨어가 설치될 수 있다.
IoT 서비스 엣지(120) 및 IoT 클라우드(130)에는 IoT 프레임워크가 설치될 수 있다. IoT 서비스 엣지(120)에 설치되는 IoT 엣지 프레임워크는 IoT 클라우드(130)로부터 수신한 명령에 기초하여 동작을 수행하며, IoT 서비스 엣지(120)는 IoT 엣지 프레임워크에 따라, IoT 디바이스(110)에서 발생되는 데이터를 수집하고, 이를 통합하여 IoT 클라우드(130)로 전달할 수 있다. IoT 클라우드(130)는, IoT 클라우드(130)에 설치되는 IoT 클라우드 프레임워크에 따라, IoT 서비스 저장소(140)에 저장된 IoT 서비스 프로파일을 조회하고, IoT 서비스 엣지(120)를 통해 IoT 디바이스(110)에서 발생된 필요 정보를 수집하고, 최종적으로 수집된 정보를 사용자 단말로 전달할 수 있다.
서비스 저장소(140)는 IoT 서비스 프로파일을 등록 및 저장할 수 있다.
IoT 소프트웨어 버전 관리 데이터베이스(150)는 통합 개발 클라우드 서버(100)에서 생성된 소스 코드가 업로드되면, 소스 코드를 다른 사용자와 공유하고, 필요시 다른 사용자의 소스 코드를 다운로드하도록 하는 기능을 제공할 수 있다.
IoT 소프트웨어 에이전트(160)는 통합 개발 클라우드 서버(100)를 통해 IoT 소프트웨어를 다운로드할 수 있다.
도 2는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버의 구성도이다. 도 2를 참조하면, 통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보 관리부(210), IoT 디바이스 정보 관리부(220), 선택부(230), 프로그래밍부(240), IoT 서비스 프로파일 생성부(250), 에뮬레이션부(260) 및 시뮬레이션부(270)를 포함할 수 있다.
IoT 서비스 인프라 정보 관리부(210)는 IoT 서비스 인프라 정보를 제공할 수 있다. 여기서, IoT 서비스 인프라 정보는 IoT 서비스 프로파일을 조회하고, IoT 서비스 엣지(120)를 통해 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 사용자 단말로 전송하도록 하는 IoT 클라우드 프레임워크 및 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 IoT 클라우드(130)로 전송하도록 하는 IoT 엣지 프레임워크를 포함할 수 있다.
IoT 디바이스 정보 관리부(220)는 운영체제 정보 및 라이브러리 정보를 제공할 수 있다. 여기서, 운영체제 정보는 복수의 운영체제 각각에 대한 가상화 모듈을 포함하고, 라이브러리 정보는 복수의 라이브러리 각각에 대한 가상화 모듈을 포함할 수 있다.
선택부(230)는 운영체제 정보에 기초하여 운영체제를 선택받고, 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받을 수 있다.
프로그래밍부(240)는 IoT 서비스 인프라 정보, 선택된 운영체제 및 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행할 수 있다. 여기서, 복수의 개발 블록은 IoT 디바이스(110)가 수행하는 동작에 관한 코드로 이루어진 것일 수 있다. 예를 들어, 프로그래밍부(240)는 IoT 디바이스(110)에서 수행되는 다양한 기능을 포함하는 최소 단위인 태스트(Task)에 관한 개발 블록을 통합 개발 화면을 통해 인스턴스로서 생성한 뒤, 서로 필요에 따라 연결하여 프로그래밍할 수 있도록 한다.
프로그래밍부(240)는 운용 계층 생성부(241), 추상화 계층 생성부(242) 및 소스 코드 최적화부(243)를 포함할 수 있다.
운용 계층 생성부(241)는 복수의 개발 블록에 기초하여 IoT 클라우드 프레임워크 상에서 IoT 디바이스(110)가 수행하는 동작을 정의하고, IoT 엣지 프레임워크 상에서 IoT 디바이스(110)가 수행하는 동작을 정의하는 운용 계층을 생성할 수 있다.
추상화 계층 생성부(242)는 선택된 복수의 라이브러리 각각에 대한 가상화 모듈 및 선택된 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성할 수 있다.
소스 코드 최적화부(243)는 적어도 하나의 패턴에 기초하여 프로그래밍된 소스 코드를 분석하여 소스 코드 최적화를 수행할 수 있다. 여기서, 적어도 하나의 패턴은 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 등을 포함할 수 있다.
IoT 서비스 프로파일 생성부(250)는 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다.
에뮬레이션부(260)는 프로그래밍된 소스 코드를 검증하고 디버깅하기 위한 에뮬레이터를 생성할 수 있다. 여기서, 에뮬레이터는 마이크로컨트롤러 유닛(MCU: Micro Controller Unit) 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성할 수 있다.
시뮬레이션부(270)는 에뮬레이터를 이용하여 IoT 서비스 프로파일의 구동 시 발생하는 전력 소모를 시뮬레이션할 수 있다. 예를 들어, 시뮬레이션부(270)는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 전력 소모를 시뮬레이션할 수 있다.
도 3은 본 발명의 일 실시예에 따른 초소형 IoT 디바이스가 IoT 서비스 인프라와의 연동하여 동작되도록 하는 과정을 설명하기 위한 동작 흐름도이다. 도 3을 참조하면, 초소형 IoT 디바이스(110)는 통합 개발 클라우드 서버(100)에 의해 생성된 IoT 서비스 프로파일에 기초하여 IoT 서비스 인프라와 연동되어 동작할 수 있다.
통합 개발 클라우드 서버(100)는 IoT 서비스 프로파일을 생성하고(S301), IoT 서비스 프로파일을 서비스 저장소(140)에 등록할 수 있다(S302).
서비스 저장소(140)는 IoT 서비스 프로파일을 저장하고(S303), 서비스 ID를 통합 개발 클라우드 서버(100)로 전송할 수 있다(S304).
통합 개발 클라우드 서버(100)는 IoT 서비스가 사용자나 사용자 그룹들이 이용할 수 있도록 IoT 디바이스(110)에 마운트(mount)할 수 있다(S305).
IoT 디바이스(110)는 IoT 디바이스(110)를 부팅하고(S306), IoT 디바이스(110)의등록을 위해 물리적(physical) ID를 IoT 서비스 엣지(120)로 전송할 수 있다(S307).
IoT 서비스 엣지(120)는 IoT 디바이스(110)를 등록하고, 등록된 IoT 디바이스(110)에 대한 정보를 클라우드(130)로 전송하고(S308), IoT 클라우드(130)는 수신한 IoT 디바이스에 대한 정보를 등록하여 디바이스 ID를 생성하고(S309), 생성된 디바이스 ID를 IoT 서비스 엣지(120)로 전송할 수 있다(S310).
IoT 서비스 엣지(120)는 디바이스 ID 정보를 업데이트하고(S311), 디바이스 ID를 IoT 디바이스(110)로 전송할 수 있다(S312).
상술한 설명에서, 단계 S301 내지 S312는 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
이러한 과정을 거쳐, IoT 디바이스(110)는 IoT 서비스 프로파일에 기초하여 IoT 서비스 인프라와 연동하여 동작할 수 있으며, IoT 디바이스(110)가 IoT 서비스 인프라와 연동하여 동작할 수 있도록 IoT 서비스 프로파일을 생성하는 과정에 대해서는 다음을 통해 설명하도록 한다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 프로그래밍을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 4a를 참조하면, IoT 서비스 엣지(120)는 IoT 클라우드(130)로부터 디바이스 ID(404)를 수신하여 등록할 수 있다.
예를 들어, IoT 디바이스(110)가 부팅되면, IoT 디바이스(110)는 IoT 디바이스(110)의 등록을 IoT 서비스 엣지(120)로 요청할 수 있다. IoT 서비스 엣지(120)는 IoT 디바이스(110)에 대한 물리적(Physical) ID/서비스 ID/개발 블록 ID 리스트 (401)를 등록할 수 있다. 예를 들어, IoT 서비스 엣지(120)는 제 1 IoT 디바이스(110)에 대해 물리적 ID를 'ffffff1111', 서비스 ID를 'sp001', 태스크 ID 리스트를 '1, 2, 5'로 등록할 수 있다.
이후, IoT 서비스 엣지(120)가 IoT 디바이스(110)에 대한 정보를 IoT 클라우드(130)로 전송하면, IoT 클라우드(130)는 IoT 디바이스(110)에 대한 정보를 등록할 수 있다. 예를 들어, IoT 클라우드(130)는 IoT 서비스 엣지(120)와 동일하게, IoT 디바이스(110)에 대한 물리적(Physical) ID/서비스 ID/태스크 ID 리스트 (402)를 등록할 수 있다.
IoT 클라우드(130)는 IoT 디바이스(110)의 등록이 완료되면, 디바이스 ID(403)를 생성할 수 있다. 예를 들어, IoT 클라우드(130)는 IoT 디바이스(110)에 대해 'axA23dS1'의 디바이스 ID(403)를 생성하고, 생성된 디바이스 ID(403)를 IoT 서비스 엣지(120)로 전송함으로써, IoT 서비스 엣지(120)가 IoT 클라우드(130)로부터 디바이스 ID(404)를 수신하여 등록할 수 있다.
도 4b를 참조하면, 관리자가 온도 센서에서 온도 정보를 가져오고, 발생한 100개의 데이터의 평균값을 도출하고, 데이터를 IoT 서비스 엣지(120)로 전송하길 원하는 경우(410), 통합 개발 클라우드 서버(100)는 개발자로부터 온도 센서에서 온도 정보를 가져오도록 하는 제 1 개발 블록, 발생한 100개의 데이터의 평균값을 도출하도록 하는 제 2 개발 블록, 데이터를 IoT 서비스 엣지(120)로 전송하도록 하는 제 3 개발 블록을 선택받을 수 있다. 통합 개발 클라우드 서버(100)는 선택된 개발 블록들을 조합하여 프로그래밍을 수행하고, 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다. 이 때, 선택된 제 1 블록들은 IoT 디바이스(110)가 수행하는 1 내지 3 동작으로 구성될 수 있다.
이후, 개발자가 온도 데이터의 평균 정보가 아닌 실시간 온도 데이터를 전송받길 원하는 경우, 통합 개발 클라우드 서버(100)는 온도 센서에서 온도 정보를 가져오도록 하는 제 1 개발 블록, 데이터를 IoT 서비스 엣지(120)로 전송하도록 하는 제 3 개발 블록을 선택받을 수 있다. 통합 개발 클라우드 서버(100)는 선택된 개발 블록들(410)을 조합하여 프로그래밍(411)을 수행하고, 프로그래밍(411)에 기초하여 IoT 서비스 프로파일을 생성할 수 있다. 이 때, 선택된 개발 블록들(410)은 IoT 디바이스(110)가 수행하는 동작에 1 내지 3 동작으로 구성될 수 있으며, IoT 서비스 엣지(120)는 생성된 IoT 서비스 프로파일에 기초하여 IoT 디바이스(110)에 대한 정보를 업데이트(405)할 수 있다.
이와 달리, 관리자가 온도 센서에서 온도 정보를 1초에 한번씩 가져오도록 하고, 데이터를 IoT 서비스 엣지(120)로 전송하길 원하는 경우, 통합 개발 클라우드 서버(100)는 관리자로부터 온도 센서에서 온도 정보를 1초에 한번씩 가져오도록 하는 제 1 개발 블록, 데이터를 IoT 서비스 엣지(120)로 전송하도록 하는 제 2 개발 블록을 선택받을 수 있다.
통합 개발 클라우드 서버(100)는 선택된 개발 블록들을 조합하여 프로그래밍을 수행하고, 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다.
IoT 클라우드(130)는 IoT 디바이스(110)로부터 데이터가 전송되는 IoT 서비스 엣지(120)의 ID를 해당 IoT 디바이스(110)의 ID와 매핑하여 저장할 수 있다.
도 5는 본 발명의 일 실시예에 따른 클라우드기반의 IoT 통합 개발 환경 내에서 태스크를 관리하는 과정을 설명하기 위한 예시적인 도면이다. 도 5를 참조하면, 클라우드 기반의 IoT 통합 개발 환경(IDE, 500)은 IoT 서비스 제공자의 서비스 프로파일을 제공받을 수 있다.
여기서, 클라우드 기반의 IoT 통합 개발 환경(IDE, 500)은 제공받은 IoT 서비스IoT 제공자의 서비스 프로파일을 디바이스(110)의 개발에 활용하여 실제 서비스에 투입되면 어떻게 동작하고, 관리되는지를 시뮬레이션할 수 있다.
예를 들어, 개발자는 클라우드 기반의 IoT 통합 개발 환경(IDE, 500)를 통해 IoT 프레임워크(Framework)&라이브러리(Libraries)(501)에서 환경에 대한 내용을 선택하고, 그에 맞는 태스크(task)를 선택하여 조합할 수 있다.
IoT 애플리케이션(502)은 조합된 태스크, 환경 정보와 애플리케이션 소스 코드(application source code)가 탑재되어, IoT 디바이스(110)에 다운로드될 수 있다. 도 6a 및 도 6b는 본 발명의 일 실시예에 따른 에뮬레이터를 생성하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a를 참조하면, 통합 개발 클라우드 서버(100)는 IoT 디바이스(110)의 스펙(600)을 선택받을 수 있다. 예를 들어, 통합 개발 클라우드 서버(100)는 사용자 단말로부터 IoT 서비스 인프라 정보, 운영체제 정보 및 라이브러리 정보 등을 선택받을 수 있다.
통합 개발 클라우드 서버(100)는 선택된 IoT 서비스 인프라 정보, 운영체제 정보 및 라이브러리 정보에 대응하는 복수의 개발 블록을 사용자 단말로 제공할 수 있다.
통합 개발 클라우드 서버(100)는 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 IoT 통합 개발 환경을 통해 프로그래밍(601)을 수행하고, 프로그래밍된 소스 코드를 검증하고 디버깅하기 위한 에뮬레이터(602)를 생성할 수 있다. 이 때, 에뮬레이션시 발생되는 다양한 정보는 가시화(603)되어 표시될 수 있다.
도 6b의 실제 IoT 디바이스(110)의 동작 모드(610)를 살펴보면, 디폴트 IoT OS가 보드 서포트 패키지(BSP: Board Support Package) 및 드라이버(612) 상에 설치되고, 보드 서포트 패키지 및 드라이버(612)는 하드웨어 계층(611)과 연동된다.
종래의 IoT 디바이스의 경우, 보드 제조사가 제공하는 디폴트 IoT OS에서 구동되는 IoT 소프트웨어를 개발해야만 했다. 즉, 종래의 경우, 보드 제조사가 제공하는 디폴트 IoT OS 이외의 IoT OS를 활용하는 것이 불가능했다.
그러나, 본 발명에서는 보드 서포트 패키지 및 드라이버(612) 상에 선택된 복수의 운영체제 각각에 대한 가상화 모듈 및 선택된 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층(614)을 생성하여 디폴트 IoT OS 이외의 IoT OS를 활용하는 것이 가능하다.
즉, 본 발명에서는 디폴트 IoT OS 이외의 다양한 IoT OS에서 구동되는 IoT 소프트웨어를 개발할 수 있다.
또한, 본 발명은 에뮬레이션 동작 모드(620)를 제공할 수 있다. 통합 개발 클라우드 서버(100)는 하드웨어 계층(611)에 대응하는 것으로서, 마이크로컨트롤러 유닛 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 에뮬레이터(621)를 생성 및 제공할 수 있다.IoT 디바이스(110)의 통합 개발 클라우드 서버(100)가 에뮬레이션 동작 모드(620)를 제공함에 따라, 별도의 IoT 디바이스(110)에 IoT 서비스 프로파일을 설치하여 테스트를 수행할 필요없이, 에뮬레이터(621)를 통해 가상의 환경에서 IoT 디바이스(110)를 구성하여 테스트할 수 있도록 하는 장점을 제공할 수 있다.
도 7은 본 발명의 일 실시예에 따른 가상의 IoT 디바이스를 생성하여 시뮬레이션을 수행하기 위한 구성을 도시한 예시적인 도면이다. 도 7을 참조하면, IoT 클라우드(130) 및 IoT 서비스 엣지(120)를 시뮬레이션하기 위한 소프트웨어를 통해 하나의 IoT 디바이스(110)에서 발생하는 정보를 리코딩한 뒤, 이를 복제(Cloning)하여 수많은 IoT 디바이스(110)에서 데이터가 발생하는 것처럼 모사해서 IoT 클라우드(130) 및 IoT 서비스 엣지(120)의 테스팅 및 개발과 같은 과정을 하나의 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 서비스 엣지(120)를 가상으로 복제(Cloning)한다.
- 가상으로 복제(Cloning)한 IoT 디바이스(110)들을 동작(Running)시킨 후 발생하는 데이터를 기반으로 IoT 서비스 엣지(120) 및 IoT 클라우드(130)를 개발 및 테스트를 진행한다.
도 8a 내지 도 8d는 본 발명의 일 실시예에 따른 시뮬레이션을 수행하는 과정을 설명하기 위한 예시적인 도면이다. 통합 개발 클라우드 서버(100)는 에뮬레이터를 이용하여 IoT 서비스 프로파일의 구동 시 발생하는 전력 소모를 시뮬레이션할 수 있다.
도 8a를 참조하면, 통합 개발 클라우드 서버(100)는 온습도 센서(801)에 대해 기준전압, 한번 센싱시 시간, 센싱시 센서보드의 전류 소모량, 아이들(Idle) 상태시 센서보드의 전류 소모량, 센싱 주기 등의 항목(800)에 기초하여 전력 소모를 시뮬레이션할 수 있다.
도 8b를 참조하면, 통합 개발 클라우드 서버(100)는 MCU 보드(803)에 대해 기준전압, 데이터 프로세싱에 걸리는 시간, 데이터 프로세싱시 센서보드의 전류 소모량, 아이들(Idle) 상태시 전류 소모량 등의 항목(802)에 기초하여 전력 소모를 시뮬레이션할 수 있다.
도 8c를 참조하면, 통합 개발 클라우드 서버(100)는 네트워크 모듈(805)에 대해 기준 전압, 데이터 송신하는데 걸리는 시간, 데이터 수신하는데 걸리는 시간, 데이터 송신하는데 네트워크 모듈의 토탈 전류 소모량, 데이터 수신하는데 네트워크 모듈의 토탈 전류 소모량, 아이들(Idle) 상태시 전류 소모량 등의 항목(804)에 기초하여 전력 소모를 시뮬레이션할 수 있다.
도 8d를 참조하면, 통합 개발 클라우드 서버(100)는 IoT 디바이스(110)를 구성하는 센서(801), MCU 보드(803), 네트워크 모듈(805)에 기초하여 IoT 디바이스(110)의 전체 전력 소모량(810)을 산출할 수 있다.
도 9는 본 발명의 일 실시예에 따른 최적의 소스 코드를 제공하는 과정을 설명하기 위한 예시적인 도면이다. 도 9를 참조하면, IoT 통합 개발 환경은 비주얼 프로그래밍 방식으로 적어도 하나의 개발 블록을 조합하여 프로그래밍(900)할 수 있다. 이 과정에서 소스 코드가 생성되며, 생성된 소스 코드는 필요에 따라 사용자에 의해 직접 수정(910)될 수 있다.
통합 개발 클라우드 서버(100)는 적어도 하나의 패턴에 기초하여 프로그래밍된 소스 코드를 분석하여 소스 코드 최적화(920)를 수행할 수 있다. 예를 들어, 통합 개발 클라우드 서버(100)는 "해당 패턴을 적용하여 개선하면 전력 소모량을 10mA/h를 줄일 수 있습니다."와 같이 최적화된 알고리즘을 제안할 수 있다.
도 10은 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법의 순서도이다. 도 10에 도시된 통합 개발 클라우드 서버(100)에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 도 1 내지 도 9에 도시된 실시예에 따라 통합 개발 클라우드 서버(100)에 의해 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 1 내지 도 9에 도시된 실시예에 따른 통합 개발 클라우드 서버(100)에도 적용된다.
단계 S1010에서 통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보를 저장할 수 있다.
단계 S1020에서 통합 개발 클라우드 서버(100)는 운영체제 정보 및 라이브러리 정보를 저장할 수 있다.
단계 S1030에서 통합 개발 클라우드 서버(100)는 운영체제 정보에 기초하여 운영체제를 선택받고, 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받을 수 있다.
단계 S1040에서 통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보, 선택된 운영체제 및 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행할 수 있다.
단계 S1050에서 통합 개발 클라우드 서버(100)는 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다.
상술한 설명에서, 단계 S1010 내지 S1050은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
도 1 내지 도 10을 통해 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 또한, 도 1 내지 도 10을 통해 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램의 형태로도 구현될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 통합 개발 클라우드 서버
110: IoT 디바이스
120: IoT 서비스 엣지
130: IoT 클라우드
140: 서비스 저장소
210: IoT 서비스 인프라 정보 관리부
220: IoT 디바이스 정보 관리부
230: 선택부
240: 프로그래밍부
241: 운용 계층 생성부
242: 추상화 계층 생성부
243: 소스 코드 최적화부
250: IoT 서비스 프로파일 생성부
260: 에뮬레이션부
270: 시뮬레이션부
110: IoT 디바이스
120: IoT 서비스 엣지
130: IoT 클라우드
140: 서비스 저장소
210: IoT 서비스 인프라 정보 관리부
220: IoT 디바이스 정보 관리부
230: 선택부
240: 프로그래밍부
241: 운용 계층 생성부
242: 추상화 계층 생성부
243: 소스 코드 최적화부
250: IoT 서비스 프로파일 생성부
260: 에뮬레이션부
270: 시뮬레이션부
Claims (13)
- IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버에 있어서,
IoT 서비스 인프라 정보를 제공하는 IoT 서비스 인프라 정보 관리부;
운영체제 정보 및 라이브러리 정보를 제공하는 IoT 디바이스 정보 관리부;
상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 선택부;
상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 프로그래밍부; 및
상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 IoT 서비스 프로파일 생성부
를 포함하는 것이되,
상기 운영체제 정보는 상기 IoT 디바이스에 설치되는 기설정된 디폴트 운영체제 및 상기 디폴트 운영체제 이외에 상기 IoT 디바이스에 설치 가능한 복수의 운영체제를 포함하고,
상기 IoT 디바이스는,
상기 디폴트 운영체제가 설치된 보드 서포트 패키지 및 드라이버; 및
상기 보드 서포트 패키지 및 드라이버 상에 생성된 상기 복수의 운영체제 각각에 대한 가상화 모듈 및 상기 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층에 의해 동작되는 것인, 통합 개발 클라우드 서버.
- 제 1 항에 있어서,
상기 IoT 서비스 인프라 정보는 상기 IoT 서비스 프로파일을 조회하고, IoT 서비스 엣지를 통해 IoT 디바이스로부터 생성된 정보를 수집하고, 상기 수집된 정보를 사용자 단말로 전송하도록 하는 IoT 클라우드 프레임워크 및 IoT 디바이스로부터 생성된 정보를 수집하고, 상기 수집된 정보를 IoT 클라우드로 전송하도록 하는 IoT 엣지 프레임워크를 포함하는 것인, 통합 개발 클라우드 서버.
- 삭제
- 제 2 항에 있어서,
상기 복수의 개발 블록은 상기 IoT 디바이스가 수행하는 동작에 관한 코드로 이루어진 것인, 통합 개발 클라우드 서버.
- 제 4 항에 있어서
상기 프로그래밍부는 상기 복수의 개발 블록에 기초하여 상기 IoT 클라우드 프레임워크 상에서 상기 IoT 디바이스가 수행하는 동작을 정의하고, 상기 IoT 엣지 프레임워크 상에서 상기 IoT 디바이스가 수행하는 동작을 정의하는 운용 계층을 생성하는 운용 계층 생성부를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 1 항에 있어서,
상기 프로그래밍부는 상기 선택된 복수의 라이브러리 각각에 대한 가상화 모듈 및 상기 선택된 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성하는 추상화 계층 생성부를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 1 항에 있어서,
상기 프로그래밍부는 적어도 하나의 패턴에 기초하여 상기 프로그래밍된 소스 코드를 분석하여 소스 코드 최적화를 수행하는 소스 코드 최적화부를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 7 항에 있어서,
상기 적어도 하나의 패턴은 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 중 적어도 하나를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 1 항에 있어서,
상기 프로그래밍된 소스 코드를 검증하고 디버깅하기 위한 에뮬레이터를 생성하는 에뮬레이션부
를 더 포함하는 것인, 통합 개발 클라우드 서버.
- 제 9 항에 있어서,
상기 에뮬레이터는 마이크로컨트롤러 유닛(MCU: Micro Controller Unit) 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성하는 것인, 통합 개발 클라우드 서버.
- 제 9 항에 있어서,
상기 에뮬레이터를 이용하여 상기 IoT 서비스 프로파일의 구동 시 발생하는 전력 소모를 시뮬레이션하는 시뮬레이션부
를 더 포함하는 것인, 통합 개발 클라우드 서버.
- 제 11 항에 있어서,
상기 시뮬레이션부는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 상기 전력 소모를 시뮬레이션하는 것인, 통합 개발 클라우드 서버.
- IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법에 있어서,
IoT 서비스 인프라 정보를 저장하는 단계;
운영체제 정보 및 라이브러리 정보를 저장하는 단계;
상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 단계;
상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 단계; 및
상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 단계
를 포함하는 것이되,
상기 운영체제 정보는 상기 IoT 디바이스에 설치되는 기설정된 디폴트 운영체제 및 상기 디폴트 운영체제 이외에 상기 IoT 디바이스에 설치 가능한 복수의 운영체제를 포함하고,
상기 IoT 디바이스는,
보드 서포트 패키지 및 드라이버에 상기 디폴트 운영체제가 설치되고,
상기 보드 서포트 패키지 및 드라이버 상에 생성된 상기 복수의 운영체제 각각에 대한 가상화 모듈 및 상기 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층에 의해 동작되는 것인, 통합 개발 환경을 제공하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2020/002858 WO2021033861A1 (ko) | 2019-08-20 | 2020-02-28 | Iot 서비스 인프라와의 연동을 지원하는 초소형 iot 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190101805 | 2019-08-20 | ||
KR1020190101805 | 2019-08-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102214060B1 true KR102214060B1 (ko) | 2021-02-09 |
Family
ID=74559079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190131312A KR102214060B1 (ko) | 2019-08-20 | 2019-10-22 | IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102214060B1 (ko) |
WO (1) | WO2021033861A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564195A (zh) * | 2022-02-17 | 2022-05-31 | 山东华云三维科技有限公司 | 一种基于b/s架构的云cad平台的二次开发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090004210A (ko) | 2007-07-06 | 2009-01-12 | 이양선 | 통합 개발 환경을 이용한 소프트웨어 프로그램을 개발하기위한 장치 및 통합 개발 환경을 이용한 소프트웨어프로그램 개발 시스템 |
KR20160089747A (ko) * | 2015-01-20 | 2016-07-28 | 주식회사 크레스프리 | IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법 |
JP2019502993A (ja) * | 2015-12-14 | 2019-01-31 | アフェロ インコーポレイテッドAfero, Inc. | モノのインターネット(IoT)システムのための統合開発ツール |
KR20190060561A (ko) * | 2017-11-24 | 2019-06-03 | 포항공과대학교 산학협력단 | 이종 디바이스의 선택적 추상화를 통한 사물 인터넷 어플리케이션의 개발 환경을 통합하는 방법 및 시스템 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3001304C (en) * | 2015-06-05 | 2021-10-19 | C3 Iot, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
-
2019
- 2019-10-22 KR KR1020190131312A patent/KR102214060B1/ko active IP Right Grant
-
2020
- 2020-02-28 WO PCT/KR2020/002858 patent/WO2021033861A1/ko active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090004210A (ko) | 2007-07-06 | 2009-01-12 | 이양선 | 통합 개발 환경을 이용한 소프트웨어 프로그램을 개발하기위한 장치 및 통합 개발 환경을 이용한 소프트웨어프로그램 개발 시스템 |
KR20160089747A (ko) * | 2015-01-20 | 2016-07-28 | 주식회사 크레스프리 | IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법 |
JP2019502993A (ja) * | 2015-12-14 | 2019-01-31 | アフェロ インコーポレイテッドAfero, Inc. | モノのインターネット(IoT)システムのための統合開発ツール |
KR20190060561A (ko) * | 2017-11-24 | 2019-06-03 | 포항공과대학교 산학협력단 | 이종 디바이스의 선택적 추상화를 통한 사물 인터넷 어플리케이션의 개발 환경을 통합하는 방법 및 시스템 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564195A (zh) * | 2022-02-17 | 2022-05-31 | 山东华云三维科技有限公司 | 一种基于b/s架构的云cad平台的二次开发方法 |
CN114564195B (zh) * | 2022-02-17 | 2024-02-27 | 山东华云三维科技有限公司 | 一种基于b/s架构的云cad平台的二次开发方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021033861A1 (ko) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8966438B2 (en) | System and methods for end-users to graphically program and manage computers and devices | |
AU2018365860B2 (en) | Code module selection for device design | |
US9311486B2 (en) | Network based firmware feature configuration and firmware image generation | |
EP1004072B1 (en) | Embedded graphical programming system | |
De Farias et al. | COMFIT: A development environment for the Internet of Things | |
KR20140048660A (ko) | IoT 브라우징 방법 및 장치 | |
CN103927253A (zh) | 多浏览器兼容性测试方法及系统 | |
KR102214060B1 (ko) | IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 | |
KR20090000199A (ko) | 웹 서버 어플리케이션 프레임워크와 상기 프레임워크를이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는컴퓨터로 읽을 수 있는 기록 매체 | |
KR100827925B1 (ko) | 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을위한 애플리케이션 프레임워크 시스템 | |
KR101636457B1 (ko) | 복수 개의 번들간에 서로 기능을 공유할 수 있는 프레임워크 기반으로 동작하는 화상형성장치 및 이러한 화상형성장치에 번들을 설치하는 방법 | |
KR102451255B1 (ko) | 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버 | |
US11429357B2 (en) | Support device and non-transient computer-readable recording medium recording support program | |
Losilla et al. | An educational tool for wireless sensor networks | |
KR20120118866A (ko) | 웹기술을 이용하여 저성능 원격지 장치를 제어하기 위한 인터페이스 구축 시스템 및 그 방법 | |
Magicho | Internet of Things: Smart Home Device | |
WO2023193470A1 (zh) | 一种业务管理方法、系统及相关装置 | |
Schmeling et al. | Kubernetes-Native Pipelines | |
Min | The upgrade and design of remote monitor and control for climate chamber | |
KR102016810B1 (ko) | 사물을 제어하는 다수 IoT 플랫폼을 생성하는 액추에이터 컴포지션 시스템 | |
Le-Viet et al. | UiTiOt-Vlab: A Low Cost Physical IoTs Testbed Based on Over-The-Air Programming Approach | |
Kuorilehto | System level design issues in low-power wireless sensor networks | |
Nguyen | A Test Management Tool for 5G Radio Network: real-time radio position control web app | |
KR20170016726A (ko) | 가상 가전기기 지원 장치 및 가상 가전기기 지원 방법 | |
Jensen | Architectural Design and Implementation of a Visualization and Control-Interface for BabbleSim |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |