"コンピューティングデバイスによって実現される方法であって、前記コンピューティングデバイスのネットワークインターフェイスデバイスによって受信されたネットワークトラフィックをモニタリングするステップと、前記モニタリングされたネットワークトラフィック内のトラフィックパターンを認識するステップと、前記認識されたトラフィックパターンに対応する前記コンピューティングデバイスのアプリケーションを識別するステップと、前記識別するステップに応じて、前記識別されたアプリケーションの少なくとも一部を起動するステップと、を備える、ことを特徴とする方法。前記認識するステップは、前記ネットワークトラフィックと、前記識別されたアプリケーションによって事前登録された前記トラフィックパターンとを比較することによって実行される、請求項1に記載の方法。前記識別するステップは、前記コンピューティンデバイスの複数のアプリケーションのいずれかを、前記トラフィックパターンに対して起動するかを判断するために、前記コンピューティングデバイスのネットワークスタックを検討することによって実行される、請求項1に記載の方法。前記起動するステップは、前記識別されたアプリケーションのネットワーク機能に対応する前記識別されたアプリケーションの前記一部を起動することを含み、前記識別されたアプリケーションの前記ネットワーク機能に対応しない前記識別されたアプリケーションの他の部分を起動しない、請求項1に記載の方法。前記他の部分は、前記識別されたアプリケーションのユーザインターフェイスの生成と関係する、請求項4に記載の方法。前記ネットワークインターフェイスデバイスは、仮想デバイスとして前記コンピューティングデバイスによって少なくとも部分的に実現される、請求項1に記載の方法。前記モニタリングするステップ、前記認識するステップ、および、前記識別するステップは、前記識別されたアプリケーションが一時停止状態にある間に実行される、請求項1に記載の方法。前記識別されたアプリケーションは、前記識別されたアプリケーションのユーザインターフェイスからのフォーカスの解除に応じて、前記一時停止状態に置かれる、請求項7に記載の方法。前記フォーカスは、前記ユーザインターフェイスの最小化、デスクトップユーザインターフェイスの前景からの前記ユーザインターフェイスの除去、または、他のアプリケーションのユーザインターフェイスとの相互通信、を指示する入力の受信により解除される、請求項8に記載の方法。前記モニタリングするステップ、前記認識するステップ、前記識別するステップ、および、前記起動するステップは、前記コンピューティングデバイス上のオペレーティングシステムの実行を通じて行われる、請求項1に記載の方法。しかしながら、このようなネットワークにアクセスするために使用された従来技術は、しばしば非効率的であり、したがって、電力、処理、およびネットワークリソースを含む、相当な量のリソースを消費する可能性があった。したがって、これらの従来技術では、デバイスのユーザが利用可能な機能に限界があった。起動パターン管理技術について説明する。1つまたは複数の実施態様において、コンピューティングデバイスのネットワークインターフェイスデバイスによって受信されるネットワークトラフィックはモニタリングされ、トラフィックパターンは、モニタリングされたネットワークトラフィックにおいて認識される。コンピューティングデバイスのアプリケーションは、認識したトラフィックパターンに対応して識別され、この識別に応じて、識別されたアプリケーションの少なくとも一部が起動する。1つまたは複数の実施態様において、トラフィックパターンは、コンピューティングデバイスで実行するために構成されたアプリケーションに対応するよう登録される。アプリケーションが一時停止状態である間のネットワークトラフィックにおけるトラフィックパターンの認識に応じて、一時停止状態から動作状態へ、アプリケーションの少なくとも一部の遷移がトリガされる。1つまたは複数の実施態様において、1つまたは複数のコンピュータ読取り可能ストレージ媒体は、コンピューティングデバイスによる実行に応じて、コンピューティングデバイスのネットワークインターフェイスデバイスを介して受信された着信パケットの識別に応答して、一時停止中のアプリケーションの少なくとも一部を起動するための技術をサポートするよう構成されたオペレーティングシステムを、コンピューティングデバイスに実施させる、コンピュータ読取り可能ストレージ媒体に格納された命令を備える。ネットワークインターフェイスデバイスのオペレーティングシステム管理についてもまた説明する。1つまたは複数の実施態様において、オペレーティングシステムによって、コンピューティングデバイスの1つまたは複数のアプリケーションと関連したネットワークトラフィックが完了したことが判断される。その判断に応じて、ネットワークインターフェイスデバイスを、オペレーティングシステムによって、ネットワークインターフェイスデバイスの電力消費を抑えるためのモードに遷移させる。1つまたは複数の実施態様において、ネットワークインターフェイスデバイスが高電力モードである場合、ネットワークインターフェイスデバイスは、オペレーティングシステムによってコンピューティングデバイスの1つまたは複数のアプリケーションに対し利用可能になる。ネットワークインターフェイスデバイスが低電力モードである場合、ネットワークインターフェイスデバイスは、オペレーティングシステムによってコンピューティングデバイスの1つまたは複数のアプリケーションに対し利用不可能になる。1つまたは複数の実施態様において、1つまたは複数のコンピュータ読取り可能ストレージ媒体は、コンピューティングデバイスによる実行に応じてコンピューティングデバイスの1つまたは複数のアプリケーションによって、電力消費を抑えるためのモードにあるネットワークインターフェイスデバイスへのアクセスを制限する技術をサポートするよう構成されたオペレーティングシステムをコンピューティングデバイスに実施させる、コンピュータ読取り可能ストレージ媒体に格納された命令を備え、ネットワークインターフェイスデバイスは、プッシュ通知の受信に応答してそのモードから起動するよう構成される。キープアライブ管理keepalivemanagement技術についても説明する。1つまたは複数の実施態様において、キープアライブ間隔は、コンピューティングデバイスのオペレーティングシステムによって算出される。キープアライブ間隔を使用して、コンピューティングデバイスの1つまたは複数のアプリケーションとネットワークとの間の、1つまたは複数の通知チャネルを維持する。1つまたは複数の実施態様において、ネットワークを介して各エンドポイントを有する通知チャネルを維持するよう指定された1つまたは複数のサーバタイムアウト間隔について、コンピューティングデバイスで実行可能な複数のアプリケーションのそれぞれに対して判断される。キープアライブ間隔は、複数のアプリケーションのそれぞれに対する1つまたは複数のサーバタイムアウト間隔から算出される。キープアライブ間隔を使用して、通知チャネルを維持するために指定されたネットワークインターフェイスデバイスを起動する。1つまたは複数の実施態様において、1つまたは複数のコンピュータ読取り可能ストレージ媒体は、コンピューティングデバイスによる実行に応じて、ネットワークを介してコンピューティングデバイスで実行可能な複数のアプリケーションと1つまたは複数のエンドポイントのそれぞれとの間で通知チャネルを維持するために、キープアライブ間隔を使用するよう構成されたオペレーティングシステムをコンピューティングデバイスに実施させる、コンピュータ実行可能命令を備え、キープアライブ間隔は、ネットワークの1つまたは複数の中継デバイスの1つまたは複数のネットワークタイムアウト間隔と、1つまたは複数のアプリケーションがネットワークを介して通信する各エンドポイントの1つまたは複数のサーバタイムアウト間隔とに基づいて算出される。この発明の概要は、発明を実施するための形態において以下でさらに説明される、コンセプトの一部を簡素化して導入するものである。この発明の概要は、クレームに記載された対象の主要な特徴または重要な特徴を特定することを意図せず、クレームに記載された対象の範囲決定する際の補助として使用されることを意図するものでもない。添付図面を参照して、詳細な説明を説明する。図面において、参照番号の最も左側の桁により、参照番号が最初に現れる図面を識別する。説明および図面において、異なる例示で同じ参照番号を用いる場合、同様または同一の項目を示すことができる。ネットワーク接続されたアプリケーションは、典型的に、最新の状態であるために、長期接続を維持する能力を必要とする。しかしながら、従来技術では、このことは、可到達性を保証するために接続されたネットワークインターフェイスデバイス例えば、ネットワークインターフェイスカードを維持することを犠牲にしている可能性があり、コンピューティングデバイスのリソース使用に悪影響を及ぼす可能性がある。例えば、従来技術は、コンピューティングデバイスのアプリケーションおよびサービスが、ネットワークインターフェイスデバイスに自由にアクセスすることを可能にする。したがって、オペレーティングシステムは、典型的に、ネットワークインターフェイスデバイスがアプリケーションによって使用されている場合、任意の時点で起動しなかった。このことは、アイドル状態が検出されるまで、デバイスが低電力モードに移行するのを妨害する可能性があり、30秒かかる可能性があるため、電源装置、例えば、バッテリ寿命に重大な影響を及ぼす可能性がある。それに応じて、本明細書で説明する技術では、ネットワークブローカモジュールと呼ばれるオペレーティングシステムコンポーネントを使用して、コンピューティングデバイスのネットワークインターフェイスデバイスの使用を調整することができる。例えば、ネットワークインターフェイスデバイスは、起動パターンマネージャモジュールを使用して、コンピューティングデバイスのどのアプリケーションを、必要であれば、ネットワークトラフィックの受信に応じて起動させるかを判断することができる。起動パターンマネージャモジュールは、例えば、事前登録パターンがネットワークトラフィックに存在するかどうかを検出し、そうである場合、対応するアプリケーションを起動することができる。このようにして、起動パターンマネージャモジュールは、ネットワーク接続を活用するアプリケーションが一時停止状態にありながらも、常にオンラインで、常に接続状態にあるalwayson/alwaysconnectedユーザ体験を提供することができる。起動パターンマネージャモジュールのさらなる説明は、図2から図4に関連して見ることができる。他の例において、ネットワークブローカモジュールは、ネットワークデバイスマネージャモジュールの機能を組み込むことができる。ネットワークデバイスマネージャモジュールを使用して、例えば、コールバックをモニタリングすることによって、コンピューティングデバイスのアプリケーションと関係するネットワークトラフィックが完了したとモジュールが判断した場合、ネットワークインターフェイスデバイスを低電力モードにすることができる。したがって、オペレーティングシステムのネットワークデバイスマネージャモジュール126は、ネットワークインターフェイスデバイスとアプリケーションとの間の中継ぎとして位置付けることができる。中継ぎとして、オペレーティングシステムは、ネットワーキング活動の情報を有することができ、したがって、ネットワークインターフェイスデバイスが低電力モード、例えば、ネットワーク沈黙モードquietmodeに入ることができるかどうかを、確定的に識別することができる。ネットワークデバイスマネージャモジュールのさらなる説明は、図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からネットワークインターフェイスデバイスにブラックホールblackhole通信する可能性がある。ネットワークデバイスマネージャモジュール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、powerdependencycoordinator606と通信する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=Tmaxとして、初期段階で設定されるブロック1402。次いで、基準ポイントは、現在のTより低くなるよう試みられるブロック1404。これは、TminのWminのポーリングを含むことができ、ここでのWは、ポーリング間の再接続時間を表すブロック1406。これは、また、TがVずつインクリメントされ、Tmaxでキャップcapされた積極的チューニングを含むことができブロック1408、ここで、Vは、積極的チューニングのインクリメントを表す。システム1400は、また、値がV/Yずつインクリメントされる微細チューニングを含むことができ、ここで、Yは、積極的インクリメントの1/Yを意味する。これらの値は、T-検出値およびTLKGが絶対時間である定常状態を判断するために活用することができる。図において、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に関連してすでに述べたように、システムオンチップ型デバイスにおける接続状態スタンバイconnectedstandbyと呼ばれるシステム状態のサポートは、常にオンラインで、常に接続状態にある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は、沈黙モードに入り、入力メッセージが起動を誘引するまで、およびカーネルブローカが周期的動作のためにシステムを起動するまでなど、それまでこのモードに留まることができる。ネットワーク接続ブローカNCB1710図1のネットワークブローカモジュール122に対応してもよいし、しなくてもよいは、起動パターンマネージャ1712およびキープアライブマネージャ1714として表される、さまざまな機能を使用することができる。起動パターンマネージャWPM1712は、アプリケーション1702が、ネットワークイベント時にリハイドレートする、例えば、特定パターンの検出時に起動することができることを保証するよう構成される。キープアライブマネージャ1714は、通知チャネルが、例えば、プッシュ通知の入力がクラウドサービスから到達できるよう、アプリケーション1702に対して維持されることを保証するよう構成される。例えば、アプリケーション1702は、作業アイテムを図18のBI1802に登録することができ、それにより、アプリケーション1702が、キープアライブ動作に関心があることをオペレーティングシステム116に知らせることができる。次いで、オペレーティングシステム116は、出力パケット動作が、事前定義された時間の間、例えば、数秒の間、許可されることを指示するため、コールバックを登録したアプリケーション1702を起動する、適切な融合キープアライブ間隔を判断することができる。BI1802は、CPUおよびメモリリソースの点からサンドボックス作業アイテムとすることができる。このことは、アプリケーション1702に、各エンドポイント例えば、クラウド内のサービスに、周期的なキープアライブを実行させ、可到達性を維持することができる。このことは、また、キープアライブの過多によるリソースの非効率的な使用に対して、アプリケーションの能力を限定するために使用することができる。オペレーティングシステムは、通知サービス例えば、Windows登録商標通知サービスと共に使用して、すでに述べたように、動的キープアライブ間隔を決定することができる。例えば、動的キープアライブ間隔は、4分間隔で保守的に開始し、接続がなお維持される値にインクリメントする間隔によって定義される時間量を倍にする指数バックオフとして実施することができる。通知サービスは、この目的のためにテスト接続を使用して、動的間隔を決定することができる。1つまたは複数の実施態様において、他の実施態様もまた想定されるが、キープアライブマネージャ1714は、接続スタンバイもしくはActive/ONになるアプリケーション状態もしくはシステムを区別しない。起動パターンマネージャ1712は、ネットワークインターフェイスカードNIC1716などの、ネットワークインターフェイスデバイスに対する適切な起動パターンを組み込むための機能を表す。起動パターンマネージャ1712は、NIC1716を、ネットワーク沈黙モードエントリー時に、ウェイクオンLANWakeonLANモードに移行させることができる。例えば、NIC1716は、起動パターンのセットに一致した場合、NIC1716が着信パケットを受け入れ、送達するよう構成された、D3モードに遷移することができる。そうであれば、NIC1716を、動作状態に遷移させることができる。起動パターンは、各起動可能接続に対する<SrcAddr,DstAddr,SrcPort,DstPort,TransportProtocol>などの、さまざまなソースから送達することができる。1つまたは複数の実施態様において、NIC1716は、そのようなパケットのロスが、VoIPなどの特徴をサポートするアプリケーションに対するリアルタイム応答に影響を及ぼす可能性があるため、破棄/削除に対立してプロトコルスタックに起動させる着信パケットを通過させる。ランタイムAPIサーフェスもまた、オペレーティングシステム116によって提供されるキープアライブおよび遠隔起動機能を利用するよう構成された、アプリケーションに表示することができる。ライブラリを使用して、アプリケーションで、以下を含むさまざまな機能を実行することができる。通知チャネルの作成指示例えば、BeginSetup通知チャネルのセットアップ完了指示例えば、EndSetup分単位で所望のキープアライブ間隔を設定例えば、ServerKeepAliveIntervalTimeキープアライブイベントおよび遠隔起動イベントに対するBackgroundTaskハンドラの登録キープアライブ間隔が十分ではなかったことをシステムに指示例えば、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内に、ネットワーク単位NLMIDを基準として、推定値をキャッシュすることができる。NLMキャッシュは、キープアライブプロバイダインターフェイスとDAサイトマネージャとの間で共通とすることができるライブラリを通じてアクセスすることができる。キープアライブマネージャ1714は、キープアライブプロバイダからキープアライブ間隔推定値を要求するよう構成することができる。タイマ融合させてもよいは、SetThreadPoolTimerAPIを使用して作成することができる。時間は、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、レジスタによって作成ならびに使用されるオペークopaqueNCContextIDイベント報知中にBIに通される、したがって、appにとって有意である、オプションのオペーク通知チャネルID、およびオプションの遠隔起動ブローカイベントを含むタプルによって識別することができる。NCBレジスタ1804は、WPMに、StartPID、NCContextID、AppNCID、BrokeredEventおよびDone例えば、NCContextを設定、および消去を指示するよう構成することができる。NCBレジスタ1804は、また、実際のアプリケーション処理PIDが、Start/Doneタイムスパン中に、完全な形で残る例えば、リサイクルされないことを保証することができる。NCBレジスタ1804は、クライアント処理で参照するRPCAPIを使用することによって、これを達成することができる。NCBは、NSI1814を介して、WPM1808にStartおよびDoneを指示することができる。WPMは、この目的のために、ポート予約NSIオブジェクトと同様とすることができるINETNSIオブジェクトを示すことができる。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モジュールで実現することができる起動パターンマネージャWPM1808は、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_SORTioctlは、また、その処理に対するアクティブNCContextが存在する間、Ioctlが処理によって発行されているかどうかを意識するよう変更することができ、そうである場合、ソートロジックは、トンネルインターフェイスより、ネイティブインターフェイス上のアドレスを選ぶことができる。WPM1808は、また、ルータによってアドバタイズされたIPv6サブネットプレフィックスを使用することによって形成されるIPv6アドレスに対する残りの有効なライフタイムを追跡するために、タイマを保つことができる。ルータアドバタイズメントが、起動可能低電力状態でNICによって失われた可能性のある場合、IPv6プレフィックスタイムアウトは、タイムアウト発生前に、明示的ルータ要請を介してリフレッシュすることができ、そうでなければ、L3識別情報は、場合によっては、確実には保護されない可能性がある。WPM1808は、NDISAPIを使用して、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の一体型コンポーネントとして実現される。結論本発明は、構造的特徴及び又は方法論的動作に特有の言語で説明してきたが、添付の特許請求の範囲で定義される本発明は、記載した特定の特徴または動作に必ずしも限定されないことを理解すべきである。むしろ、特定の特徴および行為は、特許請求する本発明を実現する例示的形態として開示される。"