KR20210090517A - Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery - Google Patents

Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery Download PDF

Info

Publication number
KR20210090517A
KR20210090517A KR1020200003920A KR20200003920A KR20210090517A KR 20210090517 A KR20210090517 A KR 20210090517A KR 1020200003920 A KR1020200003920 A KR 1020200003920A KR 20200003920 A KR20200003920 A KR 20200003920A KR 20210090517 A KR20210090517 A KR 20210090517A
Authority
KR
South Korea
Prior art keywords
virtual object
store
virtual
sharing
iot
Prior art date
Application number
KR1020200003920A
Other languages
Korean (ko)
Other versions
KR102323188B1 (en
Inventor
김도현
Original Assignee
제주대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 제주대학교 산학협력단 filed Critical 제주대학교 산학협력단
Priority to KR1020200003920A priority Critical patent/KR102323188B1/en
Priority to PCT/KR2021/000283 priority patent/WO2021141458A1/en
Publication of KR20210090517A publication Critical patent/KR20210090517A/en
Application granted granted Critical
Publication of KR102323188B1 publication Critical patent/KR102323188B1/en

Links

Images

Classifications

    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Abstract

The present invention relates to a technology for designing and implementing a cloud-centric IoT store with an objective of hosting a virtual object of an IoT domain. According to the present invention, by designing and implementing a cloud-based decoupling IoT store, the present invention can provide a major technology for searching and sharing of a virtual object. The method comprises: a generation step; a registration step; a distribution step; a processing step; a searching step; and a selling and renting step.

Description

가상 객체 공유 및 판매를 위한 사물인터넷 스토어 제공방법 및 시스템{Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery}TECHNICAL FIELD [0002] Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery

본 발명은 가상객체 및 서비스를 생성하고, 등록하며, 검색을 통해 가상객체를 공유하고, 판매를 수행하는 방법 및 시스템에 대한 것이다.The present invention relates to a method and system for creating virtual objects and services, registering them, sharing virtual objects through search, and performing sales.

사물 인터넷(Internet of Things: IoT, 이하 'IoT라' 칭함)은 가상 공간과 물리적 공간 모두에서 가능한 상호작용을 실현하기 위해 물리적 물체를 검색, 검사, 활성화, 상호 연결 및 업데이트할 수 있는 사이버 물리적 공간의 개념으로 성장해 왔다. The Internet of Things (IoT) is a cyber-physical space capable of discovering, inspecting, activating, interconnecting and updating physical objects to realize possible interactions in both virtual and physical space. has grown with the concept of

사물인터넷(IoT)의 기본 아이디어는 물리적 실체와 디지털 등가물로 간주되는 가상 객체의 개념이다. 현재 모든 IoT 플랫폼에서 가상 객체의 사용은 필수적인 구성요소가 되었다. The basic idea behind the Internet of Things (IoT) is the concept of virtual objects, considered as digital equivalents to physical entities. The use of virtual objects has become an essential component in all IoT platforms today.

이러한 가상 객체는 IoT 애플리케이션의 구성요소를 형성하고, 서비스 발견을 지원하고, 복잡한 애플리케이션의 생산을 촉진하고, 개체의 에너지 및 전력 관리 효율성을 향상시키며, 이질성과 확장성 문제를 해결한다. These virtual objects form the building blocks of IoT applications, support service discovery, facilitate the production of complex applications, improve energy and power management efficiency of entities, and solve heterogeneity and scalability problems.

아이디어 공유와 재사용은 광범위한 확산을 가능하게 하며, 이러한 목적을 위해 노력 중복을 피하기 위해 애플리케이션 또는 그 구성요소를 유사한 도메인과 공유하기 위해 서로 다른 솔루션이 구축된다.Sharing and reuse of ideas allows for widespread dissemination, and for this purpose, different solutions are built to share an application or its components with similar domains to avoid duplication of effort.

사물인터넷(IoT)은 정보통신기술(ICT) 분야의 기술개발을 형성하는 혁신적인 패러다임이다. 이 패러다임의 기본 개념은 센서, 작동기, RFID 태그, 휴대전화와 같은 다양한 사물이나 물건들이 우리 주위에 널리 퍼져 있다는 것이다. 서로 다른 컴퓨팅과 연결 기능을 가진 이질적이고 퍼베이시브한(pervasive) 개체는 IoT라고 하는 공통의 용어로 통합되어 있다. IoT의 주된 목표는 인터넷을 통해 사용자에게 서비스를 제공하는 것이지만, 중요한 정보와 서비스는 물리적 객체를 통해 제공되어 온 현실세계와 엄격히 연계되는 것이다. The Internet of Things (IoT) is an innovative paradigm that forms technological development in the field of information and communication technology (ICT). The basic concept of this paradigm is that various objects or objects, such as sensors, actuators, RFID tags, and mobile phones, are pervasive around us. Disparate and pervasive entities with different computing and connectivity capabilities are united under a common term called IoT. Although the main goal of IoT is to provide services to users through the Internet, important information and services are strictly linked to the real world that has been provided through physical objects.

IoT 애플리케이션은 일반적으로 다양한 통신 프로토콜을 사용하여 통신하는 기능이 제한된 물리적 개체로 구성된다. 이를 위해 가상 객체의 개념을 도입한다. 가상 객체(개체)는 물리적 개체의 디지털 상대물이며, 추가적인 기능을 가진 물리적 장치의 기능을 증대시키는 기술적 솔루션을 제공하는 것을 목표로 하며, 모든 개체가 동일한 수준에서 서로 대화하여 강력한 애플리케이션의 실현을 용이하게 할 수 있도록 한다.IoT applications typically consist of physical entities with limited ability to communicate using various communication protocols. To this end, the concept of virtual objects is introduced. A virtual object (entity) is a digital counterpart of a physical object, and aims to provide a technical solution that augments the functionality of a physical device with additional functions, all objects talking to each other at the same level, facilitating the realization of powerful applications make it possible to do

가상 객체는 최근 IoT 플랫폼의 핵심 부품으로 꼽힌다. IoT 애플리케이션은 다양한 가상 객체를 결합해 최종 사용자가 사용할 수 있는 서비스를 구축한다. 최근의 사이버-물리적 시스템의 발전은 우리의 생활 방식을 재정의하고 있으며, 가상 물체의 아이디어를 장려하고 모든 물리적 것들이 사이버 세계를 통해 상호 연결되고 통제될 수 있는 사이버 공간으로 물리적 공간의 표현을 요구할 수 있는 길을 닦았다. Quick Response (QR) 코드와 RFID 같은 기술들은 이미 물리적 물체의 디지털 표현을 위한 길을 열어주고 있다.Virtual objects are recently considered a key component of IoT platforms. IoT applications combine various virtual objects to build services available to end users. Recent advances in cyber-physical systems are redefining our way of life, encouraging the idea of virtual objects and enabling the representation of physical space into cyberspace where all physical things can be interconnected and controlled through the cyber world. cleared the way Technologies such as Quick Response (QR) codes and RFID are already paving the way for digital representations of physical objects.

역사적으로, 제한된 기술 지식에도 불구하고, 기술 구성요소를 검색하고 그것들을 통합하여 제품을 만드는 공동체의 집단이 항상 존재해왔다. 이 사람들을 제작자(makers)라고 부른다. 이들 그룹의 주요 동인은 창의성과 성취감이다. IoT 사업 중 상당수는 상용 IoT 제품과 하드웨어, 소프트웨어를 통합한 복잡한 시스템이다. 이들 제조업체는 IoT의 진정한 사용자 혁신자로, 신제품과 프로토타입의 혁신을 주도하면서도 동시에 나머지 사용자와 개발자보다 앞서 통합에 난관에 봉착한 것으로 평가된다. 제작자의 촉진 패러다임은 DIY(Do-it-Yourself) 접근방식이다. DIY 패러다임에서는 IoT 서비스를 형성하기 위해 끌어다 놓을 수 있는 비주얼 코드 컴포넌트와 엔티티를 제공하는 것이 주안점이다. DIY 접근방식을 채택하는 일부 두드러진 플랫폼은 노드-RED, SAM 스타터 키트, 슈퍼 스트림 충돌기, particle.io 및 dweet.io.이다. 대부분의 플랫폼의 가상 객체는 드래그되고 연결되어 IoT 서비스를 구성한다. 그러나, 이러한 플랫폼의 대부분은 오프라인이며, 한 제작자(maker)에 의한 노력은 다른 제작자에 의해 다시 사용될 수 없다. 따라서 IoT 플랫폼의 구성요소를 공유하여 IoT 애플리케이션과 유사한 영역에서 재사용할 수 있는 공통의 공간이 필요하다.Historically, despite limited technical knowledge, there has always been a group of communities that search for technical components and integrate them to create products. These people are called makers. The main drivers of these groups are creativity and a sense of accomplishment. Many IoT businesses are complex systems that integrate commercial IoT products with hardware and software. These manufacturers are considered true user innovators of the IoT, driving innovation in new products and prototypes, while at the same time facing integration challenges ahead of the rest of users and developers. The creator's facilitation paradigm is the DIY (Do-it-Yourself) approach. In the DIY paradigm, the focus is on providing visual code components and entities that can be dragged and dropped to form IoT services. Some prominent platforms adopting a DIY approach are Node-RED, SAM Starter Kit, Super Stream Collider, particle.io and dweet.io. Virtual objects on most platforms are dragged and connected to form IoT services. However, most of these platforms are offline, and efforts by one maker cannot be reused by another. Therefore, there is a need for a common space that can be reused in areas similar to IoT applications by sharing the components of the IoT platform.

한국공개특허 제10-2014-0090503호Korean Patent Publication No. 10-2014-0090503

본 발명은 상술한 과제를 해결하기 위하여 안출된 것으로, 본 발명의 목적은 물리적 사물인 물리적 객체에 대해 가상객체 및 서비스를 생성하고, 이를 등록하여 일반인이 접근할 수 있도록 공유에 제공하며, 검색을 통해 발견된 가상객체를 공유 및 판매를 수행할 수 있도록 하는 방법 및 시스템을 제공하는 데 있다.The present invention has been devised to solve the above problems, and an object of the present invention is to create a virtual object and a service for a physical object that is a physical thing, register it, provide it to the public so that it can be accessed by the public, and perform a search. An object of the present invention is to provide a method and system for sharing and selling virtual objects discovered through

나아가 클라우드 기반 디 커플링(decoupling) IoT 스토어를 설계 및 구현하여 가상 객체의 검색 및 공유를 위한 중심기술을 제공할 수 있는 시스템을 제공하는 데 있다. 나아가, 이기종 스토어 및 API의 데이터를 노출하여 헤더리스(headless) 동작을 보장하여, 스토어에 가지 않고도 데이터를 소비할 수 있는 클라이언트를 확보할 수 있으며, 제안된 스토어의 효율성 평가를 위해 구비되는 IoT 테스트베드 클라이언트를 개발하여 가상 객체를 가져오고 공유가능한 시스템을 제공할 수 있도록 하는 데 있다.Furthermore, the purpose of designing and implementing a cloud-based decoupling IoT store is to provide a system that can provide a central technology for searching and sharing virtual objects. Furthermore, by exposing data of heterogeneous stores and APIs to ensure headerless operation, it is possible to secure clients that can consume data without going to the store, and IoT test provided for evaluating the efficiency of the proposed store It is to develop a bed client that can import virtual objects and provide a sharable system.

상술한 과제를 해결하기 위한 수단으로서, 본 발명의 실시예에서는, 도 1 내지 도 4에 도시된 것과 같이, 가상객체를 외부 단말과 공유하는 사물인터넷 테스트베드 클라이언트(500)를 통해, 가상객체 및 서비스를 생성하고, 등록하며, 검색을 통해 가상객체를 공유하고, 판매를 수행하는 방법을 구현하되, 물리적 계층(540)에서 물리적 대응 디바이스에 상기 가상 객체를 생성하는 단계; 게이트웨이 계층(530)에서, 가상객체가 저장된 스토어(100)에 사용자에 의해 지정된 가상객체를 게이트웨이에 등록하는 단계; 기능분해 및 마이크로 서비스 계층(520)에서 가상 객체를 수신하여 기능 블록의 형태로 분해하고, 이를 맵핑하여 마이크로 서비스를 형성하는 단계; 서비스 계층(510)에서 최종사용자가 사용할 수 있도록 플랫폼에서 제공하는 서비스를 처리하는 단계; 스토어(100) 에서, 사용자 단말을 통해 들어오는 가상 객체의 검색 요청에 대하여, 가상 객체(virtual objects)에 대한 사용자 쿼리(user query)를 취득하여 검색하는 단계; 검색된 가상객체를 공유하며, 사용자 단말의 요청에 의해 가상객체를 상기 스토어에서 판매 또는 대여하는 단계;를 포함하는, 가상 객체 공유 및 판매를 위한 사물인터넷 스토어 제공방법을 제공할 수 있도록 한다.As a means for solving the above problems, in an embodiment of the present invention, as shown in FIGS. 1 to 4 , through the IoT test bed client 500 that shares the virtual object with an external terminal, the virtual object and Creating a service, registering a service, sharing a virtual object through a search, and implementing a method of performing a sale, the method comprising: creating the virtual object in a physical corresponding device in a physical layer (540); registering, in the gateway layer 530 , a virtual object designated by a user in the store 100 in which the virtual object is stored, with the gateway; decomposing a virtual object from the functional decomposition and microservice layer 520, decomposing it in the form of a functional block, and mapping it to form a microservice; processing the service provided by the platform so that the end user can use it in the service layer 510; in the store 100, in response to a search request for a virtual object coming through a user terminal, obtaining and searching a user query for virtual objects; It is possible to provide a method of providing an IoT store for sharing and selling virtual objects, including sharing the searched virtual object and selling or renting the virtual object in the store at the request of the user terminal.

또한, 상술한 가상 객체 공유 및 판매를 위한 사물인터넷 스토어 제공방법을 구현하는 시스템 구성으로, 본 발명의 실시예에서는, 유 무선 통신을 통해 가상 객체를 검색하는 사용자 단말(10); 상기 사용자 단말(10)에서 검색하는 가상객체에 대한 사용자 쿼리를 획득하고, SPARQL(Simple Protocol and RDF Query Language) 기반 쿼리를 게시하고, 사용자 제공 메타데이터로부터 가상 객체를 검색 결과를 반환하는 스토어(100); 상기 스토어(100)의 검색요청에, 사용자 제공 메타데이터로부터 가상 객체의 검색결과를 제공하며, 가상 객체 저장소 데이터베이스(virtual object repository database; 300)에 저장된 가상 객체의 참조(reference of the virtual object )를 반환하는 시맨틱 데이터베이스(Semantic database; 200); 상기 스토어(100)가 정한 표준에서 상기 스토어(100)에 가상객체를 공유하며, 공유한 가상객체의 코드 재사용을 가능하도록 하는 다수의 사물인터넷(IoT) 도메인(400);을 포함하는, 가상 객체 공유 및 검색이 가능한 사물인터넷 스토어 시스템을 제공할 수 있도록 한다.In addition, as a system configuration for implementing the above-described method for providing an IoT store for sharing and selling virtual objects, in an embodiment of the present invention, a user terminal 10 for searching a virtual object through wired/wireless communication; A store 100 that obtains a user query for a virtual object searched by the user terminal 10, posts a SPARQL (Simple Protocol and RDF Query Language)-based query, and returns a search result for a virtual object from user-provided metadata ); In the search request of the store 100 , a search result of a virtual object is provided from user-provided metadata, and a reference of the virtual object stored in a virtual object repository database 300 is provided. Returning semantic database (Semantic database; 200); A plurality of Internet of Things (IoT) domains 400 that share a virtual object with the store 100 in a standard set by the store 100 and enable code reuse of the shared virtual object; including, a virtual object To provide an IoT store system that can be shared and searched.

