(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6207620
(24)【登録日】2017年9月15日
(45)【発行日】2017年10月4日
(54)【発明の名称】単一デバイスからアプリケーションにアクセスするユーザ向けのオフラインメッセージ(ネットワーク履歴)配信の最適化
(51)【国際特許分類】
G06F 21/62 20130101AFI20170925BHJP
G06F 13/00 20060101ALI20170925BHJP
H04L 12/58 20060101ALI20170925BHJP
G06F 21/60 20130101ALI20170925BHJP
【FI】
G06F21/62 318
G06F13/00 610F
H04L12/58 100Z
G06F21/60 320
【請求項の数】15
【全頁数】24
(21)【出願番号】特願2015-540719(P2015-540719)
(86)(22)【出願日】2013年10月28日
(65)【公表番号】特表2016-503532(P2016-503532A)
(43)【公表日】2016年2月4日
(86)【国際出願番号】US2013067009
(87)【国際公開番号】WO2014070637
(87)【国際公開日】20140508
【審査請求日】2016年10月14日
(31)【優先権主張番号】13/668,629
(32)【優先日】2012年11月5日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】ヴィジェイ・スリヤヴァンシ
(72)【発明者】
【氏名】モハメド・アタウル・アール・シューマン
【審査官】
上島 拓也
(56)【参考文献】
【文献】
特開平11−041401(JP,A)
【文献】
特開2005−050113(JP,A)
【文献】
米国特許出願公開第2002/0091775(US,A1)
【文献】
米国特許出願公開第2006/0204011(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
G06F 13/00
H04L 12/58
(57)【特許請求の範囲】
【請求項1】
ウェブサービスサーバから、現在のユーザおよび少なくとも1人のオフラインユーザによって共有することができるコンピューティングデバイスにメッセージを送るとともに、前記少なくとも1人のオフラインユーザのメッセージについてのプライバシーを維持し、メッセージの送信についての帯域幅要件を減らすための方法であって、
前記コンピューティングデバイスの前記現在のユーザおよび前記少なくとも1人のオフラインユーザを前記ウェブサービスサーバに登録するステップと、
前記ウェブサービスサーバにおいて、前記コンピューティングデバイスから、第1のユーザIDを含む第1のユーザログインを受信し、前記第1のユーザを前記コンピューティングデバイスの前記現在のユーザとして識別するステップと、
前記コンピューティングデバイスの登録ユーザ向けの未配信メッセージがあるか、データベースを調べるステップと、
前記現在のユーザに対してアドレス指定された未配信メッセージを前記コンピューティングデバイスに送るステップと、
各オフラインユーザの未配信メッセージを暗号化するステップと、
各オフラインユーザ向けの前記暗号化された未配信メッセージを前記コンピューティングデバイスに送るステップと、
を含む方法。
【請求項2】
前記現在のユーザ向けの未配信メッセージを受信し、表示するステップと、
各オフラインユーザの暗号化された未配信メッセージを前記コンピューティングデバイスに記憶するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
各オフラインユーザの未配信メッセージを暗号化するステップが、
各オフラインユーザ用の、一意であるランダム暗号化鍵を使って、各オフラインユーザの未配信メッセージを暗号化するステップと、
各オフラインユーザ用に、各オフラインユーザの識別子にリンクされたデータテーブル中に、各オフラインユーザの未配信メッセージを復号するのに適した復号鍵を記憶するステップと、
を含む、請求項1に記載の方法。
【請求項4】
前記現在のユーザの未配信メッセージを、送信に先立って暗号化するステップと、
前記現在のユーザの未配信メッセージを復号するための前記復号鍵を送信するステップとをさらに含む、請求項3に記載の方法。
【請求項5】
前記ウェブサービスサーバにおいて、前記コンピューティングデバイスから、以前オフラインだったユーザ(「新たな現在のユーザ」)による、第2のユーザIDを含む第2のログインを受信するステップと、
前記新たな現在のユーザが、前記新たな現在のユーザがオフラインだった間に、前記コンピューティングデバイスに配信された未配信メッセージを暗号化しているかどうか判断するステップと、
前記新たな現在のユーザにリンクされた、前記記憶された復号鍵を呼び出すステップと、
前記新たな現在のユーザおよび前記コンピューティングデバイスにとって既知の共有鍵を使って、前記呼び出された復号鍵を暗号化するステップと、
前記暗号化された、呼び出された復号鍵を前記コンピューティングデバイスに送信するステップと、
前記新たな現在のユーザおよび前記コンピューティングデバイスのうちの1つにとって既知の前記共有鍵を使って、前記コンピューティングデバイス上で、前記暗号化された、呼び出された復号鍵を復号するステップと、
前記復号された、呼び出された復号鍵を使って、前記コンピューティングデバイス上で、前記新たな現在のユーザの暗号化メッセージを復号するステップと、
前記復号されたメッセージを、前記コンピューティングデバイスにおける前記新たな現在のユーザに表示するステップと、
をさらに含む、請求項3に記載の方法。
【請求項6】
前記コンピューティングデバイスが前記ウェブサービスサーバにそれを介してアクセスしている物理層を判断するステップと、
物理層の判断されたタイプに基づいて、オフラインユーザ向けの、前記コンピューティングデバイスに送られるデータの量を制約するステップと、
をさらに含む、請求項1に記載の方法。
【請求項7】
各オフラインユーザ向けの前記暗号化された未配信メッセージを前記コンピューティングデバイスに送るステップが、
オフラインユーザ向けの未配信メッセージについての配信優先度を作成するステップと、
前記配信優先度に基づいて、各オフラインユーザの暗号化された未配信メッセージを前記コンピューティングデバイスに送るステップと、
をさらに含む、請求項1に記載の方法。
【請求項8】
オフラインユーザ向けの未配信メッセージについての前記配信優先度を作成するステップが、
前記ウェブサービスサーバにアクセスするための、前記コンピューティングデバイスの各ユーザによる使用頻度を判断するステップと、
より頻度の高いユーザ向けの未配信メッセージが、より頻度の高くないユーザ向けの未配信メッセージの前にダウンロードされるように、前記コンピューティングデバイスの前記判断された使用頻度に基づいて、オフラインユーザ向けの未配信メッセージの配信を優先するステップと、
を含む、請求項7に記載の方法。
【請求項9】
特定のユーザが、前記ウェブサービスサーバにアクセスするのに、前記コンピューティングデバイスをもはやアクティブに使っていないときを前記ウェブサービスサーバにおいて認識するステップと、
前記ウェブサービスサーバにアクセスするのに、前記コンピューティングデバイスをもはやアクティブに使っていないと認識された特定のユーザのために、未配信メッセージを前記コンピューティングデバイスに送信しないステップと、
をさらに含む、請求項1に記載の方法。
【請求項10】
特定のユーザが、前記ウェブサービスサーバにアクセスするのに、前記コンピューティングデバイスをもはやアクティブに使っていないときを認識するステップが、
前記コンピューティングデバイスから受信された、前記特定のユーザによるユーザログインの頻度を判断するステップと、
前記コンピューティングデバイスから受信された、前記特定のユーザによるユーザログインの前記判断された頻度に基づいて、前記特定のユーザが、前記ウェブサービスサーバにアクセスするのに、前記コンピューティングデバイスをもはやアクティブに使っていないときを認識するステップと、
を含む、請求項9に記載の方法。
【請求項11】
ウェブサービスサーバから、現在のユーザおよび少なくとも1人のオフラインユーザによって共有することができるコンピューティングモバイルデバイス上でメッセージを受信するとともに、前記少なくとも1人のオフラインユーザのメッセージについてのプライバシーを維持し、メッセージの送信についての帯域幅要件を減らすための方法であって、
前記現在のユーザおよび前記少なくとも1人のオフラインユーザを前記ウェブサービスサーバに登録するステップと、
前記現在のユーザによる、第1のユーザIDを含む第1のログインを前記ウェブサービスサーバに送るステップと、
前記現在のユーザ向けの未配信メッセージを受信し、表示するステップと、
各オフラインユーザ向けの暗号化された未配信メッセージを前記ウェブサービスサーバから受信するステップと、
各オフラインユーザの暗号化された未配信メッセージを記憶するステップと、
前記ウェブサービスサーバに、以前オフラインだったユーザ(「新たな現在のユーザ」)による、第2のユーザIDを含む第2のログインを送るステップと、
前記ウェブサービスサーバから、暗号化された復号鍵を受信するステップと、
前記新たな現在のユーザおよび前記コンピューティングモバイルデバイスのうちの1つにとって既知の共有鍵を使って、前記暗号化された復号鍵を復号するステップと、
前記復号された復号鍵を使って、前記新たな現在のユーザの暗号化メッセージを復号するステップと、
前記復号されたメッセージを、前記新たな現在のユーザに表示するステップと、
を含む方法。
【請求項12】
コンピューティングデバイスを共有する現在のユーザおよび少なくとも1人のオフラインユーザをウェブサービスサーバに登録するための手段と、
第1のユーザIDを含む第1のユーザログインを、前記ウェブサービスサーバに送り、前記第1のユーザを、前記コンピューティングデバイスの前記現在のユーザとして識別するための手段と、
前記現在のユーザ向けの未配信メッセージを受信し、表示するための手段と、
各オフラインユーザ向けの暗号化された未配信メッセージを受信するための手段と、
各オフラインユーザの前記暗号化された未配信メッセージを前記コンピューティングデバイス上で記憶するための手段と、
前記ウェブサービスサーバに、以前オフラインだったユーザ(「新たな現在のユーザ」)による、第2のユーザIDを含む第2のログインを送るための手段と、
暗号化された復号鍵を前記ウェブサービスサーバから受信するための手段と、
前記新たな現在のユーザおよび前記コンピューティングデバイスのうちの1つにとって既知の共有鍵を使って、前記暗号化された復号鍵を復号するための手段と、
前記復号された復号鍵を使って、前記新たな現在のユーザの暗号化メッセージを復号するための手段と、
前記復号されたメッセージを、前記新たな現在のユーザに表示するための手段と、
を備える、コンピューティングデバイス。
【請求項13】
請求項11に記載の方法をコンピューティングデバイスのプロセッサに実施させるように構成されたプロセッサ実行可能命令を記憶した、非一時的プロセッサ可読記憶媒体。
【請求項14】
現在のユーザおよび少なくとも1人のオフラインユーザによって共有されるコンピューティングデバイスの前記現在のユーザおよび前記少なくとも1人のオフラインユーザを登録するための手段と、
前記コンピューティングデバイスから、第1のユーザIDを含む第1のユーザログインを受信し、前記第1のユーザを前記コンピューティングデバイスの前記現在のユーザとして識別するための手段と、
前記コンピューティングデバイスの登録ユーザ向けの未配信メッセージがあるか、データベースを調べるための手段と、
前記現在のユーザに対してアドレス指定された未配信メッセージを前記コンピューティングデバイスに送るための手段と、
各オフラインユーザの未配信メッセージを暗号化するための手段と、
各オフラインユーザ向けの前記暗号化された未配信メッセージを前記コンピューティングデバイスに送るための手段と、
を備えるサーバ。
【請求項15】
請求項1、3、4、および6乃至10の何れか1項に記載の方法をサーバに実施させるように構成されたサーバ実行可能命令を記憶した、非一時的サーバ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
スマートフォン、タブレットコンピュータ、およびラップトップコンピュータなどのコンピューティングデバイスは、ユーザが、ネットワークを通してウェブサービスフロントエンドに接続して、他のユーザとの間でメッセージを送り、かつ受信することを可能にする。送られ、および受信されるメッセージは、たとえば、電子メールメッセージ(すなわち、eメール)、ショートメッセージサービス(SMS)メッセージ、マルチメディアメッセージサービス(MMS)メッセージ、インスタントメッセージ、およびボイスメールメッセージを含み得る。これらのメッセージのうちの多くは非同期メッセージであってよく、このことは、予定受信者であるユーザが、別のユーザが予定受信者へのメッセージを開始し、送るために、ウェブサービスサーバに必ずしも現在アクセスしている(すなわち、オンラインである)必要はないことを意味する。メッセージは、ユーザがウェブサービスサーバに現在アクセスしているかどうか(すなわち、そのユーザが「オンライン」であるかどうか)にかかわらず、そのユーザにいつでも送ることができる。予定受信者であるユーザがオフラインである事例では、そのユーザに送られるメッセージは未配信になり得る。これらの未配信メッセージは、ウェブサービスサーバが、予定受信者がオンラインになったことを検出すると、これらの未配信メッセージをフェッチし、配信することができるように、データベースに記憶することができる。ユーザは、自分の未配信メッセージを「プルする」ことを選ぶことができる。たとえば、ユーザが、自分のメッセージを受信することを望む場合、ユーザは、スマートフォンのようなデバイスを使って、オンラインになり、ウェブサービスサーバに対して自分のメッセージを要求すればよい。代替として、ユーザは、自分の未配信メッセージが自分に対して「プッシュされる」ことを選ぶことができる。たとえば、ユーザがオンラインになると、ウェブサービスサーバは、ユーザのオンライン状況を検出し、データベースに記憶されたどの未配信メッセージも配信することができる。ユーザがウェブサービスサーバからログアウトした(すなわち、「オフライン」になった)後、別のユーザが、同じデバイスを使って、ウェブサービスサーバにログオンして、その別のユーザを対象とするどの未配信メッセージも取り出すことができる。
【発明の概要】
【課題を解決するための手段】
【0002】
様々な実施形態は、すべての現時点で未配信のメッセージを、同じ安全な接続を経由してマルチユーザ(共有)デバイスのすべてのユーザに送ることによって、ネットワーク効率および全体的ユーザ経験を強化するためのフレームワークを提供する。未配信メッセージは、未配信メッセージが対象とするオフラインユーザがログインしてメッセージを受信するまで、共有デバイス上でローカルに記憶されてよい。ある実施形態では、オフラインユーザは、次に共有デバイスを使ってウェブサービスサーバにアクセスするとき、自分のメッセージに迅速にアクセスすることが可能であり得る。様々な実施形態は、共有デバイスの現在のユーザが、共有デバイス上でローカルに記憶され得る、他のオフラインユーザを対象とするメッセージにアクセスするのを防止することによって、ユーザプライバシーを増進することもできる。ある実施形態では、オフラインユーザに送られ、共有デバイス上に記憶されたメッセージは、予定受信者のみが自分のそれぞれのメッセージを閲覧することができることを保証するように暗号化することができる。ある実施形態では、オフラインユーザが共有デバイスにログインし直した後、共有デバイスは、ウェブサービスサーバと通信して、共有デバイス上でローカルに記憶された、そのユーザの(以前オフラインだったユーザの)メッセージを復号することができる。
【0003】
ある実施形態では、ウェブサービスサーバが、デバイスがそれを介して接続され得る物理層(すなわち、ネットワーク)を判断することができ、物理層のタイプに基づいて、オフラインユーザ向けにデバイスに送信されるデータの量を制限することができる。別の実施形態では、オフラインユーザが、複数のデバイスを通してウェブサービスサーバにアクセスした場合、ウェブサービスサーバは、複数のデバイスのうちのどれをオフラインユーザが最も頻繁に使うか判断することができ、それらのアクティブデバイスにメッセージを配信するだけでよい。追加実施形態では、ウェブサービスサーバは、オフラインユーザ向けのメッセージの配信を優先してよい。
【0004】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な実施形態を示しており、上記の概略的な説明および下記の詳細な説明とともに、本発明の特徴について説明するのに役立つ。
【図面の簡単な説明】
【0005】
【
図1】様々な実施形態との使用に適したネットワークの通信システムブロック図である。
【
図2】ある実施形態による、マルチユーザ、マルチデバイスシステムの通信システムブロック図である。
【
図3】マルチユーザデバイスとウェブサービスサーバとの間の実施呼フロー関係を示す図である。
【
図4】デバイスの現在のユーザおよびオフラインユーザにメッセージを配信するための実施ウェブサービスサーバ方法を示すプロセスフロー図である。
【
図5】ウェブサービスサーバに接続し、サーバからメッセージを受信するための実施デバイス方法を示すプロセスフロー図である。
【
図6】オフラインユーザのメッセージの暗号化および復号がどのように実施されるかに関する、デバイスとウェブサービスサーバとの間の関係の実施呼フローを示す図である。
【
図7】ウェブサービスサーバからデバイスに、オフラインユーザの暗号化メッセージを配信するための実施ウェブサービスサーバ方法を示すプロセスフロー図である。
【
図8】デバイス上でオフラインユーザ向けのメッセージを復号するための実施デバイス方法を示すプロセスフロー図である。
【
図9】デバイスがウェブサービスサーバに、それを介してアクセスしている物理層を判断した後、オフラインユーザのメッセージを配信するための実施ウェブサービスサーバ方法を示すプロセスフロー図である。
【
図10】オフラインユーザのメッセージをアクティブデバイスに配信するための実施ウェブサービスサーバ方法を示すプロセスフロー図である。
【
図11】オフラインユーザの優先順位に従って、オフラインユーザにメッセージを配信するための実施ウェブサービスサーバ方法を示すプロセスフロー図である。
【
図12】様々な実施形態との使用に適した例示的なデバイスの構成要素図である。
【
図13】様々な実施形態との使用に適した例示的なサーバの構成要素図である。
【
図14】様々な実施形態との使用に適した別の例示的なモバイルデバイスの構成要素図である。
【発明を実施するための形態】
【0006】
様々な実施形態が、添付の図面を参照して詳細に記載される。可能な場合には必ず、同じ参照番号は、図面全体にわたって同じまたは同様の部分を指すために使用される。特定の例および実装形態に行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【0007】
「例示的な」という言葉は、例、事例、または例示として機能することを意味するように本明細書で使用される。本明細書に「例示的な」と記載されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいか、または有利であると解釈されるべきではない。
【0008】
本明細書で使用する「デバイス」、「モバイルデバイス」、および「コンピューティングデバイス」という用語は、ボイスおよびデータ呼を送り、かつ/または受信し、メッセージ(たとえば、ショートメッセージサービス(SMS)メッセージ、eメール、Facebook(登録商標)投稿通知および/またはゲームハイスコア変更通知などのアプリケーション通知)を送り、かつ/または受信するためのプログラム可能プロセッサおよびメモリおよび回路を含む、セルラー電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤ、個人情報端末、ラップトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータ、スマートブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラー電話、ワイヤレスゲームコントローラ、および同様のパーソナル電子デバイスのうちの任意の1つまたはすべてを指すように、本明細書において互換的に使われる。本明細書における「共有デバイス」という用語は、複数のユーザによって使われるデバイスを指す。
【0009】
本明細書で使用する「ウェブサービスサーバ」という用語は、ユーザの間のメッセージ通信を管理し、配信する、インターネットに接続されたデバイスを通してアクセス可能なサーバ上で稼働されるアプリケーションを指す。
【0010】
本明細書で使用する「ユーザ」という用語は、上で定義された1つまたは複数のデバイスを使ってメッセージを送り、かつ/または受信するためにウェブサービスサーバに以前登録した人を指す。「オフラインユーザ」という用語は、ウェブサービスサーバにアクセスするのに、デバイスを現在使っていないデバイスのユーザを指す。それに応じて、「現在のユーザ」という用語は、ウェブサービスサーバにアクセスするのに、デバイスを現在使っているデバイスのユーザを指す。
【0011】
本明細書で使用する「メッセージ」という用語は、ボイス呼(たとえば、PSTN呼、VOIP呼、セルラー呼など)、テキストベースのメッセージ(たとえば、SMS、eメール)、ソーシャルメディアメッセージ(たとえば、Facebook(登録商標)通知、Tweet(登録商標)など)、ウィスパーメッセージ(たとえば、YagattaTalk(登録商標)ユーザからの記録されたボイスメッセージ)、および/またはアプリケーションリマインダ(たとえば、E-bay(登録商標)オークション通知、遠隔ベースのカレンダアプリケーションリマインダなど)などの通信を指し得る。デバイスは、いくつかのタイプのメッセージを受信することができる。
【0012】
概して、様々な実施形態は、ウェブサービスサーバが、現在のユーザのウェブサービスサーバセッション中に、オフラインユーザ向けの暗号化された未配信メッセージを送ることによって、共有デバイスを通してウェブサービスサーバにアクセスするユーザ向けにメッセージ配信を最適化することを可能にし得る。これらの様々な実施形態は、デバイスが、現在のユーザのセッション中にオフラインユーザのメッセージを安全にダウンロードするとともに、そのオフラインユーザのプライバシーを維持することも可能にし得る。したがって、様々な実施形態は、オフラインユーザに、自分たちのメッセージへのアクセスをより速く得させるとともに、メッセージプライバシーを維持することができ、これにより、全体的ユーザ経験を増すことができる。
【0013】
様々な実施形態において、デバイスを使うウェブサービスサーバとの初期登録セッション中に、第1のユーザは、自分のメッセージアドレス(たとえば、eメールアドレス)と、自分が現在使っているデバイスとを登録することができる。第1のユーザがウェブサービスサーバに登録した後、ウェブサービスサーバは、そのユーザを、ユーザが自分の初期登録セッションを行うのに使ったデバイスに関連付けられたユーザ(すなわち、「登録ユーザ」)セットに追加すればよい。ある実施形態では、ウェブサービスサーバは、各登録ユーザ向けの一意のユーザIDを作成することができる。後に続くウェブセッション中、現在のユーザ(第1のユーザまたは他のユーザ)は、ウェブサービスサーバにアクセスし、自分の未配信メッセージを要求することができ、ウェブサービスサーバは、現在のユーザの未配信メッセージをデータベースからフェッチすればよい。ウェブサービスサーバは、どのオフラインユーザが現在のユーザの共有デバイスに関連付けられているかをルックアップし、これらのオフラインユーザ向けの未配信メッセージがあるかどうか調べ、どのオフラインユーザの未配信メッセージも共有デバイスに配信してよい。ウェブサービスサーバは、オフラインユーザのメッセージを、配信の前に暗号化して、オフラインユーザのメッセージプライバシーを保護することもできる。ある実施形態では、ウェブサービスサーバは、オフラインユーザのメッセージをランダム鍵で暗号化することができる。オフラインユーザのデバイスは、これらの暗号化メッセージをローカルメモリに記憶すればよい。
【0014】
ある実施形態では、現在のユーザの暗号化されていないメッセージはデバイス上で表示することができ、その間、バックグラウンド(すなわち、現在のユーザにとっては未知でありアクセス不可能)では、オフラインユーザの暗号化メッセージが、後の復号のために、デバイス上で受信され記憶され得る。さらに別の実施形態では、デバイス上の、オフラインユーザの暗号化メッセージは、暗号化メッセージが対象とするオフラインユーザが、オフラインユーザがデバイス上のウェブサービスサーバに再度アクセスしたときにウェブサービスサーバから受信される復号鍵を使って、ウェブサービスサーバに再度アクセスしたとき、復号され、表示され得る。ある実施形態では、新たな現在のユーザのメッセージ用の復号鍵をデバイスに送った後、ウェブサービスサーバは、新たな現在のユーザがいくつかの未配信メッセージを有するかどうか確認することができ、それらの保留メッセージを、暗号化されていない形式で配信すればよい。ウェブサービスサーバは、オフラインユーザ向けのどの未配信メッセージも、上述したように暗号化形式で送信することができる。
【0015】
ある実施形態では、ウェブサービスサーバは、デバイスがウェブサービスサーバにそれを介してアクセスしている物理層(すなわち、ネットワーク)に基づいて、オフラインメッセージ配信を管理することができる。たとえば、ウェブサービスサーバは、多くのセルラーネットワークデータプランにおいて典型的であるように、データ転送に対する月ごとの上限などのデータ転送制限をネットワーク接続が呈することをウェブサービスサーバが検出した場合に配信するオフラインメッセージデータのボリュームを制約することができる。したがって、現在のユーザが、WiFiネットワークによってウェブサービスサーバにアクセスしている場合、すべてのオフラインユーザメッセージが配信され得るが、デバイスがセルラー電気通信ネットワーク(たとえば、3G、4G、LTEなど)を通してサーバに接続されている場合、オフラインユーザメッセージは、ダウンロードし、配信することができない。代替として、限られた数またはタイプのメッセージのみがダウンロードされ、配信され得る。さらなる代替実施形態では、メッセージに関する何らかの情報のみがダウンロードされ、配信され得る。たとえば、デバイスが、限られたデータプランを有する3Gまたは4Gネットワークによって現在接続されているとウェブサービスサーバが判断した場合、ウェブサービスサーバは、ターゲットユーザがオンラインであるときにデバイスが大量のメッセージにアクセスするのに使うことができるリンクまたはメタデータ(たとえば、URLまたはURI)を配信することができる。そのようなメタデータは、デバイスが、ダウンロードのための大規模ファイル保留をユーザに知らせ、メッセージをデバイスにダウンロードしたいかどうか関してユーザにプロンプトを出すことを可能にし得る。
【0016】
ある実施形態では、ウェブサービスサーバは、オフラインユーザに関連付けられたどのデバイスが「アクティブ」であるか判断し、そのオフラインユーザ向けの未配信メッセージをそれらのアクティブデバイスにのみ送ることができる。さらに別の実施形態では、ウェブデバイスは、各ユーザが初期登録セッション、または任意の後続ウェブセッションにおいてどのデバイスが「アクティブ」となることを選択するかをユーザが指定することを可能にし得る。たとえば、ウェブサービスサーバは、デバイスにオフラインメッセージを送るための許可について、ユーザをプロンプトすることができる。別の例では、ユーザは、ウェブサービスサーバにアクセスし、特定のデバイス上でのオフラインメッセージの受信をやめることができる。
【0017】
別の実施形態では、2人より多いオフラインユーザが同じデバイスを使っている場合、ウェブサービスサーバは、配信の順序を判断するためのオフラインユーザのメッセージを優先することによって、未配信メッセージの配信を管理することができる。たとえば、ランク付けは、ウェブサービスサーバにより頻繁にアクセスしたユーザにより高い優先度が与えられるように、各ユーザがデバイスからアカウントにアクセスした回数に基づいてよい。別の例では、ランク付けは、各ユーザが受信するオフラインメッセージの数に基づき得る。別の例では、オフラインユーザのメッセージには、使用頻度または受信されたメッセージの数にかかわらず、より高い優先度が与えられるプレミアムサービスを利用することを、ユーザが選んでよい。
【0018】
図1は、様々な実施形態との使用に適したネットワークシステム100を示す。ネットワークシステム100は、第1のデバイス130、第2のデバイス132、および第3のデバイス134を含み得る。ある実施形態では、第1のデバイス130はスマートフォンであってよく、第2のデバイス132はパーソナルコンピュータであってよく、第3のデバイス134はラップトップコンピュータであってよい。第2のデバイス132および第3のデバイス134は、ワイヤード接続140を介してインターネット104に接続するように構成され得る。さらに、第1のデバイス130、第2のデバイス132、および第3のデバイス134は、Wi-Fiアクセスポイントなどのワイヤレスアクセスポイント144を通して確立されたワイヤレス接続142を介してインターネット104に接続するように構成され得る。ワイヤレスアクセスポイント144は、ワイヤード接続140を通してインターネット104と接続することができる。さらに、第1のデバイス130およびセルラータワーまたは基地局160は、セルラー接続146を介してデータを交換することができ、接続146は、CDMA、TDMA、GSM(登録商標)、PCS、3G、4G、LTE、または他のどのタイプのセルラー接続であってもよい。
図1には示さないが、第2のデバイス132および第3のデバイス134は、セルラー通信インターフェースを装備し、CDMA、TDMA、GSM(登録商標)、PCS、3G、4G、LTE、または他のどのタイプのセルラー接続であってもよいセルラー接続146を介してインターネット104に接続するように構成され得ることに留意されたい。セルラータワーまたは基地局160は、インターネット104に接続することができるルータ162と通信していてよい。メッセージを管理し、配信するウェブサービスサーバ150も、インターネット104に接続し、データベース152へのアクセスを有し得る。
【0019】
図2は、マルチユーザ、マルチデバイスネットワークシステム200の実施形態を示す。様々な実施形態において、システムは、1つまたは複数のデバイスと、1つまたは複数のデバイスの各々を共有する複数のユーザとを有し得る。ある実施形態では、第1のユーザ202および第2のユーザ204は、デバイス130、132、および134のうちの少なくとも1つを共有することができ、これらのデバイスはすべて、インターネット104への接続(ワイヤードまたはワイヤレス)を通してウェブサービスサーバ150にアクセスすることが可能であり得る。さらに別の実施形態では、第1のユーザ202が、ウェブサービスサーバ150に接続するのに第1のデバイス130を使うことができ、任意選択で、第2のデバイス132および第3のデバイス134のうちの少なくとも1つを使うことができる。第2のユーザ204は、第1のデバイス130を第1のユーザ202と共有することができ、ウェブサービスサーバ150にアクセスするのに、第1のデバイス130を使うこともできる。ある実施形態では、第2のユーザ204は、第1のユーザ202が第1のデバイス130からログアウトした後、共有される第1のデバイス130へのアクセスを得ることができる。第1のユーザ202は、第2のユーザ204がログアウトした後、ウェブサービスサーバ150にログインすることによって、ウェブサービスサーバ150にアクセスするのに、第1のデバイス130を再度使うことができる。
【0020】
ある実施形態では、ウェブサービスサーバ150は、ウェブサービスサーバ150に接続するのに使われるデバイスにどのユーザが関連付けられているか判断し、または更新するのに、データベース152を参照することができる。ウェブサービスサーバ150は、ウェブサービスサーバ150にアクセスしている特定のデバイスに関連付けられたユーザ向けのいずれかの未配信メッセージをフェッチするのに、データベース152にアクセスすることもできる。別の実施形態では、ウェブサービスサーバ150は、データベース152中の、各ユーザに特有の共有鍵情報を記憶し、かつ/または取り出すことができる。様々な実施形態の以下の説明は、例示的な第1のデバイス130とウェブサービスサーバ150との間の呼フローおよび動作について記載する。第2のデバイス132および/または第3のデバイス134とウェブサービスサーバ150との間で、同じ呼フローおよびプロセスフローが実装されてよいことが、当業者には認識されよう。
【0021】
図3は、共有デバイス130、ウェブサービスサーバ150、およびデータベース152の間の呼フロー関係300の実施形態を示す。ある実施形態では、デバイス130は、上述したように、インターネット接続を通してウェブサービスサーバ150にアクセスすることができ、ウェブサービスサーバは、データベース152と通信して、情報を記憶し、かつ/または取り出すことができる。さらに別の実施形態では、デバイス130は、両方ともデバイス130を同時にではないが使うことができる現在のユーザおよびオフラインユーザによって使われ得る。ある実施形態では、現在のユーザおよびオフラインユーザは、自分たちのメッセージアドレスおよびデバイス130との自分たちの関連付けを、ウェブサービスサーバ150に以前登録したことがあってよい。ウェブサービスサーバ150は、それらのユーザのアドレスおよび関連付けを、データベース152に、またはウェブサービスサーバ150にローカルに記憶していてよい。
【0022】
ある実施形態では、オフラインユーザは、ウェブサービスサーバ150にアクセスするのに共有デバイスを使った後、動作302に示すように、共有デバイス130からログアウトしていてよい。動作304で、現在のユーザは、デバイス130を現在使っている他のユーザがいないので、デバイス130にログインすることができる。現在のユーザがデバイス130にログインした後、デバイス130は、未配信メッセージの配信のために、ウェブサービスサーバ150に要求信号308を送ればよい。
【0023】
ある実施形態では、デバイス130の要求信号308に応答して、ウェブサービスサーバ150は、現在のユーザの未配信メッセージをフェッチするための信号310をデータベース152に送ってよい。データベース152は、フェッチ信号310に応答して、現在のユーザの未配信メッセージをウェブサービスサーバ150に送信すればよい。ウェブサービスサーバ150は、動作312で、いずれかのオフラインユーザがデバイス130に関連付けられているかどうか判断することができる。ウェブサービスサーバ150は、動作313で、デバイス130に関連付けられたオフラインユーザが、配信されるのを待っている未配信メッセージを有するかどうか判断することもできる。ある実施形態では、ウェブサービスサーバは、予定受信者であるオフラインユーザの最後のログアウトイベントタイムスタンプよりも後のタイムスタンプをもつメッセージがあるかどうか判断するのに、タイムスタンプを使ってよい。ウェブサービスサーバ150は、データベース152に、配信されるのを待っている、オフラインユーザの未配信メッセージをフェッチさせるための信号314をデータベース152に送信することができる。データベース152は、ウェブサービスサーバ150の信号314に応答して、配信されるのを待っている、オフラインユーザの未配信メッセージを送信すればよい。ウェブサービスサーバ150は、動作316で、オフラインユーザのメッセージを、各ユーザ用の異なるランダム鍵で暗号化することができる。ウェブサービスサーバ150は、データベース152に送信317を送って、ランダム鍵を記憶することができる。さらに別の実施形態では、ウェブサービスサーバ150は、現在のユーザの暗号化されていないメッセージならびにオフラインユーザの暗号化メッセージを含む送信318をデバイス130に送ることができる。
【0024】
ある実施形態では、現在のユーザの暗号化されていないメッセージを受信した後、デバイス130は、動作320で、現在のユーザのメッセージを、デバイス130上に表示してよい。さらに別の実施形態では、デバイス130は、動作324で、オフラインユーザの暗号化メッセージを、後の復号および表示のためにローカルに記憶してもよい。
【0025】
図4は、現在のユーザおよびオフラインユーザ向けのメッセージをウェブサービスサーバから配信するためのウェブサービスサーバメッセージ配信方法400についての実施プロセスフローを示す。方法400のブロック309で、ウェブサービスサーバ150は、デバイスの現在のユーザ向けの未配信メッセージをフェッチするための要求をデバイス130から受信することができる。要求を受信すると、ウェブサービスサーバ150は、ブロック310で、現在のユーザ向けの未配信メッセージをフェッチすることができる。ある実施形態では、ウェブサービスサーバ150は、現在のユーザ向けの未配信メッセージを含むデータベース152にアクセスすればよい。ウェブサービスサーバ150は、ブロック312で、やはりデバイス130に関連付けられたオフラインユーザ向けの未配信メッセージがあるか調べればよい。ウェブサービスサーバ150は、決定ブロック402で、いずれかのオフラインユーザに配信されるのを待っているメッセージがあるかどうか判断することができる。少なくとも1人のオフラインユーザ向けの未配信メッセージがある場合(すなわち、決定ブロック402=「yes」)、ウェブサービスサーバ150は、ブロック314で、これらの未配信メッセージをフェッチすればよい。ウェブサービスサーバ150は、ブロック316で、未配信メッセージを暗号化してよい。ある実施形態では、ウェブサービスサーバ150は、ランダム鍵を使うことによって、オフラインユーザのメッセージを暗号化することができる。ウェブサービスサーバ150は、オフラインユーザを対象とする未配信メッセージを、未配信メッセージを有する各オフラインユーザ用の異なるランダム暗号化鍵を使って暗号化することができる。ウェブサービスサーバ150は、ブロック317で、オフラインユーザに関連付けられたランダム暗号化鍵の各々をデータベース152に記憶することができる。ウェブサービスサーバ150は、ブロック318で、暗号化されていない(または暗号化された)形の現在のユーザのメッセージ、および暗号化された形のオフラインユーザ向けの任意の未配信メッセージを含む、データベース152から取り出したどのメッセージもデバイス130に配信してよい。ウェブサービスサーバ150は、ブロック309での動作を続けてよい。
【0026】
図5は、ウェブサービスサーバに接続し、サーバからメッセージを受信するためのデバイスメッセージ要求および受信方法500についての実施プロセスフローを示す。ブロック302で、デバイス130の現在のユーザが、ログアウトしてよい。この時点で、以前該当した現在のユーザが、オフラインユーザになり得る。以前該当したオフラインユーザが、ブロック304で、デバイス130にログインすることができる。この時点で、以前該当したオフラインユーザが現在のユーザになり得る。ブロック308で、デバイス130は、未配信メッセージの配信のための要求をウェブサービスサーバ150に送ってよい。ブロック319で、デバイス130は、ウェブサービスサーバ150から送られた、現在のユーザのメッセージとオフラインユーザ向けの任意のメッセージの両方を受信し得る。デバイスは、ブロック320で、現在のユーザのメッセージを表示してよい。デバイス130は、決定ブロック322で、ウェブサービスサーバがオフラインユーザ向けのいずれかの暗号化メッセージを配信したかどうか判断することができる。ウェブサービスサーバが、少なくとも1人のオフラインユーザ向けの暗号化メッセージを配信しなかった場合(すなわち、決定ブロック322=「no」)、モバイルデバイスは、ブロック302での動作を続けてよい。そうでない場合(すなわち、決定ブロック322=「yes」)、デバイス130は、ブロック324で、それらの暗号化メッセージを、デバイス130のローカルストレージに記憶すればよい。ある実施形態では、メッセージは、バイナリラージオブジェクトとして記憶され得る。別の実施形態では、暗号化メッセージは、各オフラインユーザの識別子にリンクされたデータテーブルに記憶され得る。モバイルデバイス130は、ブロック302での動作を続けてよい。
【0027】
図6は、ユーザのメッセージを復号するときの、デバイス130とウェブサービスサーバ150との間の実施シグナリングおよび呼フロー600を示す。ある実施形態では、デバイス130が、上述したように、インターネット接続104を通してウェブサービスサーバ150にアクセスし得る。さらに別の実施形態では、デバイス130は、同時にではないが、異なるときにデバイス130を使うことができる2人のユーザによって使われ得る。ある実施形態では、第1のユーザ202および第2のユーザ204は、デバイス130を使って、ウェブサービスサーバ150に以前登録しており、ウェブサービスサーバ150は、第1のユーザ202および第2のユーザ204を、デバイス130を使うものとして登録してある。
【0028】
ある実施形態では、第1のユーザ202(すなわち、現在のユーザ)は、デバイス130を使っていたことがあってよく、その後、動作602に示すようにログアウトしていてよい。動作604で、第2のユーザ204(すなわち、新たな現在のユーザ)が、デバイス130にログインしてよい。デバイス130は、サービスに対して登録する信号606をウェブサービスサーバ150に送信することができる。信号606は、新たな現在のユーザのログイン証明を含んでよく、この証明は、ウェブサービスサーバ150が、新たな現在のユーザを認証するのに使う。
【0029】
ある実施形態では、ウェブサービスサーバ150は、動作607で、新たな現在のユーザがオフラインだった間に、新たな現在のユーザが、デバイス130へメッセージを配信されたかどうか判断することができる。言い換えると、ウェブサービスサーバ150は、デバイス130が、新たな現在のユーザ向けの暗号化メッセージをデバイス130のメモリに記憶されたかどうか判断することができる。さらに別の実施形態では、ウェブサービスサーバ150は、新たな現在のユーザが以前オフラインだった間にメッセージがデバイスに配信されたかどうか判断するのに、上述したタイムスタンプを使うことができる。ウェブサービスサーバ150は、動作608で、新たな現在のユーザの共有鍵(たとえば、QSK)でランダム鍵を暗号化することができる。ウェブサービスサーバ150は、暗号化されたランダム鍵を含む信号610をデバイス130に送信してよい。デバイス130は、動作612で、新たな現在のユーザの共有鍵を使って、暗号化されたランダム鍵を復号することができる。デバイス130は、動作613で、暗号化され、記憶された、新たな現在のユーザのメッセージを取り出すことができる。新たな現在のユーザのメッセージは、デバイス130のメモリに記憶することができる。新たな現在のユーザのメッセージを取り出した後、デバイス130は、動作614で、復号されたランダム鍵を使って、新たな現在のユーザの暗号化メッセージを復号することができる。デバイス130は、上で論じた様々な方法に従って、新たな現在のユーザおよび任意のオフラインユーザ向けのどの未配信メッセージの配信も要求する信号308を送ることができる。同様に、ウェブサービスサーバ150は、
図4で論じた方法を実装して、サーバ150がフェッチし得るどの未配信メッセージも配信する信号318を送信することができる。
【0030】
図7は、デバイス130に、デバイス130上に記憶された暗号化メッセージを復号させるための実施ウェブサービスサーバ方法700を示す。ある実施形態では、ユーザ(すなわち、現在のユーザ)が、デバイス130を通して、ウェブサービスサーバとのサービスのためにログインすることを要求し得る。ウェブサービスサーバ150は、ログインするためのユーザの要求をブロック606で受信し得る。現在のユーザの要求は、現在のユーザの登録情報を含み得る。ブロック701で、ウェブサービスサーバ150は、現在のユーザをサービスに登録してよい。ウェブサービスサーバ150は、ブロック607で、現在のユーザがオフラインだった間に、現在のユーザが、メッセージをデバイス130へ配信されたかどうか判断することができる。たとえば、ウェブサービスサーバ150は、メッセージが、現在のユーザの最後のログアウトイベントについてのタイムスタンプの後だった配信についてのタイムスタンプを有していたかどうか判断することができる。決定ブロック702で、ウェブサービスサーバ150が、現在のユーザがオフラインだった間にデバイス130にメッセージを配信しなかった場合(すなわち、決定ブロック702=「no」)、ウェブサービスサーバ150は、
図4および
図9〜
図11のブロック309での動作を続けてよい。言い換えると、ウェブサービスサーバ150は、現在のユーザおよびオフラインユーザ向けのどの未配信メッセージもフェッチし、配信することができる。そうではなく、ウェブサービスサーバ150が、現在のユーザがオフラインだった間に現在のユーザ向けのメッセージを配信した場合(すなわち、決定ブロック702=「yes」)、ウェブサービスサーバ150は、ブロック608で、送信に先立って、現在のユーザの共有鍵でランダム鍵を暗号化することができる。ランダム復号鍵は、デバイス130上で記憶され、暗号化された、現在のユーザのメッセージを復号するのに必要とされる復号鍵であり得る。ある実施形態では、ウェブデバイスは、現在のユーザにとって既知であるか、またはデバイス130によって現在のユーザの共有鍵であると認識される共有鍵(QSK)を使って、ランダム鍵を暗号化することができる。さらに別の実施形態では、ウェブサービスサーバ150は、現在のユーザに関連付けられた共有鍵をデータベース1
52から取り出すことができる。ウェブサービスサーバ150は、ブロック610で、暗号化されたランダム鍵をデバイス130に配信してよい。現在のユーザの暗号化メッセージを復号するための手段をリモートに格納することは、メッセージの受信者のみがメッセージにアクセスすることができることを保証することによって、プライバシーおよびセキュリティを増すことができる。このプライバシーおよびセキュリティは、デバイス130が複数のユーザのメッセージを同じ共有デバイス上で記憶することができ得るので、特に有益であり得る。暗号化されたランダム鍵がデバイス130に送信されると、ウェブサービスサーバ150は、
図4および
図9〜
図11のブロック309に進み得る。
【0031】
図8は、暗号化されたランダム鍵をウェブサービスサーバ150から受信し、その鍵を使って、デバイス130上でユーザ向けに記憶された暗号化メッセージを復号するためのデバイス方法についての実施プロセスフローを示す。デバイス130は、ブロック602で、現在のユーザをログアウトさせてよい。デバイス130は、ブロック604で、新たな現在のユーザをログインさせてもよい。デバイス130は、ブロック606で、ウェブサービスサーバに対してサービスを要求し得る。要求には、新たな現在のユーザのログイン証明が伴い得る。ある実施形態では、デバイス130が、新たな現在のユーザが以前オフラインだった間に新たな現在のユーザ(以前はオフラインユーザ)にメッセージが配信されたと判断した場合(すなわち、決定ブロック702=「yes」)、デバイスは、ブロック610で、新たな現在のユーザの共有鍵で暗号化されたランダム鍵を受信することができる。そうでない場合(すなわち、決定ブロック702=「no」)、デバイス130は、遷移ブロック802での動作を続けてよい。
【0032】
ブロック610から続いて、デバイス130は、ブロック612で、新たな現在のユーザの共有鍵を使って、ランダム鍵を復号することができる。ブロック613で、デバイスは、新たな現在のユーザの、記憶され、暗号化されたメッセージを取り出すことができる。これらの暗号化メッセージは、新たな現在のユーザが以前オフラインだった間に配信済みであってよい。ブロック614で、復号されたランダム鍵を使って、デバイス130は、新たな現在のユーザが以前オフラインだった間に配信された、新たな現在のユーザの、記憶され、暗号化されたメッセージを復号することができる。デバイス130は、遷移ブロック802から
図5のブロック308に進んでよい。
【0033】
図9は、デバイス130がウェブサービスサーバにそれを介してアクセスしている物理層を判断した後、オフラインユーザのメッセージをデバイスに配信するためのウェブサービスサーバ方法900についての実施プロセスフローを示す。ある実施形態では、ウェブサービスサーバ150は、ブロック309で、デバイス130の現在のユーザ向けの未配信メッセージをフェッチするための要求をデバイス130から受信し得る。ウェブサービスサーバ150は、デバイス130による、メッセージの配信についての要求に、ブロック310で応答することができる。現在のユーザの未配信メッセージをフェッチした後、ウェブサービスサーバ150は、オフラインユーザへの未配信メッセージがあるかブロック312で調べればよい。ウェブサービスサーバ150は、決定ブロック402で、要求側デバイス130に関連付けられた少なくとも1人のオフラインユーザ向けの未配信メッセージがあるかどうか判断することができる。少なくとも1人のオフラインユーザ向けの未配信メッセージがある場合(すなわち、決定ブロック402=「yes」)、ウェブサービスサーバ150は、ブロック902で、デバイス130がウェブサービスサーバ150にアクセスするのに、どのタイプの物理層(すなわち、ネットワーク)を使っているか判断すればよい。物理層は、たとえば、Wi-Fi接続、ワイヤードインターネット接続、または3G/4Gセルラーネットワークなどのセルラーネットワークを通した接続であってよい。デバイスがウェブサービスサーバ150にそれを介してアクセスしている物理層を判断した後、ウェブサービスサーバ150は、決定ブロック904で、物理層が、ユーザが転送することができるデータの量に対する制約を特徴として有するタイプのネットワークであるかどうか判断することができる。たとえば、ユーザが、スマートフォンを使って、3Gネットワークを経由してウェブサービスサーバに接続している場合、ウェブサービスサーバ150は、3Gネットワークを、データ制約のある物理層として認識し得る。別の例では、ユーザが、Wi-Fiネットワークを経由してウェブサービスサーバに接続するのにラップトップを使う場合、ウェブサービスサーバ150は、デバイスがデータ制約を有していないと判断することができる。したがって、ある実施形態では、ウェブサ
ービスサーバ150が、物理層がデータ制約されないと判断した場合(すなわち、決定ブロック904=「no」)、ウェブサービスサーバ150は、ブロック906で、オフラインユーザのメッセージの全体をフェッチしてよい。一方、ウェブサービスサーバ150が、物理層がデータ制約されると判断した場合(すなわち、決定ブロック904=「yes」)、ウェブサービスサーバ150は、ブロック908に示されるように、未配信メッセージの限られた部分のみをフェッチすることを選べばよい。ある実施形態では、ウェブサービスサーバ150は、メタデータまたはユーザのメッセージへのリンクのみを配信すればよい。このようにして、ウェブサービスサーバ150は、物理層を経由して送信されるオフラインメッセージデータの量を制限して、データ過多または過剰データ使用を回避することができる。そのような制限は、メッセージの総累積サイズ、メッセージの個々のサイズ、メッセージの数、メッセージ取出しの頻度などに基づき得る。オフラインユーザのメッセージ全体(ブロック906)またはそれらのメッセージの限られた表現のみ(ブロック908)のいずれかをフェッチすると、ウェブサービスサーバ150は、ブロック316で、メッセージを暗号化することができる。暗号化の後、ウェブサービスサーバ150は、ブロック318で、メッセージをデバイスに配信してよい。
【0034】
少なくとも1人のオフラインユーザ向けの未配信メッセージがない場合(すなわち、決定ブロック402=No)、ウェブサービスサーバ150は、動作318で、デバイスの現在のユーザ向けの、フェッチされたメッセージを配信すればよい。デバイスの現在のユーザおよび/またはデバイスに関連付けられた任意のオフラインユーザ向けのフェッチされたメッセージの配信に続いて、ウェブサービスサーバ150は、ブロック309で、未配信メッセージをフェッチするための、デバイスからの要求の次の受信を待ち受ければよい。
【0035】
図10は、ウェブサービスサーバ150が、そのオフラインユーザ向けのメッセージを、使われていないデバイス(すなわち、「休眠」デバイス)に絶えず配信するとは限らないことを保証するように、オフラインユーザが「アクティブ」デバイスとして登録することができるデバイスにのみメッセージを配信することができるウェブサービスサーバ方法1000についての実施プロセスフローを示す。ある実施形態では、ユーザが、ウェブサービスサーバ150にアクセスするのに、複数のデバイスを日常的に使う場合がある。たとえば、ユーザは、ウェブサービスサーバ150上の自分のメッセージを確かめるのに、ラップトップコンピュータ134、パーソナルコンピュータ132、およびスマートフォン130のどの組合せも使う場合がある。別の実施形態では、ユーザは複数のデバイスを使う場合があるが、デバイスのうちのいくつかは、一度使われるだけであるか、またはごくまれに使われる。たとえば、ユーザは、自分のメッセージを調べるのに、一度だけ公共コンピュータを使う場合がある。どれだけ頻繁にユーザがデバイスを使っているかについて何らかの認識がないと、ウェブサービスサーバ150は、ユーザがそのデバイスを一度しか使わないとしても、オフラインユーザ向けのメッセージをデバイスに絶えず配信する可能性がある。
【0036】
図10に示す実施形態では、ウェブサービスサーバ150は、ブロック309で、デバイス130の現在のユーザ向けの未配信メッセージをフェッチするための要求をデバイス130から受信し得る。デバイス130の要求に応答して、ウェブサービスサーバ150は、ブロック310で、現在のユーザの未配信メッセージをフェッチしてよい。ウェブサービスサーバ150は、ブロック1001で、現在のユーザのメッセージを配信してよい。ウェブサービスサーバ150は、オフラインユーザへの未配信メッセージがあるかブロック312で調べてよい。ウェブサービスサーバ150は、決定ブロック402で、要求側デバイス130に関連付けられた少なくとも1人のオフラインユーザ向けの未配信メッセージがあるかどうか判断することができる。少なくとも1人のオフラインユーザ向けの未配信メッセージがある場合(すなわち、決定ブロック402=「yes」)、ウェブサービスサーバ150は、ブロック1002で、未配信メッセージをもつオフラインユーザに対してデバイスがアクティブであるかどうか判断することができる。オフラインユーザ向けの未配信メッセージがない場合(すなわち、決定ブロック402=「no」)、ウェブサービスサーバ150は、ブロック309における動作を続けてよい。
【0037】
ある実施形態では、ウェブサービスサーバ150は、ブロック1002で、現在の時間と、オフラインユーザがウェブデバイス130にアクセスするのにデバイス130を使った前回の時間との間の時間期間が、所与の閾値よりも短いかどうか調べることによって判断を行うことができる。たとえば、オフラインユーザが、一週間にわたって、自分のメッセージを調べるのにデバイスを使っていない場合、ウェブサービスサーバ150は、デバイスがそのオフラインユーザに関して休眠していると見なしてよい。言い換えると、ウェブサービスサーバ150は、ユーザのログインの頻度に基づいて、ユーザがデバイスをアクティブに使っているかどうか判断することができる。別の実施形態では、ウェブサービスサーバ150は、ユーザがウェブサービスサーバ150にサービス用に登録するのにデバイス130を初めて使う時点で、ユーザがオフラインメッセージをデバイス130に送られたいかどうか指定するよう、ユーザを促してよい。たとえば、ユーザがデバイスを初めて使っている(たとえば、公共コンピュータを使っている)場合、ウェブサービスサーバ150は、そのデバイスにオフラインメッセージを送るための認可をユーザに依頼すればよく、ユーザは、そのデバイスを再度使うことはないと確信しているので、ユーザは、そのデバイス上でメッセージを受信するのをやめることができる。別の実施形態では、ユーザは、ウェブサービスサーバ150にログオンし、ウェブサービスサーバがどのデバイスにメッセージを送ってよいか(すなわち、どのデバイスがアクティブであるか)を手作業で指定することができる。
【0038】
デバイス130が、未配信メッセージがあるオフラインユーザに対してアクティブでない場合(すなわち決定ブロック1004=「no」)、デバイス130は、ブロック309における動作を続けてよい。そうでない場合(すなわち、決定ブロック1004=「yes」)、ウェブサービスサーバ150は、ブロック1006で、「アクティブ」オフラインユーザのメッセージをフェッチしてよい。ウェブサービスサーバ150は、ブロック1008で、それらのオフラインユーザのメッセージを暗号化することができる。オフラインユーザのメッセージは、ユーザのプライバシーを保つように、および特定の暗号化メッセージに関連付けられたオフラインユーザのみがそのメッセージにアクセスすることができることを保証するように暗号化され得る。アクティブオフラインユーザのメッセージを暗号化した後、ウェブサービスサーバ150は、「アクティブ」オフラインユーザの未配信メッセージをデバイス130に配信してよい。ウェブサービスサーバ150は、ブロック309での動作を続けてよい。上記のアクションは、一定の順序で記載されているが、アクションは様々な順序で実施されてよいことが、当業者には諒解されよう。
【0039】
図11は、優先順位に従ってオフラインユーザにメッセージを配信するためのウェブサービスサーバ方法1100についての実施プロセスフローを示す。
図11に示す実施形態では、ウェブサービスサーバ150は、ブロック309で、デバイス130の現在のユーザ向けの未配信メッセージをフェッチするための要求をデバイス130から受信し得る。ウェブサービスサーバ150は、デバイス130による、メッセージの配信についての要求に、ブロック310で応答することができる。現在のユーザの未配信メッセージをフェッチした後、ウェブサービスサーバ150は、ブロック1001で、現在のユーザのメッセージを配信してよい。ウェブサービスサーバ130は、オフラインユーザへの未配信メッセージがあるかブロック312で調べてよい。ウェブサービスサーバ150は、ブロック402で、要求側デバイス130に関連付けられた少なくとも1人のオフラインユーザ向けの未配信メッセージがあるかどうか判断することができる。少なくとも1人のオフラインユーザ向けの未配信メッセージがない場合(すなわち、決定ブロック402=「no」)、ウェブサービスサーバ150は、ブロック309での動作を続けてよい。そうでない場合(すなわち、決定ブロック402=「yes」)、ウェブサービスサーバ150は、ブロック314で、オフラインユーザの未配信メッセージをフェッチしてよい。ウェブサービスサーバは、ブロック316で、オフラインユーザのプライバシーを保護するように、およびメッセージへの無許可アクセスを防ぐように、未配信メッセージを暗号化してよい。
【0040】
決定1102で、ウェブサービスサーバ150は、複数のオフラインユーザがいるかどうか判断することができる。ある実施形態では、決定ブロック1102で判断されたように、複数のオフラインユーザがいる場合(すなわち、決定ブロック1102=「yes」)、ウェブサービスサーバ150は、オフラインユーザの優先度またはランク付けシステムを実施してよい。優先順位は、どのオフラインユーザが、他のユーザの前に自分の未配信メッセージを受信するか決めることができる。この優先度システムは、未配信メッセージがすでにデバイスにダウンロードされていることの恩恵を被り得る、より高い優先度をユーザに割り当てることによって、限られたリソース(たとえば、時間や帯域幅)しかないときのメッセージ配信を最適化することもできる。ブロック1104で、ウェブサービスサーバ150は、複数のオフラインユーザの優先度ランク付けを作成することができる。ある実施形態では、優先順位は、どれだけ頻繁にユーザがウェブサービスサーバを使うかに基づき得る。別の実施形態では、より高い平均メッセージ数をもつユーザが、より少ないメッセージを受信する別のユーザよりも高い優先度を有し得るように、優先度は、ユーザが受信するメッセージの平均数に基づき得る。さらに別の実施形態では、ウェブサービスサーバは、適切なランク付けを判断するのに、ヒューリスティクスを使うことができる。さらなる実施形態では、1人または複数の特定のユーザが、自分のそれぞれのメッセージが、他の非プレミアムユーザよりも高い優先度で扱われるようにするためにプレミアムサービスを利用し得る。ブロック1104で、未配信メッセージがあるオフラインユーザをランク付けした後、ウェブサービスサーバ150は、ブロック1106で、各オフラインユーザのそれぞれの優先度に従って、オフラインユーザの未配信メッセージについての配信をスケジュールすることができる。たとえば、配信スケジュールは、ウェブサービスサーバ150に、最も高い優先度のオフラインユーザのメッセージを第1に、次に高い優先度のオフラインユーザのメッセージ第2に配信させてよく、以下同様に続く。ある実施形態では、デバイス130へのメッセージについての配信優先度をスケジュールすると、ウェブサービスサーバ150は、現在のユーザの未配信メッセージを第1に配信し、ブ
ロック1108で、オフラインユーザの未配信メッセージを優先度順に配信することができる。デバイスの現在のユーザおよび/またはデバイスに関連付けられた任意のオフラインユーザ向けのフェッチされたメッセージの配信に続いて、ウェブサービスサーバ150は、ブロック309で、未配信メッセージをフェッチするための、デバイスからの要求の次の受信を待ち受ければよい。
【0041】
様々な実施形態は、種々のモバイルデバイスのいずれにも実装することができ、その一例が
図12に示される。たとえば、モバイルデバイス1200は、内部メモリ1204および1210に結合されたプロセッサ1202を含むことができる。内部メモリ1204および1210は、揮発性メモリまたは不揮発性メモリであってもよく、また、セキュアメモリおよび/もしくは暗号化メモリ、または非セキュアメモリおよび/もしくは非暗号化メモリ、またはそれらの任意の組合せであってもよい。また、プロセッサ1202は、抵抗性感知タッチスクリーン、静電容量感知タッチスクリーン、赤外線感知タッチスクリーンなどのタッチスクリーンディスプレイ1206に結合することができる。加えて、モバイルデバイス1200のディスプレイは、タッチスクリーン機能を有する必要はない。加えて、モバイルデバイス1200は、プロセッサ1202に結合されたワイヤレスデータリンクおよび/または携帯電話トランシーバ1216に接続できる、電磁放射を送受信するための1つまたは複数のアンテナ1208を有することができる。モバイルデバイス1200はまた、ユーザ入力を受信するための物理ボタン1212aおよび1212bを含み得る。モバイルデバイス1200はまた、モバイルデバイス1200をオンおよびオフするための電源ボタン1218を含むことができる。
【0042】
様々な実施形態は、
図13に示されたサーバ1300などの、様々な市販のサーバデバイスのいずれにも実装することができる。そのようなサーバ1300は、通常、揮発性メモリ1302、およびディスクドライブ1303などの大容量不揮発性メモリに結合されたプロセッサ1301を含む。サーバ1300はまた、プロセッサ1301に結合された、フロッピー(登録商標)ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ1306を含むことができる。サーバ1300はまた、他のブロードキャストシステムコンピュータおよびサーバに、またはインターネットに結合されたローカルエリアネットワークなど、ネットワーク1307とデータ接続を確立するための、プロセッサ1301に結合されたネットワークアクセスポート1304も含み得る。
【0043】
上記で説明した様々な実施形態はまた、
図14に示すラップトップコンピュータ1400などの様々なモバイルデバイス内に実装され得る。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面1417を含み、したがって、タッチスクリーンディスプレイを備える上述のモバイルコンピューティングデバイスに実装されるものと同様のドラッグジェスチャ、スクロールジェスチャ、およびフリックジェスチャを受信することができる。ラップトップコンピュータ1400は、揮発性メモリ1412、およびフラッシュメモリのディスクドライブ1413などの大容量不揮発性メモリに結合されたプロセッサ1411を含み得る。コンピュータ1400はまた、プロセッサ1411に結合されたフロッピー(登録商標)ディスクドライブ1414およびコンパクトディスク(CD)ドライブ1415を含むことができる。ノートブック構成では、コンピュータのハウジングは、すべてがプロセッサ1411に結合される、タッチパッド1417、キーボード1418、およびディスプレイ1419を含む。コンピューティングデバイスの他の構成は、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含んでよく、それらはまた、様々な実施形態とともに使用され得る。加えて、ラップトップコンピュータ1400は、プロセッサ1411に結合されたワイヤレスデータリンクおよび/または携帯電話トランシーバ1420に接続できる、電磁放射を送受信するための1つまたは複数のアンテナ1422を有することができる。ラップトップコンピュータ1400はまた、インターネットのようなネットワークとのデータ接続を確立するための、プロセッサ1411に結合されたワイヤードネットワークアクセスポート1424を含み得る。
【0044】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な実施形態のステップが提示された順序で実施されなければならないことを要求または暗示するものではない。当業者によって諒解されるように、上記の実施形態におけるステップの順序は、任意の順序で実施することができる。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に本方法の説明を通して読者を案内するために使用される。さらに、たとえば、冠詞「a」、「an」または「the」を使用する単数形での請求要素への任意の言及は、その要素を単数に限定するものとして解釈されるべきではない。
【0045】
本明細書で開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装することができる。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能性に関して説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
【0046】
本明細書に開示された態様に関して記載された様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別のハードウェア構成要素、または、本明細書に記載された機能を実施するように設計されたそれらの任意の組合せで、実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。代替として、いくつかのステップまたは方法は、所与の機能に固有の回路によって実施することができる。
【0047】
1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。機能は、ソフトウェアで実装される場合、1つまたは複数の命令またはコードとして、非一時的コンピュータ可読媒体または非一時的プロセッサ可読記憶媒体に記憶され得る。本明細書で開示された方法またはアルゴリズムのステップは、非一時的コンピュータ可読記憶媒体またはプロセッサ可読記憶媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュールで具現化され得る。非一時的コンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であってよい。限定ではなく例として、そのような非一時的コンピュータ可読媒体またはプロセッサ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体およびプロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的なプロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の、1つまたは任意の組合せ、またはそのセットとして常駐し得る。
【0048】
開示された実施形態の上記の説明は、当業者が本発明を作成または使用することを可能にするために提供される。これらの実施形態への様々な修正が当業者には容易に明らかになり、本明細書に定義された一般原理は、本発明の趣旨および範囲を逸脱することなく他の実施形態に適用することができる。したがって、本発明は、本明細書に示す実施形態に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示する原理および新規の特徴に一致する最大の範囲を与えられるものである。
【符号の説明】
【0049】
100 ネットワークシステム
104 インターネット
130 第1のデバイス、デバイス、共有デバイス、モバイルデバイス
132 第2のデバイス、デバイス
134 第3のデバイス、デバイス
140 ワイヤード接続
142 ワイヤレス接続
144 ワイヤレスアクセスポイント
146 セルラー接続
150 ウェブサービスサーバ
152 データベース
160 基地局
162 ルータ
200 マルチユーザ、マルチデバイスネットワークシステム
202 第1のユーザ
204 第2のユーザ
308 要求信号
310 信号、フェッチ信号
314 信号
317 送信
318 送信
606 信号
610 信号
1200 モバイルデバイス
1202 プロセッサ
1204 内部メモリ
1206 タッチスクリーンディスプレイ
1208 アンテナ
1210 内部メモリ
1212a 物理ボタン
1212b 物理ボタン
1216 ワイヤレスデータリンク、携帯電話トランシーバ
1218 電源ボタン
1300 サーバ
1301 プロセッサ
1302 揮発性メモリ
1303 ディスクドライブ
1304 ネットワークアクセスポート
1306 コンパクトディスク(CD)またはDVDディスクドライブ
1307 ネットワーク
1400 ラップトップコンピュータ
1411 プロセッサ
1412 揮発性メモリ
1413 ディスクドライブ
1414 フロッピー(登録商標)ディスクドライブ
1415 コンパクトディスク(CD)ドライブ
1417 タッチ面、タッチパッド
1418 キーボード
1419 ディスプレイ
1420 ワイヤレスデータリンクおよび/または携帯電話トランシーバ
1422 アンテナ
1424 ワイヤードネットワークアクセスポート