KR101399800B1 - 인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템 - Google Patents

인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템 Download PDF

Info

Publication number
KR101399800B1
KR101399800B1 KR1020130029632A KR20130029632A KR101399800B1 KR 101399800 B1 KR101399800 B1 KR 101399800B1 KR 1020130029632 A KR1020130029632 A KR 1020130029632A KR 20130029632 A KR20130029632 A KR 20130029632A KR 101399800 B1 KR101399800 B1 KR 101399800B1
Authority
KR
South Korea
Prior art keywords
instance
node
data
service
profile
Prior art date
Application number
KR1020130029632A
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 KR1020130029632A priority Critical patent/KR101399800B1/ko
Priority to US14/159,821 priority patent/US20140289366A1/en
Application granted granted Critical
Publication of KR101399800B1 publication Critical patent/KR101399800B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템이 개시된다. 서비스 제공 시스템은, 적어도 하나의 물리적 노드와 유무선 네트워크를 통해 연결하여 데이터를 수신하는 네트워크 어댑터 및 프로세스 형태로 설치(deploy)되는 적어도 하나의 프로세스 노드 또는 상기 물리적 노드에 대해 제공되는 프로파일과 적어도 하나의 프로세스를 관리하고, 상기 프로파일 및 상기 적어도 하나의 프로세스를 이용하여 상기 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 적어도 하나의 인스턴스(instance)로 연결하는 인스턴스 매니저를 포함할 수 있다.

Description