본 발명에 따르면, 물리적 사물인 물리적 객체에 대해 가상객체 및 서비스를 생성하고, 이를 등록하여 일반인이 접근할 수 있도록 공유에 제공하며, 검색을 통해 발견된 가상객체를 공유 및 판매를 수행할 수 있도록 하여, 이용의 효율성을 높일 수 있다.According to the present invention, virtual objects and services are created for a physical object, which is a physical object, registered and shared so that the general public can access it, and virtual objects found through search can be shared and sold. Thus, it is possible to increase the efficiency of use.

아울러, 본 발명의 실시예에 따르면, 클라우드 기반 디 커플링(decoupling) IoT 애플리케이션 스토어를 설계 및 구현하여 가상 객체의 검색 및 공유를 위한 중심기술을 제공할 수 있다.In addition, according to an embodiment of the present invention, by designing and implementing a cloud-based decoupling IoT application store, it is possible to provide a central technology for searching and sharing virtual objects.

나아가, 이기종 애플리케이션 스토어 및 API의 데이터를 노출하여 헤더리스(headless) 동작을 보장하여, 애플리케이션 스토어에 가지 않고도 데이터를 소비할 수 있는 클라이언트를 확보할 수 있다. Furthermore, by exposing data of heterogeneous application stores and APIs to ensure headerless operation, it is possible to secure a client that can consume data without going to the application store.

나아가, 제안된 애플리케이션 스토어의 효율성 평가를 위해 구비되는 IoT 테스트베드 클라이언트를 개발하여 가상 객체를 가져오고 공유한다.Furthermore, by developing an IoT test bed client that is provided for the efficiency evaluation of the proposed application store, virtual objects are imported and shared.

도 1은, 가상 객체 공유 및 판매를 위한 사물인터넷 스토어 시스템(이하, '본 발명'이라 한다.)의 전체 구성 블록도를 도시한 것이다.
도 2는 본 발명에 따른 스토어의 개요를 도시한 개념도이다.
도 3은 본 발명에 따른 시스템을 적용한 시나리오를 표현한 개념도이다.
도 4는, 본 발명의 시스템 아키텍처의 일환으로 제안된 시스템의 유용성을 평가하기 위해 마련되는, 사물인터넷 테스트 베드 클라이언트의 구현 구성과 작용상태를 도시한 도면이다.
도 5는 스토어의 리소스에 액세스할 수 있는 기본 모듈의 양식을 예시한 것이다.
도 6은 권한 코드 부여를 위한 포스트맨(postman) 기반 시험 요청의 예시를 도시한 것이다.
도 7은 Protege 편집기에 기반한 온톨로지 그래프를 도시한 것이다.
도 8은 기능적 관점에서 가상 객체의 흐름을 도시한 도면이다.
도 9는 도 1 내지 도 4에서 설명한 본 발명의 실시예에 따른 스토어의 활용 시나리오를 구현하는 예를 도시한 것이다.
도 10은 스토어의 가상 객체 관리를 구현하는 프로그램의 스냅샷을 제시한 것이다. 도 11은 도 10의 프로그램에서 고객관리 페이지를 도시한 것이다.
도 12는 스토어의 보호된 리소스에 대한 무단 액세스를 제어하기 위한 역할 및 사용 권한을 도시한 것이다. 도 13은 이러한 RestClient 모듈의 인터페이스를 나타낸 도면이다.
도 14는 IoT 테스트베드 클라이언트의 실험 설정을 도시한 것이다. 도 15는 IoT 테스트베드 클라이언트를 위해 설계된 클라이언트 애플리케이션을 예시한 것이다.
도 16은 스마트홈의 지능형 기상관리의 상세설계에서 애플리케이션의 흐름도를 도시한 것이다. 도 17에서는 사용자가 팬 컨트롤러를 위한 가상 객체를 필요로 하는 경우를 설정한 것을 도시한 것이다.
도 18은 지도상에 가상객체를 표시한 결과를 도시한 것이다.
FIG. 1 is a block diagram showing the entire configuration of an IoT store system (hereinafter, referred to as 'the present invention') for sharing and selling virtual objects.
2 is a conceptual diagram illustrating an outline of a store according to the present invention.
3 is a conceptual diagram illustrating a scenario to which the system according to the present invention is applied.
4 is a diagram illustrating an implementation configuration and operating state of an IoT test bed client, which is prepared to evaluate the usefulness of a system proposed as part of the system architecture of the present invention.
Figure 5 illustrates the form of a basic module that can access the resources of the store.
6 shows an example of a postman based test request for granting an authorization code.
7 shows an ontology graph based on the Protege editor.
8 is a diagram illustrating a flow of a virtual object from a functional point of view.
9 illustrates an example of implementing a store utilization scenario according to an embodiment of the present invention described with reference to FIGS. 1 to 4 .
10 presents a snapshot of a program that implements virtual object management of the store. FIG. 11 illustrates a customer management page in the program of FIG. 10 .
12 illustrates roles and permissions for controlling unauthorized access to protected resources in the store. 13 is a diagram illustrating an interface of such a RestClient module.
14 shows the experimental setup of the IoT testbed client. 15 illustrates a client application designed for an IoT testbed client.
16 shows a flowchart of an application in the detailed design of intelligent weather management of a smart home. 17 illustrates a case in which a user requires a virtual object for a fan controller is set.
18 shows a result of displaying a virtual object on a map.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시예를 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예로 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이다.Advantages and features of the present invention, and methods for achieving them, will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various different forms.

본 명세서에서 본 실시예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 그리고 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 따라서, 몇몇 실시예에서, 잘 알려진 구성 요소, 잘 알려진 동작 및 잘 알려진 기술들은 본 발명이 모호하게 해석되는 것을 피하기 위하여 구체적으로 설명되지 않는다.In the present specification, the present embodiment is provided to complete the disclosure of the present invention, and to fully inform those of ordinary skill in the art to which the present invention pertains to the scope of the present invention. And the invention is only defined by the scope of the claims. Accordingly, in some embodiments, well-known components, well-known operations, and well-known techniques have not been specifically described to avoid obscuring the present invention.

도 1은, 가상 객체 공유 및 판매를 위한 사물인터넷 스토어 시스템(이하, '본 발명'이라 한다.)의 전체 구성 블록도를 도시한 것이다. 도 2는 본 발명에 따른 스토어의 개요를 도시한 개념도이다. 도 3은 본 발명에 따른 시스템을 적용한 시나리오를 표현한 개념도이다. 도 4는, 본 발명의 시스템 아키텍처의 일환으로 제안된 시스템의 유용성을 평가하기 위해 마련되는, 사물인터넷 테스트 베드 클라이언트의 구현 구성과 작용상태를 도시한 도면이다.1 is a block diagram of an entire configuration of an IoT store system (hereinafter, referred to as 'the present invention') for sharing and selling virtual objects. 2 is a conceptual diagram illustrating an outline of a store according to the present invention. 3 is a conceptual diagram illustrating a scenario to which the system according to the present invention is applied. 4 is a diagram illustrating an implementation configuration and operation state of an IoT test bed client, which is prepared to evaluate the usefulness of a system proposed as part of the system architecture of the present invention.

도 1 및 도 4를 참조하면, 본 발명을 적용하여 구현되는 방법은, 가상객체를 외부 단말과 공유하는 사물인터넷 테스트베드 클라이언트(500)를 통해, 가상객체 및 서비스를 생성하고, 등록하며, 검색을 통해 가상객체를 공유하고, 판매를 수행하는 방법을 구현하되, 물리적 계층(540)에서 물리적 대응 디바이스에 상기 가상 객체를 생성하는 단계, 게이트웨이 계층(530)에서, 가상객체가 저장된 스토어(100)에 사용자에 의해 지정된 가상객체를 게이트웨이에 등록하는 단계, 기능분해 및 마이크로 서비스 계층(520)에서 가상 객체를 수신하여 기능 블록의 형태로 분해하고, 이를 맵핑하여 마이크로 서비스를 형성하는 단계, 서비스 계층(510)에서 최종사용자가 사용할 수 있도록 플랫폼에서 제공하는 서비스를 처리하는 단계, 스토어(100)에서, 사용자 단말을 통해 들어오는 가상 객체의 검색 요청에 대하여, 가상 객체(virtual objects)에 대한 사용자 쿼리(user query)를 취득하여 검색하는 단계, 검색된 가상객체를 공유하며, 사용자 단말의 요청에 의해 가상객체를 상기 스토어에서 판매 또는 대여하는 단계를 포함하는, 가상 객체 공유 및 판매를 위한 사물인터넷 스토어 제공방법으로 구현될 수 있다.1 and 4 , the method implemented by applying the present invention creates, registers, and searches virtual objects and services through the IoT test bed client 500 that shares virtual objects with external terminals. A method of sharing a virtual object and performing a sale is implemented through the step of creating the virtual object in a physical corresponding device in the physical layer 540, and in the gateway layer 530, the store 100 in which the virtual object is stored Registering the virtual object specified by the user in the gateway, functional decomposition and receiving the virtual object from the microservice layer 520, decomposing it in the form of a functional block, and mapping it to form a microservice, the service layer ( In step 510, processing the service provided by the platform so that the end user can use it, in the store 100, with respect to a search request of a virtual object coming through a user terminal, a user query for virtual objects (user) A method for providing an Internet of Things store for sharing and selling virtual objects, comprising the steps of obtaining and searching a query), sharing the searched virtual object, and selling or renting the virtual object in the store at the request of a user terminal. can be implemented.

특히, 이 경우, 상기 가상객체에 대한 검색 요청에 대한 검색을 수행하는 것은, 애플리케이션 계층(110)에서, 사용자 단말을 통해 들어오는 가상 객체의 검색 요청에 대하여, 가상 객체(virtual objects)에 대한 사용자 쿼리(user query)를 취득하고, OWL 처리기 모듈(120)에서, 상기 애플리케이션 계층(110)에 전달되는 상기 사용자 쿼리, 식별 참조와 데이터를 사용하여 SPARQL 기반 사후 작업을 생성하여 메타 데이터와 참조를 시맨틱 데이터베이스에 게시하고, MySQL 어댑터 모듈(130)에서 검색 요청에 대한 구문 분석(parsed)을 수행하고, 가상 객체를 유지하며, 새로 추가된 가상 객체의 고유 식별 정보를 반환하며, MySQL 어댑터 모듈(130)에서 전달받은, 정보를 바탕으로 가상 객체 검색 또는 공유에 대한 요청을 처리하는 과정으로 구현할 수 있다.In particular, in this case, performing a search for the search request for the virtual object may include, in the application layer 110 , a user query for virtual objects with respect to a search request for a virtual object coming through the user terminal. (user query) and, in the OWL processor module 120, create a SPARQL-based post-job using the user query, identification reference and data passed to the application layer 110 to store metadata and references in a semantic database , parses the search request in the MySQL adapter module 130, maintains the virtual object, returns unique identification information of the newly added virtual object, and in the MySQL adapter module 130 It can be implemented as a process of processing a request to search or share a virtual object based on the received information.

도 1 내지 도 4를 참조하여, 상술한 과정을 수행하는 본 발명의 구성을 설명하기로 한다.1 to 4, the configuration of the present invention for performing the above-described process will be described.

도 1에 도시된 도면을 참조하면, 본 발명은 유 무선 통신을 통해 가상 객체를 검색하는 사용자 단말(10)과, 상기 사용자단말(10)에서 검색하는 가상객체에 대한 사용자 쿼리를 획득하고, SPARQL(Simple Protocol and RDF Query Language) 기반 쿼리를 게시하고, 사용자 제공 메타데이터로부터 가상 객체를 검색 결과를 반환하는 스토어(100)와, 상기 스토어(100)의 검색요청에, 사용자 제공 메타데이터로부터 가상 객체의 검색결과를 제공하며, 가상 객체 저장소 데이터베이스(virtual object repository database; 300)에 저장된 가상 객체의 참조(reference of the virtual object )를 반환하는 시맨틱 데이터베이스(Semantic database; 200), 상기 스토어(100)가 정한 표준에서 상기 스토어(100)에 가상객체를 공유하며, 공유한 가상객체의 코드 재사용을 가능하도록 하는 다수의 사물인터넷(IoT) 도메인(400)과, 웹서비스(RESTful web services)를 통해 상기 스토어(100)과 통신하며, 상기 스토어(100)에서 가상객체를 발견하고, 상기 가상객체를 외부 단말과 공유하는 사물인터넷 테스트베드 클라이언트(500)를 포함하여 구성될 수 있다.1, the present invention obtains a user terminal 10 for searching a virtual object through wired/wireless communication, a user query for a virtual object searched for by the user terminal 10, and SPARQL A store 100 that posts a (Simple Protocol and RDF Query Language)-based query and returns a search result for a virtual object from user-provided metadata, and a virtual object from user-provided metadata to a search request of the store 100 A semantic database 200, which returns a reference of the virtual object stored in the virtual object repository database 300, and the store 100 A plurality of Internet of Things (IoT) domains 400 that share a virtual object in the store 100 in a set standard and enable code reuse of the shared virtual object, and the store through RESTful web services It may be configured to include an IoT test bed client 500 that communicates with 100 , discovers a virtual object in the store 100 , and shares the virtual object with an external terminal.

아울러, 도 1에 도시된 것과 같이, 상기 스토어(100)는, 상기 사용자 단말을 통해 들어오는 가상 객체의 검색 요청에 대하여, 가상 객체(virtual objects)에 대한 사용자 쿼리(user query)를 취득하는 애플리케이션 계층(110), 상기 애플리케이션 계층(110)에 전달되는 상기 사용자 쿼리, 식별 참조와 데이터를 사용하여 SPARQL 기반 사후 작업을 생성하여 메타 데이터와 참조를 시맨틱 데이터베이스에 게시하는 OWL 처리기 모듈(120), 검색 요청에 대한 구문 분석(parsed)을 수행하고, 가상 객체를 유지하며, 새로 추가된 가상 객체의 고유 식별 정보를 반환하는 MySQL 어댑터 모듈(130), MySQL 어댑터 모듈(130)에서 전달받은, 정보를 바탕으로 가상 객체 검색 또는 공유에 대한 요청을 처리하는 레스트 클라이언트 모듈(140)을 포함하여 구성될 수 있다.In addition, as shown in FIG. 1 , the store 100 is an application layer that obtains a user query for virtual objects in response to a search request for virtual objects coming through the user terminal. 110, an OWL handler module 120 that creates a SPARQL-based post-job using the user query, identifying reference and data passed to the application layer 110 to publish metadata and references to a semantic database, search request Based on the information received from the MySQL adapter module 130, MySQL adapter module 130, which performs parsed for, maintains a virtual object, and returns unique identification information of a newly added virtual object. It may be configured to include a rest client module 140 that processes a request for virtual object search or sharing.

또한, 도 1에 도시된 구성에서, 상기 다수의 사물인터넷 도메인(400)은 상기 애플리케이션 스토어(100)에서 제공하는 가상객체를 공유하되, 제공되는 가상의 객체를 임시로 저장하는 가상객체 버퍼모듈(410), 상기 가상객체 버퍼모듈(410)에서 전달되는 가상 객체에서 메타 데이터 정보를 추출하고, RestClient 모듈(140)을 사용하여 가상 객체 공유에 대한 요청을 처리하는 메타 설명자 모듈(meta descriptor module ;420)을 더 포함하여 구성될 수 있다.In addition, in the configuration shown in FIG. 1 , the plurality of IoT domains 400 share a virtual object provided by the application store 100 , but a virtual object buffer module for temporarily storing the provided virtual object ( 410), a meta descriptor module that extracts metadata information from a virtual object transmitted from the virtual object buffer module 410 and processes a request for virtual object sharing using the RestClient module 140 (meta descriptor module 420) ) may be further included.

또한, 도 4를 참조하면, 상술한 본 발명에서의 상기 테스트베드 클라이언트(500)는, 최종사용자가 사용할 수 있도록 플랫폼에서 제공하는 서비스를 처리하는 서비스 계층(510), 가상 객체를 수신하여 기능 블록의 형태로 분해하고, 이를 맵핑하여 마이크로 서비스를 형성하는 기능분해 및 마이크로 서비스 계층(520), 상기 스토어(100)에 저장된 사용자에 의해 지정된 가상객체를 게이트웨이에 등록하는 게이트웨이 계층(530), 물리적 대응 디바이스에 상기 가상 객체의 배포를 처리하는 물리적 계층(540)을 포함하여 구성될 수 있다.In addition, referring to FIG. 4 , the test bed client 500 in the present invention as described above receives a service layer 510 that processes services provided by the platform so that end users can use it, and a virtual object to receive a functional block. Function decomposition and microservice layer 520 to form microservices by decomposing it in the form of , a gateway layer 530 for registering virtual objects designated by a user stored in the store 100 to the gateway, and physical correspondence It may be configured to include a physical layer 540 that handles distribution of the virtual object to a device.

이 경우, 상기 기능분해 및 마이크로 서비스 계층(520)은, 상기 스토어(100)에 의해 노출되는 API와 통신하며, 상기 스토어(100)의 요구사항에 따라 가상객체를 찾고 검색하는 가상 객체 검색 계층(531)과 상기 스토어(100)에 의해 노출되는 API와 통신하며, 오픈 소스 메이커 커뮤니티를 사용하기 위해 사용자 지정된 가상 객체를 상기 스토어(100)에 저장하는 공유계층을 포함하여 구성될 수 있다.In this case, the decomposition and microservice layer 520 communicates with the API exposed by the store 100, and a virtual object search layer ( 531) and the store 100 and communicates with the API exposed by the store 100, and may include a sharing layer that stores a virtual object customized to use the open source maker community in the store 100.

또한 상기 테스트베드 클라이언트(500)는, 최종사용자가 사용할 수 있도록 플랫폼에서 제공하는 서비스를 처리하는 서비스 계층(510); 가상 객체에 해당하는 기능을 태스크(예: 온도 측정 태스크, 습도 측정 태스크)로 생성하고, 이들 태스크와 가상 객체를 맵핑하여 가상객체에 기능을 포함한 마이크로 서비스(예: 온도 및/또는 습도를 결합하여 결빙 여부를 판단)를 형성하고 제공하는 마이크로 서비스 계층(520); 상기 스토어(100)에 저장된 사용자에 의해 지정된 가상객체와 마이크로 서비스를 게이트웨이에 등록하여 해당 물리적 디바이스에 배포를 지원하는 게이트웨이 계층(530); 물리적 대응 디바이스에 상기 가상 객체의 마이크로 서비스를 배포하고 처리하는 물리적 계층(540)을 포함할 수 있다.In addition, the test bed client 500 includes a service layer 510 that processes services provided by the platform so that end users can use it; Create a function corresponding to a virtual object as a task (e.g. temperature measurement task, humidity measurement task), map these tasks and virtual objects to include a function in the virtual object (e.g. by combining temperature and/or humidity a microservice layer 520 that forms and provides (determining whether freezing); a gateway layer (530) for registering virtual objects and microservices designated by a user stored in the store (100) with a gateway and supporting distribution to a corresponding physical device; It may include a physical layer 540 for distributing and processing the microservice of the virtual object to a physical counterpart device.

본 발명은 가상객체를 외부 단말과 공유하는 사물인터넷 테스트베드 클라이언트를 통해, 가상객체 및 서비스를 생성하고, 등록하며, 검색을 통해 가상객체를 공유하고, 스토어를 통해 판매를 수행하는 방법을 구현할 수 있다. 이하에서는, 본 발명의 구성에 대한 다양한 활용 및 적용방식을 들어, 본 발명의 스토어 활용을 설명하기로 한다.The present invention can implement a method of creating and registering virtual objects and services through an Internet of Things test bed client that shares virtual objects with external terminals, sharing virtual objects through search, and performing sales through stores. have. Hereinafter, various utilization and application methods for the configuration of the present invention will be described, and the store utilization of the present invention will be described.

1. 스토어의 활용 시나리오One. Store usage scenario

(1) 가상객체의 검색(One) Virtual object search

본 발명의 활용을 설명하기 위한 첫번째 실시예는, IoT 서비스를 구축하기 위해 서로 다른 객체(object)를 통합하는 IoT 기술 사용자(user;10)가 스토어(application store; 100)에서 필요한 가상 객체(virtual objects)를 검색하는 활용을 들 수 있다. The first embodiment for explaining the utilization of the present invention is a virtual object (virtual object) required by an IoT technology user (user) 10 who integrates different objects to build an IoT service in an application store (100). objects) can be used.

구체적으로, 이 경우, 상기 스토어(100)의 애플리케이션 계층(110)은 가상 객체(virtual objects)에 대한 사용자 쿼리(user query)를 취한다. 상기 사용자 쿼리는 가상 객체에 대한 메타 설명을 포함한다. Specifically, in this case, the application layer 110 of the store 100 takes a user query for virtual objects. The user query includes a meta description of the virtual object.

상기 애플리케이션 계층(110)은 수신된 정보를 OWL 처리기 모듈로 전달하고, OWL 처리기 모듈(120)에서는 SPARQL(Simple Protocol and RDF Query Language) 기반 쿼리를 게시하여, 시맨틱 데이터베이스(Semantic database; 200)의 사용자 제공 메타데이터로부터 가상 객체를 검색한다. The application layer 110 transmits the received information to the OWL processor module, and the OWL processor module 120 publishes a simple protocol and RDF Query Language (SPARQL)-based query, and the user of the semantic database 200 Retrieves the virtual object from the provided metadata.

가상 객체를 찾으면 시맨틱 데이터베이스(semantic database;200)가 가상 객체 저장소 데이터베이스(virtual object repository database; 300)에 저장된 가상 객체의 참조(reference of the virtual object )를 반환한다. When the virtual object is found, the semantic database 200 returns a reference of the virtual object stored in the virtual object repository database 300 .

MySQL 어댑터 모듈(130)은 상기 반환된 가상 객체의 참조(reference of the virtual object )를 사용하여 가상 객체를 검색하고, 사용자가 헤드리스 응답을 요구할 경우에 대비하여 애플리케이션 계층(application layer; 110) 또는 Rest Client 모듈(140)로 전달한다. MySQL adapter module 130 uses the returned reference of the virtual object to retrieve the virtual object, and in case the user requests a headless response, the application layer 110 or It is transmitted to the Rest Client module 140 .

이러한 작업은 도 3에서 1, 2, 3, 4로 작업 순서를 넘버링하여 표시하였다.These operations are indicated by numbering the operation sequence as 1, 2, 3, and 4 in FIG. 3 .

(2) 가상객체의 공유(2) Virtual object sharing

본 발명의 활용에 대한 두 번째 시나리오는 가상 객체를 공유하는 것이다. A second scenario for utilizing the present invention is to share virtual objects.

상기 스토어(100)를 준수하는 표준에서 서로 다른 IoT 도메인(400)이 가상 객체를 공유한다. 이 경우, 가상 객체 버퍼(Virtual object buffer; 410)는 가상 객체를 임시로 저장한 다음, 메타 설명자 모듈(meta descriptor module ;420)에 전달한다. 상기 메타 설명자 모듈(420)은 가상 객체에서 메타 데이터 정보를 추출하고, 레스트클라이언트(RestClient) 모듈(140)을 사용하여 요청을 처리한다.In a standard conforming to the store 100 , different IoT domains 400 share a virtual object. In this case, the virtual object buffer 410 temporarily stores the virtual object and then transmits it to the meta descriptor module 420 . The meta descriptor module 420 extracts meta data information from the virtual object and processes the request using the RestClient module 140 .

상기의 요청 처리 과정은, 우선, 요청에 대한 구문 분석(parsed)되고, 가상 객체를 유지하고 새로 추가된 가상 객체의 고유 식별 정보를 반환하는 MySQL 어댑터 모듈(130)에 의해 동등한 SQL 쿼리가 생성된다. OWL 처리기 모듈(120)은 식별 참조와 데이터를 사용하여 SPARQL 기반 사후 작업을 생성하여 메타 데이터와 참조를 시맨틱 데이터베이스(semantic database;200)에 게시한다. 두 번째 시나리오의 동작 순서는 도 3에서 A, B, C, D로 순서 넘버로 표기되어 있다.In the above request processing process, first, an equivalent SQL query is generated by the MySQL adapter module 130 that parses the request, maintains the virtual object and returns unique identification information of the newly added virtual object. . The OWL processor module 120 creates a SPARQL-based post-job using the identifying reference and data to publish the metadata and the reference to a semantic database 200 . The operation sequence of the second scenario is indicated by sequence numbers as A, B, C, and D in FIG. 3 .

(3) 유용성 평가_테스트 베드(3) Usability evaluation_test bed

도 4는, 본 발명의 시스템 아키텍처의 일환으로 제안된 시스템의 유용성을 평가하기 위해 마련되는, 사물인터넷 테스트 베드 클라이언트의 구현 구성과 작용상태를 도시한 도면이다.4 is a diagram illustrating an implementation configuration and operation state of an IoT test bed client, which is prepared to evaluate the usefulness of a system proposed as part of the system architecture of the present invention.

도 4에 도시된 것과 같이, 본 발명은 웹서비스(RESTful web services)를 통해 상기 스토어(100)과 통신하며, 상기 스토어(100)에서 가상객체를 발견하고, 상기 가상객체를 외부 단말과 공유하는 사물인터넷 테스트베드 클라이언트(500)를 더 포함하여 구성될 수 있도록 한다.4, the present invention communicates with the store 100 through RESTful web services, discovers a virtual object in the store 100, and shares the virtual object with an external terminal. To be configured to further include the IoT test bed client (500).

즉, 본 발명은 시스템 아키텍처의 일환으로 제안된 시스템의 유용성을 평가하기 위해 사물인터넷 테스트 베드 클라이언트(IoT Testbed Client)를 구현할 수 있다. That is, the present invention can implement the IoT Testbed Client to evaluate the usefulness of the proposed system as part of the system architecture.

상기 사물인터넷 테스트 베드 클라이언트(500)의 테스트베드는 본 발명의 스토어(100)에서 가상 객체를 발견하고 오픈소스 IoT 사용자들을 위해 전문화된 가상 객체를 공유할 수 있도록 한다. The test bed of the IoT test bed client 500 discovers virtual objects in the store 100 of the present invention and enables sharing of specialized virtual objects for open source IoT users.

상기 사물인터넷 테스트 베드 클라이언트(500)의 테스트베드는 RESTful 웹 서비스를 사용하여 스토어(100)와 통신하고 있다.The test bed of the IoT test bed client 500 communicates with the store 100 using a RESTful web service.

상기 사물인터넷 테스트 베드 클라이언트(500)의 테스트베드는 도 4에 도시된 것과 같이, 계층화된 아키텍처로 정의되며, 각각 역할을 위한 계층이 다르다.The test bed of the IoT test bed client 500 is defined as a layered architecture as shown in FIG. 4 , and the layers for each role are different.

상기 테스트베드 클라이언트(500)는, 최종사용자가 사용할 수 있도록 플랫폼에서 제공하는 서비스를 처리하는 서비스 계층(510), 가상 객체를 수신하여 기능 블록의 형태로 분해하고, 이를 맵핑하여 마이크로 서비스를 형성하는 기능분해 및 마이크로 서비스 계층(520), 상기 스토어(100)에 저장된 사용자에 의해 지정된 가상객체를 게이트웨이에 등록하는 게이트웨이 계층(530), 물리적 대응 디바이스에 상기 가상 객체의 배포를 처리하는 물리적 계층(540)을 포함하여 구성될 수 있다. The test bed client 500 receives the service layer 510 that processes the service provided by the platform so that the end user can use it, and decomposes the virtual object into the form of a functional block, and maps it to form a microservice. Function decomposition and microservice layer 520, gateway layer 530 for registering virtual objects designated by a user stored in the store 100 to a gateway, and physical layer 540 for handling distribution of the virtual objects to a corresponding physical device ) may be included.

특히, 이 경우, 상기 기능분해 및 마이크로 서비스 계층(520)은, 상기 스토어(100)에 의해 노출되는 API와 통신하며, 상기 스토어(100)의 요구사항에 따라 가상객체를 찾고 검색하는 가상 객체 검색 계층(531)과 상기 스토어(100)에 의해 노출되는 API와 통신하며, 오픈 소스 메이커 커뮤니티를 사용하기 위해 사용자 지정된 가상 객체를 스토어(100)에 저장하는 공유계층(532)을 포함하여 구성될 수 있다.In particular, in this case, the decomposition and microservice layer 520 communicates with the API exposed by the store 100 , and searches for and retrieves virtual objects according to the requirements of the store 100 . A layer 531 and a shared layer 532 that communicates with the API exposed by the store 100 and stores a virtual object customized for use in the open source maker community in the store 100 may be configured. have.

구체적으로 설명하면, 도 4에 도시된 것과 같이, 상기 사물인터넷 테스트 베드 클라이언트(500)의 테스트베드는 최상위 계층은 최종 사용자가 사용할 수 있도록 플랫폼에서 제공하는 서비스를 처리하는 서비스 계층(510)이 배치된다.More specifically, as shown in FIG. 4 , in the test bed of the IoT test bed client 500 , a service layer 510 that processes services provided by the platform is arranged so that the top layer can be used by end users. do.

