JP2015513332A - プロキシベースのプッシュ型サービス - Google Patents

プロキシベースのプッシュ型サービス Download PDF

Info

Publication number
JP2015513332A
JP2015513332A JP2014553347A JP2014553347A JP2015513332A JP 2015513332 A JP2015513332 A JP 2015513332A JP 2014553347 A JP2014553347 A JP 2014553347A JP 2014553347 A JP2014553347 A JP 2014553347A JP 2015513332 A JP2015513332 A JP 2015513332A
Authority
JP
Japan
Prior art keywords
notification
notification service
connection
proxy
mobile device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014553347A
Other languages
English (en)
Other versions
JP5837237B2 (ja
Inventor
リ リー
リ リー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2015513332A publication Critical patent/JP2015513332A/ja
Application granted granted Critical
Publication of JP5837237B2 publication Critical patent/JP5837237B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

モバイルクライアントと通知サーバとの間で通知サービスの接続を代行する方法及び装置である。本発明の一実施形態において、プロキシは、モバイルクライアントから通知サービス向けのプロキシ設定要求を受信する。プロキシは更に、モバイルクライアントに代わって通知サーバとの通知接続を確立し、モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに通知接続を維持する。プロキシは、通知サービスから通知を受信し、通知をモバイルクライアントに転送する。

Description

本発明の実施形態は、モバイルデバイスの処理の分野に関し、より具体的には、プロキシを用いたモバイルデバイスの通知サービスの接続の管理に関する。
モバイルデバイス(例えば、ラップトップ、パームトップ、ポータブルメディアプレーヤ、スマートフォン、マルチメディア携帯電話機、「ゲームボーイ(登録商標)」のような携帯型ゲームシステムなど)のユーザは、1つ以上の通知サービスに登録することができる。例えば、ユーザは、.Mac、Microsoft Exchange ACTIVESYNC(登録商標)、push−IMAP、Yahoo!(登録商標)Pushなどの1つ以上の「プッシュ型」電子メールサービスに登録することができる。例えば、プッシュ型電子メールサービスの場合、電子メールサーバは、ユーザがそのアイテムを要求しなくても、ユーザのモバイルデバイス上の電子メールクライアントに電子メールメッセージ及び/又はカレンダーの更新を自動的に伝送することができる。換言すれば、ユーザは、電子メールメッセージ又は関心のあるその他のアイテムを電子メールサーバに要求(ポーリング)しない。このように、プッシュ型通知サービスは持続的な通知サービスである。更に、他の種類のサービスも同様のプッシュ型アーキテクチャを使用することができる(例えば、更新/アップグレードサービス、ニュースサービス、ウェブログサービス、ポッドキャストサービスなど)。プッシュ型通知サービスを維持するために、モバイルデバイスは、プッシュ型通知サービスとの接続を定期的に(例えばプッシュサーバにピングメッセージを伝送することにより)リフレッシュする。
更に、ユーザは、「プル型」電子メールサービス(例えば、IMAP、POP3)のような1つ以上の「プル型」サービスに登録することができる。プル型電子メールサービスでは、ユーザは、電子メールサーバを定期的にチェック(ポーリング)して新しい電子メールメッセージの有無を判定する。新しい電子メールメッセージがあれば、これらのメッセージがクライアントにダウンロードされる。多くの電子メールクライアントが、ポーリング間隔の自動設定をサポートしている。例えば、モバイルデバイスのユーザは、POP3の電子メールアカウントに10分のポーリング間隔を設定することができる(したがって、電子メールクライアントは、電子メールサーバを10分毎に自動的にポーリングして新しい電子メールメッセージの有無をチェックする)。更に、ネットワーク全体(例えば、インターネット全体)のイベントの通知メッセージを複数の登録者に提供するように通知サービスを設定することができ、通知サービスは、1人以上の登録者及び/又は発行者によって自動的に発見することができるが、このことは、この参照によりその全部が本明細書内に組み込まれる、2008年3月4日付で出願の、「Automatic Notification System and Process」と題された米国特許出願第12/042,307号の中に記載されている。
モバイルデバイスは、ネットワーク(例えば、汎用パケット無線サービス(GPRS)ネットワークのようなセルラーネットワーク、及び/又はローカルエリアネットワーク(LAN))上でモバイルデバイスにデータサービス(例えば、インターネットからのインターネットプロトコルトラフィック)を提供する、1つ以上のネットワーク要素とデータコンテキスト(例えば、パケットデータプロトコル(PDP)コンテキスト)を確立する。データコンテキストは、モバイルデバイスとネットワーク要素との間の論理的結合であり、ルーティング(例えば、IPアドレス情報)、サービスの品質(QoS)、決済、認証などに関連した情報を含む。データコンテキストを維持するためにはネットワーク要素のネットワークリソースを消費するので、モバイルデバイスがデータコンテキストをアクティブに使用していない場合は、1つ以上のサーバがモバイルデバイスに関連したデータコンテキストを廃棄する場合がある。例えば、モバイルデバイスの電源が切られている(したがって、データコンテキストを使用しておらず、ネットワーク要素と連絡を取っていない)場合、ネットワーク要素は、モバイルデバイスから情報を受け取らないまま、ある時間が経過した後にデータコンテキストを廃棄することができる。モバイルデバイスは、データコンテキストを定期的にリフレッシュしてデータコンテキストの接続を維持することができる。
電池寿命を節約するために、モバイル装置は、定常的な電源に接続されておらず、アクティブに使用されていない(例えば、アイドル状態にある)ときには、低電力モードに入ることができる。一般的には、これを「スリープ」モードと呼ぶ。特定のモバイルデバイスのスリープモードは、そのモバイルデバイスの特性によって異なることがある。例えば、モバイルデバイスがネットワークアクセス(例えば、セルラーアクセス、WiFi(登録商標)アクセスなど)を有する場合、スリープモードは、メインプロセッサを時間的にスリープ状態に置き、ディスプレイをオフにしながらも、ネットワークスタックを機能的に使用可能な状態に維持することを含み得る。したがって、スリープモードにある間でも、例示的なモバイルデバイスは、通話並びに/又は通知サービスからの対象となるアイテム(例えば、プッシュ型電子メールサービス及び/若しくはプル型電子メールサービスからの電子メールメッセージ)を、引き続き受信することができる。受信後、モバイルデバイスは、これらの通話及び/又は通知を処理するためにウェイクアップすることができる。例えば、モバイルデバイスはスリープモードにある間に通話を受信した後、ユーザが通話に応答することができるようにウェイクアップする。更に、一般的なモバイルデバイスは、通常、スリープモードにある間はデータコンテキストをリフレッシュすることができない(したがって、モバイルデバイスは、通常、データコンテキストをリフレッシュするためには、アウェイク状態である必要がある)。
モバイルクライアントと通知サーバとの間で通知サービスの接続を代行する方法及び装置である。本発明の一実施形態において、プロキシは、モバイルクライアントから通知サービス向けのプロキシ設定要求を受信する。プロキシは、更に、モバイルクライアントに代わって通知サーバとの通知接続を確立し、モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに通知接続を維持する。プロキシは、通知サービスから通知を受信し、通知をモバイルクライアントに転送する。
本発明の別の実施形態において、システムは、モバイルクライアント、通知サーバ、及びプッシュプロキシを含んでいる。モバイルクライアントが通知サーバを経由して通知サービスから通知を受信し、プッシュプロキシがモバイルクライアントに代わって通知要求を代行する。プッシュプロキシは、モバイルクライアントから通知サービス向けのプロキシ設定要求を受信する。プッシュプロキシは、更に、モバイルクライアントに代わって通知サーバとの通知接続を確立し、モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに通知サーバとの通知接続を維持する。更に、プッシュプロキシは、通知サービスから通知を受信し、通知をモバイルクライアントに転送する。
本発明の更なる実施形態において、デバイスは、第1のオペレーティングシステム内で遂行し、コマンド機能を実行するアプリケーションプロセッサと、第2のオペレーティングシステム内で遂行し、通信機能を実行するネットワーク接続要素と、を含んでいる。ネットワーク接続性は、通知サービスに代わってアプリケーションプロセッサからプロキシ設定要求を受信するように設定されたプッシュプロキシを含んでいる。プッシュプロキシは、デバイスに代わって通知サーバとの通知接続を確立し、アプリケーションプロセッサをウェイクアップさせずに通知サーバとの通知接続を維持するように更に設定されている。更に、プッシュプロキシは、通知サービスから通知を受信し、アプリケーションプロセッサにこの通知を転送するように設定されている。
本発明は、以下の説明及び本発明の実施形態を例示するために使用される添付の図面を参照することによって最もよく理解することができる。
本発明の一実施形態に係る例示的なコンピューティング環境の図である。 本発明の一実施形態に係る、通知サービスの接続を確立し、通知サービス接続メッセージ(notification service connection message、NSCM)の伝送間隔をスケジュールするモバイルデバイスの例示的なフローの図である。 本発明の一実施形態に係る、通知サービスの接続を管理する例示的なモバイルデバイスのフレームワークを例示したブロック図である。 本発明の一実施形態に係る、図3Aの通知サービス接続マネージャの分解図を例示したブロック図である。 本発明の一実施形態に係る、通知サービスの接続の管理を例示したフローチャートである。 本発明の一実施形態に係る、オーバーラップする通知サービス接続メッセージの伝送ウィンドウに基づいて通知サービス接続メッセージの伝送を同期させるモバイルデバイスを図示した例示的な図表である。 本発明の一実施形態に係る、通知サービス接続メッセージの間隔の最適化を図示した例示的な状態図である。 本発明の一実施形態に係る例示的なモバイルデバイスを例示したブロック図である。 本発明の一実施形態に係る例示的なモバイルデバイスを例示したブロック図である。 本発明の一実施形態に係る、独立型プロキシを含む例示的なコンピューティング環境の図である。 本発明の一実施形態に係る、モバイルクライアント内に組み込まれたプロキシを含む例示的なコンピューティング環境の図である。 本発明の一実施形態に係る、クライアントとサーバとの間のサービスの接続を代行するプロキシのブロック図である。 本発明の一実施形態に係る、クライアントに代わり、プロキシによる通知サービスの接続の管理を例示したフローチャートである。 本発明の一実施形態に係る、プロキシとサーバとの間の通知サービスの接続の管理を例示したフローチャートである。 本発明の一実施形態に係る、クライアントとの相互作用の管理を図示したフローチャートである。
以下の説明では、数多くの具体的な詳細が記載される。しかし、本発明の実施形態は、これら具体的な詳細を伴わずに実施できることが分かる。他の例では、本記載の理解を不明瞭にしないようにするために、周知の回路、構造及び技法は詳細には示されていない。他の例では、本発明を不明瞭にしないために、制御構造、ゲートレベル回路、及び完全なソフトウェア命令シーケンスの詳細については、示していない。当業者であれば、記載の説明を基に、過度の実験を行うことなく、適切な機能性を実施することができるであろう。
本明細書内での「一実施形態」、「ある実施形態」、「ある例示的実施形態」などへの言及は、記述の実施形態が特定の特徴、構造、又は特性を含むことができるが、全ての実施形態が必ずしもこれらの特定の特徴、構造、又は特性を含むとは限らないことを示している。更には、このような表現は、必ずしも同一の実施形態に言及しているわけではない。更に、ある実施形態に関連して特定の特徴、構造、又は特性が説明されるとき、明示的に説明されているか否かに拘わらず、他の実施形態に関連してこのような特徴、構造、又は特性をもたらすことは、当業者の知識の範囲内であると考えられる。
以下の説明及び請求項において、「連結している」及び「接続されている」と共にこれらの派生語が使用される場合がある。これらの言葉は、互いに同義語として意図されていないことが理解されるべきである。「連結している」は、相互に物理的又は電気的に直接接触しているかもしれず、していないかもしれない2つ以上の要素が、互いに協働し、又は相互作用することを示すために使用される。「接続されている」は、相互に連結している2つ以上の要素間の通信の確立を示すために使用される。
図に示す技術は、1つ以上の電子デバイス(例えば、モバイルデバイス(例えば、ラップトップ、パームトップ、ポータブルメディアプレーヤ、スマートフォン、マルチメディア携帯電話機、携帯型ゲームシステムなど)、非モバイルデバイス(例えば、デスクトップコンピュータ、ワークステーション、サーバなど)上に格納され、これらで実行されるコード及びデータを使用して実施することができる。このような電子デバイスは、機械記憶媒体(例えば、磁気ディスク、光ディスク、読出し書込み可能メモリ、読出し専用メモリ、フラッシュメモリデバイス)及び機械通信媒体(例えば、搬送波、赤外線信号、デジタル信号、などのような、電気的、光学的、音響的、又はその他の形態の伝播信号)のような機械読み取り可能な媒体を使用してコード及びデータを(内部で、及びネットワーク上で他の電子デバイスとの間で)格納し、伝達する。更に、このような電子デバイスは通常、記憶装置、1つ以上のユーザ入出力装置(例えば、キーボード、キーパッド、タッチスクリーン、及び/又はディスプレイ)、並びに1つ以上のネットワーク接続のような1つ以上の他の構成要素に連結している、1つ以上のプロセッサのセットを含んでいる。プロセッサのセットとその他の構成要素は、通常、1つ以上のバス及びブリッジ(バスコントローラとも呼ばれる)を介して連結される。記憶装置及びネットワークトラフィックを伝送する信号はそれぞれ、1つ以上の機械記憶媒体及び機械通信媒体を代表している。このように、所与の電子デバイスの記憶装置は、通常、その電子デバイスの1つ以上のプロセッサのセットで実行されるコード及び/又はデータを格納する。勿論、本発明のある実施形態の1つ以上の部分を、ソフトウェア、ファームウェア、及び/又はハードウェアのいろいろな組み合わせを用いて実施することができる。
通知サービス
モバイルクライアントを使用し、又はモバイルクライアントに代わるプロキシによって通知サービスの接続を管理する方法及び装置について説明する。本発明の一実施形態において、モバイルデバイス(例えば、ラップトップ、パームトップ、ポータブルメディアプレーヤ、スマートフォン、マルチメディア携帯電話機、「ゲームボーイ」のような携帯型ゲームシステムなど)は、1つ以上の通知サービスクライアント(例えば、プッシュ型通知サービスクライアント(例えば、.Mac、Microsoft Exchange、push−IMAP、Yahoo!Pushなどのプッシュ型電子メールクライアント、更新/アップグレードサービス、ニュースサービス、ウェブログサービス、ポッドキャストサービスなど)及び/又はプル型通知サービスクライアント(例えば、POP3、IMAPなどのプル型電子メールクライアント))を含む。モバイルデバイスは、各々の通知サービスクライアント毎に独立して通知サービス接続メッセージの伝送間隔をスケジュールし、通知サービス接続メッセージの伝送タイマーを設定する。更に、通知サービス接続メッセージの伝送ウィンドウは、各通知サービス接続メッセージの伝送間隔に関連しており、通知サービス接続メッセージの伝送間隔の値に基づいている。モバイルデバイスは、特定の通知サービスクライアントの通知サービス接続メッセージの伝送タイマーが終了すると同時に、その通知サービスの通知サービス接続メッセージを伝送し、また、各々の通知サービス接続メッセージの伝送ウィンドウがその終了する伝送タイマーとオーバーラップする他の各通知サービスの通知サービス接続メッセージも伝送する。モバイルデバイスは、各通知サービスの通知サービス接続メッセージを伝送すると同時に、その通知サービス接続メッセージの伝送タイマーをリセットする。
本発明の一実施形態において、モバイルデバイスがスリープモードにある場合、モバイルデバイスは、各通知サービスの接続について、通知サービス接続メッセージを伝送するためにモバイルデバイスをウェイクアップさせる時刻をスケジュールする。モバイルデバイスが特定の時刻にアウェイク状態にある場合、又は特定の時刻にスケジュールされたウェイクアップ時にウェイクアップする場合、モバイルデバイスは、各々の通知サービス接続メッセージの伝送ウィンドウがその特定の時刻とオーバーラップする通知サービスの通知サービス接続メッセージを伝送する。モバイルデバイスは、各通知サービスの通知サービス接続メッセージを伝送後、その通知サービス接続メッセージの伝送タイマーをリセットする。
図1は、本発明の一実施形態に係る例示的なコンピューティング環境100を図示している。コンピューティング環境100は、1つ以上のネットワークデータアクセス要素150と各々連結しているモバイルデバイス160及び170を含んでいる。ネットワークデータアクセス要素150は、セルラーネットワーク(例えば、移動通信用のグローバルシステム(GSM(登録商標))、GSM進化のためのエンハンストデータレート(EDGE)、汎用パケット無線サービス(GPRS)、符号分割多元接続(CDMA)、時分割CDMA、(TD−CDMA)、ユニバーサル移動体通信システム(UMTS)、ロングタームエボリューション(LTE)、若しくはその他のセルラーネットワーク)、ローカルエリアネットワーク(LAN)などを含む、本発明のいろいろな実施形態における様々な種類のネットワークの一部となることができる。例えば、ネットワークデータアクセス要素150がGSMネットワークの一部である場合、ネットワークデータアクセス要素150は、送受信基地局(BTS)、基地局コントローラ(BSC)、移動交換局(MSC)、サービス中のGPRSサポートノード(SGSN)などのうちの1つ以上を含むことができる。別の例として、ネットワークデータアクセス要素150がLANの一部である場合、ネットワークデータアクセス要素150は、1つ以上のネットワークスイッチ、ルータ、ハブ、モデムなどを含むことができる。
モバイルデバイス160は、アプリケーションプロセッサ162及びネットワーク接続要素164(例えば、無線ネットワーク接続要素(例えば、携帯電話通信用のRFネットワーク接続要素、WiFiネットワーク接続要素)、有線ネットワーク接続要素(例えば、有線ネットワークインターフェースコントローラ(NIC)))を含んでいる。モバイルデバイス160は、ネットワーク接続要素164を介して、データコンテキスト(例えば、PDPコンテキスト)を通じてネットワークデータアクセス要素150と通信する。広域ネットワーク(WAN)140(例えば、インターネット)が、ネットワークデータアクセス要素150と連結している。プッシュ型通知サービス110及び120並びにプル型通知サービス130が、WAN 140と連結している。本発明の一実施形態によれば、モバイルデバイス160のユーザは、プッシュ型通知サービス110及び120並びにプル型通知サービス130にアクセスし、これらを使用する(プッシュ型通知サービス110及び120並びにプル型通知サービス130が、ユーザの関心のあるアイテムを提供する)。例えば、プッシュ型通知サービス110がモバイルデバイス160のユーザ向けに個人用プッシュ型電子メールアカウントを提供してもよい一方で、プッシュ型通知サービス120はモバイルデバイス160のユーザ向けに業務用プッシュ型電子メールアカウントを提供してもよい。別の例として、プル型通知サービス130は、モバイルデバイス160のユーザ向けに組織的なプル型電子メールアカウント(例えば、POP3電子メールアカウント、ウェブメールアカウントなど)を提供してもよい。
本発明の一実施形態において、アプリケーションプロセッサ162は、モバイルデバイス160の中央処理装置である。例えば、アプリケーションプロセッサ162は、モバイルデバイス160のオペレーティングシステム(図1では、本発明の理解を不明瞭にしないために、オペレーティングシステムを図示せず)及びモバイルデバイス160で実行中の任意のアプリケーションを処理する。入出力装置、メモリ、電源、ディスプレイなど、モバイルデバイスの他の周知の特徴については、本発明の理解を不明瞭としないために、図1には図示していない。
本発明の一実施形態によれば、モバイルデバイス160は、「スリープモード」として知られる低電力モードに入ることができる。例えば、モバイルデバイス160が定常的な電源と連結していない(例えば、電気コンセントに繋がっていない)場合、モバイルデバイス160は、デバイスの電池寿命を節約するために定期的にスリープモードに入ることができる。モバイルデバイス160は、ある期間の不活動(例えば、1分間の不活動)後、及び/又はユーザからのコマンドによる直接的な方法(例えば、ユーザがモバイルデバイス160に対してスリープモードに入るようにコマンドを発行することができる)など、多くの様々な方法でスリープモードに入ることができる。スリープモードに入るための他の機構も本発明の範囲内であることは、理解されるであろう。
本発明の一実施形態によれば、スリープモードにある間、モバイルデバイス160は、アプリケーションプロセッサ162を一時的にディスエーブルする(アプリケーションプロセッサ162は、一時的にディスエーブルされているときには実質上、電力を消費しないでいることができる)。アプリケーションプロセッサ162がディスエーブルされている場合は、モバイルデバイス160のオペレーティングシステム及びアプリケーションもまたディスエーブルされることが理解されるべきである。しかし、本発明の一実施形態によれば、ネットワーク接続要素164のうちの少なくとも一部は一時的にディスエーブルされない。換言すれば、ネットワーク接続要素164のうちの少なくとも一部は、ネットワークデータアクセス要素150から情報を引き続き受け取り、電力を使用することができる。例えば、モバイルデバイス160が通話及び/又はテキストメッセージ(例えば、ショートメッセージサービス(SMS)メッセージ)を受信する機能を有している場合、モバイルデバイス160は、通話及び/又はテキストメッセージを受信するためにスリープモードにある間もRF接続要素をアウェイク状態に保つことができる。例えば、仮にモバイルデバイス160がRF接続要素をディスエーブルした場合、モバイルデバイス160のユーザは、通話及び/又はテキストメッセージを受信することができなくなる(例えば、その代わりに、ボイスメールがサポートされている場合は、通話をボイスメールに転送することができる)。これらの着信通話及び/又は着信テキストメッセージを処理するために(例えば、ユーザが着信通話に出るために)、モバイルデバイス160がスリープモードからウェイクアップする(例えば、アプリケーションプロセッサ162を再イネーブルする)ことが理解されるべきである。
更に、本発明の一実施形態によれば、モバイルデバイス160は、スリープモードにある間にプッシュ型通知サービス110〜120から対象となるアイテムを受信する機能を含む。例えば、ネットワーク接続要素164のうちの少なくとも一部は、スリープモードにある間にプッシュ型通知サービス110及び120から対象となるアイテム(例えば、電子メールのメッセージ、カレンダーの更新、気象情報の更新、株価の更新など)を受信する機能を有している。本発明の一実施形態において、RFネットワーク接続要素は、スリープモードにある間にプッシュ型通知サービス110及び120から送信された対象となるアイテムを受信する。このように、スリープモードにある間にプッシュ型通知サービス110及び120がモバイルデバイス160のユーザ向けにプッシュ型電子メールサービスを提供する場合、モバイルデバイス160は、プッシュ型通知サービス110及び120から電子メールのメッセージを受信することができる。本発明の一実施形態によれば、モバイルデバイス160は、スリープモードからウェイクアップしてスリープモードにある間に受信した対象となるアイテムを処理する。
本発明の幾つかの実施形態において、スリープモードにある間もWiFiネットワーク接続要素がアウェイク状態にあり、機能している(そしてプッシュ型通知サービス110及び120から対象となるアイテムを受信することができる)一方、本発明の別の方法の実施形態においては、WiFiネットワーク接続要素は、スリープモードにある間にスリープ状態に置かれる。一実施形態において、RFネットワーク接続要素は、WiFiネットワーク接続要素よりも少ない電力を使用することができる。したがって、この実施形態においては、スリープモードにある間にWiFiネットワーク接続要素をアウェイク状態に保つことは、RFネットワーク接続要素をアウェイク状態に保つよりも大きな電力を消耗する原因となる。このように、本発明の幾つかの実施形態において、モバイルデバイス160は、スリープモードにある間にWi−Fiネットワーク接続要素を介してプッシュ型通知サービス110及び120から対象となるアイテムを受信することができる一方、本発明のその他の実施形態においては、モバイルデバイス160は、スリープモードにある間にはWiFiネットワーク接続要素を介しては対象となるアイテムを受信しない。
本発明の幾つかの実施形態において、モバイルデバイス160は、プッシュ型通知サービス110及び120から対象となるアイテムを受信するために、ネットワーク接続要素の組み合わせを使用することができる。例えば、モバイルデバイス160は、RFネットワーク接続要素(例えば、セルラーネットワーク)を介して、及び/又はWiFiネットワーク接続要素(例えば、家庭内LANに接続されているとき)を介してデータ情報の受信をサポートすることができる。モバイルデバイス160のユーザは、WiFiサービスが利用可能なとき(例えば、家庭内LAN及び/又は職場のLANに接続されている間)にはWiFiネットワーク接続要素を使用し、WiFiサービスが利用可能ではないときにはRFネットワーク接続要素を使用するように、モバイルデバイス160を設定することができる。このように、本発明の一実施形態によれば、どちらの接続要素がデータサポートを提供しているかによって、RFネットワーク接続要素及び/又はWiFiネットワーク接続要素を使用して、プッシュ型通知サービス110及び120から対象となるアイテムを受信することができる。更に、本発明の一実施形態において、RFネットワーク接続要素及び/又はWiFiネットワーク接続要素を使用して、スリープモードに入る前にどちらのネットワーク接続要素がデータサポートを提供していたかによって、スリープモードにある間にプッシュ型通知サービス110及び120から対象となるアイテムを受信することができる(例えば、モバイルデバイス160がアウェイク状態にあった間にLAN内にあってかつWiFiネットワーク接続要素がプッシュ型通知サービス110及び120から対象となるアイテムを受信していた場合は、スリープモードにある間にもWiFiネットワーク接続要素がアウェイク状態に留まって対象となるアイテムを受信し、モバイルデバイス160はRFネットワーク接続要素をスリープ状態に置く)。
一実施形態において、WiFiネットワーク接続要素はRFネットワーク接続要素よりも大きな電力を使用する可能性があり、スリープモードに入る前にどちらのネットワーク接続要素がデータサポートを提供していたかに拘わらず、モバイルデバイス160はWiFiネットワーク接続要素をスリープ状態に置き(一時的にWiFiネットワーク接続要素をディスエーブルし)、スリープモードにある間にRFネットワーク接続要素を使用してプッシュ型通知サービスから対象となるアイテムを受信する。例えば、モバイルデバイス160がLAN(例えば、ユーザの家庭内LAN)経由でプッシュ型通知サービス110及び120と接続しており、ユーザがモバイルデバイス160をスリープモードに置くためのコマンドを発行すると、モバイルデバイス160はセルラーネットワークを経由した(RFネットワーク接続要素を通じて)プッシュ型通知サービス110及び120との接続に自動的に移行し、WiFiネットワーク接続要素をスリープ状態に置く。
本発明の幾つかの実施形態において、接続の持続性を維持するために、持続的な通知サービスの接続(例えば、プッシュ型通知サービス110及び120)が定期的にリフレッシュされる。例えば、モバイルデバイス160がその接続をアクティブに使用しない場合は、プッシュ型通知サービス110及び120は、モバイルデバイス160との接続をタイムアウトさせることができる(したがって、そのユーザ向けのプッシュ型通知サービスが停止される)。このように、本発明の幾つかの実施形態において、モバイルデバイス160には、その持続的な接続を維持するために、プッシュ型通知サービス110及び120と通信することが要求される。例えば、モバイルデバイス160は、ある定期的な間隔でプッシュ型通知サービス110及び120に通知サービス接続メッセージを伝送して接続をリフレッシュする。通知サービス接続メッセージは、モバイルデバイス160がまだ接続されている(そしておそらくプッシュ型通知サービスから対象となるアイテムを引き続き受信することを望んでいる)ことを、プッシュ型通知サービス110及び120に通知する。プッシュ型通知の接続をリフレッシュすることにより、モバイルデバイスがサービスと接続されたままでいることを望んでいることが、プッシュ型通知サービスのサーバに通知されることが、理解されるべきである。更に、プッシュ型通知の接続をリフレッシュすることにより、プッシュ型通知サービスのサーバに至る経路上の各ネットワーク要素が、接続を維持すべく通知を受ける(さもなければ、例えば、ネットワーク要素は、その接続に関連するネットワークリソースをクリアする場合がある)。通知サービス接続メッセージは、ピングメッセージ又はその他のキープアライブメッセージであってよい。通知サービスは、通知サービス接続メッセージに応答してモバイルデバイス160に接続がアクティブであることを通知することができる。したがって、モバイルデバイス160が通知サービスから応答を受信しない場合は、モバイルデバイス160は通知サービスとのセッションを再確立することを求められる場合がある。本発明の幾つかの実施形態において、通知サービスからの対象となるアイテムの受信もまた、持続的な通知サービスの接続をリフレッシュすることが理解されるべきである。
通知サービス接続メッセージを伝送する間隔は、個々の通知サービス毎に異なってもよい。例えば、プッシュ型通知サービス110が、30分間通信がない場合に接続のタイムアウトを発生させることができる一方で、プッシュ型通知サービス120は15分間通信がない場合に接続のタイムアウトを発生させることができる。しかし、これらのタイムアウトの間隔は静的ではなく、様々なネットワーク状態によって動的に変化することができる。更に、通知サービスは、モバイルデバイスにタイムアウトの間隔が変更されたことを通知しない場合がある。このように、モバイルデバイス160は、(接続の再確立をする必要なく)接続を維持するために、既知のタイムアウト間隔内で通知サービス接続メッセージを伝送することができる。通知サービス接続メッセージを伝送して通知サービスの接続をリフレッシュし、維持するためには、モバイルデバイス160がアウェイク状態にある必要があることが理解されるであろう。
更に、本発明の幾つかの実施形態において、モバイルデバイス160は、ネットワークデータの接続性を維持するために、ネットワークデータアクセス要素150(例えば、キャリアのネットワーク内のNATルータ、ファイアウォール、又はネットワーク内のその他のネットワーク要素)との接続を定期的にリフレッシュする必要がある。例えば、データコンテキストはネットワークリソースを消費するので、ネットワークデータアクセス要素150は、データコンテキストがアクティブに使用されていない、及び/又は特定の時間使用されていない場合は、これを廃棄する(例えば、データコンテキストが除去され、そのデータコンテキストのネットワークリソースが再割り当てされる)場合がある。データコンテキストが廃棄された場合は、モバイルデバイス160は一切の通知サービスに接続されていないことが理解されるべきである。勿論、データコンテキストは、不活動期間以外の理由(例えば、モバイルデバイスの位置がネットワークの範囲外である場合、モバイルデバイス160がオフになっている場合など)で廃棄される場合があることもまた理解されるべきである。本発明のその他の実施形態において、データコンテキストはモバイルデバイス160によってリフレッシュされなくてもよい。通常、データコンテキストのタイムアウト間隔は、通知サービスのタイムアウト間隔よりも短い。データコンテキストがある場合、モバイルデバイス160によって通知サービスに伝送された通知サービス接続メッセージは、本質的に、ネットワークデータアクセス要素150との接続をリフレッシュする。
図2は、本発明の一実施形態に係る、モバイルデバイスが通知サービスの接続を確立し、通知サービス接続メッセージの伝送間隔をスケジュールする、例示的なフローを図示している。図1、図3A、及び図4の例示的な実施形態を参照して、図2の動作を説明する。しかしながら、図2の動作は図1、図3A、及び図4を参照して説明するもの以外の本発明の実施形態によって実行することができ、図1、図3A、及び図4を参照して説明する実施形態は図2を参照して述べるものとは異なる動作を実行することができることが理解されるべきである。
ブロック210において、モバイルデバイス160がデータコンテキストを確立する。データコンテキストは、当該技術分野において既知の多くの方法によって確立することができる。フローはブロック210からブロック220へと移り、モバイルデバイス160が1つ以上の通知サービスの接続を確立する。例えば、図1を参照すると、モバイルデバイス160は、プッシュ型通知サービス110及び120並びにプル型通知サービス130との接続を確立する。本発明の幾つかの実施形態において、これらの接続は、各々伝送制御プロトコル(TCP)接続である。フローはブロック220からブロック230へと移る。
ブロック230において、モバイルデバイスが通知サービス接続メッセージの伝送間隔をスケジュールし、通知サービスの接続の各々についてデバイスのウェイクアップ時刻をスケジュールする。例えば、モバイルデバイス160は、プッシュ型通知サービス110について30分の通知サービス接続メッセージの伝送間隔、プッシュ型通知サービス120について15分の間隔、及びプル型通知サービス130について25分の間隔をスケジュールすることができる。更に、モバイルデバイス160は、これらの伝送間隔と一致するウェイクアップ時刻をスケジュールすることができる。フローはブロック230からブロック240へと移る。
ブロック240において、モバイルデバイス160はスリープモードに入る。既に説明したように、モバイルデバイス160は、ある期間の不活動(例えば、30分間の不活動)後、及び/又はユーザからのコマンドによる直接的な方法(例えば、ユーザがモバイルデバイス160に対してスリープモードに入るようにコマンドを発行することができる)を含む多くの様々な方法でスリープモードに入ることができる。フローはブロック240からブロック250へと移る。ブロック250において、例えば、通知サービスの接続を維持するために、モバイルデバイスのアプリケーションプロセッサがスリープ状態に置かれ、ネットワーク接続要素がアウェイク状態に保たれる。フローはブロック250からブロック260へと移り、アプリケーションプロセッサが通知サービス接続マネージャに従ってウェイクアップして通知サービス接続メッセージを伝送する。
図3Aは、本発明の一実施形態に係る、通知サービスの接続を管理する例示的なモバイルデバイスによって使用されるフレームワークを図示している。例えば、モバイルデバイス160は、図3Aに図示したフレームワークを使用してプッシュ型通知サービス110及び120並びにプル型通知サービス130との接続を管理する。このフレームワークは、1つ以上の通知サービスクライアント310を含んでいる。例えば、図1を参照すると、合計3つの通知サービスクライアント310(例えば、プッシュ型通知サービス110のための通知サービスクライアント、プッシュ型通知サービス120のための通知サービスクライアント、及びプル型通知サービス130のための通知サービスクライアント)が存在することができる。各通知サービスクライアント310は、サービス接続マネージャ320及びネットワークスタック330に個別に連結している。例えば、本発明の一実施形態において、各通知サービスクライアントは独立したプロセスであり、他の通知サービスクライアントとメモリを共有せず、及び/又は他の通知サービスクライアントと通信しない。各通知サービスクライアントは、通知サービス接続マネージャ320に登録をする(360)。
通知サービス接続マネージャ320は、1つ以上のシステムレベルタイマー350、ネットワークスタック330、及びウェイクアップI/Oサブシステム340と連結している。サービス接続マネージャ320は、システムレベルタイマー350を使用して通知サービス接続メッセージの伝送間隔をスケジュールし、数字372で示すようにこれらのタイマーを監視する。更に、サービス接続マネージャ320は、I/Oサブシステム340を使用して、数字370で示すように、モバイルデバイスの通知サービス接続メッセージの伝送間隔に関連するウェイクアップをスケジュールし(例えば、ウェイクアップは通知サービス接続メッセージの伝送間隔の終了間近の時刻にスケジュールすることができる)、通知サービス接続メッセージの伝送ウィンドウを通知サービス接続メッセージの伝送間隔に関連付ける。サービス接続マネージャ320はまた、数字368で示すように、モバイルデバイスがスリープモードにある間、ネットワークスタック330をアライブ状態に保つ。
ネットワークスタック330は、ネットワーク接続要素(例えば、RF接続要素及び/又はWiFi接続要素)のサポートを含む。ネットワークスタック330は、通知サービス(及びネットワーク中のその他のエンティティ)と通信するために使用される。数字366で示すように、ネットワークスタック330は、通知サービス接続マネージャ320にネットワークの状態を提供する。例えば、通知サービス接続マネージャ320は、サービス接続マネージャ320にネットワークの状態(例えば、ネットワーク輻輳、統計など)を通知する。更に、ネットワークスタック330は、ネットワークサービスから対象となるアイテムを受信し、これらを、数字376で示すように適切な通知サービスクライアント310に伝送する。更に、ネットワークスタック330は、通知サービスのうちの1つからの通信を受信した場合(例えば、通知サービス接続メッセージの伝送に対する応答を受信した場合)、これを通知サービスクライアント320に通知する。
本発明の一実施形態によれば、通知サービスの接続のタイマーの時限が経過すると、サービス接続マネージャ320が、通知サービス接続メッセージを伝送するように通知サービスクライアント310に命令し、また、リトライイベントが発生した場合(例えば、リトライイベントには切断された通知サービスの接続の再確立を含めることができる)は、数字364で示すように、通知サービスクライアント310にこれを通知する。数字374で示すように、通知サービスクライアント310は、ネットワークスタック330を使用して、通知サービス接続メッセージを送信する。更に、通知サービスクライアント310は、数字362で示すように、通知サービス接続メッセージの伝送間隔を調整するように、サービス接続マネージャ320に命令することができる。通知サービス接続メッセージの伝送間隔を調整することについては、図6を参照してより詳細に説明する。
図3Bは、本発明の一実施形態に係る図3Aの通知サービス接続マネージャ320の分解図を図示したブロック図である。通知サービス接続マネージャ320は、通知サービス接続メッセージの伝送間隔スケジューラモジュール322、通知サービス接続メッセージの伝送間隔最適化モジュール323、通知サービス接続メッセージの伝送タイマー監視モジュール324、通知サービス接続メッセージのウェイクアップスケジューラモジュール325、通知サービス接続メッセージ発生モジュール326、及びスリープモード管理モジュール327を含んでいる。
本発明の一実施形態によれば、間隔スケジューラモジュール322は、通知サービス接続メッセージの伝送間隔をスケジュールする。更に、間隔スケジューラモジュールは、通知サービス接続メッセージの伝送ウィンドウをスケジュールされた通知サービス接続メッセージの伝送間隔に関連付ける。間隔スケジューラモジュール322は、通知サービス接続メッセージの伝送タイマー監視モジュール324に連結している。本発明の一実施形態において、タイマー監視モジュールは、通知サービス接続メッセージの伝送タイマーなどの1つ以上のシステムレベルタイマー350を監視する。間隔スケジューラモジュール322はまた、通知サービス接続メッセージのウェイクアップスケジューラモジュールにも連結している。本発明の一実施形態によれば、ウェイクアップスケジューラモジュール322は、通知サービス接続メッセージの伝送間隔に基づいてモバイルデバイスのウェイクアップをスケジュールする。
タイマー監視モジュール324は、通知サービス接続メッセージ発生モジュール326に連結している。本発明の一実施形態によれば、メッセージ発生モジュール326は、通知サービス接続メッセージを発行するように、通知サービスクライアント310にアラートする。間隔最適化モジュール323は、間隔スケジューラモジュール322と連結している。本発明の一実施形態によれば、間隔最適化モジュールは、通知サービス接続メッセージの伝送間隔を最適化するが、これについては図6を参照しながらより詳細に説明する。本発明の一実施形態において、スリープモードマネージャ327は、スリープモードにある間、ネットワークスタック330をアウェイク状態に保つ。
図4は、本発明の一実施形態に係る、通知サービスの接続を管理することを図示したフローチャートである。図3A及び図5の例示的な実施形態を参照しながら、図4の動作を説明する。しかしながら、図4の動作は図3A及び図5を参照して説明するもの以外の本発明の実施形態によって実行することができ、図3A及び図5を参照して説明する実施形態は図4を参照して説明するものとは異なる動作を実行することができることが理解されるべきである。図5は、本発明の一実施形態に係る、オーバーラップする通知サービス接続メッセージの伝送ウィンドウに基づいて通知サービス接続メッセージの伝送を同期させるモバイルデバイスを図示した例示的な図表である。
本発明の一実施形態によれば、モバイルデバイス上の各通知サービスクライアントが、図4の動作を独立して実行する。ブロック410において、通知サービスクライアント(例えば、プッシュ型通知サービスクライアント又はプル型通知サービスクライアント)が、通知サービス接続マネージャに登録する。例えば、図3A及び図5を参照すると、通知プッシュ型通知サービス110、120及び通知プル型通知サービス130(各々が通知サービスクライアント310である)は各々、通知サービス接続マネージャ360に独立して登録する。フローはブロック410からブロック412へと移る。
ブロック412において、モバイルデバイス160が、通知サービス毎に通知サービス接続メッセージの伝送間隔及びサービス接続メッセージの伝送間隔に関連するウェイクアップ時刻をスケジュールする。しかし、本明細書内で後述するように、モバイルデバイスの特定の通知サービス接続の実際のウェイクアップ時刻は、その他の通知サービス次第で異なる場合がある。本発明の一実施形態によれば、持続的な通知サービス(例えば、プッシュ型通知サービス)に関する初期のサービス接続メッセージの伝送間隔は、各持続的な通知サービスによって提供される通知サービスのタイムアウトの値に基づく。例えば、図5を参照すると、プッシュ型通知サービス110は30分の通知サービスタイムアウト値を含んでおり(したがって、30分間の期間内にプッシュ型通知サービス110との接続が使用されない場合、プッシュ型通知サービス110はその接続を解除することができる)、プッシュ型通知サービス110は15分の通知サービスのタイムアウト値を含んでいる。本発明の理解を平易にするために、図5の中では、プッシュ型通知サービス110及び120のための通知サービス接続メッセージの伝送間隔をタイムアウト値と一致させている。例えば、通知サービス接続メッセージの伝送間隔は、プッシュ型通知サービス110に関しては30分であり、プッシュ型通知サービス120に関しては15分である。しかし、通知サービス接続メッセージの伝送間隔は、タイムアウト値と一致しない場合がある(例えば、間隔はタイムアウト値よりも短い場合がある)ことが理解されるべきである。
また、本発明の幾つかの実施形態において、通知サービス接続メッセージの伝送間隔は最適化することができ、かつ時間と共に変化することも理解されるべきであるが、これについては、図6を参照しながらより詳細に説明する。更に、本発明の理解を平易にするために、各通知サービスの接続に関するデフォルトのウェイクアップ時刻は、通知サービス接続メッセージの伝送間隔の終わりにスケジュールされている。また、図5の説明全体を通して、持続的な通知サービス(例えば、プッシュ型通知サービス110及び120)に送信される通知サービス接続メッセージに関しては、通知サービス接続メッセージの伝送を、「ハートビート」又はただ単に「ビート」と呼ぶこともある。
図4に戻って、モバイルデバイス160はまた、通知サービス接続メッセージの伝送ウィンドウをメッセージの伝送間隔と関連付け、メッセージの伝送間隔に関連する1つ以上のシステムタイマーを設定する。本発明の一実施形態によれば、通知サービス接続メッセージの伝送ウィンドウは、メッセージ伝送間隔の一部分であり、通知サービス接続メッセージを伝送できる部分である。例えば、ウィンドウ内の任意の時点でモバイルデバイスがアウェイク状態である場合、モバイルデバイスは通知サービス接続メッセージを伝送することができる。図5において、通知サービス接続メッセージの伝送ウィンドウは、通知サービス接続メッセージの伝送ウィンドウのおよそ3分の1である。例えば、プッシュ型通知サービス110の通知サービス接続メッセージの伝送ウィンドウは、スケジュールされたビートメッセージの伝送の10分前(例えば、スケジュールされたビートの10分前)であり、プッシュ型通知サービス120の通知サービス接続メッセージの伝送ウィンドウは、スケジュールされたビートの5分前であり、プル型通知サービス130の通知サービス接続メッセージの伝送ウィンドウは、スケジュールされたプルの8分前である。図5は、通知プッシュ型通知サービス110及び120並びに通知プル型通知サービス130が同時に(例えば、時刻0の時点で)開始するように図示されているものの、これは例示を目的とするものであり、これらの通知サービスは異なる時刻に開始することができることが理解されるべきである。図5を参照すると、プッシュ型通知サービス110は30分の時点に初期にスケジュールされたハートビート及びウェイクアップ時刻を有しており、プッシュ型通知サービス120は15分の時点に初期にスケジュールされたハートビート及びウェイクアップ時刻を有しており、プル型通知サービス130は25分の時点に初期にスケジュールされたプル型メッセージ及びウェイクアップ時刻を有している。
図4を参照して、フローはブロック412からブロック414へと移り、モバイルデバイスがサービス接続メッセージタイマー(例えば、各サービスの接続に関連するシステムレベルタイマー)を監視し、フローはブロック416へと移る。例えば、図5を参照すると、モバイルデバイスは、プッシュ型通知サービス110及び120並びにプル型通知サービス130のタイマーを監視する。図5では、時刻5の時点で、モバイルデバイスがスリープモード510に入る。このように、本発明の一実施形態によれば、アプリケーションプロセッサ及びアプリケーションプロセッサのオペレーティングシステムはオフラインでありながら、ネットワーク接続要素はアウェイク状態に留まる。
ブロック416において、モバイルデバイスは、時刻が通知サービス接続メッセージの伝送ウィンドウ内であるか否かを判定する。時刻が通知サービス接続メッセージの伝送ウィンドウ内ではない場合、フローはブロック418へと移り、グローバル通知サービス接続メッセージのタイマーが終了したか否かが判定される。グローバル通知サービス接続メッセージのタイマーについては、本明細書内でより詳細に後述する。時刻が通知サービス接続メッセージの伝送ウィンドウ内である場合、フローはブロック420へと移り、モバイルデバイスがアウェイク状態にあるか否かが判定される。デバイスがアウェイク状態にある場合、フローはブロック430へと移り、モバイルデバイスが通知サービス接続メッセージを伝送する。モバイルデバイスがアウェイク状態にない場合(即ち、スリープモードにある場合)、フローはブロック422へと移り、通知サービス接続メッセージの伝送タイマーの時限が経過したか否かが判定される。例えば、図5を参照すると、プッシュ型通知サービス120は時刻10の時点から始まるウィンドウ540の範囲内であり、モバイルデバイス160はアウェイク状態にない(スリープモードにある)。タイマーの時限が経過していない場合、フローはブロック420へと戻る。タイマーの時限が経過している場合、フローはブロック424へと移り、モバイルデバイスがウェイクアップし、フローはブロック430へと移って、モバイルデバイスが通知サービス接続メッセージを伝送する。
図5を参照すると、プッシュ型通知サービス120に関連する通知サービス接続メッセージの伝送タイマーは、時刻15の時点で時限が経過する。したがって、モバイルデバイス160は時刻15の時点でウェイクアップし(破線ウェイクアップ560によって表される)、通知サービスの接続をリフレッシュするために通知サービス接続メッセージがプッシュ型通知サービス120に伝送される(ビート570によって表される)。ウェイクアップ時刻560の時点で、モバイルデバイス160は、プッシュ型通知サービス110又はプル型通知サービス130には通知サービス接続メッセージを伝送しないことが理解されるべきである。例えば、プッシュ型通知サービス110は、30分のビート間隔を有する。したがって、プッシュ型通知サービス110との接続をリフレッシュするために、ビートは最大30分までに伝送すればよい(即ち、接続は、30分毎にリフレッシュするだけでよい)。仮に15分のビート間隔を有するプッシュ型通知サービス120にビートが伝送される度毎にモバイルデバイス110がビートをプッシュ型通知サービス110に伝送したとすると、事実上、必要な数の2倍のビートメッセージが伝送されることとなる。このように、本発明の一実施形態によれば、特定の通知サービスの通知サービス接続メッセージの伝送ウィンドウの期間中にモバイルデバイスがアウェイク状態にある場合にのみ、モバイルデバイスがその特定の通知サービスに通知サービス接続メッセージを伝送する。ウェイクアップ560はプッシュ型通知サービス110又はプル型通知サービス130の通知サービス接続メッセージの伝送ウィンドウとオーバーラップしないので、帯域幅を節約するために、モバイルデバイスはこれらの通知サービス向けの通知サービス接続メッセージを伝送しない。
本発明の一実施形態によれば、モバイルデバイスは、特定の通知サービスに通知サービス接続メッセージを伝送すると同時に、その特定の通知サービスに関連する通知メッセージ伝送タイマーをリセットする。例えば、モバイルデバイス160は、ビートメッセージ570を伝送すると同時にプッシュ型通知サービス120向けの通知サービス接続メッセージの伝送タイマーをリセットする。
時刻16の時点で、デバイスはスリープモード512に入る。換言すれば、モバイルデバイス160は通知プッシュ型通知サービス120との通知サービスの接続をリフレッシュするために特にウェイクアップしたのであって、デバイスは電池リソースを節約するために再度スリープモードに入る。時刻25の時点で、プル型通知サービス130に関連する通知サービス接続メッセージの伝送タイマーの時限が経過する(例えば、その時限はウィンドウ542の終わりである)。したがって、モバイルデバイス160は時刻25の時点でウェイクアップし(破線ウェイクアップ562によって表される)、対象となるアイテムをチェックするために通知サービス接続メッセージがプル型通知サービス130に伝送される(チェック576によって表される)。更に、プッシュ型通知サービス110のウィンドウ544がウェイクアップ562の時刻とオーバーラップし(ウィンドウ544は時刻20の時点で始まり、時刻30の時点で終わる)、プッシュ型通知サービス120のウィンドウ546がウェイクアップ562の時刻とオーバーラップする(ウィンドウ546は時刻25の時点で始まり、時刻30の時点で終わる)ので、モバイルデバイス160は、プッシュ型通知サービス110に通知サービス接続メッセージを伝送し(ビート572によって表される)、プッシュ型通知サービス120に通知サービス接続メッセージを伝送する(ビート574によって表される)。このように、モバイルデバイス160は、ウェイクアップ562の間にプッシュ型通知サービス110及び120並びにプル型通知サービス130の各々に通知サービス接続メッセージを伝送する。
本発明の一実施形態によれば、モバイルデバイス160がプッシュ型通知サービス110、プッシュ型通知サービス120、及びプル型通知サービス130に通知サービス接続メッセージを送信したので、モバイルデバイス160は、各通知サービスの通知サービス接続メッセージの伝送タイマーをリセットし、通知サービス接続メッセージの伝送時刻及びウェイクアップ時刻をスケジュールし直す。例えば、プッシュ型通知サービス110には時刻25の時点で通知サービス接続メッセージが伝送されたので、プッシュ型通知サービス110が時刻60の時点にスケジュールされている通知サービス接続メッセージの伝送時刻を有する代わりに、モバイルデバイス160は、通知サービス接続メッセージの伝送を時刻55の時点にスケジュールする。別の例として、プッシュ型通知サービス120には時刻25の時点で通知サービス接続メッセージが伝送されたので、プッシュ型通知サービス120が時刻45の時点にスケジュールされている通知サービス接続メッセージの伝送時刻を有する代わりに、モバイルデバイス160は、通知サービス接続メッセージの伝送を時刻40の時点にスケジュールする。時刻26の時点で、モバイルデバイス160がスリープモード514に入る。
一実施形態において、オーバーラップする通知サービス接続メッセージの伝送ウィンドウに基づいて通知サービス接続メッセージの伝送を同期させることにより、電池リソースが節約されることが理解されるべきである。例えば、同じウェイクアップ期間中に複数の通知サービス向けの通知サービス接続メッセージの伝送を統合することによって電池リソースが節約される。例えば、モバイルデバイスをウェイクアップさせると、かなりの量の電池リソースが使用される。更に、デバイスをウェイクアップさせるときには、通知サービス接続メッセージの伝送よりも大きな電池リソースを使用する。したがって、同じウェイクアップ期間中に複数の通知サービスに通知サービス接続メッセージを送信することによって、電池リソースが節約される(例えば、モバイルデバイスは、各通知サービス接続メッセージの伝送毎に独立してスリープモードからウェイクアップすることがない)。このように、本発明の幾つかの実施形態において、オーバーラップする通知サービス接続メッセージの伝送ウィンドウに基づいて通知サービス接続メッセージの伝送を同期させることにより、モバイルデバイスがウェイクアップしなければならない回数が減少し、その結果、電力消費量が低減する。通知サービスクライアントの数が増えるほど電池リソースの節約量も増加することが理解されるべきである。
更に、通知サービス接続メッセージの伝送は必ずしもこれらのスケジュールされた伝送時刻に実行されない(例えば、通知サービス接続メッセージは、スケジュールされたこれらの伝送時刻よりも前に送信することができる)ものの、スケジュールされた伝送時刻からの逸脱は小さい(例えば、通知サービス接続メッセージの伝送ウィンドウは通常、通知サービス接続メッセージの伝送間隔の約3分の1である)。このように、本発明の実施形態は、通知サービス接続メッセージをそれらのスケジュールされた伝送時刻の近辺で伝送することにより、帯域幅を節約する。
時刻40の時点で、プッシュ型通知サービス120に関連する通知サービス接続メッセージの伝送タイマーの時限が経過する(例えば、その時限はウィンドウ548の終わりである)。したがって、モバイルデバイス160は時刻40の時点でウェイクアップし(破線ウェイクアップ564によって表される)、プッシュ型通知サービス120の接続をリフレッシュするために通知サービス接続メッセージがプッシュ型通知サービス120に伝送される。ウェイクアップ564はプッシュ型通知サービス110又はプル型通知サービス130の通知サービス接続メッセージの伝送ウィンドウとオーバーラップしないので、帯域幅を節約するために、モバイルデバイスはこれらの通知サービスに通知サービス接続メッセージを伝送しない。時刻41の時点で、モバイルデバイス160がスリープモード516に入る。
時刻47の時点で、モバイルデバイス160は、独立したイベントによってスリープモード516からウェイクアップする(独立したウェイクアップ566によって表される)。独立したウェイクアップには、ユーザとの相互作用(例えば、ユーザがスリープモードをディスエーブルする)、対象となるアイテムの受信(例えば、プッシュ型通知サービス110からの電子メールのメッセージの受信)、通話及び/又はテキストメッセージの受信などを含む、多くの原因を挙げることができる。モバイルデバイスは、ウェイクアップ後、その時刻がいずれかの通知サービス接続メッセージの伝送ウィンドウ内であるか否かを判定する。例えば、時刻47は、プッシュ型通知サービス110のウィンドウ552(これは時刻45の時点に始まり、時刻55の時点に終わる)の範囲内であり、プル型通知サービス130のウィンドウ550(これは時刻42の時点に始まり、時刻50の時点に終わる)の範囲内である。モバイルデバイスがアウェイク状態にあり、かつ通知サービス接続メッセージの伝送ウィンドウ内にあるという事実を活用して、モバイルデバイスはプッシュ型通知サービス110に通知サービス接続メッセージを伝送して(ビート582によって表される)プッシュ型通知サービスの接続110をリフレッシュし、かつプル型通知サービス130に通知サービス接続メッセージを送信して(チェック580によって表される)対象となるアイテムをチェックする。更に、簡潔性のために図5には図示していないものの、モバイルデバイス160は通知サービス接続メッセージの伝送タイマーをリセットし、プッシュ型通知サービス110及びプル型通知サービス130の通知サービス接続メッセージの伝送時刻及びウェイクアップをスケジュールし直す。時刻49の時点で、モバイルデバイスがスリープモード518に入る。
時刻55の時点で、プッシュ型通知サービス120に関連する通知サービス接続メッセージの伝送タイマーの時限が経過する(例えば、その時限はウィンドウ554の終わりである)。したがって、モバイルデバイス160は時刻55の時点でスリープモード518からウェイクアップし(破線ウェイクアップ568によって表される)、プッシュ型通知サービス120の接続をリフレッシュするために通知サービス接続メッセージがプッシュ型通知サービス120に伝送される(ビート584によって表される)。プッシュ型通知サービス110のウィンドウ552は、本来、ウェイクアップ568とオーバーラップするところであったものが、時刻47の時点でビート582が伝送され、通知サービス接続メッセージタイマーがリセットされ、通知サービス接続メッセージの伝送時刻がスケジュールし直されたため、モバイルデバイス160はプッシュ型通知サービス110に通知サービス接続メッセージを伝送しない点に注目すべきである。
図4を参照すると、前述のように、ブロック418において、グローバル通知サービス接続メッセージタイマーの時限が経過したか否かが判定される。本発明の一実施形態によれば、モバイルデバイスは、定期的な間隔で(例えば、1日に4回)ほぼ同時期に(例えば、互いに1分以内に)各通知サービスに通知サービス接続メッセージを伝送する。グローバル通知サービス接続メッセージのタイマーの時限が経過した場合、フローはブロック426へと移り、モバイルデバイスがアウェイク状態にあるか否かが判定される。モバイルデバイスがアウェイク状態にある場合、フローはブロック430へと移り、モバイルデバイスが各通知サービスに通知サービス接続メッセージを伝送する。モバイルデバイスがアウェイク状態にない場合、フローはブロック428へと移り、モバイルデバイスがウェイクアップし、フローはブロック430へと移ってモバイルデバイスが各通知サービスに通知サービス接続メッセージを伝送する。
複数のモバイルデバイスが同一のネットワークを通じて同一の通知サービスにアクセスしている可能性があるので(例えば、図1を参照すると、本発明の一実施形態によれば、モバイルデバイス160及びモバイルデバイス170は、同一のネットワークデータアクセス要素150と少なくとも部分的に連結している)、グローバル通知サービス接続メッセージのタイマーは、全てのモバイルデバイスが通知サービス接続メッセージを同時に伝送しないように設定されている。本発明の一実施形態によれば、これらの通知サービス接続メッセージの伝送タイマーは、暗号によってランダム化されている(したがって、1日中に亘って分散されている)。例えば、各モバイルデバイスの一意識別子(例えば、ユニバーサル一意識別子(UUID)、メディアアクセス制御アドレス(MAC)など)の所与の時間間隔に対する剰余を求め、これらグローバル通知サービス接続メッセージの伝送時刻が決定される。
前述のように、本発明の幾つかの実施形態において、持続的な通知サービス(例えば、プッシュ型通知サービス)の通知サービス接続メッセージの伝送間隔を最適化することができる。換言すれば、本発明の幾つかの実施形態において、持続的な通知サービスへの接続を維持しながら、持続的な通知サービス向けに最も少ない数の通知サービス接続メッセージを伝送するために、メッセージ伝送間隔が最適化される。図6は、本発明の一実施形態に係る、通知サービス接続メッセージの間隔を最適化することを図示した例示的な状態図である。ブロック610において、初期の通知サービス接続メッセージの伝送間隔が決定される。例えば、初期の通知サービス接続メッセージの伝送間隔は、特定の通知サービスのタイムアウトの間隔に基づくことができる。接続がアクティブであるとモバイルデバイスが判定した場合、メッセージ伝送間隔はN量(例えば5分)だけ増加する(612)。例えば、通知サービスから応答メッセージが受信された場合、接続はアクティブであると判定できる。
接続がアクティブではないとモバイルデバイスが判定した場合、メッセージ伝送間隔はY量(例えば、5分)だけ減少し(614)、改良した通知サービス接続メッセージの伝送間隔に入る(616)。接続がアクティブであるとモバイルデバイスが判定した場合、メッセージ伝送間隔はNよりも小さなM量(例えば、2分)だけ増加する(618)。接続がアクティブではないとモバイルデバイスが判定した場合、メッセージ伝送間隔はYよりも小さなX量だけ減少する(620)。
ある時間経過後、接続メッセージの伝送間隔は、安定した通知サービス接続メッセージの伝送間隔の状態に入る(622)。この状態にあるときに接続がアクティブであれば、間隔の値は現行の値に留まる(624)。本発明の幾つかの実施形態において、状態622でZ量の時間が経過後(例えば、8時間後)、接続メッセージの伝送間隔は、初期の通知サービス接続メッセージの伝送間隔(610)にリセットされ(623)、間隔の最適化のプロセスが再開される。このように、通知サービス接続メッセージの伝送間隔が比較的高頻度のメッセージ伝送間隔(例えば、5分毎のメッセージ)に定着した場合、ある時間経過後、最適な伝送間隔を決定するために、最適化プロセスが再開される。しかし、接続がアクティブではない場合、間隔は減少し(例えば、半減)し(626)、間隔は、通知サービス接続バックオフメッセージの伝送間隔に入る(628)。バックオフ状態にあるときに接続がアクティブではない場合、間隔は減少(例えば、半減)する(630)。
通知サービスの接続がアクティブではない場合、接続を再確立する必要があることが理解されるべきである。本発明の一実施形態によれば、ウェイクアップの間隔に従って通知サービスの接続のリトライがスケジュールされる。例えば、図5を参照すると、本発明の一実施形態において、ビート572が時刻25の時点でプッシュ型通知サービス110との接続のリフレッシュに失敗した場合、モバイルデバイスは次のウェイクアップで通知サービスの接続の再確立を図る。このように、モバイルデバイスは、時刻40の時点のウェイクアップ564の間に、プッシュ型通知サービス110との通知サービスの接続を再確立することを図ることができる。
プロキシベースの通知サービス
上述のように、通知サービスは、モバイルクライアントの電池寿命を犠牲にして最新情報を取得する機会をユーザに提供する。更に、ユーザはまた、プロトコルオーバーヘッドに関連したデータに対して支払いをする必要があるかもしれず、ユーザが無制限データプランを有していない場合、これは些細なこととは言えないかもしれない。実際にユーザデータの活動が有る無しに拘わらず、モバイルクライアントは、定期的に通知サービス接続メッセージを送ってデータリンクを維持する必要がある。その結果、モバイルクライアントはスリープ状態から定期的にウェイクアップして通知サービス接続メッセージを送信する必要があり、加えて、サーバからの応答もまたモバイルデバイスをウェイクアップさせ、したがって、電池残量をより多く消費する。ユーザが積極的なプッシュ間隔を選択したとき、又はユーザが複数のプッシュ型サービスに登録したときは、電池の電力消費量が増加する。
例えば、マイクロソフトエクスチェンジのサーバの場合、一般的なハートビート間隔は8〜28分の範囲である。8分間隔では、たとえユーザがデータを何も受信しなくても、モバイルデバイスは通知サービス接続メッセージを送信するために1日に最大180回ウェイクアップする必要があり、更にまた、サーバからの応答はサーバの設定によって、通常1間隔分遅延するので、これに対応するサーバからの応答を処理するために、1日にあと約180回ウェイクアップする必要がある。ユーザが複数のプッシュ型サービスに登録した場合、又はユーザが積極的なプッシュ間隔を選択した場合は、状況は更に悪化することとなる。更に、データサービスに対してバイト単位で支払いを行うユーザにとっては、プッシュ型通知サービス接続メッセージもまたユーザに費用を生じさせるかもしれない。平均ペイロードがパケット当たり200バイトで間隔が8分であると仮定すると、オーバーヘッドは月当たり約2MBである。そしてこの数字は、ユーザが登録しているプッシュ型サービスの数と共に線形的に増加する。
一実施形態において、モバイルクライアントの電池寿命に対する需要及び通知に関連する追加的なデータの費用を緩和するために、プロキシが使用される。この実施形態において、このプロキシを使用してモバイルクライアント向けの通知サービスを管理する。プロキシは、モバイルクライアント向けの1つ以上のサービスを管理することができ、及び/又は1つ以上のクライアント向けの通知サービスを処理することができる。通知サービスの接続を管理するために、プロキシはモバイルクライアントからモバイルクライアント向けのプロキシへの1つ以上の通知サービスに関する要求を受信し、対応する通知サーバに通知サービス接続メッセージを定期的に送信し、モバイルクライアントからの通知を転送し、モバイルクライアントからの更新を処理し、モバイルクライアントのサインアウトの要求を処理する。
一実施形態において、プロキシは、パーソナルコンピュータ、ラップトップ、サーバ、モバイルクライアントなどの独立型デバイスである。例えば、一実施形態において、プロキシは、別個の電源及び必要に応じて低コストのデータ接続を伴う独立型デバイスである。別の実施形態では、プロキシは、モバイルクライアントの一部である。この実施形態では、モバイルクライアントは、第1のオペレーティングシステムを実行するアプリケーションプロセッサ、及び1つ以上の異なるオペレーティングシステムを実行する1つ以上のネットワーク接続要素を含んでいる。更に、アプリケーションプロセッサの電力消費量は、ネットワーク接続要素の電力消費量よりも大きくてもよい。更に、1つ以上のネットワーク接続要素が、これらネットワーク接続要素のそれぞれのオペレーティングシステム内でプロキシを遂行する。ネットワーク接続要素内でプロキシを遂行することにより、アプリケーションプロセッサはスリープモードに入り、モバイルクライアントの電池寿命を節約することができる。
図9Aは、本発明の一実施形態に係る、独立型プロキシを含む例示的なコンピューティング環境900を図示している。コンピューティング環境900は上述の図1のコンピューティング環境100と類似しており、コンピューティング環境900は、各々が1つ以上のネットワークデータアクセス要素150と連結しているモバイルデバイス904及び170を含んでいる。図1の場合と同様に、ネットワークデータアクセス要素150は、セルラーネットワーク(例えば、GSM、EDGE、GPRS、CDMA、UMTS、TD−CDMA、LTE、若しくはその他のセルラーネットワーク)、LANなどをはじめ、本発明のいろいろな実施形態の中の様々な種類のネットワークの一部であることができる。しかしながら、コンピューティング環境100とは異なり、コンピューティング環境900では、モバイルデバイス904は、プロキシ902を使用してモバイルデバイス904に代わってサービスの接続を管理させる。一実施形態において、プロキシ902は、プロキシ902があたかも、その機能を実行しているモバイルクライアント904であるかのように、通知サービス接続メッセージを伝送し、応答を受信する。プロキシ902については、以下に更に説明する。
図1について上述したように、モバイルデバイス904は、アプリケーションプロセッサ162及びネットワーク接続要素164を含んでいる。モバイルデバイス160は、ネットワーク接続要素164及びプロキシ902を介して、データコンテキスト(例えば、PDPコンテキスト)を通じてネットワークデータアクセス要素150と通信する。更に、ネットワークデータアクセス要素150にはWAN 140が連結している。プッシュ型通知サービス110及び120並びにプル型通知サービス130が、WAN 140と連結している。本発明の一実施形態によれば、モバイルデバイス902のユーザは、プロキシ904を介して、プッシュ型通知サービス110及び120並びにプル型通知サービス130にアクセスし、これらを使用する(プッシュ型通知サービス110及び120並びにプル型通知サービス130が、ユーザの対象となるアイテムを提供する)。例えば、プッシュ型通知サービス110がモバイルデバイス902のユーザ向けにプロキシ904を介して個人用プッシュ型電子メールアカウントを提供しているかもしれない一方で、プッシュ型通知サービス120はモバイルデバイス160のユーザ向けに業務用プッシュ型電子メールアカウントを提供しているかもしれない。
本発明の一実施形態において、アプリケーションプロセッサ162は、モバイルデバイス902の中央処理装置である。一実施形態において、図1について説明したように、アプリケーションプロセッサ162は、モバイルデバイス902のオペレーティングシステムを処理する。
本発明の一実施形態によれば、モバイルクライアント160について図1で説明したように、モバイルデバイス902は、スリープモードに入ることができる。更に、モバイルクライアント904は、プロキシ902を使用することにより、プロキシがモバイル904のサービスの接続を管理する間もスリープモードにあることができる。本発明の一実施形態によれば、スリープモードにある間、モバイルデバイス902は、アプリケーションプロセッサ162を一時的にディスエーブルする(アプリケーションプロセッサ162は、一時的にディスエーブルされているときには実質上、電力を消費しないでいることができる)。
図1について説明したように、本発明の幾つかの実施形態において、接続の持続性を維持するために、持続的な通知サービスの接続(例えば、プッシュ型通知サービス110及び120)が定期的にリフレッシュされる。図1について説明したように、モバイルクライアントが持続的な通知サービスの接続を定期的にリフレッシュする代わりに、モバイルクライアントに代わってプロキシ902がこれら持続的な通知サービスの接続をリフレッシュする。例えば、モバイルデバイス904がその接続をアクティブに使用しない場合は、プッシュ型通知サービス110及び120は、モバイルデバイス904との接続をタイムアウトさせることができる(したがって、そのユーザ向けのプッシュ型通知サービスが停止される)。しかし、この実施形態では、プロキシ902は、モバイルクライアント904に代わってこの接続をアクティブに使用する。一実施形態において、プロキシ902は、モバイルクライアント904に代わって、ある定期的な間隔でプッシュ型通知サービス110及び120に通知サービス接続メッセージを伝送して接続をリフレッシュする。プロキシ902がモバイルクライアント904に代わって通知サービスの接続を管理する間、モバイルクライアント904はスリープモードに入ることができるので、モバイルクライアント904の電池残量が節約される。通知サービス接続メッセージが、プロキシ902がまだ接続されている(そしておそらくプッシュ型通知サービスから対象となるアイテムを引き続き受信することを望んでいる)ことを、プッシュ型通知サービス110及び120に通知する。プロキシ902がプッシュ型通知の接続をリフレッシュすることにより、モバイルデバイスがサービスと接続されたままでいることを望んでいるとの通知を、プッシュ型通知サービスのサーバが受けることが、理解されるべきである。更に、プッシュ型通知の接続をリフレッシュすることにより、プッシュ型通知サービスのサーバに至る経路上の各ネットワーク要素が、接続を維持するように通知を受ける(さもなければ、例えば、ネットワーク要素は、その接続に関連するネットワークリソースをクリアすることができる)。一実施形態において、通知サービス接続メッセージは、ピングメッセージ、ハイパーテキスト転送プロトコル(HTTP)要求、又は当該技術分野において既知のその他のキープアライブメッセージであってもよい。通知サービスは、通知サービス接続メッセージに応答してモバイルデバイス902向けの接続がアクティブであることをプロキシ902に通知することができる。本発明の幾つかの実施形態において、通知サービスからの対象となるアイテムの受信もまた、持続的な通知サービスの接続をリフレッシュすることが理解されるべきである。
上述のように、通知サービス接続メッセージを伝送する間隔は、個々の通知サービス毎に異なってもよい。更に、本発明の幾つかの実施形態において、モバイルデバイス904は、ネットワークデータの接続性(例えば、キャリアのネットワーク内のNATルータ、ファイアウォール、又はネットワーク内のその他のネットワーク要素)を維持するために、ネットワークデータアクセス要素150との接続を定期的にリフレッシュする必要がある。この実施形態では、モバイルクライアント904に代わって通知サービスの接続を管理することによって、プロキシ902は、これらネットワークデータアクセス要素150の接続をリフレッシュする。
一実施形態において、プロキシ902は、通知サービス及びモバイルクライアントの更新を管理する。例えば、一実施形態において、プロキシ902は、モバイルクライアント904からサービス接続要求を受信し、これらサービス接続要求をそれぞれのサービスプロバイダ(例えば、プッシュ型通知サービス110及び120)に転送する。更に、プロキシ902は、モバイルクライアント904に代わってサービスの接続を管理する。例えば、一実施形態において、プロキシ902は、モバイルクライアント904に代わって、プッシュ型通知サービス110及び120に通知サービス接続メッセージを伝送して接続をリフレッシュする。上述のように、この通知サービス接続メッセージは、ピングメッセージ、HTTP要求、又は当該技術分野において既知のその他何らかのキープアライブメッセージであってもよい。
プロキシ902が通知メッセージを受信した場合(通知サービス接続メッセージに応答してであれ、通知サーバのうちの1つによってプロキシにプッシュされたのであれ、あるいはそれ以外の理由であれ)、プロキシ902は、モバイルクライアント904のアプリケーションプロセッサ162にこの通知メッセージを転送することができ、又はこの通知メッセージをその他の通知メッセージとバンドルして、後ほどバンドルしたメッセージを送信するように、この通知メッセージを保持しておくことができる。更に、プロキシ902は、サインイン/サインアウト要求、アドレス変更などのようなモバイルクライアント904からの更新も管理する。一実施形態において、プロキシ902は、モバイルクライアント904のアプリケーションプロセッサ162から受信した更新を管理する。プロキシの機能については、以下に図10〜図13で更に説明する。
上述のように、プロキシは、プロキシ902のように独立型のデバイスであることもでき、又はモバイルクライアント内に組み込むこともできる。図9Bは、本発明の一実施形態に係る、モバイルクライアント954内に組み込まれたプロキシ952を含む例示的なコンピューティング環境950を図示している。図9Bでは、プロキシ952がモバイルクライアント954の一部として組み込まれている。一実施形態において、プロキシ952は、ネットワーク接続要素956の一部である。この実施形態では、プロキシ952はネットワーク接続要素956のオペレーティングシステムの下で実行され、このことが、モバイルクライアント954の電力消費量を節約するように、アプリケーションプロセッサが低電力モード又は「スリープモード」に入ることを可能にしている。例えば、一実施形態において、プロキシ902は、3Gセルラーネットワーク接続を動作させるために使用される3Gセルラーネットワーク接続要素のオペレーティングシステムの下で実行される。この例では、このネットワーク接続要素のオペレーティングシステムは、ソフトウェア、ファームウェア、ハードウェアなどであることができる。
一実施形態において、プロキシは、ネットワーク接続要素956のベースバンドプロセッサの動作環境の一部であることができ、このことが、モバイルクライアント954がアプリケーションプロセッサ162をウェイクアップさせることを回避し、電池を節約することを可能としている。この実施形態では、プロキシ952が通知サービスに関連するプロトコルオーバーヘッドの大半を引き受け、データが利用可能なときにはモバイルクライアント954のアプリケーションプロセッサ162が通知を受ける。
一実施形態において、プロキシ952は、図9Aで上述したプロキシ902と同様の機能を実行する。例えば、一実施形態において、プロキシ952は、アプリケーションプロセッサ162からサービス接続要求を受信し、これらサービス接続要求をそれぞれのサービスプロバイダに転送する(例えば、プッシュ型通知サービス110及び120など)。更に、プロキシ952は、モバイルクライアント954に代わってサービスの接続を管理する。例えば、一実施形態において、プロキシ952は、モバイルクライアント954に代わって、プッシュ型通知サービス110及び120に通知サービス接続メッセージを送信して接続をリフレッシュする。上述のように、この通知サービス接続メッセージは、ピングメッセージ、HTTP要求、又は当該技術分野において既知のその他何らかのキープアライブメッセージであってもよい。
プロキシ952が通知メッセージを受信した場合(通知サービス接続メッセージに応答してであれ、通知サーバのうちの1つによってプロキシにプッシュされたのであれ、あるいはそれ以外の理由であれ)、プロキシ952は、モバイルクライアント954のアプリケーションプロセッサ162にこの通知メッセージを転送することができ、又はこの通知メッセージをその他の通知メッセージとバンドルして、後ほどバンドルしたメッセージを送信するように、この通知メッセージを保持しておくことができる。更に、プロキシ952は、サインイン/サインアウト要求、アドレス変更などのようなモバイルクライアント954からの更新も管理する。一実施形態において、プロキシ952は、モバイルクライアント954のアプリケーションプロセッサ162から受信した更新を管理する。プロキシの機能については、以下に図10〜図13で更に説明する。
図10は、本発明の一実施形態に係る、クライアントとサーバとの間のサービスの接続を代行するプロキシのブロック図である。図10において、クライアント1002がプロキシ1004と通信し、プロキシ1004がサーバ1006と通信する。一実施形態において、クライアント1002は、上述のモバイルクライアント904又は954であることができる。別の実施形態では、プロキシ1004は、上述のプロキシ902又は952であることができる。更なる実施形態において、サーバは、上述のプッシュ型通知サービス110又は120のうちの1つである。
図10では、クライアント1002がプロキシ1004にサインイン要求(1008A)を伝送する。一実施形態において、クライアント1002のユーザがプッシュ型サービスをオンにしたとき、又はクライアントが起動したとき(例えば、デバイスの電源がオンになった)ときに、クライアント1002がサインイン要求を送信する。一実施形態において、サインイン要求は、プロキシを確立するために使用できる情報(例えば、クライアント識別子、クライアントIPアドレス、サーバIPアドレス、トランザクション識別子、サービスの品質(QoS)パラメータ、電池の最大化など)を含んでいる。一実施形態において、クライアント識別子は、クライアントを一意的に識別する識別子(例えば、国際移動体装置識別番号(IMEI)、MACアドレスなど)である。一実施形態において、クライアントIPアドレスはクライアント1002のIPアドレスであり、プロキシは、このIPアドレスを使用してデータをクライアントに送信する。サーバIPアドレスは、それぞれの通知サービスのサーバのIPアドレスである。一実施形態において、サインイン要求は、通知サービス向けの1つ以上の要求を含んでいる。この実施形態では、サインイン要求は、1つより多いサーバIPアドレスを要求する。
更に、サインイン要求はまた、遅延などのQoSパラメータを含むこともできる。この実施形態では、遅延は、どの種の遅延をユーザが許容できるかを示すパラメータである。更に、サインイン要求は、ユーザが電池寿命を最大化することを希望するか否かを示すためのパラメータを追加的に含むことができる。
サインイン要求の受信に応答して、プロキシはトランザクション識別子をエコーバックし、サインイン応答(1008B)をクライアント1002に送信する。一実施形態において、サインイン応答は、クライアント識別子、クライアントIPアドレス、及びトランザクション識別子を含んでいる。一実施形態において、トランザクション識別子は、プロキシのクライアントとのセッションを識別する識別子である。
サインイン要求からの情報を使用して、プロキシ1004がサーバ1006に通知サービス接続メッセージを送信してクライアント1002に代わって接続をリフレッシュする(1010A〜F)。例えば、プロキシ1004は、サーバ1006に通知サービス接続メッセージ(1010A、1010C、及び1010E)を定期的に送信する。一実施形態において、通知サービス接続メッセージは、ピングメッセージ、HTTP要求、又は当該技術分野において既知のその他何らかのキープアライブメッセージである。これに応答して、サーバ1006が、ペイロードにデータを含まない応答(1010B及び1010D)又はペイロードにデータを含む応答(1010F)で応答することができる。一実施形態において、データを含まない応答は、クライアント1002向けの通知メッセージがないことを示している。データがない場合、プロキシ1004はクライアントに通知をせず、クライアント1002をスリープモードからウェイクアップさせる可能性がないので、電池残量が節約される。
一実施形態において、データを含む応答は、クライアント1002向けの1つ以上の通知メッセージを含む応答である。一実施形態において、及びデータを含む応答の受信に応じて、プロキシ1004がクライアント1002にデータを送信する(1012)。この実施形態では、プロキシ1004は、1つ以上の通知メッセージをクライアント1002に送信する。更に、クライアント1002がスリープモードにある場合、クライアント1002が1つ以上の通知メッセージを処理できるように、1つ以上の通知メッセージの受信がクライアント1002をスリープモードからウェイクアップさせる。
一実施形態において、プロキシ1004は、サーバ1006からデータを含む応答を受信すると同時に、1つ以上の通知メッセージをクライアント1002に転送する。別の方法の実施形態において、プロキシ1004は、1つ以上の通知メッセージを他の通知メッセージとバンドルし、バンドルした通知メッセージをクライアント1002に送信することができる。この実施形態では、通知メッセージをバンドルすると、通知メッセージがクライアント1002に転送される回数が低減するので、クライアントの電池寿命を節約することができる。
一実施形態において、プロキシ1004が通知メッセージを受信後、直ちにそれを転送するか、それとも通知メッセージをバンドルするかは、クライアント1002が送信する上述のサインイン要求(1008A)の中のパラメータによって制御される。例えば、一実施形態において、プロキシ1004は、電池寿命パラメータを使用してクライアント向けの通知メッセージをバンドルするかどうかを決定する。別の方法の実施形態では、バンドルするかどうかは、時刻、サービスの適時性などに基づいて、クライアントから更新することができる。
更に、クライアント1002は、更新要求を送信することもできる(1014A)。一実施形態において、更新要求は、クライアント1002のIPアドレスの変更に伴って、クライアントIPアドレスを更新する要求を含んでいる。この実施形態では、更新要求は、クライアント識別子、新しいクライアントIPアドレス、及びトランザクション識別子を含んでいる。クライアントの不活動の故にネットワークがデータコンテキストを非アクティブ化し、クライアントがデータコンテキストを再確立した場合、又はクライアントがネットワークを変更(例えば、セルラーからWi−Fiへ、及びその逆へ)した場合、クライアントIPアドレスが変更される場合がある。また、クライアントが特定の期間サービス停止状態に置かれていた場合にも、プロキシがクライアントの利用できるデータをプッシュできるように、クライアント1002がプロキシに更新要求を送信することができる。この実施形態では、この新しいIPアドレスがプロキシ1004によって保存され、クライアントの古いIPアドレスを置き換える。
別の実施形態では、クライアント1002がパラメータ(QoSパラメータ、電池パラメータなど)の幾つか又は全てを変更するための更新要求を送信する。一実施形態において、ユーザは、電池の節約を最大化し、通知転送について通知メッセージの受信直後の転送から通知メッセージをバンドルするように変更することを希望するかもしれない。別の方法の実施形態では、ユーザは、通知転送について通知メッセージを受信直後に転送するように変更を希望するかもしれない。更なる実施形態では、更新は他の理由(時刻、モバイルクライアントの場所など)による。
一実施形態において、ユーザがプッシュ型サービスをオフにした場合、又はデバイスの電源が切られたときに、クライアント1002はプロキシにサインアウト要求を送信することができる(1016A)。一実施形態において、サインアウト要求は、プロキシサービスを停止すべきであることを示す情報を含むパケットである。一実施形態において、サインアウト要求は、クライアント識別子及びトランザクション識別子を含んでいる。プロキシは、サーバとの通信を停止することもでき、又は通信を継続し、後ほど使用するためにデータをバッファに入れることもできる。サインアウト要求を受信すると同時に、プロキシ1004がクライアント1002にサインアウト応答を送信する(1016B)。
図11は、本発明の一実施形態に係る、クライアントに代わってプロキシが通知サービスの接続を管理することを図示したフローチャートである。一実施形態において、プロキシ902又は952がプロセス1100を実行して通知サービスの接続を管理する。図11では、プロセス1100は、ブロック1110でプロキシを確立することによって開始される。一実施形態において、プロセス1100は、図10について上述したように、サインイン要求を受信し、そのサインイン要求に応答することによってプロキシを確立する。
ブロック1120において、プロセス1100はサービスの接続を管理する。一実施形態において、プロセス1100は、それぞれのサーバに通知サービス接続メッセージを定期的に送信し、これら通知サービス接続メッセージに対する応答を処理することによってサービスの接続を管理する。更に、プロセス1100は、通知をクライアントに転送する。サービスの接続を管理することについては、以下の図12で更に説明する。
プロセス1100は、ブロック1130でクライアントを管理する。一実施形態において、プロセス1100は、サインイン要求及び/又はサインアウト要求を受信し、これに応答することによってクライアントを管理する。クライアントを管理することについては、以下の図13で更に説明する。
図12は、本発明の一実施形態に係る、プロキシとサーバとの間の通知サービスの接続を管理することを図示したフローチャートである。一実施形態において、プロキシ902又は952は、プロセス1200を実行してプロキシとサーバとの間の通知サービスの接続を管理する。図12では、プロセス1200は、ブロック1210において、プロセス1200がサーバに通知サービス接続メッセージを送信すべきか否かを判定することによって開始される。一実施形態において、プロセス1200は、動的に調節される間隔などに基づいて、通知サービス接続メッセージを定期的に送信する。プロセス1200が通知サービス接続メッセージを送信すべきであれば、プロセス1200はブロック1220で通知サービス接続メッセージを送信する。一実施形態において、プロセス1200は、ピングメッセージ、HTTP要求、又は当該技術分野において既知のその他何らかのキープアライブメッセージのような適切なメッセージをサーバに送信する。遂行はブロック1230に進む。ブロック1210で、プロセス1200が、通知サービス接続メッセージを送信すべきではないと判定した場合は、遂行は下記のブロック1230に進む。
ブロック1230において、プロセス1200は、プロセス1200がサーバから応答を受信したか否かを判定する。一実施形態において、受信される応答は、プロセス1200が代行するクライアント向けである。ブロック1240でプロセスがサーバの応答を受信した場合、プロセス1200は、受信したサービス応答がクライアント向けの通知データを含んでいるか否かを判定し、プロセス1200は、ブロック1270において、通知データをクライアントに送信すべきか、それとも後ほど送信するためにバンドルするべきかを判定する。一実施形態において、プロセス1200は、通知をクライアントに選択的に転送することができる。例えば、プロセス1200は、通知をバンドルしてクライアントをウェイクアップさせる回数を低減し、電池の消費を低減することができる。別の例では、モバイルデバイスは(例えば、ローミング中であるため)データサービスを受けておらず、プロセス1200は、クライアントに代わって通知を受信し、別の転送機構(例えば、SMS)によってモバイルデバイスに選択的に通知する。別の例では、プロセス1200は、通知データの内容に基づいて通知を選択的に転送することができる(例えば、適時性が求められる通知(例えば、株式の通知など)は受信と同時に転送され、適時性が求められない通知(例えば、アプリケーションの更新など)はバンドルされる)。通知データを送信すべき場合、例えば、プロキシサービスが通知データを受信直後に転送する場合、又は十分な通知データがバンドルされた場合、プロセス1200はブロック1250で通知データをクライアントに転送する。一実施形態において、プロセス1200は、図10について上述したように、通知データを受信と同時にクライアントに転送し、又は通知データを他の通知とバンドルする。遂行は、下記のブロック1260に進む。通知を送信すべきではない場合、プロセス1200は、この通知データを他の通知データとバンドルするためにバッファに入れ、遂行は下記のブロック1260に進む。
プロセス1200が通知データを含まない応答を受信した場合、プロセス1200は、ブロック1260で、次に送信すべき通知サービス接続メッセージをスケジュールする。一実施形態において、プロセス1200は、定期的な期間、動的に調節される期間などに基づいて、次の通知をスケジュールする。遂行は、上述のブロック1210に進む。
図13は、本発明の一実施形態に係る、クライアントとの相互作用を管理することを図示したフローチャートである。一実施形態において、プロキシ902又は952がプロセス1300を実行してクライアントを管理する。図13では、プロセス1300は、ブロック1310でクライアントからパケットを受信することにより開始される。一実施形態において、受信されるパケットは、サインイン要求、サインアウト要求、更新要求などであることができる。
ブロック1320において、プロセス1300は、受信したパケットが更新パケットであったかを判定する。上述のように、更新パケットは、プロキシサービスに対する更新を要求する、クライアントからのパケットである。例えば、一実施形態において、更新要求パケットは、クライアントIPアドレス又はプロキシサービスに関連するその他のパラメータ(例えば、QoSパラメータ、電池使用パラメータなど)を更新するように要求することができる。受信されたパケットが更新パケットであった場合、プロセス1300は、ブロック1320で、更新要求パケットに含まれている情報を使用してクライアント情報を更新する。例えば、一実施形態において、更新要求パケットがクライアントIPアドレスを更新する要求を含んでいる場合、プロセス1300は、図10について上述したように、クライアントIPアドレス情報を更新する。別の例及び別の実施形態として、更新要求パケットが他の何らかのプロキシ設定(例えば、QoSパラメータ、電池設定など)を更新する要求を含んでいる場合、プロセス1300は、図10について上述したように、これらの設定を更新する。ブロック1340において、プロセス1300は、クライアントに更新応答を送信する。一実施形態において、要求された更新を確認する情報を含む。
受信したパケットが更新パケットではない場合、プロセス1300は、ブロック1350で、受信したパケットがサインインパケット又はサインアウトパケットであるか否かを判定する。一実施形態において、サインイン要求は、プロキシを確立するために使用できる情報(例えば、クライアント識別子、クライアントIPアドレス、サーバIPアドレス、QoSパラメータ、電池の最大化など)を含むパケットである。一実施形態において、サインアウト要求は、図10について上述したように、プロキシサービスを停止すべきであることを示す情報を含むパケットである。
ブロック1360において、プロセス1300は、受信したサインイン要求/サインアウト要求を処理する。一実施形態において、受信したパケットがサインイン要求である場合、プロセス1300は、サインイン要求に含まれる情報を使用してクライアントに代わるプロキシを確立する。一実施形態において、受信したパケットがサインアウト要求である場合、プロセス1300は、サインアウト要求に含まれる情報を使用してプロキシサービスを停止する。別の実施形態では、サインアウト要求は、プロキシサービスが、キープアライブメッセージを送信することによってプロキシの機能性の実行を継続し、受信した応答をバッファに入れることの要求を含んでいる。例えば、一実施形態において、クライアントが(例えば、ローミング時にコストを削減するために)電源をオフにするか、又はデータ機能をオフにし、クライアントがサインアウト要求を送信し、クライアントは、プロセス1300がプッシュ型メッセージを引き続き受信し、これらをバッファに入れるように要求することができる。更に、この実施形態では、プロセス1300は、クライアントにSMSメッセージを送信して、クライアントによって指定されたサービスに関する特定のメッセージのことをユーザに通知するための論理を有することができる。
ブロック1370において、プロセスは、それぞれのサインイン応答/サインアウト応答をクライアントに送信する。一実施形態において、プロセスは、図10について上述したように、それぞれの要求を送信する。遂行は、上記のブロック1310に進む。
図7は、本発明の幾つかの実施形態に使用できる例示的なコンピュータシステムを図示したブロック図である。例えば、コンピュータシステム700の例示的なアーキテクチャは、モバイルデバイス(例えば、モバイルデバイス160、904、又は954)の中に含めることができる。図7はコンピュータシステムの様々な構成要素を図示しているものの、これら構成要素を相互接続するいずれか特定のアーキテクチャ又は方法を示す意図はなく、したがって、詳細は本発明に密接な関係がないことが理解されるべきである。より少ない構成要素又はより多くの構成要素を有する他のコンピュータシステムを本発明に使用することもできることが理解されるであろう。
図7に図示したように、データ処理システムの形態のコンピュータシステム700は、処理システム720に連結しているバス750、電源725、メモリ730、及び不揮発性メモリ740(例えば、ハードディスクドライブ、フラッシュメモリ、相変化メモリ(PCM)など)を含んでいる。当該技術分野において周知の様々なブリッジ、コントローラ、及び/又はアダプタを介して、バス750を相互に接続することができる。処理システム720は、メモリ730及び/又は不揮発性メモリ740から命令を取得し、命令を遂行して上述の動作を行うことができる。バス750は上述の構成要素を相互接続すると共に、これらの構成要素を必要に応じて使用可能なドック760、ディスプレイコントローラ及びディスプレイ装置770、入出力装置780(例えば、NIC(ネットワークインターフェースカード)、カーソルコントロール(例えば、マウス、タッチスクリーン、タッチパッドなど)、キーボードなど)、並びに必要に応じて使用可能な無線送受信機790(例えば、Bluetooth(登録商標)、WiFi、赤外線など)に接続する。
図8は、本発明の幾つかの実施形態に使用できる例示的なデータ処理システムを図示したブロック図である。例えば、データ処理システム800は、ハンドヘルドコンピュータ、携帯情報端末(PDA)、携帯電話機、携帯型ゲームシステム、ポータブルメディアプレーヤ、又は携帯電話機、メディアプレーヤ、及び/若しくはゲームシステムを含むことのできるハンドヘルドコンピュータであってもよい。別の例として、データ処理システム800は、ネットワークコンピュータ又は別のデバイス内にある組み込み型処理装置であってもよい。
本発明の一実施形態によれば、データ処理システム800の例示的なアーキテクチャをモバイルデバイス160の中に含めることができる。データ処理システム800は、1つ以上のマイクロプロセッサ及び/又は集積回路上のシステムを含むことができる、処理システム820を含んでいる。処理システム820は、メモリ810、電源825(1つ以上の電池を含む)、音声入出力840、ディスプレイコントローラ及びディスプレイ装置860、必要に応じて使用可能な入出力850、入力装置870、並びに無線送受信機830と連結している。本発明の特定の実施形態において、図8に示していない追加の構成要素をデータ処理システム800の一部とすることもでき、また本発明の特定の実施形態では、図8に示したよりも少ない構成要素を使用することもできることが、理解されるであろう。更に、図8に示していない1つ以上のバスを使用して、当該技術分野において周知の様々な構成要素を相互接続することができることが理解されるであろう。
メモリ810は、データ処理システム800が遂行するデータ及び/又はプログラムを格納することができる。音声入出力840は、例えば、音楽を再生し、並びに/又はスピーカ及びマイクロホンを介して電話の機能性を提供するための、マイクロホン及び/又はスピーカを含むことができる。ディスプレイコントローラ及びディスプレイ装置860は、グラフィカルユーザインターフェース(GUI)を含むことができる。無線(例えば、RF)送受信機830(例えば、WiFi送受信機、赤外線送受信機、Bluetooth送受信機、無線携帯電話通信用送受信機など)を使用して、他のデータ処理システムと通信することができる。1つ以上の入力装置870は、ユーザがシステムに入力を提供することを可能とする。これらの入力装置は、キーパッド、キーボード、タッチパネル、マルチタッチパネルなどであってもよい。必要に応じて使用可能なその他の入出力850は、ドック用のコネクタであってもよい。
図中のフローチャートは本発明の特定の実施形態によって実行される動作の特定の順序を示しているものの、このような順序は例示である(例えば、別の方法の実施形態は、異なる順序で動作を実行したり、特定の動作を組み合わせたり、特定の動作をオーバーラップさせたりなどすることができる)ことが理解されるべきである。
幾つかの実施形態の観点から本発明を説明したが、当業者であれば、本発明は説明したこれらの実施形態に限定されず、添付の請求項の趣旨及び範囲内で修正及び変更を伴って実施できることを認識するであろう。したがって、説明は、限定的ではなく例示的であるとみなされる。

Claims (20)

  1. モバイルクライアントと通知サービスの通知サーバとの間で通知サービスを代行する方法を、1つ以上の処理ユニットに実行させるための遂行可能な命令を有する、機械可読媒体であって、前記方法が、
    前記モバイルクライアントから前記通知サービス向けのプロキシ設定要求を受信することと、
    前記モバイルクライアントに代わって前記通知サーバとの通知接続を確立することと、
    前記モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに前記通知サーバとの前記通知接続を維持することと、
    前記通知サービスから通知を受信することと、
    前記モバイルクライアントに前記通知を転送することと、
    を含む、機械可読媒体。
  2. 前記通知接続を維持することが、
    前記通知サーバに通知サービス接続メッセージを送信することと、
    前記通知サーバから応答を受信することと、
    を含む、請求項1に記載の機械可読媒体。
  3. 前記通知サービス接続メッセージが、ピングメッセージ及びハイパーテキスト転送プロトコル要求からなる群から選択される、請求項2に記載の機械可読媒体。
  4. 前記応答が、前記モバイルクライアント向けの通知を含む、請求項2に記載の機械可読媒体。
  5. 前記通知が、プッシュ型通知である、請求項1に記載の機械可読媒体。
  6. 前記通知接続を確立することが、
    前記モバイルクライアントに前記プロキシ設定要求に対する応答を送信すること
    を含む、請求項1に記載の機械可読媒体。
  7. 前記モバイルクライアントに前記通知を転送することが
    前記通知を別の通知とバンドルすることと、
    前記バンドルした通知を前記モバイルクライアントに転送することと、
    を含む、請求項1に記載の機械可読媒体。
  8. 前記モバイルクライアントから更新要求を受信することと、
    前記更新要求によってモバイルクライアントを更新することと、
    を更に含む、請求項1に記載の機械可読媒体。
  9. 前記更新要求が、前記モバイルクライアントのアドレス変更を含む、請求項1に記載の機械可読媒体。
  10. 前記モバイルクライアントが、第1のオペレーティングシステム内で通信機能の実行を遂行する第1のプロセッサと、第2のオペレーティングシステム内で遂行する、前記中央処理装置である第2のプロセッサとを含み、前記方法が前記第1のプロセッサによって実行される、請求項1に記載の機械可読媒体。
  11. 通知サービスを代行するシステムであって、前記システムは、
    前記通知サービスから通知を受信するモバイルクライアントと、
    前記通知サービスに代わって前記モバイルクライアントに前記通知を送信する通知サーバと、
    前記モバイルクライアントに代わって通知要求を代行するプッシュプロキシであって、前記プッシュプロキシは、前記モバイルクライアントから前記通知サービス向けのプロキシ設定要求を受信し、前記モバイルクライアントに代わって前記通知サーバとの通知接続を確立し、前記モバイルクライアントのアプリケーションプロセッサをウェイクアップさせずに前記通知サーバとの前記通知接続を維持し、前記通知サービスから通知を受信し、前記モバイルクライアントに前記通知を転送する、プッシュプロキシと、
    を備える、システム。
  12. 前記通知接続を維持するために、前記プッシュプロキシがまた、前記通知サーバに通知サービス接続メッセージを送信し、前記通知サーバから応答を受信する、請求項11に記載のシステム。
  13. 前記通知サービス接続メッセージが、ピングメッセージ及びハイパーテキスト転送プロトコル要求からなる群から選択される、請求項12に記載のシステム。
  14. 前記応答が、前記モバイルクライアント向けの通知を含む、請求項12に記載のシステム。
  15. 前記通知が、プッシュ型通知である、請求項11に記載のシステム。
  16. 通知サービスから通知を受信するためのデバイスであって、前記デバイスは、
    第1のオペレーティングシステム内で遂行し、コマンド機能を実行するアプリケーションプロセッサと、
    第2のオペレーティングシステム内で遂行し、通信機能を実行するネットワーク接続要素であって、前記ネットワーク接続要素は、プッシュプロキシを含み、前記プッシュプロキシは、前記アプリケーションプロセッサから前記通知サービス向けのプロキシ設定要求を受信し、前記デバイスに代わって通知サーバとの通知接続を確立し、前記アプリケーションプロセッサをウェイクアップさせずに前記通知サーバとの前記通知接続を維持し、前記通知サービスから通知を受信し、前記アプリケーションプロセッサに前記通知を転送するように設定されている、ネットワーク接続要素と、
    を備える、デバイス。
  17. 前記通知接続を維持するために、前記プッシュプロキシが、前記通知サーバに通知サービス接続メッセージを送信し、前記通知サーバから応答を受信するように更に設定されている、請求項16に記載のデバイス。
  18. 前記応答が、前記デバイス向けの通知を含む、請求項17に記載のデバイス。
  19. 通知接続を確立するために、前記プッシュプロキシが、前記アプリケーションプロセッサに前記プロキシ設定要求に対する応答を送信するように更に設定されている、請求項16に記載のデバイス。
  20. 前記モバイルクライアントに前記通知を転送するために、前記プッシュプロキシが、前記通知を別の通知とバンドルし、前記バンドルした通知を前記アプリケーションプロセッサに転送するように更に設定されている、請求項16に記載のデバイス。
JP2014553347A 2012-01-20 2013-01-15 プロキシベースのプッシュ型サービス Active JP5837237B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/355,441 US9749435B2 (en) 2012-01-20 2012-01-20 Proxy-based push service
US13/355,441 2012-01-20
PCT/US2013/021598 WO2013109550A1 (en) 2012-01-20 2013-01-15 Proxy-based push service

Publications (2)

Publication Number Publication Date
JP2015513332A true JP2015513332A (ja) 2015-05-07
JP5837237B2 JP5837237B2 (ja) 2015-12-24

Family

ID=47630560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014553347A Active JP5837237B2 (ja) 2012-01-20 2013-01-15 プロキシベースのプッシュ型サービス

Country Status (7)

Country Link
US (1) US9749435B2 (ja)
EP (1) EP2795880B1 (ja)
JP (1) JP5837237B2 (ja)
KR (1) KR101604561B1 (ja)
CN (1) CN104054322B (ja)
TW (1) TWI468055B (ja)
WO (1) WO2013109550A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017017596A (ja) * 2015-07-02 2017-01-19 キヤノン株式会社 通信装置、通信システム、通信装置の制御方法およびプログラム

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058879A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Secure transport for mobile communication network
US9521625B2 (en) 2008-09-15 2016-12-13 Apple Inc. Electronic devices for receiving pushed data
US8611895B2 (en) * 2009-10-30 2013-12-17 Apple Inc. Methods for optimizing paging mechanisms using device context information
US9749435B2 (en) * 2012-01-20 2017-08-29 Apple Inc. Proxy-based push service
CN102595577B (zh) * 2012-03-13 2017-12-26 深圳市中兴物联科技有限公司 一种终端待机唤醒后网络连接处理方法及ap和bp
GB201210600D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Call invites
GB2504461B (en) 2012-06-14 2014-12-03 Microsoft Corp Notification of communication events
GB201210596D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB201210598D0 (en) * 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
WO2014030199A1 (ja) * 2012-08-20 2014-02-27 富士通株式会社 シームレスアプリプッシュシステム及びその方法
JP5869692B2 (ja) * 2012-11-02 2016-02-24 京セラ株式会社 移動通信システム、無線端末及び移動通信方法
US9143550B2 (en) * 2012-12-01 2015-09-22 Qualcomm Innovation Center, Inc. Graceful degradation of websocket connections to nonpersistent HTTP-based communications
US8918529B1 (en) * 2013-03-15 2014-12-23 Mobile Iron, Inc. Messaging gateway
CN103518342B (zh) * 2013-04-26 2016-09-28 华为技术有限公司 一种心跳信号的发送控制方法及装置
US9503540B2 (en) * 2013-05-09 2016-11-22 Nokia Technologies Oy Method and apparatus for asynchronous distribution of content
EP3008943A4 (en) 2013-06-11 2017-02-22 Seven Networks, LLC Optimizing keepalive and other background traffic in a wireless network
US9342554B2 (en) * 2013-07-05 2016-05-17 Facebook, Inc. Techniques to generate mass push notifications
US9065765B2 (en) * 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9961027B2 (en) 2013-09-17 2018-05-01 Amazon Technolgies, Inc. Email webclient automatic failover
US9900366B2 (en) 2013-09-17 2018-02-20 Amazon Technologies, Inc. Email webclient notification queuing
KR20150032018A (ko) * 2013-09-17 2015-03-25 삼성전자주식회사 전자 장치 및 전자 장치의 정보 전송 방법, 정보 전송 시스템
US10028309B2 (en) 2013-10-02 2018-07-17 Apple Inc. Cloud phone notifications
US10154106B2 (en) 2013-11-28 2018-12-11 Huawei Device (Dongguan) Co., Ltd. Method for sending heartbeat message and mobile terminal
CN104703146B (zh) * 2013-12-09 2019-03-08 腾讯科技(深圳)有限公司 信息推送方法、客户端及系统
EP2919418B1 (en) * 2014-03-13 2017-03-01 Alcatel Lucent Apparatuses, methods and computer program for a base station transceiver and for a mobile transceiver
US9961131B2 (en) 2014-04-25 2018-05-01 Microsoft Technology Licensing, Llc Enhanced reliability for client-based web services
US9277530B2 (en) * 2014-05-30 2016-03-01 Apple Inc. Delivery of push notifications to an inactive computing device
US9282516B2 (en) 2014-07-01 2016-03-08 Apple Inc. Cooperative power savings among mobile computing devices
US10743255B2 (en) * 2014-07-25 2020-08-11 Apple Inc. Power optimization modes for communication between device and server
US20160094659A1 (en) * 2014-09-25 2016-03-31 Ricoh Company, Ltd. Information processing system and information processing method
US20160099997A1 (en) * 2014-10-01 2016-04-07 Samsung Electronics Co., Ltd. Method and system for managing application data in a communication device
US10305736B2 (en) * 2014-12-18 2019-05-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods, network nodes, and computer program products for price signal feedback for network optimization
CN104539678B (zh) * 2014-12-19 2018-08-07 百度在线网络技术(北京)有限公司 一种信息推送、接收方法和装置
US20160262205A1 (en) * 2015-03-06 2016-09-08 Apple Inc. Cloud support for discovery and data transfer for mobile client devices
JP6227583B2 (ja) * 2015-03-25 2017-11-08 Kddi株式会社 情報配信装置、プッシュ通知送信方法、及び、コンピュータプログラム
JP6251210B2 (ja) * 2015-03-25 2017-12-20 Kddi株式会社 端末装置、通信セッション確立方法、及び、プログラム
US9554239B2 (en) 2015-04-21 2017-01-24 Apple Inc. Opportunistic offloading of tasks between nearby computing devices
KR101676653B1 (ko) * 2016-04-20 2016-11-17 주식회사 티맥스 소프트 Http 세션 정보 동적 유지 방법, 이를 사용한 웹 애플리케이션 서버 및 웹 서버
CN106028428A (zh) * 2016-04-27 2016-10-12 努比亚技术有限公司 一种信息处理方法及移动终端
TWI644257B (zh) * 2016-06-07 2018-12-11 三竹資訊股份有限公司 推播通知附帶設定參數之方法
US10520979B2 (en) 2016-06-10 2019-12-31 Apple Inc. Enhanced application preview mode
US10725761B2 (en) 2016-06-10 2020-07-28 Apple Inc. Providing updated application data for previewing applications on a display
US10521107B2 (en) 2016-09-24 2019-12-31 Apple Inc. Devices, methods, and graphical user interfaces for selecting and interacting with different device modes
CN109644350A (zh) * 2016-10-18 2019-04-16 华为技术有限公司 一种业务通信方法及设备
CN107317723B (zh) * 2017-05-27 2021-01-05 北京金山安全软件有限公司 一种数据处理方法及服务器
CN107466094A (zh) * 2017-08-02 2017-12-12 努比亚技术有限公司 网络数据上报控制方法、协处理器、终端及存储介质
CN107770852B (zh) * 2017-09-19 2021-07-27 联发科技(新加坡)私人有限公司 无线通信方法、通信设备及具有存储功能的装置
JP7085391B2 (ja) * 2018-04-11 2022-06-16 フォルシアクラリオン・エレクトロニクス株式会社 サーバ及び通信システム
DK201870334A1 (en) 2018-05-07 2019-12-05 Apple Inc. DEVICES, METHODS, AND GRAPHICAL USER INTERFACES FOR PROACTIVE MANAGEMENT OF NOTIFICATIONS
US10897500B2 (en) * 2018-10-03 2021-01-19 International Business Machines Corporation Synchronizing a device using push notifications
US11627049B2 (en) * 2019-01-31 2023-04-11 Hewlett Packard Enterprise Development Lp Failsafe firmware upgrade for cloud-managed devices
CN110932845B (zh) 2019-12-31 2021-12-03 山东英信计算机技术有限公司 一种代理端注册方法、系统及相关装置
US11750714B2 (en) * 2020-03-31 2023-09-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Fast resumption of dormant sessions on a client device
AU2020233622B2 (en) 2020-05-11 2022-03-10 Apple Inc. System, method and user interface for supporting scheduled mode changes on electronic devices
CN113132486A (zh) * 2021-04-20 2021-07-16 阿波罗智联(北京)科技有限公司 一种数据处理方法、装置、电子设备和介质
US11379106B1 (en) * 2021-05-12 2022-07-05 Apple Inc. Devices, methods, and graphical user interfaces for adjusting the provision of notifications
CN114979260B (zh) * 2022-05-12 2023-09-15 深圳市绿联科技股份有限公司 一种基于协议的通信方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1775911A1 (en) * 2005-10-13 2007-04-18 Research In Motion Limited System and method for providing asynchronous notifications using synchronous data
JP2008510413A (ja) * 2004-08-28 2008-04-03 サムスン エレクトロニクス カンパニー リミテッド ユニバーサルプラグアンドプレイ通信方法及び装置
JP2008079161A (ja) * 2006-09-22 2008-04-03 Ntt Docomo Inc 通信端末、代理サーバ及び端末制御方法
WO2011153313A1 (en) * 2010-06-02 2011-12-08 Qualcomm Incorporated Application-proxy support over a wireless link

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4230708A (en) 1977-10-20 1980-10-28 Stichting Rega V.Z.W. Therapeutic application of (S) -or (RS)-9-(2, 3-dihydroxypropyl) adenine for use as antiviral agents
US6463307B1 (en) * 1998-08-14 2002-10-08 Telefonaktiebolaget Lm Ericsson Method and apparatus for power saving in a mobile terminal with established connections
US6708206B1 (en) * 1999-06-15 2004-03-16 Nokia Corporation Apparatus, and associated method, for providing a client with messages
US7190956B2 (en) 2001-05-15 2007-03-13 Motorola Inc. Instant message proxy for circuit switched mobile environment
US7007064B2 (en) * 2002-08-02 2006-02-28 Motorola, Inc. Method and apparatus for obtaining and managing wirelessly communicated content
US8856346B2 (en) 2004-01-15 2014-10-07 Unwired Planet, Llc Stateful push notifications
US8249071B2 (en) * 2004-03-26 2012-08-21 Harman International Industries, Incorporated Audio related system communication protocol
JP2005323285A (ja) * 2004-05-11 2005-11-17 Matsushita Electric Ind Co Ltd 移動体通信装置
US7532890B2 (en) * 2005-04-01 2009-05-12 Rockliffe Systems Content-based notification and user-transparent pull operation for simulated push transmission of wireless email
US7895309B2 (en) * 2006-01-11 2011-02-22 Microsoft Corporation Network event notification and delivery
JP4972980B2 (ja) * 2006-04-14 2012-07-11 富士通株式会社 データ通信プログラム、データ通信方法および携帯端末装置
US7805489B2 (en) 2006-06-27 2010-09-28 Research In Motion Limited Electronic mail communications system with client email internet service provider (ISP) polling application and related methods
US20080293403A1 (en) * 2007-05-22 2008-11-27 Colin Shong Chin Quon Mobile communication service bridging
US20090143094A1 (en) * 2007-12-03 2009-06-04 Motorola, Inc. Method and Apparatus for Mode Switching in Dual-Core Mobile Communication Devices
WO2009099365A1 (en) * 2008-02-05 2009-08-13 Telefonaktiebolaget L M Ericsson (Publ) Transmitting circuit switched data over hspa
US7953808B2 (en) 2008-03-04 2011-05-31 Apple Inc. Automatic notification system and process
US8135392B2 (en) * 2008-06-06 2012-03-13 Apple Inc. Managing notification service connections and displaying icon badges
EP2254309A1 (en) 2009-05-20 2010-11-24 Thomson Licensing Method for sending data of a service
US8611895B2 (en) * 2009-10-30 2013-12-17 Apple Inc. Methods for optimizing paging mechanisms using device context information
US8335175B2 (en) 2010-04-07 2012-12-18 Qualcomm Incorporated Systems and methods for page delivery to a wireless client device in idle state
CN102316423B (zh) 2010-07-06 2014-03-12 华为技术有限公司 一种信息推送方法、装置和系统
EP3367252B1 (en) 2010-07-26 2019-10-16 Seven Networks, LLC Context aware traffic management for resource conservation in a wireless network
US8843153B2 (en) * 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
CN202111746U (zh) 2011-07-07 2012-01-11 深圳市金立通信设备有限公司 一种实现移动终端信息推送的系统
US9515976B2 (en) * 2011-12-19 2016-12-06 Facebook, Inc. Proxied outgoing message transmission
US9148397B2 (en) * 2011-12-19 2015-09-29 Facebook, Inc. Messaging object generation for synchronous conversation threads
US8830890B2 (en) * 2012-01-18 2014-09-09 Telefonaktiebolaget L M Ericsson (Publ) Terminal battery aware scheduling
US9749435B2 (en) * 2012-01-20 2017-08-29 Apple Inc. Proxy-based push service
US9125158B2 (en) * 2012-02-06 2015-09-01 Qualcomm Incorporated Wideband detection of narrowband trigger signals
CN102595577B (zh) * 2012-03-13 2017-12-26 深圳市中兴物联科技有限公司 一种终端待机唤醒后网络连接处理方法及ap和bp
JP5962096B2 (ja) * 2012-03-16 2016-08-03 富士通株式会社 無線通信システム、端末、及び通信方法
GB201210598D0 (en) * 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
CA2854067C (en) * 2012-07-04 2018-12-11 Huawei Technologies Co., Ltd. Method, device and system for recording multimedia data
US8918529B1 (en) * 2013-03-15 2014-12-23 Mobile Iron, Inc. Messaging gateway
US9503540B2 (en) * 2013-05-09 2016-11-22 Nokia Technologies Oy Method and apparatus for asynchronous distribution of content
US9554239B2 (en) * 2015-04-21 2017-01-24 Apple Inc. Opportunistic offloading of tasks between nearby computing devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008510413A (ja) * 2004-08-28 2008-04-03 サムスン エレクトロニクス カンパニー リミテッド ユニバーサルプラグアンドプレイ通信方法及び装置
EP1775911A1 (en) * 2005-10-13 2007-04-18 Research In Motion Limited System and method for providing asynchronous notifications using synchronous data
JP2008079161A (ja) * 2006-09-22 2008-04-03 Ntt Docomo Inc 通信端末、代理サーバ及び端末制御方法
WO2011153313A1 (en) * 2010-06-02 2011-12-08 Qualcomm Incorporated Application-proxy support over a wireless link

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017017596A (ja) * 2015-07-02 2017-01-19 キヤノン株式会社 通信装置、通信システム、通信装置の制御方法およびプログラム
US10587712B2 (en) 2015-07-02 2020-03-10 Canon Kabushiki Kaisha Push message communication apparatus
US11729289B2 (en) 2015-07-02 2023-08-15 Canon Kabushiki Kaisha Push message communication apparatus

Also Published As

Publication number Publication date
US20130190032A1 (en) 2013-07-25
TW201338600A (zh) 2013-09-16
CN104054322B (zh) 2017-07-21
US9749435B2 (en) 2017-08-29
KR101604561B1 (ko) 2016-03-17
KR20140114054A (ko) 2014-09-25
EP2795880A1 (en) 2014-10-29
TWI468055B (zh) 2015-01-01
WO2013109550A1 (en) 2013-07-25
CN104054322A (zh) 2014-09-17
JP5837237B2 (ja) 2015-12-24
EP2795880B1 (en) 2016-01-06

Similar Documents

Publication Publication Date Title
JP5837237B2 (ja) プロキシベースのプッシュ型サービス
US10412678B2 (en) Managing notification service connections
US8396463B2 (en) Managing notification service connections and displaying icon badges
US10757653B2 (en) Electronic devices for receiving pushed data
US8904206B2 (en) Mobile computing device and method for maintaining application continuity
US8688826B2 (en) Mobile computing device and method with intelligent pushing management
KR101447792B1 (ko) Ussd 이동 방법 및 장치
US8923176B2 (en) Saving power in a wireless communication device
US9055385B1 (en) Adjusting an application update rate in a wireless communication device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150527

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150831

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151104

R150 Certificate of patent or registration of utility model

Ref document number: 5837237

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250