KR20190094070A - Spatio-cohesive service discovery and dynamic service handover for distributed iot enviroments - Google Patents

Spatio-cohesive service discovery and dynamic service handover for distributed iot enviroments Download PDF

Info

Publication number
KR20190094070A
KR20190094070A KR1020180078709A KR20180078709A KR20190094070A KR 20190094070 A KR20190094070 A KR 20190094070A KR 1020180078709 A KR1020180078709 A KR 1020180078709A KR 20180078709 A KR20180078709 A KR 20180078709A KR 20190094070 A KR20190094070 A KR 20190094070A
Authority
KR
South Korea
Prior art keywords
service
iot
space
searching
services
Prior art date
Application number
KR1020180078709A
Other languages
Korean (ko)
Other versions
KR102184286B1 (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 US16/186,000 priority Critical patent/US11647090B2/en
Publication of KR20190094070A publication Critical patent/KR20190094070A/en
Application granted granted Critical
Publication of KR102184286B1 publication Critical patent/KR102184286B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Abstract

Disclosed are a spatio-cohesive service search and dynamic service handover method for a distributed IoT environment. The spatio-cohesive service search and handover method includes a step of searching for an IoT resource set for providing a service set, which is a series of functions required for a task given in a distributed IoT environment. The step of searching for the IoT resource set may search for the IoT resource set through a spatio-cohesive manner in consideration of a spatial distance between a user and a service and between a service and a service.

Description

분산 IoT 환경을 위한 공간-응집 서비스 검색 및 동적 서비스 이양{SPATIO-COHESIVE SERVICE DISCOVERY AND DYNAMIC SERVICE HANDOVER FOR DISTRIBUTED IOT ENVIROMENTS}SPATIO-COHESIVE SERVICE DISCOVERY AND DYNAMIC SERVICE HANDOVER FOR DISTRIBUTED IOT ENVIROMENTS}

아래의 설명은 사용자 작업(task)을 수행하는 데 요구되는 적절한 IoT(internet of thing) 서비스를 효율적이고 동적으로 검색하는 기술에 관한 것이다.The description below relates to a technique for efficiently and dynamically searching for the appropriate internet of things (IoT) services required to perform user tasks.

최근 IoT 기술이 널리 확산되어 도시 환경에서 IoT 리소스를 활용하는 다양한 서비스를 제공하고 있다.Recently, IoT technology has been widely spread to provide various services utilizing IoT resources in an urban environment.

IoT 기술의 예시로서, 한국등록특허공보 제10-1397471호(등록일 2014년 05월 14일)에는 개방형 IoT 서비스를 제공하는 기술이 개시되어 있다.As an example of IoT technology, Korean Patent Publication No. 10-1397471 (Registration Date May 14, 2014) discloses a technology for providing an open IoT service.

IoT 서비스를 효과적으로 관리하기 위해 상업용 IoT 기반 시스템이 클라우드 컴퓨팅 모델을 채택하고 있으나, IoT 리소스의 수가 급격히 증가했기 때문에 중앙 집중식 클라우드 컴퓨팅 모델의 확장성에 한계가 있다.Although commercial IoT-based systems adopt cloud computing models to effectively manage IoT services, the scale of centralized cloud computing models is limited due to the rapid increase in the number of IoT resources.

분산 IoT 환경에서 서비스 간 거리를 사용자의 주변에 집중적으로 위치시키는 IoT 리소스를 활용하여 사용자 작업을 수행하는 데 요구되는 적절한 IoT 서비스를 효율적이고 동적으로 검색할 수 있는 방법 및 그 시스템을 제공한다.The present invention provides a method and system for efficiently and dynamically searching for an appropriate IoT service required to perform a user task by utilizing IoT resources that centrally locate a service-to-service distance in a distributed IoT environment.

컴퓨터 시스템에서 수행되는 방법에 있어서, 분산 IoT(internet of thing) 환경에서 주어진 작업(task)에 대해 필요로 하는 일련의 기능인 서비스 세트를 제공하기 위한 IoT 리소스 세트를 검색하는 단계를 포함하고, 상기 IoT 리소스 세트를 검색하는 단계는, 사용자와 서비스 간, 그리고 서비스와 서비스 간의 공간적 거리를 고려한 공간-응집(spatio-cohesive) 방식을 통해 상기 IoT 리소스 세트를 검색하는 것으로, 공간적 거리와 관련된 규칙이 포함된 공간-응집성 요구사항에 기초하여 서비스 검색 계획을 생성하는 단계; 및 상기 서비스 검색 계획을 기반으로 하여 상기 작업을 위해 필요로 하는 서비스를 검색하되 상기 작업의 공간-응집성 요구 사항을 충족시키는 서비스를 검색한 다음 검색된 서비스와 공간-응집을 유지하는 다른 서비스를 검색하는 단계를 포함하는 방법을 제공한다.A method performed in a computer system, the method comprising: retrieving a set of IoT resources for providing a set of services that is a set of functions required for a given task in a distributed internet of thing environment, the IoT The step of retrieving the resource set may include retrieving the IoT resource set in a spatio-cohesive manner in consideration of the spatial distance between the user and the service and between the service and the service. Generating a service search plan based on the space-coherency requirement; And searching for a service required for the task based on the service search plan, searching for a service that satisfies the space-aggregation requirement of the task, and then searching for the service and other services maintaining space-aggregation. It provides a method comprising the steps.

일 측면에 따르면, 상기 서비스 검색 계획을 생성하는 단계는, 사전에 정의된 작업 템플릿으로부터 상기 작업에 대해 특정된 공간-응집성 요구 사항을 추출하는 단계를 포함할 수 있다.According to one aspect, generating the service search plan may include extracting a space-aggregation requirement specific to the task from a predefined task template.

다른 측면에 따르면, 상기 공간-응집성 요구사항은 온톨로지(ontology) 모델을 기반으로 표현되며 규칙 기반 추론 방법을 사용하여 추출될 수 있다.According to another aspect, the space-cohesiveness requirement is expressed based on an ontology model and can be extracted using a rule-based reasoning method.

또 다른 측면에 따르면, 상기 서비스 검색 계획을 생성하는 단계는, 상기 공간-응집성 요구사항을 서비스의 공간적인 위치와 관계를 추상화한 그래프로 표현한 후 순회(traversal)를 가이딩하는 검색 전략을 사용하여 상기 서비스 검색 계획을 상기 그래프에 인스턴스화(instantiated)하는 단계를 포함할 수 있다.According to another aspect, the generating of the service search plan may include: using the search strategy of guiding traversal after expressing the space-coherency requirement as a graph abstracting the spatial location and the relationship of the service. And instantiating the service search plan to the graph.

또 다른 측면에 따르면, 상기 검색 전략은 상위(parent) 서비스에서 하위(child) 서비스를 검색하는 경로를 구성하기 위한 스패닝 트리 알고리즘(spanning tree algorithm)과 서비스의 중요도에 따라 각 서비스에 우선 순위를 할당하기 위한 서비스 우선 순위 함수로 구성될 수 있다.According to another aspect, the search strategy is a spanning tree algorithm for configuring a path for searching for a child service from a parent service and assigns priority to each service according to the importance of the service. It can be configured as a service priority function to.

또 다른 측면에 따르면, 상기 IoT 리소스 세트를 검색하는 단계는, 상기 그래프에 인스턴스화된 상기 서비스 검색 계획에 따라 서비스 검색 요청을 상위 서비스에서 하위 서비스로 전파함으로써 상기 작업과 관련된 서비스를 실현하는데 필요한 IoT 리소스를 검색하는 단계를 포함할 수 있다.According to another aspect, the step of retrieving the set of IoT resources, IoT resources required to realize a service related to the task by propagating a service search request from a higher service to a lower service according to the service search plan instantiated in the graph It may include the step of searching.

또 다른 측면에 따르면, 상기 IoT 리소스를 검색하는 단계는, 상기 상위 서비스에 대해 상기 하위 서비스의 제공이 가능한 후보 IoT 리소스를 검색한 후 상기 후보 IoT 리소스 중 공간 거리가 가장 가까운 IoT 리소스를 선택하는 단계를 포함할 수 있다.According to another aspect, the searching for the IoT resource may include: searching for a candidate IoT resource capable of providing the lower service with respect to the upper service and selecting an IoT resource having the closest spatial distance among the candidate IoT resources It may include.

또 다른 측면에 따르면, 상기 IoT 리소스 세트를 검색하는 단계는, 상기 검색된 서비스의 공간-응집성 상태를 모니터링하여 상기 검색된 서비스 중 적어도 일부 서비스를 이양하는(handover) 단계를 포함할 수 있다.According to another aspect, retrieving the set of IoT resources may include handing over at least some of the retrieved services by monitoring the space-aggregation status of the retrieved services.

또 다른 측면에 따르면, 상기 이양하는 단계는, 상기 작업에 대해 선택된 IoT 리소스가 상기 공간-응집성 요구사항을 충족하는지 여부를 주기적으로 확인하여 일정 주기 동안 이양될 IoT 리소스의 수를 최소화하는 목적 함수에 따라 상기 공간-응집성 요구사항을 충족하지 못하는 IoT 리소스를 다른 IoT 리소스로 전환할 수 있다.According to another aspect, the transitioning step includes a target function that periodically checks whether an IoT resource selected for the task meets the space-coherency requirement to minimize the number of IoT resources to be handed over for a period of time. Accordingly, an IoT resource that does not meet the space-aggregation requirement may be converted to another IoT resource.

또 다른 측면에 따르면, 상기 IoT 리소스 세트를 검색하는 단계는, IoT 환경의 동적 변화에 의해 사용 가능한 서비스에 대해 기계 학습을 통해 학습된 정책에 기초하여 상기 작업을 위해 필요로 하는 서비스를 선택하는 단계를 포함할 수 있다.According to another aspect, the step of retrieving the set of IoT resources, the step of selecting a service required for the task based on a policy learned through machine learning for the service available by the dynamic change of the IoT environment It may include.

또 다른 측면에 따르면, 상기 정책은 사용자와 서비스 간의 공간 거리가 얼마나 가까운지 측정하는 척도로 정의된 공간-응집도를 최대화하면서 새로 선택된 서비스 집합과 기존에 사용하던 서비스 집합의 차이로 정의된 핸드오버 횟수를 최소화하는 방향으로 학습될 수 있다.According to another aspect, the policy maximizes the space-aggregation defined as a measure of how close the space distance between the user and the service is, while the handover count defined by the difference between the newly selected service set and the existing service set is used. Can be learned in the direction of minimization.

또 다른 측면에 따르면, 상기 정책은 사용자의 좌표와 속도를 나타내는 상태 벡터, 서비스의 좌표와 속도를 나타내는 상태 벡터, 사용자와 서비스 간의 상대적 위치와 속도를 나타내는 관계 벡터를 입력으로 하는 신경망으로 구현될 수 있다.According to another aspect, the policy may be implemented as a neural network with a state vector representing coordinates and speeds of a user, a state vector representing coordinates and speeds of a service, and a relationship vector representing relative positions and speeds between a user and a service. have.

컴퓨터 시스템에서 수행되는 방법에 있어서, 분산 IoT 환경에서 주어진 작업에 대해 필요로 하는 일련의 기능인 서비스 세트를 제공하기 위한 IoT 리소스 세트를 검색하는 단계를 포함하고, 상기 IoT 리소스 세트를 검색하는 단계는, 사용자와 서비스 간, 그리고 서비스와 서비스 간의 공간적 거리와 관련된 공간-응집성 요구사항을 추출하는 단계; 상기 공간-응집성 요구사항을 서비스의 공간적인 위치와 관계를 추상화한 그래프로 표현한 후 순회를 가이딩하는 검색 전략을 사용하여 상기 그래프에 인스턴스화함으로써 서비스 검색 계획을 생성하는 단계; 및 상기 서비스 검색 계획에 따라 서비스 검색 요청을 상위 서비스에서 하위 서비스로 전파함으로써 상기 작업과 관련된 서비스를 실현하는데 필요한 IoT 리소스를 검색하는 단계를 포함하는 방법을 제공한다.A method performed in a computer system, the method comprising: retrieving a set of IoT resources for providing a set of services, which is a set of functions required for a given task in a distributed IoT environment, wherein retrieving the set of IoT resources, Extracting space-aggregation requirements related to spatial distances between users and services and between services and services; Generating a service search plan by expressing the space-coherency requirement as a graph abstracting the spatial location and relationship of a service and then instantiating it in the graph using a search strategy guiding traversal; And searching for an IoT resource necessary to realize a service related to the task by propagating a service search request from a higher service to a lower service according to the service search plan.