다음 레이어는 기능 분해 및 마이크로 서비스 계층(520)이 배치된다.The next layer is the functional decomposition and microservices layer 520 .

상기 기능 분해 및 마이크로 서비스 계층(520)은 가상 객체를 수신하여 기능 블록의 형태로 분해하고 이를 매핑하여 마이크로 서비스를 형성하며, 이러한 결과물을 복합 가상 객체라고도 한다. 다음으로, 상기 기능 분해 및 마이크로 서비스 계층(520)의 아래 계층은 가상 객체 검색 및 공유 계층(530)이 배치된다. The functional decomposition and microservice layer 520 receives a virtual object, decomposes it in the form of a functional block, maps it, and forms a microservice, and the result is also called a composite virtual object. Next, a virtual object search and sharing layer 530 is disposed below the functional decomposition and microservice layer 520 .

상기 가상 객체 검색 및 공유 계층(530)에는 두 개의 하위 레이어가 있으며, 두 계층 모두 스토어에 의해 노출되는 API와 통신하고 있다. The virtual object search and sharing layer 530 has two lower layers, both of which communicate with the API exposed by the store.

즉, 상기 가상 객체 검색 및 공유 계층(530)의 하위 계층의 하나인, 가상 객체 검색 계층(531)은 스토어(100)요구 사항에 따라 가상 객체를 찾고 검색하는 기능을 수행한다.That is, the virtual object search layer 531 , which is one of the lower layers of the virtual object search and sharing layer 530 , performs a function of finding and searching virtual objects according to the requirements of the store 100 .

또한, 다른 하나의 하위 계층인, 공유 계층(532)은 오픈 소스 메이커 커뮤니티를 사용하기 위해 사용자 지정된 가상 객체를 스토어에 공유한다. 각 가상 객체는 게이트웨이 계층(540)의 작업인 게이트웨이(541)에 등록된다. 가상 객체는 등록되어 실제 물리적 하드웨어에 맵핑(mapping)된다. In addition, the other lower layer, the sharing layer 532, shares virtual objects customized for use with the open source maker community to the store. Each virtual object is registered in the gateway 541 which is a task of the gateway layer 540 . Virtual objects are registered and mapped to real physical hardware.

마지막 계층은 물리적 대응 디바이스(551)에 가상 객체의 배포를 처리하는 물리적 계층(550)이다.The last layer is the physical layer 550 that handles the distribution of virtual objects to the physical counterpart device 551 .

상술한 본 발명의 실시예는, IoT 애플리케이션에서 가상 객체를 표준화하기 위한 기술 전제로, 가상 개체는 고유 표현(ID)을 가져야 하며, 객체(object (properties)) 및 개체(object (methods))에 대한 데이터를 설명해야 한다. 경우에 따라 객체는 객체 데이터를 사용하여 가상 객체의 동작을 시뮬레이션 하는 방법에 대한 골격 코드인 실행 파일을 가질 수 있다. The above-described embodiment of the present invention is a technical premise for standardizing virtual objects in IoT applications, and virtual objects must have unique representations (IDs), and objects (properties) and objects (object (methods)) data should be explained. In some cases, an object may have an executable that is the skeleton code for how to use the object data to simulate the behavior of a virtual object.

본 발명에서는 이와 같은 기술을 기반으로, 가상 객체의 클라우드 중심적 위치를 제공하는 디커플링 스토어의 실시예를 제시한다. The present invention provides an embodiment of a decoupling store that provides a cloud-centric location of a virtual object based on such a technology.

이러한 가상 객체는 본 발명에 따른 시스템의 스토어에서 찾을 수 있으며 다양하고 유사한 IoT 애플리케이션에서 사용할 수 있다. 또한, 다른 IoT 도메인도 가상 객체를 공유하여 다른 애플리케이션에 의해 검색되고 소비될 수 있다. These virtual objects can be found in the store of the system according to the present invention and can be used in a variety of similar IoT applications. In addition, other IoT domains may also share virtual objects to be discovered and consumed by other applications.

본 발명에서의 스토어는 결합하여 IoT 애플리케이션을 구축할 수 있는 느슨하게 결합된 IoT 애플리케이션 구성을 가질 수 있다. 예를 들어 본 발명을 구현하는 소프트웨어는 구조상 모듈형이어야 하고, 동일한 모듈 내의 구성요소는 높은 관련성을 가져야 하며, 서로 다른 모듈 간의 요소들은 거의 관련성이 없다. 이를 응집과 결합이라고 한다. 사운드 소프트웨어는 높은 응집력과 낮은 결합력을 가져야 한다. 즉, 모듈이 높은 관련성을 가지고 있으며 다른 모듈에 대한 가능한 의존성이 가장 낮다. 본 발명에 따라 제안된 시스템 설계는 구조 패턴을 사용하며 높은 응집력과 낮은 결합을 가진 모듈화를 제공할 수 있도록 한다.The store in the present invention may have loosely coupled IoT application configurations that can be combined to build IoT applications. For example, software implementing the present invention should be modular in structure, components within the same module should have high relevance, and elements between different modules should have little relevance. This is called aggregation and bonding. Sound software should have high cohesion and low cohesion. That is, modules have high relevance and have the lowest possible dependencies on other modules. The system design proposed according to the present invention makes it possible to provide modularity with high cohesion and low coupling using structural patterns.

본 발명의 스토어의 아키텍처는 분리되어 있고 헤드가 없는 구조(헤더리스, headless)이다. 본 발명에서의 헤더리스(headless)라는 용어는 사용자 인터페이스 없이 데이터 소스의 역할을 하는 기능을 말한다. 애플리케이션 프로그래밍 인터페이스는 안드로이드 애플리케이션, 웹 애플리케이션과 같은 다양한 클라이언트 소프트웨어를 사용하여 이러한 자원을 얻기 위해 이용할 수 있는 클라이언트 애플리케이션에 노출된다.The architecture of the store of the present invention is a separate and headless structure (headless). The term "headless" in the present invention refers to a function serving as a data source without a user interface. The application programming interface is exposed to client applications that can be used to obtain these resources using various client software such as Android applications and web applications.

이에 따라, 본 발명에 따르면, 클라우드 기반 디 커플링(decoupling) IoT 스토어를 설계 및 구현하여 가상 객체의 검색 및 공유를 위한 중심기술을 제공할 수 있다.Accordingly, according to the present invention, it is possible to design and implement a cloud-based decoupling IoT store to provide a central technology for searching and sharing virtual objects.

나아가, 이기종 스토어 및 API의 데이터를 노출하여 헤더리스(headless) 동작을 보장하여, 스토어에 가지 않고도 데이터를 소비할 수 있는 클라이언트를 확보할 수 있다. 나아가, 제안된 스토어의 효율성 평가를 위해 구비되는 IoT 테스트베드 클라이언트를 개발하여 가상 객체를 가져오고 공유한다.Furthermore, by exposing data of heterogeneous stores and APIs, it is possible to secure a client that can consume data without going to the store by guaranteeing a headless operation. Furthermore, an IoT testbed client is developed to evaluate the efficiency of the proposed store to bring and share virtual objects.

2. 본 발명에 따른 스토어 구성의 특징2. Features of the store configuration according to the present invention

이하에서는, 상술한 본 발명에서의 스토어의 특징을 기능별로 설명하기로 한다.Hereinafter, the features of the store in the present invention will be described for each function.

(1) 디커플링(decoupling)(One) decoupling

본 발명에서는, 상술한 바와 같이, 응용 프로그램 저장소(스토어)의 핵심 동기 중 하나는 모듈의 분리(decoupling) 특성을 구비하는 데 있다. In the present invention, as described above, one of the core motivations of the application program store (store) is to have a decoupling characteristic of the module.

즉, 모듈의 분리특성을 의미하는 디커플링(decoupling)은 본 발명에서의 스토어의 가상 개체가 IoT 플랫폼과 서비스에 의존하지 않는 종속성을 갖는다는 것을 의미한다. 이러한 객체는 독립적이며 어떤 애플리케이션에서도 소비할 수 있다. That is, decoupling, which means the separation characteristic of a module, means that the virtual object of the store in the present invention has a dependency that does not depend on the IoT platform and service. These objects are independent and can be consumed by any application.

그것은 이 작업의 주된 동기로서 시스템의 예비 요건 중 하나로 간주된다. It is regarded as one of the preliminary requirements of the system as the main motivation for this work.

시스템 작동 방법에 대한 하드웨어, 소프트웨어 및 사용자 지침을 포함하여 전체 IoT 솔루션을 제공하는 다양한 시스템이 존재한다. 이러한 시스템들과는 대조적으로, 본 발명에서 제안된 시스템의 대상 고객은 기술에 관여하는 것을 좋아하고 도메인의 비즈니스 요구에 적응하기 위해 애플리케이션을 사용자 정의하는 기술 주석기와 제조자들이다. 디커플링 고려사항은 IoT 도메인이 일부 가상 IoT 리소스를 블록으로 사용하고 이러한 블록과 협력하여 도메인 요구 사항에 잘 맞는 맞춤형 IoT 서비스를 개발할 수 있도록 한다.A variety of systems exist that provide a complete IoT solution, including hardware, software, and user guidance on how to operate the system. In contrast to these systems, the target customers of the system proposed in the present invention are technical annotators and manufacturers who like to engage with technology and customize their applications to adapt to the business needs of the domain. Decoupling considerations allow IoT domains to use some virtual IoT resources as blocks and work with these blocks to develop custom IoT services that fit well with domain requirements.

(2) 모듈화(Modularity)(2) Modularity

소프트웨어 엔지니어링에서 중요한 설계 과제는 높은 응집력과 낮은 결합력을 가진 모듈식 시스템을 갖추는 것이다. 본 발명에서 제안된 시스템은 모듈형이며, 각 모듈은 정의된 기능을 가지고 있으며, 응집력이 높다. 예를 들어, 하이퍼텍스트 어플리케이션 언어(HAL)와 RESTful 웹 서비스에는 Restful 웹 서비스가 활용된다. 마찬가지로, 승인을 위해 OAuth2 모듈을 사용하였다. 시스템의 중요한 모듈은 아래의 표에 요약되어 있다An important design challenge in software engineering is to have a modular system with high cohesion and low coupling. The system proposed in the present invention is modular, each module has a defined function, and the cohesion is high. For example, Restful Web Services is utilized for Hypertext Application Language (HAL) and RESTful Web Services. Similarly, we use the OAuth2 module for authorization. The important modules of the system are summarized in the table below.

[표 1] 본 발명의 스토어에 사용되는 다양한 모듈의 개요[Table 1] Overview of various modules used in the store of the present invention

Figure pat00001
Figure pat00001

(3) 헤더리스 지원(Headless Support)(3) Headless Support

"헤더리스(headless)"라는 용어는 그래픽 사용자 인터페이스가 없어도 응용 프로그램이 작동할 때 자주 사용된다. 시스템의 헤드리스 속성에 대한 수요는 모바일 장치와 스마트 사물의 광대 한 수로 인해 증가하고 있다. 소프트웨어 시스템은 유비쿼터스 어레이의 데이터 센터 역할을 할 수 있다면 헤드리스 지원을 한다고 할 수 있다. 소비자 역할을 하는 이러한 응용 프로그램은 모바일 응용 프로그램, 웹 응용 프로그램 또는 하이브리드 응용 프로그램 중 어느 한 개일 수 있다. The term "headless" is often used when an application works without a graphical user interface. The demand for the headless nature of systems is increasing due to the vast number of mobile devices and smart things. If a software system can act as a data center for a ubiquitous array, it can be said to have headless support. These applications acting as consumers may be either mobile applications, web applications, or hybrid applications.

본 발명에서 제안된 시스템은 소비자와 공급자 역할을 하는 서로 다른 IoT 도메인이 그래픽 사용자 인터페이스를 사용하지 않고 시스템과 상호 작용할 수 있다는 점에서 헤드리스 지원이 가능한 구조로 구현된다. 나아가 데이터는 RESTful 웹 서비스를 사용하여 노출된다. 나아가, 인증된 사용자는 시스템에 의해 노출되는 특정 엔드 포인트에 도달하여 IoT 객체를 제공할 수도 있다.The system proposed in the present invention is implemented in a structure capable of headless support in that different IoT domains acting as consumers and providers can interact with the system without using a graphical user interface. Furthermore, the data is exposed using RESTful web services. Furthermore, an authenticated user may reach a specific endpoint exposed by the system and provide an IoT object.

(4) 안정화한 웹서비스의 지원(4) Support for stable web services

시스템을 그래픽 인터페이스 없이 사용해야 하는 경우, 데이터가 다른 소프트웨어에 노출되어야 하기 때문에, 본 발명에서 제안된 시스템은 데이터를 소비하고 제공하기 위해 직렬화 방지 웹 서비스를 사용한다. RESTful 서비스의 인기를 감안할 때 IoT 애플리케이션의 실질적인 표준이라 할 수 있다. 본 발명에서는 RESTful 서비스를 통해 서로 다른 IoT 도메인 간에 안전하고 완벽한 데이터 전송을 제공하는 HAL, RESTful 웹 서비스 및 직렬화 모듈을 지원한다. 상기 직렬화 모듈은 요청의 JSON 또는 XML 페이로드(payload)에 사용된다. 마찬가지로 HAL 모듈은 외부 리소스 및 JSON 또는 XML 페이로드 내의 링크와 같은 하이퍼 미디어 객체(hypermedia objects)를 프로비저닝(provisioning)하는 데 사용된다.If the system needs to be used without a graphical interface, since the data has to be exposed to other software, the system proposed in the present invention uses an anti-serialization web service to consume and provide the data. Given the popularity of RESTful services, it can be said to be a de facto standard for IoT applications. The present invention supports HAL, RESTful web service, and serialization module that provide secure and complete data transmission between different IoT domains through RESTful service. The serialization module is used for the JSON or XML payload of the request. Similarly, the HAL module is used to provision hypermedia objects such as external resources and links within JSON or XML payloads.

(5) 인증 및 역할관리(Authentication and Role Management)(5) Authentication and Role Management

본 발명에서 제안된 시스템에는 사용자가 특정 역할과 연결할 수 있는 역할 관리 기능을 제공한다. 또한, 모든 역할에 대해 일련의 권한이 지정되었다. The system proposed in the present invention provides a role management function that a user can associate with a specific role. Additionally, a set of privileges has been assigned for every role.

예를 들어, "VO(Virtual Object) 소비자" 역할은 읽기 데이터만 사용할 수 있고 쓰기 데이터는 사용할 수 없으며 "VO 제공자" 역할에도 쓰기 권한이 부여되었다. For example, the "Virtual Object (VO) Consumer" role can only use read data, cannot use write data, and the "VO Provider" role has also been granted write permission.

역할과 사용 권한은 사용자가 수행할 수 있는 작업과 작업에 대한 검증과 검증을 가능하게 한다. 마찬가지로, 모든 사용자는 시스템을 사용하기 전에 인증을 받아야 하는 구조로 구현된다. 이 시스템은 익명의 사용자들이 등록할 수 있도록 했다. 일단 시스템에 대한 계정이 있으면 등록 시 제공되는 자격 증명으로 인증할 수 있다. 표1은 물리적 대응 장치에 대해 일부 권한 문자열과 할당된 역할의 작은 스냅샷(snapshot)을 제공한다.Roles and permissions enable verification and validation of tasks and tasks that users can perform. Similarly, it is implemented with a structure in which all users must be authenticated before using the system. The system allowed anonymous users to register. Once you have an account on the system, you can authenticate with the credentials provided during registration. Table 1 provides a small snapshot of some permission strings and assigned roles for their physical counterparts.

(6) 인가(Authorization)(6) Authorization

인증은 사용자나 기기를 식별하는 데 유용하지만 인증된 사용자가 특정 리소스에 액세스할 수 있는지 여부를 알 수 있는 권한은 사용된다. 예를 들어 IoT 소비자 역할을 가진 사용자는 시스템에서 가상 객체를 삭제할 수 없지만, 반대로 관리 역할과 관련된 사용자는 삭제할 수 있다. While authentication is useful for identifying a user or device, the ability to know whether an authenticated user can access a particular resource is used. For example, a user with the IoT Consumer role cannot delete virtual objects from the system, but conversely, users associated with the Admin role can delete it.

간단한 인증 시스템 외에도, 본 발명의 실시예에서는 다른 보안 계층을 추가하고 장치와 기계 인증에 도움이 되는 OAuth 서버를 사용했다. 외부 사용자나 기계가 어떤 것을 시스템에 게시하기 위해 유효한 토큰을 가져야 한다는 점에서 헤더리스(headless) 시스템에 대한 승인은 가장 중요하다.In addition to the simple authentication system, the embodiment of the present invention uses an OAuth server that adds another layer of security and aids in device and machine authentication. Authorization for a headless system is paramount in that an external user or machine must have a valid token to publish anything to the system.

(7) 분석지원(7) Analysis support

어떤 애플리케이션 설계에서든 기본적인 고려사항 중 하나는 관련 내용만 특정 사용자 집합에 표시되도록 상황 인식 및 사용자 환경설정을 활성화하는 것이다. 예를 들어, 스마트홈 IoT 도메인에 속한 사용자는 스마트홈 시나리오에 통합될 수 있는 리소스에만 관심이 있다. One of the fundamental considerations in any application design is to enable context awareness and user preferences so that only relevant content is visible to a specific set of users. For example, users belonging to the smart home IoT domain are only interested in resources that can be integrated into a smart home scenario.

마찬가지로, 스마트 팜 케이스를 사용하는 사용자는 언급된 도메인과 관련된 가상 개체의 목록을 가지기를 원할 것이다. 따라서, 제안된 본 발명에 따른 시스템은 분석 모듈을 사용하여 시간이 경과함에 따라 사용자 선호도를 학습하여 반영될 수 있도록 한다Likewise, users using the smart farm case will want to have a list of virtual objects associated with the mentioned domain. Therefore, the proposed system according to the present invention uses an analysis module to learn and reflect user preferences over time.

3. 본 발명에 따른 시스템 진행 구성에 대한 실시예 설명3. Example description of the system progress configuration according to the present invention

이하에서는 본 발명에 따른 가상 객체 공유 및 검색이 가능한 사물인터넷 스토어 시스템을 적용하는 주요 프로세스를 설명하기로 한다. 전체적인 프로세스는 도 3의 앞부분에 설명된 시나리오에 기초하여 설명한다.Hereinafter, a main process of applying the IoT store system capable of sharing and searching virtual objects according to the present invention will be described. The overall process is described based on the scenario described earlier in FIG. 3 .

(1) 사용자 등록(User Registration) (1) registered user (User Registration)

사용자 등록은 애플리케이션 사용자가 스토어의 리소스에 액세스할 수 있는 기본 모듈이다. 사용자는 소비자, 공급자의 역할에 등록될 수 있고 둘 모두를 선택할 수 있다. IoT 도메인 등 등록 정보 시 시간대, 이메일 주소를 수신한다. 관리자는 등록요청을 받아 승인하고, 신규사용자는 이메일로 통지한다. 견본 웹 양식은 도 5와 같다.User registration is the basic module that allows application users to access resources in the store. Users can be enrolled in the roles of Consumer, Provider and can choose both. When registering information such as IoT domain, time zone and email address are received. The administrator receives and approves the registration request, and new users are notified by e-mail. A sample web form is shown in FIG. 5 .

(2) 클라이언트 등록(Client Registration)(2) Client Registration

본 발명의 스토어의 가상 객체는 무단 액세스로부터 보호되어야 한다. 이를 위해 OAuth2 모듈이 사용되어 효과적인 승인이 가능하도록 할 수 있다. OAuth2 시스템에서 한 가지 요건은 시스템과 상호 작용하는 경향이 있는 모든 클라이언트를 등록하는 것이다. 클라이언트는 시스템의 사용자 계정에 액세스하려는 애플리케이션이며, 등록 시 클라이언트는 시스템의 역할 및 사용자와 연결된다. 사용자와 클라이언트의 차이점은 클라이언트가 기계나 IoT 게이트웨이 또는 스마트한 디바이스가 될 수 있다는 것이다. 이용자가 필요 없는 고객도 있고, 사용자 개입 없이 콘텐츠를 자율적으로 올리는 고객도 있다. 클라이언트를 시스템에 등록하면 OAuth 액세스 토큰 허가 요청에서 필수 매개 변수로 사용할 수 있는 클라이언트 고유 사용자 ID(UUID)와 비밀 코드가 할당된다.The virtual object of the store of the present invention should be protected from unauthorized access. For this, the OAuth2 module can be used to enable effective authorization. One requirement in the OAuth2 system is to register all clients that tend to interact with the system. A client is an application that wants to access a user account on the system, and upon registration, the client is associated with a role and user on the system. The difference between a user and a client is that a client can be a machine, an IoT gateway, or a smart device. There are customers who do not need users, and there are customers who upload content autonomously without user intervention. When a client registers with the system, it is assigned a client unique user ID (UUID) and secret code that can be used as required parameters in the OAuth access token authorization request.

(3) 권한 코드 부여(Authorization Code Grant)(3) Authorization Code Grant

등록된 클라이언트는 스토어의 보호된 리소스에 대한 액세스 권한을 부여하는 권한 부여 서버로부터 액세스 코드를 받을 수 있다. 클라이언트는 클라이언트 UUID, 비밀, 권한 부여 서버 URL, 액세스 토큰 URL 및 콜백 URL과 같은 매개변수를 제공하여, 권한 부여 서버에 OAuth2 프로토콜을 사용하여 요청을 한다. Registered clients can receive an access code from an authorization server that grants them access to protected resources in the store. The client makes a request to the authorization server using the OAuth2 protocol by providing parameters such as the client UUID, secret, authorization server URL, access token URL, and callback URL.

액세스 토큰 URL은 토큰이 게시된 위치이며, 권한 부여 서버 URL은 클라이언트를 식별하고 유효성을 확인하는 권한 부여 서버의 주소이다. 제공된 UUID 및 비밀 사용 표본 포스트맨(postman) 기반 시험 요청은 도 6에 도시된 것과 같다. REST의 POST 요청 헤더에 제공될 수 있는 양식이 제출되고 액세스 코드가 부여되면, 시스템은 액세스 토큰을 검증하고 보호 리소스에 대한 요청을 승인한다.The access token URL is where the token is posted, and the authorization server URL is the address of the authorization server that identifies and validates the client. A sample postman based test request using the provided UUID and secret is as shown in FIG. 6 . Once the form is submitted, which can be provided in REST's POST request header, and an access code is given, the system validates the access token and grants the request to the protected resource.

(4) 가상객체의 제시(4) presentation of virtual objects

클라이언트가 승인되고 액세스 토큰이 부여되면, 보호된 리소스에 액세스하여 애플리케이션 저장소에 새 리소스를 추가할 수 있다. 스토어의 헤더리스 액세스 지원을 통해 클라이언트는 스토어를 방문할 필요 없이 스토어에서 가상 객체를 공유할 수 있다. Once the client is authorized and granted an access token, it can access the protected resource and add new resources to the application repository. The store's support for headerless access allows clients to share virtual objects in the store without having to visit the store.

클라이언트는 RESTful API를 활용하여 스토어에 가상 객체를 게시할 수 있다. Clients can utilize RESTful APIs to publish virtual objects to the store.

나머지 요청은 하이퍼 미디어 및 임베디드 오브젝트를 허용하기 위해 HAL로 포장해야 한다. 가상 개체의 표준 페이로드는 가상 개체의 매개 변수를 기반으로 한다. 시스템 준수 가상 개체의 JSON 형식은 아래와 같다.The rest of the request must be wrapped in a HAL to allow for hypermedia and embedded objects. A virtual object's standard payload is based on the virtual object's parameters. The JSON format of a system-compliant virtual object is shown below.

Figure pat00002
Figure pat00002

페이로드(payload)는 POST 요청의 본문을 형성하며, 접근 토큰은 헤더에 제공되며, 그렇지 않으면 요청이 승인되지 않는다.The payload forms the body of the POST request, the access token is provided in the header, otherwise the request is not authorized.

(5) 의미론적 지식기반 발견(Semantic Knowledge-Based Discovery)(5) Semantic Knowledge-Based Discovery

본 발명에서는 가상 객체의 설명과 다른 객체와의 관계를 저장하고 개념화하는 의미론적(Semantic) 접근법을 사용한다. 정보 모델은 OWL 온톨로지(owl ontology)를 기반으로 하며, 검색 그래프를 쿼리하고 탐색하기 위한 표준 쿼리 언어인 SPARQL을 사용하여 검색이 가능하도록 한다. IoT 애플리케이션은 특정 IoT 영역의 공통 지식 기반을 정의하는 온톨로지 측면에서 의미 있게 모델링 되어야 한다. IoT 애플리케이션은 이기종 물리적 기기를 다루기 때문에 IoT 시스템의 초기 설계에서 언급된 IoT 애플리케이션의 예비 요구사항 중 일부는 다양한 플랫폼의 상호운용성과 지원이 되어야 한다는 것이다. In the present invention, a semantic approach for storing and conceptualizing a description of a virtual object and a relationship with another object is used. The information model is based on the OWL ontology and enables search using SPARQL, a standard query language for querying and exploring the search graph. IoT applications should be meaningfully modeled in terms of an ontology that defines a common knowledge base in a specific IoT area. Because IoT applications deal with heterogeneous physical devices, some of the preliminary requirements for IoT applications mentioned in the initial design of IoT systems are interoperability and support of various platforms.

따라서 정보의 의미적 표현은 상호운용성의 내재적 편안함 때문에 IoT 영역에서 가장 중요하다. 의미표현도 문서구조의 통일성 때문에 IoT 애플리케이션을 쉽게 검색할 수 있다. 프로토타입 편집기는 온톨로지를 시각화 하는 데, Apache Jena API는 스토어와 상호작용하는 데 사용한다. Protege 편집기에 기반한 온톨로지 그래프는 도 7에 나타나 있다. Therefore, the semantic representation of information is of paramount importance in the IoT domain because of the inherent comfort of interoperability. The semantic expression also makes it easy to search for IoT applications because of the uniformity of the document structure. The prototype editor is used to visualize the ontology, and the Apache Jena API is used to interact with the store. An ontology graph based on the Protege editor is shown in FIG. 7 .

도 7과 같이 OWL은 [owl:Virtual Obects, owl:Permission, owl:Platform]과 다른 것들은 그들의 속성의 관계와 도메인과 함께 정의된다. 지식의 의미적 체계 모델링(semantic modeling of knowledge)에서, 알려진 특정 사실들은 주장된 사실이라고도 하는 식으로, 수동적으로 만들어진다. 반면에, 일부 사실들은 주장된 사실들을 이용하여 추론한다. 예를 들어, 다음과 같은 사실들이다.As shown in FIG. 7 , OWL [owl:Virtual Obects, owl:Permission, owl:Platform] and others are defined along with their property relationships and domains. In semantic modeling of knowledge, certain known facts are passively constructed, also called asserted facts. On the other hand, some facts are inferred using asserted facts. For example, the following facts:

Figure pat00003
Figure pat00003

온톨로지 추론은 추론자(reasoner)에 의해 수행된다. 이러한 목적을 위해, 'protege built-in reasoner' 인 Fact+를 사용하여 주장된 사실을 바탕으로 지식을 추론한다. 또한, 핑크 다이아몬드(pink diamonds)가 있는 박스에서 보여지는 각 클래스에 대한 예시('individuals'이라고도 한다)가 만들어진다. 점선 화살표(Dotted arrows)는 관계를 나타내는 반면, 점박이 화살표(solid arrows denote)는 하위 등급(is-a) 관계를 나타낸다. Ontology reasoning is performed by a reasoner. For this purpose, we use Fact+, a 'protege built-in reasoner', to infer knowledge based on asserted facts. Also, examples (also called 'individuals') are made for each class shown in the box with pink diamonds. Dotted arrows denote relationships, while solid arrows denote denote is-a relationships.

예를 들어, OWL 사이의 노란색 점선(yellow dotted line)은 다음과 같다. "owl:VirtualObject and owl:Operations" 은 " performs " 관계를 나타낸다. 모든 가상 개체는 생성되거나 업데이트되는 고유한 ID, 위치 및 타임스탬프와 같은 여러 데이터 속성을 가지고 있다. 고유 ID는 또한 MySQL 데이터베이스에 저장되므로 SPARQL에 의해 수신될 때 데이터베이스에서 실제 가상 객체를 반환할 때에도 동일한 ID를 사용한다.For example, the yellow dotted line between OWL is: "owl:VirtualObject and owl:Operations" represents the " performs " relationship. Every virtual object has several data properties, such as a unique ID, location, and timestamp, that are created or updated. The unique ID is also stored in the MySQL database, so when it is received by SPARQL, the same ID is also used when returning the actual virtual object from the database.

도 8은 기능적 관점에서 가상 객체의 흐름을 보여준다. 8 shows the flow of a virtual object from a functional point of view.

본 발명의 도 4에서 상술한 IoT 테스트베드 클라이언트는 스토어에 연결하여 쿼리 문자열에 제공된 매개변수 집합을 사용하여 가상 객체를 요청한다. GET 요청은 응용 프로그램 저장소의 RestClient 모듈에 의해 구문 분석되고 SPARQL 형식으로 구문 분석된다. SPARQL 쿼리는 SPARQL 엔진에 의해 실행되며, 정보가 가상 개체와 일치하면 해당 노드 ID가 반환된다. 그 후, RestClient는 노드 ID에 따라 요청을 포맷하고 MySQL 어댑터로 리디렉션하며, 그림처럼 가상 개체를 JSON 형식으로 반환한다.The IoT testbed client described above in FIG. 4 of the present invention connects to the store and requests a virtual object using the parameter set provided in the query string. The GET request is parsed by the RestClient module in the application repository and parsed in SPARQL format. The SPARQL query is executed by the SPARQL engine, and if the information matches a virtual object, the corresponding node ID is returned. After that, RestClient formats the request according to the node ID, redirects it to the MySQL adapter, and returns the virtual object in JSON format as shown.

도 9는 도 1 내지 도 4에서 설명한 본 발명의 실시예에 따른 스토어의 활용 시나리오를 구현하는 예를 도시한 것이다.9 illustrates an example of implementing a store utilization scenario according to an embodiment of the present invention described with reference to FIGS. 1 to 4 .

상술한 바 있지만, 본 발명에 따른 스토어를 사용할 수 있는 두 가지 시나리오를 제공할 있다. 첫 번째 시나리오는 리소스 검색이며 두 번째 시나리오는 도 9의 (a), (b)에 도시된 바와 같이 리소스를 공유하는 것이다. 두 경우 모두 상호 작용은 IoT 테스트베드 클라이언트에서 스토어로 의한 것이다.As described above, two scenarios in which the store according to the present invention can be used can be provided. The first scenario is resource search, and the second scenario is to share resources as shown in (a) and (b) of FIG. 9 . In both cases, the interaction is from the IoT testbed client to the store.

첫 번째 시나리오에서 IoT 테스트 베드인 클라이언트 응용 프로그램은 게이트웨이에 등록된 IoT 리소스에 대한 가상 객체를 검색하는 것을 목표로 한다. 이는, 우선 등록된 리소스의 메타데이터는 검색 요청을 형성하기 위해 구문 분석된다. 이러한 리소스 검색에 대한 요청(request)은 RESTful 웹 서비스의 형태로 응용 프로그램 계층에 이루어지게 된다. 그런 다음 상기 요청(request)은 등록된 리소스의 메타데이터와 함께 GET 요청으로 배치된다. 메타데이터는 지원되는 프로토콜, 플랫폼, 리소스 유형일 수 있다. 응용 프로그램 계층, 권한 부여 및 인증의 일환으로, 요청 위조 공격을 피하는 것에 대한 인증 서버에서 요청으로 위치 CSRF 토큰을 받게 된다. In the first scenario, the client application, which is an IoT test bed, aims to discover virtual objects for IoT resources registered in the gateway. This means that first the metadata of the registered resource is parsed to form a search request. A request for such resource search is made to the application layer in the form of a RESTful web service. The request is then placed as a GET request along with the metadata of the registered resource. Metadata can be supported protocols, platforms, and resource types. As part of the application layer, authorization and authentication, you will receive a location CSRF token as a request from the authentication server to evade request forgery attacks.

또한, 스토어에 액세스할 수 있는 라이선스인 인증 토큰을 추가하여 요청을 승인한다. 이제 요청(request)에는 메타데이터 외에 CSRF 및 인증 토큰이 존재한다. OWL 처리기는 요청을 처리하고 검색 요청의 메타데이터를 기반으로 SPARQL 쿼리를 형성한다. 요청(request) 페이로드와 일치하는 가상 개체가 발견되면 MySQL 어댑터에 대한 응답으로 노드 ID가 반환된다. 또한, 노드 ID에 대한 SQL 쿼리는 가상저장소(virtual repository)로 만들어지고, 가상 객체는 검색 관리자에게 반환된다. 검색 관리자는 가상 객체를 마이크로 서비스를 모델링하는 데 사용되는 기능 블록으로 분해하며, 이러한 마이크로 서비스는 실제 물리적 리소스에 대한 명령 형식으로 배포되게 된다.It also authorizes the request by adding an authentication token, which is a license to access the store. The request now has a CSRF and an authentication token in addition to the metadata. The OWL handler processes the request and forms a SPARQL query based on the metadata of the search request. If a virtual object matching the request payload is found, the node ID is returned in response to the MySQL adapter. Also, the SQL query for the node ID is made into a virtual repository, and the virtual object is returned to the search manager. The search manager decomposes virtual objects into functional blocks used to model microservices, and these microservices are deployed in the form of commands to real physical resources.

도 9에서 가상 객체 공유를 위한 두 번째 시나리오는 액세스 토큰을 획득하고 스토어에 클라이언트 컴퓨터를 등록한 다음 게시한다. 이 경우 클라이언트 응용 프로그램은 스토어 호환 형식이 아닌 일부 가상 개체를 통해 IoT 리소스를 제어한다. 또한, 가상 객체를 공유하기 전에 클라이언트를 스토어에 등록해야 한다. The second scenario for virtual object sharing in Fig. 9 is to obtain an access token, register a client computer in the store, and then publish it. In this case, the client application controls the IoT resource through some virtual object rather than in a store-compatible format. Also, before sharing a virtual object, a client must be registered with the store.

레스트클라이언트(RestClient)는 클라이언트 관리자(Client Manager)에게 요청을 보내어 UUID와 UUID와 클라이언트에 대한 비밀(secret)을 연결하여 클라이언트를 등록한다. 응용 프로그램 저장소가 향후 요청에 대해 권한이 부여된 클라이언트와 동일한 클라이언트를 인식할 수 있도록 클라이언트 ID에 대해 권한 부여 서버에도 동일한 정보가 저장된다. RestClient registers a client by sending a request to the Client Manager and connecting the UUID, UUID, and the secret for the client. The same information is also stored on the authorization server for the client ID so that the application store recognizes the same client as the authorized client for future requests.

또한, 클라이언트 응용 프로그램에도 동일한 자격 증명이 제공됩니다. 클라이언트는 UUID 및 비밀(secret)을 지정하여 권한 부여 서버에 대한 액세스 토큰에 대한 POST 요청을 형성한다. 권한 부여 서버는 클라이언트를 식별하고 유효성을 검사하고 응답으로 액세스 코드를 반환한다. 클라이언트는 POST 요청의 헤더에 있는 액세스 코드와 가상 개체의 JSON 표현을 페이로드에서 사용한다.Also, the same credentials are provided to the client application. The client forms a POST request for an access token to the authorization server, specifying the UUID and secret. The authorization server identifies the client, validates it, and returns an access code in response. The client uses the access code in the header of the POST request and the JSON representation of the virtual object in the payload.

요청의 유효성이 검사되고 응용 프로그램 저장소의 HAL 요구 사항을 준수하면 MySQL 어댑터에 의해 SQL 쿼리로 변환되고, 가상 객체 저장소(virtual object repository)의 노드로 삽입된다. 삽입 작업이 성공하면 새로 삽입된 노드의 노드 ID가 레스트클라이언트(RestClient)로 반환되어 요청과 함께 OWL 처리기로 전달된다. OWL 처리기는 SPARQL 쿼리를 만들고, 의미 체계 정보는 시멘틱 데이터베이스(DB)에 저장된다. 성공을 나타내는 응답 코드 200은 가상 객체가 애플리케이션 저장소에서 성공적으로 공유되었음을 나타내는 공유 관리자에 반환된다.If the request is validated and complies with the HAL requirements of the application repository, it is converted into a SQL query by the MySQL adapter and inserted as a node in the virtual object repository. If the insert operation is successful, the node ID of the newly inserted node is returned to the RestClient and passed along with the request to the OWL handler. The OWL processor creates a SPARQL query, and semantic information is stored in a semantic database (DB). A response code of 200 indicating success is returned to the share manager indicating that the virtual object was successfully shared from the application repository.

도 10은 스토어의 가상 객체 관리를 구현하는 프로그램의 스냅샷을 제시한 것이다.10 presents a snapshot of a program that implements virtual object management of the store.

가상 개체의 특성은 제목, 모델, 가상 개체 유형, 데이터, 메서드 및 지원되는 프로토콜일 수 있다. 이러한 가상 개체는 JSON 및 XML 형식의 다른 IoT 응용 프로그램에서 내보내고 사용할 수 있다. 가상 개체 외에도 실행 가능한 개체는 실제 물리적 하드웨어에 가상 개체를 배포하는 방법을 제공하는 것도 가능하다.The attributes of a virtual object can be title, model, virtual object type, data, method, and supported protocol. These virtual objects can be exported and used by other IoT applications in JSON and XML format. In addition to virtual objects, executable objects can also provide a way to deploy virtual objects on real physical hardware.

도 11은 도 10의 프로그램에서 고객관리 페이지를 도시한 것으로, 클라이언트에는 특정 UUID, 레이블, 범위 및 선택적으로, 콜백 URL의 정보를 제공한다. 이러한 특성 외에도 범위는 예를 들어 도 11에서 한 클라이언트에 app_소비자 역할이 있고 그 중 세 개는 앱(공급자역할)을 가지고 있는 것과 같이 클라이언트를 특정 역할과 연결하도록 정의할 수도 있다. Fig. 11 shows a customer management page in the program of Fig. 10, which provides the client with information of a specific UUID, label, range and, optionally, a callback URL. In addition to these characteristics, a scope can also be defined to associate a client with a specific role, for example in FIG. 11 where one client has the app_consumer role and three of them have an app (provider role).

이러한 클라이언트는 스토어와 상호 작용하는 사용자 또는 IoT 게이트웨이로, 가상 객체를 공유하고 얻었다. 따라서 악성 공격과 무단 접근을 피하기 위해서는 식별이 무엇보다 중요하다. 스토어의 보호된 리소스에 대한 무단 액세스를 제어하기 위한 역할 및 사용 권한은 도 12에 나타나 있다.These clients are users or IoT gateways that interact with the store, sharing and obtaining virtual objects. Therefore, identification is of paramount importance to avoid malicious attacks and unauthorized access. The roles and permissions for controlling unauthorized access to protected resources in the store are shown in FIG. 12 .

도 12 (a)에 도시된 것과 같이 역할 관리 모듈(role management module)은 시스템에 추가된 모든 역할을 나열하며 관리자는 역할을 추가, 편집 및 삭제할 수 있다. 가상 객체 공유와 검색에 특정한 앱 제공자와 앱 소비자 역할이 각각 존재한다. 사용자 또는 클라이언트는 여러 역할을 가질 수 있다. 예를 들어 애플리케이션 사용자는 애플리케이션 저장소에서 일부 가상 개체를 검색하는 데 관심이 있을 수 있지만 동시에 사용자 지정된 가상 개체를 애플리케이션 저장소에서도 공유할 수 있다. 이 경우 앱 소비자 역할과 앱 제공자 역할이 모두 할당된다. 각 역할에 대한 사용 권한 문자열은 표 3에 요약된 사용 권한 및 역할의 해당 구현을 보여주는 도 12(b)에 설명되어 있다.As shown in Fig. 12 (a), the role management module lists all roles added to the system, and the administrator can add, edit, and delete roles. There are app provider and app consumer roles that are specific to virtual object sharing and retrieval, respectively. A user or client can have multiple roles. For example, an application user may be interested in retrieving some virtual objects from the application store, but at the same time, a customized virtual object may also be shared from the application store. In this case, both the App Consumer role and the App Provider role are assigned. The permission strings for each role are illustrated in Figure 12(b), which shows the corresponding implementation of the permissions and roles summarized in Table 3.

[표 3] 스토어의 권한관리 및 역할관리 스냅샷[Table 3] Snapshot of permission management and role management of the store

Figure pat00004
Figure pat00004

가상 객체에 대한 요청이 있었을 때, 요청의 성격은 먼저 HTTP 기초 모듈에 의해 조사되었다. 요청이 PUT, DELETE 및 POST에 있는 경우, 시스템을 수정할 가능성이 있다. 이에, 관련 역할을 찾기 위해 클라이언트 ID를 검사했다. 관련 역할(associated roles)은 사용자의 사용 권한 목록을 찾는 데 도움이 되므로, 이에 따라 해당 요청에 대한 액세스가 통제된다. 예를 들어, 가상 객체에 대한 DELETE 요청이 있었고 클라이언트 ID에서 관련 역할이 가상 객체를 삭제할 권한이 없는 앱 소비자임을 확인한 경우, 결과적으로 요청이 거부된다. 이렇게 하여 IoT 애플리케이션의 중요한 설계 측면인 무단 액세스로부터 스토어를 견고하고 안전하게 만들 수 있다.When a request is made for a virtual object, the nature of the request is first examined by the HTTP base module. If the request is in PUT, DELETE and POST, it is possible to modify the system. So, I checked the client ID to find the relevant role. Associated roles help find a list of a user's permissions, so access to that request is controlled accordingly. For example, if there was a DELETE request for a virtual object and the client ID determines that the relevant role is an app consumer that does not have permission to delete the virtual object, the result is that the request is denied. This makes the store robust and secure from unauthorized access, an important design aspect of IoT applications.

또한, 스토어에 대한 디커플링 및 헤드리스 액세스를 위해, 스토어에 대한 RESTful API 호출을 활성화하기 위해 RESTClient 모듈을 구현했다. 도 13은 이러한 RestClient 모듈의 인터페이스를 나타낸 도면이다.We also implemented a RESTClient module to enable RESTful API calls to the store, for decoupling and headless access to the store. 13 is a diagram illustrating an interface of such a RestClient module.

애플리케이션의 엔드포인트가 노출되는 엔티티는 가상 객체이며, 메소드는 GET, POST, DELETE 및 패치이다. 요청 형식은 hal_json, JSON 및 XML 중 하나일 수 있으며 권한 부여는 oAuth2 라이브러리에 기초한다.The entity that the application's endpoint is exposed to is a virtual object, and the methods are GET, POST, DELETE, and patch. The request format can be one of hal_json, JSON and XML, and authorization is based on the oAuth2 library.

[가상 객체 공유 및 검색을 위한 사용 사례: 사물인터넷(IoT) 테스트 클라이언트][Use Case for Virtual Object Sharing and Discovery: Internet of Things (IoT) Test Client]

도 4에서 상술한 바와 같이 IoT 테스트베드 클라이언트는 IoT 애플리케이션 제작 시 제안된 스토어의 기능적 동작과 유용성을 평가할 수 있다. 테스트베드 클라이언트는 스토어에서 일부 가상 객체를 발견하고 그 가상 객체에 대한 공유 작업을 처리할 수 있다. As described above in FIG. 4 , the IoT testbed client may evaluate the functional operation and usefulness of the proposed store when creating an IoT application. The testbed client can discover some virtual objects in the store and handle sharing operations on those virtual objects.

[표 4] 스토어 환경에서 다양한 IoT 장치와 게이트웨이로 구성된 테스트베드 클라이언트[Table 4] Testbed client composed of various IoT devices and gateways in the store environment

Figure pat00005
Figure pat00005

본 발명에서의 테스트베드 클라이언트의 주된 목적은 스토어의 상호운용성을 찾기 위해 서로 다른 IoT 기술, 이기종 장치 및 IoT 플랫폼을 사용하는 것이다. The main purpose of the testbed client in the present invention is to use different IoT technologies, heterogeneous devices, and IoT platforms to find store interoperability.