인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템{SERVICE PROVIDING METHOD AND SYSTEM FOR INSTANCE HOSTING}
본 발명의 실시예들은 인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템에 관한 것이다.
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) 등)의 사용이 늘어날 것으로 예산된다.
특히, 최근 들어 다양한 형태의 웹 연동형 가젯 디바이스들이 출시되고 있으며, 대다수의 센서 디바이스들의 경우, 웹을 통한 제어 및 모니터링 기능을 제공하고 있다. 또한, 웹을 통한 제어 기능을 제공하기 위한 단말들은, 단말 자체에 웹 서버 기능이 내장되거나 또는 온라인 상의 웹 서비스를 통해 제어될 수 있는 기능을 포함하고 있다.
그러나, 현재는 상술한 기술들, 기기들 또는 서비스들이 개별적으로 관리되고 있는 실정이라, 사용자의 불편함이 따르는 문제점이 있다. 예를 들어, 사용자는 다수의 기기들이 사용자 주위에 존재하나 개별적인 접근 경로(일례로, URL)를 통해 각각의 디바이스들을 제어해야 하는 불편함이 있다. 기기 자체가 웹 접근 기능(서버 기능)을 제공하는 경우에는 개별적인 기기의 접근을 위한 네트워크 연동 및 URL(IP 주소)가 필요하며, 전용 웹 서비스를 통해 서비스가 제공되는 경우에는 서비스별 접근 권 생성 및 URL이 필요하다.
또한, 개별적으로 관리되는 데이터들을 유기적으로 연동하여 활용하기 힘든 문제점이 있다. 예를 들어, 집안의 보일러를 제어하는 센서의 경우 센서 기기가 직접 수집할 수 있는 주변 환경 정보는 사람 거주 유무, 내부 온도, 시간대 정도와 같이 매우 제한적이다. 만약, 이러한 센서 기기가 외부 정보(일례로 외부의 기온, 사용자의 스케쥴 정보 등)를 추가적으로 활용할 수 있다면, 보다 효과적인 제어 기능을 제공할 수 있으나, 각 기술들, 기기들 또는 서비스들마다 데이터들이 개별적으로 관리되고 있기 때문에 이러한 데이터들을 유기적으로 연동하여 활용하기 힘들다.
도 1은 종래기술에 있어서, 기기에서 임베디드 웹 서버를 내장하고 있는 경우의 서비스 제공 방식을 도시한 도면이다. 사용자는 웹과 같은 온라인(Online (Web))(110)을 통해 실제 세계(Physical World)(120)의 기기(IoT Node)(130)에 내장된 임베디드 웹 서버(Embedded Web Server)(140)에 접근할 수 있다. 이때, 임베디드 웹 서버(140)가 기기(130)에 내장되어 있기 때문에 기기(130)에서 생성되는 데이터, 그리고 특정 기능이나 서비스의 처리를 위한 프로세스 로직 모두가 기기(130)에 탑재되어 있다. 따라서, 기기(130)가 제공하는 서비스 영역을 벗어나, 다른 서비스 영역이나 다른 서비스의 데이터와 연동된 또는 융합된 서비스를 제공하는 것이 불가능하다.
도 2는 종래기술에 있어서, 제조사가 별도의 웹 서버를 온라인상에서 제공하는 경우의 서비스 제공 방식을 도시한 도면이다. 도 2에서는 상술한 도 1에서와 달리, 제조사(또는 별도의 서비스 제공자)가 온라인(110)상에 웹 서버(Web Server)(210)를 구축하여 서비스를 제공하는 방식을 도시하고 있다. 이때, 사용자는 온라인(110)상의 웹 서버(210)를 통해 기기(IoT Node)(220)에 접근할 수 있다. 이 경우, 기기(210)에는 웹 서버(210)와 통신하기 위한 모듈(도 2의 HTTP 어댑터(HTTP Adaptor)(230))이 탑재될 수 있다. 따라서, 기기(220)에서 생성되는 데이터, 그리고 특정 기능이나 서비스의 처리를 위한 프로세스 로직 모두가 온라인상에서 제공이 가능하다. 필요에 따라, 데이터는 기기(220)에, 프로세스 로직은 웹 서버(210)상에 존재할 수도 있다. 이 경우에는, 제조사(또는 별도의 서비스 제공자)의 웹 서비스 가용 성능과 호스팅의 영속성에 대한 문제점이 발생할 수 있다.
또한, 도 1 및 도 2를 참조하면, 사용자는 웹 서버(210)를 통해 임베디드 웹 서버(140)가 내장된 기기(130)로 접근할 수 없으며, 반대로 기기(130)의 임베디드 웹 서버(140)를 통해 웹 서버(210)나 기기(220)에 접근할 수 없다. 즉, 객체 인스턴스간에 상호 정보 교류가 불가능하여 연동형 또는 융합형 서비스를 제공할 수 없다.
또한, 도 2를 참조하면, 기기(220)가 서비스의 제공을 위해, 센서 등과 같은 사물로부터 얻어진 정보나 사용자의 개인 정보(사용자의 위치 등) 등을 웹 서버(210)로 제공해야 하기 때문에 사용자의 프라이버시에 대한 문제가 발생할 소지가 존재한다.
IoT(Internet of Things), WoT(Web of Things) 또는 WoO(Web of Objects) 환경에서 이기종의 기기들이나 다양한 서비스들을 연동 또는 융합하여 관리하고, 통합적으로 서비스를 제공하기 위한 서비스 제공 방법 및 시스템을 제공한다.
적어도 하나의 물리적 노드와 유무선 네트워크를 통해 연결하여 데이터를 수신하는 네트워크 어댑터 및 프로세스 형태로 설치(deploy)되는 적어도 하나의 프로세스 노드 또는 상기 물리적 노드에 대해 제공되는 프로파일과 적어도 하나의 프로세스를 관리하고, 상기 프로파일 및 상기 적어도 하나의 프로세스를 이용하여 상기 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 적어도 하나의 인스턴스(instance)로 연결하는 인스턴스 매니저를 포함하는 서비스 제공 시스템이 제공된다.
일측에 따르면, 상기 적어도 하나의 물리적 노드가 다양한 네트워크 인터페이스들 중 적어도 하나를 이용하여 연결되는 기기에 탑재되는 것을 특징으로 할 수 있다.
다른 측면에 따르면, 상기 인스턴스 매니저는, 인스턴스 별로 상기 적어도 하나의 프로세스를 처리하기 위해, 개별 인스턴스를 호출하는 로더 및 상기 개별 인스턴스의 생애주기를 관리하는 기능을 제공하는 인스턴스 라이프사이클 컨트롤러를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 인스턴스 매니저는, 외부에 존재하는 프로파일 및 프로세스에 대한 정보를 다운로드하는 업데이터 및 상기 프로파일에 대한 정보를 파싱하고, 상기 프로세스에 대한 정보를 등록하는 디플로이어를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 인스턴스 매니저는, 상기 인스턴스 매니저에서 발생하는 데이터의 입출력 및 어플리케이션 작동 정보를 로깅하는 로거, 상기 물리적 노드로부터 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 저장하는 데이터베이스 및 상기 프로세스들에 포함된 자바스크립트 구문을 처리하는 자바스크립트 엔진을 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 서비스 제공 시스템은 외부 서비스와의 연동 기능 및 사용자에게 사용자 인터페이스를 제공하는 인스턴스 어플리케이션 서버를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 인스턴스 어플리케이션 서버는, 상기 외부 서비스와의 연동을 위해, 상기 인스턴스의 처리와 관련된 기능을 API(Application Program Interface)의 형태로 상기 외부 서비스를 제공하는 API 노출부 및 사용자 계정 관리 기능, 인스턴스 관리 기능, 시스템 관리 기능 및 API 관리 기능 중 적어도 하나의 기능을 사용자에게 제공하기 위한 사용자 인터페이스를 제공하는 관리 포털을 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 API 노출부는, 상기 프로파일들에 기초하여 상기 인스턴스의 입력값 및 출력값을 인터페이스를 통해 제공하는 레스트풀(RESTful) 관리부, 상기 프로파일들에 기초하여 상기 인스턴스의 출력값을 피드(feed) 형태로 제공하는 피더 및 외부 API를 트리거링하고, API 트리거링 기능을 포함하는 메시지를 해당 API로 전달하는 API 트리거를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 인스턴스 어플리케이션 서버는, 외부 서비스들과의 연동을 위해, 접근 인증을 제어하기 위한 키를 생성하는 키 생성부 및 외부 서비스들과 연동시 인증을 위한 기능을 제공하는 인증부를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 네트워크 어댑터는, 네트워크 인터페이스별 메시지 포맷 또는 노드별 메시지 포맷에 따라 수신된 데이터를 파싱하기 위한 메시지 파서를 포함하는 것을 특징으로 할 수 있다.
임베디드 웹 서버를 탑재한 노드와 연결하거나 또는 웹 서버를 중계하여 노드와 연결하여 노드들로부터 데이터를 수신하는 제1 네트워크 어댑터, 상기 노드들로부터 수신된 데이터를 인스턴스들간에 교환하는 인스턴스 버스 및 상기 노드들에 대해 제공되는 프로파일들 및 프로세스들을 이용하여 상기 복수의 노드들 중 적어도 둘 이상의 노드들로부터 수신된 데이터를 하나의 인스턴스로 연동하여 처리하는 인스턴스 풀을 포함하는 서비스 제공 시스템이 제공된다.
어플리케이션의 설치를 위한 파일을 제공하는 파일 배포 시스템에 있어서, 상기 어플리케이션은, 적어도 하나의 물리적 노드와 유무선 네트워크를 통해 연결하여 데이터를 수신하는 모듈 및 프로세스 형태로 설치(deploy)되는 적어도 하나의 프로세스 노드 또는 상기 물리적 노드에 대해 제공되는 프로파일과 적어도 하나의 프로세스를 관리하고, 상기 프로파일 및 상기 적어도 하나의 프로세스를 이용하여 상기 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 적어도 하나의 인스턴스(instance)로 연결하는 모듈을 포함하는 것을 특징으로 하는 파일 배포 시스템이 제공된다.
적어도 하나의 물리적 노드와 유무선 네트워크를 통해 연결하여 데이터를 수신하는 단계, 프로세스 형태로 설치(deploy)되는 적어도 하나의 프로세스 노드 또는 상기 물리적 노드에 대해 제공되는 프로파일과 적어도 하나의 프로세스를 관리하고, 상기 프로파일 및 상기 적어도 하나의 프로세스를 이용하여 상기 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 적어도 하나의 인스턴스(instance)로 연결하는 단계 및 상기 처리의 결과를 사용자에게 제공하는 단계를 포함하는 서비스 제공 방법이 제공된다.
임베디드 웹 서버를 탑재한 노드 또는 웹 서버를 중계하여 연결된 노드를 통해 데이터를 수신하는 단계, 상기 데이터를 인스턴스들간에 교환하는 단계 및 상기 노드들에 대해 제공되는 프로파일들 및 프로세스들을 이용하여 상기 복수의 노드들 중 적어도 둘 이상의 노드들로부터 수신된 데이터를 하나의 인스턴스로 연동하여 처리하는 단계를 포함하는 서비스 제공 방법이 제공된다.
IoT(Internet of Things), WoT(Web of Things) 또는 WoO(Web of Objects) 환경에서 이기종의 기기들이나 다양한 서비스들을 연동 또는 융합하여 관리하고, 통합적으로 서비스를 제공할 수 있다.
도 1은 종래기술에 있어서, 기기에서 임베디드 웹 서버를 내장하고 있는 경우의 서비스 제공 방식을 도시한 도면이다.
도 2는 종래기술에 있어서, 제조사가 별도의 웹 서버를 온라인상에서 제공하는 경우의 서비스 제공 방식을 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 인스턴스 호스팅을 위한 전체 시스템 구조를 개괄적으로 도시한 일례이다.
도 4는 본 발명의 일실시예에 있어서, 인스턴스 호스팅 게이트웨이의 내부 구조의 일례를 설명하기 위한 블록도이다.
도 5는 본 발명의 일실시예에 있어서, 네트워크 어댑터의 일례를 설명하기 위한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, 인스턴스 매니저의 일례를 설명하기 위한 블록도이다.
도 7은 본 발명의 일실시예에 있어서, 인스턴스 어플리케이션 서버의 일례를 설명하기 위한 블록도이다.
도 8은 본 발명의 다른 실시예에 있어서, 인스턴스 호스팅 플랫폼의 일례를 설명하기 위한 도면이다.
도 9는 본 발명의 다른 실시예에 있어서, 인스턴스 호스팅 플랫폼의 내부 구성을 설명하기 위한 블록도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 3은 본 발명의 일실시예에 있어서, 인스턴스 호스팅을 위한 전체 시스템 구조를 개괄적으로 도시한 일례이다. 도 3은 IoT 프로파일(IoT(Internet of Things) Profile)(310), IoT 노드(IoT Node)(320), 인스턴스 호스팅 게이트웨이(Instance Hosting Gateway)(330) 및 인스턴스 호스팅 플랫폼(Instance Hosting Platform)(340)을 도시하고 있다.
IoT 프로파일(310)은 IoT 노드(320)의 제조사나 개발자가 온라인상에서 제공하는 IoT 노드(320)에 대한 정보를 의미할 수 있다. 예를 들어, 이러한 IoT 프로파일(310)은 IoT 노드(320)에 대한 정보를 사용자가 수동으로 인스턴스 호스팅 게이트웨이(330)에 데이터를 입력해야 하는 불편함을 최소화하기 위해, 제조사나 개발자가 IoT 노드(320)에 대한 정보를 기정의된 XML(eXtensible Markup Language) 스킴(scheme)에 따라 생성한 XML 파일을 의미할 수 있다.
이러한 IoT 프로파일(310)은 IoT 노드(320)에 대한 설명(Description)과 IoT 노드(320)의 동작에 관해 기술된 프로세스(Process)에 대한 식별자를 포함할 수 있다. 예를 들어, 프로세스는 별도의 파일(일례로, 확장자 '.js' 파일)로 온라인상에서 제공될 수 있으며, 프로세스에 대한 식별자는 이러한 파일의 위치를 나타내는 URL일 수 있다. 아래 표 1은 IoT 프로파일(310)이 포함할 수 있는 정보들의 일례를 나타내고 있다.
Figure 112013023956418-pat00001
IoT 노드(320)는 센서 기기와 같은 IoT 환경의 사물에 대응할 수 있으며, 'IoTNodeID'와 같은 자신의 식별자 정보를 제공할 수 있다. 만약, IoT 노드(320)가 스마트 기기와 같은 NC(Non-Constraint) 노드인 경우에는 IoT 노드(320)가 상술한 IoT 프로파일(310)을 직접 제공할 수도 있다.
도 3에서는 설명의 편의를 위해, 하나의 IoT 노드(320)와 IoT 노드(320)에 대한 하나의 IoT 프로파일(310)을 도시하고 있으나, IoT 환경에서는 다수의 IoT 노드들과 IoT 노드들 각각에 대한 IoT 프로파일들이 활용될 수 있음은 너무나 당연하다. 또한, 하나의 IoT 노드에 대한 복수의 IoT 프로파일들이 제공될 수도 있다.
하나의 IoT 노드와 인스턴스(instance)는 1:1, 1:N, N:1, N:M과 같이 다양하게 관계 지어질 수 있다. 또한, 인스턴스는 물리적인 IoT 노드가 없더라도, 프로세스의 형태로 존재 가능하며, 매시업(Mash-up) 프로세스 등과 같이 특정 장치와 연동되는 형태가 아닌 프로세스간 연동을 통해 인스턴스가 생성 및 연동될 수 있다. 예를 들어, 별도의 IoT 노드와 연결하지 않더라도 특정 프로세스가 인스턴스 호스팅 게이트웨이(330)에 설치(deploy)되어 동작함으로써, 인스턴스 호스팅 게이트웨이(330)에서 인스턴스가 생성될 수 있다. 본 명세서에서는 전반적으로 물리적인 장치로서 설명되는 IoT 노드(물리적 노드)와 본 발명의 실시예들에 따른 인스턴스 호스팅 게이트웨이간의 통신을 통해 IoT 노드로부터 수신되는 메시지를 개별 인스턴스와 연결하여 처리하는 실시예를 설명하고 있으나, 상술한 바와 같이, 적어도 하나의 IoT 노드는 물리적인 장치가 아닌 프로세스의 형태(프로세스 노드)로 존재할 수도 있다.
또한, 센서 디바이스 또는 엑추에이터 등과 같은 물리적인 장치 없이 다수의 센서로부터 정보를 받아 이를 온라인상의 다른 웹 서비스 또는 어플리케이션과 연동 기능만을 제공하는 프로세스가 제공될 수도 있다. 예를 들어, 센서들의 정보와 소셜 서비스 또는 사용자가 이용하는 특정 어플리케이션의 상태 정보를 분석해 특정 결과를 제공하는 서비스의 경우, 해당 서비스를 동작시킬 별도의 프로세싱 환경이 필요하다. 이 경우, 본 발명의 실시예들에 따른 인스턴스 호스팅 게이트웨이에서 상기 프로세싱 환경을 제공해줄 수 있다.
인스턴스 호스팅 게이트웨이(330)는 IoT 노드(320)로부터 수신되는 메시지를 개별 인스턴스와 연결해 처리하고, 사용자 또는 서비스의 요청에 따라 외부 서비스와 연동될 수 있다. 이러한 인스턴스 호스팅 게이트웨이(330)는 IoT 노드(320)를 위한 AP(Access Point) 환경에 탑재될 수 있다. 예를 들어, 인스턴스 호스팅 게이트웨이(330)는 AP에 탑재되어 웹 어플리케이션 서버(Web Application Server, WAS) 형태로 동작하는 인스턴스 어플리케이션 서버(Instance Application Server) 부분과 AP상에 소프트웨어 형태, 하드웨어 형태 또는 소프트웨어와 하드웨어의 결합 형태로 탑재(일례로, AP의 운영체제에 소프트웨어의 형태로 탑재되는 모듈과 IoT 노드(320)와의 통신을 위해 하드웨어의 형태로 탑재되는 모듈)되는 부분으로 구성될 수 있다.
일례로, 인스턴스 호스팅 게이트웨이(330)는 특정 공간(일례로, 집안)에 설치된 AP에 포함될 수 있으며, 상기 특정 공간에 포함된 사물들(IoT 노드들)과 통신하여 데이터를 수신 및 처리하고, 외부 서비스와의 연동 서비스를 제공하기 위한 기능을 수행할 수 있다.
이때, 인스턴스 호스팅 게이트웨이(330)는 새로운 IoT 노드(320)를 발견하면, IoT 프로파일(310)을 다운로드하여 설치할 수 있다. 예를 들어, 사용자는 IoT 프로파일(310)에 대응하는 XML 파일의 위치를 인스턴스 호스팅 게이트웨이(330)에 입력할 수 있으며, 인스턴스 호스팅 게이트웨이(330)는 입력된 위치에 기초하여 XML 파일을 다운로드하여 설치할 수 있다.
이러한 인스턴스 호스팅 게이트웨이(330)에 대해서는 이후 도 4 내지 도 7을 통해 더욱 자세히 설명한다.
인스턴스 호스팅 플랫폼(340)은 인스턴스간 상호 연동 기능과 매시업(Mash-up) 기능을 제공할 수 있다. 예를 들어, 인스턴스 호스팅 게이트웨이(330)는 사용자 또는 서비스의 요청에 따라 제공하기 위한 기능을 API(Application Program Interface) 형태로 외부로 제공하여 외부 서비스와 연동하기 위해, 인스턴스 호스팅 플랫폼(340)과 통신할 수 있다.
도 4는 본 발명의 일실시예에 있어서, 인스턴스 호스팅 게이트웨이의 내부 구조의 일례를 설명하기 위한 블록도이다. 본 실시예에 따른 인스턴스 호스팅 게이트웨이(330)는 도 4에 도시된 바와 같이 네트워크 어댑터(Network Adaptor)(410), 네트워크 핸들러(Network Handler)(420), 인스턴스 매니저(Instance Manager)(430) 및 인스턴스 어플리케이션 서버(Instance Application Server)(440)를 포함할 수 있다.
네트워크 어댑터(410)는 인스턴스 호스팅 게이트웨이(330)가 지원하는 네트워크 인터페이스 규격을 통해 IoT 노드와 유무선을 통해 물리적으로 연결하는 기능을 제공할 수 있다. 예를 들어, 네트워크 어댑터(410)는 지그비(Zigbee), 블루투스(Bluetooth), 지웨이브(Z-wave), 이더넷(Ethernet), 와이파이(Wi-Fi)와 같은 무선 랜, USB(Universal Serial Bus) 등과 같이 다양한 형태의 네트워크 연동을 위한 어댑터 기능을 제공할 수 있으며, 각각의 네트워크 인터페이스 규격에 따른 메시지 처리를 위해, 메시지 파싱 기능이 추가적으로 제공될 수 있다.
특히, IoT 환경에서 IoT 노드들은 각각의 특성에 따라 다양한 메시지 포맷을 사용하기 때문에 지그비, 블루투스, 지웨이브 등과 같은 근접 네트워크 인터페이스 기술을 사용하는 경우, 네트워크 어댑터(410)는 개별 네트워크 인터페이스 특성에 따라 IoT 노드들로부터 수신한 메시지 데이터를 인스턴스별 포맷에 알맞게 구조화하는 기능을 더 제공할 수 있다.
이러한 네트워크 어댑터(410)에 대해서는 이후 도 5를 통해 더욱 자세히 설명한다.
네트워크 핸들러(420)는 네트워크 어댑터(410)로부터 수신된 메시지를 인스턴스 매니저(430)로 전달할 수 있다. 또한, 네트워크 핸들러(420)는 네트워크 어댑터(410)가 지그비를 이용하는 경우, 인스턴스별 포맷에 알맞게 구조화된 메시지 값에 대해, 시스템에서 부여한 인스턴스 식별자(Instance ID)를 추가하는 기능을 수행할 수 있다.
인스턴스 매니저(430)는 인스턴스 호스팅을 위한 핵심 기능을 담당하는 모듈로, IoT 프로파일 및 프로세스를 설치(deploy)하는 기능을 제공할 수 있으며, 개별 IoT 노드들의 메시지를 인스턴스로 연동하는 역할 및 각각의 과정들을 로깅하는 역할을 수행할 수 있다.
이러한 인스턴스 매니저(430)에 대해서는 이후 도 6을 통해 더욱 자세히 설명한다.
인스턴스 어플리케이션 서버(440)는 인스턴스 호스팅 게이트웨이(330)의 웹 어플리케이션 서버 기능을 담당할 수 있다. 이때, 인스턴스 어플리케이션 서버(440)를 통해 제공되는 기능들은 웹 인터페이스로 제공될 수 있다.
이러한 인스턴스 어플리케이션 서버(440)에 대해서는 이후 도 7을 통해 더욱 자세히 설명한다.
도 5는 본 발명의 일실시예에 있어서, 네트워크 어댑터의 일례를 설명하기 위한 블록도이다. 본 실시예에 따른 네트워크 어댑터(410)는 지그비(Zigbee), 블루투스(Bluetooth), 지웨이브(Z-wave), 이더넷(Ethernet), 와이파이(Wi-Fi)와 같은 무선 랜, USB(Universal Serial Bus) 등과 같이 다양한 형태의 네트워크 연동을 위한 어댑터 기능을 제공할 수 있다. 또한, 네트워크 어댑터(410)는 각각의 인터페이스별, 인터페이스 내 장치 별로 메시지를 구분하여 수신되는 데이터의 완결성을 보장하기 위한 기능을 제공할 수 있으며, 각각의 네트워크 인터페이스 규격에 따른 메시지 처리를 위해, 메시지 파싱 기능을 제공하기 위한 메시지 파서(510)를 포함할 수 있다.
메시지 파서(510)는 인스턴스 설치(deploy) 과정에서 개별 인스턴스와 연결된 메시지의 구조 정보를 얻기 위해 이용될 수 있다. 이때, 메시지 파서(510)는 개별 단말 장치(IoT 노드)가 제공하는 메시지 포맷에 따라 메시지를 파싱할 수 있다. 일례로, 동일한 지그비 네트워크 인터페이스를 이용하는 기기들간에도 각기 서로 다른 메시지 포맷이 이용될 수 있다.
도 6은 본 발명의 일실시예에 있어서, 인스턴스 매니저의 일례를 설명하기 위한 블록도이다. 본 실시예에 따른 인스턴스 매니저(430)는 메시지 라우터(Message Router)(610), 로더(Loder)(620), 업데이터(Updater)(630), 디플로이어(Deployer)(640), 인스턴스 라이프사이클 컨트롤러(Instance Lifecycle Controller)(650) 및 로거(Logger)(660)를 포함할 수 있다. 또한, 도 4에서 설명한 인스턴스 호스팅 게이트웨이(330)는 필요에 따라 데이터베이스(Simple DB)(670) 및 자바스크립트 엔진(JavaScript Engine)(680)을 더 포함할 수 있다.
메시지 라우터(610)는 도 4를 통해 설명한 네트워크 핸들러(420) 또는 인스턴스 어플리케이션 서버(440) 등으로부터 요청 받은 메시지를 라우팅하는 역할을 수행할 수 있다. 이때, 기본적으로, 메시지 라우터(610)의 모든 트랜잭션(transaction)은 로깅(logging)될 수 있다.
로더(620)는 인스턴스 별로 프로세스를 처리할 때, 개별 인스턴스를 호출하는 역할을 수행할 수 있다. 또한, 로더(620)는 메시지 기반 호출 이외에, 타이머 기반 자체 호출되어야 하는 인스턴스들에 대한 호출 기능 역시 제공할 수 있다. 예를 들어, 로더(620)는 인스턴스 프로세스를 호출함에 있어, 수신된 데이터가 호출해야 할 개별 프로세스의 메서드(method)를 매칭하여 자바스크립트 엔진(680)을 호출하는 기능을 제공할 수 있다. 이를 위해, 로더(620)는 메시지 파라미터별로 호출 메서드를 결정하는 기능을 제공할 수 있다.
업데이터(630)는 외부에 존재하는 IoT 프로파일 및 프로세스 정보를 인스턴스 호스팅 게이트웨이(330)로 다운로드하는 기능을 수행할 수 있다.
디플로이어(640)는 IoT 프로파일의 정보를 파싱하고, 프로세스 정보를 인스턴스 매니저(430)에 등록하는 역할을 수행할 수 있다. 개별 IoT 프로파일과 프로세스 정보는 디플로이 과정을 통해, 정식적으로 인스턴스 호스팅 서비스로서 이용될 수 있다.
인스턴스 라이프사이클 컨트롤러(650)는 인스턴스의 생애주기를 관리하는 기능을 제공하는 모듈로, 로더(620), 업데이터(630) 및 디플로이어(640)를 제어하기 위한 기능을 제공할 수 있다. 일례로, 인스턴스 라이프사이클 컨트롤러(650)는 인스턴스 매니저(430)의 기능들 제어할 수 있으며, 이후 설명될 인스턴스 관리부(Instance Mgmt.)와의 접점 기능을 제공할 수 있다.
로거(660)는 인스턴스 매니저(430)에서 일어나는 데이터 입출력 및 어플리케이션 작동 정보를 로깅하는 기능을 제공할 수 있다.
데이터베이스(670)는 IoT 노드의 데이터를 저장할 수 있다.
자바스크립트 엔진(680)는 자바스크립트를 처리할 수 있다. 예를 들어, IoT 노드의 인스턴스 프로세스는 자바스크립트의 구문에 따라 처리될 수 있으며, 브라우저에서 실행되는 웹 환경의 스크립트와는 달리 독립적인 프로그래밍용 언어로서 활용될 수 있다. 이때, 자바스크립트 엔진(680)은 이러한 프로세스의 자바스크립트 구문을 처리하기 위해 이용될 수 있다. 다른 예로, 인스턴스 어플리케이션 서버(440)의 각각의 기능이 자바스크립트를 기반으로 동작할 수 있다.
도 7은 본 발명의 일실시예에 있어서, 인스턴스 어플리케이션 서버의 일례를 설명하기 위한 블록도이다. 본 실시예에 따른 인스턴스 어플리케이션 서버(440)는 도 7에 도시된 바와 같이, API 노출부(API Exposure)(710) 및 관리 포털(Management Portal)(720)을 포함할 수 있다.
API 노출부(710)는 인스턴스 호스팅 게이트웨이(330)가 제공하는 기능을 API 형태로 외부로 제공하는 기능을 수행할 수 있다. 이때, API 노출부(610)는 도 7에 도시된 바와 같이 레스트풀 관리부(RESTful)(711), 피더(Feeder)(712), API 트리거(API Trigger)(713), 키 생성부(Key Generator)(714) 및 인증부(OAuth)(715)를 포함할 수 있다.
레스트풀 관리부(711)은 IoT 프로파일의 정보를 바탕으로 IoT 노드 인스턴스의 입력값, 출력값을 레스트풀 관리부(711)의 인터페이스로 제공하는 역할을 수행할 수 있다.
피더(712)는 IoT 프로파일의 정보를 바탕으로 IoT 노드 인스턴스의 출력값을 피드(feed) 형태로 제공할 수 있다. 이때, 피드 형태로 제공되는 형식은 JSON(JavaScript Object Notation) 및 XML 중 적어도 하나의 형식을 따를 수 있다.
API 트리거(713)는 써드 파티(3rd party) API와 같은 외부 API를 트리거링하는 기능을 제공할 수 있다. 이때, API 트리거(713)는 메시지가 인스턴스의 서비스 특성에 따른 API 트리거링 기능을 포함하는 경우, 해당 API로 메시지를 전달(push)할 수 있다.
키 생성부(714)는 외부 서비스들과의 연동을 위해, 접근 인증을 제어하기 위한 키 생성 기능을 제공할 수 있다.
인증부(715)는 외부 서비스들과 연동시 인증을 위한 기능을 제공할 수 있다. 예를 들어, 인증부(715)는 키 생성부(714)에서 생성된 키를 이용하여 외부 서비스들에 대한 인증을 수행할 수 있다.
관리 포털(720)은 인스턴스 호스팅 게이트웨이(330)의 기능을 사용자가 웹이나 어플리케이션을 통해 조작하기 위한 기능을 제공할 수 있다. 이때, 관리 포털(720)은 도 7에 도시된 바와 같이, 사용자 관리부(User Mgmt.)(721), 인스턴스 관리부(Instance Mgmt.)(722), 시스템 관리부(System Mgmt.)(723) 및 API 관리부(API Mgmt.)(724)를 포함할 수 있다.
사용자 관리부(721)는 사용자 계정 관리 기능(사용자 인터페이스)을 웹 형태로 제공할 수 있다.
인스턴스 관리부(722)는 인스턴스 관리 기능(사용자 인터페이스)을 웹 형태로 제공할 수 있다.
시스템 관리부(723)는 시스템 관리 기능(사용자 인터페이스)을 웹 형태로 제공할 수 있다.
API 관리부(724)는 API 관리 기능(사용자 인터페이스)을 웹 형태로 제공할 수 있다.
이미 설명한 바와 같이, 본 실시예에 따른 인스턴스 호스팅 게이트웨이(330)를 구성하는 요소들의 적어도 일부는 소프트웨어 형태로 구현될 수 있다. 이 경우, 이러한 적어도 일부는 복수의 모듈을 포함하는 어플리케이션의 형태로 제공될 수 있으며, 이러한 어플리케이션의 설치를 위해 파일을 제공하는 파일 배포 시스템이 제공될 수 있다. 일실시예로, 어플리케이션은, 복수의 노드들과 유무선 네트워크를 통해 연결하여 복수의 노드들로부터 데이터를 수신하는 모듈 및 복수의 노드들에 대해 제공되는 프로파일들 및 프로세스들을 이용하여 복수의 노드들 중 적어도 둘 이상의 노드들로부터 수신된 데이터를 하나의 인스턴스로 연동하여 처리하는 모듈을 포함할 수 있다. 다른 실시예로, 이러한 어플리케이션은 복수의 노드들이 연결되는 액세스 포인트(Access Point, AP)에 설치될 수 있다. 이러한 모듈들은, 인스턴스 호스팅 게이트웨이(330)를 구성하는 요소들 중 어떠한 요소들이 소프트웨어 형태로 구현되는가에 따라 달라질 수 있다.
또한, 본 실시예에 따른 인스턴스 호스팅 게이트웨이(330)가 수행하는 단계들이 포함된 서비스 제공 방법이 제공될 수 있다. 예를 들어, 서비스 제공 방법은 복수의 노드들과 유무선 네트워크를 통해 연결하여 복수의 노드들로부터 데이터를 수신하는 단계, 복수의 노드들에 대해 제공되는 프로파일들 및 프로세스들을 이용하여 복수의 노드들 중 적어도 둘 이상의 노드들로부터 수신된 데이터를 하나의 인스턴스로 연동하여 처리하는 단계 및 처리의 결과를 웹이나 어플리케이션을 통해 사용자에게 제공하는 단계를 포함할 수 있다. 다른 실시예로, 적어도 둘 이상의 노드들로부터 수신된 데이터를 하나의 인스턴스로 연동하여 처리하는 단계는 인스턴스 별로 프로세스를 처리하기 위해, 개별 인스턴스를 호출하는 단계 및 개별 인스턴스의 생애주기를 관리하는 기능을 제공하는 단계를 포함할 수 있다.
도 8은 본 발명의 다른 실시예에 있어서, 인스턴스 호스팅 플랫폼의 일례를 설명하기 위한 도면이다. 도 3의 실시예에서 설명한 인스턴스 호스팅 플랫폼(340)은 특정 공간내의 AP에 탑재된 인스턴스 호스팅 게이트웨이(330)로부터 온라인을 통해 API를 제공받아 처리하여, 인스턴스간 상호 연동 기능과 매시업(Mash-up) 기능을 제공하였다. 도 8에서 설명하는 다른 실시예에 따른 인스턴스 호스팅 플랫폼(800)은 도 3의 인스턴스 호스팅 게이트웨이(330)와 인스턴스 호스팅 플랫폼(340)이 결합된 형태로, 온라인상에서 서비스를 제공할 수 있다.
도 8의 인스턴스 호스팅 플랫폼(800)은 외부와의 연결을 위한 구성요소들로서 인스턴스 호스팅 매니저(Instance Hosting Manager)(810), 제1 네트워크 어댑터(HTTP Adaptor)(820) 및 제2 네트워크 어댑터(HTTP Adaptor)(830)를 포함할 수 있다. 인스턴스 호스팅 플랫폼(800)이 포함할 수 있는 다른 구성요소들에 대해서는 도 9를 통해 더욱 자세히 설명한다.
인스턴스 호스팅 매니저(810)는 엔드 유저(End User)와 연결하기 위한 기능을 제공할 수 있다. 엔드 유저는 IoT 노드들의 사용자들이 이용하는 단말기를 의미할 수 있으며, 단말기에 설치된 적어도 하나의 웹브라우저와 적어도 하나의 어플리케이션을 통해 인스턴스 호스팅 플랫폼(800)과 통신할 수 있다.
제1 네트워크 어댑터(820)는 소셜 네트워크 서비스나 지도 서비스, 날씨 서비스 등과 같이 다양한 외부 서비스들을 나타내는 개인 인스턴스들(Personal Instances)과의 연결을 위한 기능을 제공할 수 있다. 예를 들어, 제1 네트워크 어댑터(820)는 다양한 외부 서비스들을 제공하는 서버들과의 연결을 위해 이용될 수 있다. 외부 서비스에 따른 인스턴스의 정보는 서비스별로 개별적인 형태로 존재할 수 있다.
제2 네트워크 어댑터(830)는 다양한 IoT 노드들과 연결하기 위한 기능을 포함할 수 있다. 예를 들어, 인스턴스 호스팅 플랫폼(800)은 도 1 및 도 2를 통해 각각 설명한 기기들(130 및 220)과 같이 다양한 형태로 서비스를 제공하는 기존의 IoT 노드들과도 연동하여 서비스를 제공하는 것이 가능할 수 있다.
도 9는 본 발명의 다른 실시예에 있어서, 인스턴스 호스팅 플랫폼의 내부 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 인스턴스 호스팅 플랫폼(800)은 도 8에서 설명한 구성요소들 이외에, 인스턴스 업데이트 매니저(Instance Update Manager)(840), 인스턴스 버스(Instance BUS)(850), 인스턴스 풀(Instance Pool)(860), 인스턴스 로거(Instance Logger)(870), 인스턴스 모니터(Instance Monitor)(880) 및 인스턴스 라이프사이클 매니저(Instance Lifecycle Manager)(890)를 더 포함할 수 있다.
인스턴스 업데이트 매니저(840)는 인스턴스 호스팅 프로파일(Instance Hosting Profile) 및 개인 인스턴스 프로파일(Personal Instance Profile)을 다운로드, 갱신, 저장 및 관리하는 기능을 수행할 수 있다. 인스턴스 호스팅 프로파일은 이미 설명한 IoT 프로파일에 대응할 수 있으며, 개별 인스턴스 프로파일은 도 8에서 설명한 개별 인스턴스들에 대한 프로파일을 포함할 수 있다. 예를 들어, 개별 인스턴스들에 대한 프로파일은 외부 서비스를 제공하는 제공자나 개발자에 의해 제공될 수 있다.
인스턴스 버스(850)는 인스턴스들간의 메시지 버스 기능을 제공할 수 있다. 예를 들어, 이후 설명될 인스턴스 풀(860)에 저장된 IoT 노드(130)의 데이터 'D1'이 IoT 노드(220)와 통신하는 웹 서버(210)의 요청에 따라 인스턴스 버스(850)를 통해 제공될 수 있다. 또한, 인스턴스 버스(850)는 인스턴스 상호간의 인증 기능을 제공할 수도 있다.
인스턴스 풀(860)은 인스턴스들의 실행 환경을 의미할 수 있으며, 인스턴스들이 실행되는 공간으로, 개별 프로세스들이 설치(deploy)되는 공간을 의미할 수 있다. 부가적으로, 인스턴스를 로드하고, 저장하고, 인스턴스들과 인스턴스 풀(860)을 관리하기 위한 기능들을 제공할 수 있다. 인스턴스 풀(860)은 인스턴스의 특성에 따라, 타이머 등을 이용하여 웨이크업(wake-up) 형태로 인스턴스를 처리할 수도 있다. 이러한 인스턴스 풀(860)에는 인스턴스 버스(850)를 통해 다양한 IoT 노드들에 대한 데이터가 전달될 수 있기 때문에, 이기종의 또는 서로 다른 프로토콜을 활용하는 IoT 노드들로부터 전송된 데이터들도 연동 및 융합하여 서비스를 제공하는 것이 가능해진다.
인스턴스 로거(870)는 인스턴스와 관련된 메시지의 로깅을 처리할 수 있다.
인스턴스 모니터(880)는 인스턴스의 정상 동작 여부를 모니터링할 수 있다.
인스턴스 라이프사이클 매니저(890)는 인스턴스의 주기적/반복적 동작 기능을 관리할 수 있다.
또한, 본 실시예에 따른 인스턴스 호스팅 플랫폼(800)가 수행하는 단계들이 포함된 서비스 제공 방법이 제공될 수 있다. 예를 들어, 서비스 제공 방법은 임베디드 웹 서버를 탑재한 노드 또는 웹 서버를 중계하여 연결된 노드를 통해 데이터를 수신하는 단계, 데이터를 인스턴스들간에 교환하는 단계 및 노드들에 대해 제공되는 프로파일들 및 프로세스들을 이용하여 복수의 노드들 중 적어도 둘 이상의 노드들로부터 수신된 데이터를 하나의 인스턴스로 연동하여 처리하는 단계를 포함할 수 있다. 다른 실시예로, 서비스 제공 방법은 프로파일들 및 개인 인스턴스 프로파일들을 다운로드 및 관리하는 단계 및 개인 인스턴스 프로파일을 이용하여 웹 서비스를 포함하는 외부 서비스와 연결하는 단계를 더 포함할 수 있다.
이와 같이, 본 발명의 실시예들에 따르면, IoT(Internet of Things), WoT(Web of Things) 또는 WoO(Web of Objects) 환경에서 이기종의 기기들이나 다양한 서비스들을 연동 또는 융합하여 관리하고, 통합적으로 서비스를 제공할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
330: 인스턴스 호스팅 게이트웨이(Instance Hosting Gateway)
410: 네트워크 어댑터(Network Adaptor)
420: 네트워크 핸들러(Network Handler)
430: 인스턴스 매니저(Instance Manager)
440: 인스턴스 어플리케이션 서버(Instance Application Server)

Claims (20)

  1. 적어도 하나의 물리적 노드와 유무선 네트워크를 통해 연결하여 데이터를 수신하는 네트워크 어댑터; 및
    프로세스 형태로 설치(deploy)되는 적어도 하나의 프로세스 노드 또는 상기 적어도 하나의 물리적 노드 각각에 대해 제공되는 프로파일과 적어도 하나의 프로세스를 관리하고, 상기 프로파일 및 상기 적어도 하나의 프로세스를 이용하여 상기 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 적어도 하나의 인스턴스(instance)로 연결하는 인스턴스 매니저
    를 포함하는 서비스 제공 시스템.
  2. 제1항에 있어서,
    상기 적어도 하나의 물리적 노드가 다양한 네트워크 인터페이스들 중 적어도 하나를 이용하여 연결되는 기기에 탑재되는 것을 특징으로 하는 서비스 제공 시스템.
  3. 제1항에 있어서,
    상기 인스턴스 매니저는,
    인스턴스 별로 상기 적어도 하나의 프로세스를 처리하기 위해, 개별 인스턴스를 호출하는 로더; 및
    상기 개별 인스턴스의 생애주기를 관리하는 기능을 제공하는 인스턴스 라이프사이클 컨트롤러
    를 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  4. 제3항에 있어서,
    상기 인스턴스 매니저는,
    외부에 존재하는 프로파일 및 프로세스에 대한 정보를 다운로드하는 업데이터; 및
    상기 프로파일에 대한 정보를 파싱하고, 상기 프로세스에 대한 정보를 등록하는 디플로이어
    를 더 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  5. 제3항에 있어서,
    상기 인스턴스 매니저는,
    상기 인스턴스 매니저에서 발생하는 데이터의 입출력 및 어플리케이션 작동 정보를 로깅하는 로거;
    상기 물리적 노드로부터 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 저장하는 데이터베이스; 및
    상기 프로세스들에 포함된 자바스크립트 구문을 처리하는 자바스크립트 엔진
    을 더 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  6. 제1항에 있어서,
    외부 서비스와의 연동 기능 및 사용자에게 사용자 인터페이스를 제공하는 인스턴스 어플리케이션 서버
    를 더 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  7. 제6항에 있어서,
    상기 인스턴스 어플리케이션 서버는,
    상기 외부 서비스와의 연동을 위해, 상기 인스턴스의 처리와 관련된 기능을 API(Application Program Interface)의 형태로 상기 외부 서비스를 제공하는 API 노출부; 및
    사용자 계정 관리 기능, 인스턴스 관리 기능, 시스템 관리 기능 및 API 관리 기능 중 적어도 하나의 기능을 사용자에게 제공하기 위한 사용자 인터페이스를 제공하는 관리 포털
    을 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  8. 제7항에 있어서,
    상기 API 노출부는,
    상기 적어도 하나의 물리적 노드 각각에 대해 제공되는 프로파일에 기초하여 상기 인스턴스의 입력값 및 출력값을 인터페이스를 통해 제공하는 레스트풀(RESTful) 관리부;
    상기 프로파일에 기초하여 상기 인스턴스의 출력값을 피드(feed) 형태로 제공하는 피더; 및
    외부 API를 트리거링하고, API 트리거링 기능을 포함하는 메시지를 해당 API로 전달하는 API 트리거
    를 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  9. 제8항에 있어서,
    상기 인스턴스 어플리케이션 서버는,
    외부 서비스들과의 연동을 위해, 접근 인증을 제어하기 위한 키를 생성하는 키 생성부; 및
    외부 서비스들과 연동시 인증을 위한 기능을 제공하는 인증부
    를 더 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  10. 제1항에 있어서,
    상기 네트워크 어댑터는,
    네트워크 인터페이스별 메시지 포맷 또는 노드별 메시지 포맷에 따라 수신된 데이터를 파싱하기 위한 메시지 파서
    를 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  11. 임베디드 웹 서버를 탑재한 노드와 연결하거나 또는 웹 서버를 중계하여 노드와 연결하여 노드들로부터 데이터를 수신하는 제1 네트워크 어댑터;
    상기 노드들로부터 수신된 데이터를 인스턴스들간에 교환하는 인스턴스 버스; 및
    상기 노드들에 대해 제공되는 프로파일들 및 프로세스들을 이용하여 상기 복수의 노드들 중 적어도 둘 이상의 노드들로부터 수신된 데이터를 하나의 인스턴스로 연동하여 처리하는 인스턴스 풀
    을 포함하는 서비스 제공 시스템.
  12. 제11항에 있어서,
    상기 프로파일들 및 개인 인스턴스 프로파일들을 다운로드 및 관리하는 인스턴스 업데이트 매니저; 및
    상기 개인 인스턴스 프로파일을 이용하여 웹 서비스를 포함하는 외부 서비스와 연결하기 위한 제2 네트워크 어댑터
    를 더 포함하는 서비스 제공 시스템.
  13. 제11항에 있어서,
    상기 인스턴스와 연관된 메시지의 로깅을 처리하는 인스턴스 로거;
    상기 인스턴스의 정상 동작 여부를 모니터링하는 인스턴스 모니터; 및
    상기 인스턴스의 생애주기를 관리하는 기능을 제공하는 인스턴스 라이프사이클 매니저
    를 더 포함하는 것을 특징으로 하는 서비스 제공 시스템.
  14. 제11항에 있어서,
    상기 인스턴스 버스는,
    상기 데이터의 교환을 위해, 인스턴스 상호간의 인증 기능을 제공하는 것을 특징으로 하는 서비스 제공 시스템.
  15. 어플리케이션의 설치를 위한 파일을 제공하는 파일 배포 시스템에 있어서,
    상기 어플리케이션은,
    적어도 하나의 물리적 노드와 유무선 네트워크를 통해 연결하여 데이터를 수신하는 모듈; 및
    프로세스 형태로 설치(deploy)되는 적어도 하나의 프로세스 노드 또는 상기 물리적 노드에 대해 제공되는 프로파일과 적어도 하나의 프로세스를 관리하고, 상기 프로파일 및 상기 적어도 하나의 프로세스를 이용하여 상기 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 적어도 하나의 인스턴스(instance)로 연결하는 모듈
    을 포함하는 것을 특징으로 하는 파일 배포 시스템.
  16. 제15항에 있어서,
    상기 어플리케이션은,
    상기 적어도 하나의 물리적 노드가 다양한 네트워크 인터페이스들 중 적어도 하나를 이용하여 연결되는 기기에 설치되는 것을 특징으로 하는 파일 배포 시스템.
  17. 적어도 하나의 물리적 노드와 유무선 네트워크를 통해 연결하여 데이터를 수신하는 단계;
    프로세스 형태로 설치(deploy)되는 적어도 하나의 프로세스 노드 또는 상기 물리적 노드에 대해 제공되는 프로파일과 적어도 하나의 프로세스를 관리하고, 상기 프로파일 및 상기 적어도 하나의 프로세스를 이용하여 상기 수신된 데이터 또는 상기 프로세스 노드로부터 전달된 데이터를 적어도 하나의 인스턴스(instance)로 연결하는 단계; 및
    처리의 결과를 사용자에게 제공하는 단계
    를 포함하는 서비스 제공 방법.
  18. 제17항에 있어서,
    상기 적어도 하나의 인스턴스로 연결하는 단계는,
    인스턴스 별로 프로세스를 처리하기 위해, 개별 인스턴스를 호출하는 단계; 및
    상기 개별 인스턴스의 생애주기를 관리하는 기능을 제공하는 단계
    를 포함하는 것을 특징으로 하는 서비스 제공 방법.
  19. 임베디드 웹 서버를 탑재한 노드 또는 웹 서버를 중계하여 연결된 노드를 통해 데이터를 수신하는 단계;
    상기 데이터를 인스턴스들간에 교환하는 단계; 및
    상기 노드들에 대해 제공되는 프로파일들 및 프로세스들을 이용하여 상기 복수의 노드들 중 적어도 둘 이상의 노드들로부터 수신된 데이터를 하나의 인스턴스로 연동하여 처리하는 단계
    를 포함하는 서비스 제공 방법.
  20. 제19항에 있어서,
    상기 프로파일들 및 개인 인스턴스 프로파일들을 다운로드 및 관리하는 단계; 및
    상기 개인 인스턴스 프로파일을 이용하여 웹 서비스를 포함하는 외부 서비스와 연결하는 단계
    를 더 포함하는 서비스 제공 방법.
KR1020130029632A 2013-03-20 2013-03-20 인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템 KR101399800B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130029632A KR101399800B1 (ko) 2013-03-20 2013-03-20 인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템
US14/159,821 US20140289366A1 (en) 2013-03-20 2014-01-21 Service providing method and system for instance hosting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130029632A KR101399800B1 (ko) 2013-03-20 2013-03-20 인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템

Publications (1)

Publication Number Publication Date
KR101399800B1 true KR101399800B1 (ko) 2014-05-30

Family

ID=50895362

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130029632A KR101399800B1 (ko) 2013-03-20 2013-03-20 인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템

Country Status (1)

Country Link
KR (1) KR101399800B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101570619B1 (ko) 2014-10-08 2015-11-30 한국과학기술원 인스턴스 호스팅 환경에서의 성능 개선 방법 및 서비스 시스템
KR101605967B1 (ko) * 2014-10-08 2016-03-24 한국과학기술원 어플리케이션 특성을 반영하여 트랜잭션을 관리하는 서비스 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040055284A (ko) * 2002-12-20 2004-06-26 한국전자통신연구원 에이피아이를 이용한 지능망 서비스 제공 장치
KR100605837B1 (ko) 2002-07-19 2006-07-31 삼성전자주식회사 데이터전용 이동통신시스템의 다중서비스 방법 및 장치
KR100807816B1 (ko) 2004-12-17 2008-02-27 엔에이치엔(주) 버스형 네트워크 구조의 통신 네트워크 시스템 및 이를이용한 데이터 송수신 방법
KR100974258B1 (ko) 2007-01-08 2010-08-06 리서치 인 모션 리미티드 모바일 네트워크의 네트워크 데이터베이스 노드에 인스턴스식별자를 제공하는 장치 및 관련 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100605837B1 (ko) 2002-07-19 2006-07-31 삼성전자주식회사 데이터전용 이동통신시스템의 다중서비스 방법 및 장치
KR20040055284A (ko) * 2002-12-20 2004-06-26 한국전자통신연구원 에이피아이를 이용한 지능망 서비스 제공 장치
KR100807816B1 (ko) 2004-12-17 2008-02-27 엔에이치엔(주) 버스형 네트워크 구조의 통신 네트워크 시스템 및 이를이용한 데이터 송수신 방법
KR100974258B1 (ko) 2007-01-08 2010-08-06 리서치 인 모션 리미티드 모바일 네트워크의 네트워크 데이터베이스 노드에 인스턴스식별자를 제공하는 장치 및 관련 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101570619B1 (ko) 2014-10-08 2015-11-30 한국과학기술원 인스턴스 호스팅 환경에서의 성능 개선 방법 및 서비스 시스템
KR101605967B1 (ko) * 2014-10-08 2016-03-24 한국과학기술원 어플리케이션 특성을 반영하여 트랜잭션을 관리하는 서비스 방법 및 시스템