컴퓨터 시스템에 있어서, 컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 분산 IoT 환경에서 주어진 작업에 대해 필요로 하는 일련의 기능인 서비스 세트를 제공하기 위한 IoT 리소스 세트를 검색하는 과정을 처리하고, 상기 IoT 리소스 세트를 검색하는 과정은, 사용자와 서비스 간, 그리고 서비스와 서비스 간의 공간적 거리를 고려한 공간-응집 방식을 통해 상기 IoT 리소스 세트를 검색하는 것으로, 공간적 거리와 관련된 규칙이 포함된 공간-응집성 요구사항에 기초하여 서비스 검색 계획을 생성하는 과정; 및 상기 서비스 검색 계획을 기반으로 하여 상기 작업을 위해 필요로 하는 서비스를 검색하되 상기 작업의 공간-응집성 요구 사항을 충족시키는 서비스를 검색한 다음 검색된 서비스와 공간-응집을 유지하는 다른 서비스를 검색하는 과정을 포함하는 컴퓨터 시스템을 제공한다.A computer system, comprising: at least one processor configured to execute a computer readable instruction, the at least one processor for providing a set of services that is a set of functions required for a given task in a distributed IoT environment. The process of searching for an IoT resource set and the process of searching for an IoT resource set include searching the IoT resource set through a space-aggregation method considering a spatial distance between a user and a service and a service and a service. Generating a service discovery plan based on space-cohesion requirements including rules relating to spatial distances; And searching for a service required for the task based on the service search plan, searching for a service that satisfies the space-aggregation requirement of the task, and then searching for the service and other services maintaining space-aggregation. Provides a computer system comprising the process.

본 발명의 실시예들에 따르면, 분산 IoT 환경에서 사용자가 필요로 하는 서비스를 제공받기 위해 IoT 디바이스와 맞물려서 사용 가능한 서비스를 검색할 수 있고, 사용자가 이동 중에도 사용자에게 서비스를 물리적으로 제공할 수 있는 범위 안에 있는 IoT 디바이스로 사용 중인 서비스를 이양할 수 있다.According to embodiments of the present invention, in order to receive a service required by a user in a distributed IoT environment, it is possible to search for a service available by being engaged with an IoT device, and the user may physically provide a service to the user while on the go. You can transfer services in use to IoT devices within range.

도 1은 MANET(mobile ad-hoc network)를 이용한 분산 IoT 환경의 예시를 도시한 것이다.
도 2는 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 컴퓨터 시스템이 수행할 수 있는 공간-응집 서비스 검색 및 이양 방법의 예를 도시한 순서도이다.
도 4는 본 발명의 일 실시예에 있어서 공식 표기법을 정리한 테이블을 도시한 것이다.
도 5는 본 발명의 일 실시예에 있어서 공간-응집성 요구 사항을 나타내는 온톨로지(ontology) 모델의 예를 도시한 것이다.
도 6은 본 발명의 일 실시예에 있어서 SWRL(Semantic Web Rule Language)에서 표현된 규칙의 예를 도시한 것이다.
도 7은 본 발명의 일 실시예에 있어서 서비스 검색 계획을 생성하는 과정의 예를 도시한 것이다.
도 8은 본 발명의 일 실시예에 있어서 공간-응집 서비스 검색 과정을 나타낸 알고리즘을 도시한 것이다.
도 9는 본 발명의 일 실시예에 있어서 후보 IoT 리소스 검색 과정을 나타낸 알고리즘을 도시한 것이다.
도 10은 본 발명의 일 실시예에 있어서 동적 서비스 이양 과정을 나타낸 알고리즘을 도시한 것이다.
도 11은 본 발명의 다른 실시예에 있어서 기계 학습 기반 서비스 검색 에이전트를 도시한 것이다.
1 illustrates an example of a distributed IoT environment using a mobile ad-hoc network (MANET).
2 is a block diagram for explaining an example of an internal configuration of a computer system according to an embodiment of the present invention.
3 is a flowchart illustrating an example of a space-aggregation service search and transfer method that may be performed by a computer system according to an embodiment of the present invention.
4 illustrates a table summarizing official notation according to an embodiment of the present invention.
FIG. 5 shows an example of an ontology model representing space-cohesiveness requirements in one embodiment of the invention.
FIG. 6 illustrates an example of a rule expressed in Semantic Web Rule Language (SWRL) according to an embodiment of the present invention.
7 illustrates an example of a process of generating a service search plan according to an embodiment of the present invention.
8 illustrates an algorithm illustrating a space-aggregation service search process according to an embodiment of the present invention.
9 illustrates an algorithm illustrating a candidate IoT resource search process according to an embodiment of the present invention.
10 illustrates an algorithm illustrating a dynamic service transition process according to an embodiment of the present invention.
11 illustrates a machine learning based service search agent according to another embodiment of the present invention.

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

최근에는 IoT 리소스의 수가 급격히 증가함에 따라 MANET(mobile ad-hoc network) 기반의 분산 컴퓨팅 모델을 적용하고 있다.Recently, as the number of IoT resources increases rapidly, a distributed computing model based on mobile ad-hoc network (MANET) has been applied.

도 1은 MANET를 이용한 분산 IoT 환경의 예시를 도시한 것이다.1 illustrates an example of a distributed IoT environment using MANET.

도 1을 참조하면, 분산 IoT 환경에서 IoT 리소스는 MANET를 통해 직접 액세스 할 수 있다. MANET는 인프라를 배치할 필요 없이 IoT 리소스가 서로 상호 작용할 수 있게 하여 사용자에게 보다 효율적이고 유연한 방식으로 서비스를 제공한다. 또한, IoT에 웹 서비스 및 클라우드 서비스와 같은 다른 유형의 서비스를 함께 통합하여 사용자 작업(task)을 수행함으로써 복합 서비스를 구현할 수 있다.Referring to FIG. 1, in a distributed IoT environment, IoT resources may be directly accessed through a MANET. MANET enables IoT resources to interact with each other without the need to deploy infrastructure, providing users with services in a more efficient and flexible manner. In addition, complex services can be implemented by integrating other types of services, such as web services and cloud services, into the IoT to perform user tasks.

사용자 중심의 IoT 서비스 제공을 위해 작업 기반 서비스 제공 프레임 워크가 개발되고 있다. 이러한 프레임 워크에서 작업은 사용자의 요구에 대한 설명이며 필요한 기능들을 제공하는 데 요구되는 서비스를 수반한다. 서비스는 사용자 작업에 대한 활동을 지원하는 데 필요한 일련의 기능으로 정의한다. 서비스는 리소스 세트를 필요로 하는 서비스 인스턴스(service instance)를 통해 실현되는데, 리소스 세트는 특정 프리미티브(primitive) 기능을 제공하는 IoT 디바이스에 해당한다.Task-based service provision framework is being developed to provide user-centered IoT service. In this framework, work is a description of the user's needs and involves the services required to provide the necessary functions. A service is defined as a set of functions required to support activities for user operations. Services are realized through service instances that require a set of resources, which correspond to IoT devices that provide specific primitive functionality.

본 발명에서는 IoT 리소스가 인프라 없이 MANET을 구성하기에 충분한 연산 능력과 네트워킹 성능을 가지고 있다고 가정하며, IoT 리소스가 제한된 연산 또는 네트워킹 능력에 의해 제약을 받는 경우 리소스를 MANET에 참여시키기 위해 서비스 게이트웨이가 사용되는 것 또한 가능하다.In the present invention, it is assumed that an IoT resource has sufficient computing power and networking capability to configure a MANET without an infrastructure, and is used by a service gateway to join a resource to the MANET when the IoT resource is restricted by limited computing or networking ability. It is also possible.

이러한 분산 IoT 환경은 적절한 IoT 리소스를 효율적이고 동적으로 검색하는 새로운 문제를 제기한다. 즉, 새로운 문제는 사용자 근처에서 사용자 작업을 수행하는 데 필요한 IoT 서비스를 제공하는 것이다. 이 문제를 해결하기 위해, 서비스 지향 아키텍처 및 웹 서비스 도메인에서 여러 연구가 수행되고 있다. 특히, 분산 서비스의 이동성, 위치 의존성 및 합성 가능성은 실용적인 IoT 환경에서 효과적인 서비스 제공을 가능하게 하기 위한 중요한 이슈로 고려되어 있다. 첫째, 사용자 및 IoT 리소스의 이동성으로 인해 IoT 서비스의 가용성이 자주 변경된다. 따라서, 검색 알고리즘은 사용자 작업을 수행하는 데 필수적인 유효한 IoT 서비스를 동적으로 검색 할 필요가 있다. 둘째, 기존 웹 서비스와 달리, 사용자 및 IoT 리소스의 공간적 위치는 IoT 서비스를 사용자에게 제공하는 효과에 영향을 준다. IoT 서비스의 출력을 효과적이고 효율적인 방식으로 사용자에게 이양하기 위해 해당 IoT 리소스는 사용자 가까이에 위치해야 한다. 셋째, IoT 환경의 다양한 서비스들은 복잡한 사용자 작업을 수행하기 위해 서로 조정되어야 하므로 협업 IoT 리소스는 사용자가 존재하는 공간에 일관되게 위치해야 한다.This distributed IoT environment presents a new challenge of efficiently and dynamically discovering the right IoT resources. In other words, the new problem is to provide the IoT services needed to perform user tasks near the user. To address this issue, a number of studies are being conducted in service-oriented architectures and Web services domains. In particular, mobility, location dependence, and combinatorial possibilities of distributed services are considered as important issues for enabling effective service provision in a practical IoT environment. First, the availability of IoT services changes frequently due to the mobility of users and IoT resources. Thus, the search algorithm needs to dynamically search for valid IoT services that are essential for performing user tasks. Second, unlike traditional web services, the spatial location of users and IoT resources affects the effect of providing IoT services to users. In order to hand over the output of the IoT service to the user in an effective and efficient manner, the IoT resource must be located near the user. Third, since various services in the IoT environment must be coordinated with each other to perform complex user tasks, collaborative IoT resources should be consistently located in the space where users exist.

본 발명에서는 서비스 간 거리를 사용자의 주변에 집중적으로 위치시키는 IoT 리소스를 활용하여 서비스 조정의 결과가 사용자에게 효과적으로 이양될 수 있도록 하는 서비스로서 공간-응집 서비스(spatio-cohesive service)를 정의한다. IoT 서비스의 공간-응집성(spatio-cohesivenss)은 사용자 작업의 QoE(quality of experience)를 최대화하는 데 중요한 요소이다. IoT 서비스의 공간-응집성 저하가 감지되면 사용자 작업에 필요한 일정 수준의 공간-응집성을 보장할 수 있도록 일부 서비스를 MANET에서 대체해야 한다.In the present invention, a spatio-cohesive service is defined as a service that enables the result of service coordination to be effectively transferred to a user by utilizing an IoT resource that intensively locates a distance between services around a user. Spatio-cohesivenss of IoT services are an important factor in maximizing the quality of experience (QoE) of user work. If a drop in space-aggregation of an IoT service is detected, some services must be replaced in MANET to ensure some level of space-aggregation required for user operations.

따라서, 본 발명에서는 높은 QoE를 갖는 사용자 작업을 수행하기 위해 IoT 서비스의 공간-응집성이 필수적인 ad-hoc IoT 환경에 대한 공간-응집 서비스 검색 및 이양 방법을 제안한다.Accordingly, the present invention proposes a space-aggregated service search and transfer method for an ad-hoc IoT environment in which space-aggregation of IoT services is essential for performing user tasks with high QoE.

본 발명에 따른 공간-응집 서비스 검색 및 이양 방법은 두 단계로 구성된다. 첫 번째 단계에서는 사용자 작업을 수행하기 위해 함께 조정될 수 있는 서비스를 검색하기 위한 체계적인 계획인 서비스 검색 계획이 생성된다. 이 단계에서는 스패닝 트리 알고리즘(spanning tree algorithm) 및 서비스 우선 순위 기능과 같은 다양한 서비스 검색 전략이 가장 효과적인 검색 계획을 생성하는 것으로 간주된다.The space-aggregation service search and transfer method according to the present invention consists of two steps. In the first phase, a service discovery plan is created, which is a systematic plan for searching for services that can be coordinated together to perform user tasks. At this stage, various service search strategies, such as the spanning tree algorithm and service priority functions, are considered to produce the most effective search plan.

두 번째 단계에서는 첫 번째 단계에서 생성된 서비스 검색 계획을 사용하여 공간-응집 서비스가 검색 및 이양된다. 공간-응집 서비스 검색 알고리즘은 먼저 사용자를 위한 작업의 공간-응집성 요구 사항을 충족시키는 핵심 서비스 세트를 발견한 다음, 이미 발견된 서비스와 공간-응집을 유지하면서 점진적으로 다른 서비스를 검색한다. 또한, 동적 서비스 이양 알고리즘은 서비스의 공간-응집성 상태를 모니터링하고 서비스 중 일부가 요구 사항 경계를 초과할 때 이양을 수행한다.In the second phase, the space-aggregated service is retrieved and handed over using the service discovery plan created in the first phase. The space-aggregated service retrieval algorithm first finds a set of core services that meet the space-aggregation requirements of the task for the user, and then gradually searches for other services while maintaining space-aggregation with the services already found. In addition, the dynamic service handover algorithm monitors the space-aggregation status of the service and performs handover when some of the services cross the requirements boundary.