이에, 표 4에서 기술된 CoAP, HTTP 및 MQTT는 IoT 애플리케이션에서 일반적으로 사용되는 통신 프로토콜 중 하나이며, 본 발명의 실시예에서는 각각의 서버를 설치함으로써 이 세 가지 프로토콜을 활용할 할 수 있도록 한다. Accordingly, CoAP, HTTP, and MQTT described in Table 4 are one of the communication protocols commonly used in IoT applications, and in the embodiment of the present invention, each of the servers is installed to utilize these three protocols.

HTTP의 경우, HTTP 요청을 수신하는 Python 기반 Flask 서버를 사용할 수 있다. 마찬가지로, 본발명에서는 Node.js 서버를 사용하여 MQ를 청취할 수 있다.For HTTP, you can use a Python-based Flask server that listens for HTTP requests. Similarly, in the present invention, MQ can be listened to using a Node.js server.

CoAP 요청에 대한 TT 요청 및 CoAP 서버. 이 자원은 무선 인터넷 접속을 공유하는 다양한 IoT 게이트웨이에 연결된다. 다양한 소형 IoT 애플리케이션을 개발하여 테스트베드 클라이언트에 구축하였다. 이러한 애플리케이션에는 온도 모니터링, 팬 제어, 원격 트래픽 제어 및 원격 조명 제어 등의 기능이 포함되었다. 애플리케이션에서 사용되는 가상 객체는 애플리케이션 저장소에서 공유된다. 표 4를 기반으로 한 IoT 테스트베드 클라이언트의 실험 설정은 도 14와 같다.TT request to CoAP request and CoAP server. This resource connects to various IoT gateways that share wireless Internet access. Various small IoT applications were developed and built on a testbed client. These applications included functions such as temperature monitoring, fan control, remote traffic control, and remote lighting control. Virtual objects used by applications are shared in the application repository. The experimental setup of the IoT test bed client based on Table 4 is shown in FIG. 14 .

이러한 실험 설정에서는, 여러 개의 게이트웨이와 장치가 연결되어 있어 IoT 애플리케이션 매시업(mashup)을 형성했다. 예를 들어 화재위험을 방지하기 위해 실내 감시를 위해 가스가 감지되면 스냅샷을 찍는 가스센서를 이용한 간단한 IoT 애플리케이션을 구현했다. MQTT는 통신 프로토콜과 카메라의 가상 객체로 사용되었으며, 가스 센서를 스토어에 공유하였다. 이러한 가상 객체를 처리하고 RESTful API를 사용하여 스토어에서 공유할 수 있는 웹 기반 애플리케이션이 개발되었다. 도 15는 IoT 테스트베드 클라이언트를 위해 설계된 클라이언트 애플리케이션을 보여줌으로써 IoT 테스트베드 클라이언트에서 사용되는 가상 객체 및 서비스를 관리한다. 클라이언트 애플리케이션의 구현 기술은 표 5에 요약되어 있다.In this experimental setup, multiple gateways and devices were connected to form an IoT application mashup. For example, we implemented a simple IoT application using a gas sensor that takes a snapshot when gas is detected for indoor monitoring to prevent fire hazards. MQTT was used as a communication protocol and a virtual object of the camera, and the gas sensor was shared with the store. A web-based application has been developed that can handle these virtual objects and share them in the store using a RESTful API. 15 shows a client application designed for the IoT test bed client, thereby managing virtual objects and services used in the IoT test bed client. The implementation techniques of the client application are summarized in Table 5.

[표 5][Table 5]

Figure pat00006
Figure pat00006

클라이언트 애플리케이션의 기본 인터페이스는 도 15와 같다. 애플리케이션에서 사용되는 가상 개체는 클라이언트 애플리케이션에서 관리되었다. 모든 가상 개체에는 두 개의 작업 버튼이 있었는데, 그 중 하나는 애플리케이션 저장소에 가상 개체를 공유하기 위한 것이고, 다른 하나는 가상 개체를 기능 블록으로 분해하기 위한 것이다. 공유 버튼을 클릭하면 API 요청이 트리거 되며, 이 요청은 먼저 UUID 및 비밀에 대해 클라이언트를 승인한다. 클라이언트가 승인되고 액세스 토큰이 부여되면 후속 요청은 가상 개체를 JSON으로 변환하고 요청의 헤더에 액세스 토큰을 발송하여 스토어에 게시한다. RestClient는 요청을 수신하여 응용 프로그램 저장소 호환 형식으로 저장하고 저장소에 저장한다.The basic interface of the client application is shown in FIG. 15 . The virtual objects used by the application were managed by the client application. Every virtual object had two action buttons, one for sharing the virtual object with the application repository and the other for breaking the virtual object into functional blocks. Clicking the share button triggers an API request, which first authorizes the client for a UUID and secret. Once the client is approved and an access token is granted, subsequent requests publish it to the store by converting the virtual object to JSON and sending the access token in the header of the request. The RestClient receives the request, stores it in an application store compatible format, and stores it in the store.

이하에서는, 본 발명에 따른 가상 객체 공유 및 검색이 가능한 사물인터넷 스토어 시스템을 적용한 사례를 도면을 참조하여 설명하기로 한다.Hereinafter, an example in which the IoT store system capable of sharing and searching virtual objects according to the present invention is applied will be described with reference to the drawings.

본 적용사례 실험에서는, 스마트 홈 지능형 기상관리의 상세설계를 구현하였다. In this application case experiment, the detailed design of smart home intelligent weather management was implemented.

우선, 애플리케이션은 제안된 스토어를 활용하여 온도 센서와 습도 센서의 가상 개체를 검색한다. 또한 제어 액추에이터로 팬 모터를 사용한다. 애플리케이션의 흐름도를 도 16에 표시하였다. 먼저, 기기 프로파일은 사양 문서에서 조사하며 원하는 특징을 바탕으로 가상 객체를 검색한다. 가상 객체가 발견되면 IoT 테스트베드 클라이언트에서 수신된다. 그런 다음 가상 개체는 애플리케이션별 변경(즉, URI 변경)을 반영하도록 구성되고 데이터베이스에 저장된다. 가상 개체는 나중에 기능 블록으로 분해된다. 그런 다음 DIY 기술을 사용하여 블록을 드래그 앤 드롭하여 마이크로 서비스를 구성한다. 본 발명에서는 브라우저에서 드래그 앤 드롭 동작을 활성화하기 위해 Javascript 라이브러리인 jsPlumb를 사용해 왔다. 초소형 서비스는 물리적인 것에 의해 수행되는 수술이다. 가상 도메인에서 마이크로 서비스는 가상 객체 또는 가상객체와 하나 이상의 작업으로 구성된다.First, the application utilizes the proposed store to retrieve virtual objects of temperature and humidity sensors. It also uses a fan motor as the control actuator. A flowchart of the application is shown in FIG. 16 . First, the device profile is investigated in the specification document and the virtual object is searched for based on the desired characteristics. When a virtual object is discovered, it is received by the IoT testbed client. The virtual object is then configured to reflect application-specific changes (i.e. URI changes) and stored in the database. Virtual objects are later decomposed into functional blocks. Then use DIY techniques to drag and drop blocks to build microservices. In the present invention, jsPlumb, a Javascript library, has been used to activate the drag-and-drop operation in the browser. A microservice is an operation performed by a physical one. In a virtual domain, a microservice consists of a virtual object or virtual object and one or more operations.

가상 개체를 검색하려는 사용자는 클라이언트 시스템에 가상 개체를 추가하는 것으로 시작하게 된다. 가상 개체 검색 인터페이스에서는 사용자가 이미 연결되어 있고 권한이 부여되어 있다는 점을 고려하여 스토어에서 가상 개체를 검색하는 옵션이 구비된다. 가상 객체가 사용자가 제공한 디바이스 프로파일 메타 정보를 충족하는 경우 인터페이스가 미리 채워졌고, RESTful GET 방법을 사용하여 가상 객체를 발견한다. 검색된 가상 개체는 일부 애플리케이션별 수정 후 추가되었다. Users who want to discover virtual objects start by adding them to the client system. The virtual object search interface has an option to search for virtual objects in the store, taking into account that the user is already connected and authorized. If the virtual object satisfies the device profile meta information provided by the user, the interface is pre-populated, and the virtual object is discovered using the RESTful GET method. The discovered virtual object was added after some application-specific modifications.

가상 개체 목록 인터페이스에는 도 15와 같이 데이터베이스에 추가된 모든 가상 개체가 나열되어 있다. 각 가상 개체에 대해 작업 열은 이를 기능 블록으로 분해하고 애플리케이션 저장소에서도 애플리케이션별 기능을 공유할 수 있는 몇 개의 버튼을 제공했다. 도 17에서는 사용자가 팬 컨트롤러를 위한 가상 객체를 필요로 하는 경우를 설정해 보았다. 먼저, 그는 스토어와 연결하여 메타 정보를 제공한다. 여기에는 태그, 데이터 속성, 설명 및 개체가 잠재적으로 수행할 수 있는 작업 또는 방법이 포함된다. 두 번째 단계에서 가상 객체가 검색되어 표시된 데이터베이스에 저장된다.In the virtual object list interface, all virtual objects added to the database are listed as shown in FIG. 15 . For each virtual object, the Actions column breaks it down into function blocks and provides a few buttons to share application-specific functions in the application repository as well. In FIG. 17 , a case in which a user requires a virtual object for a fan controller has been set. First, he connects with the store and provides meta information. This includes tags, data attributes, descriptions, and actions or methods that an entity can potentially perform. In the second step, the virtual object is retrieved and stored in the indicated database.

가상 개체 목록 페이지(virtual objects listing page)에서는 애플리케이션 저장소에 대한 공유와 기능 블록으로 분해라는 두 가지 작업을 개별 가상 개체에 대해 수행할 수 있다. 이 경우, 디컴포즈 작업(decompose action)이 트리거 되면, 애플리케이션은 가상 객체가 기능 블록(functional blocks)으로 표현되는 공간을 제조자에게 제공하는 인터페이스를 제공한다. The virtual objects listing page allows you to perform two operations on individual virtual objects: share to the application repository and decompose into functional blocks. In this case, when a decompose action is triggered, the application provides an interface that provides a space in which virtual objects are expressed as functional blocks to the manufacturer.

기능 블록은 가상 개체가 잠재적으로 수행할 수 있는 작업이다. 예를 들어, 팬 제어의 경우, 턴-팬, 턴-시계방향, 턴-대서양 잠금 장치와 같은 작업이 열거되어 있다. 이러한 작업은 가상 개체에서 작업으로 라인을 끌어 작업 블록에 떨어뜨려 연결된다. 드래그 앤 드롭이 완료되면 구성은 마이크로 소버 형식으로 유지된다. 다음 화면에는 마이크로 서비스가 해당 물리적 개체에 배포하기 위한 작업 버튼과 함께 나열되어 있다. 버튼을 클릭하면 팬 컨트롤이 지정된 동작을 실행하기 시작한다. 결과적으로, 제조자는 가상 개체를 추가, 구성 및 연결하기 위한 코드를 작성함으로써 많은 노력을 절약한다. 동일한 단계를 수행하여 센서 가상 개체를 검색하고 지정된 온도 센서에 마이크로 서비스로 배포할 수 있다. 간단한 기상 제어 서비스를 제공하기 위해 마이크로 서비스는 조건부로 배치된다. 예를 들어, 온도 센서가 전개되고 감지된 값이 일부 임계 값 보다 크면 턴-팬 마이크로 서비스만 전개된다.A function block is an operation that a virtual object can potentially perform. For example, for fan control, operations such as turn-fan, turn-clockwise, turn-atlantic lock are listed. These tasks are connected by dragging lines from the virtual object to the task and dropping it into the task block. Once the drag-and-drop is complete, the configuration remains in microsober format. On the next screen, the microservices are listed along with action buttons to deploy to that physical object. When the button is clicked, the fan control starts performing the specified action. As a result, manufacturers save a lot of effort by writing code to add, configure, and connect virtual objects. You can follow the same steps to retrieve a sensor virtual object and deploy it as a microservice to a specified temperature sensor. Microservices are conditionally deployed to provide simple weather control services. For example, if a temperature sensor is deployed and the sensed value is greater than some threshold, only a turn-fan microservice is deployed.

상술한 본 발명에 따른 가상 객체 공유 및 검색이 가능한 사물인터넷 스토어 시스템에 따르면, 클라우드 기반 디 커플링(decoupling) IoT 스토어를 설계 및 구현하여 가상 객체의 검색 및 공유를 위한 중심기술을 제공할 수 있다. 나아가, 이기종 스토어 및 API의 데이터를 노출하여 헤더리스(headless) 동작을 보장하여, 스토어에 가지 않고도 데이터를 소비할 수 있는 클라이언트를 확보할 수 있다. 나아가, 제안된 스토어의 효율성 평가를 위해 구비되는 IoT 테스트베드 클라이언트를 개발하여 가상 객체를 가져오고 공유한다.According to the IoT store system capable of sharing and searching virtual objects according to the present invention, it is possible to provide a central technology for searching and sharing virtual objects by designing and implementing a cloud-based decoupling IoT store. . Furthermore, by exposing data of heterogeneous stores and APIs, it is possible to secure a client that can consume data without going to the store by guaranteeing a headless operation. Furthermore, an IoT testbed client is developed to evaluate the efficiency of the proposed store to bring and share virtual objects.

또한, 본 발명에 따른 가상 객체 공유 및 검색이 가능한 사물인터넷 스토어 시스템에 적용되는 기능 구성 및 수행동작은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다.In addition, the functional configuration and execution operation applied to the IoT store system capable of sharing and searching virtual objects according to the present invention may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in any number of hardware and/or software configurations that perform specific functions. For example, the present invention provides integrated circuit configurations, such as memory, processing, logic, look-up table, etc., capable of executing various functions by means of the control of one or more microprocessors or other control devices. can be hired

본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “~모듈”, “~부”, "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.Similar to how components of the present invention may be implemented as software programming or software elements, the present invention includes various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs, including C, C++ , Java, assembler, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors. In addition, the present invention may employ conventional techniques for electronic configuration, signal processing, and/or data processing, and the like. Terms such as “module”, “part”, “mechanism”, “element”, “means”, and “configuration” may be used broadly and are not limited to mechanical and physical components. The term may include the meaning of a series of routines of software in association with a processor or the like.

Claims (7)

가상객체를 외부 단말과 공유하는 사물인터넷 테스트베드 클라이언트(500)를 통해, 가상객체 및 서비스를 생성하고, 등록하며, 검색을 통해 가상객체를 공유하고, 판매를 수행하는 방법을 구현하되,
물리적 계층(540)에서 물리적 대응 디바이스에 상기 가상 객체를 생성하는 단계;
게이트웨이 계층(530)에서, 가상객체가 저장된 스토어(100)에 사용자에 의해 지정된 가상객체를 게이트웨이에 등록하는 단계;
기능분해 및 마이크로 서비스 계층(520)에서 가상 객체를 수신하여 기능 블록의 형태로 분해하고, 이를 맵핑하여 마이크로 서비스를 형성하는 단계;
서비스 계층(510)에서 최종사용자가 사용할 수 있도록 플랫폼에서 제공하는 서비스를 처리하는 단계;
스토어(100) 에서, 사용자 단말을 통해 들어오는 가상 객체의 검색 요청에 대하여, 가상 객체(virtual objects)에 대한 사용자 쿼리(user query)를 취득하여 검색하는 단계;
검색된 가상객체를 공유하며, 사용자 단말의 요청에 의해 가상객체를 상기 스토어에서 판매 또는 대여하는 단계;를 포함하는,
가상 객체 공유 및 판매를 위한 사물인터넷 스토어 제공방법.
Implement a method of creating and registering virtual objects and services through the Internet of Things test bed client 500 that shares virtual objects with external terminals, sharing virtual objects through search, and performing sales,
creating the virtual object in a physical corresponding device in a physical layer (540);
registering, in the gateway layer 530 , a virtual object designated by a user in the store 100 in which the virtual object is stored, with the gateway;
decomposing a virtual object from the functional decomposition and microservice layer 520, decomposing it in the form of a functional block, and mapping it to form a microservice;
processing the service provided by the platform so that the end user can use it in the service layer 510;
in the store 100, with respect to a search request for a virtual object coming through a user terminal, obtaining and searching a user query for virtual objects;
Including; sharing the searched virtual object and selling or renting the virtual object in the store at the request of the user terminal.
A method of providing an IoT store for sharing and selling virtual objects.
청구항 1에 있어서,
상기 가상객체에 대한 검색 요청에 대한 검색을 수행하는 것은,
애플리케이션 계층(110)에서, 사용자 단말을 통해 들어오는 가상 객체의 검색 요청에 대하여, 가상 객체(virtual objects)에 대한 사용자 쿼리(user query)를 취득하고,
OWL 처리기 모듈(120)에서, 상기 애플리케이션 계층(110)에 전달되는 상기 사용자 쿼리, 식별 참조와 데이터를 사용하여 SPARQL 기반 사후 작업을 생성하여 메타 데이터와 참조를 시맨틱 데이터베이스에 게시하고,
MySQL 어댑터 모듈(130)에서 검색 요청에 대한 구문 분석(parsed)을 수행하고, 가상 객체를 유지하며, 새로 추가된 가상 객체의 고유 식별 정보를 반환하며,
MySQL 어댑터 모듈(130)에서 전달받은, 정보를 바탕으로 가상 객체 검색 또는 공유에 대한 요청을 처리하는,
가상 객체 공유 및 판매를 위한 사물인터넷 스토어 제공방법.
The method according to claim 1,
To perform a search for a search request for the virtual object,
In the application layer 110, for a search request of a virtual object coming through the user terminal, obtain a user query (user query) for the virtual object (virtual objects),
in the OWL handler module 120, using the user query, identifying reference and data passed to the application layer 110 to create a SPARQL-based post-job to publish metadata and references to a semantic database;
The MySQL adapter module 130 parses the search request, maintains the virtual object, and returns unique identification information of the newly added virtual object,
Processing a request for virtual object search or sharing based on the information, received from the MySQL adapter module 130,
A method of providing an IoT store for sharing and selling virtual objects.
유무선 통신을 통해 가상 객체를 검색하는 사용자 단말(10);
상기 사용자단말(10)에서 검색하는 가상객체에 대한 사용자 쿼리를 획득하고, SPARQL(Simple Protocol and RDF Query Language) 기반 쿼리를 게시하고, 사용자 제공 메타데이터로부터 가상 객체를 검색 결과를 반환하는 스토어(100);
상기 스토어(100)의 검색요청에, 사용자 제공 메타데이터로부터 가상 객체의 검색결과를 제공하며, 가상 객체 저장소 데이터베이스(virtual object repository database; 300)에 저장된 가상 객체의 참조(reference of the virtual object )를 반환하는 시맨틱 데이터베이스(Semantic database; 200);
상기 스토어(100)가 정한 표준에서 상기 스토어(100)에 가상객체를 공유하며, 공유한 가상객체의 코드 재사용을 가능하도록 하는 다수의 사물인터넷(IoT) 도메인(400);
웹서비스(RESTful web services)를 통해 상기 스토어(100)과 통신하며, 상기 스토어(100)에서 가상객체를 발견하고, 상기 가상객체를 외부 단말과 공유하는 사물인터넷 테스트베드 클라이언트(500);를 포함하는,
가상 객체 공유 및 판매를 위한 사물인터넷 스토어 시스템.
a user terminal 10 for searching for a virtual object through wired/wireless communication;
A store 100 that obtains a user query for a virtual object searched by the user terminal 10, posts a SPARQL (Simple Protocol and RDF Query Language)-based query, and returns a search result for a virtual object from user-provided metadata );
In the search request of the store 100 , a search result of a virtual object is provided from user-provided metadata, and a reference of the virtual object stored in a virtual object repository database 300 is provided. Returning semantic database (Semantic database; 200);
A plurality of Internet of Things (IoT) domains 400 that share a virtual object with the store 100 in a standard set by the store 100 and enable code reuse of the shared virtual object;
Internet of Things test bed client 500 that communicates with the store 100 through RESTful web services, discovers a virtual object in the store 100, and shares the virtual object with an external terminal; includes; doing,
Internet of Things store system for sharing and selling virtual objects.
청구항 3에 있어서,
상기 스토어(100)는,
상기 사용자 단말을 통해 들어오는 가상 객체의 검색 요청에 대하여, 가상 객체(virtual objects)에 대한 사용자 쿼리(user query)를 취득하는 애플리케이션 계층(110);
상기 애플리케이션 계층(110)에 전달되는 상기 사용자 쿼리, 식별 참조와 데이터를 사용하여 SPARQL 기반 사후 작업을 생성하여 메타 데이터와 참조를 시맨틱 데이터베이스에 게시하는 OWL 처리기 모듈(120)
검색 요청에 대한 구문 분석(parsed)을 수행하고, 가상 객체를 유지하며, 새로 추가된 가상 객체의 고유 식별 정보를 반환하는 MySQL 어댑터 모듈(130);
MySQL 어댑터 모듈(130)에서 전달받은, 정보를 바탕으로 가상 객체 검색 또는 공유에 대한 요청을 처리하는 레스트 클라이언트 모듈(140);을 포함하는,
가상 객체 공유 및 판매를 위한 사물인터넷 스토어 시스템.
4. The method according to claim 3,
The store 100,
an application layer 110 for obtaining a user query for virtual objects in response to a virtual object search request coming through the user terminal;
An OWL handler module 120 that creates a SPARQL-based post-job using the user query, identifying reference and data passed to the application layer 110 to publish metadata and references to a semantic database.
a MySQL adapter module 130 that parses a search request, maintains a virtual object, and returns unique identification information of a newly added virtual object;
Rest client module 140 for processing a request for virtual object search or sharing based on the information, received from the MySQL adapter module 130; including;
Internet of Things store system for sharing and selling virtual objects.
청구항4에 있어서,
상기 다수의 사물인터넷 도메인(400)은 상기 스토어(100)에서 제공하는 가상객체를 공유하되,
제공되는 가상의 객체를 임시로 저장하는 가상객체 버퍼모듈(410);
상기 가상객체 버퍼모듈(410)에서 전달되는 가상 객체에서 메타 데이터 정보를 추출하고, RestClient 모듈(140)을 사용하여 가상 객체 공유에 대한 요청을 처리하는 메타 설명자 모듈(meta descriptor module ;420);을 더 포함하는,
가상 객체 공유 및 판매를 위한 사물인터넷 스토어 시스템.
The method according to claim 4,
The plurality of IoT domains 400 share a virtual object provided by the store 100,
a virtual object buffer module 410 for temporarily storing the provided virtual object;
A meta descriptor module 420 that extracts metadata information from the virtual object transmitted from the virtual object buffer module 410 and processes a request for virtual object sharing using the RestClient module 140; more containing,
Internet of Things store system for sharing and selling virtual objects.
청구항 5에 있어서,
상기 테스트베드 클라이언트(500)는,
최종사용자가 사용할 수 있도록 플랫폼에서 제공하는 서비스를 처리하는 서비스 계층(510);
가상 객체에 해당하는 기능을 태스크로 생성하고, 이들 태스크와 가상 객체를 맵핑하여 가상객체에 기능을 포함한 마이크로 서비스를 형성하고 제공하는 마이크로 서비스 계층(520);
상기 스토어(100)에 저장된 사용자에 의해 지정된 가상객체와 마이크로 서비스를 게이트웨이에 등록하여 해당 물리적 디바이스에 배포를 지원하는 게이트웨이 계층(530);
물리적 대응 디바이스에 상기 가상 객체의 마이크로 서비스를 배포하고 처리하는 물리적 계층(540);을 포함하는,
가상 객체 공유 및 판매를 위한 사물인터넷 스토어 시스템.
6. The method of claim 5,
The test bed client 500,
a service layer 510 that processes services provided by the platform so that end users can use it;
a microservice layer 520 that creates a function corresponding to a virtual object as a task, maps these tasks and the virtual object, and forms and provides a microservice including a function in the virtual object;
a gateway layer 530 for registering virtual objects and microservices designated by a user stored in the store 100 to a gateway and supporting distribution to a corresponding physical device;
A physical layer (540) for distributing and processing microservices of the virtual object to a physical counterpart device;
Internet of Things store system for sharing and selling virtual objects.
청구항 6에 있어서,
상기 가상 객체의 기능을 포함하는 마이크로 서비스 계층(520)은,
상기 스토어(100)에 의해 노출되는 API와 통신하며, 상기 스토어(100)의 요구사항에 따라 가상객체를 찾고 검색하는 가상 객체 검색 계층(531);과
상기 스토어(100)에 의해 노출되는 API와 통신하며, 오픈 소스 메이커 커뮤니티를 사용하기 위해 사용자 지정된 가상 객체를 상기 스토어(100)에 저장하는 공유계층;을 포함하여 구성되는,
가상 객체 공유 및 판매를 위한 사물인터넷 스토어 시스템.
7. The method of claim 6,
The microservice layer 520 including the function of the virtual object,
a virtual object search layer 531 that communicates with the API exposed by the store 100 and searches for and searches virtual objects according to the requirements of the store 100; and
A sharing layer that communicates with the API exposed by the store 100 and stores a virtual object customized for use in the open source maker community in the store 100;
Internet of Things store system for sharing and selling virtual objects.
KR1020200003920A 2020-01-10 2020-01-10 Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery KR102323188B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200003920A KR102323188B1 (en) 2020-01-10 2020-01-10 Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery
PCT/KR2021/000283 WO2021141458A1 (en) 2020-01-10 2021-01-08 Method and system for providing internet of things store for sharing and selling virtual objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200003920A KR102323188B1 (en) 2020-01-10 2020-01-10 Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery

Publications (2)

Publication Number Publication Date
KR20210090517A true KR20210090517A (en) 2021-07-20
KR102323188B1 KR102323188B1 (en) 2021-11-08

Family

ID=76788236

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003920A KR102323188B1 (en) 2020-01-10 2020-01-10 Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery

Country Status (2)

Country Link
KR (1) KR102323188B1 (en)
WO (1) WO2021141458A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101280058B1 (en) * 2011-12-08 2013-06-28 숭실대학교산학협력단 Query Processing Apparatus and Method to use relational database as OWL ontology on semantic web
KR20140008667A (en) * 2012-07-11 2014-01-22 전자부품연구원 Method for providing internet of things service
KR20140090503A (en) 2013-01-09 2014-07-17 (주)누스코 App store system of automatically certifying and performing of app preview
KR20160139249A (en) * 2015-05-27 2016-12-07 배종옥 IoT, Internet of Things Big Data Multi Processing and Trade Method
KR101769895B1 (en) * 2015-06-19 2017-08-21 에스케이텔레콤 주식회사 User terminal device, Internet of Things control method, computer program and storage medium therefor
JP6364557B1 (en) * 2016-11-09 2018-07-25 アライドテレシスホールディングス株式会社 IoT data brokerage system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101280058B1 (en) * 2011-12-08 2013-06-28 숭실대학교산학협력단 Query Processing Apparatus and Method to use relational database as OWL ontology on semantic web
KR20140008667A (en) * 2012-07-11 2014-01-22 전자부품연구원 Method for providing internet of things service
KR20140090503A (en) 2013-01-09 2014-07-17 (주)누스코 App store system of automatically certifying and performing of app preview
KR20160139249A (en) * 2015-05-27 2016-12-07 배종옥 IoT, Internet of Things Big Data Multi Processing and Trade Method
KR101769895B1 (en) * 2015-06-19 2017-08-21 에스케이텔레콤 주식회사 User terminal device, Internet of Things control method, computer program and storage medium therefor
JP6364557B1 (en) * 2016-11-09 2018-07-25 アライドテレシスホールディングス株式会社 IoT data brokerage system

Also Published As

Publication number Publication date
KR102323188B1 (en) 2021-11-08
WO2021141458A1 (en) 2021-07-15

Similar Documents

Publication Publication Date Title
US11093556B2 (en) Restful operations for semantic IoT
CN100527684C (en) Method and system for unified support of multiple system management information models in a multiple host environment
US8316005B2 (en) Network-accessible database of remote services
EP2294777B1 (en) Remote selection and authorization of collected media transmission
US20080195483A1 (en) Widget management systems and advertising systems related thereto
US20100299717A1 (en) System for Annotation-Based Access Control
Blackstock et al. Toward interoperability in a web of things
KR102437000B1 (en) Enabling Semantic Inference Service in M2M/IoT Service Layer
Javed et al. BIoTope: building an IoT open innovation ecosystem for smart cities
Soldatos et al. Design principles for utility-driven services and cloud-based computing modelling for the Internet of Things
US11882154B2 (en) Template representation of security resources
CA2615523A1 (en) Managing network-accessible services
KR102323188B1 (en) Decoupled IoT Application Store System for Virtual Objects Sharing and Discovery
US10757216B1 (en) Group profiles for group item recommendations
Stadtmüller Dynamic Interaction and Manipulation of Web Resources
Böhm et al. Share whatever you like
Yuan Cloud Services Provider
Guo et al. Investigating the use of gadgets, widgets, and opensocial to build science gateways
Wróbel TaxiHere–a System Prototype for Taxi Servicing for Android OS
Kleinfeld et al. Position paper: OPENi--future of a consumer-centric cloud-based application platform
Kim MASS-Mobile Agent Systems for Smart Applications with CBD
Stiller et al. Functional Requirements and Analysis of Mechanisms for a
Kleinfeld et al. OPENi-future of a consumer-centric cloud-based application platform
Dobslaw An Adaptive, Searchable and Extendable Context Model, enabling cross-domain Context Storage, Retrieval and Reasoning: Architecture, Design, Implementation and Discussion
Liu et al. First International DisCoTec Workshop on Context-aware Adaptation Mechanisms for Pervasive and Ubiquitous Services (CAMPUS 2008)

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant