(57)【特許請求の範囲】
【請求項１】
モバイルデバイス上のアプリケーション間のトラフィックを調整する方法であって、
第１のアプリケーションによって開始された第１のデータ転送要求の転送を第２のアプリケーションによって開始された他方のデータ転送要求がモバイルデバイス上で検出されるまで遅延する段階と、
前記第１のアプリケーションの前記第１のデータ転送要求及び前記第２のアプリケーションの前記他方のデータ転送要求をネットワーク上で単一の転送作動で転送する段階と、
前記モバイルデバイス上の前記第１及び第２のアプリケーションによって行われたデータ転送要求を追跡する段階と、
前記第１のアプリケーションによって行われたデータ転送要求の第１のタイミング特性及び前記第２のアプリケーションによって行われたデータ転送要求の第２のタイミング特性を判断する段階と、
前記第１のデータ要求の前記転送を遅延させる際に前記第１及び第２のタイミング特性を使用する段階と、
を含むことを特徴とする方法。
【請求項２】
前記第２のアプリケーションは、前記第１のアプリケーションよりも優先度タイプの高いものであり、又は該第２のアプリケーションは、該第１のアプリケーションよりもデータ集約型であることを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のアプリケーションは、前景において実行中であることを特徴とする請求項１に記載の方法。
【請求項４】
ユーザが、前記第２のアプリケーションと対話しており、前記他方のデータ要求が、該ユーザ対話に応答して開始されることを特徴とする請求項１に記載の方法。
【請求項５】
ユーザが、前記第１のアプリケーションと対話していないことを特徴とする請求項１に記載の方法。
【請求項６】
前記第１及び第２のアプリケーションは、同じアプリケーションであることを特徴とする請求項１に記載の方法。
【請求項７】
モバイルデバイス上のアプリケーショントラフィックを管理する方法であって、
第２のアプリケーションと比較して第１のアプリケーションに対して発生するデータ転送時点の相関を検出し、モバイルデバイス上の複数のアプリケーションのアプリケーション挙動を使用して、ネットワーク上で該モバイルデバイスからの該複数のアプリケーションの少なくとも一部分によって行われた前記コンテンツ要求の一部を整列させる段階であって、該コンテンツ要求の該一部が、該コンテンツ要求の該一部がアラインメントなしで行われると考えられる時点を遅延させることによって整列される前記整列させる段階と、
遅延された前記コンテンツ要求の前記一部を前記ネットワーク上で単一の転送作動で転送する段階と、
を含むことを特徴とする方法。
【請求項８】
前記第１のアプリケーションの作動が、前記第２のアプリケーションの作動をトリガすることを特徴とする請求項７に記載の方法。
【請求項９】
アラインメントに向けて識別された前記コンテンツ要求の前記一部は、データ転送が行われる複数の前記時点との相関を示すことを特徴とする請求項７に記載の方法。
【請求項１０】
前記コンテンツ要求の前記一部の各々を整列させるために遅延される前記時点は、前記単一の転送作動で整列させることができるコンテンツ要求の数を最適化するように判断されることを特徴とする請求項７に記載の方法。
【請求項１１】
所定のコンテンツ要求の転送において遅延される前記時点は、該所定のコンテンツ要求を行う特定のアプリケーションの優先度に基づいて又は前記モバイルデバイス上の他のアプリケーションに対する該特定のアプリケーションの該優先度に基づいて判断されることを特徴とする請求項７に記載の方法。
【請求項１２】
所定のコンテンツ要求の転送において遅延される前記時点は、該所定のコンテンツ要求に関わっているデータの量に基づいて判断されることを特徴とする請求項７に記載の方法。
【請求項１３】
所定のコンテンツ要求の転送において遅延される前記時点は、該所定のコンテンツ要求に関わっているデータの性質に基づいて判断されることを特徴とする請求項７に記載の方法。
【請求項１４】
所定のコンテンツ要求の転送において遅延される前記時点は、該所定のコンテンツ要求を行う特定のアプリケーションのステータスに基づいて判断され、該ステータスは、該特定のアプリケーションが前記モバイルデバイス上で作動しているのが背景又は前景かを示すことを特徴とする請求項７に記載の方法。
【請求項１５】
所定のコンテンツ要求の転送において遅延される前記時点は、該所定のコンテンツ要求を行う特定のアプリケーションのステータスに基づいて判断され、該ステータスは、該特定のアプリケーションがアクティブ又は非アクティブかを示すことを特徴とする請求項７に記載の方法。
【請求項１６】
所定のコンテンツ要求の転送において遅延される前記時点は、該所定のコンテンツ要求において転送されるデータの有効寿命に基づいて判断されることを特徴とする請求項７に記載の方法。
【請求項１７】
所定のコンテンツ要求の転送において遅延される前記時点は、利用可能帯域幅又はネットワーク待ち時間を含むネットワーク特性に基づいて判断されることを特徴とする請求項７に記載の方法。
【請求項１８】
遅延される前記時点は、ユーザ構成可能であることを特徴とする請求項７に記載の方法。
【請求項１９】
前記単一の転送は、前記モバイルデバイスとのユーザ対話が前記ネットワーク上で行う必要があるコンテンツ要求をもたらす時に行われることを特徴とする請求項７に記載の方法。
【請求項２０】
無線ネットワーク内のアプリケーション間トラフィック管理のための分散型プロキシを有するシステムであって、
第１のアプリケーションを通じて行われた第１のデータ要求及び第２のアプリケーションを通じて行われた第２のデータ要求を検出するローカルプロキシを有するモバイルデバイスと、
前記モバイルデバイスと前記第１及び第２のデータ要求が向けられる１つ又はそれよりも多くのサーバとに結合され、前記ローカルプロキシと通信することができるプロキシサーバと、
を含み、
前記プロキシサーバへ前記第１のアプリケーションを通じて行われる前記第１のデータ転送要求の転送が、前記第２のアプリケーションを通じて行われる別のデータ転送要求が検出されるまで前記ローカルプロキシによって遅延され、
前記ローカルプロキシは、前記第１のデータ転送要求及び前記第２のデータ転送要求を前記ネットワーク上で単一の転送作動で転送し、
前記ローカルプロキシは、前記モバイルデバイス上の前記第１及び第２のアプリケーションによって行われたデータ転送要求を追跡し、前記第１のアプリケーションによって行われたデータ転送要求の第１のタイミング特性及び前記第２のアプリケーションによって行われたデータ転送要求の第２のタイミング特性を判断し、前記第１のデータ要求の前記転送を遅延させる際に前記第１及び第２のタイミング特性を使用する、
ことを特徴とするシステム。
【請求項２１】
前記第１のアプリケーションは、遅延されたデータ転送要求に対して適格であるように前記モバイルデバイスのユーザによって構成されることを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記ローカルプロキシは、前記第２のアプリケーションが前記第１のアプリケーションに対して優先度がより高いものであると判断することを特徴とする請求項２０に記載のシステム。
【請求項２３】
前記プロキシサーバは、前記第２のアプリケーションに対する前記第１のアプリケーションの優先度を認識していることを特徴とする請求項２０に記載のシステム。
【請求項２４】
無線ネットワーク内のアプリケーション間トラフィック管理のための分散型プロキシを有するシステムであって、
第１のアプリケーションを通じて行われた第１のデータ要求及び第２のアプリケーションを通じて行われた第２のデータ要求を検出するローカルプロキシを有するモバイルデバイスと、
前記モバイルデバイスと前記第１及び第２のデータ要求が向けられる１つ又はそれよりも多くのサーバとに結合され、前記ローカルプロキシと通信することができるプロキシサーバと、
を含み、
前記プロキシサーバへ前記第１のアプリケーションを通じて行われる前記第１のデータ転送要求の転送が、前記第２のアプリケーションを通じて行われる別のデータ転送要求が該プロキシサーバによって検出されるまで前記ローカルプロキシによって遅延され、
前記プロキシサーバは、前記第１のデータ転送要求及び前記第２のデータ転送要求を前記ネットワーク上で単一の転送作動で転送し、
前記プロキシサーバは、前記第２のアプリケーションに対する前記第２のデータ要求に関するコンテンツが変更された時に前記第１のデータ転送要求及び前記第２のデータ転送要求を前記ネットワーク上で単一の転送作動で転送する、
ことを特徴とするシステム。
【請求項２５】
前記ローカルプロキシは、前記第１のデータ転送要求が遅延される時間量を該第１のデータ転送要求に対する応答が前記プロキシサーバによって通知されたように変更されたか否かに基づいて判断することを特徴とする請求項２４に記載のシステム。
【請求項２６】
モバイルデバイス上のアプリケーショントラフィックの管理ためのシステムであって、  モバイルデバイス上の複数のアプリケーションのアプリケーション挙動を使用して、ネットワーク上で該モバイルデバイスから該複数のアプリケーションの少なくとも一部分によって行われたコンテンツ要求の一部を整列させるための手段と、
前記コンテンツ要求の前記一部を該コンテンツ要求の該一部がアラインメントなしで行われると考えられる時点を遅延させることによって整列させるための手段であって、該コンテンツ要求の該一部の各々を整列させる際に遅延される該時点が、単一の転送作動で整列させることができるコンテンツ要求の数を最適化するように判断される前記整列させるための手段と、
遅延された前記コンテンツ要求の前記一部を前記ネットワーク上で単一の転送作動で転送するための手段と、
遅延される前記時点を、所定のコンテンツ要求を行う特定のアプリケーションがあるのは背景又は前景かを示すステータスに基づいて判断するための手段、
を含むことを特徴とするシステム。
【請求項２７】
遅延される前記時点を利用可能帯域幅又はネットワーク待ち時間を含むネットワーク特性に基づいて判断するための手段を更に含むことを特徴とする請求項２６に記載のシステム。
【請求項２８】
プロセッサによって実行された時にモバイルデバイス上のアプリケーション間のトラフィックを調整する方法を実施する命令が格納された機械可読ストレージ媒体であって、
方法が、
アプリケーションによって開始された第１のデータ転送要求の転送を該アプリケーションによって開始された第２のデータ転送要求がモバイルデバイス上で検出されるまで遅延する段階と、
前記第２のデータ要求がユーザ対話に応答して開始されたと判断する段階と、
前記アプリケーションの前記第１のデータ転送要求及び前記第２のデータ転送要求をネットワーク上で単一の転送作動で転送する段階と、
前記モバイルデバイス上の前記第１及び第２のアプリケーションによって行われたデータ転送要求を追跡する段階と、
前記第１のアプリケーションによって行われたデータ転送要求の第１のタイミング特性及び前記第２のアプリケーションによって行われたデータ転送要求の第２のタイミング特性を判断する段階と、
前記第１のデータ要求の前記転送を遅延させる際に前記第１及び第２のタイミング特性を使用する段階と、
を含む、
ことを特徴とする機械可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願への相互参照〕
本出願は、２０１０年７月２６日出願の「ネットワーク主導型データ転送機能性を有するアプリケーションにおける電力消費量の節約」という名称の米国特許仮出願第６１／３６７，８７１号と、２０１０年７月２６日出願の「ネットワークリソース利用、性能の管理及び改善、及びモバイルクライアントを伴う有線ネットワーク及び無線ネットワーク内のトラフィックの最適化」という名称の米国特許仮出願第６１／３６７，８７０号と、２０１０年１１月１日出願の「アプリケーション間トラフィック調整」という名称の米国特許仮出願第６１／４０８，８５８号と、２０１０年１１月１日出願の「ネットワークリソース使用を最適化する方法としての活動セッション」という名称の米国特許仮出願第６１／４０８，８３９号と、２０１０年１１月１日出願の「分散型ポリシー管理」という名称の米国特許仮出願第６１／４０８，８２９号と、２０１０年１１月１日出願の「輻輳無線ネットワーク内の学習型キャッシュ管理」という名称の米国特許仮出願第６１／４０８，８４６号と、２０１０年１１月１日出願の「無線ネットワーク内のキャッシュ不可能コンテンツのインテリジェント管理」という名称の米国特許仮出願第６１／４０８，８５４号と、２０１０年１１月１日出願の「一方向インテリジェントヒートビート」という名称の米国特許仮出願第６１／４０８，８２６号と、２０１０年１１月１日出願の「トラフィック分類及びポリシー駆動無線状態」という名称の米国特許仮出願第６１／４０８，８２０号と、２０１０年１１月２２日出願の「サーバからクライアントまでのバーストの整列」という名称の米国特許仮出願第６１／４１６，０２０号と、２０１０年１１月２２日出願の「ポーリング間隔機能」という名称の米国特許仮出願第６１／４１６，０３３号と、２０１１年１月７日出願の「ネットワークトラフィック調和化を伴うドメイン名システム」という名称の米国特許仮出願第６１／４３０，８２８号との恩典を請求するものであり、これらの特許の内容は、全てが引用により本明細書に組み込まれている。
【背景技術】
【０００２】
ＷＣＤＭＡ（登録商標）が指定された時に、ユーザにより又はデバイスによって開始される機能とは対照的に、ネットワークによって開始されるアクションにその機能が基づくアプリケーションによって提起される要件には、殆ど注目されなかった。このようなアプリケーションには、例えば、プッシュ配信電子メール、インスタントメッセージング、ビジュアルボイスメール、及び音声及び映像電話などがある。このようなアプリケーションでは、通常は常時オンのＩＰ接続及び小ビットのデータの頻繁な送信が必要である。ＷＣＤＭＡ（登録商標）ネットワークは、頻繁であるが低い収量及び／又は少量のデータを必要とするアプリケーション向けではなく、多量のデータの高収量に対して設計かつ最適化される。各トランザクションは、モバイルデバイス無線を典型的には１５〜３０秒の間であるかなりの時間の長さにわたって高電力モードに置く。高電力モードでは、アイドルモードの１００倍もの電力を消費する可能性があるので、これらのネットワーク主導型アプリケーションでは、ＷＣＤＭＡ（登録商標）ネットワーク内でたちまちバッテリ切れになる。この問題は、プッシュ配信電子メールのようなネットワーク主導型機能性を有するアプリケーションの人気の急増により悪化している。
【０００３】
適正なサポートの欠如は、いくつかの販売業者に自社ネットワーク及びアプリケーションをＷＣＤＭＡ（登録商標）ネットワーク内でより良好に性能を発揮するように構成すべくオペレータパートナー及び独立ソフトウエア販売業者を指導する文書を提供することを促してきた。この指導の着目点は、ネットワークを高電力無線モードに入って留まるのをできるだけ短くするように構成し、かつ常時オンのＴＣＰ／ＩＰ接続を維持するのに使用される定期的キープアライブメッセージをできるだけ頻繁にならないようにすることである。このような解決法は、典型的には、ユーザ、アプリケーション、及びネットワーク間の調整がないことを仮定している。
【０００４】
更に、アプリケーションプロトコルは、クライアントが定期的に接続を再確立し、又は変更がないか定期的に問い合わせる質問をする必要なく、サーバがモバイルデバイスに更新されたデータをプッシュ配信することを可能にする長期ライブ接続を提供することができる。しかし、モバイルデバイスは、キープアライブメッセージと呼ぶことが多い何らかのデータを定期的にサーバに送ってサーバがこのデータを受け取っていることを確認することにより、接続が使用可能のままであることを確認する必要がある。単一のキープアライブのために送られるデータ量は多いものではなく、かつ個々のアプリケーションに対するキープアライブ間隔は過度に短いものではないが、個々にこれを実行する複数のアプリケーションの累積効果は、小さなデータ断片が非常に頻繁に送られることに対応することになる。無線ネットワーク内でデータのバーストを頻繁に送ることはまた、無線モジュールへの電力供給／電力再供給が絶えず必要であるために高いバッテリの消費量をもたらす。
【図面の簡単な説明】
【０００５】
【図１Ａ】ホストサーバがリソース節約に向けて無線ネットワーク内のクライアントデバイスとアプリケーションサーバ又はコンテンツプロバイダ間のトラフィックの管理を容易にするシステムの例示的な図である。
【図１Ｂ】リソース節約に向けてデバイスとアプリケーションサーバ／コンテンツプロバイダ間のネットワークトラフィック管理を容易にするホストサーバとデバイス間に分散されたプロキシ及びキャッシュシステムの例示的な図である。
【図２Ａ】リソース節約に向けて無線ネットワーク内のトラフィックを管理するモバイルデバイス上に常駐する分散型プロキシ及びキャッシュシステム内のクライアント側構成要素の例を示すブロック図である。
【図２Ｂ】図２Ａの例に示す分散型プロキシシステムのクライアント側のローカルプロキシ内のアプリケーション挙動検出器及びトラフィック成形エンジン内の構成要素の別の例を示すブロック図である。
【図３】リソース節約に向けて無線ネットワーク内のトラフィックを管理する分散型プロキシ及びキャッシュシステム内のサーバ側構成要素の例を示すブロック図である。
【図４Ａ】モバイルデバイスから無線ネットワーク内のアプリケーションサーバ／コンテンツプロバイダへのデータ要求を分散型プロキシシステムによって実行されるコンテンツキャッシング及びモニタリングを使用することを通じてネットワークリソース及びバッテリリソースが節約されるような方式で分散型プロキシシステムによって調整することができる方法を示す図である。
【図４Ｂ】モバイルデバイスから無線ネットワーク内のアプリケーションサーバ／コンテンツプロバイダへのデータ要求がネットワーク及び無線使用を最適化するために分散型プロキシシステム内のローカルプロキシで整列させることができる方法を示すタイミング図である。
【図５】分散型プロキシ及びキャッシュシステム（例えば、図１Ｂの例に示す分散型システムのような）を使用してモバイルデバイス上で混成ＩＰ及びＳＭＳ電力節約モードを実施するための一例示的な処理を示す図である。
【図６】複数のアプリケーションのデータ転送要求を単一の転送作動に調整することができる例示的な選択処理を示す流れ図である。
【図７】別のデータ要求とのアラインメントがなければデータ要求を転送させるイベントをトリガする例を示す図である。
【図８】個々のアプリケーションによって行われたデータ要求のタイミング特性を使用し、個々のアプリケーションの１つによって行われたデータ要求のうちの１つ又はそれよりも多くの転送を遅延させる例示的な処理を示す流れ図である。
【図９】複数のアプリケーションのアプリケーション挙動を使用し、ネットワークにおいて行われたコンテンツ要求を整列させる例示的な処理を示す流れ図である。
【図１０】無線ネットワーク上でコンテンツ要求を整列させるためにコンテンツ要求の遅延の時点を判断することができる処理の例を示す図である。
【図１１】機械に本明細書に説明する方法のいずれか１つ又はそれよりも多くを実施させるための１組の命令を内部で実行することができる例示的な形態のコンピュータシステム内の機械の概略図である。
【発明を実施するための形態】
【０００６】
以下の説明及び図面は、例示的なものであり、制限的と解釈すべきではない。本発明の開示を完全に理解することができるように多くの特定の細部に対して説明する。しかし、特定の実施例において、公知であるか又は従来の細部は、説明を不明瞭にすることを回避するために説明を割愛している。本発明の開示における一実施形態又は実施形態への言及は、同じ実施形態の言及である得るが、必ずしもそうであるというわけではなく、このような言及は、実施形態の少なくとも１つを意味する。
【０００７】
本明細書における「一実施形態」又は「実施形態」への言及は、実施形態に関連して説明する特定の特徴、構造、又は特性が本発明の開示の少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な箇所での「一実施形態では」という語句の出現は、必ずしも全て同じ実施形態も指しているというわけではなく、他の実施形態を相互に排除する別の実施形態又は代替的な実施形態でもない。更に、一部の実施形態によって示すことができるが他に実施形態によって示すことはできない様々な特徴を説明する。同様に、一部の実施形態に対する要件とすることができるが他の実施形態に対してはそうではない様々な要件を説明する。
【０００８】
本明細書で使用する用語は、一般的に、当業技術において、本発明の開示という状況において、かつ各語が使用される特定の内容において普通の意味を有する。本発明の開示を説明するのに使用する特定の用語は、本発明の開示の説明に関する実務者への付加的な指針になるように以下で又は本明細書の他の箇所に説明する。便宜上、特定の用語は、例えばイタリック及び／又は引用符を使用して強調表示される場合がある。強調表示の使用は、用語の範囲及び意味に影響を及ぼすものではなく、用語の範囲及び意味は、同じ状況において、強調表示されるか否かに関わらず同じである。同じものを１つよりも多い方法で言うことができることは認められるであろう。
【０００９】
その結果、代替言語及び同義語は、本明細書に説明する用語のいずれか１つ又はそれよりも多くに対して使用することができ、また、用語は、精緻化するか又は本明細書に説明するか否かに関わらず、いずれの特定の重要性も置くべきではない。ある一定の用語に対する同義語が提供される。１つ又はそれよりも多くの同義語の引用は、他の同義語の使用を排除しない。本明細書に説明するいずれかの用語の例を含む本明細書のあらゆる箇所での実施例の使用は、例示的なものにすぎず、本発明の開示の又はあらゆる例証された用語の範囲及び意味を更に制限することを意図しない。同様に、本発明の開示は、本明細書に示す様々な実施形態に限定されない。
【００１０】
本発明の開示の範囲を制限する意図なく、本発明の開示の実施形態による計器、装置、方法、及び関連の結果の例を以下に示している。読者の便宜を図るために例において表題又は副題が使用される場合があり、これは、いずれの点においても、本発明の開示の範囲を制限すべきではないことに注意されたい。別段の定義がない限り、本明細書で使用する全ての専門用語及び科学用語は、本明細書が属する技術分野の当業者により一般的に理解されるものと同じ意味を有する。矛盾が生じた場合に、定義を含む本明細書が優先されることとする。
【００１１】
本発明の開示の実施形態は、複数のアプリケーションにわたるモバイルネットワークトラフィック調整のためのシステム及び方法を含む。
【００１２】
開示する技術の一実施形態は、負荷、デバイス上での現在のアプリケーション必要性、アクセスのタイプ（プッシュ対プル又は混成）の制御、位置、単一のエリア内のユーザの集中度、時刻、ユーザがアプリケーション、コンテンツ、又はデバイスと対話する頻度、及び協働クライアント／サーバへの又は同時に協働クライアントなしのモバイルデバイスへのトラフィックを成形するためのこの情報の使用を含むデバイス及びアプリケーション活動の総合的な視点を通じて有線及び無線ネットワーク及びデバイスとの接続の複数の態様を最適化するシステムを含む。開示するサーバは、いずれの特定のネットワークプロバイダとも結び付いていないので、全てのサービスプロバイダにわたってネットワーク性能に対する視認性を有する。それによって最適化をオペレータ又はサービスプロバイダとは無関係にデバイスに適用することができ、従って、ユーザ体験が高まり、ローミング中にネットワーク利用が管理される。帯域幅は、今日、無線ネットワーク内の主要問題と考えられている。アクセス問題を解決するために、付加的な帯域幅の必要性に関連する益々多くの研究が行われており、性能強化の解決法、及び一般的に４Ｇと呼ばれるもの、すなわち、ＬＴＥ、４Ｇ、及びＷｉＭａｘのような次世代規格の多くは、帯域幅の増大化が中心である。部分的に規格により対処されたが、残る重要な問題は、データチャンネルよりも信号伝達チャンネル上での帯域幅の不足である。開示する技術の実施形態は、例えば、いくつかのポーリング要求の必要性を最小にし、特定のコンテンツタイプを利用して接続／コンテンツのプロキシ／管理を提供する方法を判断し、かつデバイス、ユーザ挙動パターン（デバイス／アプリケーションと対話する頻度）、及び／又はネットワークパラメータに関連付けられた特定の発見的手法を適用するための複数のアプリケーションからの要求のアラインメントを含む。
【００１３】
本発明の技術の実施形態は、様々なウィジェット、ＲＳＳ読取器などによって行われる反復的なＨＴＴＰポーリングを遠隔ネットワークノード（例えば、ネットワークオペレーションセンター（ＮＯＣ））に移動する段階を更に含むことができ、従って、デバイスバッテリ／電力消費量、無線チャンネル信号伝達、及び帯域幅使用量がかなり低減される。更に、既存のアプリケーションを変更する必要がないように、オフロードは透過的に実行することができる。
【００１４】
一部の実施形態において、これは特定の規則（例えば、１５分おきに起こる）に適合する同じコンテンツ（ＲＳＳ配信、ウィジェットデータセット）の反復的な要求を自動的に検出するモバイルデバイス上でローカルプロキシを使用して実行することができる。ローカルプロキシは、サーバ（例えば、通信ネットワークの要素として作動されるプロキシサーバ）にポーリングを委任しながらモバイルデバイス上のコンテンツを自動的にキャッシュに格納することができる。サーバは、次に、コンテンツが変更した場合に、モバイル／クライアントプロキシに通知することができ、コンテンツが変更されなかった（代替的に、十分に又は識別された方法又は量では変更されなかった）場合に、モバイルプロキシは、ユーザにキャッシュ内の最新バージョンを供給する（無線を全く利用する必要なく）。このようにして、モバイルデバイス（例えば、モバイルフォン、スマートフォンのような）は、要求が、モニタされて新規／変更ありとフラグを付されなかったコンテンツに対するものである場合に、オープンアップ（例えば、従って、無線の電源を投入する）又はデータ接続を使用する必要がない。
【００１５】
モニタされるコンテンツソース／アプリケーションサーバ（例えば、ＵＲＬ／コンテンツを含む）を自動的に追加する論理回路は、コンテンツが同じである頻度、同じ要求が行われる頻度（一定の間隔／パターンがあるか）、どのアプリケーションがデータを要求しているかのような様々なファクタに関して検査することができる。キャッシュ使用と元のソースへのデータ要求との間の判断すべき類似の規則は、ローカルプロキシ及び／又はサーバによって実施及び実行することができる。
【００１６】
例えば、要求が予定外の／不意の時点で来た時（ユーザ主導型検査）、又は連続（ｎ）回毎に応答がキャッシュのなどから供給された後に、又はアプリケーションが前景のより対話型モードに対して背景で実行中である場合である。益々多くのモバイルアプリケーションが特徴をネットワークに利用可能なリソースに基づく時に、これは益々重要になる。更に、開示する技術により、ネットワークからの不要な傍受通信の排除が可能であり、無線スペクトル使用量を最適化しようとするオペレータに恩典をもたらす。
【００１７】
アプリケーション間のトラフィック調整
本発明の開示の一実施形態において、一群のアプリケーション［Ａ、Ｂ、Ｃ、…］は、ネットワークへのモバイルデバイス（代替的に、モバイルデバイス上のクライアント（例えば、モバイルアプリケーション、ソフトウエアエージェント、ウィジェット））からの又はネットワークからモバイルデバイスへの（クライアントによる受信に向けて）データの転送の時系列を有することができる。転送の時点は、以下として表すことができる。
【００１８】
アプリケーションＡ：ｔＡ１、ｔＡ２、ｔＡ３．．．
【００１９】
アプリケーションＢ：ｔＢ１、ｔＢ２、ｔＢ３．．．
【００２０】
アプリケーションＣ：ｔＣ１、ｔＣ２、ｔＣ３．．．
【００２１】
時間「ｔ」の各々は、作動がアプリケーションサーバ／プロバイダで及び／又はモバイルデバイス上のソフトウエアクライアント上で実行されるので対応するアプリケーションの独立した活動に基づいて本来の発生点を有することができる。例えば、アプリケーションは、ネットワークにポーリングの一部として規則的な又は半規則的な一連の時点でメッセージ、イベント、又は他のタイプのデータを転送することができ（又はその逆）、デバイス、アプリケーション、又はユーザ要求、アプリケーション保守、又は他の作動を満たす。
【００２２】
同様に、アプリケーションは、ネットワーク上で２つのデータストアの同期化、データストアのコンテンツの判断、アプリケーションサーバ／サービスプロバイダからの新しいデータへのアクセス、ピアデバイス（例えば、同じアプリケーション又は要求側アプリケーションが対話する別のアプリケーションを有する別のデバイス）との通信、制御メッセージのやり取りのような固有の機能又は作動を実行するために、規則的な、半規則的な、又は不規則な一連の時点でメッセージ、イベント、又は他のタイプデータを転送することができる（又はその逆）。
【００２３】
一部の例において、特定のモバイルデバイス上の第２のアプリケーションと比較すると、１つのアプリケーションに向けて、又は同じアプリケーションに関する異なるデータ要求に向けて、典型的には、データ転送又はイベントトランザクションが行われる期間の間には相関がないか又は弱い相関がある。一部の場合には、第２のアプリケーションと比較すると、より強い相関が１つのアプリケーションに向けて転送が行われる期間の間に存在する場合がある（例えば、第１のアプリケーションの作動が、第２のアプリケーションの作動に依存するか又は第２のアプリケーションの作動をトリガする場合、又はユーザが通常は第２のアプリケーションの作動に関連して１つのアプリケーションの作動を実行する場合）。尚、一部の例において、第２のアプリケーションは、第１のアプリケーションと同じアプリケーションである場合があり、相関は、同様に１つのアプリケーションによって送られた複数の要求に対して追跡及び判断することができる。
【００２４】
一部の実施形態において、デバイス（例えば、モバイルデバイス又はスマートフォン）無線の電源が投入される回数を最適化して（例えば、通常は最小にして）電力消費量を低減する（かつ従ってバッテリ又は他の電源を節約する）ためにローカルプロキシ及び／又はプロキシサーバを含む分散型プロキシシステムは、情報のイベント又はトランザクション（又は転送の要求）を傍受するように作動させることができる。傍受された時に、ローカルプロキシ及び／又はプロキシサーバは、単一の転送作動の一部として（すなわち、複数の個々の転送を実行する代わりに）まとめて複数の転送を行うために、通常これらの転送のうちの１つ又はそれよりも多くが発生する時点を遅延させる（又は迅速に処理する）ことができる。代替的に、ローカル及び／又はプロキシサーバは、ポーリングが典型的に例えばより高い優先度を有する別のアプリケーションの前に行われると予想される非優先アプリケーション又はより重要性／時間依存性が劣るアプリケーションがないかデータを予め検索することができる。換言すると、遅延は、負である可能性があり、従って、通常は優先度が劣るアプリケーションの要求の前に行われる予想されるデータ要求とのアラインメントに向けてコンテンツが予め検索される。
【００２５】
遅延時間（Ｄ）は、このような転送を行う要求の受信の後の最大時間遅延値（又は一部の例においては迅速時間値）を表すことができる。Ｄの値は、単一の最適化されたデータ転送でできるだけ多くの転送の回収を可能にするように判断される。１つ又はそれよりも多くの転送の遅延時間又は迅速時間は、性能及びユーザ体験に及ぼす潜在的な影響を織り込むように判断される。理想的には、システムは、望まれないペナルティ又は非効率性を防止してユーザ体験に及ぼす望まれない影響を防止するようにＤを判断する。尚、上述のように、遅延「Ｄ」は、アラインメント目的に対して負又は正とすることができる（例えば、遅延又は迅速転送を実施するために）。
【００２６】
一部の実施形態において、遅延時間「Ｄ」（正及び負の遅延（効率的及び迅速な転送）の両方を表すように使用）は、以下のもの、すなわち、アプリケーションの優先度、（代替的に、別のアプリケーションとの比較における１つのアプリケーションの相対的な優先度）、転送に関わっているデータの性質又は量（例えば、データが表すのは新しいデータか、管理機能か、制御命令かのような）、アプリケーションのステータス（例えば、アクティブ、非アクティブ、背景、前景のような）、転送されるデータの有効寿命（古くなるまでの期間）、単一のアプリケーションの複数のデータ要求の転送時点の間隔、１つよりも多いアプリケーションにわたる転送時点の間隔（例えば、全てアクティブアプリケーションの考慮に基づく最大転送時点間隔）、ネットワーク特性（利用可能帯域幅、ネットワーク待ち時間のような）、又は別の関連のファクタのうちの１つ又はそれよりも多くのファクタの考慮に基づいて判断することができる。
【００２７】
一部の実施形態において、特定のイベント／トランザクションの遅延時間「Ｄ」は、個々に各データ転送を実行することとは対照的に、複数のアプリケーション又は同じアプリケーションにわたるデータ転送要求を整列させるために電池寿命の最適化の一部として、モバイルデバイス（例えば、プラットホーム、デバイス設定又はＯＳ仕様）、ネットワークサービスプロバイダ、及び／又はユーザにより制御することができる。一部の例において、ユーザは、複数のアプリケーション又は同じアプリケーションにわたる要求をバッチ処理するように指定する設定を手動で構成することができる。ユーザは、設定を可能し、システムが詳細を構成することを可能にすることができる。更に、ユーザは、モバイルネットワークのデータ要求転送のアラインメントに関連する優先傾向、優先度、又はあらゆる他の制約を指定することができる。
【００２８】
図１Ａは、ホストサーバ１００がリソース節約に向けて無線ネットワーク内のクライアントデバイス１０２とアプリケーションサーバ又はコンテンツプロバイダ１１０間のトラフィックの管理を容易にするシステムの例示的な図を示している。
【００２９】
クライアントデバイス１０２Ａ−Ｄは、ホストサーバ１００及び／又はアプリケーションサーバ／コンテンツプロバイダ１１０のような別のデバイス、サーバ、及び／又は他のシステムとの有線接続、無線接続、セルラー接続を含む接続を確立することができるあらゆるデバイス及び／又はシステム、及び／又はデバイス／システムのあらゆる組合せとすることができる。クライアントデバイス１０２は、典型的には、デバイス１０２及び／又はホストサーバ１００及び／又はアプリケーションサーバ／コンテンツプロバイダ１１０間で交換される情報及びデータを呈示する表示及び／又は他の出力機能性を含む。
【００３０】
例えば、クライアントデバイス１０２は、モバイル、手持ち式、又は携帯式デバイス又は非携帯式デバイスを含むことができ、かつサーバデスクトップ、デスクトップコンピュータ、コンピュータクラスター、又はノート、ラップトップコンピュータ、手持ち式コンピュータ、パームトップコンピュータ、モバイルフォン、携帯電話、スマートフォン、ＰＤＡ、Ｂｌａｃｋｂｅｒｒｙデバイス、Ｐａｌｍデバイス、手持ち式タブレット（例えば、ｉＰａｄ又はあらゆる他のタブレット）、手持ち式コンソール、手持ち式ゲーム機又はコンソール、ｉＰｈｏｎｅのようなあらゆるＳｕｐｅｒＰｈｏｎｅ、及び／又はあらゆる他の携帯式、モバイル、手持ち式デバイスなどを含む携帯式デバイスのいずれかとすることができるがこれらに限定されない。一実施形態において、クライアントデバイス１０２、ホストサーバ１００、及びアプリケーションサーバ１１０は、ネットワーク１０６及び／又はネットワーク１０８を通じて結合される。一部の実施形態において、デバイス１０２及びホストサーバ１００は、直接に互いに接続することができる。
【００３１】
クライアントデバイス１０２上の入力機構は、タッチスクリーンキーパッド（２Ｄ又は３Ｄでの単一タッチ、マルチタッチ、動作感知などを含む）、物理的キーパッド、マウス、ポインタ、トラックパッド、動き検出器（例えば、１軸加速度計、２軸加速度計、３軸加速度計などを含む）、光センサ、キャパシタンスセンサ、抵抗センサ、温度センサ、近接センサ、圧電デバイス、デバイス方位検出器（例えば、電子コンパス、傾倒感知センサ、回転センサ、ジャイロスコープ、加速度計）、又は以上の組合せを含むことができる。
【００３２】
上述の入力機構又はその他のうちの１つ又はそれよりも多くを通じて受信又は検出されるクライアントデバイス１０２でのユーザ活動を示す信号は、クライアントデバイス１０２でコンテキスト認識を取得する際に開示する技術に使用することができる。クライアントデバイス１０２でのコンテキスト認識は、一般的に、制限ではなく一例として、クライアントデバイス１０２作動又は状態確認応答、管理、ユーザ活動／挙動／対話認識、検出、感知、追跡、動向分析、及び／又はアプリケーション（例えば、モバイルアプリケーション）タイプ、挙動、活動、作動状態などを含む。
【００３３】
本発明の開示におけるコンテキスト認識は、ネットワーク側コンテキストデータに関する知識及び検出を含み、かつネットワーク容量、帯域幅、トラフィック、ネットワーク／接続性のタイプ及び／又はあらゆる他の作動状態データのようなネットワーク情報を含むこともできる。ネットワーク側コンテキストデータは、ネットワーク１０６及び／又はネットワーク１０８のネットワークサービスプロバイダ（例えば、携帯電話プロバイダ１１２及び／又は「インターネット」サービスプロバイダ）から受信及び／又は問い合わせることができる（例えば、ホストサーバ及び／又はデバイス１０２により）。クライアント１０２側から判断されるアプリケーションコンテキスト認識に加えて、アプリケーションコンテキスト認識も、それぞれのアプリケーション／サービスプロバイダ１１０から受信、又は取得／問い合わせることができる（ホスト１００及び／又はクライアントデバイス１０２により）。
【００３４】
ホストサーバ１００は、例えば、クライアントデバイス１０２、ネットワーク１０６／１０８、アプリケーション（例えば、モバイルアプリケーション）、アプリケーションサーバ／プロバイダ１１０、又は以上のあらゆる組合せに向けて得られるコンテキスト情報を使用し、システム内のトラフィックを管理し、クライアントデバイス１０２のデータ必要を満たす（例えば、アプリケーション又はＨＴＴＰ要求を含むあらゆる他の要求を満たす）ことができる。一実施形態において、トラフィックは、明示的又は非明示的ユーザ１０３要求及び／又はデバイス／アプリケーション保守タスクに応答して行われるデータ要求を満たすためにホストサーバ１００により管理される。トラフィックは、ネットワーク消費量、例えば、セルラーネットワークの使用が有効かつ効率的な帯域幅利用に向けて節約されるような方式で管理することができる。更に、ホストサーバ１００は、依然として性能及びユーザ体験を最適化しながら、デバイス１０２側リソースの使用（例えば、バッテリ電力消費量、無線使用、プロセッサ／メモリ使用を含むがこれに限らない）がリソース節約に向けて一般的な理念で最適化されるようにシステム内のこのようなトラフィックを管理及び調整することができる。
【００３５】
例えば、バッテリ節約の関連では、デバイス１５０は、ユーザ活動を観測し（例えば、１つ又はそれよりも多くの入力機構などを通じてユーザキーストローク、バックライトステータス、又は他の信号を観測することにより）、かつデバイス１０２挙動を変えることができる。デバイス１５０はまた、ユーザ活動又は挙動に基づくネットワークリソース消費量に関してその挙動を変えるようにホストサーバ１００に要求することができる。
【００３６】
一実施形態において、ホストサーバ１００とクライアントデバイス１０２間の分散型システムを使用してリソース節約のためのトラフィック管理を提供する。分散型システムは、例えば、サーバ１００側のサーバキャッシュ１３５及びクライアント１０２側のローカルキャッシュ１５０によって示すように、サーバ１００側及びクライアント１０２側にプロキシサーバ及びキャッシュ構成要素を含むことができる。
【００３７】
ネットワーク（例えば、ネットワーク１０６及び／又は１０８）及びデバイス１０２内のリソース節約のためのコンテキスト認識トラフィック管理に関して開示する機能及び技術は、分散型プロキシ及びキャッシュシステム内に常駐する。プロキシ及びキャッシュシステムは、一部又は全部クライアントデバイス１０２及び／又は一部又は全部ホストサーバ１００間に分散してかつ常駐することができる。分散型プロキシ及びキャッシュシステムを図１Ｂに示す例示的な図を更に参照して例示する。クライアントデバイス１０２、ホストサーバ１００、及び内部の関連の構成要素内のプロキシ及びキャッシュ構成要素によって実行される機能及び技術に対して、それぞれ、図２〜図３の例を更に参照して詳細に説明する。
【００３８】
一実施形態において、クライアントデバイス１０２は、セルラーネットワークとすることができるネットワーク１０６上でホストサーバ１００及び／又はアプリケーションサーバ１１０と通信する。デバイス１０２と様々なアプリケーションサーバ／コンテンツプロバイダ１１０間の全体的なトラフィック管理を容易にしてネットワーク（帯域幅利用）及びデバイスリソース（例えば、バッテリ消費量）を実行するために、ホストサーバ１００は、「インターネット」を含むことができるネットワーク１０８上でアプリケーションサーバ／プロバイダ１１０と通信することができる。
【００３９】
一般的に、クライアントデバイス１０２、ホストサーバ１００、及び／又はアプリケーションサーバ１１０が通信するネットワーク１０６及び／又は１０８は、セルラーネットワーク、電話回線網、「インターネット」のようなオープンネットワーク、又は専用回線網（イントラネット及び／又はエクストラネットのような）、又はそのあらゆる組合せとすることができる。例えば、「インターネット」は、ＴＣＰ／ＩＰプロトコル、ＵＤＰ、ＨＴＴＰ、ＤＮＳ、開放型システム間相互接続（ＯＳＩ）、ＦＴＰ、ＵＰｎＰ、ｉＳＣＳＩ、ＮＳＦ、ＩＳＤＮ、ＰＤＨ、ＲＳ−２３２、ＳＤＨ、ＳＯＮＥＴなどであるがこれらに限定されないあらゆる公知又は便利なプロトコルを通じて、ファイル転送、リモートログイン、電子メール、ニュース、ＲＳＳ、クラウド型サービス、インスタントメッセージング、ビジュアルボイスメール、プッシュメール、ＶｏＩＰ、及び他のサービスを提供することができる。
【００４０】
ネットワーク１０６及び／又は１０８は、クライアントデバイス１０２及びホストサーバ１００との接続性をもたらすために共同して全体的又は部分的に作動する異なるネットワークのあらゆる集合とすることができ、かつサービスを受けているシステム及びデバイスに対して１つ又はそれよりも多くのネットワークとして見える場合がある。一実施形態において、クライアントデバイス１０２への及びそこからの通信は、「インターネット」のようなオープンネットワーク、又はイントラネット及び／又はエクストラネットのような専用回線網などによって達成することができる。一実施形態において、通信は、セキュアソケットレイヤ（ＳＳＬ）又はトランスポートレイヤセキュリティ（ＴＬＳ）のようなセキュアな通信プロトコルによって達成することができる。
【００４１】
更に、通信は、例えば、限定ではなく、汎ヨーロッパデジタル移動通信システム（ＧＳＭ（登録商標））、パーソナル通信サービス（ＰＣＳ）、デジタル高度移動電話サービス（Ｄ−Ａｍｐｓ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ、固定式無線データ、２Ｇ、２．５Ｇ、３Ｇ、４Ｇ、ＩＭＴ−Ａｄｖａｎｃｅｄ、プレ４Ｇ、３Ｇ  ＬＴＥ、３  ＧＰＰ  ＬＴＥ、ＬＴＥ  Ａｄｖａｎｃｅｄ、モバイルＷｉＭａｘ、ＷｉＭａｘ  ２、無線ＭＡＮ−Ａｄｖａｎｃｅｄネットワーク、ＧＳＭ（登録商標）進化型高速データレート（ＥＤＧＥ）、汎用パケット無線サービス（ＧＰＲＳ）、ｅｎｈａｎｃｅｄ  ＧＰＲＳ、ｉＢｕｒｓｔ、ＵＭＴＳ、ＨＳＰＤＡ、ＨＳＵＰＡ、ＨＳＰＡ、ＵＭＴＳ−ＴＤＤ、ｌｘＲＴＴ、ＥＶ−ＤＯ、ＴＣＰ／ＩＰ、ＳＭＳ、ＭＭのようなメッセージングプロトコル、イクステンシブルメッセジングアンドプレゼンスプロトコル（ＸＭＰＰ）、リアルタイムメッセージングプロトコル（ＲＴＭＰ）、インスタントメッセジングアンドプレゼンスプロトコル（ＩＭＰＰ）、インスタントメッセージング、ＵＳＳＤ、ＩＲＣ、又はあらゆる他の無線データネットワーク又はメッセージングプロトコルのような技術で有効にされるＷｉＭａｘ、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、キャンパスエリアネットワーク（ＣＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、広域通信網（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）のうちの１つ又はそれよりも多くのネットワーク上で達成することができる。
【００４２】
図１Ｂは、リソース節約に向けてデバイス１５０とアプリケーションサーバ／コンテンツプロバイダ１００（例えば、ソースサーバ）間のネットワークトラフィック管理を容易にするホストサーバ１００とデバイス１５０間の分散型プロキシ及びキャッシュシステムの例示的な図を示している。
【００４３】
分散型プロキシ及びキャッシュシステムは、例えば、サーバ側のプロキシサーバ１２５（例えば、リモートプロキシ）及びサーバキャッシュ１３５構成要素を含むことができる。サーバ側プロキシ１２５及びキャッシュ１３５は、図示のように、ホストサーバ１００の内部に常駐することができる。更に、サーバ側のプロキシサーバ１２５及びキャッシュ１３５は、ホストサーバ１００の外部に部分的又は全体的に位置し、かつネットワーク１０６及び１０８のうちの１つ又はそれよりも多くを通じて通信することができる。例えば、プロキシサーバ１２５は、ホストサーバの外部に位置することができ、サーバキャッシュ１３５は、ホストサーバ１００において維持することができる。代替的に、プロキシサーバ１２５は、ホストサーバ１００内に位置することができ、一方、サーバキャッシュは、ホストサーバ１００の外部である。更に、プロキシサーバ１２５及びキャッシュ１３５の各々は、部分的にホストサーバ１００の内部に、かつ部分的にホストサーバ１００の外部であることができる。
【００４４】
分散型システムは、一実施形態において、制限ではなく一例として、ローカルプロキシ１７５（例えば、モバイルデバイス上のモバイルクライアント）及び／又は図示のようにデバイス１５０（例えば、モバイルデバイス）の内部に常駐することができるローカルキャッシュ１８５を含むクライアント側構成要素を含むことができる。
【００４５】
更に、クライアント側プロキシ１７５及びローカルキャッシュ１８５は、部分的又は全体的にデバイス１５０の外部にあり、かつネットワーク１０６及び１０８のうちの１つ又はそれよりも多くを通じて通信することができる。例えば、ローカルプロキシ１７５は、デバイス１５０の外部であることができ、ローカルキャッシュ１８５は、デバイス１５０において維持することができる。代替的に、ローカルプロキシ１７５は、デバイス１５０内に位置することができ、一方、ローカルキャッシュ１８５は、デバイス１５０の外部に位置する。更に、プロキシサーバ１７５及びキャッシュ１８５の各々は、部分的にホストサーバ１００の内部に、かつ部分的にホストサーバ１００の外部であることができる。
【００４６】
一実施形態において、分散型システムは、任意的なキャッシングプロキシサーバ１９９を含むことができる。キャッシングプロキシサーバ１９９は、ネットワーク及びデバイスリソース節約に向けてネットワークトラフィック管理を容易にするために、アプリケーションサーバ／コンテンツプロバイダ１１０、ホストサーバ１００、又はネットワークサービスプロバイダ１１２、又は以上のあらゆる組合せにより作動される構成要素とすることができる。プロキシサーバ１９９は、例えば、アプリケーションサーバ／プロバイダ１１０、ホストサーバ１００、及び／又はネットワークサービスプロバイダ１１２のうちの１つ又はそれよりも多くから、例えば、デバイス１５０に供給すべきコンテンツをキャッシュに格納するのに使用することができる。コンテンツキャッシングは、デバイス１５０においてアプリケーション要求又は他のデータ要求を満たすためにリモートプロキシ１２５により完全に又は部分的に行うことができる。
【００４７】
ネットワーク（例えば、セルラーネットワーク又は他の無線ネットワーク）内のリソース節約のためのコンテキスト認識トラフィック管理及び最適化において、モバイルデバイス１５０でのユーザ活動／挙動の特性及び／又はアプリケーション挙動をローカルプロキシ１７５により追跡し、ネットワーク１０６上でホストサーバ１００内のプロキシサーバ１２５構成要素に例えば接続メタデータとして通信することができる。アプリケーションサーバ／プロバイダ１１０に結合されたプロキシサーバ１２５は、デバイス１５０において行われた要求を満たすコンテンツ及びデータを供給する。
【００４８】
更に、ローカルプロキシ１７５は、バッテリレベル、デバイスが登録されるネットワーク、無線状態、モバイルデバイスが使用されたか否か（例えば、ユーザによる対話状態）のうちの１つ又はそれよりも多くを含むモバイルデバイス特性を識別及び検索することができる。一部の例において、ローカルプロキシ１７５は、図２〜図３の例に関連付けられた説明を参照してより詳細するように、適切な時にプロキシサーバ１２５への送信の前にデータを迅速処理（先取り）及び／又は修正することができる。
【００４９】
ローカルデータベース１８５は、ローカルプロキシ１７５内に含めるか、又はプロキシ１７５に結合することができ、かつデータ要求がプロキシサーバ１２５上に転送される前に、データ要求に対するローカルに格納された応答がないかを問い合わせることができる。ローカルにキャッシュに格納された応答をローカルプロキシ１７５により使用し、キャッシュ格納コンテンツがまだ有効な時に、キャッシュストレージ１８５に格納されたキャッシュ格納コンテンツを検索することにより、モバイルデバイス１５０の特定のアプリケーション要求を満たすことができる。
【００５０】
同様に、ホストサーバ１００のプロキシサーバ１２５は、コンテンツソース（例えば、アプリケーションサーバ／コンテンツプロバイダ１１０）への送信の前にローカルプロキシからのデータを遅延、迅速に処理、又は修正することができる。更に、プロキシサーバ１２５は、デバイス特性及び接続メタデータを使用し、モバイルデバイス１５０上でアプリケーションの要求を満たす規則を生成する。プロキシサーバ１２５は、後でモバイルデバイス１５０又は他のモバイルデバイスとの類似の接続を最適化する際に使用するためにアプリケーションの要求に関するリアルタイムのトラフィック情報を収集することができる。
【００５１】
一般的に、ローカルプロキシ１７５及びプロキシサーバ１２５は、モバイルデバイス上で実行中の複数のアプリケーションに対して透過的である。ローカルプロキシ１７５は、一般的にモバイルデバイスのオペレーティングシステム又はプラットホームに対して透過的であり、デバイス製造業者に特定のものである場合もあれば、特定ではない場合もある。一部の例において、ローカルプロキシ１７５は、デバイス専用であるように一部又は全部が任意的にカスタマイズ可能である。一部の実施形態において、ローカルプロキシ１７５を無線モデルに、ファイアウォールに、及び／又はルータにバンドルすることができる。
【００５２】
一実施形態において、ホストサーバ１００は、一部の例において、ネットワークトラフィック管理をもたらすのにデバイス１５０と通信する際に、ネットワークサービスプロバイダ１１２によって提供されるもののようなショートメッセージサービスセンター（ＳＭＳＣ）１１２の格納及び転送機能を利用することができる。図３の例を参照して更に説明するように、ホストサーバ１００は、利用可能である場合はデバイス１５０に自動的に転送されるように、かつデバイス１５０が現在利用可能でない場合はその後の転送に向けて、ＳＭＳＣ１１２にコンテンツ又はＨＴＴＰ応答を転送することができる。
【００５３】
一般的に、開示する分散型プロキシ及びキャッシュシステムは、ネットワーク使用の最適化を可能にする。例えば、ローカルキャッシュ１８５からの要求に供されることにより、ローカルプロキシ１７５は、ネットワーク１０６で満たす必要がある要求の数を低減する。更に、ローカルプロキシ１７５及びプロキシサーバ１２５は、通信されたデータから無関係なデータをフィルタリングすることができる。更に、ローカルプロキシ１７５及びプロキシサーバ１２５は、低優先度データを蓄積し、かつ個々のデータの断片を送るプロトコルのオーバーヘッドを回避するためにバッチで送ることができる。ローカルプロキシ１７５及びプロキシサーバ１２５は、トラフィックを圧縮又は変換し、ネットワーク１０６及び／又は１０８で送られるデータ量を低減することができる。ネットワーク１０６及び／又は１０８内の信号伝達トラフィックは、ネットワークがここでは使用頻度が少なく、ネットワークトラフィックを個々のアプリケーション間で同期化することができるので低減することができる。
【００５４】
モバイルデバイス１５０の電池寿命に対して、ローカルキャッシュ１８５からアプリケーション又はコンテンツ要求に供されることにより、ローカルプロキシ１７５は、無線モジュールの電源が投入される回数を低減することができる。無線が電源を投入される時に、ローカルプロキシ１７５及びプロキシサーバ１２５は、共同して機能し、低優先度データを蓄積し、かつバッチで送り、無線が電源を投入される回数及び／又は期間を低減することができる。ローカルプロキシ１７５は、同時に全ての接続に向けてバッチ処理されたデータ転送を行うことにより、ネットワーク使用を同期化することができる。
【００５５】
図２Ａは、リソース節約に向けて無線ネットワーク内のトラフィックを管理するモバイルデバイス２５０上に常駐する分散型プロキシ及びキャッシュシステム内のクライアント側構成要素の例を示すブロック図を示している。
【００５６】
携帯式電話のような携帯式デバイス又はモバイルデバイスとすることができるデバイス２５０は、一般的に、例えば、ネットワークインタフェース２０８、オペレーティングシステム２０４、コンテキストＡＰＩ２０６、及びプロキシ無認識２１０又はプロキシ認識２２０とすることができるモバイルアプリケーションを含む。尚、デバイス２５０は、モバイルデバイスとして特に図２の例に示されているが、このようなものに制限せず、デバイス２５０は、有線又は無線ネットワーク（例えば、ＷｉＦｉ、セルラー、Ｂｌｕｅｔｏｏｔｈ（登録商標）のような）を含むネットワークでデータ要求を満たす信号を受信、送信することができるあらゆる携帯式／モバイル、又は非携帯式デバイスとすることができる。
【００５７】
ネットワークインタフェース２０２は、デバイス２５０が、ホスト及び外部エンティティによりサポートされるあらゆる公知の及び／又は便利な通信プロトコルを通じて、ホストサーバ２５０の外部に位置するエンティティとネットワーク内のデータを仲介することを可能にするネットワーキングモジュールとすることができる。ネットワークインタフェース２０８は、ネットワークアダプタカード、無線ネットワークインタフェースカード（例えば、ＳＭＳインタフェース、ＷｉＦｉインタフェース、１Ｇ、２Ｇ、３Ｇ、３．５Ｇ、４Ｇ、ＬＴＥのようなＢｌｕｅｔｏｏｔｈ（登録商標）を含むがこれらに限定されず、又は接続がルータ、アクセスポイント、無線ルータ、スイッチ、多層スイッチ、プロトコル変換器、ゲートウェイ、ブリッジ、ブリッジルータ、ハブ、デジタルメディア受信機及び／又は中継器を通じてであるか否かに関わらず、モバイル通信規格の様々な生成のためのインタフェース）のうちの１つ又はそれよりも多くを含むことができる。
【００５８】
デバイス２５０は、ローカルプロキシ２７５（例えば、モバイルデバイスのモバイルクライアント）とキャッシュ２８５とを含むことができる分散型プロキシ及びキャッシュシステムのクライアント側構成要素を更に含むことができる。一実施形態において、ローカルプロキシ２７５は、ユーザ活動モジュール２１５、プロキシＡＰＩ２２５、要求／トランザクションマネージャ２３５、キャッシュポリシーマネージャ２４５、トラフィック成形エンジン２５５、及び／又は接続マネージャ２６５を含む。トラフィック成形エンジン２５５は、アラインメントモジュール２５６及び／又はバッチ処理モジュール２５７を更に含むことができ、接続マネージャ２６５は、無線コントローラ２６６を更に含むことができる。要求／トランザクションマネージャ２３５は、アプリケーション挙動検出器２３６及び／又は優先順位付けエンジン２４１を更に含むことができ、アプリケーション挙動検出器２３６は、パターン検出器２３７及び／又はアプリケーションプロフィール発生器２３９を更に含むことができる。追加の又はより少ない構成要素／モジュール／エンジンをローカルプロキシ２７５及び各図示の構成要素内に含むことができる。
【００５９】
本明細書で使用する時に「モジュール」、「マネージャ」、「ハンドラ」、「検出器」、「インタフェース」、又は「エンジン」は、汎用、専用、又は共有プロセッサ、及び典型的にプロセッサによって実行されるファームウエア又はソフトウエアモジュールを含む。実行特定の又は他の考慮事項に基づいて、モジュール、マネージャ、ハンドラ、又はエンジンを集中型又は機能性分散型とすることができる。モジュール、マネージャ、ハンドラ、又はエンジンは、プロセッサによる実行に向けてコンピュータ可読ストレージ媒体内で実施される汎用又は専用ハードウエア、ファームウエア、又はソフトウエアを含むことができる。本明細書で使用する時にコンピュータ可読媒体又はコンピュータ可読ストレージ媒体は、全て、制定法（例えば、米国においては「３５  Ｕ．Ｓ．Ｃ．１０１」）に従う媒体を含み、特に、コンピュータ可読（ストレージ）媒体を含む特許請求の範囲が有効であるように除外が必要である範囲で本質的に制定法に従うものではない全ての媒体を除外することを意図している。公知の制定法に従うコンピュータ可読媒体は、ハードウエア（例えば、少し例を挙げればレジスタ、ランダムアクセスメモリ（ＲＡＭ）、不揮発性（ＮＶ）ストレージ）を含むが、ハードウエアに制限される場合もあれば、制限されない場合もある。
【００６０】
一実施形態において、ネットワークトラフィック管理のための分散型プロキシ及びキャッシュシステムの一部は、デバイス２５０内に常駐するか、又はローカルプロキシ２７５（モバイルクライアント）及び／又はキャッシュ２８５を含むデバイス２５０と通信している。ローカルプロキシ２７５は、ユーザが電子メール、ＩＭ、ボイスメール、ビジュアルボイスメール、放送番組、「インターネット」、他のアプリケーションなどを含むデバイスアプリケーション及びサービスにアクセスするデバイス２５０上のインタフェースになることができる。
【００６１】
プロキシ２７５は、一般的に独立したアプリケーションであり、かつリモートサーバ（例えば、図１Ａ〜１Ｂの例のサーバ１００及び／又は図１Ｂ及び図３の例に示すサーバプロキシ１２５／３２５）にＴＣＰ接続を開くために、アプリケーション（例えば、プロキシ認識及びプロキシ無認識モバイルアプリケーション２１０及び２２０）により使用することができる。一部の例において、ローカルプロキシ２７５は、プロキシ認識アプリケーション２２０（又はモバイルデバイス上のモバイルアプリケーション）とインタフェースで接続するために任意的に使用することができるプロキシＡＰＩ２２５を含む。
【００６２】
アプリケーション２１０及び２２０には、あらゆるユーザアプリケーション、ウィジェット、ソフトウエア、ｈｔｔｐベースのアプリケーション、ウェブブラウザ、ビデオ又は他のマルチメディアのストリーミング又はダウンロードアプリケーション、テレビゲーム、社会的ネットワークアプリケーション、電子メールクライアント、ＲＳＳ管理アプリケーション、アプリケーションストア、文書管理アプリケーション、生産性強化アプリケーションなどを一般的に含むことができる。アプリケーションは、デバイス製造業者、ネットワークサービスプロバイダによりデバイスＯＳと共に供給するか、ユーザによりダウンロードするか、又は他の者によって供給することができる。
【００６３】
ローカルプロキシ２７５の一実施形態は、図示のように、コンテキストＡＰＩ２０６を含むか、又はそれに結合される。コンテキストＡＰＩ２０６は、オペレーティングシステム２０４又はデバイスプラットホームの一部とすることができ、又は図示のようにオペレーティングシステム２０４とは独立したものとすることができる。オペレーティングシステム２０４として、モバイルウインドウズ、ｉＯＳ、Ａｎｄｒｏｉｄ、Ｓｙｍｂｉａｎ、Ｐａｌｍ  ＯＳ、Ｂｒｅｗ  ＭＰ、Ｊａｖａ（登録商標）  ２マイクロ版（Ｊ２ＭＥ）、Ｂｌａｃｋｂｅｒｒｙのようなあらゆる過去、現在、及び／又は将来のバージョン／リリースを含むがこれに限定されないあらゆるオペレーティングシステムを含むことができる。
【００６４】
コンテキストＡＰＩ２０６は、オペレーティングシステム２０４又はデバイス２５０上の特定のクライアントアプリケーションに接続することができる。コンテキストＡＰＩ２０６は、ユーザ又はデバイス活動、例えば、動き、動作、デバイス位置、デバイス位置の変化、デバイスバックライト、キーストローク、クリック、タッチスクリーン起動、パーソナルコンピュータマウスクリック、又は他のポインタデバイスの検出を示す信号を検出することができる。コンテキストＡＰＩ２０６をデバイス２５０上の入力デバイス又はセンサに結合し、これらの信号を識別することができる。このような信号は、一般的に、デバイス２５０で入力デバイス／機構で明示的ユーザ入力に応答して受信され、及び／又はデバイス２５０で又はデバイス２５０の近くで検出された周囲信号／条件に即したキュー（例えば、光、動き、圧電のような）から収集された入力を含むことができる。
【００６５】
一実施形態において、ユーザ活動モジュール２１５は、コンテキストＡＰＩ２０６と対話し、デバイス２５０上でのユーザ活動の特性を識別、判断、推定、検出、計算、予知、及び／又は予想する。コンテキストＡＰＩ２０６により収集された様々な入力をユーザ活動モジュール２１５により集計し、ユーザ活動の特性に関するプロフィールを生成することができる。このようなプロフィールは、様々な時間的特性でモジュール２１５によって生成することができる。例えば、ユーザ活動プロフィールは、特定の時点で（例えば、時間ウインドウにより定義、最後の１分、最後の３０秒のような）ユーザが何をしているか又はしていないことの概観が得られるように特定のインスタントに対してリアルタイムで生成することができ、ユーザ活動プロフィールは、デバイス２５０上で又は特定の期間（例えば、最後の５時間、最後の２時間）にわたって従事している特定業務に関してユーザ挙動の特性を説明するアプリケーション又はウェブページにより定められた「セッション」に向けて生成することができる。
【００６６】
更に、ユーザ活動及び挙動の履歴傾向（例えば、１週、１ヵ月、２ヵ月のような）を示す特性プロフィールをユーザ活動モジュール２１５によって生成することができる。このような履歴プロフィールを使用し、ユーザ挙動の傾向、例えば、異なる時刻、特定の曜日（週末又は週日）の傾向）でのアクセス頻度、位置データに基づくユーザ活動傾向（例えば、ＩＰアドレス、ＧＰＳ又は携帯電話基地局座標データ）、又は位置データの変化（例えば、ユーザ位置に基づくユーザ活動又はユーザが動き回っているか、又は国内エリア外で旅行しているかどうかに関するユーザ活動）を導出してユーザ活動特性を取得することができる。
【００６７】
一実施形態において、ユーザ活動モジュール２１５は、デバイス２５０上のアプリケーション、文書、ファイル、ウインドウ、アイコン、及びフォルダに関してユーザ活動を検出及び追跡することができる。例えば、ユーザ活動モジュール２１５は、いつアプリケーション又はウインドウ（例えば、ウェブブラウザ）を出たか、閉じたか、最小にしたか、最大にしたか、開いたか、前景又は背景に移動したか、マルチメディアコンテンツ再生などを検出することができる。
【００６８】
一実施形態において、デバイス２５０上のユーザ活動の特性を使用し、バッテリ／電力消費量及びより一般的にはメモリ、ストレージ、及び処理電力を含む他のデバイスリソースの消費量のようなリソース消費量を最適化するようにデバイス（例えば、モバイルデバイス）の挙動をローカルに調整することができる。一実施形態において、ユーザ活動モジュール２１５に結合されたユーザ挙動の特性に基づいてデバイス上の無線の使用を調整することができる（例えば、接続マネージャ２６５の無線コントローラ２６６により）。例えば、無線コントローラ２６６は、デバイス２５０上のユーザ活動の特性に基づいて、無線の電源を投入及び切断することができる。更に、無線コントローラ２６６は、ユーザ活動の特性に基づいて無線の電力モードを調整することができる（例えば、高い方の電力モード又は低い方の電力モードになるように）。
【００６９】
一実施形態において、デバイス２５０上のユーザ活動の特性を使用し、デバイス２５０と通信することができる（例えば、セルラーネットワーク又は他のネットワーク上で）別のデバイス（例えば、他のコンピュータ、モバイルデバイス、又は非携帯式デバイス）又はサーバ（例えば、図１Ａ〜図１Ｂ及び図３の例のホストサーバ１００及び３００）にデバイス２５０との通信頻度を修正させることができる。ローカルプロキシ２７５は、ユーザ活動モジュール２１５により判断されたユーザ挙動の特性情報を使用し、その通信頻度を調整させる方法に関して遠隔デバイスに指示することができる（例えば、ユーザがアイドルである場合にデータプッシュ配信頻度のような通信頻度を減少する、新しいデータ、変更されたデータ、異なるデータ又は特定の重要性レベルのデータが利用可能になった場合にリモートデバイスがデバイス２５０に通知するように要求するなど）。
【００７０】
一実施形態において、ユーザ活動モジュール２１５は、ユーザ活動特性がユーザが非アクティブ状態の後にアクティブであることを示すとの判断に応答して、リモートデバイス（例えば、図１Ａ〜図１Ｂ及び図３の例のサーバホストサーバ１００及び３００）が先だって低減された通信頻度の結果としてバッファ方式でデータを送ることを要求することができる。
【００７１】
追加的又は代替的に、ローカルプロキシ２７５は、リムーブデバイス（例えば、図１Ａ〜図１Ｂ及び図３の例のホストサーバ１００及び３００）にデバイス２５０でのユーザ活動の特性を通信することができ、リモートデバイスは、ネットワークリソース節約及びデバイス２５０リソースの節約に向けてデバイス２５０との固有の通信頻度を変える方法を判断する。
【００７２】
ローカルプロキシ２７５の一実施形態は、要求／トランザクションマネージャ２３５を更に含み、要求／トランザクションマネージャ２３５は、例えば、アプリケーション２１０及び／又は２２０により、及び／又は直接的／間接的にユーザ要求により、デバイス２５０上で開始されたデータ要求を検出、識別、傍受、処理、管理することができる。要求／トランザクションマネージャ２３５は、トランザクション特性に基づいて処理に特定の要求又はトランザクション又は１組の要求／トランザクションをどのようにかついつ処理したらよいかを判断することができる。
【００７３】
要求／トランザクションマネージャ２３５は、デバイス２５０でのアプリケーション及び／又はユーザにより、例えば、優先順位付けエンジン２３８によって行われた要求又はトランザクションに優先順位を付けることができる。要求／トランザクションの重要性又は優先度は、規則セットを適用することにより、例えば、トランザクション、トランザクション内のコンテンツの時間依存性、トランザクションの時間的重要度、トランザクションにおいて送信されるデータの時間的重要度、及び／又は要求を行うアプリケーションの時間的重要度又は重要性の時間依存性に従ってマネージャ２３５により判断することができる。
【００７４】
更に、トランザクション特性は、トランザクションがデバイス上のユーザ対話又は他のユーザ主導型アクション（例えば、モバイルアプリケーションとのユーザ対話）の結果であったか否かに依存する可能性もある。一般的に、タイムクリティカルなトランザクションは、ユーザ主導型データ転送から生じるトランザクションを含むことができ、そのようなものとして優先順位を付けることができる。トランザクション特性は、転送されることになるか、又は要求／要求されたトランザクションの結果として転送されることが予想されるデータの量に依存する可能性もある。例えば、接続マネージャ２６５は、転送する必要があるデータ量に基づいて無線モードを調整することができる（例えば、無線コントローラ２６６を通じて高電力又は低電力モードに）。
【００７５】
更に、無線コントローラ２６６／接続マネージャ２６５は、トランザクションの時間的重要度／依存性に基づいて、無線電力モード（高又は低）を調整することができる。無線コントローラ２６６は、タイムクリティカルなトランザクション（例えば、ユーザ主導型データ転送から生じるトランザクション、前景で実行中であるアプリケーション、特定の基準を満たすあらゆる他のイベント）が開始又は検出された時に高電力無線モードの使用をトリガすることができる。
【００７６】
一般的に、優先度は、例えば、デバイスプラットホーム、デバイス製造業者、オペレーティングシステムなどに基づいてデフォルトにより設定されると判断することができる。優先度は、代替的又は追加的に、特定のアプリケーションによって設定することができ、例えば、フェイスブックモバイルアプリケーションは、様々なトランザクションに向けて固有の優先度を設定することができ（例えば、ステータス更新は、友達を追加する要求又はポーク要求よりも優先度が高いとすることができ、例えば、メッセージ送信要求は、メッセージ削除要求よりも優先度が高いとすることができる）、電子メールクライアント又はＩＭチャットクライアントは、優先度に対して固有の構成を有することができる。優先順位付けエンジン２４１は、優先度を割り当てる１組の規則を含むことができる。
【００７７】
優先順位付けエンジン２４１は、要求／トランザクションに向けて全体的な優先度ステータスを判断する際のアプリケーション又はトランザクション優先度に関するネットワークプロバイダ制限事項又は仕様を追跡することができる。更に、優先度は、明示的、黙示的に関わらず、部分的又は全体的にユーザ優先度によって判断することができる。ユーザは、一般的に、セッション又はタイプ又はアプリケーションの特定の優先度のような異なる階層で優先度を設定することができる（例えば、ＩＭチャットセッションに対して閲覧セッション、ゲームセッション、ユーザは、ウェブ−閲覧セッションよりも高い優先度を有することができるＩＭチャットセッションよりも高い優先度を常に有するようにゲームセッションを設定することができる）。ユーザは、特定のトランザクションタイプに対して（例えば、全てのアプリケーションにわたる全てのメッセージを送る要求に対して、メッセージ削除要求よりも高い優先度を有するように、全てのカレンダ関連のイベントに対して高い優先度を有するように）、及び／又は特定のフォルダに対して、アプリケーションに特定の優先度を設定することができる（例えば、ユーザはＬｉｎｋｅｄｌｎ関連のトランザクションよりも高い優先度を有するようにフェイスブック関連のトランザクションを設定することができる）。
【００７８】
優先順位付けエンジン２４１は、異なるエンティティによって設定される優先度で矛盾を追跡及び解決することができる。例えば、ユーザにより指定された手動の設定は、デバイスＯＳ設定に優先することができ、ネットワークプロバイダパラメータ／制限事項（例えば、ネットワークサービスエリア、地理的位置に対してデフォルトで設定済み、特定の時刻に向けて設定済み、又はサービス／料金タイプに基づいて設定済み）は、あらゆるユーザ指定の設定及び／又はアプリケーションによって設定された優先度を制限することができる。一部の例において、ユーザから受信した手動の同期要求は、要求された同期化が、個々に割り当てた優先度又は要求されたアクションの全体的な優先度順位付けとは無関係に要求される時に行われるという点において、一部、大半、又は全ての優先度設定を無効化することができる。
【００７９】
優先度は、二進表示、多価表示、等級表示を含むがこれらに限定されないあらゆる公知の及び／又は便利な方法で指定しかつ内部的に追跡することができ、全ては、開示する技術の範囲であると見なされる。
【００８０】
（表Ｉ）
0005620578.tif 000002
【００８１】
以下の表Ｉは、例示を目的として、二進表示方式での割当てられた優先度の例を用いたトランザクションの一部の例を示している。付加的な割当ては、イベント、要求、トランザクションの付加的なタイプに対して可能であり、上述のように、優先度割当ては、多かれ少なかれ粒度の細かいレベルで、例えば、セッションレベルで、又はアプリケーションレベルなどで行うことができる。
【００８２】
上述の表において一例として図示したように、一般的に、優先度が低い要求／トランザクションには、既読、未読としてのメッセージステータスの更新、メッセージ削除、コンタクト削除を含むことができ、優先権が高い要求／トランザクションには、一部の例において、ステータス更新、新しいＩＭチャットメッセージ、新しい電子メール、カレンダイベント更新／取消し／削除、モバイルゲームセッション内のイベント又は他のエンターテインメント関連のイベント、ウェブ購入又はオンラインを通じた購入確認、付加的なコンテンツをロードするか又はコンテンツをダウンロードする要求、コンタクトブック関連のイベント、デバイス設定を変更するトランザクション、位置認識の又は位置ベースのイベント／トランザクション、又はユーザによって開始されるか、ユーザが応答などを待っていることが既知であるか又は待っていることが予想され、又は待っていると思われるあらゆる他のイベント／要求／トランザクションを含むことができる。
【００８３】
受信箱枝刈りイベント（例えば、電子メール又はあらゆる他のタイプのメッセージ）は、一般的に低優先度と考えられ、他の間近に迫ったイベントがない限り、通常、デバイス２５０上での無線の使用をトリガしないことになる。具体的には、古い電子メール又は他のコンテンツを除去する枝刈りイベントは、予定された枝刈りイベントの時点で無線が別段オンではない場合に、他の通信と共に「抱き合わせる」ことができる。例えば、ユーザが「メッセージを７日間そのまま保つ」に設定された優先傾向を有する場合に、デバイス２５０からのメッセージ削除を開始するためにデバイス無線の電源を投入する代わりに、メッセージが７日経過よりも大きい時に直ちに、次に無線の電源が投入された時にメッセージは削除される。無線がオンになっている場合に、正規に予定された通りに枝刈りを行うことができる。
【００８４】
要求／トランザクションマネージャ２３５は、要求に向けて優先度を使用して（例えば、優先順位付けエンジン２４１により）、リソース最適化に向けてデバイス２５０からの発信トラフィックを管理する（例えば、バッテリ節約に向けてより効率的にデバイス無線を利用する）ことができる。例えば、特定の優先度順位付けよりも小さいトランザクション／要求は、無線がまだオンになっていない場合に、接続マネージャ２６５により制御されるようにはデバイス２５０上での無線の使用をトリガすることができない。これとは対照的に、無線コントローラ２６６は、トランザクションの要求が特定の優先度レベルよりも大きいと検出された時に要求を送ることができるように無線の電源を投入することができる。
【００８５】
一実施形態において、優先度割当て（ローカルプロキシ２７５又は別のデバイス／エンティティにより判断されるもののような）を使用してリモートデバイスにモバイルデバイスとの通信頻度を修正させることができる。例えば、モバイルデバイスに送られる重要性が高いデータが準備された時にデバイス２５０に通知を送るようにリモートデバイスを構成することができる。
【００８６】
一実施形態において、例えば、トラフィック成形エンジン２５５によりトラフィックを成形又は管理する際にユーザ活動の特性に関連してトランザクション優先度を使用することができる。例えば、トラフィック成形エンジン２５５は、ユーザが休止中又は非アクティブであるという検出に応答し、しばらく、デバイス２５０から低優先度トランザクションを送るのを待つことができる。更に、トラフィック成形エンジン２５５は、複数の低優先度トランザクションがデバイス２５０からのバッチ転送に向けて蓄積することを可能にすることができる（例えば、バッチ処理モジュール２５７を通じて）。一実施形態において、優先度は、ユーザにより、設定、構成、又は再調整することができる。例えば、同じか又は類似の形態で表Ｉに示すコンテンツは、デバイス２５０上でのユーザインタフェースにおいてアクセス可能にすることができ、かつ例えば優先度を調整又は閲覧するためにユーザにより使用することができる。
【００８７】
バッチ処理モジュール２５７は、特定の基準に基づいてバッチ転送を開始することができる。例えば、バッチ転送（例えば、一部が時点において異なるインスタンスで発生したイベントの複数の発生のもの）は、特定の数の低優先度イベントが検出された後に、又は低優先度の第１のイベントが開始された後にある一定の時間量が経過した後に行うことができる。更に、バッチ処理モジュール２５７は、高優先権イベントがデバイス２５０で開始又は検出された時に、蓄積した低優先度イベントのバッチ転送を開始することができる。バッチ転送は、他の場合では、無線使用が別の理由でトリガされた時に（例えば、ホストサーバ１００又は３００のようなリモートデバイスからデータを受信するために）開始することができる。一実施形態において、バッチ転送が行われた時に、間近に迫った枝刈りイベント（受信箱の枝刈り）又はあらゆる他の低優先度イベントを実行することができる。
【００８８】
一般的に、バッチ処理機能は、以下のもの、すなわち、ユーザ構成、デバイス制限事項／設定、製造業者仕様、ネットワークプロバイダパラメータ／制限事項、プラットホーム特定の制限事項／設定、デバイスＯＳ設定などのいずれか１つ又は組合せに基づいて、イベント／トランザクションレベル、アプリケーションレベル、又はセッションレベルで無効又は有効にすることができる。一実施形態において、バッチ転送は、アプリケーション／ウインドウ／ファイルを閉じたか、出たか、背景へ移動した時に開始することができ、バッチ転送を開始する前にユーザを任意的に促すことができ、ユーザは、バッチ転送を手動でトリガすることができる。
【００８９】
一実施形態において、ローカルプロキシ２７５は、キャッシュ２８５内にデータを格納することにより、ローカルにデバイス２５０上での無線使用を調整する。デバイス２５０からの要求又はトランザクションがキャッシュ２８５に格納されたコンテンツにより満たすことができる時に、無線コントローラ２６６は、無線を起動してリモートエンティティ（例えば、図１及び図３に示すようにホストサーバ１００、３００、又は図１Ａ及び図１Ｂの例に示すサーバ／プロバイダ１１０のようなコンテンツプロバイダ／アプリケーションサーバ）に要求を送信する必要はない。従って、ローカルプロキシ２７５は、ローカルキャッシュ２８５及びキャッシュポリシーマネージャ２４５を使用し、データ要求を満たすデータをローカルに格納し、ネットワークリソース及びデバイスバッテリ消費量の節約に向けてデバイス無線の使用を排除又は低減することができる。
【００９０】
ローカルキャッシュを利用する際に、要求／トランザクションマネージャ２２５がデバイス２５０上でのアプリケーションによるデータ要求を傍受した状態で、ローカルリポジトリ２８５に問い合わせて、ローカルに格納された応答があるか否かを判断し、応答が有効であるか否かも判断することができる。有効な応答がローカルキャッシュ２８５にある時に、応答は、デバイス２５０がデバイス２５０上のアプリケーションに供給することができ、セルラーネットワークにアクセスする必要はない。
【００９１】
有効な応答がない場合に、ローカルプロキシ２７５は、リモートプロキシ（例えば、図３のサーバプロキシ３２５）に問い合わせてリモートに格納された応答が有効であるか否かを判断することができる。その応答が有効である場合に、リモートに格納された応答（例えば、図１Ｂの例に示すサーバキャッシュ１３５又は任意的なキャッシュサーバ１９９上に格納することができる）をモバイルデバイスに供給することができ、一部の場合には、モバイルデバイス２５０は、セルラーネットワークにアクセスする必要がなく、従って、ネットワークリソースの消費量が軽減される。
【００９２】
有効なキャッシュ応答が利用可能でない場合、又はキャッシュ応答が傍受されたデータ要求に対して利用可能でない場合に、ローカルプロキシ、例えば、キャッシュポリシーマネージャ２４５は、コンテンツソース（例えば、図１のアプリケーションサーバ／コンテンツプロバイダ１１０）にデータ要求を転送するリモートプロキシ（例えば、図３のサーバプロキシ３２５）にデータ要求を送信することができ、かつ図３の例示的なホストサーバ３００に関連付けられた説明において更に説明するようにコンテンツソースからの応答をリモートプロキシを通じて供給することができる。キャッシュポリシーマネージャ２４５は、ＨＴＴＰ、ＨＴＴＰ、ＩＭＡＰ、ポップ、ＳＭＴＰ、及び／又はＡｃｔｉｖｅＳｙｎｃを含むがこれらに限定されない様々なプロトコルを使用する要求を管理又は処理することができる。キャッシュポリシーマネージャ２４５は、同じか又は類似のデータ要求を満たす際にその後に使用するためにキャッシュエントリとしてローカルデータベース２８５内のデータ要求に向けて応答をローカルに格納することができる。
【００９３】
マネージャ２４５は、リモートプロキシがデータ要求に向けて応答をモニタするように要求することができ、リモートプロキシは、データ要求に対する不意の応答が検出された時にデバイス２５０に通知することができる。このようなイベントにおいて、キャッシュポリシーマネージャ２４５は、データ要求に対する不意の応答（例えば、新しいデータ、変更されたデータ、付加的なデータのような）を通知された時に、デバイス２５０上のローカルに格納された応答を消去するか又は入れ替えることができる。一実施形態において、キャッシュポリシーマネージャ２４５は、ＨＴＴＰ、ＨＴＴＰ、ＩＭＡＰ、ＰＯＰ、ＳＭＴＰ、及び／又はＡｃｔｉｖｅＳｙｎｃを含むがこれらに限定されず、特定の要求に使用されたプロトコルを検出又は識別することができる。一実施形態において、ローカルプロキシ２７５上のアプリケーション特定のハンドラ（例えば、マネージャ２４５のアプリケーションプロトコルモジュール２４６を通じた）は、分散型プロキシ内のハンドラにポートマッピング（例えば、図３の例ではプロキシサーバ３２５上へのポートマッピング）することができるあらゆるプロトコルの最適化を可能にする。
【００９４】
一実施形態において、ローカルプロキシは、コンテンツソースへのデータ要求によりモバイルデバイスに戻される同じ結果が得られた時に、リモートプロキシが例えばデバイス２５０に結果を戻す前に結果の変更がないかコンテンツソースからのデータ要求に向けて受信した応答をモニタすることができるようにリモートプロキシに通知する。一般的に、ローカルプロキシ２７５は、ローカルにキャッシュに入れられたコンテンツを使用してデバイス２５０上のアプリケーションの代わりにアプリケーションサーバ応答を模擬することができる。それによって新しい／変更されたデータのないトランザクションのためのセルラーネットワークの利用を防止することができ、従って、ネットワークリソースが解放され、かつネットワークの混雑が防止される。
【００９５】
一実施形態において、ローカルプロキシ２７５は、デバイス２５０上でアクセス又はインストールされたアプリケーション（例えば、プロキシ認識及び／又はプロキシ無認識アプリケーション２１０及び２２０）を追跡、検出、観測、モニタするアプリケーション挙動検出器２３６を含む。デバイス２５０上でアクセスされた１つ又はそれよりも多くのアプリケーションのアプリケーション挙動（例えば、パターン検出器２３７を通じて）又は検出された挙動内のパターンをローカルプロキシ１７５により使用し、これらのアプリケーションのデータ必要性を満たすのに必要とされる無線ネットワーク内のトラフィックを最適化することができる。
【００９６】
例えば、複数のアプリケーションの検出された挙動に基づいて、トラフィック成形エンジン２５５は、ネットワーク（無線ネットワーク）上でアプリケーションの少なくとも一部分によって行われる（例えば、アラインメントモジュール２５６を通じて）コンテンツ要求を整列させることができる。アラインメントモジュールは、一部の前の受信された要求を遅延させるか又は迅速に処理して整列をもたらすことができる。要求が整列された時に、トラフィック成形エンジン２５５は、接続マネージャを利用し、ネットワークでポーリングしてアプリケーションデータ要求を満たすことができる。複数のアプリケーションのためのコンテンツ要求は、例えば、複数のアプリケーションにより要求されるコンテンツタイプ（音声、ビデオ、テキストのような）、モバイルデバイスパラメータ及び／又はネットワークパラメータ／トラフィック条件、ネットワークサービスプロバイダ制約／仕様などを含む挙動パターン又は規則／設定に基づいて整列させることができる。
【００９７】
一実施形態において、パターン検出器２３７は、複数のアプリケーションによって行われたアプリケーション要求において、例えば、アプリケーション挙動においてパターンを追跡することによって再発を検出することができる。追跡されたパターンは、特定のアプリケーションが、背景処理として、例えば、規則正しく、特定の時刻で、特定の曜日に、定期的に予想可能に、特定の頻度で、特定のタイプのイベントに応答し、特定のタイプユーザ問い合わせに応答して特定の頻度で、要求されたコンテンツが同じことである頻度で、同じ要求が行われる頻度で、要求間の間隔、要求を行うアプリケーション、又は以上のあらゆる組合せでアプリケーションサーバをポーリングすることを検出することを含むことができる。
【００９８】
このような再発をトラフィック成形エンジン２５５により使用し、デバイス２５０からリモートのプロキシサーバ（例えば、図１Ｂのプロキシサーバ１２５又は図３のプロキシサーバ３２５）により代わりに行われるべきモバイルデバイス２５０であれば実行されるアプリケーション要求から生じるコンテンツソースからの（例えば、図１のアプリケーションサーバ／コンテンツプロバイダ１１０からの）コンテンツのポーリングをオフロードすることができる。トラフィックエンジン２５５は、再発が規則に適合した時にポーリングをオフロードすると判断することができる。例えば、同じリソースに対して、同一コンテンツ又は戻り値を有するか、又は一日のうちの特定の時点で要求されるリソースのような要求と応答の間の反復可能な期間の検出に基づく複数の発生又は要求がある。ポーリングのオフロードにより、反復的なコンテンツポーリングに向けてコンテンツソースとの無線（セルラー）接続を確立するためにモバイルデバイス２５０により必要とされる帯域幅消費量を低減することができる。
【００９９】
ポーリングのオフロードの結果として、ローカルキャッシュ２８５に格納されたローカルキャッシュ格納コンテンツを供給し、コンテンツ変更がコンテンツソースのポーリングにおいて検出されなかった時にデバイス２５０においてデータ要求を満たすことができる。従って、データが変更されなかった時に、無線使用を可能にする必要がなくても、又は無線ネットワーク内で携帯電話帯域幅を占有しなくてもアプリケーションデータ必要性を満たすことができる。データが変更された時に及び／又は新しいデータを受信した時に、ポーリングがオフロードされる相手局エンティティは、デバイス２５０に通知することができる。リモートエンティティは、図３の例に示すようにホストサーバ３００とすることができる。
【０１００】
一実施形態において、ローカルプロキシ２７５は、キープアライブメッセージ（ハートビートメッセージ）の定期的な必要性／使用を緩和してＴＣＰ／ＩＰ接続を維持することができ、キープアライブメッセージ（ハートビートメッセージ）の定期的な必要性／使用は、有意な量の電力を消費する可能性があり、従って、モバイルデバイス電池寿命に悪影響を与えるものである。ローカルプロキシ内の接続マネージャ２６５（例えば、ハートビートマネージャ２６７）は、アプリケーションから送られているいずれか又は全てのハートビート（キープアライブ）メッセージを検出、識別、及び傍受することができる。
【０１０１】
ハートビートマネージャ２６７は、これらのハートビートメッセージのいずれか又は全てがセルラーネットワーク又は他のネットワーク上で送られるのを防止し、代替的に、分散型プロキシシステム（例えば、図１Ｂに示す）のサーバ構成要素に頼って、ハートビートメッセージを生成して送ってバックエンド（例えば、図１の例内のアプリケーションサーバ／プロバイダ１１０）との接続を維持することができる。
【０１０２】
ローカルプロキシ２７５は、一般的に、個々のマネージャ、モジュール、及び／又はエンジンに対して説明したいずれか１つ又は一部の機能を表している。ローカルプロキシ２７５及びデバイス２５０は、追加の又はより少ない構成要素を含むことができ、より多くの又はより少ない機能を全部又は一部に関わらず本発明の開示の新しい技術から逸脱することなく含むことができる。
【０１０３】
図２Ｂは、図２Ａの例に示す分散型プロキシシステムのクライアント側のローカルプロキシ２７５内のアプリケーション挙動検出器２３６及びトラフィック成形エンジン２５５内の構成要素の別の例を示すブロック図を示している。
【０１０４】
一実施形態において、アプリケーション挙動検出器２３６のパターン検出器２３７は、更に相関検出器２３８を含み、アプリケーションプロフィール発生器２３９は、更にアプリケーションステータス検出器２４０を含む。
【０１０５】
相関検出器２３８は、一実施形態において、（例えば、アプリケーションストリーミング、又はクラウドを通じたアクセス）を通じてアクセスされたか又はデバイス２５０上で実行中であるアプリケーション、エージェント及び／又はウィジェットによって行われたデータ転送要求のタイミングにおけるあらゆる相関を検出、判断、識別、計算、追跡することができる。
【０１０６】
一般的に、相関タイプには、イベント−レベル相関及びアプリケーション−レベル相関があり、システム／アプリケーションを含むことができる。相関検出器２３８は、システム／アプリケーションによりトリガされたイベント及び／又はユーザによりトリガされたイベント／トランザクションを追跡及びモニタすることができる。更に、相関検出器２３８は、特定のアプリケーションに対して又は異なるアプリケーションにわたってイベント間の相関を識別又は追跡することができる。
【０１０７】
相関は、例えば、第１のアプリケーションの第１のイベント／トランザクションタイプが同じアプリケーションの第２のイベント／トランザクションタイプの開始をトリガした時に検出することができる。トリガは、第１のアプリケーション内で発生するこのようなイベントのタイミング特性におけるパターンの特定を通じて相関検出器２３８により検出することができる。例えば、相関は、第１及び第２のイベント／トランザクションタイプの順序付け（例えば、第２のイベントタイプは、第１のイベントタイプの後に常に発生する）の識別を含むことができる。相関は、第１及び第２のイベント／トランザクションタイプが互いのタイムフレーム内に発生する（例えば、第１のイベントタイプが、第２のイベントタイプの１０ｍｓの時間ウインドウ内に発生する）と判断することなどを含むことができる。
【０１０８】
相関は、例えば、１つのアプリケーションの特定のイベントタイプが別のアプリケーションの特定のイベントタイプをトリガした（又は、タイミング又はその順序付け関係を有する）時に検出することができる。同様に、相関検出器２３８は、１つのアプリケーションの作動（例えば、１つのアプリケーション又はあらゆる他の活動の起動のような）が別のアプリケーションの作動に関連することを検出することができる。例えば、検出器は、一方のアプリケーションが起動された場合に他方のアプリケーションも起動されると判断することができる。
【０１０９】
検出器はまた、１つのアプリケーションが、起動／アクセスされた別のアプリケーションのある一定の時間ウインドウ内で常に起動され、又は１つのアプリケーションの活動状態が別のアプリケーションの活動状態のアプリケーションステータスに連結していることを検出することができる（例えば、一方のアプリケーションが前景／背景へ移動した時に他方のアプリケーションが前景／背景へ移動するか、又は一方のアプリケーションがアクティブ／非アクティブになった時に他方のアプリケーションも状態を変えてアクティブ又はアクティブになるなど）。一般的に、相関がないかを検出及び追跡されるこのようなイベント／トランザクションは、システム主導型又はアプリケーション主導型イベント又はユーザによりトリガされたイベント（例えば、明示的ユーザ要求又は黙示的ユーザ要求を含む）を含むことができる。
【０１１０】
一部の例において、相関検出器２３８は、ユーザ活動モジュール２１５を使用し、ユーザ活動に関連し及び／又はユーザ活動と共にアプリケーション又はアプリケーションイベント相関を検出することができる。例えば、相関検出器２３８は、第１のイベントタイプの発生によりユーザが第２のイベント（同じアプリケーション又は異なるアプリケーションの）をトリガするアクションを実行することが多いと判断することができる。２つのアプリケーションに関して与えられた２つのイベント及び例に対して実施例を本明細書に説明するが、相関検出器２３８は、イベント／トランザクションの発生における相関、検出かつ識別することができる複数のイベント（例えば、２個、３個、４個、５個のような）に対する相関を追跡、検出、及び識別することができることに注意されたい。
【０１１１】
一般的に、相関検出器２３８は、アプリケーションによって行われた要求のタイミング特性を追跡して相関を検出する。相関は、プロフィール発生器２３９によりアプリケーションのプロフィールに組み込むことができる。
【０１１２】
一実施形態において、プロフィール発生器は、アプリケーションステータス検出器２４０を含む。アプリケーションステータス検出器２４０は、デバイス２５０上のアプリケーションの活動状態を検出することができる。活動状態は、制限ではなく一例として、特定のアプリケーションがモバイルデバイス２５０上で作動しているのは背景か又は前景か、アプリケーションがアクティブか又は非アクティブか、アプリケーションが対話されたか否か（例えば、ユーザにより、又は別のアプリケーション又はデバイスにより）を示すことができる。デバイス２５０上の活動状態又はアプリケーションのステータスは、他のイベント又はアプリケーションとのあらゆる相関と共にアプリケーションのプロフィール内に含め（例えば、プロフィール発生器２３９により）、かつデータ要求アラインメントに対して使用することができる。
【０１１３】
例えば、トラフィック成形エンジン２５５のアラインメントモジュール２５６の一実施形態は、デバイス２５０上の１つ又は複数のアプリケーションのアプリケーション挙動（例えば、アプリケーション挙動検出器２３６により判断されたような）を使用し、ネットワーク上で同じアプリケーションモバイルデバイスか又は複数のアプリケーションの少なくとも一部分によって行われたコンテンツ要求（例えば、アラインメントモジュール２５６により整列されたもの）の一部を整列させることができる。例えば、アプリケーション挙動は、アプリケーションプロフィール発生器２３９によって生成されたアプリケーションプロフィール内に示すことができる。
【０１１４】
一部の例において、コンテンツ要求（同じアプリケーション又は異なるアプリケーションによって行われた）は、コンテンツ要求の一部がアラインメントがなければ発生する時点を遅延させるか又は迅速に処理することによって整列し、トラフィック成形エンジン２５６は、ネットワーク（セルラーネットワーク又は他の無線ネットワーク）上で単一の転送作動で遅延されるか又は迅速に処理されるコンテンツ要求を転送することができる。要求を遅延させることができる（時間「Ｄ」）期間は、単一の転送作動で整列させることができるコンテンツ要求の数を最適化するように一般的に判断される（例えば、遅延モジュール２５８により）。従って、遅延モジュール２５８は、アプリケーション内の又は複数の要求を整列させる遅延時間を判断する際に相関検出器２３８により識別される複数のアプリケーションにわたるイベント／トランザクション発生における相関を利用することができる。
【０１１５】
遅延時間「Ｄ」（例えば、要求が迅速に処理され、又は遅延される時間を指す）は、一般的に、アプリケーション挙動（例えば、アプリケーション挙動検出器２３６により判断され及び／又はアプリケーションプロフィール内に示されたもの）に基づいて判断される。より具体的には、特定のコンテンツ要求の転送において遅延される時間は、特定のコンテンツ要求を行う特定のアプリケーション（例えば、アプリケーション挙動検出器２３６の優先順位付けエンジン２４１により判断される）の優先度に基づいて、又はモバイルデバイス２５０上の他のアプリケーションに対する特定のアプリケーションの優先度に基づいて判断することができる。更に、遅延モジュール２５８は、特定のコンテンツ要求に関わっている１つ又はそれよりも多くのデータ量、特定のコンテンツ要求に関わっているデータの性質、特定のコンテンツ要求において転送すべきデータの有効寿命、及び／又は利用可能帯域幅又はネットワーク待ち時間を含むネットワーク特性に基づいて転送における遅延を判断することができる。
【０１１６】
従って、要求を整列させる際のシステムレベル作動の一例では、デバイス２５０のローカルプロキシ２７５は、第１のアプリケーションを通じて行われた第１のデータ要求及び第２のアプリケーションを通じて行われた第２のデータ要求を検出するか、又は第１及び第２のデータ要求は、同じアプリケーションによって行われる。デバイス２５０上のローカルプロキシ２７５内のトラフィック成形エンジン２５５のアラインメントモジュール２５６は、第１のデータ転送要求及び第２のデータ転送要求の転送がネットワーク上で単一の転送作動で発生するように（従って、第１のデータ要求が発生した時に無線がデバイス２５０上で電源が切断されると仮定して一度だけ無線使用を可能する必要がある）、第２のアプリケーションを通じて行われた別のデータ転送要求がローカルプロキシ２７５によって検出されるまでプロキシサーバ（例えば、図１Ｂ及び図３の例のプロキシサーバ１２５又は３２５）への第１のアプリケーションを通じて行われた第１のデータ転送要求の転送を遅延させることができる。
【０１１７】
第１のデータ転送要求の遅延は、遅延モジュール２５８により判断することができ、その判断は、例えば、第２のアプリケーションが、第１のアプリケーションに対して優先度が高いか、又は第２のアプリケーションが、前景で実行中であり、又はユーザが第２のアプリケーションと対話しており、第２のデータ要求が、ユーザ対話に応答して開始され、又は第２のアプリケーションが、第１のアプリケーションよりもデータ集約型である時に行うことができる。
【０１１８】
図３は、リソース節約に向けて無線ネットワーク内のトラフィックを管理するホストサーバ３００上に常駐する分散型プロキシ及びキャッシュシステム内のサーバ側構成要素の例を示すブロック図を示している。
【０１１９】
ホストサーバ３００は、一般的に、例えば、ネットワークインタフェース３０８及び／又は１つ又はそれよりも多くのリポジトリ３１２、３１４、３１６を含む。尚、サーバ３００は、あらゆる有線又は無線ネットワーク（例えば、ＷｉＦｉ、携帯電話、Ｂｌｕｅｔｏｏｔｈ（登録商標）のような）を含むネットワークでデータ要求を満たすべき信号を受信、送信することができるあらゆる携帯式／モバイル、又は非携帯式デバイス、サーバ、コンピュータ、及び／又は他のタイプの処理ユニット（例えば、図１１の例に示すあらゆる数の機械）のクラスターとすることができる。
【０１２０】
ネットワークインタフェース３０８は、サーバ３００がホスト及び外部エンティティによりサポートされるあらゆる公知の及び／又は便利な通信プロトコルを通じてホストサーバ３００の外部に位置するエンティティとネットワーク内のデータを仲介することを可能にするネットワーキングモジュール又はデバイスを含むことができる。具体的には、ネットワークインタフェース３０８は、サーバ３０８がモバイルフォンデバイス３５０及び／又は１つ又はそれよりも多くのアプリケーションサーバ／コンテンツプロバイダ３１０を含む複数のデバイスと通信することを可能にする。
【０１２１】
ホストサーバ３００は、デバイスとの接続に関する情報（例えば、ネットワーク特性、条件、タイプの接続のような）を接続メタデータリポジトリ３１２に格納することができる。更に、第三者アプリケーション又はコンテンツプロバイダに関するあらゆる情報を３１２に格納することができる。ホストサーバ３００は、デバイスに関する情報（例えば、ハードウエア機能、特性、デバイス設定、デバイス言語、ネットワーク機能、製造業者、デバイスモデル、ＯＳ、ＯＳバージョンのような）をデバイス情報リポジトリ３１４に格納することができる。更に、ホストサーバ３００は、ネットワークプロバイダ及び様々なネットワークサービスエリアに関する情報をネットワークサービスプロバイダリポジトリ３１６に格納することができる。
【０１２２】
３０８により可能される通信は、ネットワークリソース利用最適化に向けてデバイス３５０とコンテンツプロバイダ３１０間のトラフィックを管理するために、及び／又はサービスを受けるデバイス３５０上の電力（バッテリ）消費量を節約するために、デバイス３５０との同時の接続（例えば、セルラー接続を含む）及び／又はコンテンツサーバ／プロバイダ３１０との接続（例えば、有線／無線、ＨＴＴＰ、「インターネット」接続、ＬＡＮ、Ｗｉｆｉなどを含む）を可能にする。ホストサーバ３００は、異なるネットワークサービスプロバイダにより及び／又は同じ／異なるネットワークサービスエリアにおいてサービスを受けるモバイルデバイス３５０と通信することができる。ホストサーバ３００は、単に一例として、１Ｇ、２Ｇ、２Ｇｔｒａｎｓｉｔｉｏｎａｌ（２．５Ｇ、２．７５Ｇ）、３Ｇ（ＩＭＴ−２０００）、３Ｇ  ｔｒａｎｓｉｔｉｏｎａｌ（３．５Ｇ、３．７５Ｇ、３．９Ｇ）、４Ｇ（ＩＭＴ−ａｄｖａｎｃｅｄ）などを含むがこれらに限定されない異なるタイプ又はレベルのモバイル機能を有するデバイス３５０と共に作動することができ、かつ互換性がある。
【０１２３】
一般的に、ネットワークインタフェース３０８は、接続がルータ、アクセスポイント、無線ルータ、スイッチ、多層スイッチ、プロトコル変換器、ゲートウェイ、ブリッジ、ブリッジルータ、ハブ、デジタルメディア受信機、及び／又は中継器を通じてであるか否かに関わらず、ネットワークアダプタカード、無線ネットワークインタフェースカード（例えば、ＳＭＳインタフェース、ＷｉＦｉインタフェース、１Ｇ、２Ｇ、３Ｇ、３．５Ｇ、４Ｇ、ＬＴＥ、Ｗｉｍａｘなどを含むがこれらに限定されないモバイル通信規格の様々な生成のためのインタフェース）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷｉＦｉ、又はあらゆる他のネットワークのうちの１つ又はそれよりも多くを含むことができる。
【０１２４】
ホストサーバ３００は、プロキシサーバ３２５及びサーバキャッシュ３３５を含むことができる分散型プロキシ及びキャッシュシステムのサーバ側構成要素を更に含むことができる。一実施形態において、サーバプロキシ３２５は、ＨＴＴＰアクセスエンジン３４５、キャッシュポリシーマネージャ３５５、プロキシコントローラ３６５、トラフィック成形エンジン３７５、新しいデータ検出器３８６、及び／又は接続マネージャ３９５を含むことができる。
【０１２５】
ＨＴＴＰアクセスエンジン３４５は、ハートビートマネージャ３４６を更に含むことができ、プロキシコントローラ３６５は、データ無効化モジュール３６６を更に含むことができ、トラフィック成形エンジン３７５は、制御プロトコル２７６及びバッチ処理モジュール３７７を更に含むことができる。追加の又はより少ない構成要素／モジュール／エンジンをプロキシ３２５及び各示す構成要素内に含むことができる。
【０１２６】
本明細書で使用する時に「モジュール」、「マネージャ」、「ハンドラ」、「検出器」、「インタフェース」、「コントローラ」、又は「エンジン」は、汎用、専用、又は共有プロセッサ、及び典型的にプロセッサによって実行されるファームウエア又はソフトウエアモジュールを含む。実行特定の又は他の考慮事項により、モジュール、マネージャ、ハンドラ、又はエンジンを集中型又は機能性分散型とすることができる。モジュール、マネージャ、ハンドラ、又はエンジンは、プロセッサによる実行に向けてコンピュータ可読（ストレージ）媒体において実施される汎用又は専用ハードウエア、ファームウエア、又はソフトウエアを含むことができる。本明細書で使用する時にコンピュータ可読媒体又はコンピュータ可読ストレージ媒体は、全て、制定法（例えば、米国においては「３５  Ｕ．Ｓ．Ｃ．１０１」）に従う媒体を含み、特に、コンピュータ可読（ストレージ）媒体を含む特許請求の範囲が有効であるのに除外が必要である範囲で本質的に制定法に従うものではない全ての媒体を除外することを意図している。公知の制定法に従うコンピュータ可読媒体は、ハードウエア（例えば、少し例を挙げれば、レジスタ、ランダムアクセスメモリ（ＲＡＭ）、不揮発性（ＮＶ）ストレージ）を含むが、ハードウエアに制限される場合もあれば、制限されない場合もある。
【０１２７】
アプリケーションサーバ又はコンテンツプロバイダ３１０にアプリケーション又はコンテンツ要求を行うデバイス（例えば、モバイルデバイス３５０）の例では、要求を傍受することができ、かつデバイス３５０及びプロバイダ３１０に結合されたプロキシサーバ３２５に経路指定することができる。具体的には、プロキシサーバは、デバイス３５０のローカルプロキシ（例えば、それぞれ図１及び図２の例のプロキシ１７５及び２７５）と通信することができ、ローカルプロキシは、一部の例において、付加的な処理に向けてかつ必要に応じて、データ要求に対する応答のためのコンテンツサーバ３１０への送信に向けてプロキシサーバ３２５にデータ要求を転送する。
【０１２８】
このような構成において、ホスト３００又はホストサーバ３００内のプロキシサーバ３２５は、ネットワーク及びデバイスリソースの使用を最適化するようにデバイスとの通信を調整する際にローカルプロキシによって供給されたインテリジェント情報を利用することができる。例えば、プロキシサーバ３２５は、デバイス３５０上のユーザ活動の特性を識別して通信頻度を修正することができる。ユーザ活動の特性は、例えば、デバイス３５０上のローカルプロキシにより収集された情報を通じて、プロキシコントローラ３６５内の活動／挙動認識モジュール３６６により判断することができる。
【０１２９】
一実施形態において、通信頻度は、例えば、デバイス３５０へのコンテンツ又は更新のプッシュ配信頻度を調整するようにプロキシサーバ３２５の接続マネージャ３９５により制御することができる。例えば、プッシュ配信頻度は、ユーザ活動の特性がユーザが非アクティブであることを示す時に接続マネージャ３９５により低減することができる。一実施形態において、ユーザ活動の特性がユーザがその後非アクティブ状態の時点の後にアクティブであることを示す時に、接続マネージャ３９５は、通信頻度減少の結果としてバッファに入れられたデータをデバイス３５０に送るようにデバイス３５０との通信頻度を調整することができる。
【０１３０】
更に、プロキシサーバ３２５は、様々な要求、トランザクション、セッション、アプリケーション、及び／又は特定のイベントの優先度認識を含む。このような認識は、デバイス３５０上のローカルプロキシにより判断してプロキシサーバ３２５に供給することができる。プロキシサーバ３２５の優先度認識モジュール３６７は、様々なイベント又はアプリケーションの優先度（例えば、時間的重要度、時間依存性などを含む）を一般的に評価することができ、更に、優先度認識モジュール３６７は、デバイス３５０のローカルプロキシにより判断された優先度を追跡することができる。
【０１３１】
一実施形態において、優先度認識を通じて、接続マネージャ３９５は、デバイス３５０とのサーバ３００の通信頻度（例えば、無線コントローラ３９６により制御される無線の使用）を更に修正することができる。例えば、サーバ３００は、デバイス３５０に通知することができ、従って、基準を満たす重要性／優先度レベルのデータ又は更新が送られるように利用可能になった時に、無線がまだ使用中ではない場合は無線の使用が要求される。
【０１３２】
一実施形態において、プロキシサーバ３２５は、イベント（例えば、サーバ／プロバイダ３１０から受信したトランザクション、コンテンツ、データ）の複数の発生を検出することができ、かつイベントがデバイス３５０へのバッチ転送に向けて蓄積することを可能にすることができる。バッチ転送は、蓄積することができ、イベントの転送は、モジュール３６６及び／又は３６７により追跡されるように、優先度認識及び／又はユーザ活動／アプリケーション挙動認識に基づいて遅延させることができる。例えば、デバイス３５０への複数のイベント（下位優先度の）のバッチ転送は、優先度が高い（閾値又は基準を満たす）イベントがサーバ３００で検出された時にバッチ処理モジュール３７７により開始することができる。更に、サーバ３００からのバッチ転送は、サーバが、無線は使用中であり、従ってオンであることを示すデータをデバイス３５０から受信した時に、トリガすることができる。一実施形態において、プロキシサーバ３２４は、接続が失われたか又はバッテリが上がった場合に優先度の高いコンテンツが先に送られるように、イベント／トランザクション優先度に基づいて送信に向けてバッチ内の各メッセージ／パケットを順序付けることができる。
【０１３３】
一実施形態において、サーバ３００は、デバイス３５０とのネットワーク（例えば、セルラーネットワーク）上の通信頻度を修正する（例えば、低減する）ことができるように、データ（例えば、キャッシュポリシーマネージャ３５５により管理）をキャッシュに入れる。データは、例えば、その後の検索又はデバイス３５０へのバッチ送信に向けてサーバキャッシュ３３５内にキャッシュに入れて、デバイス３５０無線の電源を投入する必要を潜在的に低減することができる。サーバキャッシュ３３５は、部分的又は全体的にホストサーバ３００の内部に位置することができるが、図３の例では、ホスト３００の外部であるように示されている。一部の例において、サーバキャッシュ３３５は、アプリケーションサーバ／コンテンツプロバイダ１１０、ネットワークサービスプロバイダ、又は別の第三者により管理されるような一部又は全部が別のエンティティ（例えば、図１Ｂの例に示す任意的なキャッシングプロキシサーバ１９９）により管理される別のキャッシュと同じとすることができ、及び／又は別のキャッシュと一体化することができる。
【０１３４】
一実施形態において、コンテンツキャッシングは、ホストサーバ３００の助けを借りてデバイス３５０上でローカルに実行される。例えば、ホストサーバ３００内のプロキシサーバ３２５は、要求に関してアプリケーションサーバ／プロバイダ３１０を問い合わせて応答の変化モニタすることができる。変更された又は新しい応答が検出された時に（例えば、新しいデータ検出器３４７により）、プロキシサーバ３２５は、デバイス３５０上のローカルプロキシが、ローカルキャッシュ内にいずれかの応答として格納された関連のキャッシュエントリ（例えば、古いとして示されたもの）を無効化する判断を行うことができるように、モバイルデバイス３５０に通知することができる。代替的に、データ無効化モジュール３６８は、アプリケーションサーバ／プロバイダ３１０からの受信した応答に基づいて、デバイス３５０のローカルプロキシに特定のキャッシュに入れられたデータを無効化するように自動的に指示することができる。キャッシュに入れられたデータは、無効化と説明され、新しいコンテンツがコンテンツサーバ３１０から受信された時に入れ替えるか又は削除することができる。
【０１３５】
データ変更は、１つ又はそれよりも多くの方法で検出器３４７により検出することができることに注意されたい。例えば、サーバ／プロバイダ３１０は、変更があるとホストサーバ３００に通知することができる。変更はまた、ソースサーバ／プロバイダ３１０の直接のポーリングに応答してホストサーバ３００で検出することができる。一部の例において、プロキシサーバ３２５は、更に、デバイス３５０上のローカルキャッシュに新しい／更新されたデータを予めロードすることができる。これは、ホストサーバ３００がモバイルデバイス上の無線が使用中であることを検出した時に、又はサーバ３００がデバイス３５０に送られるべき付加的なコンテンツ／データを有する時に行うことができる。
【０１３６】
上述の機構のうちの１つ又はそれよりも多くは、同時に実行するか、又はアプリケーション（例えば、サーバ／プロバイダ３１０が異なれば異なるポリシ）に基づいて調整／構成することができる。一部の例において、ソースプロバイダ／サーバ３１０は、特定のタイプのイベント（例えば、優先度閾値レベルを満たすイベント）に対してホスト３００に通知することができる。更に、プロバイダ／サーバ３１０は、イベント優先度とは無関係に、特定の時間間隔でホスト３００に通知するように構成することができる。
【０１３７】
一実施形態において、ホスト３００のプロキシサーバ３２５は、モバイルデバイスに結果を戻す前に変更された結果に対してコンテンツソースからデータ要求に関して受信した応答をモニタ／追跡することができ、このようなモニタリングは、コンテンツソースへのデータ要求によりモバイルデバイスに戻すべき同じ結果が得られた時に適切であると考えられ、従って、ネットワーク／電力消費量が新しい／変更が特定の要求に行われていない時に使用されるのが防止される。デバイス３５０のローカルプロキシは、プロキシサーバ３２５にこのようなモニタリングを行うように指示することができ、又はプロキシサーバ３２５は、特定の要求に対して特定の数の同じ応答（例えば、又は期間内のいくつかの同じ応答）を受信すると、このような処理を自動的に開始することができる。
【０１３８】
一実施形態において、サーバ３００は、例えば、活動／挙動認識モジュール３６６を通じて、モバイルデバイス３５０と別々であるデバイスでユーザ活動を識別又は検出することができる。例えば、モジュール３６６は、ユーザのメッセージ受信箱（例えば、電子メール又は受信箱のタイプ）がアクセスされたことを検出することができる。これは、ユーザがモバイルデバイス３５０以外のデバイスを使用してアプリケーションと対話しており、仮にあったとしても、頻繁な更新を必要とする恐れがないことを示すことができる。
【０１３９】
サーバ３００は、従って、この例において、新しいコンテンツ又は更新されたコンテンツがモバイルデバイス３５０に送られる頻度を低減するか、又はユーザがアクセスに向けて別のデバイスを使用していると検出された間は、全ての通信を排除することができる。このような頻度減少は、アプリケーション特定（例えば、ユーザが別のデバイス上で対話しているアプリケーションに対して）とすることができ、又はモバイルデバイス３５０に対する一般的な頻度減少とすることができる（例えば、ユーザが別のデバイスを通じて１つのサーバ又は１つのアプリケーションと対話していると検出されたので、ユーザは別のデバイスを使用して他のサービスにアクセス可能である）。
【０１４０】
一実施形態において、ホストサーバ３００は、デバイス３５０上の電力又はバッテリ消費量を節約するためにデバイス３５０のためにコンテンツソース３１０にポーリングすることができる。例えば、モバイルデバイス３５０上の特定のアプリケーションは、予想可能に反復的にそれぞれのサーバ３１０にポーリングすることができる。アプリケーション挙動のこのような再発又は他のタイプのアプリケーション挙動は、プロキシコントローラ３６５内の活動／挙動モジュール３６６により追跡することができる。ホストサーバ３００は、従って、ポーリングがなければ無線（例えば、セルラー接続性を含む）を通じてデバイス３５０によって実行されるモバイルデバイス３５０上のアプリケーションがないかをコンテンツソース３１０にポーリングすることができる。ホストサーバは、ＨＴＴＰアクセスエンジン３４５を手段としてＨＴＴＰ接続を確立するために、又は無線コントローラ３９６を手段としてセルラーネットワーク上のソース３１０に接続するために新しいデータ又は変更されたデータがないかをソース３１０にポーリングすることができる。新しいデータ又は変更されたデータが検出された時に、新しいデータ検出器は、このようなデータがあるとデバイス３５０に通知し、及び／又はデバイス３５０に新しい／変更されたデータを供給することができる。
【０１４１】
一実施形態において、接続マネージャ３９５は、モバイルデバイス３５０が利用不能である（例えば、無線の電源が切断された）と判断し、図１Ｂの例に示すＳＭＳＣを通じてＳＭＳを利用してデバイス３５０にコンテンツを送信する。例えば、ＳＭＳは、無効化メッセージ、無効化メッセージのバッチ、又はコンテンツがちょうどいくつかの（通常１つ又は２つの）ＳＭＳメッセージに収まるほど十分小さい場合はコンテンツさえ送信するのに使用される。それによってオーバーヘッド情報を送るために無線チャンネルにアクセスせずに済む。ホストサーバ３００は、閾値よりも大きい優先度レベルを有するか、又はそうでなければ基準を満たす特定のトランザクション又は応答にＳＭＳを使用することができる。サーバ３００は、常時オンＩＰ接続維持の代わりに、ＩＰ接続を維持又はスリープ解除する帯域外トリガとしてＳＭＳを利用することができる。
【０１４２】
一実施形態において、プロキシサーバ３２５内の接続マネージャ３９５（例えば、ハートビートマネージャ３９８）は、接続したデバイス３５０のためにハートビートメッセージを生成及び／又は送信し、デバイス３５０上で実行されたアプリケーションに向けて、プロバイダ３１０とのバックエンド接続を維持することができる。
【０１４３】
例えば、分散型プロキシシステムにおいて、デバイス３５０上のローカルキャッシュは、アプリケーションに必要とされたＴＣＰ／ＩＰ接続を維持するのに必要とされるいずれか又は全てハートビートメッセージがセルラーネットワーク又は他のネットワーク上で送られるのを防止し、代わりに、ホストサーバ３００上のプロキシサーバ３２５に頼ってハートビートメッセージを生成し及び／又は送って、バックエンド（例えば、図１の例内のアプリケーションサーバ／プロバイダ１１０）との接続を維持するたことができる。プロキシサーバは、モバイルデバイス上のローカルプロキシの作動とは独立したキープアライブ（ハートビート）メッセージを生成することができる。
【０１４４】
リポジトリ３１２、３１４、及び／又は３１６は、ソフトウエア、記述データ、画像、システム情報、ドライバ、及び／又は作動に向けてホストサーバ３００及び／又はあらゆる他のサーバの他の構成要素により利用されるあらゆる他のデータ項目を更に格納することができる。リポジトリは、例えば、Ｏｒａｃｌｅ、ＤＢ２、Ｍｉｃｒｏｓｏｆｔ  Ａｃｃｅｓｓ、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ、ＰｏｓｔｇｒｅＳＱＬ、ＭｙＳＱＬ、ＦｉｌｅＭａｋｅｒなどであるがこれらに限定されないデータベース管理システム（ＤＢＭＳ）により管理することができる。
【０１４５】
リポジトリは、オブジェクト指向の技術を通じて及び／又はテキストファイルを通じて実行することができ、かつ分散型データベース管理システム、オブジェクト指向データベース管理システム（ＯＯＤＢＭＳ）（例えば、ＣｏｎｃｅｐｔＢａｓｅ、ＦａｓｔＤＢ主ストレージデータベース管理システム、ＪＤＯＩｎｓｔｒｕｍｅｎｔｓ、ＯｂｊｅｃｔＤＢのような）、オブジェクト関係データベース管理システム（ＯＲＤＢＭＳ）（例えば、Ｉｎｆｏｒｍｉｘ、ＯｐｅｎＬｉｎｋ  Ｖｉｒｔｕｏｓｏ、ＶＭＤのような）、ファイルシステム、及び／又はあらゆる他の便利な又は公知のデータベース管理パッケージにより管理することができる。
【０１４６】
図４Ａは、ネットワークリソース及びバッテリリソースが分散型プロキシシステムによって実行されるコンテンツキャッシング及びモニタリングを使用することを通じて節約されるような方式で、モバイルデバイス４５０から無線ネットワーク内のアプリケーションサーバ／コンテンツプロバイダ４９６へのデータ要求がどのようにして分散型プロキシシステム４６０によって調整することができるかを示す図を示している。
【０１４７】
分散型プロキシシステム４６０なしにモバイルデバイス４５０上でアプリケーション又はクライアント要求を満たす際に、モバイルデバイス４５０又はデバイス４５０上で実行されるソフトウエアウィジェットは、アプリケーションサーバ４９５に直接にデータ要求４０２（例えば、ＨＴＴＴ  ＧＥＴ、ＰＯＳＴ、又は他の要求）を行って、サーバ／プロバイダ４９５から直接に応答４０４を受信する。データが更新された場合に、モバイルデバイス４５０上のウィジェットは、自己リフレッシュし、更新を反映し、短い期間にわたって待機してサーバ／プロバイダ４９５への別のデータ要求を開始することができる。
【０１４８】
一実施形態において、デバイス４５０上の要求側クライアント又はソフトウエアウィジェット４５５は、サーバ／プロバイダ４９５に行われたデータ要求を処理する際に分散型プロキシシステム４６０を利用することができる。一般的に、分散型プロキシシステム４６０は、ローカルプロキシ４６５（通常はシステム４６０のクライアント側構成要素と考えられかつモバイルデバイス４５０上に常駐することができる）、キャッシングプロキシ（４７５、サーバ側としてシステム４６０の構成要素４７０と考えられ、かつホストサーバ４８５上に常駐するか、又は全体的又は部分的にホストサーバ４８５の外部に位置することができる）、ホストサーバ４８５を含むことができる。ローカルプロキシ４６５は、あらゆるネットワーク又はネットワークの組合せを通じてプロキシ４７５及びホストサーバ４８５に接続することができる。
【０１４９】
分散型プロキシシステム４６０がデータ／アプリケーション要求に使用される時に、ウィジェット４５５は、ローカルプロキシ４６５を通じてデータ要求４０６を行うことができる。ローカルプロキシ４６５は、デバイスアプリケーションによって行われた要求を傍受することができ、かつ要求（例えば、ＨＴＴＰ取得要求又は他のタイプの要求）の接続タイプを識別することができる。ローカルプロキシ４６５は、次に、要求に関するいずれかの前の情報がないかをローカルキャッシュを問い合わせることができる（例えば、ローカルに格納された応答があり及び／又はまだ有効であるか否かを判断するために）。ローカルに格納された応答がない場合に又は無効な応答が格納された場合に、ローカルプロキシ４６５は、要求に関する情報、要求が行われた時間、及びあらゆる付加的なデータを更新するか、又はローカルキャッシュに格納することができる。情報は、その後の要求を潜在的に満たす際の使用に向けて更新することができる。
【０１５０】
ローカルプロキシ４６５は、次に、ホストサーバ４８５に要求を送ることができ、サーバ４８５は、要求４０６を行うことができ、応答４０８で結果を戻す。ローカルプロキシ４６５は、結果及び更に結果に関する情報を格納することができ、要求側ウィジェット４５５に結果を戻す。
【０１５１】
一実施形態において、同じ要求が複数回発生し（特定の期間内で）、それによって同じ結果が得られたことが多い場合に、ローカルプロキシ４６５は、ローカルプロキシ４６５又は要求側ウィジェット４５５に結果を戻す前に結果の変化がないか要求をモニタするように（例えば、段階４１２及び４１４）サーバ４８５に通知する４１０ことができる。
【０１５２】
一実施形態において、要求がモニタされるようにマーク付けされた場合、ローカルプロキシ４６５は、この時点でローカルキャッシュに結果を格納することができる。この時点で、ローカルな応答が利用可能であるデータ要求４１６がウィジェット４５５によって行われ、かつローカルプロキシ４６５で傍受された場合、プロキシ４６５は、ローカルキャッシュから応答４１８を戻すことができ、無線ネットワークで接続通信を確立せずに済む。
【０１５３】
更に、サーバプロキシは、特定の要求の応答４２２が変更されたか否かを判断するためにモニタリング４２０されるようにマーク付けされた要求を提供する。一般的に、ホストサーバ４８５は、ウィジェット４５５又はローカルプロキシ４６５作動とは無関係にこのモニタリングを行うことができる。不意の応答４２２が要求に関して受信される時はいつでも、サーバ４８５は、応答が変更されこと（例えば、段階４２４段階４２４の無効化通知）、及びクライアント上でローカルに格納された応答を消去するか又は代替的に新しい応答と入れ替えるべぎであることをローカルプロキシ４６５に通知することができる。
【０１５４】
この場合に、デバイス４５０からのウィジェット４５５によるその後のデータ要求４２６により、結果として、データは、ホストサーバ４８５から戻される（例えば、キャッシングプロキシ４７５を通じて）。従って、分散型プロキシシステム４６０の利用を通じて、無線（セルラー）ネットワークは、モバイルデバイス４５０上のウィジェット又はソフトウエアアプリケーション４５５のためのコンテンツ／データが実際に変更された時にインテリジェントに使用される。従って、アプリケーションデータの変更がないかを検査するのに必要とされるトラフィックは、無線（セルラー）ネットワークでは実行されない。それによって生成されるネットワークトラフィックの量が低減され、かつ総使用時間及びモバイルデバイス４５０で無線モジュールの電源が投入される回数が短縮され、従って、バッテリ消費量が低減され、更に、ネットワーク帯域幅が解放される。
【０１５５】
図４Ｂは、モバイルデバイス４５０から無線ネットワーク内のアプリケーションサーバ／コンテンツプロバイダ４９５へのデータ要求がネットワーク及び無線使用を最適化するために分散型プロキシシステム４６０内のローカルプロキシ４６５で整列させることができる方法を示すタイミング図を示している。
【０１５６】
データ要求Ａ４３２がモバイルデバイス４５０上のローカルプロキシ４６５で検出された時に、ローカルプロキシ４６５は、モバイルデバイス４５０上の無線が現在オフであると判断し、ネットワークで要求Ａ４３２を転送するために待つことに判断することができる。データ要求Ｂ４３４が検出された時に、プロキシ４６５は、データ要求Ｂ４３４を転送するかどうか及び／又は間近に迫ったデータ要求Ａ４３２を転送するどうかを判断することができる（例えば、図６〜図１０の例における流れ図に示す条件及び／又は処理に基づいて）。
【０１５７】
図４Ｂに示す例では、ローカルプロキシ４６５は、データ要求Ｃ４３６がプロキシ４６５によりデバイス４５０で検出されるまでデータ要求Ａ及びＢを転送しない。要求Ａ４３２が遅延される時間「Ｄ１」４３３及び要求Ｂ４３４が遅延される時間「Ｄ２」４３５は、ローカルプロキシ４６５により判断することができる（例えば、図２Ｂの例におけるトラフィック成形モジュール及び遅延モジュールに関連して説明するように）。無線は、要求Ｃ４３６を受信した時に電源を投入することができ、要求Ａ、Ｂ、及びＣ４３８のデータ転送は、直ちに転送４４０で又は一部の場合に部分的に遅延して転送４４２でサーバ／プロバイダ４９５に要求を転送することができる分散型プロキシ４６０のサーバ側４７０のホストサーバ４８０に転送されるようにこの時点で整列させることができる。尚、データ要求Ａ、Ｂ、及びＣは、モバイルデバイス４５０上の同じアプリケーション又は異なるアプリケーションから全て始まることができる。
【０１５８】
図５は、分散型プロキシ及びキャッシュシステム（例えば、図１Ｂの例に示す分散型システムのような）を使用してモバイルデバイス５５０上で混成ＩＰ及びＳＭＳ電力節約モードを実施するための一例示的処理を示す図を示している。
【０１５９】
段階５０２において、ローカルプロキシ（例えば、図１Ｂの例のプロキシ１７５）は、ユーザ活動がないかデバイスをモニタする。ユーザがアクティブであると判断された時に、サーバプッシュ配信はアクティブである。例えば、常時オンプッシュ配信ＩＰ接続を維持することができ、利用可能である場合には、ＳＭＳトリガは、モバイルデバイス５５０が利用可能になると直ちにモバイルデバイス５５０に送ることができる。
【０１６０】
処理５０４において、ユーザが一定の時間にわたって非アクティブ又はアイドルであると検出された後に（例えば、２０分の非アクティブ状態の期間に対して図示）、ローカルプロキシは、省電力モードに入るようにデバイスを調整することができる。省電力モードにおいて、ローカルプロキシが分散型プロキシ及びキャッシュシステムのサーバ側のリモートプロキシ（例えば、図１Ｂの例のサーバプロキシ１３５）からメッセージ又は連絡を受信した時に、ローカルプロキシは、デバイス５５０が現在省電力モードであることを示す呼び出しで応答することができる（例えば、省電力遠隔手順呼び出しを通じて）。一部の例において、ローカルプロキシは、この機会を利用し、複数のアカウント又はプロバイダ（例えば、５１０Ａ及び５１０Ｂ）に現在の省電力状態（例えば、同じ無線電源オンイベントを使用するようにタイミングが合わされた）を通知することができる。
【０１６１】
一実施形態において、ローカルプロキシからの応答は、デバイス５５０が次にいつ変更又は付加的なデータを受信することができるかをリモートプロキシ（例えば、サーバプロキシ１３５）及び／又はアプリケーションサーバ／プロバイダ５１０Ａ／Ｂに示す時点（例えば、省電力期間）を含むことができる。デフォルト省電力期間は、ローカルプロキシによって設定することができる。連続的な省電力期間は、持続時間を増加させることができる。例えば、第１の省電力期間が活動が発生せずに経過した場合、デバイス５５０は、引き続きより長い期間（例えば、期間１  ５０３及び期間２  ５０５を参照されたい）で第２の省電力モードに入ることができる。一般的に、デバイス上のいずれかの活動により、クライアント省電力モードから出て、その特定の省電力イベントは終了する。
【０１６２】
更に、新しいデータ又はイベントが何らかの１つの省電力期間の終わりの前に受信された場合に、サーバ５１０Ａ／Ｂに通信される待機期間は、増加した期間ではなく既存の期間とすることができる。例えば、段階５０６で、新しいコンテンツが省電力モード中に受け取られたので、段階５０８でサーバ５１０Ａ／Ｂに通信される次の待機期間は、再び同じ時間節約期間に存在する。これに応答して、リモートプロキシサーバは、デバイス５５０からの省電力通知を受信すると、要求される期間（待機期間）にわたって変更（データ又はＳＭＳ）を送るのを停止することができる。待機期間の終わりで、受信したあらゆる通知に対処することができ、変更を単一のバッチ処理されたイベントとしてデバイス５５０に送ることができる。通知が入らなかった場合に、真のプッシュ配信を再開することができ、データ又はＳＭＳは、デバイス５５０に直ちに送られる。モバイルデバイス５５０にコンテンツをバッチ送信するのを最適化するために、プロキシサーバは、クライアントが次の無線電源オンイベントでデータを受信する機会を増すようにポーリング又はデータ収集イベントをより早期に（省電力期間の終わりの前に）開始することができる。
【０１６３】
一実施形態において、省電力モードである間に新しいデータ又はコンテンツがデバイス５５０に入った時はいつでも、プロキシサーバは、現在登録されている全ての終点（例えば、サーバ／プロバイダ５１０Ａ／Ｂ）に対して省電力リモート手順呼び出しを行って応答することができる。尚、待機期間は、作動条件に適合するようにリアルタイムで作動中に更新することができる。例えば、複数サーバ５１０Ａ／Ｂ又はその他が異なる遅延で待機期間の終わりに応答する場合は、モバイルデバイス５５０は、付加的な省電力呼び出しを送るので（例えば、更新された待ち時間に）、ローカルプロキシは、異なる遅延に適合するようにオンザフライで待機期間を調整することができる。
【０１６４】
デバイス５５０でのユーザ活動５１２の検出は、省電力モードを出ることを引き起こす。デバイス５５０が省電力モードを出た時に、デバイス５５０は、プロキシサーバに省電力キャンセル呼び出しを送ることができ、かついずれかの未処理通知に関連付けられたいずれの変更も直ちに受信することができる。これには、省電力キャンセル呼び出しを受信した後にポーリングをプロキシサーバによって実行することが必要になる場合がある。最新の省電力期間が満了した場合に、プロキシサーバは、従来のプッシュ配信作動モードになっているので、省電力キャンセル呼び出しが必要ではないと考えられる。
【０１６５】
一実施形態において、デバイス５５０が充電器に接続される時に、省電力モードは適用されない。この設定は、ユーザ又は別の当事者により再構成又は調整することができる。一般的に、省電力モードは、例えば、デバイス５５０上のユーザインタフェースを通じてユーザによりオン又はオフにすることができる。一般的に、データを受信する電力イベントのタイミングは、無線使用を最適化するためにあらゆる省電力呼び出しと同期させることができる。
【０１６６】
図６は、複数のアプリケーションのデータ転送要求を単一の転送作動に調整することができる例示的な選択処理を示す流れ図を示している。
【０１６７】
処理６０２において、デバイス又はモバイルデバイス上の第１のアプリケーションによって開始された第１のデータ転送要求を受信する。１つ又はそれよりも多くの選択処理を実行し、段階６０４−６０８に示すように、ユーザが第１のアプリケーションと対話しているか否か、第１のアプリケーションが前景にあるか否か、又は要求が開始されるモバイルデバイスの無線がオンであるか否かを判断することを含む第１のデータ転送要求の転送を遅延させるべきか否かを判断することができる。尚、選択処理は、特定の順序で例示かつ識別されているが、システムが適用可能性に関して検査する順序は、このようなものに限定されず、上述の条件のいずれも、あらゆる順序付け又は他の条件の１つとのあらゆる組合せで検査することができる。
【０１６８】
上述のもののうちの１つが適用される場合に、処理６１０において、一般的に、無線（セルラー又は他の）ネットワーク上でデータ要求を転送するか、又は最小の遅延の有無に関わらず転送を行うために無線の電源を投入する（例えば、図２Ａの例に示す無線コントローラ２５６を通じて）判断を行うことができる。ここに示していないが、データ要求の転送を直ちに又は受信時に行わせることができる付加的な条件を含めることができる。
【０１６９】
６０４〜６０８の条件（又は特定の実施に基づく他の適切な条件）のいずれも適用されない場合に、処理６１２において、第１のデータ転送要求の転送を遅延させることができる。処理６１４において、別のデータ転送要求が開始されたか否かを判断する。開始されていない場合に、処理は、図７の流れ「Ａ」で続行される。
【０１７０】
開始されていた場合に、システムは、第２のアプリケーションが、第１の優先度タイプよりも高い優先度であるか、第２のアプリケーションが、前景で実行中であるか否か、ユーザが第２のアプリケーションと対話しているか否か、他のデータ要求がユーザ対話に応答して開始されたか否か、及び／又は第２のアプリケーションが、第１のアプリケーションよりもデータ集約型であるか否かを判断することを含む判断の流れ６１６〜６２４に示すいくつかの条件検査のうちの１つ又はそれよりも多くを実施する。流れ図は、上述の条件のどれも適用されなかった場合に図７の「Ａ」で続行される。
【０１７１】
上述の条件のいずれかが適用される場合に、処理６２６において、ネットワークで単一の転送作動で第１のアプリケーションの第１のデータ転送要求と第２のアプリケーションの他のデータ転送要求とを転送する。尚、特定の順序を有するように例示的な流れ図に示すが、６１６〜６２４に示す条件は、あらゆる順序又は互いとのあらゆる組合せで適用することができる。
【０１７２】
図７は、別のデータ要求とのアラインメントなしでデータ要求を転送させるイベントをトリガする例を示している。
【０１７３】
処理７０２〜７１０に示すイベントは、独立して又は互いに関連して発生することができ、これらのイベントの発生で最小の遅延の有無に関わらず無線ネットワーク上でデータ要求を転送させることができる。例えば、処理７０２において、別のイベントのためにモバイルデバイス無線の電源を投入する。処理７０４において、特定の期間が経過し、処理７０６において、ユーザトリガを検出し、及び／又は処理７０８において、第１のアプリケーションが出て、及び／又は処理７１０において背景へ入る。上述の条件のいずれかが検出された時に、処理７２１において、無線（セルラー又は他の）ネットワーク上でデータ要求を転送する。
【０１７４】
図８は、個々のアプリケーションによって行われたデータ要求のタイミング特性を使用し、個々のアプリケーションの１つによって行われたデータ要求のうちの１つ又はそれよりも多くの転送を遅延させる例示的な処理を示す流れ図を示している。
【０１７５】
処理８０２及び８０４において、モバイルデバイス上の第１及び第２のアプリケーションによって行われたデータ転送要求を追跡する。例えば、図２Ａの例に示すローカルプロキシ２７５のトランザクション／要求マネージャ２３５は、データ転送要求の発生を検出し、アプリケーション挙動検出器２３６が要求側アプリケーションの相関又は他のタイプの挙動の追跡を始めることを要求することができる。
【０１７６】
処理８０６において、第１のアプリケーションによって行われたデータ転送要求の第１のタイミング特性を判断し、処理８０８において、第２のアプリケーションによって行われたデータ転送要求の第２のタイミング特性を判断し、それは、例えば、要求におけるあらゆる相関を識別するために相関検出器２３８により使用することができる。
【０１７７】
識別されたタイミング特性に基づいて、あらゆる判断された相関又は適用可能な優先度（例えば、図２Ａの例の優先順位付けエンジン２３８により判断されたもの）がある。処理８１０において、第１及び第２のタイミング特性を使用して第１のデータ要求の転送を遅延させることができ、又は処理８１２において、第１及び第２のタイミング特性を使用して第２のデータ要求の転送を遅延させることができる。別のイベントが発生するまで、手動の（ユーザ）トリガが検出され、又は特定の期間の後まで又は別のトリガイベント（例えば、ユーザ対話）が発生した時に、このような遅延（例えば、図２Ｂの例に示すローカルプロキシの遅延モジュール２５８により判断したもの）を遅延させることができる。尚、遅延は、ユーザ構成可能であり、かつ追跡して遅延モジュール２５８による考慮に織り込むことができる。
【０１７８】
異なるアプリケーション（例えば、第１及び第２のアプリケーションは、異なるアプリケーションである）に対して例を示して説明したが、処理は、同じアプリケーション（例えば、第１及び第２のアプリケーションは、同じアプリケーションとすることができる）内の異なる要求に同様に適用することができる。
【０１７９】
図９は、複数のアプリケーションのアプリケーション挙動を使用し、ネットワークにおいて行われたコンテンツ要求を整列させる例示的な処理を示す流れ図を示している。
【０１８０】
処理９０２において、複数のアプリケーションのアプリケーション挙動をモバイルデバイス上で検出する。一般的に、検出されるモバイルデバイス上のあらゆる数のアプリケーションの挙動を追跡することができる。トラフィック調整に向けて要求を整列させる可能性がないかに関してデバイス上のいずれか又は全てのモバイルアプリケーションをモニタすることができる。更に、ユーザは、整列すべきアプリケーションを選択するか、又はトラフィック調整に向けて追跡されないアプリケーションを指定することができる。更に、デバイスプラットホーム、製造業者、ＯＳ設定及び／又はネットワークプロバイダは、トラフィック調整に向けてアプリケーションのトラフィック要求及び選択を整列させる付加的な仕様又は条件を有することができる。
【０１８１】
処理９０４において、ネットワーク上でモバイルデバイスからの複数のアプリケーションの少なくとも一部分によって行われたコンテンツ要求の一部が整列される。処理の流れは、図１０の例に示すように、段階「Ｂ」に続き、図１０は、無線ネットワーク上でコンテンツ要求を整列させるためにコンテンツ要求の遅延の時点を判断することができる処理の例を示している。処理９０６において、単一の転送作動で遅延されるコンテンツ要求の一部をネットワーク上で転送する。
【０１８２】
遅延時間「Ｄ」を判断するために適用された例示的な処理は、制限ではなく一例として、処理１００２において、特定のアプリケーションの優先度又は他のアプリケーションに対するアプリケーションの優先度を判断すること、段階１００４において、特定のコンテンツ要求に関わっているデータ量を判断すること、段階１００６において、コンテンツ要求内で転送すべきデータの有効寿命を判断すること、段階１００８において、特定のコンテンツ要求に関わっているデータの性質を判断すること、段階１０１０において、コンテンツ要求を行うアプリケーションのステータスを判断すること、及び／又は段階１０１２において、要求が行われた時にネットワーク特性を判断することを含む。あらゆる数の上述の条件をあらゆる順序で適用することができる。使用することができる付加的な条件は、上述の例に示されていない場合がある。処理１０１４において、処理１０１６でコンテンツ要求を整列させるために遅延を判断する際にあらゆるユーザ構成又はオーバーライド設定を考慮に織り込むことができる。
【０１８３】
図１１は、機械に本明細書に説明する方法のいずれか１つ又はそれよりも多くを実施させるための１組の命令を実行することができるコンピュータシステムの例示的な形態における機械の概略図を示している。
【０１８４】
代替的な実施形態において、機械は、独立型デバイスとして作動するか又は他の機械に接続する（例えば、ネットワーキングする）ことができる。ネットワーク化された配置において、機械は、サーバ／クライアントネットワーク環境においてはサーバ又はクライアント機械の機能において、又はピアツーピア（代替的に、分散型）ネットワーク環境においてはピア機械として作動させることができる。
【０１８５】
機械は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、ラップトップコンピュータ、セットトップボックス（ＳＴＢ）、携帯情報端末（「ＰＤＡ」）、携帯電話、ｉＰｈｏｎｅ、ブラックベリー、プロセッサ、電話、ウェブ電気機器、ネットワークルータ、スイッチ又はブリッジ、コンソール、手持ち式コンソール、（手持ち式）ゲーム機、音楽プレーヤ、あらゆる携帯式、モバイル、手持ち式デバイス、又は機械により取るべきアクションを指定する１組の命令（順次的な又は他の方法の）を実行することができるあらゆる機械とすることができる。
【０１８６】
機械可読媒体又は機械可読ストレージ媒体を単一の媒体であるように例示的な実施形態に示すが、「機械可読媒体」及び「機械可読ストレージ媒体」という用語は、１つ又はそれよりも多くの組の命令を格納する単一の媒体又は複数の媒体（例えば、集中型又は分散型データベース及び／又は関連のキャッシュ及びサーバ）を含むと取るべきである。「機械可読媒体」及び「機械可読ストレージ媒体」という用語も、機械による実行に向けて１組の命令を格納、符号化、又は伝達することができ、かつ機械に本発明に開示する技術及び技術革新の方法のいずれか１つ又はそれよりも多くを実施させるあらゆる媒体を含むと取るものとする。
【０１８７】
一般的に、本発明の開示の実施形態を実施するために実行されるルーチンは、オペレーティングシステム又は特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、又は「コンピュータプログラム」という命令のシーケンスの一部として実施することができる。コンピュータプログラムは、一般的に、コンピュータ内の様々なメモリ及びストレージに様々な時に設定され、かつコンピュータ内のうちの１つ又はそれよりも多くの処理ユニット又はプロセッサにより読まれて実行される時に、コンピュータに本発明の開示の様々な態様に関わっている要素を実行する演算を行わせる１つ又はそれよりも多くの命令を含む。
【０１８８】
更に、実施形態が完全に機能するコンピュータ及びコンピュータシステムという状況で説明したが、当業者は、様々な実施形態は、様々な形態でプログラム製品として販売することができ、本発明の開示は、実際に販売を行うために使用される特定のタイプの機械又はコンピュータ可読媒体とは無関係に等しく適用されることを認識するであろう。
【０１８９】
機械可読ストレージ媒体、機械可読媒体、又はコンピュータ可読（ストレージ）媒体の更に別の例には、取りわけ、揮発性及び不揮発性のストレージ、フロッピー（登録商標）及び他の着脱式のディスク、ハードディスクドライブ、光ディスク（例えば、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、デジタルビデオディスク（ＤＶＤ）など）のような記録することができるタイプの媒体、及びデジタル及びアナログ通信リンクのような送信タイプ媒体があるがこれらに限定されない。
【０１９０】
文脈が明確にそれ以外を示さない限り、説明及び特許請求の範囲を通じて、「含む」、「含んでいる」のような語は、排他的又は網羅的な意味ではなく、包含的な意味で、すなわち、「を含むがこれに限定されない」という意味で解釈すべきである。本明細書で使用する時に、用語「接続した」、「結合した」、又はそのあらゆる変形は、２つ又はそれよりも多くの要素間に直接的、間接的に関わらず、あらゆる接続又は結合を意味すると共に、要素間の結合又は接続は、物理的なもの、論理的なもの、又はその組合せとすることができる。更に、本出願に使用される時に、「本明細書に」、「上記に」、「下記に」という語及び類似の趣旨の語は、全体として本出願を指し、本出願のいずれかの特定の部分を指すのではないものとする。文脈的に許容される場合に、単数又は複数を使用する上述の「発明を実施するための形態」内の単語は、それぞれ複数又は単数を含むことができる。２つ又はそれよりも多くの項目のリストを参照して「又は」という語は、語の以下の解釈、すなわち、リスト内の項目のいずれか、リスト内の項目の全て、及びリスト内の項目のあらゆる組合せの全てを包含する。
【０１９１】
本発明の開示の実施形態の上述の詳しい説明は、網羅的であり、又は先に開示した正確な形態に教示を限定するように意図しているものではない。本発明の開示の特定的な実施形態及び本発明の開示の実施例は、例示を目的として本明細書に説明しているが、当業技術の当業者が認識するように、様々な同等の修正が本発明の範囲で可能である。例えば、処理又はブロックは特定の順序に示めされたが、代替的な実施形態において、異なる順序で段階を有するルーチンを実行するか、ブロックを有するシステムを使用することができ、一部の処理又はブロックは、代案及び／又は部分組合せをもたらすために削除、追加、細分化、結合、及び／又は変更することができる。これらの処理又はブロックの各々は、様々な異なる方法で実行することができる。また、処理又はブロックが連続で実行されるように示されたが、これらの処理又はブロックは代わりに並列に実行することができ、又は異なる時間に行うことができる。更に、本明細書に説明されたあらゆる固有番号は、例にすぎず、代替的な例では、異なる値又は範囲を使用することができる。
【０１９２】
本明細書に示す本発明の開示の教示は、必ずしも上述のシステムではなく他のシステムにも適用することができる。上述の様々な実施形態の要素及び行為は、更に別の実施形態をもたらすために結合することができる。
【０１９３】
添付出願文書に説明することができる一切を含むあらゆる特許及び出願及び上述の他の参考文献は、引用により本明細書に組み込まれている。本発明の開示の態様は、必要に応じて、本発明の開示の更に別の実施形態をもたらすために上述の様々な参考文献のシステム、機能、及び概念を使用するように変更することができる。
【０１９４】
上述の「発明を実施するための形態」に照らして上記及び他の変更を本発明の開示に行うことができる。以上の説明では本発明の開示の特定的な実施形態を説明して発明を実施するための形態を説明しているが、上記がテキストでどのように詳細に説明されていても、教示は、様々な方法で実施することができる。システムの細部は、実施例の詳細においてかなり変わる場合があるが、依然として本明細書に開示する主題により包含される。上述のように、本発明の開示の特定の特徴又は態様を説明する時に使用した特定の用語は、その用語が関連する本発明の開示のあらゆる特定の特性、特徴、又は態様に制限されるように用語が本明細書で定義し直されたことを意味すると取るべきではない。上述の「発明を実施するための形態」の節で明示的にこのような条件を定義しない限り、特許請求の範囲に使用される用語は、本明細書に開示する特定的な実施形態に本発明の開示を限定すると解釈すべきでない。従って、本発明の開示の実際の範囲は、開示する実施形態だけでなく、特許請求の範囲に従って本発明の開示を実施又は実行する全ての同等の方法も包含する。
【０１９５】
本発明の開示のある一定の態様は、ある一定の特許請求の範囲の形態で以下に呈示するが、本発明者は、あらゆる数の特許請求の範囲の形態で本発明の開示の様々な態様を考えている。例えば、本発明の開示の一態様のみが「３５  Ｕ．Ｓ．Ｃ．§１１２」第６項に従って手段及び機能の特許請求の範囲として説明されたが、他の態様も、同様に手段及び機能の特許請求の範囲として又はコンピュータ可読媒体において実施されるような他の形態で実施することができる。（「３５  Ｕ．Ｓ．Ｃ．§１１２」第６項に従って取り扱われることを意図したあらゆる特許請求の範囲は、「するための手段」という語で始まることになる。）従って、本出願人は、本発明の開示の他の態様に対してこのような付加的な特許請求の範囲の形式を求めるために本出願を出願後に付加的な特許請求の範囲を追加する権利を保持する。
【符号の説明】
【０１９６】
４３３  遅延Ｄ１
４３４  要求Ｂ
４５０  モバイルデバイス
４５５  ホームスクリーンウィジェット
４６０  分散型プロキシシステム
４６５  ローカルプロキシ
【図１Ａ】
0005620578.tif 000003
【図１Ｂ】
0005620578.tif 000004
【図２Ａ】
0005620578.tif 000005
【図２Ｂ】
0005620578.tif 000006
【図３】
0005620578.tif 000007
【図４Ａ】
0005620578.tif 000008
【図４Ｂ】
0005620578.tif 000009
【図５】
0005620578.tif 000010
【図６】
0005620578.tif 000011
【図７】
0005620578.tif 000012
【図８】
0005620578.tif 000013
【図９】
0005620578.tif 000014
【図１０】
0005620578.tif 000015
【図１１】
0005620578.tif 000016