이하에서 분산 IoT 환경에서의 공간-응집 서비스 검색 및 이양을 위한 구체적인 실시예를 설명하기로 한다.Hereinafter, specific embodiments for searching for and handing over space-aggregated services in a distributed IoT environment will be described.

도 2는 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.2 is a block diagram for explaining an example of an internal configuration of a computer system according to an embodiment of the present invention.

본 발명의 실시예들에 따른 IoT 서비스 시스템이 도 2의 컴퓨터 시스템(200)을 통해 구현될 수 있다. 도 2에 도시한 바와 같이, 컴퓨터 시스템(200)은 공간-응집 서비스 검색 및 이양 방법을 실행하기 위한 구성요소로서 프로세서(210), 메모리(220), 영구 저장 장치(230), 버스(240), 입출력 인터페이스(250) 및 네트워크 인터페이스(260)를 포함할 수 있다.An IoT service system according to embodiments of the present invention may be implemented through the computer system 200 of FIG. 2. As shown in FIG. 2, computer system 200 is a processor 210, memory 220, persistent storage 230, bus 240 as components for executing a space-aggregated service discovery and transfer method. It may include an input / output interface 250 and a network interface 260.

프로세서(210)는 명령어들의 시퀀스를 처리할 수 있는 임의의 장치를 포함하거나 그의 일부일 수 있다. 프로세서(210)는 예를 들어 컴퓨터 프로세서, 이동 장치 또는 다른 전자 장치 내의 프로세서 및/또는 디지털 프로세서를 포함할 수 있다. 프로세서(210)는 예를 들어, 서버 컴퓨팅 디바이스, 서버 컴퓨터, 일련의 서버 컴퓨터들, 서버 팜, 클라우드 컴퓨터, 컨텐츠 플랫폼, 이동 컴퓨팅 장치, 스마트폰, 태블릿, 셋톱 박스 등에 포함될 수 있다. 프로세서(210)는 버스(240)를 통해 메모리(220)에 접속될 수 있다.The processor 210 may comprise or be part of any device capable of processing a sequence of instructions. Processor 210 may include, for example, a processor within a computer processor, mobile device or other electronic device and / or a digital processor. The processor 210 may be included, for example, in a server computing device, server computer, series of server computers, server farms, cloud computers, content platforms, mobile computing devices, smartphones, tablets, set top boxes, and the like. The processor 210 may be connected to the memory 220 through the bus 240.

메모리(220)는 컴퓨터 시스템(200)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 휘발성 메모리, 영구, 가상 또는 기타 메모리를 포함할 수 있다. 예를 들어, 메모리(220)는 랜덤 액세스 메모리(RAM: random access memory) 및/또는 동적 RAM(DRAM: dynamic RAM)을 포함할 수 있다. 메모리(220)는 컴퓨터 시스템(200)의 상태 정보와 같은 임의의 정보를 저장하는 데 사용될 수 있다. 메모리(220)는 예를 들어 IoT 서비스를 제어하기 위한 명령어들을 포함하는 컴퓨터 시스템(200)의 명령어들을 저장하는 데에도 사용될 수 있다. 컴퓨터 시스템(200)은 필요에 따라 또는 적절한 경우에 하나 이상의 프로세서(210)를 포함할 수 있다.Memory 220 may include volatile memory, permanent, virtual, or other memory for storing information used by or output by computer system 200. For example, the memory 220 may include random access memory (RAM) and / or dynamic RAM (DRAM). Memory 220 may be used to store any information, such as status information of computer system 200. Memory 220 may also be used to store instructions of computer system 200, including, for example, instructions for controlling an IoT service. Computer system 200 may include one or more processors 210 as needed or where appropriate.

버스(240)는 컴퓨터 시스템(200)의 다양한 컴포넌트들 사이의 상호작용을 가능하게 하는 통신 기반 구조를 포함할 수 있다. 버스(240)는 컴퓨터 시스템(200)의 컴포넌트들 사이에, 예를 들어 프로세서(210)와 메모리(220) 사이에 데이터를 운반할 수 있다. 버스(240)는 컴퓨터 시스템(200)의 컴포넌트들 간의 무선 및/또는 유선 통신 매체를 포함할 수 있으며, 병렬, 직렬 또는 다른 토폴로지 배열들을 포함할 수 있다.Bus 240 may include a communications infrastructure that enables interaction between various components of computer system 200. Bus 240 may carry data between components of computer system 200, for example, between processor 210 and memory 220. Bus 240 may include wireless and / or wired communication media between components of computer system 200 and may include parallel, serial, or other topology arrangements.

영구 저장 장치(230)는 (예를 들어 메모리(220)에 비해) 소정의 연장된 기간 동안 데이터를 저장하기 위해 컴퓨터 시스템(200)에 의해 사용되는 바와 같은 메모리 또는 다른 영구 저장 장치와 같은 컴포넌트들을 포함할 수 있다. 영구 저장 장치(230)는 컴퓨터 시스템(200) 내의 프로세서(210)에 의해 사용되는 바와 같은 비휘발성 메인 메모리를 포함할 수 있다. 예를 들어, 영구 저장 장치(230)는 플래시 메모리, 하드 디스크, 광 디스크 또는 다른 컴퓨터 판독 가능 매체를 포함할 수 있다.Persistent storage 230 may store components such as memory or other persistent storage as used by computer system 200 to store data for some extended period of time (eg, relative to memory 220). It may include. Persistent storage 230 may include a nonvolatile main memory as used by processor 210 in computer system 200. For example, persistent storage 230 may include flash memory, hard disk, optical disk, or other computer readable media.

입출력 인터페이스(250)는 키보드, 마우스, 마이크, 카메라, 디스플레이 또는 다른 입력 또는 출력 장치에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 IoT 서비스와 관련된 입력이 입출력 인터페이스(250)를 통해 수신될 수 있다.The input / output interface 250 may include interfaces for a keyboard, mouse, microphone, camera, display, or other input or output device. Configuration commands and / or inputs related to the IoT service may be received via the input / output interface 250.

네트워크 인터페이스(260)는 근거리 네트워크 또는 인터넷과 같은 네트워크들에 대한 하나 이상의 인터페이스를 포함할 수 있다. 네트워크 인터페이스(260)는 유선 또는 무선 접속들에 대한 인터페이스들을 포함할 수 있다. 구성 명령들은 네트워크 인터페이스(260)를 통해 수신될 수 있다. 그리고, IoT 서비스와 관련된 정보들은 네트워크 인터페이스(260)를 통해 수신 또는 송신될 수 있다.Network interface 260 may include one or more interfaces to networks such as a local area network or the Internet. Network interface 260 may include interfaces for wired or wireless connections. Configuration commands may be received via network interface 260. In addition, information related to the IoT service may be received or transmitted through the network interface 260.

또한, 다른 실시예들에서 컴퓨터 시스템(200)은 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 시스템(200)은 상술한 입출력 인터페이스(250)와 연결되는 입출력 장치들 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 컴퓨터 시스템(200)이 스마트폰과 같은 모바일 기기의 형태로 구현되는 경우, 일반적으로 모바일 기기가 포함하고 있는 카메라, 가속도 센서나 자이로 센서, 카메라, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 컴퓨터 시스템(200)에 더 포함되도록 구현될 수 있다.In addition, in other embodiments, computer system 200 may include more components than the components of FIG. 2. However, it is not necessary to clearly show most of the prior art components. For example, the computer system 200 may be implemented to include at least some of the input / output devices connected to the input / output interface 250 described above, or may include a transceiver, a global positioning system (GPS) module, a camera, various sensors, It may further include other components such as a database. As a more specific example, when the computer system 200 is implemented in the form of a mobile device such as a smartphone, a camera, an acceleration sensor or a gyro sensor, a camera, various physical buttons, and a touch panel which are generally included in the mobile device are used. Various components such as a button, an input / output port, a vibrator for vibration, and the like may be implemented to be further included in the computer system 200.

서비스 컴퓨팅 환경에서 서비스 검색은 능동적인(proactive) 서비스 검색 및 수동적인(reactive) 서비스 검색으로 분류될 수 있다. 수동적인 서비스 검색 알고리즘은 사용자 요청에 따라 서비스를 검색하는 것으로, 분산 IoT 환경에서는 확장성 때문에 사용자 작업의 요구 사항에 따라 수동적인 방식으로 서비스를 검색해야 한다. 또한 IoT 환경에서의 서비스 검색은 서비스를 제공하는데 요구되는 IoT 리소스를 필요로 하므로 본 발명에서의 서비스 검색은 필요한 IoT 리소스의 검색과 밀접하게 관련되어 있다. 특히, IoT 환경에서의 서비스 검색 프로세스는 필요한 서비스를 제공할 수 있는 후보 리소스 중에서 최상의 IoT 리소스의 선택을 포함한다.Service discovery in a service computing environment may be classified into proactive service discovery and passive service discovery. Passive service discovery algorithms search services according to user requests. In a distributed IoT environment, due to scalability, services must be searched in a passive manner according to the requirements of user tasks. In addition, since the service search in the IoT environment requires the IoT resources required to provide a service, the service search in the present invention is closely related to the search for necessary IoT resources. In particular, the service discovery process in the IoT environment includes the selection of the best IoT resources among candidate resources that can provide the necessary services.

도 3은 본 발명의 일 실시예에 따른 컴퓨터 시스템이 수행할 수 있는 공간-응집 서비스 검색 및 이양 방법의 예를 도시한 순서도이다.3 is a flowchart illustrating an example of a space-aggregation service search and transfer method that may be performed by a computer system according to an embodiment of the present invention.

프로세서(210)는 도 3의 공간-응집 서비스 검색 및 이양 방법이 포함하는 단계들(S310 내지 S320)을 수행할 수 있다. 예를 들어, 프로세서(210)는 메모리(220)가 포함하는 운영체제의 코드와 상술한 적어도 하나의 프로그램 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 적어도 하나의 프로그램 코드는 공간-응집 서비스 검색 및 이양 방법을 처리하기 위해 구현된 프로그램의 코드에 대응될 수 있다.The processor 210 may perform steps S310 to S320 included in the space-aggregation service search and transfer method of FIG. 3. For example, the processor 210 may be implemented to execute instructions according to code of an operating system included in the memory 220 and at least one program code described above. Here, the at least one program code may correspond to a code of a program implemented to process the space-aggregated service search and handover method.

도 3은 공간-응집 서비스 검색 및 동적 서비스 이양 알고리즘의 주요 단계와 전반적인 프로세스를 나타내고 있다. 첫 번째 단계(S310)에서는 공간-응집성 요구 사항이 추출되고(S311) 공간-응집성 요구 사항에 기초하여 서비스 검색 및 이양에 대한 계획이 생성된다(S312~S313). 공간-응집성 요구 사항은 서로 밀접하게 위치해야 하는 두 서비스 사이 또는 사용자와 서비스 사이의 위치에 종속한다. 추출이 끝난 후, 요구 사항이 그래프로 표현되고, 서비스 검색 계획은 그래프에서 순회(traversal)를 가이딩하는 다양한 검색 전략을 사용하여 그래프에 인스턴스화된다(instantiated). 두 번째 단계(S320)에서는 IoT 환경에서 사용자 작업을 위한 IoT 서비스가 상기 단계(S310)에서 생성된 서비스 검색 계획을 기반으로 하여 공간-응집 방식으로 검색된다(S321). 두 번째 단계(S320)에서 동적 서비스 이양 단계(S322)는 주기적으로 활성화되어 서비스의 공간-응집성 요구의 변경 사항을 모니터링하고, 다른 서비스에 공간적으로 응집되지 않은 일부 서비스 인스턴스를 다른 서비스 인스턴스로 동적으로 이양한다.3 shows the main steps and overall process of the space-aggregated service discovery and dynamic service handover algorithm. In the first step (S310), the space-cohesiveness requirements are extracted (S311) and a plan for service discovery and transfer is generated based on the space-cohesiveness requirements (S312 ~ S313). Space-coherency requirements depend on the location between two services, or between a user and a service, which must be located closely together. After the extraction is complete, the requirements are represented in the graph, and the service search plan is instantiated in the graph using various search strategies that guide traversal in the graph. In a second step (S320), the IoT service for the user's work in the IoT environment is searched in a space-aggregated manner based on the service search plan generated in the step (S310) (S321). In the second step (S320), the dynamic service transition step (S322) is periodically activated to monitor changes in the space-coherence requirement of the service, and dynamically transfers some service instances that are not spatially aggregated to other services to other service instances. Hand over.

공간-응집 서비스 검색 및 동적 서비스 이양 문제는 공식적으로 다음과 같이 정의된다.The space-aggregated service discovery and dynamic service transition problem is formally defined as

공간-응집 서비스 검색 및 동적 서비스 이양 문제는 주어진 작업 T에 대해 필요로 하는 서비스 세트 ST를 제공하는데 필요한 IoT 리소스 세트 D를 찾는 것이다. 각 서비스 s∈ST는 필요한 기능 및 제약 조건에 대한 정보가 포함된 서비스 설명 desS을 소유한다. 시간 인스턴스 τi의 시퀀스인 시계열 TS는 MANET의 토폴로지 변화를 나타낸다. 시간 인스턴스 τ0는 작업이 실행을 시작하는 시간을 나타낸다. 시간 τ에서의 MANET은 그래프 N(τ)=(D∪{u},E(τ))로 표현된다. 그래프의 꼭지점(정점)은 서비스 기능을 제공하는 IoT 리소스 세트 D 및 서비스를 소비하는 사용자 u를 포함한다. 각 정점 v는 시간 τ에서 노드의 물리적 좌표를 반환하는 함수 v.coord(τ)를 가진다. IoT 리소스 d∈D을 이용하여 제공될 수 있는 서비스는 dservice로 표현된다. 시간 τ에서 네트워크의 에지 세트는 E(τ)로 정의되며 여기서, E(τ)는 IoT 리소스 및 사용자 중에서 MANET을 형성하는 직접 링크의 세트이다. E(τ)의 원소들은 이동성으로 인해 IoT 리소스와 사용자 간의 연결이 변함에 따라 변한다.The problem of space-aggregated service discovery and dynamic service handover is finding the IoT resource set D needed to provide the service set S T needed for a given task T. Each service s∈S T owns a service description des S that contains information about the required functionality and constraints. The time series TS, which is a sequence of time instances τ i , represents the topology change of the MANET. Time instance τ 0 represents the time at which the job starts running. The MANET at time τ is represented by graph N (τ) = (D∪ {u}, E (τ)). The vertices of the graph include the IoT resource set D providing the service function and the user u consuming the service. Each vertex v has a function v.coord (τ) that returns the physical coordinates of the node at time τ. The service that can be provided using the IoT resource d_D is represented by d service . The edge set of the network at time τ is defined as E (τ), where E (τ) is a set of direct links forming a MANET among IoT resources and users. The elements of E (τ) change as mobility changes the connection between the IoT resource and the user.

IoT 환경에서 서비스를 소비하는 사용자가 한 명이라고 가정한다. 본 발명은 공간적으로 응집된 방식으로 사용자 작업을 위한 서비스 검색에 초점을 맞춘다.Assume that there is only one user consuming a service in the IoT environment. The present invention focuses on service retrieval for user tasks in a spatially cohesive manner.

공간-응집성 요구 사항은 (m,n,l)로 정의되며, 여기서 m과 n은 서비스 또는 사용자(즉, m,n∈ST∪{u})이고, 상한선 l 내에서 서로 공간적으로 가까이 위치해야 한다. RT는 작업 템플릿(template)의 서비스 설명에서 자동 추출될 수 있는 작업 T에 대한 공간-응집성 요구 사항 세트이다. 또한, 공간-응집성 요구 사항은 사용자 선호도(preference)에서 추출되거나 사용자가 수동으로 제공할 수 있다.The space-coherence requirement is defined as (m, n, l), where m and n are services or users (ie m, n∈S T ∪ {u}), and are spatially close to each other within the upper bound l. Should be. R T is a set of space-aggregation requirements for task T that can be automatically extracted from the service description of the task template. In addition, the space-cohesiveness requirements can be extracted from user preferences or manually provided by the user.

상기한 표기들을 요약하면 도 3과 같다.The above notation is summarized in FIG. 3.

본 발명에서는 공간-응집 솔루션 cSC(τ)∈C(τ)를 찾는 것이다. 여기서, C(τ)⊆2D는 시간 τ에서 작업의 서비스를 제공하는 후보 IoT 리소스 세트이다. 각 서비스 쌍(서비스 m 및 n)에서 서비스를 제공하는 리소스 간, 또는 서비스를 제공하는 리소스 m 및 세트 c의 사용자 n 사이의 공간 거리는 함수 distancec(m,n)로 정의되며, 작업의 각 공간-응집성 요구 사항에 대해 최소화되어야 한다. 또한, 요구 사항의 달성은 거리와 한계 값의 비율이며, 거리가 한계를 초과하면 0이 된다. 따라서, 후보 IoT 리소스 세트 c와의 공간-응집성 요구 사항 ri(c)의 달성은 수학식 1과 같이 측정될 수 있다.In the present invention, the space-aggregation solution c SC (τ) ∈C (τ) is found. Here, C (τ) ⊆2 D is a set of candidate IoT resources that provide a service of the task at time τ. The spatial distance between the resources providing services in each service pair (services m and n), or between the resources providing service m and the user n in set c, is defined by the function distance c (m, n), where each space in the job -Should be minimized for cohesiveness requirements. In addition, the achievement of the requirement is the ratio of the distance to the limit value, which is zero if the distance exceeds the limit. Therefore, the achievement of the space-cohesion requirement r i (c) with the candidate IoT resource set c can be measured as in Equation 1.

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

또한, 네트워크의 연결성에 대한 정의(Brandes, U., Erlebach, T.: Network Analysis: Methodological Foundations. LNCS, vol. 3418. Springer, Heidelberg (2005))에 따르면, IoT 리소스 후보 세트의 공간-응집성은 공간-응집성 요구사항의 장애를 일으키는 서비스의 최소 거리 평균으로 측정될 수 있다. 따라서 후보 리소스 세트 c의 공간-응집성 목적 함수 RT(c)는 수학식 2와 같이 정의될 수 있다.Furthermore, according to the definition of network connectivity (Brandes, U., Erlebach, T .: Network Analysis: Methodological Foundations.LNCS, vol. 3418. Springer, Heidelberg (2005)), the spatial-aggregation of the set of IoT resource candidates It can be measured as the minimum distance average of services that cause space-aggregation requirements. Therefore, the space-coherence objective function R T (c) of the candidate resource set c may be defined as in Equation 2.

[수학식 2][Equation 2]

Figure pat00002
Figure pat00002

후보 IoT 리소스 세트의 공간-응집성은 0과 1 사이의 값이다. 낮은 값은 IoT 리소스 요구 사항을 충족시키지 못하는 경우가 많다는 것을 나타낸다. 반면에, 높은 값은 공간-응집성 요구 사항 대부분이 리소스에 의해 크게 달성되었음을 나타낸다.The space-cohesion of the candidate IoT resource set is a value between 0 and 1. Low values indicate that the IoT resource requirements are often not met. High values, on the other hand, indicate that most of the space-coherency requirements have been largely achieved by the resource.

공간-응집 서비스 검색 문제는 초기 시간 cSC0)에 공간-응집 서비스를 제공하는 리소스 세트를 찾는 것이고, 동적 서비스 이양 문제는 IoT MANET, 즉 cSCi)(i>0)에 변경이 있을 때 공간-응집 서비스를 제공하는 새로운 리소스 세트를 찾는 것이다. 또한, 동적 서비스 이양 문제는 부가적인 목적 함수 handover(c(τi-1),c(τi))를 가지며, 이 함수는 c(τi -1) to c(τi)으로부터의 이양 수를 식별하기 위한 것이다. 서비스 이양을 위한 목적 함수는 수학식 3과 같이 정의될 수 있다.The space-aggregation service discovery problem is to find a set of resources that provide space-aggregation services at the initial time c SC0 ), and the dynamic service transition problem is to IoT MANET, i.e., c SCi ) (i> 0). When there is a change, we are looking for a new set of resources to provide space-aggregation services. The dynamic service handover problem also has an additional objective function handover (c (τ i-1 ), c (τ i )), which is the number of handovers from c (τ i -1 ) to c (τ i ). To identify them. The objective function for service transfer may be defined as shown in Equation 3.

[수학식 3][Equation 3]

Figure pat00003
Figure pat00003

이양될 IoT 리소스의 수를 최소화함으로써 IoT MANET의 변화에 따른 서비스 이양의 오버 헤드를 감소시킬 수 있다. 따라서 사용자 작업의 주기 동안 서비스 이양 비용을 최소화하면서 사용자 작업에 대한 공간-응집 서비스를 찾는 문제를 정의한다(수학식 4).By minimizing the number of IoT resources to be transferred, it is possible to reduce the overhead of service transfer due to changes in IoT MANET. Therefore, we define the problem of finding space-aggregated services for user tasks while minimizing the cost of service transfer during the cycle of user tasks (Equation 4).

[수학식 4][Equation 4]

Figure pat00004
Figure pat00004

일부 제약 조건을 가지는 각 공간-응집성 요구 사항에 대한 목적 함수가 여러 개 존재하기 때문에, 이 문제는 제한된 다중 목적 최적화 문제이다. RT(c)에 포함된 목적 함수가 서로 충돌 하는지를 확인하기 위해 작업 T에 대해 선택된 IoT 리소스 di를 고려한다. 검색 알고리즘은 di의 서비스에 공간적으로 응집된 서비스를 제공하는데 필요한 IoT 리소스를 검색한다. 모든 리소스와 사용자가 MANET에 무작위적이며 균일하게 분배되어 있다고 가정하면, 리소스는 di에서 모든 방향으로 분배될 것으로 예상된다. 따라서 di 대신에 대체 리소스 d'i를 선택하면 또 다른 요구 사항 달성을 높이는 동시에 공간-응집성 요구 사항 달성 중 하나가 감소된다.This problem is a limited multi-objective optimization problem because there are several objective functions for each space-coherency requirement with some constraints. Consider the IoT resource d i selected for task T to see if the objective functions contained in R T (c) collide with each other. The search algorithm searches for IoT resources necessary to provide spatially cohesive services to the services of d i . Assuming that all resources and users are randomly and evenly distributed in MANET, the resources are expected to be distributed in all directions at d i . Therefore, instead of d i by selecting the alternate source d 'i At the same time increasing the space to achieve other requirements - one of the requirements to achieve cohesiveness required is reduced.

검색 계획 생성 단계(S310)Search Plan Generation Steps (S310)

공간-응집성 요구 사항을 추출하는 과정(S311)은 다음과 같다.The process of extracting the space-coherency requirement (S311) is as follows.

기능성과 웹 서비스의 QoS를 의미론적으로 표현하는 연구들(Chen, X., et al.: Web service recommendation via exploiting location and QoS information. IEEE Trans. Parallel Distrib. Syst. 25(7), 1913-1924 (2014), Ma, Q., et al.: A semantic QoS-aware discovery framework for web services. In: IEEE International Conference on Web Services, ICWS 2008 (2008))에서는 서비스의 의미론적 설명에 기반하여 의미론적 방법으로 서비스의 QoS 요구 사항을 추론하는 것이 가능하다는 것을 보여준다. 마찬가지로, 사용자 작업의 공간-응집성 요구 사항은 작업 템플릿에서 자동적으로 추출될 수 있다. 따라서 도 5에서 표현된 바와 같이, 사용자 작업의 공간-응집성 요구 사항을 나타내는 간단한 온톨로지(ontology) 모델을 정의한다. 온톨로지 모델은 OWL(Web Ontology Language)을 사용하여 개발된 것으로, UML(Unified Modeling Language) 클래스 다이어그램으로 표현되어 있다. 도 5에 표현된 바와 같이, 작업은 다중 서비스로 구성되는 자체 작업 템플릿을 갖는다. 서비스는 서비스의 품질 속성 및 제약 조건을 나타내는 일부 서비스 특징을 가질 수 있다. 또한, 서비스는 하나 이상의 서비스 카테고리로 분류될 수 있다. 작업의 서비스 및 사용자는 서비스 경계를 형성하도록 응집될 수 있으며, 이를 통해 작업에 대한 공간-응집성 요구 사항이 특정될 수 있다. 마지막으로, 공간-응집성 요구 사항의 세트는 작업 템플릿에서 추출된다.Studies that semantically express functionality and QoS of web services (Chen, X., et al .: Web service recommendation via exploiting location and QoS information.IEEE Trans.Parallel Distrib. Syst. 25 (7), 1913-1924 (2014), Ma, Q., et al .: Semantic QoS-aware discovery framework for web services.In: IEEE International Conference on Web Services, ICWS 2008 (2008)) is based on semantic description of services. It shows that it is possible to infer the QoS requirements of the service in a way. Similarly, the space-aggregation requirements of user tasks can be extracted automatically from task templates. Thus, as represented in FIG. 5, a simple ontology model is defined that represents the space-aggregation requirements of the user's work. Ontology models are developed using OWL (Web Ontology Language) and are represented by UML (Unified Modeling Language) class diagrams. As represented in FIG. 5, a task has its own task template, which consists of multiple services. The service may have some service characteristics that indicate quality attributes and constraints of the service. In addition, services may be classified into one or more service categories. The services and users of the task can be aggregated to form service boundaries, which allows for the specification of space-aggregation requirements for the task. Finally, the set of space-aggregation requirements is extracted from the work template.

온톨로지 모델을 기반으로 표현된 공간-응집성 요구 사항은 규칙 기반 추론 방법을 사용하여 추출될 수 있다. 도 6은 SWRL(Semantic Web Rule Language)에서 표현된 규칙의 예를 보여준다. 예를 들어, SWRL 규칙에서는 작업에 볼륨 속성이 30dB 미만인 오디오 서비스가 필요한 경우 사용자와 오디오 서비스 간의 거리가 5m 미만이어야 한다고 명시한다.Spatial-aggregation requirements expressed based on ontology models can be extracted using rule-based reasoning. 6 shows an example of a rule expressed in SWRL (Semantic Web Rule Language). For example, the SWRL rule specifies that if a task requires an audio service with a volume attribute of less than 30 dB, the distance between the user and the audio service should be less than 5 m.

공간-응집성 요구 사항 그래프를 생성하는 과정(S312)은 다음과 같다.A process (S312) of generating a space-coherency requirement graph is as follows.

본 발명에서 제시된 방법에서는 공간-응집성 요구 사항 그래프(spatio-cohesiveness requirement graph, SCRG)라고 불리우는 그래프로 공간-응집성 요구 사항을 표현하는데, 이 그래프에서는 사용자와 서비스가 꼭지점 (ST∪{u})로 표현되고 이들 사이의 공간-응집성 요구 사항은 엣지 (RT)로 표현된다. 사용자를 나타내는 꼭지점을 SCRG의 루트로 정의한다. 각 엣지의 레이블은 공간-응집성 요구 사항의 상한선을 나타낸다. 요구 사항 그래프는 서비스의 공간적인 위치와 관계를 추상화 한 것이다. 이 그래프는 서비스 간 기능적 의존성을 나타내지는 않는다. 본 발명에서는 SCRG의 사용자와 모든 서비스가 연결되어 있다고 가정한다.In the method proposed in the present invention, a space-cohesiveness requirement graph (SCRG) is used to express the space-cohesiveness requirement, in which the user and the service are the vertices (S T ∪ {u}). The space-cohesion requirements between them are expressed as edges (R T ). Define the vertex representing the user as the root of the SCRG. The label on each edge represents the upper limit of the space-cohesion requirement. The requirements graph is an abstraction of the spatial location and relationships of a service. This graph does not represent functional dependencies between services. In the present invention, it is assumed that the user of the SCRG and all services are connected.

검색 계획을 생성하는 과정(S313)은 다음과 같다.The process of generating a search plan (S313) is as follows.

이전 단계(S312)에서 생성된 SCRG를 기반으로 하여 서비스를 체계적으로 검색할 수 있는 서비스 검색 계획을 세운다. 작업 T에 대한 서비스 검색 계획은 정의식 1과 같이 정의된다.Based on the SCRG generated in the previous step (S312) to establish a service search plan that can systematically search for services. The service retrieval plan for job T is defined as in Equation 1.

[정의식 1][Definition 1]

Figure pat00005
Figure pat00005

정의식 1에서 childP는 공간-응집성 요구 사항의 서브 세트이며 상위(parent) 서비스에서 하위(child) 서비스 세트를 검색하기 위한 요구 사항 그래프의 경로를 나타낸다. nonchildP는 childP의 보완적인 세트이다. 따라서 서비스 S에 대해 선택된 IoT 리소스는 nonchildP의 공간-응집성 요구 사항을 충족하는지 여부에 따라 평가된다. 그런 다음, childP에 따라 서비스 S의 하위 서비스가 S의 선택된 리소스 근처에서 검색된다. 도 7은 SCRG에서 서비스 검색 계획을 생성하는 예를 보여준다.In Equation 1, child P is a subset of the space-coherency requirement and represents the path of the requirements graph to retrieve the set of child services from the parent service. nonchild P is a complementary set of child P. Thus, the IoT resources selected for service S are evaluated according to whether they meet the space-aggregation requirements of nonchild P. Then, according to child P , the subservices of service S are searched near the selected resources of S. 7 shows an example of generating a service search plan in SCRG.

childP세트의 생성은 SCRG의 스패닝 트리(spanning tree)를 구성함으로써 수행된다. 따라서, 본 발명에서의 서비스 검색 전략은 스패닝 트리 알고리즘과 서비스 우선 순위 함수로 구성된다. 스패닝 트리 알고리즘은 childP를 구성하기 위한 것이며, 서비스 우선 순위 함수는 중요도에 따라 각 서비스에 우선 순위를 할당하기 위한 것이다. 이를 통해 알고리즘은 서비스의 하위 서비스 중에서 우선 순위가 높은 서비스를 효과적으로 검색할 수 있게 해준다. DFS(Depth-First Search), BFS(Breadth-First Search) 및 MST(Minimum Spanning Tree)와 같은 다양한 스패닝 트리 알고리즘이 사용될 수 있다. 서비스 우선 순위 함수의 경우 알고리즘을 사용하여 요구 사항 그래프에서 서비스의 중요도(centrality)를 계산할 수 있다. 이는 그래프에서 꼭지점의 중요도를 나타내는 잘 알려진 지표이거나 엄격한 우선 순위 지정을 위해 서비스 노드에서 상위 서비스에 대한 요구 사항 경계이다.Generation of the child P set is performed by constructing a spanning tree of the SCRG. Therefore, the service search strategy in the present invention is composed of a spanning tree algorithm and a service priority function. The spanning tree algorithm is for constructing child P , and the service priority function is for assigning priority to each service according to importance. This allows the algorithm to efficiently search for high priority services among the service's subservices. Various spanning tree algorithms may be used, such as Depth-First Search (DFS), Breadth-First Search (BFS), and Minimum Spanning Tree (MST). For service priority functions, algorithms can be used to calculate the centrality of services in the requirements graph. This is a well known indicator of the importance of the vertices in the graph, or the requirement boundary for the parent service at the service node for strict prioritization.

공간-응집 서비스 검색 및 이양(S320)Space-aggregation service search and transfer (S320)

공간-응집 서비스 검색 과정(S321)은 다음과 같다.The space-aggregation service search process (S321) is as follows.

공간-응집 서비스 검색 알고리즘은 이전 단계(S313)에서 구축된 서비스 검색 계획에 기초하여 사용자 노드의 하위 서비스로부터 사용자 작업 서비스를 실현하는데 필요한 IoT 리소스를 찾는다. 그런 다음, 검색된 서비스는 하위 서비스에 대한 리소스를 재귀적으로 찾는다. 각 리소스에 대해 사용자 요청과 같이 리소스 근처에서 하위 서비스를 검색할 수 있는 서비스 검색 에이전트가 배포된다. 서비스 검색 에이전트에 의해 사용자는 상위 서비스 근처에서 하위 서비스를 검색하기 위하여 검색된 서비스의 리소스를 요청한다. 따라서, 검색 계획에 따라 서비스 검색 요청이 상위 서비스에서 하위 서비스로 전파된다.The space-aggregated service search algorithm finds the IoT resources required to realize the user work service from the subservices of the user node based on the service search plan established in the previous step (S313). The retrieved service then recursively seeks resources for the subservice. For each resource, a service discovery agent is deployed that can search for subservices near the resource, such as user requests. The service retrieval agent allows a user to request the resources of the retrieved service to retrieve the lower service near the higher service. Therefore, the service search request is propagated from the higher service to the lower service according to the search plan.

서비스 검색 프로세스 동안 서비스에 대해 공간-응집성 요구 사항을 만족하는 하위 서비스에 사용할 수 있는 리소스가 존재하지 않을 수 있다. 이러한 경우 하위 서비스에 대한 상위 서비스의 서비스 검색이 성공적으로 수행될 때까지 상위 서비스의 리소스를 재귀적으로 다시 검색한다.During the service discovery process, no resources may be available for subservices that meet space-aggregation requirements for the service. In this case, the resources of the parent service are recursively searched again until the service search of the parent service for the child service is successfully performed.

공간-응집 서비스 검색 알고리즘에는 서비스를 동시에 검색하고 서비스에 대해 여러 후보 리소스를 찾을 수 있는 두 가지 옵션이 존재한다. 이러한 옵션을 사용하면 동적 수준 및 배포된 서비스의 밀도와 같은 환경 조건에 따라 장애 발생률과 서비스 검색 대기 시간 사이의 효율적인 교환이 수행될 수 있다.In the space-aggregated service search algorithm, there are two options for searching a service simultaneously and finding multiple candidate resources for the service. These options allow for an efficient tradeoff between failure rates and service discovery latency, depending on environmental conditions such as dynamic levels and density of deployed services.

도 8은 공간-응집 서비스 검색을 위한 알고리즘 1을 나타내고 있다.8 shows Algorithm 1 for space-aggregated service search.

알고리즘 1은 검색된 각 서비스에 대해 재귀적으로 실행되는 공간-응집 서비스 검색 알고리즘을 보여준다. 서비스 검색은 초기에 사용자에 의해 시작되고 IoT 리소스로 전파된다. 알고리즘 1에 대한 입력은 작업 T인데, 이 작업 T는 자신의 템플릿과 작업 대해 검색되어야 할 서비스 세트 ST을 포함한다. 작업에 대해 생성된 서비스 검색 계획이 작업 템플릿에서 추출되고, 계획에 기반하여 공간-응집성 요구 사항을 확인하기 위한 서비스의 비-하위(non-child) 서비스가 발견된다(라인 2-3). 비-하위 서비스가 이미 검색되었고 요구 사항을 충족하지 못하면 리소스는 상위 서비스에서 자체 서비스를 다시 검색하려고 시도한다(라인 4-9). 서비스 재검색 중에 단순화를 위해 서비스의 현재 리소스가 비활성화되고 대체 리소스가 검색된다(라인 29-34). 이러한 방법은 장애(실패) 리소스를 이후 프로세스에서 보이지 않게 해준다. 비-하위 서비스의 모든 공간-응집성 요구 사항이 충족되면 리소스의 서비스 검색 에이전트는 관련 서비스의 하위 서비스 검색을 시작한다(라인 10-16). 하위 서비스의 검색은 상위 서비스 근처에서 하위 서비스를 실현할 수 있는 후보 리소스 세트를 찾아 냄으로써 달성된다(라인 20). 후보 리소스 세트가 검색된 후, 리소스는 하위 서비스를 제공할 수 있는 가장 가까운 리소스를 선택하고 선택된 리소스에서 검색 프로세스를 시작한다(라인 23-26). 하위 서비스에 사용할 수 있는 후보 리소스가 없는 경우 리소스는 상위 서비스를 다시 검색한다(라인 21-22). 또한, 옵션에서 하위 서비스를 동시에 검색 할 수 없으면 이전 검색 세션이 종료될 때까지 기다린 후 다음의 검색을 진행한다(라인 13-15).Algorithm 1 shows a space-aggregated service search algorithm executed recursively for each service retrieved. Service discovery is initially initiated by the user and propagated to IoT resources. The input to Algorithm 1 is task T, which contains its template and service set S T to be retrieved for the task. The service retrieval plan created for the job is extracted from the job template, and a non-child service of the service is found to check for space-aggregation requirements based on the plan (lines 2-3). If a non-child service has already been discovered and does not meet the requirements, the resource attempts to retrieve its own service from the parent service (lines 4-9). During service rescan, the current resource of the service is deactivated and a replacement resource is retrieved for simplicity (lines 29-34). This method makes the failure resource invisible to subsequent processes. If all space-aggregation requirements of the non-sub-services are met, the service discovery agent of the resource initiates the sub-service discovery of the relevant service (lines 10-16). The search of the lower service is accomplished by finding a set of candidate resources that can realize the lower service near the upper service (line 20). After the set of candidate resources is retrieved, the resource selects the closest resource that can provide the subservice and starts the search process on the selected resource (lines 23-26). If no candidate resource is available for the child service, the resource re-searches the parent service (lines 21-22). Also, if the option cannot simultaneously search for subservices, wait until the previous search session ends before proceeding to the next search (lines 13-15).

도 9는 후보 리소스를 찾기 위한 알고리즘 2를 나타내고 있다.9 shows Algorithm 2 for finding candidate resources.

알고리즘 2는 리소스의 서비스 검색 에이전트에 의해 후보 IoT 리소스 세트를 찾는 것이다. 해당 리소스는 하위 서비스를 요청하고(라인 3) 다른 리소스의 응답을 기반으로 후보를 찾는다(라인 4-10). 응답된 리소스가 필수 하위 서비스를 제공할 수 있고 공간-응집성 요구 사항을 충족하는 경우 서비스 검색 에이전트는 후보 세트에 리소스를 추가한다(라인 4-7). 이 옵션이 여러 후보 리소스 찾을 수 없는 경우 먼저 발견된 후보 리소스를 리턴한다(라인 8-10).Algorithm 2 finds the candidate IoT resource set by the service discovery agent of the resource. The resource requests the subservice (line 3) and finds a candidate based on the response of the other resource (line 4-10). If the answered resource can provide the required subservices and meets the space-aggregation requirement, the service discovery agent adds the resource to the candidate set (lines 4-7). If this option cannot find multiple candidate resources, it returns the candidate resources found first (lines 8-10).