Similar Documents

Publication Publication Date Title
US20140289366A1 (en) Service providing method and system for instance hosting
US10075500B2 (en) Service method and system using instance interface of virtualization object in internet of things environment
KR101605967B1 (ko) 어플리케이션 특성을 반영하여 트랜잭션을 관리하는 서비스 방법 및 시스템
KR101605968B1 (ko) 가상 객체의 동적 인스턴스 호스팅 서비스 변경 방법 및 시스템
CN104063239B (zh) 移动终端的应用程序更新方法及服务器、客户端
CN105934916B (zh) 向所部署装置编制和管理服务
KR101850879B1 (ko) 서비스 인에이블러 기능
KR101478903B1 (ko) 인스턴스 호스팅 환경에서 노드의 프로파일에 기반하여 노드의 정보를 처리하기 위한 방법 및 시스템
KR101478902B1 (ko) 인스턴스 호스팅 환경에서 노드 별 특성에 따른 프로파일에 기초하여 서비스를 제공하는 방법 및 시스템
US11232405B2 (en) Computer readable storage media for dynamic service deployment and methods and systems for utilizing same
CN110049001A (zh) 一种实现WebService服务的方法、装置、存储介质和服务器
KR101552768B1 (ko) 사물 정보의 가상객체 생성을 위한 인스턴스 프로파일 스키마를 이용한 서비스 방법 및 시스템
KR101493166B1 (ko) IoT 환경에서 가상화된 객체의 인스턴스를 관리하기 위한 웹 기반 사용자 인터페이스를 제공하는 서비스 방법 및 시스템
CN114221690A (zh) 用于云边协同系统的语义模型构建方法
KR101494096B1 (ko) 가상화된 객체의 동작 환경을 제공하기 위한 서비스 방법 및 시스템
KR101570619B1 (ko) 인스턴스 호스팅 환경에서의 성능 개선 방법 및 서비스 시스템
KR101399800B1 (ko) 인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템
US9894523B2 (en) Wireless device customization resources
KR101478909B1 (ko) 인스턴스 호스팅 환경에서의 외부 인터페이스 연결을 위한 서비스 제공 방법 및 서비스 제공 시스템
CN102594587A (zh) 嵌入式web调测维护方法及调测维护系统
Kridalukmana et al. Iot microservice architecture for iotaas device users
Srivastava et al. An open-source SWUpdate and Hawkbit framework for OTA Updates of RISC-V based resource constrained devices
KR101494097B1 (ko) IoT 환경에서 가상화 오브젝트의 인스턴스 인터페이스를 이용한 서비스 방법 및 시스템
JP5280402B2 (ja) アプリケーションダウンロード方法、及びそのシステム
Chang et al. Design and implementation of resource-centric web services in smart grid cyber-physical systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180425

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 6