WO2018105804A1 - Bpm 기반의 iot diy 시스템 및 이의 구현방법 - Google Patents

Bpm 기반의 iot diy 시스템 및 이의 구현방법 Download PDF

Info

Publication number
WO2018105804A1
WO2018105804A1 PCT/KR2016/015548 KR2016015548W WO2018105804A1 WO 2018105804 A1 WO2018105804 A1 WO 2018105804A1 KR 2016015548 W KR2016015548 W KR 2016015548W WO 2018105804 A1 WO2018105804 A1 WO 2018105804A1
Authority
WO
WIPO (PCT)
Prior art keywords
iot
virtual object
service
layer
bpm
Prior art date
Application number
PCT/KR2016/015548
Other languages
English (en)
French (fr)
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 제주대학교 산학협력단
Publication of WO2018105804A1 publication Critical patent/WO2018105804A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Definitions

  • the present invention relates to a virtual object, service and business process authoring system and method of the IoT using a BPM-based DIY method, more specifically, to beginners to easily develop and mount a service on the IoT app place (DIY) It is about virtualization, service composition, and business process creation and deployment of BPM-based IoT that provides virtualization of IoT, IoT, and IoT.
  • DIY IoT app place
  • IoT Internet of Things
  • the physical layer (physical layer) (110) which is a layer for configuring things related to the Internet of Things (IoT);
  • Service Composition Layer (SCL) for creating Service Objects (SO) by a combination of two or more virtual objects (VO) for a virtual object (VO) in a virtual object layer (VOL) 120.
  • the process flow operates to perform a function defined by an individual service object (SO) in the business process layer (BPL) 140, and based on the encrypted behavior between the individual virtual objects (VO) in actual interaction. It is characterized by performing a physical object (PO) directly.
  • SO individual service object
  • BPL business process layer
  • PO physical object
  • the things are characterized by detecting control data on a preset phenomenon occurring in the IoT environment and the surroundings.
  • the virtual object VO summarizes or compressively presents information related to the object of the physical layer 110, and allows a user to manipulate the virtual object VO in the IoT system environment.
  • the physical layer 110 represented by the virtual object VO may allow access to an environment of things.
  • VOL Virtual Object Layer
  • VOL Virtual Object Layer
  • VOL Virtual Object Layer
  • the BPM-based IoT DIY system provides a business process modeling notation (BPMN) based on the representation of service objects by implementing the DIY interface for creating and deploying IoT applications. Provide what you can.
  • BPMN business process modeling notation
  • the BPM-based IoT DIY system allows the user to easily visualize the IoT infrastructure by allowing the user to easily visualize and to interact with and manipulate the generated virtual objects (VOs) for IoT configuration. Provides the effect to build up.
  • VOs virtual objects
  • FIG. 1 is a diagram illustrating a system architecture of a BPM-based IoT DIY system according to an embodiment of the present invention.
  • FIG. 3 shows an operational flowchart of the virtual object manager of FIG. 2 (internal process in the form of a sequence diagram).
  • FIG. 5 is a diagram illustrating a service flow by a service composition manager in the BPM-based IoT DIY system of FIG. 1;
  • FIG. 6 is a diagram for explaining process modeling as a static structure representing main components in a business process layer (BPL) according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating an operation sequence in a business process layer (BPL) according to an embodiment of the present invention.
  • FIG. 8 is a reference diagram illustrating the concept of an IoT application configuration system in the BPM-based IoT DIY system of FIG.
  • FIG. 10 is a diagram illustrating an XML representation of a UI screen and a virtual object (VO) implemented by a service composition manager based on the BPM-based IoT DIY system of FIG. 1.
  • VO virtual object
  • FIG. 12 is a diagram illustrating a UI screen implemented by a BMP deployment engine or a BMP deployment manager based on the BPM-based IoT DIY system of FIG. 1.
  • FIG. 12 is a diagram illustrating a UI screen implemented by a BMP deployment engine or a BMP deployment manager based on the BPM-based IoT DIY system of FIG. 1.
  • FIG. 13 is a diagram illustrating an entire BPM-based IoT DIY system such as a virtual object manager, a service composition manager, a BPM-based business process editor, and a BMP deployment engine of FIG. 1.
  • VOM Virtual Object Manager
  • SCM Service Composition Manager
  • FIG. 1 is a diagram illustrating a system architecture of a business process model (BPM) based IoT DIY system according to an embodiment of the present invention.
  • BPM business process model
  • the system architecture of a BPM-based IoT DIY system includes a physical layer 110, a virtual object layer VOL 120, and a service composition layer SCL. 130, formed of four layers of a business process layer (BPL) 140, each layer communicating with an adjacent layer according to individual functions and a preset communication plan.
  • BPL business process layer
  • the physical layer 110 is a layer for configuring things related to the Internet of Things (IoT).
  • IoT Internet of Things
  • things may detect control data about a preset phenomenon occurring in the IoT environment and / or the surroundings.
  • it may be defined as a sensing device and an actuator device having a communication performance capability through the Internet.
  • the virtual object layer (VOL) 120 refers to a layer for managing virtual objects (VO).
  • the virtual object VO represents things in the physical layer 110.
  • the virtual object VO may summarize or compressively present information related to a thing in the physical layer 110, and allow a user to manipulate the virtual object VO in the IoT system environment. It allows access to the environment of things in the physical layer 110, represented by virtual objects VO.
  • the service object SO operates when the temperature sensor virtual object VO exceeds 40 ° C as the input virtual object VO, and joins the LED virtual object VO to the output virtual object VO. It can be formed into).
  • the LED virtual object (VO) is set to start blinking when the conditions are met, and the acquisition of the temperature value and the blinking of the LED is preferably in accordance with the encrypted function between the corresponding virtual object (VO).
  • this one unit of service object is used by the Business Process Layer (BPL) 140 to form the flow of the process desired by the user for one scenario. do.
  • BPL Business Process Layer
  • the business process layer (BPL) 140 uses a business process modeling notation (BPMN) to perform a join-based model of service objects (SOs).
  • BPMN business process modeling notation
  • the process flow operates to perform the functions defined by the individual service objects (SOs) at the business process layer (BPL) 140, and the physical objects (POs) based on the encrypted behavior between the individual virtual objects (VOs) in real interaction. This is equivalent to performing) directly.
  • SOs individual service objects
  • BPL business process layer
  • POs physical objects
  • each layer of the BPM-based IoT DIY system has a static structure, and has an interaction structure for describing the main operation of each layer.
  • FIG. 2 is a block diagram illustrating an operation of a virtual object manager (VOM) 120a of the BPM-based IoT DIY system of FIG. 1.
  • VOM virtual object manager
  • the virtual object manager (VOM) 120a corresponds to a major component in the virtual object layer 120.
  • the virtual object manager (VOM) 120a may include other classes such as a file manager 120a-1, a communication manager 120a-2, an XML parser 120a-3, and the like. It works with classes and performs all the functions associated with virtual object layers (VOLs).
  • VOLs virtual object layers
  • the virtual object manager (VOM) 120a provides the user with a component of local or remote interface classes for entering information related to things in the physical layer where the users want to register the virtual objects (VOs).
  • the communication manager 120a-2 uses the file manager 120a-1 to retrieve an XML version of the virtual object VO from the local file system or to extract related information using the file manager 120a-1. To send a virtual object (VO) to the client application.
  • VO virtual object
  • the client application may be a service composition manager 130a described later.
  • the XML parser 120a-3 collaborates with the file manager 120a-1 and changes the information input by the user into an XML element representing the virtual object VO or vice versa. It serves as an interface to
  • the XML Parser 120a-3 uses the DeviceInformation class as a template for creating virtual objects (VOs).
  • FIG. 3 shows an operation flowchart of the virtual object manager 120a of FIG. 2.
  • the sequence model shown in FIG. 3 represents the interaction between the interface elements and the user as well as the interactions in the form of message exchanges between system internal components for performing user commands.
  • the sequence of interactions is initiated by the virtual object manager 120a and initialized by all components, including the user interface and communication manager 120a-2, etc., for sequence initiation by the virtual object manager 120a. You must be in a state.
  • the main interface 120a-4 provides a view for all virtual objects (VOs), providing an XML repository 120a-to the file manager 120a-1 via the virtual object manager 120a. 5) request to read data related to the virtual object (VO).
  • the read data is parsed by the XML parser 120a-3, and information related to the virtual object VO is provided to the virtual object manager 120a for output through the interface 120a-4.
  • the user may interact with the virtual objects VOs through the interface 120a-4 under the control of the virtual object manager 120a.
  • the interacted virtual object (VO) means that the user interacted with the behavior in the sequence model.
  • the selected virtual object VO information is displayed again to the user through the interface view. Thereafter, if necessary, the user may select at least one of editing and updating the virtual object VO.
  • the information displayed in the interface view is transferred to the XML parser 120a-3 by the control of the virtual object manager 120a to convert the information displayed in the preset format into a file manager.
  • 120a-1 records the converted virtual object in the XML storage 120a-5.
  • the deletion process can also be performed in the same way.
  • the communication manager 120a-2 operates as a server thread by detecting incoming connections from a remote client service control manager (SCM). That is, upon receiving the access request, the communication manager 120a-2 may request the virtual object manager 120a for the virtual object (VO) information sent to the client.
  • SCM remote client service control manager
  • FIG. 4 is a block diagram for describing an operation of a service composition manager 130a based on the BPM-based IoT DIY system of FIG. 1.
  • the main classes of the composition manager 130a and the relationship and association process between the respective classes are generally illustrated.
  • Form (130a-1), TabControl (130a-2) and TabPage (130a-3) classes are each .Net acting as displayable windows and containers for visual control. It is desirable to be built-in classes.
  • the device module 130a-4 class is provided to perform a virtual representation for input and output of virtual objects VOs, and FIG. 4 shows a device module 130a-4. It shows a specialized relationship between the input module (OutputModule) (130a-5), the output module (OutputModule) (130a-6), and the device module (DeviceModule) (130a-4).
  • actual classes representing the input device as the pressure sensor and the output device as the LED may be obtained from the input module 130a-5 and the output module 130a-6, respectively.
  • Each of these input or output device representation classes is associated with a user attribute.
  • the DeviceModule 130a-4 class provides an IDeviceModule 130a-7 interface for performing core properties related to device modules and for performing unique methods of each device module. It can work.
  • the device module 130a-4 class may operate an I cloneable interface 130a-8 for generating virtual devices to be replicated.
  • the interface provided to the IC cloneable 130a-8 may be used to duplicate the selected module when the user drags the module to the canvas, which is a bitmap 2D graphics area displayed on the web browser.
  • an individual device virtual object (VO) module such as an LED class may include a view and a setting class in the form of an LEDView and an LEDSettings class.
  • These LEDView and LEDSettings classes may be classes specialized from the DeviceView 130a-9 class and the DeviceSettings 130a-10 class shown in FIG. 4.
  • the DeviceView class 130a-9 corresponds to a work area class for representing the characteristics of the selected module in the form of a detailed view tab in the editor.
  • the DeviceSettings 130a-10 class can provide a form for setting properties and parameters.
  • MainProcess (130a-11) class acts as a main back end process, a separate database-only handler installed to help the host work, and is run as a singleton class. It is preferable.
  • the MainProcess 130a-11 class checks a list of the DeviceModule 130a-4 class and the WorkSpace 130a-12 class.
  • the Space 130a-13 class is a superclass of the WorkSpace 130a-12 class, and it is an XML serialization for converting objects into memory for storage purposes as well as the file system. Take advantage of the (XmlSerialization) class (130a-11a).
  • the Space 130a-13 class provides the current IWorkspace 130a-14, Undo / Redo functions, including interfaces related to the storage of data spaces.
  • Ispace UndoRedo (IspaceUndoRedo) 130a-15 related to the maintenance of space can be executed.
  • the Space class 130a-13 is added to the JoinInfo class 130a-16. It is desirable to have a list of).
  • This list of JoinInfo classes 130a-16 is used by WorkSpace 130a-12 who wants to know about the confluences of parallel paths associated with the current project.
  • TabPageEx 130a-2b corresponds to an extended version of the TabPage 130a-3 class for providing a closeable tabpage.
  • KRBT tab control (KRBTTabControl) 130a-2a corresponds to a portion of main form 130a-1a corresponding to a displayable main container for visual controls and components.
  • the Trashbin 130a-24 class can graphically represent waste bins worked with the panels 130a-21 to provide the ability to delete modules displayed in the editor's workspace. Perform the action.
  • the first region 1st shown in FIG. 5 represents an interaction sequence among various internal components of the service composition manager 130a when the user initializes a new project, and the sequence of the first region. Does not perform initialization of the main process (MainProcess) (130a-11).
  • FrmMain 130b calls the createWorkArea () function and creates a CreateSpace () message in the main process. Send it to (MainProcess) 130a-11.
  • the main process 130a-11 creates an object of the WorkSpace class and returns the generated object to the FrmMain 130b.
  • FrmMain 130b then adds the new workspace object to the collection space of MainProcess 130a-11, and adds the newly created workspace object to the WorkArea in response to the CreateSpace () message. By passing to 130a-22, a WorkArea 130a-22 object is created.
  • the WorkArea 130a-22 class is associated with a WorkPanel 130a-21 object that actually operates to illustrate the canvas for the Service Control Manager (SCM).
  • SCM Service Control Manager
  • WorkArea 130a-22 class is an input for displaying device module blocks that can be dragged and dropped by a user to a work area for creating a service design. And output panels.
  • the WorkArea 130a-22 class has an extended tab page object collection control called TabPageEx (130a-2b). Also perform.
  • the tab page object is displayed as a new tab on the tab control, and all toolbar controls are created using the enableControls message.
  • the user can check a new project tab that can drag and drop the virtual objects for creating the function pro.
  • the event handler obtains the dropped virtual object (VO) and related data, and then creates a duplicate object from the original stored in the device list in the main process 130a-11. .
  • the clone object is added to the list of devices managed in each workspace through its parent class space.
  • the parent class preferably has a stack implementation for managing Undo / Redo.
  • This workspace class 130-12 creates an XMLSerializer instance and requests that the MemorySerializeCollection be executed by the XMLSerializer 130a-11a having its own reference as a parameter.
  • the XMLSerializer 130a-11a class acquires all data associated with the workspace object, converts the obtained data into an XML format, and stores it as byte data in a memory buffer.
  • the byte data buffer reference is returned to the Workspace 130-12 class.
  • the byte data buffer is pushed into the Undo stack, the device list is updated, and the WorkPanels 130a-21 are invalidated to generate the update flow.
  • This sequence is repeated every day when a new device module is dropped into the work panel by the user.
  • the JoinInfo class 130a-16 object is created together with the information of the input and output device modules, and the JoinInfo class 130a-16 object. Is added to the join list managed by the workspace object. The drawn line is deleted.
  • the user can double-click the join or individually double-click the virtual object (VO) to set up an action, ie to select the available functions for the associated physical thing, and other parameters. Can also be set.
  • the relevant data is then stored as part of the Service Objects (SO) in the form of JoinInfo (130a-16), and the completed Service Object (SO) is connected to the input and output virtual objects (VOs). Is generated by
  • FIG. 6 is a diagram for explaining process modeling as a static structure representing main components in a business process layer (BPL) 140 according to an embodiment of the present invention.
  • a business process layer (BPL) 140 is to utilize a service object (SO) created in a service composition layer (SCL) 130, and to create a service object (SPL). This is to represent the SO to the user in the form of business process modeling notations.
  • SO service object
  • SCL service composition layer
  • SPL service object
  • BPL 140 The most important component in the Business Process Layer (BPL) 140 is the business process design manager 140a.
  • Business process design manager 140a includes a BPM-based business process editor 140a-1, and BPM-based business process editor 140a-1 includes a toolbar 140a-2, a toolbox.
  • BPM-based business process editor 140a-1 includes a toolbar 140a-2, a toolbox.
  • main window 140a-5 including a toolbox 140a-3 and a designer canvas 140a-4.
  • the toolbar 140a-2 is a component panel branched from the itemControl class 140a-2a. This panel shows a visual representation of the business process modeling notation form corresponding to the service object (SO) obtained at the service composition layer (130).
  • connection (140a-6) class and its associated ConnectionAdorner (140a-7) class are Business Process Modeling Notations (BPMN) items that represent a flow sequence between process processes. It is used to show the connection line between.
  • BPMN Business Process Modeling Notations
  • FIG. 7 is a flow diagram illustrating an operation sequence in a Business Process Layer (BPL) 140 in accordance with an embodiment of the present invention based on the components of FIG. 6.
  • BPL Business Process Layer
  • operation in the Business Process Layer (BPL) 140 includes obtaining service objects (SOs) from the service composition layer (130), and the service objects (SOs). Including the mapping to the business process modeling notation, it converts service objects (SOs) into a process model for the user and finally executes the process.
  • SOs service objects
  • the illustrated service control manager (SCM) communication manager 140c waits for a connection request from the BPM-based business process editor 140a-1, which is a major component of the business process layer 140.
  • the service objects (SOs) available in the SO State Repository 140d are obtained in the form of an XML info object and passed to the Business Process Layer 140. do.
  • Obtained service objects are parsed by an XML Parser 140f for presentation to the user in a business process modeling notation.
  • the user creates a process model by drag-and-drop operation using a visually implemented business process modeling notation.
  • the user may draw the process component according to a predetermined operation rule or conditions in the middle of the process model generation process and connect the process component through the connection notation.
  • the process object is an entity deployable through the deployment engine (or deployment manager) 140e in the business process layer 140.
  • These deployed process objects are those that can be changed into a series of operations based on the services that make up the service object.
  • the deployment engine 140e interacts with services as part of a process object, and the generated process object is executed in a separate thread so that various process objects can be executed simultaneously.
  • FIG. 9 is a diagram illustrating an XML representation of the UI screen and the virtual object VO implemented by the virtual object manager (VOM) 120a.
  • VOM virtual object manager
  • the virtual object manager (VOM) 120a associates IoT resource data with a visual representation, allowing the virtual object (VO) to interact and manipulate in a more intuitive manner.
  • VOM 120a is provided with the URI of the remote device and then through the performed service of the CoAP protocol, whereby the virtual object manager (VOM) 120a is automatically needed from the device. Extract the information.
  • this method has an advantage of being automatically performed, but has a disadvantage that it may be useful only for specific devices provided for performing a specific service in a system for a predetermined purpose.
  • FIG. 10 is a diagram illustrating an XML representation of a UI screen and a virtual object VO implemented by a service composition manager 130a.
  • the sensor virtual objects VOs and the actuator virtual objects VOs may be divided into input and output modules. These modules can be implemented to be dragged and dropped directly onto the canvas through mouse events in the Windows operating system.
  • Virtual object (VO) modules implemented on the canvas may be represented by simple join lines expressed by connecting input virtual objects (VOs) and output virtual objects (VOs). You can use intuitive mouse events to set rules of action for VOs).
  • FIG. 11 is a diagram illustrating an XML representation of a UI screen and a virtual object VO implemented by the BPM-based business process editor 140a-1.
  • the BPM-based business process editor 140a-1 is a service process (VOs) generated by the service composition manager 130a as a business process modeling notation (BPMN).
  • VOs service process
  • BPMN business process modeling notation
  • the BPM-based business process editor 140a-1 is a Business Process Modeling Notations based on the representation of service objects in order to be provided via a DIY interface whose knowledge of the baseline for creating and deploying IoT applications is provided. BPMN).
  • the BPM-based business process editor 140a-1 can eliminate the need for a programming skill that requires the user to create a graphical model, and can be deployed directly to IoT applications.
  • BPMN Business Process Modeling Notations
  • Service objects are represented as tasks and dragged by the user. You can create a model using the drop approach.
  • This sequence of operations is created by the connection of notations through object objects, and the same object objects are used to obtain information about input and output notations in the model.
  • Gateway notation is performed as a decision tool as long as screen notation is provided in the script list to be selected for the user to manipulate the data or proceed with the process.
  • connection objects are included to keep track of source and sink items.
  • the BMP Deployment Manager 140e represents a process model for the relationship between various IoT resources generated by the BPM-based business process editor 140a-1 and stored as an XML document.
  • the invention can also be embodied as computer readable code on a computer readable recording medium.
  • Computer-readable recording media include all kinds of recording devices that store data that can be read by a computer system.
  • Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like, which are also implemented in the form of carrier waves (eg, transmission over the Internet). It also includes.
  • the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
  • functional programs, codes and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.
  • the present invention relates to a virtual object, service and business process authoring system and method of the IoT using a BPM-based DIY method, more specifically, to beginners to easily develop and mount a service on the IoT app place (DIY) It is used to create virtualized objects, service compositions, and business process creation and deployment of BPM-based IoT that provides virtualization of things, services, and processes of IoT in the It-Yourself manner, and enables personal development.
  • DIY IoT app place

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은, IoT와 관련된 사물을 구성하기 위한 계층인 물리 계층; 물리 계층에서의 사물을 가상객체로 표현하며, 가상 객체를 관리하기 위한 계층인 가상 객체 계층; 가상 객체 계층에서의 가상 객체에 대해서 두 개 이상의 가상 객체의 조합에 의해 서비스 객체를 생성하는 서비스 콤포지션 계층; 및 각 서비스 객체가 생성되면, 하나의 서비스 객체에 대해서 하나의 시나리오를 위한 유저가 원하는 프로세스의 플로우를 형성하며, 서비스 객체들의 조인 기반의 모델을 수행하기 위해 비지니스 프로세스 모델링 노테이션을 활용하는 비지니스 프로세스 계층을 포함하는 시스템 아키텍처를 구비하여 IoT 디바이스를 사용자가 원하는 방식으로 동작하는 DIY 기반의 IoT 의 가상 사물, 서비스, 비즈니스 프로세스 저작 시스템 및 방법에 관한 것입니다.

Description

BPM 기반의 IOT DIY 시스템 및 이의 구현방법
본 발명은 BPM 기반 DIY 방식을 이용한 IoT 의 가상 사물, 서비스 및 비즈니스 프로세스 저작 시스템 및 방법에 관한 것으로, 보다 구체적으로는, 사물인터넷 앱 플레이스에 초보자가 손쉽게 서비스를 개발하여 탑재하기 위해 DIY(Do-It-Yourself) 방식의 IoT의 사물, 서비스, 프로세스 가상화를 제공하고, 개인 주도형 개발이 가능한 BPM 기반의 IoT의 가상 사물 생성, 서비스 컴포지션, 비즈니스 프로세스 생성 및 배포에 관한 것이다.
사물 인터넷(Internet of Things, 이하 IoT)은 정보 통신 기술을 기반으로 실세계(physical word)와 가상 세계(virtual world)의 다양한 사물들을 연결하여 진보된 서비스를 제공하기 위한 서비스 기반 시설에 관한 것이다.
이러한 IoT를 설계하기 위해서는 유비쿼터스 공간을 구현하기 위한 인프라 컴퓨팅 기기들이 환경과 사물에 심겨 환경이나 사물 그 자체가 지능화되는 것부터 사람과 사물, 사물과 사물 간에 지능 통신을 할 수 있는 사물 통신(M2M : Machine to Machine)의 개념을 인터넷으로 확장하여 사물은 물론, 현실과 가상 세계의 모든 정보와 상호 작용하는 개념으로 진화했다. 사물 인터넷(IoT)의 주요 기술로는 센싱 기술, 유무선 통신 및 네트워크 인프라 기술, 사물 인터넷 인터페이스 기술, 사물 인터넷을 통한 서비스 기술 등이 있다.
이러한 IoT 환경에서 종말단 사용자(end-users)가 사물(things)을 발견하여 발견된 사물에 대해서 스마트 환경을 애플리케이션을 통해 효과적으로 사용하기 위한 기술 개발이 요구되고 있다.
그리고 세계적으로 오픈소스 HWSW 플랫폼이 확산되며 非전문가도 쉽게 다양한 IoT 응용 등 ICT 제품·서비스를 개발할 수 있는 ICT DIY 문화가 조성하고 잇으며, 더불어 청소년들의 아이디어를 스스로 제품화하여 새로운 IoT 서비스 창조를 조성하고 창작생태계 활성화가 가능한 개방형 하드웨어(아두이노, 빌글보드, 에디슨 등) 보급 확산되고 있다.
즉, 해당 기술 분야에 있어서는 사물인터넷 서비스 아이디어를 스스로 제품화하는 개인 주도형 개발 환경을 조성하고, 사물인터넷 창작생태계 활성화가 가능한 DIY 방식의 IoT 지원 시스템과, 개방형 실질적인 비즈니스 프로세스 기반의 IoT 개발 기술이 요구되고 있다.
본 발명은 상기의 문제점을 해결하기 위한 것으로, BPM(business process management)와 관련된 다이어그램 언어 솔루션을 기반으로 프로그램 언어에 대한 기초 지식이 없어도 쉽게 DIY 인터페이스를 제공받을 수 있도록 하기 위한 BPM 기반의 IoT DIY 시스템을 제공하기 위한 것이다.
또한, 본 발명은 IoT 구성을 위해 유저에게 쉽게 시각화하고 생성된 가상 객체들(VOs)과 상호 작용 및 조작을 허여함으로써, 유저가 쉽게 IoT 인프라를 구축하도록 하기 위한 BPM 기반의 IoT DIY 시스템을 제공하기 위한 것이다.
그러나 본 발명의 목적들은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기의 목적을 달성하기 위해 본 발명의 실시예에 따른 BPM 기반의 IoT DIY 시스템은, IoT(Internet of Things)와 관련된 사물(things)을 구성하기 위한 계층인 물리 계층(physical layer)(110); 물리 계층(110)에서의 사물(things)을 가상 객체(Virtual Objects, VO)로 표현하며, 가상 객체(VO)를 관리하기 위한 계층인 가상 객체 계층(Virtual Object Layer, VOL)(120); 가상 객체 계층(VOL)(120)에서의 가상 객체(VO)에 대해서 두 개 이상의 가상 객체(VO)의 조합에 의해 서비스 객체(Service Objects, SO)를 생성하는 서비스 콤포지션 계층(Service Composition Layer, SCL)(130); 및 각 서비스 객체(SO)가 생성되면, 하나의 단위의 서비스 객체에 대해서 하나의 시나리오를 위한 유저가 원하는 프로세스의 플로우를 형성하며, 서비스 객체(SO)들의 조인 기반의 모델을 수행하기 위해 비지니스 프로세스 모델링 노테이션(Business Process Modeling Notations, BPMN)을 활용하는 비지니스 프로세스 계층(Business Process Layer, BPL)(140); 를 포함하는 4개 계층(layer)으로 형성되는 시스템 아키텍처를 구비하는 것을 특징으로 한다.
이때, 상기 프로세스 플로우는, 비지니스 프로세스 계층(BPL)(140)에서 개별적인 서비스 객체(SO)에 의해 정의되는 기능을 수행하도록 동작하며, 실제 상호 작용으로 개별적인 가상 객체(VO) 간에 암호화된 행위에 기초한 물리 객체(PO)를 직접적으로 수행하는 것을 특징으로 한다.
또한, 사물(things)은, IoT 환경 및 주위에서 발생하는 미리 설정된 현상에 대한 제어 데이터를 탐지하는 것을 특징으로 한다.
또한, 가상 객체(VO)는, 물리 계층(110)의 사물과 관련된 정보를 요약 또는 압축적으로 제시하며, 유저(user)에게 IoT 시스템 환경 내부의 가상 객체(VO)에 대한 조작할 수 있도록 하며, 가상 객체(VO)로 표현되는 물리 계층(110)에서의 사물(thing)의 환경으로의 액세스가 가능하도록 하는 것을 특징으로 한다.
또한, 서비스 객체(SO)는, 입력 가상 객체(VO)로 온도 센서 가상 객체(VO), 그리고 출력 가상 객체(VO)로 LED 가상 객체(VO)의 조인(Join)으로 형성되는 것을 특징으로 한다.
또한, 가상 객체 계층(Virtual Object Layer, VOL)(120)는, 유저들이 가상 객체(VO)들을 등록하기 원하는 물리 계층의 사물(things)과 관련된 정보를 입력하기 위한 로컬 또는 원격 인터페이스 클래스들의 구성요소를 사용자에게 제공하는 가상 객체 매니저(VOM)(120a); 를 구비하는 것을 특징으로 한다.
본 발명의 실시예에 따른 BPM 기반의 IoT DIY 시스템은, IoT 어플리케이션들을 생성하고 전개하기 위한 DIY 인터페이스를 통해 구현함으로써, 서비스 객체들의 표현에 기초한 비지니스 프로세스 모델링 노테이션(Business Process Modeling Notations, BPMN)을 제공할 수 있는 제공한다.
뿐만 아니라, 본 발명의 다른 실시예에 따른 BPM 기반의 IoT DIY 시스템은, IoT 구성을 위해 유저에게 쉽게 시각화하고 생성된 가상 객체들(VOs)과 상호 작용 및 조작을 허여함으로써, 유저가 쉽게 IoT 인프라를 구축할 수 있는 효과를 제공한다.
도 1은 본 발명의 실시예에 따른 BPM 기반의 IoT DIY 시스템의 시스템 아키텍처를 나타내는 도면.
도 2는 도 1의 BPM 기반의 IoT DIY 시스템 중 가상 객체 매니저(VOM)의 동작을 설명하기 위한 블록도.
도 3은 도 2의 가상 객체 매니저의 작동 흐름도(시퀀스 다이아그램 형태의 내부 프로세스)를 나타내는 도면.
도 4는 도 1의 BPM 기반의 IoT DIY 시스템 중 서비스 콤포지션 매니저(Service Composition Manager)의 동작을 설명하기 위한 구성요소를 나타내는 블록도.
도 5는 도 1의 BPM 기반의 IoT DIY 시스템 중 서비스 콤포지션 매니저(Service Composition Manager)에 의한 서비스 플로우를 나타내는 도면,
도 6은 본 발명의 실시예에 따른 비지니스 프로세스 계층(Business Process Layer, BPL)에서의 주요 구성요소를 나타내는 정적 구조로, 프로세스 모델링을 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 비지니스 프로세스 계층(Business Process Layer, BPL)에서의 동작 시퀀스를 나타내는 흐름도이다.
도 8은 도 1의 BPM 기반의 IoT DIY 시스템에 있어서, IoT 어플리케이션 구성 시스템의 개념을 나타내는 참조도면.
도 9는 도 1의 BPM 기반의 IoT DIY 시스템을 기반으로 가상 객체 매니저(VOM)에 의해 구현된 UI 화면과 가상 객체(VO)의 XML 표현을 나타내는 도면.
도 10은 도 1의 BPM 기반의 IoT DIY 시스템을 기반으로 서비스 콤포지션 매니저(Service Composition Manager)에 의해 구현된 UI 화면과 가상 객체(VO)의 XML 표현을 나타내는 도면.
도 11은 도 1의 BPM 기반의 IoT DIY 시스템을 기반으로 BPM 기반 비즈니스 프로세스 에디터에 의해 구현된 UI 화면과 가상 객체(VO)의 XML 표현을 나타내는 도면.
도 12는 도 1의 BPM 기반의 IoT DIY 시스템을 기반으로 BMP 배포 엔진(Deployment Engine)또는 BMP 배포 매니저(BMP Deployment Manager)에 의해 구현된 UI 화면을 나타내는 도면.
도 13은 도 1의 가상 객체 매니저, 서비스 콤포지션 매니저, BPM 기반 비즈니스 프로세스 에디터, BMP 배포 엔진 등의 BPM 기반의 IoT DIY 시스템 전체를 나타내는 도면.
*도면의 주요 부분에 대한 부호의 설명*
110 : 물리 계층(physical layer)
120 : 가상 객체 계층(Virtual Object Layer, VOL)
120a : 가상 객체 매니저(Virtual Object Manager, VOM)
130 : 서비스 콤포지션 계층(Service Composition Layer, SCL)
130a : 서비스 콤포지션 매니저(Service Composition Manager, SCM)
140 : 비지니스 프로세스 계층(Business Process Layer, BPL)
140a : 비지니스 프로세스 디자인 매니저(Business Process Design Manager, BPDM)
이하, 본 발명의 바람직한 실시예의 상세한 설명은 첨부된 도면들을 참조하여 설명할 것이다. 하기에서 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송'하는 경우에는 구성요소는 다른 구성요소로 직접 상기 데이터 또는 신호를 전송할 수 있고, 적어도 하나의 또 다른 구성요소를 통하여 데이터 또는 신호를 다른 구성요소로 전송할 수 있음을 의미한다.
도 1은 본 발명의 실시예에 따른 BPM(Business Process Model) 기반의 IoT DIY 시스템의 시스템 아키텍처를 나타내는 도면이다.
도 1을 참조하면, BPM 기반의 IoT DIY 시스템의 시스템 아키텍처는 물리 계층(physical layer)(110), 가상 객체 계층(Virtual Object Layer, VOL)(120), 서비스 콤포지션 계층(Service Composition Layer, SCL)(130), 비지니스 프로세스 계층(Business Process Layer, BPL)(140)의 4개의 계층(layer)으로 형성되며, 각 계층은 개별적인 기능과 미리 설정된 통신 계획에 따라 인접 계층과의 통신을 수행한다.
이하에서는, 각 계층에 대해서 구체적으로 살펴보도록 한다.
물리 계층(physical layer)(110)는 IoT(Internet of Things)와 관련된 사물(things)을 구성하기 위한 계층이다. 여기서 사물(things)은 IoT 환경 또는/및 주위에서 발생하는 미리 설정된 현상에 대한 제어 데이터를 탐지할 수 있다.
또한, 사물(things)의 일 실시예로, 인터넷을 통한 통신 수행능력을 갖는 센싱 장치와 액츄에이터 장치로 정의될 수 있다.
가상 객체 계층(Virtual Object Layer, VOL)(120)는 가상 객체(Virtual Objects, VO)를 관리하기 위한 계층을 의미한다. 가상 객체(VO)는 물리 계층(110)에서의 사물(things)을 나타낸 것이다.
가상 객체(VO)는 물리 계층(110)의 사물과 관련된 정보를 요약 또는 압축적으로 제시할 수 있으며, 유저(user)에게 IoT 시스템 환경 내부의 가상 객체(VO)에 대한 조작이 가능하도록 하며, 가상 객체(VO)로 표현되는 물리 계층(110)에서의 사물(thing)의 환경으로의 액세스가 가능하도록 한다.
가상 객체 계층(VOL)(120)에서의 가상 객체(VO)는 후술하는 서비스 콤포지션 계층(Service Composition Layer, SCL)(130) 상에서 수행되는 두 개 이상의 가상 객체(VO)의 조합에 의해 서비스 객체(Service Objects, SO)를 생성하는데 이용된다.
서비스 객체(SO)의 예로, 입력 가상 객체(VO)로 온도 센서 가상 객체(VO)가 40℃를 초과하는 경우에 동작하며, 출력 가상 객체(VO)로 LED 가상 객체(VO)의 조인(Join)으로 형성될 수 있다. 이때, LED 가상 객체(VO)는 조건을 맞는 경우 깜박이기 시작하게 세팅되며, 온도 값의 획득과 LED의 깜박임은 상응하는 가상 객체(VO) 간의 암호화된 기능에 따르는 것이 바람직하다.
하나의 서비스 객체(SO)가 생성되면, 이러한 하나의 단위의 서비스 객체는 비지니스 프로세스 계층(Business Process Layer, BPL)(140)에 의해 하나의 시나리오를 위한 유저가 원하는 프로세스의 플로우를 형성하기 위해 이용된다.
여기서 비지니스 프로세스 계층(BPL)(140)는 서비스 객체(SO)들의 조인 기반의 모델을 수행하기 위해 비지니스 프로세스 모델링 노테이션(Business Process Modeling Notations, BPMN)을 이용한다.
프로세스 플로우는 비지니스 프로세스 계층(BPL)(140)에서 개별적인 서비스 객체(SO)에 의해 정의되는 기능을 수행하도록 동작하며, 실제 상호 작용으로 개별적인 가상 객체(VO) 간에 암호화된 행위에 기초한 물리 객체(PO)를 직접적으로 수행하는 것에 해당한다.
한편, BPM 기반의 IoT DIY 시스템의 각 계층는 정적 구조(static structure)를 갖으며, 각 계층의 주요 동작을 기술하기 위한 상호 작용 구조를 갖는다.
도 2는 도 1의 BPM 기반의 IoT DIY 시스템 중 가상 객체 매니저(VOM)(120a)의 동작을 설명하기 위한 블록도이다.
먼저, 객체 가상화(Object virtualization)에 대해서 살펴보면, 가상 객체 매니저(VOM)(120a)는 가상 객체 계층(120)에서 주요 구성요소에 해당한다. 가상 객체 매니저(VOM)(120a)는 파일 매니저(File Manager)(120a-1), 통신 매니저(Communication Manager)(120a-2), XML 파서(XML Parser)(120a-3) 등과 같은 다른 클래스(class)들과 공동 작업을 하며, 가상 객체 계층(VOL)와 연관된 모든 기능을 수행한다.
가상 객체 매니저(VOM)(120a)는 유저들이 가상 객체(VO)들을 등록하기 원하는 물리 계층의 사물(things)과 관련된 정보를 입력하기 위한 로컬 또는 원격 인터페이스 클래스들의 구성요소를 사용자에게 제공한다.
통신 매니저(120a-2)는 파일 매니저(120a-1)를 이용하는데, 파일 매니저(120a-1)를 활용하여 로컬 파일 시스템으로부터 가상 객체(VO)의 XML 버전을 검색하거나, 관련된 정보를 추출하기 위해 가상 객체(VO)를 클라이언트 어플리케이션(client application)으로 전송한다.
이러한 과정에서 클라이언트 어플리케이션(client application)은 후술하는 서비스 콤포지션 매니저(Service Composition Manager)(130a)일 수 있다.
한편, XML 파서(XML Parser)(120a-3)는 파일 매니저(120a-1)와 공동작업을 수행하며, 유저에 의해 입력된 정보를 가상 객체(VO)를 나타내는 XML 요소로 변경하거나 그 반대로 변경하기 위한 인터페이스 역할을 수행한다.
기능적으로, XML 파서(XML Parser)(120a-3)는 디바이스 정보 클래스(DeviceInformation class)를 가상 객체(VO)들의 생성을 위한 템플릿으로 사용한다.
다음으로, 도 3은 도 2의 가상 객체 매니저(120a)의 작동 흐름도를 나타낸다. 도 3을 참조하면, 도 3에 도시된 시퀀스 모델은 유저 명령을 수행하기 위한 시스템 내부 구성요소 사이의 메시지 교환 형태에서의 상호작용뿐만 아니라, 인터페이스 구셩요소와 사용자 간의 상호작용을 나타낸다.
상호작용의 시퀀스는 가상 객체 매니저(120a)에 의해 개시(start)되며, 가상 객체 매니저(120a)에 의한 시퀀스 개시를 위해 유저 인터페이스 및 통신 매니저(120a-2) 등을 포함하는 모든 구성요소 초기화된 상태에 있어야 한다.
메인 인터페이스(120a-4)는 모든 가상 객체들(VOs)를 위한 뷰(view)를 제공하여, 가상 객체 매니저(120a)를 통해 파일 매니저(120a-1)에게 XML 저장소(XML repository)(120a-5)로부터 가상 객체(VO)와 관련된 데이터를 읽도록 요청한다.
읽어진 데이터는 XML 파서(120a-3)에 의해 파싱되고, 가상 객체(VO)와 관련된 정보는 인터페이스(120a-4)를 통해 출력되기 위해 가상 객체 매니저(120a)에게 제공된다.
이에 따라 유저는 가상 객체 매니저(120a)의 제어에 따라 인터페이스(120a-4)를 통해 가상 객체들(VOs)과 상호작용할 수 있다. 이때, 상호작용한 가상 객체(VO)는 유저가 시퀀스 모델에서의 행위와 관련된 상호작용한 것을 의미한다.
유저에 의한 인터페이스상에 표시된 다수의 가상 객체(VO) 중 하나를 가상 객체(VO)를 선택이 완료되면, 선택된 가상 객체(VO) 정보가 인터페이스 뷰를 통해 유저에게 재차 표시된다. 이후, 유저는 필요한 경우, 가상 객체(VO)에 대한 편집과 업데이트 중 적어도 하나 이상을 선택 과정을 수행할 수 있다.
한편, 편집된 가상 객체(VO)를 저장하기 위해, 인터페이스 뷰에 표시된 정보를 미리 설정된 포맷으로 변환되기 위해 XML 파서(120a-3)로 가상 객체 매니저(120a)의 제어에 의해 전달되며, 파일 매니저(120a-1)는 포맷 변환된 가상 객체를 XML 저장소(120a-5)로 기록한다. 삭제 과정도 또한 동일한 방식으로 수행될 수 있다.
통신 매니저(120a-2)는 원격 클라이언트서비스 컨트롤 관리자(SCM)로부터 입중계 접속(incoming connections)을 감지함으로써, 서버 쓰레드(server thread)로 동작한다. 즉 접속 요청 수신에 따라 통신 매니저(120a-2)는 클라이언트에게 보내진 가상 객체(VO) 정보를 가상 객체 매니저(120a)에게 요청할 수 있다.
도 4는 도 1의 BPM 기반의 IoT DIY 시스템 기반의 서비스 콤포지션 매니저(Service Composition Manager)(130a)의 동작을 설명하기 위한 블록도이다. 도 4를 참조하면, 콤포지션 매니저(130a)의 메인 클래스들, 그리고 각 클래스 사이의 관계 및 연계 과정을 전체적으로 도시하고 있다.
여기서, 폼(Form)(130a-1), 탭콘트롤(TabControl)(130a-2) 그래고 탭페이지(TabPage)(130a-3) 클래스는 각각 시각 콘트롤을 위한 표시 가능한 윈도우와 컨테이너들로서 작동하는 .Net built-in 클래스들(classes)인 것이 바람직하다.
구체적으로 살펴보면, 디바이스모듈(DeviceModule)(130a-4) 클래스는 가상 객체들(VOs)의 입력과 출력을 위한 가상 표현 수행을 위해 제공되며, 도 4에는 디바이스모듈(DeviceModule)(130a-4)과 입력모듈(OutputModule)(130a-5), 출력모듈(OutputModule)(130a-6), 그리고 디바이스모듈(DeviceModule)(130a-4) 사이의 특화된 관계를 나타낸다.
여기서 입력 디바이스를 압력 센서로, 출력 디바이스를 LED로 표현하는 실제 클래스들은 각각 입력모듈(OutputModule)(130a-5) 및 출력모듈(OutputModule) (130a-6) 클래스들로부터 얻을 수 있다. 이러한 각 입력 또는 출력 디바이스 표현 클래스들은 사용자 속성과 관련된다.
디바이스모듈(DeviceModule)(130a-4) 클래스는 디바이스 모듈들과 관련된 코어 프라퍼티들(core properties)의 수행과 각 디바이스 모듈의 고유 방식들을 수행하기 위한 I디바이스 모듈(IDeviceModule)(130a-7) 인터페이스를 작동시킬 수 있다.
또한, 디바이스모듈(DeviceModule)(130a-4) 클래스는 가상 디바이스들을 복제 가능하게 생성하기 위한 I클론에이블(ICloneable)(130a-8) 인터페이스를 작동시킬 수 있다.
여기서, I클론에이블(ICloneable)(130a-8)에 제공되는 인터페이스는 유저가 웹 브라우저 위에서 디스플레이 되는 비트맵 2D 그래픽 영역인 캔버스에 모듈을 드래그 하는 경우, 선택된 모듈을 복제하는데 사용될 수 있다.
즉, LED 클래스와 같은 개별적인 디바이스 가상 객체(VO) 모듈은 LED뷰(LEDView)와 LED 세팅(LEDSettings) 클래스 형태를 갖는 뷰 및 세팅 클래스를 포함할 수 있다. 이러한 LED뷰(LEDView) 와 LED 세팅(LEDSettings) 클래스들은 도 4에 도시된 디바이스뷰(DeviceView)(130a-9) 클래스 및 디바이스세팅(DeviceSettings)(130a-10) 클래스로부터 특화된 클래스들일 수 있다.
디바이스뷰(DeviceView)(130a-9) 클래스는 에디터에서 상세한 뷰 탭 형태의 선택된 모듈의 특성을 나타내기 위한 작업 영역 클래스에 해당한다. 유사하게, 디바이스세팅(DeviceSettings)(130a-10) 클래스는 속성들과 파라미터들을 세팅하기 위한 양식을 제공할 수 있다.
메인프로세스(MainProcess)(130a-11) 클래스는 호스트의 작업을 도와주기 위해 설치되는 독립된 데이터베이스 전용 처리기인 메인 백 엔드 프로세스(main back end process)로 동작하며, 싱글톤 클래스(singleton class)로서 수행되는 것이 바람직하다.
그 밖의 도 4에서 도시된 다른 클래스들은 공용 인터페이스를 통해 메인프로세스(MainProcess)(130a-11)와 동일한 인스턴스(instance)를 사용한다. 본 발명에서의 인스턴스는 UI 프레임워크에서 정의된 데이터 타입에 따라 물리적인 메모리를 할당받아, 프로그램에서 접근 및 실행이 가능하게 된 객체일 수 있다.
또한, 메인프로세스(MainProcess)(130a-11) 클래스는 디바이스모듈(DeviceModule)(130a-4) 클래스와 워크스페이스(WorkSpace)(130a-12) 클래스의 리스트를 점검한다. 여기서 스페이스(Space)(130a-13)클래스는 워크스페이스(WorkSpace)(130a-12) 클래스의 상위 클래스이며, 파일 시스템뿐만 아니라, 메모리 상에서 객체들을 저장 목적을 위한 XML 데이터로의 전환을 위한 XML 직렬화(XmlSerialization)(130a-11a) 클래스를 활용한다.
스페이스(Space)(130a-13) 클래스는 데이터 스페이스의 저장과 관련된 인터페이스들을 포함한 I워크스페이스(IWorkspace)(130a-14), 실행 취소(Undo)/다시 실행(Redo) 기능을 제공하기 위한 현재의 스페이스의 유지와 관련된 I스페이스UndoRedo(IspaceUndoRedo)(130a-15)를 실행시킬 수 있다.
기능성 에디터에서 도시된 입력 모듈과 출력 모듈 사이에서 형성된 조인Join, 병렬 경로의 합류)에 대한 정보를 유지하기 위해, 스페이스(Space)(130a-13) 클래스는 조인인포(JoinInfo) 클래스(130a-16)의 리스트를 갖는 것이 바람직하다.
이러한 조인인포(JoinInfo) 클래스(130a-16)의 리스트는 현재의 프로젝트와 관계된 병렬 경로의 합류들에 대해서 알기를 원하는 워크스페이스(WorkSpace) (130a-12)에 의해 사용된다.
유사하게 각 워크스페이스(WorkSpace)(130a-12) 객체는 정해진 서비스 콤포지션 프로젝트의 작업 영역에 나타난 입력 모듈과 출력 모듈을 표현하기 위한 디바이스콘텐츠(DeviceContents)(130a-17) 및 콘텐츠(Contents)(130a-18) 클래스를 사용하는 디바이스데이터(DeviceData)(130a-19) 클래스의 객체를 갖는다.
디바이스패널(DevicePanel)(130a-20), 워크패널(WorkPanel)(130a-21) 그리고 워크영역(WorkArea)(130a-22) 클래스들은 유저컨트롤(UserControl)(130a-23) 클래스로부터 파생된 구조를 갖는다. 이러한 클래스들은 각 프로젝트들을 위한 그래픽 유저 인터페이스(UI)를 제공하는데 사용한다. 여기서 각 프로젝트들은 탭컨트롤(TabControl)(130a-2) 클래스를 위해 확장된 KRBT탭컨트롤(KRBTTabControl) (130a-2a)에서 탭들로 탭페이지Ex(TabPageEx)(130a-2b)의 객체를 표시하기 위한 것을 의미한다.
탭페이지Ex(TabPageEx)(130a-2b)는 닫힘 가능한 탭페이지의 제공을 위한 탭페이지(TabPage)(130a-3) 클래스의 확장된 버전에 해당한다.
KRBT탭컨트롤(KRBTTabControl)(130a-2a)는 비쥬얼 컨트롤과 구성요소를 위한 표시가능한 메인 컨테이너에 해당하는 메인폼(130a-1a)의 일부에 해당한다.
한편, 트래쉬(Trashbin)(130a-24) 클래스는 에디터의 작업 영역에 표시된 모듈을 삭제하기 위한 기능을 제공하기 위해 워크패널(130a-21)과 함께 작업한 쓰레기통(waste bin)을 그래픽으로 표현할 수 있는 작용을 수행한다.
도 5는 서비스 콤포지션 매니저(Service Composition Manager)(130a)를 사용한 서비스 플로우의 설계 또는 구성을 위한 과정을 나타낸다. 도 5를 참조하면, 먼저 유저가 메인 그래픽 유저 인터페이스(GUI)를 실행하여 새로운 프로젝트를 생성한다.
보다 구체적으로 도 5에서 표기된 제 1 영역(1st)은 유저가 새로운 프로젝트를 초기화하는 경우 서비스 콤포지션 매니저(Service Composition Manager)(130a)의 다양한 내부 구성요소 중에서 상호작용 시퀀스를 나타내며, 제 1 영역의 시퀀스는 메인프로세스(MainProcess)(130a-11)의 초기화를 수행하지 않는다.
이러한 이유는 에디터는 이미 초기화되었고 유저가 프로세스를 시작하기 위한 새로운 프로젝트 버튼을 클릭할 수 있는 스크린에 이미 Frm메인(FrmMain)(130b) 컨테이너가 표시되었기 때문이다.
다시 도 5를 참조하면, Frm메인(FrmMain)(130b)에서 새로운 프로젝트 버튼에 대해서 사용자가 클릭하면, Frm메인(FrmMain)(130b)은 createWorkArea() 기능을 호출하며, CreateSpace() 메시지를 메인프로세스(MainProcess)(130a-11)로 전송한다.
메인프로세스(MainProcess)(130a-11)는 워크스페이스(WorkSpace) 클래스의 객체를 생성하고, 생성된 객체를 Frm메인(FrmMain)(130b)로 반환한다.
그러면 Frm메인(FrmMain)(130b)는 새로운 워크스페이스 객체를 메인프로세스(MainProcess)(130a-11)의 수집 스페이스로 추가하고, CreateSpace() 메시지에 따라 새롭게 생성된 워크스페이스 객체를 워크영역(WorkArea)(130a-22)로 전달함으로써, 워크영역(WorkArea)(130a-22) 객체를 생성하도록 한다.
이때, 워크영역(WorkArea)(130a-22) 클래스는 서비스 컨트롤 관리자(SCM)를 위한 캔버스를 도시하기 위해 실제로 작동하는 워크패널(WorkPanel)(130a-21) 객체와 관련된다.
또한, 워크영역(WorkArea)(130a-22) 클래스는 서비스 디자인을 생성하기 위한 워크영역에 유저에 의해 드래그&드롭(drag-n-drop)을 수행할 수 있도록 하는 디바이스 모듈 블록들을 표시하기 위한 입력 및 출력 패널들을 생성할 수 있다.
Frm메인(FrmMain)(130b)에 워크영역 객체를 표시하기 위해, 워크영역(WorkArea)(130a-22) 클래스는 탭페이지Ex(TabPageEx)(130a-2b)로 불리는 확장된 탭페이지 객체 수집 제어 기능도 수행한다.
여기서 탭페이지 객체는 탭콘트롤 상에서 새로운 탭으로 표시되며, 모든 툴바 제어들은 인에이블컨트롤(enableControls) 메시지를 사용하여 새로운 프로젝트이 생성된다. 이때, 유저는 기능 프로우를 생성하기 위한 가상 객체들을 드래그&드롭할 수 있는 새로운 프로젝트 탭을 확인할 수 있다.
새로운 프로젝트가 초기화되면, 유저는 워크 영역으로 입력 또는 출력 가상 객체(VO)를 드래그&드롭을 수행하기 위한 개시(strat)가 가능하다.
워크 영역이 관련된 워크패널(WorkPanel)(130a-21) 콘트롤을 수용하는 경우, 유저에 의해 드롭된 가상 객체(VO)를 위한 그래픽 표현이 패널에 도시된다.
다음으로 도 5에서 제 2 영역(2nd)을 참조하여 서비스 콤포지션 계층(Service Composition Layer, SCL)(130) 상에서 가상 객체(VO)에서 서비스 객체(SO)로의 맵핑 시퀀스를 살펴본다. 상술한 패널에서 드래그&드롭에 따라, 이벤트 핸들러는 드롭된 가상 객체(VO)와 관련 데이터를 획득한 뒤, 메인프로세스(MainProcess)(130a-11)에서 디바이스 리스트에 저장된 원본으로부터 복제 객체를 생성한다.
복제 객체는 부모 클래스 스페이스를 통해 각 워크스페이스에서 관리되는 디바이스 리스트에 추가된다. 부모 클래스는 실행 취소(Undo)/다시 실행(Redo)을 관리를 위한 스택 구현을 갖는 것이 바람직하다.
이러한 워크스페이스(Workspace)(130-12) 클래스는 XMLSerializer 인스턴(instance)를 생성하고, 파라미터로 자신의 레퍼런스를 갖는 XMLSerializer(130a-11a)로 MemorySerializeCollection 수행을 요청한다.
이에 따라, XMLSerializer(130a-11a) 클래스는 워크 스페이스 객체와 연관된 모든 데이터를 획득하고, 획득된 데이터를 XML 포맷으로 변경한 뒤, 그것을 바이트 데이터로(byte data) 메모리 버퍼에 저장한다.
한편, 바이트 데이터 버퍼의 레퍼런스는 워크스페이스(Workspace)(130-12) 클래스로 반환된다.
여기서 바이트 데이터 버퍼는 실행 취소(Undo) 스택에 푸쉬 입력되며, 디바이스 리스트는 업데이트되며, 워크패널(WorkPanel)(130a-21)는 업데이트 플로우를 생성하기 위해 무효화된다.
이러한 시퀀스는 사용자에 의해 매일 새로운 디바이스 모듈이 워크 패널로 드롭되는 경우 반복수행된다.
하나의 프로젝트에서 워크패널에 오로지 한 번 디바이스 모듈이 드form 되는 경우 하나의 사물만이 메모될 수 있으나, 이는 생성된 플로우들의 간결성을 위한 초기화 정책에 기인하며, 설정에 따라 변경될 수 있다.
다음으로 도 5에서 제 3 영역(3rd)을 설명하면, 유저는 입력 디바이스 모듈을 다수의 출력 모듈에 참가시킬 수 있다. 이를 위해, 유저는 워크패널(WorkPanel)(130a-21)에 이미 생성된 입력 가상 객체(VO)에 왼쪽 마우스 버튼을 클릭하여 눌려야 한다. 사용자가 왼쪽 버튼을 누르고 있는 상태에서 마우스를 움직이면, 워크패널(WorkPanel)(130a-21)은 조인(join)이 그려진 시작 위치를 획득하기 위해 조인인포(JoinInfo)(130a-16) 클래스의 정적 방식을 호출한다. 조인(Join)을 도시하기 위해, 베지어 라인(Bezier line)은 조인(Join)의 시작 위치로부터 마우스 포인터까지 그려진다.
마우스 포인터가 가상 객체(VO) 영역까지 입력되면, 정적 방식에 의해 다시 조인의 종료 위치까지 연산되며, 조인이 워크패널(WorkPanel)(130a-21)에 표시된다.
이때, 유저가 마우스 버튼의 누른 상태를 제거하면, 조인인포(JoinInfo) 클래스(130a-16) 오브젝트는 입력 및 출력 디바이스 모듈의 정보와 함께 생성되며, 조인인포(JoinInfo) 클래스(130a-16) 오브젝트는 워크스페이스 객체에 의해 관리되는 조인 리스트에 추가된다. 그려진 라인이 삭제된다. 조인(Join)이 생성되면, 유저는 행위를 설정하기 위해 즉, 관련된 물리적 사물을 위한 이용가능한 기능을 선택하기 위해 조인을 더블 클릭하거나 개별적으로 가상 객체(VO)를 더블 클릭할 수 있으며, 다른 파라미터들도 설정할 수 있다. 이때 관련된 데이터는 조인인포(JoinInfo)(130a-16)의 형태로 서비스 객체(Service Objects, SO)의 일부로 저장되고, 완성된 서비스 객체(SO)는 입력 및 출력 가상 객체들(VOs)의 결합에 의해 생성된다.
도 6은 본 발명의 실시예에 따른 비지니스 프로세스 계층(Business Process Layer, BPL)(140)에서의 주요 구성요소를 나타내는 정적 구조로, 프로세스 모델링을 설명하기 위한 도면이다.
도 6을 참조하면, 비지니스 프로세스 계층(Business Process Layer, BPL)(140)의 목적은 서비스 콤포지션 계층(Service Composition Layer, SCL)(130)에서 생성된 서비스 객체(SO)를 활용하고, 서비스 객체(SO)를 유저에게 비지니스 프로세스 모델링 노테이션(business process modelling notations) 형태로 표현하기 위함이다.
비지니스 프로세스 계층(Business Process Layer, BPL)(140)에서 가장 중요한 구성요소는 비지니스 프로세스 디자인 매니저(business process design manager)(140a)이다. 비지니스 프로세스 디자인 매니저(business process design manager)(140a)는 BPM 기반 비즈니스 프로세스 에디터(140a-1)를 포함하며, BPM 기반 비즈니스 프로세스 에디터(140a-1)는 툴바(Toolbar)(140a-2), 툴박스(Toolbox)(140a-3), 디자이너캔버스(DesignerCanva) (140a-4)를 포함하는 메인 윈도우(140a-5)에 해당한다.
툴바(Toolbar)(140a-2)는 아이템컨트롤(itemControl)(140a-2a) 클래스에서 분기된 콤포넌트 패널이다. 이런 패널에는 서비스 콤포지션 계층(130)에서 획득된 서비스 객체(SO)에 대응하는 비지니스 프로세스 모델링 노테이션 형태의 시각적 표현이 나타난다.
툴바(Toolbar)(140a-2) 콤포넌트는 사용자에 의한 드래그&드롭 디자인을 수행하기 위한 기초적인 드로잉 명령들과 작동을 수행한다. 여기서 드로잉 명령들은 실행, 실행 취소(Undo) 동작, 복사, 붙이기 동작, 그룹 및 그룹 해제 동작 등을 의미한다.
커넥션(connection)(140a-6) 클래스와 이와 연계된 커넥션어도너 (ConnectionAdorner)(140a-7) 클래스는 프로세스 과정 사이에서 플로우 시퀀스를 표현하는 비지니스 프로세스 모델링 노테이션(Business Process Modeling Notations, BPMN) 아이템들 사이의 연결 라인을 도시하기 위해 사용된다.
도 7은 도 6의 구성요소를 기반으로 본 발명의 실시예에 따른 비지니스 프로세스 계층(Business Process Layer, BPL)(140)에서의 동작 시퀀스를 나타내는 흐름도이다.
도 7을 참조하면, 비지니스 프로세스 계층(Business Process Layer, BPL)(140)에서의 동작은 서비스 콤포지션 계층(130)로부터 서비스 객체들(SOs)의 획득 과정을 포함하며, 서비스 객체들(SOs)을 비지니스 프로세스 모델링 노테이션으로의 맵핑을 포함하여 유저를 위해 서비스 객체들(SOs)을 프로세스 모델로 변환하고 최종적으로 프로세스를 수행하도록 한다.
도시된 서비스 컨트롤 관리자(SCM) 통신 매니저(140c)는 비지니스 프로세스 계층(140)의 주요 구성요소인 BPM 기반 비즈니스 프로세스 에디터(140a-1)로부터 커넥션 요청을 대기한다.
커넥션이 성공적으로 연결되면, 서비스 객체 스테이트 저장소(SO State Repository)(140d)에서 이용가능한 서비스 객체들(SOs)은 XML 인포 객체의 형태로 획득되어 비지니스 프로세스 계층(Business Process Layer)(140)로 전달된다.
획득된 서비스 객체들(SOs)는 비지니스 프로세스 모델링 노테이션으로 유저에게 표현되기 위해 XML 파서(XML Parser)(140f)에 의해 파싱된다. 유저는 시각적으로 구현 적용된 비지니스 프로세스 모델링 노테이션을 활용해 드래그&드롭 동작에 의해 프로세스 모델을 생성한다.
이때, 유저가 프로세스 모델 생성 과정들 중간에 미리 설정된 동작 룰 또는 조건들에 따라 프로세스 콤포넌트를 드로잉하고, 커넥션 노테이션을 통해 프로세스 콤포넌트를 연결하는 과정을 수행할 수 있다.
이러한 과정을 통해 프로세스 모델이 완성되면, 프로세스 객체가 생성된다. 프로세스 객체는 비지니스 프로세스 계층(140)에서 배포 엔진 (Deployment Engine)(또는 배포 매니저)(140e)을 통해 전개가능한 개체이다.
이러한 전개된 프로세스 객체(deployed process object)는 서비스 객체를 구성하는 서비스들에 기초하여 일련의 동작으로 변경될 수 있는 것들이다.
여기서, 배포 엔진(Deployment Engine)(140e)은 프로세스 객체의 일부로 서비스들과 상호작용하며, 생성된 프로세스 객체는 분리된 쓰레드(thread)로 실행되어 다양한 프로세스 객체들이 동시에 수행될 수 있다.
한편, 도 8은 IoT 어플리케이션 구성 시스템의 개념을 나타내는 참조도면이다. 도 8을 참조하면, 제안된 시스템의 프로토타입 실행 화면으로, 도 8에 도시된 각 세부항목은 개별적인 콤포넌트를 나타내며, 기능적으로 분류될 수 있다.
다음으로, 도 9는 가상 객체 매니저(VOM)(120a)에 의해 구현된 UI 화면과 가상 객체(VO)의 XML 표현을 나타내는 도면이다. 도 9를 참조하면, 저장된 가상 객체들(VOs)의 데이터에 대한 XML 표현을 나타내며, 가상 객체 매니저(VOM)(120a)는 유저들에게 IoT 리소스들의 행위를 암호화할 수 있는 것이 바람직하다.
가상 객체 매니저(VOM)(120a)는 IoT 리소스 데이터를 시각적 표현으로 연계시킴으로써, 가상 객체(VO)가 보다 직관적인 방식으로 상호 작용하고 조작될 수 있도록 한다.
이런 목적을 위해 두 가지의 다른 접근 방식이 유용하게 사용될 수 있다. 첫 번째 접근 방식은Uniform Resource Identifier(URI), 위치, 타입 그리고 서비스들의 형태의 IoT 리소스에 관한 상세한 제공이 이루어지는 수동적인 방식일 수 있다. 이런 방식에서 제공된 프로토콜들을 수행하는 디바이스가 시스템에 리소스로서 추가될 수 있다.
다른 접근 방식은 가상 객체 매니저(VOM)(120a)가 원격의 디바이스의 URI를 제공받은 뒤, CoAP 프로토콜의 수행된 서비스를 통하는 방식으로, 가상 객체 매니저(VOM)(120a)는 자동으로 디바이스로부터 필요한 정보를 추출한다. 그러나 이러한 방식은 자동으로 수행되어 편리한 장점이 있으나, 미리 정해진 목적을 위해 시스템에서 특정된 서비스 수행을 위해 구비된 특정 디바이스들에게만 유용할 수 있는 단점이 있다.
도 10은 서비스 콤포지션 매니저(Service Composition Manager)(130a)에 의해 구현된 UI 화면과 가상 객체(VO)의 XML 표현을 나타내는 도면이다.
도 10을 참조하면, 서비스 콤포지션 매니저(Service Composition Manager)(130a)는 서비스 콤포지션 계층(130)에서의 주요 모듈에 해당한다. 서비스 콤포지션 매니저(Service Composition Manager)(130a)는 유저에게 쉽게 시각화하고 가상 객체 매니저(VOM)(120a)에 의해 생성된 가상 객체들(VOs)과 상호 작용 및 조작을 허여하는데 그 주요 목적이 있다.
이러한 목적을 수행하기 위해 센서 가상 객체들(VOs)과 액츄에이터 가상 객체들(VOs)은 입력과 출력 모듈로 분리되어 표현될 수 있다. 이러한 모듈들은 윈도우 운영체제의 마우스 이벤트들을 통해 캔버스 상에 직접적으로 드래그&드롭 되도록 구현할 수 있다. 캔버스에 구현된 가상 객체(VO) 모듈들은 입력 가상객체들(VOs)과 출력 가상객체들(VOs) 사이를 연결하여 표현된 간단한 조인 라인들로 표시될 수 있으며, 유저는 조인된 가상 객체들(VOs)에 대한 동작의 룰을 세팅하기 위한 직관적인 마우스 이벤트를 사용할 수 있다.
그리고, 서비스 콤포지션 매니저(Service Composition Manager)(130a)에서의 입력 가상 객체들(VOs)과 출력 가상 객체들(VOs)의 조인은 서비스 객체(SO)를 생성하는데, 이러한 서비스 객체들(SOs)은 서비스 객체(SO)의 일부로서 입력 가상 객체(VO) 및 출력 가상 객체(VO)를 개별적으로 표현하는 XML 문서들로 저장될 수 있다.
또한 가상 객체들(VOs) 사이의 연결은 해당 연결을 위한 소스(source) 및 싱크(sink) 개체를 특정한 조인 노드의 형태로 XML 문서로 표현될 수 있다. 이에 따라 유저의 요청에 따라 객체들(VOs)이 저장되거나, 열리거나 업데이트될 수 있다.
도 11은 BPM 기반 비즈니스 프로세스 에디터(140a-1)에 의해 구현된 UI 화면과 가상 객체(VO)의 XML 표현을 나타내는 도면이다. 도 11을 참조하면, BPM 기반 비즈니스 프로세스 에디터(140a-1)는 비지니스 프로세스 모델링 노테이션(Business Process Modeling Notations, BPMN)으로 서비스 콤포지션 매니저(Service Composition Manager)(130a)에서 생성되는 서비스 객체들(VOs)의 표현을 담당한다. BPM 기반 비즈니스 프로세스 에디터(140a-1)을 위한 메인 인터페이스는 도 11에 도시되어 있다.
BPM 기반 비즈니스 프로세스 에디터(140a-1)는 IoT 어플리케이션들을 생성하고 전개하기 위한 노테이선의 기초 지식을 누구라고 DIY 인터페이스를 통해 제공받기 위해 서비스 객체들의 표현에 기초한 비지니스 프로세스 모델링 노테이션(Business Process Modeling Notations, BPMN)을 제공하는데 목적이 있다.
또한, BPM 기반 비즈니스 프로세스 에디터(140a-1)는 유저가 그래픽 모델을 생성해야 하는 프로그래밍 스킬의 요구를 제거할 수 있으며, IoT 어플리케이션으로 직접적으로 전개할 수 있도록 한다.
비지니스 프로세스 모델링 노테이션(Business Process Modeling Notations, BPMN)은 베이직 이벤트, 태스크, 게이트웨이, 스크립트 노테이션을 포함한 프로토타입 시스템의 일부로서 수행될 수 있으며, 서비스 오브젝트들은 태스크(task)로서 표현되고, 유저가 드래그&드롭 접근 방식을 통해 모델을 생성할 수 있다.
이러한 동작의 시퀀스는 목적 객체들을 통한 노테이션들의 연결에 의해 생성되며, 동일한 목적 객체들은 모델에서의 입력 및 출력 노테이션들에 관한 정보를 획득하기 위해 사용된다.
게이트웨이 노테이션은 스크린트 노테이션이 데이터를 유저가 조작하거나 프로세스를 진행하도록 선택되기 위해 스크립트 리스트로 제공되는 한 결정 툴로서 수행된다.
유저에 의해 생성된 비지니스 프로세스 모델의 XML 구현에 있어서, XML 샘플은 디자인아이템 객체들(DesignerItem objects)로 태스크 및 다른 노테이션을 표현하는 것으로 도 11에 도시되어 있다. 또한, 도 11에서 도시된 모델에서 소스(source) 및 싱크(sink) 아이템의 트랙을 유지하기 위한 커넥션 객체들이 포함된 것을 알 수 있다.
도 12는 BMP 배포 엔진(Deployment Engine)(140e)또는 BMP 배포 매니저(BMP Deployment Manager)에 의해 구현된 UI 화면을 나타내는 도면이다. 도 12를 참조하면, BMP 배포 매니저(BMP Deployment Manager)(140e)에 의해 구현된 UI 화면뿐만 아니라, BPM 기반 비즈니스 프로세스 에디터(140a-1)를 통해 생성된 동일한 모델의 테스트의 결과를 나타낸다.
BMP 배포 매니저(BMP Deployment Manager)(140e)는 BPM 기반 비즈니스 프로세스 에디터(140a-1)에 의해 생성되어 XML 문서로 저장된 다양한 IoT 리소스들 사이의 관계에 대해서 프로세스 모델로 표현한다.
이러한 XML 문서들은 BMP 배포 매니저(140e)에 로드(load)되어 실행되어 진다. 도 12에 도시된 프로토타입 구현은 CoAP 구현과 함께 IoT 리소스들을 고려하므로, 배포 매니저(140e)는 자바를 사용하여 구현된다. 이에 따라, IoT 리소스들이 Californium framework을 사용하여 구현될 수 있다.
생성된 프로세스 모델을 실행하기 위해, 첫번 째로 XML 문서는 BMP 배포 매니저(140e)에 의해 파싱된 뒤, 관련된 개체들이 추출된다. 관련 개체들이 추출되면 프로세스 모델의 플로우에 따라 소팅되어 리스트에 저장되며, 리스트는 반복 생성되며, 각 개체는 속성 및 행위에 기초하여 수행된다.
원격 IoT 리소스들과 관련된 태스크를 위해 CoAP 서비스들은 상술한 Californium framework을 사용하여 호출된다. 호출에 대한 응답은 읽혀지고, 특정 태스크 노테이션과 직접적으로 연결된 다른 노테이션에 입력으로서 제공된다.
참고로, BMP 배포 매니저(140e)의 일부로서 수행되는 스크립트들은, 데이터가 원격의 IoT 리스소와 같은 다른 개체에 의해 제공되는 동안 매니저에 의해 관리자에 의해 수행될 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
본 발명은 BPM 기반 DIY 방식을 이용한 IoT 의 가상 사물, 서비스 및 비즈니스 프로세스 저작 시스템 및 방법에 관한 것으로, 보다 구체적으로는, 사물인터넷 앱 플레이스에 초보자가 손쉽게 서비스를 개발하여 탑재하기 위해 DIY(Do-It-Yourself) 방식의 IoT의 사물, 서비스, 프로세스 가상화를 제공하고, 개인 주도형 개발이 가능한 BPM 기반의 IoT의 가상 사물 생성, 서비스 컴포지션, 비즈니스 프로세스 생성 및 배포에 사용된다.

Claims (10)

  1. IoT(Internet of Things)와 관련된 사물(things)을 구성하기 위한 계층인 물리 계층(physical layer)(110);
    물리 계층(110)에서의 사물(things)을 가상 객체(Virtual Objects, VO)로 표현하며, 가상 객체(VO)를 관리하기 위한 계층인 가상 객체 계층(Virtual Object Layer, VOL)(120);
    가상 객체 계층(VOL)(120)에서의 가상 객체(VO)에 대해서 두 개 이상의 가상 객체(VO)의 조합에 의해 서비스 객체(Service Objects, SO)를 생성하는 서비스 콤포지션 계층(Service Composition Layer, SCL)(130); 및
    각 서비스 객체(SO)가 생성되면, 하나의 단위의 서비스 객체에 대해서 하나의 시나리오를 위한 유저가 원하는 프로세스의 플로우를 형성하며, 서비스 객체(SO)들의 조인 기반의 모델을 수행하기 위해 비지니스 프로세스 모델링 노테이션(Business Process Modeling Notations, BPMN)을 활용하는 비지니스 프로세스 계층(Business Process Layer, BPL)(140); 를 포함하는 4개 계층(layer)으로 형성되는 시스템 아키텍처를 구비하는 것을 특징으로 하는 BPM 기반의 IoT DIY 시스템.
  2. 청구항 1에 있어서,
    BPM 기반의 IoT DIY 시스템 수행절차는 비지니스 프로세스 계층(BPL)(140)에서 개별적인 서비스 객체(SO)에 의해 정의되는 기능을 수행하도록 동작하며, 실제 상호 작용으로 개별적인 가상 객체(VO) 간에 암호화된 행위에 기초한 물리 객체(PO)를 직접적으로 수행하는 것을 특징으로 하는 BPM 기반의 IoT DIY 시스템.
  3. 청구항 1에 있어서, 사물(things)은,
    IoT 환경 및 주위에서 발생하는 미리 설정된 현상에 대한 제어 데이터를 탐지하는 것을 특징으로 하는 BPM 기반의 IoT DIY 시스템.
  4. 청구항 1에 있어서, 가상 객체(VO)는,
    물리 계층(110)의 사물과 관련된 정보를 요약 또는 압축적으로 제시하며, 유저(user)에게 IoT 시스템 환경 내부의 가상 객체(VO)에 대한 조작이 가능하도록 하며, 가상 객체(VO)로 표현되는 물리 계층(110)에서의 사물(thing)의 환경으로의 액세스가 가능하도록 하는 것을 특징으로 하는 BPM 기반의 IoT DIY 시스템.
  5. 청구항 1에 있어서, 서비스 객체(SO)는,
    입력 가상 객체(VO)로 온도 센서 가상 객체(VO), 그리고 출력 가상 객체(VO)로 LED 가상 객체(VO)의 조인(Join)으로 형성되는 것을 특징으로 하는 BPM 기반의 IoT DIY 시스템.
  6. 청구항 1에 있어서, 가상 객체 계층(Virtual Object Layer, VOL)(120)는,
    유저들이 가상 객체(VO)들을 등록하기 원하는 물리 계층의 사물(things)과 관련된 정보를 입력하기 위한 로컬 또는 원격 인터페이스 클래스들의 구성요소를 사용자에게 제공하는 가상 객체 매니저(VOM)(120a); 를 구비하는 것을 특징으로 하는 BPM 기반의 IoT DIY 시스템.
  7. 청구항 1에 있어서, 가상 객체 매니저는 물리적 IoT 디바이스(센서 또는 구동체)의 프로파일을 이용하여 가상 사물을 생성하는 BPM 기반의 IoT DIY 시스템.
  8. 청구항 1에 있어서, IoT 서비스 콤포지션 매니저는 가상 사물들을 연결하고 가상 객체들 사이의 관계와 규칙을 생성하고 조합(composition)된 IoT 서비스를 만드는 BPM 기반의 IoT DIY 시스템.
  9. 청구항 1에 있어서, IoT 비즈니스 프로세스 에디터는 IoT 서비스들을 상호 연결하고 비즈니스 프로세스 모델(BPM)을 적용하여 오케스트레이션(orchestration)한 IoT 비즈니스 프로세스를 생성하는 BPM 기반의 IoT DIY 시스템.
  10. 청구항 1에 있어서, IoT 비즈니스 프로세스 및 서비스 배포 엔진은 생성된 생성된 IoT 비즈니스 프로세스를 통신인터페이스(USB 또는 인터넷 프로토콜 등)을 통해 물리적인 IoT 디바이스에 배포하는 BPM 기반의 IoT DIY 시스템.
PCT/KR2016/015548 2016-12-08 2016-12-30 Bpm 기반의 iot diy 시스템 및 이의 구현방법 WO2018105804A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0166585 2016-12-08
KR1020160166585A KR101888472B1 (ko) 2016-12-08 2016-12-08 BPM 기반의 IoT DIY 시스템 및 이의 구현방법

Publications (1)

Publication Number Publication Date
WO2018105804A1 true WO2018105804A1 (ko) 2018-06-14

Family

ID=62491226

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/015548 WO2018105804A1 (ko) 2016-12-08 2016-12-30 Bpm 기반의 iot diy 시스템 및 이의 구현방법

Country Status (2)

Country Link
KR (1) KR101888472B1 (ko)
WO (1) WO2018105804A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989093A (zh) * 2018-06-27 2018-12-11 安徽国讯芯微科技有限公司 一种物联网多维物理建模系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102120548B1 (ko) * 2018-08-23 2020-06-16 제주대학교 산학협력단 클라우드 기반의 IoT 네트워크 가상화 시스템 및 네트워킹 방법
KR102356143B1 (ko) * 2018-10-26 2022-01-28 한국전자통신연구원 객체 네트워킹 장치 및 방법
KR102252446B1 (ko) * 2019-06-13 2021-05-17 제주대학교 산학협력단 사물인터넷의 자원과 서비스 관리 시스템 및 방법, 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101493166B1 (ko) * 2013-08-22 2015-02-16 한국과학기술원 IoT 환경에서 가상화된 객체의 인스턴스를 관리하기 위한 웹 기반 사용자 인터페이스를 제공하는 서비스 방법 및 시스템
KR20150032151A (ko) * 2013-09-17 2015-03-25 한국전자통신연구원 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법
KR20150085640A (ko) * 2014-01-16 2015-07-24 한국전자통신연구원 IoT DIY 플랫폼을 지원하는 전자 장치
WO2015191965A2 (en) * 2014-06-13 2015-12-17 Convida Wireless, Llc Automated service profiling and orchestration
US20160135241A1 (en) * 2014-11-10 2016-05-12 Qualcomm Incorporated Connectivity module for internet of things (iot) devices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101943148B1 (ko) 2015-01-20 2019-04-17 전자부품연구원 자가 적응 IoT 디바이스 및 시스템
KR101997951B1 (ko) 2015-02-04 2019-07-09 전자부품연구원 시맨틱 정보 분석을 지원할 수 있는 IoT 서비스 시스템 및 방법
KR101628996B1 (ko) 2015-05-08 2016-06-10 주식회사 엠씨티 사물인터넷 구현을 위한 유선과 무선통신 자동인식 망3중화된 고속게이트웨이 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101493166B1 (ko) * 2013-08-22 2015-02-16 한국과학기술원 IoT 환경에서 가상화된 객체의 인스턴스를 관리하기 위한 웹 기반 사용자 인터페이스를 제공하는 서비스 방법 및 시스템
KR20150032151A (ko) * 2013-09-17 2015-03-25 한국전자통신연구원 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법
KR20150085640A (ko) * 2014-01-16 2015-07-24 한국전자통신연구원 IoT DIY 플랫폼을 지원하는 전자 장치
WO2015191965A2 (en) * 2014-06-13 2015-12-17 Convida Wireless, Llc Automated service profiling and orchestration
US20160135241A1 (en) * 2014-11-10 2016-05-12 Qualcomm Incorporated Connectivity module for internet of things (iot) devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989093A (zh) * 2018-06-27 2018-12-11 安徽国讯芯微科技有限公司 一种物联网多维物理建模系统

Also Published As

Publication number Publication date
KR20180066356A (ko) 2018-06-19
KR101888472B1 (ko) 2018-08-16

Similar Documents

Publication Publication Date Title
US20210328873A1 (en) Dynamic and customizable virtual network functions
WO2018105804A1 (ko) Bpm 기반의 iot diy 시스템 및 이의 구현방법
US9696972B2 (en) Method and apparatus for updating a web-based user interface
WO2018203635A1 (ko) 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
EP1934794B1 (en) Apparatus, method and system for rapid delivery of distributed applications
CN103645908B (zh) 网构软件全生命周期开发实现系统
CN105700888A (zh) 一种基于jbpm工作流引擎的可视化快速开发平台
WO2018036342A1 (zh) 基于csar的模型文件的可视化设计方法及装置
WO2020017846A1 (ko) 클라우드 플랫폼에서 어플리케이션 컨테이너의 볼륨(스토리지) 프로비저닝 방법
JP5931806B2 (ja) 画像認識による自動操作装置、その方法及びプログラム
WO2014116005A1 (ko) 애플리케이션 개발 환경 제공 방법 및 그 장치
US8495566B2 (en) Widget combos: a widget programming model
CN111966465B (zh) 一种实时修改宿主机配置参数的方法、系统、设备及介质
WO2018194349A1 (ko) 데이터 테이블 중 일부 영역 선택을 통한 차트 시각화 방법
EP3454203A1 (en) Data modelling and flow engine for building automated flows within a cloud based developmental platform
KR101748548B1 (ko) IoT네트웍 시스템
Song et al. Applying MDE tools at runtime: Experiments upon runtime models
WO2021075919A1 (ko) 다중 기기 상호작용을 위한 사용자 인터페이스 분산 방법
CN106648964A (zh) 数据库备份方法及系统
CN107124292B (zh) 一种信息系统运行方式关联关系动态生成方法
JPH1127285A (ja) ネットワーク管理システム及び記録媒体
CN109062548B (zh) 一种基于工作流搭建的Web服务扩展方法及系统
JP7113765B2 (ja) コード管理システムおよびコード管理方法
CN116893807A (zh) 使用浏览器设计机器人流程自动化机器人的系统和方法
WO2018147529A1 (ko) 온라인 환경에서 구현되는 대시보드 내 차트간 인터랙션 방법

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: 16923371

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16923371

Country of ref document: EP

Kind code of ref document: A1