동적 서비스 이양 과정(S322)은 다음과 같다.Dynamic service transfer process (S322) is as follows.

서비스 이양은 사용자 작업을 수행하기 위한 서비스 세트를 고려할 필요가 있는 반면, 전통적인 이양은 단일 액세스 포인트만을 고려한다는 점이 IoT 환경에서의 전통적인 이양과 서비스 이양 사이의 주요 차이점에 해당한다. 또한, 사용자의 모바일 기기와 리소스 사이에서 이양하는 경우뿐만 아니라, 리소스들 사이에서 이양하는 경우를 고려할 필요가 있다. 본 발명에서는 사용자 작업을 위해 생성된 서비스 발견 계획을 이용하여 동적인 방식으로 서비스를 수행한다.Service handover needs to consider a set of services for performing user tasks, while traditional handover only considers a single access point, which is a major difference between traditional handover and service handover in IoT environments. In addition, it is necessary to consider not only the case of handing over between a user's mobile device and the resource but also the case of handing off between resources. In the present invention, a service is performed in a dynamic manner by using a service discovery plan generated for a user task.

도 10은 동적 서비스 이양을 위한 알고리즘 3을 나타내고 있다.10 shows Algorithm 3 for dynamic service handover.

알고리즘 3은 알고리즘 1과 유사한 구조를 갖는다. 서비스 이양은 작업에 대해 선택된 리소스가 공간-응집성 요구 사항을 충족시키는지 여부를 사용자가 주기적으로 확인함으로써 시작되고, 서비스 검색 알고리즘과 유사한 서비스로 전파된다. 상위 서비스에 의해 서비스에서 이양 프로세스가 시작되면 리소스상의 연관 서비스 검색 에이전트는 히스테리시스 마진(hysteresis margin) 및 임계 값을 갖는 이양 결정 규칙을 사용하여 하위 서비스에 대한 후보 리소스 세트를 발견한다(라인 27-34). 이양 결정 규칙은 상위 서비스와 후보 리소스 사이의 공간-응집성 및 상위 서비스의 리소스와 현재 리소스 사이의 공간-응집성을 상위 서비스와 하위 서비스의 공간-응집성 요구에 따라 계산한다. 서비스 검색 알고리즘과는 달리, 빈 후보 세트는 상위 서비스의 근방에서 하위 서비스에 이용 가능한 더 나은 리소스가 없음을 나타낸다.Algorithm 3 has a structure similar to algorithm 1. Service transition is initiated by the user periodically checking whether a resource selected for a task meets the space-aggregation requirements and propagates to a service similar to the service retrieval algorithm. When the handover process is initiated in a service by the parent service, the associated service discovery agent on the resource discovers the candidate resource set for the child service using a handover decision rule with hysteresis margin and threshold (line 27-34). ). The transition decision rule calculates the space-cohesion between the parent service and the candidate resource, and the space-aggregation between the resource of the parent service and the current resource according to the space-cohesion requirement of the parent service and the child service. Unlike the service search algorithm, the bin candidate set indicates that there is no better resource available for the lower service in the vicinity of the higher service.

도시 규모의 공공 IoT 환경에 수 많은 IoT 디바이스들이 분산되어 있을 때 사용자가 필요로 하는 서비스를 제공받기 위해서는 IoT 디바이스와 맞물려서 사용 가능한 서비스를 검색하는 과정이 필요하다. 본 발명에서는 IoT 디바이스들, 예컨대 디스플레이나 오디오 등과 같은 액츄에이터(actuator) 등의 물리적 효과가 사용자에게 제공되기 위해서는 공간적으로 가까운 곳에 위치해야 한다는 점과, 사용자에게 가까운 IoT 디바이스부터 차례로 검색함으로써 확장성을 확보하고 사용자에 의해 검색된 여러 개의 IoT 디바이스들이 가까운 곳에 위치하여 서로 효율적으로 통신하도록 하는 서비스 검색 알고리즘을 제공한다. 또한, 사용자가 사용 중인 서비스가 이동 중에도 지속적으로 수행되기 위해서는 사용자에게 서비스를 물리적으로 제공할 수 있는 범위 안에 있는 IoT 디바이스로 서비스를 이양할 필요성이 있다. 이에, 본 발명에서는 일반적인 네트워크 환경에서 존재하는 이양 기술들을 IoT 서비스 관점으로 확장하여 사용자가 서비스를 검색한 이후에도 지속적으로 IoT 서비스가 수행될 수 있는 이양 알고리즘을 제공한다.When a large number of IoT devices are distributed in urban-scale public IoT environments, in order to provide services required by a user, a process of searching for available services by interlocking with IoT devices is required. According to the present invention, physical effects such as actuators such as an actuator such as a display or an audio, etc., must be located close to a space in order to be provided to the user, and secured scalability by sequentially searching from IoT devices close to the user. In addition, the present invention provides a service discovery algorithm that allows multiple IoT devices searched by a user to be located nearby and communicate with each other efficiently. In addition, in order for a service being used by a user to be continuously performed while moving, there is a need to transfer the service to an IoT device within a range capable of physically providing a service to the user. Accordingly, the present invention extends the transfer technology existing in the general network environment to the IoT service perspective to provide a transfer algorithm that can continuously perform the IoT service even after the user searches for the service.

따라서, 서비스 간 상호 작용을 효율적으로 수행하고 서비스 조정 결과를 사용자에게 효과적으로 이양하기 위하여 공간적으로 응집된 방식을 통하여 사용자의 주변 환경에서 IoT 서비스를 검색할 수 있고, 사용자 작업에 대한 QoE 수준을 보장하기 위해 어느 하나의 IoT 리소스에서 다른 IoT 리소스로 동적으로 전환하는 서비스 이양 방식을 통해 공간적 응집에 대한 성능 저하가 모니터링될 때 안정적인 방식으로 서비스를 제공할 수 있다.Therefore, in order to efficiently perform service-to-service interactions and effectively hand over the service coordination results to users, IoT services can be searched in the user's surroundings in a spatially cohesive manner, and the QoE level of user operations can be guaranteed. In order to dynamically switch from one IoT resource to another IoT resource, a service transfer method can provide a service in a stable manner when performance degradation against spatial aggregation is monitored.

본 발명의 실시예에서 상위 서비스로부터 하위 서비스를 선택하는 것은 검색된 후보 IoT 리소스 중 공간 거리가 가장 가까운 IoT 리소스를 선택하는 방식이다. 이러한 경우 IoT 환경의 현재 공간-응집성 상태만을 고려하기 때문에 효율적인 리소스 선택에 한계가 있을 수 있다.In the embodiment of the present invention, selecting the lower service from the higher service is a method of selecting the IoT resource having the closest spatial distance among the found candidate IoT resources. In this case, since only the current space-aggregation state of the IoT environment is considered, efficient resource selection may be limited.

본 발명의 다른 실시예에서는 현재 상태는 물론이고 미래 상태를 예측적으로 고려하는 기계 학습을 통해 최상의 IoT 리소스를 선택할 수 있다.In another embodiment of the present invention, the best IoT resources can be selected through machine learning that predicts the current state as well as the future state.

도 11은 기계 학습 기반 서비스 검색 에이전트를 도시한 것이다.11 illustrates a machine learning based service search agent.

서비스 검색 에이전트는 사용자의 모바일 기기에서 작동되며, 사용자를 중심으로 주변 지역의 사용 가능한 IoT 리소스, 즉 서비스 제공자들을 검색한다. 검색된 IoT 리소스들이 각각의 서비스 종류 별로 분류되고 고정된 숫자의 서비스 종류가 존재한다고 가정한다.The service discovery agent operates on the user's mobile device and searches for available IoT resources, that is, service providers, in the surrounding area around the user. It is assumed that the discovered IoT resources are classified for each service type and there is a fixed number of service types.

사용자가 필요로 하는 각 서비스 종류에 대하여 에이전트는 기계 학습을 통해 학습된 정책(policy)을 적용하여 서비스 선택을 수행한다. 정책은 신경망(neural network)로 구현 및 표현된다. 이러한 정책을 통해 각 서비스 타입에 대해 수행된 선택의 조합이 에이전트가 현재 수행하는 행동(action)으로 정의한다. 이러한 행동을 IoT 환경 내에서 수행한 이후 에이전트는 보상(reward)의 형태로 행동에 대한 평가를 받고 보상을 최대화하는 방향으로 정책을 학습한다. 본 발명에서 보상은 선택된 서비스들의 공간-응집도와 핸드오버 횟수를 통해 정의될 수 있다.For each service type that the user needs, the agent applies the learned policy through machine learning to perform service selection. Policies are implemented and expressed in neural networks. Through this policy, the combination of choices made for each service type is defined as the action currently performed by the agent. After performing these actions within the IoT environment, the agent is evaluated for actions in the form of rewards and learns the policy to maximize the rewards. In the present invention, compensation may be defined through space-aggregation and handover times of selected services.

기계 학습을 적용하기 위해 공간-응집 서비스 검색 문제를 POMDP(partial-observable Markov decision process)의 형태로 정의한다.To apply machine learning, we define the space-aggregated service discovery problem in the form of POMDP (partial-observable Markov decision process).

POMDP는 MDP(Markov decision process)의 한 확장 형태로, IoT 환경에 대한 관측이 부분적으로 이루어진다. POMDP는 다음과 같은 5개의 요소로 정의된다.POMDP is an extension of the Markov decision process (MDP), and the observation of the IoT environment is partially made. POMDP is defined by five elements:

(1) 상태(state)는 IoT 환경이 가질 수 있는 상태의 집합으로 정의된다.(1) A state is defined as a set of states that an IoT environment can have.

(2) 행동(action)은 에이전트가 IoT 환경 안에서 취할 수 있는 행동의 집합으로 정의되며, IoT 환경은 행동에 영향을 받아 현재 상태에서 다른 상태로 이동한다.(2) Action is defined as the set of actions that an agent can take in the IoT environment, and the IoT environment is affected by the action and moves from its current state to another.

(3) 관측(observation)은 에이전트에게 IoT 환경의 현재 상태에 대한 부분적인 관측을 주는 함수로 정의된다. (3) Observation is defined as a function that gives the agent a partial observation of the current state of the IoT environment.

(4) 전이 함수(transition function)는 에이전트가 어떤 상태에서 어떤 행동을 취했을 때 다른 어떤 상태로 전이될 확률을 나타내는 함수로 정의된다.(4) A transition function is defined as a function that represents the probability that an agent will transition to another state when it takes an action from one state.

(5) 보상(reward)은 에이전트의 행동에 의해 상태의 전이가 일어났을 때 행동을 강화(reinforce)하거나 질책(discourage)하는 보상 값을 지시하는 함수로 정의된다.(5) Reward is defined as a function that indicates a reward value that reinforces or discourages a behavior when a state transition occurs by an agent's action.

POMDPPOMDP 정의 Justice

IoT 환경은 많은 수의 IoT 리소스가 서비스 제공자로서 고르게 배치되어 있는 2차원 평면 공간으로 정의되며, IoT 환경 내의 서비스들을 활용해 작업을 수행하고자 하는 사용자 에이전트가 1명 존재한다. 본 문제 정의에서는 IoT 환경에 배치된 IoT 리소스와 사용자 에이전트를 객체(object)로 정의한다. 또한, 모든 객체는 자신의 좌표(coordinate)와 속도(velocity)를 속성으로 가지며, 이를 알 수 있다고 가정한다. 그리고, IoT 환경의 상태를 정의하기 위해 객체들의 상태를 정의하며, 좌표, 속도, 및 서비스 종류로 정의한다. 이와 같이 정의되는 객체들의 상태의 집합이 현재 환경이 가지는 상태가 된다.The IoT environment is defined as a two-dimensional planar space in which a large number of IoT resources are evenly arranged as service providers, and there is one user agent who wants to perform work using services in the IoT environment. In this problem definition, IoT resources and user agents deployed in the IoT environment are defined as objects. In addition, it is assumed that all objects have their coordinates and velocity as properties and can be known. In addition, to define the state of the IoT environment, the states of the objects are defined and defined by coordinates, speeds, and service types. The set of states of the objects defined in this way becomes the state of the current environment.

공간-응집 서비스 검색 문제에서 사용자 에이전트는 객체 간 공간 상의 유클리디안 거리(Euclidean distance)를 바탕으로 부분적 관찰성을 가지며, 이에 따라 사용자 에이전트는 IoT 환경 내에서 가까운 거리에 위치한 서비스들을 검색 및 사용할 수 있다.In the space-aggregated service discovery problem, the user agent has partial observability based on Euclidean distance in the space between objects, so that the user agent can search for and use services located in close proximity within the IoT environment. have.

에이전트의 행동은 각 서비스 타입에 대해 후보 서비스 중 하나의 서비스 제공자를 선택하는 것으로 정의된다. IoT 환경의 동적 변화에 의해 사용 가능한 후보 서비스의 수, 즉 가능한 행동의 수는 계속해서 변하며 이에 본 발명에서는 기계학습 방법 중 이와 같은 상황에 유연하게 대처할 수 있는 것으로 알려져 있는 정책-경사(policy-gradient) 방법을 선택해 사용할 수 있다.The agent's behavior is defined as selecting one service provider of candidate services for each service type. The number of candidate services available, ie the number of possible behaviors, is constantly changing due to dynamic changes in the IoT environment, and thus the policy-gradient is known in the present invention to flexibly cope with such a situation in the machine learning method. You can choose to use.

본 발명에서는 두 가지 보상 척도, 공간-응집도와 핸드오버 횟수를 정의한다. 먼저, 공간-응집도는 사용자와 선택된 서비스들이 공간 안에 얼마나 가깝게 위치하는지를 측정하는 척도이고, 핸드오버 횟수는 행동에 의해 새로 선택된 서비스 집합과 기존에 사용하던 서비스 집합의 차이로 정의된다. 최종 보상 값을 하나로 만들기 위해 공간-응집도에서 핸드오버 횟수를 빼는 것으로 공간-응집도는 최대화하면서 핸드오버 횟수는 최소화하는 방향으로 학습하도록 한다.In the present invention, two compensation measures, space-cohesion and handover times are defined. First, space-cohesion is a measure of how closely a user and selected services are located in the space, and the handover frequency is defined as the difference between a newly selected service set and an existing service set by an action. By subtracting the number of handovers from the space-aggregation to make the final compensation value as one, we learn to maximize the space-coagulation while minimizing the number of handovers.

서비스 검색 에이전트Service discovery agent

서비스 검색 에이전트는 사용자가 필요로 하는 각 서비스 종류에 대해 확률적(stochastic) 정책을 유지하는데, 이는 각 후보로 검색된 서비스 제공자가 선택될 확률을 나타낸다. 각 서비스 종류에 대한 확률 함수를 곱함으로써 동시확률분포(joint probability)를 구하고, 이는 곧 에이전트가 전체 서비스에 대해 가지는 행동 정책(joint policy)이 된다. 이 과정에서 각 서비스 종류에 대해 이루어지는 선택은 독립적이라고 가정한다.The service search agent maintains a stochastic policy for each service type that the user needs, which indicates the probability that a service provider searched for each candidate will be selected. By multiplying the probability function for each type of service, we get a joint probability distribution, which is the joint policy that the agent has for the whole service. This process assumes that the choices made for each service type are independent.

정책은 확률적 정책을 표현하는 데 적합한 방법 중 하나인 FFNN(feed-forward neural network) 형태의 파라미터로 표현될 수 있다. 검색된 각 후보 서비스에 대하여 에이전트는 정책의 입력으로 후보 서비스의 상태 벡터, 사용자의 상태 벡터, 둘 사이의 관계 벡터를 사용한다. 이때, 관계 벡터는 사용자와 후보 서비스의 상태 벡터를 감산함으로써 구해지는데, 이는 사용자와 후보 서비스의 상대적 위치 및 속도를 나타내는 역할을 한다. 신경망으로 표현된 정책에 의해 후보 서비스의 출력값이 나오면 이에 softmax 함수를 취한 다음 각 후보 서비스를 선택할 확률 값으로 사용한다.A policy may be expressed as a parameter in the form of a feed-forward neural network (FFNN), which is one of the methods suitable for expressing probabilistic policies. For each candidate service retrieved, the agent uses the state vector of the candidate service, the state vector of the user, and the relationship vector between the two as inputs to the policy. At this time, the relationship vector is obtained by subtracting the state vector of the user and the candidate service, which serves to indicate the relative position and speed of the user and the candidate service. When the output value of the candidate service is obtained by the policy expressed by the neural network, the softmax function is taken and then used as a probability value to select each candidate service.

서비스 검색 에이전트를 학습시키기 위하여 기 공지된 알고리즘의 기계 학습 모델들을 활용할 수 있으며, 예를 들어 액터-크리틱 알고리즘(actor-critic algorithm)을 사용하여 서비스 검색 에이전트를 학습시킬 수 있다.In order to train the service search agent, machine learning models of known algorithms may be utilized. For example, the service search agent may be trained using an actor-critic algorithm.

따라서, 본 발명의 실시예들은 IoT 환경에서 주어진 작업을 위해 필요로 하는 서비스를 검색하는 과정에서 기계 학습을 통해 IoT 환경에 대해 학습된 정책에 따라 현재 상태와 함께 미래 상태를 고려한 서비스를 선택할 수 있다.Accordingly, embodiments of the present invention may select a service considering the current state and the future state according to a policy learned about the IoT environment through machine learning in the process of searching for a service required for a given task in the IoT environment. .

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments may include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable PLU (programmable). It can be implemented using one or more general purpose or special purpose computers, such as logic units, microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. The software and / or data may be embodied in any type of machine, component, physical device, computer storage medium or device in order to be interpreted by or provided to the processing device or to provide instructions or data. have. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. In this case, the medium may be to continuously store a program executable by the computer, or to temporarily store for execution or download. In addition, the medium may be a variety of recording means or storage means in the form of a single or several hardware combined, not limited to a medium directly connected to any computer system, it may be distributed on the network. Examples of the medium include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And ROM, RAM, flash memory, and the like, configured to store program instructions. In addition, examples of another medium may include a recording medium or a storage medium managed by an app store that distributes an application, a site that supplies or distributes various software, a server, or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the claims that follow.

Claims (20)

컴퓨터 시스템에서 수행되는 방법에 있어서,
분산 IoT(internet of thing) 환경에서 주어진 작업(task)에 대해 필요로 하는 일련의 기능인 서비스 세트를 제공하기 위한 IoT 리소스 세트를 검색하는 단계
를 포함하고,
상기 IoT 리소스 세트를 검색하는 단계는,
사용자와 서비스 간, 그리고 서비스와 서비스 간의 공간적 거리를 고려한 공간-응집(spatio-cohesive) 방식을 통해 상기 IoT 리소스 세트를 검색하는 것으로,
공간적 거리와 관련된 규칙이 포함된 공간-응집성 요구사항에 기초하여 서비스 검색 계획을 생성하는 단계; 및
상기 서비스 검색 계획을 기반으로 하여 상기 작업을 위해 필요로 하는 서비스를 검색하되 상기 작업의 공간-응집성 요구 사항을 충족시키는 서비스를 검색한 다음 검색된 서비스와 공간-응집을 유지하는 다른 서비스를 검색하는 단계
를 포함하는 방법.
In a method performed in a computer system,
Retrieving a set of IoT resources to provide a set of services, a set of functions required for a given task in a distributed internet of things environment
Including,
Searching for the IoT resource set,
Searching for the IoT resource set through a space-cohesive method considering the spatial distance between the user and the service, and the service and the service,
Generating a service retrieval plan based on space-cohesion requirements including rules relating to spatial distances; And
Searching for a service required for the task based on the service search plan, searching for a service that satisfies the space-aggregation requirement of the task, and then searching for the found service and other services maintaining space-aggregation
How to include.
제1항에 있어서,
상기 서비스 검색 계획을 생성하는 단계는,
사전에 정의된 작업 템플릿으로부터 상기 작업에 대해 특정된 공간-응집성 요구 사항을 추출하는 단계
를 포함하는 방법.
The method of claim 1,
Generating the service search plan,
Extracting space-coherent requirements specific to said task from a predefined task template
How to include.
제1항에 있어서,
상기 공간-응집성 요구사항은 온톨로지(ontology) 모델을 기반으로 표현되며 규칙 기반 추론 방법을 사용하여 추출되는 것
을 특징으로 하는 방법.
The method of claim 1,
The space-coherency requirement is expressed based on the ontology model and extracted using rule-based reasoning.
Characterized by the above.
제1항에 있어서,
상기 서비스 검색 계획을 생성하는 단계는,
상기 공간-응집성 요구사항을 서비스의 공간적인 위치와 관계를 추상화한 그래프로 표현한 후 순회(traversal)를 가이딩하는 검색 전략을 사용하여 상기 서비스 검색 계획을 상기 그래프에 인스턴스화(instantiated)하는 단계
를 포함하는 방법.
The method of claim 1,
Generating the service search plan,
Instantiating the service retrieval plan to the graph using a search strategy that guides traversal after expressing the space-coherency requirement as a graph abstracting the spatial location and relationship of the service
How to include.
제4항에 있어서,
상기 검색 전략은 상위(parent) 서비스에서 하위(child) 서비스를 검색하는 경로를 구성하기 위한 스패닝 트리 알고리즘(spanning tree algorithm)과 서비스의 중요도에 따라 각 서비스에 우선 순위를 할당하기 위한 서비스 우선 순위 함수로 구성되는 것
을 특징으로 하는 방법.
The method of claim 4, wherein
The search strategy is a spanning tree algorithm for configuring a path for searching for a child service from a parent service and a service priority function for assigning priority to each service according to the importance of the service. Consisting of
Characterized by the above.
제4항에 있어서,
상기 IoT 리소스 세트를 검색하는 단계는,
상기 그래프에 인스턴스화된 상기 서비스 검색 계획에 따라 서비스 검색 요청을 상위 서비스에서 하위 서비스로 전파함으로써 상기 작업과 관련된 서비스를 실현하는데 필요한 IoT 리소스를 검색하는 단계
를 포함하는 방법.
The method of claim 4, wherein
Searching for the IoT resource set,
Retrieving an IoT resource necessary to realize a service related to the task by propagating a service search request from a higher service to a lower service according to the service search plan instantiated in the graph
How to include.
제6항에 있어서,
상기 IoT 리소스를 검색하는 단계는,
상기 상위 서비스에 대해 상기 하위 서비스의 제공이 가능한 후보 IoT 리소스를 검색한 후 상기 후보 IoT 리소스 중 공간 거리가 가장 가까운 IoT 리소스를 선택하는 단계
를 포함하는 방법.
The method of claim 6,
Searching for the IoT resource,
Searching for a candidate IoT resource capable of providing the lower service with respect to the upper service and selecting an IoT resource having the closest spatial distance among the candidate IoT resources
How to include.
제1항에 있어서,
상기 IoT 리소스 세트를 검색하는 단계는,
상기 검색된 서비스의 공간-응집성 상태를 모니터링하여 상기 검색된 서비스 중 적어도 일부 서비스를 이양하는(handover) 단계
를 포함하는 방법.
The method of claim 1,
Searching for the IoT resource set,
Monitoring a space-aggregation state of the retrieved service to handover at least some of the retrieved services
How to include.
제8항에 있어서,
상기 이양하는 단계는,
상기 작업에 대해 선택된 IoT 리소스가 상기 공간-응집성 요구사항을 충족하는지 여부를 주기적으로 확인하여 일정 주기 동안 이양될 IoT 리소스의 수를 최소화하는 목적 함수에 따라 상기 공간-응집성 요구사항을 충족하지 못하는 IoT 리소스를 다른 IoT 리소스로 전환하는 것
을 특징으로 하는 방법.
The method of claim 8,
The transferring step,
IoT that does not meet the space-aggregation requirement according to an objective function that periodically checks whether the IoT resources selected for the task meet the space-coherency requirement and minimize the number of IoT resources to be handed over for a period of time Transitioning Resources to Other IoT Resources
Characterized by the above.
제1항에 있어서,
상기 IoT 리소스 세트를 검색하는 단계는,
IoT 환경의 동적 변화에 의해 사용 가능한 서비스에 대해 기계 학습을 통해 학습된 정책에 기초하여 상기 작업을 위해 필요로 하는 서비스를 선택하는 단계
를 포함하는 방법.
The method of claim 1,
Searching for the IoT resource set,
Selecting a service required for the task based on a policy learned through machine learning for a service available by dynamic changes in the IoT environment
How to include.
제10항에 있어서,
상기 정책은 사용자와 서비스 간의 공간 거리가 얼마나 가까운지 측정하는 척도로 정의된 공간-응집도를 최대화하면서 새로 선택된 서비스 집합과 기존에 사용하던 서비스 집합의 차이로 정의된 핸드오버 횟수를 최소화하는 방향으로 학습되는 것
을 특징으로 하는 방법.
The method of claim 10,
The policy is learned to minimize the number of handovers defined by the difference between the newly selected service set and the existing service set while maximizing the space-aggregation defined as a measure of how close the space distance between the user and the service is. that
Characterized by the above.
제10항에 있어서,
상기 정책은 사용자의 좌표와 속도를 나타내는 상태 벡터, 서비스의 좌표와 속도를 나타내는 상태 벡터, 사용자와 서비스 간의 상대적 위치와 속도를 나타내는 관계 벡터를 입력으로 하는 신경망으로 구현되는 것
을 특징으로 하는 방법.
The method of claim 10,
The policy may be implemented as a neural network using a state vector representing coordinates and speeds of a user, a state vector representing coordinates and speeds of a service, and a relationship vector representing relative positions and speeds of a user and a service.
Characterized by the above.
컴퓨터 시스템에서 수행되는 방법에 있어서,
분산 IoT 환경에서 주어진 작업에 대해 필요로 하는 일련의 기능인 서비스 세트를 제공하기 위한 IoT 리소스 세트를 검색하는 단계
를 포함하고,
상기 IoT 리소스 세트를 검색하는 단계는,
사용자와 서비스 간, 그리고 서비스와 서비스 간의 공간적 거리와 관련된 공간-응집성 요구사항을 추출하는 단계;
상기 공간-응집성 요구사항을 서비스의 공간적인 위치와 관계를 추상화한 그래프로 표현한 후 순회를 가이딩하는 검색 전략을 사용하여 상기 그래프에 인스턴스화함으로써 서비스 검색 계획을 생성하는 단계; 및
상기 서비스 검색 계획에 따라 서비스 검색 요청을 상위 서비스에서 하위 서비스로 전파함으로써 상기 작업과 관련된 서비스를 실현하는데 필요한 IoT 리소스를 검색하는 단계
를 포함하는 방법.
In a method performed in a computer system,
Discovering a set of IoT resources to provide a set of services, a set of functions required for a given task in a distributed IoT environment.
Including,
Searching for the IoT resource set,
Extracting space-aggregation requirements related to spatial distances between users and services and between services and services;
Generating a service search plan by expressing the space-coherency requirement as a graph abstracting the spatial location and relationship of a service and then instantiating it in the graph using a search strategy guiding traversal; And
Searching for IoT resources required to realize a service related to the task by propagating a service search request from a higher service to a lower service according to the service search plan
How to include.
컴퓨터 시스템에 있어서,
컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
분산 IoT 환경에서 주어진 작업에 대해 필요로 하는 일련의 기능인 서비스 세트를 제공하기 위한 IoT 리소스 세트를 검색하는 과정
을 처리하고,
상기 IoT 리소스 세트를 검색하는 과정은,
사용자와 서비스 간, 그리고 서비스와 서비스 간의 공간적 거리를 고려한 공간-응집 방식을 통해 상기 IoT 리소스 세트를 검색하는 것으로,
공간적 거리와 관련된 규칙이 포함된 공간-응집성 요구사항에 기초하여 서비스 검색 계획을 생성하는 과정; 및
상기 서비스 검색 계획을 기반으로 하여 상기 작업을 위해 필요로 하는 서비스를 검색하되 상기 작업의 공간-응집성 요구 사항을 충족시키는 서비스를 검색한 다음 검색된 서비스와 공간-응집을 유지하는 다른 서비스를 검색하는 과정
을 포함하는 컴퓨터 시스템.
In a computer system,
At least one processor implemented to execute computer-readable instructions
Including,
The at least one processor,
The process of discovering a set of IoT resources to provide a set of services, a set of features required for a given task in a distributed IoT environment.
To process
The process of searching for the IoT resource set,
The IoT resource set is searched through a space-aggregation method considering a spatial distance between a user and a service, and a service and a service.
Generating a service discovery plan based on space-cohesion requirements including rules relating to spatial distances; And
Searching for a service required for the task based on the service search plan, searching for a service that satisfies the space-aggregation requirement of the task, and then searching for the service and other services maintaining space-aggregation
Computer system comprising a.
제14항에 있어서,
상기 서비스 검색 계획을 생성하는 과정은,
상기 공간-응집성 요구사항을 서비스의 공간적인 위치와 관계를 추상화한 그래프로 표현한 후 순회를 가이딩하는 검색 전략을 사용하여 상기 서비스 검색 계획을 상기 그래프에 인스턴스화하는 과정
을 포함하는 컴퓨터 시스템.
The method of claim 14,
The process of generating the service search plan,
Instantiating the service retrieval plan to the graph using a search strategy for guiding the traversal after expressing the space-coherency requirement as a graph abstracting the spatial location and relationship of the service
Computer system comprising a.
제15항에 있어서,
상기 검색 전략은 상위 서비스에서 하위 서비스를 검색하는 경로를 구성하기 위한 스패닝 트리 알고리즘과 서비스의 중요도에 따라 각 서비스에 우선 순위를 할당하기 위한 서비스 우선 순위 함수로 구성되는 것
을 특징으로 하는 컴퓨터 시스템.
The method of claim 15,
The search strategy includes a spanning tree algorithm for configuring a path for searching for a lower service from a higher service and a service priority function for assigning priority to each service according to the importance of the service.
Computer system characterized in that.
제15항에 있어서,
상기 작업을 위해 필요로 하는 서비스를 검색하는 과정은,
상기 그래프에 인스턴스화된 상기 서비스 검색 계획에 따라 서비스 검색 요청을 상위 서비스에서 하위 서비스로 전파함으로써 상기 작업과 관련된 서비스를 실현하는데 필요한 IoT 리소스를 검색하는 과정
을 포함하는 컴퓨터 시스템.
The method of claim 15,
The process of searching for a service required for the operation,
Searching for IoT resources required to realize a service related to the task by propagating a service search request from a higher service to a lower service according to the service search plan instantiated in the graph
Computer system comprising a.
제17항에 있어서,
상기 IoT 리소스를 검색하는 과정은,
상기 상위 서비스에 대해 상기 하위 서비스의 제공이 가능한 후보 IoT 리소스를 검색한 후 상기 후보 IoT 리소스 중 공간 거리가 가장 가까운 IoT 리소스를 선택하는 과정
을 포함하는 컴퓨터 시스템.
The method of claim 17,
The process of searching for the IoT resource,
Searching for a candidate IoT resource capable of providing the lower service with respect to the upper service and then selecting an IoT resource having the closest spatial distance among the candidate IoT resources
Computer system comprising a.
제14항에 있어서,
상기 IoT 리소스 세트를 검색하는 과정은,
상기 검색된 서비스의 공간-응집성 상태를 모니터링하여 상기 검색된 서비스 중 적어도 일부 서비스를 이양하는 과정
을 포함하는 컴퓨터 시스템.
The method of claim 14,
The process of searching for the IoT resource set,
Monitoring the space-aggregation state of the found service and handing over at least some of the found services
Computer system comprising a.
제14항에 있어서,
상기 IoT 리소스 세트를 검색하는 과정은,
IoT 환경의 동적 변화에 의해 사용 가능한 서비스에 대해 기계 학습을 통해 학습된 정책에 기초하여 상기 작업을 위해 필요로 하는 서비스를 선택하고,
상기 정책은 사용자와 서비스 간의 공간 거리가 얼마나 가까운지 측정하는 척도로 정의된 공간-응집도를 최대화하면서 새로 선택된 서비스 집합과 기존에 사용하던 서비스 집합의 차이로 정의된 핸드오버 횟수를 최소화하는 방향으로 학습되는 것
을 특징으로 하는 컴퓨터 시스템.
The method of claim 14,
The process of searching for the IoT resource set,
Select a service required for the above task based on a policy learned through machine learning for the service available by the dynamic change of the IoT environment,
The policy is learned to minimize the number of handovers defined by the difference between the newly selected service set and the existing service set while maximizing the space-aggregation defined as a measure of how close the space distance between the user and the service is. that
Computer system characterized in that.
KR1020180078709A 2018-01-15 2018-07-06 Spatio-cohesive service discovery and dynamic service handover for distributed iot enviroments KR102184286B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/186,000 US11647090B2 (en) 2018-01-15 2018-11-09 Spatio-cohesive service discovery and dynamic service handover for distributed IoT environments

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180004863 2018-01-15
KR1020180004863 2018-01-15

Publications (2)

Publication Number Publication Date
KR20190094070A true KR20190094070A (en) 2019-08-12
KR102184286B1 KR102184286B1 (en) 2020-11-30

Family

ID=67625056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180078709A KR102184286B1 (en) 2018-01-15 2018-07-06 Spatio-cohesive service discovery and dynamic service handover for distributed iot enviroments

Country Status (1)

Country Link
KR (1) KR102184286B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040236826A1 (en) * 2003-05-19 2004-11-25 Michael Harville Combination case for service location management of media services
US20060026008A1 (en) * 2004-07-27 2006-02-02 Xerox Corporation Method and system for managing resources for multi-service jobs based on location
KR101748299B1 (en) * 2017-02-02 2017-06-19 주식회사 한국넷킹콜 IoT-Based Integrated Remote Restrooms Management System, IoT-Based Integrated Remote Management Server, and IoT-Based Integrated Remote Restrooms Management Method
US20170220963A1 (en) * 2016-01-29 2017-08-03 Liquid Analytics, Inc. Systems and methods for dynamic prediction of workflows
KR20170109399A (en) * 2016-03-21 2017-09-29 전자부품연구원 Ontology based IoT Service Configuration Method and System

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040236826A1 (en) * 2003-05-19 2004-11-25 Michael Harville Combination case for service location management of media services
US20060026008A1 (en) * 2004-07-27 2006-02-02 Xerox Corporation Method and system for managing resources for multi-service jobs based on location
US20170220963A1 (en) * 2016-01-29 2017-08-03 Liquid Analytics, Inc. Systems and methods for dynamic prediction of workflows
KR20170109399A (en) * 2016-03-21 2017-09-29 전자부품연구원 Ontology based IoT Service Configuration Method and System
KR101748299B1 (en) * 2017-02-02 2017-06-19 주식회사 한국넷킹콜 IoT-Based Integrated Remote Restrooms Management System, IoT-Based Integrated Remote Management Server, and IoT-Based Integrated Remote Restrooms Management Method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
백경덕, 김민협, 고인영. 사물인터넷 환경에서 지리적 응집도를 고려한 동적 서비스 검색방법. 정보과학회논문지, 제43권 제8호, 2016.08.. 출처: http://kiise.or.kr/e_journal/2016/8/JOK/pdf/08.pdf* *

Also Published As

Publication number Publication date
KR102184286B1 (en) 2020-11-30

Similar Documents

Publication Publication Date Title
Saeik et al. Task offloading in Edge and Cloud Computing: A survey on mathematical, artificial intelligence and control theory solutions
Mahmud et al. Ifogsim2: An extended ifogsim simulator for mobility, clustering, and microservice management in edge and fog computing environments
Rausch et al. Edge intelligence: The convergence of humans, things, and ai
Sheikh Sofla et al. Towards effective offloading mechanisms in fog computing
Sami et al. Demand-driven deep reinforcement learning for scalable fog and service placement
Coronado et al. Zero touch management: A survey of network automation solutions for 5G and 6G networks
Kar et al. Offloading using traditional optimization and machine learning in federated cloud–edge–fog systems: A survey
Maia et al. An improved multi-objective genetic algorithm with heuristic initialization for service placement and load distribution in edge computing
Pianini et al. Partitioned integration and coordination via the self-organising coordination regions pattern
Casadei et al. Self-organising coordination regions: A pattern for edge computing
Abdulazeez et al. Offloading mechanisms based on reinforcement learning and deep learning algorithms in the fog computing environment
Wanigasekara et al. A bandit approach for intelligent IoT service composition across heterogeneous smart spaces
Scarpiniti et al. Energy performance of heuristics and meta-heuristics for real-time joint resource scaling and consolidation in virtualized networked data centers
Leppänen et al. Service modeling for opportunistic edge computing systems with feature engineering
Wijesekara et al. A comprehensive survey on knowledge-defined networking
Adhikari et al. A comprehensive survey on nature‐inspired algorithms and their applications in edge computing: Challenges and future directions
Robles-Enciso et al. A multi-layer guided reinforcement learning-based tasks offloading in edge computing
Gupta et al. Toward intelligent resource management in dynamic Fog Computing‐based Internet of Things environment with Deep Reinforcement Learning: A survey
Massa et al. Data-Aware Service Placement in the Cloud-IoT Continuum
Raj et al. Edge/Fog Computing Paradigm: The Concept, Platforms and Applications.
Baek et al. Spatially cohesive service discovery and dynamic service handover for distributed IoT environments
Chaari et al. Dynamic computation offloading for ground and flying robots: Taxonomy, state of art, and future directions
US11647090B2 (en) Spatio-cohesive service discovery and dynamic service handover for distributed IoT environments
Bagha et al. Improving delay in SDNs by metaheuristic controller placement
Emu et al. Ensemble deep learning assisted VNF deployment strategy for next-generation IoT services

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
G170 Publication of correction
G170 Publication of correction