KR102188562B1 - IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD - Google Patents

IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD 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
Korean (ko)
Other versions
KR20200105175A (en
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/en
Publication of KR20200105175A publication Critical patent/KR20200105175A/en
Application granted granted Critical
Publication of KR102188562B1 publication Critical patent/KR102188562B1/en

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)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 개시한다. 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구는 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 디바이스테이블; 상기 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 상기 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공하는 툴박스; 및 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 워크스페이스를 포함한다.A visual block language based IoT application development tool is disclosed. The visual block language based IoT application development tool according to an embodiment of the present invention includes: a device table providing a list of a plurality of smart devices for selecting a device of interest composed of at least one smart device; A rule block for defining an event-condition-action (ECA)-based rule related to the device of interest, an event block for defining an event related to the device of interest in connection with the rule block, the event A toolbox that provides a condition block for a valid condition of an environment in which the event occurs and an action block for an operation accompanying the event; And a workspace for generating at least one ECA rule, which is an ECA-based rule related to the device of interest, based on the rule block, the event block, the condition block, and the action block.

Description

시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법{IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD}Visual block language based IoT application development tool and its operation method {IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD}

본 발명은 시각 블록 언어에 기반하는 IoT 응용 프로그램 개발 도구 및 그 동작 방법에 관한 것으로, 보다 상세하게는 ECA(Event-Ccondition-Action)에 기반한 블록 프로그래밍을 통해 IoT 응용 프로그램을 개발하는 개발 도구 및 그 동작 방법에 관한 것이다.The present invention relates to a tool for developing an IoT application program based on a visual block language and a method of operation thereof, and more particularly, a development tool for developing an IoT application program through block programming based on event-ccondition-action (ECA), and It relates to how it works.

IoT(internet of things, 사물인터넷)는 세상의 모든 사물들이 네트워크로 연결되어 서로 소통하는 것을 말한다. 이는 인터넷 등장 이후 가장 획기적인 변화 중 하나로 평가되며, 사물인터넷은 지능화되어 스마트 자동차, 스마트 홈, 스마트 시티와 같은 스마트 세계를 만들어 낼 것으로 예측되고 있다.IoT (internet of things, IoT) refers to all things in the world connected through a network and communicating with each other. This is evaluated as one of the most drastic changes since the advent of the Internet, and it is predicted that the Internet of Things will become intelligent and create a smart world such as smart cars, smart homes, and smart cities.

한편, 스마트 홈, 스마트 디바이스, 오토메이션 기술 등의 발전과 더불어 IoT 응용 프로그램의 개발에 관한 관심이 나날이 증가하고 있다. IoT 응용 프로그램은 일반 사용자들이 그들의 집을 스마트폰을 통해 원격으로 제어하는 것을 가능하게 할 뿐만 아니라, 특정한 일상적인 작업들을 자동화하는 것을 가능하게 한다.Meanwhile, with the development of smart home, smart device, and automation technology, interest in the development of IoT application programs is increasing day by day. IoT applications not only enable end users to remotely control their homes via smartphones, but also enable automation of certain routine tasks.

그러나, 일반 사용자들이 이와 같은 IoT 응용 프로그램의 개발에 쉽게 접근하기 어려운 것이 현실이다. 특히, 프로그래밍에 익숙하지 않은 일반 사용자는 텍스트 기반의 프로그래밍 언어를 이용하는 종래의 개발 도구를 통해, IoT 응용 프로그램을 직접 개발하는 것이 사실상 어려웠다.However, it is difficult for general users to easily access the development of such IoT applications. In particular, it was practically difficult for a general user who is not familiar with programming to directly develop an IoT application program through a conventional development tool using a text-based programming language.

따라서, 일반 사용자들이 각자의 생활 습관에 맞는 IoT 응용 프로그램을 손쉽게 제작할 수 있는 개발 도구 및 그 방법에 관한 필요성이 대두되고 있다.Accordingly, there is a need for a development tool and a method that allow general users to easily create IoT application programs suitable for their lifestyles.

관련 선행기술로는 한국공개특허 제10-2018-0053869호(발명의 명칭: 클라우드 기반 에너지 융합 개발형 사물인터넷 플랫폼 서비스 개발 시스템, 공개일자: 2018년 5월 24일)가 있다.As a related prior art, there is Korean Patent Publication No. 10-2018-0053869 (invention title: cloud-based energy convergence development type IoT platform service development system, publication date: May 24, 2018).

본 발명은 시각 블록 언어 기반의 ECA룰을 이용하여 일반 사용자도 간단하게 자신의 생활 습관에 맞는 IoT 응용 프로그램을 개발할 수 있는 개발 도구 및 그 동작 방법을 제공하고자 한다.An object of the present invention is to provide a development tool and a method of operation thereof that allow a general user to easily develop an IoT application program suitable for his/her lifestyle by using ECA rules based on a visual block language.

본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problem to be solved by the present invention is not limited to the problem(s) mentioned above, and another problem(s) not mentioned will be clearly understood by those skilled in the art from the following description.

상기 목적을 달성하기 위해, 본 발명에서 제공하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구는 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 디바이스테이블; 상기 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 상기 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공하는 툴박스; 및 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 워크스페이스를 포함한다.In order to achieve the above object, the visual block language based IoT application development tool provided by the present invention includes: a device table providing a list of a plurality of smart devices for selecting a device of interest consisting of at least one smart device; A rule block for defining an event-condition-action (ECA)-based rule related to the device of interest, an event block for defining an event related to the device of interest in connection with the rule block, the event A toolbox that provides a condition block for a valid condition of an environment in which the event occurs and an action block for an operation accompanying the event; And a workspace for generating at least one ECA rule, which is an ECA-based rule related to the device of interest, based on the rule block, the event block, the condition block, and the action block.

바람직하게는, 상기 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST(abstract syntax tree)를 생성하는 AST생성부; 및 상기 AST에 기반하여 상기 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성하는 코드생성부를 더 포함할 수 있다.Preferably, an AST generation unit for generating an abstract syntax tree (AST) having a tree structure from the at least one ECA rule; And a code generator that generates a code corresponding to an IoT application program related to the device of interest based on the AST.

바람직하게는, 상기 생성된 코드는 클라우드 서버에서 실행되며, 상기 클라우드 서버가 상기 관심디바이스와 연결된 허브와 통신하여 상기 적어도 하나의 ECA규칙이 운용될 수 있다.Preferably, the generated code is executed on a cloud server, and the at least one ECA rule may be operated by the cloud server communicating with a hub connected to the device of interest.

바람직하게는, 상기 워크스페이스는 상기 룰 블록, 상기 이벤트 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성하기 위한 것일 수 있다.Preferably, the workspace may be for further generating at least one EA rule, which is an EA-based rule related to the device of interest, based on the rule block, the event block, and the action block.

바람직하게는, 상기 워크스페이스에 상기 관심디바이스와 관련된 ECA규칙에 대응되는 상기 룰 블록이 배치되고, 상기 룰 블록에 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록이 연결됨으로써, 상기 적어도 하나의 ECA규칙이 생성될 수 있다.Preferably, the rule block corresponding to the ECA rule related to the device of interest is arranged in the workspace, and the event block, the condition block, and the action block are connected to the rule block, so that the at least one ECA rule Can be generated.

바람직하게는, 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록은 상기 툴박스로부터 드래그앤드랍(drag and drop)을 통해 상기 워크스페이스로 이동될 수 있다.Preferably, the rule block, the event block, the condition block, and the action block may be moved from the toolbox to the workspace through drag and drop.

또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법은 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 단계; 상기 관심디바이스와 관련된 ECA 기반의 규칙을 정의하기 위한 룰 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션 블록 및 상기 이벤트에 수반되는 작업에 관한 액션 블록을 제공하는 단계; 및 사용자로부터 선택된 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하는 단계를 포함한다.In addition, in order to achieve the above object, the method of operating a visual block language based IoT application development tool provided by the present invention provides a list of a plurality of smart devices for selecting a device of interest consisting of at least one smart device. step; A rule block for defining an ECA-based rule related to the device of interest, an event block for defining an event related to the device of interest in connection with the rule block, a condition block for the valid condition of the environment in which the event occurs, and the event Providing an action block related to the task involved in the operation; And generating at least one ECA rule, which is an ECA-based rule related to the device of interest, based on the rule block, the event block, the condition block, and the action block selected by the user.

바람직하게는, 상기 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST를 생성하는 단계; 및 상기 AST에 기반하여 상기 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성하는 단계를 더 포함할 수 있다.Preferably, generating an AST having a tree structure from the at least one ECA rule; And generating a code corresponding to the IoT application program related to the device of interest based on the AST.

바람직하게는, 상기 생성된 코드는 클라우드 서버에서 실행되며, 상기 클라우드 서버가 상기 관심디바이스와 연결된 허브와 통신하여 상기 적어도 하나의 ECA규칙이 운용될 수 있다.Preferably, the generated code is executed on a cloud server, and the at least one ECA rule may be operated by the cloud server communicating with a hub connected to the device of interest.

바람직하게는, 상기 적어도 하나의 ECA규칙을 생성하는 단계는 상기 룰 블록, 상기 이벤트 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성할 수 있다.Preferably, the generating of the at least one ECA rule may further generate at least one EA rule, which is an EA-based rule related to the device of interest, based on the rule block, the event block, and the action block. have.

본 발명의 일 실시예에 따른 IoT 응용 프로그램 개발 도구 및 그 동작 방법은 시각 블록 언어 기반의 ECA룰을 이용함으로써 일반 사용자도 간단하게 자신의 생활 습관에 맞는 IoT 응용 프로그램을 개발할 수 있도록 하는 효과가 있다.The IoT application development tool and its operation method according to an embodiment of the present invention have an effect of allowing a general user to easily develop an IoT application program suitable for their lifestyle by using an ECA rule based on a visual block language. .

도 1은 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 나타내는 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 디바이스테이블을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 툴박스를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 워크스페이스를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 룰 블록과 이벤트 블록, 컨디션 블록 및 액션 블록의 연결 관계를 설명하기 위한 도면이다.
도 8 및 9는 본 발명의 일 실시예에 따른 AST 및 코드를 설명하기 위한 도면이다.
1 is a block diagram showing a tool for developing an IoT application program based on a visual block language according to an embodiment of the present invention.
2 is a block diagram showing a tool for developing an IoT application program based on a visual block language according to another embodiment of the present invention.
3 is a flowchart illustrating a method of operating a visual block language based IoT application development tool according to an embodiment of the present invention.
4 is a diagram illustrating a device table according to an embodiment of the present invention.
5 is a diagram illustrating a tool box according to an embodiment of the present invention.
6 is a diagram illustrating a workspace according to an embodiment of the present invention.
7 is a diagram illustrating a connection relationship between a rule block, an event block, a condition block, and an action block according to an embodiment of the present invention.
8 and 9 are diagrams for explaining an AST and a code according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to a specific embodiment, it is to be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals have been used for similar elements.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various elements, but the elements should not be limited by the terms. These terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 나타내는 블록도이다.1 is a block diagram showing a tool for developing an IoT application program based on a visual block language according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구(100)는 디바이스테이블(110), 툴박스(120) 및 워크스페이스(130)를 포함한다.Referring to FIG. 1, a visual block language based IoT application development tool 100 according to an embodiment of the present invention includes a device table 110, a tool box 120, and a workspace 130.

디바이스테이블(110)은 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공한다.The device table 110 provides a list of a plurality of smart devices for selecting a device of interest composed of at least one smart device.

여기서, 스마트 디바이스는 네트워크를 통해 연결되어, 다른 디바이스와 데이터를 주고 받을 수 있는 다양한 종류의 디바이스일 수 있다. 예컨대, IoT(사물인터넷) 기능이 부가된 조명 장치, 도어락 기기, 음악재생 기기, 냉난방 기기, 온도계 및 습도계 등의 센서 기기, 기타 가전기기 등이 해당할 수 있으나, 본 발명의 스마트 디바이스는 이에 한정되지 않는다.Here, the smart device may be various types of devices that are connected through a network and can exchange data with other devices. For example, a lighting device with an Internet of Things (IoT) function added, a door lock device, a music player, a cooling and heating device, a sensor device such as a thermometer and a hygrometer, and other home appliances, etc., but the smart device of the present invention is limited to this. It doesn't work.

한편, 복수의 스마트 디바이스의 목록은 사용자의 가정에 위치한 스마트 기기들의 목록일 수 있다. 이때, 목록은 리스트, 버튼, 체크박스리스트 등과 같은 다양한 형태로 제공될 수 있으며, 사용자는 그 목록을 통해 IoT 응용 프로그램에 이용할 적어도 하나의 스마트 디바이스인 관심디바이스를 선택할 수 있다. Meanwhile, the list of the plurality of smart devices may be a list of smart devices located in the user's home. In this case, the list may be provided in various forms such as a list, a button, a check box list, and the like, and the user may select a device of interest, which is at least one smart device to be used in the IoT application program through the list.

예컨대, 도 4를 참조하면, 디바이스테이블(110)은 music player, presence sensor, light, lock 및 alarm에 관한 스마트 디바이스의 목록을 버튼의 형태로 제공할 수 있다.For example, referring to FIG. 4, the device table 110 may provide a list of smart devices related to music player, presence sensor, light, lock, and alarm in the form of a button.

툴박스(120)는 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 그 룰 블록에 연계되어 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 그 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 그 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공한다.The toolbox 120 is a rule block for defining an event-condition-action (ECA)-based rule related to a device of interest, and an event block for defining an event related to a device of interest in connection with the rule block. , Provides a condition block for a valid condition of an environment in which the event occurs and an action block for an action accompanying the event.

이때, ECA 기반의 규칙은 1) (when)어느 경우에, 2) (if)어떤 조건을 만족하면, 3) (then)어떤 작업을 수행할 지에 관한 규칙을 나타낼 수 있다. 또한, 하나의 ECA 기반 규칙에는 어떤 사건이 발생하였는지를 나타내는 적어도 하나의 이벤트가 포함되고, 그 적어도 하나의 이벤트가 발생한 환경에서 유효하기 위한 조건인 적어도 하나의 컨디션이 포함되고, 그 적어도 하나의 이벤트 발생시에 수행되는 적어도 하나의 액션이 포함될 수 있다.At this time, the ECA-based rule may indicate 1) (when) in which case, 2) (if) when a certain condition is satisfied, and 3) (then) a rule regarding which task to perform. In addition, one ECA-based rule includes at least one event indicating which event has occurred, and at least one condition that is a condition that is valid in an environment in which the at least one event occurs, and when the at least one event occurs At least one action to be performed may be included.

여기서, 이벤트는 스마트 디바이스에서 발생한 사건을 나타낸다. 예를 들어, 자물쇠(lock)의 상태가 잠김상태(locked)에서 열림상태(unlocked)로 변경되거나, 시계 장치에서 오전 8시에 알람이 발생하는 경우일 수 있다. 또한, 컨디션은 스마트 디바이스의 상태 변화에 관한 부울 대수값(Boolean algebra)이 참(true)인지 거짓(false)인지를 나타낸다. 예를 들어, 1번 감지센서(presence sensor)에서 사람이 감지되었는지 여부, 1번 온도계의 온도(temperature)가 22도 이상인지 여부를 나타낼 수 있다. 또한, 액션은 수행되는 작업을 나타낸다. 예를 들어, 조명 장치를 켜고, 음악재생 기기에서 음악을 재생(play)하고, 예상치 않은 손님이 도착했다는 메시지를 사용자에게 전송하는 등의 작업일 수 있다.Here, the event represents an event that occurred in the smart device. For example, the state of the lock may be changed from a locked state to an unlocked state, or an alarm may be generated at 8 am in the clock device. In addition, the condition indicates whether the Boolean algebra of the state change of the smart device is true or false. For example, it may indicate whether a person is detected by the presence sensor 1, and whether the temperature of the thermometer 1 is 22 degrees or more. Also, an action represents an action to be performed. For example, it may be an operation such as turning on a lighting device, playing music on a music player, and transmitting a message that an unexpected guest has arrived to the user.

한편, 하나의 ECA 기반 규칙은 하나의 룰 블록에 대응될 수 있다. 또한, 하나의 룰 블록에는 적어도 하나의 이벤트 블록, 적어도 하나의 컨디션 블록, 적어도 하나의 액션 블록이 포함될 수 있다.Meanwhile, one ECA-based rule may correspond to one rule block. In addition, one rule block may include at least one event block, at least one condition block, and at least one action block.

예컨대, 도 5를 참조하면, 툴박스(120)는 사용자로부터 선택된 관심디바이스와 관련된 복수의 이벤트 블록, 복수의 컨디션 블록, 복수의 액션 블록을 제공할 수 있다.For example, referring to FIG. 5, the toolbox 120 may provide a plurality of event blocks, a plurality of condition blocks, and a plurality of action blocks related to a device of interest selected by a user.

보다 구체적으로, 디바이스테이블(110)을 통해서 music player, presence sensor, light, lock 및 alarm가 관심디바이스로 선택된 경우에, 툴박스(120)는 그 관심디바이스에 대한 복수의 이벤트 블록, 복수의 컨디션 블록, 복수의 액션 블록을 제공할 수 있다. 이때, 복수의 이벤트 블록, 복수의 컨디션 블록, 복수의 액션 블록은 그 관심디바이스 각각의 종류 및 특성에 따라 상이하게 구성된 블록들의 집합일 수 있다.More specifically, when music player, presence sensor, light, lock, and alarm are selected as the device of interest through the device table 110, the tool box 120 includes a plurality of event blocks, a plurality of condition blocks, and Multiple action blocks can be provided. In this case, the plurality of event blocks, the plurality of condition blocks, and the plurality of action blocks may be a set of blocks configured differently according to the types and characteristics of each of the devices of interest.

워크스페이스(130)는 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 공간을 제공한다.The workspace 130 provides a space for generating at least one ECA rule, which is an ECA-based rule related to a device of interest, based on a rule block, an event block, a condition block, and an action block.

예컨대, 도 6 및 7을 참조하면, 워크스페이스(130)에는 2개의 룰 블록(131, 132), 2개의 이벤트 블록(133, 134), 2개의 컨디션 블록(135, 136) 및 4개의 액션 블록(137, 138에 각각 2개)이 배치되어, 그 2개의 룰 블록 각각에 대응되는 2개의 ECA규칙을 생성할 수 있다.For example, referring to FIGS. 6 and 7, the workspace 130 includes two rule blocks 131 and 132, two event blocks 133 and 134, two condition blocks 135 and 136, and four action blocks. (Two in each of 137 and 138) are arranged, and two ECA rules corresponding to each of the two rule blocks can be generated.

다른 실시예에서는, 워크스페이스(130)는 룰 블록, 이벤트 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성하기 위한 공간을 제공할 수 있다.In another embodiment, the workspace 130 may provide a space for further generating at least one EA rule, which is an EA-based rule related to a device of interest, based on a rule block, an event block, and an action block.

즉, 워크스페이스(130)는 유효 조건이 존재하지 않는, 즉 언제나 유효한 EA(event-action) 기반의 EA규칙을 더 생성하기 위한 공간을 제공할 수 있다. 이와 같은 EA규칙은 특정한 이벤트가 발생하면, 무조건적으로 특정한 작업을 수행할 필요가 있는 경우에 이용될 수 있다.That is, the workspace 130 may provide a space for further generating an EA (event-action) based EA rule that does not have a valid condition, that is, which is always valid. Such an EA rule can be used when a specific event occurs and it is necessary to perform a specific task unconditionally.

이때, EA규칙에는 대응되는 룰 블록에는 적어도 하나의 이벤트 블록과 적어도 하나의 액션 블록이 포함될 수 있다.In this case, the rule block corresponding to the EA rule may include at least one event block and at least one action block.

또 다른 실시예에서는, 워크스페이스(130)에 관심디바이스와 관련된 ECA규칙에 대응되는 룰 블록이 배치되고, 그 룰 블록에 이벤트 블록, 컨디션 블록 및 액션 블록이 연결됨으로써, 적어도 하나의 ECA규칙이 생성될 수 있다.In another embodiment, a rule block corresponding to an ECA rule related to a device of interest is arranged in the workspace 130, and an event block, a condition block, and an action block are connected to the rule block, thereby generating at least one ECA rule. Can be.

즉, 도 6을 참조하면, ECA규칙에 대응되는 2개의 룰 블록(131, 132)이 우선적으로 배치되고, 그 룰 블록(131, 132) 각각에 이벤트 블록(133, 134), 컨디션 블록(135, 136) 및 액션 블록(137, 138)이 연결되어 ECA규칙이 생성될 수 있다.That is, referring to FIG. 6, two rule blocks 131 and 132 corresponding to the ECA rule are preferentially disposed, and event blocks 133 and 134 and condition blocks 135 are respectively disposed in the rule blocks 131 and 132. , 136) and action blocks 137 and 138 may be connected to generate an ECA rule.

한편, 이와 유사한 방법으로 EA규칙에 대응되는 룰 블록이 우선적으로 배치되고, 그 룰 블록에 이벤트 블록 및 액션 블록이 연결되어 EA규칙이 생성될 수 있다.Meanwhile, in a similar manner, a rule block corresponding to an EA rule is preferentially arranged, and an event block and an action block are connected to the rule block to generate an EA rule.

또 다른 실시예에서는, 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록은 툴박스(120)로부터 드래그앤드랍(drag and drop)을 통해 워크스페이스(130)로 이동될 수 있다.In another embodiment, a rule block, an event block, a condition block, and an action block may be moved from the toolbox 120 to the workspace 130 through drag and drop.

한편, 툴박스(120)을 통해 제공되는 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록은 사용자에 의해 드래그앤드랍됨으로써, 워크스페이스(130)로 이동되어 ECA규칙이 생성될 수 있다.Meanwhile, a rule block, an event block, a condition block, and an action block provided through the toolbox 120 are dragged and dropped by a user, thereby being moved to the workspace 130 to generate an ECA rule.

이때, 룰 블록이 우선적으로 드래그앤드랍되어 워크스페이스(130)에 배치된 이후에, 이벤트 블록, 컨디션 블록 및 액션 블록이 그 룰 블록의 대응되는 각각의 위치에 드래그앤드랍되어 연결됨으로써, ECA규칙이 생성될 수 있다.At this time, after the rule block is preferentially drag-and-dropped and placed in the workspace 130, the event block, the condition block, and the action block are drag-and-dropped to each corresponding position of the rule block to be connected, so that the ECA rule Can be generated.

이와 같이, 본 발명의 일 실시예에 따른 IoT 응용 프로그램 개발 도구는 시각 블록 언어 기반의 ECA룰을 이용하여 일반 사용자도 간단하게 자신의 생활 습관에 맞는 IoT 응용 프로그램을 개발할 수 있는 효과가 있다.As described above, the IoT application program development tool according to an embodiment of the present invention has an effect that a general user can simply develop an IoT application program suitable for his/her lifestyle by using an ECA rule based on a visual block language.

도 2는 본 발명의 다른 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구를 나타내는 블록도이다.2 is a block diagram showing a tool for developing an IoT application program based on a visual block language according to another embodiment of the present invention.

도 2를 참조하면, 본 발명의 다른 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구(100)는 디바이스테이블(110), 툴박스(120), 워크스페이스(130), AST생성부(140) 및 코드생성부(150)를 포함한다.Referring to FIG. 2, a visual block language based IoT application development tool 100 according to another embodiment of the present invention includes a device table 110, a tool box 120, a workspace 130, and an AST generator 140. And a code generation unit 150.

디바이스테이블(110)은 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공한다.The device table 110 provides a list of a plurality of smart devices for selecting a device of interest composed of at least one smart device.

툴박스(120)는 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 그 룰 블록에 연계되어 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 그 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 그 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공한다.The toolbox 120 is a rule block for defining an event-condition-action (ECA)-based rule related to a device of interest, and an event block for defining an event related to a device of interest in connection with the rule block. , Provides a condition block for a valid condition of an environment in which the event occurs and an action block for an action accompanying the event.

워크스페이스(130)는 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 공간을 제공한다.The workspace 130 provides a space for generating at least one ECA rule, which is an ECA-based rule related to a device of interest, based on a rule block, an event block, a condition block, and an action block.

AST생성부(140)는 그 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST(abstract syntax tree)를 생성한다.The AST generation unit 140 generates an abstract syntax tree (AST) having a tree structure from the at least one ECA rule.

즉, AST생성부(140)는 워크스페이스(130)에서 생성된 적어도 하나의 ECA규칙에 대응되는 AST를 생성할 수 있다.That is, the AST generation unit 140 may generate an AST corresponding to at least one ECA rule generated in the workspace 130.

여기서, AST는 추상 구문 트리로서, 프로그래밍 언어로 작성된 소스 코드의 추상 구문 구조에 관한 트리를 의미할 수 있다. 한편, 도 8을 참조하면, 본 발명의 AST는 워크스페이스(130)를 루트 노드로 하여, 루트 노드의 하위에 룰 블록이 위치하고, 룰 블록의 하위에 이벤트 블록, 컨디션 블록 및 액션 블록이 위치하도록 구성될 수 있다.Here, AST is an abstract syntax tree, and may mean a tree related to an abstract syntax structure of a source code written in a programming language. Meanwhile, referring to FIG. 8, the AST of the present invention uses the workspace 130 as a root node, so that a rule block is located under the root node, and an event block, a condition block, and an action block are located under the rule block. Can be configured.

코드생성부(150)는 AST에 기반하여 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성한다.The code generation unit 150 generates a code corresponding to an IoT application program related to the device of interest based on the AST.

예컨대, 코드생성부(150)는 도 8의 AST를 분석하여 AST에 포함된 적어도 하나의 ECA규칙에 대응되는 도 9의 코드를 생성할 수 있다. 이때, 도 9의 코드는 IoT 응용 프로그램에 해당하는 코드이다.For example, the code generator 150 may analyze the AST of FIG. 8 to generate the code of FIG. 9 corresponding to at least one ECA rule included in the AST. In this case, the code of FIG. 9 is a code corresponding to an IoT application program.

다른 실시예에서는, 그 생성된 코드는 클라우드 서버(cloud server)에서 실행되며, 그 클라우드 서버가 관심디바이스와 연결된 허브와 통신하여 적어도 하나의 ECA규칙이 운용될 수 있다.In another embodiment, the generated code is executed in a cloud server, and the cloud server communicates with a hub connected to a device of interest to operate at least one ECA rule.

예컨대, 그 생성된 코드는 사용자가 어디서나 접근할 수 있는 클라우드 컴퓨팅(cloud computing) 환경을 이용하기 위하여, 클라우드 서버에서 실행될 수 있다. 또한, 그 클라우드 서버는 관심디바이스와 연결된 중앙 허브(central hub)와 인터넷으로 연결되어, 그 관심디바이스에 관한 적어도 하나의 ECA규칙이 준수되도록 운용할 수 있다.For example, the generated code can be executed on a cloud server in order to use a cloud computing environment that a user can access from anywhere. In addition, the cloud server is connected to a central hub connected to the device of interest via the Internet, and can be operated to comply with at least one ECA rule for the device of interest.

이때, 사용자는 스마트폰, 태블릿PC등에 탑재된 어플리케이션을 통해 클라우드 서버에 접속하여, 클라우드 서버에서 실행되는 IoT 응용 프로그램 및 허브에 연결된 관심디바이스를 관리할 수 있음은 물론이다.At this time, it goes without saying that the user can access the cloud server through an application mounted on a smartphone or tablet PC, and manage the IoT application program running on the cloud server and the device of interest connected to the hub.

보다 구체적으로, 사용자는 관심디바이스에 포함된 적어도 하나의 스마트 디바이스에서 특정한 디바이스를 제외하거나 추가할 수 있으며, 특정한 ECA규칙을 추가하거나 삭제할 수 있다.More specifically, the user may exclude or add a specific device from at least one smart device included in the device of interest, and may add or delete a specific ECA rule.

도 3은 본 발명의 일 실시예에 따른 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법을 나타내는 흐름도이다.3 is a flowchart illustrating a method of operating a visual block language based IoT application development tool according to an embodiment of the present invention.

단계 S310에서는, IoT 응용 프로그램 개발 도구(100)가 적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공한다.In step S310, the IoT application development tool 100 provides a list of a plurality of smart devices for selecting a device of interest including at least one smart device.

단계 S320에서는, IoT 응용 프로그램 개발 도구(100)가 관심디바이스와 관련된 ECA 기반의 규칙을 정의하기 위한 룰 블록, 그 룰 블록에 연계되어 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트 블록, 그 이벤트가 발생한 환경의 유효 조건에 관한 컨디션 블록 및 그 이벤트에 수반되는 작업에 관한 액션 블록을 제공한다.In step S320, the IoT application development tool 100 is a rule block for defining an ECA-based rule related to the device of interest, an event block for defining an event related to the device of interest in connection with the rule block, and the event occurs. Provides condition blocks for the valid conditions of the environment and action blocks for tasks accompanying the event.

단계 S330에서는, IoT 응용 프로그램 개발 도구(100)가 사용자로부터 선택된 룰 블록, 이벤트 블록, 컨디션 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성한다.In step S330, the IoT application development tool 100 generates at least one ECA rule, which is an ECA-based rule related to the device of interest, based on the rule block, event block, condition block, and action block selected by the user.

다른 실시예에서는, IoT 응용 프로그램 개발 도구(100)가 그 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST를 생성하고, 그 AST에 기반하여 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성할 수 있다.In another embodiment, the IoT application development tool 100 may generate an AST having a tree structure from the at least one ECA rule, and generate a code corresponding to an IoT application program related to a device of interest based on the AST. have.

또 다른 실시예에서는, 그 생성된 코드는 클라우드 서버에서 실행되며, 그 클라우드 서버가 관심디바이스와 연결된 허브와 통신하여 그 적어도 하나의 ECA규칙이 운용될 수 있다.In another embodiment, the generated code is executed on a cloud server, and the cloud server communicates with a hub connected to a device of interest, so that at least one ECA rule may be operated.

또 다른 실시예에서는, IoT 응용 프로그램 개발 도구(100)가 그 적어도 하나의 ECA규칙을 생성할 때, 룰 블록, 이벤트 블록 및 액션 블록에 기초하여, 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성할 수 있다.In another embodiment, when the IoT application development tool 100 generates the at least one ECA rule, based on a rule block, an event block, and an action block, at least one EA-based rule related to a device of interest. You can create more EA rules.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.The computer-readable recording medium includes a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), and an optical reading medium (for example, a CD-ROM, a DVD, etc.).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
So far, the present invention has been looked at around its preferred embodiments. Those of ordinary skill in the art to which the present invention pertains will be able to understand that the present invention may be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered from an illustrative point of view rather than a limiting point of view. The scope of the present invention is shown in the claims rather than the above description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

Claims (10)

적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 디바이스테이블;
상기 관심디바이스와 관련된 ECA(event-condition-action) 기반의 규칙을 정의하기 위한 룰(rule) 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트(event) 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션(condition) 블록 및 상기 이벤트에 수반되는 작업에 관한 액션(action) 블록을 제공하는 툴박스;
상기 툴박스에서 선택된 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하기 위한 워크스페이스;
상기 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST(abstract syntax tree)를 생성하는 AST생성부; 및
상기 AST에 기반하여 상기 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성하는 코드생성부
를 포함하고,
상기 툴박스는 상기 복수의 스마트 디바이스의 목록에서 선택된 관심디바이스의 종류 및 특성에 따라 상이하게 구성된 룰 블록을 제공하고,
상기 생성된 코드는 클라우드 서버에서 실행되며, 상기 클라우드 서버가 상기 관심디바이스와 연결된 허브와 통신하여 상기 적어도 하나의 ECA규칙이 운용되는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구.
A device table providing a list of a plurality of smart devices for selecting a device of interest including at least one smart device;
A rule block for defining an event-condition-action (ECA)-based rule related to the device of interest, an event block for defining an event related to the device of interest in connection with the rule block, the event A toolbox that provides a condition block for a valid condition of an environment in which the event occurs and an action block for an operation accompanying the event;
A workspace for generating at least one ECA rule, which is an ECA-based rule related to the device of interest, based on the rule block, the event block, the condition block, and the action block selected from the toolbox;
An AST generator for generating an abstract syntax tree (AST) having a tree structure from the at least one ECA rule; And
A code generation unit that generates a code corresponding to an IoT application program related to the device of interest based on the AST
Including,
The toolbox provides rule blocks configured differently according to the type and characteristic of the device of interest selected from the list of the plurality of smart devices,
The generated code is executed in a cloud server, and the at least one ECA rule is operated by the cloud server communicating with a hub connected to the device of interest.
삭제delete 삭제delete 제1항에 있어서,
상기 워크스페이스는
상기 룰 블록, 상기 이벤트 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성하기 위한 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구.
The method of claim 1,
The workspace is
Based on the rule block, the event block, and the action block, a visual block language-based IoT application development tool, characterized in that for further generating at least one EA rule that is an EA-based rule related to the device of interest.
제1항에 있어서,
상기 워크스페이스에 상기 관심디바이스와 관련된 ECA규칙에 대응되는 상기 룰 블록이 배치되고, 상기 룰 블록에 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록이 연결됨으로써, 상기 적어도 하나의 ECA규칙이 생성되는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구.
The method of claim 1,
The rule block corresponding to the ECA rule related to the device of interest is arranged in the workspace, and the event block, the condition block, and the action block are connected to the rule block, thereby generating the at least one ECA rule. Visual block language based IoT application development tool characterized by.
제5항에 있어서,
상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록은
상기 툴박스로부터 드래그앤드랍(drag and drop)을 통해 상기 워크스페이스로 이동되는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구.
The method of claim 5,
The rule block, the event block, the condition block, and the action block are
A visual block language based IoT application development tool, characterized in that it is moved from the toolbox to the workspace through drag and drop.
적어도 하나의 스마트 디바이스로 구성되는 관심디바이스를 선택하기 위한 복수의 스마트 디바이스의 목록을 제공하는 단계;
상기 관심디바이스와 관련된 ECA 기반의 규칙을 정의하기 위한 룰 블록, 상기 룰 블록에 연계되어 상기 관심디바이스와 관련된 이벤트를 정의하기 위한 이벤트 블록, 상기 이벤트가 발생한 환경의 유효 조건에 관한 컨디션 블록 및 상기 이벤트에 수반되는 작업에 관한 액션 블록을 제공하는 단계;
사용자로부터 선택된 상기 룰 블록, 상기 이벤트 블록, 상기 컨디션 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 ECA 기반의 규칙인 적어도 하나의 ECA규칙을 생성하는 단계;
상기 적어도 하나의 ECA규칙으로부터 트리 구조를 갖는 AST를 생성하는 단계; 및
상기 AST에 기반하여 상기 관심디바이스에 관한 IoT 응용 프로그램에 해당하는 코드를 생성하는 단계
를 포함하고,
상기 액션 블록을 제공하는 단계는,
상기 복수의 스마트 디바이스의 목록에서 선택된 관심디바이스의 종류 및 특성에 따라 상이하게 구성된 룰 블록을 제공하고,
상기 생성된 코드는
클라우드 서버에서 실행되며, 상기 클라우드 서버가 상기 관심디바이스와 연결된 허브와 통신하여 상기 적어도 하나의 ECA규칙이 운용되는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법.
Providing a list of a plurality of smart devices for selecting a device of interest including at least one smart device;
A rule block for defining an ECA-based rule related to the device of interest, an event block for defining an event related to the device of interest in connection with the rule block, a condition block for a valid condition of the environment in which the event occurs, and the event Providing an action block related to an operation involved in the operation;
Generating at least one ECA rule, which is an ECA-based rule related to the device of interest, based on the rule block, the event block, the condition block, and the action block selected by a user;
Generating an AST having a tree structure from the at least one ECA rule; And
Generating a code corresponding to the IoT application program related to the device of interest based on the AST
Including,
Providing the action block,
Providing a rule block configured differently according to the type and characteristic of the device of interest selected from the list of the plurality of smart devices,
The generated code is
A method of operating a visual block language based IoT application development tool, characterized in that it is executed on a cloud server and the cloud server communicates with a hub connected to the device of interest to operate the at least one ECA rule.
삭제delete 삭제delete 제7항에 있어서,
상기 적어도 하나의 ECA규칙을 생성하는 단계는
상기 룰 블록, 상기 이벤트 블록 및 상기 액션 블록에 기초하여, 상기 관심디바이스와 관련된 EA 기반의 규칙인 적어도 하나의 EA규칙을 더 생성하는 것을 특징으로 하는 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구의 동작 방법.
The method of claim 7,
Generating the at least one ECA rule comprises:
Based on the rule block, the event block, and the action block, the method of operating a visual block language based IoT application development tool, characterized in that further generating at least one EA rule that is an EA-based rule related to the device of interest .
KR1020190023962A 2019-02-28 2019-02-28 IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD KR102188562B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190023962A KR102188562B1 (en) 2019-02-28 2019-02-28 IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190023962A KR102188562B1 (en) 2019-02-28 2019-02-28 IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD

Publications (2)

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

Family

ID=72472296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190023962A KR102188562B1 (en) 2019-02-28 2019-02-28 IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD

Country Status (1)

Country Link
KR (1) KR102188562B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101323148B1 (en) * 2013-04-19 2013-10-30 한성대학교 산학협력단 Ucr contents editor device

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 (en) * 2011-11-16 2014-01-17 주식회사 한백전자 Method of program development using Visual Programming Language and computer readable medium thereof
JP2019516167A (en) * 2016-03-23 2019-06-13 フォグホーン システムズ, インコーポレイテッドFoghorn Systems, Inc. Tools and methods for a real time data flow programming language

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101323148B1 (en) * 2013-04-19 2013-10-30 한성대학교 산학협력단 Ucr contents editor device

Also Published As

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

Similar Documents

Publication Publication Date Title
US20220255787A1 (en) Systems, devices, and methods for internet of things integrated automation and control architectures
JP6351869B2 (en) Engineering tools, systems and modules
Dimyadi et al. Modelling and accessing regulatory knowledge for computer-assisted compliance audit
JP6065008B2 (en) Control device
Isikdag Enhanced building information models
Thuluva et al. Semantic Node-RED for rapid development of interoperable industrial IoT applications
Kim et al. Socialite: A flexible framework for social internet of things
Nurse et al. Towards a usable framework for modelling security and privacy risks in the smart home
US11687493B1 (en) Process recipe digital twin structuring
Dimyadi et al. Automating conventional compliance audit processes
Chen et al. A study of extending BPMN to integrate IoT applications
KR102188562B1 (en) IoT APPLICATION PROGRAMMING ENVIRONMENT BASED ON VISUAL BLOCK LANGUAGE AND ITS OPERATING METHOD
WO2011069765A1 (en) Automatic generation of a query lineage
US11853311B2 (en) Manufacturing process data orchestration
WO2020101959A1 (en) Explicit interaction contracts for network connected devices
Groves et al. Overview of IoT semantics landscape
Zhang Uncertain linguistic power geometric operators and their use in multiattribute group decision making
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
Sebron et al. The shell model–a method for system boundary analysis
Bojanova et al. The Internet of anything and sustainability
Taylor Modularity in FOLIO: Principles, techniques and tools
Chen et al. Reliable execution based on CPN and skyline optimization for web service composition
Zhang et al. Supporting personizable virtual Internet of Things
Kiran et al. Model-based testing for composite web services in cloud brokerage scenarios

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