送信用のデータを集約する方法であって、アプリケーションプログラミングインターフェースを介してアプリケーションから送信遅延耐性を示す情報を受信するステップと、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションからパケットを受信するステップと、前記受信した送信遅延耐性に基づいて前記パケットをいつ送信すべきかを判断するステップとを含む方法。前記アプリケーションから送信遅延耐性を示す情報を受信するステップが、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションによって書き込まれた情報をメモリから取り出すステップを含む、請求項1に記載の方法。前記アプリケーションから送信遅延耐性を示す情報を受信するステップが、前記パケットのヘッダを受信するステップを含む、請求項1に記載の方法。送信遅延耐性を示す前記情報が、いくつかの時間単位を示す情報を含む、請求項1に記載の方法。データの前記パケットをいつ送信すべきかを判断するステップが、データの前記パケットを受信してから経過した時間が前記送信遅延耐性に基づく時間を超えるかどうかに基づく、請求項1に記載の方法。前記パケットをいつ送信すべきかを判断するステップが、バッテリ電力を節約するために複数のパケットを集約するステップを含む、請求項1に記載の方法。送信遅延耐性を示す情報を受信するステップが、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションから第1のタイプのパケットに関連する第1の送信遅延耐性を示す情報を受信し、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションから第2のタイプのパケットに関連する第2の送信遅延耐性を示す情報を受信するステップを含み、前記パケットを受信するステップが、前記パケットが前記第1のタイプか前記第2のタイプかを判断するステップを含み、前記パケットをいつ送信すべきかを判断するステップが、前記パケットの前記判断されたタイプに基づいて前記パケットをいつ送信すべきかを判断するステップを含む、請求項1に記載の方法。送信用のデータを集約するためのワイヤレスデバイスであって、アプリケーションプログラミングインターフェースを介してアプリケーションから送信遅延耐性を示す情報を受信し、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションからパケットを受信するように構成されたプロセッサと、前記受信した送信遅延耐性に基づいて前記パケットをいつ送信すべきかを判断するように構成されたネットワークドライバとを備えるワイヤレスデバイス。メモリをさらに備え、前記プロセッサが、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションによって書き込まれた情報を前記メモリから取り出すようにさらに構成される、請求項8に記載のワイヤレスデバイス。前記プロセッサが、前記アプリケーションから前記パケットのヘッダ内の送信遅延耐性を示す情報を受信するようにさらに構成される、請求項8に記載のワイヤレスデバイス。送信遅延耐性を示す前記情報が、いくつかの時間単位を示す情報を含む、請求項8に記載のワイヤレスデバイス。前記プロセッサが、データの前記パケットを受信してから経過した時間が前記送信遅延耐性に基づく時間を超えるかどうかに基づいて、データの前記パケットをいつ送信すべきかを判断するようにさらに構成される、請求項8に記載のワイヤレスデバイス。前記プロセッサが、バッテリ電力を節約するために複数のパケットを集約することによって、前記パケットをいつ送信すべきかを判断するようにさらに構成される、請求項8に記載のワイヤレスデバイス。前記プロセッサが、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションから第1のタイプのパケットに関連する第1の送信遅延耐性を示す情報を受信し、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションから第2のタイプのパケットに関連する第2の送信遅延耐性を示す情報を受信することによって、送信遅延耐性を示す情報を受信するようにさらに構成され、前記プロセッサが、前記パケットが前記第1のタイプか前記第2のタイプかを判断することによって、前記パケットを受信するようにさらに構成され、前記プロセッサが、前記パケットの前記判断されたタイプに基づいて前記パケットをいつ送信すべきかを判断するようにさらに構成される、請求項8に記載のワイヤレスデバイス。送信用のデータを集約するためのワイヤレスデバイスであって、アプリケーションプログラミングインターフェースを介してアプリケーションから送信遅延耐性を示す情報を受信するための手段と、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションからパケットを受信するための手段と、前記受信した送信遅延耐性に基づいて前記パケットをいつ送信すべきかを判断するための手段とを備えるワイヤレスデバイス。前記アプリケーションから送信遅延耐性を示す情報を受信するための前記手段が、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションによって書き込まれた情報をメモリから取り出すための手段を備える、請求項15に記載のワイヤレスデバイス。前記アプリケーションから送信遅延耐性を示す情報を受信するための前記手段が、前記パケットのヘッダを受信するための手段を備える、請求項15に記載のワイヤレスデバイス。送信遅延耐性を示す前記情報が、いくつかの時間単位を示す情報を含む、請求項15に記載のワイヤレスデバイス。データの前記パケットをいつ送信すべきかを判断するステップが、データの前記パケットを受信してから経過した時間が前記送信遅延耐性に基づく時間を超えるかどうかに基づく、請求項15に記載のワイヤレスデバイス。前記パケットをいつ送信すべきかを判断するための前記手段が、バッテリ電力を節約するために複数のパケットを集約するための手段を備える、請求項15に記載のワイヤレスデバイス。送信遅延耐性を示す情報を受信するための前記手段が、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションから第1のタイプのパケットに関連する第1の送信遅延耐性を示す情報を受信し、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションから第2のタイプのパケットに関連する第2の送信遅延耐性を示す情報を受信するための手段を備え、前記パケットを受信するための前記手段が、前記パケットが前記第1のタイプか前記第2のタイプかを判断するための手段を備え、前記パケットをいつ送信すべきかを判断するための前記手段が、前記パケットの前記判断されたタイプに基づいて前記パケットをいつ送信すべきかを判断するための手段を備える、請求項15に記載のワイヤレスデバイス。実行されると、装置に送信用のデータを集約する方法を実行させる命令が符号化されて記憶されるコンピュータ可読記憶媒体であって、前記方法が、アプリケーションプログラミングインターフェースを介してアプリケーションから送信遅延耐性を示す情報を受信するステップと、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションからパケットを受信するステップと、前記受信した送信遅延耐性に基づいて前記パケットをいつ送信すべきかを判断するステップとを含むコンピュータ可読記憶媒体。前記アプリケーションから送信遅延耐性を示す情報を受信するステップが、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションによって書き込まれた情報をメモリから取り出すステップを含む、請求項22に記載のコンピュータ可読記憶媒体。前記アプリケーションから送信遅延耐性を示す情報を受信するステップが、前記パケットのヘッダを受信するステップを含む、請求項22に記載のコンピュータ可読記憶媒体。送信遅延耐性を示す前記情報が、いくつかの時間単位を示す情報を含む、請求項22に記載のコンピュータ可読記憶媒体。データの前記パケットをいつ送信すべきかを判断するステップが、データの前記パケットを受信してから経過した時間が前記送信遅延耐性に基づく時間を超えるかどうかに基づく、請求項22に記載のコンピュータ可読記憶媒体。前記パケットをいつ送信すべきかを判断するステップが、バッテリ電力を節約するために複数のパケットを集約するステップを含む、請求項22に記載のコンピュータ可読記憶媒体。送信遅延耐性を示す情報を受信するステップが、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションから第1のタイプのパケットに関連する第1の送信遅延耐性を示す情報を受信し、前記アプリケーションプログラミングインターフェースを介して前記アプリケーションから第2のタイプのパケットに関連する第2の送信遅延耐性を示す情報を受信するステップを含み、前記パケットを受信するステップが、前記パケットが前記第1のタイプか前記第2のタイプかを判断するステップを含み、前記パケットをいつ送信すべきかを判断するステップが、前記パケットの前記判断されたタイプに基づいて前記パケットをいつ送信すべきかを判断するステップを含む、請求項22に記載のコンピュータ可読記憶媒体。したがって、ワイヤレスデバイス上のアプリケーション向けの通信管理を提供する効率的で費用効果の高い機構が必要である。具体的には、通信の遅延した送信に関するポリシーを管理するシステムおよび方法が必要である。本発明のシステム、方法およびデバイスはそれぞれいくつかの態様を有し、それらのうちの単一の態様が単独で、その望ましい属性を担うわけではない。以下の特許請求の範囲によって表される本発明の範囲を限定することなく、いくつかの特徴がここで簡単に論じられる。この議論を考慮した後で、また特に発明を実施するための形態と題するセクションを読んだ後で、本発明の特徴が、アプリケーション通信遅延耐性の管理を含む利点をどのようにして提供するのかが理解されよう。本開示の一態様は、送信用のデータを集約する方法を提供する。方法は、アプリケーションプログラミングインターフェースを介してアプリケーションから情報を受信するステップを含む。情報は、送信遅延耐性を示す。方法は、アプリケーションプログラミングインターフェースを介してアプリケーションからパケットを受信するステップをさらに含む。方法は、受信した送信遅延耐性に基づいてパケットをいつ送信すべきかを判断するステップをさらに含む。本開示の別の態様は、送信用のデータを集約するためのワイヤレスデバイスを提供する。ワイヤレスデバイスは、アプリケーションプログラミングインターフェースを介してアプリケーションから情報を受信するように構成されたプロセッサを含む。情報は、送信遅延耐性を示す。プロセッサは、アプリケーションプログラミングインターフェースを介してアプリケーションからパケットを受信するようにさらに構成される。ワイヤレスデバイスは、受信した送信遅延耐性に基づいてパケットをいつ送信すべきかを判断するように構成されたネットワークドライバをさらに含む。本開示の別の態様は、送信用のデータを集約するためのワイヤレスデバイスを提供する。ワイヤレスデバイスは、アプリケーションプログラミングインターフェースを介してアプリケーションから情報を受信するための手段を含む。情報は、送信遅延耐性を示す。ワイヤレスデバイスは、アプリケーションプログラミングインターフェースを介してアプリケーションからパケットを受信するための手段をさらに含む。ワイヤレスデバイスは、受信した送信遅延耐性に基づいてパケットをいつ送信すべきかを判断するための手段をさらに含む。本開示の別の態様は、実行されると、装置に送信用のデータを集約する方法を実行させる命令が符号化されている非一時的コンピュータ可読媒体を提供する。方法は、アプリケーションプログラミングインターフェースを介してアプリケーションから情報を受信するステップを含む。情報は、送信遅延耐性を示す。方法は、アプリケーションプログラミングインターフェースを介してアプリケーションからパケットを受信するステップをさらに含む。方法は、受信した送信遅延耐性に基づいてパケットをいつ送信すべきかを判断するステップをさらに含む。本明細書で説明する上記の態様は、添付の図面と併せて、以下の発明を実施するための形態を参照することで、より容易に明らかになろう。添付の図面を参照しながら、新規のシステム、装置および方法の様々な態様について以下でより十分に説明する。しかしながら、本教示の開示は、多くの異なる形態で具現化されてよく、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が徹底的で完全になり、本開示の範囲を当業者に十分に伝えるように与えられるものである。本明細書の教示に基づいて、本開示の範囲は、本発明の任意の他の態様とは無関係に実装されるか、本発明の任意の他の態様と組み合わせて実装されるかにかかわらず、本明細書で開示する新規のシステム、装置および方法のいかなる態様をも包含するものであることを、当業者は諒解されたい。たとえば、本明細書に記載の態様をいくつ使用しても、装置を実装することができ、または方法を実施することができる。さらに、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えて、またはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置またはそのような方法を包含するものとする。本明細書で開示するいずれの態様も、請求項の1つまたは複数の要素によって具現化され得ることを理解されたい。特定の態様について本明細書で説明するが、これらの態様の多くの変形体および置換は本開示の範囲内に入る。好ましい態様のいくつかの利益および利点に言及するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であるものとし、そのうちのいくつかが例として図および好ましい態様についての以下の説明で示される。発明を実施するための形態および図面は、限定的なものではなく本開示を説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびその等価物によって規定される。本明細書で説明する技法は、符号分割多元接続ネットワーク、時分割多元接続ネットワーク、周波数分割多元接続ネットワーク、直交FDMAネットワーク、シングルキャリアFDMAネットワークなどの様々なワイヤレス通信ネットワークに使用され得る。ネットワークおよびシステムという用語は、しばしば互換的に使用される。CDMAネットワークは、UniversalTerrestrialRadioAccess、CDMA2000などの無線技術を実装し得る。UTRAは、広帯域CDMAおよび低チップレートを含む。CDMA2000は、IS2000規格、IS95規格およびIS856規格をカバーする。TDMAネットワークは、GlobalSystemforMobileCommunicationsなどの無線技術を実装し得る。OFDMAネットワークは、EvolvedUTRA、IEEE80211、IEEE80215、IEEE80216、IEEE80220、FlashOFDMなどの無線技術を実装し得る。UTRA、EUTRAおよびGSMは、UniversalMobileTelecommunicationmanagementsystemの一部である。ロングタームエボリューションは、EUTRAを使用するUMTSの来るべきリリースである。UTRA、EUTRA、GSM、UMTSおよびLTEは、3rdGenerationPartnershipProjectという名称の組織からの文書に記載されている。CDMA2000は、3rdGenerationPartnershipProject2という名称の組織からの文書に記載されている。これらの様々な無線技術および規格は、当技術分野で知られている。図1は、通信管理システム108の態様を示す例示的なネットワーク環境100を示す。ネットワーク環境100は、ワイヤレスデバイス102、通信ネットワーク104、およびサーバ110を含む。デバイス102は、対応する無線インターフェースチャネル106を使用してネットワーク104と通信するための複数の無線インターフェースを含む。デバイス102は、たとえば特定のアプリケーションによって、複数の無線インターフェースへのアクセスを制御するように動作する通信管理システム108も含む。ワイヤレスデバイス102は、通信ネットワーク104を介してサーバ110と通信し得る。サーバ110は、通信チャネル112を介して通信ネットワーク104に接続する。通信チャネル112は、ワイヤードチャネルまたはワイヤレスチャネルのいずれかであり得る。動作中、ワイヤレスデバイス102は、複数の無線インターフェースのうちのいずれかを使用してネットワーク104とインターフェースをとることができるアプリケーションを実行する。たとえば、実行中のアプリケーションは、ソケットレイヤ呼出しなどのネットワーキング関数呼出しを発して、ネットワーク104との通信用のネットワークリソースを要求することができる。一実施形態では、通信管理システム108は、デフォルトルーティング構成に基づいてソケットレイヤ呼出しを処理して、所定の無線インターフェースリソースをアプリケーションにバインドし得る。アプリケーションは、データの1つまたは複数のパケットを、たとえば、通信チャネル112を介して、サーバ110に送信し得る。一実施形態では、アプリケーションは、送信されたパケットに送信遅延耐性パラメータを含み得る。送信遅延耐性パラメータは、たとえば、各パケットのヘッダに含まれ得る。送信遅延耐性パラメータは、アプリケーション通信の許容可能な遅延を示し得る。たとえば、ソーシャルメディアアプリケーションなどの、更新のために時々サーバ110にアクセスするアプリケーションは、比較的遅延耐性であり得る。一方、ビデオチャットまたはウェブブラウジングアプリケーションなどの対話型アプリケーションは、比較的遅延非耐性であり得る。様々な実施形態では、送信遅延耐性パラメータは、たとえば、分、秒、ミリ秒、マイクロ秒、シンボル、クロックチック、フレーム周期などのいくつかの時間単位で区分された許容可能な遅延を示し得る。一実施形態では、送信遅延耐性パラメータは、相対的な優先度値として区分された許容可能な遅延を示し得る。一実施形態では、送信遅延耐性パラメータは、一度に遅延し得るパケットの最大許容数を示し得る。様々な実施形態では、送信遅延耐性パラメータは、単一のアプリケーションからの、またはすべてのアプリケーショントラフィックの集合体としての遅延したパケットの最大許容数を示し得る。アプリケーションは、ユーザ選好、アプリケーションがフォアグラウンドで動作しているかバックグラウンドで動作しているか、または時刻を含むいくつかの要因に基づいて、パケットに対する送信遅延耐性を生成することができる。アプリケーションは、たとえば、FINパケットまたはコンテンツパケットなどの異なるタイプのパケットに対して異なるように送信遅延耐性を設定することができる。送信遅延耐性は、各パケットに対して個別に設定することができ、またはアプリケーションプログラミングインターフェースを使用してアプリケーションによって設定して、特定のタイプの将来生成されるパケットに関するカーネルメタデータを定義することができる。様々な実装形態では、通信管理システム108は、アプリケーションからパケットをインターセプトするように動作する。たとえば、通信管理システム108は、アプリケーションプログラミングインターフェースを介してアプリケーションからパケットを受信し得る。通信管理システム108は、インターセプトされた各パケット内の送信遅延耐性パラメータに従ってアプリケーションの通信を変更し得る。本明細書で使用する場合、通信の変更は、限定はしないが、通信を遅延させることまたはさもなければ通信に影響を与えることを含むことができる。通信管理システム108が遅延耐性パラメータに従って通信を遅延させる実施形態では、通信管理システム108は、電力を節約するために1つまたは複数の無線インターフェースを無効にし得る。遅延の後、通信管理システム108は、1つまたは複数の無効にされた無線インターフェースを起動し得る。次いで、通信管理システム108は、アプリケーションをネットワークリソースにバインドし得る。通信管理システム108のより詳細な説明は、以下で与えられる。図2は、通信管理を提供するように構成された例示的なワイヤレスデバイス200を示す。デバイス200は、プロセッサ202、メモリ204、およびTXRX無線212を含み、すべてが通信バス214を使用して通信するように結合されている。ワイヤレスデバイス200は、図1に関して上記で説明したワイヤレスデバイス102であり得る。デバイス200は一実装形態にすぎず、他の実装形態が可能であることに留意されたい。一態様では、プロセッサ202は、アプリケーションレイヤモジュール206、接続エンジン208、およびネットワーキングモジュール210を含む。プロセッサ202は、CPU、マイクロプロセッサ、ゲートアレイ、ハードウェア論理、メモリ要素、およびまたはハードウェア実行ソフトウェアのうちの少なくとも1つも含み得る。プロセッサ202は、デバイス200上で実行されるアプリケーションの通信が選択的に変更され得る、影響され得る、遅延し得るおよびまたは所望の無線にバインドされ得るように、デバイス200の動作を制御するように構成される。一実装形態では、プロセッサ202は、複数の機能のうちのいずれかを実行することに関連するコンピュータ可読命令を実行するように構成される。たとえば、プロセッサ202は、デバイス200から受信または通信された情報を解析して、通信管理を実施するように動作する。別の態様では、プロセッサ202は、メモリ204、アプリケーションレイヤモジュール206、TXRX無線212、およびまたは接続エンジン208によって利用され得る情報を生成して、通信管理を実施するように動作する。TXRX無線212は、複数の無線チャネル216を使用してデバイス200を外部通信ネットワーク104などの複数の外部エンティティとインターフェースするために使用され得る複数の無線インターフェースを提供するように構成されたハードウェアおよびまたはプロセッサ実行ソフトウェアを含む。無線チャネル216は、たとえば、図1に関して上記で説明した無線チャネル106であり得る。TXRX無線212は、無線インターフェースを提供して、セルラー、WiFi、Bluetooth、または任意の他の技術を使用して、無線チャネル216を使用する通信ネットワークと通信し得る。TXRX無線212の無線インターフェースは、たとえば送信されるデータがないときに電力を節約するために、選択的に有効および無効にされ得る。アプリケーションレイヤモジュール206は、デバイス200上で1つまたは複数のアプリケーションを実行し、アプリケーションをメモリ204に記憶するように構成されたハードウェアおよびまたはプロセッサ実行ソフトウェアを含む。一実装形態では、アプリケーションレイヤモジュール206は、アプリケーションがネットワーキングモジュール210に対してネットワーキング関数呼出しを開始して、ネットワーキングサービスを要求するのを可能にするように構成される。ネットワーキング関数呼出しは、無線チャネル216を介して外部ネットワークまたはシステムと通信するためのTXRX無線212における無線インターフェースへの接続要求を含み得る。ネットワーキングモジュール210は、ネットワーキング関数を実行するように構成されたハードウェアおよびまたはプロセッサ実行ソフトウェアを含む。一実装形態では、ネットワーキング関数は、connect、Bind、write、およびSetsockoptなどの関数を含む。connect関数は、アプリケーションと特定の無線インターフェースとの間の接続を確立するように動作する。write関数は、接続を介してデータを送信するように動作する。たとえば、特定の無線インターフェースは、TXRX無線212によって提供される複数の候補無線から選択され得る。一実施形態では、Setsockopt関数は、遅延耐性パラメータを設定するために使用され得る。一態様では、ネットワーキングモジュール210は、様々なネットワーキング関数またはコマンドを実行するように構成される。一態様では、ネットワーキングモジュール210は、たとえば、遅延耐性パラメータに基づいて、一定の関数が進行することができるようにしてもよく、他の関数が進行することができないようにしてもよい。接続エンジン208は、システムリソースを評価して、アプリケーションからの通信を管理するように構成されたハードウェアおよびまたはプロセッサ実行ソフトウェアを含む。様々な実装形態では、接続エンジン208は、アプリケーション通信をインターセプトし、選択的に通信を変更し、通信に影響を与え、およびもしくは通信を遅延させ、ならびにあるいは以下の選択基準のうちの1つまたは複数に基づいて特定の無線を選択するように構成される。1ユーザポリシーデバイスで実行されているアプリケーションによる無線アクセスに関してデバイスユーザによって設定されるポリシー。2事業者ポリシーデバイスまたはアプリケーションによるネットワークアクセスに関してネットワーク事業者によって設定されるポリシー。3無線メトリック特定のアプリケーションまたは動作環境にとって最も好ましい無線を選択するために使用される無線性能の測定値または他のタイプの測定値。4アプリケーション要件帯域幅要件または遅延性能要件などの要求アプリケーションに関連する要件。アプリケーション要件は、たとえば、遅延耐性パラメータを含み得る。5ネットワークの有用性特定の無線インターフェース上の特定のネットワークのアベイラビリティに関する情報。6ベンダー供給メトリック受信信号強度表示およびパケットロスレートなどの無線メトリックから特定の無線インターフェースで利用可能なスループットおよび遅延に変換するための情報。7アクセスポイントのアベイラビリティ他のデバイスまたは無線リンクを構成し得るがパケットをネットワークに転送しないデバイスからのトラフィックによって輻輳されたアクセスポイントに対する一意の識別子を特定する情報。プロセッサ202は、TXRX無線212を介して上記の選択基準のうちの1つまたは複数をダウンロードし得る。選択基準は、メモリ204に記憶され得る。たとえば、プロセッサ202は、事業者ポリシーを取り出すことができ、接続エンジン208は事業者ポリシーを適用することができる。事業者ポリシーは、ワイヤレスデバイス200上のアプリケーションによるネットワークアクセスを規制する複数のルールを含み得る。メモリ204は、RAM、ROM、EEPROMあるいはアプリケーションおよびまたは選択基準がデバイス200で記憶され、取り出されることを可能にするように動作する任意の他のタイプのメモリデバイスを含む。一実装形態では、メモリ204は、プロセッサ202によって実行されるコンピュータ可読命令を記憶するように構成される。メモリ204は、プロセッサ202、TXRX無線212、アプリケーションレイヤモジュール206、ネットワーキングモジュール210、およびまたは接続エンジン208のいずれかによって生成されたデータを含む複数の他のタイプのデータのいずれかを記憶するようにも構成され得る。メモリ204は、ランダムアクセスメモリ、バッテリバックアップ付きメモリ、ハードディスク、磁気テープとしてなどを含む、いくつかの異なる構成で構成され得る。また、圧縮および自動バックアップなどの様々な機能は、メモリ204上で実施され得る。メモリ204は、プリロードライブラリ218およびネットワーキングライブラリ220を記憶するように構成される。プリロードライブラリ218は、アプリケーションからソケット呼出しをインターセプトする。ネットワーキングライブラリ220は、ソケットを作成および接続してネットワーク通信を確立するために、アプリケーションによって使用されるネットワーキングAPIを提供する。接続エンジン208は、様々な方法で選択的にアプリケーション通信を変更し、アプリケーション通信に影響を与え、およびまたはアプリケーション通信を遅延させるように構成される。たとえば、接続エンジン208は、上記の選択基準のうちの1つまたは複数を使用して通信を遅延させるように構成され得る。たとえば、接続エンジン208は、遅延耐性パラメータに基づいて、遅延耐性アプリケーションからの通信のみを遅延させることができる。一実施形態では、接続エンジン208は、ワイヤレスデバイス200がアイドル状態かどうかに基づいて、通信を遅延させることができる。一実施形態では、接続エンジン208は、ワイヤレスデバイス200がアクティブ状態に入るまで、遅延耐性アプリケーションの通信を遅延させる。別の実施形態では、接続エンジン208は、遅延非耐性アプリケーションが通信を開始するまで、遅延耐性アプリケーションの通信を遅延させる。接続エンジン208は、様々な方法で複数の候補無線から無線を選択するようにも構成され得る。たとえば、接続エンジン208は、上記の選択基準のうちの1つまたは複数を使用して無線を選択するように構成され得る。一実施形態では、接続エンジン208は、たとえば、アプリケーション通信が遅延しているときに電力を節約するために、1つまたは複数の無線を選択的に有効無効にすることができる。アプリケーション通信が遅延していないとき、接続エンジン208は、アプリケーションをその無線を表すインターフェースにバインドする。たとえば、一実装形態では、接続エンジン208は、元のネットワーキングライブラリ220に呼び出すことによってアプリケーションを無線のインターフェースにバインドする。したがって、接続エンジン208およびプリロードライブラリ218における関数は、ネットワーキングライブラリ220内のbind関数などの関数に容易にアクセスして、アプリケーション用に選択された無線にバインドすることができる。様々な実装形態では、通信管理システムは、コンピュータ可読媒体上で記憶または具現化される1つまたは複数のプログラム命令もしくはコードのセットを有するコンピュータプログラム製品を含む。コードが少なくとも1つのプロセッサ、たとえば、プロセッサ202によって実行されるとき、その実行により、プロセッサ202はデバイス200を制御して、本明細書で説明するインテリジェントインターフェース選択システムの機能を提供する。たとえば、コンピュータ可読媒体は、フレキシブルディスク、CDROM、メモリカード、FLASHメモリデバイス、RAM、ROM、またはデバイス200にインターフェースする任意の他のタイプのメモリデバイスもしくはコンピュータ可読媒体を含む。別の態様では、コードのセットは、外部デバイスまたは通信ネットワークリソースからデバイス200にダウンロードされ得る。コードのセットは、実行されると、本明細書で説明するインテリジェントインターフェース選択システムの態様を提供するように動作する。図3は、通信管理を提供する例示的な方法のフローチャート300を示す。分かりやすくするために、図2に示すデバイス200を参照しながらフローチャート300について以下で説明する。ただし、当業者は、任意の適切なデバイスを用いて図示する方法を実施することができることを諒解されよう。一実装形態では、プロセッサ202は、デバイス200の機能要素を制御するための1つまたは複数のコードのセットを実行して、以下で説明する機能を実行する。ブロック302において、プロセッサ202はアプリケーションを起動する。アプリケーションは、アプリケーションレイヤモジュール206の一部であるレガシーまたは非レガシーアプリケーションであり得る。たとえば、アプリケーションは、ネットワーキング関数呼出しを生成して、TXRX無線212で利用可能な無線を使用してワイヤレスネットワークに接続するネットワークブラウザであり得る。ブロック304において、プロセッサ202は、プリロードライブラリを構成し、ロードする。たとえば、プリロードライブラリ218は、通信ネットワークを評価するためにアプリケーションによって使用される、ネットワーキングライブラリ220内に提供されるネットワーキング関数のサブセットを含む。プリロードライブラリ218内のネットワーキング関数は、デバイスで実行されているアプリケーションからネットワーキング関数呼出しをインターセプトするように構成される。たとえば、プリロードライブラリ218は、デバイス200で実行されているアプリケーションによってソケット呼出しをインターセプトするために使用され得るPOSIXソケット関数を含む。一実装形態では、プリロードライブラリ218はメモリ204に記憶される。一実装形態では、プリロードライブラリ218関数は、呼出しアプリケーションから渡された引数を受信し、これらの引数を使用して、アプリケーションの目的に最も適した無線を選択するための要求を接続エンジン208に対して生成するように構成される。ブロック306において、プロセッサ202は、プリロードライブラリを実行環境にリンクする。たとえば、プロセッサ202は、ネットワーキングライブラリ220よりも高い優先度でプリロードライブラリ218を実行環境にリンクする。したがって、アプリケーションによるネットワーキング関数呼出しは、プリロードライブラリ218内の関数によってインターセプトおよび処理され、ネットワーキングライブラリ220内の類似の関数によって処理されない。ブロック308において、プロセッサ202は、アプリケーションからパケットを受信する。プロセッサ202は、アプリケーションから送信遅延耐性も受信し得る。一実施形態では、アプリケーションは、APIを介して、たとえば、ネットワーキング関数呼出しを使用して、パケットの送信を開始し得る。ネットワーキング関数呼出しは、connect関数またはwrite関数などのPOSIXソケット関数呼出しであり得る。一実施形態では、アプリケーションは、送信遅延耐性を設定することによってパケットの遅延耐性を示し得る。一実施形態では、アプリケーションは、たとえば、setsockopt関数呼出しを使用して、送信遅延耐性を設定し得る。一実施形態では、アプリケーションは、ユーザ選好に基づいて、パケットに対する送信遅延耐性を生成し得る。たとえば、定期的な更新を受信するアプリケーションは、ユーザが更新間の最小時間および最大時間を決定するのを可能にし得る。別の実施形態では、アプリケーションは、アプリケーションがフォアグラウンドで実行しているかバックグラウンドで実行しているかに基づいて、パケットに対する送信遅延耐性を生成し得る。たとえば、アプリケーションは、フォアグラウンドで動作しているときはより低い遅延耐性、バックグラウンドで動作しているときはより高い遅延耐性を割り当て得る。別の実施形態では、アプリケーションは、時刻に基づいて、パケットに対する送信遅延耐性を生成し得る。たとえば、アプリケーションは、真夜中に送信されるパケットにより高い遅延耐性を割り当て得る。いくつかの実施形態では、アプリケーションは、異なるタイプのパケットに対して異なるように送信遅延耐性を設定することができる。たとえば、ウェブブラウジングアプリケーションは、FINパケットに対しては比較的高い送信遅延耐性、コンテンツパケットに対しては比較的低い送信遅延耐性を設定し得る。したがって、FINパケットは、コンテンツパケットがその遅延耐性に達するまで、遅延し得る。様々な実施形態では、異なる送信遅延耐性を、SYNパケット、FINパケット、およびデータパケットを含む異なるパケットタイプに割り当てることができる。一実施形態では、アプリケーションは、各パケットに対して個別に送信遅延耐性を設定し得る。別の実施形態では、アプリケーションは、アプリケーションプログラミングインターフェースを介して遅延ポリシーを提供して、特定のタイプの将来生成されるパケットに関するカーネルメタデータを定義し得る。遅延ポリシーは1つまたは複数のルールを含むことができ、そのルールに基づいてネットワークスタックが遅延耐性を割り当て得る。たとえば、アプリケーションは、ネットワークスタックが特定の遅延耐性をすべてのFINパケットに割り当てるべきルールを提供し得る。ルールは、ソースアプリケーション、宛先ホスト名、宛先ホストアドレス、ソースポート番号および宛先ポート番号、環境変数などを含む基準を含むことができる。アプリケーションは、ネットワーキング関数呼出しを生成して、外部ネットワークとの通信を可能にするための無線に接続する。ネットワーキングライブラリ220よりも高い優先度でプリロードライブラリ218を実行環境にリンクすることにより、プロセッサ202は、プリロードライブラリ218内の関数によってネットワーキング関数呼出しをインターセプトする。一実施形態では、プロセッサ202は、アプリケーション遅延パラメータに従ってネットワーキング関数呼出しを遅延させることができる。たとえば、図9に関して、さらなる詳細について本明細書で説明する。ブロック310において、プリロードライブラリ218内の呼び出された関数は、接続エンジン208に対して、アプリケーションが使用する適切な無線を選択するための選択要求を生成する。要求は、アプリケーションが使用する適切な無線を選択するために接続エンジン208によって使用される選択基準の一部である任意の情報を含む。別の実施形態では、プリロードライブラリ218内の呼び出された関数は、接続エンジン208に対して、通信を遅延させるべきかどうかを判断するための選択要求を生成する。ブロック312において、選択基準が評価される。一実装形態では、接続エンジン208は、上記で説明した選択基準を評価するように動作する。たとえば、接続エンジン208は、プロセッサ202と通信して、選択基準の一部である事業者ポリシーを評価し得る。ブロック314において、接続エンジン208は、選択基準の評価に基づいて無線を選択する。たとえば、接続エンジン208は、選択基準に最も一致する無線を選択するように動作する。ブロック316において、接続エンジン208は、アプリケーション用に選択された無線のインターフェースにバインドする。たとえば、一実装形態では、接続エンジン208は、ネットワーキングライブラリ220のbind関数を呼び出して、アプリケーション用に選択された無線にバインドする。たとえば、接続エンジン208は、ネットワーキングライブラリ220と、プリロードライブラリ218によってインターセプトされることなく、その関数にどのように直接アクセスするかとに気づいている。一実施形態では、接続エンジン208は、アプリケーションを無線にバインドする前またはバインドした後に通信を遅延させる。一実施形態では、無線をバインドすることは、アプリケーション通信を遅延させた後に、無効にされた無線を有効にするまたは電源切断された無線を起動することを含み得る。ブロック318において、アプリケーションは次いで、ネットワーク通信用に選択された無線を利用する。随意の動作では、方法はブロック312に進み、ここで、接続エンジン208は選択基準の定期的な評価を実行して、現在の無線が選択基準に最も一致しているかどうかを判断するように動作する。選択基準の別の評価の後に、現在の無線以外の無線が選択基準に最も一致すると接続エンジン208が判断した場合、接続エンジン208は、接続を再起動して新しい接続のために異なる無線を選択するようにアプリケーションをトリガする手段として、接続を破棄し得る。したがって、随意の動作により、選択基準を定期的に評価して、所望の通信を実施するために最も適切な無線が選択されることを保証することができる。したがって、フローチャート300は、レガシーおよび非レガシーアプリケーションとともに使用するための通信管理を提供する。フローチャート300は一実装形態にすぎず、フローチャート300の動作は、他の実装形態が可能であるように並べ替えられ、または場合によっては変更され得ることに留意されたい。ワイヤレスデバイスアプリケーションのためのアプリケーション遅延管理スマートフォン、携帯情報端末などのワイヤレスデバイスでは、ソフトウェアアプリケーションはバックグラウンドで動作することができ、数分ごとにネットワークアクティビティを開始することができる。たとえば、メーラーアプリケーションは、ネットワークドライバにモデムをウェイクアップさせて、3分ごとに情報を送信することができる。金融トラッカーアプリケーションは、ネットワークドライバにモデムをウェイクアップさせて、2分ごとに情報を送信することができる。異なる周期により、モデムは2分ごとよりも高い頻度でウェイクし、電力を浪費する。ソーシャルネットワーキングアプリケーション、電子メール、または他の通信アプリケーション、データフィードなどのアプリケーションは、異なる周期でデータを送受信し得る。図4は、例示的なデバイスのアプリケーションネットワークアクティビティのグラフ400を示す。グラフ400のx軸は時間を示し、y軸は各時間における転送されたデータ量をバイト単位で示す。グラフ400は、デバイスがアイドルモードである約2時間の期間中のネットワークアクティビティを示す。一実施形態では、ユーザがデバイスと対話しないおよびまたはディスプレイがオフであるとき、デバイスはアイドルモードである。デバイスはアイドルモードであるが、動作を継続するアプリケーションは、アクティビティ中にスパイク、たとえば、第1のアプリケーションスパイク410a~iを引き起こす。そのようなアプリケーションは、バックグラウンドアプリケーションと呼ぶことができる。これらのアプリケーションによるアクティビティは、無線212内の無線などの通信リソースを利用し得る。第1のアプリケーションスパイク410a~iなどのネットワークアクティビティスパイクにより、ワイヤレスデバイスはアイドルモードから接続モードに移行し得る。接続モードでは、デバイスは無線を起動することができ、シグナリングトラフィックを生成することができ、アイドルモードのときよりも多い電力量を消費し得る。場合によっては、スパイクは、ワイヤレスデバイスが接続モードからアイドルモードまたは不連続受信モードなどの代替の接続モードに移行するのを阻止し得る。ユーザが積極的にデバイスに関与していないときのアプリケーションによるそのような高いレベルの無線アクティビティは、バッテリ寿命の短縮、無線ネットワークの負荷増加、または他の望ましくない影響をもたらすことがある。さらに、異なるアプリケーションは異なる時間にトラフィックを生成することがあり、潜在的に、無線が起動する回数を増加させるか、または無線が起動した状態である時間を増加させる。たとえば、第2のアプリケーションスパイク420a~eは、第1のアプリケーションスパイク410a~iと同時に生じない。本明細書で開示する技法および構造を使用して、デバイスはソフトウェアレイヤを使用することができ、ソフトウェアレイヤは、バックグラウンドアプリケーションからデータをキャプチャしたり、無線リソースをアクティブにし、アプリケーションデータを転送し、同期方式でタスクを実行することができる所望の時点までデータを保持したりするためのアプリケーションプログラムインターフェースを提供する。そのようなタスクデータ要求を集約することによって、ワイヤレスデバイスを頻繁にウェイクすることを低減することができ、ユーザが積極的にデバイスに関与していない期間中に、他の通信リソースを節約することができる。図5は、アプリケーション通信を集約するように構成されたハードウェアソフトウェアシステム500の例示的なブロック図を示す。図示のように、ソフトウェア構成要素はアプリケーションプロセッサ550とモデムプロセッサ560との間で分割されるが、様々な機能は図5の例とは異なるように編成され得る。たとえば、ソフトウェアとして説明する機能をハードウェアで実施することができ、その逆も同様であり、機能は構成要素間で異なるように分散され得る、などである。一実施形態では、ハードウェアソフトウェアシステム500は、図1に関して上記で説明した通信管理システム108であり得る。別の実施形態では、ハードウェアソフトウェアシステム500は、図2に関して上記で説明したワイヤレスデバイス200上に実装され得る。たとえば、アプリケーションプロセッサ550の機能は、プロセッサ202、アプリケーションレイヤモジュール206、およびまたは接続エンジン208のうちの1つまたは複数によって実施され得る。モデムプロセッサ560の機能は、TXRX無線212、ネットワーキングモジュール210、およびまたは接続エンジン208のうちの1つまたは複数によって実施され得る。図示の実施形態では、アプリケーション502は、アプリケーション接続エンジン508およびハイレベルオペレーティングシステム506と対話する。HLOS506は、たとえば、カリフォルニア州マウンテンビューのGoogleIncによって製造されたAndroidオペレーティングシステムであり得る。アプリケーション接続エンジン508は、モデム接続エンジン510と通信し得る。モデム接続エンジンは、無線212およびその中の無線などの通信リソースを管理し得る。ラッパー504は、アプリケーション502とHLOS506との間のデータをキャプチャすることが可能である。ラッパー504は、ユーザ非アクティビティの期間中にアプリケーション502からのデータを集約し、操作送信のためにデータをHLOS506に、最終的には無線212に開放する前に、決定された時点までデータを保持することができる。ラッパー504はアプリケーション502には見えなくてもよく、その結果として、アプリケーション502は、そのデータ要求が保持集約されていることに気づかない。一実施形態では、ラッパー504はHLOS506の機能をエミュレートし得る。ラッパー504は別個の構成要素であってもよく、またはアプリケーション接続エンジン508などの別の構成要素に組み込まれてもよい。たとえば、ラッパー504は、図2に関して上記で説明したように、接続エンジン208によって実施され得る。図6は、図5のハードウェアソフトウェアシステム500によって実施されたアプリケーション通信集約の例示的なタイムライン600を示す。図示のように、アプリケーションAPP1~4は各々、集約期間610中に、無線リソースを使用するための要求を連続して開始する。一実施形態では、アプリケーション通信は、集約期間610中に遅延し得る。一実施形態では、集約期間610は、デバイス200およびまたはTXRX無線212がアイドルモードである期間を含むことができる。アプリケーションAPP1~4は、遅延耐性アプリケーションであり得る。遅延耐性アプリケーションは、たとえば、電子メールまたはバルクファイル転送などの、比較的時間の影響を受けやすいデータを搬送し得る。図示の実施形態では、アプリケーションAPP1は、第1の送信遅延耐性を含み得るパケットを送信する。次いで、アプリケーションAPP2は、第2の送信遅延耐性を含み得るパケットを送信する。次に、アプリケーションAPP3は、第3の送信遅延耐性を含み得るパケットを送信する。最後に、アプリケーションAPP4は、第4の送信遅延耐性を含み得るパケットを送信する。ラッパー504は、およびwriteソケット呼出しなどのAPI呼出しを介してパケットを受信する。直ちにソケット呼出しに作用する代わりに、ラッパー504は、集約期間610中に通信を遅延させる。決定された時点で、ラッパー504は、集約されたパケット620としてソケット呼出しを一緒に開放する。一実施形態では、ラッパー504は、送信ウィンドウ630中に、集約されたパケット620を開放することができる。様々な実施形態では、送信ウィンドウ630は、デバイス200がアイドルモードである期間を含むことができ、デバイス200がアクティブモードである期間を含むことができる。送信ウィンドウ630中に、1つまたは複数の無線インターフェースを有効にするまたは起動することができる。ラッパー504は、集約されたパケット620をAPP1~4から開放することができる。また、ラッパー504は、送信ウィンドウ630中に行われたアプリケーション通信要求が遅延なしで進行することを可能にし得る。言い換えれば、送信ウィンドウ630中に、ラッパー504はさらに通信を遅延させることができない。たとえば、図示の実施形態では、APP5は、送信ウィンドウ630中に、第5の送信遅延耐性を含み得るパケットを送信する。ラッパー504は、APP5から受信したパケットが遅延なしで進行することを可能にする。一実施形態では、ラッパー504は、一定の間隔でまたは断続的な間隔で送信ウィンドウ630を開くことができる。たとえば、ラッパー504は、5分に1回、10分に1回、15分に1回、30分に1回、60分に1回など、送信ウィンドウ630を開くことができる。別の例では、ラッパー504は、遅延したアプリケーション通信をランダム時間または擬似ランダム時間に開放することができる。ラッパー504が送信ウィンドウ630を開く間隔は、デバイス200によって決定されるか、またはサーバ110などの別のデバイスから受信され得る。一実施形態では、ラッパー504は、集約されたパケット620に基づいて、いつ送信ウィンドウ630を開くかを動的に判断することができる。たとえば、ラッパー504は、集約されたパケット620のうちのいずれかがその送信遅延耐性に等しい遅延を体験したときに送信ウィンドウを開くことができる。言い換えれば、単一の遅延したパケットがしきい値遅延に達すると、すべての遅延したパケットが開放され得る。別の例として、ラッパー504は、集約されたパケット620の数がしきい値を超えたときに送信ウィンドウ630を開くことができる。しきい値は、デバイス200によって決定されるか、またはサーバ110などの別のデバイスから受信され得る。ラッパー504は、所定の期間または動的な期間の間、送信ウィンドウ630を開けたままにしておくことができる。たとえば、ラッパー504は、送信ウィンドウ630が開いた後、15秒間、30秒間、1分間、5分間など、送信ウィンドウ630を開けたままにしてもよい。別の例として、ラッパー504は、最後のアプリケーション通信が送信された後、15秒間、30秒間、1分間、5分間など、送信ウィンドウ630を開けたままにしてもよい。ラッパー504が送信ウィンドウ630を開けたままにしておく時間は、デバイス200によって決定されるか、またはサーバ110などの別のデバイスから受信され得る。送信ウィンドウ630が閉じられると、1つまたは複数の無線インターフェースは無効にされるか、または電源切断され得る。一実施形態では、ラッパー504は、すべての集約されたパケット620が送信された後、送信ウィンドウ630を閉じることができる。別の実施形態では、ラッパー504は、しきい値よりも長く遅延していたすべての集約されたパケット620が送信された後、送信ウィンドウ630を閉じることができる。各パケットのしきい値は、送信遅延耐性であり得る。様々な実施形態では、各パケットのしきい値遅延値は、安全係数によって変更された、そのパケットの送信遅延耐性とすることができる。たとえば、各パケットのしきい値遅延値は、定数で除算した、または定数を引いた、そのパケットの送信遅延耐性とすることができる。一実施形態では、ラッパー504は、遅延非耐性アプリケーションが通信を開始したときに送信ウィンドウ630を開いてもよい。たとえば、APP5は、遅延非耐性アプリケーションであり得る。したがって、ラッパー504は、パケットがAPP5から受信されたときに送信ウィンドウ630を開いてもよい。ラッパー504は、APP5からのパケットが進行するのを可能にすることができ、また、集約されたパケット620をAPP1~4から開放することができる。図7は、別の実施形態による、アプリケーション通信集約のタイムライン700を示す。図示のように、アプリケーションAPP1~2は各々、無線リソースを使用するための要求を連続して開始する。アプリケーションAPP1~2は、接続エンジンAPIを介して、その遅延耐性を示し得る。たとえば、アプリケーションAPP1~2は、バックグラウンドアクティビティおよびまたは特定の遅延のみに耐性がある動作の要件を含み得る。たとえば、アプリケーションAPP1~2は、デバイス200のロケーションを、10秒ごとなど、定期的に報告するロケーショントラッキングアプリケーションであり得る。図示のように、アプリケーションAPP1は通信要求を開始し、アプリケーションAPP1がX秒の遅延のみに耐えることをラッパー504に示す。次に、アプリケーションAPP2は通信要求を開始し、アプリケーションAPP2がY秒の遅延のみに耐えることをラッパー504に示す。ラッパー504は、通信が許容されることをアプリケーションに示し得るコールバック関数を提供し得る。コールバックを受信した後、アプリケーションは通信を続行し得る。図示のように、ラッパー504は、X秒の遅延が経過する前に、APIGoコールバックをアプリケーションAPP1に提供する。次いで、アプリケーションAPP1は、さらなる遅延なしに、ラッパー504を介して通信する。同様に、ラッパー504は、Y秒の遅延が経過する前に、APIGoコールバックをアプリケーションAPP2に提供する。次いで、アプリケーションAPP2は、さらなる遅延なしに、ラッパー504を介して通信する。代替実施形態では、アプリケーションは、APIを介してラッパー504に特定の送信デットラインを与え得る。ラッパー504は、与えられたデッドラインの制約内で、アプリケーションからの通信を透過的に遅延させることができる。したがって、ラッパー504は、あらゆるデッドラインの前にアプリケーション通信を進行させることを可能にする。さらに別の態様では、APIは、アプリケーションが遅延非耐性アプリケーションとして登録することも可能にし得る。即時アクセスを要求し得るアプリケーションは、チャイルドトラッキングアプリケーション、緊急事態通知アプリケーションなどを含む。一実施形態では、ラッパー504は、アプリケーション通信を監視することによって、様々なアプリケーションの遅延耐性を学習し得る。別の実施形態では、ラッパー504は、デバイス102上にローカルに記憶されたまたはサーバ110から受信されたリストまたはデータベースから、送信遅延耐性のリストを受信し得る。リストまたはデータベースは、事業者ポリシーなどの通信アクセスポリシーとともに受信され得る。ラッパー504は、ユーザ中断を低減する方法で、アプリケーション通信を集約するまたは遅延させることができる。ラッパー504は、様々な要因を解析して、いつアプリケーション通信を集約するまたは遅延させるかを判断し得る。たとえば、ラッパー504は、ディスプレイ状態、オーディオ状態などのワイヤレスデバイス102の特性に基づいて、アプリケーション通信を遅延させることができる。ラッパー504は、遅延に耐性があるものとして知られているアプリケーション通信のみを遅延させることができる。ラッパー504は、無線がロードされていないとき、さもなければワイヤレスデバイスが使用されていないときにアプリケーション通信を遅延させることができる。当業者は、ラッパー504が、他の適切な要因に加えて、上記の要因の任意の組合せに基づいて、いつアプリケーション通信を遅延させるかを判断し得ることを諒解されよう。さらに、ラッパー504は、様々な要因を解析して、いつ遅延したまたは集約された通信を開放し、無制限のアプリケーション通信を許可するかを判断し得る。たとえば、遅延非耐性アプリケーションは、無制限のアプリケーション通信を開始し得る。無制限のアプリケーション通信は、ラッパー504をトリガして、以前に遅延したまたは集約されたアプリケーション通信を開放することができる。したがって、以前に遅延したアプリケーション通信は、緊急事態アプリケーションとともに無線リソースを使用し得る。言い換えれば、ラッパー504は、遅延非耐性アプリケーション通信が開始されたときに、すべてのアプリケーションに対して送信ウィンドウを開くことができる。一実施形態では、ラッパー504は、特定の無線がアクティブにされるか、またはデフォルトとして選択されたときに、遅延したまたは集約されたアプリケーション通信を開放することができる。特定の無線は、たとえば、WiFi無線、セルラー無線、特定のモードのセルラー無線、Bluetooth無線などを含み得る。たとえば、ラッパー504は、セルラー無線のみが有効であるときにアプリケーション通信を遅延させることができ、WiFi無線が有効であるときに遅延したアプリケーション通信を開放することができる。別の実施形態では、ラッパー504は、無線チャネル品質がしきい値を上回るときに遅延したまたは集約されたアプリケーション通信を開放することができる。無線チャネル品質は、信号強度、信号対雑音比などのメトリックを含み得る。たとえば、ラッパー504は、セルラー無線のSNRがしきい値を下回るときにアプリケーション通信を遅延させることができ、セルラー無線のSNRがしきい値まで上昇したときまたはしきい値を上回るときに遅延したアプリケーション通信を開放することができる。一実施形態では、ラッパー504は、ユーザ対話が受信されたときに、遅延したまたは集約されたアプリケーション通信を開放する。たとえば、ラッパー504は、ディスプレイがアクティブにされたとき、ボタン押下が検出されたときなどに、遅延したアプリケーション通信を開放することができる。別の実施形態では、ワイヤレスデバイス102は、ユーザ対話を予期し得る。たとえば、ワイヤレスデバイス102は、ワイヤレスデバイス102の動きを検出し得る加速度計を含み得る。ラッパー504は、加速度計の出力が差し迫ったユーザ対話の可能性を示すときに、遅延したアプリケーション通信を開放することができる。別の例では、ワイヤレスデバイス102は、近傍検出器によってユーザ対話を予期し得る。当業者は、ラッパー504が、上記の任意の組合せに応答して、加えて任意の他の適切なイベントに応答して、遅延したアプリケーション通信を開放することができることを諒解されよう。前述の説明では、APIに関してアプリケーション通信集約および遅延について論じたが、概念はハードウェア、ファームウェア、またはハードウェアとソフトウェアの任意の組合せに等しく適用される。図8は、アプリケーション通信を管理するように構成された例示的なデバイス802を示す。デバイスは、図1に関して上記で説明したネットワーク環境100内で使用され得る。デバイス802は、本明細書で説明する様々な方法を実施するように構成され得るデバイスの一例である。たとえば、デバイス802は、ワイヤレスデバイス102の1つまたは複数の機能を実施し得る。別の実施形態では、デバイス802は、サーバ110の1つまたは複数の機能を実施し得る。デバイス802は、デバイス802の動作を制御するプロセッサ804を含み得る。プロセッサ804は中央処理装置と呼ばれることもある。読取り専用メモリとランダムアクセスメモリの両方を含み得るメモリ806は、命令およびデータをプロセッサ804に与える。メモリ806の一部は不揮発性ランダムアクセスメモリも含み得る。プロセッサ804は、メモリ806内に記憶されたプログラム命令に基づいて論理演算および算術演算を実行し得る。メモリ806中の命令は、本明細書で説明する方法を実施するように実行可能であり得る。デバイス802がワイヤレスデバイス102として実施されるまたは使用されるとき、プロセッサ804は、メモリ806に記憶され得る1つまたは複数のアプリケーションを実行するように構成され得る。実行中に、アプリケーションは、送受信機814、送信機810、およびまたは受信機812を介して通信を開始し得る。プロセッサ804は、図5に関して上記で説明したハードウェアソフトウェアシステム500を実施し得る。たとえば、プロセッサ804は、図6~図7に関して上記で説明したアプリケーション通信を管理し得る。プロセッサ804は、1つもしくは複数のプロセッサとともに実装される処理システムの構成要素を備え、または構成要素であってよい。1つまたは複数のプロセッサは、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、プログラマブル論理デバイス、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、専用ハードウェア有限状態機械、または、情報の算出もしくは他の操作を実行することができる任意の他の適切なエンティティの任意の組合せによって実装され得る。処理システムは、ソフトウェアを記憶するための機械可読媒体も含み得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、任意のタイプの命令を意味すると広く解釈されたい。命令は、コードを含み得る。命令は、1つまたは複数のプロセッサによって実行されると、処理システムに、本明細書で説明する様々な機能を実行させる。デバイス802は、デバイス802と遠隔地との間のデータの送信および受信を可能にするために送信機810およびまたは受信機812を含み得る、筐体808も含み得る。送信機810および受信機812を組み合わせて送受信機814を形成し得る。アンテナ816は、筐体808に取り付けられ、送受信機814に電気的に結合され得る。いくつかの実施形態では、アンテナ816は省略されることがあり、デバイス802はワイヤード通信用に構成され得る。デバイス802は、複数の送信機、複数の受信機、複数の送受信機、およびまたは複数のアンテナも含み得る。デバイス802は、送受信機814によって受信された信号のレベルを検出および定量化するために使用され得る信号検出器818も含み得る。信号検出器818は、総エネルギー、シンボルごとのサブキャリア当たりのエネルギー、電力スペクトル密度および他の信号などの信号を検出し得る。デバイス802は、信号を処理する際に使用するためのデジタル信号プロセッサ820も含み得る。DSP820は、送信用のパケットを生成するように構成され得る。いくつかの態様では、パケットは、物理層データ単位を含み得る。デバイス802は、いくつかの態様では、ユーザインターフェース822をさらに備え得る。ユーザインターフェース822は、近傍検出器、1つまたは複数の入力ボタン、キーパッド、マイクロフォン、スピーカ、インターフェースポートポート、高精細度マルチメディアインターフェースポートなど、タッチスクリーン、およびまたはディスプレイを備え得る。ユーザインターフェース822は、デバイス802のユーザに情報を伝え、かつまたはユーザから入力を受信する、任意の要素または構成要素を含み得る。一実施形態では、ユーザインターフェース822は、入力を受信している、または出力を送信しているときはアクティブであると見なされ得る。また、ユーザインターフェース822は、しきい値期間内に入力を受信した、または出力を送信したときはアクティブであると見なされ得る。ユーザインターフェース822は、アクティブでないときは非アクティブまたはアイドルであると見なされ得る。ユーザインターフェース822が入力を受信しないとき、デバイス802はアイドル状態、またはアイドルモードであると言われ得る。アイドル状態では、ディスプレイはオフであってもよく、デバイス802の1つまたは複数の機能は無効にされ得る。一実施形態では、ユーザインターフェース822の入力に応答して開始されない、デバイス802の処理および通信は、バックグラウンド処理または通信あるいはアイドル処理または通信と呼ばれ得る。ユーザインターフェース822が入力を受信するとき、デバイス802はアクティブ状態、またはアクティブモードであると言われ得る。アクティブ状態では、ディスプレイはオンであってもよく、入力は入力アイドル期間内に受信されている可能性がある。入力アイドル期間は構成可能であってもよく、たとえば、1分であり得る。一実施形態では、バックグラウンド処理および通信はアクティブモードで行われ得るが、ユーザインターフェース822の入力に直接応答して開始されないことがある。デバイス802の様々な構成要素は、バスシステム826によって一緒に結合され得る。バスシステム826は、データバスとともに、たとえば、データバスに加えて、電力バス、制御信号バス、および状態信号バスを含み得る。当業者は、デバイス802の構成要素は、何らかの他の機構を使用して、一緒に結合されてよく、または互いに入力を受け入れまたは提供してよいことを諒解されよう。いくつかの別個の構成要素が図8に示されているが、当業者は、構成要素のうちの1つまたは複数は、組み合わされても、または共通して実装されてもよいことを認識されよう。たとえば、プロセッサ804は、プロセッサ804に関して上記で説明した機能を実装するだけでなく、信号検出器818およびまたはDSP820に関して上記で説明した機能を実装するのにも使用され得る。さらに、図8に示す構成要素の各々は、複数の別個の要素を使用して実装され得る。図9は、アプリケーション通信を管理する例示的な方法のフローチャート900を示す。一実施形態では、フローチャート900の1つまたは複数の態様は、図3のブロック308に対応し得る。図8に関して上記で説明したデバイス802を参照してフローチャート900の方法について本明細書で説明するが、当業者は、フローチャート900の方法は、図1に関して上記で説明したワイヤレスデバイス102、図2に関して上記で説明したワイヤレスデバイス202、およびまたは任意の他の適切なデバイスによって実施され得ることを諒解されよう。一実施形態では、フローチャート900のステップは、送信機810、受信機812、メモリ806、およびユーザインターフェース822とともに、プロセッサ805によって実行され得る。特定の順序を参照してフローチャート900の方法について本明細書で説明するが、様々な実施形態では、本明細書のブロックは異なる順序で実行されてよく、または省略されてよく、かつ追加のブロックが追加されてよい。最初に、ブロック910において、デバイス802は、アプリケーションから送信遅延耐性を受信する。一実施形態では、送信遅延耐性はパケット内で受信される。一実施形態では、送信遅延耐性は上記で説明したAPIを介して受信される。プロセッサ804は、メモリ806に送信遅延耐性を記憶し得る。一実施形態では、デバイス802は、サーバ110から送信遅延耐性を受信する。図7~図8に関して上記で説明したように、送信遅延耐性は、デバイス802がどのようにアプリケーション通信を遅延させるべきかを特定し得る。次に、ブロック920において、プロセッサ804は、プロセッサ804上で実行されるアプリケーションから1つまたは複数の通信を受信する。プロセッサ804は、通信管理システム108およびまたは接続エンジン208に関して上記で説明した設備によって通信をインターセプトし得る。一実施形態では、DSP820、信号検出器818、送信機810、およびまたは送受信機814は、通信をインターセプトし得る。パケットが受信されたとき、送受信機814は、電源切断、無効、非アクティブ、およびまたはアイドル状態であり得る。次いで、ブロック930において、プロセッサ804は、いつパケットを送信すべきかを判断する。たとえば、プロセッサ804は、図6~図7に関して上記で説明したように、遅延しきい値を決定し得る。一実施形態では、プロセッサ804は、いつ送信ウィンドウ630を開き、閉じるかを判断し得る。その後、ブロック940において、プロセッサ804は、ブロック930において決定された時点で、送信機810を介してパケットを送信する。パケットが送信される前に、プロセッサ804は、送受信機814を起動する、有効にする、およびまたはアクティブにすることができる。図10は、アプリケーション通信を管理するように構成された別の例示的なデバイス1000を示す。デバイス1000は、受信モジュール1010、判断モジュール1020、および送信モジュール1030を備える。受信モジュール1010は、図9に示すブロック910およびまたはブロック920に関して上記で説明した機能のうちの1つまたは複数を実行するように構成され得る。受信モジュール1010は、図8に関して上記で説明した受信機812、プロセッサ804、送受信機814、およびメモリ806のうちの1つまたは複数に対応し得る。受信モジュール1010は、図2に関して上記で説明したTXRX無線212およびプロセッサ202のうちの1つまたは複数にも対応し得る。判断モジュール1020は、図9に示すブロック930に関して上記で説明した機能のうちの1つまたは複数を実行するように構成され得る。判断モジュール1020は、図8に関して上記で説明したプロセッサ804、DSP820、およびメモリ808のうちの1つまたは複数に対応し得る。判断モジュール1020は、図2に関して上記で説明したプロセッサ202およびメモリ204のうちの1つまたは複数にも対応し得る。送信モジュール1030は、図9に示すブロック940を参照して上記で説明した機能のうちの1つまたは複数を実行するように構成され得る。送信モジュール1030は、図8に関して上記で説明したプロセッサ804および送信機810のうちの1つまたは複数に対応し得る。送信モジュール1030は、図8に関して上記で説明した送信機810、プロセッサ804、送受信機814、およびメモリ806のうちの1つまたは複数に対応し得る。送信モジュール1030は、図2に関して上記で説明したTXRX無線212およびプロセッサ202のうちの1つまたは複数にも対応し得る。当業者は、情報および信号は様々な異なる技術および技法のいずれかを使用して表され得ることを理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。当業者は、本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることをさらに諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の例示的な実施形態の範囲からの逸脱を生じるものと解釈すべきではない。本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイもしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または、本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで、実装または実行することができる。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。本明細書で開示する実施形態に関して説明した方法またはアルゴリズムのステップは、直接ハードウェアで具現化されるか、プロセッサによって実行されるソフトウェアモジュールで具現化されるか、またはその2つの組合せで具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読取り専用メモリ、電気的プログラマブルROM、電気消去可能プログラマブルROM、レジスタ、ハードディスク、リムーバブルディスク、CDROM、または、当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICはユーザ端末中に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。1つまたは複数の例示的な実施形態では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CDROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用する場合、ディスクおよびディスクは、コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、フレキシブルディスク、およびブルーレイディスクを含み、ディスクは、通常、磁気的にデータを再生し、ディスクは、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。開示した例示的な実施形態の上記の説明は、いかなる当業者も本発明を作成または使用できるようにするために提供される。これらの例示的な実施形態に対する様々な修正が当業者には容易に明らかになるであろうし、本明細書で定義する一般原理は、本発明の趣旨または範囲を逸脱することなしに他の実施形態に適用され得る。したがって、本発明は、本明細書に示す例示的な実施形態に限定されるものではなく、本明細書で開示する原理および新規の特徴に一致する最大の範囲を与えられるものである。特許請求の範囲は、上記に示した厳密な構成および構成要素に限定されないことを理解されたい。特許請求の範囲から逸脱することなく、上記で説明した方法および装置の構成、動作および詳細において、様々な修正、変更および変形を行うことができる。上記は本開示の態様を対象とするが、本開示の他のさらなる態様は、それらの基本的な範囲から逸脱することなく考案されてよく、それらの範囲は、以下の特許請求の範囲によって決定される。