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