KR20130115070A - 모바일 애플리케이션에 의해 요청된 서비스를 위한 가장 에너지 효율적인 방법의 실시간 선택 - Google Patents

모바일 애플리케이션에 의해 요청된 서비스를 위한 가장 에너지 효율적인 방법의 실시간 선택 Download PDF

Info

Publication number
KR20130115070A
KR20130115070A KR1020120121631A KR20120121631A KR20130115070A KR 20130115070 A KR20130115070 A KR 20130115070A KR 1020120121631 A KR1020120121631 A KR 1020120121631A KR 20120121631 A KR20120121631 A KR 20120121631A KR 20130115070 A KR20130115070 A KR 20130115070A
Authority
KR
South Korea
Prior art keywords
energy
communication device
data processing
mobile communication
data
Prior art date
Application number
KR1020120121631A
Other languages
English (en)
Other versions
KR102000295B1 (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 KR20130115070A publication Critical patent/KR20130115070A/ko
Application granted granted Critical
Publication of KR102000295B1 publication Critical patent/KR102000295B1/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
    • 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/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • 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/0203Power saving arrangements in the radio access network or backbone network of wireless communication networks
    • 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
    • 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/0212Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

디바이스 내에서 실행되는 애플리케이션 프로그램들로부터 서비스에 요청을 수신하는 이동 통신 디바이스 내에 에너지 관리 모듈이 포함될 수 있다. 에너지 관리 모듈은, 각각의 요청에 대하여, 요청을 수행하는 상이하고 선택가능한 방법들 중 어느 것이 최대 에너지 효율적으로 될 것인지를 결정할 수 있다. 이어서, 에너지 관리 모듈은 요청이 이러한 최대 에너지 효율적 방법으로 수행되도록 할 수 있다. 이 결정은 동적이고, 현재 동작 조건에 기초한 것일 수 있다. 애플리케이션 프로그램들과 오퍼레이팅 시스템 사이에 미들웨어가 포함되어 애플리케이션 프로그램들에 다양한 API들을 제공하고, API들이 이 기능을 용이하게 적용하게 할 수 있다. 서비스들을 수행하는 상이하고 선택가능한 방법들은, 상이하고, 선택가능한 컴퓨터 네트워크 인터페이스들(예컨대, Wi-Fi 및 셀룰러)을 포함하고 복잡한 계산이 이동 통신 디바이스의 내측 또는 외측에서 수행되어야 하는 임의의 타입이 될 수 있다.

Description

모바일 애플리케이션에 의해 요청된 서비스를 위한 가장 에너지 효율적인 방법의 실시간 선택{RUNTIME SELECTION OF MOST ENERGY-EFFICIENT APPROACH FOR SERVICES REQUESTED BY MOBILE APPLICATIONS}
본 개시사항은 이동 통신 디바이스 및 그러한 디바이스에 의해 소모되는 에너지를 최소화하기 위한 에너지 절약 방법에 관한 것이다.
이동 디바이스의 급격한 인기는 모바일 애플리케이션에 대한 완전히 새로운 소프트웨어 마켓을 창조했다. 많은 이동 전화 애플리케이션들은 컨텍스트(context) 또는 위치 기반 서비스와 같은 자동화되고 개인화된 서비스를 제공하는 네트워크 통신 및 데이터 프로세싱에 의존한다. 모바일 애플리케이션 개발에 대한 매우 낮은 진입 장벽을 고려해볼때, 애플리케이션 기능(functionality)에 주된 초점을 둔 많은 애플리케이션 개발자들이 존재한다.
하지만 이동 전화의 배터리 수명은 애플리케이션을 이용하는 최종 사용자(end-user) 경험에 대단히 중요한 장애물이 될 수 있다. 예를 들어, 노키아 N95 폰 배터리는 수십시간의 스탠바이(standby) 시간을 갖는 것으로 보고되었지만, 오디오, GPS, Wi-Fi 액세스 포인트를 감지함으로써 컨텍스트 모니터링에 사용될 ?, 이 배터리는 4시간만에 소모되는 것으로 보고되었다. 모바일 애플리케이션이 널리 퍼져감에 따라, 다수의 애플리케이션들이 독립적으로 서로 상이한 시간 간격에 동일한 하드웨어에 액세스할 수 있기 때문에 제한된 배터리의 문제는 악화되기만 할 수도 있다.
모바일 애플리케이션의 디자인 및 동작의 각 단계에서, 애플리케이션 개발자는 이동 전화의 배터리 수명을 다른 중요한 지표들에 대해 교환(trade-off)하는 넓은 범위의 옵션들을 가진다. 예를 들어, 많은 이동 디바이스는 인터넷과 같은 컴퓨터 네트워크와 인터페이싱하기 위한 많은 수의 상이한 방법들을 제공한다. 예를 들어, 이 방법들은 Wi-Fi 인터페이스 및 셀룰러 인터페이스를 포함할 수 있다. 유사하게, 이동 디바이스 내부에서 데이터 계산이 수행되는지 또는 외부에서 수행되는지 여부에 대한 선택가능성이 있을 수 있다. 이들 선택가능성 각각은 상이한 양의 에너지를 소모할 수 있다. 유감스럽게도, 가장 에너지 효율적인 선택을 행하는 애플리케이션 프로그램을 작성하는 것은 많은 비용이 들고 매우 어려울 수 있다.
이동 통신 디바이스에서 실행되는 애플리케이션 프로그램으로부터 서비스 요청을 수신하는 에너지 관리 모듈이 이동 통신 디바이스 내에 포함될 수 있다. 각 요청에 대해, 에너지 관리 모듈은 요청을 수행하는 서로 다른 선택가능한 방법들 중 어떤 것이 가장 에너지 효율적일 가능성이 있는지 결정할 수 있다. 그 후 에너지 관리 모듈은 이 가장 에너지 효율적인 방법으로 상기 요청이 수행되도록 할 수 있다. 이 결정은 동적일 수도 있고 현재의 동작 조건에 기초할 수도 있다. 이러한 에너지 관리 모듈은 애플리케이션 프로그램과 오퍼레이팅 시스템 사이의 미들웨어(middleware)로서 구현될 수 있다. 미들웨어는 이 기능을 쉽게 호출(invoke)하도록 허용하는 다양한 API(application programming interface)들을 애플리케이션 프로그램에 제공할 수 있다. 따라서, 애플리케이션 프로그래머는 자신의 애플리케이션 내에 이들 에너지 관리 결정을 행하는 코드를 포함시켜야만 하는 것으로부터 자유로워질 수 있다. 또한, 에너지 관리 모듈이 미들웨어로서 구현될 때 높은 정도의 에너지 절감이 실현될 수 있다. 서비스를 수행하는 서로 다른 선택가능한 방법들은, 서로 다른 선택가능한 컴퓨터 네트워크 인터페이스(예를 들어 Wi-Fi 및 셀룰러) 및 복잡한 계산이 이동 통신 디바이스의 내부에서 수행되어야 하는지 외부에서 수행되어야 하는지 여부를 포함한, 어떤 유형의 것도 될 수 있다.
다른 컴포넌트, 단계, 특징, 목적, 이득, 및 이점과 마찬가지로 이들은 예시적인 실시예들에 대한 다음의 상세한 설명, 수반된 도면들, 및 청구항의 검토로부터 명확해질 것이다.
도면들은 예시적인 실시예에 관한 것이다. 도면들은 모든 실시예를 도시하는 것이 아니다. 다른 실시예들이 추가로 또는 대신 사용될 수도 있다. 명백하거나 불필요할 수 있는 상세한 사항들은 공간을 절약하거나 더 효율적인 도시를 위해 생략될 수도 있다. 몇몇 실시예는 추가적인 컴포넌트나 단계와 함께 및/또는 도시된 컴포넌트나 단계를 모두 포함하지는 않은 채로 실행될 수 있다. 서로 다른 도면에서 동일한 도면부호가 나올 때, 그것은 동일하거나 유사한 컴포넌트나 단계를 나타낸다.
도 1은 에너지 관리 모듈 및 기타 컴포넌트들을 포함한 이동 통신 디바이스를 관련 네트워크 통신 시스템 및 인터넷 서버와 함께 도시한다.
도 2는 에너지 관리 모듈의 일부일 수 있고/있거나 이동 통신 디바이스 내의 다른 곳에 배치될 수 있도 있는 컴포넌트들의 또 다른 예를 도시한다.
도 3a 내지 3d는 GPS가 서로 다른 방법들을 이용하여 요청을 처리할 때의 에너지 소모의 예를 도시한다.
도 4는 한 특정한 동작 환경 하에서 3개의 무선 데이터 송신 방법에 대한 세가지 데이터 국면(phase) 동안의 전력 소모를 도시한다.
도 5는 한 특정한 동작 환경 하에서 데이터 전송의 크기가 100KB에서 1000KB로 증가됨에 따른 3가지 무선 인터페이스의 데이터 송신 (업링크) 에너지 비용을 도시한다.
도 6은 한 특정한 계산 기능을 수행하는 에너지 비용을 로컬(local) 계산 및 원격 계산에 대해 도시한다.
도 7a 및 7b는 에너지 관리 모듈의 다른 예의 컴포넌트들과 API들을 각각 도시한다.
도 8a는 활동 분류(activity classification)가 전화 상에서 로컬적으로(locally) 행해진 경우를 도시한다. 도 8b는 활동 분류가 서버 상에서 원격으로 행해진 경우를 도시한다. 도 8c는 활동 분류가 에너지 관리 모듈에 의해 결정되는 바에 따라 로컬 계산과 원격 계산 간에 동적으로 스위칭된 경우를 도시한다.
도 9는 서로 다른 네트워크 이용가능성 상태 하에서의 에너지 관리 모듈을 이용한 전력 소모 변화를 도시한다.
도 10은 한 활동 분류 계산에 대해 9시간의 시간 간격에 걸친 누적된 에너지 소모를 도시한다.
예시적인 실시예들이 설명된다. 다른 실시예들이 추가로 또는 대신 사용될 수도 있다. 명백하거나 불필요할 수 있는 상세한 사항들은 공간을 절약하거나 더 효율적인 설명을 위해 생략될 수 있다. 몇몇 실시예는 추가적인 컴포넌트나 단계와 함께 및/또는 도시된 컴포넌트나 단계를 모두 포함하지는 않은 채로 실행될 수 있다.
도 1은 에너지 관리 모듈(103) 및 기타 컴포넌트들을 포함한 이동 통신 디바이스(101)를 관련 네트워크 통신 시스템 및 인터넷 서버(127)와 함께 도시한다.
이동 통신 디바이스(101)는 어떠한 유형의 것도 될 수 있다. 예를 들어, 이동 통신 디바이스(101)는 휴대전화(cell phone), 스마트폰, 태블릿, 랩탑 컴퓨터, 및/또는 넷북으로 구성되거나 또는 이들을 포함할 수 있다.
이동 통신 디바이스(101)는 배터리(105), 오퍼레이팅 시스템(109), 데이터 저장 시스템(111), 데이터 프로세싱 시스템(113), Wi-Fi 네트워크 통신 트랜시버(115), 애플리케이션 프로그램들(117), 및 셀룰러 네트워크 통신 트랜시버(119)를 포함할 수 있다. Wi-Fi 네트워크 통신 트랜시버(115)는 인터넷(125)으로의 게이트웨이를 제공할 수 있는 Wi-Fi 통신 네트워크(121)와 통신할 수 있다. 유사하게, 셀룰러 네트워크 통신 트랜시버(119)는 인터넷으로의 게이트웨이를 제공할 수 있는 셀룰러 통신 네트워크(123)와 통신할 수 있다.
에너지 관리 모듈(103)은 여기에서 설명되는 에너지 관리 모듈(103)의 기능들을 수행하는 구성(configuration)을 갖는 컴퓨터 하드웨어 및 소프트웨어를 포함할 수 있다.
에너지 관리 모듈(103)은, 이동 통신 디바이스(101)가 하나 이상의 애플리케이션 프로그램들(117)을 실행하고 있는 동안 이동 통신 디바이스(101)의 에너지 효율을 최대화하는 구성을 가질 수 있다. 애플리케이션 프로그램들(117) 중 일부는 (Wi-Fi 네트워크 통신 트랜시버(115) 및 셀룰러 네트워크 통신 트랜시버(119)와 같은) 서로 다른 선택가능한 컴퓨터 네트워크 인터페이스 중 하나를 통해, (인터넷(125)와 같은) 컴퓨터 네트워크 상에서 통신할 수 있다.
에너지 관리 모듈(103)은 애플리케이션 프로그램들(117)이 실행되는 동안 그들 각각으로부터 요청을 수신하는 구성을 가질 수 있다. 각 요청은 컴퓨터 네트워크를 통한 데이터 통신을 필요로할 수 있다. 각 수신된 요청에 대해, 에너지 관리 모듈(103)은 그 요청을 수신하는 때에 동작할 준비가 갖춰진 선택가능한 컴퓨터 네트워크 인터페이스들 중 어떤 것이, 그 요청에 의해 필요로한 데이터 통신을 취급하는데 가장 적은 양의 에너지를 소모할 가능성이 있는지 결정하도록 구성된다. 에너지 관리 모듈(103)은, 데이터 통신을 취급하는데 가장 적은 양의 에너지를 소모할 가능성이 있는 것으로 결정된 컴퓨터 네트워크 인터페이스를 통해, 요청된 데이터 통신이 일어나도록 하는 구성을 가질 수 있다.
데이터 저장 시스템(111)은 (Wi-Fi 네트워크 통신 트랜시버(115)의 에너지 소모율 및 셀룰러 네트워크 통신 트랜시버(119)의 에너지 소모율과 같은) 선택가능한 컴퓨터 네트워크 인터페이스들 각각의 에너지 소모율을 나타내는 정보를 저장하는 구성을 가질 수 있다. 에너지 관리 모듈(103)은, 선택가능한 컴퓨터 네트워크 인터페이스들 중 어떤 것이 가장 적은 양의 에너지를 소모할 가능성이 있는 지 결정할 때, 상기 저장된 정보를 조사하는 구성을 가질 수 있다.
선택가능한 컴퓨터 네트워크 인터페이스들 중에서 어떤 것이 가장 적은 양의 에너지를 소모할 가능성이 있는지에 대한 상기 에너지 관리 모듈(103)에 의한 결정은, 동작하는 컴퓨터 네트워크 인터페이스들 각각과 연관된 현재 응답 시간, 이용가능한 데이터 대역폭, 또는 네트워크 혼잡(예를 들어, Wi-Fi 네트워크 통신 트랜시버(115) 및 셀룰러 네트워크 통신 트랜시버(119)의 현재 응답 시간, 이용가능한 데이터 대역폭, 또는 네트워크 혼잡)과 같은, 시간에 따라 변화하는 하나 이상의 동작 조건의 현재 상태를 고려할 수 있다. 또한 이 정보는 위치에 기반하여 변화할 수 있다.
에너지 관리 모듈(103)은, 오퍼레이팅 시스템(109)와 각 애플리케이션 프로그램(117) 사이에 나란히 놓인 소프트웨어일 수 있는 미들웨어(107)를 포함할 수 있다. 미들웨어(107)는 하나 이상의 API들을 통해서 애플리케이션 프로그램들(117)로부터 데이터 통신을 위한 요청들을 수신하는 구성을 가질 수 있다.
에너지 관리 모듈(103) 또한 애플리케이션 프로그램들(117)로부터 데이터 프로세싱을 위해서 데이터 통신을 위한 요청들을 수신하는 구성을 가질 수 있다. 각 요청에 대해서, 에너지 관리 모듈(103)은, 인터넷 서버(127)안에 위치하는 데이터 프로세싱 시스템(129)과 같이, 이동 통신 디바이스 외부의 데이터 프로세싱 시스템에 의해서, 또는 이동 통신 디바이스 안의 데이터 프로세싱 시스템(113)에 의해서 실질적으로 수행되는 데이터 프로세싱이 최소의 에너지양을 소비할 것인지 여부를 결정하는 구성을 가질 수 있다. 에너지 관리 모듈(103)은 데이터 프로세싱이 에너지의 초소량을 소비하는 것으로 결정된 위치에서 실질적으로 수행될 수 있다고 하는 구성을 가질 수 있다.
에너지 관리 모듈(103)은 애플레케이션 프로그램으로부터 서비스에 대한 요청을 수신함에 따라 사용자 간섭없이 자동화된 기초로 본 명세서에 기술된 여러가지 기능을 수행할 수 있다. 다른 구성에서는, 선택이 되기 전에 특정한 에너지 효율 선택을 위한 사용자 허락을 찾을 수도 있다.
기타 사항들
다른 것들과 같이, 개시된 하나 이상의 프로세스들을 구현하기 위해 여러가지 다른 방법들이 뒤따를 수 있다. 에너지 관리 모듈(103)은 센서와 같은 에너지 소비 디바이스들의 선택과 연결되어 에너지를 보존하도록 구성될 수 있다. 이에 대해서는 지금부터 설명된다.
지시된 바와 같이, API(application programming interface)들을 통해서 애플리케이션 개발자에게 에너지 관리 모듈(103)에 의해 제공되는 런타임 서비스(runtime service)들이 노출될 수 있다. 이 API들은 소프트웨어 개발자들에 의해 시스템 서비스를 얻기위해 이용된다. 예로, GPS 센서나 통신을 위한 특정 라디오에 직접 액세스하는 것보다, 소프트웨어 개발자는 동일한 기능을 수행하기 위해서 간단히 API를 호출할 수 있다. 에너지 관리 모듈(103)은 다양한 에너지 트레이드오프(tradeoff)를 모니터하고 필요한 기능을 제공하기 위한 동적으로 가장 에너지 효율적인 방법을 선택한다. 중앙화된 미들웨어(107) 층을 통해서 서비스들을 복수의 애플리케이션들이 액세스하도록 허용함으로서, 또한, 센싱(sensing)의 에너지 비용을 청산하는(amortize)것도 가능하다.
에너지 관리 모듈(103)은 현재 심비안 S60에 구현되어 있으며, 물리적 활동 탐지를 위한 모바일 센싱 애플리케이션이 이것의 API 이용을 위해 변환되어 있다. 야외 실험으로부터의 결과는 이러한 구현안의 에너지 관리 모듈(103)은 전지 수명을 6에서 21% 개선하는 것을 보여준다.
모바일 전화는 디지털 카메라, GPS, 가속도계, 자이로스코프 등과 같은 온보드 센서들을 포함할 수 있다. 심장박동 및 ECG를 위한 바이오 센서와 같은 추가적인 센서도 현재의 무선 표준을 사용해서 모바일 전화에 통합될 수 있다.
위치 정확성과 에너지 효율성을 트레이드 오프하는 여러 방법으로 위치를 감지할 수 있다. 사용자 상태와 같은 컨택스트 탐지 알고리즘은 상태 탐지의 정확성과 전지 수명을 트레이드오프하기 위해 동적으로 센서 샘플링 비율을 변경할 수 있다. 비슷하게, 원격(remote) 대 로컬(local) 계산에 대한 에너지 트레이드 오프 결정도 있을 수 있다.
에너지 관리 모듈(103)은, 기초의 프레임워크가 센싱, 계산, 및 통신 서비스를 에너지 효율적인 방법으로 제공할 때, 개발자로부터 에너지 효율적인 트레이드오프 결정들을 하는 부담을 모바일 애플리케이션 개발 프레임워크를 제공함으로써 줄인다.
에너지 관리 모듈(103)은 사용자 애플리케이션과 기초 플랫폼의 운영 시스템(OS, operating system) 사이의 인터페이스에서 동작할 수 있다. 에너지 관리 모듈(103)은 센싱, 통신 및 계산을 위한 애플리케이션의 요구를 서비스 할 수 있다. 에너지 관리 모듈(103)에 의해 제공되는 서비스는 API를 통해 애플리케이션 개발자에게 노출될 수 있다. 에너지 관리 모듈(103)의 존재하에서, 애플리케이션 프로그래머는 모바일 전화의 하드웨어 센싱 또는 통신 인프라스트럭처를 직접 액세스할 필요가 없을 수 있다. 대신, 하드웨어의 기능은 에너지 관리 모듈(103)에 의해 제공되는 API를 통해서 애플리케이션 소프트웨어에게 노출될 수 있다. 예를 들어, GPS 센싱을 직접 액세스하거나 계산을 전화에서 로컬적으로 하는 대신, 소프트웨어 디자이너는 에너지 관리 모듈(103)의 API를 호출해서 동일한 기능을 달성할 수 있다. 에너지 관리 모듈(103)는 여러가지 에너지 트레이드오프를 모니터하고 필요한 기능을 제공하기 위해서 가장 에너지 효율적인 방법을 동적으로 선택할 수 있다.
센싱, 계산, 통신 작업의 서브셋(subset)에 대한 에너지 비용은 통계적으로 측정될 수 있다. 이와 같은 정적인 선택의 에너지 비용은 디바이스의 초기화 동안에 한번 측정된다. 에너지 관리 모듈(103)은 모바일 전화의 데이터 저장 시스템(111)과 같은, 비휘발성 온보드 데이터베이스에 변하지 않는 에너지 비용 정보를 저장할 수 있다.
어떤 에너지 비용은 동적으로 변한다. 이러한 선택에 대해서, 에너지 관리 모듈(103)은 바람직한 작업 기능을 달성하기 위해서 가장 에너지 효율적인 방법을 결정하기 위한 짧은 프로파일링 인터벌을 사용할 수 있다. 에너지 관리 모듈(103)에 의해 런타임에 확인된 에너지 효율적 방법은 데이터 저장 시스템(111)과 같은 계속적 프로파일링의 필요없이 미래의 결정 선택에 사용될 수 있도록 런타임 데이터베이스에 저장될 수 있다. 에너지 관리 모듈(103)은 중앙화된 런타임 층을 통해서 복수의 애플리케이션이 같은 센서 데이터를 액세스해서 복사하기 보다는 에너지 비용을 청산하도록(amortize) 함으로써 더욱 에너지 효율을 개선하도록 할 수 있다.
에너지 관리 모듈(103)은 예를 들어, 심비안 S60 플랫폼의 위에 설치될 수 있다. 물리적 활동 탐지를 위한 모바일 센싱 애플리케이션은 에너지 관리 모듈(103)의 API를 사용하기 위해 변경될 수 있다. 이 실시예의 9시간의 야외 테스트로부터의 결과는 에너지 관리 모듈(103)이 21%의 전지 수명을 개선할 수 있다.
연구에 사용된 모델
도 2는 에너지 관리 모듈(103) 및/또는 이동 통신 디바이스(101)의 다른 곳에 설치될 수 있는 부분이 될 수 있는 컴포넌트의 또다른 예를 개시한다. 모바일 애플리케이션은 이 기능의 모든 또는 서브셋을 사용할 수 있다.
도 2에 개시된 바와 같이, 센서 인터페이스 층(201)이 있을 수 있다. 센서 인터페이스층(201)은 각 센서와 인터페이스하고 센서로부터 데이터를 수집한다. 인터페이스되는 센서는 Bluetooth와 같은 무선 인터페이스 또는 유선 인터페이스에 걸친 이동 통신 디바이스(101)상에서 이용가능한 온보드(내부) 센서가 될 수 있다. 데이터 수집기(203)는 각 센서 인터페이스로부터의 센서 데이터를 수신하고 이들을 하나의 센서 데이터 기록으로 합한다. 데이터 집합기(203)은 복수의 센서 스트림들이 하나의 시간 스탬프된 센서 기록으로 동기화될 수 있도록 허용할 수 있다.
분석 모듈(205)은 도메일 특정 작업을 수행할 수 있다. 분석 모듈(205)은 센서 데이터 기록을 처리하고 센서 데이터에 기초해서 행동을 취한다. 예를 들어, 모바일 전화의 경사 방향 및 경사 각도에 의해 제어되는 모바일 레이스 게임에 있어서 분석 모듈(205)은 자이로스코프와 가속도계 센서 데이터를 이용해서 가속도와 각도를 계산할 수 있다. 데이터는 스크린 상에서 적절히 게임 화면을 변경하는데 사용될 수 있다. 연속된 사용자 상태 모니터링과 같은 더 복잡한 센싱 기초 애플리케이션에서는, 분석 모듈(205)은 내부 및 외부 센서들로부터의 데이터를 사용해서 사용자 상태 분류를 수행할 수 있다.
전송 모듈(207)은 컨택스트-특유의 정보를 제공하기 위해서 백엔드(backend) 웹 서비스를 액세스할 수 있다. 어떤 애플리케이션은, 전송 모듈(207)은 모든 센서 데이터를 백엔드 서버로 보내고 사용자 컨택스트를 원격으로 계산할 수 있다. 전송 모듈(207)은 보안과 에너지 절약을 위한 데이터 압축 및 암호화를 처리할 수 있다.
시각화 에이전트(209)는 그래픽 집약적인 애플리케이션에서 비디오 또는 그래픽을 스크린상에 렌더링하기 위해서 사용된다.
도 2에 개시된 소프트웨어 컴포넌트들은 위치-인지 물리적 활동 탐지를 위해 실험적인 모바일 센싱 플랫폼에 설치될 수 있다. 모바일 플랫폼은 Nokia E75 모바일 전화, 사용자의 심박비율을 탐지하기 위한 외부 ECG(electrocardiograph, 전기심박도) 센서, 및 모바일 전화으로부터의 가속도계(ACC) 및 GPS등 두 개의 내부 센서이다. 모바일 애플리케이션은 E75상에서 동작하고, 센서 데이터를 수집한다. 센서 데이터는 사용자 상태를 즉 걷기, 뛰기, 안절부절하기(fidgeting), 서기, 앉기와 같은 여러 상태 중 하나의 상태로 분류하고, ECG 및 ACC 센서 데이터를 복수모드 신호 처리와 함께 분석된다. 사용자 상태 분류는 그들의 물리적 활동 레벨에 관해서 계속적 피드백을 엔드 유저에게 제공하기 위해서 위치스탬프되어(geo-stamped) 모바일 전화에 저장된다.
GPS의 에너지 소비
GPS는 많은 모바일 애플리케이션 특히 위치기반 서비스에서 사용될 수 있다. 모바일 전화는 위치정보를 센싱하기 위해서 복수의 옵션을 제공할 수 있다. 예를 들어, Nokia 전화을 사용할 때, 사용자는 블로투스 기반 외부 GPS, 어시스티드 GPS(assisted GPS), 도움 없는 종래의 GPS, 및 대략의 위치 정보를 제공하기 위해서 셀 타워(cell tower)만을 사용하는 네트워크 기반의 GPS를 포함하는 선택들을 가질 수 있다.
도 3a 내지도 3d는 GPS가 이러한 방법들 각각을 사용해서 제1 요청을 처리할 때의 에너지 소비를 개시한다. 수치들은 네 개의 방법들을 사용한 제1 GPS 리딩(reading)을 얻는 시간과 전력 소비의 트레이드오프를 보이고 있다.
도 3a는, 블로투스 기반 외부 GPS 전력 소비는 블로투스 링크를 설정하고 GPS 좌표를 읽는 모바일 전화 전력 소비만을 개시한다. 연결이 설정되었을 때 전력 소비에 스파이크(spike)가 있는데, 블루투스 채널위로 데이터가 읽혀지고, 그리고 전력 소비가 블루트스가 ON이지만 데이터를 활동적으로 수신/전송하지 않을 때 아이들(idle) 블루투스 전력으로 강하한다.
도 3b의 어시스티드 GPS(assisted GPS)곡선은 대략적 위치를 처음 얻기 위해서 셀 타워와 통신할때 큰 전력 스파이크를 보이고 있다. 셀타워가 GPS 인공위성의 궤도 데이터를 제공하고 나면, 모바일 전화의 GPS 수신기는 인공위성 신호들을 찾는 검색을 좁힐 수 있고, 위치 정보를 빨리 얻는다. 이 방법은 네트워크로부터 위치 정보를 수신하기 우해서 대략 15초가 걸리고, 콜드 스타트(cold start)로부터 정확한 위치를 계산하는데는 부가적인 35초가 걸린다.
도 3c의 곡선은 전화에 내장된 GPS를 이용했다. 이 모드에서, GPS 수신기는 위성 정보를 계속해서 스캔한다. 이 접근법은 더 낮은 피크 전력을 이용하지만, 셀룰러 네트워크로부터 어떠한 도움도 없기 때문에 위치 정보를 획득하기 전에 거의 100초가 걸린다. 통합된 GPS에 의해 소모되는 전체 에너지는 33.9 주울이었다.
도 3d의 마지막 곡선은 A-GPS(Assisted GPS)처럼 자신의 근사적인 위치 정보를 삼각측량하기 위해 셀 타워와 통신하는, 네트워크 기반 위지 정보의 전력 소모를 도시하지만, 위성과의 어떠한 추가적인 통신도 이용되지 않는다. 따라서, 네트워크-기반 GPS는, 처음 15초 동안 셀 타워와 통신할 때, 초기적으로, A-GPS와 동일한 전력을 또한 소모할 수 있다. 그런 다음, 네트워크-기반 GPS가 위성과 통신함으로써 정확한 위치 정보를 계산하려고 시도하지 않으므로, 전력 소모는 유휴(idle) 전력으로 하강될 수 있다.
전체 에너지 소모(전력소모 * GPS 판독을 얻기 위한 시간)에 기초해서, 네트워크-기반 GPS는 에너지(샘플 당 13 주울)를 절약하기 위해 최상이었지만, 위치 데이터는 단지 근사적일 수 있다. 위치 정확성을 위한 애플리케이션의 요구에 따라, 애플리케이션 개발자는 적절한 위치 감지 알고리즘을 선택할 수 있다. 위치 기반 서비스가 매우 인기가 있음을 고려하면, 다수의 모바일 애플리케이션이 위치 정보를 획득하기 위해 GPS를 독립적으로 액세스할 수 있다.
통신 비용
컨텍스트-기반 서비스를 제공하는 모바일 애플리케이션은 통신하기 위해 무선 통신 디바이스 중 하나를 이용해서 백엔드(backend) 서버에 의해 제공된 웹 서비스를 액세스 하기 위해 컨텍스트 정보를 이용할 수 있다. 통신의 에너지 비용을 수량화하기 위해, 테스트 베드가 생성되었다. 테스트 베드는 3G, EDGE, 또는 와이파이를 이용해서 데이터를 휴대폰으로부터 백엔드 서버에 송신할 수 있다. AT&T 광대역 네트워크는 3G 및 EDGE를 위해 이용되었으며, 한편 802.11g 링크시스 라우터가 와이파이를 위해 이용되었다. 백엔드에 송신되는 데이터 크기는 100KB에서 1000KB까지 변화하였다. 모바일 무선 네트워크의 성능이 위치별로 그리고 캐리어별로 변화함에 따라, 동일 위치로부터 모든 데이터 전송 측정이 다른 사용자와의 네트워크 혼잡(congestion) 문제를 감소시키기 위해 이른 아침에 한 시간 이내에 테스트되었다. 이러한 학습은 여러 번에 걸쳐, 하지만 항상 일별 변이를 측정하기 위해 하루 중 동일한 시간에 반복되었다.
데이터 송신은 3개의 국면, 즉, 접속 국면, 전송 국면, 및 테일(tail) 국면으로 이루어질 수 있다. 도 4는 3개의 무선 데이터 송신 접근법을 위한 3개의 데이터 국면 동안의 전력 소모를 도시한다. 이 실험에서, 200KB의 데이터 송신이 이용되었다. 더 짧은 범위 때문에, 비록 와이파이가 더 높은 대역폭을 가질지라도, 소모되는 피크 전력은 E75 상에서 3G와 EDGE 무선 통신(radio)보다 단지 약간 불량하였다.
도 5는 데이터 송신의 크기가 100KB에서 1000KB로 증가함에 따라 3개의 무선 인터페이스의 데이터 송신 (업링크) 에너지 비용을 도시한다. 오프-피크 시간 동안 와이파이가 테스트되었으므로, 와이파이는 가장 높은 대역폭을 제공하였고, 모든 데이터 패킷 크기에 걸쳐서 가장 에너지 효율적이었다. 따라서, 와이파이를 이용하는 전체적인 에너지 소모는 이 설정에서 3G/EDGE 각각에서 보다 매우 낮았다.
이 실험에서, 3G는 약 400KB의 데이터 크기까지 EDGE보다 더 많은 에너지를 소모했다. 이러한 이유를 이해하기 위해, 하기의 표는 모든 3개의 네트워크 인터페이스의 평균 접속 및 테일 에너지 비용들을 보여 준다:
Figure pat00001
3G의 접속 및 테일 에너지는 EDGE보다 훨씬 높고, 한편, 송신 에너지는 더 낮았다. 따라서, 작은 데이터 패킷 3G에 대해, EDGE보다 더 많은 에너지가 소모되었다. 데이터 패킷 크기가 400KB를 넘어 증가하였으므로, 송신 에너지가 전체 에너지 비용을 지배하였고(dominated), 따라서 3G가 EDGE보다 더 적은 에너지를 소모하였다.
계산 비용
모바일 애플리케이션은 센서 및 다른 데이터 상에서 수행될 복잡한 계산을 필요로 할 수 있다. 예를 들면, 애플리케이션 센서 데이터는 사용자가 걷거나, 달리거나, 운전하고 있는지를 검출하기 위해 이용될 수 있다. 이러한 컨텍스트 모니터링은 사용자 상태를 검출하기 위해 센서 데이터에 대해 복잡한 신호 처리 알고리즘을 실행하는 것을 요구할 수 있다. 휴대폰 상에서 또는 백엔드 상에서 사용자 상태 검출을 수행할지 여부의 선택은 다수의 인자들을 고려하면서, 전체 에너지 비용에 종속된다. 하나의 실험에서, 사용자 상태를 검출하기 위해 10분 간격 동안 수집된 ECG 및 ACC 데이터를 이용한 사용자 상태 검출 알고리즘이 실행되었다.
도 6은 로컬 계산 및 원격 계산의 에너지 비용을 보여 준다. 그래프의 제1 막대는 로컬 계산의 에너지 비용을 도시한다. 3개의 막대로 이루어진 제2 세트는 3개의 상이한 송신 옵션을 이용해서 원격 서버 상에서 데이터 분석을 가능케 하기 위한 송신 비용을 도시한다: EDGE, 3G, 및 와이파이. 3개의 막대의 마지막 세트는 데이터가 압축되고, 그런 다음 송신될 때의 에너지 비용을 도시한다.
로컬 계산 비용은 6.6 주울이었다. 원격 계산 비용(Gzip 없이)은 와이파이를 이용해서 1.46 주울에서 3G를 이용해서 최대 22.72 주울 사이에서 변화하였다. 먼저 Gzip 압축을 이용하고, 그런 다음, 압축된 데이터를 송신할 때, 에너지 비용은 와이파이를 이용해서 1.74 주울에서 3G를 이용해서 최대 21.17 주울 사이에서 변화하였다. 와이파이가 이용가능하였을 때, 원격 계산을 수행하는 것이 에너지 효율적이었다. 하지만, 사용자가 로밍하고 있을 때, 로컬 계산은 EDGE 또는 3G 비용보다 양호하였다.
이러한 간단한 시나리오에서 조차, 원격 계산 대 로컬 계산의 선택은 이용되고 있는 무선 통신과, 데이터가 압축되는지의 여부의 복잡한 함수였다. 만약 동일한 사용자 상태 검출 알고리즘이 더 적거나 더 많은 센서 샘플을 이용해서 실행되었으면, 계산 비용은 상이했을 수 있다. 따라서, 계산의 에너지 비용을 통신과 균형을 유지해야 할 때, 어떠한 단일의 통계적으로 최상의 선택도 존재하지 않을 수 있다.
논의는 단일 모바일 디바이스 상에서 데이터를 보여 줌으로써 단순화될 수 있다. 하지만, 모바일 감지 애플리케이션은, 에너지 트레이드오프(tradeoff)가 디바이스별로 변화하는, 다수의 디바이스들 상에서 실행되도록 개발될 수 있다. 따라서, 이러한 트레이드오프가 디바이스에 따라 변하므로, 애플리케이션 개발자는 단일 디바이스 상에서 모든 트레이드오프를 고려하도록 심지어 동기가 부여되지 않을 수 있다. 따라서, 이러한 트레이드오프를 추적하는 것은 모바일 감지 애플레케이션층의 외부로 남겨질 수 있다. 오히려, 이러한 트레이드오프는, 에너지 소모에 대한 가장 정확한 정보가 디바이스 특유의 방식으로 수집될 수 있는 런타임에 자동으로 관리될 수 있다.
이전 논의는 감지, 계산, 및 통신간의 에너지 소모 트레이드오프에 대해 동기를 부여했다. 복잡한 동적 트레이드오프가 주어졌을 때, 모바일 애플리케이션 개발 동안 소프트웨어 개발자가 이러한 트레이드오프를 걱정하기를 기대하는 것은 비현실적일 수 있다. 에너지 관리 모듈(103)은 이러한 문제를 해결할 수 있다. 표시된 것처럼, 에너지 관리 모듈(103)은 복잡성을 추상화하고(abstract), API 세트를 애플리케이션 개발자에게 제공하는 런타임 미들웨어(107)를 포함할 수 있다. API는 예를 들면, GPS 정보를 획득하는 동작, 로컬 또는 원격으로 계산을 실행할지 여부의 결정 동작, 또는 네트워크를 통해 데이터 패킷을 송신하기 위해 이용가능한 어느 무선 액세스 포인트를 이용하지를 결정하는 동작과 같은, 에너지 효율적인 방식으로 시스템 서비스를 획득하기 위해 애플리케이션 개발자에 의해 이용될 수 있다. 에너지 관리 모듈(103)은 런타임에 다양한 에너지 트레이드오프를 모니터링하고, 필요한 기능을 제공하도록 가장 에너지 효율적인 구현을 동적으로 선택할 수 있다. 개발자가 기반(underlying) 하드웨어 아키텍쳐 및 대응하는 에너지 트레이드오프를 이해할 필요가 없어질 수 있음에 따라, 상당한 에너지 절약을 여전히 달성하면서 소프트웨어 생산성을 향상시키게 한다.
에너지 관리 모듈의 다른 실시예
도 7a와 7b는 에너지 관리 모듈(103)의 다른 예시의 구성 요소 및 API를 각각 도시한다. 도 7b에 도시된 바와 같이, 다수의 API 함수가 에너지 관리 모듈(103) 기능을 액세스하도록 설계자에게 제공될 수 있다. 이러한 API 모두는 예를 들면 C++ 클래스 내에서 구현될 수 있다. 하지만 간략함을 위해서, 마치 이러한 API가 C 함수인 것처럼 의사 코드로 보여 진다.
에너지 모니터 모듈(701)은 디바이스 특유의 에너지 측정 인터페이스를 이용함으로써 현재의 에너지 소모를 측정할 수 있다. 예를 들면, 노키아 N95는 애플리케이션으로 하여금 일정한(given) 시간 간격 동안 에너지 소모를 측정하게 하는 노키아 에너지 프로파일러를 제공한다. 두 개의 API가 에너지 모니터 모듈을 액세스하기 위해 제공될 수 있다.
먼저, StartMonitoring() API(703)는 모바일 애플리케이션을 실행하면서 에너지 소모를 측정하기 위해 에너지 모니터(701) 내에 스레드(thread)를 시작할 수 있다. 만약 이 스레드가 에너지 측정을 시작하는 것을 성공하면 이 스레드는 참(true) 값을 반환하고, 그렇지 않으면 이 스레드는 거짓(false) 값을 반환할 수 있다.
둘째로, StopMonitoring() API(705)는 모니터링 스레드를 중지하고, StartMonitoring API(703)가 호출된 시간부터 StopMonitoring API(705)가 호출된 시간까지 소모된 전체 에너지(가장 가까운 정수로 반올림됨)를 주울 단위로 반환한다.
구성 데이터베이스(707)는 통신 및 계산 에너지 트레이드오프를 결정하는 것과 관련된 다수의 구성 파라미터를 모바일 감지 애플리케이션 내에 저장할 수 있다. 데이터베이스 내에 저장된 파라미터는 센서 데이터를 압축하는 에너지 비용, 센서 데이터를 위한 데이터 압축율, 바이트 당 송신 에너지와, 모바일 디바이스 상에 있는(on board) 다양한 네트워크 인터페이스를 위한 접속 및 테일 에너지를 포함할 수 있다. 이러한 파라미터의 일부는 송신 에너지와 같이 위치 종속적일 수 있다. 하지만, 압축 에너지 및 압축 비율과 같은 다른 파라미터는 위치 독립적일 수 있다. 그래서 구성 데이터베이스(707)는 두 개의 논리적 파티션을 가질 수 있다. 하나의 파티션은 위치 독립적인 파라미터를 저장할 수 있으며, 한편 제2 파티션은 위치 종속적인 파라미터를 저장할 수 있다.
임의의 모바일 애플리케이션 내의 에너지 관리 모듈(103)의 이러한 실시예를 이용하는 제1 단계는 이러한 애플리케이션을 위해 통계적으로 측정될 수 있는 애플리케이션 특유의 정보로 이러한 데이터베이스를 채우는(populate) 것일 수 있다. 그래서 모든 애플리케이션은 Initialize(function*, byte[], int) API(709)를 호출할 수 있다. 이러한 함수는, 입력으로서, 애플리케이션에 의해 수집되는 샘플링된 센서 데이터 패킷(바이트 배열)과, 센서 데이터를 분석하는 주요 계산 함수(함수 포인터로서 전달됨)를 취할 수 있다. 애플리케이션 실행의 제1 시간 할당량 동안 수집되는 센서 데이터는 데이터베이스를 초기화하기 위해 이용될 수 있다. initialize API는 위치에 독립적인 다수의 데이터 조작 함수의 에너지 비용을 계산할 수 있다. 먼저, 이 API는 샘플 센서 데이터 패킷을 압축하는 에너지 비용을 측정할 수 있다. 둘째로, 이 API는 샘플 데이터 패킷의 압축율을 측정할 수 있다. 그런다음, 이 API는 샘플 센서 데이터 패킷을 분석하기 위해 사용자에 의해 정의된 함수를 호출할 수 있다. 샘플 센서 데이터를 이용하여 이동 전화 상에 로컬적으로 사용자 정의된 함수의 실행에 대한 에너지 비용이 계산될 수 있다. 그리고 나서, API를 초기화하는 것은 위치 의존 정보로서 구성 데이터베이스(707)에서 로컬 계산 비용, 압축 비율 및 압축 에너지를 기록할 수 있다.
위치 모니터 모듈(711)은 사용자 위치를 모니터할 수 있고, 다수의 애플리케이션에 위치를 제공할 수 있으므로, 애플리케이션들 간에 효과적으로 위치를 공유하는 것이 가능하다. 모듈 GetPosition API(713)을 액세스하도록 단일 API가 제공되고, 디바이스의 현재 GPS 좌표는 가장 에너지 효율적인 방법을 이용하여 제공될 수 있다. GetPosition API(713)는 먼저 Wi-Fi 액세스 포인트를 스캔하고 이전에 취합된 액세스 포인트 정보와 현재의 Wi-Fi 액세스 포인트를 비교할 수 있다. 만약 스캔된 액세스 포인트 정보가 이전의 액세스 포인트 정보와 비교하여 20 % 이상만큼 상이하면, 시스템은 사용자가 이동하였다고 가정할 수 있고, 만약 그렇지 않으면, 시스템은 사용자가 이동하지 않았다고 가정할 수 있다. 만약 사용자가 이동했으면, 실제 위치 정보는 에너지 집약적인 GPS 센서를 액세스함으로써 획득될 수 있다. 만약 사용자가 이동하지 않았으면, 마지막 GPS 위치는 현재 GPS 위치로 제공될 수 있다. 그리고 나서, 현재의 Wi-Fi 스캔 정보는 미래의 비교를 위해 저장될 수 있다. 20 %의 선택은 이 연구에서 실험적으로 결정되었다. 이 정보를 미리 결정하는 대신에, 사용자가 이동하였는지의 여부를 결정하기 전에 Wi-Fi 스캔에 어느 정도의 변화가 필요한지 동적으로 계산하는 것이 또한 가능하다.
다음 절차는 위치 정보가 어떻게 에너지 효율적인 방식으로 결정될 수 있는지에 관한 내부 구현의 상세한 사항의 예를 도시한다.
Figure pat00002
이 API는 GPS 센서로부터의 가장 최근에 취합된 위치 정보를 절약할 수 있는 POS라 불리는 변수를 이용할 수 있다. GetPosition API(713)는 먼저 Wi-Fi 액세스 포인트를 스캔하고 APscan 변수에 액세스 포인트 정보를 저장할 수 있다. 변수 APcurr는 GetPosition 정보가 호출되었던 이전 시간으로부터 Wi-Fi 액세스 포인트들의 리스트를 저장할 수 있다. 만약 APscan이 APcurr과 20 %이상만큼 상이하면, 사용자가 새로운 위치로 이동하였다고 가정할 수 있고, 만약 그렇지 않으면, GetPosition API(713)이 호출되었던 마지막 시간으로부터 사용자가 위치를 변경하지 않았다고 가정할 수 있다. GetPositionFromGPS 함수는 실제 GSP 센서가 액세스될 때만 호출될 수 있다. POS 변수는 GPS로부터 획득된 새로운 위치 정보로 업데이트될 수 있다. 이 API는 GetPositionFromGPS 함수를 실행하기 위해 네트워크 기반 GPS를 이용할 수 있고; 앞서 기술된 바와 같이, 네트워크 GPS는 노키아 E75 폰 상에서 이용 가능한 다양한 GPS 함수들 중 최소 에너지를 소비하는 것일 수 있다. 이 API는 또한 위치 정보가 GPS로부터 획득될 때는 언제나 MOVED로 불리는 전역 변수를 참(true)으로 업데이트할 수 있다.
센서 샘플 모듈(715)은 애플리케이션의 요구를 충족시키기 위해 최고의 센서 샘플링 비율을 자동적으로 결정할 수 있다. 에너지 관리 모듈(103)은 최고의 센서 샘플링 비율을 결정하기 위해 단순한 피드백 제어기 메커니즘을 이용할 수 있다. 센서 샘플링 모듈(715)은 그것의 기능인 GetSamplingRate( ) API(717)을 액세스하기 위해 하나의 API를 제공할 수 있다. GetSamplingRate API는 원하는 레벨의 정확도를 얻기 위해 최고의 샘플링 비율을 제공할 수 있다. 피드백 제어기는 센서가 가장 높은 샘플링 비율로 데이터를 샘플링하도록 초기에 허용할 수 있다. 가장 높은 샘플링 비율 데이터는 분석 함수 출력을 비교하는데 이용될 수 있다. 그리고 나서, 에너지 관리 모듈(103)은 새로운 분석 함수 출력을 계산하기 위해서, 취합된 샘플을 하나 걸러서 스킵함으로써, 샘플된 데이터의 반만 이용할 수 있다. 이러한 실행으로, 분석 함수 출력이 사용자 상태 검출인 것으로 가정할 수 있다. 이런 이유로, 만약 감소된 샘플링 비율이 여전히 높은 샘플링을 이용하여 행해진 바와 같은 동일한 사용자 상태를 예측하면, API는 감소된 샘플링 비율을 이용하도록 애플리케이션 계층에 알릴 수 있다.
일부 분석 함수의 경우, 유사성의 개념을 용이하게 결정할 수 없다. 그러나, 샘플링 모듈이 유사성 정보를 배울 수 있는 트레이닝 런(training run)을 이용하는 것은 비교적 용이할 수 있다. 이러한 실행으로, 검출된 사용자 상태 검출은 유사성 비교를 위해 이용될 수 있다.
의사 결정(decision maker) 모듈(719)이 로컬 계산을 이용하기 위한 에너지 효율적인 시간 및 백엔드 서버 상에서 사용자 정의된 함수를 수행하기 위한 양호한 시간을 애플리케이션에게 알릴 수 있고, 통신을 위한 에너지 비용을 고려할 수 있다. 만약 원격 계산이 제안되면, 모듈은 원격 계산을 위해 센서 데이터를 전송하기 위해서 가장 에너지 효율적인 네트워크 인터페이스 및 Gzip 압축을 이용할지의 여부를 제안할 수 있다. MakeDecision(byte[], int, Address) API(721)는 의사 결정 모듈(719)에 대한 액세스를 제공할 수 있다. 이 함수는 입력으로서 센서 데이터 세트, 데이터 길이 및 백엔드 서버의 어드레스를 취할 수 있다.
다음 절차는 이 API의 의사 코드 실행의 예를 도시한다.
Figure pat00003
이동 애플리케이션은 통상적으로 일부 시간 동안 센서 데이터를 취합하고 애플리케이션 특유의 동작을 취하기 위해서 에폭(epoch)의 끝에서 센서 데이터를 분석한다. 에너지 관리 모듈(103)에 애플리케이션 특유의 분석 함수를 호출하기 전에, 애플리케이션 개발자는 MakeDecision API(721)를 호출할 수 있다. MakeDecision API(721)는 먼저 현재 위치를 얻기 위해 GetPosition API(713)를 호출할 수 있다. 만약 MOVED가 참이면, GetPosition API(713)에 의해 측정되고 APcurr에 저장된 바와 같은 모든 이용 가능한 네트워크 인터페이스를 획득할 수 있다. 그리고 나서, 프로파일링 전략을 실행할 수 있는 ActiveEnergyProfile 함수를 호출할 수 있다. ActiveEnergyProfile에 대한 코드의 예가 다음 절차에 도시된다.
Figure pat00004
ActiveEnergyProfile은 먼저 위치 의존 데이터를 획득하기 위해 인덱스로서 현재 위치를 이용함으로써 구성 데이터베이스(707)를 액세스할 수 있다. 구성 데이터베이스(707)는 현재 위치 좌표와 연관된 기록이 있으면 그것은 구성 파라미터 기록을 리턴할 수 있다. 만약 그렇지 않으면, 그것은 NULL 데이터를 리턴할 수 있다. 일단 NULL 데이터가 수신되면, ActiveEnergyProfile은 센서 데이터 패킷을 다수의 더욱 작은 데이터 청크(data chunk)로 나눌 수 있다. 그리고 나서, 그것은 APcurr 벡터의 제1 액세스 포인트를 이용함으로써 목적 IP에 제1 데이터 청크를 보낼 수 있다. 이것은 StartMonitoring API(703) 및 StopMonitoring API(705)를 이용하여 접속, 트레일, 및 전송 비용을 측정할 수 있다. ActiveEnergyProfile은 APcurr 벡터의 그 다음의 이용 가능한 액세스 포인트를 이용하여 제2 데이터 패킷을 보낼 수 있고, 그 위치에서 새로운 액세스 포인트에 대한 에너지 비용을 측정할 수 있다. 프로파일링 프로세스는 모든 액세스 포인트에 대해 반복될 수 있고, 각각의 액세스 포인트는 데이터 중 하나의 청크를 보내도록 이용될 수 있다. 액세스 포인트는 모든 Wi-Fi 채널을 포함할 수 있고, 또한 이들이 이용 가능하다면 3G 및 EDGE 네트워크를 포함할 수도 있다. (3G 및 EDGE를 포함하는) 액세스 포인트 각각에 대해, 이것은 단일 프로파일 기록으로서 위치 정보에 의해 인덱싱되고, 바로 위에서 언급한 절차에서 EnergyProfile로서 표기된, 구성 데이터베이스(707)에 접속, 트레일, 및 전송 비용/바이트를 저장할 수 있다. 주어진 위치에서 액세스 포인트는 그 위치에서 각각의 액세스 포인트에 의해 소모되는 전체 에너지에 기초하여 저장될 수 있다. 본질적으로, 주어진 위치에서의 EnergyProfile 기록은 프로파일링 국면 중에 각 액세스 포인트에 의해 얼마나 많은 에너지가 소모되는지의 순서로 소팅(sorting)되어 보여질 수 있다.
ActiveEnergyProle은 그 자체가 에너지 인텐시브 프로파일링 동작(energy intensive profiling operation)일 수 있다. 따라서, APcurr 벡터에서 너무 많은 액세스 포인트가 존재할 때마다, 신호 강도의 단순한 휴리스틱스(heuristics)가 상단 4개의 액세스 포인트로 검색 공간을 잘라내는데 사용될 수 있다. 연구에서는, 사용자 모빌리티 패턴이 상당히 반복적이며 모빌리티 패턴에서 심지어는 높은 예측 가능성이 있다는 것을 보여주었다. 따라서, 시스템 동작의 며칠 후에는, ActiveEnergyProfile은 포괄적인 프로파일링 분석을 해야 할 필요가 거의 없을 수 있다.
구성 데이터베이스(707)가 프로파일 기록을 반환하면(return), MakeDecison API(721)는 EstimateEnergy 함수를 사용하여 최저 에너지 옵션을 찾을 수 있다. EstimateEnergy 함수는 위지 독립적인 구성 파라미터, 즉 압축 비율과 압축 에너지 비용 및 로컬 에너지 비용을 획득하도록 구성 데이터베이스(707)에 액세스할 수 있다. 그러면, 데이터베이스에 저장된 압축 비율에 기초하여, 센서 데이터를 압축하는 에너지 비용 뿐만 아니라 압축 데이터의 예상 크기를 추정할 수 있다. 마지막으로, 압축 및 비압축(uncompressed) 데이터 둘 다에 대하여 ActiveEnergyProfile로부터 획득된 최소 EnergyProfile(EPmin)을 사용함으로써 전송 비용을 추정할 수 있다. 그 다음, 함수는 로컬 연산 에너지 비용의 최소치, 압축 없는 전송 에너지 비용, 압축 비용과 압축된 데이터 전송 비용의 합을 찾을 수 있다. 결과에 기초하여, 로컬 연산이 더 에너지 효율적일 때, true로 돌아간다. 원격 연산이 더 에너지 효율적인 경우에는 false로 돌아간다.
데이터 송신기 모듈(723)은 결정 형성 모듈(718)에 의해 선택된 네트워크 인터페이스를 사용하여 목적지에 데이터를 보낼 수 있다. 이는 또한 현재 데이터 전송의 에너지 비용을 모니터링한 다음, 현재 GPS 위치에서의 측정된 접속, 테일, 및 전송 비용으로 구성 데이터베이스(707)를 업데이트한다. 이는 단일 API, SendData(byte[], int, Remote Addr)(API)(725)를 제공할 수 있다: 이 함수는 제공된 데이터 패킷을 취하여 데이터를 선택된 네트워크 인터페이스 및 MakeDecision API(721)에 의해 지정된 압축 구성을 사용하여 원격 서버에 전송할 수 있다. MakeDecision API(721)는 Gzipflag 변수를 포함하여 EPmin를 설정할 수 있다. Gzipflag가 참인 경우, MakeDecision API(721)는 데이터를 압축한 다음 전송하기에 더 낫다고 추정할 수 있다. 따라서, SendData API(725)는 이 플래그를 자동으로 판독하고, EPmin 안의 AP에 의해 지정된 네트워크 인터페이스를 사용하여 압축 데이터나 비압축 데이터를 보낼 수 있다. 데이터가 전송되면, 이는 또한 소비된 실제 에너지를 모니터링하며, 접속, 테일, 및 전송 비용에 대하여 연산된 값으로 구성 데이터베이스(707)를 업데이트할 수 있다. 이 API에 대한 의사 코드의 예가 다음 절차에 도시된다:
Figure pat00005
에너지 관리 모듈을 사용하는 것의 영향
위치 인식(location-aware) 물리적 활동 검출 시스템이었던 모바일 애플리케이션이 선택되었고, 여기에서는 KNOWME로 지칭된다. KNOWME는 Nokia E75 이동 전화 상에 접속된 외부 ECG 센서로부터 센서 데이터를 수집하였다. ECG 데이터에 더하여, KNOWME는 또한 이동 전화 상의 내장형 가속도계 센서로부터 가속도계(ACC) 센서 데이터를 수집하였다. 2개의 센서로부터의 데이터는 이동 전화로 매 초마다 한번씩 스트리밍되었다. KNOWME 설정에서, ECG는 초당 300 샘플을 발생시켰다. 그러나, 이들 센서 샘플은 센서에서 내부적으로 버퍼링되었고 블루투스 채널을 통해 벌크 전송되었다. ECG가 300 샘플을 발생시켰지만, 이동 전화로 블루투스 채널을 통해서는 초당 4개 패킷만 전송하였다. 각각의 패킷은 75 센서 샘플을 갖는다. 전화로부터의 가속도계 데이터는 또한 초당 300 샘플의 속도로 수집되었다. KNOWME의 기준 버전 또한 위치 인식에 대하여 매 10 분마다 한번씩 네트워크 기반의 GPS를 사용하여 GPS 위치 정보를 수집하였다.
활동 검출을 수행하도록 KNOWME가 ECG 및 ACC로부터의 센서 데이터를 사용한 매 2분마다; 약 100KB의 데이터가 매 2분마다 결합된 2개의 센서로부터 수집되었다. 특히, ECG 및 ACC 데이터의 결합으로부터 워킹, 손짓, 러닝과 같은 9개 활동 중의 하나로 사용자 상태를 분류하도록 다중모달 신호 처리를 사용하였다. 다수의 센서를 사용하는 것은 가속도계 데이터 단독으로만 사용하는 것보다 활동 분류에 있어서 훨씬 더 효율적일 수 있다. 활동 검출은 국부적으로 전화 상에서, 또는 원격으로 서버 상에서 행해질 수 있다.
도 8a 내지 도 8c는 KNOWME 애플리케이션의 3개의 상이한 버전, 즉 KNOWME 로컬, KNOWME 원격 및 도 1에 도시된 에너지 관리 모듈(103)의 실시예를 함께 사용한 KNOWME가 구현되는 프로세스를 도시한다.
도 8a는 활동 분류가 전화 상에서 국부적으로 행해진 KNOWME 로컬을 예시한다(또한 매 2분마다 한번씩). 이 경우 센서 데이터는 이동 전화 자체 상에서 분석되었다. 그 다음, GPS 센서로부터 획득된 위치 스탬프와 함께, 활동이 이동 전화 상에 저장된다.
두 번째 버전, KNOWME 원격에서, 애플리케이션은 항상 활동 검출을 수행하는데 원격 연산을 사용한다. 단계들의 흐름도가 도 8b에 도시된다. KNOWME는 와이파이 액세스 포인트 이용능력에 대하여 스캔하였다. 와이파이 액세스 포인트가 이용 가능한 경우, 연산을 위해 백엔드 서버에 데이터를 전송하는데 와이파이를 사용하고 백엔드로부터 활동 검출을 수신하였다. 와이파이가 이용 가능하지 않은 경우, 백엔드에 데이터를 전송하는데 셀룰러 네트워크를 사용하고 백엔드로부터 활동 분류를 수신하였다. 분류된 활동은 GPS 센서로부터 획득된 위치 스탬프와 함께 이동 전화 상에 저장되었다. 이동 전화 상에 저장된 이 정보는 사용자의 활동 레벨에 관하여 사용자에게 연속적인 피드백을 제공하는데 사용되었다.
KNOWME의 에너지 관리 모듈 강화된 구현이 도 8c에 도시되어 있다. KNOWME 동작의 시작에서, 2분의 샘플 데이터를 처리하기 위한 압축 비율, 압축 에너지, 및 로컬 연산 비용과 같은 위치 독립적인 구성 파라미터를 연산하도록 API를 초기화하기 위한 단일 호가 이루어졌다. 앞서 기재된 바와 같이, 초기화(709)는 에너지 관리 모듈(103) 프레임워크 내에 내부적으로 유지되는 구성 데이터베이스(707)에 파라미터를 자동으로 저장하엿다. 초기화 단계 후에, KNOWME는 기준선에서와 같이 센서 데이터를 수집하였다. 그러나, 센서 데이터를 분석하기 전에(또한 매 2분당 한번씩) KNOWME는 MakeDecision API(721)를 호출하였다. MakeDecision API(721)는 활동 분류에 대하여 국부적으로 연산할지 아니면 원격 연산을 사용할지에 대한 결정으로 돌아간다. MakeDecision API(721)는 Gzip와 함께 또는 Gzip 없이 데이터 전송을 위한 위치 특정의 에너지 비용을 결정하고, 로컬 연산을 사용할지 아니면 원격 연산을 사용할지 결정하였다. 또한, MakeDecision API(721)는 다수의 액세스 포인트가 이용 가능할 때 에너지 프로파일에서 최소 에너지 네트워크 인터페이스를 자동으로 선택하였다. MakeDecision API의 반환 값에 기초하여, KNOWME는 로컬 또는 원격 연산을 수행한다. 원격 연산이 바람직한 경우, KNOWME는 SendData API(725)를 사용하여 데이터를 전송하였고, 이는 필요하다면 데이터 압축을 자동으로 선택하고 또한 MakeDecision API(721) 호출 동안 결정되는 최소 에너지 네트워크 인터페이스를 사용하여 데이터를 보낸다. KNOWME는 서버로부터 예측 사용자 활동을 수신하였다. 그 다음, 에너지 효율적인 방식으로 위치 정보를 반환하는 GetPosition API(713)를 호출함으로서 위치 정보를 획득하였다. 위치 인식 활동 정보가 이동 전화 상에 저장되었다.
GPS 센서 데이터는 매 10분마다 한번씩만 수집된 반면에, 활동은 매 2분마다 한번씩 분류되었다. 따라서, 5번의 활동 분류마다 한번씩만 잠재적으로 새로운 GPS 위치를 갖는다.
에너지 관리 모듈(103)을 사용하여, 에너지 절약 구현은 다수의 최적화로부터 온다. 첫 번째로, 에너지 관리 모듈(103)은 사용자가 현저하게 이동하지 않을 때마다 GPS 감지를 스킵하였다. 두 번째로, 예상되는 에너지 소비 비용에 기초하여 로컬 연산을 사용할지 원격 연산을 사용할지 동적으로 결정하였다. 세 번째로, 에너지 관리 모듈(103)은 그 위치에 대한 프로파일이 존재하는 한, 임의의 소정의 위치에서 최소 에너지 네트워크 인터페이스를 선택하였다. 이전의 프로파일 정보가 없다면, 에너지 관리 모듈(103)은 위치 의존의 프로파일 정보를 수집및 저장하는데 일부 추가의 에너지를 소비하였다.
KNOWME에서 외부 센서에 대한 샘플링 레이트는 현재 프로그램 가능하지 않다. 따라서, 외부 센서 샘플링 레이트는 현재 KNOWME에서 최적화되지 않았다. Symbian S60은 EDGE 또는 3G 네트워크를 선택하는데 사용자 레벨 액세스를 허용하지 않는다. 따라서, 데이터 패킷 크기가 작은 일부 경우에 EDGE가 더 적은 에너지를 사용하더라도, EDGE 네트워크가 선택되지 않았다. 셀룰러 네트워크가 선택될 때마다 시스템은 항상 시스템 동작 중에 3G로 종료하였다.
에너지 관리 모듈의 시각적 설명
KNOWME 동작의 3개의 시나리오가 비교될 수 있다: (1) KNOWME의 에너지 관리 모듈(103) 기반의 구현; (2) 원격 연산만 선택한 KNOWME 원격(3G보다 와이파이에 우선권이 주어짐); 및 (3) 로컬 ddustks을 선택하는 KNOWME 로컬. 상기 기재된 바와 같이, 3개의 동작 모드를 사용하여 E75 이동 전화 상에서 KNOWME를 실행시킴으로써 데이터가 수집되었다. 각각의 3개의 KNOWME 버전 중의 하나를 실행시키는 3명의 사용자가 배치 연구 동안 동일한 경로를 통해 이동하였다. 실지 시험 동안, 사용자는 먼저 3G 셀룰러 접속만(따라서 와이파이 접속 없음) 이용 가능한 환경을 통해 이동하였다. 그 다음, 하나의 와이파이 액세스 포인트 및 3G 접속이 이용가능하였다. 마지막으로, 2개의 와이파이 액세스 포인트 및 3G 접속이 이용가능하였다.
도 9a 내지 도 9c는 다중 시간 실지 연구 동안 3개의 상이한 접근법을 이용해 시간에 따라 전력 소비가 어떻게 변하는지 보여준다. 처음 2+ 시간만 시간이 지남에 따라 변하는 거동이 도시된다. X축은 분 시간이며, Y축은 하나의 초 시간 윈도우에 걸쳐 계산된 평균 전력 소모이다. Y축은 전력 소모이며(에너지 소모는 아님), 따라서 전력(막대들의 높이)은 시간(막대들의 폭)과 곱해져서 에너지 소모를 획득한다.
도 9a는 에너지 관리 모듈(103)을 이용한 전력 소모 변동들을 도시한다. 시작에서, 사용자는 임의의 Wi-Fi 액세스 포인트 이용가능성의 외부에서 로밍중이였다. 따라서, 단지 3G 네트워크 접속성만이 이용가능하였다. 전력 소모에서의 첫번째 스파이크는 시스템이 센서 데이터의 첫번째 2분 값을 이용하여 Initialize API(709)를 호출할 때 발생하였다. Initialize API(709)는 사용자 상태를 검출하기 위해 로컬 계산을 이용하는 에너지 비용을 계산하였다. 그 후 4분에서, KNOWME는 MakeDecision API (721)를 호출하였다. 어떠한 프로파일링 정보도 이용가능하지 않았기 때문에, KNOWME는 모든 이용가능한 네트워크 액세스 포인트들에 대한 프로파일 정보를 수집하였다. 이 경우, 단지 3G 네트워크만이 이용가능하였다. 따라서, 첫번째 두 개의 전력 스파이크들은 본질적으로 3G를 이용한 로컬 계산 및 원격 계산의 에너지 비용을 측정 중이였다. 로컬 계산의 에너지 소모 비용은 원격 계산의 에너지 비용보다 작았다. 따라서, 6분에서, KNOWME는 로컬 계산을 이용하기 위해 KNOWME를 명령하였던 MakeDecision API (721) 호출을 인보크하였다. 이 프로세스는 60 분까지 계속된다.
60 분에서, 사용자는 단일 Wi-Fi 액세스 포인트가 이용가능하였던 새로운 환경에 진입하였다(이 액세스 포인트는 분석 함수의 시작시에 행해졌던 Wi-Fi 스캔에 의해 검출되었다). 이제, KNOWME는 다섯가지의 선택들, 즉 로컬 계산, Gzip을 갖거나 갖지 않고서 Wi-Fi를 이용한 원격 계산, 및 Gzip을 갖거나 갖지 않고서 3G를 이용한 원격 계산을 가졌다. 사용자는 어떠한 프로파일링 정보도 이용가능하지 않았던 새로운 위치에 진입하였기 때문에 KNOWME는 MakeDecision API (721)를 인보크하였다. 그런 후 MakeDecision API (721)는 새로운 프로파일 단계에 진입하였고 압축을 갖거나 갖지 않는 3G 및 Wi-Fi 액세스 포인트들을 통해 데이터를 전송하여 에너지 비용을 계산하였다. 데이터를 3G를 통해 보내는 프로파일링된 에너지 비용은 이미 첫번째 시간에서 계산되었을지라도, 3G 에너지 비용들은 동적으로 변하였다. 따라서, MakeDecision API (721)는 사용자가 새로운 위치로 이동하는 매 시간마다 3G 기반 원격 계산의 프로파일링 비용을 단순히 계산하였다. 로컬 계산 비용은 이미 알려져 있었으므로 이에 따라 로컬 계산에 대한 어떠한 프로파일링 정보도 수집되지 않았다. 도면상에서의 62분과 64분에서 도시된 바와 같이 새로운 프로파일링 단계는 두 개의 전력 스파이크들을 생성하였다. 66분에서, 에너지 관리 모듈(103)은 최상의 에너지 효율적인 동작 포인트를 선택하기 위해 필요한 모든 정보를 가졌다. Gzip 압축을 갖는 Wi-Fi가 선택되었다. Wi-Fi를 위한 전력 소모는 로컬 계산보다 약간 높았지만, Wi-Fi 계산은 보다 작은 시간이 걸렸다. 따라서, Gzip을 갖는 Wi-Fi의 총 에너지 비용은 이용가능한 다른 모든 옵션들보다 낮았다. 따라서, 이 모드에서는 KNOWME가 120분때까지 동작하였다.
120분에서, 사용자는 3G에 더하여 두 개의 Wi-Fi 액세스 포인트들이 이용가능하였던 새로운 환경에 진입하였다. 실험적 셋업에서, 두 개의 Wi-Fi 액세스 포인트들 중 하나의 액세스 포인트는 보다 낮은 이용가능한 대역폭을 갖도록 세팅되었다. 사용자는 어떠한 프로파일링 정보도 갖지 않는 새로운 위치에 진입하였기 때문에, 에너지 관리 모듈(103)은 프로파일링 단계에 진입하였다. 새로운 프로파일링 단계는 세 개의 전력 스파이크들, 즉 에너지 관리 모듈(103)이 Wi-Fi 액세스 포인트 1을 이용하여 프로파일링중이였던 122분에서의 전력 스파이크, Wi-Fi 액세스 포인트 2를 갖는 124분에서의 제2 전력 스파이크, 및 3G를 이용한 126분에서의 제3 전력 스파이크를 생성하였다. 이 세 개의 모든 프로파일들은 압축을 갖는 비용과 압축이 없는 비용을 비교하였다. 126분에서, 에너지 관리 모듈(103)은 최상의 에너지 효율적인 동작 포인트를 선택하기 위해 필요한 모든 정보를 가졌다. 최상의 옵션으로서 Gzip 압축을 갖는 Wi-Fi 액세스 포인트 1이 선택되었고 그런 후 시스템은 이 모드에서 동작하였다.
도 9b는 에너지 관리 모듈(103) 동작을 위해 도시되었던 동일한 2+ 시간 윈도우에 대한 전력 소모를 도시한다. 시스템은 원격 계산만을 이용하였지만, 이용가능한 경우 Wi-Fi에 대해 우선권을 부여하였다. 따라서, Wi-Fi가 이용가능하지 않았을 때의 첫번째 시간 동안, 압축이 없는 3G가 이용되었다. 두번째 시간 및 세번째 시간에서는, 원격 계산을 수행하기 위해 압축이 없는 Wi-Fi가 이용되었다. 다수의 액세스 포인트들이 이용가능하였을 때, 시스템은 최상의 신호 세기를 갖는 Wi-Fi 액세스 포인트를 단순히 이용하였다. 신호 세기 단독으로는 에너지 소모 비용들의 최상의 표시자는 아닐 수 있지만, 임의의 런 타임 인프라구조의 부재시에 베이스라인 시스템은 단순히 신호 세기 단독에만 의존하였다.
도 9c는 에너지 관리 모듈(103) 동작을 위해 도시되었던 동일한 2+ 시간 윈도우에 대한 전력 소모를 도시한다. 하지만 시스템은 이제 로컬 계산만을 이용하였다. 도 9c는 에너지 관리 모듈(103)을 이용하여 어떻게 변화하는 조건들에 동적으로 적응되는지를 보여준다. 실험적인 런에서, 프로파일링의 비용은 (액세스 포인트들의 갯수에 의존하여) 프로파일 런 당 약 10줄로부터 17줄까지 변했으며, 이것은 KNOWME 모바일 애플리케이션의 총 동작 에너지의 단지 작은 부분에 해당되는 것이였다.
두 개의 필드 연구들로부터의 누적된 에너지 절감들
각각의 지속된 9시간들에 대해 두 개의 필드 연구들이 또한 수행되었다. 첫번째 필드 연구에서, 사용자는 한 시간동안 3G 단독 환경에 머물렀으며, 그 후 두번째 시간에서 3G +하나의 Wi-Fi 액세스 포인트 환경으로 이동하였으며, 그 후 세번째 시간에서 3G + 두 개의 Wi-Fi 액세스 포인트 환경으로 이동하였다. 그런 후 사용자는 총 9 시간 동안 두 개의 추가적인 시간들에 대해서 이러한 세 개의 환경들을 거치는 이동을 반복하였다.
도 10은 이 필드 연구를 이용하여 9시간의 시간 간격에 걸쳐 누적된 에너지 소모들을 도시한다. 제1 세트의 세 개의 막대들은 로컬 단독, Wi-Fi 액세스에 대한 우선권을 갖는 원격 단독에 의해 소모되는 총 에너지와, 에너지 관리 모듈(103)을 이용할 때에 소모되는 총 에너지를 도시한다. 에너지 관리 모듈(103)을 이용할 때, KNOWME 애플리케이션 시스템은 로컬 단독 계산보다 6% 작은 에너지를 소모하였고, 원격 단독 계산보다 28% 작은 에너지를 소모하였다. 로컬 계산을 통한 에너지 절감이 획득되었는데, 그 이유는 Wi-Fi가 이용가능할 때 마다, 에너지 관리 모듈(103)은 압축 데이터를 Gzip을 이용하여 송신함으로써 원격 계산을 행하는 것이 보다 좋았다라고 결정했기 때문이다. 원격 계산을 통한 에너지 절감이 획득되었는데, 그 이유는 3G를 이용한 원격 계산은 로컬 계산을 행할 때보다 악화되었기 때문이다.
9시간 연구는 상이한 환경에 대해 반복되었으며, 사용자는 하루 동안에 걸쳐 상이한 Wi-Fi 액세스 포인트들 및 3G 네트워크 이용가능성을 갖는 환경을 거치는 이동을 하였다. 이것은 사용자 이동성과 관련된 가정을 두지 않은 상태에서 적어도 일상생활에서, 꽤나 현실적인 환경이였다. 도 10에서의 제2 세트의 세 개의 막대들은 이 필드 연구로부터의 에너지 소모를 도시한다. 에너지 관리 모듈(103)을 이용할 때, KNOWME는 원격 단독 계산보다 20% 작은 에너지를 소모하였고, 로컬 단독 계산보다 21% 작은 에너지를 소모하였다. 여기서 하루 동안의 큰 시간 부분에 대해 Wi-Fi의 이용가능성은 로컬 단독 계산뿐만이 아니라 거의 원격 계산 수행을 행하였다. 하지만, 에너지 관리 모듈(103) 구현은 여전히 로컬 단독 또는 원격 단독 선택들을 여전히 능가하였다. 이러한 개선들은 원격 단독 계산이 이미 Wi-Fi와 3G 사이를 스위칭한 경우 강력한 베이스라인을 가질 때에서도 달성되었다.
다른 애플리케이션들
에너지 관리 모듈(103)은 크라우드 소싱 및 헬스 모니터링과 같은, 폭넓게 다양한 모바일 애플리케이션과 함께 이용될 수 있다. 이러한 애플리케이션들은 모바일 계산, 센싱, 계산, 및 통신의 모든 관점으로부터 에너지 효율성에서의 상당한 개선을 필요로 할 수 있다. 예를 들어, 에너지 관리 모듈(103)은 물리적 재활, 비만 모니터링, 및 요양생활에서 도움을 주기 위해 배치되는 모바일 디바이스들에서 이용될 수 있다. 에너지 관리 모듈(103)은 또한 필드 내에서 동작하는 것과 같은 무선 센서 네트워크들과 함께 이용될 수 있다.
다음의 참조들 중 하나 이상은 여기서 설명된 어떠한 컴포넌트들 또는 프로세스 단계들에 관한 상세사항들을 제공할 수 있다:
Figure pat00006
T. Abdelzaher, Y. Anokwa, P. Boda, J. Burke, D. Estrin, L. Guibas, A. Kansal, S. Madden, 및 J. Reich. 휴먼 스페이스를 위한 모비스코프. 퍼바시.
Figure pat00007
P. Aghera, T. Rosing, D. Fang, 및 K. Patrick. 포스터 요약: 무선 헬스케어 시스템에서의 에너지 관리. 센서 네트워크에서의 정보 프로세싱 회의록, 페이지 363 {364, 2009년 4월)
Figure pat00008
A. Balasubramanian, R. Mahajan, 및 A. Venkataramani. 와이파이를 이용한 모바일 3g 증강. 모바일 시스템, 애플리케이션, 및 서비스에 관한 국제 컨퍼런스 회의록, 페이지 209~222, 2010년
Figure pat00009
N. Balasubramanian, A. Balasubramanian, 및 A. Venkataramani. 모바일 폰에서의 에너지 소모: 네트워크 애플리케이션들에 대한 측정 연구 및 임플리케이션. 인터넷 측정 컨퍼런스에 관한 ACM SIGCOMM 컨퍼런스 회의록, 페이지 208~293, 2009년
Figure pat00010
S. Consolvo, D. W. McDonald, T. Toscos, M. Y. Chen, J. Froehlich, B. Harrison, P. Klasnja, A. LaMarca, L. LeGrand, R. Libby, I. Smith, 및 J. A. Landay. 와일드에서의 액티비티 센싱: 유비피트 가든의 필드 시도. 컴퓨팅 시스템에서의 휴면 인자들에 관한 SIGCHI 컨퍼런스 회의록, 페이지 1797~1806, 2008년
Figure pat00011
I. Constandache, S. Gaonkar, M. Sayler, R. R. Choudhury, 및 O. Cox. 퍼스널 이동성 프로파일링을 통한 에너지 효율적인 로컬화. 모바일 컴퓨팅, 애플리케이션, 및 서비스에 관한 연간 국제 컨퍼런스 회의록, 2009년
Figure pat00012
E. Cuervo, A. Balasubramanian, D.-k. Cho, A. Wolman, S. Saroiu, R. Chandra, 및 P. Bahl. 마우이: 코드 오프로드를 갖춘 보다 오래 지속되는 스마트폰 제조. 모바일 시스템, 애플리케이션, 및 서비스에 관한 국제 컨퍼런스 회의록, 페이지 49,62 (2010년)
Figure pat00013
D. Cu_, M. Hansen, 및 J. Kang. 어반 센싱: 숲속 밖. 통신 ACM, 51:24{33, 2008년 3월
Figure pat00014
E. Jovanov, A. Milenkovic, C. Otto, 및 P. de Groen. 컴퓨터 지원 물리적 재활을 위한 지능적 모션 센서들의 무선 바디 영역 네트워크. 뉴로엔지니어링 및 재활 저널, 2(1):6, 2005년
Figure pat00015
P. Juang, H. Oki, Y. Wang, M. Martonosi, L. S. Peh, 및 D. Rubenstein. 야생동물 추적을 위한 에너지 효율적인 컴퓨팅: 설계 트레이드오프 및 지브라넷을 갖는 조기 경험. 프로그래밍 언어 및 오퍼레이팅 시스템을 위한 아키텍처 지원에 관한 국제 컨퍼런스 회의록, 페이지 96{107, 2010년
Figure pat00016
M. Li, V. Rozgic and, G. Thatte, S. Lee, A. Emken, M. Annavaram, U. Mitra, D. Spruijt-Metz, and S. Narayanan. Multimodal physical activity recognition by fusing temporal and cepstral information. Neural Systems and Rehabilitation Engineering, IEEE Transactions on, 18(4):369 {380, aug. 2010
Figure pat00017
E. Miluzzo, N. D. Lane, K. Fodor, R. Peterson, H. Lu, M. Musolesi, S. B. Eisenman, X. Zheng, and A. T. Campbell. Sensing meets mobile social networks: the design, implementation and evaluation of the cenceme application. In Proceedings of the ACM conference on Embedded network sensor systems, pages 337{350, 2008
Figure pat00018
A. J. Nicholson and B. D. Noble. Breadcrumbs: forecasting mobile connectivity. In Proceedings of the ACM international conference on Mobile computing and networking, pages 46{57, 2008
Figure pat00019
N. Noury. Ailisa : experimental platforms to evaluate remote care and assistive technologies in gerontology. In Enterprise networking and Computing in Healthcare Industry, 2005. HEALTHCOM 2005. Proceedings of 7th International Workshop on, pages 67 { 72, june 2005
Figure pat00020
J. Paek, J. Kim, and R. Govindan. Energy-effcient rate-adaptive gps-based positioning for smartphones. In Proceedings of the international conference on Mobile systems, applications, and services, pages 299{314, 2010
Figure pat00021
F. Qian, Z. Wang, A. Gerber, Z. Mao, S. Sen, and O. Spatscheck. Profiling resource usage for mobile applications: a cross-layer approach. In Proceedings of the international conference on Mobile systems, applications, and services, pages 321{334, 2011
Figure pat00022
M.-R. Ra, J. Paek, A. B. Sharma, R. Govindan, M. H. Krieger, and M. J. Neely. Energy-delay tradeoffs in smartphone applications. In Proceedings of the international conference on Mobile systems, applications, and services, pages 255{270, 2010
Figure pat00023
M.-R. Ra, A. Sheth, L. Mummert, P. Pillai, D. Wetherall, and R. Govindan. Odessa: enabling interactive perception applications on mobile devices. In Proceedings of the 9th international conference on Mobile systems, applications, and services, pages 43{56, 2011
Figure pat00024
E. Shih, P. Bahl, and M. J. Sinclair. Wake on wireless: an event driven energy saving strategy for battery operated devices. In Proceedings of the annual international conference on Mobile computing and networking, pages 160{171, 2002
Figure pat00025
K. Shilton. Four billion little brothers?: privacy, mobile phones, and ubiquitous data collection. Commun. ACM, 52:48{53, Nov. 2009. [21] M. Shin, P. Tsang, D. Kotz, and C. Cornelius. Deamon: energy-efficcient sensor monitoring. In SECON'09, pages 565{573, 2009
Figure pat00026
D. Siewiorek, A. Smailagic, J. Furukawa, N. Moraveji, K. Reiger, and J. Shaffer. Sensay: A context-aware mobile phone. pages 248{249. IEEE Computer Society, 2003
Figure pat00027
A. Silberstein, R. Braynard, and J. Yang. Constraint chaining: on energy-effcient continuous monitoring in sensor networks. In SIGMOD '06, pages 157{168, 2006
Figure pat00028
J. Sorber, N. Banerjee, M. D. Corner, and S. Rollins. Turducken: hierarchical power management for mobile devices. In Proceedings of the international conference on Mobile systems, applications, and services, pages 261{274, 2005
Figure pat00029
L. Stabellini and J. Zander. Energy efficient detection of intermittent interference in wireless sensor networks. In International Journal of Sensor Networks, 8(1), 2010
Figure pat00030
G. Thatte, M. Li, S. Lee, E. Adar, S. Narayanan, U. Mitra, D. Spruijt-Metz, and M. Annavaram. Knowme: An energy-efficient and multimodal body area sensing system for physical activity monitoring. In To appear in ACM Transactions on Embedded Computing Systems (TECS), 2011
Figure pat00031
M. A. Viredaz, L. S. Brakmo, and W. R. Hamburgen. Energy management on handheld devices. Queue, 1(7):44{52, 2003
Figure pat00032
Y. Wang, B. Krishnamachari, Q. Zhao, and M. Annavaram. Markov-optimal sensing policy for user state estimation in mobile devices. In Proceedings of the International Conference on Information Processing in Sensor Networks, pages 268-278, 2010
Figure pat00033
Y. Wang, J. Lin, M. Annavaram, Q. Jacobson, J. Hong, B. Krishnamachari, and N. Sadeh. A framework of energy effcient mobile sensing for automatic user state recognition. In Proceedings of the International Conference on Mobile Systems, Applications, and Services, pages 179-192, 2009
이동 통신 디바이스(101) 및 에너지 관리 모듈(103)은 소프트웨어(예를 들어, 하나 이상의 오퍼레이팅 시스템, 디바이스 드라이버, 애플리케이션 프로그램, 및/또는 통신 프로그램)를 포함할 수 있다. 소프트웨어가 포함되면 소프트웨어는 프로그래밍 명령어를 포함하고, 연관된 데이터 및 라이브러리를 포함할 수 있다. 포함될 때 프로그래밍 명령어는 여기 기재된 바와 같은 디바이스의 기능 중 하나 이상을 구현하는 하나 이상의 알고리즘을 구현하도록 구성된다. 알고리즘에 의해 수행되는 각 기능은 또한 알고리즘의 기술을 구성한다. 소프트웨어는 하나 이상의 하드 디스크 드라이브, CD, DVD 및/또는 플래시 메모리들과 같은 하나 이상의 비일시적인(non-transitory) 유형의 저장 디바이스에 저장될 수 있다. 소프트웨어는 소스 코드 및/또는 목적 코드 포맷일 수 있다. 연관된 데이터는 임의의 유형의 휘발성 및/또는 비휘발성 메모리에 저장될 수 있다.
논의되었던 컴포넌트, 단계, 특징, 목적, 이득 및 이점은 단지 예시이다. 그들 중 어느 것도, 또한 그들에 관한 어떤 논의도 어떤 방식으로 보호의 범위를 제한하도록 의도되지 않는다. 또한, 많은 다른 실시예가 고려된다. 그들은 더 적은, 추가의, 및/또는 상이한 컴포넌트, 단계, 특징, 목적, 이득 및 이점을 갖는 실시예를 포함한다. 그들은 또한 컴포넌트 및/또는 단계가 다르게 배열 및/또는 순차되는 실시예를 포함한다.
예를 들어, 전체 에너지 관리 모듈은 각 애플리케이션이 그 컴파일에서 선택적으로 사용될 수 있는 사용자-레벨 라이브러리로서 구현될 수 있다. 그러한 경우에 있어서, 라이브러리가 폰 상에 미들웨어로서 포함될 필요는 없다. 오히려, 각 애플리케이션은 그 컴파일 프로세서 동안에 라이브러리를 사용할 것인지의 여부를 결정할 수 있다.
다르게 언급되지 않는 한, 다음의 청구범위에 포함되는, 본 상세한 설명에서 기재된 모든 측정, 값, 정격(rating), 포지션, 크기, 사이즈 및 다른 사양은 대략이고 정확하지 않다. 그들은 그들이 관련되는 기능과 그들이 적용되는 분야에서 관례적인 것과 일관되는 적합한 범위를 갖도록 의도된다.
본 개시에서 인용되었던 모든 아티클, 특허, 특허 출원 및 다른 공보는 참조에 의해 여기에 통합된다.
"~하는 수단"이란 문구는 청구범위에서 사용될 때 설명되었던 대응하는 구조 및 물질, 및 그 동등물을 포함하도록 의도되고 해석되어야 한다. 유사하게, "~하는 단계"는 청구범위에서 사용될 때 설명되었던 대응하는 동작 및 그 동등물을 포함하도록 의도되고 해석되어야 한다. 청구범위에서 그러한 문구의 부재는 청구범위가 그들 대응하는 구조, 물질, 또는 동작 또는 그들의 동등물에 제한되도록 의도되지 않으며 그렇게 해석되지 않아야한다는 것을 의미한다.
보호의 범위는 단지 이제 따라오는 청구범위에 의해서만 제한된다. 그 범위는 구체적인 의미가 기재되는 것을 제외하고, 이러한 상세한 설명과 따라오는 절차 경과(prosecution history)를 감안하고 해석될 때 청구범위에서 사용되는 언어의 일반적인 의미와 일관되는 것만큼 광범위하고, 모든 구조적 기능적 동들물을 포함하도록 의도되고 해석되어야 한다.
제 1 및 제 2 등과 같은 관계형 용어는, 반드시 그들 사이의 어떤 실제 관계 또는 순서를 요구하거나 암시하는 것이 아닌, 단지 하나의 엔티티 또는 동작을 다른 것으로부터 구분하기 위해서만 사용될 수 있다. 용어 "포함한다", "포함하는", 및 그들의 어떤 다른 변형 상세한 설명에서 엘리먼트(element)의 목록과 관련되어 사용될 때 목록은 배타적인 것이 아니고, 다른 엘리먼트들이 포함될 수 있다는 것을 나타내도록 의도된다. 유사하게, "하나" 또는 "하나의"가 선행된 엘리먼트는 동일한 유형의 추가의 엘리먼트의 존재를, 추가의 제약없이, 불가능하게 하지 않는다.
청구범위 중 어느 것도 특허법 섹션 101, 102, 또는 103의 요건을 만족시키지 못하는 특허 대상(subject matter)를 포함하도록 의도되지 않으며, 또한 그러한 방식으로 해석되지 않아야 한다. 이에 의해, 어떤 의도되지 않은 그러한 특허 대상의 범위는 청구되지 않는다. 이러한 단락에서 언급되는 것을 제외하고 언급되거나 예시되었던 어떤 것도, 청구범위에서 나열되는지의 여부와 상관없이, 대중에게 어떠한 컴포넌트, 단계, 특징, 목적, 이득, 이점 및 동등물을 헌신하게 하도록 의도되지 않거나 그렇게 해석되지 않아야 한다.
요약은 독자가 기술적 개시의 본질을 알 수 있도록 돕기 위해 제공된다. 그것은 청구범위의 범위 또는 의미를 해석하거나 제한하는데 사용되지 않을 것이라는 이해와 함께 제출된다. 추가적으로, 상기 상세한 설명에서의 여러 특징은 본 개시를 간소화하기 위해 여러 실시예에서 함께 그룹화된다. 본 개시의 방법은 각 청구항에서 명확하게 기재된 것보다 많은 특징을 요구하도록 청구된 실시예를 요구하는 것처럼 해석되지 않아야 한다. 오히려, 다음의 청구범위가 반영하는 바와 같이, 발명적 특허 대상은 하나의 개시된 실시예의 모든 특징 내에 있다. 그러므로, 다음의 청구범위는 개별적으로 청구된 특허 대상으로서 그 자신에 기초하는 각각의 청구항과 함께 상세한 설명에 통합된다.

Claims (20)

  1. 이동 통신 디바이스 내의 상이하고 선택가능한 컴퓨터 네트워크 인터페이스들 중 하나를 통한 컴퓨터 네트워크 상에서 통신하는, 하나 이상의 애플리케이션 프로그램들을 실행하면서, 상기 이동 통신 디바이스의 에너지 효율을 최대화하기 위한 배터리 전원 이동 통신 디바이스에서의 에너지 관리 모듈에 있어서,
    상기 애플리케이션 프로그램들 중 각각으로부터의 요청(request)들 - 상기 각 요청은 상기 컴퓨터 네트워크를 통한 데이터 통신을 호출(calling)함 - 을 수신하는 프로세스; 및
    상기 수신된 각 요청에 대하여: 상기 요청의 수신시에 동작 가능한 상기 선택가능 컴퓨터 네트워크 인터페이스들 중 어느 것이 상기 요청에 의해 호출되는 상기 데이터 통신을 핸딩(handing)하는 최소한의 양의 에너지를 소비할 것인지를 결정하는 프로세스와; 상기 데이터 통신을 핸딩하는 최소한의 양의 에너지를 소비할 것으로 결정된 상기 컴퓨터 네트워크 인터페이스를 통해, 상기 요청된 데이터 통신이 이루어지게 하는 프로세스;
    를 구현하는 구성을 갖는, 컴퓨터 하드웨어 및 소프트웨어를 포함하는 것인,
    에너지 관리 모듈.
  2. 제1항에 있어서,
    상기 이동 통신 디바이스는 상기 선택가능 컴퓨터 네트워크 인터페이스들 각각의 에너지 소비율(energy consumption rate)을 나타내는 정보를 저장하는 구성을 가진 데이터 스토리지 시스템을 포함하고,
    상기 에너지 관리 모듈은, 상기 선택가능 컴퓨터 네트워크 인터페이스들 중 어느 것이 최소한의 양의 에너지를 소비할 것인지를 결정할 때, 상기 저장된 정보를 검토(examine)하는 구성을 갖는 것인,
    에너지 관리 모듈.
  3. 제1항에 있어서,
    상기 선택가능 컴퓨터 네트워크 인터페이스들 중 어느 것이 최소한의 양의 에너지를 소비할 것인지를 결정하는 프로세스는, 시간에 걸쳐 변화하는 하나 이상의 동작 조건들 중 현재 상태를 고려하는 것인, 에너지 관리 모듈.
  4. 제3항에 있어서,
    상기 동작 조건들은 현재 동작 가능한 컴퓨터 네트워크 인터페이스들 각각의 현재 응답 시간, 이용 가능한 데이터 대역폭, 또는 네트워크 혼잡(congestion)을 나타내는 정보를 포함하는 것인, 에너지 관리 모듈.
  5. 제1항에 있어서,
    상기 이동 통신 디바이스는 오퍼레이팅 시스템(operation system)을 포함하고, 상기 에너지 관리 모듈은 상기 오퍼레이팅 시스템과 상기 애플리케이션 사이에 배치된 미들웨어(middleware)를 포함하는 것인, 에너지 관리 모듈.
  6. 제5항에 있어서,
    상기 미들웨어는 하나 이상의 API(application programming interface)들을 통해 상기 애플리케이션 프로그램들로부터의 데이터 통신을 위한 요청을 수신하는 구성을 갖는 것인, 에너지 관리 모듈.
  7. 제1항에 있어서,
    상기 컴퓨터 네트워크 인터페이스들 중 하나는 셀룰러 네트워크 통신 트랜시버를 포함하는, 에너지 관리 모듈.
  8. 제1항에 있어서,
    상기 컴퓨터 네트워크 인터페이스들 중 하나는 Wi-Fi 네트워크 통신 트랜시버를 포함하는 것인, 에너지 관리 모듈.
  9. 제8항에 있어서,
    상기 컴퓨터 네트워크 인터페이스들 중 하나는 셀룰러 네트워크 통신 트랜시버를 포함하는 것인, 에너지 관리 모듈.
  10. 제1항에 있어서,
    상기 이동 통신 디바이스는 오퍼레이팅 시스템을 포함하고,
    상기 에너지 관리 모듈은,
    상기 애플리케이션 프로그램들 각각으로부터의 요청들 - 상기 각 요청은 데이터 프로세싱을 호출함 - 을 수신하는 프로세스; 및
    각각의 수신된 요청에 대하여: 상기 이동 통신 디바이스 내의 데이터 프로세싱 시스템 또는 상기 이동 통신 디바이스 외측의 데이터 프로세싱 시스템에 의해 실질적으로 수행되는 경우에, 상기 데이터 프로세싱이 최소한의 양의 에너지를 소비하기 쉬운지의 여부를 결정하는 프로세스와; 최소한의 양의 에너지를 소비할 것으로 결정된 위치(location)에서 상기 데이터 프로세싱이 수행되도록 하는 프로세스;
    를 또한 구현하는 구성을 갖는 것인,
    에너지 관리 모듈.
  11. 비일시적(non-transitory), 실감형(tangible), 컴퓨터-판독가능 저장 매체에 있어서,
    이동 통신 디바이스 내의 상이하고 선택가능한 컴퓨터 네트워크 인터페이스들 중 하나를 통한 컴퓨터 네트워크 상에서 통신하는 하나 이상의 애플리케이션 프로그램 및 명령들의 프로그램을 실행하면서, 배터리 전원 이동 통신 디바이스가,
    상기 애플리케이션 프로그램들 각각으로부터 요청들 - 상기 각 요청은 상기 컴퓨터 네트워크 상에서의 데이터 통신을 호출함 - 을 수신하는 프로세스; 및
    각각의 수신된 요청에 대하여: 상기 요청에 의해 호출된 상기 데이터 통신을 핸딩하는 최소한의 양의 에너지를 소비하게 될 요청을 수신한 때에, 선택가능 컴퓨터 네트워크 인터페이스들 중 어느 것이 동작 가능하게 되는지를 결정하는 프로세스와; 상기 데이터 통신을 핸딩하는 최소한의 양의 에너지를 소비할 것으로 결정된 컴퓨터 네트워크 인터페이스를 통해 상기 요청된 데이터 통신이 이루어지게 하는 프로세스;
    를 수행하도록 구성된 명령들의 프로그램을 포함하는 것인,
    비일시적, 실감형, 컴퓨터-판독가능 저장 매체.
  12. 이동 통신 디바이스 내측 또는 외측의 데이터 프로세싱 시스템에 의해 실질적으로 수행될 수 있는 데이터 프로세싱을 요청하는 하나 이상의 애플리케이션 프로그램을 실행하면서, 상기 이동 통신 디바이스의 에너지 효율을 최대화하기 위한 배터리 전원 이동 통신 디바이스 내의 에너지 관리 모듈에 있어서,
    상기 애플리케이션 프로그램들 각각으로부터 요청들 - 상기 각 요청은 데이터 프로세싱을 호출함 - 을 수신하는 프로세스; 및
    각각의 수신된 요청에 대하여, 그리고 각 요청의 수신에 후속하는 사용자 개입(user intervention)없이 자동적으로: 상기 이동 통신 디바이스의 내측 또는 외측의 데이터 프로세싱 시스템에 의해 실질적으로 수행되는 경우에, 상기 데이터 프로세싱이 최소한의 양의 에너지를 소비할 것인지의 여부를 결정하는 프로세스와, 최소한의 양의 에너지를 소비할 것으로 결정된 데이터 프로세싱 시스템에 의해 데이터 프로세싱이 실질적으로 수행되도록 하는 프로세스;
    를 구현하는 구성을 가진, 컴퓨터 하드웨어 및 소프트웨어를 포함하는 것인,
    에너지 관리 모듈.
  13. 제12항에 있어서,
    상기 이동 통신 디바이스는 이동 통신 디바이스의 내측 및 외측에 있어서의 데이터 프로세싱 수행의 에너지 소비율을 나타내는 정보를 저장하도록 구성된 데이터 저장 시스템을 포함하고,
    상기 에너지 관리 모듈은 상기 이동 통신 디바이스의 내측 또는 외측의 데이터 프로세싱 시스템에 의해 실질적으로 수행되는 경우에, 상기 데이터 프로세싱이 최소한의 양의 에너지를 소비할 것인지의 여부를 결정할 때, 상기 저장된 정보를 검토하는 구성을 갖는 것인,
    에너지 관리 모듈.
  14. 제12항에 있어서,
    상기 저장된 정보는,
    상기 이동 통신 디바이스 내의 데이터 프로세싱 시스템의 에너지 소비율과;
    상기 이동 통신 디바이스의 외측의 데이터 프로세싱 시스템과 통신하는 상기 이동 통신 디바이스 내의 트랜시버의 에너지 소비율;
    에 관한 정보를 포함하는 것인,
    에너지 관리 모듈.
  15. 제13항에 있어서,
    이동 통신 디바이스의 내측 또는 외측의 데이터 프로세싱 시스템에 의해 실질적으로 수행되는 경우에 상기 데이터 프로세싱이 최소한의 양의 에너지를 소비할 것인지의 여부를 결정하는 프로세스는 시간에 걸쳐 변화하는 하나 이상의 동작 조건들 중 현재 상태를 고려하는 것인, 에너지 관리 모듈.
  16. 제15항에 있어서,
    상기 동작 조건들은 상기 이동 통신 디바이스의 외측의 데이터 프로세싱 시스템의 현재 응답 시간을 나타내는 정보를 포함하는 것인, 에너지 관리 모듈.
  17. 제12항에 있어서,
    상기 이동 통신 디바이스는 오퍼레이팅 시스템을 포함하고, 상기 에너지 관리 모듈은 상기 오퍼레이팅 시스템과 상기 애플리케이션 사이애 배치된 미들웨어를 포함하는 것인, 에너지 관리 모듈.
  18. 제17항에 있어서,
    상기 미들웨어는 하나 이상의 API들을 통해 상기 애플리케이션 프로그램들로부터 데이터 통신에 대한 요청을 수신하는 구성을 갖는 것인, 에너지 관리 모듈.
  19. 제12항에 있어서,
    상기 이동 통신 디바이스 외측의 데이터 프로세싱 시스템은 인터넷 서버 내에 배치되어 있는 것인, 에너지 관리 모듈.
  20. 비일시적(non-transitory), 실감형(tangible), 컴퓨터-판독가능 저장 매체에 있어서,
    이동 통신 디바이스의 내측 또는 외측의 데이터 프로세싱 시스템에 의해 실질적으로 수행될 수 있는 데이터 프로세싱을 요청하는 하나 이상의 애플리케이션 프로그램들 및 명령들의 프로그램을 실행하는 배터리 전원 이동 통신 디바이스가,
    상기 애플리케이션 프로그램들 각각으로부터 요청들 - 상기 각 요청은 상기 컴퓨터 네트워크 상에서의 데이터 통신을 호출함 - 을 수신하는 프로세스; 및
    각각의 수신된 요청에 대하여: 상기 이동 통신 디바이스의 내측 또는 외측의 데이터 프로세싱 시스템에 의해 실질적으로 수행되는 경우에, 상기 데이터 프로세싱이 최소한의 양의 에너지를 소비할 것인지의 여부를 결정하는 프로세스와; 최소한의 양의 에너지를 소비할 것으로 결정된 상기 데이터 프로세싱 시스템에 의해 상기 데이터 프로세싱이 실질적으로 수행되도록 하는 프로세스;
    를 수행하도록 구성된, 명령들의 프로그램을 포함하는 것인,
    비일시적(non-transitory), 실감형(tangible), 컴퓨터-판독가능 저장 매체.
KR1020120121631A 2012-04-11 2012-10-30 모바일 애플리케이션에 의해 요청된 서비스를 위한 가장 에너지 효율적인 방법의 실시간 선택 KR102000295B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261622981P 2012-04-11 2012-04-11
US61/622,981 2012-04-11

Publications (2)

Publication Number Publication Date
KR20130115070A true KR20130115070A (ko) 2013-10-21
KR102000295B1 KR102000295B1 (ko) 2019-10-01

Family

ID=49326180

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120121631A KR102000295B1 (ko) 2012-04-11 2012-10-30 모바일 애플리케이션에 의해 요청된 서비스를 위한 가장 에너지 효율적인 방법의 실시간 선택

Country Status (2)

Country Link
US (1) US9008735B2 (ko)
KR (1) KR102000295B1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102033077B1 (ko) 2013-08-07 2019-10-16 나이키 이노베이트 씨.브이. 제스처 인식 및 전력 관리를 갖는 손목 착용 운동 디바이스
US20150186073A1 (en) * 2013-12-30 2015-07-02 Lyve Minds, Inc. Integration of a device with a storage network
EP3230854A4 (en) * 2014-12-10 2018-08-01 Intel Corporation Fitness sensor with low power attributes in sensor hub
US9696782B2 (en) 2015-02-09 2017-07-04 Microsoft Technology Licensing, Llc Battery parameter-based power management for suppressing power spikes
US10158148B2 (en) 2015-02-18 2018-12-18 Microsoft Technology Licensing, Llc Dynamically changing internal state of a battery
US9748765B2 (en) 2015-02-26 2017-08-29 Microsoft Technology Licensing, Llc Load allocation for multi-battery devices
US10205731B2 (en) 2015-09-25 2019-02-12 Microsoft Technology Licensing, Llc Contextually-aware location sharing services
US9939862B2 (en) 2015-11-13 2018-04-10 Microsoft Technology Licensing, Llc Latency-based energy storage device selection
US10061366B2 (en) 2015-11-17 2018-08-28 Microsoft Technology Licensing, Llc Schedule-based energy storage device selection
US10353473B2 (en) * 2015-11-19 2019-07-16 International Business Machines Corporation Client device motion control via a video feed
US9793570B2 (en) 2015-12-04 2017-10-17 Microsoft Technology Licensing, Llc Shared electrode battery
RU2646128C2 (ru) * 2016-04-13 2018-03-01 Общество с ограниченной ответственностью "Альтомедика" Радиоканальная система кардиомониторинга и предупреждения критических ситуаций
US10317236B2 (en) 2016-08-29 2019-06-11 International Business Machines Corporation Dynamic GPS location update
US10281589B2 (en) 2016-08-29 2019-05-07 International Business Machines Corporation Dynamic GPS location update
KR102581310B1 (ko) 2016-10-25 2023-09-22 삼성전자 주식회사 무선 통신 시스템에서 접속 네트워크를 선택하는 방법 및 장치
JP6901702B2 (ja) * 2017-06-20 2021-07-14 カシオ計算機株式会社 情報処理装置、情報処理方法、プログラム、及び情報処理システム
US20200195731A1 (en) * 2018-12-12 2020-06-18 Sichuan University Lccs system and method for executing computation offloading
US20230385697A1 (en) * 2022-04-26 2023-11-30 Juniper Networks, Inc. Self-learning green networks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000358049A (ja) * 1999-06-15 2000-12-26 Sony Corp バスシステム用機器およびバスシステム装置
US20040192352A1 (en) * 2003-03-25 2004-09-30 Nokia Corporation Energy efficient object location reporting system
KR20040105318A (ko) * 2003-06-05 2004-12-16 주식회사 우진넷 독립적 네트워크 제어 장치 및 방법
US20090241122A1 (en) * 2008-03-18 2009-09-24 International Business Machines Corporation Selecting a number of processing resources to run an application effectively while saving power
US20090278738A1 (en) * 2008-05-12 2009-11-12 Qualcomm Incorporated Gps power savings using low power sensors

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4338842B2 (ja) 1998-09-18 2009-10-07 パナソニック株式会社 電力制御装置、電力制御方法、及び記録媒体
US6975941B1 (en) 2002-04-24 2005-12-13 Chung Lau Method and apparatus for intelligent acquisition of position information
CN100403052C (zh) 2002-09-06 2008-07-16 诺基亚公司 用于估计移动设备的位置的方法和系统
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
JP3678733B2 (ja) 2003-10-03 2005-08-03 株式会社エヌ・ティ・ティ・ドコモ 携帯通信端末及び位置情報提供方法
US7227847B2 (en) 2004-03-11 2007-06-05 Ixi Mobile (R&D) Ltd. Power management system and method for a wireless communications device
US20070208956A1 (en) 2004-11-19 2007-09-06 Motorola, Inc. Energy efficient inter-processor management method and system
US7607032B1 (en) 2006-07-19 2009-10-20 Rockwell Collins, Inc. Power manageable scalable distributed multiple independent levels of security (MILS) computing platform
US7853812B2 (en) 2007-02-07 2010-12-14 International Business Machines Corporation Reducing power usage in a software application
US8081963B2 (en) 2008-02-12 2011-12-20 Microsoft Corporation Utilizing mobile device functionality from remote computers
US8140830B2 (en) 2008-05-22 2012-03-20 International Business Machines Corporation Structural power reduction in multithreaded processor
JP2010072757A (ja) 2008-09-16 2010-04-02 Ricoh Co Ltd 機器管理装置、機器管理システム、機器管理方法、機器管理プログラム、及びそのプログラムを記録した記録媒体
US8862786B2 (en) 2009-08-31 2014-10-14 International Business Machines Corporation Program execution with improved power efficiency
US8704713B2 (en) 2010-01-22 2014-04-22 Qualcomm Incorporated Methods and apparatuses for use in identifying wireless transmitting devices for use in estimating a location of a mobile device
US9542231B2 (en) 2010-04-13 2017-01-10 Et International, Inc. Efficient execution of parallel computer programs
EP2390758A1 (en) 2010-05-25 2011-11-30 Samsung Electronics Co., Ltd. Method and apparatus for managing an application being executed in a portable terminal
US20130136164A1 (en) * 2011-11-27 2013-05-30 HT mMobile Inc. Dummy paging channel detection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000358049A (ja) * 1999-06-15 2000-12-26 Sony Corp バスシステム用機器およびバスシステム装置
US20040192352A1 (en) * 2003-03-25 2004-09-30 Nokia Corporation Energy efficient object location reporting system
KR20040105318A (ko) * 2003-06-05 2004-12-16 주식회사 우진넷 독립적 네트워크 제어 장치 및 방법
US20090241122A1 (en) * 2008-03-18 2009-09-24 International Business Machines Corporation Selecting a number of processing resources to run an application effectively while saving power
US20090278738A1 (en) * 2008-05-12 2009-11-12 Qualcomm Incorporated Gps power savings using low power sensors

Also Published As

Publication number Publication date
US9008735B2 (en) 2015-04-14
KR102000295B1 (ko) 2019-10-01
US20130275794A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
KR102000295B1 (ko) 모바일 애플리케이션에 의해 요청된 서비스를 위한 가장 에너지 효율적인 방법의 실시간 선택
Neto et al. ULOOF: A user level online offloading framework for mobile edge computing
US8532670B2 (en) Apparatus, method, and system for sensing suppression for location-based applications
Zhang et al. SensTrack: Energy-efficient location tracking with smartphone sensors
Rahmati et al. Context-based network estimation for energy-efficient ubiquitous wireless connectivity
Xia et al. The power of smartphones
CN105144118A (zh) 应用测试和分析
Ma et al. Energy efficiency on location based applications in mobile cloud computing: a survey
Pérez-Torres et al. Power management techniques in smartphone-based mobility sensing systems: A survey
Khan et al. Sensors are power hungry: An investigation of smartphone sensors impact on battery power from lifelogging perspective
Ahnn et al. mhealthmon: Toward energy-efficient and distributed mobile health monitoring using parallel offloading
Lee et al. Wireless body area networks: Where does energy go?
Balan et al. The challenge of continuous mobile context sensing
Wang et al. Energy efficiency on location based applications in mobile cloud computing: a survey
EP3523607B1 (en) System and method for compressing high fidelity motion data for transmission over a limited bandwidth network
Schirmer et al. Sen ST*: Approaches for Reducing the Energy Consumption of Smartphone-Based Context Recognition
Brouwers et al. Dwelling in the canyons: Dwelling detection in urban environments using gps, wi-fi, and geolocation
Obeid et al. A survey on efficient power consumption in adaptive wireless sensor networks
US11343648B2 (en) Systems and methods for location tracking using dynamically generated geo data
Mehdi Smart mobile crowdsensing for tinnitus research: student research abstract
Mahmud et al. Power profiling of context aware systems: a contemporary analysis and framework for power conservation
Varma et al. Intelligent scanning period dilation based Wi-Fi fingerprinting for energy efficient indoor positioning in IoT applications
Loomba et al. Energy-aware collaborative sensing for multiple applications in mobile cloud computing
Talavera et al. An Energy-aware IoT Gateway, with continuous processing of sensor data
Li et al. Low-power pervasive Wi-Fi connectivity using WiScan

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant