KR20160089747A - IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법 - Google Patents

IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법 Download PDF

Info

Publication number
KR20160089747A
KR20160089747A KR1020150009350A KR20150009350A KR20160089747A KR 20160089747 A KR20160089747 A KR 20160089747A KR 1020150009350 A KR1020150009350 A KR 1020150009350A KR 20150009350 A KR20150009350 A KR 20150009350A KR 20160089747 A KR20160089747 A KR 20160089747A
Authority
KR
South Korea
Prior art keywords
development environment
embedded software
iot module
iot
address
Prior art date
Application number
KR1020150009350A
Other languages
English (en)
Other versions
KR101674515B1 (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 KR1020150009350A priority Critical patent/KR101674515B1/ko
Publication of KR20160089747A publication Critical patent/KR20160089747A/ko
Application granted granted Critical
Publication of KR101674515B1 publication Critical patent/KR101674515B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • H04L61/2007
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법으로서, 네트워크 접속을 위한 IP 어드레스가 부여되고, 통합개발환경(IDE; Integrated Development Environment) UI(User Interface)가 탑재되어 IoT 디바이스의 임베디드 소프트웨어에 대한 개발 환경을 제공하기 위해 상기 IP 어드레스로 접속한 사용자 단말기에 상기 통합개발환경 UI를 제공하는 IoT 모듈; 및 상기 IoT 모듈에 부여된 IP 어드레스를 저장하며, 상기 사용자 단말기로 상기 IP 어드레스 정보를 제공하는 중계 서버를 포함하며, 상기 IoT 모듈은 IoT 디바이스에 장착되어, 상기 IoT 모듈 상의 상기 임베디드 소프트웨어로 상기 IoT 디바이스의 특정 기능이 수행되는 것을 것을 특징으로 하는 IoT 디바이스에서 특정 기능 수행을 위한 임베디드 소프트웨어 개발 환경 시스템과 이를 이용하여 임베디드 소프트웨어 개발 환경을 제공하는 방법이며, 이와 같은 본 발명에 의하면 임베디드 소프트웨어 개발을 위한 시스템의 물리적 인터페이스 구조와 각종 OS 환경에 익숙하지 않은 초보 개발자들도 손쉽게 임베디드 소프웨어의 개발이 가능한 통합개발환경을 제공할 수 있다.

Description

IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법 {System and method of providing embedded software development environment for IoT device}
본 발명은 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법에 대한 것으로서, 보다 상세하게는 임베디드 소프트웨어가 탑재될 타겟 디바이스로서 IoT 디바이스에 장착되는 IoT 모듈에서 네트워크로 접속하는 사용자 단말기에 개발 환경을 위한 통합개발환경 UI를 제공하여 쉽고 효과적으로 임베디드 소프트웨어의 개발 환경을 제공하는 방안에 관한 것이다.
초고속인터넷, 무선통신의 급속한 보급과 유비쿼터스 네트워크의 세계적인 추세에 따라 그 기반 기술이 되는 임베디드 시스템(embedded system)이라는 용어가 과거 통신 및 제어장치에서만 사용되었으나 이제 일상생활의 필수품이 되고 전 산업에 영향을 주게 되었다.
임베디드 시스템은 전자 하드웨어와 기계 부분을 포함하는 전체 장치의 일부로 내장되어 특정 기능을 수행하는 전자적 시스템을 의미하는데, 임베디드 시스템에는 마이크로컨트롤러(microcontroller)나 DSP(digital signal processor) 등의 프로세서 코어가 장착되며, 운영 체제(윈도 CE, 또는 리눅스 커널)가 시스템에 포함되어 운영체제 상에서 특정 기능을 수행하도록 응용프로그램이 동작하게 된다.
이와 같은 임베디드 시스템은 확장성 또는 재프로그램능력을 갖추고 있기에 오늘날 일상 생활에 쓰이는 많은 장치들에 탑재되어 통신시스템, 제어장치, 휴대폰, 디지털 TV, 셋톱박스, 홈네트워크에서부터 스마트카드, RFID, 센서노드 등 임베디드 소프트웨어가 들어가지 않는 곳이 없을 정도로 광범위하며 단순한 제어에서부터 복잡한 프로토콜 스택까지 그 기능이 다양하다.
특히, 정보 통신 기술(ICT; Information & Communication Technology)의 발전에 따라 주변에 존재하는 대다수의 기기들은 통신 네트워크를 통해 상호 연결되어 연동하는 구조로 변화하고 있으며, ICT의 급속한 발전을 통해 만물이 모바일과 인터넷을 통해 연결되어 서로 소통하는 사회, 즉 사물과 사람이 네트워크로 연결되는 초연결사회(Hyper Connected Society)로 언제든지(anytime)와 어디든지(anyplace)라는 연결 세계에 무엇이든지(anything)라는 연결 차원을 추가하는 새로운 연결 생태계인 사물인터넷(IoT; Internet of Things)을 구축해가고 있는 상황에서 IoT 디바이스 상에 임베디드 스프트웨어를 구축함으로써 IoT 디바이스를 보다 쉽고 효과적으로 개발 및 개량할 수 있게 된다.
이와 같은 상황에서 임베디드 소프트웨어의 개발 환경이 일반 소프트웨어의 개발환경보다 훨씬 어려워서 효과적인 개발도구가 없이는 경쟁력 있는 개발이 불가능하여, 보다 쉽고 효과적인 임베디드 소프트웨어 개발환경의 구축이 매우 중요하게 대두되고 있다.
도 1에 도시된 종래 임베디드 소프트웨어의 개발 환경에 대한 개념도를 참조하면, 개발자가 호스트 시스템인 단말기(10) 상에서 소프트웨어를 개발한 후 JTAG, Serial, LAN 등의 물리적 연결 케이블로 호스트 시스템(10)과 타겟 임베디드 시스템(30)을 연결하여 개발된 소프트웨어를 타겟 임베디드 시스템(30)에 다운로드하고, 타겟 임베디드 시스템(30) 상에서 개발된 소프트웨어를 실행하여 실행상태를 모니터링하게 된다.
이와 같은 상기 도 1의 개발 환경의 경우 호스트 시스템(10) 상에서 개발 프로그램을 통해 소프트웨어를 개발함으로써 실제 타겟 임베디드 시스템(30)에서 구동을 위한 각 설정과 설치가 용이하지 않으며, 특히 호스트 시스템(10)과 타겟 임베디드 시스템(30)을 연결하는 물리적 인터페이스를 이용함에 따라 임베디드 및 각종 OS 환경에 익숙하지 않은 초보 개발자들이 접근하기 어려운 문제점이 있다.
상기 도 1과 같은 종래 개발 환경을 좀 더 개선한 웹서버 형태의 통합개발환경(IDE)을 제공하는 방안이 제시되었는데, 도 2를 참조하면 임베디드 소프트웨어 개발을 위한 통합개발환경(IDE; Integrated Development Environment)을 웹 서버(Web server) 형태로 제공함으로써 개발자는 단말기(10)에 탑재된 웹 브라우저 등을 통해 웹 서버(50)에 접속하여 통합개발환경(IDE) 상에서 임베디드 소프트웨어를 개발할 수 있게 되었다. 이와 같은 웹 서버 형태로 통합개발환경을 제공함으로써 개발자가 시간과 공간적 제약없이 언제 어디서든 웹 서버(50)에 접속하여 용이하게 통합개발환경(IDE)을 이용하여 임베디드 소프트웨어의 개발이 가능해졌으며, 개발된 임베디드 소프트웨어를 웹 서버(50)로부터 타겟 임베디드 시스템(30) 상에 다운로드하여 그 실행상태를 모니터링할 수 있게 되었다.
그러나 이와 같은 종래 웹 서버 형태의 통합개발환경(IDE) 방식은 다수의 개발자들이 동시에 웹 서버에 접속하여 개발중인 소스코드에 대한 빌드를 실시하는 경우에 웹 서버에 부하가 급격히 증가됨에 따라 적절한 개발 작업의 수행이 어려워지고 이를 해결하기 위해서는 그만큼의 서버 자원을 확보해야하므로 운영 비용이 증가되는 문제가 있다.
또한 중요한 지적자산인 소프트웨어가 다수의 사용자들이 접속가능한 웹 서버에 존재함에 따라 악의적인 제3자에게 노출될 가능성이 높으며, 웹 서버의 해킹시 큰 피해가 발생될 우려가 있다.
나아가서 임베디드 소프트웨어의 개발 자체는 타겟 임베디드 시스템 외부인 웹 서버에서 이루어지는 크로스 개발환경임에 따라 임베디드 소프트웨어의 실행파일을 타겟 임베디드 시스템에 다운로드하여 실행 상태를 모니터링한 후 문제가 발생되는 부분의 보완을 위해서는 웹 서버에서 작업한 후 다시 보완된 소프트웨어를 타겟 임베디드 시스템에 다운로드하여 모니터링하는 번거로움이 있다.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하고자 하는 것으로서, 임베디드 소프트웨어의 개발시 물리적 인터페이스를 이용함에 따라 임베디드 및 각종 OS 환경에 익숙하지 않은 초보 개발자들이 접근하기 어려운 문제점을 해결하고자 한다.
특히, 종래 웹 서버 형태의 통합개발환경(IDE) 방식을 이용할 때 다수의 개발자들이 동시에 웹 서버에 접속하여 개발중인 소스코드에 대한 빌드를 실시하는 경우 웹 서버에 부하가 급격히 증가됨에 따라 적절한 개발 작업의 수행이 어려워지고 이를 해결하기 위해서는 그만큼의 서버 자원을 확보해야하므로 운영 비용이 증가되는 문제를 해결하고자 한다.
또한, 중요한 지적자산인 소프트웨어가 다수의 사용자들이 접속가능한 웹 서버에 존재함에 따라 악의적인 제3자에게 노출될 가능성이 높으며, 웹 서버의 해킹시 큰 피해가 발생될 우려가 있는 문제를 해결하고자 한다.
한걸음 더 나아가서 임베디드 소프트웨어를 개발하여 타겟 임베디드 시스템에서 실행 상태를 모니터링할 때 문제가 발생되는 부분의 보완을 위해서 크로스 개발 환경에서는 호스트에서 코딩 및 일련의 빌드 과정을 거친 후 보완된 소프트웨어를 시리얼 통신 혹은 네트워크등의 인터페이스를 통해 다시 타겟 임베디드 시스템으로 다운로드를 실시한 후에 실행시키는 번거로움과 웹서버 개발 환경에서의 웹 서버상에서 코딩 및 일련의 빌드 작업을 한 후 보완된 소프트웨어를 타겟 임베디드 시스템에 다운로드해서 실행시키는 번거로움을 해결하고자 한다.
상기 기술적 과제를 달성하고자 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템의 일실시예는 네트워크 접속을 위한 IP 어드레스가 부여되고, 통합개발환경(IDE; Integrated Development Environment) UI(User Interface)가 탑재되어 IoT 디바이스의 임베디드 소프트웨어에 대한 개발 환경을 제공하기 위해 상기 IP 어드레스로 접속한 사용자 단말기에 상기 통합개발환경 UI를 제공하는 IoT 모듈; 및 상기 IoT 모듈에 부여된 IP 어드레스를 저장하며, 상기 사용자 단말기로 상기 IP 어드레스 정보를 제공하는 중계 서버를 포함하며, 상기 IoT 모듈은 IoT 디바이스에 장착되어, 상기 IoT 모듈 상의 상기 임베디드 소프트웨어로 상기 IoT 디바이스의 특정 기능이 수행되는 것을 것을 특징으로 한다.
바람직하게는 상기 IoT 모듈은, IP 어드레스 할당을 요청하여 부여된 IP 어드레스로 네트워크에 접속하는 통신부; 통합개발환경 UI를 저장하고, 상기 통합개발환경 UI를 이용하여 제작된 임베디드 소프트웨어의 소스코드와 컴파일된 실행파일을 저장하는 저장부; 상기 통합개발환경 UI를 운영하여 상기 사용자 단말기에 의해 제작되는 임베디드 소프트웨어의 소스코드 전체를 컴파일하고, 컴파일된 실행파일을 구동시키거나 소스코드를 블록단위로 해석하고 실행시키는 중앙처리부; 및 상기 IoT 디바이스와 연결되며, 상기 실행파일의 구동에 따른 상기 IoT 디바이스의 특정 기능 수행을 위한 제어신호를 전송하는 인터페이스를 포함할 수 있다.
보다 바람직하게는 상기 IoT 모듈은 개별 식별정보가 부여되며, 상기 중계 서버는, IoT 모듈의 개별 식별정보에 대응시켜 IP 어드레스를 저장할 수도 있다.
나아가서 상기 네트워크는 인터넷 망을 포함하며, 상기 IoT 모듈은, 상기 통합개발환경 UI를 웹서버 형태로 제공하고, 상기 사용자 단말기에는, 상기 IoT 모듈의 상기 통합개발환경 UI의 이용을 지원하는 웹 브라우저가 탑재될 수 있다.
한걸음 더 나아가서 상기 통합개발환경 UI는, 임베디드 소프트웨어의 소스 코드 편집을 위한 에디터; 상기 소스 코드를 컴파일하는 컴파일러; 및 컴파일된 상기 소스 코드에 대한 실행 파일을 생성하는 링커를 통합한 단일 그래픽 유저 인터페이스(GUI)를 포함할 수 있다.
또는 상기 통합개발환경 UI는, 임베디드 소프트웨어의 소스 코드 편집을 위한 에디터; 및 상기 소스 코드를 블록단위로 해석하여 실행시키는 인터프리터를 통합한 단일 그래픽 유저 인터페이스(GUI)를 포함할 수 있다.
경우에 따라 상기 단일 그래픽 유저 인터페이스(GUI)는, 상기 임베디드 소프트웨어를 디버깅하는 디버거; 및 상기 임베디드 소프트웨어의 설정, 빌드 및 루트파일 설치 기능을 수행하는 빌더를 더 포함 할 수도 있다.
바람직하게는 상기 IoT 모듈은, 허가된 사용자 여부를 판단하여 접속 허가를 결정하는 인증부를 더 포함할 수도 있다.
그리고 상기 중계 서버는, 허가된 사용자 여부를 판단하는 인증부를 포함하며, 사용자 인증 결과에 따라 상기 사용자 단말기로 상기 IP 어드레스 정보를 제공할 수도 있다.
또한 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템을 이용한 임베디드 소프트웨어 개발 환경 제공 방법의 일실시예는, 중계 서버가 IoT 디바이스에 장착된 또는 장착될 IoT 모듈로부터 IP 어드레스 정보를 전송받아 저장하는 IP 정보 보유 단계; 상기 중계 서버가 사용자 단말기로부터 IoT 모듈에 대한 IP 어드레스 정보를 요청받고 상기 IoT 모듈에 대한 IP 어드레스 정보를 상기 사용자 단말기에 제공하는 IP 어드레스 정보 제공 단계; 및 상기 IoT 모듈이 상기 IP 어드레스로 접속한 상기 사용자 단말기에 임베디드 소프트웨어의 개발 환경을 위한 통합개발환경 UI를 제공하는 통합개발환경 UI 제공 단계를 포함할 수 있다.
바람직하게는 상기 IP 정보 보유 단계는, 상기 중계 서버가 상기 IoT 모듈로부터 식별 정보와 IP 어드레스 정보를 전송받고 상기 식별 정보에 상기 IP 어드레스 정보를 대응시켜 저장하며, 상기 IP 어드레스 정보 제공 단계는, 상기 중계 서버가 상기 사용자 단말기로부터 전송된 IoT 모듈의 식별정보에 대응되는 IP 어드레스를 추출하여 상기 사용자 단말기에 제공할 수 있다.
나아가서 상기 통합개발환경 UI 제공 단계는, 상기 사용자 단말기에 임베디드 소프트웨어의 소스 코드 편집을 위한 에디터; 소스 코드의 컴파일하는 컴파일러; 및 컴파일된 상기 소스 코드에 대한 실행 파일을 생성하는 링커를 통합한 단일 그래픽 유저 인터페이스(GUI)로 제공할 수 있다.
또는 상기 통합개발환경 UI 제공 단계는, 상기 사용자 단말기에 임베디드 소프트웨어의 소스 코드 편집을 위한 에디터; 및 상기 소스 코드를 블록단위로 해석하여 실행시키는 인터프리터 통합한 단일 그래픽 유저 인터페이스(GUI)로 제공할 수 있다.
한걸음 더 나가아서 IoT 디바이스에 장착된 상기 IoT 모듈에서 상기 임베디드 소프트웨어의 실행에 따라 상기 IoT 디바이스의 특정 기능이 수행되는 단계를 더 포함할 수도 있다.
바람직하게는 상기 통합개발환경 UI 제공 단계는, 상기 IoT 모듈이 상기 IP 어드레스로 접속한 상기 사용자 단말기에 대한 인증을 수행하고 그 결과에 따라 임베디드 소프트웨어의 개발 환경을 위한 통합개발환경 UI를 제공할 수 있다.
또는 상기 IP 어드레스 정보 제공 단계는, 상기 사용자 단말기로부터 IoT 모듈에 대한 IP 어드레스 정보 요청시 사용자에 대한 인증을 수행하고 그 결과에 다라 상기 IoT 모듈에 대한 IP 어드레스 정보를 상기 사용자 단말기에 제공할 수도 있다.
이와 같은 본 발명에 의하면, 임베디드 소프트웨어 개발을 위한 시스템의 물리적 인터페이스 구조와 각종 OS 환경에 익숙하지 않은 초보 개발자들도 손쉽게 임베디드 소프웨어의 개발이 가능하게 되며, 특히 IoT 디바이스에 장착되는 IoT 모듈 상에서 통합개발환경을 제공함으로써 기존 크로스 개발 환경과는 다르게 타겟 시스템 상에서 직접 개발 작업이 이루어지는 형태가 되므로 단일 웹 서버에서 통합개발환경을 제공하는 경우 다수의 개발자들이 동시에 소스코드를 빌드함에 따라 웹 서버의 부하가 급격히 증가하여 적절한 개발 작업 수행이 어려워지는 문제를 해결할 수 있다.
나아가서 일반적으로 통합개발환경을 제공하는 단일 웹 서버 형태의 경우에 해킹 등에 노출될 가능성이 높아 중요한 지적자산인 소프트웨어가 악의적으로 유출될 가능성이 있지만, 본 발명에서는 관련 개발자들만 접속하는 별도의 개별적인 IP 어드레스가 각각의 IoT 모듈에 부여되므로 상대적으로 해킹 등에 노출될 가능성이 적어지며, 중계 서버 또는 각각의 IoT 모듈마다 접속하는 사용자 단말기에 대한 인증 과정을 수행함으로써 더욱 보안성을 강화시킬 수 있다.
한걸음 더 나아가서 임베디드 소프트웨어를 개발하여 타겟 임베디드 시스템에서 실행 상태를 모니터링할 때 문제가 발생되는 부분의 보완을 위해서 크로스 개발 환경에서는 호스트에서 코딩 및 일련의 빌드 과정을 거친 후 보완된 소프트웨어를 시리얼 통신 혹은 네트워크등을 통해 다시 타겟 임베디드 시스템으로 다운로드를 실시한 후에 실행해야 하며 웹서버 개발 환경에서는 웹 서버상에서 코딩 및 일련의 빌드 작업을 한 후 보완된 소프트웨어를 타겟 임베디드 시스템에 다운로드해서 실행시키는 번거러움이 있으나 본 발명에서는 통합개발환경을 제공하는 IoT 모듈이 타겟 시스템인 IoT 디바이스에 장착된 상태에서 모니터링하여 문제 발견시에 바로 IoT 모듈의 통합개발환경으로 수정 및 일련의 빌드작업, 보완이 가능하므로 개발의 효율성을 더욱 증대시킬 수 있게 된다.
도 1은 종래 임베디드 소프트웨어의 개발 환경에 대한 개념도를 도시하며,
도 2는 종래 웹서버 형태의 통합개발환경(IDE)을 제공하는 구성도를 도시하며,
도 3은 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템에 대한 일실시예의 구성도를 도시하며,
도 4는 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템에서 IoT 모듈에 대한 일실시예의 구성도를 도시하며,
도 5는 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템에서 제공되는 단일 그래픽 유저 인터페이스(GUI)의 구성도를 도시하며,
도 6은 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 제공 방법에 대한 일실시예의 흐름도를 도시한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 설명하기 위하여 이하에서는 본 발명의 바람직한 실시예를 예시하고 이를 참조하여 살펴본다.
먼저, 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니며, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 또한 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명은, IoT 디바이스에 구동되는 임베디드 소프트웨어의 개발을 위한 통합개발환경(IDE; Integrated Development Environment) UI(User Interface)를 제공하는 방안으로서, IoT 디바이스 자체에 장착되는 IoT 모듈 상에서 네트워크 접속을 통한 통합개발환경(IDE)을 제공함으로써 초보 개발자나 시스템의 물리적 환경에 대한 문외한인 일반인들도 쉽게 사용이 가능한 임베디드 소프트웨어 개발 환경을 제공하는 방안이다.
도 3은 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템에 대한 일실시예의 구성도를 도시한다.
본 발명에 따른 임베디드 소프트웨어 개발 환경 시스템은 개략적으로 IoT 모듈(400), IoT 디바이스(500), 중계서버(300), 네트워크(200) 및 사용자 단말기(100)를 포함하여 구성될 수 있다.
IoT 디바이스(500)는 다양한 네트워크를 통해 사람의 명시적 개입 없이 다양한 기기 간의 상호 협력적으로 센싱, 네트워킹, 정보 처리 등 지능적 관계를 형성하는 사물 공간 연결망인 IoT(Internet of Things)를 지원하는 스마트 기기로서, 가령 일반적인 가정에서는 네트워크와 연결되어 기능을 수행하는 가전기기가 포함될 수 있고, 공장이나 사무실 등에서는 네트워크와 연결되어 기능을 수행하는 생산기기, 환경제어기기 또는 사무기기 등이 포함될 수 있으며, 나아가서 인간이 의식하지 않고 일상생활에서 사용하는 휴대용 스마트 기기나 웨어러블 기기 등이 포함될 수 있다.
본 발명에서 IoT 모듈(400)은, IoT 디바이스(500)의 내부에 장착가능하거나 IoT 디바이스(500)의 통신 포트에 연결가능하여 IoT 모듈(400) 상에 탑재된 다양한 소프트웨어 구동에 따라 IoT 디바이스(500)가 특정 기능을 수행 가능하도록 지원하는 수단으로서, 기본적으로 통신 기능을 보유하여 IP 어드레스를 부여받아 네트워크(200)에 접속가능하며, 사용자 단말기(100)가 IoT 디바이스(500) 상 장착된 IoT 모듈(400)을 통해 IoT 디바이스(500)에서 바로 임베디드 소프트웨어를 개발할 수 있도록 통합개발환경 UI만을 제공하는 특화된 수단일 수도 있고, 또는 IoT 디바이스(500)가 사물인터넷(IoT) 환경에 편제될 수 있도록 IoT 디바이스(500)의 네트워크 접속을 위한 각종 디폴트를 설정하거나 기타 다양한 네트워크 접속 기능을 지원하는 수단일 수도 있다. 나아가서 IoT 모듈(400)은 통신기능이 부여되지 않은 기존 일반 기기들에 연결되어 일반 기기들이 사물인터넷 IoT 환경에 적용가능하도록 지원함으로써 기존 일반기기들을 IoT 디바이스(500)로 편제시킬 수 있는 수단일 수도 있다.
바람직하게는 IoT 모듈(400)은 허가된 사용자 여부를 판단하여 접속 허가를 결정할 수도 있다.
그리고 네트워크(500)는 유선 또는 무선 등 상황에 따라 사용가능한 다양한 네트워크 망을 포함할 수 있으며, 한정된 공간의 자체 기기들이 연결되어 구성되는 네트워크에 한정될 수도 있지만 보다 바람직하게는 인터넷에 접속가능한 망으로서 WAN(wide area network), LAN(local area network), PAN(personal area network) 등 다양하게 구성되는 망을 포함하며, 이들 네트워크 망은 와이파이, 지그비 또는 블루투스 등 상황에 따라 적용가능한 다양한 방식으로 구성되는 네트워크가 될 수 있다.
중계 서버(300)는 네트워크(200)에 접속가능하며 IoT 모듈(400)에 부여된 IP 어드레스 정보를 보유하고 있어 사용자 단말기(100)로부터 특정 IoT 모듈(400)에 대한 IP 어드레스 정보를 요청받을시에 해당 IoT 모듈(400)에 부여된 IP 어드레스 정보를 사용자 단말기(100)에 제공한다. 바람직하게는 IoT 모듈(400)마다 고유 식별 정보가 부여되며, 중계 서버(300)는 해당 IoT 모듈(400)의 고유 식별 정보를 IP 어드레스에 매칭시켜 저장할 수 있다. 이와 같은 경우에 IoT 모듈(400)의 고유 식별 정보로 IP 어드레스를 보다 효율적으로 검색할 수 있게 된다.
바람직하게는 중계 서버(300)는 허가된 사용자 여부를 판단하는 인증부가 구비되어, 사용자 인증 결과에 따라 상기 사용자 단말기로 상기 IP 어드레스 정보를 제공할 수도 있다.
사용자 단말기(100)는 기본적으로 네트워크(200)에 접속가능한 통신 기능을 보유한 단말기로서, PC나 서버 등의 고정형 장치일 수도 있고 또는 휴대 가능한 노트북, PDA, 스마트폰, 테블릿 등의 이동형 장치일 수도 있다. 특히 본 발명에서는 웹 서버 형태로 통합개발환경(IED)이 제공될 수 있으므로 사용자는 시간과 공간적인 제약없이 이동형 장치를 이용하여 언제 어디서나 임베디드 소프트웨어의 개발이 가능하게 된다.
본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템의 주요 구성에 대하여 그 실시예를 통해 좀 더 자세히 살펴보자면, 도 4는 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템에서 IoT 모듈에 대한 일실시예의 구성도를 도시한다.
IoT 모듈(400)은 기본적으로 통신부(410), 저장부(420), 중앙처리부(430) 및 인터페이스(440)를 포함하며, IoT 디바이스(500)를 지원하는 기능들에 따라 다양한 기능 수단이 추가적으로 구성될 수 있다.
통신부(410)는 IP 어드레스 할당을 요청하여 부여된 IP 어드레스로 네트워크에 접속하는데, IP 어드레스를 부여받고 네트워크(200)에 접속하는 구성은 공지된 다양한 통신방식에 따라 구성될 수 있으며, 가령 와이파이 방식을 적용하는 경우에 억세스 포인트(AP)로부터 IP 어드레스를 할당받고 할당된 IP 어드레스로 네트워크(200)에 편제될 수 있다. IoT 모듈(400) 상에 전원이 인가되면 통신부(410)는 억세스 포인트(AP)에 IP 어드레스 할당을 요청하여 IP 어드레스를 부여받게 된다.
그리고 통신부(410)는 IoT 모듈(400)에 대한 IP 어드레스를 중계 서버(300)로 전송하는데, 바람직하게는 IoT 모듈(400)마다 시리어 번호 등의 고유 식별 정보가 부여되어 있으며 통신부(410)는 부여된 IP 어드레스 정보와 함께 IoT 모듈(400)의 식별 정보를 중계 서버(300)로 전송한다.
저장부(420)는 통합개발환경 UI를 저장하고, 상기 통합개발환경 UI를 이용하여 제작된 임베디드 소프트웨어의 소스코드와 실행파일을 저장하며, 상황에 따라서는 IoT 디바이스(500)에 대한 디폴트 설정값들이나 다양한 기능 수행 파일들이 저장될 수도 있다. 일례로서, 상기 통합개발환경 UI가 컴파일 방식으로 운영되는 경우, 상기 저장부(420)에는 소스코드와 컴파일된 실행파일이 저장될 수 있으며, 상기 통합개발환경 UI가 인터프리터 방식으로 운영되는 경우, 상기 저장부(420)에는 소스코드만이 저장될 수 있다. 컴파일 방식이나 인터프리터 방식은 사용자가 임베디드 소프트웨어의 개발을 위해 사용하는 프로그래밍 언어에 따라 선택될 수 있을 것이다.
중앙 처리부(430)는 IoT 모듈(400)의 각 구성들을 전체적으로 제어하며 상기 통합개발환경 UI를 운영하여 사용자의 임베디드 소프트웨어 개발을 지원하는데, 이때 사용자가 사용하는 프로그래밍 언어에 따라 컴파일 방식으로 상기 통합개발환경 UI가 제공될 수도 있고 인터프리터 방식으로 상기 통합개발환경 UI가 제공될 수 있다. 만약 컴파일 방식으로 상기 통합개발환경 UI가 제공되는 경우에 중앙 처리부(430)는 소스코드 전체를 컴파일하고 컴파일된 실행파일을 구동시킬 수 있으며, 인터프리터 방식으로 상기 통합개발환경 UI가 제공되는 경우에 중앙 처리부(430)는 소스코드를 순차적인 블록단위로 해석하여 해석된 부분을 실행시킬 수도 있다.
상기 도 4에 도시된 실시예에서는 중앙 처리부(430)가 IoT 모듈(400) 상에 설치된 것으로 도시되어 있으나 상황에 따라서는 IoT 모듈(400) 자체에는 중앙 처리부가 내장되지 않고 IoT 모듈(400)이 IoT 디바이스(500)에 장착된 상태에서 IoT 디바이스(500)에 내장된 중앙 처리부를 이용할 수도 있다.
더 나아가서 IoT 모듈(400)의 통신부(410)가 IoT 디바이스(500)로 연결되어 IoT 디바이스(500)에 내장된 중앙 처리부를 이용하거나 또 다른 하드웨어 리소스로 연결할 수도 있다.
인터페이스(440)는 IoT 디바이스(500)와 데이터 송수신을 위한 데이터 연결 라인으로서, IoT 모듈(400) 상의 실행파일 구동에 따라 IoT 디바이스(500)의 특정 기능 수행을 위한 제어신호를 전송하며, 상황에 따라서는 IoT 디바이스(500)로부터 실행파일 구동에 따른 IoT 디바이스(500)의 수행 상태 정보를 전송받을 수도 있다.
바람직하게는 상기 도 4에 도시되어 있지는 않으나 IoT 모듈(400)에는 허가된 사용자 여부를 판단하여 접속 허가를 결정하는 인증부가 구비될 수도 있다. 여기서 허가된 사용자 여부의 판단은 개인별 코드를 입력하게 하거나 비밀 번호를 입력하는 등으로 구현될 수 있으며 이외에도 인증과 관련된 다양한 방식이 적용될 수 있다.
나아가서 IoT 모듈(400)이 인터넷 네트워크 망으로 사용자 단말기(100)와 연결되는 경우 IoT 모듈(400)은 통합개발환경 UI를 웹서버 형태로 제공할 수 있으며 사용자는 사용자 단말기(100)에 탑재된 웹 브라우저를 통해 IoT 모듈(400)에서 운영하는 통합개발환경 UI를 이용할 수 있다.
바람직하게는 IoT 모듈(400)은 통합개발환경 UI를 단일 그래픽 유저 인터페이스(GUI)로 제공할 수도 있는데, 가령 도 5에 도시된 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템에서 제공되는 단일 그래픽 유저 인터페이스(GUI)의 구성도를 참조하면, 상기 도 5의 (a)는 컴파일 방식의 통합개발환경을 지원하는 GUI의 일례로서, 통합개발환경(IDE) GUI(450)는 임베디드 소프트웨어의 소스 코드 편집을 위한 에디터(Editor)(451), 소스 코드를 컴파일하는 컴파일러(Compiler)(452), 컴파일된 상기 소스 코드에 대한 실행 파일을 생성하는 링커(Linker)(453) 포함하여 이들 구성을 통합한 GUI로 제공될 수 있다. 또한 필요에 따라서는 통합개발환경(IDE) GUI(450)가 임베디드 소프트웨어를 디버깅하는 디버거(Debugger)나 임베디드 소프트웨어의 설정, 빌드 및 루트파일 설치 기능을 수행하는 빌더(Builder) 등을 더 포함할 수도 있다.
그리고 상기 도 5의 (b)는 인터프리터 방식의 통합개발환경을 지원하는 GUI의 일례로서, 통합개발환경(IDE) GUI(460)는 임베디드 소프트웨어의 소스 코드 편집을 위한 에디터(Editor)(461)와 소스 코드를 순차적인 블록단위로 해석하고 해석된 부분을 실행하는 인터프리터(Interpreter)(462)를 포함하여 이를 통합한 GUI로 제공될 수 있다, 또한 필요에 따라서는 통합개발환경(IDE) GUI(460)가 임베디드 소프트웨어를 디버깅하는 디버거(Debugger)나 임베디드 소프트웨어의 설정, 빌드 및 루트파일 설치 기능을 수행하는 빌더(Builder) 등을 더 포함할 수도 있다.
이외에도 개발환경을 보다 쉽고 효율적으로 운영할 수 있는 다양한 도구들이 통합되어 제공될 수 있다.
이와 같은 본 발명에 따른 시스템 구성을 통해 사용자 단말기(100)는 중계 서버(300)를 통해 특정 IoT 모듈(400)에 대한 IP 어드레스 정보를 제공받아 네트워크(200) 상으로 해당 IoT 모듈(400)에 접속하며, IoT 모듈(400)은 탑재된 통합개발환경(IED) UI를 운영하여 자신의 IP 어드레스로 접속한 사용자 단말기(100)에게 임베디드 소프트웨어 개발 환경을 제공한다.
또한, 본 발명에서는 앞서 살펴본 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템을 이용하여 IoT 디바이스의 임베디드 소프트웨어 개발 환경을 제공하는 방법을 제시하는데, 이와 관련하여 도 6은 본 발명에 따른 IoT 디바이스의 임베디드 소프트웨어 개발 환경 제공 방법에 대한 일실시예의 흐름도를 도시한다.
먼저, 상기 도 6에 도시되지 않았으나 IoT 모듈(400)은 네트워크에 편제되기 위한 IP 어드레스를 할당받는데, 가령 와이파이 등의 통신 방식을 이용하는 경우에 IoT 모듈(400)은 억세스 포인트(AP)에 IP 어드레스 할당을 요청하여 억세스 포인트(AP)로부터 IP 어드레스를 부여받는다.
그리고 IoT 모듈(400)은 부여받은 IP 어드레스 정보를 중계 서버(300)로 전송(S10)하는데, IP 어드레스 정보의 전송은 네트워크(200) 망을 통해 이루어질 수 있다. 바람직하게는 IoT 모듈(400)은 중계 서버(300)에 부여받은 IP 어드레스 정보와 자신의 고유 식별 정보를 함께 전송할 수 있다.
중계 서버(300)는 IoT 모듈(400)로부터 전송된 IP 어드레스 정보를 저장(S50)하는데, IoT 모듈(400)로부터 고유 식별 정보가 함께 전송되는 경우에 고유 식별 정보에 IP 어드레스 정보를 매칭시켜서 저장할 수 있다. 가령 IoT 모듈(400)이 다수 존재하는 경우에 중계 서버(300)는 고유 식별 정보에 IP 어드레스 정보를 매칭시켜서 저장함으로써 특정 IoT 모듈(400)에 대한 IP 어드레스 정보를 식별할 수 있게 된다.
이와 같이 중계 서버(300)가 IoT 모듈(400)의 IP 어드레스 정보를 보유한 상태에서, 사용자가 IoT 모듈(400) 상의 통합개발환경을 이용하고자 하는 경우, 사용자 단말기(100)로 중계 서버(300)에 해당 IoT 모듈(400)에 대한 IP 어드레스 정보를 요청(S110)한다. 이때 사용자는 이용하고자 하는 IoT 모듈(400)의 식별 정보를 확인하여 식별 정보에 대응되는 IP 어드레스 정보를 중계 서버(300)에 요청할 수 있다.
중계 서버(300)는 사용자 단말기(100)로부터의 IoT 모듈(400)에 대한 IP 어드레스 정보 요청에 따라 해당 IoT 모듈(400)에 부여된 IP 어드레스 정보를 추출(S130)하여 사용자 단말기(100)로 제공(S150)한다. 여기서 중계 서버(300)는 사용자 단말기(100)로부터 전송된 IoT 모듈(400)의 식별 정보를 기초로 저장된 다수의 IP 어드레스 정보 중 해당 식별 정보에 매칭된 IP 어드레스 정보를 검색하여 추출할 수 있다.
상기 도 6에 도시되어 있지는 않으나 중계 서버(300)가 사용자 인증 과정을 수행할 수도 있는데, 가령 사용자 단말기(100)에 해당 IoT 모듈(400)에 부여된 IP 어드레스 정보를 제공하기 이전에 사용자에 대한 인증을 수행할 수 있으며, 인증 과정은 간단하게는 비밀 번호를 입력하는 과정이 수행될 수도 있고 또는 개인 식별 코드를 입력하는 과정이 수행될 수도 있으며, 나아가서 공인 인증서 등으로 개인 인증 서명을 확인할 수도 있다.
사용자는 IoT 모듈(400)에 대한 IP 어드레스 정보를 획득하면, 사용자 단말기(100)로 네트워크(200) 상의 IP 어드레스에 접속(S210)하여 IoT 모듈(400)에 연결될 수 있다.
그리고 사용자는 사용자 단말기(100)로 IoT 모듈(400)에서 통합개발환경(IED) UI의 운영(S230)을 이용하여 임베디드 소프트웨어를 개발(S220)하는데, 여기서 통합개발환경 UI는 사용자의 편리성과 효율성을 위해 단일 그래픽 유저 인터페이스(GUI)로 제공될 수 있으며, 그에 대한 내용은 앞서 실시예를 통해 살펴보았으므로 자세한 설명은 생략하기로 한다.
바람직하게는 사용자 단말기(100)가 인터넷 네트워크(200)를 통해 IoT 모듈(400)에 접속하는 경우에 IoT 모듈(400)은 웹 서버 형태로 통합개발환경을 제공할 수 있으며, 사용자는 사용자 단말기(100)에 탑재된 웹 브라우저로 IoT 모듈(400)에서 운영하는 웹 서버 형태의 통합개발환경을 이용할 수 있다.
또한 상기 도 6에 도시되지 않았으나, 보안성을 강화하기 위해서 사용자 단말기(100)가 IP 어드레스로 접속을 시도하는 경우에 IoT 모듈(400)은 사용자 단말기(100)에 대한 인증 과정을 수행할 수도 있다. 인증 과정은 간단하게는 기설정된 비밀 번호를 입력받을 수도 있고 또는 개인별로 부여된 식별 코드를 입력받을 수도 있다.
임베디드 소프트웨어의 개발 과정으로서 소스 코드 편집과 컴파일 방식 또는 인터프리터 방식으로 소스 코드의 해석과 실행, 디버깅 등 일련된 프로그래밍과 실행과정은 일반적으로 공지된 사항으로서, 본 발명의 주된 특징이 아니므로 자세한 설명은 생략한다.
임베디드 소프트웨어의 실행 파일이 생성되면, IoT 모듈(400) 상에서 상기 실행 파일을 실행시키는데, 이때 IoT 모듈(400)은 IoT 디바이스(500) 내부에 장착되거나 또는 IoT 디바이스(500)의 외부에서 통신포트로 연결되어 데이터 송수신을 위한 데이터 연결 라인이 형성된 상태이며, IoT 모듈(400) 상에서 임베디드 소프트웨어의 실행 파일 구동(S240)에 따라 IoT 모듈(400)로부터 그 제어 신호가 IoT 디바이스(500)로 전송(S250)되어 IoT 디바이스(500)의 특정 기능이 수행(S260)된다.
나아가서 사용자는 IoT 디바이스(500)의 특정 기능 수행을 모니터링하여 그 결과에 따라 바로 사용자 단말기(100)로 IoT 모듈(400) 상의 통합개발환경을 통해 해당 임베디드 소프트웨어의 수정이나 보완이 가능하다.
이상에서 살펴본 바와 같이 본 발명에 의하면 임베디드 소프트웨어 개발을 위한 시스템의 물리적 인터페이스 구조와 각종 OS 환경에 익숙하지 않은 초보 개발자들도 손쉽게 임베디드 소프웨어의 개발이 가능하게 되며, 특히 IoT 디바이스에 장착되는 IoT 모듈 상에서 통합개발환경을 제공함으로써 기존 크로스 개발 및 웹서버 개발 환경과는 다르게 타겟 시스템 상에서 직접 개발 작업이 이루어지는 형태가 되므로 크로스 개발에 따른 타겟 임베디드 시스템과 호스트 PC간의 전문적인 지식을 필요로 하는 인터페이스 설정이 해소되며 웹 서버 통합개발환경에서 개발의 경우 다수의 개발자들을 위한 고성능 서버 자원의 비용을 절감 할 수 있다.
나아가서 일반적으로 통합개발환경을 제공하는 단일 웹 서버 형태의 경우에 해킹 등에 노출될 가능성이 높아 중요한 지적자산인 소프트웨어가 악의적으로 유출될 가능성이 있지만, 본 발명에서는 관련 개발자들만 접속하는 별도의 개별적인 IP 어드레스가 각각의 IoT 모듈에 부여되므로 상대적으로 해킹 등에 노출될 가능성이 적어지며, 중계 서버 또는 각각의 IoT 모듈마다 접속하는 사용자 단말기에 대한 인증 과정을 수행함으로써 더욱 보안성을 강화시킬 수 있다.
한걸음 더 나아가서 임베디드 소프트웨어를 개발하여 타겟 임베디드 시스템에서 실행 상태를 모니터링할 때 문제가 발생되는 부분의 보완을 위해서 크로스 개발 환경에서는 호스트에서 코딩 및 일련의 빌드 과정을 거친 후 보완된 소프트웨어를 시리얼 통신 혹은 네트워크등을 통해 다시 타겟 임베디드 시스템으로 다운로드를 실시한 후에 실행해야 하며 웹서버 개발 환경에서는 웹 서버상에서 코딩 및 일련의 빌드 작업을 한 후 보완된 소프트웨어를 타겟 임베디드 시스템에 다운로드해서 실행시키는 번거러움이 있으나 본 발명에서는 통합개발환경을 제공하는 IoT 모듈이 타겟 시스템인 IoT 디바이스에 장착된 상태에서 모니터링하여 문제 발견시에 바로 IoT 모듈의 통합개발환경으로 수정 및 일련의 빌드작업, 보완이 가능하므로 개발의 효율성을 더욱 증대시킬 수 있게 된다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명에 기재된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상이 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의해서 해석되어야하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10, 100 : 사용자 단말기,
30 : 타겟 시스템, 50 : 웹 서버,
200 : 네트워크, 300 : 중계서버,
400 : IoT 모듈,
410 : 통신부, 420 : 저장부,
440 : 중앙처리부, 440 : 인터페이스,
500 : IoT 디바이스.

Claims (16)

  1. 네트워크 접속을 위한 IP 어드레스가 부여되고, 통합개발환경(IDE; Integrated Development Environment) UI(User Interface)가 탑재되어 IoT 디바이스의 임베디드 소프트웨어에 대한 개발 환경을 제공하기 위해 상기 IP 어드레스로 접속한 사용자 단말기에 상기 통합개발환경 UI를 제공하는 IoT 모듈; 및
    상기 IoT 모듈에 부여된 IP 어드레스를 저장하며, 상기 사용자 단말기로 상기 IP 어드레스 정보를 제공하는 중계 서버를 포함하며,
    상기 IoT 모듈은 IoT 디바이스에 장착되어, 상기 IoT 모듈 상의 상기 임베디드 소프트웨어로 상기 IoT 디바이스의 특정 기능이 수행되는 것을 것을 특징으로 하는 IoT 디바이스에서 특정 기능 수행을 위한 임베디드 소프트웨어 개발 환경 시스템.
  2. 제 1 항에 있어서,
    상기 IoT 모듈은,
    IP 어드레스 할당을 요청하여 부여된 IP 어드레스로 네트워크에 접속하는 통신부;
    통합개발환경 UI를 저장하고, 상기 통합개발환경 UI를 이용하여 제작된 임베디드 소프트웨어의 소스코드와 컴파일된 실행파일을 저장하는 저장부;
    상기 통합개발환경 UI를 운영하여 상기 사용자 단말기에 의해 제작되는 임베디드 소프트웨어의 소스코드 전체를 컴파일하고, 컴파일된 실행파일을 구동시키거나 소스코드를 블록단위로 해석하고 실행시키는 중앙처리부; 및
    상기 IoT 디바이스와 연결되며, 상기 실행파일의 구동에 따른 상기 IoT 디바이스의 특정 기능 수행을 위한 제어신호를 전송하는 인터페이스를 포함하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 시스템.
  3. 제 1 항에 있어서,
    상기 IoT 모듈은 개별 식별정보가 부여되며,
    상기 중계 서버는, IoT 모듈의 개별 식별정보에 대응시켜 IP 어드레스를 저장하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 시스템.
  4. 제 1 항에 있어서,
    상기 네트워크는 인터넷 망을 포함하며,
    상기 IoT 모듈은, 상기 통합개발환경 UI를 웹서버 형태로 제공하고,
    상기 사용자 단말기에는, 상기 IoT 모듈의 상기 통합개발환경 UI의 이용을 지원하는 웹 브라우저가 탑재된 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 시스템.
  5. 제 1 항에 있어서,
    상기 통합개발환경 UI는,
    임베디드 소프트웨어의 소스 코드 편집을 위한 에디터;
    상기 소스 코드를 컴파일하는 컴파일러; 및
    컴파일된 상기 소스 코드에 대한 실행 파일을 생성하는 링커를 통합한 단일 그래픽 유저 인터페이스(GUI)를 포함하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 시스템.
  6. 제 1 항에 있어서,
    상기 통합개발환경 UI는,
    임베디드 소프트웨어의 소스 코드 편집을 위한 에디터; 및
    상기 소스 코드를 블록단위로 해석하여 실행시키는 인터프리터를 통합한 단일 그래픽 유저 인터페이스(GUI)를 포함하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 시스템.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기 단일 그래픽 유저 인터페이스(GUI)는,
    상기 임베디드 소프트웨어를 디버깅하는 디버거; 및
    상기 임베디드 소프트웨어의 설정, 빌드 및 루트파일 설치 기능을 수행하는 빌더를 더 포함하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 시스템.
  8. 제 2 항에 있어서,
    상기 IoT 모듈은,
    허가된 사용자 여부를 판단하여 접속 허가를 결정하는 인증부를 더 포함하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 시스템.
  9. 제 1 항에 있어서,
    상기 중계 서버는,
    허가된 사용자 여부를 판단하는 인증부를 포함하며,
    사용자 인증 결과에 따라 상기 사용자 단말기로 상기 IP 어드레스 정보를 제공하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 시스템.
  10. 제 1 항 내지 제 9 항 중 어느 한 항의 임베디드 소프트웨어 개발 환경 시스템을 이용하여,
    중계 서버가 IoT 디바이스에 장착된 또는 장착될 IoT 모듈로부터 IP 어드레스 정보를 전송받아 저장하는 IP 정보 보유 단계;
    상기 중계 서버가 사용자 단말기로부터 IoT 모듈에 대한 IP 어드레스 정보를 요청받고 상기 IoT 모듈에 대한 IP 어드레스 정보를 상기 사용자 단말기에 제공하는 IP 어드레스 정보 제공 단계; 및
    상기 IoT 모듈이 상기 IP 어드레스로 접속한 상기 사용자 단말기에 임베디드 소프트웨어의 개발 환경을 위한 통합개발환경 UI를 제공하는 통합개발환경 UI 제공 단계를 포함하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 제공 방법.
  11. 제 10 항에 있어서,
    상기 IP 정보 보유 단계는,
    상기 중계 서버가 상기 IoT 모듈로부터 식별 정보와 IP 어드레스 정보를 전송받고 상기 식별 정보에 상기 IP 어드레스 정보를 대응시켜 저장하며,
    상기 IP 어드레스 정보 제공 단계는,
    상기 중계 서버가 상기 사용자 단말기로부터 전송된 IoT 모듈의 식별정보에 대응되는 IP 어드레스를 추출하여 상기 사용자 단말기에 제공하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 제공 방법.
  12. 제 10 항에 있어서,
    상기 통합개발환경 UI 제공 단계는,
    상기 사용자 단말기에 임베디드 소프트웨어의 소스 코드 편집을 위한 에디터;
    소스 코드의 컴파일하는 컴파일러; 및
    컴파일된 상기 소스 코드에 대한 실행 파일을 생성하는 링커를 통합한 단일 그래픽 유저 인터페이스(GUI)로 제공하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 제공 방법.
  13. 제 10 항에 있어서,
    상기 통합개발환경 UI 제공 단계는,
    상기 사용자 단말기에 임베디드 소프트웨어의 소스 코드 편집을 위한 에디터; 및
    상기 소스 코드를 블록단위로 해석하여 실행시키는 인터프리터를 통합한 단일 그래픽 유저 인터페이스(GUI)로 제공하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 제공 방법.
  14. 제 10 항에 있어서,
    IoT 디바이스에 장착된 상기 IoT 모듈에서 상기 임베디드 소프트웨어의 실행에 따라 상기 IoT 디바이스의 특정 기능이 수행되는 단계를 더 포함하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 제공 방법.
  15. 제 10 항에 있어서,
    상기 통합개발환경 UI 제공 단계는,
    상기 IoT 모듈이 상기 IP 어드레스로 접속한 상기 사용자 단말기에 대한 인증을 수행하고 그 결과에 따라 임베디드 소프트웨어의 개발 환경을 위한 통합개발환경 UI를 제공하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 제공 방법.
  16. 제 10 항에 있어서,
    상기 IP 어드레스 정보 제공 단계는,
    상기 사용자 단말기로부터 IoT 모듈에 대한 IP 어드레스 정보 요청시 사용자에 대한 인증을 수행하고 그 결과에 다라 상기 IoT 모듈에 대한 IP 어드레스 정보를 상기 사용자 단말기에 제공하는 것을 특징으로 하는 임베디드 소프트웨어 개발 환경 제공 방법.
KR1020150009350A 2015-01-20 2015-01-20 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법 KR101674515B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150009350A KR101674515B1 (ko) 2015-01-20 2015-01-20 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150009350A KR101674515B1 (ko) 2015-01-20 2015-01-20 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법

Publications (2)

Publication Number Publication Date
KR20160089747A true KR20160089747A (ko) 2016-07-28
KR101674515B1 KR101674515B1 (ko) 2016-11-09

Family

ID=56681673

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150009350A KR101674515B1 (ko) 2015-01-20 2015-01-20 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법

Country Status (1)

Country Link
KR (1) KR101674515B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180131819A (ko) * 2017-06-01 2018-12-11 임정수 디바이스의 실시간 프로그램 개발 장치와 실시간 프로그래밍 방법
CN109521913A (zh) * 2017-09-18 2019-03-26 西安富立叶微电子有限责任公司 一种企业级用户终端操作系统
KR102095863B1 (ko) * 2018-10-31 2020-04-02 (주)아이엠티 범용api와 gui기반의 통합개발환경(ide)을 제공하는 실시간 시뮬레이션 시스템 및 그 제어방법
CN111046021A (zh) * 2019-11-30 2020-04-21 许昌许继软件技术有限公司 一种物联网型配变终端应用开发平台
WO2020138747A1 (ko) * 2018-12-24 2020-07-02 전자부품연구원 초소형의 일회용 IoT 서비스 인프라 운용 방법
KR102214060B1 (ko) * 2019-08-20 2021-02-09 나모웹비즈주식회사 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법
KR20220058246A (ko) * 2020-10-30 2022-05-09 나모웹비즈주식회사 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102456267B1 (ko) * 2018-01-22 2022-10-20 컴즈 주식회사 IoT 장치에 대한 신뢰성 검증 시스템
US11042398B2 (en) 2018-07-09 2021-06-22 Samsung Electronics Co., Ltd. System and method for guest operating system using containers
KR101993858B1 (ko) 2018-10-05 2019-06-27 주식회사 엔터핀 프로그램 개발 시스템 및 이를 이용한 개발 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030000794A (ko) * 2001-06-27 2003-01-06 (주)바이탈즈시스템 웹 기반 인서킷 에뮬레이터, 이를 이용한 타겟 임베디드시스템의 웹 기반 개발 시스템 및 방법
KR20090076700A (ko) * 2008-01-09 2009-07-13 주식회사 대우일렉트로닉스 임베디드 시스템 개발환경을 제공하는 시스템온칩
KR20140008667A (ko) * 2012-07-11 2014-01-22 전자부품연구원 사물 인터넷 서비스 제공방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030000794A (ko) * 2001-06-27 2003-01-06 (주)바이탈즈시스템 웹 기반 인서킷 에뮬레이터, 이를 이용한 타겟 임베디드시스템의 웹 기반 개발 시스템 및 방법
KR20090076700A (ko) * 2008-01-09 2009-07-13 주식회사 대우일렉트로닉스 임베디드 시스템 개발환경을 제공하는 시스템온칩
KR20140008667A (ko) * 2012-07-11 2014-01-22 전자부품연구원 사물 인터넷 서비스 제공방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180131819A (ko) * 2017-06-01 2018-12-11 임정수 디바이스의 실시간 프로그램 개발 장치와 실시간 프로그래밍 방법
CN109521913A (zh) * 2017-09-18 2019-03-26 西安富立叶微电子有限责任公司 一种企业级用户终端操作系统
CN109521913B (zh) * 2017-09-18 2021-03-12 西安富立叶微电子有限责任公司 一种企业级用户终端操作系统
KR102095863B1 (ko) * 2018-10-31 2020-04-02 (주)아이엠티 범용api와 gui기반의 통합개발환경(ide)을 제공하는 실시간 시뮬레이션 시스템 및 그 제어방법
WO2020138747A1 (ko) * 2018-12-24 2020-07-02 전자부품연구원 초소형의 일회용 IoT 서비스 인프라 운용 방법
KR20200084417A (ko) * 2018-12-24 2020-07-13 전자부품연구원 초소형 Disposable IoT 서비스 인프라
KR102214060B1 (ko) * 2019-08-20 2021-02-09 나모웹비즈주식회사 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법
WO2021033861A1 (ko) * 2019-08-20 2021-02-25 나모웹비즈주식회사 Iot 서비스 인프라와의 연동을 지원하는 초소형 iot 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법
CN111046021A (zh) * 2019-11-30 2020-04-21 许昌许继软件技术有限公司 一种物联网型配变终端应用开发平台
CN111046021B (zh) * 2019-11-30 2023-11-10 许昌许继软件技术有限公司 一种物联网型配变终端应用开发平台
KR20220058246A (ko) * 2020-10-30 2022-05-09 나모웹비즈주식회사 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버

Also Published As

Publication number Publication date
KR101674515B1 (ko) 2016-11-09

Similar Documents

Publication Publication Date Title
KR101674515B1 (ko) IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법
EP3410759B1 (en) Method and access point for accessing network by internet-of-things device
US9967343B2 (en) Method for providing internet of things service
KR101571880B1 (ko) 전자장치와 가상머신 제공장치 및 이를 이용한 가상머신 서비스 이용 방법
US11316683B2 (en) Systems and methods for providing IoT security service using hardware security module
CN106325847B (zh) 基于iOS平台获取应用程序功能的方法和装置
KR20140048660A (ko) IoT 브라우징 방법 및 장치
WO2013075412A1 (zh) 移动终端的安全控制方法及装置
CN102254113A (zh) 一种检测和拦截移动终端恶意代码的方法及系统
CN113615141A (zh) 账号关联方法、装置、系统、服务器以及存储介质
CN104572564A (zh) 一种实现android移动设备与USB OTG主机通讯的方法
CN113391796B (zh) 一种集成开发环境的构建方法、装置、设备及介质
CN100583038C (zh) 用于启动与电子设备的接口的方法、系统和装置
US9483287B2 (en) Communication infrastructure for virtual machines
CN103324537A (zh) 一种资源共享方法及装置
JP2020061131A (ja) メッセンジャーボットを利用してIoT機器を制御するための方法、システム、およびプログラム
KR101230917B1 (ko) 확장기능 추가가 용이한 m2m 장치
CN109818972B (zh) 一种工业控制系统信息安全管理方法、装置及电子设备
RU2600538C2 (ru) Запуск приложения на основе интерфейса передачи сообщения (mpi) в гетерогенной среде
CN104010045A (zh) 基于云平台的移动节点执行任务的方法
Bytes et al. Towards semantic sensitive feature profiling of IoT devices
CN112162873B (zh) 一种远程调用方法、电子装置和存储介质
US8880701B2 (en) System and method for supporting of network service
CN113448607B (zh) 用于固件升级的方法、装置和智能家电
CN109933990B (zh) 基于多模式匹配的安全漏洞发现方法、装置及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant