(57)【特許請求の範囲】
【請求項１】
モバイルクライアントと通知サービスの通知サーバとの間で通知サービスを代行する方法を、１つ以上の処理ユニットに実行させるための遂行可能な命令を有する、機械可読記憶媒体であって、前記方法が、
前記モバイルクライアントから前記通知サービス向けのプロキシ設定要求であって、前記モバイルクライアントの電池寿命を最大化することを示す電池寿命パラメータを備える前記プロキシ設定要求を受信することと、
前記モバイルクライアントに代わって前記通知サーバとの通知接続を確立することと、
前記モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに前記通知サーバとの前記通知接続を維持することと、
前記通知サービスから通知を受信することと、
受信した前記通知を別の通知と、前記電池寿命パラメータのために設定された値に基づいてバンドルすることと、
前記モバイルクライアントにバンドルした前記通知を転送することと、
を含む、機械可読記憶媒体。
【請求項２】
前記通知接続を維持することが、
前記通知サーバに通知サービス接続メッセージを送信することと、
前記通知サーバから応答を受信することと、
を含む、請求項１に記載の機械可読記憶媒体。
【請求項３】
前記通知サービス接続メッセージが、ピングメッセージ及びハイパーテキスト転送プロトコル要求からなる群から選択される、請求項２に記載の機械可読記憶媒体。
【請求項４】
前記応答が、前記モバイルクライアント向けの通知を含む、請求項２に記載の機械可読記憶媒体。
【請求項５】
前記通知が、プッシュ型通知である、請求項１に記載の機械可読記憶媒体。
【請求項６】
前記通知接続を確立することが、
前記モバイルクライアントに前記プロキシ設定要求に対する応答を送信すること
を含む、請求項１に記載の機械可読記憶媒体。
【請求項７】
前記モバイルクライアントから更新要求を受信することと、
前記更新要求によってモバイルクライアントを更新することと、
を更に含む、請求項１に記載の機械可読記憶媒体。
【請求項８】
前記更新要求が、前記モバイルクライアントのアドレス変更を含む、請求項７に記載の機械可読記憶媒体。
【請求項９】
前記モバイルクライアントが、第１のオペレーティングシステム内で通信機能の実行を遂行する第１のプロセッサと、第２のオペレーティングシステム内で遂行する、中央処理装置である第２のプロセッサとを含み、前記方法が前記第１のプロセッサによって実行される、請求項１に記載の機械可読記憶媒体。
【請求項１０】
通知サービスを代行するシステムであって、前記システムは、
前記通知サービスから通知を受信するモバイルクライアントと、
前記通知サービスに代わって前記モバイルクライアントに前記通知を送信する通知サーバと、
前記モバイルクライアントに代わって通知要求を代行するプッシュプロキシであって、前記プッシュプロキシは、前記モバイルクライアントから前記通知サービス向けのプロキシ設定要求であって、前記モバイルクライアントの電池寿命を最大化することを示す電池寿命パラメータを備える前記プロキシ設定要求を受信し、前記モバイルクライアントに代わって前記通知サーバとの通知接続を確立し、前記モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに前記通知サーバとの前記通知接続を維持し、前記通知サービスから通知を受信し、受信した前記通知を別の通知と、前記電池寿命パラメータのために設定された値に基づいてバンドルし、前記モバイルクライアントにバンドルした前記通知を転送する、プッシュプロキシと、
を備える、システム。
【請求項１１】
前記通知接続を維持するために、前記プッシュプロキシがまた、前記通知サーバに通知サービス接続メッセージを送信し、前記通知サーバから応答を受信する、請求項１０に記載のシステム。
【請求項１２】
前記通知サービス接続メッセージが、ピングメッセージ及びハイパーテキスト転送プロトコル要求からなる群から選択される、請求項１１に記載のシステム。
【請求項１３】
前記応答が、前記モバイルクライアント向けの通知を含む、請求項１１に記載のシステム。
【請求項１４】
前記通知が、プッシュ型通知である、請求項１０に記載のシステム。
【請求項１５】
通知サービスから通知を受信するためのデバイスであって、前記デバイスは、
第１のオペレーティングシステム内で遂行し、コマンド機能を実行するアプリケーションプロセッサと、
第２のオペレーティングシステム内で遂行し、通信機能を実行するネットワーク接続要素であって、前記ネットワーク接続要素は、プッシュプロキシを含み、前記プッシュプロキシは、前記アプリケーションプロセッサから前記通知サービス向けのプロキシ設定要求であって、モバイルクライアントの電池寿命を最大化することを示す電池寿命パラメータを備える前記プロキシ設定要求を受信し、前記デバイスに代わって通知サーバとの通知接続を確立し、前記アプリケーションプロセッサをウェイクアップさせずに前記通知サーバとの前記通知接続を維持し、前記通知サービスから通知を受信し、受信した前記通知を別の通知と、前記電池寿命パラメータのために設定された値に基づいてバンドルし、前記アプリケーションプロセッサにバンドルした前記通知を転送するように設定されている、ネットワーク接続要素と、
を備える、デバイス。
【請求項１６】
前記通知接続を維持するために、前記プッシュプロキシが、前記通知サーバに通知サービス接続メッセージを送信し、前記通知サーバから応答を受信するように更に設定されている、請求項１５に記載のデバイス。
【請求項１７】
前記応答が、前記デバイス向けの通知を含む、請求項１６に記載のデバイス。
【請求項１８】
通知接続を確立するために、前記プッシュプロキシが、前記アプリケーションプロセッサに前記プロキシ設定要求に対する応答を送信するように更に設定されている、請求項１５に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、モバイルデバイスの処理の分野に関し、より具体的には、プロキシを用いたモバイルデバイスの通知サービスの接続の管理に関する。
【背景技術】
【０００２】
モバイルデバイス（例えば、ラップトップ、パームトップ、ポータブルメディアプレーヤ、スマートフォン、マルチメディア携帯電話機、「ゲームボーイ（登録商標）」のような携帯型ゲームシステムなど）のユーザは、１つ以上の通知サービスに登録することができる。例えば、ユーザは、．Ｍａｃ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ  ＡＣＴＩＶＥＳＹＮＣ（登録商標）、ｐｕｓｈ−ＩＭＡＰ、Ｙａｈｏｏ！（登録商標）Ｐｕｓｈなどの１つ以上の「プッシュ型」電子メールサービスに登録することができる。例えば、プッシュ型電子メールサービスの場合、電子メールサーバは、ユーザがそのアイテムを要求しなくても、ユーザのモバイルデバイス上の電子メールクライアントに電子メールメッセージ及び／又はカレンダーの更新を自動的に伝送することができる。換言すれば、ユーザは、電子メールメッセージ又は関心のあるその他のアイテムを電子メールサーバに要求（ポーリング）しない。このように、プッシュ型通知サービスは持続的な通知サービスである。更に、他の種類のサービスも同様のプッシュ型アーキテクチャを使用することができる（例えば、更新／アップグレードサービス、ニュースサービス、ウェブログサービス、ポッドキャストサービスなど）。プッシュ型通知サービスを維持するために、モバイルデバイスは、プッシュ型通知サービスとの接続を定期的に（例えばプッシュサーバにピングメッセージを伝送することにより）リフレッシュする。
【０００３】
更に、ユーザは、「プル型」電子メールサービス（例えば、ＩＭＡＰ、ＰＯＰ３）のような１つ以上の「プル型」サービスに登録することができる。プル型電子メールサービスでは、ユーザは、電子メールサーバを定期的にチェック（ポーリング）して新しい電子メールメッセージの有無を判定する。新しい電子メールメッセージがあれば、これらのメッセージがクライアントにダウンロードされる。多くの電子メールクライアントが、ポーリング間隔の自動設定をサポートしている。例えば、モバイルデバイスのユーザは、ＰＯＰ３の電子メールアカウントに１０分のポーリング間隔を設定することができる（したがって、電子メールクライアントは、電子メールサーバを１０分毎に自動的にポーリングして新しい電子メールメッセージの有無をチェックする）。更に、ネットワーク全体（例えば、インターネット全体）のイベントの通知メッセージを複数の登録者に提供するように通知サービスを設定することができ、通知サービスは、１人以上の登録者及び／又は発行者によって自動的に発見することができるが、このことは、この参照によりその全部が本明細書内に組み込まれる、２００８年３月４日付で出願の、「Ａｕｔｏｍａｔｉｃ  Ｎｏｔｉｆｉｃａｔｉｏｎ  Ｓｙｓｔｅｍ  ａｎｄ  Ｐｒｏｃｅｓｓ」と題された米国特許出願第１２／０４２，３０７号の中に記載されている。
【０００４】
モバイルデバイスは、ネットワーク（例えば、汎用パケット無線サービス（ＧＰＲＳ）ネットワークのようなセルラーネットワーク、及び／又はローカルエリアネットワーク（ＬＡＮ））上でモバイルデバイスにデータサービス（例えば、インターネットからのインターネットプロトコルトラフィック）を提供する、１つ以上のネットワーク要素とデータコンテキスト（例えば、パケットデータプロトコル（ＰＤＰ）コンテキスト）を確立する。データコンテキストは、モバイルデバイスとネットワーク要素との間の論理的結合であり、ルーティング（例えば、ＩＰアドレス情報）、サービスの品質（ＱｏＳ）、決済、認証などに関連した情報を含む。データコンテキストを維持するためにはネットワーク要素のネットワークリソースを消費するので、モバイルデバイスがデータコンテキストをアクティブに使用していない場合は、１つ以上のサーバがモバイルデバイスに関連したデータコンテキストを廃棄する場合がある。例えば、モバイルデバイスの電源が切られている（したがって、データコンテキストを使用しておらず、ネットワーク要素と連絡を取っていない）場合、ネットワーク要素は、モバイルデバイスから情報を受け取らないまま、ある時間が経過した後にデータコンテキストを廃棄することができる。モバイルデバイスは、データコンテキストを定期的にリフレッシュしてデータコンテキストの接続を維持することができる。
【０００５】
電池寿命を節約するために、モバイル装置は、定常的な電源に接続されておらず、アクティブに使用されていない（例えば、アイドル状態にある）ときには、低電力モードに入ることができる。一般的には、これを「スリープ」モードと呼ぶ。特定のモバイルデバイスのスリープモードは、そのモバイルデバイスの特性によって異なることがある。例えば、モバイルデバイスがネットワークアクセス（例えば、セルラーアクセス、ＷｉＦｉ（登録商標）アクセスなど）を有する場合、スリープモードは、メインプロセッサを時間的にスリープ状態に置き、ディスプレイをオフにしながらも、ネットワークスタックを機能的に使用可能な状態に維持することを含み得る。したがって、スリープモードにある間でも、例示的なモバイルデバイスは、通話並びに／又は通知サービスからの対象となるアイテム（例えば、プッシュ型電子メールサービス及び／若しくはプル型電子メールサービスからの電子メールメッセージ）を、引き続き受信することができる。受信後、モバイルデバイスは、これらの通話及び／又は通知を処理するためにウェイクアップすることができる。例えば、モバイルデバイスはスリープモードにある間に通話を受信した後、ユーザが通話に応答することができるようにウェイクアップする。更に、一般的なモバイルデバイスは、通常、スリープモードにある間はデータコンテキストをリフレッシュすることができない（したがって、モバイルデバイスは、通常、データコンテキストをリフレッシュするためには、アウェイク状態である必要がある）。
【発明の概要】
【０００６】
モバイルクライアントと通知サーバとの間で通知サービスの接続を代行する方法及び装置である。本発明の一実施形態において、プロキシは、モバイルクライアントから通知サービス向けのプロキシ設定要求を受信する。プロキシは、更に、モバイルクライアントに代わって通知サーバとの通知接続を確立し、モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに通知接続を維持する。プロキシは、通知サービスから通知を受信し、通知をモバイルクライアントに転送する。
【０００７】
本発明の別の実施形態において、システムは、モバイルクライアント、通知サーバ、及びプッシュプロキシを含んでいる。モバイルクライアントが通知サーバを経由して通知サービスから通知を受信し、プッシュプロキシがモバイルクライアントに代わって通知要求を代行する。プッシュプロキシは、モバイルクライアントから通知サービス向けのプロキシ設定要求を受信する。プッシュプロキシは、更に、モバイルクライアントに代わって通知サーバとの通知接続を確立し、モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに通知サーバとの通知接続を維持する。更に、プッシュプロキシは、通知サービスから通知を受信し、通知をモバイルクライアントに転送する。
【０００８】
本発明の更なる実施形態において、デバイスは、第１のオペレーティングシステム内で遂行し、コマンド機能を実行するアプリケーションプロセッサと、第２のオペレーティングシステム内で遂行し、通信機能を実行するネットワーク接続要素と、を含んでいる。ネットワーク接続性は、通知サービスに代わってアプリケーションプロセッサからプロキシ設定要求を受信するように設定されたプッシュプロキシを含んでいる。プッシュプロキシは、デバイスに代わって通知サーバとの通知接続を確立し、アプリケーションプロセッサをウェイクアップさせずに通知サーバとの通知接続を維持するように更に設定されている。更に、プッシュプロキシは、通知サービスから通知を受信し、アプリケーションプロセッサにこの通知を転送するように設定されている。
【０００９】
本発明は、以下の説明及び本発明の実施形態を例示するために使用される添付の図面を参照することによって最もよく理解することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る例示的なコンピューティング環境の図である。
【図２】本発明の一実施形態に係る、通知サービスの接続を確立し、通知サービス接続メッセージ（notification service connection message、ＮＳＣＭ）の伝送間隔をスケジュールするモバイルデバイスの例示的なフローの図である。
【図３Ａ】本発明の一実施形態に係る、通知サービスの接続を管理する例示的なモバイルデバイスのフレームワークを例示したブロック図である。
【図３Ｂ】本発明の一実施形態に係る、図３Ａの通知サービス接続マネージャの分解図を例示したブロック図である。
【図４】本発明の一実施形態に係る、通知サービスの接続の管理を例示したフローチャートである。
【図５】本発明の一実施形態に係る、オーバーラップする通知サービス接続メッセージの伝送ウィンドウに基づいて通知サービス接続メッセージの伝送を同期させるモバイルデバイスを図示した例示的な図表である。
【図６】本発明の一実施形態に係る、通知サービス接続メッセージの間隔の最適化を図示した例示的な状態図である。
【図７】本発明の一実施形態に係る例示的なモバイルデバイスを例示したブロック図である。
【図８】本発明の一実施形態に係る例示的なモバイルデバイスを例示したブロック図である。
【図９Ａ】本発明の一実施形態に係る、独立型プロキシを含む例示的なコンピューティング環境の図である。
【図９Ｂ】本発明の一実施形態に係る、モバイルクライアント内に組み込まれたプロキシを含む例示的なコンピューティング環境の図である。
【図１０】本発明の一実施形態に係る、クライアントとサーバとの間のサービスの接続を代行するプロキシのブロック図である。
【図１１】本発明の一実施形態に係る、クライアントに代わり、プロキシによる通知サービスの接続の管理を例示したフローチャートである。
【図１２】本発明の一実施形態に係る、プロキシとサーバとの間の通知サービスの接続の管理を例示したフローチャートである。
【図１３】本発明の一実施形態に係る、クライアントとの相互作用の管理を図示したフローチャートである。
【発明を実施するための形態】
【００１１】
以下の説明では、数多くの具体的な詳細が記載される。しかし、本発明の実施形態は、これら具体的な詳細を伴わずに実施できることが分かる。他の例では、本記載の理解を不明瞭にしないようにするために、周知の回路、構造及び技法は詳細には示されていない。他の例では、本発明を不明瞭にしないために、制御構造、ゲートレベル回路、及び完全なソフトウェア命令シーケンスの詳細については、示していない。当業者であれば、記載の説明を基に、過度の実験を行うことなく、適切な機能性を実施することができるであろう。
【００１２】
本明細書内での「一実施形態」、「ある実施形態」、「ある例示的実施形態」などへの言及は、記述の実施形態が特定の特徴、構造、又は特性を含むことができるが、全ての実施形態が必ずしもこれらの特定の特徴、構造、又は特性を含むとは限らないことを示している。更には、このような表現は、必ずしも同一の実施形態に言及しているわけではない。更に、ある実施形態に関連して特定の特徴、構造、又は特性が説明されるとき、明示的に説明されているか否かに拘わらず、他の実施形態に関連してこのような特徴、構造、又は特性をもたらすことは、当業者の知識の範囲内であると考えられる。
【００１３】
以下の説明及び請求項において、「連結している」及び「接続されている」と共にこれらの派生語が使用される場合がある。これらの言葉は、互いに同義語として意図されていないことが理解されるべきである。「連結している」は、相互に物理的又は電気的に直接接触しているかもしれず、していないかもしれない２つ以上の要素が、互いに協働し、又は相互作用することを示すために使用される。「接続されている」は、相互に連結している２つ以上の要素間の通信の確立を示すために使用される。
【００１４】
図に示す技術は、１つ以上の電子デバイス（例えば、モバイルデバイス（例えば、ラップトップ、パームトップ、ポータブルメディアプレーヤ、スマートフォン、マルチメディア携帯電話機、携帯型ゲームシステムなど）、非モバイルデバイス（例えば、デスクトップコンピュータ、ワークステーション、サーバなど）上に格納され、これらで実行されるコード及びデータを使用して実施することができる。このような電子デバイスは、機械記憶媒体（例えば、磁気ディスク、光ディスク、読出し書込み可能メモリ、読出し専用メモリ、フラッシュメモリデバイス）及び機械通信媒体（例えば、搬送波、赤外線信号、デジタル信号、などのような、電気的、光学的、音響的、又はその他の形態の伝播信号）のような機械読み取り可能な媒体を使用してコード及びデータを（内部で、及びネットワーク上で他の電子デバイスとの間で）格納し、伝達する。更に、このような電子デバイスは通常、記憶装置、１つ以上のユーザ入出力装置（例えば、キーボード、キーパッド、タッチスクリーン、及び／又はディスプレイ）、並びに１つ以上のネットワーク接続のような１つ以上の他の構成要素に連結している、１つ以上のプロセッサのセットを含んでいる。プロセッサのセットとその他の構成要素は、通常、１つ以上のバス及びブリッジ（バスコントローラとも呼ばれる）を介して連結される。記憶装置及びネットワークトラフィックを伝送する信号はそれぞれ、１つ以上の機械記憶媒体及び機械通信媒体を代表している。このように、所与の電子デバイスの記憶装置は、通常、その電子デバイスの１つ以上のプロセッサのセットで実行されるコード及び／又はデータを格納する。勿論、本発明のある実施形態の１つ以上の部分を、ソフトウェア、ファームウェア、及び／又はハードウェアのいろいろな組み合わせを用いて実施することができる。
【００１５】
通知サービス
モバイルクライアントを使用し、又はモバイルクライアントに代わるプロキシによって通知サービスの接続を管理する方法及び装置について説明する。本発明の一実施形態において、モバイルデバイス（例えば、ラップトップ、パームトップ、ポータブルメディアプレーヤ、スマートフォン、マルチメディア携帯電話機、「ゲームボーイ」のような携帯型ゲームシステムなど）は、１つ以上の通知サービスクライアント（例えば、プッシュ型通知サービスクライアント（例えば、．Ｍａｃ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ、ｐｕｓｈ−ＩＭＡＰ、Ｙａｈｏｏ！Ｐｕｓｈなどのプッシュ型電子メールクライアント、更新／アップグレードサービス、ニュースサービス、ウェブログサービス、ポッドキャストサービスなど）及び／又はプル型通知サービスクライアント（例えば、ＰＯＰ３、ＩＭＡＰなどのプル型電子メールクライアント））を含む。モバイルデバイスは、各々の通知サービスクライアント毎に独立して通知サービス接続メッセージの伝送間隔をスケジュールし、通知サービス接続メッセージの伝送タイマーを設定する。更に、通知サービス接続メッセージの伝送ウィンドウは、各通知サービス接続メッセージの伝送間隔に関連しており、通知サービス接続メッセージの伝送間隔の値に基づいている。モバイルデバイスは、特定の通知サービスクライアントの通知サービス接続メッセージの伝送タイマーが終了すると同時に、その通知サービスの通知サービス接続メッセージを伝送し、また、各々の通知サービス接続メッセージの伝送ウィンドウがその終了する伝送タイマーとオーバーラップする他の各通知サービスの通知サービス接続メッセージも伝送する。モバイルデバイスは、各通知サービスの通知サービス接続メッセージを伝送すると同時に、その通知サービス接続メッセージの伝送タイマーをリセットする。
【００１６】
本発明の一実施形態において、モバイルデバイスがスリープモードにある場合、モバイルデバイスは、各通知サービスの接続について、通知サービス接続メッセージを伝送するためにモバイルデバイスをウェイクアップさせる時刻をスケジュールする。モバイルデバイスが特定の時刻にアウェイク状態にある場合、又は特定の時刻にスケジュールされたウェイクアップ時にウェイクアップする場合、モバイルデバイスは、各々の通知サービス接続メッセージの伝送ウィンドウがその特定の時刻とオーバーラップする通知サービスの通知サービス接続メッセージを伝送する。モバイルデバイスは、各通知サービスの通知サービス接続メッセージを伝送後、その通知サービス接続メッセージの伝送タイマーをリセットする。
【００１７】
図１は、本発明の一実施形態に係る例示的なコンピューティング環境１００を図示している。コンピューティング環境１００は、１つ以上のネットワークデータアクセス要素１５０と各々連結しているモバイルデバイス１６０及び１７０を含んでいる。ネットワークデータアクセス要素１５０は、セルラーネットワーク（例えば、移動通信用のグローバルシステム（ＧＳＭ（登録商標））、ＧＳＭ進化のためのエンハンストデータレート（ＥＤＧＥ）、汎用パケット無線サービス（ＧＰＲＳ）、符号分割多元接続（ＣＤＭＡ）、時分割ＣＤＭＡ、（ＴＤ−ＣＤＭＡ）、ユニバーサル移動体通信システム（ＵＭＴＳ）、ロングタームエボリューション（ＬＴＥ）、若しくはその他のセルラーネットワーク）、ローカルエリアネットワーク（ＬＡＮ）などを含む、本発明のいろいろな実施形態における様々な種類のネットワークの一部となることができる。例えば、ネットワークデータアクセス要素１５０がＧＳＭネットワークの一部である場合、ネットワークデータアクセス要素１５０は、送受信基地局（ＢＴＳ）、基地局コントローラ（ＢＳＣ）、移動交換局（ＭＳＣ）、サービス中のＧＰＲＳサポートノード（ＳＧＳＮ）などのうちの１つ以上を含むことができる。別の例として、ネットワークデータアクセス要素１５０がＬＡＮの一部である場合、ネットワークデータアクセス要素１５０は、１つ以上のネットワークスイッチ、ルータ、ハブ、モデムなどを含むことができる。
【００１８】
モバイルデバイス１６０は、アプリケーションプロセッサ１６２及びネットワーク接続要素１６４（例えば、無線ネットワーク接続要素（例えば、携帯電話通信用のＲＦネットワーク接続要素、ＷｉＦｉネットワーク接続要素）、有線ネットワーク接続要素（例えば、有線ネットワークインターフェースコントローラ（ＮＩＣ）））を含んでいる。モバイルデバイス１６０は、ネットワーク接続要素１６４を介して、データコンテキスト（例えば、ＰＤＰコンテキスト）を通じてネットワークデータアクセス要素１５０と通信する。広域ネットワーク（ＷＡＮ）１４０（例えば、インターネット）が、ネットワークデータアクセス要素１５０と連結している。プッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０が、ＷＡＮ  １４０と連結している。本発明の一実施形態によれば、モバイルデバイス１６０のユーザは、プッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０にアクセスし、これらを使用する（プッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０が、ユーザの関心のあるアイテムを提供する）。例えば、プッシュ型通知サービス１１０がモバイルデバイス１６０のユーザ向けに個人用プッシュ型電子メールアカウントを提供してもよい一方で、プッシュ型通知サービス１２０はモバイルデバイス１６０のユーザ向けに業務用プッシュ型電子メールアカウントを提供してもよい。別の例として、プル型通知サービス１３０は、モバイルデバイス１６０のユーザ向けに組織的なプル型電子メールアカウント（例えば、ＰＯＰ３電子メールアカウント、ウェブメールアカウントなど）を提供してもよい。
【００１９】
本発明の一実施形態において、アプリケーションプロセッサ１６２は、モバイルデバイス１６０の中央処理装置である。例えば、アプリケーションプロセッサ１６２は、モバイルデバイス１６０のオペレーティングシステム（図１では、本発明の理解を不明瞭にしないために、オペレーティングシステムを図示せず）及びモバイルデバイス１６０で実行中の任意のアプリケーションを処理する。入出力装置、メモリ、電源、ディスプレイなど、モバイルデバイスの他の周知の特徴については、本発明の理解を不明瞭としないために、図１には図示していない。
【００２０】
本発明の一実施形態によれば、モバイルデバイス１６０は、「スリープモード」として知られる低電力モードに入ることができる。例えば、モバイルデバイス１６０が定常的な電源と連結していない（例えば、電気コンセントに繋がっていない）場合、モバイルデバイス１６０は、デバイスの電池寿命を節約するために定期的にスリープモードに入ることができる。モバイルデバイス１６０は、ある期間の不活動（例えば、１分間の不活動）後、及び／又はユーザからのコマンドによる直接的な方法（例えば、ユーザがモバイルデバイス１６０に対してスリープモードに入るようにコマンドを発行することができる）など、多くの様々な方法でスリープモードに入ることができる。スリープモードに入るための他の機構も本発明の範囲内であることは、理解されるであろう。
【００２１】
本発明の一実施形態によれば、スリープモードにある間、モバイルデバイス１６０は、アプリケーションプロセッサ１６２を一時的にディスエーブルする（アプリケーションプロセッサ１６２は、一時的にディスエーブルされているときには実質上、電力を消費しないでいることができる）。アプリケーションプロセッサ１６２がディスエーブルされている場合は、モバイルデバイス１６０のオペレーティングシステム及びアプリケーションもまたディスエーブルされることが理解されるべきである。しかし、本発明の一実施形態によれば、ネットワーク接続要素１６４のうちの少なくとも一部は一時的にディスエーブルされない。換言すれば、ネットワーク接続要素１６４のうちの少なくとも一部は、ネットワークデータアクセス要素１５０から情報を引き続き受け取り、電力を使用することができる。例えば、モバイルデバイス１６０が通話及び／又はテキストメッセージ（例えば、ショートメッセージサービス（ＳＭＳ）メッセージ）を受信する機能を有している場合、モバイルデバイス１６０は、通話及び／又はテキストメッセージを受信するためにスリープモードにある間もＲＦ接続要素をアウェイク状態に保つことができる。例えば、仮にモバイルデバイス１６０がＲＦ接続要素をディスエーブルした場合、モバイルデバイス１６０のユーザは、通話及び／又はテキストメッセージを受信することができなくなる（例えば、その代わりに、ボイスメールがサポートされている場合は、通話をボイスメールに転送することができる）。これらの着信通話及び／又は着信テキストメッセージを処理するために（例えば、ユーザが着信通話に出るために）、モバイルデバイス１６０がスリープモードからウェイクアップする（例えば、アプリケーションプロセッサ１６２を再イネーブルする）ことが理解されるべきである。
【００２２】
更に、本発明の一実施形態によれば、モバイルデバイス１６０は、スリープモードにある間にプッシュ型通知サービス１１０〜１２０から対象となるアイテムを受信する機能を含む。例えば、ネットワーク接続要素１６４のうちの少なくとも一部は、スリープモードにある間にプッシュ型通知サービス１１０及び１２０から対象となるアイテム（例えば、電子メールのメッセージ、カレンダーの更新、気象情報の更新、株価の更新など）を受信する機能を有している。本発明の一実施形態において、ＲＦネットワーク接続要素は、スリープモードにある間にプッシュ型通知サービス１１０及び１２０から送信された対象となるアイテムを受信する。このように、スリープモードにある間にプッシュ型通知サービス１１０及び１２０がモバイルデバイス１６０のユーザ向けにプッシュ型電子メールサービスを提供する場合、モバイルデバイス１６０は、プッシュ型通知サービス１１０及び１２０から電子メールのメッセージを受信することができる。本発明の一実施形態によれば、モバイルデバイス１６０は、スリープモードからウェイクアップしてスリープモードにある間に受信した対象となるアイテムを処理する。
【００２３】
本発明の幾つかの実施形態において、スリープモードにある間もＷｉＦｉネットワーク接続要素がアウェイク状態にあり、機能している（そしてプッシュ型通知サービス１１０及び１２０から対象となるアイテムを受信することができる）一方、本発明の別の方法の実施形態においては、ＷｉＦｉネットワーク接続要素は、スリープモードにある間にスリープ状態に置かれる。一実施形態において、ＲＦネットワーク接続要素は、ＷｉＦｉネットワーク接続要素よりも少ない電力を使用することができる。したがって、この実施形態においては、スリープモードにある間にＷｉＦｉネットワーク接続要素をアウェイク状態に保つことは、ＲＦネットワーク接続要素をアウェイク状態に保つよりも大きな電力を消耗する原因となる。このように、本発明の幾つかの実施形態において、モバイルデバイス１６０は、スリープモードにある間にＷｉ−Ｆｉネットワーク接続要素を介してプッシュ型通知サービス１１０及び１２０から対象となるアイテムを受信することができる一方、本発明のその他の実施形態においては、モバイルデバイス１６０は、スリープモードにある間にはＷｉＦｉネットワーク接続要素を介しては対象となるアイテムを受信しない。
【００２４】
本発明の幾つかの実施形態において、モバイルデバイス１６０は、プッシュ型通知サービス１１０及び１２０から対象となるアイテムを受信するために、ネットワーク接続要素の組み合わせを使用することができる。例えば、モバイルデバイス１６０は、ＲＦネットワーク接続要素（例えば、セルラーネットワーク）を介して、及び／又はＷｉＦｉネットワーク接続要素（例えば、家庭内ＬＡＮに接続されているとき）を介してデータ情報の受信をサポートすることができる。モバイルデバイス１６０のユーザは、ＷｉＦｉサービスが利用可能なとき（例えば、家庭内ＬＡＮ及び／又は職場のＬＡＮに接続されている間）にはＷｉＦｉネットワーク接続要素を使用し、ＷｉＦｉサービスが利用可能ではないときにはＲＦネットワーク接続要素を使用するように、モバイルデバイス１６０を設定することができる。このように、本発明の一実施形態によれば、どちらの接続要素がデータサポートを提供しているかによって、ＲＦネットワーク接続要素及び／又はＷｉＦｉネットワーク接続要素を使用して、プッシュ型通知サービス１１０及び１２０から対象となるアイテムを受信することができる。更に、本発明の一実施形態において、ＲＦネットワーク接続要素及び／又はＷｉＦｉネットワーク接続要素を使用して、スリープモードに入る前にどちらのネットワーク接続要素がデータサポートを提供していたかによって、スリープモードにある間にプッシュ型通知サービス１１０及び１２０から対象となるアイテムを受信することができる（例えば、モバイルデバイス１６０がアウェイク状態にあった間にＬＡＮ内にあってかつＷｉＦｉネットワーク接続要素がプッシュ型通知サービス１１０及び１２０から対象となるアイテムを受信していた場合は、スリープモードにある間にもＷｉＦｉネットワーク接続要素がアウェイク状態に留まって対象となるアイテムを受信し、モバイルデバイス１６０はＲＦネットワーク接続要素をスリープ状態に置く）。
【００２５】
一実施形態において、ＷｉＦｉネットワーク接続要素はＲＦネットワーク接続要素よりも大きな電力を使用する可能性があり、スリープモードに入る前にどちらのネットワーク接続要素がデータサポートを提供していたかに拘わらず、モバイルデバイス１６０はＷｉＦｉネットワーク接続要素をスリープ状態に置き（一時的にＷｉＦｉネットワーク接続要素をディスエーブルし）、スリープモードにある間にＲＦネットワーク接続要素を使用してプッシュ型通知サービスから対象となるアイテムを受信する。例えば、モバイルデバイス１６０がＬＡＮ（例えば、ユーザの家庭内ＬＡＮ）経由でプッシュ型通知サービス１１０及び１２０と接続しており、ユーザがモバイルデバイス１６０をスリープモードに置くためのコマンドを発行すると、モバイルデバイス１６０はセルラーネットワークを経由した（ＲＦネットワーク接続要素を通じて）プッシュ型通知サービス１１０及び１２０との接続に自動的に移行し、ＷｉＦｉネットワーク接続要素をスリープ状態に置く。
【００２６】
本発明の幾つかの実施形態において、接続の持続性を維持するために、持続的な通知サービスの接続（例えば、プッシュ型通知サービス１１０及び１２０）が定期的にリフレッシュされる。例えば、モバイルデバイス１６０がその接続をアクティブに使用しない場合は、プッシュ型通知サービス１１０及び１２０は、モバイルデバイス１６０との接続をタイムアウトさせることができる（したがって、そのユーザ向けのプッシュ型通知サービスが停止される）。このように、本発明の幾つかの実施形態において、モバイルデバイス１６０には、その持続的な接続を維持するために、プッシュ型通知サービス１１０及び１２０と通信することが要求される。例えば、モバイルデバイス１６０は、ある定期的な間隔でプッシュ型通知サービス１１０及び１２０に通知サービス接続メッセージを伝送して接続をリフレッシュする。通知サービス接続メッセージは、モバイルデバイス１６０がまだ接続されている（そしておそらくプッシュ型通知サービスから対象となるアイテムを引き続き受信することを望んでいる）ことを、プッシュ型通知サービス１１０及び１２０に通知する。プッシュ型通知の接続をリフレッシュすることにより、モバイルデバイスがサービスと接続されたままでいることを望んでいることが、プッシュ型通知サービスのサーバに通知されることが、理解されるべきである。更に、プッシュ型通知の接続をリフレッシュすることにより、プッシュ型通知サービスのサーバに至る経路上の各ネットワーク要素が、接続を維持すべく通知を受ける（さもなければ、例えば、ネットワーク要素は、その接続に関連するネットワークリソースをクリアする場合がある）。通知サービス接続メッセージは、ピングメッセージ又はその他のキープアライブメッセージであってよい。通知サービスは、通知サービス接続メッセージに応答してモバイルデバイス１６０に接続がアクティブであることを通知することができる。したがって、モバイルデバイス１６０が通知サービスから応答を受信しない場合は、モバイルデバイス１６０は通知サービスとのセッションを再確立することを求められる場合がある。本発明の幾つかの実施形態において、通知サービスからの対象となるアイテムの受信もまた、持続的な通知サービスの接続をリフレッシュすることが理解されるべきである。
【００２７】
通知サービス接続メッセージを伝送する間隔は、個々の通知サービス毎に異なってもよい。例えば、プッシュ型通知サービス１１０が、３０分間通信がない場合に接続のタイムアウトを発生させることができる一方で、プッシュ型通知サービス１２０は１５分間通信がない場合に接続のタイムアウトを発生させることができる。しかし、これらのタイムアウトの間隔は静的ではなく、様々なネットワーク状態によって動的に変化することができる。更に、通知サービスは、モバイルデバイスにタイムアウトの間隔が変更されたことを通知しない場合がある。このように、モバイルデバイス１６０は、（接続の再確立をする必要なく）接続を維持するために、既知のタイムアウト間隔内で通知サービス接続メッセージを伝送することができる。通知サービス接続メッセージを伝送して通知サービスの接続をリフレッシュし、維持するためには、モバイルデバイス１６０がアウェイク状態にある必要があることが理解されるであろう。
【００２８】
更に、本発明の幾つかの実施形態において、モバイルデバイス１６０は、ネットワークデータの接続性を維持するために、ネットワークデータアクセス要素１５０（例えば、キャリアのネットワーク内のＮＡＴルータ、ファイアウォール、又はネットワーク内のその他のネットワーク要素）との接続を定期的にリフレッシュする必要がある。例えば、データコンテキストはネットワークリソースを消費するので、ネットワークデータアクセス要素１５０は、データコンテキストがアクティブに使用されていない、及び／又は特定の時間使用されていない場合は、これを廃棄する（例えば、データコンテキストが除去され、そのデータコンテキストのネットワークリソースが再割り当てされる）場合がある。データコンテキストが廃棄された場合は、モバイルデバイス１６０は一切の通知サービスに接続されていないことが理解されるべきである。勿論、データコンテキストは、不活動期間以外の理由（例えば、モバイルデバイスの位置がネットワークの範囲外である場合、モバイルデバイス１６０がオフになっている場合など）で廃棄される場合があることもまた理解されるべきである。本発明のその他の実施形態において、データコンテキストはモバイルデバイス１６０によってリフレッシュされなくてもよい。通常、データコンテキストのタイムアウト間隔は、通知サービスのタイムアウト間隔よりも短い。データコンテキストがある場合、モバイルデバイス１６０によって通知サービスに伝送された通知サービス接続メッセージは、本質的に、ネットワークデータアクセス要素１５０との接続をリフレッシュする。
【００２９】
図２は、本発明の一実施形態に係る、モバイルデバイスが通知サービスの接続を確立し、通知サービス接続メッセージの伝送間隔をスケジュールする、例示的なフローを図示している。図１、図３Ａ、及び図４の例示的な実施形態を参照して、図２の動作を説明する。しかしながら、図２の動作は図１、図３Ａ、及び図４を参照して説明するもの以外の本発明の実施形態によって実行することができ、図１、図３Ａ、及び図４を参照して説明する実施形態は図２を参照して述べるものとは異なる動作を実行することができることが理解されるべきである。
【００３０】
ブロック２１０において、モバイルデバイス１６０がデータコンテキストを確立する。データコンテキストは、当該技術分野において既知の多くの方法によって確立することができる。フローはブロック２１０からブロック２２０へと移り、モバイルデバイス１６０が１つ以上の通知サービスの接続を確立する。例えば、図１を参照すると、モバイルデバイス１６０は、プッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０との接続を確立する。本発明の幾つかの実施形態において、これらの接続は、各々伝送制御プロトコル（ＴＣＰ）接続である。フローはブロック２２０からブロック２３０へと移る。
【００３１】
ブロック２３０において、モバイルデバイスが通知サービス接続メッセージの伝送間隔をスケジュールし、通知サービスの接続の各々についてデバイスのウェイクアップ時刻をスケジュールする。例えば、モバイルデバイス１６０は、プッシュ型通知サービス１１０について３０分の通知サービス接続メッセージの伝送間隔、プッシュ型通知サービス１２０について１５分の間隔、及びプル型通知サービス１３０について２５分の間隔をスケジュールすることができる。更に、モバイルデバイス１６０は、これらの伝送間隔と一致するウェイクアップ時刻をスケジュールすることができる。フローはブロック２３０からブロック２４０へと移る。
【００３２】
ブロック２４０において、モバイルデバイス１６０はスリープモードに入る。既に説明したように、モバイルデバイス１６０は、ある期間の不活動（例えば、３０分間の不活動）後、及び／又はユーザからのコマンドによる直接的な方法（例えば、ユーザがモバイルデバイス１６０に対してスリープモードに入るようにコマンドを発行することができる）を含む多くの様々な方法でスリープモードに入ることができる。フローはブロック２４０からブロック２５０へと移る。ブロック２５０において、例えば、通知サービスの接続を維持するために、モバイルデバイスのアプリケーションプロセッサがスリープ状態に置かれ、ネットワーク接続要素がアウェイク状態に保たれる。フローはブロック２５０からブロック２６０へと移り、アプリケーションプロセッサが通知サービス接続マネージャに従ってウェイクアップして通知サービス接続メッセージを伝送する。
【００３３】
図３Ａは、本発明の一実施形態に係る、通知サービスの接続を管理する例示的なモバイルデバイスによって使用されるフレームワークを図示している。例えば、モバイルデバイス１６０は、図３Ａに図示したフレームワークを使用してプッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０との接続を管理する。このフレームワークは、１つ以上の通知サービスクライアント３１０を含んでいる。例えば、図１を参照すると、合計３つの通知サービスクライアント３１０（例えば、プッシュ型通知サービス１１０のための通知サービスクライアント、プッシュ型通知サービス１２０のための通知サービスクライアント、及びプル型通知サービス１３０のための通知サービスクライアント）が存在することができる。各通知サービスクライアント３１０は、サービス接続マネージャ３２０及びネットワークスタック３３０に個別に連結している。例えば、本発明の一実施形態において、各通知サービスクライアントは独立したプロセスであり、他の通知サービスクライアントとメモリを共有せず、及び／又は他の通知サービスクライアントと通信しない。各通知サービスクライアントは、通知サービス接続マネージャ３２０に登録をする（３６０）。
【００３４】
通知サービス接続マネージャ３２０は、１つ以上のシステムレベルタイマー３５０、ネットワークスタック３３０、及びウェイクアップＩ／Ｏサブシステム３４０と連結している。サービス接続マネージャ３２０は、システムレベルタイマー３５０を使用して通知サービス接続メッセージの伝送間隔をスケジュールし、数字３７２で示すようにこれらのタイマーを監視する。更に、サービス接続マネージャ３２０は、Ｉ／Ｏサブシステム３４０を使用して、数字３７０で示すように、モバイルデバイスの通知サービス接続メッセージの伝送間隔に関連するウェイクアップをスケジュールし（例えば、ウェイクアップは通知サービス接続メッセージの伝送間隔の終了間近の時刻にスケジュールすることができる）、通知サービス接続メッセージの伝送ウィンドウを通知サービス接続メッセージの伝送間隔に関連付ける。サービス接続マネージャ３２０はまた、数字３６８で示すように、モバイルデバイスがスリープモードにある間、ネットワークスタック３３０をアライブ状態に保つ。
【００３５】
ネットワークスタック３３０は、ネットワーク接続要素（例えば、ＲＦ接続要素及び／又はＷｉＦｉ接続要素）のサポートを含む。ネットワークスタック３３０は、通知サービス（及びネットワーク中のその他のエンティティ）と通信するために使用される。数字３６６で示すように、ネットワークスタック３３０は、通知サービス接続マネージャ３２０にネットワークの状態を提供する。例えば、通知サービス接続マネージャ３２０は、サービス接続マネージャ３２０にネットワークの状態（例えば、ネットワーク輻輳、統計など）を通知する。更に、ネットワークスタック３３０は、ネットワークサービスから対象となるアイテムを受信し、これらを、数字３７６で示すように適切な通知サービスクライアント３１０に伝送する。更に、ネットワークスタック３３０は、通知サービスのうちの１つからの通信を受信した場合（例えば、通知サービス接続メッセージの伝送に対する応答を受信した場合）、これを通知サービスクライアント３２０に通知する。
【００３６】
本発明の一実施形態によれば、通知サービスの接続のタイマーの時限が経過すると、サービス接続マネージャ３２０が、通知サービス接続メッセージを伝送するように通知サービスクライアント３１０に命令し、また、リトライイベントが発生した場合（例えば、リトライイベントには切断された通知サービスの接続の再確立を含めることができる）は、数字３６４で示すように、通知サービスクライアント３１０にこれを通知する。数字３７４で示すように、通知サービスクライアント３１０は、ネットワークスタック３３０を使用して、通知サービス接続メッセージを送信する。更に、通知サービスクライアント３１０は、数字３６２で示すように、通知サービス接続メッセージの伝送間隔を調整するように、サービス接続マネージャ３２０に命令することができる。通知サービス接続メッセージの伝送間隔を調整することについては、図６を参照してより詳細に説明する。
【００３７】
図３Ｂは、本発明の一実施形態に係る図３Ａの通知サービス接続マネージャ３２０の分解図を図示したブロック図である。通知サービス接続マネージャ３２０は、通知サービス接続メッセージの伝送間隔スケジューラモジュール３２２、通知サービス接続メッセージの伝送間隔最適化モジュール３２３、通知サービス接続メッセージの伝送タイマー監視モジュール３２４、通知サービス接続メッセージのウェイクアップスケジューラモジュール３２５、通知サービス接続メッセージ発生モジュール３２６、及びスリープモード管理モジュール３２７を含んでいる。
【００３８】
本発明の一実施形態によれば、間隔スケジューラモジュール３２２は、通知サービス接続メッセージの伝送間隔をスケジュールする。更に、間隔スケジューラモジュールは、通知サービス接続メッセージの伝送ウィンドウをスケジュールされた通知サービス接続メッセージの伝送間隔に関連付ける。間隔スケジューラモジュール３２２は、通知サービス接続メッセージの伝送タイマー監視モジュール３２４に連結している。本発明の一実施形態において、タイマー監視モジュールは、通知サービス接続メッセージの伝送タイマーなどの１つ以上のシステムレベルタイマー３５０を監視する。間隔スケジューラモジュール３２２はまた、通知サービス接続メッセージのウェイクアップスケジューラモジュールにも連結している。本発明の一実施形態によれば、ウェイクアップスケジューラモジュール３２２は、通知サービス接続メッセージの伝送間隔に基づいてモバイルデバイスのウェイクアップをスケジュールする。
【００３９】
タイマー監視モジュール３２４は、通知サービス接続メッセージ発生モジュール３２６に連結している。本発明の一実施形態によれば、メッセージ発生モジュール３２６は、通知サービス接続メッセージを発行するように、通知サービスクライアント３１０にアラートする。間隔最適化モジュール３２３は、間隔スケジューラモジュール３２２と連結している。本発明の一実施形態によれば、間隔最適化モジュールは、通知サービス接続メッセージの伝送間隔を最適化するが、これについては図６を参照しながらより詳細に説明する。本発明の一実施形態において、スリープモードマネージャ３２７は、スリープモードにある間、ネットワークスタック３３０をアウェイク状態に保つ。
【００４０】
図４は、本発明の一実施形態に係る、通知サービスの接続を管理することを図示したフローチャートである。図３Ａ及び図５の例示的な実施形態を参照しながら、図４の動作を説明する。しかしながら、図４の動作は図３Ａ及び図５を参照して説明するもの以外の本発明の実施形態によって実行することができ、図３Ａ及び図５を参照して説明する実施形態は図４を参照して説明するものとは異なる動作を実行することができることが理解されるべきである。図５は、本発明の一実施形態に係る、オーバーラップする通知サービス接続メッセージの伝送ウィンドウに基づいて通知サービス接続メッセージの伝送を同期させるモバイルデバイスを図示した例示的な図表である。
【００４１】
本発明の一実施形態によれば、モバイルデバイス上の各通知サービスクライアントが、図４の動作を独立して実行する。ブロック４１０において、通知サービスクライアント（例えば、プッシュ型通知サービスクライアント又はプル型通知サービスクライアント）が、通知サービス接続マネージャに登録する。例えば、図３Ａ及び図５を参照すると、通知プッシュ型通知サービス１１０、１２０及び通知プル型通知サービス１３０（各々が通知サービスクライアント３１０である）は各々、通知サービス接続マネージャ３６０に独立して登録する。フローはブロック４１０からブロック４１２へと移る。
【００４２】
ブロック４１２において、モバイルデバイス１６０が、通知サービス毎に通知サービス接続メッセージの伝送間隔及びサービス接続メッセージの伝送間隔に関連するウェイクアップ時刻をスケジュールする。しかし、本明細書内で後述するように、モバイルデバイスの特定の通知サービス接続の実際のウェイクアップ時刻は、その他の通知サービス次第で異なる場合がある。本発明の一実施形態によれば、持続的な通知サービス（例えば、プッシュ型通知サービス）に関する初期のサービス接続メッセージの伝送間隔は、各持続的な通知サービスによって提供される通知サービスのタイムアウトの値に基づく。例えば、図５を参照すると、プッシュ型通知サービス１１０は３０分の通知サービスタイムアウト値を含んでおり（したがって、３０分間の期間内にプッシュ型通知サービス１１０との接続が使用されない場合、プッシュ型通知サービス１１０はその接続を解除することができる）、プッシュ型通知サービス１１０は１５分の通知サービスのタイムアウト値を含んでいる。本発明の理解を平易にするために、図５の中では、プッシュ型通知サービス１１０及び１２０のための通知サービス接続メッセージの伝送間隔をタイムアウト値と一致させている。例えば、通知サービス接続メッセージの伝送間隔は、プッシュ型通知サービス１１０に関しては３０分であり、プッシュ型通知サービス１２０に関しては１５分である。しかし、通知サービス接続メッセージの伝送間隔は、タイムアウト値と一致しない場合がある（例えば、間隔はタイムアウト値よりも短い場合がある）ことが理解されるべきである。
【００４３】
また、本発明の幾つかの実施形態において、通知サービス接続メッセージの伝送間隔は最適化することができ、かつ時間と共に変化することも理解されるべきであるが、これについては、図６を参照しながらより詳細に説明する。更に、本発明の理解を平易にするために、各通知サービスの接続に関するデフォルトのウェイクアップ時刻は、通知サービス接続メッセージの伝送間隔の終わりにスケジュールされている。また、図５の説明全体を通して、持続的な通知サービス（例えば、プッシュ型通知サービス１１０及び１２０）に送信される通知サービス接続メッセージに関しては、通知サービス接続メッセージの伝送を、「ハートビート」又はただ単に「ビート」と呼ぶこともある。
【００４４】
図４に戻って、モバイルデバイス１６０はまた、通知サービス接続メッセージの伝送ウィンドウをメッセージの伝送間隔と関連付け、メッセージの伝送間隔に関連する１つ以上のシステムタイマーを設定する。本発明の一実施形態によれば、通知サービス接続メッセージの伝送ウィンドウは、メッセージ伝送間隔の一部分であり、通知サービス接続メッセージを伝送できる部分である。例えば、ウィンドウ内の任意の時点でモバイルデバイスがアウェイク状態である場合、モバイルデバイスは通知サービス接続メッセージを伝送することができる。図５において、通知サービス接続メッセージの伝送ウィンドウは、通知サービス接続メッセージの伝送ウィンドウのおよそ３分の１である。例えば、プッシュ型通知サービス１１０の通知サービス接続メッセージの伝送ウィンドウは、スケジュールされたビートメッセージの伝送の１０分前（例えば、スケジュールされたビートの１０分前）であり、プッシュ型通知サービス１２０の通知サービス接続メッセージの伝送ウィンドウは、スケジュールされたビートの５分前であり、プル型通知サービス１３０の通知サービス接続メッセージの伝送ウィンドウは、スケジュールされたプルの８分前である。図５は、通知プッシュ型通知サービス１１０及び１２０並びに通知プル型通知サービス１３０が同時に（例えば、時刻０の時点で）開始するように図示されているものの、これは例示を目的とするものであり、これらの通知サービスは異なる時刻に開始することができることが理解されるべきである。図５を参照すると、プッシュ型通知サービス１１０は３０分の時点に初期にスケジュールされたハートビート及びウェイクアップ時刻を有しており、プッシュ型通知サービス１２０は１５分の時点に初期にスケジュールされたハートビート及びウェイクアップ時刻を有しており、プル型通知サービス１３０は２５分の時点に初期にスケジュールされたプル型メッセージ及びウェイクアップ時刻を有している。
【００４５】
図４を参照して、フローはブロック４１２からブロック４１４へと移り、モバイルデバイスがサービス接続メッセージタイマー（例えば、各サービスの接続に関連するシステムレベルタイマー）を監視し、フローはブロック４１６へと移る。例えば、図５を参照すると、モバイルデバイスは、プッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０のタイマーを監視する。図５では、時刻５の時点で、モバイルデバイスがスリープモード５１０に入る。このように、本発明の一実施形態によれば、アプリケーションプロセッサ及びアプリケーションプロセッサのオペレーティングシステムはオフラインでありながら、ネットワーク接続要素はアウェイク状態に留まる。
【００４６】
ブロック４１６において、モバイルデバイスは、時刻が通知サービス接続メッセージの伝送ウィンドウ内であるか否かを判定する。時刻が通知サービス接続メッセージの伝送ウィンドウ内ではない場合、フローはブロック４１８へと移り、グローバル通知サービス接続メッセージのタイマーが終了したか否かが判定される。グローバル通知サービス接続メッセージのタイマーについては、本明細書内でより詳細に後述する。時刻が通知サービス接続メッセージの伝送ウィンドウ内である場合、フローはブロック４２０へと移り、モバイルデバイスがアウェイク状態にあるか否かが判定される。デバイスがアウェイク状態にある場合、フローはブロック４３０へと移り、モバイルデバイスが通知サービス接続メッセージを伝送する。モバイルデバイスがアウェイク状態にない場合（即ち、スリープモードにある場合）、フローはブロック４２２へと移り、通知サービス接続メッセージの伝送タイマーの時限が経過したか否かが判定される。例えば、図５を参照すると、プッシュ型通知サービス１２０は時刻１０の時点から始まるウィンドウ５４０の範囲内であり、モバイルデバイス１６０はアウェイク状態にない（スリープモードにある）。タイマーの時限が経過していない場合、フローはブロック４２０へと戻る。タイマーの時限が経過している場合、フローはブロック４２４へと移り、モバイルデバイスがウェイクアップし、フローはブロック４３０へと移って、モバイルデバイスが通知サービス接続メッセージを伝送する。
【００４７】
図５を参照すると、プッシュ型通知サービス１２０に関連する通知サービス接続メッセージの伝送タイマーは、時刻１５の時点で時限が経過する。したがって、モバイルデバイス１６０は時刻１５の時点でウェイクアップし（破線ウェイクアップ５６０によって表される）、通知サービスの接続をリフレッシュするために通知サービス接続メッセージがプッシュ型通知サービス１２０に伝送される（ビート５７０によって表される）。ウェイクアップ時刻５６０の時点で、モバイルデバイス１６０は、プッシュ型通知サービス１１０又はプル型通知サービス１３０には通知サービス接続メッセージを伝送しないことが理解されるべきである。例えば、プッシュ型通知サービス１１０は、３０分のビート間隔を有する。したがって、プッシュ型通知サービス１１０との接続をリフレッシュするために、ビートは最大３０分までに伝送すればよい（即ち、接続は、３０分毎にリフレッシュするだけでよい）。仮に１５分のビート間隔を有するプッシュ型通知サービス１２０にビートが伝送される度毎にモバイルデバイス１１０がビートをプッシュ型通知サービス１１０に伝送したとすると、事実上、必要な数の２倍のビートメッセージが伝送されることとなる。このように、本発明の一実施形態によれば、特定の通知サービスの通知サービス接続メッセージの伝送ウィンドウの期間中にモバイルデバイスがアウェイク状態にある場合にのみ、モバイルデバイスがその特定の通知サービスに通知サービス接続メッセージを伝送する。ウェイクアップ５６０はプッシュ型通知サービス１１０又はプル型通知サービス１３０の通知サービス接続メッセージの伝送ウィンドウとオーバーラップしないので、帯域幅を節約するために、モバイルデバイスはこれらの通知サービス向けの通知サービス接続メッセージを伝送しない。
【００４８】
本発明の一実施形態によれば、モバイルデバイスは、特定の通知サービスに通知サービス接続メッセージを伝送すると同時に、その特定の通知サービスに関連する通知メッセージ伝送タイマーをリセットする。例えば、モバイルデバイス１６０は、ビートメッセージ５７０を伝送すると同時にプッシュ型通知サービス１２０向けの通知サービス接続メッセージの伝送タイマーをリセットする。
【００４９】
時刻１６の時点で、デバイスはスリープモード５１２に入る。換言すれば、モバイルデバイス１６０は通知プッシュ型通知サービス１２０との通知サービスの接続をリフレッシュするために特にウェイクアップしたのであって、デバイスは電池リソースを節約するために再度スリープモードに入る。時刻２５の時点で、プル型通知サービス１３０に関連する通知サービス接続メッセージの伝送タイマーの時限が経過する（例えば、その時限はウィンドウ５４２の終わりである）。したがって、モバイルデバイス１６０は時刻２５の時点でウェイクアップし（破線ウェイクアップ５６２によって表される）、対象となるアイテムをチェックするために通知サービス接続メッセージがプル型通知サービス１３０に伝送される（チェック５７６によって表される）。更に、プッシュ型通知サービス１１０のウィンドウ５４４がウェイクアップ５６２の時刻とオーバーラップし（ウィンドウ５４４は時刻２０の時点で始まり、時刻３０の時点で終わる）、プッシュ型通知サービス１２０のウィンドウ５４６がウェイクアップ５６２の時刻とオーバーラップする（ウィンドウ５４６は時刻２５の時点で始まり、時刻３０の時点で終わる）ので、モバイルデバイス１６０は、プッシュ型通知サービス１１０に通知サービス接続メッセージを伝送し（ビート５７２によって表される）、プッシュ型通知サービス１２０に通知サービス接続メッセージを伝送する（ビート５７４によって表される）。このように、モバイルデバイス１６０は、ウェイクアップ５６２の間にプッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０の各々に通知サービス接続メッセージを伝送する。
【００５０】
本発明の一実施形態によれば、モバイルデバイス１６０がプッシュ型通知サービス１１０、プッシュ型通知サービス１２０、及びプル型通知サービス１３０に通知サービス接続メッセージを送信したので、モバイルデバイス１６０は、各通知サービスの通知サービス接続メッセージの伝送タイマーをリセットし、通知サービス接続メッセージの伝送時刻及びウェイクアップ時刻をスケジュールし直す。例えば、プッシュ型通知サービス１１０には時刻２５の時点で通知サービス接続メッセージが伝送されたので、プッシュ型通知サービス１１０が時刻６０の時点にスケジュールされている通知サービス接続メッセージの伝送時刻を有する代わりに、モバイルデバイス１６０は、通知サービス接続メッセージの伝送を時刻５５の時点にスケジュールする。別の例として、プッシュ型通知サービス１２０には時刻２５の時点で通知サービス接続メッセージが伝送されたので、プッシュ型通知サービス１２０が時刻４５の時点にスケジュールされている通知サービス接続メッセージの伝送時刻を有する代わりに、モバイルデバイス１６０は、通知サービス接続メッセージの伝送を時刻４０の時点にスケジュールする。時刻２６の時点で、モバイルデバイス１６０がスリープモード５１４に入る。
【００５１】
一実施形態において、オーバーラップする通知サービス接続メッセージの伝送ウィンドウに基づいて通知サービス接続メッセージの伝送を同期させることにより、電池リソースが節約されることが理解されるべきである。例えば、同じウェイクアップ期間中に複数の通知サービス向けの通知サービス接続メッセージの伝送を統合することによって電池リソースが節約される。例えば、モバイルデバイスをウェイクアップさせると、かなりの量の電池リソースが使用される。更に、デバイスをウェイクアップさせるときには、通知サービス接続メッセージの伝送よりも大きな電池リソースを使用する。したがって、同じウェイクアップ期間中に複数の通知サービスに通知サービス接続メッセージを送信することによって、電池リソースが節約される（例えば、モバイルデバイスは、各通知サービス接続メッセージの伝送毎に独立してスリープモードからウェイクアップすることがない）。このように、本発明の幾つかの実施形態において、オーバーラップする通知サービス接続メッセージの伝送ウィンドウに基づいて通知サービス接続メッセージの伝送を同期させることにより、モバイルデバイスがウェイクアップしなければならない回数が減少し、その結果、電力消費量が低減する。通知サービスクライアントの数が増えるほど電池リソースの節約量も増加することが理解されるべきである。
【００５２】
更に、通知サービス接続メッセージの伝送は必ずしもこれらのスケジュールされた伝送時刻に実行されない（例えば、通知サービス接続メッセージは、スケジュールされたこれらの伝送時刻よりも前に送信することができる）ものの、スケジュールされた伝送時刻からの逸脱は小さい（例えば、通知サービス接続メッセージの伝送ウィンドウは通常、通知サービス接続メッセージの伝送間隔の約３分の１である）。このように、本発明の実施形態は、通知サービス接続メッセージをそれらのスケジュールされた伝送時刻の近辺で伝送することにより、帯域幅を節約する。
【００５３】
時刻４０の時点で、プッシュ型通知サービス１２０に関連する通知サービス接続メッセージの伝送タイマーの時限が経過する（例えば、その時限はウィンドウ５４８の終わりである）。したがって、モバイルデバイス１６０は時刻４０の時点でウェイクアップし（破線ウェイクアップ５６４によって表される）、プッシュ型通知サービス１２０の接続をリフレッシュするために通知サービス接続メッセージがプッシュ型通知サービス１２０に伝送される。ウェイクアップ５６４はプッシュ型通知サービス１１０又はプル型通知サービス１３０の通知サービス接続メッセージの伝送ウィンドウとオーバーラップしないので、帯域幅を節約するために、モバイルデバイスはこれらの通知サービスに通知サービス接続メッセージを伝送しない。時刻４１の時点で、モバイルデバイス１６０がスリープモード５１６に入る。
【００５４】
時刻４７の時点で、モバイルデバイス１６０は、独立したイベントによってスリープモード５１６からウェイクアップする（独立したウェイクアップ５６６によって表される）。独立したウェイクアップには、ユーザとの相互作用（例えば、ユーザがスリープモードをディスエーブルする）、対象となるアイテムの受信（例えば、プッシュ型通知サービス１１０からの電子メールのメッセージの受信）、通話及び／又はテキストメッセージの受信などを含む、多くの原因を挙げることができる。モバイルデバイスは、ウェイクアップ後、その時刻がいずれかの通知サービス接続メッセージの伝送ウィンドウ内であるか否かを判定する。例えば、時刻４７は、プッシュ型通知サービス１１０のウィンドウ５５２（これは時刻４５の時点に始まり、時刻５５の時点に終わる）の範囲内であり、プル型通知サービス１３０のウィンドウ５５０（これは時刻４２の時点に始まり、時刻５０の時点に終わる）の範囲内である。モバイルデバイスがアウェイク状態にあり、かつ通知サービス接続メッセージの伝送ウィンドウ内にあるという事実を活用して、モバイルデバイスはプッシュ型通知サービス１１０に通知サービス接続メッセージを伝送して（ビート５８２によって表される）プッシュ型通知サービスの接続１１０をリフレッシュし、かつプル型通知サービス１３０に通知サービス接続メッセージを送信して（チェック５８０によって表される）対象となるアイテムをチェックする。更に、簡潔性のために図５には図示していないものの、モバイルデバイス１６０は通知サービス接続メッセージの伝送タイマーをリセットし、プッシュ型通知サービス１１０及びプル型通知サービス１３０の通知サービス接続メッセージの伝送時刻及びウェイクアップをスケジュールし直す。時刻４９の時点で、モバイルデバイスがスリープモード５１８に入る。
【００５５】
時刻５５の時点で、プッシュ型通知サービス１２０に関連する通知サービス接続メッセージの伝送タイマーの時限が経過する（例えば、その時限はウィンドウ５５４の終わりである）。したがって、モバイルデバイス１６０は時刻５５の時点でスリープモード５１８からウェイクアップし（破線ウェイクアップ５６８によって表される）、プッシュ型通知サービス１２０の接続をリフレッシュするために通知サービス接続メッセージがプッシュ型通知サービス１２０に伝送される（ビート５８４によって表される）。プッシュ型通知サービス１１０のウィンドウ５５２は、本来、ウェイクアップ５６８とオーバーラップするところであったものが、時刻４７の時点でビート５８２が伝送され、通知サービス接続メッセージタイマーがリセットされ、通知サービス接続メッセージの伝送時刻がスケジュールし直されたため、モバイルデバイス１６０はプッシュ型通知サービス１１０に通知サービス接続メッセージを伝送しない点に注目すべきである。
【００５６】
図４を参照すると、前述のように、ブロック４１８において、グローバル通知サービス接続メッセージタイマーの時限が経過したか否かが判定される。本発明の一実施形態によれば、モバイルデバイスは、定期的な間隔で（例えば、１日に４回）ほぼ同時期に（例えば、互いに１分以内に）各通知サービスに通知サービス接続メッセージを伝送する。グローバル通知サービス接続メッセージのタイマーの時限が経過した場合、フローはブロック４２６へと移り、モバイルデバイスがアウェイク状態にあるか否かが判定される。モバイルデバイスがアウェイク状態にある場合、フローはブロック４３０へと移り、モバイルデバイスが各通知サービスに通知サービス接続メッセージを伝送する。モバイルデバイスがアウェイク状態にない場合、フローはブロック４２８へと移り、モバイルデバイスがウェイクアップし、フローはブロック４３０へと移ってモバイルデバイスが各通知サービスに通知サービス接続メッセージを伝送する。
【００５７】
複数のモバイルデバイスが同一のネットワークを通じて同一の通知サービスにアクセスしている可能性があるので（例えば、図１を参照すると、本発明の一実施形態によれば、モバイルデバイス１６０及びモバイルデバイス１７０は、同一のネットワークデータアクセス要素１５０と少なくとも部分的に連結している）、グローバル通知サービス接続メッセージのタイマーは、全てのモバイルデバイスが通知サービス接続メッセージを同時に伝送しないように設定されている。本発明の一実施形態によれば、これらの通知サービス接続メッセージの伝送タイマーは、暗号によってランダム化されている（したがって、１日中に亘って分散されている）。例えば、各モバイルデバイスの一意識別子（例えば、ユニバーサル一意識別子（ＵＵＩＤ）、メディアアクセス制御アドレス（ＭＡＣ）など）の所与の時間間隔に対する剰余を求め、これらグローバル通知サービス接続メッセージの伝送時刻が決定される。
【００５８】
前述のように、本発明の幾つかの実施形態において、持続的な通知サービス（例えば、プッシュ型通知サービス）の通知サービス接続メッセージの伝送間隔を最適化することができる。換言すれば、本発明の幾つかの実施形態において、持続的な通知サービスへの接続を維持しながら、持続的な通知サービス向けに最も少ない数の通知サービス接続メッセージを伝送するために、メッセージ伝送間隔が最適化される。図６は、本発明の一実施形態に係る、通知サービス接続メッセージの間隔を最適化することを図示した例示的な状態図である。ブロック６１０において、初期の通知サービス接続メッセージの伝送間隔が決定される。例えば、初期の通知サービス接続メッセージの伝送間隔は、特定の通知サービスのタイムアウトの間隔に基づくことができる。接続がアクティブであるとモバイルデバイスが判定した場合、メッセージ伝送間隔はＮ量（例えば５分）だけ増加する（６１２）。例えば、通知サービスから応答メッセージが受信された場合、接続はアクティブであると判定できる。
【００５９】
接続がアクティブではないとモバイルデバイスが判定した場合、メッセージ伝送間隔はＹ量（例えば、５分）だけ減少し（６１４）、改良した通知サービス接続メッセージの伝送間隔に入る（６１６）。接続がアクティブであるとモバイルデバイスが判定した場合、メッセージ伝送間隔はＮよりも小さなＭ量（例えば、２分）だけ増加する（６１８）。接続がアクティブではないとモバイルデバイスが判定した場合、メッセージ伝送間隔はＹよりも小さなＸ量だけ減少する（６２０）。
【００６０】
ある時間経過後、接続メッセージの伝送間隔は、安定した通知サービス接続メッセージの伝送間隔の状態に入る（６２２）。この状態にあるときに接続がアクティブであれば、間隔の値は現行の値に留まる（６２４）。本発明の幾つかの実施形態において、状態６２２でＺ量の時間が経過後（例えば、８時間後）、接続メッセージの伝送間隔は、初期の通知サービス接続メッセージの伝送間隔（６１０）にリセットされ（６２３）、間隔の最適化のプロセスが再開される。このように、通知サービス接続メッセージの伝送間隔が比較的高頻度のメッセージ伝送間隔（例えば、５分毎のメッセージ）に定着した場合、ある時間経過後、最適な伝送間隔を決定するために、最適化プロセスが再開される。しかし、接続がアクティブではない場合、間隔は減少し（例えば、半減）し（６２６）、間隔は、通知サービス接続バックオフメッセージの伝送間隔に入る（６２８）。バックオフ状態にあるときに接続がアクティブではない場合、間隔は減少（例えば、半減）する（６３０）。
【００６１】
通知サービスの接続がアクティブではない場合、接続を再確立する必要があることが理解されるべきである。本発明の一実施形態によれば、ウェイクアップの間隔に従って通知サービスの接続のリトライがスケジュールされる。例えば、図５を参照すると、本発明の一実施形態において、ビート５７２が時刻２５の時点でプッシュ型通知サービス１１０との接続のリフレッシュに失敗した場合、モバイルデバイスは次のウェイクアップで通知サービスの接続の再確立を図る。このように、モバイルデバイスは、時刻４０の時点のウェイクアップ５６４の間に、プッシュ型通知サービス１１０との通知サービスの接続を再確立することを図ることができる。
【００６２】
プロキシベースの通知サービス
上述のように、通知サービスは、モバイルクライアントの電池寿命を犠牲にして最新情報を取得する機会をユーザに提供する。更に、ユーザはまた、プロトコルオーバーヘッドに関連したデータに対して支払いをする必要があるかもしれず、ユーザが無制限データプランを有していない場合、これは些細なこととは言えないかもしれない。実際にユーザデータの活動が有る無しに拘わらず、モバイルクライアントは、定期的に通知サービス接続メッセージを送ってデータリンクを維持する必要がある。その結果、モバイルクライアントはスリープ状態から定期的にウェイクアップして通知サービス接続メッセージを送信する必要があり、加えて、サーバからの応答もまたモバイルデバイスをウェイクアップさせ、したがって、電池残量をより多く消費する。ユーザが積極的なプッシュ間隔を選択したとき、又はユーザが複数のプッシュ型サービスに登録したときは、電池の電力消費量が増加する。
【００６３】
例えば、マイクロソフトエクスチェンジのサーバの場合、一般的なハートビート間隔は８〜２８分の範囲である。８分間隔では、たとえユーザがデータを何も受信しなくても、モバイルデバイスは通知サービス接続メッセージを送信するために１日に最大１８０回ウェイクアップする必要があり、更にまた、サーバからの応答はサーバの設定によって、通常１間隔分遅延するので、これに対応するサーバからの応答を処理するために、１日にあと約１８０回ウェイクアップする必要がある。ユーザが複数のプッシュ型サービスに登録した場合、又はユーザが積極的なプッシュ間隔を選択した場合は、状況は更に悪化することとなる。更に、データサービスに対してバイト単位で支払いを行うユーザにとっては、プッシュ型通知サービス接続メッセージもまたユーザに費用を生じさせるかもしれない。平均ペイロードがパケット当たり２００バイトで間隔が８分であると仮定すると、オーバーヘッドは月当たり約２ＭＢである。そしてこの数字は、ユーザが登録しているプッシュ型サービスの数と共に線形的に増加する。
【００６４】
一実施形態において、モバイルクライアントの電池寿命に対する需要及び通知に関連する追加的なデータの費用を緩和するために、プロキシが使用される。この実施形態において、このプロキシを使用してモバイルクライアント向けの通知サービスを管理する。プロキシは、モバイルクライアント向けの１つ以上のサービスを管理することができ、及び／又は１つ以上のクライアント向けの通知サービスを処理することができる。通知サービスの接続を管理するために、プロキシはモバイルクライアントからモバイルクライアント向けのプロキシへの１つ以上の通知サービスに関する要求を受信し、対応する通知サーバに通知サービス接続メッセージを定期的に送信し、モバイルクライアントからの通知を転送し、モバイルクライアントからの更新を処理し、モバイルクライアントのサインアウトの要求を処理する。
【００６５】
一実施形態において、プロキシは、パーソナルコンピュータ、ラップトップ、サーバ、モバイルクライアントなどの独立型デバイスである。例えば、一実施形態において、プロキシは、別個の電源及び必要に応じて低コストのデータ接続を伴う独立型デバイスである。別の実施形態では、プロキシは、モバイルクライアントの一部である。この実施形態では、モバイルクライアントは、第１のオペレーティングシステムを実行するアプリケーションプロセッサ、及び１つ以上の異なるオペレーティングシステムを実行する１つ以上のネットワーク接続要素を含んでいる。更に、アプリケーションプロセッサの電力消費量は、ネットワーク接続要素の電力消費量よりも大きくてもよい。更に、１つ以上のネットワーク接続要素が、これらネットワーク接続要素のそれぞれのオペレーティングシステム内でプロキシを遂行する。ネットワーク接続要素内でプロキシを遂行することにより、アプリケーションプロセッサはスリープモードに入り、モバイルクライアントの電池寿命を節約することができる。
【００６６】
図９Ａは、本発明の一実施形態に係る、独立型プロキシを含む例示的なコンピューティング環境９００を図示している。コンピューティング環境９００は上述の図１のコンピューティング環境１００と類似しており、コンピューティング環境９００は、各々が１つ以上のネットワークデータアクセス要素１５０と連結しているモバイルデバイス９０４及び１７０を含んでいる。図１の場合と同様に、ネットワークデータアクセス要素１５０は、セルラーネットワーク（例えば、ＧＳＭ、ＥＤＧＥ、ＧＰＲＳ、ＣＤＭＡ、ＵＭＴＳ、ＴＤ−ＣＤＭＡ、ＬＴＥ、若しくはその他のセルラーネットワーク）、ＬＡＮなどをはじめ、本発明のいろいろな実施形態の中の様々な種類のネットワークの一部であることができる。しかしながら、コンピューティング環境１００とは異なり、コンピューティング環境９００では、モバイルデバイス９０４は、プロキシ９０２を使用してモバイルデバイス９０４に代わってサービスの接続を管理させる。一実施形態において、プロキシ９０２は、プロキシ９０２があたかも、その機能を実行しているモバイルクライアント９０４であるかのように、通知サービス接続メッセージを伝送し、応答を受信する。プロキシ９０２については、以下に更に説明する。
【００６７】
図１について上述したように、モバイルデバイス９０４は、アプリケーションプロセッサ１６２及びネットワーク接続要素１６４を含んでいる。モバイルデバイス１６０は、ネットワーク接続要素１６４及びプロキシ９０２を介して、データコンテキスト（例えば、ＰＤＰコンテキスト）を通じてネットワークデータアクセス要素１５０と通信する。更に、ネットワークデータアクセス要素１５０にはＷＡＮ  １４０が連結している。プッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０が、ＷＡＮ  １４０と連結している。本発明の一実施形態によれば、モバイルデバイス９０２のユーザは、プロキシ９０４を介して、プッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０にアクセスし、これらを使用する（プッシュ型通知サービス１１０及び１２０並びにプル型通知サービス１３０が、ユーザの対象となるアイテムを提供する）。例えば、プッシュ型通知サービス１１０がモバイルデバイス９０２のユーザ向けにプロキシ９０４を介して個人用プッシュ型電子メールアカウントを提供しているかもしれない一方で、プッシュ型通知サービス１２０はモバイルデバイス１６０のユーザ向けに業務用プッシュ型電子メールアカウントを提供しているかもしれない。
【００６８】
本発明の一実施形態において、アプリケーションプロセッサ１６２は、モバイルデバイス９０２の中央処理装置である。一実施形態において、図１について説明したように、アプリケーションプロセッサ１６２は、モバイルデバイス９０２のオペレーティングシステムを処理する。
【００６９】
本発明の一実施形態によれば、モバイルクライアント１６０について図１で説明したように、モバイルデバイス９０２は、スリープモードに入ることができる。更に、モバイルクライアント９０４は、プロキシ９０２を使用することにより、プロキシがモバイル９０４のサービスの接続を管理する間もスリープモードにあることができる。本発明の一実施形態によれば、スリープモードにある間、モバイルデバイス９０２は、アプリケーションプロセッサ１６２を一時的にディスエーブルする（アプリケーションプロセッサ１６２は、一時的にディスエーブルされているときには実質上、電力を消費しないでいることができる）。
【００７０】
図１について説明したように、本発明の幾つかの実施形態において、接続の持続性を維持するために、持続的な通知サービスの接続（例えば、プッシュ型通知サービス１１０及び１２０）が定期的にリフレッシュされる。図１について説明したように、モバイルクライアントが持続的な通知サービスの接続を定期的にリフレッシュする代わりに、モバイルクライアントに代わってプロキシ９０２がこれら持続的な通知サービスの接続をリフレッシュする。例えば、モバイルデバイス９０４がその接続をアクティブに使用しない場合は、プッシュ型通知サービス１１０及び１２０は、モバイルデバイス９０４との接続をタイムアウトさせることができる（したがって、そのユーザ向けのプッシュ型通知サービスが停止される）。しかし、この実施形態では、プロキシ９０２は、モバイルクライアント９０４に代わってこの接続をアクティブに使用する。一実施形態において、プロキシ９０２は、モバイルクライアント９０４に代わって、ある定期的な間隔でプッシュ型通知サービス１１０及び１２０に通知サービス接続メッセージを伝送して接続をリフレッシュする。プロキシ９０２がモバイルクライアント９０４に代わって通知サービスの接続を管理する間、モバイルクライアント９０４はスリープモードに入ることができるので、モバイルクライアント９０４の電池残量が節約される。通知サービス接続メッセージが、プロキシ９０２がまだ接続されている（そしておそらくプッシュ型通知サービスから対象となるアイテムを引き続き受信することを望んでいる）ことを、プッシュ型通知サービス１１０及び１２０に通知する。プロキシ９０２がプッシュ型通知の接続をリフレッシュすることにより、モバイルデバイスがサービスと接続されたままでいることを望んでいるとの通知を、プッシュ型通知サービスのサーバが受けることが、理解されるべきである。更に、プッシュ型通知の接続をリフレッシュすることにより、プッシュ型通知サービスのサーバに至る経路上の各ネットワーク要素が、接続を維持するように通知を受ける（さもなければ、例えば、ネットワーク要素は、その接続に関連するネットワークリソースをクリアすることができる）。一実施形態において、通知サービス接続メッセージは、ピングメッセージ、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求、又は当該技術分野において既知のその他のキープアライブメッセージであってもよい。通知サービスは、通知サービス接続メッセージに応答してモバイルデバイス９０２向けの接続がアクティブであることをプロキシ９０２に通知することができる。本発明の幾つかの実施形態において、通知サービスからの対象となるアイテムの受信もまた、持続的な通知サービスの接続をリフレッシュすることが理解されるべきである。
【００７１】
上述のように、通知サービス接続メッセージを伝送する間隔は、個々の通知サービス毎に異なってもよい。更に、本発明の幾つかの実施形態において、モバイルデバイス９０４は、ネットワークデータの接続性（例えば、キャリアのネットワーク内のＮＡＴルータ、ファイアウォール、又はネットワーク内のその他のネットワーク要素）を維持するために、ネットワークデータアクセス要素１５０との接続を定期的にリフレッシュする必要がある。この実施形態では、モバイルクライアント９０４に代わって通知サービスの接続を管理することによって、プロキシ９０２は、これらネットワークデータアクセス要素１５０の接続をリフレッシュする。
【００７２】
一実施形態において、プロキシ９０２は、通知サービス及びモバイルクライアントの更新を管理する。例えば、一実施形態において、プロキシ９０２は、モバイルクライアント９０４からサービス接続要求を受信し、これらサービス接続要求をそれぞれのサービスプロバイダ（例えば、プッシュ型通知サービス１１０及び１２０）に転送する。更に、プロキシ９０２は、モバイルクライアント９０４に代わってサービスの接続を管理する。例えば、一実施形態において、プロキシ９０２は、モバイルクライアント９０４に代わって、プッシュ型通知サービス１１０及び１２０に通知サービス接続メッセージを伝送して接続をリフレッシュする。上述のように、この通知サービス接続メッセージは、ピングメッセージ、ＨＴＴＰ要求、又は当該技術分野において既知のその他何らかのキープアライブメッセージであってもよい。
【００７３】
プロキシ９０２が通知メッセージを受信した場合（通知サービス接続メッセージに応答してであれ、通知サーバのうちの１つによってプロキシにプッシュされたのであれ、あるいはそれ以外の理由であれ）、プロキシ９０２は、モバイルクライアント９０４のアプリケーションプロセッサ１６２にこの通知メッセージを転送することができ、又はこの通知メッセージをその他の通知メッセージとバンドルして、後ほどバンドルしたメッセージを送信するように、この通知メッセージを保持しておくことができる。更に、プロキシ９０２は、サインイン／サインアウト要求、アドレス変更などのようなモバイルクライアント９０４からの更新も管理する。一実施形態において、プロキシ９０２は、モバイルクライアント９０４のアプリケーションプロセッサ１６２から受信した更新を管理する。プロキシの機能については、以下に図１０〜図１３で更に説明する。
【００７４】
上述のように、プロキシは、プロキシ９０２のように独立型のデバイスであることもでき、又はモバイルクライアント内に組み込むこともできる。図９Ｂは、本発明の一実施形態に係る、モバイルクライアント９５４内に組み込まれたプロキシ９５２を含む例示的なコンピューティング環境９５０を図示している。図９Ｂでは、プロキシ９５２がモバイルクライアント９５４の一部として組み込まれている。一実施形態において、プロキシ９５２は、ネットワーク接続要素９５６の一部である。この実施形態では、プロキシ９５２はネットワーク接続要素９５６のオペレーティングシステムの下で実行され、このことが、モバイルクライアント９５４の電力消費量を節約するように、アプリケーションプロセッサが低電力モード又は「スリープモード」に入ることを可能にしている。例えば、一実施形態において、プロキシ９０２は、３Ｇセルラーネットワーク接続を動作させるために使用される３Ｇセルラーネットワーク接続要素のオペレーティングシステムの下で実行される。この例では、このネットワーク接続要素のオペレーティングシステムは、ソフトウェア、ファームウェア、ハードウェアなどであることができる。
【００７５】
一実施形態において、プロキシは、ネットワーク接続要素９５６のベースバンドプロセッサの動作環境の一部であることができ、このことが、モバイルクライアント９５４がアプリケーションプロセッサ１６２をウェイクアップさせることを回避し、電池を節約することを可能としている。この実施形態では、プロキシ９５２が通知サービスに関連するプロトコルオーバーヘッドの大半を引き受け、データが利用可能なときにはモバイルクライアント９５４のアプリケーションプロセッサ１６２が通知を受ける。
【００７６】
一実施形態において、プロキシ９５２は、図９Ａで上述したプロキシ９０２と同様の機能を実行する。例えば、一実施形態において、プロキシ９５２は、アプリケーションプロセッサ１６２からサービス接続要求を受信し、これらサービス接続要求をそれぞれのサービスプロバイダに転送する（例えば、プッシュ型通知サービス１１０及び１２０など）。更に、プロキシ９５２は、モバイルクライアント９５４に代わってサービスの接続を管理する。例えば、一実施形態において、プロキシ９５２は、モバイルクライアント９５４に代わって、プッシュ型通知サービス１１０及び１２０に通知サービス接続メッセージを送信して接続をリフレッシュする。上述のように、この通知サービス接続メッセージは、ピングメッセージ、ＨＴＴＰ要求、又は当該技術分野において既知のその他何らかのキープアライブメッセージであってもよい。
【００７７】
プロキシ９５２が通知メッセージを受信した場合（通知サービス接続メッセージに応答してであれ、通知サーバのうちの１つによってプロキシにプッシュされたのであれ、あるいはそれ以外の理由であれ）、プロキシ９５２は、モバイルクライアント９５４のアプリケーションプロセッサ１６２にこの通知メッセージを転送することができ、又はこの通知メッセージをその他の通知メッセージとバンドルして、後ほどバンドルしたメッセージを送信するように、この通知メッセージを保持しておくことができる。更に、プロキシ９５２は、サインイン／サインアウト要求、アドレス変更などのようなモバイルクライアント９５４からの更新も管理する。一実施形態において、プロキシ９５２は、モバイルクライアント９５４のアプリケーションプロセッサ１６２から受信した更新を管理する。プロキシの機能については、以下に図１０〜図１３で更に説明する。
【００７８】
図１０は、本発明の一実施形態に係る、クライアントとサーバとの間のサービスの接続を代行するプロキシのブロック図である。図１０において、クライアント１００２がプロキシ１００４と通信し、プロキシ１００４がサーバ１００６と通信する。一実施形態において、クライアント１００２は、上述のモバイルクライアント９０４又は９５４であることができる。別の実施形態では、プロキシ１００４は、上述のプロキシ９０２又は９５２であることができる。更なる実施形態において、サーバは、上述のプッシュ型通知サービス１１０又は１２０のうちの１つである。
【００７９】
図１０では、クライアント１００２がプロキシ１００４にサインイン要求（１００８Ａ）を伝送する。一実施形態において、クライアント１００２のユーザがプッシュ型サービスをオンにしたとき、又はクライアントが起動したとき（例えば、デバイスの電源がオンになった）ときに、クライアント１００２がサインイン要求を送信する。一実施形態において、サインイン要求は、プロキシを確立するために使用できる情報（例えば、クライアント識別子、クライアントＩＰアドレス、サーバＩＰアドレス、トランザクション識別子、サービスの品質（ＱｏＳ）パラメータ、電池の最大化など）を含んでいる。一実施形態において、クライアント識別子は、クライアントを一意的に識別する識別子（例えば、国際移動体装置識別番号（ＩＭＥＩ）、ＭＡＣアドレスなど）である。一実施形態において、クライアントＩＰアドレスはクライアント１００２のＩＰアドレスであり、プロキシは、このＩＰアドレスを使用してデータをクライアントに送信する。サーバＩＰアドレスは、それぞれの通知サービスのサーバのＩＰアドレスである。一実施形態において、サインイン要求は、通知サービス向けの１つ以上の要求を含んでいる。この実施形態では、サインイン要求は、１つより多いサーバＩＰアドレスを要求する。
【００８０】
更に、サインイン要求はまた、遅延などのＱｏＳパラメータを含むこともできる。この実施形態では、遅延は、どの種の遅延をユーザが許容できるかを示すパラメータである。更に、サインイン要求は、ユーザが電池寿命を最大化することを希望するか否かを示すためのパラメータを追加的に含むことができる。
【００８１】
サインイン要求の受信に応答して、プロキシはトランザクション識別子をエコーバックし、サインイン応答（１００８Ｂ）をクライアント１００２に送信する。一実施形態において、サインイン応答は、クライアント識別子、クライアントＩＰアドレス、及びトランザクション識別子を含んでいる。一実施形態において、トランザクション識別子は、プロキシのクライアントとのセッションを識別する識別子である。
【００８２】
サインイン要求からの情報を使用して、プロキシ１００４がサーバ１００６に通知サービス接続メッセージを送信してクライアント１００２に代わって接続をリフレッシュする（１０１０Ａ〜Ｆ）。例えば、プロキシ１００４は、サーバ１００６に通知サービス接続メッセージ（１０１０Ａ、１０１０Ｃ、及び１０１０Ｅ）を定期的に送信する。一実施形態において、通知サービス接続メッセージは、ピングメッセージ、ＨＴＴＰ要求、又は当該技術分野において既知のその他何らかのキープアライブメッセージである。これに応答して、サーバ１００６が、ペイロードにデータを含まない応答（１０１０Ｂ及び１０１０Ｄ）又はペイロードにデータを含む応答（１０１０Ｆ）で応答することができる。一実施形態において、データを含まない応答は、クライアント１００２向けの通知メッセージがないことを示している。データがない場合、プロキシ１００４はクライアントに通知をせず、クライアント１００２をスリープモードからウェイクアップさせる可能性がないので、電池残量が節約される。
【００８３】
一実施形態において、データを含む応答は、クライアント１００２向けの１つ以上の通知メッセージを含む応答である。一実施形態において、及びデータを含む応答の受信に応じて、プロキシ１００４がクライアント１００２にデータを送信する（１０１２）。この実施形態では、プロキシ１００４は、１つ以上の通知メッセージをクライアント１００２に送信する。更に、クライアント１００２がスリープモードにある場合、クライアント１００２が１つ以上の通知メッセージを処理できるように、１つ以上の通知メッセージの受信がクライアント１００２をスリープモードからウェイクアップさせる。
【００８４】
一実施形態において、プロキシ１００４は、サーバ１００６からデータを含む応答を受信すると同時に、１つ以上の通知メッセージをクライアント１００２に転送する。別の方法の実施形態において、プロキシ１００４は、１つ以上の通知メッセージを他の通知メッセージとバンドルし、バンドルした通知メッセージをクライアント１００２に送信することができる。この実施形態では、通知メッセージをバンドルすると、通知メッセージがクライアント１００２に転送される回数が低減するので、クライアントの電池寿命を節約することができる。
【００８５】
一実施形態において、プロキシ１００４が通知メッセージを受信後、直ちにそれを転送するか、それとも通知メッセージをバンドルするかは、クライアント１００２が送信する上述のサインイン要求（１００８Ａ）の中のパラメータによって制御される。例えば、一実施形態において、プロキシ１００４は、電池寿命パラメータを使用してクライアント向けの通知メッセージをバンドルするかどうかを決定する。別の方法の実施形態では、バンドルするかどうかは、時刻、サービスの適時性などに基づいて、クライアントから更新することができる。
【００８６】
更に、クライアント１００２は、更新要求を送信することもできる（１０１４Ａ）。一実施形態において、更新要求は、クライアント１００２のＩＰアドレスの変更に伴って、クライアントＩＰアドレスを更新する要求を含んでいる。この実施形態では、更新要求は、クライアント識別子、新しいクライアントＩＰアドレス、及びトランザクション識別子を含んでいる。クライアントの不活動の故にネットワークがデータコンテキストを非アクティブ化し、クライアントがデータコンテキストを再確立した場合、又はクライアントがネットワークを変更（例えば、セルラーからＷｉ−Ｆｉへ、及びその逆へ）した場合、クライアントＩＰアドレスが変更される場合がある。また、クライアントが特定の期間サービス停止状態に置かれていた場合にも、プロキシがクライアントの利用できるデータをプッシュできるように、クライアント１００２がプロキシに更新要求を送信することができる。この実施形態では、この新しいＩＰアドレスがプロキシ１００４によって保存され、クライアントの古いＩＰアドレスを置き換える。
【００８７】
別の実施形態では、クライアント１００２がパラメータ（ＱｏＳパラメータ、電池パラメータなど）の幾つか又は全てを変更するための更新要求を送信する。一実施形態において、ユーザは、電池の節約を最大化し、通知転送について通知メッセージの受信直後の転送から通知メッセージをバンドルするように変更することを希望するかもしれない。別の方法の実施形態では、ユーザは、通知転送について通知メッセージを受信直後に転送するように変更を希望するかもしれない。更なる実施形態では、更新は他の理由（時刻、モバイルクライアントの場所など）による。
【００８８】
一実施形態において、ユーザがプッシュ型サービスをオフにした場合、又はデバイスの電源が切られたときに、クライアント１００２はプロキシにサインアウト要求を送信することができる（１０１６Ａ）。一実施形態において、サインアウト要求は、プロキシサービスを停止すべきであることを示す情報を含むパケットである。一実施形態において、サインアウト要求は、クライアント識別子及びトランザクション識別子を含んでいる。プロキシは、サーバとの通信を停止することもでき、又は通信を継続し、後ほど使用するためにデータをバッファに入れることもできる。サインアウト要求を受信すると同時に、プロキシ１００４がクライアント１００２にサインアウト応答を送信する（１０１６Ｂ）。
【００８９】
図１１は、本発明の一実施形態に係る、クライアントに代わってプロキシが通知サービスの接続を管理することを図示したフローチャートである。一実施形態において、プロキシ９０２又は９５２がプロセス１１００を実行して通知サービスの接続を管理する。図１１では、プロセス１１００は、ブロック１１１０でプロキシを確立することによって開始される。一実施形態において、プロセス１１００は、図１０について上述したように、サインイン要求を受信し、そのサインイン要求に応答することによってプロキシを確立する。
【００９０】
ブロック１１２０において、プロセス１１００はサービスの接続を管理する。一実施形態において、プロセス１１００は、それぞれのサーバに通知サービス接続メッセージを定期的に送信し、これら通知サービス接続メッセージに対する応答を処理することによってサービスの接続を管理する。更に、プロセス１１００は、通知をクライアントに転送する。サービスの接続を管理することについては、以下の図１２で更に説明する。
【００９１】
プロセス１１００は、ブロック１１３０でクライアントを管理する。一実施形態において、プロセス１１００は、サインイン要求及び／又はサインアウト要求を受信し、これに応答することによってクライアントを管理する。クライアントを管理することについては、以下の図１３で更に説明する。
【００９２】
図１２は、本発明の一実施形態に係る、プロキシとサーバとの間の通知サービスの接続を管理することを図示したフローチャートである。一実施形態において、プロキシ９０２又は９５２は、プロセス１２００を実行してプロキシとサーバとの間の通知サービスの接続を管理する。図１２では、プロセス１２００は、ブロック１２１０において、プロセス１２００がサーバに通知サービス接続メッセージを送信すべきか否かを判定することによって開始される。一実施形態において、プロセス１２００は、動的に調節される間隔などに基づいて、通知サービス接続メッセージを定期的に送信する。プロセス１２００が通知サービス接続メッセージを送信すべきであれば、プロセス１２００はブロック１２２０で通知サービス接続メッセージを送信する。一実施形態において、プロセス１２００は、ピングメッセージ、ＨＴＴＰ要求、又は当該技術分野において既知のその他何らかのキープアライブメッセージのような適切なメッセージをサーバに送信する。遂行はブロック１２３０に進む。ブロック１２１０で、プロセス１２００が、通知サービス接続メッセージを送信すべきではないと判定した場合は、遂行は下記のブロック１２３０に進む。
【００９３】
ブロック１２３０において、プロセス１２００は、プロセス１２００がサーバから応答を受信したか否かを判定する。一実施形態において、受信される応答は、プロセス１２００が代行するクライアント向けである。ブロック１２４０でプロセスがサーバの応答を受信した場合、プロセス１２００は、受信したサービス応答がクライアント向けの通知データを含んでいるか否かを判定し、プロセス１２００は、ブロック１２７０において、通知データをクライアントに送信すべきか、それとも後ほど送信するためにバンドルするべきかを判定する。一実施形態において、プロセス１２００は、通知をクライアントに選択的に転送することができる。例えば、プロセス１２００は、通知をバンドルしてクライアントをウェイクアップさせる回数を低減し、電池の消費を低減することができる。別の例では、モバイルデバイスは（例えば、ローミング中であるため）データサービスを受けておらず、プロセス１２００は、クライアントに代わって通知を受信し、別の転送機構（例えば、ＳＭＳ）によってモバイルデバイスに選択的に通知する。別の例では、プロセス１２００は、通知データの内容に基づいて通知を選択的に転送することができる（例えば、適時性が求められる通知（例えば、株式の通知など）は受信と同時に転送され、適時性が求められない通知（例えば、アプリケーションの更新など）はバンドルされる）。通知データを送信すべき場合、例えば、プロキシサービスが通知データを受信直後に転送する場合、又は十分な通知データがバンドルされた場合、プロセス１２００はブロック１２５０で通知データをクライアントに転送する。一実施形態において、プロセス１２００は、図１０について上述したように、通知データを受信と同時にクライアントに転送し、又は通知データを他の通知とバンドルする。遂行は、下記のブロック１２６０に進む。通知を送信すべきではない場合、プロセス１２００は、この通知データを他の通知データとバンドルするためにバッファに入れ、遂行は下記のブロック１２６０に進む。
【００９４】
プロセス１２００が通知データを含まない応答を受信した場合、プロセス１２００は、ブロック１２６０で、次に送信すべき通知サービス接続メッセージをスケジュールする。一実施形態において、プロセス１２００は、定期的な期間、動的に調節される期間などに基づいて、次の通知をスケジュールする。遂行は、上述のブロック１２１０に進む。
【００９５】
図１３は、本発明の一実施形態に係る、クライアントとの相互作用を管理することを図示したフローチャートである。一実施形態において、プロキシ９０２又は９５２がプロセス１３００を実行してクライアントを管理する。図１３では、プロセス１３００は、ブロック１３１０でクライアントからパケットを受信することにより開始される。一実施形態において、受信されるパケットは、サインイン要求、サインアウト要求、更新要求などであることができる。
【００９６】
ブロック１３２０において、プロセス１３００は、受信したパケットが更新パケットであったかを判定する。上述のように、更新パケットは、プロキシサービスに対する更新を要求する、クライアントからのパケットである。例えば、一実施形態において、更新要求パケットは、クライアントＩＰアドレス又はプロキシサービスに関連するその他のパラメータ（例えば、ＱｏＳパラメータ、電池使用パラメータなど）を更新するように要求することができる。受信されたパケットが更新パケットであった場合、プロセス１３００は、ブロック１３２０で、更新要求パケットに含まれている情報を使用してクライアント情報を更新する。例えば、一実施形態において、更新要求パケットがクライアントＩＰアドレスを更新する要求を含んでいる場合、プロセス１３００は、図１０について上述したように、クライアントＩＰアドレス情報を更新する。別の例及び別の実施形態として、更新要求パケットが他の何らかのプロキシ設定（例えば、ＱｏＳパラメータ、電池設定など）を更新する要求を含んでいる場合、プロセス１３００は、図１０について上述したように、これらの設定を更新する。ブロック１３４０において、プロセス１３００は、クライアントに更新応答を送信する。一実施形態において、要求された更新を確認する情報を含む。
【００９７】
受信したパケットが更新パケットではない場合、プロセス１３００は、ブロック１３５０で、受信したパケットがサインインパケット又はサインアウトパケットであるか否かを判定する。一実施形態において、サインイン要求は、プロキシを確立するために使用できる情報（例えば、クライアント識別子、クライアントＩＰアドレス、サーバＩＰアドレス、ＱｏＳパラメータ、電池の最大化など）を含むパケットである。一実施形態において、サインアウト要求は、図１０について上述したように、プロキシサービスを停止すべきであることを示す情報を含むパケットである。
【００９８】
ブロック１３６０において、プロセス１３００は、受信したサインイン要求／サインアウト要求を処理する。一実施形態において、受信したパケットがサインイン要求である場合、プロセス１３００は、サインイン要求に含まれる情報を使用してクライアントに代わるプロキシを確立する。一実施形態において、受信したパケットがサインアウト要求である場合、プロセス１３００は、サインアウト要求に含まれる情報を使用してプロキシサービスを停止する。別の実施形態では、サインアウト要求は、プロキシサービスが、キープアライブメッセージを送信することによってプロキシの機能性の実行を継続し、受信した応答をバッファに入れることの要求を含んでいる。例えば、一実施形態において、クライアントが（例えば、ローミング時にコストを削減するために）電源をオフにするか、又はデータ機能をオフにし、クライアントがサインアウト要求を送信し、クライアントは、プロセス１３００がプッシュ型メッセージを引き続き受信し、これらをバッファに入れるように要求することができる。更に、この実施形態では、プロセス１３００は、クライアントにＳＭＳメッセージを送信して、クライアントによって指定されたサービスに関する特定のメッセージのことをユーザに通知するための論理を有することができる。
【００９９】
ブロック１３７０において、プロセスは、それぞれのサインイン応答／サインアウト応答をクライアントに送信する。一実施形態において、プロセスは、図１０について上述したように、それぞれの要求を送信する。遂行は、上記のブロック１３１０に進む。
【０１００】
図７は、本発明の幾つかの実施形態に使用できる例示的なコンピュータシステムを図示したブロック図である。例えば、コンピュータシステム７００の例示的なアーキテクチャは、モバイルデバイス（例えば、モバイルデバイス１６０、９０４、又は９５４）の中に含めることができる。図７はコンピュータシステムの様々な構成要素を図示しているものの、これら構成要素を相互接続するいずれか特定のアーキテクチャ又は方法を示す意図はなく、したがって、詳細は本発明に密接な関係がないことが理解されるべきである。より少ない構成要素又はより多くの構成要素を有する他のコンピュータシステムを本発明に使用することもできることが理解されるであろう。
【０１０１】
図７に図示したように、データ処理システムの形態のコンピュータシステム７００は、処理システム７２０に連結しているバス７５０、電源７２５、メモリ７３０、及び不揮発性メモリ７４０（例えば、ハードディスクドライブ、フラッシュメモリ、相変化メモリ（ＰＣＭ）など）を含んでいる。当該技術分野において周知の様々なブリッジ、コントローラ、及び／又はアダプタを介して、バス７５０を相互に接続することができる。処理システム７２０は、メモリ７３０及び／又は不揮発性メモリ７４０から命令を取得し、命令を遂行して上述の動作を行うことができる。バス７５０は上述の構成要素を相互接続すると共に、これらの構成要素を必要に応じて使用可能なドック７６０、ディスプレイコントローラ及びディスプレイ装置７７０、入出力装置７８０（例えば、ＮＩＣ（ネットワークインターフェースカード）、カーソルコントロール（例えば、マウス、タッチスクリーン、タッチパッドなど）、キーボードなど）、並びに必要に応じて使用可能な無線送受信機７９０（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷｉＦｉ、赤外線など）に接続する。
【０１０２】
図８は、本発明の幾つかの実施形態に使用できる例示的なデータ処理システムを図示したブロック図である。例えば、データ処理システム８００は、ハンドヘルドコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話機、携帯型ゲームシステム、ポータブルメディアプレーヤ、又は携帯電話機、メディアプレーヤ、及び／若しくはゲームシステムを含むことのできるハンドヘルドコンピュータであってもよい。別の例として、データ処理システム８００は、ネットワークコンピュータ又は別のデバイス内にある組み込み型処理装置であってもよい。
【０１０３】
本発明の一実施形態によれば、データ処理システム８００の例示的なアーキテクチャをモバイルデバイス１６０の中に含めることができる。データ処理システム８００は、１つ以上のマイクロプロセッサ及び／又は集積回路上のシステムを含むことができる、処理システム８２０を含んでいる。処理システム８２０は、メモリ８１０、電源８２５（１つ以上の電池を含む）、音声入出力８４０、ディスプレイコントローラ及びディスプレイ装置８６０、必要に応じて使用可能な入出力８５０、入力装置８７０、並びに無線送受信機８３０と連結している。本発明の特定の実施形態において、図８に示していない追加の構成要素をデータ処理システム８００の一部とすることもでき、また本発明の特定の実施形態では、図８に示したよりも少ない構成要素を使用することもできることが、理解されるであろう。更に、図８に示していない１つ以上のバスを使用して、当該技術分野において周知の様々な構成要素を相互接続することができることが理解されるであろう。
【０１０４】
メモリ８１０は、データ処理システム８００が遂行するデータ及び／又はプログラムを格納することができる。音声入出力８４０は、例えば、音楽を再生し、並びに／又はスピーカ及びマイクロホンを介して電話の機能性を提供するための、マイクロホン及び／又はスピーカを含むことができる。ディスプレイコントローラ及びディスプレイ装置８６０は、グラフィカルユーザインターフェース（ＧＵＩ）を含むことができる。無線（例えば、ＲＦ）送受信機８３０（例えば、ＷｉＦｉ送受信機、赤外線送受信機、Ｂｌｕｅｔｏｏｔｈ送受信機、無線携帯電話通信用送受信機など）を使用して、他のデータ処理システムと通信することができる。１つ以上の入力装置８７０は、ユーザがシステムに入力を提供することを可能とする。これらの入力装置は、キーパッド、キーボード、タッチパネル、マルチタッチパネルなどであってもよい。必要に応じて使用可能なその他の入出力８５０は、ドック用のコネクタであってもよい。
【０１０５】
図中のフローチャートは本発明の特定の実施形態によって実行される動作の特定の順序を示しているものの、このような順序は例示である（例えば、別の方法の実施形態は、異なる順序で動作を実行したり、特定の動作を組み合わせたり、特定の動作をオーバーラップさせたりなどすることができる）ことが理解されるべきである。
【０１０６】
幾つかの実施形態の観点から本発明を説明したが、当業者であれば、本発明は説明したこれらの実施形態に限定されず、添付の請求項の趣旨及び範囲内で修正及び変更を伴って実施できることを認識するであろう。したがって、説明は、限定的ではなく例示的であるとみなされる。
【図１０】
0005837237.tif 000002
【図１１】
0005837237.tif 000003
【図１２】
0005837237.tif 000004
【図１３】
0005837237.tif 000005
【図１】
0005837237.tif 000006
【図２】
0005837237.tif 000007
【図３Ａ】
0005837237.tif 000008
【図３Ｂ】
0005837237.tif 000009
【図４】
0005837237.tif 000010
【図５】
0005837237.tif 000011
【図６】
0005837237.tif 000012
【図７】
0005837237.tif 000013
【図８】
0005837237.tif 000014
【図９Ａ】
0005837237.tif 000015
【図９Ｂ】
0005837237.tif 000016