KR101683352B1 - 클라우드 기반 어플리케이션들을 위한 센서 api 프레임워크 - Google Patents

클라우드 기반 어플리케이션들을 위한 센서 api 프레임워크 Download PDF

Info

Publication number
KR101683352B1
KR101683352B1 KR1020147012427A KR20147012427A KR101683352B1 KR 101683352 B1 KR101683352 B1 KR 101683352B1 KR 1020147012427 A KR1020147012427 A KR 1020147012427A KR 20147012427 A KR20147012427 A KR 20147012427A KR 101683352 B1 KR101683352 B1 KR 101683352B1
Authority
KR
South Korea
Prior art keywords
sensor
sensor data
request
response
api
Prior art date
Application number
KR1020147012427A
Other languages
English (en)
Other versions
KR20140090193A (ko
Inventor
피유쉬 샤르마
아쉬윈 스와미나탄
크리스토퍼 브루너
무랄리 알 차리
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20140090193A publication Critical patent/KR20140090193A/ko
Application granted granted Critical
Publication of KR101683352B1 publication Critical patent/KR101683352B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0274Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/12Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0287Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment
    • H04W52/0293Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment having a sub-controller with a low clock frequency switching on and off a main controller with a high clock frequency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Power Sources (AREA)
  • Transceivers (AREA)

Abstract

인터넷 상의 또는 클라우드에서의 웹 기반 서버 어플리케이션들에 API (application programming interface) 를 노출시키는 프레임워크용 장치 및 방법이 제공된다. API는 서버 어플리케이션들이 모바일 디바이스 상의 저전력 센서 코어 프로세서를 통해 모바일 디바이스로부터 센서 데이터를 취출하는 것을 허용한다. 이 API는 새로운 모바일 디바이스 클라이언트 어플리케이션을 개발하고 촉진시키는 것과 관련된 노력 및 비용을 제거한다. API 프레임워크는, 모바일 디바이스 상의 하나 이상의 특정 센서들로부터 센서 데이터를 페치하기 위해 웹 기반 어플리케이션이 사용할 수도 있는 API들을 포함한다.

Description

클라우드 기반 어플리케이션들을 위한 센서 API 프레임워크{SENSOR API FRAMEWORK FOR CLOUD BASED APPLICATIONS}
관련 출원들의 상호 참조
본 출원은 2011년 11월 9일자로 출원되고, 발명의 명칭이 "Sensor API Framework for Cloud Based Applications"이며, 본 양수인에게 양도되고 그 전체가 참조에 의해 본원에 통합된 미국특허출원 제13/292,578호의 이점을 주장한다.
I. 발명의 분야
본 발명은 일반적으로 무선 통신들을 위한 장치 및 방법들에 관한 것으로, 특히 모바일 디바이스로부터의 센서 데이터를 다수의 웹기반 어플리케이션들로 제공하는 것에 관련된다.
II . 배경 기술
현재, 종종 서버 어플리케이션으로 칭해지며 모바일 디바이스로부터의 센서 데이터를 필요로 하는 웹기반 어플리케이션들은 모바일 디바이스 상에서 실행하는 대응 클라이언트 어플리케이션을 갖는다. 이들 클라이언트 어플리케이션들 중 일부는 모바일 디바이스 상에서 연속적으로 동작한다. 아주 다양한 센서들이 모바일 디바이스들로 통합되고 센서 데이터를 혁신적 방식들로 활용하기 위해 커뮤니티에서의 관심이 높아짐에 따라, 모바일 디바이스 상의 이러한 클라이언트 어플리케이션들은 그 인기 및 사용이 증가하고 있다. 이들 다수의 클라이언트 어플리케이션들은 상이한 소스들로부터 유래하며, 상이한 서버들과 통신하고, 각각이 모바일 디바이스로부터 많은 양의 전력 및 프로세싱 사이클들을 소비할 수도 있다. 이들 다수의 클라이언트 어플리케이션들이 공통의 벤더 (vendor) 로부터 유래하지 않는 한, 이들은 전체적으로 서로 조정되지 않고 센서들에게 임의적으로 그리고 중복적으로 질의하게 된다. 센서는, 단일의 조정된 응답이면 충분하게 될 경우에, 중복 요청들에 의해 인터럽트될 수도 있다. 추가적으로, 모바일 센서 데이터에 흥미가 있는 웹 개발자들 및 연구자들은 각각의 서버 어플리케이션에 대해 그리고 각각의 모바일 디바이스 플랫폼에 대해 별도의 클라이언트 어플리케이션을 작성해야 하고, 그 결과 개발 비용이 상승하고 개발 시간을 연장시키게 된다. 유저의 관점에서, 유저는, 센서 데이터를 요구하는 상이한 서버들의 각각에 대해 다수의 클라이언트 어플리케이션들을 설치하고 배터리를 더 자주 충전해야 할 필요가 있다.
따라서, 모바일 디바이스 상에서 작동하는 클라이언트 어플리케이션들의 수를 감소시키고, 센서 요구들을 조정하고, 모바일 디바이스 플랫폼 상에서의 코드 개발을 최소화하거나 제거하고, 및/또는 서버 어플리케이션들에 센서 데이터를 제공함에 있어서 소비 전력을 감소시키는 플랫폼이 존재해야만 한다.
개요
낮은 듀티 싸이클의 프로세서를 통해 다수의 서버 어플리케이션들로 하나 이상의 센서로부터의 센서 데이터를 커플링시키는 공통 API (application programming interface) 를 제공하여 높은 소비 전력의 어플리케이션 프로세서에 대한 부하를 경감하는 (offloading) 모바일 디바이스 및 모바일 디바이스 상에서 작동하는 방법이 개시된다.
몇몇 양태들에 따르면, 공통 API (application programming interface) 를 제공하는 모바일 디바이스가 개시되는데, 그 모바일 디바이스는: 무선 안테나에 커플링된 모뎀; 모뎀에 커플링되며 지속기간에 걸쳐 제 1의 레벨의 전력을 소비하는 클라이언트 어플리케이션 프로세서; 모뎀에 커플링되고 공통 API를 포함하며, 센서 코어 클라이언트 및 센서 코어 클라이언트에 커플링된 센서 드라이버를 포함하고, 지속기간에 걸쳐 제 2의 레벨의 전력을 소비하는 센서 코어 프로세서로서, 제 2의 레벨의 전력은 제 1의 레벨의 전력보다 낮은, 센서 코어 프로세서; 센서 코어 프로세서의 센서 드라이버와 통신하도록 커플링된 센서를 포함한다.
몇몇 양태들에 따르면, 모바일 디바이스에서 공통 API (application programming interface) 를 제공하는 방법이 개시되는데, 상기 방법은: 제 1의 웹 기반 서버 어플리케이션으로부터, 공통 API를 사용하여 센서 데이터에 대한 제 1의 요청을 수신하는 단계; 제 1의 웹 기반 서버 어플리케이션과 관련되지 않은 제 2의 웹 기반 서버 어플리케이션으로부터, 공통 API를 사용하여 센서 데이터에 대한 제 2의 요청을 수신하는 단계; 센서 데이터에 대한 제 1의 요청 및 제 2의 요청을 센서 코어 프로세서에서 프로세싱하고 클라이언트 어플리케이션 프로세서를 바이패스하는 단계; 센서 코어 프로세서에서, 센서로부터 센서 데이터를 수신하는 단계; 제 1의 요청에 대해 센서 데이터를 포함하는 제 1의 응답으로 응답하는 단계; 및 센서 데이터에 대한 제 2의 요청에 대해, 제 1의 요청과는 별개인, 센서 데이터를 포함하는 제 2의 응답으로 응답하는 단계를 포함한다.
몇몇 양태들에 따르면, 공통 API (application programming interface) 를 제공하는 모바일 디바이스가 개시되는데, 상기 모바일 디바이스는: 제 1의 웹 기반 서버 어플리케이션으로부터, 공통 API를 사용하여 센서 데이터에 대한 제 1의 요청을 수신하는 수단; 제 1의 웹 기반 서버 어플리케이션과 관련되지 않은 제 2의 웹 기반 서버 어플리케이션으로부터, 공통 API를 사용하여 센서 데이터에 대한 제 2의 요청을 수신하는 수단; 센서 데이터에 대한 제 1의 요청 및 제 2의 요청을 센서 코어 프로세서에서 프로세싱하고 클라이언트 어플리케이션 프로세서를 바이패스하는 수단; 센서 코어 프로세서에서, 센서로부터 센서 데이터를 수신하는 수단; 제 1의 요청에 대해 센서 데이터를 포함하는 제 1의 응답으로 응답하는 수단; 및 센서 데이터에 대한 제 2의 요청에 대해, 제 1의 요청과는 별개인, 센서 데이터를 포함하는 제 2의 응답으로 응답하는 수단을 포함한다.
몇몇 양태들에 따르면, 프로세서와 메모리를 포함하는 디바이스가 개시되는데, 상기 메모리는: 제 1의 웹 기반 서버 어플리케이션으로부터, 공통 API (application programming interface) 를 사용하여 센서 데이터에 대한 제 1의 요청을 수신하고; 제 1의 웹 기반 서버 어플리케이션과 관련되지 않은 제 2의 웹 기반 서버 어플리케이션으로부터, 공통 API를 사용하여 센서 데이터에 대한 제 2의 요청을 수신하고; 센서 데이터에 대한 제 1의 요청 및 제 2의 요청을 센서 코어 프로세서에서 프로세싱하고 클라이언트 어플리케이션 프로세서를 바이패스하고; 센서 코어 프로세서에서, 센서로부터 센서 데이터를 수신하고; 제 1의 요청에 대해 센서 데이터를 포함하는 제 1의 응답으로 응답하고; 그리고 센서 데이터에 대한 제 2의 요청에 대해, 제 1의 요청과는 별개인, 센서 데이터를 포함하는 제 2의 응답으로 응답하는, 소프트웨어 명령들을 포함한다.
몇몇 양태들에 따르면, 프로그램 코드를 포함하는 비일시적 컴퓨터 판독가능 저장 매체가 개시되는데, 제 1의 웹 기반 서버 어플리케이션으로부터, 공통 API (application programming interface) 를 사용하여 센서 데이터에 대한 제 1의 요청을 수신하고; 제 1의 웹 기반 서버 어플리케이션과 관련되지 않은 제 2의 웹 기반 서버 어플리케이션으로부터, 공통 API를 사용하여 센서 데이터에 대한 제 2의 요청을 수신하고; 센서 데이터에 대한 제 1의 요청 및 제 2의 요청을 센서 코어 프로세서에서 프로세싱하고 클라이언트 어플리케이션 프로세서를 바이패스하고; 센서 코어 프로세서에서, 센서로부터 센서 데이터를 수신하고; 제 1의 요청에 대해 센서 데이터를 포함하는 제 1의 응답으로 응답하고; 그리고 센서 데이터에 대한 제 2의 요청에 대해, 제 1의 요청과는 별개인, 센서 데이터를 포함하는 제 2의 응답으로 응답하는 프로그램 코드를 포함한다.
예시를 통해 여러 양태들이 도시되고 설명되는 하기의 상세한 설명으로부터 다른 양태들이 당업자에게 자명할 것임이 이해된다. 도면들 및 상세한 설명은 제한적인 것이 아니라 본질적으로 예증적인 것으로 간주되어야 한다.
본 발명의 실시형태들이, 단지 예로서, 도면을 참조하여 설명될 것이다.
도 1은 모바일 디바이스의 클라이언트 어플리케이션 프로세서 상에서 작동하는 전용 클라이언트 어플리케이션들 및 클라우드에서 작동하는 서버 어플리케이션들을 포함하는 공지의 시스템의 컴포넌트들을 도시한다.
도 2는 클라이언트 어플리케이션 프로세서를 통해 센서 데이터를 제공하는 모바일 디바이스의 컴포넌트들을 도시한다.
도 3은, 본 발명의 몇몇 실시형태에 따른, 센서 코어 프로세서를 사용하여 그리고 클라이언트 어플리케이션 프로세서를 바이패스하여 센서 데이터를 제공하는 모바일 디바이스의 컴포넌트들을 도시한다.
도 4는, 본 발명의 몇몇 실시형태들에 따른, API 프레임워크를 도시한다.
도 5는 모바일 디바이스의 센서 코어 프로세서 상에서 작동하는 전용 센서 코어 클라이언트 및 클라우드에서 작동하는 서버 어플리케이션들을 포함하는 시스템의 컴포넌트들을 도시한다.
도 6은, 본 발명의 몇몇 실시형태들에 따른, 다양한 API 메시지들을 예시한다.
도 7은, 본 발명의 몇몇 실시형태들에 따른, 흐름도를 도시한다.
상세한 설명
첨부된 도면과 연계하여 하기에 설명되는 상세한 설명은 본 개시의 다양한 양태들의 설명으로서 의도된 것으로, 본 발명이 실시될 수 있는 양태들만을 나타내도록 의도된 것은 아니다. 본 개시에서 설명된 각각의 양태는 단지 본 개시의 예 또는 설명으로서 제공되며, 반드시 다른 양태들에 비해 더 바람직하거나 더 유익한 것으로 이해되어선 안된다. 상세한 설명은 본 개시의 완전한 이해를 제공하기 위한 목적으로 특정 상세들을 포함한다. 그러나, 본 개시가 이들 특정 상세들 없이 실시될 수도 있음이 당업자에게는 명백할 것이다. 일부 사례들에서, 공지의 구조들 및 디바이스들은 본 개시의 개념들을 모호하게 하는 것을 방지하기 위해 블록 다이어그램 형태로 도시된다. 단지 편의성 및 명확성을 위해 두문자어들 및 다른 설명적 술어가 사용될 수도 있으며 본 개시의 범위를 제한하려는 의도는 아니다.
본원에서 설명되는 모바일 디바이스는 다양한 무선 통신 네트워크 예컨대 WWAN (wireless wide area network; 무선 광역 통신망), WLAN (wireless local area network; 무선 LAN), WPAN (wireless personal area network; 무선 사설망) 등과 연계하여 구현될 수도 있다. "네트워크" 및 "시스템"이라는 용어들은 상호 교환적으로 종종 사용된다. WWAN은 CDMA (Code Division Multiple Access) 네트워크, TDMA (Time Division Multiple Access) 네트워크, FDMA (Frequency Division Multiple Access) 네트워크, OFDMA (Orthogonal Frequency Division Multiple Access) 네트워크, SC-FDMA (Single-Carrier Frequency Division Multiple Access) 네트워크, LTE (Long Term Evolution) 등일 수도 있다. CDMA 네트워크는 하나 이상의 무선 액세스 기술들 (radio access technologies; RAT들) 예컨대 cdma2000, Wideband-CDMA (W-CDMA) 등을 구현할 수도 있다. cdma2000은 IS-95, IS-2000 및 IS-856 표준들을 포함한다. TDMA 네트워크는 GSM (Global System for Mobile Communications), D-AMPS (Digital Advanced Mobile Phone System), 또는 몇몇 다른 RAT를 구현할 수도 있다. GSM과 W-CDMA는 "3rd Generation Partnership Project (3GPP)"로 명명된 컨소시엄으로부터의 문서들에서 설명된다. cdma2000은 "3rd Generation Partnership Project 2 (3GPP2)"로 명명된 컨소시엄으로부터의 문서들에서 설명된다. 3GPP와 3GPP2 문서들은 공개적으로 이용 가능하다. WLAN은 IEEE 802.11x 네트워크일 수도 있고, WPAN은 블루투스 네트워크, IEEE 802.15x, 또는 몇몇 다른 타입의 네트워크일 수도 있다. 또한, 상기 기법들은 WWAN, WLAN 및/또는 WPAN의 임의의 조합과 연계하여 구현될 수도 있다.
일반적으로, 위성 포지셔닝 시스템 (satellite positioning system; SPS) 은, 송신기들로부터 수신된 신호들에 적어도 부분적으로 기초하여, 지구 상에서 또는 지구 위에서 엔티티들이 그들의 로케이션을 결정하는 것을 가능하게 하도록 포지셔닝된 송신기들의 시스템을 포함한다. 일반적으로, 이러한 송신기들은 한 세트의 다수의 칩들의 반복하는 의사 랜덤 노이즈 (pseudo-random noise; PN) 코드로 마킹된 신호를 송신하고 지상 기반 제어국들, 사용자 기기 (user equipment) 및/또는 우주선들 (space vehicles) 상에 로케이팅될 수도 있다. 특정 예에서, 이러한 송신기들은 지구 궤도를 도는 인공위성들 (satellite vehicles; SV들) 상에 로케이팅될 수도 있다. 예를 들면, 갈릴레오 (Galileo), GLONASS, 콤파스 (Compass) 또는 GPS (Global Positioning System) 와 같은 GNSS (Global Navigation Satellite System) 의 배치 (constellation) 에서의 SV는, (예를 들면, GPS에서와 같이 각각의 위성에 대해 상이한 PN 코드들을 사용하여 또는 GLONASS에서와 같이 동일한 코드를 상이한 주파수들 상에서 사용하여) 그 배치에서의 다른 SV들에 의해 송신된 PN 코드들과는 구별될 수 있는 PN 코드로 마킹된 신호를 송신할 수도 있다. 소정의 양태들에 따르면, 본원에서 제공된 기법들은 SPS에 대한 글로벌 시스템들 (예를 들면, GNSS) 에 제한되지 않는다. 예를 들면, 본원에서 제공된 기법들은, 일본 상공의 QZSS (Quasi-Zenith Satellite System), 인도 상공의 IRNSS (Indian Regional Navigational Satellite System), 중국 상공의 북두 (Beidou) 등과 같은 다양한 지역적 시스템들 및/또는 하나 이상의 글로벌 및/또는 지역적 내비게이션 위성 시스템들과 관련되거나 또는 다르게는 이들에서 사용 가능하게 될 수도 있는 다양한 증강 시스템들 (예를 들면, 위성 기반 증강 시스템 (Satellite Based Augmentation System; SBAS)) 에 적용되거나 또는 다르게는 이들에서 사용 가능하게 될 수도 있다. 비제한적인 예로서, SBAS는 통합 정보, 차동 보정들 등을 제공하는 증강 시스템 (들), 예컨대, 예를 들면, WAAS (Wide Area Augmentation System), EGNOS (European Geostationary Navigation Overlay Service), MSAS (Multi-functional Satellite Augmentation System), GAGAN (GPS Aided Geo Augmented Navigation or GPS and Geo Augmented Navigation system) 등을 포함할 수도 있다. 따라서, 본원에서 사용된 바와 같이, SPS는 하나 이상의 글로벌 및/또는 지역적 내비게이션 위성 시스템들 및/또는 증강 시스템들의 임의의 조합을 포함할 수도 있고, SPS 신호들은 SPS 신호들, SPS와 같은 신호들, 및/또는 이러한 하나 이상의 SPS와 관련된 다른 신호들을 포함할 수도 있다.
본원에서 사용된 바와 같이, 모바일 디바이스 (100) 는, 종종, 이동국 (mobile station; MS) 또는 사용자 기기 (UE), 예컨대 셀룰러 폰, 모바일 폰 또는 다른 무선 통신 디바이스, PCS (personal communication system) 디바이스, PND (personal navigation device), PIM (Personal Information Manager), PDA (Personal Digital Assistant), 랩탑 또는 무선 통신 및/또는 내비게이션 신호들을 수신할 수 있는 다른 적절한 모바일 디바이스로 칭해진다. 용어 "이동국"은, 위성 신호 수신, 보조 데이터 수신, 및/또는 포지션 관련 프로세싱이 디바이스에서 발생하든지 또는 PND에서 발생하든지에 무관하게, 예컨대 단거리 무선, 적외선, 유선 접속, 또는 다른 접속에 의해 PND와 통신하는 디바이스들을 포함하도록 의도된다. 또한, "이동국"은, 예컨대 인터넷, WiFi, 또는 다른 네트워크를 통해 서버와 통신할 수 있는 무선 통신 디바이스들, 컴퓨터들, 랩탑들 등을 포함하는 모든 디바이스들을 포함하도록 의도되며, 위성 신호 수신, 보조 데이터 수신, 및/또는 포지션 관련 프로세싱이 디바이스에서 발생하든지, 서버에서 발생하든지, 또는 네트워크와 관련된 다른 디바이스에서 발생하든지에 무관하다. 또한, 상기의 임의의 동작가능한 조합이 모바일 디바이스 (100) 로서 간주된다.
공공 인터넷 또는 사설 인터넷일 수도 있는 클라우드 (300) 는 인터넷 게이트웨이를 갖는 액세스 포인트 또는 무선 기지국을 통해 액세스될 수도 있다. 기지국은 자신의 데이터 서비스 제공들을 통해 인터넷 액세스를 제공한다. 마찬가지로, 액세스 포인트는 WiFi 신호를 통해 인터넷 액세스를 제공한다.
인터넷 상의 또는 클라우드 (300) 에서의 웹 기반 서버 어플리케이션들 (200) 에 API (application programming interface) 를 노출시키는 프레임워크가 제공된다. API는 서버 어플리케이션들 (200) 이 모바일 디바이스 (100) 상의 저전력 센서 코어 프로세서를 통해 모바일 디바이스 (100) 로부터 센서 데이터를 취출하는 것을 허용한다. 이 API는 새로운 모바일 디바이스 클라이언트 어플리케이션을 개발하고 촉진시키는 것과 관련된 노력 및 비용을 제거한다. API 프레임워크는, 모바일 디바이스 (100) 상의 하나 이상의 특정 센서들로부터 센서 데이터를 페치하기 위해 웹 기반 어플리케이션이 사용할 수도 있는 API들을 포함한다.
모바일 디바이스 (100) 상의 특정 센서 또는 센서들로부터의 센서 데이터에 대한 요청을 웹 기반 어플리케이션이 전송하는 대신, 모바일 디바이스 (100) 는 어떤 조건에 기초하여 액션들을 트리거하는 (예컨대 임계치 기반 트리거링 (triggering), 시간 기반 트리거링 또는 계산 기반 트리거링) 명령을 API를 통해 수신할 수도 있다. 웹 기반 어플리케이션은 모바일 디바이스 (100) 가 커스텀화된 스크립트를 API를 통해 실행하게 함으로써 미래의 트리거들을 셋업할 수도 있다. 웹 기반 어플리케이션은, 즉각적인 센서 데이터 또는 주기적인 센서 데이터 중 어느 하나를 요청하는 것을 등록하거나 (어쩌면 유저로부터의 명시적인 허락을 요구한다) 또는 센서 데이터에 대한 미래의 트리거를 셋업할 수도 있다.
도 1은 모바일 디바이스 (100) 의 클라이언트 어플리케이션 프로세서 (120) 상에서 작동하는 전용 클라이언트 어플리케이션들 (130) (예를 들면, 131, 132, 133) 및 클라우드 기반 어플리케이션들을 포함하는 공지의 시스템의 컴포넌트들을 도시한다. 클라우드 기반 어플리케이션들은 클라우드 (300) 에서 작동하는 웹 기반 원격 서버 어플리케이션들 (200) (예를 들면, 201, 202, 203) 이다. 클라이언트 어플리케이션들 (130) 은 클라이언트 어플리케이션 프로세서 (120) 를 통해 서버 어플리케이션들 (200) 로 센서 데이터를 전달한다. 현재, 특정 센서 (160) (예를 들면, 가속도계 (162)) 로부터 서버 어플리케이션들 (200) (예를 들면, 서버 B 어플리케이션 (202)) 로 센서 데이터를 전송하기 위해, 모바일 디바이스 (100) 는 서버 어플리케이션들 (200) 에 대해 별도의 클라이언트 어플리케이션들 (130) (예를 들면, 클라이언트 B 어플리케이션 (132)) 을 연속적으로 실행해야만 한다. 클라이언트 어플리케이션들 (130) 은 벤더 독점의 프로토콜 (vendor proprietary protocol; 171) 을 따라야 하고 서버 어플리케이션들 (200) 로부터의 센서 데이터에 대한 요청을 대기하는 동안 전력을 소비한다. 서버 어플리케이션들 (200) 이 다른 서버 어플리케이션들 (200) 에는 관련되지 않기 때문에, 센서 데이터에 대한 요청들은 조정되지 않는다.
도 2는 클라이언트 어플리케이션 프로세서 (120) 를 통해 센서 데이터를 제공하는 모바일 디바이스 (100) 의 컴포넌트들을 도시한다. 모바일 디바이스 (100) 는 클라이언트 어플리케이션 프로세서 (120) 상에서 작동하는 전용 클라이언트 어플리케이션들 (130) (예를 들면, 131, 132, 133) 을 통해 센서 데이터 요청들을 프로세싱한다. 전용 클라이언트 어플리케이션들 (130) (예를 들면, 131, 132, 133) 은 서버 어플리케이션들 (200) (예를 들면, 201, 202, 203) 을 위해 요구된다.
예를 들면, 도 1에 도시된 바와 같이, 클라이언트 A 어플리케이션 (131) 및 클라이언트 B 어플리케이션 (132) 은 클라이언트 어플리케이션 프로세서 (120) 상에서 실행하고, 각각, 서버 A 어플리케이션 (201) 및 서버 B 어플리케이션 (202) 으로부터의 요청을 대기한다. 일단 클라이언트 어플리케이션이 요청을 수신하면, 그것은 그 요청을 센서 코어 프로세서 (140) 로 전송하고, 그 다음, 센서 코어 프로세서는 특정 센서 (160) 또는 센서들 (GPS; global positioning satellite) 수신기 (161), 가속도계 (162), 자이로스코프 (163), 자기력계 (magnetometer; 164), 온도 센서 (165), 압력 센서 (166), 근접 센서 (167) 및/또는 주변광 센서 (ambient light sensor; ALS 168) 등) 의 세트를 폴링하거나 인터럽트한다. 또한, 특정 센서 (160) 또는 센서들의 세트는 마이크 및/또는 카메라를 포함할 수도 있다. 일단 센서 코어 프로세서 (140) 가 센서 데이터로 클라이언트 어플리케이션에 응답하면, 클라이언트 어플리케이션은 원래의 요청에 그 센서 데이터로 응답한다. 따라서, 클라이언트 어플리케이션 프로세서 (120) 는, 자신의 특정한 서버 어플리케이션 (200) 으로부터 새로운 요청들을 대기하는 동안 그리고 센서 데이터를 대기하는 동안, 다양한 클라이언트 어플리케이션들 (130) 을 작동시키는 전력을 소모하고 있다.
도 3은, 본 발명의 몇몇 실시형태에 따른, 센서 코어 프로세서 (140) 를 사용하여 그리고 클라이언트 어플리케이션 프로세서 (120) 를 바이패스하여 센서 데이터를 제공하는 모바일 디바이스 (100) 의 컴포넌트들을 도시한다. 모바일 디바이스 (100) 는 센서 코어 프로세서 (140) 와 서버 어플리케이션들 (200) 사이의 인터페이스에서, 클라이언트 어플리케이션 프로세서 (120) 를 바이패스하는 공통 API (170) 에 의해 동작한다. 몇몇 실시형태들에서, 센서 코어 프로세서 (140) 는 저전력 모드에서 동작한다. 예를 들면, 센서 코어 프로세서 (140) 는 클라이언트 어플리케이션 프로세서 (120) 보다 더 낮은 클록 레이트에서 동작하고 및/또는 더 긴 수면 기간들을 가지거나 또는 더 낮은 등급의 프로세서 상에서 작동할 수도 있다. 이와 같이, 클라이언트 어플리케이션 프로세서 (120) 는 한 지속기간 동안 제 1의 레벨의 전력을 소비하고 센서 코어 프로세서 (140) 는 그 지속기간 동안 제 2의 레벨의 전력을 소비하는데, 제 2의 레벨의 전력은 제 1의 레벨의 전력보다 더 낮다. 센서 코어 프로세서 (140) 는 다양한 서버 어플리케이션들 (200) 과 통신하기 위해 공통 API를 사용하여 센서 코어 클라이언트 (141) 를 실행한다. 센서 코어 클라이언트 (141) 는, 공통 API를 각각 사용하여, 센서 데이터에 대한 요청들을 수신하는 수단 및 그 요청에 응답하는 수단으로서 작용한다. 또한, 센서 코어 프로세서 (140) 는 센서 드라이버들 (150) 을 실행한다. 센서 드라이버들 (150) 은 GPS 드라이버 (151) 를 포함할 수도 있는데, 이것은 GPS 수신기 (161) 와 통신하는 수단으로서 작용한다. 센서 드라이버들 (150) 은 가속도계 드라이버 (152) 를 포함할 수도 있는데, 이것은 가속도계 (162) 와 통신하는 수단으로서 작용한다. 센서 드라이버들 (150) 은 자이로스코프 드라이버 (153) 를 포함할 수도 있는데, 이것은 자이로스코프 (163) 와 통신하는 수단으로서 작용한다. 센서 드라이버들 (150) 은 자기력계 드라이버 (154) 를 포함할 수도 있는데, 이것은 자기력계 (164) 와 통신하는 수단으로서 작용한다. 마찬가지로, 센서 드라이버들 (150) 은 각각 별개의 센서들에 대한 드라이버를 포함할 수도 있는데, 이것은 센서로부터의 센서 데이터를 수신하는 수단으로서 작용한다. 센서 드라이버들 (150) 은 각각의 센서들 (160) 의 특정한 하드웨어 구현예들과 통신하도록 맞추어진다.
센서 코어 프로세서 (140) 는 서버 어플리케이션들 (200) 로부터의 요청들을 대기하는데, 그것은 공통 API 요청을 사용하고 모뎀 (110) 을 통해 전송된다. 모뎀 (110) 은 무선 안테나 (111) 를 통해 무선 인터페이스에 커플링된다. 서버 어플리케이션들 (200) 은 요청을 모바일 디바이스 (100) 로 푸시할 수 있다. 그러나, 센서 코어 프로세서 (140) 는 클라이언트 어플리케이션 프로세서 (120) 보다 덜 응답적이며, 서버 어플리케이션들 (200) 에서의 센서 데이터 수신은 종종 시간이 중요하지 않다. 즉각적인 응답을 요구하는 다른 클라이언트 어플리케이션들 (130) 은 클라이언트 어플리케이션 프로세서 (120) 상에서 여전히 실행될 수도 있지만, 센서 코어 프로세서 (140) 상에서 작동하는 클라이언트 어플리케이션들 (130) 이 소비 전력을 감소시킬 것처럼 소비 전력을 감소시키지 않을 것이다. 몇몇 실시형태들에서, 센서 코어 프로세서 (140) 는 덜 계산 집약적인 어플리케이션을 실행할 수도 있고 더 계산 집약적인 어플리케이션들은 클라이언트 어플리케이션 프로세서 (120) 상에서 실행된다. 이 구성은, 전력 집약적인 어플리케이션 프로세서는 슬립 모드에 둔 상태에서, 트리거 계산들 및 센서 데이터 업로드들이 저전력 프로세서 상에서 행해지는 것을 가능하게 한다.
도 4는, 본 발명에 따른, API 프레임워크를 도시한다. API 프레임워크는 어플리케이션 레이어 (10), 하이 레벨 오퍼레이팅 시스템 (high level operating system (HLOS; 20), 및 로우 레벨 오퍼레이팅 시스템 (LLOS; 30) 을 포함한다. 이 API 프레임워크는 클라우드 기반 모바일 어플리케이션들의 개발을 촉진하고 모바일 디바이스 (100) 로부터 센서 정보를 취출하는 간단한 웹 기반 API들을 제공한다.
서버 기반 어플리케이션들은 어플리케이션 레이어 (10) 에서 API 프레임워크의 상부 (top) 와 통신한다. 센서들은 LLOS (30) 에서 아래로부터 API 프레임워크와 통신한다. 전체 API 프레임워크는 모바일 디바이스 (100) 에서의 저전력 센서 코어 프로세서, 예컨대 센서 코어 프로세서 (140) 상에서 작동한다. 통합된 어플리케이션들은 어플리케이션 레이어 (10) 에서 작동하며, 다수의 미조정, 미관련 및 미연관된 클라우드 또는 웹 기반 서버 어플리케이션들 (200) 에 의해 요청될 때 센서 데이터를 리턴함으로써 클라이언트로서 작용한다.
모바일 디바이스 (100) 상에서의 센서 드라이버들은 어플리케이션 레이어 (10) 및 HLOS (20) 아래에 상주하며 LLOS (30) 의 제어하에 있다. 몇몇 실시형태들에서, 모바일 디바이스 (100) 는 LLOS (30) 에 커플링된 센서 드라이버들 (150) 을 포함한다. 다른 실시형태들에서, 센서 드라이버들 (150) 은 LLOS (30) 의 일부 또는 전체 부분이다.
도 5는 모바일 디바이스 (100) 의 센서 코어 프로세서 (140) 상에서 작동하는 전용 센서 코어 클라이언트 (141) 및 클라우드 (300) 에서 작동하는 서버 어플리케이션들 (200) (예를 들면, 201, 202, 203) 을 포함하는 시스템의 컴포넌트들을 도시한다. 시스템은 센서 코어 프로세서 (140) 상에서 작동하는 별도의 센서 드라이버들 (150) 을 통해 센서 데이터를 전달한다. 센서 코어 클라이언트 (141) 는 센서 데이터에 대한 요청들을 프로세싱하는 수단으로서 작용할 수도 있다. 센서 코어 클라이언트 (141) 는 센서 데이터 요청들의 중복 또는 충돌을 조정하여, 센서 데이터에 대한 2개의 별도의 요청들이 센서 드라이버들 (150) 로 단일의 호를 발부하게 한다. 따라서, 센서 (160) 는 단일의 조정된 응답이 충분한 경우에 중복 요청들에 의해 인터럽트되지 않는다.
센서 코어 프로세서 (140) 는, 별개의 그리고 관련되지 않은 그러나 공통 API (170) 를 갖는 서버 어플리케이션들 (200) 로부터의 요청들을 모뎀 (110) (도 3 및 도 4에 도시됨) 으로부터 수신한다. 이들 요청들은, 센서 코어 프로세서 (140) 가 듀티 싸이클의 비활성 기간 (슬립 모드) 에서 듀티 싸이클의 활성 기간 (동작 모드) 으로 순환할 때까지 대기할 수도 있다. 완전한 듀티 사이클은 하나의 비활성 기간 및 하나의 인접한 활성 기간을 포함한다. 종종, 동작 모드보다 슬립 모드를 선호하는 듀티 싸이클 동작 모드는 저전력 듀티 싸이클 모드이다. 센서 코어 프로세서 (140) 는 저전력 듀티 싸이클 모드에서 동작함으로써 전력을 절감한다. 센서 코어 클라이언트 (141) 는 센서 (160) 로부터 센서 데이터를 수신하기 위해 센서 드라이버들 (150) 을 사용하고, 요청하고 있는 서버 어플리케이션들 (200) 로 공통 API (170) 를 통해 센서 데이터를 다시 리포팅한다. 이와 같이, 모바일 디바이스 (100) 는 센서 코어 프로세서 (140) 를 사용하여 그리고 클라이언트 어플리케이션 프로세서 (120) 를 바이패스하여 센서 데이터를 제공한다.
도 6은, 본 발명에 따른, 다양한 API 메시지들을 예시한다. 공통 API 메시지들은 센서 정보에 대한 요청들 및 센서 데이터를 포함하는 응답들 양자를 포함한다. 센서 데이터 요청은 센서 데이터에 대한 요청 및 그 데이터가 리턴되어야 하는 곳의 표시 또는 어드레스를 포함한다. (a) 에 도시된 센서 데이터 요청 (301) 은 특정 센서로부터의 센서 데이터에 대한 단순한 요청이며 리턴 IP 어드레스를 포함한다. (b) 에 도시된 센서 데이터 요청 (302) 은 가변 센서로부터의 센서 데이터에 대한 요청이며 리턴 IP 어드레스를 포함한다. 센서 데이터의 타입 (303) 의 표시가 센서 데이터 요청 (302) 에 첨부된다. 예를 들면, 센서 데이터의 타입 (303) 은 가속도계로부터의 데이터를 나타낼 수도 있다. (c) 에 도시된 센서 데이터 요청 (304) 은 다수의 센서들로부터의 센서 데이터에 대한 요청이며 리턴 IP 어드레스를 포함한다. 제 1의 타입의 센서 데이터 (305) 및 제 2의 타입의 센서 데이터 (306) 의 표시가 센서 데이터 요청 (304) 에 첨부된다. (d) 에 도시된 센서 데이터 요청 (307) 은 미래의 시간에서의 센서 데이터에 대한 요청이며 리턴 IP 어드레스를 포함한다. 스케줄 (308) 이 센서 데이터 요청 (307) 에 첨부된다. 예를 들면, 스케줄 (308) 은, 센서 데이터가 주기적으로 요청되고 및/또는 특정 시간에 시작함을 나타낼 수도 있다. 센서 데이터 요청에 응답하여, 통합된 클라이언트 어플리케이션은 센서 데이터 응답을 전송할 수도 있다. (e) 에 도시된 센서 데이터 응답 (310) 은 센서 데이터 요청 (301, 302 또는 307) 에 대응한다. 센서 데이터 응답 (310) 은 지시된 IP 어드레스를 목적지 어드레스로서 포함한다. 원시 센서 데이터 (311) 가 센서 데이터 응답 (310) 에 첨부된다. 대안적으로, 통합된 클라이언트 어플리케이션은 원시 센서 데이터를 프로세싱하고 그 프로세싱된 센서 데이터를 리턴할 수도 있다. (f) 에 도시된 센서 데이터 응답 (312) 은 센서 데이터 요청 (304) 에 대응한다. 센서 데이터 응답 (312) 은 지시된 IP 어드레스를 목적지 어드레스로서 포함한다. 제 1의 타입의 센서로부터의 원시 센서 데이터 (313) 및 제 2의 타입의 센서로부터의 원시 센서 데이터 (314) 가 센서 데이터 응답 (312) 에 첨부된다.
몇몇 실시형태들에서, 센서 데이터 요청은 트리거링 계산 또는 트리거링 이벤트를 나타내는 명령들을 포함한다. 트리거링 계산은 충족될 수도 충족되지 않을 수도 있다. 트리거링 조건이 충족되면, 트리거는, 동일한 센서 및/또는 상이한 센서들로부터의 하나 이상의 센서 측정치들 또는 센서 데이터가 어떤 조건들을 트리거하면, 모바일 디바이스 (100) 가 센서 데이터로서 하나 이상의 자신의 센서들로부터의 데이터를 전송하도록 명령한다. 예를 들면, 모바일 디바이스 (100) 는 제 2의 센서 (예를 들면, 소정량보다 더 낮게 통과하는 온도를 나타내는 온도 센서) 로부터의 데이터에 기초하여 제 1의 센서 (예를 들면, 경계를 통과하였음을 나타내는 GPS 센서) 로부터의 데이터를 포함하는 센서 데이터 응답 메시지를 전송한다. 트리거링 이벤트는 로케이션 기반일 수도 있다. 예를 들면, 모바일 디바이스 (100) 가 어떤 경계에 진입하고 있다는 것을 또는 어떤 경계를 빠져 나오고 있다는 것을 GPS 센서가 나타내는 경우, 모바일 디바이스 (100) 는 그것의 온도를 리포팅할 수도 있다.
모바일 디바이스 (100) 는 소정의 기준들을 트리거링하는 센서에 기초하여 다수의 센서들로부터의 측정치들을 전송할 수도 있다. 모바일 디바이스 (100) 는 소정의 기준들을 트리거링하는 다수의 센서들로부터의 측정치들의 조합에 기초하여 센서로부터의 측정치를 전송할 수도 있다. 트리거들은 어떤 범위 또는 소정 값일 수도 있으며 중복적 리포팅을 감소시키기 위한 히스테리시스를 포함할 수도 있다. 예를 들면, 모바일 디바이스 (100) 는, 온도가 시간에 대한 소정의 범위 밖에 있음을 온도 센서가 나타내고, 습도가 소정 값보다 더 높다고 습도 센서가 나타내고 가속도가 설정 임계치 미만이라고 가속도계 (162) 가 나타내는 때에 기초하여, GPS 데이터를 전송한다.
마찬가지로, 모바일 디바이스 (100) 는 다수의 센서들에 의해 충족된 기준들 시작에 기초하여 다수의 또는 모든 센서들로부터의 데이터를 전송할 수도 있다. 예를 들면, 모바일 디바이스 (100) 는, 생물의학적 센서들로부터 환자에게 긴급상황이 발생하고 있음을 소정의 센서들이 나타내고 있다고 결정하고 그 다음 센서 데이터 응답 메시지에서 생물의학적 센서들 및 GPS 센서로부터의 데이터의 형태로 긴급상황을 리포팅할 수도 있다. 또한, 몇몇 센서들은 모바일 디바이스 (100) 자체 내에 포함될 수도 있지만 다른 센서들은 모바일 디바이스 (100) 와는 별도로 그러나 모바일 디바이스 (100) 와 통신 상태로 PAN (personal area network) 내에 포함될 수도 있다.
트리거링 계산은 하나 이상의 센서들에 의해 트리거링된다. 또한, 트리거링 계산은 타이머 또는 절대 시간에 의해 트리거링될 수도 있거나 또는 타이머 또는 절대 시간을 조건으로 할 수도 있다. 예를 들면, 센서는 조건들이 충족되고 이전 이벤트, 예컨대 이전 리포팅으로부터 시간에 대한 소정치가 경과한 후, 자신의 데이터를 리포팅할 수도 있다. 모바일 디바이스 (100) 는, 소정의 센서 조건들이 충족되는지를 주기적으로 (예를 들면, 매 30분) 체크하고, 만약 그렇다면 센서 데이터를 리포트할 수도 있다. 모바일 디바이스 (100) 는, 소정의 센서 조건들이 충족되는지의 여부를 스케줄 (예를 들면, 매일 오전 8시, 정오 및 오후 5시) 에 따라 체크하고 만약 그렇다면, 센서 데이터를 리포팅할 수도 있다.
도 7은, 본 발명의 몇몇 실시형태들에 따른, 흐름도 (400) 를 도시한다. 상기 방법은 모바일 디바이스 (100) 에서 실행되고 다수의 서버 어플리케이션들 (200) 로 공통 API (170) 를 제공한다. 단계 410에서, 모바일 디바이스 (100) 는, 제 1의 웹 기반 어플리케이션 (예를 들면, 서버 어플리케이션 (201)) 으로부터, 공통 API (170) 를 사용하여 센서 데이터에 대한 제 1의 요청을 수신한다. 또한, 단계 420에서, 모바일 디바이스 (100) 는, 제 1의 웹 기반 어플리케이션에 관련되지 않은 제 2의 웹 기반 어플리케이션 (예를 들면, 서버 B 어플리케이션 (202)) 으로부터, 공통 API (170) 를 사용하여 센서 데이터에 대한 제 2의 요청을 수신한다.
단계 430에서, 모바일 디바이스 (100) 는, 센서 코어 클라이언트 (141) 를 사용하여 센서 코어 프로세서 (140) 상에서 센서 데이터에 대한 제 1의 요청 및 제 2의 요청을 프로세싱하고 클라이언트 어플리케이션 프로세서 (120) 를 바이패스한다. 단계 440에서, 모바일 디바이스 (100) 는, 센서 코어 프로세서에서, 센서로부터 센서 데이터를 수신한다. 단계 450에서, 모바일 디바이스 (100) 는 센서 데이터를 포함하는 제 1의 응답으로 제 1의 요청에 응답하고 클라이언트 어플리케이션 프로세서 (120) 를 바이패스한다. 단계 460에서, 모바일 디바이스 (100) 는 제 2의 응답을 통해 센서 데이터에 대한 제 2의 요청에 응답한다. 제 2의 응답은 제 1의 요청과 별개이며 센서 데이터를 포함하고 또한 클라이언트 어플리케이션 프로세서 (120) 를 바이패스한다. 단계 450 및 단계 460은 독립적, 순차적으로 또는 서로 중첩하여 발생할 수도 있다.
본원에서 설명된 방법론들은 어플리케이션에 따라 다양한 수단으로 구현될 수도 있다. 예를 들면, 이들 방법론들은 하드웨어, 펌웨어 명령들, 소프트웨어 명령들, 또는 이들의 임의의 조합으로 구현될 수도 있다. 하드웨어 구현에서, 프로세싱 유닛들은 하나 이상의 ASIC들 (application specific integrated circuits), DSP들 (digital signal processors), DSPD들 (digital signal processing devices), PLD들 (programmable logic devices), FPGA들 (field programmable gate arrays), 프로세서들, 컨트롤러들, 마이크로컨트롤러들, 마이크로프로세서들, 전자 디바이스들, 본원에서 설명된 기능들을 수행하도록 디자인된 다른 디바이스 유닛들, 또는 이들의 조합 내에서 구현될 수도 있다.
펌웨어 및/또는 소프트웨어 구현을 위해, 상기 방법론들은 본원에서 설명된 기능들을 수행하는 모듈들 (예를 들면, 프로시져들, 기능들 등등) 로 구현될 수도 있다. 명령들을 유형적으로 구체화하는 임의의 머신 판독가능 매체가 본원에서 설명된 방법론들을 구현하는 데 사용될 수도 있다. 예를 들면, 소프트웨어 코드들은 비일시적 컴퓨터 판독가능 저장 매체, 예컨대 메모리에 저장되고, 프로세서 유닛에 의해 실행될 수도 있다. 메모리는 프로세서 유닛 내에서 구현될 수도 있고 또는 프로세서 유닛의 외부에서 구현될 수도 있다. 본원에서 사용된 용어 "메모리"는 임의의 형태의 장기간, 단기간, 휘발성, 불휘발성, 또는 다른 메모리를 지칭할 수도 있으며 임의의 특정한 형태의 메모리 또는 특정한 수의 메모리들, 또는 메모리가 보관되는 매체의 형태에 제한되는 것은 아니다.
펌웨어 및/또는 소프트웨어로 구현되면, 상기 기능들은 컴퓨터 판독가능 매체 상의 하나 이상의 명령들 또는 코드로서 저장될 수도 있다. 실시예들은 데이터 구조로 인코딩된 컴퓨터 판독가능 매체 및 컴퓨터 프로그램으로 인코딩된 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 물리적인 컴퓨터 저장 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는 데 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있고; 본원에서 사용된 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 디스크 (disk) 는 통상 데이터를 자기적으로 재생하고 디스크 (disc) 는 통상 데이터를 레이저를 이용하여 광학적으로 재생한다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
컴퓨터 판독가능 매체 상의 저장에 부가하여, 명령들 및/또는 데이터는 통신 장치 내에 포함되는 전송 매체 상의 신호들로서 제공될 수도 있다. 예를 들면, 통신 장치는 명령들 및 데이터를 나타내는 신호들을 구비하는 트랜시버를 포함할 수도 있다. 상기 명령들 및 데이터는, 하나 이상의 프로세서가 하기의 특허청구범위에서 강조되는 기능들을 수행하게 하도록 구성된다. 즉, 통신 장치는 개시된 기능들을 수행하는 정보를 나타내는 신호들을 갖는 송신 매체들을 포함한다. 먼저, 통신 장치에 포함된 송신 매체들은 개시된 기능들을 수행하는 정보의 제 1의 부분을 포함할 수도 있고, 한편, 두 번째로, 통신 장치에 포함된 송신 매체들은 개시된 기능들을 수행하는 정보의 제 2의 부분을 포함할 수도 있다.
개시된 실시예들의 상기 설명들은 임의의 당업자가 본 발명을 실시하거나 이용하는 것을 가능하게 하도록 하기 위해 제공된다. 이들 양태들에 대한 다양한 수정예들이 당업자에게는 자명할 것이고, 본원에서 정의된 일반적인 원칙들은 본 발명의 취지와 범위를 벗어나지 않으면서 다른 양태들 적용될 수도 있다.

Claims (31)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 모바일 디바이스에서 공통 API (application programming interface) 를 제공하는 방법으로서,
    제 1의 웹 기반 서버 어플리케이션으로부터, 상기 공통 API를 사용하여 센서 데이터에 대한 제 1의 요청을 수신하는 단계;
    상기 제 1의 웹 기반 서버 어플리케이션과 관련되지 않은 제 2의 웹 기반 서버 어플리케이션으로부터, 상기 공통 API를 사용하여 센서 데이터에 대한 제 2의 요청을 수신하는 단계;
    센서 데이터에 대한 상기 제 1의 요청 및 센서 데이터에 대한 상기 제 2의 요청을 센서 코어 프로세서 상에서 프로세싱하고 클라이언트 어플리케이션 프로세서는 바이패스하는 단계;
    상기 센서 코어 프로세서에서, 센서로부터 센서 데이터를 수신하는 단계;
    센서 데이터에 대한 상기 제 1의 요청에 대해 상기 센서 데이터를 포함하는 제 1의 응답으로 응답하는 단계; 및
    센서 데이터에 대한 상기 제 2의 요청에 대해, 상기 제 1의 응답과는 별개인, 상기 센서 데이터를 포함하는 제 2의 응답으로 응답하는 단계를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  16. 제 15항에 있어서,
    센서 데이터에 대한 상기 제 1의 요청은 트리거링 (triggering) 이벤트의 표시를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  17. 제 16항에 있어서,
    상기 트리거링 이벤트는 상기 센서 데이터와 별개인 데이터를 제공하는 제 2의 센서에 기초하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  18. 제 15항에 있어서,
    상기 센서 코어 프로세서 상에서 센서 코어 클라이언트를 실행하는 단계를 더 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  19. 제 15항에 있어서,
    상기 센서로부터의 상기 센서 데이터는 복수의 센서들로부터의 센서 데이터를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  20. 제 19항에 있어서,
    상기 센서는 GPS (global positioning satellite) 수신기를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  21. 제 19항에 있어서,
    상기 복수의 센서들은:
    가속도계; 및
    자이로스코프를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  22. 제 19항에 있어서,
    상기 센서는 자기력계를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  23. 제 19항에 있어서,
    상기 센서는 압력 센서를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  24. 제 19항에 있어서,
    상기 센서는 근접 센서를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  25. 제 19항에 있어서,
    상기 센서는 주변광 센서 (ambient light sensor; ALS) 를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  26. 제 19항에 있어서,
    상기 센서는 마이크를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  27. 제 19항에 있어서,
    상기 센서는 카메라를 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  28. 제 19항에 있어서,
    상기 복수의 센서들의 각각에 대한 상기 센서 코어 프로세서 상에서 센서 코어 클라이언트를 실행하는 단계를 더 포함하는, 모바일 디바이스에서 공통 API를 제공하는 방법.
  29. 공통 API (application programming interface) 를 제공하는 모바일 디바이스로서,
    제 1의 웹 기반 서버 어플리케이션으로부터, 상기 공통 API를 사용하여 센서 데이터에 대한 제 1의 요청을 수신하는 수단;
    상기 제 1의 웹 기반 서버 어플리케이션과 관련되지 않은 제 2의 웹 기반 서버 어플리케이션으로부터, 상기 공통 API를 사용하여 센서 데이터에 대한 제 2의 요청을 수신하는 수단;
    센서 데이터에 대한 상기 제 1의 요청 및 센서 데이터에 대한 상기 제 2의 요청을 프로세싱하고 클라이언트 어플리케이션 프로세서는 바이패스하는 수단;
    센서로부터 센서 데이터를 수신하는 수단;
    센서 데이터에 대한 상기 제 1의 요청에 대해 상기 센서 데이터를 포함하는 제 1의 응답으로 응답하는 수단; 및
    센서 데이터에 대한 상기 제 2의 요청에 대해, 상기 제 1의 응답과는 별개인, 상기 센서 데이터를 포함하는 제 2의 응답으로 응답하는 수단을 포함하는, 공통 API를 제공하는 모바일 디바이스.
  30. 프로세서와 메모리를 포함하는 디바이스로서,
    상기 메모리는:
    제 1의 웹 기반 서버 어플리케이션으로부터, 공통 API (application programming interface) 를 사용하여 센서 데이터에 대한 제 1의 요청을 수신하고;
    상기 제 1의 웹 기반 서버 어플리케이션과 관련되지 않은 제 2의 웹 기반 서버 어플리케이션으로부터, 상기 공통 API를 사용하여 센서 데이터에 대한 제 2의 요청을 수신하고;
    센서 데이터에 대한 상기 제 1의 요청 및 센서 데이터에 대한 상기 제 2의 요청을 센서 코어 프로세서 상에서 프로세싱하고 클라이언트 어플리케이션 프로세서는 바이패스하고;
    상기 센서 코어 프로세서에서, 센서로부터 센서 데이터를 수신하고;
    센서 데이터에 대한 상기 제 1의 요청에 대해 상기 센서 데이터를 포함하는 제 1의 응답으로 응답하고; 그리고
    센서 데이터에 대한 상기 제 2의 요청에 대해, 상기 제 1의 응답과는 별개인, 상기 센서 데이터를 포함하는 제 2의 응답으로 응답하는
    소프트웨어 명령들을 포함하는, 프로세서와 메모리를 포함하는 디바이스.
  31. 프로그램 코드를 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    제 1의 웹 기반 서버 어플리케이션으로부터, 공통 API (application programming interface) 를 사용하여 센서 데이터에 대한 제 1의 요청을 수신하고;
    상기 제 1의 웹 기반 서버 어플리케이션과 관련되지 않은 제 2의 웹 기반 서버 어플리케이션으로부터, 상기 공통 API를 사용하여 센서 데이터에 대한 제 2의 요청을 수신하고;
    센서 데이터에 대한 상기 제 1의 요청 및 센서 데이터에 대한 상기 제 2의 요청을 센서 코어 프로세서 상에서 프로세싱하고 클라이언트 어플리케이션 프로세서는 바이패스하고;
    상기 센서 코어 프로세서에서, 센서로부터 센서 데이터를 수신하고;
    센서 데이터에 대한 상기 제 1의 요청에 대해 상기 센서 데이터를 포함하는 제 1의 응답으로 응답하고; 그리고
    센서 데이터에 대한 상기 제 2의 요청에 대해, 상기 제 1의 응답과는 별개인, 상기 센서 데이터를 포함하는 제 2의 응답으로 응답하는
    프로그램 코드를 포함하는, 프로그램 코드를 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
KR1020147012427A 2011-11-09 2012-10-19 클라우드 기반 어플리케이션들을 위한 센서 api 프레임워크 KR101683352B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/292,578 US10248184B2 (en) 2011-11-09 2011-11-09 Sensor API framework for cloud based applications
US13/292,578 2011-11-09
PCT/US2012/061142 WO2013070420A1 (en) 2011-11-09 2012-10-19 Sensor api framework for cloud based applications

Publications (2)

Publication Number Publication Date
KR20140090193A KR20140090193A (ko) 2014-07-16
KR101683352B1 true KR101683352B1 (ko) 2016-12-06

Family

ID=47178914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147012427A KR101683352B1 (ko) 2011-11-09 2012-10-19 클라우드 기반 어플리케이션들을 위한 센서 api 프레임워크

Country Status (8)

Country Link
US (1) US10248184B2 (ko)
EP (1) EP2776900B1 (ko)
JP (1) JP6165156B2 (ko)
KR (1) KR101683352B1 (ko)
CN (1) CN103946769B (ko)
ES (1) ES2759620T3 (ko)
HU (1) HUE046106T2 (ko)
WO (1) WO2013070420A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220080329A (ko) 2020-12-07 2022-06-14 인하대학교 산학협력단 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2861215C (en) 2012-09-12 2015-09-08 Omron Corporation Data flow control order generating apparatus and sensor managing apparatus
EP2902913A4 (en) * 2012-09-27 2016-06-15 Omron Tateisi Electronics Co DEVICE FOR MANAGING DEVICES AND DEVICE SEARCH METHODS
CN104102749B (zh) * 2013-04-11 2019-04-23 华为技术有限公司 终端设备
US9313740B2 (en) * 2013-06-14 2016-04-12 Sony Corporation Power efficient sensor accessory management through sensor subsystem
US10362112B2 (en) * 2014-03-06 2019-07-23 Verizon Patent And Licensing Inc. Application environment for lighting sensory networks
US10416750B2 (en) * 2014-09-26 2019-09-17 Qualcomm Incorporated Algorithm engine for ultra low-power processing of sensor data
WO2016154785A1 (zh) 2015-03-27 2016-10-06 华为技术有限公司 一种云平台、运行应用的方法及接入网单元
KR102525295B1 (ko) * 2016-01-06 2023-04-25 삼성전자주식회사 데이터 관리 방법 및 장치
US10009708B2 (en) 2016-03-09 2018-06-26 Tata Consultancy Services Limited System and method for mobile sensing data processing
EP3852424B1 (en) 2016-07-13 2023-11-22 Huawei Technologies Co., Ltd. Application resilience for applications deployed on a cloud platform
US20190079787A1 (en) * 2016-11-14 2019-03-14 Google Llc Systems and methods for providing interactive streaming media
CN106791152B (zh) * 2016-12-30 2019-08-27 Oppo广东移动通信有限公司 一种通信方法及移动终端
CN106713648B (zh) * 2016-12-30 2019-07-26 Oppo广东移动通信有限公司 一种通信方法及移动终端
EP3396549A1 (de) 2017-04-28 2018-10-31 dSPACE digital signal processing and control engineering GmbH Adapter für die verbindung eines eingebetteten systems mit einem bedienrechner und verfahren zum anpassen eines adapters
US10796501B2 (en) * 2017-06-19 2020-10-06 Qualcomm Incorporated Interactive sharing of vehicle sensor information
US10789093B2 (en) 2019-02-05 2020-09-29 Citrix Systems, Inc. Extension of mobile device sensor capabilities into an application
US11818210B2 (en) * 2019-10-07 2023-11-14 Advanced Measurement Technology, Inc. Systems and methods of direct data storage for measurement instrumentation
CN111366791A (zh) * 2020-03-03 2020-07-03 上海闻泰信息技术有限公司 电磁波吸收比值的检测方法、装置及电子设备
US12010517B1 (en) * 2021-05-10 2024-06-11 Zimperium, Inc. Dynamic detection for mobile device security

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263196A1 (en) * 2007-04-18 2008-10-23 Microsoft Corporation Programming techniques for distributed multi-party networks
WO2010141878A1 (en) * 2009-06-05 2010-12-09 Qualcomm Incorporated Controlling power consumption of a mobile device based on gesture recognition

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060036833A (ko) 2004-10-26 2006-05-02 엘지전자 주식회사 표준 메모리 카드 타입의 생체 정보 측정 장치와 그서비스 방법
RU2439847C2 (ru) 2006-09-26 2012-01-10 Квэлкомм Инкорпорейтед Сенсорные сети на основе беспроводных устройств
US7925900B2 (en) 2007-01-26 2011-04-12 Microsoft Corporation I/O co-processor coupled hybrid computing device
EP2210430B1 (en) 2007-10-18 2011-10-05 Telefonaktiebolaget LM Ericsson (publ) Methods and arrangements in a mobile telecommunications network
US20090125918A1 (en) * 2007-11-13 2009-05-14 Microsoft Corporation Shared sensing system interfaces
KR100959774B1 (ko) 2008-06-05 2010-05-27 (주)엔텔스 센싱 정보 처리 장치, 방법 및 그 방법을 실행하는프로그램이 기록된 기록매체
US8405505B2 (en) 2009-05-26 2013-03-26 Qualcomm Incorporated Power management of sensors within a mobile device
US8521848B2 (en) * 2011-06-28 2013-08-27 Microsoft Corporation Device sensor and actuation for web pages

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263196A1 (en) * 2007-04-18 2008-10-23 Microsoft Corporation Programming techniques for distributed multi-party networks
WO2010141878A1 (en) * 2009-06-05 2010-12-09 Qualcomm Incorporated Controlling power consumption of a mobile device based on gesture recognition

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220080329A (ko) 2020-12-07 2022-06-14 인하대학교 산학협력단 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법
KR102531765B1 (ko) 2020-12-07 2023-05-11 인하대학교 산학협력단 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법

Also Published As

Publication number Publication date
US10248184B2 (en) 2019-04-02
EP2776900A1 (en) 2014-09-17
CN103946769B (zh) 2017-02-15
ES2759620T3 (es) 2020-05-11
JP6165156B2 (ja) 2017-07-19
US20130117769A1 (en) 2013-05-09
HUE046106T2 (hu) 2020-01-28
EP2776900B1 (en) 2019-09-04
CN103946769A (zh) 2014-07-23
WO2013070420A1 (en) 2013-05-16
KR20140090193A (ko) 2014-07-16
JP2015507774A (ja) 2015-03-12

Similar Documents

Publication Publication Date Title
KR101683352B1 (ko) 클라우드 기반 어플리케이션들을 위한 센서 api 프레임워크
US9749794B2 (en) Scalability and reliability of hardware geo-fencing with failover support
EP4170995B1 (en) Request processing in the service layer
EP3017321B1 (en) Methods and apparatuses for use in providing location parameters to mobile applications
JP6055826B2 (ja) 端末機器を位置決めするための方法及び装置
EP2277331B1 (en) Method and system for obtaining services
EP2954348B1 (en) Global-positioning system (gps) update interval based on sensor
WO2012082170A1 (en) Context aware advertisement delivery
JP5672384B2 (ja) 進行中のロケーションセッション中のロケーション関連データの転送および修正
US9103901B2 (en) Position determination methodology selection
TW201140112A (en) Methods and apparatuses for responding to a request for satellite positioning system related information associated with a mobile station
CN109479070B (zh) 分布式存储转发系统中的按序消息递送的方法、装置和介质
Torroja et al. Ultra-Low Power Host off-load GNSS Positioning

Legal Events

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

Payment date: 20190924

Year of fee payment: 4