KR101573594B1 - 서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법 - Google Patents

서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법 Download PDF

Info

Publication number
KR101573594B1
KR101573594B1 KR1020140007118A KR20140007118A KR101573594B1 KR 101573594 B1 KR101573594 B1 KR 101573594B1 KR 1020140007118 A KR1020140007118 A KR 1020140007118A KR 20140007118 A KR20140007118 A KR 20140007118A KR 101573594 B1 KR101573594 B1 KR 101573594B1
Authority
KR
South Korea
Prior art keywords
service
resource
intention
logic
intent
Prior art date
Application number
KR1020140007118A
Other languages
English (en)
Other versions
KR20150086914A (ko
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 KR1020140007118A priority Critical patent/KR101573594B1/ko
Publication of KR20150086914A publication Critical patent/KR20150086914A/ko
Application granted granted Critical
Publication of KR101573594B1 publication Critical patent/KR101573594B1/ko

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

Abstract

서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법이 개시된다. 서비스 시스템은, 장치별 자원에 대한 접속, 상기 자원이 수행하는 서비스 로직에 대한 프로세스 및 상기 자원에 대한 정보를 관리하는 리소스 어댑터(Resource Adaptor) 및 상기 장치 및 상기 자원 중 적어도 하나와 연관된 서비스 의도(intent)에 대응하는 서비스 로직을 검색하여 상기 검색된 서비스 로직에 대한 프로세스를 실행하거나 또는 상기 서비스 의도에 따른 새로운 서비스 로직을 생성하는 매쉬업 유닛(Mash-up Unit)을 포함할 수 있다.

Description

서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법{SERVICE SYSTEM AND METHOD FOR PROVIDING DYNAMIC MASH―UP SERVICE BASED ON SERVICE INTENT}
본 발명의 실시예들은 서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법에 관한 것이다.
IoT(Internet of Things)는 기존 USN(Ubiquitous Sensor Network)나 M2M(Machine to Machine)에서 진화된 형태를 띄고 있는데, 기존 M2M이 통신장비(end-device)와 사람과의 통신이 주 목적이었다면, IoT는 사물의 범위를 넓혀 우리가 흔히 볼 수 있는 전화기, 책, 온도계 등의 사물을 사람과 통신이 가능하도록 해준다는 것이다. 즉, IoT는 인간과 사물, 서비스의 세 가지 분산된 환경 요소에 대해, 인간의 명시적인 개입 없이도 상호 협력적으로 센싱, 네트워킹, 정보 처리 등 지능적 관계를 형성하는 사물 공간 연결망을 의미할 수 있다.
이러한 IoT 이외에도, WoT(Web of Things)나 WoO(Web of Objects)와 같이 다양한 개념과 기술들이 연구, 개발되고 있다. 이러한 개념과 기술들의 발전 및 확산으로 인해, 사용자들이 손쉽게 인터넷에 연결 가능한 장치들(가젯(gadget) 디바이스, 센서 디바이스, 액츄에이터(actuator) 등)의 사용이 늘어날 것으로 예상된다.
이러한 IoT 환경이 도래함에 따라, 특정 공간 환경의 다양한 IoT 장치들을 제어하기 위한 서비스의 필요성이 대두되고 있다. 예를 들어, 스마트 빌딩의 회의실을 가정할 경우, 사용자가 회의실의 사용 용도에 맞춰 온도, 환기, 조도, 음향 등의 설정을 제어할 수 있어야 한다.
도 1은 종래기술에 있어서, IoT 환경을 도시한 도면이다. 도 1은 다양한 장치들(Devices)과 사용자(110)를 도시하고 있다. 이때, 종래기술에서 사용자(120)는 스마트폰과 같은 사용자(110)의 장치를 이용하여 개별 장치들의 서비스에 접속하여 개별 서비스를 제어할 수 있다. 예를 들어, 스마트 조명과 같은 장치를 제어하기 위해 사용자(110)는 사용자(110)의 장치를 통해 스마트 조명과 연관된 서비스에 접속하여 스마트 조명의 조도나 색상 등을 변경할 수 있다.
그러나, 이러한 종래기술은, 각각의 공간 환경들이 매우 다양하게 존재(일례로, 집, 사무실, 회의실 등)하며, 이러한 공간 환경들마다 다수의 장치들이 존재함을 고려할 때, 다수의 장치들 각각에 대해 제공되는 각각의 개별 서비스들에 접속하는 것은 사용자들에게 있어 매우 번거롭고 불편한 문제점이다.
또한, 종래기술에서는 사용자들의 장치들과 사용자들이 제어하고자 하는 장치들 각각간에 폐쇄적이고 수직적인 관계를 갖기 때문에, 동적 매쉬업(dynamic mash-up)을 위한 서비스를 제공할 수 없다는 문제점이 있다. 예를 들어, 사용자가 장기간 집을 비우는 경우, 사용자는 전력의 사용을 최소화하길 원할 수 있다. 이 경우, 종래기술에서는 사용자가 각각의 장치들의 설정을 변경해야만 하는 문제점이 있다.
뿐만 아니라, 종래기술에서는 다양한 사용자의 상황에 따라 다양한 기능을 제공하기 위해, 장치들 각각이 다양한 상황을 인지하기 위한 연산능력을 갖춰야만 하는 문제점이 있다.
중앙의 에이전트(agent)에서 다수의 장치들이 갖는 자원들을 가상 오브젝트 형태로 가상화하여 관리하면서, 사용자의 의도에 따라 중앙의 에이전트에서 가상 오브젝트들을 제어함으로써, 장치들에 대한 동적 매쉬업 서비스를 제공할 수 있는 서비스 시스템 및 방법을 제공한다.
장치별 자원에 대한 접속, 상기 자원이 수행하는 서비스 로직에 대한 프로세스 및 상기 자원에 대한 정보를 관리하는 리소스 어댑터(Resource Adaptor); 및 상기 장치 및 상기 자원 중 적어도 하나와 연관된 서비스 의도(intent)에 대응하는 서비스 로직을 검색하여 상기 검색된 서비스 로직에 대한 프로세스를 실행하거나 또는 상기 서비스 의도에 따른 새로운 서비스 로직을 생성하는 매쉬업 유닛(Mash-up Unit)을 포함하는 것을 특징으로 하는 서비스 시스템이 제공된다.
일측에 따르면, 상기 리소스 어댑터는, 상기 자원에 대해 수행 가능한 서비스 로직에 대한 프로세스를 실행하고, 상기 프로세스가 발생시키는 메시지를 다른 프로세스 또는 상기 자원으로 전달 및 관리하는 프로세스 매니저(Process Manager)를 포함하는 것을 특징으로 할 수 있다.
다른 측면에 따르면, 상기 리소스 어댑터는, 상기 자원 및 상기 장치 중 적어도 하나와의 통신 및 네트워크 연결을 관리하는 네트워크 인터페이스 어댑터(Network Interface Adaptor); 및 상기 장치의 상기 자원에 접속하고, 상기 자원으로의 접속을 관리하는 리소스 액세스 매니저(Resource Access Manager)를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 리소스 어댑터는, 상기 서비스 로직에 대한 프로세스간의 메시지를 전달을 처리하는 메시지 라우터(Message Router)를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 매쉬업 유닛은, 상기 장치 및 상기 자원 중 적어도 하나와 연관하여 수신된 상기 서비스 의도에 대해 인증을 수행하고, 적합성을 판단하며 상기 서비스 의도를 해석하는 의도 핸들러(Intent Handler); 및 상기 서비스 의도에 포함된 입력 데이터의 종류에 기반하여 서비스 로직 저장소(Service Logic Repository)에서 서비스 로직을 검색하는 인퍼런스 엔진(Inference Engine)을 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 매쉬업 유닛은, 상기 서비스 로직 저장소에서 상기 서비스 의도에 대응하는 서비스 로직이 검색되지 않는 경우, 상기 서비스 로직 저장소에 저장된 서비스 로직에 기반하여 새로운 서비스 로직을 생성하는 서비스 로직 컴포저(Service Logic Composer)를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 매쉬업 유닛은, 상기 자원과 연관된 서비스 로직을 저장하는 상기 서비스 로직 저장소를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 매쉬업 유닛은, 상기 장치 및 상기 자원 중 적어도 하나로부터 입력에 기반하여 상기 서비스 의도를 생성하는 의도 가상 오브젝트 프로세스를 설치 및 호출하는 컨텍스트 매니저(Context Manager)를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 컨텍스트 매니저는, 상기 입력의 패턴을 분석하고, 상기 분석의 결과에 기반하여 상기 의도 가상 오브젝트 프로세스를 설치 및 호출하는 패턴 디텍터(Pattern Detector); 및 사용자 설정(user configuration)에 기반하여 상기 의도 가상 오브젝트 프로세스를 설치 및 호출하는 의도 설정 매니저(Intent Configuration Manager)를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 서비스 시스템은 서비스 도메인(service-domain)과 관련된 시맨틱(semantic) 처리 및 상기 서비스 도메인별 온톨로지(Ontology) 관리하는 인텔리전스 유닛(Intelligence Unit)을 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 인텔리전스 유닛은, 상기 서비스 도메인에서 이용되는 서비스 로직을 관리 및 수행하는 도메인-특정 로직 매니저(Domain-Specific Logic Manager); 상기 서비스 도메인의 시맨틱 요소를 온톨로지 형태로 정리하여 관리하는 서비스 도메인 온톨로지(Service-Domain Ontology); 상기 서비스 도메인 온톨로지를 이용하여 시맨틱 추론을 위한 질의를 처리하는 시맨틱 쿼리 엔진(Semantic Query Engine); 및 입력된 정보를 시맨틱 추론을 이용하여 이벤트로 변환하고, 변환된 이벤트를 상기 매쉬업 유닛 및 상기 리소스 어댑터 중 적어도 하나로 전송하는 시맨틱 트리거 엔진(Semantic Trigger Engine)을 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 서비스 의도는, (1) 상기 장치 및 상기 자원 중 적어도 하나와 연관된 이벤트가 다루는 서비스의 범위를 특정하는 정보인 액션과, (2) 전달하고자 하는 데이터의 값과 상기 값의 단위의 종류에 대한 정보를 포함하는 데이터를 포함하는 것을 특징으로 할 수 있다.
장치 또는 상기 장치의 자원으로부터 입력되는 값을 분석하여 서비스 의도를 생성하는 단계; 상기 생성된 서비스 의도에 기반하여 서비스 로직 저장소에서 서비스 로직을 검색하는 단계; 상기 검색된 서비스 로직에 매칭하는 서비스 프로세스를 설치 및 호출하는 단계; 및 상기 매칭하는 서비스 프로세스를 실행하여, 상기 서비스 의도를 처리하는 단계를 포함하는 것을 특징으로 하는 서비스 방법이 제공된다.
일측에 따르면, 상기 서비스 방법은 상기 생성된 서비스 의도에 대응하는 서비스 로직이 상기 서비스 로직 저장소에 존재하지 않는 경우, 상기 서비스 로직 저장소에 저장된 서비스 로직에 기반하여 새로운 서비스 로직을 생성하는 단계를 더 포함하고, 상기 설치 및 호출하는 단계는, 상기 생성된 새로운 서비스 로직에 대한 서비스 프로세스를 생성하는 것을 특징으로 할 수 있다.
다른 측면에 따르면, 상기 서비스 방법은 상기 서비스 의도와 연관하여 매칭되는 복수의 서비스 프로세스가 존재하는 경우, 상기 복수의 서비스 프로세스간에 메시지를 전달하는 단계를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 서비스 의도를 생성하는 단계는, 상기 입력되는 값을 패턴을 분석하여 의도 가상 오브젝트 프로세스를 생성하고, 상기 생성된 의도 가상 오브젝트 프로세스를 이용하여 이후 입력되는 값을 분석하여 상기 서비스 의도를 생성하고, 상기 의도 가상 오브젝트 프로세스는, 미리 정의된 로직에 따라 상기 이후 입력되는 값을 검사하여 이벤트를 감지하고, 상기 이벤트의 감지에 따라 상기 사용자 의도를 발생시키는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 서비스 의도를 생성하는 단계는, 사용자 설정을 수신 및 분석하여 상기 사용자 설정에 대응하는 의도 가상 오브젝트 프로세스를 생성하고, 상기 생성된 가상 오브젝트 프로세스를 이용하여 상기 입력되는 값을 분석하여 상기 서비스 의도를 생성하고, 상기 의도 가상 오브젝트 프로세스는, 미리 정의된 로직에 따라 상기 입력되는 값을 검사하여 이벤트를 감지하고, 상기 이벤트의 감지에 따라 상기 사용자 의도를 발생시키는 것을 특징으로 할 수 있다.
중앙의 에이전트(agent)에서 다수의 장치들이 갖는 자원들을 가상 오브젝트 형태로 가상화하여 관리하면서, 사용자의 의도에 따라 중앙의 에이전트에서 가상 오브젝트들을 제어함으로써, 장치들에 대한 동적 매쉬업 서비스를 제공할 수 있다.
도 1은 종래기술에 있어서, IoT 환경을 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, IoT 환경을 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 동적 매쉬업을 위한 서비스 시스템의 내부 구조를 설명하기 위한 블록도이다.
도 4는 본 발명의 일실시예에 있어서, 인스턴스의 인터페이스들에 대한 개념을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 인스턴스의 인터페이스들에 대한 기능을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 인스턴스 리스트 페이지의 예를 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 의도 프로세스 흐름을 통한 서비스 호출(invocation)의 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 새로운 의도 가상 오브젝트의 설치를 위한 과정의 예를 도시한 도면이다.
도 9는 본 발명의 일실시예에 있어서, 새로운 의도 가상 오브젝트의 설치를 위한 과정의 다른 예를 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 서비스 의도 생성 과정의 예를 도시한 흐름도이다.
도 11은 본 발명의 일실시예에 있어서, 서비스 의도 생성 과정의 다른 예를 도시한 흐름도이다.
도 12는 본 발명의 일실시예에 있어서, 의도를 통한 서비스 생성 과정의 예를 도시한 흐름도이다.
도 13은 본 발명의 일실시예에 있어서, 새로운 의도 가상 오브젝트의 설치를 위한 일례를 도시한 흐름도이다.
도 14는 본 발명의 일실시예에 있어서, 새로운 의도 가상 오브젝트의 설치를 위한 다른 예를 도시한 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일실시예에 있어서, IoT 환경을 도시한 도면이다. 도 2는 다양한 장치들(Devices)이 에이전트(210)와 통신하고, 사용자(220)가 이러한 에이전트(210)와 통신하는 모습을 나타내고 있다. 예를 들어, 사용자(220)는 사용자(220)의 장치를 이용하여 각각의 장치들의 서비스들에 접속하는 것이 아니라, 에이전트(210)에 접속하여 다양한 장치들에 대한 서비스를 제공받을 수 있다. 이때, 에이전트(210)는 장치들과 네트워크를 통해 통신하고, 장치들을 제어하기 위한 제어 서비스를 사용자(220)에게 제공할 수 있다. 또한, 에이전트(210)는 장치들의 자원들을 가상 오브젝트의 형태로 가상화하여 관리할 수 있다.
도 3은 본 발명의 일실시예에 있어서, 동적 매쉬업을 위한 서비스 시스템의 내부 구조를 설명하기 위한 블록도이다. 본 실시예에 따른 서비스 시스템(300)은 리소스 어댑터(Resource Adaptor, 310) 및 매쉬업 유닛(Mash-up Unit, 320)을 포함할 수 있고, 필요에 따라 선택적으로 인텔리전스 유닛(Intelligence Unit, 330)을 더 포함할 수 있다.
리소스 어댑터(310)는 장치별 실제 자원(Physical Resource)에 대한 접속, 자원이 수행하는 서비스 로직의 프로세스 및 자원 정보를 관리하는 서비스 시스템(300)의 구성요소일 수 있다. 예를 들어, 리소스 어댑터(310)는 자원에 대한 접속을 관리하는 네트워크 관리자의 역할과 가상 오브젝트들간에 메시지를 주고받을 수 있도록 메시지 라우터의 역할을 수행할 수 있다. 이러한 리소스 어댑터(310)는 프로세스 매니저(Process Manager, 311), 네트워크 인터페이스 어댑터(Network Interface Adaptor, 312) 및 리소스 액세스(Resource Access Manager, 313)를 포함할 수 있다.
프로세스 매니저(311)는 개별 자원에 대해 수행 가능한 서비스 로직 프로세스를 실행하고, 서비스 로직 프로세스가 발생시키는 메시지를 전달 및 관리할 수 있다.
네트워크 인터페이스 어댑터(312)는 다른 자원(또는 다른 장치)와의 통신 및 네트워크 연결을 관리할 수 있다. 예를 들어, 네트워크 인터페이스 어댑터(312)는 자원 A의 서비스 로직 프로세스를 통해 발생된 메시지를 자원 B로 전송하기 위해, 자원 B를 갖는 장치와의 통신 및 네트워크 연결을 관리할 수 있다.
리소스 액세스 매니저(313)는 장치의 세부 자원(일례로, 센서, 액츄에이터, 메모리, 데이터베이스 등)에 접속하고, 자원으로의 접속을 관리할 수 있다.
매쉬업 유닛(320)은 가상 오브젝트에 의도(Intent)를 전달하기 위한 서비스 시스템(300)의 구성요소일 수 있다. 예를 들어, 매쉬업 유닛(320)은 특정 의도에 대응하여 적합한 서비스를 실행하거나, 적합한 서비스가 없는 경우, 새로운 서비스를 생성할 수 있다. 이러한 매쉬업 유닛(320)은 각각의 가상 오브젝트 또는 복합 가상 오브젝트(Composite Virtual Object)마다 존재하는 모듈의 형태일 수도 있다. 여기서, 복합 가상 오브젝트는, 복수의 자원들을 복합적으로 이용하여 하나의 서비스를 제공하는 경우, 복수의 자원들에 대응하는 복수의 가상 오브젝트들을 의미할 수 있다. 이러한 매쉬업 유닛(320)은 의도 핸들러(Intent Handler, 321), 인퍼런스 엔진(Inference Engine, 322), 컨텍스트 매니저(Context Manager, 323), 서비스 로직 컴포저(Service Logic Composer, 324) 및 서비스 로직 저장소(325)를 포함할 수 있다.
의도 핸들러(321)는 자원(또는 장치, 가상 오브젝트나 복합 가상 오브젝트)에 대해 수신된 의도에 대해, 인증을 수행하고, 적합성을 판단하며, 수신된 의도를 해석할 수 있다.
인퍼런스 엔진(322)은 의도(일례로, 의도 핸들러(323)에서 인증되고, 적합한 것으로 판단 및 해석된 의도)에 포함된 입력 데이터의 종류에 따라 적합한 서비스를 추론하고, 추론된 결과에 알맞은 서비스를 검색할 수 있다.
컨텍스트 매니저(323)는 장치나 자원으로부터의 입력에 기반하여 서비스 의도를 생성하는 의도 가상 오브젝트 프로세스를 설치 및 호출할 수 있다. 이를 위해, 컨텍스트 매니저(323)는 장치 메시지 및 동작을 분석하여 의도 프로세스를 자동으로 생성 및/또는 추천하는 엔진인 패턴 디텍터(Pattern Detector)와 의도 관련 설정을 관리하는 엔진인 의도 설정 매니저(Intent Configuration Manager)를 포함할 수 있다. 이때, 의도 설정 매니저는 사용자에 의한 의도 프로세스의 생성을 지원할 수도 있다.
서비스 로직 컴포저(324)는 의도에 대응하는 서비스가 서비스 로직 저장소(325)에 정의되지 않은 경우, 새로운 서비스를 생성할 수 있다.
인텔리전스 유닛(330)은 서비스 도메인(예를 들어, 아이안전 서비스나 스마트 홈 관리 서비스 등)에 관련된 시맨틱 처리 및 서비스 도메인별 온톨로지 관리를 담당할 수 있다. 이러한 인텔리전스 유닛(330)은 도메인-특정 로직 매니저(Domain-Specific Logic Manager, 331), 시맨틱 트리거 엔진(Semantic Trigger Engine, 332), 시맨틱 쿼리 엔진(Semantic Query Engine, 333) 및 서비스 도메인 온톨로지(Service-Domain Ontology, 334)를 포함할 수 있다.
도메인-특정 로직 매니저(331)는 해당 서비스 도메인에서 이용되는 지능화 로직(일례로, 아이안전 서비스를 위한 카메라의 인체 인식을 위한 서비스 로직)을 관리 및 수행할 수 있다.
시맨틱 트리거 엔진(332)은 입력된 정보를 시맨틱 추론 등을 통해 이벤트로 변환하고 이를 매쉬업 유닛(320)에게 알릴 수 있다.
시맨틱 쿼리 엔진(333)은 서비스 도메인 온톨로지(334)를 이용하여 시맨틱 추론을 위한 질의를 처리할 수 있다.
서비스 도메인 온톨로지(334)는 해당 서비스 도메인의 시맥틱 요소를 온톨로지 형태로 정리하여 관리할 수 있다.
상술한 서비스 로직 프로세스와 같이, 의도 가상 오브젝트(Intent VO)가 하나의 개별적인 프로세스로서 정의 및 동작될 수 있다. 예를 들어, 매쉬업 유닛(320)은 서비스 의도의 입력 값에 따라 미리 정의된 로직에 토대로 이벤트를 감지하는 경우, 해당 이벤트를 의도의 형태를 발생시킬 수 있다. 일례로, 의도 가상 오브젝트 프로세스는 인텔리전스 유닛(330)에서 시맨틱 추론을 통해 변환된 이벤트에 기반하여 사용자 의도를 생성할 수 있다.
이때, 서비스 의도가 다루는 정보는 액션과 데이터의 조합일 수 있다. 액션은 이벤트가 다루는 서비스 범위를 특정할 수 있고, 데이터는 서비스에 필요한 정보들이 인수화된 값일 수 있다. 예를 들어, 데이터는 전달하고자 하는 데이터의 값과 해당 값의 단위의 종류에 대한 정보를 포함할 수 있다. 이러한 단위는 일례로, 이미 잘 알려진 CGS(Centimetre-Gram-Seconds) 및 SI(MKS(Metre-Kilogram-Seconds)) 단위체계를 따를 수 있다. 또한, 데이터는 대상 서비스와 대상 리소스를 특정하기 위한 정보를 더 포함할 수 있다. 아래 표 1은 서비스 의도가 다루는 정보의 예를 나타내고 있다.
<intent action="socialm2m.domain.smarthome.energyaware" type="application/JSON"
data="{500:watt}"
from="socialm2m.domain.resources.stove"
/>
표 1은 액션(action)이, 이벤트가 다루는 서비스 범위를 스마트홈의 에너지인식(smarthome.energyaware)과 관련된 범위로 특정하고 있는 예를 나타내고 있다. 또한, 이러한 에너지인식과 관련하여 데이터의 값은 '500'이고, 이러한 값의 단위는 와트(watt)임을 특정한 예를 나타내고 있다. 또한, 해당 서비스와 리소스를 장치인 스토브(stove)로 특정한 예를 나타내고 있다. 예를 들어, 표 1의 서비스 의도는 난로의 전력소비를 500 와트 이하로 관리하라는 사용자의 의도를 포함할 수 있다. 매쉬업 유닛(320)은 발생한 서비스 의도에 적합한 서비스(일례로, 난로 관리 서비스)를 실행할 수 있다. 만약, 적합한 서비스가 존재하지 않는 경우, 매쉬업 유닛(320)은 새로운 서비스를 직접 생성하여 실행할 수도 있다. 예를 들어, 사용자가 집을 오랫동안 비우게 되어, 집안의 전기기기에 대해 전력소모를 줄이고자 하는 경우, 매쉬업 유닛(320)(또는 매쉬업 유닛(320)이 포함하는 서비스 로직 컴포저(324)는 이미 존재하는 서비스 로직들을 혼합하여 새로운 서비스 로직 프로세스를 생성 및 실행할 수 있다.
도 4는 본 발명의 일실시예에 있어서, 인스턴스의 인터페이스들에 대한 개념을 설명하기 위한 도면이다. 도 4에서 사물들(Things, 410)은 장치들 또는 장치들의 자원들에 대응할 수 있다. 가상 오브젝트(VO(Virtualization Objects), 420)에 있어, 가상 오브젝트(420)와 사물들(410)간의 연결, 그리고 가상 오브젝트(420)들간의 연결에 필요한 기본적인 인터페이스가 필요하다. 본 실시예에서는 인터페이스의 효과적이고 명시적인 사용을 위해 총 5가지의 인스턴스용 인터페이스 기능을 제공하는 예들을 설명한다.
개별 인터페이스의 정보는 각 인스턴스별로 인스턴스 프로파일에 이를 명시적으로 기술하여 사용할 수 있으며, 도 3을 통해 설명한 리소스 어댑터(310) 또는 리소스 어댑터(310)가 포함할 수 있는 프로세스 매니저(311)에서 해당 인스턴스의 정보에 기반하여 관련 기능을 제공할 수 있다. 이때, 도 4에서는 사물들(410) 각각과 관련된 인스턴스(Associated Thing Instance)들 및 인스턴스간 연동을 위한 매쉬업 인스턴스(Mash-up Instance)를 나타내고 있다. 이때, 매쉬업 인스턴스는, 인스턴스 어플리케이션 서버(IAS(Instance Application Server), 430) 및 써드 파티 서비스(3rd Party Service, 440)와의 연동을 가능하게 할 수 있다.
인스턴스 어플리케이션 서버(430)는 서비스 시스템(300)을 위한 웹 어플리케이션 서버 기능을 담당할 수 있다. 이때, 인스턴스 어플리케이션 서버(430)를 통해 제공되는 기능들은 웹 인터페이스로 제공될 수 있다. 또한, 써드 파티 서비스(440)는 사용자와 연관된 SNS(Social Network Service, 450)와 같은 다양한 외부 서비스들을 의미할 수 있다.
도 5는 본 발명의 일실시예에 있어서, 인스턴스의 인터페이스들에 대한 기능을 설명하기 위한 도면이다. 이미 설명한 바와 같이, 장치가 포함하는 하나의 자원은 하나의 가상 오브젝트로 가상화될 수 있고, 인스턴스(instance)는 이러한 가상 오브젝트에 대응할 수 있다. 또한, 가상 오브젝트들간의 매쉬업을 위한 매쉬업 인스턴스도 존재할 수 있다. 도 4의 가상 오브젝트(420)인 인스턴스들은 리소스 어댑터(310) 또는 프로세스 매니저(311)가 제공하는 5가지의 기 제공된 인터페이스를 이용하여, (1) 사물과 인스턴스간, (2) 인스턴스와 인스턴스간, (3) 외부 서비스(써드 파티 서비스(440))와 인스턴스간, 그리고 (4) 인스턴스 호스팅(Instance Hosting, IH) 응용 기능(일례로, 도 4의 인스턴스 아이콘(Instance Icon, 460))과 인스턴스간에 데이터를 주고 받을 수 있다.
피더(Feeder) 인터페이스를 의미하는 F(510)는 인스턴스가 인스턴스 또는 외부 서비스로 제공하고자 하는 정보를 노출하는 인터페이스를 포함할 수 있다. 이때, F(510)는, 직접 메시지를 전달하는 것이 아닌 인스턴스의 메시지 큐(message queue)상에 피딩(feeding)할 정보를 저장하는 형태로 동작할 수 있으며, 다음 (1) 내지 (3)과 같은 경우에 활용될 수 있다.
(1) 장치(사물)로부터 받은 메시지를 판독 후 타 서비스 또는 다른 인스턴스로 전달하고자 하는 경우.
(2) 인스턴스내에서 특정 상태 값을 노출하거나 또는 외부 서비스(일례로, 써드 파티 서비스(440))에게 전달하고자 하는 값을 노출하고자 하는 경우.
(3) 인스턴스의 상태 값 중 인스턴스 리스트 상의 인스턴스 아이콘(일례로, 인스턴스 어플리케이션 서버(430)의 인스턴스 아이콘)을 통해 사용자에게 대표로 노출시킬 값(대표 속성(representative attribute) 값)을 설정하고자 하는 경우.
서브스크라이버(Subscriber) 인터페이스를 의미하는 S(520)는 사물 또는 타 인스턴스의 피더 인터페이스로부터 정보를 수신하는 인터페이스를 포함할 수 있으며, 다음 (4) 및 (5)의 경우에 활용될 수 있다.
(4) 장치(사물)로부터 수신되는 정보를 전달 받기 위해 사용되는 경우(이 경우, 서비스 시스템(300)이 포함하는 리소스 어댑터(310)(또는 리소스 어댑터(310)가 포함하는 네트워크 인터페이스 어댑터(312)가 리스닝(listening)할 사물의 물리적 인터페이스에 대한 정보가 관련 사물 정보 엘리먼트(associatedThingInformation element)에 기술될 수 있음).
(5) 다른 인스턴스의 피더에 대한 정보를 구독하는 경우(타 인스턴스의 피더 인터페이스로 노출되는 값을 활용하고자 하는 경우) - 타 인스턴스의 피더에 대한 정보를 구독하는 경우, 필터에 정의된 조건에 맞는 인터페이스를 통해 정보의 구독이 가능.
예를 들어, 도 3을 통해 설명한 의도 가상 오브젝트는, 의도 가상 오브젝트에 대응하는 인스턴스의 서브스크라이버 인터페이스를 통해 수신한 정보에 대해 판단하여 트리거링 조건에 해당하는 경우, 해당 이벤트를 의도의 형태로 피더 인터페이스를 통해 대응하는 인스턴스에게 전달할 수 있다. 예를 들어, 상술한 난로의 예에서, 의도 가상 오브젝트는, 서브스크라이버 인터페이스를 통해 난로를 제어하고자 하는 정보들(액션(스마트홈의 에너지인식), 데이터(500, 와트, 난로))을 수신할 수 있으며, 피더 인터페이스를 통해 의도의 형태로 이벤트를 생성할 수 있다. 이때, 이벤트는 인스턴스의 메시지 큐(message queue)상에 저장될 수 있으며, 난로와 연관된 인스턴스는 메시지 큐 상에 저장된 정보를 구독(해당 인스턴스의 서브스크라이버 인터페이스를 통해)함으로써, 이벤트를 수신할 수 있다.
리시버(Receiver) 인터페이스를 의미하는 R(530)은 인스턴스가 타 인스턴스의 컨트롤러(Controller) 인터페이스로부터 메시지를 전달받는 인터페이스를 포함할 수 있으며, 다음 (6) 내지 (8)과 같은 경우에 활용될 수 있다.
(6) 타 인스턴스로부터 정보를 받는 경우(타 인스턴스의 컨트롤러 인터페이스로부터 정보를 수신).
(7) 인스턴스 아이콘상의 대표 제어값(피더상에서 대표 속성 값을 설정한 경우)을 수신하는 경우(사용자의 직접 제어를 처리하는 경우).
(8) 외부 서비스(일례로, 써드 파티 서비스(440))로부터 메시지를 받는 경우(일례로, 캘린더 서비스의 사용자 상태 정보를 수신하는 경우).
컨트롤러 인터페이스를 의미하는 C(540)는 인스턴스가 외부로부터 정보를 전달하기 위한 인터페이스를 포함할 수 있으며, 다음 (9) 및 (10)의 경우에 활용될 수 있다.
(9) 장치(사물)에게 (제어) 메시지를 전달하는 경우(관련 사물 정보 엘리먼트가 설정되어 있는 장치(사물)로 메시지를 전달하는 경우).
(10) 타 인스턴스에게 메시지를 전달하는 경우(타 인스턴스의 리시버 인터페이스 메시지 큐에 들어가는 형태가 아닌, 트리거링 방식을 통해 데이터 전달).
인증(OAuth) 인터페이스를 의미하는 O(550)는 인스턴스가 써드 파티 서비스로 연동하기 위한 인터페이스를 포함할 수 있으며, 다음 (11) 및 (12)의 경우에 활용될 수 있다.
(11) 써드 파티 서비스로 메시지를 전달하는 경우(OAuth 인증이 이루어진 후).
(12) 써드 파티 서비스로 메시지를 수신(질의)하는 경우.
이때, 상술한 (8)과 (12)는 모두 외부 서비스로부터 메시지를 수신하는 경우를 나타내고 있다. 외부 서비스로부터의 메시지는 실시예에 따라 리시버 인터페이스를 통해 수신될 수도 있고, 인증 인터페이스인 O(550)를 통해 수신될 수도 있다.
본 발명의 실시예들에 따른 인스턴스는 개별적인 인터페이스 정보에 대해 각각의 메시지 큐를 생성할 수 있으며, 인터페이스별 메시지 큐에는 기설정된 수(일례로, 100건)의 메시지가 저장될 수 있다. 해당 인스턴스가 비정상적으로 종료되어도(일례로, 에러 상태(error)로 변경 시) 저장된 메시지는 남아 있으며, 다시 정상 동작 상태(run)로 변경 시, 저장된 메시지를 이용할 수 있다. 이때, 인스턴스가 에러 상태일 때 수신되는 메시지들은 인스턴스의 상태와 관계 없이 개별 인터페이스의 메시지 큐상에 저장될 수 있다(서브스크라이버 인터페이스나 리시버 인터페이스의 경우).
이후에서는, 인스턴스가 포함하는 인터페이스들에 대해 더욱 자세히 설명한다.
1. 서브스크라이버 인터페이스는 이미 설명한 바와 같이 인스턴스가 사물장치(Thing) 또는 타 인스턴스의 피더 인터페이스로부터 메시지를 수신 및 구독하기 위한 인터페이스일 수 있다. 사물로부터 메시지를 수신하는 경우, 해당 서브스크라이버 인터페이스는 메시지의 수신에 필요한 물리적 인터페이스의 정보를 해당 사물 정보 'associatedThingInformation' 엘리먼트상에 기재하여야 하며, 이때 필요한 정보는 기본적인 장치의 물리 인터페이스를 어댑테이션(adaptation)하기 위한 정보들을 포함할 수 있다. 또한, 타 인스턴스로부터 메시지를 수신하는 경우, 해당 서브스크라이버 인터페이스는 구독(Subscribe)할 타 인스턴스의 피더 인터페이스에 대한 정보를 필터(Filter) 엘리먼트상에 기재하여야 하며, 피더 인터페이스에 대한 정보는, 해당 인스턴스를 등록하는 과정(Instance Wizard를 이용하여 등록)에서 구독할 인스턴스의 정보를 입력하는 것으로 필터 엘리먼트상에 기재될 수 있다. 이때, 트리거 속성(Trigger attribute)을 'true'로 설정하여 해당 피더 인터페이스의 값이 생성되면, 인스턴스 매니저는 그 즉시 이를 구독하는 서브스크라이버 인터페이스를 호출할 수 있다. 해당 동작은 인스턴스 동작 주기 'InstanceRunningPeriod' 값과 상관없이 수행될 수 있다.
서브스크라이버 인터페이스가 가질 수 있는 속성은 다음 표 2의 일례와 같이 표현될 수 있다.
<xs:element name="subscriber"> <xs:complexType>
<!-- 인스턴스(Instance) 별로 인터페이스(I/F)를 식별하기 위한 식별자로 사용. 자릿수는 최대 3자리까지 이용 가능.-->
<xs:attribute name="id" type="xs:unsignedShort" />
<!-- NAME은 인스턴스를 손쉽게 구분하기 위한 정보로 활용 가능하며, 향후 인스턴스간 연결 시 해당 인스턴스의 I/F 구분을 위해 사용자에게 제공되는 정보로 활용 가능.-->
<xs:attribute name="name" type="xs:string" />
<!-- 타 인스턴스를 구독시 해당 값이 생성되는 경우 즉시 반응의 여부에 따라 설정, 인스턴스 매니저(일례로, 도 3의 프로세스 매니저(311))가 피더 리스트의 트리거링(triggering) 설정 여부에 대해 모니터링 후 즉시 데이터 전달 -->
<xs:attribute name="trigger" type="xs:boolean" />
</xs:complexType> </xs:element>
또한, 서브스크라이버 인터페이스내의 필터가 가질 수 있는 속성은 다음 표 3의 일례와 같이 표현될 수 있다.
<xs:element name="filter"><xs:complexType>
<!-- 다른 인스턴스의 피더 인터페이스를 구독하는 경우 필터에 정의된 조건에 맞는 인터페이스만 구독이 가능 -->
<xs:attribute name="instanceId" type="xs:string"/>
<!-- 구독할 인스턴스의 식별자(ID) 값을 입력(고유값) -->
<xs:attribute name="feederId" type="xs:unsignedShort"/>
<!-- 구독할 인스턴스 내 Feeder의 고유 식별자를 입력 -->
<xs:attribute name="minVersion" type="xs:string"/>
<!-- 구독할 인스턴스 지원 버전의 최소 값을 입력 -->
<xs:attribute name="maxVersion" type="xs:string"/>
<!-- 구독할 인스턴스 지원 버전의 최대 값을 입력 -->
</xs:complexType></xs:element>
</xs:sequence>
2. 피더 인터페이스는 인스턴스가 타 인스턴스로 정보를 노출하기 위한 인터페이스로, 구독하는 인스턴스의 설정에 따라, 즉시 값이 전달되거나 또는 타 인스턴스의 동작시, 값이 타 인스턴스의 입력값으로 전달될 수 있다. 이때, 개별 피더 식별자(ID) 별로 인스턴스 매니저(일례로, 도 3의 프로세스 매니저(311))상에서 메시지 큐를 생성하고, 데이터(메시지)를 메시지 큐에 저장한 후 서브스크라이버 인터페이스를 통해 읽어가게 된다.
피더 인터페이스의 메시지 전달 방식과 관련하여, 피더 인터페이스로부터 메시지를 읽어가는 방식은 서브스크라이버 인터페이스 상에서 트리거 설정여부에 따른 방식과 구독하는 인스턴스의 실행에 따라 입력 값으로 전달되는 방식으로 나뉘게 된다.
해당 피더 인터페이스에 대해 트리거를 설정한 서브스크라이버 인터페이스의 경우 해당 서브스크라이버 인터페이스가 구독하는 피더 인터페이스에 대한 값이 등록될 시 호출되게 된다. 그렇지 않은 경우 인스턴스 매니저가 해당 피더 인터페이스를 구독(Subscribe)하는 타 인스턴스의 실행 시 데이터를 읽어 입력 값으로 전달하게 된다. 이때, 인스턴스 매니저가 해당 피더 인터페이스의 값을 읽어 갔다고 하더라도 곧 바로 메시지 큐 에 데이터를 지우지는 않는다. 해당 메시지의 큐의 크기는 인터페이스별로 기설정된 수(일례로, 100건)를 가질 수 있으며, 해당 인스턴스가 비정상 종료되어도 해당 값은 남아 있을 수 있다.
피더 인터페이스는 다음 표 4와 같이 표현되는 속성을 사용할 수 있으며 대표값을 나타내는 'representative'를 사용(true)하는 경우, 단위(unit)를 지정해야 인스턴스 매니저의 리스트 페이지상에서 해당 데이터와 연동되는 온도, Kcal 등의 단위가 표시될 수 있다.
<xs:attribute name="id" type="xs:unsignedShort" />
<!-- 인스턴스별로 인터페이스를 식별하기 위한 식별자로 사용가능. 자릿수는 최대 3자리까지 이용 가능.-->
<xs:attribute name="name" type="xs:string" />
<!-- NAME은 인스턴스를 손쉽게 구분하기 위한 정보로 활용되며, 향후 인스턴스간 연결 시, 해당 인스턴스의 인터페이스(I/F) 구분을 위해 사용자에게 제공되는 정보로 활용.-->
<xs:attribute name="unit" type="xs:string" />
<!-- 해당 인터페이스를 통해 주고 받는 데이터 값을 정의하는데 사용-->
<xs:attribute name="representative" type="xs:boolean" />
<!-- 대표값을 설정하는 부분으로 해당 값을 설정할 경우 인스턴스 리스트 페이지상의 인스턴스 아이콘에 해당 값이 출력되게 됨 -->
도 6은 본 발명의 일실시예에 있어서, 인스턴스 리스트 페이지의 예를 도시한 도면이다. 도 6은 복수의 인스턴스 아이콘들을 포함하는 페이지의 일부가 표시된 화면(600)을 나타내고 있다. 이때, 화면(600)에서 인스턴스 아이콘에 피더 인스턴스의 대표값 속성이 설정된 예들이 점선타원들(610)을 통해 나타나 있다. 이러한 인스턴스 리스트 페이지는 사용자들에게 제공될 수 있으며, 사용자들은 인스턴스 아이콘을 이용하여 서비스 의도를 발생시킬 수 있다.
3. 리시버 인터페이스는 타 인스턴스로부터 메시지를 호출 받기 위한 인터페이스로서, 타 인스턴스의 컨트롤러 인터페이스를 통해 정보를 전달 받을 수 있다. 타 인스턴스로부터 전달받은 메시지는 수신한 인스턴스에게 직접 전달되게 되고, 해당 인스턴스의 트리거링(실행)이 일어나게 된다. 이러한 트리거링은 메시지를 수신한 인스턴스의 동작 주기를 나타내는 'runningPeroid' 설정과 상관없이 수행될 수 있다.
리시버 인터페이스는 다음 표 5와 같이 나타나는 속성을 사용할 수 있으며, 대표값을 나타내는 'representative'를 사용(true)하는 경우, 단위(unit)를 지정해야 인스턴스 매니저의 리스트 페이지상에서 해당 인스턴스를 제어하는 버튼이 생성될 수 있다.
<xs:attribute name="id" type="xs:unsignedShort" />
<!-- 인스턴스별로 인터페이스를 식별하기 위한 식별자로 사용. 자릿수는 최대 3자리까지 이용 가능-->
<xs:attribute name="name" type="xs:string" />
<!-- NAME은 인스턴스를 손쉽게 구분하기 위한 정보로 활용되며, 향후 인스턴스간 연결 시 해당 인스턴스의 인터페이스(I/F) 구분을 위해 사용자에게 제공되는 정보로 활용-->
<xs:attribute name="unit" type="xs:string" />
<!-- 해당 인터페이스를 통해 주고 받는 데이터 값을 정의하는데 사용된다 -->
<xs:attribute name="representative" type="xs:boolean" />
<!-- 대표값을 설정하는 부분으로 해당 값을 설정할 경우 인스턴스 리스트 페이지상의 인스턴스 아이콘에 해당 값이 출력되게 됨 -->
다시 도 6을 살펴보면, 도 6의 화면(600)에 표시된 아이콘들 중 활성화된 아이콘들에 "ON", "OFF", "Locked"와 같이 인스턴스 아이콘에 대응하는 인스턴스를 제어하기 위한 버튼이 생성된 모습을 나타내고 있다.
4. 컨트롤러 인터페이스는 인스턴스가 타 인스턴스 또는 장치(사물)로 메시지를 전달하기 위한 인터페이스를 포함할 수 있다. 컨트롤러 인터페이스는, 타 인스턴스로 메시지를 전달하기 위해 직접 전달 방식을 통해 해당 인스턴스를 호출할 수 있으며, 메시지는 리시버 인터페이스를 통해 해당 인스턴스로 전달될 수 있다. 예를 들어, 메시지를 수신한 인스턴스의 동작 주기 'runningPeroid'의 설정과 상관없이 메시지의 전달이 트리거링 될 수 있다. 메시지를 장치(사물)로 전달하는 경우, 컨트롤러는 네트워크 어댑터를 통해 메시지를 즉시 전달할 수 있다.
타 인스턴스로 메시지를 전달하는 경우, 타 인스턴스의 리시버 인터페이스의 정보가 필터 엘리먼트내에 기술되어야 한다. 이때, 필터 엘리먼트내에 기술되는 정보는 다음 표 6과 같이 표현될 수 있다.
<xs:element name="filter"><xs:complexType>
<!-- 다른 인스턴스의 리시버로 메시지를 전달하는 경우 필터에 정의된 조건에 맞는 인터페이스에 대해서만 메시지 전달이 가능 -->
<xs:attribute name="instanceId" type="xs:string"/>
<!-- 메시지를 전달할 인스턴스의 ID 값(고유값) -->
<xs:attribute name="receiverId" type="xs:unsignedShort"/>
<!-- 메시지를 전달할 인스턴스 내의 리시버 인터페이스의 ID 값(고유값) -->
<xs:attribute name="minVersion" type="xs:string"/>
<!-- 전달할 인스턴스 지원 버전의 최소 값을 입력 -->
<xs:attribute name="maxVersion" type="xs:string"/>
<!-- 전달할 인스턴스 지원 버전의 최대 값을 입력 -->
</xs:complexType></xs:element>
또한, 컨트롤러 인터페이스는 다음 표 7과 같은 속성을 가질 수 있다.
<xs:attribute name="id" type="xs:unsignedShort" />
<!-- 인스턴스별로 인터페이스를 식별하기 위한 식별자로 사용. 자릿수는 최대 3자리까지 이용 가능-->
<xs:attribute name="name" type="xs:string" />
<!-- NAME은 인터페이스를 손쉽게 구분하기 위한 정보로 활용되며, 향후 인스턴스간 연결 시 해당 인스턴스의 인터페이스(I/F) 구분을 위해 사용자에게 제공되는 정보로 활용-->
</xs:complexType> </xs:element>
5. 인증 인터페이스(이하 'OAuth')는 인스턴스가 외부 써드 파티 서비스와 OAuth 기반 인증을 통한 연동 시 이용하는 인터페이스를 포함할 수 있다. 이를 위해, 사용자는 자신이 연결하고자 하는 대상 서비스의 OAuth 계정 인증을 선 진행하여야 하며, 이러한 OAuth 계정 인증은 인스턴스 위자드(Instance Wizard) 또는 OAuth 메뉴를 통해 별도로 진행될 수 있다.
개별 인스턴스 별로, 연동하기 위한 OAuth의 인증 정보가 설정 또는 설정 취소 될 수 있다. 예를 들어, 다수의 소셜 네트워크 서비스 계정을 각각의 인스턴스별로 다르게 설정/취소할 수 있다.
인스턴스는 OAuth 의 필요에 따라 해당 OAuth 연동이 필수인지 여부를 결정할 수 있다. 해당 정보는 'required' 속성을 통해 나타내며, 'required' 속성이 'true'로 설정된 경우, OAuth 연동이 정상적으로 이루어지지 않으면 해당 인스턴스는 동작(running) 상태가 될 수 없으며, 등록 후 인스턴스는 에러(error) 상태로 남게 된다.
OAuth 인터페이스는 다음 표 8과 같은 속성을 가질 수 있다.
<xs:element name="oAuth"> <xs:complexType>
<!-- 인스턴스별로 인터페이스(I/F)를 식별하기 위한 식별자로 사용. 자릿수는 최대 3자리까지 이용 가능-->
<xs:attribute name="id" type="xs:unsignedShort" />
<!-- OAuth를 연동할 서비스 명을 기입. 일례로, 트위터(Twitter)는 'twitter', 페이스북(Facebook)은 'facebook', 구글(Google)은 'Google'과 같이 입력-->
<xs:attribute name="serviceName" type="xs:string" />
<!-- 연동할 Oauth 계정에서 이용할 정보에 대해 사용자에게 알려주는 설명을 기재. 예를 들어 어떠한 용도로 어느 정보에 접근하는지에 관한 정보 기술-->
<xs:attribute name="description" type="xs:string" />
</xs:complexType> </xs:element>
이후에서는 서비스 시스템이 지원하는 인스턴스의 데이터 타입에 대해 설명한다. 인스턴스의 데이터 타입의 경우, 인스턴스간의 메시지 전달 시 데이터 타입에 따른 처리의 명확성 이외에도 인스턴스 아이콘상에 디스플레이되는 단위 표시 부호를 나타내는 위해 더 이용될 수 있다.
인스턴스의 데이터 타입은 인스턴스의 인터페이스별로 제공하는 단위 정보의 데이터 형을 의미할 수 있다. 서비스 시스템에서는 보다 개발의 용이성과 사용자 직관적인 정보의 활용을 위해 기본적인 데이터 타입(일례로, W3C(World Wide Web Consortium) WebIDL(Web Interface Definition Language) 기준)을 제공하고, 일반적인 장치들의 사용 시 자주 사용하게 되는 데이터 셋을 별도로 제공할 수 있다. 일례로, 데이터 타입은 아래 표 9와 같이 제공될 수 있다.
데이터 타입(Data Type) 설명(Description) 아이콘 표시(Icon Display)
percent 비율 %
onoff 온/오프 Control Icon
celsius 섭씨 °C
lockunlock 락/언락 Control Icon
lux 조명도의 실용단위 Lux
kcal 칼로리 단위 Kcal
Cal 칼로리 단위 Cal
steps 스텝 Steps
floor F
kilogram 질량의 단위 KG
gram 질량의 단위 G
hour 시간의 단위 H
minute 시간의 단위 min
표 9의 예 외에도, 강수량 등을 나타내기 위한 밀리미터(mm) 등과 같이 다양한 데이터 타입이 이용될 수 있다. 예를 들어, 데이터 타입은 이미 설명한 바와 같이 CGS(Centimetre-Gram-Seconds) 및 SI(MKS(Metre-Kilogram-Seconds)) 단위체계를 따를 수 있다.
도 7은 본 발명의 일실시예에 있어서, 의도 프로세스 흐름을 통한 서비스 호출(invocation)의 예를 도시한 도면이다. 장치 로 입력(Device Raw Input, 710)은 장치가 발생시키는 서비스 의도를 의미할 수 있다. 이때, 장치는 사물을 제어하기 위한 사용자의 장치일 수도 있고, 사물(일례로, 센서)일 수도 있다. 여기서, 제1 화살표(720)는 이러한 서비스 의도가 의도 가상 오브젝트의 인스턴스(Intent VO Instance)가 포함하는 서브스크라이버 인터페이스를 통해 의도 가상 오브젝트의 인스턴스로 수신되는 과정을 나타낼 수 있다. 또한, 제2 화살표(730)는 매쉬업 유닛(320)의 의도 핸들러(321)를 통해 서비스 의도를 인증하고, 서비스 의도의 적합성을 판단하며, 서비스 의도를 해석하는 과정을 나타낼 수 있다. 또한, 제3 화살표(740)는 매쉬업 유닛(320)의 인퍼런스 엔진(322)을 통해 서비스 의도에 포함된 입력 데이터의 종류에 따라 적합한 서비스를 추론하고, 추론된 결과에 알맞은 서비스를 검색하는 과정을 나타낼 수 있다. 알맞은 서비스가 검색되면, 의도 가상 오브젝트의 인스턴스는 의도 가상 오브젝트의 인스턴스가 포함하는 피더 인터페이스를 통해 서비스 의도를 검색된 서비스에 대응하는 인스턴스가 구독할 수 있도록 서비스 의도에 대한 정보를 메시지 큐에 저장할 수 있다. 메시지 큐에 저장된 정보를 구독한 인스턴스는 대응하는 사물(장치)를 제어하기 위한 정보를 컨트롤러 인터페이스를 통해 사물로 제공함으로써, 서비스 의도에 따른 서비스가 제공되도록 제어할 수 있다. 예를 들어, 프로세스 매니저(311)는 대응하는 자원(인스턴스)이 수행하는 서비스 로직 프로세스를 실행하고, 해당 서비스 로직 프로세스가 발생시키는 메시지를 전달 및 관리함으로써, 서비스 의도에 따른 서비스가 제공되도록 제어할 수 있다.
도 8은 본 발명의 일실시예에 있어서, 새로운 의도 가상 오브젝트의 설치를 위한 과정의 예를 도시한 도면이다. 도 8은 장치의 입력값 패턴을 감지하여 의도 가상 오브젝트를 설치하는 과정을 나타내고 있다. 여기서, 장치 로 입력(Device Raw Input, 810)은 장치가 발생시키는 특정의 서비스 의도가 아닌, 입력값들을 의미할 수 있다. 예를 들어, 장치 로 입력(Device Raw Input, 810)은 온도 센서 장치가 기설정된 기간마다 전송하는 온도값이나 사용자의 장치에서 사용자의 입력이나 장치의 위치변화 등에 따라 전송되는 값들을 의미할 수 있다. 이때, 서비스 시스템(300)은 이러한 입력값들의 패턴을 감지하여 패턴에 따른 서비스 의도를 확인할 수 있다. 예를 들어, 서비스 시스템(300)은 온도값의 패턴을 감지하여 보일러 장치나 에어컨 장치를 제어하기 위한 서비스 의도를 생성하고, 이러한 서비스 의도를 처리하기 위한 의도 가상 오브젝트를 설치할 수 있다. 다른 예로, 서비스 시스템(300)은 사용자의 장치로부터 위치정보가 계속 전송되다가 일정 기간이상 전송되지 않는 경우, 이러한 패턴이 사용자가 외출하였음을 감지하여 전력소모를 줄이기 위한 서비스 의도를 생성하고, 대응하는 의도 가상 오브젝트를 설치할 수 있다.
제1 화살표(820)는 이러한 장치의 입력값들이 패턴 디텍터 인스턴스의 서브스크라이버 인스턴스를 통해 수신되는 예를 나타낼 수 있다. 제2 화살표(830)는 컨텍스트 매니저(323)의 패턴 디텍터를 통해 입력값들을 분석하여 의도 프로세스를 자동으로 생성 및/또는 추천하는 과정을 나타낼 수 있다. 제3 화살표(840)는 의도 프로세스의 생성에 따라, 생성된 의도 프로세스를 처리하기 위한 새로운 의도 가상 오브젝트가 설치되는 과정을 나타낼 수 있다.
도 9는 본 발명의 일실시예에 있어서, 새로운 의도 가상 오브젝트의 설치를 위한 과정의 다른 예를 도시한 도면이다. 사용자 설정 입력(User Configuration Input, 910)은 사용자가 도 6을 통해 설명한 바와 같은 인스턴스 리스트 페이지 등의 사용자 인터페이스를 통해 원하는 서비스에 대한 설정을 입력하는 경우 서비스 시스템(300)으로 전송되는 값들을 의미할 수 있다. 이때, 컨텍스트 매니저(323)가 포함하는 의도 설정 매니저는 이미 설명한 바와 같이 의도 관련 설정을 관리하는 엔진으로, 사용자에 의한 의도 프로세스의 생성을 지원할 수 있다. 다시 말해, 컨텍스트 매니저(323)가 포함하는 의도 설정 매니저는 사용자 설정 입력(910)을 이용하여 의도 프로세스를 생성할 수 있고, 생성된 의도 프로세스에 따라 새로운 의도 가상 오브젝트가 프로세스 매니저(311)에 설치될 수 있다. 이후, 프로세스 매니저(311)는 설치된 의도 가상 오브젝트의 인스턴스를 관리하여 서비스 의도(생성된 의도 프로세스)에 따른 서비스를 제공할 수 있게 된다.
도 10은 본 발명의 일실시예에 있어서, 서비스 의도 생성 과정의 예를 도시한 흐름도이다. 도 10은 도 3을 통해 설명한 리소스 어댑터(310) 및 매쉬업 유닛(320)을 나타내고 있다.
제1 화살표(1041)가 나타내는 제1 단계에서 리소스 어댑터(310)가 포함하는 리소스 액세스 매니저(313)는 장치로부터 입력(일례로, 도 8을 통해 설명한 장치 로 입력(Device Raw Input, 810))을 수신할 수 있다. 이미 설명한 바와 같이 리소스 액세스 매니저(313)는 장치의 세부 자원(일례로, 센서, 액츄에이터, 메모리, 데이터베이스 등)으로의 접속을 관리할 수 있다. 예를 들어, 리소스 액세스 매니저(313)는 장치의 세부 자원인 센서로부터 센서값을 입력으로 수신할 수 있다.
제2 화살표(1042)가 나타내는 제2 단계에서 리소스 액세스 매니저(313)는 제1 단계에서 수신한 입력을 프로세스 매니저(311)가 관리하는 프로세스 풀(Process Pool, 1010)의 의도 가상 오브젝트 프로세스(iVO(intent Virtual Object) Process, 1020)로 전달할 수 있다.
제3 화살표(1043)가 나타내는 제3 단계에서 의도 가상 오브젝트 프로세스(1020)는 이벤트 패턴 매칭을 수행할 수 있다. 이벤트 패턴 매칭은 프로세스 매니저(311)가 의도 가상 오브젝트 프로세스(1020)를 실행하여 입력에 따른 서비스 의도를 매칭하기 위한 수단일 수 있다.
제4 화살표(1044)가 나타내는 제4 단계에서 의도 가상 오브젝트 프로세스(1020)는 이벤트 패턴 매칭의 결과에 따라 서비스 의도를 생성하여 프로세스 매니저(311)로 전송할 수 있다.
점선박스(1045)가 나타내는 제5 단계에서 프로세스 매니저(311)는 매쉬업 유닛(320)이 포함하는 의도 핸들러(321)로 생성된 서비스 의도를 호출할 수 있다. 이때, 점선박스(1045)가 복수의 화살표들을 포함하는 것은, 하나의 서비스 의도를 처리하기 위해 다수의 자원들에 대한 제어가 필요할 수 있음을 나타낼 수 있다. 예를 들어, 집안의 전력 소모 감소라는 서비스 의도를 위해서는, 전등, 보일러, 냉장고 등과 같이 다수의 장치들에게 전력 소모 감소를 위한 제어가 필요하다. 이때, 프로세스 매니저(311)는 복수의 자원들에 대해 서비스 의도를 호출함으로써, 의도 핸들러(321)로 서비스 의도가 호출될 수 있다.
제5 화살표(1046)가 나타내는 제6 단계에서 의도 핸들러(321)는 각각의 자원을 위한 서비스 의도를 매쉬업 유닛(320)이 포함하는 인퍼런스 엔진(322)으로 전송할 수 있다.
제6 화살표(1047)가 나타내는 제7 단계에서 인퍼런스 엔진(322)은 수신된 서비스 의도에 따른 서비스 검색 쿼리(Service Search Query)를 매쉬업 유닛(320)이 포함하는 서비스 로직 저장소(325)로 전송할 수 있다.
제7 화살표(1048)가 나타내는 제8 단계에서 서비스 로직 저장소(325)는 서비스 검색 쿼리에 따른 응답으로 서비스 검색 쿼리에 매칭되는 서비스 로직을 인퍼런스 엔진(322)으로 제공할 수 있다.
제8 화살표(1049)가 나타내는 제9 단계에서 인퍼런스 엔진(322)은 제공받은 서비스 로직에 기반하여 서비스 프로세스를 생성 및 호출(invocation)할 수 있다. 이때, 서비스 프로세스의 호출에 따라 프로세스 풀(1010)에서 매칭되는 서비스 프로세스(Matched Service Process, 1030)를 통해 서비스 의도에 따른 서비스가 제공될 수 있다.
도 11은 본 발명의 일실시예에 있어서, 서비스 의도 생성 과정의 다른 예를 도시한 흐름도이다. 도 11은 도 3을 통해 설명한 리소스 어댑터(310) 및 매쉬업 유닛(320)을 나타내고 있다. 이때, 도 11에서는 가상 오브젝트들간(프로세스 풀(1010)의 프로세스들간)에 메시지를 주고받기 위해 서비스 시스템(300)상에 메시지 라우터(1120)가 존재하는 예를 나타내고 있다.
제1 화살표(1141)가 나타내는 제1 단계에서 리소스 어댑터(310)가 포함하는 리소스 액세스 매니저(313)는 장치로부터 입력(일례로, 도 7을 통해 설명한 장치 로 입력(Device Raw Input, 710))을 수신할 수 있다.
제2 화살표(1142)가 나타내는 제2 단계에서 리소스 액세스 매니저(313)는 제1 단계에서 수신한 입력을 프로세스 매니저(311)가 관리하는 프로세스 풀(Process Pool, 1010)의 의도 가상 오브젝트 프로세스(iVO(intent Virtual Object) Process, 1110)로 전달할 수 있다.
제3 화살표(1143)가 나타내는 제3 단계에서 의도 가상 오브젝트 프로세스(1110)는 이벤트 패턴 매칭을 수행할 수 있다. 이벤트 패턴 매칭은 프로세스 매니저(311)가 의도 가상 오브젝트 프로세스(1110)를 실행하여 입력에 따른 서비스 의도를 매칭하기 위한 수단일 수 있다.
제4 화살표(1144)가 나타내는 제4 단계에서 의도 가상 오브젝트 프로세스(1110)는 이벤트 패턴 매칭의 결과에 따라 의도를 생성하여 상술한 메시지 라우터(1120)로 전송할 수 있다.
제5 화살표(1145)가 나타내는 제5 단계에서 메시지 라우터(1120)는 의도 핸들러(321)로 의도를 호출할 수 있다.
제6 화살표(1146)가 나타내는 제6 단계에서 의도 핸들러(321)는 호출된 의도를 인퍼런스 엔진(322)으로 전달할 수 있다.
제7 화살표(1147)가 나타내는 제7 단계에서 인퍼런스 엔진(322)은 서비스 검색 쿼리를 서비스 로직 저장소(325)로 전송할 수 있다.
제8 화살표(1148)가 나타내는 제8 단계에서 서비스 로직 저장소(325)는 서비스 검색 쿼리에 따른 응답으로 새로운 서비스 로직(New Service Logic)을 생성하여 인퍼런스 엔진(322)으로 전송할 수 있다.
제9 화살표(1149)가 나타내는 제9 단계에서 인퍼런스 엔진(322)은 새로운 서비스 로직에 기반하여 서비스 프로세스를 설치 및 호출할 수 있다. 이때, 서비스 프로세스의 호출에 따라 프로세스 풀(1010)에서 매칭되는 서비스 프로세스(Matched Service Process, 1130)를 통해 서비스 의도에 따른 서비스가 제공될 수 있다.
도 12는 본 발명의 일실시예에 있어서, 의도를 통한 서비스 프로세스 생성 과정의 예를 도시한 흐름도이다. 도 12는 도 3을 통해 설명한 리소스 어댑터(310) 및 매쉬업 유닛(320)을 나타내고 있다. 도 11 및 도 12가 서비스 의도를 생성하여 매칭되는 서비스 프로세스를 수행하는 과정이라면, 도 12는 새로운 서비스 프로세스를 생성하기 위한 과정일 수 있다.
제1 화살표(1231)가 나타내는 제1 단계에서 리소스 어댑터(310)가 포함하는 리소스 액세스 매니저(313)는 장치로부터 입력을 수신할 수 있다.
제2 화살표(1232)가 나타내는 제2 단계에서 리소스 액세스 매니저(313)는 제1 단계에서 수신한 입력을 프로세스 매니저(311)가 관리하는 프로세스 풀(Process Pool, 1010)의 의도 가상 오브젝트 프로세스(iVO(intent Virtual Object) Process, 1210)로 전달할 수 있다.
제3 화살표(1233)가 나타내는 제3 단계에서 의도 가상 오브젝트 프로세스(1210)는 이벤트 패턴 매칭을 수행할 수 있다. 이벤트 패턴 매칭은 프로세스 매니저(311)가 의도 가상 오브젝트 프로세스(1210)를 실행하여 입력에 따른 서비스 의도를 매칭하기 위한 수단일 수 있다.
제4 화살표(1234)가 나타내는 제4 단계에서 의도 가상 오브젝트 프로세스(1210)는 이벤트 패턴 매칭의 결과에 따라 서비스 의도를 생성하여 프로세스 매니저(311)로 전송할 수 있다.
점선박스(1235)가 나타내는 제5 단계에서 프로세스 매니저(311)는 매쉬업 유닛(320)이 포함하는 의도 핸들러(321)로 생성된 서비스 의도를 호출할 수 있다.
제5 화살표(1236)가 나타내는 제6 단계에서 의도 핸들러(321)는 각각의 자원을 위한 서비스 의도를 매쉬업 유닛(320)이 포함하는 인퍼런스 엔진(322)으로 전송할 수 있다.
제6 화살표(1237)가 나타내는 제7 단계에서 인퍼런스 엔진(322)은 수신된 서비스 의도에 따른 서비스 검색 쿼리(Service Search Query)를 매쉬업 유닛(320)이 포함하는 서비스 로직 저장소(325)로 전송할 수 있다. 이때, 도 12에서는 서비스 로직 저장소(325)에 매칭되는 서비스 로직이 존재하지 않는 경우를 설명한다.
제7 화살표(1238)가 나타내는 제8 단계에서 서비스 로직 저장소(325)는 매칭되는 서비스 로직이 없음을 인퍼런스 엔진(322)으로 알릴 수 있다.
제8 화살표(1239)가 나타내는 제9 단계에서 인퍼런스 엔진(322)은 매쉬업 유닛(320)이 포함하는 서비스 로직 컴포저(324)로 서비스 구성 요청(Service Composition Request)을 전송할 수 있다.
제9 화살표(1240)가 나타내는 제10 단계에서 서비스 로직 컴포저(324)는 새로운 서비스 로직을 생성하여 인퍼런스 엔진(322)의 서비스 구성 요청에 응답할 수 있다.
제10 화살표(1241)가 나타내는 제11 단계에서 인퍼런스 엔진(322)은 새로운 서비스 로직에 따라 서비스 프로세스를 설치 및 호출할 수 있다. 이때, 서비스 프로세스에 대한 설치 및 호출에 따라 프로세스 풀(1010)에 새롭게 생성된 서비스 프로세스(Created Service Process, 1220)를 통해 서비스 의도에 따른 서비스가 제공될 수 있다.
도 13은 본 발명의 일실시예에 있어서, 새로운 의도 가상 오브젝트의 설치를 위한 일례를 도시한 흐름도이다. 도 13은 패턴 탐지(Pattern Detection)을 통해 새로운 의도 가상 오브젝트를 설치하는 예를 나타내고 있다.
제1 화살표(1331)가 나타내는 제1 단계에서 리소스 어댑터(310)가 포함하는 리소스 액세스 매니저(313)는 장치로부터 입력을 수신할 수 있다.
제2 화살표(1332)가 나타내는 제2 단계에서 리소스 액세스 매니저(313)는 수신된 입력을 매쉬업 유닛(320)이 포함하는 컨텍스트 매니저(323)의 패턴 디텍터(1310)로 전달할 수 있다.
제3 화살표(1333)가 나타내는 제3 단계에서 패턴 디텍터(1310)는 전달된 입력에 대한 패턴 탐지를 수행할 수 있다.
제4 화살표(1334)가 나타내는 제4 단계에서 패턴 디텍터(1310)는 탐지된 패턴에 기반하여 의도 가상 오브젝트의 설치 및 호출을 수행할 수 있다. 이때, 도 13의 프로세스 풀(1010)에는 의도 가상 오브젝트의 설치 및 호출에 따라 생성된 의도 가상 오브젝트 프로세스(1320)가 나타나 있다.
도 14는 본 발명의 일실시예에 있어서, 새로운 의도 가상 오브젝트의 설치를 위한 다른 예를 도시한 흐름도이다. 도 14는 사용자 설정(User Configuration)을 통해 새로운 의도 가상 오브젝트를 설치하는 예를 나타내고 있다.
제1 화살표(1421)가 나타내는 제1 단계는 사용자(1410)의 사용자 설정(1420)이 컨텍스트 매니저(323)가 포함하는 의도 설정 매니저(1430)로 전달되는 과정을 나타내고 있다.
제2 화살표(1422)가 나타내는 제2 단계에서 의도 설정 매니저(1430)는 사용자 설정(1420)에 기반하여 의도 가상 오브젝트를 설치 및 호출할 수 있다. 도 14의 프로세스 풀(1010)에는 의도 가상 오브젝트의 설치 및 호출에 따라 생성된 의도 가상 오브젝트 프로세스(1440)가 나타나 있다.
이와 같이, 본 발명의 실시예들에 따르면, 중앙의 에이전트(agent)에서 다수의 장치들이 갖는 자원들을 가상 오브젝트 형태로 가상화하여 관리하면서, 사용자의 의도에 따라 중앙의 에이전트에서 가상 오브젝트들을 제어함으로써, 장치들에 대한 동적 매쉬업 서비스를 제공할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (17)

  1. 장치별 자원에 대한 접속, 상기 자원이 수행하는 서비스 로직에 대한 프로세스 및 상기 자원에 대한 정보를 관리하는 리소스 어댑터(Resource Adaptor); 및
    상기 장치 및 상기 자원 중 적어도 하나와 연관된 서비스 의도(intent)에 대응하는 서비스 로직을 검색하여 상기 검색된 서비스 로직에 대한 프로세스를 실행하거나 또는 상기 서비스 의도에 따른 새로운 서비스 로직을 생성하는 매쉬업 유닛(Mash-up Unit)
    을 포함하고,
    상기 매쉬업 유닛은,
    상기 장치 및 상기 자원 중 적어도 하나와 연관하여 수신된 상기 서비스 의도에 대해 인증을 수행하고, 적합성을 판단하며 상기 서비스 의도를 해석하는 의도 핸들러(Intent Handler); 및
    상기 서비스 의도에 포함된 입력 데이터의 종류에 기반하여 서비스 로직 저장소(Service Logic Repository)에서 서비스 로직을 검색하는 인퍼런스 엔진(Inference Engine)
    을 포함하는 것을 특징으로 하는 서비스 시스템.
  2. 제1항에 있어서,
    상기 리소스 어댑터는,
    상기 자원에 대해 수행 가능한 서비스 로직에 대한 프로세스를 실행하고, 상기 프로세스가 발생시키는 메시지를 다른 프로세스 또는 상기 자원으로 전달 및 관리하는 프로세스 매니저(Process Manager)
    를 포함하는 것을 특징으로 하는 서비스 시스템.
  3. 제2항에 있어서,
    상기 리소스 어댑터는,
    상기 자원 및 상기 장치 중 적어도 하나와의 통신 및 네트워크 연결을 관리하는 네트워크 인터페이스 어댑터(Network Interface Adaptor); 및
    상기 장치의 상기 자원에 접속하고, 상기 자원으로의 접속을 관리하는 리소스 액세스 매니저(Resource Access Manager)
    를 더 포함하는 것을 특징으로 하는 서비스 시스템.
  4. 제1항에 있어서,
    상기 리소스 어댑터는,
    상기 서비스 로직에 대한 프로세스간의 메시지를 전달을 처리하는 메시지 라우터(Message Router)
    를 포함하는 것을 특징으로 하는 서비스 시스템.
  5. 삭제
  6. 제1항에 있어서,
    상기 매쉬업 유닛은,
    상기 서비스 로직 저장소에서 상기 서비스 의도에 대응하는 서비스 로직이 검색되지 않는 경우, 상기 서비스 로직 저장소에 저장된 서비스 로직에 기반하여 새로운 서비스 로직을 생성하는 서비스 로직 컴포저(Service Logic Composer)
    를 더 포함하는 것을 특징으로 하는 서비스 시스템.
  7. 제1항에 있어서,
    상기 매쉬업 유닛은,
    상기 자원과 연관된 서비스 로직을 저장하는 상기 서비스 로직 저장소
    를 더 포함하는 것을 특징으로 하는 서비스 시스템.
  8. 제1항에 있어서,
    상기 매쉬업 유닛은,
    상기 장치 및 상기 자원 중 적어도 하나로부터 입력에 기반하여 상기 서비스 의도를 생성하는 의도 가상 오브젝트 프로세스를 설치 및 호출하는 컨텍스트 매니저(Context Manager)
    를 더 포함하는 것을 특징으로 하는 서비스 시스템.
  9. 제8항에 있어서,
    상기 컨텍스트 매니저는,
    상기 입력의 패턴을 분석하고, 상기 분석의 결과에 기반하여 상기 의도 가상 오브젝트 프로세스를 설치 및 호출하는 패턴 디텍터(Pattern Detector); 및
    사용자 설정(user configuration)에 기반하여 상기 의도 가상 오브젝트 프로세스를 설치 및 호출하는 의도 설정 매니저(Intent Configuration Manager)
    를 포함하는 것을 특징으로 하는 서비스 시스템.
  10. 제1항에 있어서,
    서비스 도메인(service-domain)과 관련된 시맨틱(semantic) 처리 및 상기 서비스 도메인별 온톨로지(Ontology) 관리하는 인텔리전스 유닛(Intelligence Unit)
    을 더 포함하는 것을 특징으로 하는 서비스 시스템.
  11. 제10항에 있어서,
    상기 인텔리전스 유닛은,
    상기 서비스 도메인에서 이용되는 서비스 로직을 관리 및 수행하는 도메인-특정 로직 매니저(Domain-Specific Logic Manager);
    상기 서비스 도메인의 시맨틱 요소를 온톨로지 형태로 정리하여 관리하는 서비스 도메인 온톨로지(Service-Domain Ontology);
    상기 서비스 도메인 온톨로지를 이용하여 시맨틱 추론을 위한 질의를 처리하는 시맨틱 쿼리 엔진(Semantic Query Engine); 및
    입력된 정보를 시맨틱 추론을 이용하여 이벤트로 변환하고, 변환된 이벤트를 상기 매쉬업 유닛 및 상기 리소스 어댑터 중 적어도 하나로 전송하는 시맨틱 트리거 엔진(Semantic Trigger Engine)
    을 포함하는 것을 특징으로 하는 서비스 시스템.
  12. 제1항에 있어서,
    상기 서비스 의도는, (1) 상기 장치 및 상기 자원 중 적어도 하나와 연관된 이벤트가 다루는 서비스의 범위를 특정하는 정보인 액션과, (2) 전달하고자 하는 데이터의 값과 상기 값의 단위의 종류에 대한 정보를 포함하는 데이터를 포함하는 것을 특징으로 하는 서비스 시스템.
  13. 서비스 시스템의 서비스 방법에 있어서,
    상기 서비스 시스템이 포함하는 매쉬업 유닛에서 생성되는 의도 가상 오브젝트 프로세스가 장치 또는 상기 장치의 자원으로부터 입력되는 값을 분석하여 서비스 의도를 생성하는 단계;
    상기 매쉬업 유닛이 포함하는 인퍼런스 엔진이 상기 생성된 서비스 의도에 포함된 입력 데이터의 종류에 기반하여 서비스 로직 저장소에서 서비스 로직을 검색하는 단계;
    상기 인퍼런스 엔진이 상기 검색된 서비스 로직에 매칭하는 서비스 프로세스를 설치 및 호출하는 단계; 및
    상기 매칭하는 서비스 프로세스가 상기 서비스 의도를 처리하는 단계
    를 포함하고,
    상기 매쉬업 유닛이 포함하는 의도 핸들러가 상기 서비스 의도를 생성하는 단계 이후에 상기 장치 및 상기 자원 중 적어도 하나와 연관하여 수신된 상기 서비스 의도에 대해 인증을 수행하고, 적합성을 판단하며 상기 서비스 의도를 해석하는 단계
    를 더 포함하는 것을 특징으로 하는 서비스 방법.
  14. 제13항에 있어서,
    상기 서비스 로직을 검색하는 단계 이후에, 상기 생성된 서비스 의도에 대응하는 서비스 로직이 상기 서비스 로직 저장소에 존재하지 않는 경우, 상기 인퍼런스 엔진이 상기 서비스 로직 저장소에 저장된 서비스 로직에 기반하여 새로운 서비스 로직을 생성하는 단계
    를 더 포함하고,
    상기 설치 및 호출하는 단계는,
    상기 생성된 새로운 서비스 로직에 대한 서비스 프로세스를 생성하는 것을 특징으로 하는 서비스 방법.
  15. 제13항에 있어서,
    상기 설치 및 호출하는 단계 이후에 상기 서비스 의도와 연관하여 매칭되는 복수의 서비스 프로세스가 존재하는 경우, 상기 서비스 시스템이 포함하는 프로세스 매니저가 상기 복수의 서비스 프로세스간에 메시지를 전달하는 단계
    를 더 포함하는 것을 특징으로 하는 서비스 방법.
  16. 제13항에 있어서,
    상기 서비스 의도를 생성하는 단계는,
    상기 입력되는 값을 패턴을 분석하여 의도 가상 오브젝트 프로세스를 생성하고, 상기 생성된 의도 가상 오브젝트 프로세스를 이용하여 이후 입력되는 값을 분석하여 상기 서비스 의도를 생성하고,
    상기 의도 가상 오브젝트 프로세스는, 미리 정의된 로직에 따라 상기 이후 입력되는 값을 검사하여 이벤트를 감지하고, 상기 이벤트의 감지에 따라 사용자 의도를 발생시키는 것을 특징으로 하는 서비스 방법.
  17. 제13항에 있어서,
    상기 서비스 의도를 생성하는 단계는,
    사용자 설정을 수신 및 분석하여 상기 사용자 설정에 대응하는 의도 가상 오브젝트 프로세스를 생성하고, 상기 생성된 가상 오브젝트 프로세스를 이용하여 상기 입력되는 값을 분석하여 상기 서비스 의도를 생성하고,
    상기 의도 가상 오브젝트 프로세스는, 미리 정의된 로직에 따라 상기 입력되는 값을 검사하여 이벤트를 감지하고, 상기 이벤트의 감지에 따라 사용자 의도를 발생시키는 것을 특징으로 하는 서비스 방법.
KR1020140007118A 2014-01-21 2014-01-21 서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법 KR101573594B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140007118A KR101573594B1 (ko) 2014-01-21 2014-01-21 서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140007118A KR101573594B1 (ko) 2014-01-21 2014-01-21 서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20150086914A KR20150086914A (ko) 2015-07-29
KR101573594B1 true KR101573594B1 (ko) 2015-12-04

Family

ID=53876351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140007118A KR101573594B1 (ko) 2014-01-21 2014-01-21 서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101573594B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180089829A (ko) * 2017-02-01 2018-08-09 한국과학기술원 IoT 기기의 가시성을 확보하기 위한 장치 및 그를 위한 컴퓨터 프로그램

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101935014B1 (ko) * 2016-11-10 2019-04-05 서강대학교산학협력단 토픽 가상화를 통한 매쉬업 콘텐츠를 제공하는 발행/구독 기반의 콘텐츠 전달 플랫폼 시스템, 매쉬업 서버 및 콘텐츠 전달 방법
KR102140193B1 (ko) * 2019-10-31 2020-07-31 숭실대학교산학협력단 서비스 매쉬 구조를 이용해 배포된 서비스를 모니터링하는 모니터링 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789919B1 (ko) * 2006-08-16 2008-01-02 한국전자통신연구원 이기종 센서 네트워크 기반의 usn 디렉토리 서비스 제공장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789919B1 (ko) * 2006-08-16 2008-01-02 한국전자통신연구원 이기종 센서 네트워크 기반의 usn 디렉토리 서비스 제공장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180089829A (ko) * 2017-02-01 2018-08-09 한국과학기술원 IoT 기기의 가시성을 확보하기 위한 장치 및 그를 위한 컴퓨터 프로그램
KR101951847B1 (ko) 2017-02-01 2019-05-10 한국과학기술원 IoT 기기의 가시성을 확보하기 위한 장치 및 그를 위한 컴퓨터 프로그램

Also Published As

Publication number Publication date
KR20150086914A (ko) 2015-07-29

Similar Documents

Publication Publication Date Title
KR101605968B1 (ko) 가상 객체의 동적 인스턴스 호스팅 서비스 변경 방법 및 시스템
KR102622652B1 (ko) 컨트롤러 기반 디바이스들의 그룹에 대한 자동 소프트웨어 개발을 위한 방법 및 장치
KR101560470B1 (ko) 스마트 연결 장치 및 스마트 연결 장치를 활용하여 IoT 장치를 제어하기 위한 방법
KR101605967B1 (ko) 어플리케이션 특성을 반영하여 트랜잭션을 관리하는 서비스 방법 및 시스템
CN112335204B (zh) 由助理客户端设备本地控制和/或注册智能设备
KR102252258B1 (ko) 홈 네트워크 시스템에서 홈 디바이스들의 그룹 제어 방법 및 장치
US20170063611A1 (en) User Configuration Mechanism for Internet-of-Things (IOT)
KR101850879B1 (ko) 서비스 인에이블러 기능
EP2840813A1 (en) Service method and system using instance interface of virtualization object in internet of things environment
EP3192216A1 (en) System for connecting and controlling multiple devices
TW201826869A (zh) 設備關聯方法、裝置、終端設備和作業系統
CN111381508A (zh) 一种智能家居的控制方法、系统及存储介质
CN102342138A (zh) 用于提供上下文模型的事件方案的方法、装置和计算机程序产品
KR101573594B1 (ko) 서비스 의도에 기반하여 동적 매쉬업 서비스를 제공하는 서비스 시스템 및 방법
KR101552768B1 (ko) 사물 정보의 가상객체 생성을 위한 인스턴스 프로파일 스키마를 이용한 서비스 방법 및 시스템
JP2021152921A (ja) コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス
KR101493166B1 (ko) IoT 환경에서 가상화된 객체의 인스턴스를 관리하기 위한 웹 기반 사용자 인터페이스를 제공하는 서비스 방법 및 시스템
KR101570619B1 (ko) 인스턴스 호스팅 환경에서의 성능 개선 방법 및 서비스 시스템
KR101494096B1 (ko) 가상화된 객체의 동작 환경을 제공하기 위한 서비스 방법 및 시스템
KR101494097B1 (ko) IoT 환경에서 가상화 오브젝트의 인스턴스 인터페이스를 이용한 서비스 방법 및 시스템
JP7483801B2 (ja) アシスタントクライアントデバイスによるスマートデバイスのローカルな制御および/または登録
Huang et al. Design and implementation of an adaptive Web2. 0 QoS‐based home appliance control service platform
KR101538330B1 (ko) 홈 네트워크 내의 통합 rui 서버 및 통합 rui 서버를 이용한 rui 서버 정보 제공 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right