JP2014526731A - 起動パターン管理 - Google Patents

起動パターン管理 Download PDF

Info

Publication number
JP2014526731A
JP2014526731A JP2014529679A JP2014529679A JP2014526731A JP 2014526731 A JP2014526731 A JP 2014526731A JP 2014529679 A JP2014529679 A JP 2014529679A JP 2014529679 A JP2014529679 A JP 2014529679A JP 2014526731 A JP2014526731 A JP 2014526731A
Authority
JP
Japan
Prior art keywords
network
application
computing device
network interface
manager module
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2014529679A
Other languages
English (en)
Other versions
JP6385276B2 (ja
Inventor
ジー. セイラー,デイヴィッド
シュリニヴァサン,カマラヴァサン
ジェイ. リッツ,アンドリュー
ラグー ガッタ,シュリニヴァス
エヌ. エルトゥガイ,オスマン
アール. ガッデホスル,プールナナンダ
エー. アニプコ,ドミトリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014526731A publication Critical patent/JP2014526731A/ja
Application granted granted Critical
Publication of JP6385276B2 publication Critical patent/JP6385276B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • 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/0225Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
    • H04W52/0229Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal where the received signal is a wanted signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • 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/0264Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by selectively disabling software applications
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Power Sources (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Telephonic Communication Services (AREA)

Abstract

起動パターン管理技術について説明する。1つまたは複数の実施態様において、コンピューティングデバイスのネットワーク・インターフェイス・デバイスによって受信されるネットワークトラフィックはモニタリングされ、トラフィックパターンは、モニタリングされたネットワークトラフィックにおいて認識される。コンピューティングデバイスのアプリケーションは、認識したトラフィックパターンに対応して識別され、この識別に応じて、識別されたアプリケーションの少なくとも一部が起動する。

Description

本発明は、起動パターンの管理に関する。
ユーザは、ネットワーク利用のために構成することが可能な、かつてないほど多くのさまざまなコンピューティングデバイスにアクセスする。例えば、ユーザは、デスクトップコンピュータ、携帯電話、およびタブレットコンピュータなどと相互通信して、有線もしくは無線ネットワークを介して相互通信することができる。
しかしながら、このようなネットワークにアクセスするために使用された従来技術は、しばしば非効率的であり、したがって、電力、処理、およびネットワークリソースを含む、相当な量のリソースを消費する可能性があった。したがって、これらの従来技術では、デバイスのユーザが利用可能な機能に限界があった。
起動パターン管理技術について説明する。1つまたは複数の実施態様において、コンピューティングデバイスのネットワーク・インターフェイス・デバイスによって受信されるネットワークトラフィックはモニタリングされ、トラフィックパターンは、モニタリングされたネットワークトラフィックにおいて認識される。コンピューティングデバイスのアプリケーションは、認識したトラフィックパターンに対応して識別され、この識別に応じて、識別されたアプリケーションの少なくとも一部が起動する。
1つまたは複数の実施態様において、トラフィックパターンは、コンピューティングデバイスで実行するために構成されたアプリケーションに対応するよう登録される。アプリケーションが一時停止状態である間のネットワークトラフィックにおけるトラフィックパターンの認識に応じて、一時停止状態から動作状態へ、アプリケーションの少なくとも一部の遷移がトリガされる。
1つまたは複数の実施態様において、1つまたは複数のコンピュータ読取り可能ストレージ媒体は、コンピューティングデバイスによる実行に応じて、コンピューティングデバイスのネットワーク・インターフェイス・デバイスを介して受信された着信パケットの識別に応答して、一時停止中のアプリケーションの少なくとも一部を起動するための技術をサポートするよう構成されたオペレーティングシステムを、コンピューティングデバイスに実施させる、コンピュータ読取り可能ストレージ媒体に格納された命令を備える。
ネットワーク・インターフェイス・デバイスのオペレーティングシステム管理についてもまた説明する。1つまたは複数の実施態様において、オペレーティングシステムによって、コンピューティングデバイスの1つまたは複数のアプリケーションと関連したネットワークトラフィックが完了したことが判断される。その判断に応じて、ネットワーク・インターフェイス・デバイスを、オペレーティングシステムによって、ネットワーク・インターフェイス・デバイスの電力消費を抑えるためのモードに遷移させる。
1つまたは複数の実施態様において、ネットワーク・インターフェイス・デバイスが高電力モードである場合、ネットワーク・インターフェイス・デバイスは、オペレーティングシステムによってコンピューティングデバイスの1つまたは複数のアプリケーションに対し利用可能になる。ネットワーク・インターフェイス・デバイスが低電力モードである場合、ネットワーク・インターフェイス・デバイスは、オペレーティングシステムによってコンピューティングデバイスの1つまたは複数のアプリケーションに対し利用不可能になる。
1つまたは複数の実施態様において、1つまたは複数のコンピュータ読取り可能ストレージ媒体は、コンピューティングデバイスによる実行に応じてコンピューティングデバイスの1つまたは複数のアプリケーションによって、電力消費を抑えるためのモードにあるネットワーク・インターフェイス・デバイスへのアクセスを制限する技術をサポートするよう構成されたオペレーティングシステムをコンピューティングデバイスに実施させる、コンピュータ読取り可能ストレージ媒体に格納された命令を備え、ネットワーク・インターフェイス・デバイスは、プッシュ通知の受信に応答してそのモードから起動するよう構成される。
キープアライブ管理(keep alive management)技術についても説明する。1つまたは複数の実施態様において、キープアライブ間隔は、コンピューティングデバイスのオペレーティングシステムによって算出される。キープアライブ間隔を使用して、コンピューティングデバイスの1つまたは複数のアプリケーションとネットワークとの間の、1つまたは複数の通知チャネルを維持する。
1つまたは複数の実施態様において、ネットワークを介して各エンドポイントを有する通知チャネルを維持するよう指定された1つまたは複数のサーバタイムアウト間隔について、コンピューティングデバイスで実行可能な複数のアプリケーションのそれぞれに対して判断される。キープアライブ間隔は、複数のアプリケーションのそれぞれに対する1つまたは複数のサーバタイムアウト間隔から算出される。キープアライブ間隔を使用して、通知チャネルを維持するために指定されたネットワーク・インターフェイス・デバイスを起動する。
1つまたは複数の実施態様において、1つまたは複数のコンピュータ読取り可能ストレージ媒体は、コンピューティングデバイスによる実行に応じて、ネットワークを介してコンピューティングデバイスで実行可能な複数のアプリケーションと1つまたは複数のエンドポイントのそれぞれとの間で通知チャネルを維持するために、キープアライブ間隔を使用するよう構成されたオペレーティングシステムをコンピューティングデバイスに実施させる、コンピュータ実行可能命令を備え、キープアライブ間隔は、ネットワークの1つまたは複数の中継デバイスの1つまたは複数のネットワークタイムアウト間隔と、1つまたは複数のアプリケーションがネットワークを介して通信する各エンドポイントの1つまたは複数のサーバタイムアウト間隔とに基づいて算出される。
この発明の概要は、発明を実施するための形態において以下でさらに説明される、コンセプトの一部を簡素化して導入するものである。この発明の概要は、クレームに記載された対象の主要な特徴または重要な特徴を特定することを意図せず、クレームに記載された対象の範囲決定する際の補助として使用されることを意図するものでもない。
添付図面を参照して、詳細な説明を説明する。図面において、参照番号の最も左側の桁により、参照番号が最初に現れる図面を識別する。説明および図面において、異なる例示で同じ参照番号を用いる場合、同様または同一の項目を示すことができる。
ネットワーク・ブローカ・モジュールを使用して、コンピューティングデバイスの1つまたは複数のアプリケーションのネットワーク通信を管理するよう動作可能な例示的実施態様における環境の図である。 起動パターン・マネージャ・モジュールを使用する場合の、図1のネットワーク・ブローカ・モジュールをより詳細に示す例示的実施態様におけるシステムの図である。 トラフィックパターンの認識をアプリケーションの少なくとも一部を一時停止状態から動作状態に遷移するために使用する、例示的実施態様における手順を示すフロー図である。 トラフィックパターンの認識を使用してアプリケーションの少なくとも一部を起動する、例示的実施態様における他の手順を示すフロー図である。 ネットワーク・デバイス・マネージャ・モジュールを使用する場合の、図1のネットワーク・ブローカ・モジュールをより詳細に示す例示的実施態様におけるシステム図である。 ネットワーク・デバイス・マネージャ・モジュールの例示的動作を示す例示的実施態様における他のシステムの図である。 ネットワーク・インターフェイス・デバイスの沈黙遷移を示す例示的実施態様である。 ネットワーク・インターフェイス・デバイスの動作遷移を示す例示的実施態様である。 システムスリープ遷移を示す例示的実施態様である。 システム再開遷移を示す例示的実施態様である。 ネットワークトラフィックが完了し、ネットワーク・インターフェイス・デバイスがオペレーティングシステムによって低電力モードに遷移したことを判断する例示的実施態様における手順を示すフロー図である。 低電力モードの間、ネットワーク・インターフェイス・デバイスをアプリケーション利用に対し使用不可能にさせる例示的実施態様における手順を示すフロー図である。 キープ・アライブ・マネージャ・モジュールを使用する場合の、図1のネットワーク・ブローカ・モジュールをより詳細に示す例示的実施態様におけるシステムの図である。 図13のキープアライブ間隔を算出および調整する例示的実施態様を示す例示的実施態様におけるシステムの図である。 キープアライブ間隔を算出して、1つまたは複数の通知チャネルを維持するために使用する例示的実施態様における手順である。 キープアライブ間隔を算出して、アプリケーションからキープアライブ通信をバッチ処理する例示的実施態様における手順である。 図1のネットワーク接続ブローカの実施例を示すシステムである。 図1のネットワーク接続ブローカの実施例を示すシステムである。 図1を参照して説明するようなコンピューティングデバイスを含む例示的システムである。 本明細書で説明する技術の実施形態を実現するための図1、図2、図5から図10、図13、図14、および図17から図19を参照して説明するような任意の種類のコンピューティングデバイスとして実現することが可能である例示的デバイスのさまざまな構成要素である。
ネットワーク接続されたアプリケーションは、典型的に、「最新の状態」であるために、長期接続を維持する能力を必要とする。しかしながら、従来技術では、このことは、可到達性を保証するために接続されたネットワーク・インターフェイス・デバイス(例えば、ネットワーク・インターフェイス・カード)を維持することを犠牲にしている可能性があり、コンピューティングデバイスのリソース使用に悪影響を及ぼす可能性がある。例えば、従来技術は、コンピューティングデバイスのアプリケーションおよびサービスが、ネットワーク・インターフェイス・デバイスに自由にアクセスすることを可能にする。したがって、オペレーティングシステムは、典型的に、ネットワーク・インターフェイス・デバイスがアプリケーションによって使用されている場合、任意の時点で起動しなかった。このことは、アイドル状態が検出されるまで、デバイスが低電力モードに移行するのを妨害する可能性があり、30秒かかる可能性があるため、電源装置、例えば、バッテリ寿命に重大な影響を及ぼす可能性がある。
それに応じて、本明細書で説明する技術では、ネットワーク・ブローカ・モジュールと呼ばれるオペレーティング・システム・コンポーネントを使用して、コンピューティングデバイスのネットワーク・インターフェイス・デバイスの使用を調整することができる。例えば、ネットワーク・インターフェイス・デバイスは、起動パターン・マネージャ・モジュールを使用して、コンピューティングデバイスのどのアプリケーションを、必要であれば、ネットワークトラフィックの受信に応じて起動させるかを判断することができる。起動パターン・マネージャ・モジュールは、例えば、事前登録パターンがネットワークトラフィックに存在するかどうかを検出し、そうである場合、対応するアプリケーションを起動することができる。このようにして、起動パターン・マネージャ・モジュールは、ネットワーク接続を活用するアプリケーションが一時停止状態にありながらも、「常にオンラインで、常に接続状態にある(always on/always connected)」ユーザ体験を提供することができる。起動パターン・マネージャ・モジュールのさらなる説明は、図2から図4に関連して見ることができる。
他の例において、ネットワーク・ブローカ・モジュールは、ネットワーク・デバイス・マネージャ・モジュールの機能を組み込むことができる。ネットワーク・デバイス・マネージャ・モジュールを使用して、例えば、コールバックをモニタリングすることによって、コンピューティングデバイスのアプリケーションと関係するネットワークトラフィックが完了したとモジュールが判断した場合、ネットワーク・インターフェイス・デバイスを低電力モードにすることができる。したがって、オペレーティングシステムのネットワーク・デバイス・マネージャ・モジュール126は、ネットワーク・インターフェイス・デバイスとアプリケーションとの間の中継ぎとして位置付けることができる。中継ぎとして、オペレーティングシステムは、ネットワーキング活動の情報を有することができ、したがって、ネットワーク・インターフェイス・デバイスが低電力モード、例えば、ネットワーク沈黙モード(quiet mode)に入ることができるかどうかを、確定的に識別することができる。ネットワーク・デバイス・マネージャ・モジュールのさらなる説明は、図5から図12に関連して見ることができる。
さらなる例において、ネットワーク・ブローカ・モジュールは、キープ・アライブ・マネージャ・モジュールの機能を組み込むことができる。キープ・アライブ・マネージャ・モジュールを使用して、アプリケーションが一時停止状態にある間、ネットワーク接続(例えば、通知チャネル)を「キープアライブする」ことができるため、アプリケーションと関連したリソースの使用を少なくすることができる。さらに、キープ・アライブ・マネージャ・モジュールを使用して、ネットワーク・インターフェイス・デバイスを低電力モードにすることができ、ネットワーク接続を維持するために「起動する」ことができるため、ネットワーク・インターフェイス・デバイス自体と関連したリソースの使用を少なくすることができる。キープアライブ間隔を動的に判断するなどの、さまざまな他の機能もまた、キープ・アライブ・モジュールによって組み込むことができ、これらのさらなる説明は、図13から図18に関して見ることができる。
以下の説明において、本明細書で説明する技術を使用することができる例示的環境について、最初に説明する。次いで、例示セクションを使用して、起動パターン・マネージャ・モジュール、ネットワーク・デバイス・マネージャ・モジュール、およびキープ・アライブ・マネージャ・モジュールの例示的機能を説明する。次いで、上記したセクションから機能を組み込むことができる実施例について説明する。本明細書で説明する技術は、例示的環境における性能に限定されず、例示的環境は、例示的技術の実行に限定されないことは、容易に理解されるであろう。
例示的環境
図1は、本明細書で説明するネットワークブローカ技術を使用するよう動作可能である例示的実施態様における環境100の図である。図示した環境100は、処理システム104(例えば、1つまたは複数のプロセッサ、機能ブロック)、メモリ106、電源108、表示デバイス110、および、ネットワーク114を介してネットワーク接続(例えば、通知チャネル)を提供するよう構成された1つまたは複数のネットワーク・インターフェイス・デバイス112を備えるコンピューティングデバイス102を含む。以下の説明において、示される構成要素は、1つまたは複数の構成要素を表すことができ、したがって、単一または複数の形態の構成要素、例えば、単一のネットワーク・インターフェイス・デバイス112および複数のネットワーク・インターフェイス・デバイス112などを区別なく参照することができる。
コンピューティングデバイス102は、さまざまな方法で構成することができる。例えば、コンピューティングデバイス102は、デスクトップコンピュータ、モバイルステーション、エンターテインメント機器、表示デバイスに通信可能に結合されたセット・トップ・ボックス、無線電話、およびゲーム機などの、ネットワーク114上で通信することが可能なコンピュータとして構成してもよい。したがって、コンピューティングデバイス102は、相当なメモリならびにプロセッサリソースを有するフル・リソース・デバイス(例えば、パーソナルコンピュータ、ゲーム機)から、限られたメモリ及び/又はプロセッシングリソースを有する低リソースデバイス(例えば、従来型のセット・トップ・ボックス、携帯型ゲーム機)にまで及ぶことができる。さらに、単一のコンピューティングデバイス102が示されるが、コンピューティングデバイス102は、処理を実行するためにビジネスで使用される複数のサーバ(例えば、サーバファーム)、遠隔制御ならびにセット・トップ・ボックスの組み合わせ、および画像取得デバイスならびにゲーム機などの、複数の異なるデバイスで表すことができる。
ネットワーク114は、インターネットとして図示されているが、ネットワークは、多種多様な構成を想定することができる。例えば、ネットワーク114は、広域ネットワーク(WAN)、構内ネットワーク(LAN)、またはイントラネットを含むことができるため、ネットワーク・インターフェイス・デバイス112は、有線接続を介して、これらのネットワークにアクセスするよう構成することができる。ネットワーク114は、また、無線広域ネットワーク(WWAN)、無線構内ネットワーク(WLAN)、およびセルラネットワーク(例えば、3G、4G、LTEネットワーク)などの無線技術を介してアクセスするよう構成することができる。ネットワーク・インターフェイス・デバイス112は、物理的デバイスとしても、仮想プライベートネットワークおよびトンネリングなどをサポートするために使用されるような仮想ネットワークデバイスとしても表すことができる。したがって、単一のネットワーク114を示すが、ネットワーク114は、複数のネットワークを表すことができる。
コンピューティングデバイス102は、さらに、オペレーティングシステム116を含むものとして図示される。オペレーティングシステム116は、コンピューティングデバイス102で実行可能なアプリケーション118、120に、コンピューティングデバイス102の基礎となる機能を抽出するよう構成される。例えば、オペレーティングシステム116は、コンピューティングデバイス102の処理システム104、メモリ106、電源108(例えば、バッテリまたは有線接続)、及び/又は表示デバイス110機能を抽出することができ、アプリケーション118、120は、この基礎となる機能を実行する「方法」を知ることなく書くことができる。アプリケーション118、120は、例えば、表示デバイス112によって表現および表示されるデータを、この表現をどのように実行することができるかを理解することなく、オペレーティングシステム116に提供することができる。
同様に、オペレーティングシステム116は、また、ネットワーク・ブローカ・モジュール122の使用により、アプリケーション118、120へのネットワーク接続機能を抽出することができる。ネットワーク・ブローカ・モジュール122はアプリケーション118、120によるネットワーク・インターフェイス・デバイス112の使用およびネットワーク・インターフェイス・デバイス112自身の動作を管理するための機能を表す。
すでに述べたように、ネットワーク・ブローカ・モジュール122は、さまざまな異なる機能を組み込み、この管理を行うことができる。例えば、ネットワーク・ブローカ・モジュール112は、特定のトラフィックパターンを識別すると、アプリケーション118、120の1つまたは複数を起動するよう構成された、起動パターン・マネージャ・モジュール124を組み込むことができる。例えば、特定のトラフィックパターンは、アプリケーションによって予め登録することができるので、パターンが認識されると、起動パターン・マネージャ・モジュール124は、アプリケーション118、120のそれぞれを含む、コンピューティングデバイス102全体を起動させた従来技術とは対照的に、アプリケーション118、120の対応する1つを起動することができる。起動パターン・マネージャ・モジュール124のさらなる説明は、図2から図4に関連して見ることができる。
ネットワーク・ブローカ・モジュール122は、また、ネットワーク・デバイス・マネージャ・モジュール126を含むものとして図示される。上記のように、このモジュールは、ネットワーク・インターフェイス・デバイス112の動作、およびコンピューティングデバイス102のアプリケーション118、120に対するネットワーク・インターフェイス・デバイス112の可用性を管理するための機能を表す。これには、アプリケーション118、120と関連するネットワークトラフィックが完了したとネットワーク・デバイス・マネージャ・モジュール126が判断した場合、電力消費を抑えるためのモードにネットワーク・インターフェイス・デバイス112を入れることを含むことができる。
さらに、ネットワーク・デバイス・マネージャ・モジュール126は、このモードにある間、ネットワーク・インターフェイス・デバイス112を、アプリケーション118、120に対して利用不可能にすることができ、アプリケーション118、120は、ネットワーク・インターフェイス・デバイス112を必要以上に起動することがない。このようにして、ネットワーク・デバイス・マネージャ・モジュール126は、アプリケーション118、120からネットワーク・インターフェイス・デバイスに「ブラックホール(”black hole”)」通信する可能性がある。ネットワーク・デバイス・マネージャ・モジュール126についてのさらなる説明は、図5から図12に関連して開始する以下の説明における対応するセクションに関連して見ることができる。
ネットワーク・ブローカ・モジュール122はさらに、キープ・アライブ・マネージャ・モジュール128を含むものとして図示される。キープ・アライブ・マネージャ・モジュール128は、一時停止状態にあるアプリケーション118、120に対してさえも、ネットワーク接続を維持するために使用することができる機能を表す。例えば、キープ・アライブ・マネージャ・モジュール128は、ネットワークサービスの1つまたは複数のサーバと通信して、ネットワーク114上で、サービスとコンピューティングデバイス102との間でネットワーク接続をアクティブにし続けることができる。キープ・アライブ・マネージャ・モジュール128は、また、この動作を行うべき間隔を動的に判断するための機能を含むことができ、したがって、さらに、コンピューティングデバイス102のリソースを節約することができる。キープ・アライブ・マネージャ・モジュール128についてのさらなる説明は、図13から図18に関連して開始する以下の説明における対応するセクションに関連して見ることができる。
ネットワーク・ブローカ・モジュール122ならびに対応する起動パターン・マネージャ・モジュール124、ネットワーク・デバイス・マネージャ・モジュール126、およびキープ・アライブ・マネージャ・モジュール128が、オペレーティングシステム116の一部として図示されるが、この機能は、さまざまな異なる構成要素によって実現することが可能であることは、容易に理解されるであろう。そのような構成要素の例には、スタンドアロンアプリケーション、およびサードパーティ製プラグインなどがある。
一般に、本明細書で説明するいずれの機能も、ソフトウェア、ファームウェア、ハードウェア(例えば、固定ロジック回路)、またはそれらの実施態様の組み合わせを使用して実現することができる。本明細書で使用する「モジュール」、「機能」、および「ロジック」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを意味する。ソフトウェア実施の場合、モジュール、機能、またはロジックは、プロセッサ(例えば、単一CPUまたは複数CPU)で実行される場合、特定のタスクを実行するプログラムコードを意味する。プログラムコードは、1つまたは複数のコンピュータ読取り可能メモリデバイスに格納することができる。以下で説明するネットワークブローカ技術の特徴は、プラットフォーム独立型であり、本技術は、さまざまなプロセッサを有するさまざまな市販のコンピューティングプラットフォームで実現することができることを意味する。
例えば、コンピューティングデバイス102は、また、コンピューティングデバイス102のハードウェアに、例えば、プロセッサ、および機能ブロックなどの動作を実行させる構成要素(例えば、ソフトウェア)を含むことができる。例えば、コンピューティングデバイス102は、コンピューティングデバイス、より詳しくは、コンピューティングデバイス102のハードウェアに動作を実行させる命令を保持するよう構成することができる、コンピュータ読取り可能媒体を含むことができる。したがって、命令は、動作を実行するようハードウェアを構成するために機能し、このようにして、機能を実行するようハードウェアの変形をもたらす。命令は、コンピュータ読取り可能媒体によって、さまざまな異なる構成品を通じて、コンピューティングデバイス102に提供することができる。
コンピュータ読取り可能媒体のそのような構成の1つに、信号搬送媒体があり、したがって、命令(例えば、搬送波)を、コンピューティングデバイスのハードウェアに、ネットワークを介するなどして伝送するよう構成される。コンピュータ読取り可能媒体は、また、コンピュータ読取り可能ストレージ媒体として構成することができ、その場合、信号搬送媒体ではない。コンピュータ読取り可能ストレージ媒体の例には、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、光学ディスク、フラッシュメモリ、ハードディスクメモリ、および、磁気的、光学的ならびに他の技術を使用して、命令ならびに他のデータを格納可能な他のメモリデバイスがある。
起動パターン・マネージャ・モジュール
図2は、図1のネットワーク・ブローカ・モジュール122の起動パターン・マネージャ・モジュール124の例示的動作を示す例示的実施態様におけるシステム200の図である。すでに述べたように、従来技術には、アプリケーションが到達可能な実際に動作中のプロセスが含まれた。したがって、比較的長く動作しているネットワーク接続の使用を必要とするアプリケーションは、任意の時点でデータを送信および受信することができ、バッテリ寿命などの、コンピューティングデバイス102のリソースに直接影響を与える可能性があった。
しかしながら、この例において、オペレーティングシステム116は、ネットワーク・ブローカ・モジュール122を使用して、「常にオンラインで、常に接続状態にある」ユーザ体験をサポートすることができる。この例において、体験は、ネットワーク通信で必要とされる特定のアプリケーションを起動するために使用することができる起動パターン・マネージャ・モジュール124の使用を通じてサポートされる。
例えば、起動パターン・マネージャ・モジュール124は、特定のアプリケーション118、120が示すトラフィックパターン202を、アプリケーション118、120が登録することを可能にすることができる。例えば、アプリケーション118は、アプリケーション120に対して登録されたトラフィックパターンとは異なるトラフィックパターン202を登録することができる。それに応じて、起動パターン・マネージャ・モジュール124は、トラフィックパターン202に対してネットワークトラフィック204をモニタリングし、対応するアプリケーション118、120を起動することができる。
例えば、アプリケーション開発者は、オペレーティングシステム116のネットワーク・ブローカ・モジュール122とのコントラクト(contract)を、ある種のイベントおよびこれらのイベントのそれぞれに対して実行されるコールバックを指示するよう定めてもよい。その場合、ネットワーク・ブローカ・モジュール122は、そのトラフィックパターン202を登録したアプリケーション118、120の1つまたは複数に対応する、ネットワーク114を介してネットワーク・インターフェイス・デバイス112によって受信されたデータの特定パターンを「組み込む」ことができる。
それに応じて、ネットワーク・ブローカ・モジュール122の起動パターン・マネージャ・モジュール124は、アプリケーション118に対するトラフィックパターンで記載した着信パケットの受信の際に、オペレーティングシステム116に割り込むことができる。さらに、オペレーティングシステム116は、登録したコールバック・エントリー・ポイントで、一時停止状態からアプリケーション118を起動し、パケットをアプリケーション118に示すことができる。このようにして、起動パターン・マネージャ・モジュール124は、事前承認された遠隔エンドポイントからの着信パケットについて、一時停止中のアプリケーションを作動させるための技術をサポートすることができる。さらに、このことは、物理的ネットワーク・インターフェイス・デバイス112が着信パケットのフィルタリングをサポートしない場合でさえも、オペレーティングシステム116が、あるパターンを組み込むことを可能にし、それにより、オペレーティングシステム115が入力パケットをフィルタリングすることを可能にする。
アプリケーション118、120は、また、コンピューティングデバイス102のリソース使用の効率を向上するよう構成することができる。例えば、アプリケーション118は、別々に実行することができる異なる部分を形成するよう誘導することができる。アプリケーション118に対するこのことについて示した例は、アプリケーション118に対するユーザインターフェイスの生成で必要とされる機能などの、アプリケーション118の他の機能208とは別に、ネットワーク機能206の誘導を含む。
したがって、上記の例に連続して、ネットワーク・ブローカ・モジュール122は、特定のトラフィックパターン202に一致するパケットを示し、アプリケーション118のユーザインターフェイスを生成する際に必要なアプリケーション118のコードをリハイドレート(rehydrate)することなく、アプリケーションコードの特定のコールバックを実行するなどの、アプリケーション118のネットワーク機能206を起動することができる。したがって、アプリケーション118は、データパケット、およびキープアライブを開始した遠隔エンドポイントなどに対してリソース効率の良い方法で、遠隔サーバからネットワークトラフィック204に応答するよう構成することができる。アプリケーション118のイベントハンドラの分離などの、アプリケーション118を誘導するさまざまな他の例もまた、想定される。
起動パターン・マネージャ・モジュール124は、また、アプリケーション118、120に通信するためのデータを融合するための技術をサポートすることができ、さらに、トラフィックパターン202によって指示することができる。例えば、起動パターン・マネージャ・モジュール124は、ネットワーク・インターフェイス・デバイス112で、ネットワーク114を介して、さまざまな異なる通知チャネルを介して、データを受信することができる。このデータをアプリケーション118、120に「すぐに」通信する代わりに、起動パターン・マネージャ・モジュール124は、規定した間隔でアプリケーション118、120に通信するためのこのデータを融合してもよい。
したがって、アプリケーション118、120を実行する際に使用されるコンピューティングデバイス102のリソースは、これらのリソースが使用されるとき、およびその方法をさらに節約するために共に使用することができる。例えば、アプリケーション118に対するデータを受信し、アプリケーション118を起動し、パケットをアプリケーション118に通信し、次いで、アプリケーション120に対して受信したパケットに対してこのことを繰り返す代わりに、これらのパケットはキャッシュされ、次いで、回送されてもよい。
1つまたは複数の実施態様において、起動パターン・マネージャ・モジュール124は、また、ユーザログインについての情報を活用することができる。例えば、起動パターン・マネージャ・モジュール124は、コンピューティングデバイス102にアクティブにログインしたユーザに対するトラフィックパターン202を使用することができるが、他のユーザに対しては使用せず、最後にログインしたユーザに対するパターンなどを使用することができる。当然、アクティブであろうとなかろうと、ログインした各ユーザに対してパターンが使用される実施形態などの、他の実施態様もまた想定される。
したがって、オペレーティングシステムは、コンピューティングデバイスのネットワーク・インターフェイス・デバイスを介して受信した着信パケットの識別に応じて、一時停止中のアプリケーションの少なくとも一部を起動するための技術をサポートするよう構成することができることを説明した。これらの技術についてのさらなる説明は、以下の手順および実施例に関連して見ることができる。
トラフィックパターンの認識をアプリケーションの少なくとも一部を一時停止状態から動作状態に遷移するために使用する、例示的実施態様における手順300を示す。本手順の態様は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現することができる。本手順は、1つまたは複数のデバイスによって実行される動作を明示するブロックのセットとして示され、各ブロックによる動作を実行するために示される順序に必ずしも限定されない。以下の説明の部分では、図1の環境100および図2のシステム200を参照する。
トラフィックパターンは、コンピューティングデバイスで実行するために構成されたアプリケーションに対応して登録される(ブロック302)。例えば、トラフィックパターン202は、起動パターン・マネージャ・モジュール124のAPIとの相互通信などを通じて、アプリケーション118のインストール中に、アプリケーション118によって登録することができる。さらに、トラフィックパターン202を使用して、特定パケット、コールバックの識別、特定遠隔エンドポイントの識別などの、さまざまな異なる性質のネットワークトラフィック204について説明することができる。
アプリケーションが一時停止状態である間のネットワークトラフィックにおけるトラフィックパターンの認識に応じて、アプリケーションの少なくとも一部は、一時停止状態から動作状態に遷移される(ブロック304)。アプリケーション118は、さまざまな異なるファクタのため、一時停止状態に置かれる可能性がある。例えば、オペレーティングシステム116は、フォーカスが他のアプリケーションに移った場合、アプリケーション118を一時停止状態に置くよう構成することができる。フォーカスは、アプリケーションのユーザインターフェイスを最小にすること、デスクトップ・ユーザ・インターフェイスにおける前景からのユーザインターフェイス(例えば、ウィンドウ)の移動、およびイマーシブ(immersive)環境におけるアプリケーション118のユーザインターフェイスからの他への移動などによって移ることができる。したがって、オペレーティングシステム116は、ユーザ相互通信のために直接利用することができないアプリケーションの実行を一時停止することによって、コンピューティングデバイス102のリソースを節約することができる。
すでに述べたように、起動パターン・マネージャ・モジュール124は、ネットワークトラフィック204からのトラフィックパターン202を認識し、アプリケーション118(例えば、ネットワーク機能206ではなく他の機能208)の少なくとも一部を動作状態に遷移し、識別されたネットワークトラフィック204を処理することができる。したがって、起動パターン・マネージャ・モジュール124は、ネットワークトラフィック204が関係する特定のアプリケーション118およびアプリケーション118の特定の部分でさえも遷移することができる。起動パターン・マネージャ・モジュール124の使用についての他の例は、以下の図に関連して見ることができる。
図4は、トラフィックパターンの認識を使用してアプリケーションの少なくとも一部を起動する、例示的実施態様における手順400を示す。本手順の態様は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現することができる。本手順は、1つまたは複数のデバイスによって実行される動作を明示するブロックのセットとして示され、各ブロックによる動作を実行するために示される順序に必ずしも限定されない。以下の説明の部分では、図1の環境100および図2のシステム200を参照する。
コンピューティングデバイスのネットワーク・インターフェイス・デバイスによって受信されたネットワークトラフィックは、モニタリングされる(ブロック402)。例えば、コンピューティングデバイス102は、VPNおよびトンネリングなどをサポートするための仮想デバイスとして実現される、物理的デバイスとして構成することができる、ネットワーク・インターフェイス・デバイス112でネットワークトラフィックを受信することができる。
トラフィックパターンは、モニタリングされたネットワークトラフィックにおいて認識される(ブロック404)。上記のように、パケットおよび送信側エンティティなど、さまざまな異なるトラフィックパターンを認識することができる。このトラフィックパターンから、認識されたトラフィックパターンに対応するコンピューティングデバイスのアプリケーションが識別される(ブロック406)。例えば、1つまたは複数のアプリケーションは、起動パターン・マネージャ・モジュール124に事前登録され、特定のネットワークトラフィックを受信することができる。この識別に応じて、ネットワーク機能206およびアプリケーション118の全体など、識別されたアプリケーションの少なくとも一部が起動される(ブロック408)。起動パターン・マネージャ・モジュール124の例示的動作のさらなる説明は、実施例に関連して見ることができる。
ネットワーク・デバイス・マネージャ・モジュール
図5は、図1のネットワーク・ブローカ・モジュール122のネットワーク・デバイス・マネージャ・モジュール126の例示的動作を示す例示的実施態様におけるシステム500の図である。すでに述べたように、オペレーティングシステム116のネットワーク・ブローカ・モジュール122、したがって、ネットワーク・デバイス・マネージャ・モジュール126は、ネットワーク・インターフェイス・デバイス112とアプリケーション118、120との間の中継ぎとして位置付けることができる。中継ぎとして、オペレーティングシステム116は、ネットワーキング活動の情報を有することができ、したがって、ネットワーク・インターフェイス・デバイス112が低電力モード、例えば、ネットワーク沈黙モードに入ることができるかどうかを、確定的に識別することができる。
例えば、ネットワーク・デバイス・マネージャ・モジュール126を使用して、例えば、コールバックをモニタリングすること、および最後のコールバックが完了したときを判断することによって、コンピューティングデバイスのアプリケーションを含むネットワークトラフィック502が完了したとモジュールが判断した場合、ネットワーク・インターフェイス・デバイス112を低電力モードにすることができる。したがって、ネットワークトラフィック502は、この例において、アプリケーション118、120からの出力トラフィックを含む。
それに応じて、ネットワーク・デバイス・マネージャ・モジュール126は、ネットワーク・インターフェイス・デバイス112を、高電力モード504から低電力モード5066に遷移させることができる。その名前が意味するように、これらのモードは、そのモードにある間、ネットワーク・インターフェイス・デバイス112によって消費される電力量によって区別される。一例において、高電力モード504は、ネットワーク・インターフェイス・デバイス112によるデータの伝送および受信を可能にするよう構成される。この実施例において、低電力モード506は、ネットワーク・インターフェイス・デバイス112の伝送機能を一時的に動作不能にすることで電力消費を抑えるよう構成される。したがって、アウトバウンド動作が抑制され、したがって、単に起動パターンが組み込まれるために、システムに影響する可能性のあるトラフィックが起動パターンと一致するか、またはシステムがキープアライブ動作などのアウトバウンド(outbound)動作を開始するための時間を算出する場合のパケットに限定されることを意味する。さまざまな他の例もまた、想定される。
このようにして、ネットワーク・デバイス・マネージャ・モジュール126は、ネットワーク・インターフェイス・デバイス112の使用がアウトバウンドトラフィックのためにもはや要求されなくなる場合を先に判断することができ、それに応じて、30秒程度の非動作期間の検出に左右される従来技術とは対照的に対応することができる。したがって、中継ぎとしてのオペレーティングシステム116を位置付けることによってもたらされるネットワークトラフィック502の情報を使用して、コンピューティングデバイス102のリソースを節約することができる。
ネットワーク・デバイス・マネージャ・モジュール126は、また、所望の期間、ネットワーク・インターフェイス・デバイス112に対して低電力モード506を保ち、及び/又は維持するための技術をサポートすることができる。すでに述べたように、従来技術は、アプリケーション118、120の、ネットワーク・インターフェイス・デバイス112への自由なアクセスを可能にし、その結果、コンピューティングデバイス102のリソースについて悪影響を及ぼす可能性があった。それに応じて、アプリケーション118、120とネットワーク・インターフェイス・デバイス112との間の中継ぎとして、ネットワーク・デバイス・マネージャ・モジュール126を位置付けることは、高電力および低電力モード504、506を管理するために使用することができる。
例えば、ネットワーク・デバイス・マネージャ・モジュール126は、「ブラックホール化」技術をサポートし、アプリケーション118、120によるネットワーク・インターフェイス・デバイス112への、低電力モード506にある間のアクセスを制限することができる。これは、ネットワーク・インターフェイス・デバイス112を利用不可能にする、アプリケーション118、120からネットワーク・インターフェイス・デバイス112へのパケットの通信をブロックする、低電力モード506の間にアプリケーション118、120にエラーコードを戻す、およびドロップされたパケットイベントを知らせるなどの、さまざまな方法で実行することができる。したがって、ネットワーク・デバイス・マネージャ・モジュール126は、低電力モード506から高電力モード504にネットワーク・インターフェイス・デバイス112を起動するためのアプリケーション118、120の能力を制限することができ、それにより、コンピューティングデバイス102のリソースを節約することができる。
ネットワーク・デバイス・マネージャ・モジュール126は、また、複数の異なるネットワーク・インターフェイス・デバイス112の使用を、ネットワーク・インターフェイス・デバイス112のいずれが所定の時点でアクセスされることを可能にするかを管理することによって、管理するための技術をサポートすることができる。例えば、コンピューティングデバイス102は、モバイル通信デバイス(例えば、無線電話)として構成することができ、Wi−Fiおよびセルラ(例えば、3G、4G、LTE)ネットワーク上で通信するよう構成されたネットワーク・インターフェイス・デバイス112を含むことができる。
Wi−Fiに対するネットワーク・インターフェイス・デバイス112が高電力モードにある例において、ネットワーク・デバイス・マネージャ・モジュール126は、セルラネットワークに対するネットワーク・インターフェイス・デバイス112を、低電力モードにすることができる。さらに、セルラネットワークと相互通信しようとするアプリケーションを、代わりに、Wi−Fiネットワークに経路付けても良い。このようにして、ネットワーク接続マネージャモジュール126は、アプリケーション118、120が、「不適切な」ネットワーク・インターフェイス・デバイス112と通信することを防ぐことができ、それにより、デバイスを起動することなく、コンピューティングデバイス102のリソースを節約することができる。
ネットワーク・デバイス・マネージャ・モジュール126は、また、低電力モードにある間、接続を維持するよう構成することができる。例えば、アプリケーション118、120及び/又はオペレーティングシステム116のサービスは、アクセスポイントとの接続を維持するために、レイヤ2接続を維持することを要求することができる。これには、アクセスポイントと通信するために、規定された間隔で、低電力モード506から周期的に起動することを含むことができる。同じように、レイヤ3接続もまた、同様の技術を使用して維持され、サーバが規定された間隔でアドレスをリフレッシュするよう構成された場合などに対して、HTTPサーバと通信することによってIPアドレスを維持することができる。ネットワーク接続の維持についてのさらなる説明は、以下の説明における「キープアライブ」セクションで見ることができる。
図6は、ネットワーク・デバイス・マネージャ・モジュール126の例示的動作を示す例示的実施態様における他のシステム600の図である。このシステム600は、オペレーティングシステム116がネットワーク・インターフェイス・デバイス112の管理を補助するために使用することができるアーキテクチャの実施例である。
ネットワーク・デバイス・マネージャ・モジュール126は、この例においては、ndis.sys602に存在するロジックコンポーネントとして実現することができ、ネットワーク・インターフェイス・デバイス112に対する電力モードの制御を担う。ネットワーク・デバイス・マネージャ・モジュール126は、アダプタ毎のNID動作状態(例えば、NIC動作状態)を明らかにして、ネットワーク・インターフェイス・デバイス112上のきめ細やかな電力制御をサポートするよう構成することができる。
NID動作状態は、基準カウンタを使用して実現することができる。カウンタが0に達すると、ネットワーク・デバイス・マネージャ・モジュール126は、ネットワーク・インターフェイス・デバイス112を、低電力状態に遷移させることができる。カウンタが、0から1にインクリメントされると、NDIS602は、ネットワーク・インターフェイス・デバイス112を高電力状態、すなわち、「作動(”working”)」電力状態に移すことができる。
図示したように、オペレーティングシステム116のコンポーネントを使用して、例えば、プライベートIOCTLをNDIS602に送信することによって、さまざまな目的のために、基準カウンタをインクリメント及び/又はデクリメントすることができる。1つまたは複数の実施態様において、電力依存コーディネータ(PDC、power dependency coordinator)606と通信するWCM604は、「長い」時間、例えば、ネットワーク動作期間の全期間、NID動作基準を保持することを可能にする単独コンポーネントである。他のコンポーネントのそれぞれは、単一動作、例えば、IPアドレス更新の期間、NID動作基準をとることが可能とされる。
WCM604は、PDC606によって生成されたネットワーク沈黙入口/出口イベントをリッスンし、インターフェイス選択ロジックに従って、NIC動作状態にそれらを変換するよう構成することができる。WCM604は、NDIS602がネットワーク・インターフェイス・デバイス112の電源を切ることを防ぐように、アダプタ到達の際に基準をとることができる。
WWAN608は、NIC動作基準を使用して、媒体特定機能、例えば、位置センササービスにより要求される位置走査機能の選択を可能にすることができる。WLAN610は、NIC動作基準を使用して、IHV提供サービスによって制御されたベンダ特定機能などの、媒体特定動作を選択することができる。DHCP612クライアントを使用して、ネットワーク沈黙モード中に、IPアドレスを更新することができ、したがって、この動作中、NID動作基準を保持し、ネットワーク・インターフェイス・デバイス112の可用性を保証することができる。TCP/IP614は、NID動作基準カウンタを使用して、この動作中に、D0においてネットワーク・インターフェイス・デバイス112を保持し、ネットワーク沈黙モード中に、IPv6ステートレスアドレス自動設定616をリフレッシュすることができる。NDIS602は、アダプタ初期化中、および各ネットワーク・インターフェイス・デバイス112が起動信号を生成した際に、一時的(例えば、3秒)NIC動作基準を使用することができる。したがって、タイムアウト期限切れによってネットワーク・インターフェイス・デバイス112の使用を他のいずれのコンポーネントも要求しない場合、ネットワーク・デバイス・マネージャ・モジュール126は、ネットワーク・インターフェイス・デバイス112を低電力状態に遷移することができる。
図7は、ネットワーク・インターフェイス・デバイスの沈黙遷移を示す例示的実施態様700である。実施態様700は、図6のNDIS602および電力マネージャ702ならびにミニポート/バス704を備える。NDIS602は、NID動作基準カウンタが0になると、この電力遷移動作を実行する。NID沈黙遷移の間、NDIS602は、ネットワーク・インターフェイス・デバイス112を、電力マネージャ702に対してアイドル状態であると報告する可能性があり、デバイスに対してDxIRPを要求する前に、確認を待つ。
図8は、ネットワーク・インターフェイス・デバイスの動作遷移を示す例示的実施態様800である。実施態様800は、図6のNDIS602および図7の電力マネージャ702ならびにミニポート/バス704を備える。図示した例において、NDIS602は、NID動作基準カウンタが0から1になると、電力遷移動作を実行する。NDIS602は、電力マネージャ702からデバイス動作状態を要求し、「電力要求コールバック」を待つことができる。このコールバックから、NDIS602は、デバイスに対してD0IRPを要求する。D0IRP完了時に、NDIS602は、更新電力状態をミニポート/バス704ドライバに通信する前に、「動作状態コールバック」を待つ。
図9は、システムスリープ遷移を示す例示的実施態様900である。実施態様900も、また、図6のNDIS602および図7の電力マネージャ702ならびにミニポート/バス704を備える。システムスリープ遷移の間、NDIS602は、デバイスに対し、電力マネージャ702により、電力フレームワーク管理を一時停止し、DxIRPを要求する前に確認を待つ。
図10は、システム再開遷移を示す例示的実施態様1000である。実施態様900も、また、図6のNDIS602および図7の電力マネージャ702ならびにミニポート/バス704を備える。システム再開遷移の間、NDIS602は、ネットワーク・インターフェイス・デバイス112に対し、D0IRPを要求し、電力フレームワーク動作を、D0IRP完了時に、電力マネージャ702によって再開させる。
図11は、ネットワークトラフィックが完了し、ネットワーク・インターフェイス・デバイスがオペレーティングシステムによって低電力モードに遷移したと判断する、例示的実施態様における手順1100を示す。本手順の態様は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現することができる。本手順は、1つまたは複数のデバイスによって実行される動作を明示するブロックのセットとして示され、各ブロックによる動作を実行するために示される順序に必ずしも限定されない。以下の説明の部分において、図1の環境および図5から図10のシステムならびに例示的実施態様を参照する。
オペレーティングシステムによって、コンピューティングデバイスの1つまたは複数のアプリケーションと関連するネットワークトラフィックが完了したと判断される(ブロック1102)。この判断は、さまざまな方法で行うことができる。例えば、ネットワーク・デバイス・マネージャ・モジュール126は、アプリケーション118、120およびネットワーク・インターフェイス・デバイス112に関係するアウトバウンドおよびインバウンドトラフィックをモニタすることができる。したがって、ネットワーク・デバイス・マネージャ・モジュール126は、回答が要求に対していつもたらされたか、例えば、コールバックがいつ完了したかを判断することができる。このようにして、ネットワーク・デバイス・マネージャ・モジュール126は、各動作が、所定の「アイドル」期間を待つことなく、いつ完了したかを判断することができる。
本判断に応じて、ネットワーク・インターフェイス・デバイスは、オペレーティングシステムによってネットワーク・インターフェイス・デバイスの電力消費を抑えるためのモードに遷移させる(ブロック1104)。前記例から続いて、ネットワーク・デバイス・マネージャ・モジュール126は、ネットワークトラフィック502が完了したと判断することができ、したがって、ネットワーク・インターフェイス・デバイス112を、電力消費を抑えるモード、例えば、低電力モード506にすることができる。
ネットワーク・デバイス・マネージャ・モジュール126は、また、このモードと共に使用するためのさまざまな機能を提供することができる。例えば、ネットワーク・デバイス・マネージャ・モジュール126は、ネットワーク・インターフェイス・デバイス112に、オペレーティングシステムによって、電力消費を抑えるモードの間、無線アクセスポイントとの接続を維持させることができる(ブロック1106)。したがって、この例において、ネットワーク・インターフェイス・デバイス112は、すでに述べたように、レイヤ2接続を維持することができる。他の例において、ネットワーク・デバイス・マネージャ・モジュール126は、ネットワーク・インターフェイス・デバイス112に、オペレーティングシステムによって、電力消費を抑えるモードの間、インターネットプロトコル(IP)アドレスを維持させることができる(ブロック1108)。したがって、この例において、ネットワーク・インターフェイス・デバイス112は、ネットワーク・インターフェイス・デバイス112のIPアドレスをリフレッシュするために、レイヤ3接続を維持することができる。さまざまな他の例もまた、想定される。
ネットワーク・インターフェイス・デバイスは、また、事前登録された通知の受信時に起動するよう構成することができる(ブロック1110)。例えば、ネットワーク・インターフェイス・デバイス112が低電力モード506にある場合でさえも、ネットワーク・インターフェイス・デバイス112は、通信、例えば、インバウンドパケットを受信するよう構成することができる。これらの通知は、事前登録することができ、特定の通知により、ネットワーク・インターフェイス・デバイス112をネットワーク沈黙モードから起動させ、通信を生じさせた特定のエンドポイントを指示するなど、オペレーティングシステム116と通信させる。実施例に関連して説明したように、データに格納された特定の4個のタプル(tuple)パターンなどの、さまざまな他の種類の事前登録もまた想定される。
図12は、ネットワーク・インターフェイス・デバイスが、低電力モードの間、アプリケーションに利用不可能にされる、例示的実施態様における手順1200を示す。本手順の態様は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現することができる。本手順は、1つまたは複数のデバイスによって実行される動作を明示するブロックのセットとして示され、各ブロックによる動作を実行するために示される順序に必ずしも限定されない。以下の説明の部分において、図1の環境および図5から図10のシステムならびに例示的実施態様を参照する。
ネットワーク・インターフェイス・デバイスが高電力モードにある場合、オペレーティングシステムによって、ネットワーク・インターフェイス・デバイスが、コンピューティングデバイスの1つまたは複数のアプリケーションに対して利用可能になる(ブロック1202)。例えば、ネットワーク・デバイス・マネージャ・モジュール112は、データを送受信するために、ネットワーク114を使用して、通信のために利用できるように、ネットワークインターフェイス112を表示することができる。
ネットワーク・インターフェイス・デバイスが低電力モードにある場合、オペレーティングシステムによって、ネットワーク・インターフェイス・デバイスが、コンピューティングデバイスの1つまたは複数のアプリケーションに利用不可能になる(ブロック1204)。例えば、ネットワーク・デバイス・マネージャ・モジュール126は、アプリケーション118、120によって必要とされるネットワークトラフィックが完了したという判断に応じるなどの場合に、ネットワーク沈黙モードを実行し、電力消費を抑えることができる。この沈黙モードは、定義された時間を有することができ、イベントに応じるなどにより、終了することができる。この利用不可能性は、アプリケーション118、120が、この時間の間、ネットワーク・インターフェイス・デバイス112を「起動する」ことができないよう、上記した「ブラックホール」技術の使用を含むことができる。
ネットワーク・インターフェイス・デバイスが利用不可能である間、他のネットワーク・インターフェイス・デバイスが、1つまたは複数のアプリケーションに対して利用可能になる(ブロック1206)。すでに述べたように、コンピューティングデバイス102は、複数のネットワーク・インターフェイス・デバイスを備えることができる。それに応じて、ネットワーク・デバイス・マネージャ・モジュール126は、ただ1つのネットワーク・インターフェイス・デバイス112をインターネット接続のために利用可能にするなど、コンピューティングデバイスのリソースを節約するために、それらのデバイスを、高電力モードまたは低電力モードに置くよう管理することができる。
例えば、ネットワーク・デバイス・マネージャ・モジュール126は、ルーティング技術を使用して、「不適切な」ネットワーク・インターフェイス・デバイス112の不要な起動を防ぐことができる。前記例に続いて、利用不可能にされたネットワーク・インターフェイス・デバイスを使用する通信のために指定された1つまたは複数のアプリケーションから受信したデータが、他のネットワーク・インターフェイス・デバイスに経路付けられる(ブロック1208)。例えば、これを用いて、Wi−Fiデバイスなどの動作状態のネットワーク・インターフェイス・デバイスに自動的に経路付けられる非動作状態であるセルラ・ネットワーク・インターフェイス・デバイスを使用する通信に対し、アプリケーション118によって意図されたデータを経路付けることができる。
したがって、オペレーティングシステムは、電力消費を抑えるモードにあるネットワーク・インターフェイス・デバイスに、コンピューティングデバイスの1つまたは複数のアプリケーションによるアクセスを制限する技術をサポートするよう構成することができる。さらに、ネットワーク・インターフェイス・デバイスは、特定のエンドポイントからのプッシュ通知などの通知の受信に応答して、そのモードから起動するよう構成される。ネットワーク接続の維持についてのさらなる説明は、以下のセクションに関連して見ることができる。
キープ・アライブ・マネージャ・モジュール
図13は、図1のネットワーク・ブローカ・モジュール122のキープ・アライブ・マネージャ・モジュール128の例示的動作を示す例示的実施態様におけるシステム1300の図である。キープ・アライブ・マネージャ・モジュール128は、ネットワーク114上の通知チャネルを維持するためのネットワーク・ブローカ・モジュール122の機能を表す。例えば、キープ・アライブ・マネージャ・モジュール128を使用して、アプリケーション118、120と、エンドポイント1306、例えば、ネットワークサービスのサーバとの間の通知チャネル開口を保つために十分な、ネットワーク通信1304間の間隔を定義するキープアライブ間隔1302を算出することができる。したがって、キープアライブ間隔1302は、ネットワーク114を介して、例えば、1つまたは複数の通知チャネルを介して、通信の状態を維持するため、通信の周波数を描くよう算出することができる。
ネットワーク・ブローカ・モジュール112は、さまざまな異なる通知チャネルを管理することができる。例えば、アプリケーション118は、電子メール通信をサポートするよう構成することができ、したがって、電子メール・サービス・エンドポイントと相互通信するよう構成することができる。アプリケーション118は、また、インスタントメッセージングをサポートするよう構成することができ、したがって、他のエンドポイント(例えば、インスタント・メッセージング・サービスのサーバ)と通信することができる。したがって、単一アプリケーション118で、複数の通知チャネルをサポートすることができる。さらに、アプリケーション118、120は、また、異なる通知チャネルを使用して、同じエンドポイントと通信することができる。したがって、キープ・アライブ・マネージャ・モジュール128は、ネットワーク114を介する通信を含む、さまざまな異なる通知チャネルを扱うことができる。
さらに、キープ・アライブ・マネージャ・モジュール128は、さまざまな方法でキープアライブ間隔1302を算出することができる。そのような実施態様の1つにおいて、キープアライブ間隔1302は、アプリケーション118が、例えば、通知チャネルを介して通信するエンドポイント1306のサーバタイムアウト間隔に基づき、算出することができる。例えば、サーバタイムアウト間隔は、エンドポイント1306と相互通信するよう構成されたアプリケーションによって指定された既知のタイムアウトに基づき、キープ・アライブ・マネージャ・モジュール128によって決定することができる。
例えば、アプリケーション118は、ソーシャル・ネットワーク・サービスなどの、特定のエンドポイントと相互通信するよう構成することができる。したがって、このアプリケーションは、タイムアウトのサーバタイムアウト間隔の「知識」でコード化することができ、アプリケーション118は、そのエンドポイントで通知チャネルを維持するよう構成することができ、例えば、通信が送信され、エンドポイント1306で状態を維持することができる。したがって、この例において、キープ・アライブ・マネージャ・モジュール128は、アプリケーション118自身からこの間隔を決定することができる。事前にエンドポイント1306のサーバタイムアウト間隔を決定するなど、他の例もまた想定され、(例えば、障害検出および再調整によって)コンピューティングデバイスとエンドポイント1306との間のモニタリングされた相互作用などに基づくことができる。
他のそのような実施態様において、キープアライブ間隔1302は、ネットワーク114の中継デバイス1308を扱うため、ネットワークタイムアウト間隔を使用して算出することができる。例えば、ネットワーク・インターフェイス・デバイスとエンドポイント1306との間のネットワーク接続は、ネットワークアドレス変換デバイス、プロキシ、ファイヤウォール、および無線アクセスポイントなどの、さまざまな中継デバイス1308を含むことができる。ネットワークタイムアウト間隔は、さまざまな方法で、キープ・アライブ・マネージャ・モジュール128によって決定することができる。
例えば、キープ・アライブ・マネージャ・モジュール128は、そのような決定に対して利用可能になるテストデバイスなどの、「既知の」もしくは「長く知られる(known−to−be−long)」サーバタイムアウト間隔を有するエンドポイントと、ネットワーク114および対応する中継デバイス1308を介して接続することができる。キープ・アライブ・マネージャ・モジュール128は、この既知のエンドポイントとの接続をモニタリングして、中継デバイス1308をいつ「タイムアウトさせるか」を判断することができ、したがって、中継デバイス1308のネットワークタイムアウト間隔を決定することができる。このネットワークタイムアウト間隔は、キープアライブ間隔1302を算出する際に使用するために、キープ・アライブ・マネージャ・モジュール128によって保存することができる。例えば、このネットワークタイムアウト間隔は、ネットワーク・インターフェイス・デバイス112がネットワーク114にアクセスする特定のネットワークに対して特有のものとして保存することができる。
1つまたは複数の実施態様において、キープアライブ間隔1302は、エンドポイント1306のサーバタイムアウト間隔、中継デバイス1308のネットワークタイムアウト間隔、および両方の間隔に基づいて算出することができる。例えば、キープアライブ間隔1302は、キープ・アライブ・マネージャ・モジュール128によって算出され、通知チャネルを維持する際に、コンピューティングデバイス102のリソースを効率的に使用することができる。例えば、キープ・アライブ・マネージャ・モジュール128は、ネットワークタイムアウト間隔が15秒であり、サーバタイムアウト間隔が20秒であると決定することができる。したがって、キープ・アライブ・マネージャ・モジュール128は、15秒間隔でネットワーク・インターフェイス・デバイス112を起動して、エンドポイント1306と通信することができるため、エンドポイント1306と中継デバイス1308とを動作状態に保つことができる。したがって、この例において、キープ・アライブ・マネージャ・モジュール128は、15秒および20秒間隔でネットワーク・インターフェイス・デバイス112を起動することを避けることができるが、どちらのデバイスも状態を維持することができる。
したがって、単一ネットワークタイムアウト値を算出することができ、これらの値の最小値(例えば、ベースラインフロア)は、同時発生の「キープアライブ」がいつ送信されるかを描く融合時間を計算するために算出される。したがって、ネットワークタイムアウト間隔は、複数のサーバ接続に適用することができる。
さらに、1つまたは複数の実施態様は、失われているネットワーク接続を扱うことができる。ネットワークは、不統一である可能性があり、接続は、時に消失する可能性がある。それが起こると、サーバへの永続接続が断たれる可能性がある。したがって、これらの実施態様は、ネットワークが再び利用可能になるときを自動的に検出する能力を使用することができる。例えば、Wi−Fiネットワークで、「ネットワーク・リスト・オフロード」を介しておよびオペレーティングシステム自体を介してなどの効果的な方法で、このことは、ハードウェアまたはファームウェアで実行することができる。したがって、オペレーティングシステムは、アプリケーションのこのクラスに、コールバックルーチンを介して、ネットワークの存在を通知することができ、次いで、これらのアプリケーションは、接続、例えば、プッシュ通知サーバへの長期接続を再確立することができる。したがって、融合通知が実行され、複数の通信アプリケーションで通信を再確立することができ、ローカル・コンピューティング・リソースの使用を最適化するため、およびネットワーク・インターフェイス・デバイスのリソースの使用を最適化するために使用することができる。
本技術は、また、キープ・アライブ・マネージャ・モジュール128によって、アプリケーション118、120を扱うために使用することができる。例えば、キープ・アライブ・マネージャ・モジュール128は、アプリケーション118、120によって送信される通信をバッチ処理し、通知チャネルを維持するよう構成することができる。したがって、前述のように、キープアライブ間隔1302は、コンピューティングデバイス102のリソース、例えば、電源108を効果的に使用するよう構成することができる。
例えば、キープ・アライブ・マネージャ・モジュール128は、アプリケーション118が、10秒間隔で「キープアライブ」通信を開始するよう構成されること、およびアプリケーション120が、8秒間隔で「キープアライブ」通信を開始するよう構成されることを決定することができる。したがって、キープ・アライブ・マネージャ・モジュール128は、通信を行うために、アプリケーション118、120の両方に対して、8秒間隔で、ネットワーク・インターフェイス・デバイス112を起動することができる。このようにして、キープ・アライブ・マネージャ・モジュール128は、さまざまなエンドポイント1306への通知チャネルに対して「キープアライブ」を開始したアプリケーション118、120を融合し、電力および他のリソースを節約することができる。したがって、キープ・アライブ・マネージャ・モジュール128は、さまざまなファクタでキープアライブ間隔1302を基にすることができ、キープアライブ間隔1302を調整することもでき、さらに、その説明は、以下の図面に関連して見ることができる。
図14は、図13のキープアライブ間隔を算出および調整する例示的実施態様を示す例示的実施態様におけるシステム1400の図である。すでに述べたように、中間ネットワークデバイスによる通知チャネルの維持は、ネットワーク114にアクセスするアプリケーション118、120の問題とすることができる。従来技術は、状態を保護するために、パケットを送信/受信するための間隔を定義したハードコーディングされた値を必要とした。しかしながら、本明細書で説明する技術では、動的キープアライブ間隔が、例えば、所与の遠隔接続先へのテスト接続を使用して、コンピューティングデバイス102自体でのアプリケーション118、120の実行を通じて、および、ネットワークとサーバタイムアウト間隔の使用を通じてなどにより算出される。
図14のシステム1400は、図13のキープアライブ間隔1302を調整する一例を示す。この例において、初期に算出されたキープアライブ間隔は、T=T(max)として、初期段階で設定される(ブロック1402)。次いで、基準ポイントは、現在のTより低くなるよう試みられる(ブロック1404)。これは、T(min)のW(min)のポーリングを含むことができ、ここでのWは、ポーリング間の再接続時間を表す(ブロック1406)。これは、また、TがVずつインクリメントされ、T(max)でキャップ(cap)された積極的チューニングを含むことができ(ブロック1408)、ここで、Vは、積極的チューニングのインクリメントを表す。システム1400は、また、値がV/Yずつインクリメントされる微細チューニングを含むことができ、ここで、Yは、積極的インクリメントの1/Yを意味する。これらの値は、T−検出値およびT(LKG)が絶対時間である定常状態を判断するために活用することができる。図において、Zは実行したリトライの数を表し、ネットワークエラーに対処するために設定することができ、Xは、成功したキープアライブ(KA)の数を表す。キープ・アライブ・マネージャ・モジュール128の動作についてのさらなる説明は、以下の手順に関連して見ることができる。
図15は、キープアライブ間隔を算出して、1つまたは複数の通知チャネルを維持するために使用する例示的実施態様における手順1500である。本手順の態様は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現することができる。本手順は、1つまたは複数のデバイスによって実行される動作を明示するブロックのセットとして示され、各ブロックによる動作を実行するために示される順序に必ずしも限定されない。以下の説明の部分において、図1の環境および図13から図14のシステムならびに例示的実施態様を参照する。
キープアライブ間隔は、コンピューティングデバイスのオペレーティングシステムによって算出される(ブロック1502)。図13および図14に関して説明したように、キープアライブ間隔は、ネットワークタイムアウト間隔およびサーバタイムアウト間隔に基づく、および複数のアプリケーション118、120に対するキープアライブ通信スケジューリングに基づくなど、さまざまな方法で算出することができる。
キープアライブ間隔を使用して、コンピューティングデバイスの1つまたは複数のアプリケーションとネットワークとの間の、1つまたは複数の通知チャネルを維持する(ブロック1504)。例えば、キープ・アライブ・マネージャ・モジュール128は、ネットワーク通信をモニタして、通知チャネルを介して、データを送信および受信することができる。1つまたは複数の通知チャネルが、ネットワーク通信1304と関係することなく、キープアライブ間隔に達した場合、キープ・アライブ・マネージャ・モジュール128は、各エンドポイント1306と通信することによって、チャネルを維持することができる。
キープアライブ間隔は、また、オペレーティングシステムによる、キープアライブ間隔のモニタリングされた使用に基づき、調整することができる(ブロック1506)。例えば、キープ・アライブ・マネージャ・モジュール128は、通知チャネルが、ネットワークもしくはサービスタイムアウト間隔に達したために機能しなくなったと判断することができる。次いで、キープ・アライブ・マネージャ・モジュール128は、キープアライブ間隔1302を「少なく」調整し(例えば、間隔によって定義された時間量を減らす)、チャネルがタイムアウトする時間の観測された量より少ない時間量に調整することができる。当然、図14に関連して説明したように、キープアライブ間隔1302を増やすなど、他の例もまた想定される。
図16は、キープアライブ間隔を算出して、アプリケーションからキープアライブ通信をバッチ処理する例示的実施態様における手順1600である。本手順の態様は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現することができる。本手順は、1つまたは複数のデバイスによって実行される動作を明示するブロックのセットとして示され、各ブロックによる動作を実行するために示される順序に必ずしも限定されない。以下の説明の部分において、図1の環境および図13から図14のシステムならびに例示的実施態様を参照する。
ネットワークを介して各エンドポイントを有する通知チャネルを維持するよう指定された1つまたは複数のサーバタイムアウト間隔について、コンピューティングデバイスで実行可能な複数のアプリケーションのそれぞれに対して判断する(ブロック1602)。例えば、キープ・アライブ・マネージャ・モジュール128は、各エンドポイントを有する通知チャネルを維持するため、各アプリケーションによって使用されるサーバタイムアウト間隔を判断するために、アプリケーション118、120を試験することができる。
キープアライブ間隔は、複数のアプリケーションのそれぞれに対する1つまたは複数のサーバタイムアウト間隔から算出される(ブロック1604)。図13に関連して説明したように、キープ・アライブ・マネージャ・モジュール128は、さまざまなサーバタイムアウト間隔に対するリソース使用の効率に基づいて、キープアライブ間隔1302を決定することができる。次いで、キープアライブ間隔を使用して、通知チャネルを維持するために指定されたネットワーク・インターフェイス・デバイスを起動することができる(ブロック1606)。例えば、キープ・アライブ・マネージャ・モジュール128は、ネットワーク・インターフェイス・デバイス112が低電力モードにある間、ネットワーク通信1304が、通信チャネルのいずれに対しても発生しなかったと判断することができる。それに応じて、キープ・アライブ・マネージャ・モジュール128は、ネットワーク・インターフェイス・デバイス112を起動して、キープアライブ間隔1302で各エンドポイント1306と通信し、コンピューティングデバイス102のリソースを効率的に使用することができる。さまざまな他の例もまた、上記のように、および以下の実施例に関連してさらに説明するように、想定される。
実施例
図17および図18は、図1のネットワーク接続ブローカ122の実施例を示すシステム1700、1800である。図1に関連してすでに述べたように、システム・オン・チップ型デバイスにおける「接続状態スタンバイ(connected standby)」と呼ばれるシステム状態のサポートは、「常にオンラインで、常に接続状態にある」(AOAC)ユーザ体験を可能にするための機会を提供することができる。例えば、アプリケーションは、「インフォーカス」でない場合、例えば、前景にない場合、一時停止することができる。結果として、ネットワーク114およびネットワーク・インターフェイス・デバイス112は、「ネットワーク沈黙モード」(netqm)に入る可能性がある。このモードでは、オペレーティングシステム116は、L2接続およびL3識別情報が維持されることを保証する間、デバイスからの発信パケットを防ぐことができる。コンポーネントからの指示は、沈黙モードを出るための電力依存コーディネータ(PDC)と称された。ネットワーク114接続と関係するタスクの完了時に、ネットワーク・ブローカ・モジュール122は、ネットワーク・インターフェイス・デバイス112を、再び、ネットワーク沈黙モードにして、PDCが出口イベントを示すまで、この状態のままでいさせることができる。
この設計を含むシステム1700の概要が、図17に示される。本図は、チャット・アプリケーション1702に対する接続および他のブックキーピングを扱うよう構成された、軽量チャットスタブ1704を含む、チャットアプリケーション(例えば、ネットワーク114を介してチャットするために構成されたもの)を示す。チャットアプリケーション1702は、また、比較的「重量のある」チャットUI1706を備え、アプリケーション1702の一部は、チャットスタブ1704によって表される軽量接続スタブから分離される。これは、アプリケーション1702の機能を誘導するために使用することができるさまざまな技術の1つである。
プロセス・ライフタイム・マネージャ1708は、また、アプリケーション1702のライフサイクルを管理するための機能を示すものとして図示される。言い換えると、アプリケーション1702が、ユーザフォーカスから離れてタスクを課されると(例えば、背景へ移動)、PLM1708は、チャットUI1706を終了し、メモリ内でチャットスタブ1704を一時停止することができる。
システム1700は、上記したように、関心イベントがアプリケーション1702に対して発生すると、チャットスタブ1704をリハイドレートするための機構を備える、カーネル・ブローカ・インフラストラクチャを活用することができる。このようにして、コンピューティングデバイスのリソースは節約することができ、例えば、コンピューティングデバイス102のCPUは、沈黙モードに入り、入力メッセージが起動を誘引するまで、およびカーネルブローカが周期的動作のためにシステムを起動するまでなど、それまでこのモードに留まることができる。
ネットワーク接続ブローカ(NCB)1710(図1のネットワーク・ブローカ・モジュール122に対応してもよいし、しなくてもよい)は、起動パターンマネージャ1712およびキープ・アライブ・マネージャ1714として表される、さまざまな機能を使用することができる。起動パターンマネージャ(WPM)1712は、アプリケーション1702が、ネットワークイベント時に「リハイドレート」する、例えば、特定パターンの検出時に起動することができることを保証するよう構成される。
キープ・アライブ・マネージャ1714は、通知チャネルが、例えば、プッシュ通知の入力がクラウドサービスから到達できるよう、アプリケーション1702に対して維持されることを保証するよう構成される。例えば、アプリケーション1702は、作業アイテムを図18のBI1802に登録することができ、それにより、アプリケーション1702が、キープアライブ動作に関心があることをオペレーティングシステム116に知らせることができる。次いで、オペレーティングシステム116は、出力パケット動作が、事前定義された時間の間、例えば、数秒の間、許可されることを指示するため、コールバックを登録したアプリケーション1702を起動する、適切な融合キープアライブ間隔を判断することができる。BI1802は、CPUおよびメモリリソースの点から「サンドボックス」作業アイテムとすることができる。このことは、アプリケーション1702に、各エンドポイント(例えば、「クラウド内の」サービス)に、周期的な「キープアライブ」を実行させ、可到達性を維持することができる。このことは、また、「キープアライブ」の過多によるリソースの非効率的な使用に対して、アプリケーションの能力を限定するために使用することができる。
オペレーティングシステムは、通知サービス(例えば、Windows(登録商標)通知サービス)と共に使用して、すでに述べたように、動的キープアライブ間隔を決定することができる。例えば、動的キープアライブ間隔は、4分間隔で保守的に開始し、接続がなお維持される値にインクリメントする間隔によって定義される時間量を倍にする「指数バックオフ」として実施することができる。通知サービスは、この目的のためにテスト接続を使用して、動的間隔を決定することができる。1つまたは複数の実施態様において、他の実施態様もまた想定されるが、キープ・アライブ・マネージャ1714は、接続スタンバイもしくはActive/ONになるアプリケーション状態もしくはシステムを区別しない。
起動パターンマネージャ1712は、ネットワーク・インターフェイス・カード(NIC)1716などの、ネットワーク・インターフェイス・デバイスに対する適切な起動パターンを組み込むための機能を表す。起動パターンマネージャ1712は、NIC1716を、ネットワーク沈黙モードエントリー時に、「ウェイクオンLAN(“Wake on LAN”)」モードに移行させることができる。例えば、NIC1716は、起動パターンのセットに一致した場合、NIC1716が着信パケットを受け入れ、送達するよう構成された、D3モードに遷移することができる。そうであれば、NIC1716を、動作状態に遷移させることができる。起動パターンは、各起動可能接続に対する“<SrcAddr,DstAddr,SrcPort,DstPort,TransportProtocol>”などの、さまざまなソースから送達することができる。1つまたは複数の実施態様において、NIC1716は、そのようなパケットのロスが、VoIPなどの特徴をサポートするアプリケーションに対するリアルタイム応答に影響を及ぼす可能性があるため、(破棄/削除に対立して)プロトコルスタックに起動させる着信パケットを通過させる。
ランタイムAPIサーフェスもまた、オペレーティングシステム116によって提供されるキープアライブおよび遠隔起動機能を利用するよう構成された、アプリケーションに表示することができる。ライブラリを使用して、アプリケーションで、以下を含むさまざまな機能を実行することができる。
・通知チャネルの作成指示(例えば、BeginSetup)
・通知チャネルのセットアップ完了指示(例えば、EndSetup)
・分単位で所望のキープアライブ間隔を設定(例えば、ServerKeepAliveIntervalTime)
・キープ・アライブ・イベントおよび遠隔起動イベントに対するBackground Taskハンドラの登録
・キープアライブ間隔が十分ではなかったことをシステムに指示(例えば、DecreaseKeepAliveInterval)
通知システムは、断続的に実行しているinboxコンポーネントとして実現することができるので、キープ・アライブ・イベントに対し実行される起動アイテムコードを、アクティベーションプロキシ方法によってトリガすることができる。アクティベーションプロキシは、ランタイムライブラリの内部に隠すことができ、プライベートAPIを通じてアクティベートすることができる。NCBサービスチェックを使用して、処理の保全性レベルをチェックすることができる。プロキシは、WNFイベントを作成し、WNFイベントメッセージに対するWNFチャネルをリッスンする。通知サービスのためのバックグラウンド・タスク・ハンドラは、(BiSignalEventを呼び出すNCBサービス/TCPIP.sysの結果として)BIがWNFイベントメッセージを発行した場合、プロキシによって起動することができる。
ランタイムAPIライブラリは、LRPCを使用して、IPヘルパーサービス内でホストされたNCBサブサービス(Ncbsvc.dll)と通信し、NCBにキープアライブ時間を提供し、キープアライブおよび起動イベントのためのイベントネームを受信することができる。次いで、ランタイムAPIは、ブローカインフラストラクチャAPIを呼び出し、アプリケーション提供のコールバックと、ブローカインフラストラクチャ提供のイベントとを関連付けることができる。
図18のシステム1800は、オペレーティングシステム116の残りの部分に伝えるためにNCBサービス1806によって使用される実際の通信インターフェイスを隔離するよう構成された、NCBレジスタ1804を備える。例えば、ランタイムAPIによって使用されるRPCは、NCBレジスタ内で隔離することができる。レジスタは、RPCサーバエンドポイントを開放し、アプリケーションをリッスンすることができる。アプリケーションは、このRPCエンドポイントに接続するため、上記したランタイムライブラリを使用することができる。
同様に、実際のBI1802APIアクセスは、図示したように、NCBレジスタ1804の内部に隠すことができる。これにより、キープ・アライブ・マネージャ1714を、アーキテクチャ変更から隔離することができる。NCBレジスタ1804は、BI1802APIを呼び出し、「キープアライブ」および「起動」イベントを作成することができる。NCBレジスタ1804の他の部分は、WPM1808と通信することに関係し得る。
キープ・アライブ・プロバイダ・インターフェイス1810は、WNSを、キープ・アライブ間隔プロバイダとして登録することを可能にするよう構成され、LRPCを使用して、WNSと通信することができる。WNSは、キープ・アライブ・プロバイダ・インターフェイス1810によって登録されたコールバックを使用して、キープアライブ間隔推定値を提供することができる。
キープ・アライブ・プロバイダ・インターフェイス1810は、NLMキャッシュライブラリ1812内に、ネットワーク単位(NLM ID)を基準として、推定値をキャッシュすることができる。NLMキャッシュは、キープ・アライブ・プロバイダ・インターフェイスとDAサイトマネージャとの間で共通とすることができるライブラリを通じてアクセスすることができる。
キープ・アライブ・マネージャ1714は、キープ・アライブ・プロバイダからキープアライブ間隔推定値を要求するよう構成することができる。タイマ(融合させてもよい)は、“SetThreadPoolTimer”APIを使用して作成することができる。時間は、T_WNSおよびT_APPの最小値として設定することができる。アプリケーションによって要求されたキープアライブ間隔である。
キープ・アライブ・タイマが切れた場合、キープ・アライブ・マネージャ1714は、NCBレジスタ1804を呼び出すことによって、キープ・アライブ・イベントを報知することができる。次いで、NCBレジスタ1804は、BI1802APIを呼び出し、スケジュールされる作業アイテムをトリガすることができる。
アプリケーションは、提供された間隔が非常に長かったというヒントをNCBに提供することができる。このことは、アプリケーションIDおよび通知チャネルIDと共に使用され、上記したNLMキャッシュライブラリ1812を使用して、ネットワーク単位を基準として、再びキャッシュに格納することができる。
通知チャネルを識別するためのモデルは、処理(ループバックを除く)毎にそれぞれ確立されたTCP接続が、NCBによる通知チャネルとして扱われる間、処理全体のタイムスパンを表す“Start/Done”モデルに基づくことができる。しかしながら、Start/Doneタイムスパンは、1つの“NCContext”と一括して称される、そのスパンの間に生成される各接続に適用する、パラメータの単一セットを有する。典型的には、NCContextとTCP接続との間の1対1の関係が発生することに留意されたい。しかしながら、Start/Doneモデルは、この関係を保証しないため、この設計は、単一NCContextスパンに対応する複数TCP接続が存在することができるという仮定のもとで、動作することができる。このスパンは、処理ID、レジスタによって作成ならびに使用されるオペーク(opaque)NCContextID(イベント報知中にBIに通される、したがって、appにとって有意である)、オプションのオペーク通知チャネルID、およびオプションの遠隔起動ブローカイベントを含むタプルによって識別することができる。
NCBレジスタ1804は、WPMに、Start(PID、NCContextID、AppNCID、BrokeredEvent)およびDone()(例えば、NCContextを設定、および消去)を指示するよう構成することができる。NCBレジスタ1804は、また、実際のアプリケーション処理PIDが、Start/Doneタイムスパン中に、完全な形で残る(例えば、リサイクルされない)ことを保証することができる。NCBレジスタ1804は、クライアント処理で参照するRPC APIを使用することによって、これを達成することができる。
NCBは、NSI1814を介して、WPM1808にStartおよびDoneを指示することができる。WPMは、この目的のために、(ポート予約NSIオブジェクトと同様とすることができる)INET NSIオブジェクトを示すことができる。NCBは、NSIセットコマンドを使用して、アクティブNCContext(例えば、Start)を設定、およびアクティブNCContext(例えば、Done)を消去することができる。1つまたは複数の実施態様において、所与の時点で、所与の処理に対して、単一のアクティブNCContextがある。
所与の処理によって確立されたTCP接続は、その処理に対して、(存在するならば)現在アクティブなNCContextを引き継ぐことができる。NCContextが引き継がれると、引き継いでいるTCP接続にアタッチされたままにすることができる。NCBが(例えば、以前アクティブだったものを消去した後で)処理のために新しいアクティブなNCContextを設定すると、新しい接続が新しいNCContextを引き継ぐことができ、以前のNCContextを引き継いだ接続は、影響を受けないままにすることができる。(1つまたは複数のTCP接続によって)引き継がれたNCContextは、NSI1814を使用することによっても、NCBサービス1806によって消去することができる。NCContextが消去された場合、WPM1808は、関連する遠隔起動ブレーカ・イベントを報知することを停止することができる(だが、組み込まれた起動パターンは、通信が切断されるまで、そのまま残る)。
WPM1808は、NCBサービス1806によって制御された、いくつかの処理毎の状態(例えば、アクティブな、引き継がれたNCContext)の経過を追うことができるため、アプリケーション終了として状態(NCContext)を適切にクリーンアップするNCBサービス1806に依存することがある。しかしながら、NCBサービス1806処理は、異常にクラッシュ/終了するかもしれない可能性がある。適切なクリーンアップを実行するために、WPM1808は、TCPソケット(バインドおよび接続されない)を作成し、NCB制御ソケットとしてマークするため、ソケットでプライベート・オプションを設定するNCBによって、NCBサービス処理終了の指示を受信することができる。オブジェクトマネージャは、処理が終了すると、(ソケットを含む)ハンドルを適切に閉じるので、ソケット・ハンドル・クロージャは、TCPのエンドポイント・クローズ・ルーチンを起動させる。次いで、TCPは、NCB制御ソケットを閉じる際に、NCContextのそれぞれをクリーンアップすることができる。
上記したように、(tcpip.sysにおけるTCPモジュールで実現することができる)起動パターン・マネージャ(WPM)1808は、NCContextの経過を追うよう構成することができる。TCPは、処理のテーブルおよびNCBサービス1806によって設定された関連NCContextを保つことができる。1つまたは複数の実施態様において、所与の処理に対して、1つまたは0の「アクティブな」NCContextがあり、所与の処理に対して、1つまたは複数の「引き継がれた」NCContextが存在することができる。TCPは、NCBサービスが実行されている単一システムアカウントが、NCContextを設定/消去することができるよう構成することができる。
1つまたは複数の実施態様において、NCContextは、「アクティブ」であるための1つの基準カウント、および各引き継ぎ接続のための1つの基準カウントを有する。すなわち、NCContextは、アクティブではなく、接続によって引き継がれてもいなかった場合、削除することができる。
接続がNCContextを引き継いだ場合、WPM1808は、NICが起動パターンをサポートする場合、起動パターン組み込みのためのNSI1814方法を介して、ネットワーク・インターフェイス・デバイスまで、接続の4個のタプルから作られる起動パターンを組み込むことができる。WPM1808は、起動パターンが、各アクティブNCContextに対する所与の接続に対して、良好に組み込まれなかったかどうかの経過を追うことができる。アクティブNCContextが、“Done”コール中にNCBサービスによって消去される前に、NCBサービス1806は、そのNCContextに対してNSIgetを発行し、この起動パターン取り出し状態を照会し、その情報(例えば、システムが、そのNCContextと関連した接続に対する起動パターンの組み込みに失敗したかどうか)を、アプリケーションに戻すことができる。
ブローカ遠隔起動イベントでNCContextを引き継いだ各TCP接続に対し、TCPは、データ指示(例えば、アップコールまたは受信完了)が、入力データのため、その接続で、TCPによって作られた場合はいつでも、ブローカ遠隔起動イベントを報知することができる。TCPが遠隔起動イベントを報知すると、遠隔起動イベントがNCBサービス1806によってリセットされるまで、そのNCContextでのさらなる報知を無効にする(例えば、取り除く)ことができる。NCBサービス1806は、アプリケーションの遠隔起動コールバックが、コールバックを呼び出したNCBルーチンに制御を返すと、遠隔起動イベントをリセットする。
NLで扱うSIO_ADDRESS_LIST_SORT ioctlは、また、その処理に対するアクティブNCContextが存在する間、Ioctlが処理によって発行されているかどうかを意識するよう変更することができ、そうである場合、ソートロジックは、トンネルインターフェイスより、ネイティブインターフェイス上のアドレスを選ぶことができる。
WPM1808は、また、ルータによってアドバタイズされたIPv6サブネット・プレフィックスを使用することによって形成されるIPv6アドレスに対する残りの有効なライフタイムを追跡するために、タイマを保つことができる。ルータ・アドバタイズメントが、起動可能低電力状態でNICによって失われた可能性のある場合、IPv6プレフィックス・タイムアウトは、タイムアウト発生前に、明示的ルータ要請を介してリフレッシュすることができ、そうでなければ、L3識別情報は、場合によっては、確実には保護されない可能性がある。WPM1808は、NDIS APIを使用して、NICが「留まる」(例えば、システム内の何かによって保持される任意のNIC動作基準を有さないため、D3に移らない)ことを保証するために、ルータ要請を実施することができる、ネットワーク・インターフェイスで「NIC動作基準」を取得することができる。
例示的システムおよびデバイス
図19は、図1を参照して説明したようなコンピューティングデバイス102を含む例示的システム1900を示す。例示的システム1900は、パーソナルコンピュータ(PC)、テレビジョンデバイス、及び/又はモバイル・デバイスでアプリケーションを実行する場合、シームレスなユーザ体験のためのユビキタス環境を可能にする。サービスおよびアプリケーションは、アプリケーションを使用しながら、ビデオゲームをプレイしながら、およびビデオを見ながらなどの間に、あるデバイスから次のデバイスへ遷移する場合に、ユーザ体験を共通にするために、3つすべての環境で実質的に同様に動作する。
例示的システム1900において、複数のデバイスが、中央コンピューティングデバイスを通じて、相互接続される。中央コンピューティングデバイスは、複数のデバイスに対してローカルとすることができ、または、複数のデバイスから遠隔に設置することができる。一実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット、または他のデータ通信リンクを通じて複数のデバイスに接続された1つまたは複数のサーバコンピュータのクラウドとしてもよい。一実施形態において、この相互接続アーキテクチャは、複数のデバイス間で配信される機能が、複数のデバイスのユーザに共通でシームレスな体験を提供することを可能にする。複数のデバイスのそれぞれは、異なる物理的要件および能力を有することができ、中央コンピューティングデバイスは、プラットフォームを使用して、デバイスに適合して、さらにすべてのデバイスに共通する体験をデバイスに配信することを可能にする。一実施形態において、ターゲットデバイスのクラスが作成され、体験は、デバイスの汎用クラスに適合される。デバイスのクラスは、物理的特徴、使用の種類、またはデバイスの他の共通特性によって定義してもよい。
さまざまな実施態様において、コンピューティングデバイス102は、コンピュータ1902、モバイル1904、およびテレビジョン1906などのさまざまな異なる構成を使用すると仮定することができる。これら構成のそれぞれは、一般に異なる構成および性能を有する可能性があるデバイスを備え、したがって、コンピューティングデバイス102は、異なるデバイス・クラスの1つまたは複数に従って構成することができる。例えば、コンピューティングデバイス102は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、およびネットブックなどを含むデバイスのコンピュータ1902クラスとして実現することができる。
コンピューティングデバイス102は、また、携帯電話、ポータブル音楽プレイヤ、ポータブル・ゲーム・デバイス、タブレットコンピュータ、およびマルチスクリーンコンピュータなどのモバイル・デバイスを含むデバイスのモバイル1904クラスとして実現することができる。コンピューティングデバイス102は、また、カジュアルな視聴環境における一般的により大型なスクリーンを有するか、または接続されたデバイスを含むデバイスのテレビジョン1906クラスとして実現することができる。それらのデバイスは、テレビジョン、セット・トップ・ボックス、およびゲーム機などを含む。本明細書で説明される技術は、コンピューティングデバイス102のこれらのさまざまな構成によってサポートすることができ、本明細書で説明される技術の具体例に限定されない。これは、コンピューティングデバイス102上のネットワーク・ブローカ・モジュール122、起動パターン・マネージャ・モジュール124、ネットワーク・デバイス・マネージャ・モジュール126、およびキープ・アライブ・マネージャ・モジュール128を内蔵して使用することにより示される。この機能のすべてまたは一部は、また、以下に記載されるように、「クラウド上」に分散してもよい。
クラウド1908は、コンテンツ・サービス1912のためのプラットフォーム1910を含む、及び/又はプラットフォーム1910を表す。プラットフォーム1910は、クラウド1908のハードウェア(例えば、サーバ)およびソフトウェア・リソースの基礎をなす機能を抽出する。コンテンツ・サービス1912は、コンピュータ・プロセッシングがコンピューティングデバイス102から離れたサーバで実行される間、使用することが可能であるアプリケーション及び/又はデータを含むことができる。コンテンツ・サービス1912は、インターネット上の、及び/又は、セルラもしくはWi−Fiネットワークなどの加入者ネットワークを通じてのサービスとして提供することができる。
プラットフォーム1910は、コンピューティングデバイス102を他のコンピューティングデバイスと接続するためのリソースおよび機能を抽出することができる。プラットフォーム1910は、また、リソースのスケーリングを抽出して、プラットフォーム1910を介して実現されるコンテンツ・サービス1912に対して生じる要求に対応するスケールのレベルを提供するよう動作することができる。それに応じて、相互接続されたデバイスの実施形態において、本明細書で説明する機能に関する機能の実施態様は、システム1900全体に分散してもよい。例えば、本機能は、コンピューティングデバイス102で、およびクラウド1908の機能を抽出するプラットフォーム1910を介して、部分的に実現することができる。
図20は、本明細書で説明する技術の実施形態を実現するための図1および図19を参照して説明したような任意の種類のコンピューティングデバイスとして実現することが可能な例示的デバイス2000のさまざまなコンポーネントを示す。デバイス2000は、デバイス・データ2004(例えば、受信データ、受信中のデータ、一斉送信のためにスケジュールされたデータ、データのデータ・パケットなど)の有線及び/又は無線通信を可能にする通信デバイス2002を含む。デバイス・データ2004または他のデバイス・コンテンツは、デバイス、デバイスに格納されたメディアコンテンツ、及び/又はデバイスのユーザと関連した情報の構成設定を含むことができる。デバイス2000に格納されたメディアコンテンツは、任意の種類のオーディオ、ビデオ、及び/又は画像データを含むことができる。デバイス2000は、ユーザ選択可能入力、メッセージ、音楽、テレビ・メディア・コンテンツ、録音されたビデオコンテンツ、および任意のコンテンツ及び/又はデータ・ソースから受信した任意の他の種類のオーディオ、ビデオ及び/又は画像データなどの、任意の種類のデータ、メディアコンテンツ、及び/又は入力を受信することが可能な1つまたは複数のデータ入力2006を備える。
デバイス2000は、また、シリアル及び/又はパラレル・インターフェイス、無線インターフェイス、任意の種類のネットワークインターフェイス、モデムの任意の1つまたは複数として、および任意の他の種類の通信インターフェイスとして実現することが可能な通信インターフェイス2008を含む。通信インターフェイス2008は、デバイス2000と、他の電子的デバイス、コンピューティングデバイス、ならびに通信デバイスが、デバイス2000とデータを通信する通信ネットワークとの間の接続及び/又は通信リンクを提供する。
デバイス2000は、さまざまなコンピュータ実行可能命令を処理して、デバイス2000の動作を制御し、さらに、本明細書で説明する技術の実施形態を実現する、1つまたは複数のプロセッサ2010(例えば、任意のマイクロプロセッサおよび制御器など)を含む。あるいは、またはさらに、デバイス2000は、一般に2012で識別されるプロセッシング回路ならびに制御回路と関連して実現される、ハードウェア、ファームウェア、もしくは固定ロジック回路の任意の1つもしくは組み合わせを用いて実現することができる。図示しないが、デバイス2000は、デバイス内のさまざまな構成要素と結合するシステム・バスまたはデータ転送システムを含むことができる。システムバスは、メモリバスもしくはメモリ制御器、周辺バス、ユニバーサル・シリアル・バス、及び/又は任意のさまざまなバス構造を使用するプロセッサバスもしくはローカルバスなどの、異なるバス構造の任意の1つもしくは組み合わせを含むことができる。
デバイス2000は、また、1つまたは複数のメモリ部品などの、コンピュータ読取り可能媒体2014を備え、その例には、ランダム・アクセス・メモリ(RAM)、不揮発性メモリ(例えば、リード・オンリー・メモリ(ROM)、フラッシュ・メモリ、EPROM、EEPROMなどの任意の1つまたは複数)、およびディスク・ストレージ・デバイスがある。ディスク・ストレージ・デバイスは、ハードディスク・ドライブ、記録可能及び/又は書き換え可能コンパクト・ディスク(CD)、および任意の種類のデジタル多用途ディスク(DVD)などの、任意の種類の磁気もしくは光学ストレージ・デバイスとして実現することができる。デバイス2000は、また、大容量ストレージ媒体デバイス2016を備えることができる。
コンピュータ読取り可能媒体2014は、データ・ストレージ機構を提供して、デバイス・データ2004、さまざまなデバイスアプリケーション2018、およびデバイス2000の動作態様に関連した任意の他の種類の情報及び/又はデータを格納する。例えば、オペレーティングシステム2020は、コンピュータ読取り可能媒体2014でコンピュータ・アプリケーションとして保持され、プロセッサ2010で実行することができる。デバイス・アプリケーション2018は、デバイスマネージャ(例えば、制御アプリケーション、ソフトウェアアプリケーション、信号処理ならびに制御モジュール、特定のデバイスにネイティブであるコード、特定のデバイスに対するハードウェアアブストラクション層など)を含むことができる。デバイスアプリケーション2018は、また、任意のシステム構成要素またはモジュールを含み、本明細書で説明する技術の実施形態を実現する。この例において、デバイスアプリケーション2018は、ソフトウェアモジュール及び/又はコンピュータアプリケーションとして示した、インターフェイスアプリケーション2022ならびに入力/出力モジュール2024を含む。入力/出力モジュール2024は、タッチスクリーン、トラックパッド、カメラ、およびマイクロフォンなどの入力を取得するよう構成されたデバイスとのインターフェイスを提供するよう使用されるソフトウェアを表す。あるいは、またはさらに、インターフェイスアプリケーション2022および入力/出力モジュール2024は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせとして実現することができる。さらに、入力/出力モジュール2024は、ビジュアル入力およびオーディオ入力をそれぞれ取得するための別々のデバイスなどの、複数の入力デバイスをサポートするよう構成してもよい。
デバイス2000は、また、オーディオデータをオーディオシステム2028にもたらす、及び/又は、ビデオデータを表示システム2030にもたらす、オーディオ及び/又はビデオ入力−出力システム2026を備える。オーディオシステム2028及び/又は表示システム2030は、オーディオ、ビデオ、ならびに画像データを処理、表示、及び/又は、そうでなければ表現する任意のデバイスを含むことができる。ビデオ信号およびオーディオ信号は、RF(無線周波数)リンク、S−ビデオリンク、複合ビデオリンク、コンポーネント・ビデオ・リンク、DVI(デジタル・ビデオ・インターフェイス)、アナログオーディオ接続、または他の同様の通信リンクを介して、オーディオデバイスに、及び/又は及び/又は表示デバイスに、デバイス2000から通信することができる。一実施形態において、オーディオシステム2028及び/又は表示システム2030は、デバイス2000に対する外部コンポーネントとして実現される。あるいは、オーディオシステム2028及び/又は表示システム2030は、例示的デバイス2000の一体型コンポーネントとして実現される。
結論
本発明は、構造的特徴及び/又は方法論的動作に特有の言語で説明してきたが、添付の特許請求の範囲で定義される本発明は、記載した特定の特徴または動作に必ずしも限定されないことを理解すべきである。むしろ、特定の特徴および行為は、特許請求する本発明を実現する例示的形態として開示される。

Claims (10)

  1. コンピューティングデバイスによって実現される方法であって、
    前記コンピューティングデバイスのネットワーク・インターフェイス・デバイスによって受信されたネットワークトラフィックをモニタリングするステップと、
    前記モニタリングされたネットワークトラフィック内のトラフィックパターンを認識するステップと、
    前記認識されたトラフィックパターンに対応する前記コンピューティングデバイスのアプリケーションを識別するステップと、
    前記識別するステップに応じて、前記識別されたアプリケーションの少なくとも一部を起動するステップと、を備える、
    ことを特徴とする方法。
  2. 前記認識するステップは、
    前記ネットワークトラフィックと、前記識別されたアプリケーションによって事前登録された前記トラフィックパターンとを比較することによって実行される、
    請求項1に記載の方法。
  3. 前記識別するステップは、
    前記コンピューティン・デバイスの複数のアプリケーションのいずれかを、前記トラフィックパターンに対して起動するかを判断するために、前記コンピューティングデバイスのネットワークスタックを検討することによって実行される、
    請求項1に記載の方法。
  4. 前記起動するステップは、
    前記識別されたアプリケーションのネットワーク機能に対応する前記識別されたアプリケーションの前記一部を起動することを含み、
    前記識別されたアプリケーションの前記ネットワーク機能に対応しない前記識別されたアプリケーションの他の部分を起動しない、
    請求項1に記載の方法。
  5. 前記他の部分は、
    前記識別されたアプリケーションのユーザインターフェイスの生成と関係する、
    請求項4に記載の方法。
  6. 前記ネットワーク・インターフェイス・デバイスは、
    仮想デバイスとして前記コンピューティングデバイスによって少なくとも部分的に実現される、
    請求項1に記載の方法。
  7. 前記モニタリングするステップ、前記認識するステップ、および、前記識別するステップは、
    前記識別されたアプリケーションが一時停止状態にある間に実行される、
    請求項1に記載の方法。
  8. 前記識別されたアプリケーションは、
    前記識別されたアプリケーションのユーザインターフェイスからのフォーカスの解除に応じて、前記一時停止状態に置かれる、
    請求項7に記載の方法。
  9. 前記フォーカスは、
    前記ユーザインターフェイスの最小化、デスクトップ・ユーザ・インターフェイスの前景からの前記ユーザインターフェイスの除去、または、他のアプリケーションのユーザインターフェイスとの相互通信、を指示する入力の受信により解除される、
    請求項8に記載の方法。
  10. 前記モニタリングするステップ、前記認識するステップ、前記識別するステップ、および、前記起動するステップは、
    前記コンピューティングデバイス上のオペレーティングシステムの実行を通じて行われる、
    請求項1に記載の方法。
JP2014529679A 2011-09-09 2011-10-10 起動パターン管理 Active JP6385276B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/229,388 2011-09-09
US13/229,388 US9049660B2 (en) 2011-09-09 2011-09-09 Wake pattern management
PCT/US2011/055655 WO2013036255A1 (en) 2011-09-09 2011-10-10 Wake pattern management

Publications (2)

Publication Number Publication Date
JP2014526731A true JP2014526731A (ja) 2014-10-06
JP6385276B2 JP6385276B2 (ja) 2018-09-05

Family

ID=47830842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014529679A Active JP6385276B2 (ja) 2011-09-09 2011-10-10 起動パターン管理

Country Status (11)

Country Link
US (3) US9049660B2 (ja)
EP (1) EP2754001B1 (ja)
JP (1) JP6385276B2 (ja)
KR (1) KR101928602B1 (ja)
CN (2) CN103051463A (ja)
AU (2) AU2011376302B2 (ja)
BR (1) BR112014005354B1 (ja)
CA (2) CA2847175C (ja)
MX (1) MX342074B (ja)
RU (1) RU2595968C2 (ja)
WO (1) WO2013036255A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892710B2 (en) 2011-09-09 2014-11-18 Microsoft Corporation Keep alive management
US9049660B2 (en) 2011-09-09 2015-06-02 Microsoft Technology Licensing, Llc Wake pattern management
US8806250B2 (en) 2011-09-09 2014-08-12 Microsoft Corporation Operating system management of network interface devices
CN104205763A (zh) * 2012-01-26 2014-12-10 惠普发展公司,有限责任合伙企业 基于网络状态控制访问
US10075519B2 (en) * 2013-01-10 2018-09-11 Telefonaktiebolaget Lm Ericsson (Publ) Connection mechanism for energy-efficient peer-to-peer networks
US9491067B2 (en) * 2013-04-09 2016-11-08 Cisco Technology, Inc. Timeout for identifying network device presence
US9491032B2 (en) 2013-05-29 2016-11-08 Microsoft Technology Licensing, Llc Pattern coalescing for remote wake-enabled applications
EP4216599A1 (en) * 2013-06-11 2023-07-26 Seven Networks, LLC Offloading application traffic to a shared communication channel for signal optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
CN104469901B (zh) 2013-09-17 2018-09-07 华为终端(东莞)有限公司 数据处理的方法及装置
US9473506B1 (en) 2013-10-15 2016-10-18 Progress Software Corporation Secure file transfer and notification server
US9531678B1 (en) * 2013-10-15 2016-12-27 Progress Software Corporation On-premises data access and firewall tunneling
EP3013114B1 (en) 2013-11-28 2018-04-18 Huawei Device (Dongguan) Co., Ltd. Method for sending heartbeat message and mobile terminal
US9351254B2 (en) * 2014-01-22 2016-05-24 Seven Networks, Llc Method for power saving in mobile devices by optimizing wakelocks
US20160073347A1 (en) * 2014-09-10 2016-03-10 Microsoft Corporation Device Proximity Detection Implemented In Hardware
TWI577154B (zh) * 2014-10-31 2017-04-01 宏碁股份有限公司 保持遠端連線方法、電子裝置與伺服器
JP6455106B2 (ja) * 2014-12-01 2019-01-23 富士ゼロックス株式会社 情報処理装置およびプログラム
JP6511786B2 (ja) * 2014-12-03 2019-05-15 富士ゼロックス株式会社 情報処理装置、およびプログラム
US10932192B2 (en) 2016-01-12 2021-02-23 Qualcomm Incorporated EMTC power saving mode (PSM) enhancements for service outage
DE102016103928A1 (de) * 2016-03-04 2017-09-07 Eaton Electrical Ip Gmbh & Co. Kg Busanordnung und Verfahren zum Betreiben einer Busanordnung
US9793919B1 (en) * 2016-12-08 2017-10-17 Advanced Micro Devices, Inc. Compression of frequent data values across narrow links
EP3656183A4 (en) * 2017-07-18 2021-02-24 Hewlett-Packard Development Company, L.P. DEVICE MANAGEMENT
US10616182B1 (en) 2017-11-30 2020-04-07 Progress Software Corporation Data access and firewall tunneling using a custom socket factory
KR102681846B1 (ko) 2019-06-28 2024-07-04 삼성전자주식회사 디스플레이 장치 및 그의 동작 방법
US20240098652A1 (en) * 2021-02-23 2024-03-21 Hewlett-Packard Development Company, L.P. Specific absorption rate mitigations
CN114168355B (zh) * 2021-10-29 2022-10-21 荣耀终端有限公司 一种应用保活方法及电子设备
CN114584933B (zh) * 2022-03-03 2023-05-02 极米科技股份有限公司 无线传输中降低延迟的方法、装置、设备及存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235433A (ja) * 1999-02-16 2000-08-29 Toshiba Corp 携帯電話通信制御装置
JP2004362020A (ja) * 2003-06-02 2004-12-24 Fujitsu Ltd トラフィックパターンを考慮した通信メディアの選択機能を備えた端末装置
JP2006033026A (ja) * 2004-07-12 2006-02-02 Matsushita Electric Ind Co Ltd マルチメディア情報の受信方法及びこれを実現するプログラム、マルチメディア情報の受信装置
JP2006157673A (ja) * 2004-11-30 2006-06-15 Kyocera Corp 携帯電話端末及びキー通知方法並びにそのコンピュータプログラム
JP2006164252A (ja) * 2004-12-08 2006-06-22 Microsoft Corp ウェブサービス環境用の信頼できるメッセージング内の接続生存性の検証および維持
JP2007158870A (ja) * 2005-12-07 2007-06-21 Hitachi Ltd 仮想計算機システム及びそのネットワーク通信方法
JP2007183797A (ja) * 2006-01-06 2007-07-19 Canon Inc アプリケーション装置及び電力状態復帰方法
JP2008046940A (ja) * 2006-08-18 2008-02-28 Hitachi Ltd 情報処理装置
US20080162682A1 (en) * 2006-12-29 2008-07-03 Lakshmi Ramachandran Maintaining network connectivity while operating in low power mode
JP2009543450A (ja) * 2006-06-29 2009-12-03 マイクロソフト コーポレーション 移動通信装置用の無線式ロケーションベースの電子商取引
JP2010520668A (ja) * 2007-02-28 2010-06-10 マイクロソフト コーポレーション ネットワーク・アドレス変換システムと関連のあるクライアントを帯域外で存続状態に維持するメカニズム
US20100312899A1 (en) * 2009-06-08 2010-12-09 Microsoft Corporation Determining an efficient keep-alive interval for a network connection
US20110151944A1 (en) * 2009-12-22 2011-06-23 Motorola, Inc. Methods and apparatus for conserving energy used by a mobile device
JP2011150610A (ja) * 2010-01-23 2011-08-04 Lenovo Singapore Pte Ltd 特定の機能を維持しながら消費電力を低減するコンピュータ

Family Cites Families (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4635187A (en) 1983-12-19 1987-01-06 At&T Bell Laboratories Control for a multiprocessing system program process
US5699511A (en) 1995-10-10 1997-12-16 International Business Machines Corporation System and method for dynamically varying low level file system operation timeout parameters in network systems of variable bandwidth
US6212175B1 (en) 1997-04-22 2001-04-03 Telxon Corporation Method to sustain TCP connection
US6938040B2 (en) 1998-04-28 2005-08-30 International Business Machines Corporation Pattern matching in communications network where first memory stores set of patterns, and second memory stores mask data identifying patterns in the first memory
US6904519B2 (en) 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US6640268B1 (en) 1998-08-28 2003-10-28 Intel Corporation Dynamic polling mechanism for wireless devices
US7103806B1 (en) 1999-06-04 2006-09-05 Microsoft Corporation System for performing context-sensitive decisions about ideal communication modalities considering information about channel reliability
US7213063B2 (en) 2000-01-18 2007-05-01 Lucent Technologies Inc. Method, apparatus and system for maintaining connections between computers using connection-oriented protocols
US6976071B1 (en) 2000-05-03 2005-12-13 Nortel Networks Limited Detecting if a secure link is alive
US7562147B1 (en) 2000-10-02 2009-07-14 Microsoft Corporation Bi-directional HTTP-based reliable messaging protocol and system utilizing same
KR100439723B1 (ko) 2001-11-06 2004-07-12 삼성전자주식회사 휴대용 컴퓨터
US7047428B2 (en) 2002-01-03 2006-05-16 Broadcom Corporation Method and apparatus for performing wake on LAN power management
KR100459126B1 (ko) 2002-01-09 2004-12-03 엘지전자 주식회사 통신망의 세션 유지 제어 방법
US6943667B1 (en) 2002-02-25 2005-09-13 Palm, Inc. Method for waking a device in response to a wireless network activity
US7564810B2 (en) 2002-05-08 2009-07-21 Microsoft Corporation Method and system for managing power consumption of a network interface module in a wireless computing device
DE10225578A1 (de) * 2002-06-10 2003-12-18 Philips Intellectual Property Verfahren und Chipeinheit zum Ansprechen und/oder Aktivieren eines Teilnehmers
US7152111B2 (en) 2002-08-15 2006-12-19 Digi International Inc. Method and apparatus for a client connection manager
US7120688B1 (en) 2002-09-03 2006-10-10 Bellsouth Intellectual Property Corp. Systems and methods for an infrastructure centralized heartbeat
US7274929B1 (en) 2002-12-16 2007-09-25 Banginwar Rajesh P Power management within a wireless communication system
US7340615B2 (en) 2003-01-31 2008-03-04 Microsoft Corporation Method and apparatus for managing power in network interface modules
US7676580B2 (en) 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
JP3882917B2 (ja) 2003-04-03 2007-02-21 日本アイ・ビー・エム株式会社 情報処理システム、情報処理装置及びプログラム
US7447918B2 (en) * 2003-08-19 2008-11-04 Intel Corporation Method, apparatus and system for enabling a new data processing device operating state
US7512679B2 (en) 2003-08-29 2009-03-31 International Business Machines Corporation Apparatus and method to select a captain from a plurality of control nodes
JP4222205B2 (ja) * 2003-12-25 2009-02-12 株式会社デンソー 電磁スプール弁
US20050198257A1 (en) 2003-12-29 2005-09-08 Gupta Ajay G. Power conservation in wireless devices
US7426569B2 (en) 2004-02-25 2008-09-16 Research In Motion Limited System and method for maintaining a network connection
US20050239518A1 (en) * 2004-04-21 2005-10-27 D Agostino Anthony Systems and methods that provide enhanced state machine power management
EP1752012B1 (en) 2004-06-02 2010-07-21 Nokia Corporation Method for roaming between networks
US7584274B2 (en) 2004-06-15 2009-09-01 International Business Machines Corporation Coordinating use of independent external resources within requesting grid environments
US7675916B2 (en) 2004-07-12 2010-03-09 At&T Intellectual Property I, L.P. Systems and methods for dynamically adjusting QoS parameters
CA2549577A1 (en) 2004-09-09 2006-03-16 Avaya Technology Corp. Methods of and systems for network traffic security
US7496059B2 (en) * 2004-12-09 2009-02-24 Itt Manufacturing Enterprises, Inc. Energy-efficient medium access control protocol and system for sensor networks
US7460556B2 (en) 2005-02-17 2008-12-02 International Business Machines Corporation Autonomic adjustment of connection keep-alives
US7631202B2 (en) 2005-03-29 2009-12-08 Microsoft Corporation Power management of wireless local area network interface devices
US20060252449A1 (en) 2005-04-26 2006-11-09 Sridhar Ramesh Methods and apparatus to provide adaptive power save delivery modes in wireless local area networks (LANs)
US7668100B2 (en) 2005-06-28 2010-02-23 Avaya Inc. Efficient load balancing and heartbeat mechanism for telecommunication endpoints
US7809386B2 (en) 2005-06-29 2010-10-05 Nokia Corporation Local network proxy for a remotely connected mobile device operating in reduced power mode
US7440781B2 (en) 2005-10-07 2008-10-21 Symbol Technologies, Inc. System and method for power conservation in a wireless device
US20070112954A1 (en) 2005-11-15 2007-05-17 Yahoo! Inc. Efficiently detecting abnormal client termination
DE602005013410D1 (de) 2005-12-15 2009-04-30 Nokia Corp Verfahren, Apparat und Computerprogrammprodukt zur Beibehaltung von Abbildungszuordnungen
GB0526029D0 (en) 2005-12-21 2006-02-01 Nokia Corp Managing connections in a wireless communications network
US7624181B2 (en) 2006-02-24 2009-11-24 Cisco Technology, Inc. Techniques for authenticating a subscriber for an access network using DHCP
JP4405472B2 (ja) 2006-02-27 2010-01-27 株式会社東芝 通信システムとそのサーバ装置及び端末装置
US7523197B2 (en) 2006-03-09 2009-04-21 International Business Machines Corporation Method for IP address discovery in rapidly changing network environment
US7693146B2 (en) 2006-03-10 2010-04-06 Cisco Technology, Inc. Method and system for filtering traffic from unauthorized sources in a multicast network
US7779451B2 (en) 2006-03-30 2010-08-17 Intel Corporation Securing wakeup network events
US20070233815A1 (en) 2006-03-30 2007-10-04 Inventec Corporation Initialization picture displaying method
US20070233855A1 (en) 2006-04-03 2007-10-04 International Business Machines Corporation Adaptible keepalive for enterprise extenders
US7792526B2 (en) 2006-05-15 2010-09-07 Research In Motion Limited Adjustment of background scanning interval based on network usage
US8565715B2 (en) 2006-05-19 2013-10-22 Alcatel Lucent Mobile-initiated location measurement
US7729357B2 (en) 2006-06-20 2010-06-01 General Instrument Corporation Method and apparatus for enabling a network device to asynchronously access a set top box in a way that conserves network bandwidth
US7729273B2 (en) 2006-06-20 2010-06-01 General Instrument Corporation Method and apparatus for conserving bandwidth between a network device and a remote device
US7672264B2 (en) 2006-06-21 2010-03-02 International Business Machines Corporation Method of pausing keep-alive messages and roaming for virtual private networks on handheld devices to save battery power
US8260372B2 (en) 2006-06-30 2012-09-04 Nokia Corporation Traffic monitoring for regulating states of a terminal
US8849961B2 (en) 2006-09-06 2014-09-30 Nokia Corporation Mobile network optimized method for keeping an application IP connection always on
US8194636B1 (en) 2006-10-05 2012-06-05 Dust Networks, Inc. Adaptive timing synchronization for mesh networks
JP2008107914A (ja) * 2006-10-23 2008-05-08 Denso Corp マイクロコンピュータ、プログラム及び車両用電子制御装置
US8220049B2 (en) * 2006-12-28 2012-07-10 Intel Corporation Hardware-based detection and containment of an infected host computing device
US7768939B1 (en) 2007-01-02 2010-08-03 Juniper Networks, Inc. Network proxy with asymmetric connection connectivity
US20080165796A1 (en) 2007-01-05 2008-07-10 International Business Machines Corporation Method for a heartbeat algorithm for a dynamically changing network environment
US7693084B2 (en) 2007-02-28 2010-04-06 Microsoft Corporation Concurrent connection testing for computation of NAT timeout period
US8023432B2 (en) 2007-03-12 2011-09-20 Microsoft Corporation Cost reduction of NAT connection state keep-alive
US20080240140A1 (en) 2007-03-29 2008-10-02 Microsoft Corporation Network interface with receive classification
US20080239988A1 (en) 2007-03-29 2008-10-02 Henry Ptasinski Method and System For Network Infrastructure Offload Traffic Filtering
US20080295173A1 (en) * 2007-05-21 2008-11-27 Tsvetomir Iliev Tsvetanov Pattern-based network defense mechanism
US7843915B2 (en) 2007-08-01 2010-11-30 International Business Machines Corporation Packet filtering by applying filter rules to a packet bytestream
US7957335B2 (en) * 2007-08-23 2011-06-07 Cisco Technology, Inc. Dynamic power usage management based on historical traffic pattern data for network devices
US8086886B2 (en) 2007-08-31 2011-12-27 Silicon Image, Inc. Group power management of network devices
US8050207B2 (en) 2007-08-31 2011-11-01 Hewlett-Packard Development Company, L.P. Power saving techniques based on coverage conditions
JP5008138B2 (ja) 2007-11-12 2012-08-22 株式会社リコー 情報処理装置、情報処理方法、プログラム及び記録媒体
JP5444639B2 (ja) 2007-11-20 2014-03-19 パナソニック株式会社 サーバ装置と分散サーバシステム
US8024431B2 (en) 2007-12-21 2011-09-20 Domingo Enterprises, Llc System and method for identifying transient friends
US20090205038A1 (en) * 2008-02-08 2009-08-13 Microsoft Corporation Enabling Wake on LAN Behind NATs and Firewalls
US20090210519A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Efficient and transparent remote wakeup
US7936708B2 (en) 2008-02-26 2011-05-03 Intel Corporation Device, system, and method of wireless network selection and handover
US20090240794A1 (en) 2008-03-20 2009-09-24 Huaiyu Liu Techniques utilizing a layer-2 proxy for energy-efficient service discovery and connectivity in networks
US20090271517A1 (en) 2008-04-25 2009-10-29 Webmessenger, Inc. Method and apparatus for wireless device reconnection handling
US8009648B2 (en) 2008-05-08 2011-08-30 Harris Corporation Mobile ad hoc network with isosynchronous communications and related methods
US8045865B2 (en) 2008-06-12 2011-10-25 Xerox Corporation Automatic optimization of HFSI warning thresholds based on actual service interval statistics
US8072912B2 (en) 2008-06-25 2011-12-06 Intel Corporation Techniques for management of shared resources in wireless multi-communication devices
KR101650118B1 (ko) 2008-07-11 2016-08-22 마벨 월드 트레이드 리미티드 액세스 포인트들을 위한 전력 절감 모드
US8510577B2 (en) * 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US20100039971A1 (en) * 2008-08-15 2010-02-18 Hong Kong Applied Science and Technology Research Institute, Co. Power Management Method and Communication System
US8064362B2 (en) 2008-08-21 2011-11-22 Cisco Technology, Inc. Wide area network optimization proxy routing protocol
US20100058082A1 (en) * 2008-08-27 2010-03-04 Lenovo (Singapore) Ple., Ltd. Maintaining network link during suspend state
US9521625B2 (en) * 2008-09-15 2016-12-13 Apple Inc. Electronic devices for receiving pushed data
US8036115B2 (en) 2008-09-17 2011-10-11 Intel Corporation Synchronization of multiple incoming network communication streams
US20100332212A1 (en) 2008-09-19 2010-12-30 Ori Finkelman Method and apparatus for sleep and wake of computer devices
US20100074108A1 (en) * 2008-09-25 2010-03-25 Alcatel-Lucent Virtual partitioned policy space
US20100106874A1 (en) 2008-10-28 2010-04-29 Charles Dominguez Packet Filter Optimization For Network Interfaces
CN101751361B (zh) 2008-12-16 2012-10-10 联想(北京)有限公司 控制移动终端中数据传输接口的切换方法及终端设备
US8498229B2 (en) 2008-12-30 2013-07-30 Intel Corporation Reduced power state network processing
US9104406B2 (en) * 2009-01-07 2015-08-11 Microsoft Technology Licensing, Llc Network presence offloads to network interface
US8331274B2 (en) 2009-01-12 2012-12-11 Broadcom Corporation Waking up a VoIP terminal device from a power-saving state
US7978630B2 (en) 2009-04-30 2011-07-12 Sony Ericsson Mobile Communications Ab Method and system of maintaining a connection in a network communication system
US8065419B2 (en) 2009-06-23 2011-11-22 Core Wireless Licensing S.A.R.L. Method and apparatus for a keep alive probe service
US8422365B2 (en) 2009-09-21 2013-04-16 Cisco Technology, Inc. Energy efficient scaling of network appliance service performance
US20110102157A1 (en) 2009-11-05 2011-05-05 Nokia Corporation Wake-Up For Wireless Devices Based On Requested Data
EP2505036B1 (en) * 2009-11-23 2018-08-22 BlackBerry Limited Method and apparatus for state/mode transitioning
US8706855B2 (en) 2010-01-15 2014-04-22 Apple Inc. Method and apparatus for idling a network connection
CN102014148A (zh) 2010-08-19 2011-04-13 上海酷吧信息技术有限公司 一种在手机即时通讯中自动推荐同区域好友的方法
US8635630B2 (en) 2010-10-25 2014-01-21 Microsoft Corporation Application lifetime management
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
WO2012061430A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
KR20120070385A (ko) 2010-12-21 2012-06-29 삼성전자주식회사 에너지 효율을 위한 이동 통신망 제어 장치 및 방법
US9465427B2 (en) 2011-06-30 2016-10-11 International Business Machines Corporation Software-centric power management by indirectly determining that user is not actively using computer program running on computing device
US8239698B2 (en) * 2011-07-01 2012-08-07 Intel Corporation System and method for maintaining connectivity to remote application servers
US8566625B2 (en) 2011-07-01 2013-10-22 Intel Corporation System and method for determining transmitting frequency to maintain remote application server connectivity
US8917742B2 (en) 2011-07-13 2014-12-23 Microsoft Corporation Mechanism to save system power using packet filtering by network interface
US8806250B2 (en) 2011-09-09 2014-08-12 Microsoft Corporation Operating system management of network interface devices
US8892710B2 (en) 2011-09-09 2014-11-18 Microsoft Corporation Keep alive management
US9049660B2 (en) 2011-09-09 2015-06-02 Microsoft Technology Licensing, Llc Wake pattern management
US8621494B2 (en) 2011-09-12 2013-12-31 Microsoft Corporation Managing processes within suspend states and execution states
US9787463B2 (en) 2011-10-14 2017-10-10 Maxlinear, Inc. Method and system for server-side message handling in a low-power wide area network
US8307234B2 (en) * 2012-01-14 2012-11-06 Intel Corporation Maintaining connectivity during low power operation
KR20130087853A (ko) 2012-01-30 2013-08-07 삼성전자주식회사 파워 컨트롤 시스템 및 그 동작 방법
US9277500B1 (en) 2012-09-10 2016-03-01 Amazon Technologies, Inc. Power efficient wireless connectivity
US9037887B2 (en) 2012-09-26 2015-05-19 Intel Corporation Energy-efficient application content update and sleep mode determination

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235433A (ja) * 1999-02-16 2000-08-29 Toshiba Corp 携帯電話通信制御装置
JP2004362020A (ja) * 2003-06-02 2004-12-24 Fujitsu Ltd トラフィックパターンを考慮した通信メディアの選択機能を備えた端末装置
JP2006033026A (ja) * 2004-07-12 2006-02-02 Matsushita Electric Ind Co Ltd マルチメディア情報の受信方法及びこれを実現するプログラム、マルチメディア情報の受信装置
JP2006157673A (ja) * 2004-11-30 2006-06-15 Kyocera Corp 携帯電話端末及びキー通知方法並びにそのコンピュータプログラム
JP2006164252A (ja) * 2004-12-08 2006-06-22 Microsoft Corp ウェブサービス環境用の信頼できるメッセージング内の接続生存性の検証および維持
JP2007158870A (ja) * 2005-12-07 2007-06-21 Hitachi Ltd 仮想計算機システム及びそのネットワーク通信方法
JP2007183797A (ja) * 2006-01-06 2007-07-19 Canon Inc アプリケーション装置及び電力状態復帰方法
JP2009543450A (ja) * 2006-06-29 2009-12-03 マイクロソフト コーポレーション 移動通信装置用の無線式ロケーションベースの電子商取引
JP2008046940A (ja) * 2006-08-18 2008-02-28 Hitachi Ltd 情報処理装置
US20080162682A1 (en) * 2006-12-29 2008-07-03 Lakshmi Ramachandran Maintaining network connectivity while operating in low power mode
JP2010520668A (ja) * 2007-02-28 2010-06-10 マイクロソフト コーポレーション ネットワーク・アドレス変換システムと関連のあるクライアントを帯域外で存続状態に維持するメカニズム
US20100312899A1 (en) * 2009-06-08 2010-12-09 Microsoft Corporation Determining an efficient keep-alive interval for a network connection
US20110151944A1 (en) * 2009-12-22 2011-06-23 Motorola, Inc. Methods and apparatus for conserving energy used by a mobile device
JP2011150610A (ja) * 2010-01-23 2011-08-04 Lenovo Singapore Pte Ltd 特定の機能を維持しながら消費電力を低減するコンピュータ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吉川和成: ""iOS 4アプリ"真"手法 第2章 マルチタスクのしくみと実装ポイント"", SOFTWAREDESIGN, vol. 通巻308号(発刊242号), JPN6015048990, 18 December 2010 (2010-12-18), JP, pages 46 - 47, ISSN: 0003209360 *

Also Published As

Publication number Publication date
RU2595968C2 (ru) 2016-08-27
KR101928602B1 (ko) 2018-12-12
US20150215185A1 (en) 2015-07-30
CN107749797B (zh) 2021-01-01
MX2014002798A (es) 2014-04-10
CN103051463A (zh) 2013-04-17
CA2847175A1 (en) 2013-03-14
US20130067060A1 (en) 2013-03-14
AU2011376302B2 (en) 2017-03-30
US9049660B2 (en) 2015-06-02
US9294379B2 (en) 2016-03-22
US20160226727A1 (en) 2016-08-04
AU2011376302A1 (en) 2014-03-20
JP6385276B2 (ja) 2018-09-05
CA2986723A1 (en) 2013-03-14
AU2017201532A1 (en) 2017-03-23
EP2754001A1 (en) 2014-07-16
MX342074B (es) 2016-09-13
BR112014005354B1 (pt) 2021-07-13
CA2986723C (en) 2019-09-17
WO2013036255A1 (en) 2013-03-14
BR112014005354A8 (pt) 2018-02-06
US9596153B2 (en) 2017-03-14
EP2754001B1 (en) 2018-02-14
CA2847175C (en) 2020-07-07
CN107749797A (zh) 2018-03-02
BR112014005354A2 (pt) 2017-03-28
KR20140074291A (ko) 2014-06-17
RU2014108876A (ru) 2015-09-20
AU2017201532B2 (en) 2018-02-01
EP2754001A4 (en) 2015-04-29

Similar Documents

Publication Publication Date Title
JP6385276B2 (ja) 起動パターン管理
US9736050B2 (en) Keep alive management
US9939876B2 (en) Operating system management of network interface devices
US20100332212A1 (en) Method and apparatus for sleep and wake of computer devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140924

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160304

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170106

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170117

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20170224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180807

R150 Certificate of patent or registration of utility model

Ref document number: 6385276

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250