KR102188562B1 - 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법 - Google Patents

시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법 Download PDF

Info

Publication number
KR102188562B1
KR102188562B1 KR1020190023962A KR20190023962A KR102188562B1 KR 102188562 B1 KR102188562 B1 KR 102188562B1 KR 1020190023962 A KR1020190023962 A KR 1020190023962A KR 20190023962 A KR20190023962 A KR 20190023962A KR 102188562 B1 KR102188562 B1 KR 102188562B1
Authority
KR
South Korea
Prior art keywords
block
rule
event
interest
eca
Prior art date
Application number
KR1020190023962A
Other languages
English (en)
Other versions
KR20200105175A (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 KR1020190023962A priority Critical patent/KR102188562B1/ko
Publication of KR20200105175A publication Critical patent/KR20200105175A/ko
Application granted granted Critical
Publication of KR102188562B1 publication Critical patent/KR102188562B1/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
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 개시한다. 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구는 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 디바이스테이블; 상기 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 상기 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공하는 툴박스; 및 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 워크스페이스를 포함한다.

Description

시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법{IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD}
본 발명은 시각 블록 언어에 기반하는 IoT 응용 프로그램 개발 도구 및 그 동작 방법에 관한 것으로, 보다 상세하게는 ECA(Event-Ccondition-Action)에 기반한 블록 프로그래밍을 통해 IoT 응용 프로그램을 개발하는 개발 도구 및 그 동작 방법에 관한 것이다.
IoT(internet of things, 사물인터넷)는 세상의 모든 사물들이 네트워크로 연결되어 서로 소통하는 것을 말한다. 이는 인터넷 등장 이후 가장 획기적인 변화 중 하나로 평가되며, 사물인터넷은 지능화되어 스마트 자동차, 스마트 홈, 스마트 시티와 같은 스마트 세계를 만들어 낼 것으로 예측되고 있다.
한편, 스마트 홈, 스마트 디바이스, 오토메이션 기술 등의 발전과 더불어 IoT 응용 프로그램의 개발에 관한 관심이 나날이 증가하고 있다. IoT 응용 프로그램은 일반 사용자들이 그들의 집을 스마트폰을 통해 원격으로 제어하는 것을 가능하게 할 뿐만 아니라, 특정한 일상적인 작업들을 자동화하는 것을 가능하게 한다.
그러나, 일반 사용자들이 이와 같은 IoT 응용 프로그램의 개발에 쉽게 접근하기 어려운 것이 현실이다. 특히, 프로그래밍에 익숙하지 않은 일반 사용자는 텍스트 기반의 프로그래밍 언어를 이용하는 종래의 개발 도구를 통해, IoT 응용 프로그램을 직접 개발하는 것이 사실상 어려웠다.
따라서, 일반 사용자들이 각자의 생활 습관에 맞는 IoT 응용 프로그램을 손쉽게 제작할 수 있는 개발 도구 및 그 방법에 관한 필요성이 대두되고 있다.
관련 선행기술로는 한국공개특허 제10-2018-0053869호(발명의 명칭: 클라우드 기반 에너지 융합 개발형 사물인터넷 플랫폼 서비스 개발 시스템, 공개일자: 2018년 5월 24일)가 있다.
본 발명은 시각 블록 언어 기반의 ECA룰을 이용하여 일반 사용자도 간단하게 자신의 생활 습관에 맞는 IoT 응용 프로그램을 개발할 수 있는 개발 도구 및 그 동작 방법을 제공하고자 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위해, 본 발명에서 제공하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구는 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 디바이스테이블; 상기 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 상기 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공하는 툴박스; 및 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 워크스페이스를 포함한다.
바람직하게는, 상기 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST(abstract syntax tree)를 생성하는 AST생성부; 및 상기 AST에 기반하여 상기 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성하는 코드생성부를 더 포함할 수 있다.
바람직하게는, 상기 생성된 코드는 클라우드 서버에서 실행되며, 상기 클라우드 서버가 상기 관심디바이스와 연결된 허브와 통신하여 상기 적어도 하나의 ECA규칙이 운용될 수 있다.
바람직하게는, 상기 워크스페이스는 상기 룰 블록, 상기 이벤트 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성하기 위한 것일 수 있다.
바람직하게는, 상기 워크스페이스에 상기 관심디바이스와 관련된 ECA규칙에 대응되는 상기 룰 블록이 배치되고, 상기 룰 블록에 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록이 연결됨으로써, 상기 적어도 하나의 ECA규칙이 생성될 수 있다.
바람직하게는, 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록은 상기 툴박스로부터 드래그앤드랍(drag and drop)을 통해 상기 워크스페이스로 이동될 수 있다.
또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법은 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 단계; 상기 관심디바이스와 관련된 ECA 기반의 규칙을 정의하기 위한 룰 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션 블록 및 상기 이벤트에 수반되는 작업에 관한 액션 블록을 제공하는 단계; 및 사용자로부터 선택된 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하는 단계를 포함한다.
바람직하게는, 상기 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST를 생성하는 단계; 및 상기 AST에 기반하여 상기 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 생성된 코드는 클라우드 서버에서 실행되며, 상기 클라우드 서버가 상기 관심디바이스와 연결된 허브와 통신하여 상기 적어도 하나의 ECA규칙이 운용될 수 있다.
바람직하게는, 상기 적어도 하나의 ECA규칙을 생성하는 단계는 상기 룰 블록, 상기 이벤트 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성할 수 있다.
본 발명의 일 실시예에 따른 IoT 응용 프로그램 개발 도구 및 그 동작 방법은 시각 블록 언어 기반의 ECA룰을 이용함으로써 일반 사용자도 간단하게 자신의 생활 습관에 맞는 IoT 응용 프로그램을 개발할 수 있도록 하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 나타내는 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 디바이스테이블을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 툴박스를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 워크스페이스를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 룰 블록과 이벤트 블록, 컨디션 블록 및 액션 블록의 연결 관계를 설명하기 위한 도면이다.
도 8 및 9는 본 발명의 일 실시예에 따른 AST 및 코드를 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구(100)는 디바이스테이블(110), 툴박스(120) 및 워크스페이스(130)를 포함한다.
디바이스테이블(110)은 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공한다.
여기서, 스마트 디바이스는 네트워크를 통해 연결되어, 다른 디바이스와 데이터를 주고 받을 수 있는 다양한 종류의 디바이스일 수 있다. 예컨대, IoT(사물인터넷) 기능이 부가된 조명 장치, 도어락 기기, 음악재생 기기, 냉난방 기기, 온도계 및 습도계 등의 센서 기기, 기타 가전기기 등이 해당할 수 있으나, 본 발명의 스마트 디바이스는 이에 한정되지 않는다.
한편, 복수의 스마트 디바이스의 목록은 사용자의 가정에 위치한 스마트 기기들의 목록일 수 있다. 이때, 목록은 리스트, 버튼, 체크박스리스트 등과 같은 다양한 형태로 제공될 수 있으며, 사용자는 그 목록을 통해 IoT 응용 프로그램에 이용할 적어도 하나의 스마트 디바이스인 관심디바이스를 선택할 수 있다.
예컨대, 도 4를 참조하면, 디바이스테이블(110)은 music player, presence sensor, light, lock 및 alarm에 관한 스마트 디바이스의 목록을 버튼의 형태로 제공할 수 있다.
툴박스(120)는 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 그 룰 블록에 연계되어 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 그 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 그 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공한다.
이때, ECA 기반의 규칙은 1) (when)어느 경우에, 2) (if)어떤 조건을 만족하면, 3) (then)어떤 작업을 수행할 지에 관한 규칙을 나타낼 수 있다. 또한, 하나의 ECA 기반 규칙에는 어떤 사건이 발생하였는지를 나타내는 적어도 하나의 이벤트가 포함되고, 그 적어도 하나의 이벤트가 발생한 환경에서 유효하기 위한 조건인 적어도 하나의 컨디션이 포함되고, 그 적어도 하나의 이벤트 발생시에 수행되는 적어도 하나의 액션이 포함될 수 있다.
여기서, 이벤트는 스마트 디바이스에서 발생한 사건을 나타낸다. 예를 들어, 자물쇠(lock)의 상태가 잠김상태(locked)에서 열림상태(unlocked)로 변경되거나, 시계 장치에서 오전 8시에 알람이 발생하는 경우일 수 있다. 또한, 컨디션은 스마트 디바이스의 상태 변화에 관한 부울 대수값(Boolean algebra)이 참(true)인지 거짓(false)인지를 나타낸다. 예를 들어, 1번 감지센서(presence sensor)에서 사람이 감지되었는지 여부, 1번 온도계의 온도(temperature)가 22도 이상인지 여부를 나타낼 수 있다. 또한, 액션은 수행되는 작업을 나타낸다. 예를 들어, 조명 장치를 켜고, 음악재생 기기에서 음악을 재생(play)하고, 예상치 않은 손님이 도착했다는 메시지를 사용자에게 전송하는 등의 작업일 수 있다.
한편, 하나의 ECA 기반 규칙은 하나의 룰 블록에 대응될 수 있다. 또한, 하나의 룰 블록에는 적어도 하나의 이벤트 블록, 적어도 하나의 컨디션 블록, 적어도 하나의 액션 블록이 포함될 수 있다.
예컨대, 도 5를 참조하면, 툴박스(120)는 사용자로부터 선택된 관심디바이스와 관련된 복수의 이벤트 블록, 복수의 컨디션 블록, 복수의 액션 블록을 제공할 수 있다.
보다 구체적으로, 디바이스테이블(110)을 통해서 music player, presence sensor, light, lock 및 alarm가 관심디바이스로 선택된 경우에, 툴박스(120)는 그 관심디바이스에 대한 복수의 이벤트 블록, 복수의 컨디션 블록, 복수의 액션 블록을 제공할 수 있다. 이때, 복수의 이벤트 블록, 복수의 컨디션 블록, 복수의 액션 블록은 그 관심디바이스 각각의 종류 및 특성에 따라 상이하게 구성된 블록들의 집합일 수 있다.
워크스페이스(130)는 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 공간을 제공한다.
예컨대, 도 6 및 7을 참조하면, 워크스페이스(130)에는 2개의 룰 블록(131, 132), 2개의 이벤트 블록(133, 134), 2개의 컨디션 블록(135, 136) 및 4개의 액션 블록(137, 138에 각각 2개)이 배치되어, 그 2개의 룰 블록 각각에 대응되는 2개의 ECA규칙을 생성할 수 있다.
다른 실시예에서는, 워크스페이스(130)는 룰 블록, 이벤트 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성하기 위한 공간을 제공할 수 있다.
즉, 워크스페이스(130)는 유효 조건이 존재하지 않는, 즉 언제나 유효한 EA(event-action) 기반의 EA규칙을 더 생성하기 위한 공간을 제공할 수 있다. 이와 같은 EA규칙은 특정한 이벤트가 발생하면, 무조건적으로 특정한 작업을 수행할 필요가 있는 경우에 이용될 수 있다.
이때, EA규칙에는 대응되는 룰 블록에는 적어도 하나의 이벤트 블록과 적어도 하나의 액션 블록이 포함될 수 있다.
또 다른 실시예에서는, 워크스페이스(130)에 관심디바이스와 관련된 ECA규칙에 대응되는 룰 블록이 배치되고, 그 룰 블록에 이벤트 블록, 컨디션 블록 및 액션 블록이 연결됨으로써, 적어도 하나의 ECA규칙이 생성될 수 있다.
즉, 도 6을 참조하면, ECA규칙에 대응되는 2개의 룰 블록(131, 132)이 우선적으로 배치되고, 그 룰 블록(131, 132) 각각에 이벤트 블록(133, 134), 컨디션 블록(135, 136) 및 액션 블록(137, 138)이 연결되어 ECA규칙이 생성될 수 있다.
한편, 이와 유사한 방법으로 EA규칙에 대응되는 룰 블록이 우선적으로 배치되고, 그 룰 블록에 이벤트 블록 및 액션 블록이 연결되어 EA규칙이 생성될 수 있다.
또 다른 실시예에서는, 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록은 툴박스(120)로부터 드래그앤드랍(drag and drop)을 통해 워크스페이스(130)로 이동될 수 있다.
한편, 툴박스(120)을 통해 제공되는 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록은 사용자에 의해 드래그앤드랍됨으로써, 워크스페이스(130)로 이동되어 ECA규칙이 생성될 수 있다.
이때, 룰 블록이 우선적으로 드래그앤드랍되어 워크스페이스(130)에 배치된 이후에, 이벤트 블록, 컨디션 블록 및 액션 블록이 그 룰 블록의 대응되는 각각의 위치에 드래그앤드랍되어 연결됨으로써, ECA규칙이 생성될 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 IoT 응용 프로그램 개발 도구는 시각 블록 언어 기반의 ECA룰을 이용하여 일반 사용자도 간단하게 자신의 생활 습관에 맞는 IoT 응용 프로그램을 개발할 수 있는 효과가 있다.
도 2는 본 발명의 다른 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 나타내는 블록도이다.
도 2를 참조하면, 본 발명의 다른 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구(100)는 디바이스테이블(110), 툴박스(120), 워크스페이스(130), AST생성부(140) 및 코드생성부(150)를 포함한다.
디바이스테이블(110)은 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공한다.
툴박스(120)는 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 그 룰 블록에 연계되어 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 그 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 그 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공한다.
워크스페이스(130)는 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 공간을 제공한다.
AST생성부(140)는 그 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST(abstract syntax tree)를 생성한다.
즉, AST생성부(140)는 워크스페이스(130)에서 생성된 적어도 하나의 ECA규칙에 대응되는 AST를 생성할 수 있다.
여기서, AST는 추상 구문 트리로서, 프로그래밍 언어로 작성된 소스 코드의 추상 구문 구조에 관한 트리를 의미할 수 있다. 한편, 도 8을 참조하면, 본 발명의 AST는 워크스페이스(130)를 루트 노드로 하여, 루트 노드의 하위에 룰 블록이 위치하고, 룰 블록의 하위에 이벤트 블록, 컨디션 블록 및 액션 블록이 위치하도록 구성될 수 있다.
코드생성부(150)는 AST에 기반하여 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성한다.
예컨대, 코드생성부(150)는 도 8의 AST를 분석하여 AST에 포함된 적어도 하나의 ECA규칙에 대응되는 도 9의 코드를 생성할 수 있다. 이때, 도 9의 코드는 IoT 응용 프로그램에 해당하는 코드이다.
다른 실시예에서는, 그 생성된 코드는 클라우드 서버(cloud server)에서 실행되며, 그 클라우드 서버가 관심디바이스와 연결된 허브와 통신하여 적어도 하나의 ECA규칙이 운용될 수 있다.
예컨대, 그 생성된 코드는 사용자가 어디서나 접근할 수 있는 클라우드 컴퓨팅(cloud computing) 환경을 이용하기 위하여, 클라우드 서버에서 실행될 수 있다. 또한, 그 클라우드 서버는 관심디바이스와 연결된 중앙 허브(central hub)와 인터넷으로 연결되어, 그 관심디바이스에 관한 적어도 하나의 ECA규칙이 준수되도록 운용할 수 있다.
이때, 사용자는 스마트폰, 태블릿PC등에 탑재된 어플리케이션을 통해 클라우드 서버에 접속하여, 클라우드 서버에서 실행되는 IoT 응용 프로그램 및 허브에 연결된 관심디바이스를 관리할 수 있음은 물론이다.
보다 구체적으로, 사용자는 관심디바이스에 포함된 적어도 하나의 스마트 디바이스에서 특정한 디바이스를 제외하거나 추가할 수 있으며, 특정한 ECA규칙을 추가하거나 삭제할 수 있다.
도 3은 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법을 나타내는 흐름도이다.
단계 S310에서는, IoT 응용 프로그램 개발 도구(100)가 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공한다.
단계 S320에서는, IoT 응용 프로그램 개발 도구(100)가 관심디바이스와 관련된 ECA 기반의 규칙을 정의하기 위한 룰 블록, 그 룰 블록에 연계되어 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트 블록, 그 이벤트가 발생한 환경의 유효 조건에 관한 컨디션 블록 및 그 이벤트에 수반되는 작업에 관한 액션 블록을 제공한다.
단계 S330에서는, IoT 응용 프로그램 개발 도구(100)가 사용자로부터 선택된 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성한다.
다른 실시예에서는, IoT 응용 프로그램 개발 도구(100)가 그 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST를 생성하고, 그 AST에 기반하여 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성할 수 있다.
또 다른 실시예에서는, 그 생성된 코드는 클라우드 서버에서 실행되며, 그 클라우드 서버가 관심디바이스와 연결된 허브와 통신하여 그 적어도 하나의 ECA규칙이 운용될 수 있다.
또 다른 실시예에서는, IoT 응용 프로그램 개발 도구(100)가 그 적어도 하나의 ECA규칙을 생성할 때, 룰 블록, 이벤트 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (10)

  1. 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 디바이스테이블;
    상기 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 상기 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공하는 툴박스;
    상기 툴박스에서 선택된 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 워크스페이스;
    상기 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST(abstract syntax tree)를 생성하는 AST생성부; 및
    상기 AST에 기반하여 상기 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성하는 코드생성부
    를 포함하고,
    상기 툴박스는 상기 복수의 스마트 디바이스의 목록에서 선택된 관심디바이스의 종류 및 특성에 따라 상이하게 구성된 룰 블록을 제공하고,
    상기 생성된 코드는 클라우드 서버에서 실행되며, 상기 클라우드 서버가 상기 관심디바이스와 연결된 허브와 통신하여 상기 적어도 하나의 ECA규칙이 운용되는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 워크스페이스는
    상기 룰 블록, 상기 이벤트 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성하기 위한 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구.
  5. 제1항에 있어서,
    상기 워크스페이스에 상기 관심디바이스와 관련된 ECA규칙에 대응되는 상기 룰 블록이 배치되고, 상기 룰 블록에 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록이 연결됨으로써, 상기 적어도 하나의 ECA규칙이 생성되는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구.
  6. 제5항에 있어서,
    상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록은
    상기 툴박스로부터 드래그앤드랍(drag and drop)을 통해 상기 워크스페이스로 이동되는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구.
  7. 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 단계;
    상기 관심디바이스와 관련된 ECA 기반의 규칙을 정의하기 위한 룰 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션 블록 및 상기 이벤트에 수반되는 작업에 관한 액션 블록을 제공하는 단계;
    사용자로부터 선택된 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하는 단계;
    상기 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST를 생성하는 단계; 및
    상기 AST에 기반하여 상기 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성하는 단계
    를 포함하고,
    상기 액션 블록을 제공하는 단계는,
    상기 복수의 스마트 디바이스의 목록에서 선택된 관심디바이스의 종류 및 특성에 따라 상이하게 구성된 룰 블록을 제공하고,
    상기 생성된 코드는
    클라우드 서버에서 실행되며, 상기 클라우드 서버가 상기 관심디바이스와 연결된 허브와 통신하여 상기 적어도 하나의 ECA규칙이 운용되는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법.
  8. 삭제
  9. 삭제
  10. 제7항에 있어서,
    상기 적어도 하나의 ECA규칙을 생성하는 단계는
    상기 룰 블록, 상기 이벤트 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성하는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법.
KR1020190023962A 2019-02-28 2019-02-28 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법 KR102188562B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190023962A KR102188562B1 (ko) 2019-02-28 2019-02-28 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190023962A KR102188562B1 (ko) 2019-02-28 2019-02-28 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20200105175A KR20200105175A (ko) 2020-09-07
KR102188562B1 true KR102188562B1 (ko) 2020-12-09

Family

ID=72472296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190023962A KR102188562B1 (ko) 2019-02-28 2019-02-28 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102188562B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101323148B1 (ko) * 2013-04-19 2013-10-30 한성대학교 산학협력단 Ucr 융합 컨텐츠 에디터 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8217756B2 (en) * 2004-09-01 2012-07-10 Microsoft Corporation Rule-based filtering and alerting
KR101352383B1 (ko) * 2011-11-16 2014-01-17 주식회사 한백전자 Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
WO2017165708A1 (en) * 2016-03-23 2017-09-28 FogHorn Systems, Inc. Efficient state machines for real-time dataflow programming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101323148B1 (ko) * 2013-04-19 2013-10-30 한성대학교 산학협력단 Ucr 융합 컨텐츠 에디터 장치

Also Published As

Publication number Publication date
KR20200105175A (ko) 2020-09-07

Similar Documents

Publication Publication Date Title
US11282612B2 (en) Systems, devices, and methods for internet of things integrated automation and control architectures
JP6065008B2 (ja) 制御装置
CN107820602B (zh) 生成转换链兼容类的方法、创建转换链的方法和***
Dimyadi et al. Modelling and accessing regulatory knowledge for computer-assisted compliance audit
Isikdag Enhanced building information models
CN108351636A (zh) 工程设计工具、***及模块
Kim et al. Socialite: A flexible framework for social internet of things
Sciullo et al. A survey on the web of things
Nurse et al. Towards a usable framework for modelling security and privacy risks in the smart home
Grimm et al. Conceptual approach for multi-disciplinary cyber physical systems design and engineering
Thuluva et al. Semantic Node-RED for rapid development of interoperable industrial IoT applications
Dimyadi et al. Automating conventional compliance audit processes
Pahl et al. Crowdsourced context-modeling as key to future smart spaces
KR102188562B1 (ko) 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법
Caminha et al. A smart middleware to perform semantic discovery and trust evaluation for the Internet of Things
Sanislav et al. A dependability analysis model in the context of cyber-physical systems
JP6655497B2 (ja) 運用管理装置及び運用管理方法、並びに運用管理システム
Kallab et al. Using colored Petri nets for verifying RESTful service composition
US11687493B1 (en) Process recipe digital twin structuring
Groves et al. Overview of IoT semantics landscape
Mehmood et al. Transforming context-aware application development model into a testing model
Li et al. Design of smart home management system based on MQTT and FBP
Bojanova et al. The Internet of anything and sustainability
Taylor Modularity in FOLIO: Principles, techniques and tools
Zhang et al. Supporting personizable virtual Internet of Things

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant