WO2021033861A1 - Iot 서비스 인프라와의 연동을 지원하는 초소형 iot 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 - Google Patents
Iot 서비스 인프라와의 연동을 지원하는 초소형 iot 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 Download PDFInfo
- Publication number
- WO2021033861A1 WO2021033861A1 PCT/KR2020/002858 KR2020002858W WO2021033861A1 WO 2021033861 A1 WO2021033861 A1 WO 2021033861A1 KR 2020002858 W KR2020002858 W KR 2020002858W WO 2021033861 A1 WO2021033861 A1 WO 2021033861A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- iot
- integrated development
- information
- development
- cloud server
- Prior art date
Links
- 238000011161 development Methods 0.000 title claims abstract description 194
- 238000000034 method Methods 0.000 title claims description 56
- 238000004891 communication Methods 0.000 claims description 11
- 238000004088 simulation Methods 0.000 claims description 9
- 238000005457 optimization Methods 0.000 claims description 6
- 230000014509 gene expression Effects 0.000 claims description 3
- 230000003252 repetitive effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009440 infrastructure construction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Definitions
- the present invention relates to an integrated development cloud server and method that provides a cloud-based integrated development environment for developing software for micro-IoT devices that supports interworking with Internet of Things (IoT) service infrastructure.
- IoT Internet of Things
- IoT is an IoT service infrastructure for providing various services by connecting various objects through a network through the development and convergence of technologies and development methodologies such as wireless communication technology, microelectromechanical systems (MEMS) and microservices. It is about.
- MEMS microelectromechanical systems
- the IoT service infrastructure can be divided into an IoT device layer that corresponds to an IoT thing and generates various data, and a service layer that provides services through collection, analysis, and processing of data generated by these IoT devices.
- the IoT device layer can consist of MEMS such as MCU, memory, power management, and sensors that are actually mounted on the device and IoT software to control them.
- MEMS such as MCU, memory, power management, and sensors that are actually mounted on the device and IoT software to control them.
- IoT service edge that collects and integrates data from numerous IoT devices, and an IoT service cloud server that analyzes and processes the integrated data at the IoT service edge to provide necessary services. It is common.
- the network connection between these IoT devices, IoT service edge, and IoT service cloud server also plays a very important role in IoT service infrastructure.
- IoT software development must be conducted based on connection with IoT service infrastructure, satisfying these complex technical requirements and specialized demands for embedded software development with minimal effort, and more diverse IoT software can be easily developed through visual programming.
- IoT integrated development environment (IDE) is required.
- Patent Document 1 Korean Patent Publication No. 2009-0004210 (published on January 12, 2009)
- Integration that provides a plurality of development blocks based on IoT service infrastructure information, a selected operating system, and a plurality of selected libraries, receives at least one of the plurality of development blocks, and performs programming by combining at least one selected development block To provide a development cloud server and method.
- It aims to provide an integrated development cloud server and method that provides an IoT integrated development environment (IDE) so that advanced developers can reduce their efforts and time spent on secondary development, so that they can approach the core and proceed with development.
- IDE integrated development environment
- building and linking IoT service infrastructure is a field that requires extensive knowledge and resources, and is a field that is difficult for individuals or groups without experience to easily understand and start. Therefore, it is possible to develop IoT software that works with IoT service infrastructure without such a deep understanding
- IoT software developed in this way is linked to the IoT service infrastructure, and the IoT integrated development environment (IDE) is also based on the cloud, IoT software that is linked with the IoT service infrastructure can be used without installing a development environment on the developer's PC.
- IDE IoT integrated development environment
- an embodiment of the present invention provides an IoT service infrastructure information management unit that provides IoT service infrastructure information, an IoT device information management unit that provides operating system information and library information, and is based on the operating system information.
- a selection unit for selecting an operating system and selecting a plurality of libraries based on the library information, the IoT service infrastructure information, the selected operating system, and providing a plurality of development blocks based on the selected plurality of libraries, and the plurality of Provides an integrated development cloud server including a programming unit that receives at least one of the development blocks and performs programming by combining the selected at least one development block, and an IoT service profile generation unit that generates an IoT service profile based on the programming can do.
- storing IoT service infrastructure information storing operating system information and library information, selecting an operating system based on the operating system information, and selecting a plurality of libraries based on the library information
- Step Providing a plurality of development blocks based on the IoT service infrastructure information, the selected operating system, and the selected plurality of libraries, selecting at least one of the plurality of development blocks, and combining the selected at least one development block
- An integrated development method including performing programming and generating an IoT service profile based on the programming may be provided.
- FIG. 1 is a block diagram of an integrated development environment system according to an embodiment of the present invention.
- FIG. 2 is a block diagram of an integrated development cloud server according to an embodiment of the present invention.
- FIG. 3 is a flowchart illustrating an entire process of operating a micro IoT device in connection with an IoT service infrastructure according to an embodiment of the present invention.
- 4A and 4B are exemplary diagrams for explaining a process of performing programming according to an embodiment of the present invention.
- FIG. 5 is an exemplary diagram for explaining a process of managing a task in a cloud-based IoT integrated development environment according to an embodiment of the present invention.
- 6A and 6B are exemplary diagrams for explaining a process of generating an emulator according to an embodiment of the present invention.
- FIG. 7 is an exemplary diagram showing a configuration for performing a simulation by creating a virtual IoT device according to an embodiment of the present invention.
- 8A to 8D are exemplary diagrams for explaining a process of performing a simulation according to an embodiment of the present invention.
- FIG. 9 is an exemplary diagram for explaining a process of providing an optimal source code according to an embodiment of the present invention.
- FIG. 10 is a flowchart of a method of providing a cloud-based integrated development environment for developing software for micro-IoT devices that supports interworking with Internet of Things (IoT) service infrastructure in an integrated development cloud server according to an embodiment of the present invention to be.
- IoT Internet of Things
- unit includes a unit realized by hardware, a unit realized by software, and a unit realized using both. Further, one unit may be realized using two or more hardware, or two or more units may be realized using one hardware.
- some of the operations or functions described as being performed by the terminal or device may be performed instead by a server connected to the terminal or device.
- some of the operations or functions described as being performed by the server may also be performed by a terminal or device connected to the server.
- the integrated development environment system 1 is an integrated development cloud server 100, an IoT device 110, an IoT service edge 120, an IoT cloud 130, an IoT service storage 140, and an IoT software. May contain a version control database.
- Integrated development cloud server 100, IoT device 110, IoT service edge 120, IoT cloud 130, IoT service storage 140, and IoT software version management database are controlled by the integrated development environment system 1 Components that can be used are illustrated by way of example.
- Each component of the integrated development environment system 1 of FIG. 1 is generally connected through a network.
- the integrated development cloud server 100 may be connected to the IoT device 110 at the same time or at a time interval.
- a network refers to a connection structure that enables information exchange between nodes such as terminals and servers, and is a local area network (LAN), a wide area network (WAN), and the Internet (WWW: World). Wide Web), wired/wireless data communication networks, telephone networks, wired/wireless television networks, etc.
- wireless data networks include 3G, 4G, 5G, 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), World Interoperability for Microwave Access (WIMAX), Wi-Fi, Bluetooth communication, infrared communication, and ultrasound. Communication, Visible Light Communication (VLC), LiFi, etc. are included, but are not limited thereto.
- the integrated development cloud server 100 may provide IoT service infrastructure information.
- the IoT service infrastructure information is an IoT cloud framework that queries the IoT service profile, collects information generated from the IoT device 110 through the IoT service edge 120, and transmits the collected information to the user terminal, and It may include an IoT edge framework that collects information generated from the IoT device 110 and transmits the collected information to the IoT cloud 130.
- the integrated development cloud server 100 may provide operating system information and library information.
- the operating system information may include a virtualization module for each of the plurality of operating systems
- the library information may include a virtualization module for each of the plurality of libraries.
- the integrated development cloud server 100 may select an operating system based on operating system information, and select a plurality of libraries based on library information.
- the integrated development cloud server 100 provides a plurality of development blocks based on IoT service infrastructure information, a selected operating system, and a plurality of selected libraries, receives at least one of the plurality of development blocks, and combines the selected at least one development block. You can do the programming.
- the plurality of development blocks may be composed of codes related to operations performed by the IoT device 110.
- the integrated development cloud server 100 defines an operation performed by the IoT device 110 on the IoT cloud framework based on a plurality of development blocks, and an operation performed by the IoT device 110 on the IoT edge framework. You can create an operating layer.
- the integrated development cloud server 100 may generate an abstraction layer including a virtualization module for each of the selected plurality of libraries and a virtualization module for each of the selected plurality of libraries.
- the integrated development cloud server 100 may perform source code optimization by analyzing a programmed source code based on at least one pattern.
- at least one pattern is a pattern for minimizing repetitive expressions, a pattern for minimizing a recursive function structure, a pattern for minimizing multiple index variables in a loop, a pattern for minimizing a double structure of a loop, a pattern for minimizing global variables in a loop, a pattern for minimizing unnecessary codes in a program, an infinite loop. It may include warning patterns, recommended patterns for using Float, recommended patterns for using Define, and recommended patterns for using Switch.
- the integrated development cloud server 100 may generate an IoT service profile based on programming.
- the IoT service profile is a kind of specification for IoT software.
- the IoT service profile may be registered in the service storage 140.
- the IoT service profile can be registered, viewed, modified, and deleted through the IoT service profile management of the IoT framework.
- the integrated development cloud server 100 may generate an emulator for verifying and debugging programmed source codes.
- the emulator may configure a hardware layer including a microcontroller unit (MCU) module, an interface module, a communication module, and a sensor module.
- MCU microcontroller unit
- the integrated development cloud server 100 may use an emulator to simulate power consumption that occurs when the IoT service profile is driven.
- the integrated development cloud server 100 may simulate power consumption based on power consumption during sensing of a sensor, power consumption of a processor, power consumption of a network module, and power consumption of a sensor in an idle state.
- the integrated development cloud server 100 may support an IoT integrated development environment (IDE).
- IDE IoT integrated development environment
- the IoT integrated development environment can generate XML based on the combined development blocks.
- the generated XML information may be referred to in the process of generating the source code.
- the IoT integrated development environment may operate in the form of a cloud that is not dependent on a physical computer.
- the integrated development environment was downloaded and executed on a local PC, and thus was subordinated to a specific PC.
- developers can develop through the development environment provided by the service by accessing the IoT integrated development environment (IDE) through a web browser.
- IDE IoT integrated development environment
- This IoT integrated development environment provides project (file) management/browsing function, editor function, automatic saving and revision function, collaboration function, web-based SSH terminal function, customized UI function, etc., and a virtual machine for development/build and execution. Alternatively, you can provide a container.
- the IoT device 110 requests registration of the IoT device 110 with the IoT service edge 120
- the registration request of the IoT device 110 is transmitted to the IoT cloud 130 through the IoT service edge 120.
- the IoT device 110 may receive the device ID generated in the IoT cloud 130 through the IoT service edge 120.
- the IoT device 110 may install IoT software downloaded by the IoT software agent 160.
- the IoT framework may be installed in the IoT service edge 120 and the IoT cloud 130.
- the IoT edge framework installed on the IoT service edge 120 performs an operation based on a command received from the IoT cloud 130, and the IoT service edge 120 is based on the IoT edge framework, and the IoT device 110 It is possible to collect the data generated in the data, integrate it and deliver it to the IoT cloud 130.
- the IoT cloud 130 queries the IoT service profile stored in the IoT service storage 140 according to the IoT cloud framework installed in the IoT cloud 130, and the IoT device 110 through the IoT service edge 120 It is possible to collect the necessary information generated from and deliver the finally collected information to the user terminal.
- the service storage 140 may register and store an IoT service profile.
- the IoT software version management database 150 can provide a function to share the source code with other users and download the source code of another user if necessary. have.
- the IoT software agent 160 may download IoT software through the integrated development cloud server 100.
- the integrated development cloud server 100 includes an IoT service infrastructure information management unit 210, an IoT device information management unit 220, a selection unit 230, a programming unit 240, and an IoT service profile generation unit 250. ), an emulation unit 260 and a simulation unit 270 may be included.
- the IoT service infrastructure information management unit 210 may provide IoT service infrastructure information.
- the IoT service infrastructure information is an IoT cloud framework that queries the IoT service profile, collects information generated from the IoT device 110 through the IoT service edge 120, and transmits the collected information to the user terminal, and It may include an IoT edge framework that collects information generated from the IoT device 110 and transmits the collected information to the IoT cloud 130.
- the IoT device information management unit 220 may provide operating system information and library information.
- the operating system information may include a virtualization module for each of the plurality of operating systems
- the library information may include a virtualization module for each of the plurality of libraries.
- the selection unit 230 may select an operating system based on operating system information, and may select a plurality of libraries based on the library information.
- the programming unit 240 provides a plurality of development blocks based on IoT service infrastructure information, a selected operating system, and a plurality of selected libraries, receives at least one of the plurality of development blocks, and combines the selected at least one development block for programming. Can be done.
- the plurality of development blocks may be composed of codes related to operations performed by the IoT device 110.
- the programming unit 240 generates a development block related to a task, which is a minimum unit including various functions performed by the IoT device 110, as an instance through the integrated development screen, Connect and allow programming.
- the programming unit 240 may include an operation layer generation unit 241, an abstraction layer generation unit 242, and a source code optimization unit 243.
- the operation layer generation unit 241 defines an operation performed by the IoT device 110 on the IoT cloud framework based on a plurality of development blocks, and an operation performed by the IoT device 110 on the IoT edge framework. You can create an operating layer.
- the abstraction layer generator 242 may generate an abstraction layer including a virtualization module for each of the plurality of selected libraries and a virtualization module for each of the selected plurality of libraries.
- the source code optimizer 243 may perform source code optimization by analyzing the programmed source code based on at least one pattern.
- at least one pattern is a pattern for minimizing repetitive expressions, a pattern for minimizing a recursive function structure, a pattern for minimizing multiple index variables in a loop, a pattern for minimizing a double structure of a loop, a pattern for minimizing global variables in a loop, a pattern for minimizing unnecessary codes in a program, an infinite loop. It may include warning patterns, recommended patterns for using Float, recommended patterns for using Define, and recommended patterns for using Switch.
- the IoT service profile generator 250 may generate an IoT service profile based on programming.
- the emulation unit 260 may generate an emulator for verifying and debugging the programmed source code.
- the emulator may configure a hardware layer including a microcontroller unit (MCU) module, an interface module, a communication module, and a sensor module.
- MCU microcontroller unit
- the simulation unit 270 may simulate power consumption generated when the IoT service profile is driven by using an emulator. For example, the simulation unit 270 may simulate power consumption based on power consumption during sensing of a sensor, power consumption of a processor, power consumption of a network module, and power consumption of a sensor in an idle state. .
- FIG. 3 is a flowchart illustrating a process of allowing a micro IoT device to operate in conjunction with an IoT service infrastructure according to an embodiment of the present invention.
- the micro IoT device 110 may operate in conjunction with the IoT service infrastructure based on the IoT service profile generated by the integrated development cloud server 100.
- the integrated development cloud server 100 may generate an IoT service profile (S301) and register the IoT service profile in the service storage 140 (S302).
- the service storage 140 may store an IoT service profile (S303) and transmit a service ID to the integrated development cloud server 100 (S304).
- the integrated development cloud server 100 may mount the IoT service on the IoT device 110 so that users or user groups can use the IoT service (S305).
- the IoT device 110 may boot the IoT device 110 (S306) and transmit a physical ID to the IoT service edge 120 for registration of the IoT device 110 (S307).
- the IoT service edge 120 registers the IoT device 110 and transmits information on the registered IoT device 110 to the cloud 130 (S308), and the IoT cloud 130 A device ID may be generated by registering information (S309), and the generated device ID may be transmitted to the IoT service edge 120 (S310).
- the IoT service edge 120 may update device ID information (S311) and transmit the device ID to the IoT device 110 (S312).
- steps S301 to S312 may be further divided into additional steps or combined into fewer steps, according to an embodiment of the present invention.
- some steps may be omitted as necessary, and the order between steps may be switched.
- the IoT device 110 can operate in conjunction with the IoT service infrastructure based on the IoT service profile, and generates an IoT service profile so that the IoT device 110 can operate in conjunction with the IoT service infrastructure.
- the process will be explained through the following.
- 4A and 4B are exemplary diagrams for explaining a process of programming in an integrated development cloud server according to an embodiment of the present invention.
- the IoT service edge 120 may receive and register a device ID 404 from the IoT cloud 130.
- the IoT device 110 may request registration of the IoT device 110 to the IoT service edge 120.
- the IoT service edge 120 may register a physical ID/service ID/development block ID list 401 for the IoT device 110.
- the IoT service edge 120 may register the physical ID as'ffffff1111', the service ID as'sp001', and the task ID list as '1, 2, 5'for the first IoT device 110. .
- the IoT cloud 130 may register information on the IoT device 110.
- the IoT cloud 130 may register a physical ID/service ID/task ID list 402 for the IoT device 110 in the same manner as the IoT service edge 120.
- the IoT cloud 130 may generate a device ID 403.
- the IoT cloud 130 generates a device ID 403 of'axA23dS1' for the IoT device 110 and transmits the generated device ID 403 to the IoT service edge 120, thereby providing an IoT service.
- the edge 120 may receive and register the device ID 404 from the IoT cloud 130.
- an integrated development cloud server 100 Is a first development block to fetch temperature information from a temperature sensor from a developer, a second development block to derive an average value of 100 generated data, and a third development block to transmit data to the IoT service edge 120. You can be chosen.
- the integrated development cloud server 100 may perform programming by combining selected development blocks, and may generate an IoT service profile based on the programming. In this case, the selected first blocks may consist of 1 to 3 operations performed by the IoT device 110.
- the integrated development cloud server 100 is a first development block for fetching temperature information from the temperature sensor, and the data is transferred to the IoT service edge 120.
- the third development block to be transmitted to may be selected.
- the integrated development cloud server 100 may perform programming 411 by combining the selected development blocks 410 and generate an IoT service profile based on the programming 411.
- the selected development blocks 410 may be configured as 1 to 3 operations to the operations performed by the IoT device 110, and the IoT service edge 120 may be configured by the IoT device 110 based on the generated IoT service profile. ) Can be updated (405).
- the integrated development cloud server 100 receives the temperature information from the temperature sensor from the administrator.
- a first development block to be fetched once a second and a second development block to transmit data to the IoT service edge 120 may be selected.
- the integrated development cloud server 100 may perform programming by combining selected development blocks, and may generate an IoT service profile based on the programming.
- the IoT cloud 130 may map and store the ID of the IoT service edge 120 through which data is transmitted from the IoT device 110 with the ID of the corresponding IoT device 110.
- IDE integrated development environment
- the cloud-based IoT integrated development environment (IDE, 500) can simulate how it operates and is managed when it is put into an actual service by utilizing the service profile of the provided IoT service IoT provider for development of the device 110. .
- IDE virtualized infrastructure
- a developer selects the contents of the environment from the IoT Framework & Libraries 501 and selects a task according to it. You can choose and combine them.
- the IoT application 502 may be loaded with a combined task, environment information, and application source code, and may be downloaded to the IoT device 110.
- 6A and 6B are exemplary diagrams for explaining a process of generating an emulator according to an embodiment of the present invention.
- the integrated development cloud server 100 may receive a selection of a specification 600 of the IoT device 110.
- the integrated development cloud server 100 may receive IoT service infrastructure information, operating system information, and library information selected from a user terminal.
- the integrated development cloud server 100 may provide a plurality of development blocks corresponding to the selected IoT service infrastructure information, operating system information, and library information to a user terminal.
- the integrated development cloud server 100 receives at least one of a plurality of development blocks, performs programming 601 through the IoT integrated development environment by combining at least one selected development block, and verifies and debugs the programmed source code. It is possible to create an emulator 602 to do so. In this case, various information generated during emulation may be visualized 603 and displayed.
- a default IoT OS is installed on a board support package (BSP) and a driver 612, and the board support package and driver 612 Is interlocked with the hardware layer 611.
- BSP board support package
- an abstraction layer 614 including a virtualization module for each of a plurality of libraries selected on the board support package and driver 612 and a virtualization module for each of the selected plurality of libraries is generated to It is possible to utilize IoT OS.
- the present invention may provide an emulation operation mode 620.
- the integrated development cloud server 100 corresponds to the hardware layer 611 and may generate and provide an emulator 621 including a microcontroller unit module, an interface module, a communication module, and a sensor module.
- IoT device 110 as the integrated development cloud server 100 provides the emulation operation mode 620, without the need to perform a test by installing an IoT service profile on a separate IoT device 110, through the emulator 621 It may provide an advantage of configuring the IoT device 110 in an environment and allowing it to be tested.
- FIG. 7 is an exemplary diagram showing a configuration for performing a simulation by creating a virtual IoT device according to an embodiment of the present invention.
- information generated from one IoT device 110 is recorded through software for simulating the IoT cloud 130 and the IoT service edge 120, and then cloned to a number of IoT devices. Processes such as testing and development of the IoT cloud 130 and the IoT service edge 120 can be simulated on one PC by simulating as if data occurs at 110.
- the software may support various protocols used in the IoT environment (eg, MQTT, MQTT-SN, MQTT-Broker, CoAP, HTTP/sClient, HTTP/sServer, ModbusoverTCP, BACnet/IPServer, etc.).
- MQTT MQTT
- MQTT-SN MQTT-Broker
- CoAP CoAP
- HTTP/sClient HTTP/sServer
- ModbusoverTCP BACnet/IPServer, etc.
- the integrated development cloud server 100 may use an emulator to simulate power consumption that occurs when the IoT service profile is driven.
- the integrated development cloud server 100 includes a reference voltage for the temperature and humidity sensor 801, time when sensing once, current consumption of the sensor board during sensing, current consumption of the sensor board in an idle state, and sensing. Power consumption may be simulated based on items 800 such as periods.
- the integrated development cloud server 100 includes items such as a reference voltage for the MCU board 803, time taken for data processing, current consumption of the sensor board during data processing, and current consumption during an idle state. Based on 802, power consumption can be simulated.
- the integrated development cloud server 100 includes a reference voltage for the network module 805, a time for transmitting data, a time for receiving data, a total current consumption of the network module for transmitting data, and a network for receiving data.
- the power consumption may be simulated based on items 804 such as the total current consumption of the module and the current consumption during an idle state.
- the integrated development cloud server 100 is based on the sensor 801, the MCU board 803, and the network module 805 constituting the IoT device 110, based on the total power consumption of the IoT device 110 810 can be calculated.
- the IoT integrated development environment may be programmed 900 by combining at least one development block using a visual programming method.
- the source code is generated, and the generated source code may be directly modified 910 by the user as needed.
- the integrated development cloud server 100 may perform source code optimization 920 by analyzing the programmed source code based on at least one pattern. For example, the integrated development cloud server 100 may propose an optimized algorithm such as "If the pattern is applied and improved, the power consumption can be reduced by 10mA/h.”
- FIG. 10 is a flowchart of a method of providing a cloud-based integrated development environment for developing software for micro-IoT devices that supports interworking with Internet of Things (IoT) service infrastructure in an integrated development cloud server according to an embodiment of the present invention to be.
- a method of providing a cloud-based integrated development environment for developing software for micro-IoT devices supporting interworking with Internet of Things (IoT) service infrastructure in the integrated development cloud server 100 shown in FIG. It includes steps processed in a time series by the integrated development cloud server 100 according to the embodiment shown in FIG. Therefore, even if omitted below, it is also applied to the integrated development cloud server 100 according to the embodiment illustrated in FIGS. 1 to 9.
- the integrated development cloud server 100 may store IoT service infrastructure information.
- the integrated development cloud server 100 may store operating system information and library information.
- the integrated development cloud server 100 may select an operating system based on the operating system information, and may receive a plurality of libraries selected based on the library information.
- step S1040 the integrated development cloud server 100 provides a plurality of development blocks based on IoT service infrastructure information, a selected operating system, and a plurality of selected libraries, receives at least one of the plurality of development blocks, and develops the selected at least one Programming can be performed by combining blocks.
- the integrated development cloud server 100 may generate an IoT service profile based on programming.
- steps S1010 to S1050 may be further divided into additional steps or combined into fewer steps, according to an embodiment of the present invention.
- some steps may be omitted as necessary, or the order of steps may be switched.
- the method of providing a cloud-based integrated development environment for the development of software for micro-IoT devices that supports interworking with the Internet of Things (IoT) service infrastructure in the integrated development cloud server is executed by a computer. It may be implemented in the form of a computer program stored in the medium or a recording medium including instructions executable by a computer.
- Computer-readable media can be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. Further, the computer-readable medium may include a computer storage medium. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버는 IoT 서비스 인프라 정보를 제공하는 IoT 서비스 인프라 정보 관리부, 운영체제 정보 및 라이브러리 정보를 제공하는 IoT 디바이스 정보 관리부, 상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 선택부, 상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 프로그래밍부 및 상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 IoT 서비스 프로파일 생성부를 포함한다.
Description
본 발명은 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법에 관한 것이다.
IoT는 무선 통신기술, 마이크로 전자 기계 시스템(Microelectromechanical System, 이하 MEMS) 및 마이크로 서비스 (Microservices)와 같은 기술 및 개발 방법론의 발달과 융합으로 다양한 사물이 네트워크로 연결되어 다양한 서비스를 제공하기 위한 IoT 서비스 인프라에 관한 것이다.
이러한 IoT 서비스 인프라에는 IoT의 사물(thing)에 해당되며 각종 데이터를 발생시키는 IoT 디바이스 계층과 이러한 IoT 디바이스에서 발생하는 데이터를 수집, 분석, 가공 등을 통해 서비스를 제공하는 서비스 계층으로 나눌 수 있다. IoT 디바이스 계층에는 디바이스에 실제 탑재되는 MCU, 메모리, 전력관리, 센서 등과 같은 MEMS와 이를 제어하기 위한 IoT 소프트웨어로 구성될 수 있다. 그리고 서비스 계층에는 수많은 IoT 디바이스에서 발생하는 데이터를 수집하고 통합하는 IoT 서비스 엣지(Edge)가 있고, IoT 서비스 엣지에서 통합된 데이터를 분석 및 가공해서 필요한 서비스를 제공하는 IoT 서비스 클라우드 서버가 존재하는 것이 일반적이다. 또한, 이러한 IoT 디바이스, IoT 서비스 엣지, IoT 서비스 클라우드 서버 사이에서의 네트워크를 통한 연결 또한 IoT 서비스 인프라에서 아주 중요한 역할을 한다.
IoT 디바이스는 이러한 IoT 서비스 인프라와 연계되어 구성될 때 그 가치가 구현된다. 그러므로, IoT 디바이스에 사용될 소프트웨어는 단순히 IoT 디바이스를 제어하기 위한 목적뿐만 아니라 IoT 서비스 인프라와의 연계를 고려하여 진행되어야만 한다. 또한, 이러한 물리적인 디바이스와 그 인터페이스를 다루는 임베디드 소프트웨어 개발 분야는 응용 소프트웨어 개발자가 쉽게 진입하기 어렵기 때문에 IoT 관련 기술 발전에 큰 걸림돌이 될 수 있다.
즉, IoT 소프트웨어 개발은 IoT 서비스 인프라와의 연계를 기본으로 진행되어야 하며, 이러한 복잡한 기술적 요구 및 임베디드 소프트웨어 개발에 특화된 요구를 최소한의 노력으로 만족하며, 보다 다양한 IoT 소프트웨어를 비주얼 프로그래밍 방식으로 쉽게 개발할 수 있는 IoT 통합개발환경(IDE)이 요구된다.
그리고, IoT 서비스 인프라와의 연계를 고려한 IoT 개발 환경을 구성하는 것 또한 어렵기 때문에 모든 개발환경이 모두 준비된 클라우드 기반 IoT 통합개발환경 (IDE)이 요구된다.
(특허문헌 1) 한국공개특허공보 제2009-0004210호 (2009.01.12. 공개)
IoT 서비스 인프라 정보, 선택된 운영 체제, 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하도록 하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
이러한 개발 블록들의 조합으로 IoT 소프트웨어를 쉽게 개발할 수 있도록 비주얼 프로그래밍 방식의 IoT 통합 개발 환경(IDE)을 제공하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
IoT 서비스 인프라 구축 및 IoT 소프트웨어 개발에 익숙하지 않은 응용 소프트웨어 개발자 또는 초보 임베디드 소프트웨어 개발자들이 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 비주얼 프로그래밍 방식으로, 웹기반의 클라우드 환경에서, 언제 어디에서나 손쉽게 개발하기 위한 방법을 제공하기 위한 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
고급 개발자들이 부차적인 개발에 노력과 시간을 소비하는 것을 줄이도록 하여 보다 핵심에 접근해서 개발을 진행할 수 있도록 IoT 통합 개발 환경(IDE)을 제공하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
특히, IoT 서비스 인프라 구축 및 연동은 방대한 지식 및 자원이 필요한 분야로서 경험이 없는 개인 또는 집단이 쉽게 이해하고 시작하기 어려운 분야이기 때문에 이러한 깊은 이해없이도 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 개발 할 수 있도록 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
그리고, 각종 IoT 디바이스에서 사용되는 다양한 임베디드 운영체제(Operating System, 이하 OS) 및 라이브러리는 종류도 다양하고 각기 사용하는 방법을 익혀야 하기 때문에 이러한 다양한 기능을 한 방법으로 추상화하여 개발자는 다양한 IoT 디바이스 환경에 대한 고려를 최소화하여 개발을 진행할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
더 나아가서 이렇게 개발된 IoT 소프트웨어는 IoT 서비스 인프라와 연계되며, IoT 통합 개발 환경(IDE) 또한 클라우드를 기반으로 하고 있기 때문에 개발 환경을 따로 개발자의 PC에 설치하지 않고도 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 개발할 수 있도록 환경을 제공하는 통합 개발 클라우드 서버 및 방법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 수단으로서, 본 발명의 일 실시예는, IoT 서비스 인프라 정보를 제공하는 IoT 서비스 인프라 정보 관리부, 운영체제 정보 및 라이브러리 정보를 제공하는 IoT 디바이스 정보 관리부, 상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 선택부, 상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 프로그래밍부 및 상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 IoT 서비스 프로파일 생성부를 포함하는 통합 개발 클라우드 서버를 제공할 수 있다.
본 발명의 다른 실시예는, IoT 서비스 인프라 정보를 저장하는 단계, 운영체제 정보 및 라이브러리 정보를 저장하는 단계, 상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 단계, 상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 단계 및 상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 단계를 포함하는 통합 개발 방법을 제공할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, IoT 서비스 인프라에 대한 연동에 대한 구체적인 설계 및 개발 없이 IoT 서비스 인프라와 연동되는 IoT 소프트웨어를 쉽게 개발할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
다양한 임베디드 OS 및 디바이스 라이브러리와 같이 특정 하드웨어에 종속되지 않고 IoT 소프트웨어를 쉽게 작성 할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
클라우드 환경에서 웹기반으로 개발이 가능하고 소스 코드 또한 내장된 버전 관리 시스템을 통해 관리가 되기 때문에 별도의 버전 관리 시스템을 구비하지 않아도 되는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
비주얼 프로그래밍 방식으로 IoT 소프트웨어를 쉽게 개발하고 필요시 직접 개발된 소스 코드를 편집할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
클라우드 환경에서 IoT 소프트웨어를 작성하고, 작성된 IoT 소프트웨어를 IoT 소프트웨어 에이전트 프로그램을 통해 직접 IoT 디바이스에 쉽게 설치할 수 있도록 하는 통합 개발 클라우드 서버 및 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 통합 개발 환경 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 초소형 IoT 디바이스가 IoT 서비스 인프라와의 연동하여 작동되도록 하는 전체 과정을 설명하기 위한 동작 흐름도이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 프로그래밍을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 일 실시예에 따른 클라우드기반의 IoT 통합 개발 환경 내에서 태스크를 관리하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 에뮬레이터를 생성하는 과정을 설명하기 위한 예시적인 도면이다.
도 7은 본 발명의 일 실시예에 따른 가상의 IoT 디바이스를 생성하여 시뮬레이션을 수행하기 위한 구성을 도시한 예시적인 도면이다.
도 8a 내지 도 8d는 본 발명의 일 실시예에 따른 시뮬레이션을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 9는 본 발명의 일 실시예에 따른 최적의 소스 코드를 제공하는 과정을 설명하기 위한 예시적인 도면이다.
도 10은 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 통합 개발 환경 시스템의 구성도이다. 도 1을 참조하면, 통합 개발 환경 시스템(1)은 통합 개발 클라우드 서버(100), IoT 디바이스(110), IoT 서비스 엣지(120), IoT 클라우드(130), IoT 서비스 저장소(140) 및 IoT 소프트웨어 버전관리 데이터베이스를 포함할 수 있다. 통합 개발 클라우드 서버(100), IoT 디바이스(110), IoT 서비스 엣지(120), IoT 클라우드(130), IoT 서비스 저장소(140) 및 IoT 소프트웨어 버전관리 데이터베이스는 통합 개발 환경 시스템(1)에 의하여 제어될 수 있는 구성요소들을 예시적으로 도시한 것이다.
도 1의 통합 개발 환경 시스템(1)의 각 구성요소들은 일반적으로 네트워크(network)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 통합 개발 클라우드 서버(100)는 IoT 디바이스(110)와 동시에 또는 시간 간격을 두고 연결될 수 있다.
네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보를 제공할 수 있다. 여기서, IoT 서비스 인프라 정보는 IoT 서비스 프로파일을 조회하고, IoT 서비스 엣지(120)를 통해 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 사용자 단말로 전송하도록 하는 IoT 클라우드 프레임워크 및 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 IoT 클라우드(130)로 전송하도록 하는 IoT 엣지 프레임워크를 포함할 수 있다.
통합 개발 클라우드 서버(100)는 운영체제 정보 및 라이브러리 정보를 제공할 수 있다. 여기서, 운영체제 정보는 복수의 운영체제 각각에 대한 가상화 모듈을 포함하고, 라이브러리 정보는 복수의 라이브러리 각각에 대한 가상화 모듈을 포함할 수 있다.
통합 개발 클라우드 서버(100)는 운영체제 정보에 기초하여 운영체제를 선택받고, 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받을 수 있다.
통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보, 선택된 운영체제 및 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행할 수 있다. 여기서, 복수의 개발 블록은 IoT 디바이스(110)가 수행하는 동작에 관한 코드로 이루어진 것일 수 있다.
통합 개발 클라우드 서버(100)는 복수의 개발 블록에 기초하여 IoT 클라우드 프레임워크 상에서 IoT 디바이스(110)가 수행하는 동작을 정의하고, IoT 엣지 프레임워크 상에서 IoT 디바이스(110)가 수행하는 동작을 정의하는 운용 계층을 생성할 수 있다.
통합 개발 클라우드 서버(100)는 선택된 복수의 라이브러리 각각에 대한 가상화 모듈 및 선택된 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성할 수 있다.
통합 개발 클라우드 서버(100)는 적어도 하나의 패턴에 기초하여 프로그래밍된 소스 코드를 분석하여 소스 코드 최적화를 수행할 수 있다. 여기서, 적어도 하나의 패턴은 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 등을 포함할 수 있다.
통합 개발 클라우드 서버(100)는 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다. 여기서, IoT 서비스 프로파일은 IoT 소프트웨어에 대한 일종의 명세서로, IoT 통합 개발 환경에서 제공하는 화면을 통해 IoT 서비스 프로파일이 작성 및 등록되면, IoT 서비스 프로파일이 서비스 저장소(140)에 등록될 수 있다. IoT 서비스 프로파일은 IoT 프레임워크의 IoT 서비스 프로파일 관리를 통해 등록, 조회, 수정, 삭제 등이 가능하다.
통합 개발 클라우드 서버(100)는 프로그래밍된 소스 코드를 검증하고 디버깅하기 위한 에뮬레이터를 생성할 수 있다. 여기서, 에뮬레이터는 마이크로컨트롤러 유닛(MCU: Micro Controller Unit) 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성할 수 있다.
통합 개발 클라우드 서버(100)는 에뮬레이터를 이용하여 IoT 서비스 프로파일의 구동 시 발생하는 전력 소모를 시뮬레이션할 수 있다.
통합 개발 클라우드 서버(100)는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 전력 소모를 시뮬레이션할 수 있다.
이를 위해, 통합 개발 클라우드 서버(100)는 IoT 통합 개발 환경(IDE)를 지원할 수 있다. IoT 통합 개발 환경은 조합된 개발 블록을 기반으로 XML을 생성시킬 수 있다. 이 때, 생성된 XML의 정보는 소스 코드를 생성하는 과정에서 참고될 수 있다.
여기서, IoT 통합 개발 환경(IDE)은 물리적인 컴퓨터에 종속되지 않는 클라우드의 형태로 동작할 수 있다. 종래의 경우, 통합 개발 환경은 로컬 PC에 다운로드되어 실행됨으로써, 특정 PC에 종속되었다. 그러나 본 발명에서 제안하는 클라우드 기반의 IoT 통합 개발 환경의 경우, 개발자들이 웹 브라우저를 통해 IoT 통합 개발 환경(IDE)에 접속함으로써, 해당 서비스에서 제공하는 개발 환경을 통해 개발을 할 수 있게 된다. 즉, 개발자들은 인터넷에 연결 가능한 곳이라면, 클라우드 기반의 IoT 통합 개발 환경을 통해 기존의 개발 환경을 그대로 불러올 수 있다.
이러한 IoT 통합 개발 환경은 프로젝트(파일) 관리/브라우징 기능, 편집기 기능, 자동 저장 및 리비전 기능, 협업 기능, 웹 기반 SSH 터미널 기능, 맞춤형 UI 기능 등을 제공하고, 개발/빌드 및 실행을 위한 가상머신 또는 컨테이너를 제공할 수 있다.
한편, IoT 디바이스(110)가 IoT 서비스 엣지(120)로 IoT 디바이스(110)의 등록을 요청하면, IoT 디바이스(110)의 등록 요청은 IoT 서비스 엣지(120)를 통해 IoT 클라우드(130)로 전달될 수 있다. 이 때, IoT 디바이스(110)는 IoT 클라우드(130)에서 생성된 디바이스 ID를 IoT 서비스 엣지(120)를 통해 수신할 수 있다.
IoT 디바이스(110)는 IoT 소프트웨어 에이전트(160)에 의해 다운로드된 IoT 소프트웨어가 설치될 수 있다.
IoT 서비스 엣지(120) 및 IoT 클라우드(130)에는 IoT 프레임워크가 설치될 수 있다. IoT 서비스 엣지(120)에 설치되는 IoT 엣지 프레임워크는 IoT 클라우드(130)로부터 수신한 명령에 기초하여 동작을 수행하며, IoT 서비스 엣지(120)는 IoT 엣지 프레임워크에 따라, IoT 디바이스(110)에서 발생되는 데이터를 수집하고, 이를 통합하여 IoT 클라우드(130)로 전달할 수 있다. IoT 클라우드(130)는, IoT 클라우드(130)에 설치되는 IoT 클라우드 프레임워크에 따라, IoT 서비스 저장소(140)에 저장된 IoT 서비스 프로파일을 조회하고, IoT 서비스 엣지(120)를 통해 IoT 디바이스(110)에서 발생된 필요 정보를 수집하고, 최종적으로 수집된 정보를 사용자 단말로 전달할 수 있다.
서비스 저장소(140)는 IoT 서비스 프로파일을 등록 및 저장할 수 있다.
IoT 소프트웨어 버전 관리 데이터베이스(150)는 통합 개발 클라우드 서버(100)에서 생성된 소스 코드가 업로드되면, 소스 코드를 다른 사용자와 공유하고, 필요시 다른 사용자의 소스 코드를 다운로드하도록 하는 기능을 제공할 수 있다.
IoT 소프트웨어 에이전트(160)는 통합 개발 클라우드 서버(100)를 통해 IoT 소프트웨어를 다운로드할 수 있다.
도 2는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버의 구성도이다. 도 2를 참조하면, 통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보 관리부(210), IoT 디바이스 정보 관리부(220), 선택부(230), 프로그래밍부(240), IoT 서비스 프로파일 생성부(250), 에뮬레이션부(260) 및 시뮬레이션부(270)를 포함할 수 있다.
IoT 서비스 인프라 정보 관리부(210)는 IoT 서비스 인프라 정보를 제공할 수 있다. 여기서, IoT 서비스 인프라 정보는 IoT 서비스 프로파일을 조회하고, IoT 서비스 엣지(120)를 통해 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 사용자 단말로 전송하도록 하는 IoT 클라우드 프레임워크 및 IoT 디바이스(110)로부터 생성된 정보를 수집하고, 수집된 정보를 IoT 클라우드(130)로 전송하도록 하는 IoT 엣지 프레임워크를 포함할 수 있다.
IoT 디바이스 정보 관리부(220)는 운영체제 정보 및 라이브러리 정보를 제공할 수 있다. 여기서, 운영체제 정보는 복수의 운영체제 각각에 대한 가상화 모듈을 포함하고, 라이브러리 정보는 복수의 라이브러리 각각에 대한 가상화 모듈을 포함할 수 있다.
선택부(230)는 운영체제 정보에 기초하여 운영체제를 선택받고, 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받을 수 있다.
프로그래밍부(240)는 IoT 서비스 인프라 정보, 선택된 운영체제 및 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행할 수 있다. 여기서, 복수의 개발 블록은 IoT 디바이스(110)가 수행하는 동작에 관한 코드로 이루어진 것일 수 있다. 예를 들어, 프로그래밍부(240)는 IoT 디바이스(110)에서 수행되는 다양한 기능을 포함하는 최소 단위인 태스트(Task)에 관한 개발 블록을 통합 개발 화면을 통해 인스턴스로서 생성한 뒤, 서로 필요에 따라 연결하여 프로그래밍할 수 있도록 한다.
프로그래밍부(240)는 운용 계층 생성부(241), 추상화 계층 생성부(242) 및 소스 코드 최적화부(243)를 포함할 수 있다.
운용 계층 생성부(241)는 복수의 개발 블록에 기초하여 IoT 클라우드 프레임워크 상에서 IoT 디바이스(110)가 수행하는 동작을 정의하고, IoT 엣지 프레임워크 상에서 IoT 디바이스(110)가 수행하는 동작을 정의하는 운용 계층을 생성할 수 있다.
추상화 계층 생성부(242)는 선택된 복수의 라이브러리 각각에 대한 가상화 모듈 및 선택된 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성할 수 있다.
소스 코드 최적화부(243)는 적어도 하나의 패턴에 기초하여 프로그래밍된 소스 코드를 분석하여 소스 코드 최적화를 수행할 수 있다. 여기서, 적어도 하나의 패턴은 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 등을 포함할 수 있다.
IoT 서비스 프로파일 생성부(250)는 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다.
에뮬레이션부(260)는 프로그래밍된 소스 코드를 검증하고 디버깅하기 위한 에뮬레이터를 생성할 수 있다. 여기서, 에뮬레이터는 마이크로컨트롤러 유닛(MCU: Micro Controller Unit) 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성할 수 있다.
시뮬레이션부(270)는 에뮬레이터를 이용하여 IoT 서비스 프로파일의 구동 시 발생하는 전력 소모를 시뮬레이션할 수 있다. 예를 들어, 시뮬레이션부(270)는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 전력 소모를 시뮬레이션할 수 있다.
도 3은 본 발명의 일 실시예에 따른 초소형 IoT 디바이스가 IoT 서비스 인프라와의 연동하여 동작되도록 하는 과정을 설명하기 위한 동작 흐름도이다. 도 3을 참조하면, 초소형 IoT 디바이스(110)는 통합 개발 클라우드 서버(100)에 의해 생성된 IoT 서비스 프로파일에 기초하여 IoT 서비스 인프라와 연동되어 동작할 수 있다.
통합 개발 클라우드 서버(100)는 IoT 서비스 프로파일을 생성하고(S301), IoT 서비스 프로파일을 서비스 저장소(140)에 등록할 수 있다(S302).
서비스 저장소(140)는 IoT 서비스 프로파일을 저장하고(S303), 서비스 ID를 통합 개발 클라우드 서버(100)로 전송할 수 있다(S304).
통합 개발 클라우드 서버(100)는 IoT 서비스가 사용자나 사용자 그룹들이 이용할 수 있도록 IoT 디바이스(110)에 마운트(mount)할 수 있다(S305).
IoT 디바이스(110)는 IoT 디바이스(110)를 부팅하고(S306), IoT 디바이스(110)의 등록을 위해 물리적(physical) ID를 IoT 서비스 엣지(120)로 전송할 수 있다(S307).
IoT 서비스 엣지(120)는 IoT 디바이스(110)를 등록하고, 등록된 IoT 디바이스(110)에 대한 정보를 클라우드(130)로 전송하고(S308), IoT 클라우드(130)는 수신한 IoT 디바이스에 대한 정보를 등록하여 디바이스 ID를 생성하고(S309), 생성된 디바이스 ID를 IoT 서비스 엣지(120)로 전송할 수 있다(S310).
IoT 서비스 엣지(120)는 디바이스 ID 정보를 업데이트하고(S311), 디바이스 ID를 IoT 디바이스(110)로 전송할 수 있다(S312).
상술한 설명에서, 단계 S301 내지 S312는 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
이러한 과정을 거쳐, IoT 디바이스(110)는 IoT 서비스 프로파일에 기초하여 IoT 서비스 인프라와 연동하여 동작할 수 있으며, IoT 디바이스(110)가 IoT 서비스 인프라와 연동하여 동작할 수 있도록 IoT 서비스 프로파일을 생성하는 과정에 대해서는 다음을 통해 설명하도록 한다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 프로그래밍을 수행하는 과정을 설명하기 위한 예시적인 도면이다.
도 4a를 참조하면, IoT 서비스 엣지(120)는 IoT 클라우드(130)로부터 디바이스 ID(404)를 수신하여 등록할 수 있다.
예를 들어, IoT 디바이스(110)가 부팅되면, IoT 디바이스(110)는 IoT 디바이스(110)의 등록을 IoT 서비스 엣지(120)로 요청할 수 있다. IoT 서비스 엣지(120)는 IoT 디바이스(110)에 대한 물리적(Physical) ID/서비스 ID/개발 블록 ID 리스트 (401)를 등록할 수 있다. 예를 들어, IoT 서비스 엣지(120)는 제 1 IoT 디바이스(110)에 대해 물리적 ID를 'ffffff1111', 서비스 ID를 'sp001', 태스크 ID 리스트를 '1, 2, 5'로 등록할 수 있다.
이후, IoT 서비스 엣지(120)가 IoT 디바이스(110)에 대한 정보를 IoT 클라우드(130)로 전송하면, IoT 클라우드(130)는 IoT 디바이스(110)에 대한 정보를 등록할 수 있다. 예를 들어, IoT 클라우드(130)는 IoT 서비스 엣지(120)와 동일하게, IoT 디바이스(110)에 대한 물리적(Physical) ID/서비스 ID/태스크 ID 리스트 (402)를 등록할 수 있다.
IoT 클라우드(130)는 IoT 디바이스(110)의 등록이 완료되면, 디바이스 ID(403)를 생성할 수 있다. 예를 들어, IoT 클라우드(130)는 IoT 디바이스(110)에 대해 'axA23dS1'의 디바이스 ID(403)를 생성하고, 생성된 디바이스 ID(403)를 IoT 서비스 엣지(120)로 전송함으로써, IoT 서비스 엣지(120)가 IoT 클라우드(130)로부터 디바이스 ID(404)를 수신하여 등록할 수 있다.
도 4b를 참조하면, 관리자가 온도 센서에서 온도 정보를 가져오고, 발생한 100개의 데이터의 평균값을 도출하고, 데이터를 IoT 서비스 엣지(120)로 전송하길 원하는 경우(410), 통합 개발 클라우드 서버(100)는 개발자로부터 온도 센서에서 온도 정보를 가져오도록 하는 제 1 개발 블록, 발생한 100개의 데이터의 평균값을 도출하도록 하는 제 2 개발 블록, 데이터를 IoT 서비스 엣지(120)로 전송하도록 하는 제 3 개발 블록을 선택받을 수 있다. 통합 개발 클라우드 서버(100)는 선택된 개발 블록들을 조합하여 프로그래밍을 수행하고, 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다. 이 때, 선택된 제 1 블록들은 IoT 디바이스(110)가 수행하는 1 내지 3 동작으로 구성될 수 있다.
이후, 개발자가 온도 데이터의 평균 정보가 아닌 실시간 온도 데이터를 전송받길 원하는 경우, 통합 개발 클라우드 서버(100)는 온도 센서에서 온도 정보를 가져오도록 하는 제 1 개발 블록, 데이터를 IoT 서비스 엣지(120)로 전송하도록 하는 제 3 개발 블록을 선택받을 수 있다. 통합 개발 클라우드 서버(100)는 선택된 개발 블록들(410)을 조합하여 프로그래밍(411)을 수행하고, 프로그래밍(411)에 기초하여 IoT 서비스 프로파일을 생성할 수 있다. 이 때, 선택된 개발 블록들(410)은 IoT 디바이스(110)가 수행하는 동작에 1 내지 3 동작으로 구성될 수 있으며, IoT 서비스 엣지(120)는 생성된 IoT 서비스 프로파일에 기초하여 IoT 디바이스(110)에 대한 정보를 업데이트(405)할 수 있다.
이와 달리, 관리자가 온도 센서에서 온도 정보를 1초에 한번씩 가져오도록 하고, 데이터를 IoT 서비스 엣지(120)로 전송하길 원하는 경우, 통합 개발 클라우드 서버(100)는 관리자로부터 온도 센서에서 온도 정보를 1초에 한번씩 가져오도록 하는 제 1 개발 블록, 데이터를 IoT 서비스 엣지(120)로 전송하도록 하는 제 2 개발 블록을 선택받을 수 있다.
통합 개발 클라우드 서버(100)는 선택된 개발 블록들을 조합하여 프로그래밍을 수행하고, 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다.
IoT 클라우드(130)는 IoT 디바이스(110)로부터 데이터가 전송되는 IoT 서비스 엣지(120)의 ID를 해당 IoT 디바이스(110)의 ID와 매핑하여 저장할 수 있다.
도 5는 본 발명의 일 실시예에 따른 클라우드기반의 IoT 통합 개발 환경 내에서 태스크를 관리하는 과정을 설명하기 위한 예시적인 도면이다. 도 5를 참조하면, 클라우드 기반의 IoT 통합 개발 환경(IDE, 500)은 IoT 서비스 제공자의 서비스 프로파일을 제공받을 수 있다.
여기서, 클라우드 기반의 IoT 통합 개발 환경(IDE, 500)은 제공받은 IoT 서비스IoT 제공자의 서비스 프로파일을 디바이스(110)의 개발에 활용하여 실제 서비스에 투입되면 어떻게 동작하고, 관리되는지를 시뮬레이션할 수 있다.
예를 들어, 개발자는 클라우드 기반의 IoT 통합 개발 환경(IDE, 500)를 통해 IoT 프레임워크(Framework)&라이브러리(Libraries)(501)에서 환경에 대한 내용을 선택하고, 그에 맞는 태스크(task)를 선택하여 조합할 수 있다.
IoT 애플리케이션(502)은 조합된 태스크, 환경 정보와 애플리케이션 소스 코드(application source code)가 탑재되어, IoT 디바이스(110)에 다운로드될 수 있다. 도 6a 및 도 6b는 본 발명의 일 실시예에 따른 에뮬레이터를 생성하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a를 참조하면, 통합 개발 클라우드 서버(100)는 IoT 디바이스(110)의 스펙(600)을 선택받을 수 있다. 예를 들어, 통합 개발 클라우드 서버(100)는 사용자 단말로부터 IoT 서비스 인프라 정보, 운영체제 정보 및 라이브러리 정보 등을 선택받을 수 있다.
통합 개발 클라우드 서버(100)는 선택된 IoT 서비스 인프라 정보, 운영체제 정보 및 라이브러리 정보에 대응하는 복수의 개발 블록을 사용자 단말로 제공할 수 있다.
통합 개발 클라우드 서버(100)는 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 IoT 통합 개발 환경을 통해 프로그래밍(601)을 수행하고, 프로그래밍된 소스 코드를 검증하고 디버깅하기 위한 에뮬레이터(602)를 생성할 수 있다. 이 때, 에뮬레이션시 발생되는 다양한 정보는 가시화(603)되어 표시될 수 있다.
도 6b의 실제 IoT 디바이스(110)의 동작 모드(610)를 살펴보면, 디폴트 IoT OS가 보드 서포트 패키지(BSP: Board Support Package) 및 드라이버(612) 상에 설치되고, 보드 서포트 패키지 및 드라이버(612)는 하드웨어 계층(611)과 연동된다.
종래의 IoT 디바이스의 경우, 보드 제조사가 제공하는 디폴트 IoT OS에서 구동되는 IoT 소프트웨어를 개발해야만 했다. 즉, 종래의 경우, 보드 제조사가 제공하는 디폴트 IoT OS 이외의 IoT OS를 활용하는 것이 불가능했다.
그러나, 본 발명에서는 보드 서포트 패키지 및 드라이버(612) 상에 선택된 복수의 라이브러리 각각에 대한 가상화 모듈 및 선택된 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층(614)을 생성하여 디폴트 IoT OS 이외의 IoT OS를 활용하는 것이 가능하다.
즉, 본 발명에서는 디폴트 IoT OS 이외의 다양한 IoT OS에서 구동되는 IoT 소프트웨어를 개발할 수 있다.
또한, 본 발명은 에뮬레이션 동작 모드(620)를 제공할 수 있다. 통합 개발 클라우드 서버(100)는 하드웨어 계층(611)에 대응하는 것으로서, 마이크로컨트롤러 유닛 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 에뮬레이터(621)를 생성 및 제공할 수 있다.IoT 디바이스(110)의 통합 개발 클라우드 서버(100)가 에뮬레이션 동작 모드(620)를 제공함에 따라, 별도의 IoT 디바이스(110)에 IoT 서비스 프로파일을 설치하여 테스트를 수행할 필요없이, 에뮬레이터(621)를 통해 가상의 환경에서 IoT 디바이스(110)를 구성하여 테스트할 수 있도록 하는 장점을 제공할 수 있다.
도 7은 본 발명의 일 실시예에 따른 가상의 IoT 디바이스를 생성하여 시뮬레이션을 수행하기 위한 구성을 도시한 예시적인 도면이다. 도 7을 참조하면, IoT 클라우드(130) 및 IoT 서비스 엣지(120)를 시뮬레이션하기 위한 소프트웨어를 통해 하나의 IoT 디바이스(110)에서 발생하는 정보를 리코딩한 뒤, 이를 복제(Cloning)하여 수많은 IoT 디바이스(110)에서 데이터가 발생하는 것처럼 모사해서 IoT 클라우드(130) 및 IoT 서비스 엣지(120)의 테스팅 및 개발과 같은 과정을 하나의 PC에서 시뮬레이션할 수 있다.
상기 소프트웨어는 IoT 환경에서 사용되는 다양한 프로토콜(예컨대, MQTT, MQTT-SN, MQTT-Broker, CoAP, HTTP/sClient, HTTP/sServer, ModbusoverTCP, BACnet/IPServer 등)을 지원할 수 있다. 각 단계에 대한 설명은 하기와 같다.
-MQTT, CoAP,Modbus, BACnet, HTTP Learner를 통해서 IoT 디바이스(110)와 IoT 플랫폼, 센서, 다른 디바이스와의 통신 패킷을 리코딩한다.
- 이렇게 리코딩한 데이터를 하나의 템플릿으로 사용하여, 수많은 IoT 센서들 또는 IoT 서비스 엣지(120)를 가상으로 복제(Cloning)한다.
- 가상으로 복제(Cloning)한 IoT 디바이스(110)들을 동작(Running)시킨 후 발생하는 데이터를 기반으로 IoT 서비스 엣지(120) 및 IoT 클라우드(130)를 개발 및 테스트를 진행한다.
도 8a 내지 도 8d는 본 발명의 일 실시예에 따른 시뮬레이션을 수행하는 과정을 설명하기 위한 예시적인 도면이다. 통합 개발 클라우드 서버(100)는 에뮬레이터를 이용하여 IoT 서비스 프로파일의 구동 시 발생하는 전력 소모를 시뮬레이션할 수 있다.
도 8a를 참조하면, 통합 개발 클라우드 서버(100)는 온습도 센서(801)에 대해 기준전압, 한번 센싱시 시간, 센싱시 센서보드의 전류 소모량, 아이들(Idle) 상태시 센서보드의 전류 소모량, 센싱 주기 등의 항목(800)에 기초하여 전력 소모를 시뮬레이션할 수 있다.
도 8b를 참조하면, 통합 개발 클라우드 서버(100)는 MCU 보드(803)에 대해 기준전압, 데이터 프로세싱에 걸리는 시간, 데이터 프로세싱시 센서보드의 전류 소모량, 아이들(Idle) 상태시 전류 소모량 등의 항목(802)에 기초하여 전력 소모를 시뮬레이션할 수 있다.
도 8c를 참조하면, 통합 개발 클라우드 서버(100)는 네트워크 모듈(805)에 대해 기준 전압, 데이터 송신하는데 걸리는 시간, 데이터 수신하는데 걸리는 시간, 데이터 송신하는데 네트워크 모듈의 토탈 전류 소모량, 데이터 수신하는데 네트워크 모듈의 토탈 전류 소모량, 아이들(Idle) 상태시 전류 소모량 등의 항목(804)에 기초하여 전력 소모를 시뮬레이션할 수 있다.
도 8d를 참조하면, 통합 개발 클라우드 서버(100)는 IoT 디바이스(110)를 구성하는 센서(801), MCU 보드(803), 네트워크 모듈(805)에 기초하여 IoT 디바이스(110)의 전체 전력 소모량(810)을 산출할 수 있다.
도 9는 본 발명의 일 실시예에 따른 최적의 소스 코드를 제공하는 과정을 설명하기 위한 예시적인 도면이다. 도 9를 참조하면, IoT 통합 개발 환경은 비주얼 프로그래밍 방식으로 적어도 하나의 개발 블록을 조합하여 프로그래밍(900)할 수 있다. 이 과정에서 소스 코드가 생성되며, 생성된 소스 코드는 필요에 따라 사용자에 의해 직접 수정(910)될 수 있다.
통합 개발 클라우드 서버(100)는 적어도 하나의 패턴에 기초하여 프로그래밍된 소스 코드를 분석하여 소스 코드 최적화(920)를 수행할 수 있다. 예를 들어, 통합 개발 클라우드 서버(100)는 "해당 패턴을 적용하여 개선하면 전력 소모량을 10mA/h를 줄일 수 있습니다."와 같이 최적화된 알고리즘을 제안할 수 있다.
도 10은 본 발명의 일 실시예에 따른 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법의 순서도이다. 도 10에 도시된 통합 개발 클라우드 서버(100)에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 도 1 내지 도 9에 도시된 실시예에 따라 통합 개발 클라우드 서버(100)에 의해 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 1 내지 도 9에 도시된 실시예에 따른 통합 개발 클라우드 서버(100)에도 적용된다.
단계 S1010에서 통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보를 저장할 수 있다.
단계 S1020에서 통합 개발 클라우드 서버(100)는 운영체제 정보 및 라이브러리 정보를 저장할 수 있다.
단계 S1030에서 통합 개발 클라우드 서버(100)는 운영체제 정보에 기초하여 운영체제를 선택받고, 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받을 수 있다.
단계 S1040에서 통합 개발 클라우드 서버(100)는 IoT 서비스 인프라 정보, 선택된 운영체제 및 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 복수의 개발 블록 중 적어도 하나를 선택받고, 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행할 수 있다.
단계 S1050에서 통합 개발 클라우드 서버(100)는 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성할 수 있다.
상술한 설명에서, 단계 S1010 내지 S1050은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
도 1 내지 도 10을 통해 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 또한, 도 1 내지 도 10을 통해 통합 개발 클라우드 서버에서 IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램의 형태로도 구현될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
Claims (13)
- IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버에 있어서,IoT 서비스 인프라 정보를 제공하는 IoT 서비스 인프라 정보 관리부;운영체제 정보 및 라이브러리 정보를 제공하는 IoT 디바이스 정보 관리부;상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 선택부;상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 프로그래밍부; 및상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 IoT 서비스 프로파일 생성부를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 1 항에 있어서,상기 IoT 서비스 인프라 정보는 상기 IoT 서비스 프로파일을 조회하고, IoT 서비스 엣지를 통해 IoT 디바이스로부터 생성된 정보를 수집하고, 상기 수집된 정보를 사용자 단말로 전송하도록 하는 IoT 클라우드 프레임워크 및 IoT 디바이스로부터 생성된 정보를 수집하고, 상기 수집된 정보를 IoT 클라우드로 전송하도록 하는 IoT 엣지 프레임워크를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 1 항에 있어서,상기 운영체제 정보는 복수의 운영체제 각각에 대한 가상화 모듈을 포함하고, 상기 라이브러리 정보는 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 것인, 통합 개발 클라우드 서버.
- 제 2 항에 있어서,상기 복수의 개발 블록은 상기 IoT 디바이스가 수행하는 동작에 관한 코드로 이루어진 것인, 통합 개발 클라우드 서버.
- 제 4 항에 있어서상기 프로그래밍부는 상기 복수의 개발 블록에 기초하여 상기 IoT 클라우드 프레임워크 상에서 상기 IoT 디바이스가 수행하는 동작을 정의하고, 상기 IoT 엣지 프레임워크 상에서 상기 IoT 디바이스가 수행하는 동작을 정의하는 운용 계층을 생성하는 운용 계층 생성부를 포함하는 것인, 통합 개발 클라우드 서버
- 제 3 항에 있어서,상기 프로그래밍부는 상기 선택된 복수의 라이브러리 각각에 대한 가상화 모듈 및 상기 선택된 복수의 라이브러리 각각에 대한 가상화 모듈을 포함하는 추상화 계층을 생성하는 추상화 계층 생성부를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 1 항에 있어서,상기 프로그래밍부는 적어도 하나의 패턴에 기초하여 상기 프로그래밍된 소스 코드를 분석하여 소스 코드 최적화를 수행하는 소스 코드 최적화부를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 7 항에 있어서,상기 적어도 하나의 패턴은 반복적인 연산식 최소화 패턴, 재귀함수 구조 최소화 패턴, 반복문의 다수 인덱스 변수 최소화 패턴, 반복문 이중 구조 최소화 패턴, 반복문 내 Global 변수 최소화 패턴, 프로그램 내 불필요한 코드 최소화 패턴, 무한 루프 경고 패턴, Float 사용 권장 패턴, Define 사용 권장 패턴, Switch 사용 권장 패턴 중 적어도 하나를 포함하는 것인, 통합 개발 클라우드 서버.
- 제 1 항에 있어서,상기 프로그래밍된 소스 코드를 검증하고 디버깅하기 위한 에뮬레이터를 생성하는 에뮬레이션부를 더 포함하는 것인, 통합 개발 클라우드 서버.
- 제 9 항에 있어서,상기 에뮬레이터는 마이크로컨트롤러 유닛(MCU: Micro Controller Unit) 모듈, 인터페이스 모듈, 통신 모듈 및 센서 모듈을 포함하는 하드웨어 계층을 구성하는 것인, 통합 개발 클라우드 서버.
- 제 9 항에 있어서,상기 에뮬레이터를 이용하여 상기 IoT 서비스 프로파일의 구동 시 발생하는 전력 소모를 시뮬레이션하는 시뮬레이션부를 더 포함하는 것인, 통합 개발 클라우드 서버.
- 제 11 항에 있어서,상기 시뮬레이션부는 센서의 센싱 시의 전력 소모량, 프로세서의 전력 소모량, 네트워크 모듈의 전력 소모량 및 센서의 아이들(idle) 상태에서의 전력 소모량에 기초하여 상기 전력 소모를 시뮬레이션하는 것인, 통합 개발 클라우드 서버.
- IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 방법에 있어서,IoT 서비스 인프라 정보를 저장하는 단계;운영체제 정보 및 라이브러리 정보를 저장하는 단계;상기 운영체제 정보에 기초하여 운영체제를 선택받고, 상기 라이브러리 정보에 기초하여 복수의 라이브러리를 선택받는 단계;상기 IoT 서비스 인프라 정보, 상기 선택된 운영체제 및 상기 선택된 복수의 라이브러리에 기초하여 복수의 개발 블록을 제공하고, 상기 복수의 개발 블록 중 적어도 하나를 선택받고, 상기 선택된 적어도 하나의 개발 블록을 조합하여 프로그래밍을 수행하는 단계; 및상기 프로그래밍에 기초하여 IoT 서비스 프로파일을 생성하는 단계를 포함하는 것인, 통합 개발 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190101805 | 2019-08-20 | ||
KR10-2019-0101805 | 2019-08-20 | ||
KR10-2019-0131312 | 2019-10-22 | ||
KR1020190131312A KR102214060B1 (ko) | 2019-08-20 | 2019-10-22 | IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021033861A1 true WO2021033861A1 (ko) | 2021-02-25 |
Family
ID=74559079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2020/002858 WO2021033861A1 (ko) | 2019-08-20 | 2020-02-28 | Iot 서비스 인프라와의 연동을 지원하는 초소형 iot 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102214060B1 (ko) |
WO (1) | WO2021033861A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564195B (zh) * | 2022-02-17 | 2024-02-27 | 山东华云三维科技有限公司 | 一种基于b/s架构的云cad平台的二次开发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160089747A (ko) * | 2015-01-20 | 2016-07-28 | 주식회사 크레스프리 | IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법 |
US20170006135A1 (en) * | 2015-01-23 | 2017-01-05 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
JP2019502993A (ja) * | 2015-12-14 | 2019-01-31 | アフェロ インコーポレイテッドAfero, Inc. | モノのインターネット(IoT)システムのための統合開発ツール |
KR20190060561A (ko) * | 2017-11-24 | 2019-06-03 | 포항공과대학교 산학협력단 | 이종 디바이스의 선택적 추상화를 통한 사물 인터넷 어플리케이션의 개발 환경을 통합하는 방법 및 시스템 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090004210A (ko) | 2007-07-06 | 2009-01-12 | 이양선 | 통합 개발 환경을 이용한 소프트웨어 프로그램을 개발하기위한 장치 및 통합 개발 환경을 이용한 소프트웨어프로그램 개발 시스템 |
-
2019
- 2019-10-22 KR KR1020190131312A patent/KR102214060B1/ko active IP Right Grant
-
2020
- 2020-02-28 WO PCT/KR2020/002858 patent/WO2021033861A1/ko active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160089747A (ko) * | 2015-01-20 | 2016-07-28 | 주식회사 크레스프리 | IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법 |
US20170006135A1 (en) * | 2015-01-23 | 2017-01-05 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
JP2019502993A (ja) * | 2015-12-14 | 2019-01-31 | アフェロ インコーポレイテッドAfero, Inc. | モノのインターネット(IoT)システムのための統合開発ツール |
KR20190060561A (ko) * | 2017-11-24 | 2019-06-03 | 포항공과대학교 산학협력단 | 이종 디바이스의 선택적 추상화를 통한 사물 인터넷 어플리케이션의 개발 환경을 통합하는 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR102214060B1 (ko) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170315522A1 (en) | Virtual simulator and building management system including the same | |
WO2021075699A1 (ko) | 전자 장치 및 그 동작방법 | |
US9348771B1 (en) | Cloud-based instrument driver system | |
WO2020119062A1 (zh) | 预装应用管理方法、装置及存储介质 | |
WO2019027070A1 (ko) | 웹 사이트 제작 지원 서버 및 이에 의한 웹 사이트 제작 지원 방법 | |
WO2021033861A1 (ko) | Iot 서비스 인프라와의 연동을 지원하는 초소형 iot 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법 | |
CN112015371B (zh) | 一种非嵌入式软件平台下的软件开发装置 | |
WO2019112113A1 (ko) | 서비스 지향 사물 인터넷 플랫폼 및 그 제어 방법 | |
WO2010071384A2 (en) | Standardization system and method for robot fabrication and robot service implementation system | |
WO2013069886A1 (en) | Facilities control system and operating method of the same | |
WO2014081122A1 (ko) | 모바일 단말의 홈 스크린 큐레이션 시스템 | |
WO2020251331A1 (ko) | 사물인터넷의 자원과 서비스 관리 시스템 및 방법, 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체 | |
WO2018066932A1 (ko) | M2m 어플리케이션 테스트 장치 및 방법 | |
WO2023085738A1 (ko) | Ai 모델 서빙 시스템 및 방법 | |
KR20080022934A (ko) | 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을위한 애플리케이션 프레임워크 시스템 | |
KR101848398B1 (ko) | 원격 서버기반의 어플리케이션 작동 정보 제공시스템 및 그 방법 | |
WO2022114655A1 (ko) | 클라우드 기반 디바이스 인공지능 설정 시스템 및 방법 | |
KR102451255B1 (ko) | 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버 | |
US11429357B2 (en) | Support device and non-transient computer-readable recording medium recording support program | |
WO2011065783A2 (ko) | 컴퓨팅 장치 및 미디어 재생 장치를 이용한 사용자 애플리케이션 테스트 시스템 및 테스트 방법 | |
WO2019182345A1 (en) | Method of automatically searching for and registering controlled application in distributed environment | |
WO2012144722A1 (en) | Interface construction system for controlling remote terminal using web technology by employing control terminal and method of controlling the same | |
KR20220074693A (ko) | 쿼리 처리 시스템, 장치 및 방법 | |
Bell et al. | MySQL and Arduino: United at Last! | |
WO2015093770A1 (ko) | M2m 네트워크 시스템, m2m 게이트웨이 및 m2m 게이트웨이에 디바이스와 데이터 통신을 수행하기 위한 소프트웨어 모듈을 설치하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20853751 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 24/06/2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20853751 Country of ref document: EP Kind code of ref document: A1 |