KR20150032151A - 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법 - Google Patents

사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법 Download PDF

Info

Publication number
KR20150032151A
KR20150032151A KR20140032760A KR20140032760A KR20150032151A KR 20150032151 A KR20150032151 A KR 20150032151A KR 20140032760 A KR20140032760 A KR 20140032760A KR 20140032760 A KR20140032760 A KR 20140032760A KR 20150032151 A KR20150032151 A KR 20150032151A
Authority
KR
South Korea
Prior art keywords
collaboration
objects
item
unit
resource
Prior art date
Application number
KR20140032760A
Other languages
English (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 US14/489,432 priority Critical patent/US20150081798A1/en
Publication of KR20150032151A publication Critical patent/KR20150032151A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

사물 웹(WoT) 환경에서 사물간의 동적 협업을 수행할 수 있도록 하는 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법을 제시한다. 제시된 장치는 디바이스와 서비스 및 프로세스를 포함하는 사물의 정보를 근거로 사물간의 협업 프로세스를 설계하는 사물협업 설계 도구부, 및 사물에 대한 상황정보를 근거로 사물 협업 커뮤니티를 동적으로 구성하여 사물협업 설계 도구부에서 생성된 사물간의 협업 프로세스를 실행하는 사물협업 관리부를 포함한다.

Description

사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법{Apparatus and method for process based collaboration in web of things}
본 발명은 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법에 관한 것으로, 보다 상세하게는 다양한 사물(센서 디바이스, 서비스, 프로세스)이 웹으로 연결된 사물 웹(WoT: Web of Things)에서 사물들이 스스로 협력하여 특정 목적을 달성하도록 하는 장치 및 방법에 관한 것이다.
사물 웹(WoT) 기술은 실세계와 가상세계의 다양한 사물(센서 디바이스, 서비스)을 웹 기술(HTML, URI, HTTP 등)을 이용하여 연결함으로써 사물 인터넷(IoT: Internet of Things)을 실현하기 위한 기술이다.
기존의 사물 웹(WoT) 기술은 REST(Representational State Transfer) 아키텍처 스타일에 따라 사물을 리소스(resource)로 추상화하고 리소스를 식별하기 위한 URI(Uniform Resource Identifier), 리소스 구조, 리소스를 다양한 포맷(HTML, XML, JSON)으로 표현하고 하이퍼링크로 연결하는 방법, 리소스를 액세스(생성, 조회, 갱신, 삭제)하기 위한 HTTP 메소드(POST, GET, PUT, DELETE) 기반 REST API를 제공한다.
따라서, 기존의 사물 웹(WoT) 기술은 다양한 사물을 웹으로 쉽게 연결할 수 있고 연결한 사물을 조합하여 새로운 매시업(Mashup) 서비스를 만들 수 있다는 장점을 가진다. 예를 들어, 센서 디바이스(사물)로부터 수집된 데이터와 지도 서비스(사물)로부터 수집된 데이터를 REST API를 사용하여 취합하고 엑츄에이터(사물)와 연동하여 새로운 매시업 서비스를 만들 수 있다.
그러나, 기존 매시업 기술은 사물을 조합한 단순한 매시업 기능은 제공하나, 사물 간의 협업을 위한 복잡한 프로세스를 처리하기 어렵다. 예를 들어, "당뇨병 환자가 스마트폰으로 혈당 측정(태스크 1)을 하면 스마트폰은 혈당 센서(사물 A)로부터 혈당수치 급상승과 같은 경고(이벤트)가 없으면 음식정보 웹사이트(사물 B)로부터 적합한 음식을 조회(태스크 2)하고 식당 웹사이트(사물 C)로부터 가격을 조회(태스크 3)한 후, 식당추천 웹(사물 D)을 통해 스마트폰의 위치 데이터를 참조하여 가장 가깝고 저렴한 식당을 추천(태스크 4)한다. 환자가 선호 식당(사물 E)을 선택하면 예약 가능할 경우 예약(태스크 5)해주고 불가능하면 다른 식당을 추천(태스크 4)한다"와 같은 사물 간의 협업이 필요한 프로세스를 실행, 모니터링 및 제어하기 어렵다.
또한, 기존 매시업 기술은 사물의 상황 정보를 반영한 동적 협업 서비스가 어렵다. 상기 예에서 식당 예약을 위한 매시업 서비스의 경우는 이용하는 사물이 프로그램 작성시에 정해지므로 여러 사물(스마트폰, 음식 정보 및 식당 추천 웹사이트, 엑츄에이터) 간의 협업 과정에서 발생할 수 있는 예외 상황(예약 불능)에 대처할 수 있는 동적 협업이 어렵다.
또한, REST API를 이용한 매시업 서비스는 이벤트 처리가 어렵다. 센서 디바이스로부터 데이터를 수집하는 방식은 요청-응답(request-response) 형태의 동기식 방식과 수시로 발생하는 이벤트를 감지하는 비동기 방식이 있는데, REST API의 HTTP 메소드는 동기식 방식이므로 이벤트 처리에는 비효율적이다. 예를 들어, 당뇨병 환자의 "혈당 수치 급상승"과 같은 이벤트를 REST API를 이용하여 감지하기 위해서는 주기적으로 이벤트 조회를 해야 한다.
관련선행기술로는, 모바일 디바이스 사용자에게 고품질의 멀티미디어 사용자 경험을 제공하기 위한 미디어 매시업 플랫폼을 제공하는 내용이, 미국공개특허 제2011-0161409호(media mashup system)에 기재되었다. 즉, 미국공개특허 제2011-0161409호(media mashup system)의 발명은 고품질의 콘텐츠 서비스를 제공하기 위해 다양한 센서와 콘텐츠를 조합한 미디어 매시업 서비스를 개발하기 위한 매시업 모델과 시스템 구조를 제공한다.
다른 관련선행기술로는, 웹브라우저내에서 웹매시업 서비스를 실행할 수 있는 워크플로우 엔진 소프트웨어를 기술한 내용이, 미국공개특허 제2010-0125826호(workflow engine for execution of web mashups)에 기재되었다. 즉, 미국공개특허 제2010-0125826호의 발명은 웹매시업 서비스 정의를 해석하여 매시업을 구성하는 컴포넌트들의 실행코드를 생성하고 이를 실행하며 컴포넌트의 실행 순서를 제어한다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 사물 웹(WoT) 환경에서 사물간의 동적 협업을 수행할 수 있도록 하는 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법을 제공함에 그 목적이 있다.
구체적으로, 본 발명은 프로세스 기반 사물협업 설계 방법, 설계한 사물협업 프로세스를 RESTful 웹서비스로 실행하고 프로세스를 동적으로 실행하는 방법, 프로세스 설계 및 실행 방법을 확장성 및 가용성 높게 구현할 수 있는 시스템 구조와 사용자가 이동환경에서 스마트폰 등을 활용하여 간단하게 이용할 수 있는 사물협업 환경을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 사물 웹 환경의 프로세스 기반 사물협업 장치는, 디바이스와 서비스 및 프로세스를 포함하는 사물의 정보를 근거로 사물간의 협업 프로세스를 설계하는 사물협업 설계 도구부; 및 상기 사물에 대한 상황정보를 근거로 사물 협업 커뮤니티를 동적으로 구성하여 상기 사물협업 설계 도구부에서 생성된 사물간의 협업 프로세스를 실행하는 사물협업 관리부;를 포함한다.
이때, 상기 사물협업 설계 도구부는, 상기 사물간의 협업 프로세스를 모델링하여 사물협업 프로세스 명세를 생성하는 사물협업 프로세스 모델러부; 및 상기 사물협업 프로세스 모델러부에서 생성된 사물협업 프로세스 명세를 해석하여 웹서비스 코드를 생성하는 사물협업 실행계획 생성부;를 포함할 수 있다.
이때, 상기 사물협업 실행계획 생성부에 의해 생성된 웹서비스 코드를 저장하는 앱 등록 저장부;를 추가로 포함하여도 된다.
이때, 상기 사물협업 관리부는, 상기 웹서비스 코드를 실행하기 위한 상기 사물의 동적 할당(binding)을 수행하고, 상기 웹서비스 코드를 실행 및 모니터링하는 사물협업 프로세스 관리 엔진부; 및 상기 사물협업 프로세스 관리 엔진부로부터 요청을 받아 적합한 서비스를 바인딩하고 웹서비스 인터페이스를 통해 해당 서비스를 호출 및 실행하는 웹서비스 브로커부;를 포함할 수 있다.
이때, 상기 사물협업 프로세스 관리 엔진부는 협업 실행을 위해 복수개의 엔진을 가진 분산 구조로 구성될 수 있다.
이때, 상기 사물협업 프로세스 명세는 BPMN(Business Process Modeling Notation) 프로세스 명세이되, 자연어 또는 XML로 표현될 수 있다.
이때, 상기 웹서비스 코드는 RESTful 웹서비스 코드이고, 상기 사물협업 실행계획 생성부는 상기 사물협업 프로세스 명세를 해석하여 REST API로 작성된 RESTful 웹서비스 코드로 변환할 수 있다.
이때, 상기 사물에 대한 메타 데이터를 저장하는 사물 등록 저장부, 상기 사물에 대한 상황정보를 저장하는 사물 상황정보 저장부, 및 상기 사물의 리소스 정보를 저장하는 사물 리소스 저장부를 추가로 포함하여도 된다.
이때, 상기 사물 등록 저장부와 상기 사물 상황정보 저장부의 데이터를 분석하여 사물을 추천하는 사물 추천부를 추가로 포함하여도 된다.
이때, 상기 사물 상황정보 저장부의 데이터를 참조하여 상기 사물의 상황정보를 상기 사물협업 관리부에게 제공하는 상황인지부를 추가로 포함하여도 된다.
이때, 상기 사물 등록 저장부의 데이터 구조는 엔티티-관계 모델 형태로 표현되되, 디바이스와 가상 사물의 항목을 포함하되 복수의 리소스를 가지는 사물의 항목을 포함하고, 상기 디바이스의 항목은 센서와 액츄에이터의 항목을 포함하고, 상기 가상 사물의 항목은 서비스와 프로세스의 항목을 포함하고, 상기 서비스의 항목은 아이디와 기능과 입력 및 출력의 항목을 포함하고, 상기 프로세스의 항목은 아이디와 이름과 기능 및 플로우의 항목을 포함하고 태스크의 집합으로 구성되고, 상기 태스크의 항목은 아이디와 기능과 입력과 출력과 다음에 수행될 태스크에 대한 링크 및 예외 처리 항목을 포함하고, 상기 프로세스의 항목과 상기 태스크 항목은 상기 서비스 항목을 통해 상기 사물의 항목에 액세스할 수 있다.
이때, 상기 사물 상황정보 저장부의 데이터 구조는 엔티티-관계 모델 형태로 표현하되, 복수의 멤버를 가지는 커뮤니티의 항목을 포함하고, 상기 복수의 멤버 각각은 컨텍스트의 항목을 포함하고, 상기 컨텍스트의 정보는 5W(what, when, where, who, why) 정보 및 상기 5W 정보를 처리하기 위한 규칙을 포함할 수 있다.
이때, 상기 사물 리소스 저장부의 데이터 구조는 URI로 표현된 리소스 트리 형태이되, 복수의 사물-아이디 리소스를 자식으로 가지는 사물 리소스를 포함하고, 상기 복수의 사물-아이디 리소스에 트리 형태로 구성되는 디바이스 리소스와 서비스 리소스 및 프로세스 리소스를 포함하고, 상기 프로세스 리소스는 태스크 리소스 및 이벤트 리소스를 포함하고, 상기 디바이스 리소스와 상기 서비스 리소스와 상기 프로세스 리소스와 상기 태스크 리소스 및 상기 이벤트 리소스는 하이퍼링크로 연결될 수 있다.
이때, 상기 사물 협업 커뮤니티는 상기 사물간의 협업 프로세스를 실행하기 위한 복수의 사물로 구성되되, 상기 사물에 대한 상황정보를 참조하여 상기 사물간의 협업 프로세스의 태스크에 할당된 그룹이 사물로 바인딩될 수 있다.
이때, 상기 디바이스 리소스 및 상기 이벤트 리소스는 JSON(Javascript Object Notation)으로 표현될 수 있다.
이때, 상기 태스크 리소스는 HTML로 표현될 수 있다.
이때, 상기 서비스 리소스는 XML로 표현될 수 있다.
한편, 본 발명의 바람직한 실시양태에 따른 사물 웹 환경의 프로세스 기반 사물협업 방법은, 사물협업 설계 도구부가, 디바이스와 서비스 및 프로세스를 포함하는 사물의 정보를 근거로 사물간의 협업 프로세스를 설계하는 단계; 및 사물협업 관리부가, 상기 사물에 대한 상황정보를 근거로 사물 협업 커뮤니티를 동적으로 구성하여 상기 사물간의 협업 프로세스를 실행하는 단계;를 포함한다.
이때, 상기 사물간의 협업 프로세스를 설계하는 단계는, 상기 사물간의 협업 프로세스를 모델링하여 사물협업 프로세스 명세를 생성하는 단계; 및 상기 생성된 사물협업 프로세스 명세를 해석하여 웹서비스 코드를 생성하는 단계;를 포함할 수 있다.
이때, 상기 사물간의 협업 프로세스를 동적으로 실행하는 단계는, 상기 사물에 대한 메타 데이터 및 상기 사물에 대한 상황정보를 근거로 상기 사물을 동적으로 할당하는 단계; 상기 동적으로 할당된 사물을 인증하여 상기 사물 협업 커뮤니티를 구성하는 단계; 상기 사물 협업 커뮤니티의 공간내에서 상기 웹서비스 코드를 실행하고 모니터링하는 단계; 및 상기 모니터링하는 단계로부터 요청을 받아 적합한 서비스를 바인딩하고 웹서비스 인터페이스를 통해 해당 서비스를 호출 및 실행하는 단계;를 포함할 수 있다.
이러한 구성의 본 발명에 따르면, 사물 웹(WoT) 환경에서 단순히 디바이스와 서비스(데이터)를 조합하여 협업하는 기존 매시업 방식에서 발전하여, 디바이스와 데이터 및 프로세스가 상호 긴밀하게 연결되어 협업하는 WoE(Web of Everything) 환경을 지원하는 프로세스 기반 사물협업 방법 및 시스템 구조를 제공할 수 있다. 구체적으로, 표준 프로세스 언어인 BPMN을 이용하여 복잡한 사물협업 프로세스(디바이스와 서비스가 연결된 순차 프로세스, 선택적 분기 프로세스, 반복 프로세스, 병행 프로세스, 이벤트 처리)를 편리하게 설계하고 RESTful 웹서비스로 구현할 수 있다. 예를 들어, 기업체의 비즈니스 프로세스(생산, 판매, 물류)를 사물 웹(WoT) 환경에서 구현하고자 할 때 BPMN 프로세스로 쉽게 모델링하여 기존 정보시스템과 연계한 웹서비스로 쉽게 구현할 수 있다.
또한, 사물협업 프로세스 실행을 위해 필요한 사물을 설계 단계에서 바인딩(할당)하지 않고, 실행 단계에서 바인딩하는 방법 및 시스템 구조를 제공함으로써 상황 정보에 따라 적합한 사물을 할당할 수 있다. 이로 인해 효율적인 사물협업이 가능하고 예외상황 발생에 유연하게 대처할 수 있다. 예를 들어, 위치 기반 사물협업 서비스 개발이나 사물이 고장나거나 장애가 발생하였을 경우 다른 사물로 대체, 할당함으로써 사물협업을 원할하게 수행할 수 있다.
또한, RESTful 사물협업 방법과 프록시(proxy) 기반의 분산 사물협업 시스템 구조를 제공함으로써 향후 수많은 사물이 연결되고 협업이 이루어질 사물 웹(WoT) 환경에서 성능, 확장성, 가용성을 보장할 수 있다. 구체적으로, 협업 프로세스 실행을 위해 무거운 서버 기반 BPM(Busines Process Management) 엔진을 사용하지 않고 제한된 컴퓨팅 능력을 가진 디바이스(스마트폰)에도 설치가 가능한 가벼운(light-weight) RESTful 사물협업 프로세스 관리 시스템을 구현할 수 있으며, 프록시(proxy)를 통해서 다수의 사물협업 시스템이 서비스될 수 있다.
또한, 서버 기반의 중앙집중 방식과 에이전트(자율 지능형 SW) 기반의 P2P 방식의 장점을 모두 제공할 수 있다. 구체적으로, 서버에는 대규모 RESTful 프로세스 관리 시스템을 설치하고, 디바이스에는 가벼운 RESTful 프로세스 시스템(에이전트)을 설치하고, 프록시(proxy)가 프로세스 실행에 적합한 프로세스 관리 시스템과 에이전트를 선택하여 분산 처리할 수 있다.
도 1은 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 장치의 구성도이다.
도 2는 본 발명의 실시예에 채용되는 사물협업 모델의 개략적인 구성을 나타낸 도면이다.
도 3은 본 발명의 실시예에 채용되는 사물협업 프로세스의 예를 나타낸 도면이다.
도 4는 도 1에 도시된 사물 등록 저장부의 구성을 설명하기 위한 도면이다.
도 5는 도 1에 도시된 사물 상황정보 저장부의 구성을 설명하기 위한 도면이다.
도 6은 도 1에 도시된 사물 리소스 저장부의 구성을 설명하기 위한 도면이다.
도 7a 내지 도 7d는 도 1에 도시된 사물 리소스 저장부의 리소스를 여러 방식으로 표현한 도면이다.
도 8은 본 발명의 실시예에 채용되는 REST API를 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 방법중에서 설계 과정을 설명하기 위한 플로우차트이다.
도 10 및 도 11은 도 9의 설명에 채용되는 도면들이다.
도 12는 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 방법중에서 실행 과정을 설명하기 위한 플로우차트이다.
도 13은 도 12의 설명에 채용되는 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 장치의 구성도이다.
본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 장치는 사물협업 설계 도구부(10), 및 사물협업 관리부(20)를 포함한다.
사물협업 설계 도구부(10)는 사물협업 프로세스를 설계한다. 바람직하게, 사물협업 설계 도구부(10)는 사물협업 프로세스 모델러부(11) 및 사물협업 실행계획 생성부(13)를 포함할 수 있다. 여기서, 사물협업 프로세스 모델러부(11)는 사물협업 프로세스를 모델링하여 BPMN으로 작성된 사물협업 프로세스 명세(12)를 생성할 수 있다. 사물협업 실행계획 생성부(13)는 사물협업 프로세스 모델러부(11)에서 생성된 사물협업 프로세스 명세(12)를 해석하여 REST API로 작성된 RESTful 웹서비스 코드(14)를 생성할 수 있다.
한편, 사물협업 실행계획 생성부(13)에 의해 생성된 RESTful 웹서비스 코드(14)는 앱 등록 저장부(15)에 등록될 수 있다. 도 1에서는 사물협업 설계도구부(10)와 앱 등록 저장부(15)를 각각 별개의 구성인 것으로 하였으나, 앱 등록 저장부(15)가 사물협업 설계 도구부(10)에 내장되는 것으로 하여도 무방하다.
사물협업 관리부(20)는 사물협업 설계 도구부(10)에서 설계한 사물협업 프로세스를 동적으로 실행하기 위하여 사물협업 커뮤니티를 구성한다. 바람직하게, 사물협업 관리부(20)는 사물협업 프로세스 관리 엔진부(21) 및 웹서비스 브로커부(22)를 포함할 수 있다. 여기서, 사물협업 프로세스 관리 엔진부(21)는 앱 등록 저장부(15)에 저장되어 있거나 사물협업 프로세스 모델러부(11)에서 생성된 RESTful 웹서비스 코드(14)를 실행하고 모니터링하며 제어할 수 있다. 즉, 사물협업 프로세스 관리 엔진부(21)는 RESTful 웹서비스 코드(14)를 실행하기 위한 사물의 동적 할당을 수행하고 RESTful 웹서비스 코드(14)를 실행 및 모니터링할 수 있다. 웹서비스 브로커부(22)는 사물협업 프로세스 관리 엔진부(21)로부터 요청을 받아 적합한 서비스를 바인딩하고 웹서비스 인터페이스(23)를 통해 서비스를 호출 및 실행할 수 있다. 다시 말해서, 상술한 사물협업 관리부(20)는 사물에 대한 리소스 정보 및 사물에 대한 동적 정보를 근거로 사물 협업 커뮤니티를 구성하여 사물협업 설계 도구부(10)에서 생성된 사물간의 협업 프로세스를 동적으로 실행할 수 있다.
한편, 상술한 사물협업 프로세스 관리 엔진부(21)는 확장성과 가용성을 높이기 위해 분산 구조를 가지며, 복수개의 엔진이 서버 또는 사물(디바이스) 내부에 설치될 수 있다. 즉, 사물협업 프로세스 관리 엔진부(21)는 협업 실행을 위해 복수개의 엔진을 가진 분산 구조로 설계(구성)되는 것으로 볼 수 있다.
도 1에서, 사물 추천 시스템(30)은 사물 등록 저장부(16)와 사물 상황정보 저장부(17)의 데이터를 분석하여 사물협업 설계 도구부(10)를 사용하는 앱 개발자 및 사물협업 관리부(20)를 사용하는 앱 사용자에게 추천하는 기능을 제공한다.
그리고, 도 1에서의 상황인지 시스템(40)은 사물 상황정보 저장부(17)의 데이터를 참조하여 사물의 상황 정보를 사물협업 관리부(20)에게 제공한다.
도 1에서는 사물 추천 시스템(30) 및 상황인지 시스템(40)을 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 장치와는 별개의 구성으로 표현하였으나, 사물 추천 시스템(30) 및 상황인지 시스템(40)이 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 장치의 구성요소로 포함되어도 된다. 즉, 사물 추천 시스템(30)은 본 발명의 특허청구범위에 기재된 사물 추천부가 될 수 있고, 상황인지 시스템(40)은 본 발명의 특허청구범위에 기재된 상황인지부가 될 수 있다.
도 2는 본 발명의 실시예에 채용되는 사물협업 모델의 개략적인 구성을 나타낸 도면이고, 도 3은 본 발명의 실시예에 채용되는 사물협업 프로세스의 예를 나타낸 도면이다. 도 1에서 설명한 구성요소와 동일한 구성요소에 대해서는 참조부호를 동일하게 부여한다. 본 발명의 실시예에서의 프로세스 기반 RESTful 사물협업을 수행함에 있어서 사물협업 모델의 개략적인 구성을 살펴보면 다음과 같다.
도 2에서, 사물 등록 저장부(16)는 사물에 대한 정적 정보로서 센서 디바이스, 서비스, 프로세스 등에 관한 메타 데이터를 저장한다. 바람직하게, 사물 등록 저장부(16)는 서비스 등의 메타 데이터(예컨대, id, function, input, output 등)를 저장할 수 있다.
사물 상황정보 저장부(17)는 사물에 대한 동적 정보로서 사물로부터 수집된 이벤트, 시간, 위치 정보 등을 저장한다. 이와 같이 사물 상황정보 저장부(17)에 저장되는 정보들을 사물의 상황정보라고 할 수 있다.
사물 리소스 저장부(18)는 사물 웹(WoT) 환경에서 사물 정보를 URI로 식별되는 리소스로 저장하고, REST API로 액세스하기 위한 저장소로서 사물 등록 저장부(16)의 메타 데이터와 연결된다. 예를 들어, 센서 디바이스의 메타 데이터(ID, 명칭, 제조업체, 기능)는 사물 등록 저장부(16)에 저장되지만, 센서 디바이스로부터 수집된 센서 데이터는 사물 리소스 저장부(18)에 저장되고 REST API를 통해 조회 및 갱신한다. 바람직하게, 사물 리소스 저장부(18)는 웹서비스 명세(URI, 메소드, 파라미터 등)를 저장할 수 있다.
상술한 사물 등록 저장부(16)와 사물 상황정보 저장부(17) 및 사물 리소스 저장부(18)는 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 장치의 구성요소로 이해하여도 무방하다.
도 2에 제시된 사물협업 모델은 사물협업 프로세스(100), 및 사물협업 커뮤니티(200)를 포함한다. 바람직하게, 사물협업 모델은 사물 등록 저장부(16)의 데이터를 참조하여 사물협업 프로세스(100)를 BPMN 프로세스로 정의하는 설계 시점, 및 사물 상황정보 저장부(17)와 사물 리소스 저장부(18)의 데이터를 참조하여 사물협업 커뮤니티(200)를 동적으로 구성하여 사물 웹(WoT) 환경에서 사물협업 프로세스를 실행하는 실행 시점을 포함한다.
사물협업 프로세스(100)에서 BPMN으로 표현된 프로세스는 태스크(task)(예컨대, 시스템에 의해 자동으로 실행되는 일반 태스크, 입/출력 메시지 모두를 필요로 하는 서비스 태스크, 입력 메시지를 필요로 하는 수신 태스크, 출력 메시지를 필요로 하는 송신 태스크, 미리 정의된 애플리케이션의 도움으로 사람이 태스크를 수행하는 유저 태스크, 시스템에서 지원하는 스크립트가 실행되는 스크립트 태스크, 시스템의 도움없이 사람에 의해 수행되는 수동 태스크, 미리 정의된 태스크를 참조하는 참조 태스크 등), 프로세스중 발생하는 사건의 행동을 나타내는 이벤트(event), 플로우(flow)(예컨대, 프로세스 내부 객체들의 흐름을 나타내는 순차 플로우, 프로세스간의 개체들의 흐름을 나타내는 메시지 플로우 등), 및 프로세스의 흐름을 결정하는 게이트웨이(gateway)(분기) 요소를 포함할 수 있다.
도 2의 사물협업 프로세스(100)는 태스크 1 수행 후, 조건에 따라 태스크 2 또는 태스크 3을 수행하고, 이후 이벤트 1이 발생하면 태스크 4 및 태스크 5를 동시에 수행하고 종료하는 프로세스이다. 각 태스크에는 실행을 담당하는 그룹이 할당되며, 그룹은 특정 기능을 수행하는 사물들의 집합이다.
도 2의 사물협업 프로세스(100)에서, 태스크 수행에 필요한 기능을 하는 사물들의 집합인 그룹이 태스크에 할당된다.
한편, 도 2의 사물협업 커뮤니티(200)는 프로세스 실행을 위한 여러 멤버(사물)들로 구성될 수 있다. 이때, 사물협업 커뮤니티(200)는 사물 상황정보 저장부(17)의 데이터를 참조하여 사물협업 프로세스(100)의 태스크에 할당된 그룹이 사물(멤버)로 바인딩된다.
상술한 도 2의 사물협업 모델을 근거로 하는 사물협업 프로세스의 일 예를 제시하여 보면, 도 3에서와 같이 당뇨병 환자의 식이요법 협업 프로세스를 일 예로 제시할 수 있다.
당뇨병 환자의 식이요법 협업 프로세스는 설계 시점에서 혈당측정 태스크에 "혈당 센서 그룹"이 할당되고, 식당예약 태스크에 "저칼로리 식당 그룹"이 할당된다. 그리고, 실행 시점에서 상황정보를 참조하여 "사용 가능한 혈당센서 A"와 "가장 가깝고 저렴한 식당 E(사물)"로 바인딩된다.
바인딩이 완료된 후에, 사물협업 커뮤니티(200)는 사물 리소스 저장부(18)를 REST API로 액세스하여 프로세스를 실행하게 된다.
도 4는 도 1에 도시된 사물 등록 저장부의 구성을 설명하기 위한 도면으로서, 본 발명의 바람직한 일 실시 예에 따른 프로세스 기반 RESTful 사물협업을 수행함에 있어서 사물 등록 저장부(16)를 표현한 E-R(Entity-Relationship) 모델이다.
도 4에서, 사물(thing)(51)은 디바이스(device)(52)와 가상 사물(virtual thing)(55)로 구성되고, 디바이스(device)(52)는 센서(sensor)(53)와 액츄에이터(actuator)(54)로 구성되고, 가상 사물(virtual thing)(55)은 서비스(service)(56)와 프로세스(process)(57)로 구성된다.
서비스(service)(56)는 사물(thing)(51)을 추상화하여 액세스(조회,갱신,삭제)하기 위한 인터페이스로서, 사물 등록 저장부(16)에는 서비스의 메타 데이터(id, function, input, output)가 저장되고, 사물 리소스 저장부(18)에는 웹서비스 명세(URI, 메소드, 파라미터)가 저장된다.
프로세스(process)(57)는 아이디(id), 이름(name), 기능(function), 프로세스(process) 흐름을 제어하기 위한 플로우(flow) 항목을 가지며, 태스크(task)(58)의 집합으로 구성된다.
태스크(task)(58)는 아이디(id), 기능(function), 입력(input), 출력(output), 다음에 수행될 태스크(task)에 대한 링크(link)(URI), 예외(exception) 처리 항목을 포함한다.
프로세스(process)(57)와 태스크(task)(58)는 서비스(service)(56)를 통해 사물(thing)(51)에 액세스한다. 그룹(group)(59)은 역할(role)을 가지며, 복수의 사물(thing)(51)을 포함한다. 사물(thing)(51)은 복수의 리소스(resource)(60)를 가진다.
도 5는 도 1에 도시된 사물 상황정보 저장부(17)의 구성을 설명하기 위한 도면으로서, 본 발명의 바람직한 일 실시 예에 따른 프로세스 기반 RESTful 사물협업을 수행함에 있어서 사물 상황정보 저장부(17)를 표현한 E-R 모델이다.
커뮤니티(community)(61)는 복수의 멤버(member)(62)를 가지며, 멤버(member)(62)는 컨텍스트(context)(63)를 가진다.
컨텍스트(context)(63) 정보는 디바이스(device)(52)의 상황 데이터(예컨대, location, sensor data, event, QoS(Quality of Service)), 서비스(servie)(56)의 상황 데이터(예컨대, status, QoS), 프로세스(process)(57)의 상황 데이터(예컨대, state, log)를 통합 분석하여 추출된다. 바람직하게, 컨텍스트(context)(63) 정보는 5W(what, when, where, who, why) 정보 및 5W 정보를 처리하기 위한 규칙(rule)으로 구성된다. QoS는 사물의 현재 상태 및 서비스 품질을 나타내는 정보이며, 예를 들어 디바이스 상태, 서비스 및 프로세스 트래픽 등이 있다.
도 6은 도 1에 도시된 사물 리소스 저장부(18)의 구성을 설명하기 위한 도면으로서, 본 발명의 바람직한 일 실시 예에 따른 프로세스 기반 RESTful 사물협업을 수행함에 있어서 사물 리소스 저장부(18)의 구조를 URI로 표현한 리소스 트리이다.
상위의 리소스인 /사물(things)(71)은 복수의 /{thing-id}(72)를 자식으로 가지며, 리소스 트리를 구성하는 각 노드(73~88)는 하이퍼링크(85)로 연결될 수 있다. 특히, 리소스인 /프로세스(process)(80)은 하위의 리소스인 /{instance-id}(81), /tasks(82), /{task-id}(83)를 포함하는데, /task-1(84)은 URI를 가지고 /task2(86)와 하이퍼링크(85)로 연결된다.
리소스인 /센서(sensors)(74)의 하위 리소스인 /(sensor-id)(75)의 URI "http://wot.etri.re.kr/things/1/device/sensors/temperature"는 사물 1에 속한 디바이스(device)의 온도(temperature)라는 센서 아이디(sensor-id)를 가진 센서를 표현한다.
리소스인 /{instance-id}(81)는 동일한 프로세스(process)일지라도 여러 사용자들에 의해 실행될 수 있으므로, 이를 해결하기 위해 사용자별로 프로세스 인스턴스(process instance)를 할당한다. 예를 들면, /things/1/process/2/tasks/1(사물 1의 프로세스 2의 task 1)이 실행된 후 하이퍼링크로 연결된 /task-2, /task-n이 차례로 실행된다. 여기서, /{instance-id}(81)은 여러 이벤트가 발생할 수 있으므로, /이벤트(events)(87)는 복수의 /{event-id}(88)를 자식으로 가진다.
도 7a 내지 도 7d는 도 1에 도시된 사물 리소스 저장부(18)의 리소스를 여러 방식으로 표현한 도면으로서, 본 발명의 바람직한 일 실시 예에 따른 프로세스 기반 RESTful 사물협업을 수행함에 있어서 사물 리소스 저장부(18)의 리소스를 여러 방식으로 표현한 것이다.
사물 리소스 저장부(18)의 리소스중에서 센서 리소스(75)의 데이터는 도 7a와 같이 JSON으로 표현할 수 있다.
사물 리소스 저장부(18)의 리소스중에서 태스크 리소스(86)의 데이터는 도 7b와 같이 HTML로 표현할 수 있다. 한편, 사물 리소스 저장부(18)의 리소스중에서 하이퍼링크도 HTML로 표현할 수 있다.
또한, 사물 리소스 저장부(18)의 리소스중에서 이벤트 리소스(88)는 도 7c와 같이 JSON으로 표현할 수 있다.
사물 리소스 저장부(18)의 리소스중에서 서비스 리소스(79)의 데이터는 도 7d와 같이 XML(예컨대, WADL(Web Access Description Language))로 표현할 수 있다. 즉, 서비스 리소스(79)는 도 4의 서비스에 관한 메타 데이터(56)를 참조하여 도 7d와 같이 리소스를 표현할 수 있다.
도 8은 본 발명의 실시예에 채용되는 REST API를 설명하기 위한 도면으로서, 본 발명의 바람직한 일 실시 예에 따른 프로세스 기반 RESTful 사물협업을 수행함에 있어서 사물 리소스 인터페이스 즉, REST API(89)를 설계한 것이다.
도 8에서는, 도 6의 사물 리소스 구조와 도 7a ~ 도 7d의 사물 리소스 표현 및 연결 방식에 따라 리소스(디바이스, 서비스, 프로세스)를 등록하고 액세스하기 위한 HTTP 메소드 기반 REST API를 명시하였다.
상술한 바와 같은 본 발명에 의해, OMG(Object Management Group) 국제표준인 BPMN을 사용하여 사물협업 프로세스를 설계하고, 설계한 사물협업 프로세스(예컨대, BPMN 프로세스)를 RESTful 웹서비스로 변환하여 실행하게 된다. 이하에서는 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 방법에 대해 보다 구체적으로 설명한다.
먼저, 도 9의 플로우차트를 참조하여, 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 방법중에서 설계 과정에 대해 설명한다. 도 10 및 도 11은 도 9의 설명에 채용되는 도면들이다.
이하에서 설명하는 사물 웹 환경의 프로세스 기반 사물협업 방법중에서의 설계 과정은 도 1의 사물협업 설계 도구부(10)에서의 처리 흐름이라고 볼 수 있으며, 당뇨병 환자의 식이요법 실천을 위한 사물협업 프로세스를 설계하고 프로세스를 이용하여 앱을 개발하는 처리 흐름을 설명하는 것으로 한다.
우선, 존재하는 사물(다바이스, 서비스 등)은 웹으로 연결하기 위해 URI가 부여되고, 사물 정보는 사물 리소스 저장부(18)에 등록되며, 사물의 메타 데이터는 검색 및 추천을 위해 사물 등록 저장부(16)에 등록된다.
사물협업 앱 개발자는 사물협업 프로세스 모델러부(11)에서 사물협업의 목표 또는 목적(예컨대, 당뇨병 환자를 위한 식이 요법 관리)을 입력한다.
그에 따라, 사물협업 프로세스 모델러부(11)는 사물협업 앱 개발자에게 목적에 적합한 사물 추천 시스템(30)의 추천 결과를 보여준다(S10).
사물협업 앱 개발자가 원하는 사물(그룹)을 선택하면(S11에서 "Yes") 사물협업 프로세스 모델러부(11)는 사물 등록 저장부(16)의 정보(예컨대, 스마트폰 및 헬스 디바이스, 음식정보 및 식당 웹사이트 접근을 위한 서비스 정보 등)를 보여준다.
적합한 사물(그룹)이 없으면 사물협업 앱 개발자는 목적을 다시 입력하여 원하는 사물(그룹)을 검색 및 선택한다.
이와 같이 사물협업 프로세스 모델러부(11)는 사물협업 앱 개발자에게 목적 달성에 적합한 프로세스(사물) 추천 결과를 보여주고, 해당 사물협업 앱 개발자가 원하는 프로세스를 선택하면 사물 등록 저장부(16)의 프로세스 정보(57)(예컨대, 예약 프로세스, 예외 처리 프로세스 등)를 보여준다. 물론, 적합한 프로세스가 없으면 사물협업 앱 개발자는 다시 프로세스를 검색하거나 다음 단계로 넘어간다.
이후, 사물협업 프로세스 모델러부(11)는 사물협업 앱 개발자가 선택한 사물(그룹)을 조합(mashup)하여 BPMN 기반 사물협업 프로세스를 정의하고(S12) BPMN 프로세스 명세를 생성한다(S13). 여기서, BPMN 프로세스 명세는 사물협업 앱 개발자가 이해하기 쉽도록 자연어, XML 등으로 표현할 수 있다. 예를 들어, "당뇨병 식이요법 프로세스"는 BPMN으로 표현된다. 또한, 도 2, 도 3과 같이 각 태스크에는 도 4에 등록된 그룹이 할당된다.
이어, 사물협업 실행계획 생성부(13)는 사물협업 프로세스 모델러부(11)에서 생성된 BPMN 프로세스 명세(사물협업 프로세스 명세라고도 함)를 해석하여 REST API로 작성된 RESTful 웹서비스 코드로 변환한다(S14, S15). 도 10은 BPMN 프로세스의 RESTful 웹서비스 변환 규칙(91)을 표현한 것으로서, 구체적으로 BPMN으로 표현된 순차 프로세스, 선택적 분기 프로세스, 반복 프로세스, 병렬 분기 프로세스는 RESTful 웹서비스 변환 규칙(91)을 이용하여 RESTful 웹서비스 코드로 변환된다.
RESTful 웹서비스 코드 변환시, 코드에는 사물(thing-id)이 아닌 그룹에 대응되는 사물 변수가 Base URI 형태로 지정된다. 예를 들어, Base URI는 "http://.../&thing-id/.../&instance-id"로 지정된다. 코드의 실행 시점에서, 사물협업 관리부(20)에 의해 변수 &thing-id는 할당된 사물의 thing-id로 변환된다.
또한, RESTful 웹서비스 변환 규칙(91)의 선택적 분기 프로세스에서 이벤트 를 감지할 수 있는 새로운 REST API인 "GET eventbroker"를 제공하고 이를 이용하여 BPMN 이벤트를 웹서비스로 변환하는 규칙을 제공한다. 도 11을 참조하여 "GET eventbroler"의 처리 흐름을 설명한다. 기존의 게시-구독(publisher-subscriber) 방식으로 이벤트 및 메시지 처리를 수행하는 이벤트 버스(92)와 연계하여 이벤트를 RESTful 방식으로 처리하기 위한 이벤트 브로커(event broker)(93)를 제공한다. 여기서, 이벤트 버스(92)는 토픽 이름(topic name)과 구독(subscriber)에 관련된 정보(95)를 참조한다. 예를 들어, 게시(publisher)로부터 이벤트가 발생하면, 이벤트 버스(92)는 이벤트 브로커(93)에게 이벤트를 전달하고, 이벤트 브로커(93)는 이벤트에게 URI를 부여하여 사물 리소스 저장부(18)에 저장하고 토픽(topic)(94)으로 게시한다. 따라서, RESTful 클라이언트(96)는 REST API를 통해서 토픽(94)으로 게시된 이벤트를 감지(GET)할 수 있고, 이벤트를 토픽(94)으로 게시(POST)하여 다른 구독자들도 게시한 이벤트를 감지할 수 있다.
도 10을 참조하여 도 11의 이벤트 처리 흐름을 예로 들면, 도 10의 순차 프로세스에서 도 11의 "subscriber taskn"은 "publisher task1"이 토픽으로 게시한 메시지(이벤트) e1을 "GET eventbroker?q=e1"을 실행하여 전달받을 수 있다. 도 10의 병렬 분기 프로세스에서 도 11의 "subscriber instance", 즉 실행중인 병렬 분기 프로세스는 task1과 taskn이 이벤트 브로커(93)를 통해 게시(POST {e3,e4})한 이벤트 e3, e4를 "GET eventbroker?q={e3,e4}"를 실행하여 전달받을 수 있다.
이와 같이 도 10의 BPMN 프로세스의 RESTful 웹서비스 변환 규칙(91)을 이용하여 BPMN으로 표현된 식이요법 프로세스로부터 RESTful 웹서비스 코드가 생성된다.
이후, 사물협업 실행계획 생성부(13)는 시뮬레이터를 이용하여 RESTful 웹서비스 코드가 정상 동작하는지 테스트한다(S16).
만약, RESTful 웹서비스 코드에 오류가 발생하면 프로세스 정의 단계(S12)를 재수행하고 정상 동작할 때까지 테스트를 반복한다.
RESTful 웹서비스 코드가 정상 동작하면(S17에서 "Yes") 이후의 등록 단계로 넘어간다. 즉, 사물협업 실행계획 생성부(13)는 식당 예약을 위한 RESTful 웹서비스 코드를 구성하는 리소스(process, instance, task)를 사물 리소스 저장부(18)에 등록한다. 그리고, 사물협업 실행계획 생성부(13)는 RESTful 웹서비스 코드를 구성하는 리소스의 메타데이터를 사물 등록 저장부(16)에 등록한다. 또한, 사물협업 실행계획 생성부(13)는 "당뇨병환자의 식당 예약" 웹서비스 코드를 앱 등록 저장부(15)에 등록한다(S18, S19).
상술한 도 9에서, S20은 사물협업 설계 도구부(10)의 사물협업 프로세스 모델러부(11)에서 행해지는 처리 흐름을 나타낸 것이고, S30은 사물협업 설계 도구부(10)의 사물협업 실행계획 생성부(13)에서 행해지는 처리 흐름을 나타낸 것이다.
이번에는, 도 12의 플로우차트를 참조하여, 본 발명의 실시예에 따른 사물 웹 환경의 프로세스 기반 사물협업 방법중에서 실행 과정에 대해 설명한다. 도 13은 도 12의 설명에 채용되는 도면이다.
이하에서 설명하는 사물 웹 환경의 프로세스 기반 사물협업 방법중에서의 실행 과정은 도 1의 사물협업 관리부(20)에서의 처리 흐름이라고 볼 수 있으며, 만성질환자 식이요법 실천을 위한 사물협업 프로세스를 앱으로 실행하는 처리 흐름을 설명하는 것으로 한다.
사물협업 앱 사용자(당뇨병 환자)는 앱 등록 저장부(15)로부터 "식당 예약을 위한 사물협업 앱"을 스마트폰으로 다운로드 받고 실행한다. 사물협업 앱은 자신을 실행할 사물협업 프로세스 관리 엔진부(21)를 결정하기 위해 프로세스 관리 프록시(proxy)(406; 도 13 참조)에 접속한다(S40).
그에 따라, 프로세스 관리 프록시(406)가 앱을 구성하는 사물의 상황 정보(예컨대, 위치, QoS 등)를 분석하여 앱 실행에 적합한 사물협업 프로세스 관리 엔진부(21)를 할당하면 앱은 할당받은 사물협업 프로세스 관리 엔진부(21)와 연결한다. 도 13은 프로세스 관리 프록시(406)의 처리 흐름을 나타낸 것으로서, 협업 클라이언트(411), 즉 사물협업 앱은 사물협업 프로세스 관리 엔진부(21)에게 직접 실행을 요청하는 것이 아니라 프로세스 관리 프록시(406)를 통해 실행을 요청하고, 프로세스 관리 프록시(406)는 내부적으로 적합한 사물협업 프로세스 관리 엔진부(21)에게 실행을 지시하고 실행 결과를 협업 클라이언트(411)에게 전달함으로써, 확장성, 가용성을 높일 수 있다.
이와 같이 사물협업 프로세스 관리 엔진부(21)는 사물 추천 시스템(30)과 연결하여 앱 실행에 적합한 사물을 추천받는다(S41). 다시 말해서, 사물은 상술한 설계 단계에서 태스크에 지정된 그룹에 속해야 한다. 사물협업 프로세스 관리 엔진부(21)는 앱 사용자에게 적합한 사물 추천 시스템(30)의 추천 결과를 보여주고 사용자가 원하는 사물을 선택하면 사물 등록 저장부(16)의 정보(예컨대, 적합한 음식 메뉴를 제공하는 가장 가깝고 저렴한 식당 E를 추천 및 선택)를 보여준다. 한편, 사물협업 프로세스 관리 엔진부(21)는 사물 추천 및 선택이 불필요한 "응급 상황을 위한 앱"인 경우에는 사물 상황정보 저장부(17)를 참조하여 적합한 사물(예를 들어, 당뇨병 환자의 응급 상황 발생시에 가장 가까운 응급의료센터 F에게 통지하고 조치)을 자동 선택한다. 이와 같이 사물협업 프로세스 관리 엔진부(21)는 사용자 선택 또는 자동 선택된 사물을 RESTful 웹서비스 코드로 할당(바인딩)한다.
이후, 사물협업 프로세스 관리 엔진부(21)는 적합하게 할당된 사물들에 대한 인증을 수행하고(S42), 협업을 위한 커뮤니티 공간을 구성하여 사물들을 멤버로 가입시킨다(S43). 사물 커뮤니티 공간의 멤버 간에는 서로 신뢰하고 리소스를 공유할 수 있다. 사물협업 프로세스 관리 엔진부(21)는 할당된 사물을 가지고 RESTful 웹서비스 코드의 사물에 URI를 부여하여 코드를 완성시킨다. 예를 들어, <저칼로리 식당 그룹 검색→식당 예약> 코드를 <현재 위치에서 가장 가까운 E 식당(URI) 검색→E 식당 예약> 코드로 변환한다.
이어, 사물협업 프로세스 관리 엔진부(21)는 사물 커뮤니티 공간 안에서 RESTful 웹서비스 코드의 태스크를 차례로 실행하면서 모니터링한다. 태스크를 실행하면서 사물에 대한 액세스가 필요하면 서비스 프록시(410; 도 13 참조)에게 해당 서비스를 호출하도록 요청한다. 사물협업 프로세스 관리 엔진부(21)는 서비스 프록시(410)를 통해 서비스를 정상 실행하게 되고, 프로세스가 종료되지 않으면 다음 태스크를 실행시킨다(S44).
도 13은 서비스 프록시(410)의 구체적인 처리 흐름을 나타낸 것으로서, 예를 들어 E 식당을 예약하는 태스크는 서비스 프록시(410)를 통해 예약 요청을 하면 서비스 프록시(410)는 사물 등록 저장부(16)로부터 "예약 서비스"를 검색하고, 사물 리소스 저장부(18)에 저장된 서비스 리소스(88) 정보를 참조하여 웹서비스를 호출 및 실행하고 결과를 태스크에게 전달한다. 이와 같이 사물에 대한 액세스를 서비스함으로써, 사물을 추상화시켜서 사물의 종류에 상관없이 공통 인터페이스를 통해 액세스할 수 있다(S45, S46).
한편, 서비스 프록시(410)가 웹서비스를 실행 중에 예외상황을 감지(예컨대, E 식당 예약 불능)하면 서비스 프록시(410)는 사물 상황정보 저장부(17)로부터 현 상황정보를 받아 사용자에게 통지한다. 그에 따라, 사물협업 프로세스 관리 엔진부(21)는 RESTful 웹서비스 코드에 다른 사물을 바인딩하여 태스크를 재실행한다. 예를 들어, <X 음식 선택→E 식당 검색→예약> 코드를 <Y 음식 선택→G 식당 검색→예약> 코드로 변환한다.
반대로, 예외상황이 없는 상태로 프로세스가 종료되면(S47에서 "No", S48에서 "Yes") 사물 웹 환경의 프로세스 기반 사물협업 방법중에서의 실행 과정을 종료한다.
상술한 도 12에서, S50은 사물협업 관리부(20)의 사물협업 프로세스 관리 엔진부(21)에서 행해지는 처리 흐름을 나타낸 것이고, S60은 사물협업 관리부(20)의 웹서비스 브로커부(22)에서 행해지는 처리 흐름을 나타낸 것이다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 사물협업 설계 도구부 11 : 사물협업 프로세스 모델러부
13 : 사물협업 실행계획 생성부 15 : 앱 등록 저장부
16 : 사물 등록 저장부 17 : 사물 상황정보 저장부
18 : 사물 리소스 저장부 20 : 사물협업 관리부
21 : 사물협업 프로세스 관리 엔진부
22 : 웹서비스 브로커부 30 : 사물 추천 시스템
40 : 상황인지 시스템

Claims (18)

  1. 디바이스와 서비스 및 프로세스를 포함하는 사물의 정보를 근거로 사물간의 협업 프로세스를 설계하는 사물협업 설계 도구부; 및
    상기 사물에 대한 상황정보를 근거로 사물 협업 커뮤니티를 동적으로 구성하여 상기 사물협업 설계 도구부에서 생성된 상기 사물간의 협업 프로세스를 실행하는 사물협업 관리부;를 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  2. 청구항 1에 있어서,
    상기 사물협업 설계 도구부는,
    상기 사물간의 협업 프로세스를 모델링하여 사물협업 프로세스 명세를 생성하는 사물협업 프로세스 모델러부; 및
    상기 사물협업 프로세스 모델러부에서 생성된 사물협업 프로세스 명세를 해석하여 웹서비스 코드를 생성하는 사물협업 실행계획 생성부;를 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  3. 청구항 2에 있어서,
    상기 사물협업 실행계획 생성부에 의해 생성된 웹서비스 코드를 저장하는 앱 등록 저장부;를 추가로 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  4. 청구항 2에 있어서,
    상기 사물협업 관리부는,
    상기 웹서비스 코드를 실행하기 위한 상기 사물의 동적 할당을 수행하고, 상기 웹서비스 코드를 실행 및 모니터링하는 사물협업 프로세스 관리 엔진부; 및
    상기 사물협업 프로세스 관리 엔진부로부터 요청을 받아 적합한 서비스를 바인딩하고 웹서비스 인터페이스를 통해 해당 서비스를 호출 및 실행하는 웹서비스 브로커부;를 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  5. 청구항 4에 있어서,
    상기 사물협업 프로세스 관리 엔진부는 협업 실행을 위해 복수개의 엔진을 가진 분산 구조로 구성되는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  6. 청구항 2에 있어서,
    상기 사물협업 프로세스 명세는 BPMN 프로세스 명세이되, 자연어 또는 XML로 표현되는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  7. 청구항 2에 있어서,
    상기 웹서비스 코드는 RESTful 웹서비스 코드이고,
    상기 사물협업 실행계획 생성부는 상기 사물협업 프로세스 명세를 해석하여 REST API로 작성된 RESTful 웹서비스 코드로 변환하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  8. 청구항 1에 있어서,
    상기 사물에 대한 메타 데이터를 저장하는 사물 등록 저장부, 상기 사물에 대한 상황정보를 저장하는 사물 상황정보 저장부, 및 상기 사물의 리소스 정보를 저장하는 사물 리소스 저장부를 추가로 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  9. 청구항 8에 있어서,
    상기 사물 등록 저장부와 상기 사물 상황정보 저장부의 데이터를 분석하여 사물을 추천하는 사물 추천부를 추가로 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  10. 청구항 8에 있어서,
    상기 사물 상황정보 저장부의 데이터를 참조하여 상기 사물의 상황정보를 상기 사물협업 관리부에게 제공하는 상황인지부를 추가로 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  11. 청구항 8에 있어서,
    상기 사물 등록 저장부의 데이터 구조는 엔티티-관계 모델 형태로 표현되되, 디바이스와 가상 사물의 항목을 포함하되 복수의 리소스를 가지는 사물의 항목을 포함하고, 상기 디바이스의 항목은 센서와 액츄에이터의 항목을 포함하고, 상기 가상 사물의 항목은 서비스와 프로세스의 항목을 포함하고, 상기 서비스의 항목은 아이디와 기능과 입력 및 출력의 항목을 포함하고, 상기 프로세스의 항목은 아이디와 이름과 기능 및 플로우의 항목을 포함하고 태스크의 집합으로 구성되고, 상기 태스크의 항목은 아이디와 기능과 입력과 출력과 다음에 수행될 태스크에 대한 링크 및 예외 처리 항목을 포함하고,
    상기 프로세스의 항목과 상기 태스크 항목은 상기 서비스 항목을 통해 상기 사물의 항목에 액세스하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  12. 청구항 8에 있어서,
    상기 사물 상황정보 저장부의 데이터 구조는 엔티티-관계 모델 형태로 표현하되, 복수의 멤버를 가지는 커뮤니티의 항목을 포함하고, 상기 복수의 멤버 각각은 컨텍스트의 항목을 포함하고, 상기 컨텍스트의 정보는 5W(what, when, where, who, why) 정보 및 상기 5W 정보를 처리하기 위한 규칙을 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  13. 청구항 8에 있어서,
    상기 사물 리소스 저장부의 데이터 구조는 URI로 표현된 리소스 트리 형태이되, 복수의 사물-아이디 리소스를 자식으로 가지는 사물 리소스를 포함하고, 상기 복수의 사물-아이디 리소스에 트리 형태로 구성되는 디바이스 리소스와 서비스 리소스 및 프로세스 리소스를 포함하고, 상기 프로세스 리소스는 태스크 리소스 및 이벤트 리소스를 포함하고,
    상기 디바이스 리소스와 상기 서비스 리소스와 상기 프로세스 리소스와 상기 태스크 리소스 및 상기 이벤트 리소스는 하이퍼링크로 연결되는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  14. 청구항 1에 있어서,
    상기 사물 협업 커뮤니티는 상기 사물간의 협업 프로세스를 실행하기 위한 복수의 사물로 구성되되, 상기 사물에 대한 상황정보를 참조하여 상기 사물간의 협업 프로세스의 태스크에 할당된 그룹이 사물로 바인딩된 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 장치.
  15. 사물협업 설계 도구부가, 디바이스와 서비스 및 프로세스를 포함하는 사물의 정보를 근거로 사물간의 협업 프로세스를 설계하는 단계; 및
    사물협업 관리부가, 상기 사물에 대한 상황정보를 근거로 사물 협업 커뮤니티를 동적으로 구성하여 상기 사물간의 협업 프로세스를 실행하는 단계;를 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 방법.
  16. 청구항 15에 있어서,
    상기 사물간의 협업 프로세스를 설계하는 단계는,
    상기 사물간의 협업 프로세스를 모델링하여 사물협업 프로세스 명세를 생성하는 단계; 및
    상기 생성된 사물협업 프로세스 명세를 해석하여 웹서비스 코드를 생성하는 단계;를 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 방법.
  17. 청구항 16에 있어서,
    상기 사물간의 협업 프로세스를 동적으로 실행하는 단계는,
    상기 사물에 대한 메타 데이터 및 상기 사물에 대한 상황정보를 근거로 상기 사물을 동적으로 할당하는 단계;
    상기 동적으로 할당된 사물을 인증하여 상기 사물 협업 커뮤니티를 구성하는 단계;
    상기 사물 협업 커뮤니티의 공간내에서 상기 웹서비스 코드를 실행하고 모니터링하는 단계; 및
    상기 모니터링하는 단계로부터 요청을 받아 적합한 서비스를 바인딩하고 웹서비스 인터페이스를 통해 해당 서비스를 호출 및 실행하는 단계;를 포함하는 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 방법.
  18. 청구항 15에 있어서,
    상기 사물 협업 커뮤니티는 상기 사물간의 협업 프로세스를 실행하기 위한 복수의 사물로 구성되되, 상기 사물에 대한 상황정보를 참조하여 상기 사물간의 협업 프로세스의 태스크에 할당된 그룹이 사물로 바인딩된 것을 특징으로 하는 사물 웹 환경의 프로세스 기반 사물협업 방법.

KR20140032760A 2013-09-17 2014-03-20 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법 KR20150032151A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/489,432 US20150081798A1 (en) 2013-09-17 2014-09-17 Process-based inter-thing collaboration apparatus and method in web of things environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130111781 2013-09-17
KR20130111781 2013-09-17

Publications (1)

Publication Number Publication Date
KR20150032151A true KR20150032151A (ko) 2015-03-25

Family

ID=53025487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140032760A KR20150032151A (ko) 2013-09-17 2014-03-20 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20150032151A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130068848A (ko) * 2011-12-16 2013-06-26 한국전자통신연구원 홈 환경의 물리적 공간정보 관리 시스템 및 방법
WO2018088604A1 (ko) * 2016-11-10 2018-05-17 서강대학교 산학협력단 토픽 가상화를 통한 매쉬업 콘텐츠를 제공하는 발행/구독 기반의 콘텐츠 전달 플랫폼 시스템, 매쉬업 서버 및 콘텐츠 전달 방법
KR20180055198A (ko) * 2016-11-16 2018-05-25 (주)파인원커뮤니케이션즈 디바이스 가상화 시스템 및 방법
WO2018105804A1 (ko) * 2016-12-08 2018-06-14 제주대학교 산학협력단 Bpm 기반의 iot diy 시스템 및 이의 구현방법
US10678420B2 (en) 2015-09-25 2020-06-09 Samsung Electronics Co., Ltd Electronic device and UI providing method therefor
WO2020251331A1 (ko) * 2019-06-13 2020-12-17 제주대학교 산학협력단 사물인터넷의 자원과 서비스 관리 시스템 및 방법, 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체
KR20220062782A (ko) * 2020-11-09 2022-05-17 주식회사 신일이앤씨 스마트도시의 에너지를 관제하는 에너지 관제 시스템
KR20230075101A (ko) * 2021-11-22 2023-05-31 주식회사 마엇 복수의 IoT 장비의 동작을 제어하는 사용자 인터페이스 제공 방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130068848A (ko) * 2011-12-16 2013-06-26 한국전자통신연구원 홈 환경의 물리적 공간정보 관리 시스템 및 방법
US10678420B2 (en) 2015-09-25 2020-06-09 Samsung Electronics Co., Ltd Electronic device and UI providing method therefor
WO2018088604A1 (ko) * 2016-11-10 2018-05-17 서강대학교 산학협력단 토픽 가상화를 통한 매쉬업 콘텐츠를 제공하는 발행/구독 기반의 콘텐츠 전달 플랫폼 시스템, 매쉬업 서버 및 콘텐츠 전달 방법
KR20180052289A (ko) * 2016-11-10 2018-05-18 서강대학교산학협력단 토픽 가상화를 통한 매쉬업 콘텐츠를 제공하는 발행/구독 기반의 콘텐츠 전달 플랫폼 시스템, 매쉬업 서버 및 콘텐츠 전달 방법
KR20180055198A (ko) * 2016-11-16 2018-05-25 (주)파인원커뮤니케이션즈 디바이스 가상화 시스템 및 방법
WO2018105804A1 (ko) * 2016-12-08 2018-06-14 제주대학교 산학협력단 Bpm 기반의 iot diy 시스템 및 이의 구현방법
KR20180066356A (ko) * 2016-12-08 2018-06-19 제주대학교 산학협력단 BPM 기반의 IoT DIY 시스템 및 이의 구현방법
WO2020251331A1 (ko) * 2019-06-13 2020-12-17 제주대학교 산학협력단 사물인터넷의 자원과 서비스 관리 시스템 및 방법, 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체
KR20200142747A (ko) * 2019-06-13 2020-12-23 제주대학교 산학협력단 사물인터넷의 자원과 서비스 관리 시스템 및 방법, 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체
KR20220062782A (ko) * 2020-11-09 2022-05-17 주식회사 신일이앤씨 스마트도시의 에너지를 관제하는 에너지 관제 시스템
KR20230075101A (ko) * 2021-11-22 2023-05-31 주식회사 마엇 복수의 IoT 장비의 동작을 제어하는 사용자 인터페이스 제공 방법

Similar Documents

Publication Publication Date Title
US20150081798A1 (en) Process-based inter-thing collaboration apparatus and method in web of things environment
KR20150032151A (ko) 사물 웹 환경의 프로세스 기반 사물협업 장치 및 방법
Familiar Microservices, IoT, and Azure
Dar et al. A resource oriented integration architecture for the Internet of Things: A business process perspective
Sheng et al. Web services composition: A decade’s overview
Poslad Specifying protocols for multi-agent systems interaction
US20230141866A1 (en) Method and system for optimizing dynamic user experience applications
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
EP2369480A2 (en) Mashup infrastructure with learning mechanism
Soldatos et al. Design principles for utility-driven services and cloud-based computing modelling for the Internet of Things
Aljazzaf Bootstrapping quality of web services
Kourtesis et al. Increased reliability in SOA environments through registry-based conformance testing of web services
Villegas et al. A dynamic context management infrastructure for supporting user-driven web integration in the personal web
US20090099880A1 (en) Dynamic business process prioritization based on context
Vandervelpen et al. Light-weight distributed web interfaces: preparing the web for heterogeneous environments
Affonso et al. A reference architecture to support the development of mobile applications based on self-adaptive services
Derdour et al. An adaptation platform for multimedia applications CSC (component, service, connector)
TWI492155B (zh) 利用雲端服務在行動裝置上執行應用的方法與系統
Farsi et al. QoS-aware framework for performance enhancement of SOA in enterprise IT environments
Plebani et al. MicroMAIS: executing and orchestrating Web services on constrained mobile devices
Luarasi et al. Healthcare based on cloud computing
Hamida et al. Integrated CHOReOS middleware-Enabling large-scale, QoS-aware adaptive choreographies
Sefid‐Dashti et al. A reference architecture for mobile SOA
Botangen Towards the Adaptability of Service-based Systems: Measurement, Requirements Variability, and Context-aware Recommendation
US9742852B2 (en) Switchable business feature with prices and sales integration

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination