KR20150082287A - 논리적 센서 플랫폼을 위한 논리적 센서 서버 - Google Patents

논리적 센서 플랫폼을 위한 논리적 센서 서버 Download PDF

Info

Publication number
KR20150082287A
KR20150082287A KR1020157011835A KR20157011835A KR20150082287A KR 20150082287 A KR20150082287 A KR 20150082287A KR 1020157011835 A KR1020157011835 A KR 1020157011835A KR 20157011835 A KR20157011835 A KR 20157011835A KR 20150082287 A KR20150082287 A KR 20150082287A
Authority
KR
South Korea
Prior art keywords
event
lss
predefined
events
output
Prior art date
Application number
KR1020157011835A
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20150082287A publication Critical patent/KR20150082287A/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2823Reporting information sensed by appliance or service execution status of appliance services in a home automation network
    • H04L12/2827Reporting to a device within the home network; wherein the reception of the information reported automatically triggers the execution of a home appliance functionality
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2642Domotique, domestic, home control, automation, smart house

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Abstract

"논리적 센서 서버"(Logical Sensor Server) 또는 "LSS"는 다양한 입력 소스에 의해 발행되는 신호 또는 이벤트를 다른 가입 중인 센서, 디바이스 또는 시스템에 의해 소비되거나 사용될 수 있는 신호 또는 더 높은 수준의 이벤트로 변환하는 것, 변화시키는 것 또는 포워딩하는 것에 의해 관련된 또는 관련되지 않은 센서, 디바이스 또는 다른 시스템 간의 스마트 허브로서 작용한다. 더욱 구체적으로, LSS는, 지능적인 이벤트 구동형 행동이 상대적으로 단순한 입력 소스의 모음으로부터 나오게 하는 방식으로, 상이한 입력 소스로부터 수신된 메시지가 작성되고 변형되며 하나 이상의 가입자에게 이용가능하게 되도록 하는 다양한 기법을 가능하게 하기 위해 단독으로 또는 논리적 센서 플랫폼(Logical Sensor Platform: LSP)과의 조합으로 작용한다. 하나 이상의 발행과 관련하여 특정한 가입자에 의해 수신될 변형된 입력의 포맷을 정의하기 위해 자동적 구성 또는 사용자 입력의 임의의 조합이 사용된다. 변형된 이벤트를 수신하는 가입자는 자신의 액션을 그 이벤트에 기반하여 제어한다.

Description

논리적 센서 플랫폼을 위한 논리적 센서 서버{LOGICAL SENSOR SERVER FOR LOGICAL SENSOR PLATFORMS}
기술은 사람에게 사소하게 보일 수 있는 상황에 종종 둔감하다. 예를 들어, 타이머(timer)에 의해 제어되는 사무실 조명은 당해 층에 사람들이 여전히 있더라도 저녁에 불을 끌 수 있다. 마찬가지로, 움직임 검출 센서 기반(motion detection sensor-based) 시스템은 사람들이 자기 책상에서 움직이지 않는 경우 불을 끌 수 있다. 유감스럽게도, 여러 독립적 유형의 센서를 설치하고 그들의 입력을 조합하는 것은 전체 시스템의 비용을 복잡하게 하고 증가시킬 수 있다.
인간과 상호작용하는 기술을 개발하는 동안의 도전들 중 하나는 그 기술을 복잡한 환경에 지능적으로 민감하게 하는 것이다. 일반적으로, 지능적 민감성(intelligent sensitivity)은 통상 카메라, 온도계, 움직임 센서 등과 같은 다수의 센서에 의해 수집되는 물리적 세계로부터의 풍부한 정보의 취합된 분석(aggregated analysis)에 의존한다. 이 분석은 통상 복잡한 작업인데, 이는 간단한 결정(가령, 건물의 특정한 층에 사람들이 있는 동안 불을 계속 켜놓기)조차 (달력 또는 시계와 같은 논리적 맥락(context)은 물론) 많은 개수의 상이한 유형의 센서로부터 입력을 요구할 수 있기 때문이다.
많은 간단한 시스템은 기본적인 센서들을 이용하여, 어떤 종류의 사전프로그래밍된 액션(pre-programmed action)을 개시하도록 그 센서들에 의해 제공되는 입력에 대해 작용한다. 예를 들어, 통상적인 온도조절기(thermostat)는 밀착하여 커플링된(tightly coupled) 온도 센서로부터 온도 판독(temperature reading)을 수신할 수 있고, 그 판독에 기반하여, 난방 또는 냉방 시스템이 켜지거나 그렇지 않으면 조절되게 할 것이다. 유감스럽게도, 온도조절기 내의 온도 센서는 일반적으로 온도조절기에 전용(dedicated)이거나 내포된(integral) 것이어서, 그 센서로부터의 온도 정보는 일반적으로 다른 사용을 위해 이용가능하지 않다. 따라서, 덥고 화창한 날에 창문 덮개를 닫는 자동화된 시스템과 같은, 그 온도를 역시 이용할 수 있을 다른 시스템은 제어 목적으로 자신의 전용 센서 또는 수동 스위치를 통상 사용할 것이다.
유사하게, 센서 입력의 소프트웨어 기반 처리의 경우, 많은 그러한 시스템은 하나 이상의 특정 센서 및 센서 데이터를 처리하고 나서 어떤 대응하는 액션을 개시하는 하나 이상의 소프트웨어 기반 시스템 간의 밀착 커플링(tight coupling)을 기반으로 동작한다. 예를 들어, 통상적인 가정 보안 시스템(home security system)은 알람 시스템(alarm system)이 무장된 상태(armed state)인 경우 하나 이상의 설치된 움직임 센서의 트리거링(triggering)에 응답하여 알람(그리고 가능한 대로 보안 서비스 및/또는 911로의 자동화된 호출)을 트리거링한다. 이 유형의 해결책은 흔히 전용 센서의 네트워크에 의존한다. 그러한 네트워크는 알려진 유형의 추가적인 호환가능한 센서(가령, 호환가능한 문 접촉 센서, 보안 카메라, 마이크로파 또는 적외선 움직임 센서 등)를 추가하는 것에 의해 종종 확장될 수 있다.
유감스럽게도, 그러한 센서 네트워크를 확장하는 것은 호환가능한 센서 또는 디바이스를 추가하는 것에 대개 한정되는데, 목적을 갖고 만들어진(purpose built) 시스템(가령, 가정 보안 시스템)은 일반적으로 다른 센서 또는 디바이스에 의해 제공될 수 있을 논리적 정보(logical information)의 대안적인 소스를 수용할 수 없기 때문이다. 따라서, 여러 상이한 시스템이 동일한 일반 영역 내에서 동작하고 있는 경우, 그러한 시스템들은 그들의 대응하는 시스템에 특정적인 포맷으로 입력을 제공하기 위해 중복적인(duplicative) 복수 개의 센서를 종종 사용한다. 예를 들어, 움직임으로 활성화되는 전등 스위치(motion-activated light switch)에 커플링된 하나의 움직임 센서는 관련되지 않은 국부적(local) 보안 시스템에 전용인 움직임 센서와 동일한 방에서 사용될 수 있다. 그러나, 전등 스위치도 보안 시스템도 다른 시스템과 연관된 움직임 센서를 이용하지 않는다.
이 개요는 상세한 설명에서 추가로 후술되는 개념들 중 선택된 것을 단순화된 형태로 소개하기 위하여 제공된다. 이 개요는 청구된 대상(claimed subject matter)의 중요 특징 또는 필수적 특징을 식별하도록 의도된 것이 아니고, 청구된 대상의 범주를 결정하는 데에 도움으로서 사용되도록 의도된 것도 아니다. 나아가, 선행 기술의 어떤 난점이 본 문서에서 언급되거나 논의될 수 있으나, 청구된 대상은 그 선행 기술의 난점 중 임의의 것 또는 모두를 해결하거나 다룰 수 있는 구현에 한정되도록 의도된 것이 아니다.
일반적으로, "논리적 센서 서버"(Logical Sensor Server: LSS)는, 본 문서에서 기술되는 바와 같이, 매우 다양한 입력 소스에 의해 발행되는(published) 신호 또는 이벤트를 다른 센서, 디바이스 또는 시스템에 의해 소비되거나 사용될 수 있는 신호 또는 이벤트로 변환하는 것(translating), 변화시키는 것(morphing) 또는 포워딩하는 것(forwarding)으로써, 관련되지 않은 센서 또는 다른 디바이스 간의 스마트 허브(smart hub)로서 작용한다. 다시 말해, LSS는 다양한 소스로부터 입력을 수신하고, 그 입력을 다양한 포맷으로 변환 또는 변형하며, 이어서 변환된 또는 변형된 입력 또는 그 입력에 대응하는 이벤트를 하나 이상의 다른 관련되지 않은 센서, 에이전트, 디바이스, 시스템 등에 제공한다. 이는 관련되지 않은 센서, 에이전트, 디바이스, 시스템 등이 다른 입력 소스에 의해 제공되는 입력을 이용할 수 있게 한다.
LSS의 아키텍처(architecture)에 관하여, 전반적인 발상은 다양한 관련된(related) 또는 관련되지 않은(unrelated) 입력 소스가 자신의 입력 또는 이벤트를 LSS에 발행한다는 것이다. 예를 들어, 그러한 입력은 온도, 움직임 검출됨 등과 같은 센서 판독, '에어콘 켜짐', '텔레비전 켜짐', 원격 제어 디바이스 상에서 '켜짐'(on) 버튼 눌림 등과 같은 "이벤트", '엘리베이터 버튼 누름' 또는 '전등 스위치 꺼짐' 등과 같은 인프라스트럭처(infrastructure) 이벤트를 포함하나, 이에 한정되지는 않는다. 그리고 LSS는 가입 중인(subscribing) 디바이스, 에이전트 등과 호환가능한 다양한 포맷으로 그 입력을 변형하고, 그 변형된 입력을 그 가입자에게 제공한다. 그리고 그 변형된 입력을 수신하는 가입자는 LSS로부터 추가의 입력 또는 더 높은 레벨의 제어를 요구하지 않고도 그 입력에 대해 작용할 수 있다.
이 개념의 간단한 예는 자신이 커피를 끓이도록 켜져 있다고 표시하는 커피 메이커(coffee maker)로부터 입력을 수신하는 LSS이다(즉, 자신의 '켜짐' 버튼이 눌렸다고 표시하는 커피 메이커로부터 LSS가 발행(publication)을 수신함). 그리고 LSS는 다른 디바이스, 에이전트 또는 시스템에 의한 사용을 위해 이 발행을 변형한다. 예를 들어, '켜짐' 버튼이 눌림의 단순한 변형은 '사람들이 존재함'(people present) 이벤트 또는 유사한 것을 포함하나, 이에 한정되지는 않는다. 그리고 '사람들이 존재함' 이벤트를 (다른 디바이스 또는 시스템에 의해 사용가능한 포맷으로) 제공하는 것은, 예컨대 사람들이 존재하는 경우 불을 켤 자동화된 전등 스위치와 같은 다양한 목적으로 사용될 수 있다. 이 경우에, 자동화된 전등 스위치는 LSS로부터 사람 존재 유형(person present type)의 이벤트를 수신할 것이다. 그리고 전등 스위치는 응답으로 전등을 다시 켤(cycle) 수 있다.
위 예에서 전등 스위치는 복잡한 처리를 할 수 있을 필요가 없다는 점에 유의하시오. 예를 들어, LSS는 전등 스위치에 '켜짐' 또는 '꺼짐'을 나타내기 위해 단순히 논리적 1 또는 0(또는 어떤 다른 아날로그 또는 디지털 신호 또는 표시)을 전등 스위치에 제공할 수 있다. 이 경우에, 전등 스위치는 사람들이 존재함을 표시하는 임의의 하나 이상의 입력 소스로부터 비롯하는 이벤트를 수신하기 위하여 단순히 LSS에 가입한다. 그러한 이벤트는 전등 스위치에 유용한 어떤 포맷으로든 LSS에 의해 전등 스위치에 제공된다.
또한, LSS는 새 "논리적 센서"의 생성을 가능하게 하기 위해 기존의 센서 또는 입력 디바이스의 출력 또는 발행이 처리되고, 이로써 다양한 센서 또는 입력 소스의 출력 또는 발행과 보통 연관되지 않는 액션의 개시를 가능하게 하는 메커니즘을 제공한다. 예를 들어, 사용자의 가정 내에 어떠한 움직임 센서도 없거나 어떤 이유로 기존의 움직임 센서가 오프라인(offline)(가령, 그 센서의 배터리가 다 됨)이라고 가정하자. 이에 응답하여, LSS는 다양한 입력 소스로부터의 광범위한 발행 중 하나 이상에 기반하여 논리적 움직임 센서를 '합성'할 수 있다. 예를 들어, TV 원격 제어(TV remote control)의 사용을 나타내는 발행 또는 수량기(water meter)를 통해 흐름률(flow rate)들로부터 추론되는 변기 물내림(toilet flush)을 나타내는 발행 중 어느 하나 또는 양자 모두는 이후 추가의 액션을 위해 하나 이상의 가입자에게 제공되는 "사람이 집에 있음"(person in house) 유형 출력 이벤트로 변형될 수 있다.
위 개요에 비추어 볼 때, 본 문서에서 기술되는 LSS는, 지능적인 이벤트 구동형(event-driven) 행동이 상대적으로 단순한 관련되지 않은 입력 소스의 모음으로부터 나오게 하는 방식으로, 상이한 입력 소스로부터 수신되는 메시지가 작성되고(authored) 변형되며 하나 이상의 가입자에게 이용가능하게 되도록 하는 다양한 기법을 제공한다는 점이 분명하다. 방금 서술된 이익에 더하여, LSS의 다른 이점은 첨부된 도면과 함께 쓰일 때 본 문서 이하에서 뒤따르는 상세한 설명으로부터 명백하게 될 것이다.
청구된 대상의 특정한 특징, 양상 및 이점은 이하의 설명, 부기된 청구항 및 첨부된 도면과 관련하여 더 잘 이해되게 될 것인데,
도 1은, 본 문서에 기술되는 바와 같이, 임의적인 입력 소스가 "논리적 센서 서버"(Logical Sensor Server: LSS)에 입력 또는 이벤트를 발행하고 LSS는 이후 그 발행을 변환된 정보를 수신하기 위해 가입된 다른 디바이스 또는 시스템에 의해 소비될 수 있는 포맷 또는 다른 이벤트로 변환하는 일반적인 아키텍처 다이어그램(architectural diagram)을 보여준다.
도 2는, 본 문서에 기술되는 바와 같이, LSS의 다양한 실시예를 구현하기 위한 프로그램 모듈을 보여주는 예시적인 플로우 다이어그램(flow diagram)을 제공한다.
도 3은, 본 문서에 기술되는 바와 같이, LSS의 다양한 실시예와 함께 사용하기 위한 예시적인 사용자 인터페이스를 보여준다.
도 4는, 본 문서에 기술되는 바와 같이, LSS의 다양한 실시예를 구현하기 위한 예시적인 방법을 보여주는 일반적인 시스템 플로우 다이어그램을 보여준다.
도 5는, 본 문서에 기술되는 바와 같이, LSS의 다양한 실시예를 구현하는 데에서 사용하기 위한 단순화된 컴퓨팅 및 I/O 능력을 갖는 단순화된 범용 컴퓨팅 디바이스를 도시하는 전반적인 시스템 다이어그램(system diagram)이다.
청구된 대상의 실시예의 다음 설명에서, 첨부된 도면이 언급되는데, 이는 본 문서의 일부를 형성하고, 여기에서는 청구된 대상이 실시될 수 있는 특정한 실시예가 예시로서 도시된다. 다른 실시예가 활용될 수 있으며 현재 청구된 대상의 범주를 벗어나지 않고 구조적 변경이 이루어질 수 있다는 점이 이해되어야 한다.
1.0 서론:
설명의 목적으로, 이하의 논의에서 "입력 소스"(input source) 또는 "발행자"(publisher)라는 용어는 특히 물리적 현상 및 양을 검출 또는 측정하고 그것을 이후에 "논리적 센서 서버"(Logical Sensor Server: LSS)에 입력 또는 이벤트로서 발행되는 편리한 전기적, 무선 주파수, 오디오 또는 광학 신호로 변형하는 디바이스로서 정의된다. 입력 소스의 예는 널리 다양한 디바이스, 센서, 음성 입력 메커니즘, 제스처 또는 터치 기반 입력 메커니즘, 소프트웨어 에이전트, 소프트웨어 이벤트, 인프라스트럭처 이벤트 등을 포함하나, 이에 한정되지 않는다. 추가로, "논리적 센서"는 센서 또는 다른 입력 소스를 구현하는 "소프트웨어 에이전트"로서 정의된다. LSS에 의해 수행되는 발행 변환, 변형 및/또는 전파(propagation) 액션은 LSS의 "이벤트 변환 서비스"(event translation service) 콤포넌트에 의해 제공됨에 유의하시오. 또한, 이하의 논의에서 "가입자"(subscriber)라는 용어는 특히, 하나 이상의 입력 소스의 발행으로부터 변환 또는 변형된 더 높은 수준(higher order)의 이벤트를 LSS로부터 수신하는 매우 다양한 디바이스, 센서, 소프트웨어 에이전트, 다른 LSS 등을 지칭하는 것으로서 정의된다.
일반적으로, LSS는 매우 다양한 입력 소스에 의해 발행되는 신호 또는 이벤트를 다른 센서, 디바이스 또는 시스템에 의해 소비되거나 사용될 수 있는 신호 또는 더 높은 수준의 이벤트로 변환하는 것, 변화시키는 것 또는 포워딩하는 것에 의해 관련된 또는 관련되지 않은 센서, 디바이스 또는 다른 시스템 간의 스마트 허브의 형태로서 작용한다. 더욱 구체적으로, LSS는, 지능적인 이벤트 구동형 행동이 상대적으로 단순한 입력 소스의 모음으로부터 나오게 하는 방식으로, 상이한 입력 소스로부터 수신되는 메시지가 작성되고 변형되며 하나 이상의 가입자에게 이용가능하게 되도록 하는 다양한 기법을 가능하게 하기 위해 단독으로 또는 논리적 센서 플랫폼(Logical Sensor Platform: LSP)과의 조합으로 작용한다.
유리하게도, 이 능력들은 LSS로 하여금 기존의 시스템이 시간이 흐르면서 발달하는 것을 그 시스템이 변경될 것을 요구하지 않고 그러한 시스템에 지능적 민감성의 계층(layer)을 부가함으로써 돕게 하는 더 높은 수준의 이벤트에 발행하고 가입하는 것을 위한 하드웨어 비인지형(hardware-agnostic) 플랫폼을 제공한다. 또한 유리하게도, 이는 LSS 자체가 가입 중인 디바이스, 에이전트 등 중 임의의 것을 제어하는 데에 필요한 복잡성을 요구하지 않는다는 것을 의미하는데, 그것이 그저 변형된 이벤트를, 그 가입자들이 자기 자신의 제어 메커니즘을 사용하여 변형된 이벤트에 대해 작용하게 하는 포맷으로 제공하기 때문이다.
다시 말해, LSS는 LSS가 발행자 또는 가입자 중 임의의 것을 실제로 제어하기 위한 논리(logic)를 포함할 것을 요구하지 않고도 발행자 및 가입자에 관련된 이벤트 변형 및 전파를 결정하는 논리를 포함한다. 예를 들어, 다양한 실시예에서, LSS는 '움직임 검출됨'(motion detected) 신호 또는 이벤트가 움직임 검출 센서로부터 발행으로서 수신되는 경우 '그 층에서 사람들이 검출됨'(people detected on the floor) 및 '그 건물에서 사람들이 검출됨'(people detected in the building)과 같은 더 높은 수준의 이벤트를 생성하거나 트리거링하도록 구성된다. 층 및 건물 전등 제어 시스템과 같은 다양한 가입자가 또한 '그 층에서 사람들이 검출됨' 및 '그 건물에서 사람들이 검출됨' 이벤트에 가입될 수 있다. 그리고 그러한 가입된 시스템은 발행자(즉, 움직임 검출 센서)에 의해 LSS에 제공되는 '움직임 검출됨' 신호 또는 이벤트에 응답하여 LSS에 의해 생성되는 '그 층에서 사람들이 검출됨' 및 '그 건물에서 사람들이 검출됨' 이벤트를 통지받는다. 이에 응답하여, 층 및 건물 전등 제어 시스템은 원하는 응답을 구동할 수 있다(가령, 사람들이 존재하기 때문에 전등을 켜는 것에 의해 출력 이벤트에 자동적으로 응답함).
다수의 가입자는 모두 (각각의 특정 가입자에게 사용가능한 어떤 포맷으로든) 동일한 변형된 입력을 수신할 수 있어서, 어떤 원하는 방식이든 그러한 디바이스, 시스템 또는 에이전트는 변형된 입력에 개별적으로 응답할 수 있다는 점에 또한 유의하시오. 또한, 소프트웨어 에이전트 또는 다른 시스템은 다수의 디바이스로 하여금 하나 이상의 관련된 또는 관련되지 않은 입력 소스로부터 수신되는 발행에 응답하여 LSS에 의해 제공되는 변형된 입력 또는 이벤트에 응답하게 할 수 있다.
예를 들어, 사람이 텔레비전을 켰음(가령, TV 원격 전원 버튼이 눌려져, 텔레비전은 전원이 켜진 상태(powered-on state)를 나타내는 전류를 야기하기 시작함 등)을 나타내는 발행을 LSS가 수신하고, 입력은 소프트웨어 에이전트 또는 다른 시스템에 더 높은 수준의 이벤트(가령, '사람이 텔레비전을 '(person watching television) 유형 이벤트)로서 변형되어 제공될 수 있다고 가정하자. 이에 응답하여, 소프트웨어 에이전트 또는 다른 시스템은 이어서, 예컨대 전등을 희미하게 하는 것, 블라인드를 치는 것, 팝콘 제조기(popcorn popper)를 시작하는 것, 전화 호출을 음성 메일(voice mail)로 보내는 것 등을 위한 관련되지 않은 자동적 시스템들을 동시적으로(concurrently) 제어하는 것과 같은 명령을 개시하는 것(initiating) 또는 구동하는 것(actuating)으로써 응답한다. 이 관련되지 않은 자동적 시스템들 각각은 '사람이 텔레비전을 봄' 유형 이벤트에 개별적으로 가입될 수 있고 LSS로부터의 그러한 이벤트의 수신에 응답하여 그들 자신의 액션을 개시할 수 있다는 점에 또한 유의하시오.
또한, LSS가 매우 다양한 입력 소스에 의해 발행된 신호 또는 이벤트를 다른 센서, 디바이스 또는 시스템에 의해 소비되거나 사용될 수 있는 신호 또는 더 높은 수준의 이벤트로 변환하거나, 변화시키거나, 포워딩하기 때문에, LSS는 새 제어 시스템들(그들 자신의 센서가 있든 없든)이 가입자로서 등록될 수 있는 중심적 위치가 된다. 예를 들어, 그 자신의 어떠한 움직임 센서도 없는 알람 제어 시스템은 광범위한 입력 소스 중 임의의 것으로부터 도출되는 움직임 이벤트를 나타내는 발행을 수신하기 위해 단순히 LSS에 가입될 수 있다. 이는 알람 제어 시스템으로 하여금 '사람이 집에 있음' 유형 이벤트로 변형된 TV 원격 제어 누름 발행(TV remote control press publication)과 같은 입력에 기반하여 알람을 트리거링하게 할 것이다.
다시 말해, 광범위한 애플리케이션 중 임의의 것을 위한 새 제어 시스템은 기존의 센서 인프라스트럭처(물리적 및/또는 논리적) 및 LSS에 의해 생성되는 대응하는 출력 이벤트를 이용하면서 LSS에 가입할 수 있다. 그 결과, LSS에 가입하는 것에 의해, 많은 유형의 제어 시스템을 설치하기 위한 비용 및 수고는 특히 그러한 제어 시스템에 전용인 전통적 감지 디바이스(sensing device)들을 한정하거나 심지어 제거함으로써 극적으로 감소될 수 있다. 그와 같이, 사실상 임의의 원하는 목적을 위한 새 제어 시스템이 LSS로부터 이용가능한 출력 이벤트 중 하나 이상에 단순히 가입하는 것에 의해 설치되고 제어될 수 있다.
위에서 언급된 개념은, 임의적인 입력 소스가 LSS에 입력 또는 이벤트를 발행하고 LSS는 이어서 그 발행을 변환된 정보를 수신하기 위해 가입된 다른 디바이스 또는 시스템에 의해 이후에 소비되는 포맷 또는 다른 이벤트로 변환하는 일반적인 아키텍처 다이어그램을 제공하는 도 1에 의해 전반적으로 예시된다.
특히, 도 1은 선택적으로 LSP(110)(2.8절에서의 논의를 보시오) 내에서 콤포넌트(component)로서 작용하는 LSS(100)를 도시한다. LSS는 임의의 개수의 임의적인 센서(가령, 120, 130), 디바이스(가령, 140), 하드웨어 또는 소프트웨어 에이전트(가령, 150, 170), 인프라스트럭처 이벤트(180), 소프트웨어 이벤트(190), 다른 LSS(105), 다른 LSP(115) 등으로부터 발행을 수신한다.
이에 응답하여, LSS(100)는 수신된 발행을, 예컨대 디바이스(가령, 140), 에이전트(가령, 150, 160), 다른 LSS(105), 다른 LSP(115) 등과 같은 다양한 가입자에 의해 사용가능한 더 높은 수준의 이벤트 또는 포맷으로 변형한다. 그러한 디바이스 및 에이전트 중 몇몇(가령, "디바이스 1"(140) 및 "에이전트 1"(150))은 발행자 및 가입자 모두로서 작용한다는 점에 유의하시오. 또한, 에이전트(가령, "에이전트 2"(160)) 또는 LSS(100)에 가입된 다른 디바이스 또는 시스템은 다른 에이전트(가령, "에이전트 m"(170)) 또는 다른 디바이스 또는 시스템에의 가입을 통해 수신되는 정보를 재발행할 수 있다.
또한, 다양한 디바이스, 에이전트, 시스템 등은 정보를 에이전트, 디바이스 또는 다른 시스템에 직접적으로 통신한다. 도 1에 의해 예시되는 예는 "디바이스 n"에 의해 LSS(100)에 통신되는 정보를 발행하도록 매개(intermediary)로서 작용하는 "에이전트 m"(170)을 포함한다. 추가로, 도 1에 의해 예시되는 바와 같이, 다양한 센서(가령, 센서(120 및 (130))는 다른 디바이스, 에이전트 등(가령, "디바이스 1"(140) 및 "에이전트 2"(160))에 정보를 통신할 수 있다.
마지막으로, 개별적인 가입 디바이스(가령, "디바이스 1"(140)), 에이전트(가령, 에이전트(150 및 160)), 다른 LSS(105), 다른 LSP(115) 등은 그 디바이스, 에이전트 등의 가입에 응답하여 LSS(100)로부터 수신되는 변환된 입력 또는 더 높은 수준의 이벤트에 응답하여 다양한 액션을 구동하거나 개시한다.
1.1 시스템 개관:
위에서 언급된 바와 같이, LSS는, 지능적인 이벤트 구동형 행동이 상대적으로 단순한 관련된 또는 관련되지 않은 입력 소스의 모음으로부터 나오게 하는 방식으로, 상이한 입력 소스로부터 수신되는 메시지로 하여금 작성되고 변형되며 하나 이상의 가입자에게 이용가능하게 되도록 하는 다양한 기법을 제공한다. 위에서 요약된 프로세스는 도 2의 일반적인 시스템 다이어그램에 의해 예시된다. 특히, 도 2의 시스템 다이어그램은 본 문서에서 기술되는 바와 같이 LSS의 다양한 실시예를 구현하기 위한 프로그램 모듈 간의 상호관계를 예시한다. 나아가, 도 2의 시스템 다이어그램은 LSS의 다양한 실시예의 높은 레벨의 뷰(view)를 예시하나, 도 2는 이 문서에 걸쳐 기술되는 것과 같은 LSS의 모든 가능한 실시예의 철저한 또는 완벽한 예시를 제공하도록 의도된 것이 아니다.
추가로, 도 2에서 끊긴 선 또는 파선에 의해 표현될 수 있는 임의의 칸들 및 칸들 사이의 상호연결들은 본 문서에서 기술되는 LSS의 대안적인 실시예들을 나타낸다는 점 및 아래에서 기술되는 바와 같이 이 대안적인 실시예들 중 임의의 것 또는 전부는 이 문서에 걸쳐 기술되는 다른 대안적인 실시예와 조합하여 사용될 수 있다는 점에 유의하여야 한다.
일반적으로, 도 2에 의해 예시되는 바와 같이, LSS에 의해 가능하게 되는 프로세스는 디바이스(205), 센서(210), 에이전트(215), 소프트웨어 이벤트(220), 인프라스트럭처 이벤트(225), 다른 LSS 또는 LSP(230) 등을 포함하는 "입력 소스"의 임의의 조합으로부터 입력 및/또는 이벤트의 발행을 수신하기 위해 발행 수신 모듈(publication receipt module)(200)을 사용하여 동작을 시작한다. 추가로, 발행 수신 모듈(200)은 다양한 소스로부터 익명의(anonymous) 발행을 수신하기 위한 개방 채널(open channel) 또는 다른 입력 수단을 선택적으로 포함한다. 2.5절에서 논의되는 바와 같이, 익명의 소스로부터의 발행을 처리하는 경우에 다양한 보안 예방책이 구현될 수 있다는 점에 유의하시오.
선택적인 등록 모듈(registration module)(235)은 디바이스(205), 센서(210), 에이전트(215), 소프트웨어 이벤트(220), 인프라스트럭처 이벤트(225), 다른 LSS 또는 LSP(230) 등을 포함하는 "입력 소스"의 등록을 위해 사용된다. 일반적으로, 등록 모듈(235)은 수동적 및/또는 자동적으로 입력 소스의 발행을 등록하는 것 및 변형된 이벤트를 수신하기 위하여 가입자 디바이스(265), 가입자 서비스(270), 가입자 에이전트(275), 가입자 LSS 또는 LSP(280) 등을 포함하는 "가입자"를 등록하는 것을 수행한다. 선택적인 사용자 인터페이스 모듈(user interface module)(240)은 발행, 변환, 가입을 선택 또는 맞춤화하는 것, 다양한 발행 또는 가입을 위한 보안 또는 액세스 레벨을 설정하는 것, 이벤트 또는 변환을 위해 신뢰 레벨을 설정 또는 조정하는 것 등을 위해 발행 수신 모듈(200), 등록 모듈(235) 및 변환 모듈(245)과 조합하여 사용된다.
변환 모듈(245)은 발행을 "출력 이벤트"(250) 또는 하나 이상의 가입자(가령, 가입자 디바이스(265), 가입자 서비스(270), 가입자 에이전트(275), 가입자 LSS 또는 LSP(280) 등)에 의한 소비를 위해 포맷화된(formatted) 정보로 변환하는 데에 사용된다. 또한, 다양한 실시예에서, 신뢰 모듈(confidence module)은 신호 신뢰 레벨을 제공하는 센서 또는 이벤트로부터의 발행에 기반하여 확률 기반(probability-based) 변환을 위한 임계 또는 신뢰 레벨을 설정 또는 조정하는 데에 사용된다. 상이한 신뢰 레벨을 갖는 다수의 발행은 또한 신뢰 레벨을 갖는 출력을 생성하거나 트리거링하도록 조합될 수 있다는 점에 유의하시오. 그리고 그러한 레벨은 특정한 액션을 구동하거나 개시할지를 결정하는 데에서 가입자에 의해 사용될 수 있다.
가입된(subscribed) 출력 이벤트(250) 또는 다른 정보(가령, 구체적인 온도 판독, 비디오 피드, 오디오 피드 등과 같은 포워딩된(forwarded) 발행)가 수신될 때마다, 가입 서비스작업 모듈(subscription servicing module)(260)은 임의의 가입자(가령, 가입자 디바이스(265), 가입자 서비스(270), 가입자 에이전트(275), 가입자 LSS 또는 LSP(280) 등)에게 그 이벤트 또는 정보를 제공한다. 그리고 그 이벤트를 해석하고 액션을 취하며 선택적으로 새 이벤트를 재발행하는 것은 개개의 가입자들에게 달려 있는데, 이는 다른 가입자에 의해 골라져 처리되는 것 및/또는 그에 대해 작용되는 것 및/또는 새로운 높은 수준의 이벤트로서 재발행되는 것 등일 수 있다.
2.0 논리적 센서 서버의 동작의 세부사항:
전술된 프로그램 모듈은 LSS의 다양한 실시예를 구현하기 위하여 활용된다. 위에서 요약된 바와 같이, LSS는, 지능적인 이벤트 구동형 행동이 상대적으로 단순한 관련되지 않은 입력 소스의 모음으로부터 나오게 하는 방식으로, 상이한 입력 소스로부터 수신되는 메시지로 하여금 작성되고 변형되며 하나 이상의 가입자에게 이용가능하게 되도록 하는 다양한 기법을 제공한다. 이하의 절들은 도 1 및 도 2에 관하여 1절에서 기술된 프로그램 모듈을 구현하기 위한 예시적인 방법들의, 그리고 LSS의 다양한 실시예들의 동작의 상세한 논의를 제공한다. 특히, 이하의 절들은
·LSS의 동작의 개관;
·입력 소스 및 가입자;
·가입자를 위해 입력 소스로부터의 발행을 변환하는 것;
·선택적인 이벤트 신뢰 레벨;
·보안 고려사항;
·데이터를 공유하고 향상시키기 위한 LSS의 애드혹(ad-hoc) 그룹;
·하나 이상의 다운로드가능한 앱을 획득하는 LSS 성능을 증강시키는 것(augmenting); 및
·논리적 센서 플랫폼(Logical Sensor Platform: LSP) 내의 콤포넌트로서 LSS를 구현하는 것
을 포함하여, LSS의 다양한 실시예들의 예들 및 동작의(operational) 세부사항들을 제공한다.
2.1 동작의 개관
물리적 센서의 원시 측정으로부터 이벤트 구동형 행동을 도출하는 해결책을 개발하는 것은 통상적으로 그 원시 측정이 우선 처리되고 필터링되어(filtered) 최적의 액션을 결정하는 것을 의미한다. 그러한 처리는 대개 애플리케이션 특정적(application-specific)이며 맞춤형(custom)인 알고리즘(센서의 사전결정된 세트와 함께 작동하도록 한정됨)은 일반적으로 그렇지 않다면 관련되지 않은 애플리케이션들 간에 공유되지 않는다.
예를 들어, 통상적인 가정 온도조절기는 온도를 폴링할(poll) 수 있고, 다양한 사용자 선호 및 내부 달력/시계 설정을 고려하여 기후 제어 시스템(climate control system)을 켜거나 끌 수 있다. 그러나, 온도 센서 및 내부 달력/시계 설정에만 의존하는 것은 기후 제어 시스템이 꺼진 채로 있거나 어떤 대체적 설정에 머물러 있게 하는 데에 유용할 수 있는 관련 정보의 대안적 소스를 활용하지 않는 것이다. 예를 들어, 가정 보안 시스템과 같은 다양한 관련되지 않은 시스템은 누군가 집에 있는지 '알' 수 있다. 이 정보는, 만약 온도조절기에 또는 기후 제어 시스템에 주어진다면, 기후 제어 시스템의 사용을 사람들이 집에 있는 때로 한정하는 것에 의해 잠재적으로 더 많은 에너지를 절약할 수 있을 것이다.
유리하게도, LSS는 온도조절기, 기후 제어 시스템 및/또는 가정 보안 시스템으로 하여금 그들의 판독 및 임의의 다른 '액션가능한(actionable) 이벤트'를 그 판독(가령, 온도조절기: "너무 추움" 또는 "너무 더움"; 보안 시스템: "아무도 집에 없음")에 기반하여 LSS에게 발행하게 하는 것에 의해 그러한 문제를 다룬다. 그리고 온도조절기, 기후 제어 시스템 및/또는 가정 보안 시스템 또는 다른 시스템은 LSS로부터의 더 높은 수준의 이벤트에 가입하고, 그들이 수신하는 임의의 이벤트에 기반하여 액션을 취할 수 있다(가령, 기후 제어 시스템은 "아무도 집에 없음" 유형 이벤트가 가입에 응답하여 수신되었다면 온도조절기에 대한 응답을 오버라이드(override)함). 흥미롭게도, 임의의 특정한 변환된 이벤트(즉, 출력 이벤트)는 추가로 변환된 이벤트를 유발(spawn)하거나 트리거링하는 데에 사용될 수 있고, 이로써 LSS로 하여금 복잡한 제어 행동을 가능하게 하기 위해 가입자에게 이벤트를 제시하게 한다.
또한, 인간의 존재 또는 온도를 검출하는 새로운 능력을 구비한 새 디바이스가 LSS로의 발행자의 리스트(list)에 부가되어서, 온도조절기 또는 기후 제어 시스템에 대한 어떠한 수정도 필요하지 않다. 예를 들어, 망 연결된(net-connected) TV에 대한 TV 원격 제어의 사용자 동작은 TV가 활성적으로(actively) 사용되고 있었다는 표시(indication)를 LSS에게 TV가 발행하는 것을 초래할 것이다. 이에 응답하여, LSS는 이 사용 표시를 "사람들이 집에 있음"(이후에 그 유형의 이벤트에 관심이 있는 임의의 가입자(가령, 온도조절기, 기후 제어 시스템, 보안 시스템 등)에게 제공될 것임)과 같은 이벤트로 변형할 것이다. "사람들이 집에 있음" 이벤트는 그 특정한 이벤트에 가입한 임의의 상이한 가입자에 대해 상이하게 포맷화될 수 있다는 점에 유의하시오.
유리하게도, 그러한 능력은 LSS로 하여금 단순한 기술을 '스마트'하게 보이도록 만들게 하고, 이로써 효과적인 인간-기술 상호작용 경험(human-technology interaction experience)을 가능하게 한다. 일반적으로, LSS는 기존의 인프라스트럭처로 하여금 다른 시스템에 의한 사용을 위해 복잡한 이벤트 결정을 내리는 데에 도움이 되도록 사용되게 한다. 예를 들어, 누군가가 건물의 층에 있는지 판정하는 것은 커피 머신 버튼, 지상 전화 사용, 엘리베이터 버튼 등을 평가하는 것에 의해 달성될 수 있다. 그러나, 그 소스들 전부를 전등 제어 시스템(light control system)과 같은 것에 배선하는 것(wiring)을 요구하는 해결책을 창출하는 것은 가격이 엄청나게 비쌀(cost-prohibitive) 법할 것이다. 대신에, LSS에 커플링된 임의의 다른 센서, 디바이스 등을 수정하지 않고도 새로운 물리적 또는 논리적(즉, 소프트웨어 기반) 센서, 디바이스 등이 그 시스템에 부가되면서, 그 디바이스들로 하여금 그렇지 않으면 관련되지 않은 디바이스, 시스템, 에이전트 등 간의 정보를 수신하고 변환 또는 변형하며 공유하는 집중화된 인가부(centralized authorioty)에 발행하고 가입하게 하는 메커니즘을 LSS가 제공한다.
또한, 복잡함을 줄이기 위해, 다양한 실시예에서, LSS 그 자체는 이벤트를 해석하는 데에서 어떠한 역할도 하지 않고, 대신 정적 시맨틱 규칙(static semantic rule)들에 기반하여 이벤트(또는 센서 판독)의 하나의 유형을 수집하여 다른 유형으로 변형할 뿐이다. 예를 들어, '엘리베이터 버튼이 눌림'(Elevator Button Pushed) 이벤트 또는 발행은 LSS에 의해 '사람이 로비에서 검출됨'(human detected in lobby), '사람이 X 층에서 검출됨'(human detected on floor X), '사람이 건물에 있음'(human in building) 등과 같은 이벤트로 변형되어, 그 이벤트들 중 임의의 것에 가입한 모든 앱, 디바이스, 제어 시스템 등에 송신될 수 있다. 그리고 그 이벤트를 해석하고 액션을 취하며 선택적으로 새 이벤트를 재발행하는 것은 개개의 가입자에게 달려 있는데, 이는 다른 가입자에 의해 골라져 처리되고/되거나 그에 따라 작용되고/되거나 새로운 높은 수준의 이벤트로서 재발행되는 등일 수 있다. 예를 들어, 다음의 예시적인 시퀀스(sequence)를 고려하시오:
1. 온도계 센서가 온도 데이터를 LSS에 발행한다;
2. LSS로부터 온도 데이터를 수신하기 위해 온도 변화 속도 소프트웨어 에이전트가 가입되고, 온도가 감소 또는 증가하는 빠르기를 LSS에 발행한다(관련되지 않은 센서로부터의 발행에 대한 가입의 수신에 응답하여 에이전트에 의한 발행의 예를 유의하시오);
3. 온도 데이터 및 온도가 증가 또는 감소하는 빠르기 모두를 LSS로부터 수신하기 위해 가정 온도조절기가 가입되고, 온도의 절대값은 물론 그것의 변화 속도에 따라 HVAC 유닛을 제어한다.
다양한 실시예에서, LSS는 또한 다음 능력 중 임의의 조합을 가능하게 하는 논리를 포함하나, 이에 한정되지는 않는다:
·중복(duplicate)/순환적(circular) 이벤트 변형 검출 및 제거;
·문제해결(troubleshooting) 및 다른 목적을 위한 합성(synthetic) (자동적 또는 수동적) 이벤트 생성;
·보안 양상(가령, 가입자 액세스 레벨)에 기반하여 이벤트 데이터를 수정하는 것(가령, 몇몇 가입자에 대해서는 저해상도 이미지 그리고 다른 가입자에 대해서는 고해상도 이미지와 같이 신호의 품질을 변경하는 것);
·신호 신뢰 레벨을 제공하는 센서 또는 이벤트로부터의 발행에 기반하여 확률 기반 변환을 정의하는 신택스(syntax) 및 논리;
·LSS에 새로운 센서를 등록하는 것 및 인가된(authorized) 에이전트(가령, 사용자 인터페이스, 제어판 앱(control panel app) 등)에 의해 행해질 수 있는 변형을 정의하는 것; 및
·센서 및 애플리케이션은 그 자신의 이벤트 유형을 정의할 수 있고, LSS 규칙은 소비자(즉, 가입자)를 갖는 이벤트로 그 새로운 이벤트 유형을 변형하도록 마련될 수 있다.
2.2 입력 소스 및 가입자:
위에서 언급된 바와 같이, 설명의 목적으로, 다음의 논의에서 "입력 소스"라는 용어는 물리적 현상 및 양을 검출 또는 측정하고 그것을 편리한 전기적, 무선 주파수, 오디오 또는 광학 신호(이후에 LSS에 입력 또는 이벤트로서 발행됨)로 변형하는 디바이스로서 특히 정의된다. 입력 소스의 예는 매우 다양한 디바이스, 센서, 음성 입력 메커니즘, 제스처 또는 터치 기반 입력 메커니즘, 소프트웨어 에이전트, 소프트웨어 이벤트, 인프라스트럭처 이벤트 등을 포함하나, 이에 한정되지 않는다.
디바이스의 예는 커피 메이커, 송풍기, 전화, 텔레비전, 원격 제어, 기기 등을 포함하나, 이에 한정되지는 않는다. 센서의 예는 움직임 센서, 온도 센서, 카메라, 마이크, 소비자 디바이스에 내장된 센서 등을 포함하나, 이에 한정되지는 않는다. 소프트웨어 이벤트의 예는 태블릿(tablet), 넷북(netbook), 노트북(notebook), 데스크톱(desktop), 미디어 플레이어(media player), 휴대폰(cell phone) 또는 다른 형태의 컴퓨터와 같은 컴퓨팅 디바이스(computing device) 상에서의 사용자 활동(user activity), 스크린 세이버(screen saver) 켬 또는 끔, 전력 절약 모드 개시 또는 종료, 이메일 수신됨과 같이 그러한 디바이스상에서의 자동적 액션 또는 통지 등을 포함하나, 이에 한정되지는 않는다. 인프라스트럭처 이벤트의 예는 기기 사용, 엘리베이터 버튼을 누름, 전등 스위치를 개폐하기(flipping), 온도 제어를 조정하는 것 등을 포함하나, 이에 한정되지는 않는다.
또한, 위에서 언급된 바와 같이, 다음의 논의에서 "가입자"라는 용어는 하나 이상의 입력 소스의 발행으로부터 변환되었거나 변형된 더 높은 수준의 이벤트를 LSS로부터 수신하는 널리 다양한 디바이스, 센서, 소프트웨어 에이전트, 다른 LSS 또는 LSP 등을 나타내는 경우에 일반적으로 사용될 것이다. 추가로, 발행자는 다른 발행자로부터 LSS에 의해 수신되는 입력에 응답하여 생성되는 정보에 대한 가입자일 수 있다. 또한, 가입자는 다른 발행자(또는 다른 가입자)로부터의 발행에 응답하여 LSS로부터 수신되는 이벤트 또는 정보에 응답하여 이벤트를 재발행하거나 새 이벤트를 발행할 수 있다.
일반적으로, 입력 소스는 하나 이상의 가입자에 대한 변환 또는 변형 및 배포(distribution)를 위해 LSS에게 그 입력 소스에 의해 산출되는 하나 이상의 발행을 제공한다. LSS는 다양한 입력 소스로부터 발행을 수신하기 위해 다양한 종래의 기법 중 임의의 것을 사용한다. 그러한 기법들은 이더넷(Ethernet), USB, FireWire®, Thunderbolt™, IEEE 802.x, RFID 등과 같은 다양한 유선 또는 무선 인터페이스를 거쳐 데이터 메시지 또는 신호를 통해 수신되는 발행을 포함하나, 이에 한정되지는 않는다. 또한, 통신 능력이 없는 기존의 디바이스는 LSS에 의한 사용을 위해 단순한 발행 능력을 제공하도록 조정될 수 있다. 예를 들어, 유선 또는 무선 네트워킹 능력을 갖는 종래의 전류계(current meter)는 램프, 커피 메이커, 운동용 자전거 등과 같은 디바이스의 전원 코드(power cord)를 따라 플러그연결되어(plugged) 그 디바이스의 전력 사용에 기반하여 그 디바이스가 사용 중인 때의 표시를 발행할 수 있다.
사용되는 통신 프로토콜 또는 특정한 입력 소스가 통신 능력으로 증강되는지 여부에 상관없이, 전반적인 발상은 그 입력 소스가 그것의 전류 상태(가령, 켜짐 또는 꺼짐, 온도 판독 등)과 같은 정보 및/또는 그 입력 소스에 의해 생성되는 이벤트 또는 다른 정보를 단순히 보고한다는 것이다. 임의의 입력 소스에 의해 생성되는 그 유형의 이벤트 또는 다른 정보는 그 입력 소스가 어떤 것인지, 그리고 그 입력 소스가 어떤 통신 능력을 가질 수 있는지에 분명히 의존한다. 예들은 기기 전원 버튼 눌림, 움직임 센서에 의해 움직임이 검출됨, 비디오 카메라로부터의 이미지 스트림(image stream) 등을 포함하나, 이에 한정되지는 않는다.
2.2. 1 논리적 센서:
센서로서 보통 여겨지지 않는 다양한 디바이스들이 LSS로의 발행을 위해 가치 있는 데이터 소스(가령, 커피 메이커의 활성화 또는 사람 센서로서 작용하는 엘리베이터 버튼의 누름)로서 작용할 수도 있다. 그러한 디바이스로부터 액션가능한 이벤트를 도출하는 것은 그 디바이스를 기존의 결정 내리는(decision-making) 에이전트에 물리적 및 논리적으로 배선하는 것과 연관된 비용 때문에 보통 행해지지 않는다. 그러나, LSS의 많은 이점 중 하나는 단순히 LSS가 입력 소스, 그리고 그 입력 소스로부터의 입력 또는 발행이 무엇을 나타내는지(가령, 엘리베이터 버튼을 누르는 것은 사람이 엘리베이터 버튼에 인접함을 나타냄)를 인지하게 하는 것이 그 입력 소스로 하여금 LSS에 발행하게 한다는 것이다.
또한, 보통 다른 목적을 위해 사용되는 센서를 포함하는 디바이스는 다운로드가능한 소프트웨어 앱 또는 유사한 것을 통해 LSS에 의한 사용을 위해 논리적 센서로서 기능하게 될 수 있다. 예를 들어, 많은 현대적 휴대폰은 가속도계, 마이크, 카메라, GPS 등과 같은 센서를 포함하며, 와이파이(WiFi) 또는 다른 무선 네트워킹 능력을 통해 그러한 센서로부터 판독을 통신하는 것이 가능하다. 그러한 목적을 위해 설계된 단순한 앱을 사용하여, 휴대폰 내의 기존의 센서 중 임의의 것이 켜져서 데이터(가령, 오디오, 비디오, 움직임, 위치 등)를 수집하는 데 사용될 수 있는데, 그 데이터는 이후 그 휴대폰에 내포된 다양한 통신 능력을 사용하여 임의의 하나 이상의 LSS에 발행된다.
물리적 센서 설치는 통계조사 판독(census reading)을 LSP가 받아들일 수 있는 어떤 것으로 변환하는 그러한 물리적 위상(physical stature)을 위한 논리적 센서가 본질적으로 되고 그 센서와 함께 작동하도록 설계된 것인 새로운 앱의 모든 에피소드라면 또는 어떤 제어판 또는 그러한 무언가를 통해 네트워크에 등록하는 것을 수반한다.
유사하게, 소프트웨어 기반 센서는 LSS에 발행될 수 있는 소프트웨어 기반 이벤트를 나타낸다. 예를 들어, 다양한 운영체제가 활동 기반 표시자(가령, 스크린 세이버, 어떤 기간 동안 사용 중이지 않은 경우에 자동적인 전력 절약 등)로 설계된다. 그러한 이벤트의 개시를 포착(capture)하여 포워딩하는 운영체제 하에서 실행하는 앱은 임의의 다른 입력 소스와 같이 LSS에 의해 사용될 수 있는 소프트웨어 기반 센서를 생성한다. 소프트웨어 기반 센서를 생성하기 위한 앱의 다른 예는 사람들이 존재하는지, 그 사람들이 무엇을 하고 있을 수 있는지 또는 다른 정보를 활성화되는 특정 센서에 따라 판정하기 위해 컴퓨팅 디바이스와 연관된 마이크, 카메라 또는 다른 입력 수단을 활성화하고 모니터링하는 앱을 포함한다. 역시, 이 앱은 또 프로세스를 포착하여 진척시키거나 포착된 데이터를 LSS에 의한 사용을 위해 포워딩하는바, 임의의 다른 입력 소스와 마찬가지다.
또한, 순전히 소프트웨어 생성형(software-generated)인 이벤트가 LSS에 발행될 수도 있다. 그러한 능력은 사용자로 하여금 가입된 조명 제어 시스템(lighting control system)을 어떠한 부가적인 인프라스트럭처 또는 조명 제어 시스템 수정도 없이 LSS 연결된 컴퓨터(LSS connected computer)를 통해 제어하게 하는 것과 같은 다양한 시나리오를 가능하게 한다.
추가로, 다양한 실시예에서, LSS는 기존의 센서 또는 입력 디바이스의 출력 또는 발행이 새로운 논리적 센서의 생성 및/또는 그러한 다양한 센서 및 입력 소스의 출력 또는 발행과 보통 연관되지 않는 액션의 개시를 가능하게 하기 위하여 처리되는 메커니즘을 제공한다. 예를 들어, 사용자의 가정에 어떠한 움직임 센서도 없거나 기존의 움직임 센서는 어떤 이유(가령, 그 센서를 위한 배터리가 다 됨)에선가 오프라인이라고 가정하자. 이에 응답하여, LSS는 다양한 입력 소스로부터의 광범위한 발행 중 하나 이상에 기반하여 논리적 움직임 센서를 합성할 수 있다. 예를 들어, TV 원격 제어의 사용을 나타내는 발행 또는 수량계를 통해 흐름률로부터 추론되는 변기 물내림을 나타내는 발행 중 어느 하나 또는 양자 모두는 이후 하나 이상의 가입자에게 제공되는 "사람이 집에 있음" 유형 출력 이벤트로 변형될 수 있다.
또한, 머신 학습(machine-learning) 맥락에서, 이는 LSS가 관측된 상관(correlation)들에 기반하여 새로운 논리적 센서들을 자동적으로 합성하고 등록하는 것을 가능하게 한다. 예를 들어, 만약 물리적인 움직임 검출기 디바이스(physical motion detector device)의 트리거링이 항상 변기 물내림을 뒤따르나, 그 움직임 센서가 보고하는 것(reporting) 또는 트리거링을 갑작기 중단하더라도, LSS는 (발행자로서 자동적으로 등록되어 그 변기 물내림에만 기반하여 트리거링하는 논리적 움직임 센서의 자동적인 생성을 통해) 여전히 움직임 이벤트를 트리거링할 수 있다. 유리하게도, 이는 또한 LSS로 하여금 다른 물리적 현상(즉 실제 움직임 검출기 디바이스가 오작동 중일 수 있음)을 '감지'하게 한다. 그리고 이 '감지된' 물리적 현상은 추가적인 액션(가령, 움직임 센서 배터리를 교체하라는 경보(alert))을 위해 사용자 또는 다른 서비스에게 보고될 수 있다.
2.2. 2 에이전트 :
일반적으로, LSS에 가입된 소프트웨어 에이전트는 'TV가 켜짐'(TV turned on) 유형 이벤트와 같은, LSS로부터 수신되는 정보에 응답하여 다양한 구동(actuation)들(가령, 불을 끄고 블라인드를 내림)을 수행하거나 개시한다. 따라서, 통상적인 센서 커플링과는 대비되어, LSS는 임의의 특정한 소프트웨어 에이전트가 특정한 센서와 물리적으로 커플링될 필요는 없다는 의미에서 논리적인 데이터 센서에 소프트웨어 에이전트가 커플링될 수 있게 한다. 다시 말해, 센서(또는 다른 입력 소스)에 물리적으로 커플링되는 것은 아니고, 그 에이전트는 대신 LSS로의 가입을 통해 하나 이상의 특정한 유형의 이벤트에 커플링된다.
또한, LSS는 임의적인 개수의 입력 소스로 하여금 에이전트가 가입된 이벤트 중 임의의 것을 초래할 수 있는 정보를 발행하게 한다. 이 입력 소스는 물리적 센서, LSS로의 발행에 앞서 선택적으로 판독을 처리(가령, 원시 데이터의 잡음 필터링(noise filtering))하는 매개 소프트웨어 콤포넌트, 온도와 같은 정보를 발행하기 위해 물리적 세계와 상호작용하지 않는 완전히 논리적인 센서 등을 포함할 수 있다.
따라서, LSS에 가입된 맞춤화가능한(customizable) 소프트웨어 에이전트의 사용은 다른 관련되지 않은 센서, 디바이스 등으로부터의 입력 또는 발행에 응답하여 LSS에 의해 생성되거나 트리거링되는 이벤트에 응답하여 그 에이전트가 매우 다양한 작업 또는 액션을 수행 또는 개시하게 한다. 이는 특정한 유형의 이벤트에 응답하여 특정한 작업을 수행 또는 개시하도록 설계되고 그렇지 않으면 범주 및 그것이 하는 일에서 한정되는 에이전트를 사용자가 부가 또는 맞춤화하게 한다. 유리하게도, 다양한 실시예에서, LSS는 또한 관리자 또는 가령 LSS 관련 서비스 또는 지원을 제공하는 회사와 같은 다른 제3자 소스(third-party source)에 의해 원격으로 업데이트될 수 있다.
예를 들어, 다양한 실시예에서, 소프트웨어 에이전트는 LSS를 통해 제공되는 특정한 사용자 정의가능한(user-definable) 이벤트의 수신을 대기하고 아날로그 또는 디지털 신호(가령, 논리적 '0' 또는 '1')를 가령 단순한 네트워크 기반 전자 스위치 또는 릴레이(relay)와 같은 제어 디바이스에 보내도록 설계될 수 있다. 유리하게도, 이는 단순한 네트워크 기반 전자 스위치 또는 릴레이와의 조합으로서 에이전트를 사용하는 것이 다른 전자 디바이스를 (그 전자 디바이스에 전력을 개폐시킴(cycling)으로써) 켜고 끄게 하는데, 그 전자 디바이스가 그렇지 않으면 네트워크 또는 LSS에 직접 연결되는 것이 가능하지 않은 경우에도 그러하다.
2.3 발행의 변환:
위에서 언급된 바와 같이, LSS는 다양한 입력 소스로부터 발행을 수신하고 그 발행을 하나 이상의 가입자에 의해 사용가능한 신호 또는 이벤트로 변환 또는 변형한다. 예를 들어, 네트워크 연결된 TV와 연관되고/되거나 별개의 네트워크 연결된 수신기(가령, 네트워크 기반 IR 수신기)에 의해 모니터링되는 IR 기반 TV 원격 제어를 고찰하자. 이 예에서, LSS는 원격 제어의 '켜짐' 버튼이 눌렸음을 나타내는 발행을 수신하고 그 발행을 하나 이상의 이벤트(가령, '누군가가 거실에 있음'(someone's in the living room) 유형 이벤트)로 변환한다. 따라서, 이는 단지 TV 원격 버튼을 누르는 것이 LSS로 하여금 맞춤화 코딩된(custom coded) HTML 또는 XML 스크립트에 기반하여 변환 또는 이벤트를 포함할 수 있는 하나 이상의 사전정의된 변환의 세트를 촉발(fire)하게 함을 뜻한다.
유리하게도, 위 예에서 TV 원격 제어는 어떠한 추가적인 회로, 지능(intelligence) 또는 능력도 요구하지 않는다. 네트워크 연결된 TV 또는 IR 수신기는 그저 버튼이 눌렸다는 사실을 LSS에 발행하고, LSS는 그저 그 버튼 누름을 사전정의된 또는 사용자 맞춤화가능한(user-customizable) 변환 규칙의 하나 이상의 세트에 기반하여 임의의 다른 가입자에 의한 사용을 위해 하나 이상의 이벤트로 변형한다.
예를 들어, TV가 켜진 경우 불을 흐릿하게 하는 조명 시스템은 그것이 간접적으로 TV 원격 제어에 응답하고 있는 것임을 인지하지 않는다. 대신, LSS는 TV 원격 제어의 '켜짐' 버튼이 눌린 경우 그 버튼 누름이 '누군가가 방에 '(somebody's in the room) 유형 이벤트 및 'TV가 켜짐' 유형 이벤트로 변형된다는 것과 같은 하나 이상의 변환 규칙을 포함한다. 이 경우, 조명 시스템은 새로운 '불을 흐릿하게 '(dim lights) 유형 이벤트를 트리거링하거나 조명 에이전트(lighting agent)가 사람이 텔레비전을 볼 수 있도록 불을 흐릿하게 하는 것과 같이 어떻게든 작용하는 것을 초래하기 위하여 '누군가가 방에 있음' 유형 이벤트 및 'TV가 켜짐' 유형 이벤트 중 어느 하나 또는 양자 모두에 가입될 수 있다. 다시 말해, LSS는 '누군가가 방에 있음' 및 'TV가 켜짐'으로부터 LSS에 가입된 조명 시스템에 의해 소비되는 '불을 흐릿하게 함' 이벤트로 부드럽게 변환하는 것(soft translation)을 가능하게 한다.
다시 말해, TV 원격 제어와 같은 디바이스가 주어지면, 가령 그 디바이스는 LSS가 그 디바이스로부터 직접 또는 하나 이상의 매개를 통해 발행을 이해하고 받도록 LSS에 등록되거나 그렇지 않으면 연관된다. LSS의 다양한 실시예에서, 사용자에게는 다양한 가입자에 의한 액션과 특정한 발행을 연관시키기 위해 사용자가 리스트, 마법사(wizard)를 통해, 맞춤형 변환 스크립트를 기록하는 것에 의해서, 기타 등등으로 그 발행을 위한 변환을 선택 또는 정의하게 하는 제어판 또는 유사한 것이 제시된다. 단순한 예는 TV 원격 제어 버튼 누름을 빛을 희미하게 하는 것과 같은 어떤 다른 액션과 연관시키기 위해 선택적인 LSS 사용자 인터페이스를 사용하는 것이다. 그리고 발행된 버튼 누름을 가입된 조명 제어 시스템에 의해 사용가능한 포맷으로 변환하는 것은 시스템으로 하여금 그 원격 버튼이 눌린 경우 불을 희미하게 하도록 한다.
도 3은 LSS 사용자 인터페이스를 구현하기 위한 제어판, 마법사 또는 애플리케이션의 단순한 예를 보여준다. 위에서 언급된 바와 같이, LSS는 (도 3에 도시되지 않은) 발행을 위한 입력 소스의 등록 및 (도 3에 도시되지 않은) LSS와 함께 사용하기 위한 가입자의 등록을 허용한다. 그러므로, 입력 소스 및 가입자의 등록이 주어진 경우, 도 3은 등록된 입력 소스의 발행의 사용자 선택(310) 및 선택된 발행을 하나 이상의 변환된 출력 이벤트와 연관시키는 것(320)을 예시한다.
도 3은 또한 특정한 가입자의 사용자 선택(330) 및 선택된 가입자로의 하나 이상의 출력 이벤트의 할당(340)을 예시한다. 따라서, 출력 이벤트가 임의의 입력 소스의 발행에 응답하여 LSS에 의해 트리거링될 때마다, LSS는 그 출력 이벤트가 할당된 모든 가입자에게 그 출력 이벤트를 촉발 또는 송신할 것이다. 예시적인 사용자 인터페이스는 또한 특정한 출력 이벤트의 수신에 응답하여 가입자에 의해 수행되거나 그렇지 않으면 개시될 구동의 선택 또는 맞춤화(customization)(350)를 예시한다.
마지막으로, 도 3의 사용자 인터페이스는 또한 사용자로 하여금 선택된 가입자에 의해 수행되거나 그렇지 않으면 개시되는 구동을 제어하기 위한 하나 이상의 출력 이벤트와 연관된 신뢰 임계를 조정하거나 설정(360)하게 한다. 예를 들어, 카메라로부터의 비디오 피드(video feed)가 소프트웨어 에이전트에 의해 평가되고 소프트웨어 에이전트가 이후 "John Smith"의 얼굴 인식 결과를 70% 신뢰 레벨로 LSS에 발행한다고 가정하자. 그리고 LSS는 'John Smith가 방에 있음'(John Smith is in the Room) 유형 이벤트와 같은 출력 이벤트를 그러한 70% 신뢰 레벨과 함께 트리거링할 수 있다. 그리고 누가 방에 있는지에 따라 상이한 음악을 들려주는 가입된 음악 플레이어(music player)는 그 사람이 적어도 70%의 신뢰 레벨로 식별될 때마다 그 사람이 좋아하는 노래의 재생을 트리거링하도록 설정되는 한 그러한 재생을 개시할 것이다.
도 3을 더 자세히 살펴보면, "TV 원격 버튼"(TV Remote Button) 발행의 선택(310)("사람이 방에 있음"(Person in Room) 출력 이벤트 및 "TV가 켜짐"(TV Turned On) 출력 이벤트 모두가 연관되고(320) 따라서 TV 원격 제어 상에서 버튼이 눌리는 것에 응답하여 LSS에 의해 트리거링됨)을 도 3이 예시한다는 것을 보여준다. 이 출력 이벤트들이 주어지면, 사용자는 도 3에 도시된 바와 같이 "조명 제어"(Lighting Control) 가입자와 같은 하나 이상의 가입자를 선택(330)할 수 있다.
그리고, "조명 제어" 가입자의 선택이 주어지면, 사용자는 그 가입자와 함께 이용가능한 출력 이벤트 중 하나 이상(가령, "사람이 방에 있음", "TV가 켜짐" 및 "아무도 집에 없음"(No One Home))을 할당(340)할 수 있다. 이는 이 경우에 임의의 입력 소스로부터의 임의의 발행에 응답하여 LSS에 의해 그 이벤트들 중 임의의 것이 생성되거나 트리거링될 때마다 "조명 제어" 가입자가 할당된 출력 이벤트를 수신할 것이게끔 한다.
또한, 조명 제어 시스템과 같은 가입자가 통상적으로 다양한 구동(가령, 이 경우에 "불 켜짐"(Lights On), "불 꺼짐"(Lights Off) 또는 "불 흐릿함"(Lights Dim))이 가능하다고 주어지면, 사용자는 "조명 "제어"를 위한 그러한 이용가능한 구동 중 임의의 것을 선택하고 "조명 제어"에 할당된 출력 이벤트 중 어느 것이 특정한 구동을 트리거링할 것인지 선택할 수 있다. 예를 들어, 도 3에 의해 예시되는 바와 같이, "조명 제어" 가입자는 "사람이 방에 있음" 출력 이벤트 및 "TV가 켜짐" 출력 이벤트 양자 모두의 수신에 응답하여 "불 흐릿함" 구동을 개시할 것이다.
앞선 예들에 비추어 볼 때, LSS의 다양한 실시예들은 사용자로 하여금 하나 이상의 이용가능한 출력 이벤트를 다양한 가입자 또는 구동기(가령, 조명 제어 시스템, 자동화된 차양, 음향 시스템 등), 특정한 카테고리의 이용가능한 구동기, 특정한 방, 건물 또는 영역 안의 이용가능한 구동기 등에 할당하거나 연관시키게 하기 위한 옵션(option)들을 포함한다는 점이 분명할 것이다. 그리고 사용자는 단순히 임의의 특정한 발행에 응답하여 임의의 특정한 구동기가 무엇을 행하기를 바라는지를 선택할 수 있다.
2.3. 1 예시적인 스크립트 기반 변환 포맷:
위에서 논의된 바와 같이, LSS는 출력 이벤트를 생성하기 위해 발행을 변형 또는 변환하고 그 이벤트를 다양한 가입자에게 전한다. 다양한 실시예에서, LSS는 출력 이벤트를 가입자에게 변형하여 전하는 것을 결정하기 위한 구성 정보(information information)를 포함하는 스크립트 기반(script-based) 시나리오(가령, HTML, XML 등)를 사용하여 이 변형 또는 변환을 수행한다.
예를 들어, LSS는 '움직임 검출됨'(Motion Detected) 발행이 움직임 검출 센서로부터 수신되는 경우, '사람들이 층에서 검출됨'(People detected on floor) 출력 이벤트 및 '사람들이 건물에서 검출됨'(People detected in building) 출력 이벤트를 촉발하도록 구성될 수 있다. 층 및 건물 전등 제어 시스템과 같은 가입자는 '사람들이 층에서 검출됨' 및 '사람들이 건물에서 검출됨' 이벤트 중 어느 하나 또는 양자 모두에 가입될 수 있다. 따라서, '움직임 검출됨' 이벤트가 촉발되는 때마다 그 시스템에는 LSS에 의해 '사람들이 층에서 검출됨' 및 '사람들이 건물에서 검출됨' 이벤트가 통지될 것이다.
전술된 구성을 표현하는 하나의 예가 표 1에서 제시되는 스크립트에 의해 아래에서 예시된다. 그러나, 발행을 변형하고 출력 이벤트를 가입자에게 촉발하기 위한 스크립팅(scripting)은 아래에서 예시되는 스크립트 포맷에 한정되도록 의도된 것이 아닌 점, 그리고 아래에서 예시되는 스크립트는 설명과 예의 목적으로만 제공된다는 점이 이해되어야 한다.
Figure pct00001
그리고, 표 1의 예와 함께 계속하면, 커피 머신과 같은 새로운 센서 또는 다른 발행자가 센서 레지스트리(sensor registry)에 부가되면, LSS는 그것의 발행을 '움직임 검출됨' 이벤트로 또한 변형하도록 구성될 수 있는데, 그 새로운 '움직임 검출됨' 이벤트는 이후 다른 이벤트를 유발하여 가입자에게 그 이벤트를 촉발한다. 이는 전용 움직임 검출 센서(즉, "<SensorID="123">")가 행한 것과 같이 위에서 논의된 층 및 건물 조명 시스템에 동일한 영향을 미칠 것이다. 이 새로운 변형은 도 2에 의해 예시되는 스크립트를 산출하도록 표 1의 스크립트를 수정하는 것에 의해 표현될 수 있다:
Figure pct00002
Figure pct00003
표 2에서 커피 및 라떼 머신에 의해 발행되는 '커피가 지시됨'(Coffee Ordered) 이벤트가 어떻게 더 높은 수준의 '사람들이 층에서 검출됨'(People detected on floor) 이벤트 또는 '사람들이 건물에서 검출됨'(People detected in building) 이벤트로 직접적으로 변형하지 않는지 주목하시오. 오히려, 이 변형은 두 개의 패스를 취하는데, 여기서 '커피가 지시됨' 이벤트가 우선 '움직임 검출됨' 이벤트로 변형되고, 이는 이어서 '사람들이 층에서 검출됨' 이벤트 및 '사람들이 건물에서 검출됨' 이벤트 모두로 변형된다. 유리하게도, 이 유형의 다단계(multi-pass) 변환은 중복을 피하고 변환 시맨틱 트리 크기(translation semantic tree size)를 작게 유지한다.
위에서 제공된 예시적인 스크립트는 상대적으로 짧고 단순한 변형의 예를 예시한다. 그러나, 다단계 변환을 허용하는 것의 다른 이점은 그러한 능력이 임의적으로 복잡한 변환 네트워크(여기서, 애플리케이션 또는 가입자는 추상화(abstraction)의 하나의 레벨에서 이벤트를 수신하고, 그러한 수신된 이벤트에 응답하여 액션을 취하며, 이후 원래의 이벤트에 응답하여 취해진 액션에 응답하여 추상화의 다른 레벨에서 새로운 이벤트를 발행함)의 구축(construction)을 가능하게 한다는 것이다. 그러한 변환 체인(본 문서에서는 "t-체인"으로 지칭됨)은 인간과 같은(human-like) 레벨의 맥락적 인지(contextual awareness)를 유발하여 '사람이 카우치에서 잠이 듬'(person fell asleep on couch)과 같은 출력 이벤트를 유발할 수 있는, 임의적으로 높은 레벨의 이벤트 추상화를 가능하게 한다. 그리고 이 출력 이벤트에 민감한 적절한 에이전트 또는 가입 중인 시스템은 가령 TV의 볼륨을 낮추는 것, 실내 조명을 끄는 것, 실내 온도를 조정하는 것, 걸려오는(incoming) 전화 호출을 음성메일(voicemail)로 보내는 것 등과 같은 구동을 트리거링할 수 있다.
유리하게도, 이 유형의 더 높은 레벨의 맥락적 인지는 임의의 주어진 레벨에서의 증가된 복잡도의 결과가 아니라, 각 에이전트가 특화되고(specialized) 단순하며 동떨어진 레벨에서 에이전트로부터 종적으로 고립된 LSS에 의해 제공되는 전체적인 시스템의 드러나는 행동(emergent behavior)이다. 따라서, 더 많은 에이전트가 발행 및 가입을 위해 등록하되, 논리적으로 단순하고 사업 논리에서 자유로운(business logic-free) 채 남아 있음에 따라, LSS는 더 많은 연결과 노드를 부가하면서 크기가 상당히 커질 수 있다.
전술된 프로세스에 대한 추가적인 개량은 신뢰 레벨 또는 임계로 하여금 이벤트의 선택적 (속성 기반(property-based)) 변형 및 전파를 위한 규칙을 생성하기 위해 지정되게 하는 변환 신택스 또는 포맷을 사용하는 것에 의해 가능하게 된다. 예를 들어, 신뢰 레벨 또는 임계를 사용하여, 신뢰 레벨이 어떤 임계 이상인 경우에만 움직임 검출 센서로부터의 '움직임 검출됨' 이벤트가 '사람들이 층에서 검출됨' 이벤트로 변형된다. 이벤트 신뢰 레벨에 관한 추가적인 논의에 대해서는 2.4절을 보시오.
2.3. 2 자동화된 변환 시나리오:
전술된 LSS의 사용자 중심적(user-centric) 실시예에 추가하여, 다양한 실시예에서, LSS는 특정한 입력에 대한 표준적이거나 사전정의된 응답을 제공한다. 예를 들어, 사용자가 텔레비전을 켜는 경우, 자동적으로 불을 끄고 창문 차양을 닫을 "영화 보기 모드"(movie watching mode)를 개시하는 것과 같이 다른 이벤트가 요망될 가능성이 있다.
더욱 구체적으로, 다양한 실시예에서, 특정한 사용자 액션에 응답하기 위한 사전정의된 시나리오 또는 스크립트는 자동적으로 LSS에 제공될 수 있다(가령, LSS 또는 다운로드가능한 앱, 스크립트 등이 제공되는 로컬 스크립트 라이브러리(local script library)). 이 사전정의된 시나리오 또는 스크립트는 특정한 유형의 발행을 변환하고 대응하는 출력 이벤트를 특정한 유형의 가입자에게 제공하여 그 가입자가 특정한 액션을 개시할 수 있게 하기 위한 명령어 또는 규칙을 LSS에 제공한다.
유리하게도, 그러한 사전정의된 스크립트 또는 시나리오는 또한 LSS로 하여금 사용자가 특정한 하드웨어 또는 소프트웨어를 갖지 않는 경우에 사용자에게 그러한 하드웨어 또는 소프트웨어를 사용자에게 제안하게 한다. 예를 들어, 창문 차양을 닫기 위한 제어 시스템(하드웨어 및/또는 소프트웨어)에 자동적으로 가입하고 텔레비전을 켜는 것에 응답하여 생성되거나 트리거링되는 발행 및 대응하는 출력 이벤트에 응답하여 전등을 흐릿하게 하기 위한 조명 제어 시스템에 추가적으로 가입하는 사전정의된 스크립트를 LSS가 이용한다고 가정하자. 만약 사용자가 불을 흐릿하게 하기 위한 제어 시스템을 가지나 창문 차양을 닫기 위한 어떠한 제어 시스템도 갖지 않는다면, LSS는 창문 차양을 닫기 위한 제어 시스템을 지시하고/하거나 구성하기 위한 소스를 사용자에게 제안할 수 있다. 다양한 실시예에서, 이는 또한 LSS로 하여금 사용자의 현재 구성의 구체적인 액션들 및 발행들에 관한 LSS의 사용과 관련하여 사용자 경험(user experience)을 개선하기 위한 하드웨어 및/또는 소프트웨어 제어 시스템들, 구동기들, 설치 서비스들 등을 위하여 사용자에게 공고(advertisement)들을 푸시(push)하게 한다.
2.3. 3 자동화된 학습 기반 시나리오:
일반적으로, 사용자 행동 또는 패턴을 해명하기 위하여 사용자 행동을 시간에 걸쳐 평가하기 위한 자동화된 학습 기법이 통상의 기술자에게 알려져 있고 본 문서에서 기술되지 않을 것이다. 유리하게도, LSS의 다양한 실시예는 하나 이상의 발행 및 대응하는 출력 이벤트에 관한 다양한 가입자 및 구동기의 자동적 구성을 제공하기 위하여 사용자 행동을 시간에 걸쳐 평가하는 컴퓨터 학습(computer-learning) 기법을 추가적으로 조정한다.
예를 들어, 만약 반복적으로 사용자가 국부적인 전등을 흐릿하게 하는 것과 국부적인 창문 차양을 닫는 것에 뒤이어 영화 재생을 시작한다면, LSS는 종래의 학습 기법을 사용하여 그러한 액션을 시간에 걸쳐 학습할 수 있다. 유리하게도, LSS는 이어서 임의의 순서로 그 액션을 자동화할 수 있다. 예를 들어, 만약 사용자가 우선 블라인드를 닫고 불을 흐릿하게 하는 것 없이 영화 재생을 시작한다면, LSS는 사용자에 의해 요구되는 어떠한 추가적인 액션 없이도 불을 흐릿하게 하는 것과 닫는 것을 초래하기 위해 블라인드와 전등과 연관된 에이전트 또는 제어 시스템에 출력 이벤트를 트리거링할 수 있다.
다시 말해, LSS의 다양한 실시예는 다양한 발행을 하나 이상의 변환된 출력 이벤트에 자동적으로 연관시키거나 할당하기 위해 컴퓨터 학습 기법을 사용한다. 그리고 그 변환된 출력 이벤트는 직접적인 사용자 입력을 요구하지 않고서 다양한 시스템 제어 시나리오를 자동화하기 위하여 다양한 가입자에게 자동적으로 전해진다. 다양한 실시예에서, 사용자에게는 임의의 자동화된 행동, 가입, 발행의 변환 등을 조정하거나 맞춤화하기 위한 사용자 인터페이스가 제공된다는 점에 유의하시오.
더욱 구체적으로, 다양한 실시예에서, LSS는 변환된 출력 이벤트가 특정한 발행에 할당되기로 결정하는 것(그 출력 이벤트는 이어서 다양한 유형의 가입자에게 자동적으로 촉발됨)을 사용자 행동으로부터 자동적으로 학습한다. 예를 들어, 사용자가 텔레비전을 켜는 경우, 가령 불을 끄거나 흐릿하게 하고 창문 차양을 닫는 것과 같은 다른 이벤트가 이어서 사용자에 의해 수동으로 개시될 수 있다. 조명 제어 시스템 및 창문 차양 제어가 그 사용자 액션을 LSS에게 나타내는 발행을 제공한다고 가정하면, LSS는 이 액션을 관측하여 기록하고 나서, TV 원격 제어를 위해 '켜짐' 버튼을 누르는 것과 같은 특정한 액션에 뒤이어 사용자에 의해 수행되는 액션을 자동적으로 반복할 수 있다.
유리하게도, (가령, 사용자가 LSS로의 익명의 보고(발행자 및 가입자의 구성 및 사용자 행동에 관한 것임)를 허용하는 선택적인 실시예에서) LSS는 특정한 사용자 행동으로부터 또는 사용자의 대규모 세트의 행동으로부터 학습할 수 있다. 이는 매우 다양한 시나리오 또는 프로그램이 사용자의 LSS에 푸시되거나 그렇지 않으면 제공되게 한다(사용자의 LSS는 이후에 사용자의 선호에 기반하여 국부적으로(locally) 맞춤화될 수 있음). 또한, 사용자의 LSS와 연관된 하드웨어 및 소프트웨어(즉, 발행자 및 가입자) 중 몇몇 또는 전부는 사용자의 LSS에 제공되는 특정한 시나리오 또는 프로그램에 관련되거나 그렇지 않을 수 있다. 그러나, 위에서 논의된 바와 같이, 사용자는 어느 때라도 LSS에 발행자 및 가입자를 부가, 제거, 구성 등을 할 수 있다. 유리하게도, 위에서 언급된 바와 같이, 다양한 실시예에서, LSS는 사용자의 현재 구성의 특정한 액션 및 발행에 관한 LSS의 사용과 관련하여 사용자 경험을 개선하기 위한 하드웨어 및/또는 소프트웨어 제어 시스템, 구동기, 설치 서비스 등에 관하여 사용자에게 정보적인(informational) 발행 또는 공고를 푸시할 수 있다.
2.4 이벤트 신뢰 수준:
위에서 언급된 바와 같이, 다양한 실시예에서, LSS는 (가령, 소프트웨어 에이전트가 정확도의 70% 신뢰도로 얼굴 인식을 반환하는 것과 같이) 신호 신뢰 레벨을 제공하는 센서 또는 이벤트로부터의 발행에 기반하여 확률 기반 변환을 위해 임계 또는 신뢰 레벨을 선택적으로 설정하거나 조정한다. 상이한 신뢰 레벨을 갖는 다수의 발행은 또한 취합(aggregate) 신뢰 레벨을 갖는 출력을 생성하거나 트리거링하기 위해 원하는 임의의 방식으로 조합되거나 취합될 수 있다는 점에 유의하시오. 그리고 그러한 레벨은 특정한 액션을 구동하거나 개시할지 결정하는 데에서 가입자에 의해 사용될 수 있다.
일반적으로, LSS는 이진(binary) 이벤트에 기반하여 이벤트를 변환한다. 예를 들어, 만약 사용자가 차고 문을 열기 위해 원격 제어 버튼을 누른다면, '차고 문 열림'(garage door open)과 같은 이진 이벤트가 LSS에 의해 트리거링될 수 있다. 그러나, 특정한 센서(또는 센서의 조합) 또는 발행자가 발행을, 그 발행이 맞다는 신뢰의 대응하는 확률적 레벨과 조합하여 제공하는 것이 가능한 경우에, LSS는 특정한 변환을 트리거링하기 위해 아니면 추가의 액션을 위해 가입자에게 그 신뢰 레벨을 전하기 위해 이 정보를 이용할 수 있다. 예를 들어, 누군가가 자고 있거나 다쳤거나 죽었는지 판단하기 위해 움직임 센서를 사용하는 것은 상이한 신뢰 레벨을 요구할 가능성이 있을 것이고, 다른 센서의 입력도 그러할 가능성이 있을 것이다(가령, Kinect® 디바이스를 사용하는 스켈레톤 추적(skeleton tracking) 및 적외선 온도 센서를 사용하여 체온을 원격으로 측정하는 것).
또한, 움직임 검출기와 같은 센서와 관련하여, 동작하는 송풍기(moving fan)와 같은 다른 액션은 사람이 실내에 있지 않은 경우 잠재적으로 움직임 센서를 트리거링할 수 있다. 그러한 경우에, '사람이 방에 있음' 유형 이벤트는 움직임 센서가 작동하는 경우 약간 상대적으로 낮은 신뢰 레벨로 트리거링될 수 있다. 반대로, 수동 전등 스위치가 개폐되거나 엘리베이터 버튼이 눌리는 것과 같은 인프라스트럭처 이벤트를 사용하는 것은 거의 100% 신뢰로 '사람이 방에 있음' 유형 이벤트를 트리거링하는 데에 사용될 수 있는데, 그러한 이벤트가 인간의 개입 없이 발생할 일은 극히 없을 듯하기 때문이다. 따라서, 상이한 발행에 응답하여 상이한 신뢰 레벨로 동일한 이벤트가 트리거링될 수 있으리라는 점은 분명할 것이다.
또한, 특정한 이벤트를 다른 발행 또는 이벤트와 연관된 신뢰 레벨에 따라 트리거링하기 위해 상이한 신뢰 레벨이 사용될 수 있다. 다시 말해, 다양한 실시예에서, LSS는 상이한 액션으로 하여금 0부터 100%까지 어디서든(하나 이상의 센서의 발행으로부터 어떤 해석 또는 분석 또는 입력을 통해 그 신뢰가 결정됨) 그 액션과 연관된 신뢰 레벨에서 개시되도록 한다. 유리하게도, 다양한 실시예에서, LSS는 특정한 발행 또는 이벤트와 연관된 신뢰 레벨을 도출하기 위해 모델을 구성하도록 시간에 걸쳐 이벤트를 모니터링하고, 선택적으로 그 모델에 대해 테스트하여 그것을 유효화(validate)할 수 있다.
2.5 보안 고려사항:
다양한 실시예에서, 선택적으로 LSS는 오직 인가된 당사자(인가되거나 확인된 사용자, 인가되거나 확인된 발행자 및 인가되거나 확인된 가입자를 포함함)로의 이벤트, 가입 및 발행의 임의의 조합을 제한함으로써 LSS에 발행된 센서 및 이벤트에 의해 수집된 데이터의 보안(security) 및 비공개성(privacy)을 보장한다. 신뢰받는(trusted) 디바이스, 사용자, 가입자 등만 LSS에 연결되게 하기 위한 기존의 보안 프로토콜이 사용된다. 또한, 신뢰받지 않는(untrusted) 발행자 또는 가입자에게는 특정한 이벤트 또는 발행에 대한 한정된 액세스가 허용될 수 있다. 다시 말해, 다양한 실시예에서, LSS는 센서를 활성화하고 네트워크 하에서 발행하며 가입을 수신하는 것이 안전하고 인가된 방식으로 모두 행해지도록 하기 위해 다양한 보안 메커니즘을 활용한다.
또한, 다양한 상황 하에서, 알려진 또는 알려지지 않은 소스로부터의 신뢰받지 않는 발행이 LSS에 의해 받아들여질 수 있다. 예를 들어, 실내의 신뢰받는 마이크와 대략적으로 동일한 오디오 피드(audio feed)를 발행하는 알려지지 않은 마이크(가령, 알려지지 않은 인근의 사용자의 휴대폰 내의 마이크)로부터의 오디오 피드는 종래의 오디오 처리 기법을 사용하여 개선된 품질의 오디오 신호를 생성하기 위해 그 신뢰받는 오디오 피드와 조합될 수 있다. 유사하게, 다른 사용자와 연관된 신뢰받지 않는 LSS의 애드혹 그룹은 LSS에 정보를 발행하는 것이 허용될 수도 있다(가령, 소란한 방 안의 다수의 사용자의 전화는 오디오 스트림의 개수가 증가함에 따라 종래의 오디오 처리 기법을 통해 상당히 개선될 수 있는 오디오 데이터를 포착하는 데에 모두 사용될 수 있음).
따라서, 다양한 실시예에서, LSS에 의한 발행의 변형은 센서 데이터 또는 발행을 증강시키거나 아니면 다양한 보안 사유로 센서 데이터 또는 발행을 열화시킬(degrade) 수 있다는 점이 분명할 것이다. 그러한 증강 또는 열화는 어떤 원하는 방식이든 보안을 증가시키거나 비공개성을 보장할 방식으로 데이터를 수정하기 위해 발행자 및 가입자 간의 소프트웨어 에이전트를 사용하는 것에 의해 달성된다.
추가로, 보안의 여러 상이한 레벨이 또한 제공될 수 있다. 예를 들어, 인가된 사용자는 가정에서 카메라의 고선명도(high definition) 발행을 수신하는 것이 허용될 수 있으나, 집 밖에 앉아 있는 보안 요원은 단지 동일한 카메라 뷰(camera view)의 더 낮은 해상도 버전을 수신하는 것이 허용될 수 있다. 그러한 실시예는 상이한 액세스 또는 보안 레벨에서의 가입에 응답하여 제공되는 센서 데이터 또는 다른 발행에 대하여 상이한 액세스 레벨 또는 상이한 서비스 품질(quality of service)을 제공하기 위해 가입자의 보안 레벨을 설정하거나 결정하는 것에 의해 가능하게 된다.
2.5. 1 익명의 발행:
유리하게도, 다양한 실시예에서, LSS는 익명의 발행을 허용함으로써 발행 프로세스를 구성하는 프로세스를 단순화한다. 이는 사용자가 LSS에 특정한 입력 소스를 등록할 것을 요구하지 않고 발행을 허용한다. 또한, 발행의 유형에 따라, LSS는 단순히 익명의 발행을 허용하거나 거절할 수 있다. 예를 들어, 다섯 사람이 방에 들어가서 그룹 토의를 시작하고, 각 사람은 그들의 휴대폰 내의 마이크로 하여금 그 사용자들의 LSS들 중 하나 이상에 대화의 오디오 데이터를 캡처하여 스트리밍하게 한다고 가정하자.
그러한 경우, LSS는 익명의 오디오 스트림 발행을 수신하여, 그러한 익명의 발행을 수신하는 것에 의한 보안 위험은 거의 또는 전혀 없이 종래의 오디오 처리 기법을 사용하여 합성의 개선된 오디오 스트림(composite and improved audio stream)을 생성할 수 있다. 그에 반해, LSS에 가입하기 위한 보안 위험은 더 커질 가능성이 있다. 따라서, 다양한 실시예에서, 익명의 가입자는 LSS에 의해 제공되는 출력 이벤트 또는 다른 정보로의 한정된 또는 열화된 액세스가 허용되지 않거나 아니면 승인된다.
따라서, 다양한 실시예에서, LSS는 누구나 LSS에 가입 또는 발행할 수 있는 널리 개방된 것(wide open)으로부터 임의의 레벨로 구성될 수 있다는 점이 분명하다. 또한, LSS는 하나 이상의 레벨의 인가된 발행자, 가입자 또는 사용자로 가입 및/또는 발행을 한정 또는 제한하도록 구성될 수 있다.
2.6 애드혹 그룹:
고정 환경(stationary environment)(가령, 건물, 가정 등)에서 LSS를 제공하는 것에 추가하여, LSS의 다양한 실시예는 임의적인 센서 또는 다른 발행자가 이용가능하게 되거나 빠질 때마다 발행자의 애드혹 그룹이 구성되거나 해체되게 하는 모바일 시나리오에서 구현된다. 또한, 모바일 LSS에 발행하고 있는 이용가능한 많은 발행자가 있는 모바일 사안에서, 개개의 사용자 또는 LSS는 다수의 발행 중 어느 것 또는 어느 유형 또는 카테고리의 발행을 받아들일지 또는 거절할지를 결정할 수 있다. 또한, 개개의 사용자는 그의 LSS로 하여금 특정 이벤트 또는 센서 데이터를 다른 LSS 또는 다른 서비스에 발행 또는 재발행하게 할지를 결정할 수도 있다. 추가로, 몇몇 또는 모든 발행 및 가입을 공유하는 LSS의 상호연결된 그룹 또는 네트워크를 형성하기 위해 다수의 LSS가 연결될 수 있다.
2.7 앱:
임의의 인가된 엔티티(entity)가 센서 또는 발행자의 역할을 수행할 수 있는바, 다양한 실시예에서, LSS는 가상의 (소프트웨어 기반) 논리적 센서를 위해 앱 스토어(store) 또는 마켓플레이스(marketplace) 또는 유사한 것에 대한 액세스를 제공한다. 그러한 앱은 임의의 호환가능한 플랫폼(가령, 모바일 전화, PC, 내장된 디바이스 등)에 배포되고 설치될 수 있다. 그러한 앱은 LSS에 연결되는 경우 그 앱의 논리에 기반하여 추가적인 감지(sensing)을 제공할 수 있다. 예를 들어, 사용자의 휴대폰의 가속도계 및/또는 GPS 하드웨어를 액세스하도록 허용된 앱은 사용자의 모바일 디바이스(mobile device)(그리고 따라서 사용자)가 '걷고 있는지', '운전하고 있는지' 또는 '움직이지 않는지'를 판정할 수 있다.
앱은 임의의 원하는 기능을 제공하도록 설계될 수 있고, 또한 다양한 발행의 맞춤형 변환 또는 변형을 포함하거나 나타낼 수 있다. 추가로, 다양한 앱은 특정한 하드웨어(가령, 창문 차양을 열기 및 닫기를 자동화하기 위한 하드웨어 메커니즘)와 함께 작동하도록 설계될 수 있다. 앱은 그러한 하드웨어와 함께 묶이고(bundled) 앱 마켓플레이스 또는 다른 소스를 통해 획득될 수 있다.
또한, 다양한 실시예에서, LSS 또는 LSS와 연관된 서비스는 사용자 액션에 기반하여 특정한 앱을 사용자에게 자동적으로 제안할 수 있다. 예를 들어, 사용자가 종종 영화를 본다고 하자. LSS 또는 LSS와 연관된 서비스는 사용자에게 영화를 보는 다른 사용자가 자동적으로 불을 흐릿하게 하고 창문 차양을 닫기 위해 (연관된 가입자 및 하드웨어 구동기와 함께) LSS를 사용한다고 자동 경보(auto alert) 할 수 있다. 그리고 LSS 또는 LSS와 연관된 서비스는 사용자에게 영화를 보는 다른 사용자의 기능을 가능하게 하기 위해 사용자 자신의 시스템을 향상시키는 데 사용될 수 있는 앱 및/또는 하드웨어 (또는 전문적인 설치 서비스)를 제안하거나 제공할 수 있다.
2.8 논리적 센서 플랫폼(Logical Sensor Platform: LSP ):
전술된 바와 같이, 다양한 실시예에서, LSS는 위에서 언급된 발행 변환 및 변형은 물론 다양한 디바이스, 시스템, 에이전트 등의 발행 및 가입을 관리한다. 그러나, 관련된 실시예에서, LSS는 단순히 발행 변환 및 변형을 "논리적 센서 플랫폼"(Logical Sensor Platform: LSP)의 서브콤포넌트(sub-component)로 취급한다. 다시 말해, 다양한 실시예에서, LSP는 사용자 인터페이스 및 가입 및 발행의 등록을 제공하여 LSS로 하여금 단순히 발행을 수신하여 변환하게 함으로써 LSS에게서 부담 중 일부를 덜어내는 LSS 둘레의 선택적인 래퍼(wrapper)를 제공한다. 이 경우에, LSP는 (LSS를 통해) 센서 데이터를 발행하고 가입하며 변형하기 위한 일원화된 하드웨어 비인지형 플랫폼을 제공한다. 다양한 실시예에서, LSP는
·센서 데이터, 애플리케이션 정의형(application-defined) 정보, 더 높은 수준의 이벤트 등을 가입하고 발행하기 위한 신택스를 정의하는 인터페이스;
·물리적 및 논리적 센서, 디바이스, 시스템, 에이전트 및 다른 이벤트 발행자로부터 입력을 수신하고 LSS 논리를 호스팅하는 소프트웨어 콤포넌트를 제공하는 레지스트리 서비스(또는 "취합기"(aggregator)); 및
·LSP에 의해 수신되는 발행의 변환 및 변형을 실제로 수행하는 앞서 언급된 LSS
를 포함하여, 여러 기본적인 구성 블록(building block)을 포함하나, 이에 한정되지는 않는다.
위에서 언급된 바와 같이, LSP 인터페이스는 센서 데이터, 애플리케이션 정의형 정보, 더 높은 수준의 이벤트 등을 가입하고 발행하기 위한 신택스를 정의한다. LSP 인터페이스는 안전 또는 개방 프로토콜 상에서 센서, 디바이스, 시스템, 에이전트 및 다른 이벤트 발행자/가입자로의 판독/기록을 위해 액세스가능하다. 또한, 상이한 센서, 디바이스, 시스템, 에이전트 및 다른 이벤트 발행자/가입자는 안전 또는 개방 프로토콜의 상이한 조합을 동시적으로 사용할 수 있다.
LSP 인터페이스의 발행 신택스는 발행되는 데이터(또는 이벤트)의 유형, (센서 판독, 타임스탬프, 발행자 ID, QOS 등과 같은) 이벤트와 연관된 데이터 및 메타데이터는 물론, 적용되는 추가적인 규칙(가령, 만료일자, 시간 또는 액세스 권한에 기반한 품질의 열화 등)을 지정하는 것을 가능하게 한다. 그 인터페이스의 가입 신택스는 통지(즉, 변환된 또는 변형된 발행 또는 더 높은 수준의 이벤트)를 위해 그것의 유형 또는 다른 조건에 기반하여 등록하기 위한 파라미터를 정의한다. 그 인터페이스는 또한 더 정교한 선택문(가령, 만약 "센서 A" 및 "센서 B" 모두가 특정한 센서 판독을 발행한다면, 하나 이상의 특정한 가입자에게 "이벤트 C"를 제공하라)을 위한 질의 신택스(query syntax)를 정의할 수 있다는 점에 유의하시오.
LSP 레지스트리 서비스는 물리적 및 논리적 센서로부터 입력을 수신하고 LSS 논리를 호스팅하는 소프트웨어 콤포넌트이다. 이 레지스트리 서비스는 가입된 당사자로의 푸시(push) 또는 풀(pull) 유형 통지를 지원하고 연결된 센서의 최신 상태의 일부 또는 전체를 제공할 수 있다. 임의의 인가된 당사자가 발행자 또는 가입자라고 등록할 수 있기 때문에, 레지스트리 서비스는 스스로 센서 또는 가입자로서 작용할 수 있어서, 서로 연결된 경우 결합구성성(composability)을 가능하게 하는 것, 특수화(specialization)를 허용하는 것, 성능을 돕는 것, 재송신 등을 한다.
선택적으로는 판독/기록을 위해 LSP 레지스트리 서비스를 액세스하는 것이 안전한 방식으로 수행된다. 인가되지 않은 센서, 가입자 에이전트 또는 관리상의 애플리케이션은 이벤트에 발행 또는 가입하는 것 또는 LSS의 변환 및 변형 규칙 또는 스크립트를 보거나 수정하는 것을 할 수 없게 된다. 센서 네트워크에 걸쳐 이동하는 데이터에 대한 염탐(eavesdropping)(가령, 무선 스누핑(wireless snooping))은 다양한 실시예에서 클레임 기반 인증(claims-based authentication), SSL, 암호화(encryption) 등을 포함하나 이에 한정되지는 않는 종래의 보안 프로토콜을 사용하여 방지된다.
3.0 논리적 센서 서버의 동작의 개요 :
도 1에서 도 3까지와 관련하여 또한 앞서 1절 및 2절에서 제공된 상세한 설명도 고려하여 전술된 프로세스들이 도 4의 일반적인 동작 플로우 다이어그램(operational flow diagram)에 의해 예시된다. 특히, 도 4는 LSS의 다양한 실시예 중 몇몇 실시예의 동작을 요약하는 예시적인 동작 플로우 다이어그램을 제공한다. 도 4는 본 명세서에서 기술되는 LSS의 다양한 실시예 전부의 철저한 표현이도록 의도된 것이 아닌 점 및 도 4에 표현된 실시예는 단지 설명의 목적으로 제공된다는 점에 유의하시오.
또한, 도 4에서 끊긴 선 또는 파선에 의해 표현될 수 있는 임의의 칸들 및 칸들 사이의 상호연결들은 LSS의 선택적인 또는 대안적인 실시예들을 나타낸다는 점 및 이 선택적인 또는 대안적인 실시예들 중 임의의 것 또는 전부는 이 문서에 걸쳐 기술되는 LSS의 다른 실시예들과 조합하여 사용될 수 있다는 점에 유의하여야 한다.
일반적으로, 도 4에 예시된 바와 같이, LSS는 하나 이상의 입력 소스(405)를 등록하여(400) 변환, 변형, 데이터 포워딩 등의 임의의 조합을 나타내는 발행을 LSS의 이벤트 변환 서비스(410) 콤포넌트에 제공함으로써 동작을 시작한다. 추가로, 하나 이상의 가입자(420)가 등록되어(415) 하나 이상의 사전정의된 출력 이벤트(435)를 이벤트 변환 서비스(410)로부터 수신한다.
그리고 이벤트 변환 서비스(410)는 입력 소스에 의해 수행되는 임의의 "액션"에 응답하여 입력 소스(405) 중 임의의 것에 의해 생성되는 데이터 보고 및 이벤트의 임의의 조합을 나타내는 임의의 발행을 수신한다(425). 일반적으로, 앞서의 논의를 고려할 때, 입력 소스에 의해 수행되는 "액션"은 센서 데이터(가령, 온도, 비디오 데이터, 오디오 데이터 등)를 포착하는 것, 센서 동작에 응답하여 이벤트를 트리거링하는 것(가령, 움직임 센서에 의한 '움직임 검출됨' 이벤트), 인프라스트럭처 이벤트를 트리거링하는 것(가령, '엘리베이터 버튼 눌림'), 소프트웨어 에이전트, 앱 또는 유사한 것을 사용하여 논리적 이벤트를 생성하는 것 등을 포함한다는 점이 분명할 것이다.
이벤트 변환 서비스(410)에 의해 수신되는 각 발행에 응답하여, LSS는 이어서, 앞서 언급된 바와 같이, 사전정의된 발행 변환, 사전정의된 발행 변형 및 사전정의된 발행 포워딩 액션(가령, 하나의 센서로부터의 온도 판독이 가입 중인 디바이스로 전달되거나 포워딩됨)의 임의의 조합을 수행함으로써, 사전정의된 출력 이벤트(435)의 세트로부터 출력 이벤트 중 하나 이상을 생성(430)하거나 트리거링한다. 그리고 임의의 발행에 응답하여 이벤트 변환 서비스(410)에 의해 생성되는 임의의 출력 이벤트는 그 특정한 출력 이벤트를 수신하기 위해 등록된 임의의 가입자에게 제공된다(440). 그리고 각 가입자는 이벤트 변환 서비스(410)로부터 수신되는 임의의 출력 이벤트에 국부적으로 응답하고(445) 선택적으로는 가입자에 의해 수신되는 출력 이벤트에 응답하여 생성되거나 트리거링되는 새 이벤트를 발행 또는 재발행하기 위해 다른 입력 소스(405)로서 작용한다.
추가로, 다양한 실시예에서, 선택적으로 입력 소스 및 가입자를 등록하는 것(400 및 415), 입력 소스(405)의 발행을 선택하거나 맞춤화하는 것, 이벤트 변환 서비스(410)에 의해 수행되는 변환, 다양한 사전정의된 출력 이벤트(435)로의 가입, 보안 레벨을 설정하는 것, 신뢰 레벨을 설정하거나 조정하는 것, 앱을 다운로드하는 것, 정보적인 발행 또는 공고를 수신하고/하거나 그에 응답하는 것 등을 위해 선택적인 사용자 인터페이스(450)가 제공된다. 또한, 위에서 논의된 바와 같이, LSS 또는 사용자가 가상적인 (소프트웨어 기반) 논리적 센서 또는 특정한 하드웨어(가령, 창문 차양의 열기 및 닫기를 자동화하기 위한 하드웨어 메커니즘)와 함께 작동하도록 설계된 다양한 앱을 다운로드하여 이용하는 것을 가능하게 하기 위해 선택적인 앱 스토어(455) 또는 유사한 것이 제공된다. 또한, 그러한 앱은 하드웨어와 함께 묶이고 앱 마켓플레이스 또는 다른 소스를 통해 획득될 수 있다.
4.0 예시적인 동작 환경:
본 문서에서 기술되는 LSS는 수많은 유형의 범용 또는 특수 목적 컴퓨팅 시스템 환경 또는 구성 내에서 동작하는 것이다. 도 5는, 본 문서에 기술되는 바와 같이, LSS의 다양한 실시예 및 구성요소가 구현될 수 있는 범용 컴퓨터 시스템(general-purpose computer system)의 단순화된 예를 보여준다. 도 5에서 끊긴 선 또는 파선에 의해 표현되는 임의의 칸들은 그러한 단순화된 컴퓨팅 디바이스의 대안적인 실시예를 나타낸다는 점 및 아래에서 기술되는 바와 같이 이 대안적인 실시예들 중 임의의 것 또는 전부는 이 문서에 걸쳐 기술되는 다른 대안적인 실시예와 조합하여 사용될 수 있다는 점에 유의하여야 한다.
예를 들어, 도 5는 다양한 발행자 및/또는 가입자(590)와 통신하는 단순화된 컴퓨팅 디바이스(500)을 보여주는 일반적인 시스템 다이어그램을 도시한다. 그러한 컴퓨팅 디바이스는 통상적으로 적어도 어떤 최소의 계산 능력(computational capability)을 갖는 디바이스들(개인용 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 컴퓨팅 디바이스, 랩톱(laptop) 또는 모바일 컴퓨터, 태블릿, 휴대폰 및 PDA와 같은 통신 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능(programmable) 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임(mainframe) 컴퓨터, 오디오 또는 비디오 미디어 플레이어 등을 포함하나 이에 한정되지는 않음)에서 찾을 수 있다.
LSS를 구현하기에 적합한 컴퓨팅 디바이스는 기본적인 계산 동작을 가능하게 하기 위해 충분한 계산 능력 및 시스템 메모리를 갖는 디바이스를 포함한다. 특히, 도 5에 의해 예시된 바와 같이, 계산 능력은 하나 이상의 처리 유닛(들)(510)에 의해 전반적으로 보여지고, 선택적으로는 하나 이상의 GPU(515)를 포함하는데, 이들 중 어느 하나 또는 모두는 시스템 메모리(520)와 통신하는 것이다. 일반적인 컴퓨팅 디바이스의 처리 유닛(들)(510)은 DSP, VLIW 또는 다른 마이크로제어기(micro-controller)와 같은 특화된 마이크로프로세서일 수 있거나, 멀티코어(multi-core) CPU 내의 특화된 GPU 기반 코어를 포함하여, 하나 이상의 처리 코어(processing core)를 갖는 종래의 CPU일 수 있다는 점에 유의하시오.
추가로, 도 5의 단순화된 컴퓨팅 디바이스는 또한, 가령 통신 인터페이스(530)와 같은 다른 콤포넌트를 포함할 수 있다. 도 5의 단순화된 컴퓨팅 디바이스는 또한 하나 이상의 종래의 컴퓨터 입력 디바이스(540)(가령, 포인팅 디바이스, 키보드, 오디오 입력 디바이스, 비디오 입력 디바이스, 촉각(haptic) 입력 디바이스, 유선 또는 무선 데이터 송신을 수신하기 위한 디바이스 등)를 포함할 수 있다. 도 5의 단순화된 컴퓨팅 디바이스는 또한, 가령 하나 이상의 종래의 컴퓨터 출력 디바이스(550)(예컨대, 디스플레이 디바이스(들)(555), 오디오 출력 디바이스, 비디오 출력 디바이스, 유선 또는 무선 데이터 송신을 송신하기 위한 디바이스 등)와 같은 다른 선택적인 콤포넌트를 포함할 수 있다. 범용 컴퓨터를 위한 통상적인 통신 인터페이스(530), 입력 디바이스(540), 출력 디바이스(550) 및 저장 디바이스(560)는 통상의 기술자에게 잘 알려져 있고, 본 문서에서 상세히 기술되지 않을 것임에 유의하시오.
도 5의 단순화된 컴퓨팅 디바이스는 또한 다양한 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체는 저장 디바이스(560)를 통해 컴퓨팅 디바이스(500)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있고, 컴퓨터 판독가능한 또는 컴퓨터 실행가능한 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위해, 휘발성 매체 및 비휘발성 매체 모두(착탈가능(removable)한 것(570) 및/또는 착탈가능하지 않은 것(580)임)를 포함한다. 한정이 아니라 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 DVD, CD, 플로피 디스크, 테이프 드라이브, 하드 드라이브, 광학(optical) 드라이브, 고체 상태(solid state) 메모리 디바이스, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, 자기(magnetic) 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스, 또는 원하는 정보를 저장하는 데 사용될 수 있는 것이고 하나 이상의 컴퓨팅 디바이스에 의해 액세스될 수 있는 것인 임의의 다른 디바이스와 같은 컴퓨터 또는 머신(machine) 판독가능한 매체 또는 저장 디바이스를 포함하나, 이에 한정되지 않는다.
컴퓨터 판독가능 또는 컴퓨터 실행가능한 명령어, 데이터 구조, 프로그램 모듈 등과 같은 정보의 저장은 또한 하나 이상의 변조된 데이터 신호 또는 반송파 또는 다른 전송 메커니즘 또는 통신 프로토콜을 인코딩하기 위한 앞서 언급된 다양한 통신 매체 중 임의의 것을 사용하여 달성될 수 있고, 임의의 유선 또는 무선 정보 전달 메커니즘을 포함한다. "변조된 데이터 신호"(modulated data signal) 또는 "반송파"(carrier wave)라는 용어는 일반적으로 신호 내에 정보를 인코딩하는 방식으로 그 특성 중 하나 이상이 설정되거나 변경되게 하는 신호를 나타낸다는 점에 유의하시오. 예를 들어, 통신 매체는 하나 이상의 변조된 데이터 신호를 전하는 유선 네트워크 또는 직결된(direct-wired) 연결과 같은 유선 매체 및 음향(acoustic), RF, 적외선, 레이저 및 하나 이상의 변조된 데이터 신호 또는 반송파를 송신 및/또는 수신하기 위한 다른 무선 매체와 같은 무선 매체를 포함한다. 위의 것 중 임의의 것의 조합은 통신 매체의 범주 내에 또한 포함될 것이다.
또한, 본 문서에서 기술되는 LSS의 다양한 실시예 중 일부 또는 전부를 구현하는 소프트웨어, 프로그램 및/또는 컴퓨터 프로그램 제품 또는 그 일부는 컴퓨터 실행가능한 명령어 또는 다른 데이터 구조의 형태로 컴퓨터 또는 머신 판독가능한 매체 또는 저장 디바이스 및 통신 매체의 임의의 원하는 조합으로부터 저장, 수신, 송신 또는 판독될 수 있다.
마지막으로, 본 문서에서 기술되는 LSS는 또한 컴퓨팅 디바이스에 의해 실행되는, 프로그램 모듈과 같은, 컴퓨터 실행가능한 명령어의 일반적인 맥락에서 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정한 작업을 수행하거나 특정한 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 콤포넌트, 데이터 구조 등을 포함한다. 본 문서에서 기술되는 실시예는 또한 하나 이상의 통신 네트워크를 통해 링크된(linked), 하나 이상의 디바이스의 클라우드(cloud) 내에서, 또는 하나 이상의 원격 처리 디바이스에 의해 작업이 수행되는 분산형(distributed) 컴퓨팅 환경에서 실시될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 매체 저장 디바이스를 포함하는 국부적 컴퓨터 저장 매체 및 원격 컴퓨터 저장 매체 모두에 위치될 수 있다. 더 나아가, 앞서 언급된 명령어는 프로세서를 포함하거나 포함하지 않을 수 있는 하드웨어 논리 회로로서 부분적으로 또는 전체로 구현될 수 있다.
LSS에 관한 앞의 서술은 예시 및 설명의 목적으로 제시되었다. 그것은 철저한 것이도록 또는 청구된 대상을 개시된 정밀한 형태로 한정하도록 의도된 것이 아니다. 위의 교시에 비추어 볼 때 많은 수정 및 변경이 가능하다. 또한, 앞서 언급된 대안적인 실시예들 중 임의의 것 또는 전부는 LSS의 추가적인 혼합(hybrid) 실시예를 형성하기 위해 요망되는 여하한 조합에서든 사용될 수 있다는 점에 유의하여야 한다. 본 발명의 범주는 이 상세한 설명에 의해서가 아니라 본 문서에 부기된 청구항에 의해 한정되는 것으로 의도된다.

Claims (10)

  1. 이벤트 데이터를 변환하고 공유하기 위해 컴퓨터로 구현되는 프로세스(computer-implemented process)로서,
    변환 서비스(translation service)에 발행하기(publishing) 위해 복수의 입력 소스를 등록하고,
    상기 변환 서비스로부터 하나 이상의 사전정의된 출력 이벤트를 수신하기 위해 복수의 가입자를 등록하며,
    상기 등록된 입력 소스 중 하나 이상이 상기 입력 소스에 의해 수행된 하나 이상의 액션(action)에 응답하여 하나 이상의 발행(publication)을 상기 변환 서비스에 제공하되, 각 발행은 데이터 보고 및 이벤트의 임의의 조합을 나타내고,
    상기 변환 서비스에 의해 수신된 임의의 발행에 대하여, 사전정의된 발행 변환, 사전정의된 발행 변형 및 사전정의된 발행 포워딩(forwarding) 액션의 임의의 조합을 수행하는 것에 의해 상기 출력 이벤트 중 하나 이상을 트리거링(triggering)하며,
    상기 변환 서비스가 임의의 출력 이벤트를 트리거링할 때마다, 해당 출력 이벤트를 수신하기 위해 등록된 임의의 가입자에게 해당 출력 이벤트를 제공하는 프로세스 액션을 수행하도록 컴퓨팅 디바이스(computing device)를 사용하는 단계를 포함하는,
    컴퓨터로 구현되는 프로세스.
  2. 제1항에 있어서,
    각 가입자는 임의의 수신된 출력 이벤트에 국부적으로(locally) 응답하는,
    컴퓨터로 구현되는 프로세스.
  3. 제1항에 있어서,
    상기 입력 소스 중 하나 이상은 소프트웨어 기반 앱(software-based app)의 형태의 논리적 센서(logical sensor)인,
    컴퓨터로 구현되는 프로세스.
  4. 제1항에 있어서,
    상기 입력 소스 중 하나 이상은 해당 입력 소스의 하나 이상의 발행과 조합하여 신뢰 레벨(confidence level)을 제공하는,
    컴퓨터로 구현되는 프로세스.
  5. 제4항에 있어서,
    상기 출력 이벤트 중 하나 이상은 하나 이상의 대응하는 발행의 신뢰 레벨에 기반하여 트리거링되는,
    컴퓨터로 구현되는 프로세스.
  6. 제1항에 있어서,
    상기 가입자 중 하나 이상을 입력 소스로서 등록하는 프로세스 액션을 더 포함하는,
    컴퓨터로 구현되는 프로세스.
  7. 이벤트 데이터를 변환하고 배포하는 시스템으로서,
    변환, 변형 및 데이터 포워딩의 임의의 조합을 나타내는 발행을 이벤트 변환 디바이스에 제공하기 위해 하나 이상의 입력 소스를 등록하는 디바이스와,
    상기 이벤트 변환 디바이스로부터 하나 이상의 사전정의된 출력 이벤트를 수신하기 위해 하나 이상의 가입자를 등록하는 디바이스와,
    임의의 등록된 입력 소스로부터 수신된 임의의 발행에 응답하여, 사전정의된 발행 변환, 사전정의된 발행 변형 및 사전정의된 발행 포워딩 액션의 임의의 조합을 사용하여 상기 사전정의된 출력 이벤트의 세트로부터 출력 이벤트 중 하나 이상을 트리거링하기 위해 상기 이벤트 변환 디바이스를 사용하는 것과,
    상기 이벤트 변환 디바이스에 의해 트리거링된 임의의 출력 이벤트를, 해당 특정한 출력 이벤트를 수신하기 위해 등록된 임의의 가입자에게 제공하는 디바이스를 포함하는
    시스템.
  8. 제7항에 있어서,
    상기 입력 소스 중 하나 이상은 해당 입력 소스의 하나 이상의 발행과 조합하여 신뢰 레벨을 제공하고,
    상기 출력 이벤트 중 하나 이상은 하나 이상의 대응하는 발행의 신뢰 레벨에 기반하여 트리거링되는,
    시스템.
  9. 제7항에 있어서,
    상기 가입자 중 하나 이상을 입력 소스로서 등록하는 것을 더 포함하고, 상기 가입자 중에서 입력 소스로서 등록된 하나 이상의 가입자는 해당 가입자에게 제공된 출력 이벤트 중 하나 이상에 응답하여 상기 이벤트 변환 디바이스에 새로운 발행을 제공하는,
    시스템.
  10. 정보를 공유하기 위해 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 매체로서, 상기 명령어는 컴퓨팅 디바이스로 하여금
    변환, 변형 및 데이터 포워딩의 임의의 조합을 나타내는 발행을 이벤트 변환 서비스에 제공하기 위해 하나 이상의 입력 소스를 등록하는 단계와,
    상기 이벤트 변환 서비스로부터 하나 이상의 사전정의된 출력 이벤트를 수신하기 위해 하나 이상의 가입자를 등록하는 단계와,
    임의의 등록된 입력 소스로부터 수신된 임의의 발행에 응답하여, 사전정의된 발행 변환, 사전정의된 발행 변형 및 사전정의된 발행 포워딩 액션의 임의의 조합을 사용하여 상기 사전정의된 출력 이벤트의 세트로부터 출력 이벤트 중 하나 이상을 트리거링하기 위해 상기 이벤트 변환 서비스를 사용하는 단계와,
    상기 이벤트 변환 서비스에 의해 트리거링된 임의의 출력 이벤트를, 해당 특정한 출력 이벤트를 수신하기 위해 등록된 임의의 가입자에게 제공하는 단계와,
    각 가입자로 하여금 상기 이벤트 변환 서비스로부터 수신된 임의의 출력 이벤트에 국부적으로 응답하게 하는 단계를 포함하는 방법을 실행하게 하는,
    컴퓨터 판독가능 매체.
KR1020157011835A 2012-11-07 2013-11-07 논리적 센서 플랫폼을 위한 논리적 센서 서버 KR20150082287A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/670,633 US20140128994A1 (en) 2012-11-07 2012-11-07 Logical sensor server for logical sensor platforms
US13/670,633 2012-11-07
PCT/US2013/068969 WO2014074728A1 (en) 2012-11-07 2013-11-07 Logical sensor server for logical sensor platforms

Publications (1)

Publication Number Publication Date
KR20150082287A true KR20150082287A (ko) 2015-07-15

Family

ID=49640196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157011835A KR20150082287A (ko) 2012-11-07 2013-11-07 논리적 센서 플랫폼을 위한 논리적 센서 서버

Country Status (6)

Country Link
US (1) US20140128994A1 (ko)
EP (1) EP2917793A1 (ko)
JP (1) JP2016503539A (ko)
KR (1) KR20150082287A (ko)
CN (1) CN104797991A (ko)
WO (1) WO2014074728A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9958860B2 (en) * 2014-05-01 2018-05-01 Rockwell Automation Technologies, Inc. Systems and methods for broadcasting data and data tags associated with an industrial automation system
US9293029B2 (en) * 2014-05-22 2016-03-22 West Corporation System and method for monitoring, detecting and reporting emergency conditions using sensors belonging to multiple organizations
US10057077B2 (en) 2014-10-29 2018-08-21 Xiaomi Inc. Method and server for controlling smart devices based on predefined scenario mode
CN104394044B (zh) * 2014-10-29 2018-02-02 小米科技有限责任公司 自定义智能设备场景模式的方法和装置
US10985937B2 (en) 2015-02-05 2021-04-20 Apple Inc. Delegation or revocation of trigger execution in an automated environment
TWI556169B (zh) * 2015-03-24 2016-11-01 溫瓌岸 泛用型多功能感測器服務平台
FR3038096A1 (fr) * 2015-06-23 2016-12-30 Orange Partage de donnees d'evenements entre plusieurs plateformes de service
CN107851046B (zh) * 2015-07-31 2022-02-25 苹果公司 自动化环境中触发器执行的委托
US10419540B2 (en) 2015-10-05 2019-09-17 Microsoft Technology Licensing, Llc Architecture for internet of things
US10347047B2 (en) * 2015-11-25 2019-07-09 Google Llc Trigger regions
US11863509B2 (en) * 2015-12-18 2024-01-02 Amazon Technologies, Inc. Publish-subscribe message transformation
WO2018038732A1 (en) * 2016-08-26 2018-03-01 Rf Digital Corporation Low latency and power efficient data transmission between a sensor and server computer
US11626010B2 (en) * 2019-02-28 2023-04-11 Nortek Security & Control Llc Dynamic partition of a security system
CN110515622B (zh) * 2019-08-28 2023-03-31 百度在线网络技术(北京)有限公司 按钮状态的控制方法、装置、电子设备及存储介质
CN112464084B (zh) * 2020-11-17 2021-07-02 厦门立马耀网络科技有限公司 基于大数据定位和人工智能的业务优化方法及云计算中心
WO2022224322A1 (ja) * 2021-04-19 2022-10-27 日本電信電話株式会社 データ処理システム、データ提供システム、イベント情報生成装置、データ処理装置、データ処理方法、及びプログラム
EP4297347A1 (en) * 2022-06-21 2023-12-27 Siemens Aktiengesellschaft A system including a communication bus for data transmission and method for operating a communication bus

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571140B1 (en) * 1998-01-15 2003-05-27 Eutech Cybernetics Pte Ltd. Service-oriented community agent
US7475246B1 (en) * 1999-08-04 2009-01-06 Blue Spike, Inc. Secure personal content server
US6823223B2 (en) * 1999-12-30 2004-11-23 Microsoft Corporation Method and apparatus for providing distributed scene programming of a home automation and control system
US6842774B1 (en) * 2000-03-24 2005-01-11 Robert L. Piccioni Method and system for situation tracking and notification
US7016888B2 (en) * 2002-06-18 2006-03-21 Bellsouth Intellectual Property Corporation Learning device interaction rules
US20070043803A1 (en) * 2005-07-29 2007-02-22 Microsoft Corporation Automatic specification of semantic services in response to declarative queries of sensor networks
KR20090027000A (ko) * 2007-09-11 2009-03-16 한국전자통신연구원 상황 인식 시스템 환경에서 발생한 이벤트 로그에 기초하여사용자 행동 패턴을 구축하는 장치 및 방법
US20090134982A1 (en) * 2007-11-27 2009-05-28 Alertus Technologies, Llc System and method for distributing alert notifications
JP2012040665A (ja) * 2010-08-23 2012-03-01 Seiko Epson Corp ロボット、ロボットの駆動方法
WO2012119253A1 (en) * 2011-03-08 2012-09-13 Home Monitor Inc. Area monitoring method and system

Also Published As

Publication number Publication date
JP2016503539A (ja) 2016-02-04
CN104797991A (zh) 2015-07-22
WO2014074728A1 (en) 2014-05-15
EP2917793A1 (en) 2015-09-16
US20140128994A1 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
KR20150082287A (ko) 논리적 센서 플랫폼을 위한 논리적 센서 서버
US11721107B2 (en) Systems and methods for locating image data for selected regions of interest
US10558323B1 (en) Systems and methods for smart home automation using a multifunction status and entry point icon
US11599259B2 (en) Methods and systems for presenting alert event indicators
US20210216787A1 (en) Methods and Systems for Presenting Image Data for Detected Regions of Interest
US10602065B2 (en) Tile-based camera mode switching
US10768644B2 (en) Camera data access based on subscription status
US10869006B2 (en) Doorbell camera with battery at chime
US20180330169A1 (en) Methods and Systems for Presenting Image Data for Detected Regions of Interest
US11082701B2 (en) Methods and devices for dynamic adaptation of encoding bitrate for video streaming
US10805226B2 (en) Resource manager, system, and method for communicating resource management information for smart energy and media resources
KR102252258B1 (ko) 홈 네트워크 시스템에서 홈 디바이스들의 그룹 제어 방법 및 장치
US20140172123A1 (en) User terminal apparatus, network apparatus, and control method thereof
WO2018208365A1 (en) Methods and systems for presenting image data for detected regions of interest
Bansal et al. IoT applications in smart homes

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid