(57)【要約】【課題】サーバから配信される更新データの利用を複数のデバイスが同時期に開始する場合でも、アクセス集中によるサーバの負荷を軽減させること。【解決手段】情報処理装置は、サーバと通信可能な通信部と、所定の処理に使用されるデータを記憶可能な記憶部と、制御部とを有する。制御部は、上記データの現在のバージョンを示す現在バージョン情報と、上記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報と、上記データの更新されたバージョンを取得するまでの最大待機時間を示す最大待機時間情報とを含む通知情報を上記サーバから受信し、上記最大待機時間内の任意の時間だけ待機した後に所定の記憶場所から上記更新されたバージョンを取得するように通信部を制御可能である。また制御部は、上記記憶されたデータを、上記取得された更新されたバージョンへ、上記最大待機時間経過後に更新するように記憶部を制御可能である。【選択図】図６
2015032184.tif 000002
【特許請求の範囲】
【請求項１】
サーバと通信可能な通信部と、
所定の処理に使用されるデータを記憶可能な記憶部と、
前記データの現在のバージョンを示す現在バージョン情報及び前記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含む通知情報を前記サーバから受信し、所定の最大待機時間内で任意に決定される待機時間だけ待機した後に所定の記憶場所から前記更新されたバージョンを取得するように前記通信部を制御し、
前記記憶されたデータを、前記取得された更新されたバージョンへ、前記最大待機時間経過後に更新するように前記記憶部を制御する
ことが可能な制御部と
を具備する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記通知情報には、前記最大待機時間を示す最大待機時間情報が含まれ、
前記制御部は、
前記最大待機時間内で任意に前記待機時間を決定可能であり、
前記最大待機時間経過後に、前記データを更新するよう要求する更新要求情報を前記サーバから受信するように前記通信部を制御可能であり、
前記更新要求情報に基づいて前記データを前記更新されたバージョンへ更新するように前記記憶部を制御可能である
情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記通知情報には、前記更新されたバージョンの更新時刻を示す更新時刻情報が含まれ、
前記更新時刻が到来したときに前記データを前記更新されたバージョンへ更新するように前記記憶部を制御可能である
情報処理装置。
【請求項４】
請求項２に記載の情報処理装置であって、
前記制御部は、
前記サーバと未接続のために前記更新要求情報を前記サーバから受信できなかった場合に、次回の前記サーバとの接続時に、当該サーバから前記現在バージョン情報を受信するように前記通信部を制御し、
前記現在バージョン情報で示されたバージョンと前記記憶部に記憶されたデータのバージョンとを比較し、
それらのバージョンが異なる場合に、前記記憶場所から前記データの前記現在バージョン情報で示されたバージョンを取得するように前記通信部を制御し、
取得されたバージョンによって前記記憶されたデータを更新するように前記記憶部を制御する
ことが可能である
情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記制御部は、当該情報処理装置の起動時であって、前記記憶部に前記データが記憶されていない場合に、前記記憶場所から前記データの現在のバージョンを取得するように前記通信部を制御可能である
情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
前記サーバは、当該情報処理装置と他の複数の装置との間の通信を中継する中継サーバであり、
前記データは、複数の中継サーバのうち、当該情報処理装置が前記中継のために接続すべき中継サーバの切り替えを示すデータである
情報処理装置。
【請求項７】
請求項１に記載の情報処理装置であって、
前記制御部は、
前記更新バージョン情報として、前記データの現在のバージョンが更新されたバージョンを示す情報と、当該更新されたバージョンがさらに更新されたバージョンを示す情報とを少なくとも含む複数の更新バージョン情報を受信するように前記通信部を制御可能であり、
前記複数の更新バージョン毎に設定された、それぞれ異なる最大待機時間の経過後に前記データを前記更新されたバージョンへ更新するように前記記憶部を制御可能である
情報処理装置。
【請求項８】
複数の情報処理装置と通信可能な通信部と、
前記複数の情報処理装置において所定の処理に使用されるデータの現在のバージョンを示す現在バージョン情報及び前記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含み、所定の最大待機時間内の任意の待機時間だけ待機してから取得することを通知する通知情報を前記複数の情報処理装置へ送信し、
前記データを前記更新されたバージョンによって更新するように要求する更新要求情報を、前記最大待機時間経過後に前記複数の情報処理装置へ送信する
ように前記通信部を制御可能な制御部と
を具備するサーバ装置。
【請求項９】
所定の処理に使用されるデータの現在のバージョンを示す現在バージョン情報及び前記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含む通知情報を受信し、
所定の最大待機時間内で任意に決定される待機時間だけ待機した後に所定の記憶場所から前記更新されたバージョンを取得し、
前記記憶されたデータを、前記データの更新されたバージョンへ、前記最大待機時間経過後に更新する
情報処理方法。
【請求項１０】
情報処理装置に、
所定の処理に使用されるデータの現在のバージョンを示す現在バージョン情報及び前記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含む通知情報を受信するステップと、
所定の最大待機時間内で任意に決定される待機時間だけ待機した後に所定の記憶場所から前記更新されたバージョンを取得するステップと、
前記記憶されたデータを、前記データの更新されたバージョンへ、前記最大待機時間経過後に更新するステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、データを記憶しそのデータの更新されたバージョンを受信することが可能な情報処理装置、サーバ装置、上記情報処理装置における情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、複数のデバイスが記憶するデータ（ソフトウェア等）をそれぞれ更新させる技術として、クラウド上のサーバが更新データを記憶し、所定の時刻に各デバイスへ更新データをブロードキャストするもの、またはサーバが各デバイスに所定の時刻にサーバへのアクセスを促し更新データをダウンロードさせるもの、等が存在する。
【０００３】
しかし、所定の時刻に各デバイスのデータが一斉に更新される場合、サーバやサーバに接続されたネットワークの負荷が瞬間的に高くなってしまう可能性がある。
【０００４】
この問題に関連して、下記特許文献１には、コンテンツ提供システムにおいて、ユーザ端末がサーバから更新後のコンテンツを取得する時刻を分散させるための時間幅情報が設定されたコンテンツ情報をユーザ端末へ送信し、ユーザ端末が当該コンテンツ情報を基に設定された時刻にコンテンツを取得することで、サーバへのアクセス集中による負荷を軽減することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１１３６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献１に記載の技術では、更新コンテンツは、各ユーザ端末によって取得された直後に、それぞれの取得タイミングに応じて異なる時刻に再生されるため、各ユーザ端末に保存される必要はない。しかしながら、更新されたデータの利用が複数のデバイス間で同時期に開始される必要のあるシステムにおいても、サーバの負荷を軽減するために、予めデバイスがデータを異なる時間に取得しておくことが望まれる。
【０００７】
以上のような事情に鑑み、本技術の目的は、サーバから配信される更新データの利用を複数のデバイスが同時期に開始する場合でも、アクセス集中によるサーバの負荷を軽減させることが可能な情報処理装置、サーバ装置、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本技術の一形態に係る情報処理装置は、通信部と、記憶部と、制御部とを有する。
上記通信部は、サーバと通信可能である。上記記憶部は、所定の処理に使用されるデータを記憶可能である。
上記制御部は、上記データの現在のバージョンを示す現在バージョン情報及び上記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含む通知情報を上記サーバから受信し、所定の最大待機時間内で任意に決定される待機時間だけ待機した後に所定の記憶場所から上記更新されたバージョンを取得するように上記通信部を制御可能である。
また制御部は、上記記憶されたデータを、上記取得された更新されたバージョンへ、上記最大待機時間経過後に更新するように上記記憶部を制御可能である。
【０００９】
これにより情報処理装置は、サーバから配信される更新データの利用を複数のデバイスが同時期に開始する場合でも、更新データを最大待機時間内の任意の時刻に取得しておき最大待機時間経過まで使用せずに保持しておくことで、アクセス集中によるサーバ及びネットワークの負荷を軽減させることができる。
【００１０】
上記通知情報には、上記最大待機時間を示す最大待機時間情報が含まれてもよい。この場合上記制御部は、上記最大待機時間内で任意に上記待機時間を決定可能であってもよい。また制御部は、上記最大待機時間経過後に、上記データを更新するよう要求する更新要求情報を上記サーバから受信するように上記通信部を制御可能であり、上記更新要求情報に基づいて上記データを上記更新されたバージョンへ更新するように上記記憶部を制御可能であってもよい。
【００１１】
これにより情報処理装置は、サーバからの更新要求情報を受信するまでは、更新を実行することなく、取得した更新データを保持することができる。
【００１２】
上記通知情報には、上記更新されたバージョンの更新時刻を示す更新時刻情報が含まれてもよい。この場合上記更新時刻が到来したときに上記データを上記更新されたバージョンへ更新するように上記記憶部を制御可能であってもよい。
【００１３】
これにより情報処理装置は、更新時刻が到来するまでは、更新を実行することなく、取得した更新データを保持することができる。
【００１４】
上記制御部は、上記サーバと未接続のために上記更新要求情報を上記サーバから受信できなかった場合に、次回の上記サーバとの接続時に、当該サーバから上記現在バージョン情報を受信するように上記通信部を制御可能であってもよい。また制御部は、上記現在バージョン情報で示されたバージョンと上記記憶部に記憶されたデータのバージョンとを比較可能であってもよく、それらのバージョンが異なる場合に、上記記憶場所から上記データの上記現在バージョン情報で示されたバージョンを取得するように上記通信部を制御可能であってもよい。さらに制御部は、取得されたバージョンによって上記記憶されたデータを更新するように上記記憶部を制御可能であってもよい。
【００１５】
これにより情報処理装置は、例えば電源オフ等によってサーバから更新要求情報が受信できなかった場合でも、次回の起動時にデータの現在のバージョンを確認し、異なる場合は即座にそれを取得して更新することができる。
【００１６】
上記制御部は、当該情報処理装置の起動時であって、上記記憶部に上記データが記憶されていない場合に、上記記憶場所から上記データの現在のバージョンを取得するように上記通信部を制御可能であってもよい。
【００１７】
これにより情報処理装置は、その初回起動時や、何らかの理由で記憶部のデータが削除されてしまった場合であっても、データの現在のバージョンを取得することで、その後は通知情報の受信により更新バージョンも取得することができる。
【００１８】
上記サーバは、当該情報処理装置と他の複数の装置との間の通信を中継する中継サーバであってもよく、上記データは、複数の中継サーバのうち、当該情報処理装置が上記中継のために接続すべき中継サーバの切り替えを示すデータであってもよい。
【００１９】
これにより情報処理装置は、自身が接続すべき中継サーバの切り替えに関するデータを、切り替えのタイミング前の任意の時刻に取得しておくことで、多数の装置からの同時期のデータリクエストによって中継サーバの負荷が増大するのを防ぐことができる。
【００２０】
上記制御部は、上記更新バージョン情報として、上記データの現在のバージョンが更新されたバージョンを示す情報と、当該更新されたバージョンがさらに更新されたバージョンを示す情報とを少なくとも含む複数の更新バージョン情報を受信するように上記通信部を制御可能であってもよい。この場合制御部は、上記複数の更新バージョン毎に設定された、それぞれ異なる最大待機時間の経過後に上記データを上記更新されたバージョンへ更新するように上記記憶部を制御可能であってもよい。
【００２１】
これにより情報処理装置は、複数の更新バージョン情報を予め記憶しておくことで、サーバの負荷をさらに更に軽減することができる。
【００２２】
本技術の他の形態に係るサーバ装置は、通信部と制御部とを有する。
上記通信部は、複数の情報処理装置と通信可能である。
上記制御部は、上記複数の情報処理装置において所定の処理に使用されるデータの現在のバージョンを示す現在バージョン情報及び上記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含み、所定の最大待機時間内の任意の待機時間だけ待機してから取得することを通知する通知情報を上記複数の情報処理装置へ送信するように上記通信部を制御可能である。
また制御部は、上記データを上記更新されたバージョンによって更新するように要求する更新要求情報を、上記最大待機時間経過後に上記複数の情報処理装置へ送信するように上記通信部を制御可能である。
【００２３】
これによりサーバ装置は、各情報処理装置がデータの更新バージョンを取得するために記憶場所へアクセスするタイミングを分散させることで、自身または記憶場所並びにネットワークの負荷を軽減することができる。
【００２４】
本技術のまた別の形態に係る情報処理方法は、所定の処理に使用されるデータの現在のバージョンを示す現在バージョン情報及び上記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含む通知情報を受信すること、
所定の最大待機時間内で任意に決定される待機時間だけ待機した後に所定の記憶場所から上記更新されたバージョンを取得すること、及び、
上記記憶されたデータを、上記データの更新されたバージョンへ、上記最大待機時間経過後に更新することを含む。
【００２５】
本技術のさらにまた別の形態に係るプログラムは、情報処理装置に、受信ステップと、取得ステップと、更新ステップとを実行させる。
上記受信ステップでは、所定の処理に使用されるデータの現在のバージョンを示す現在バージョン情報及び上記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含む通知情報が受信される。
上記取得ステップでは、所定の最大待機時間内で任意に決定される待機時間だけ待機した後に所定の記憶場所から上記更新されたバージョンが取得される。
上記更新ステップでは、上記記憶されたデータが、上記データの更新されたバージョンへ、上記最大待機時間経過後に更新される。
【発明の効果】
【００２６】
以上のように、本技術によれば、サーバから配信される更新データの利用を複数のデバイスが同時期に開始する場合でも、アクセス集中によるサーバの負荷を軽減させることができる。
【図面の簡単な説明】
【００２７】
【図１】本技術の一実施形態に係るシステムの概要を示した図である。
【図２】上記システムが有するデバイスのハードウェア構成を示した図である。
【図３】上記システムが有する中継サーバのハードウェア構成を示した図である。
【図４】上記システムにおけるデバイス、中継サーバ及びResolveサーバの各ソフトウェアモジュールの構成を示した図である。
【図５】上記デバイスによる中継サーバ接続時の動作の流れを示したフローチャートである。
【図６】上記デバイスが中継サーバからResolveデータ更新通知を受信してResolveデータを取得する動作の流れを示したフローチャートである。
【図７】上記中継サーバがデバイスへResolveデータ更新通知を送信する処理を概念的に示した図である。
【図８】上記デバイスがResolveデータを取得する処理を概念的に示した図である。
【図９】上記デバイスがResolveデータを更新バージョンへ切り替える処理の流れを示したフローチャートである。
【図１０】上記中継サーバがデバイスへResolveデータの切り替え通知を送信する処理を概念的に示した図である。
【図１１】上記デバイスがResolveデータを切り替える処理を概念的に示した図である。
【図１２】上記デバイスが長時間未接続の状態を経て中継サーバへ接続する場合の動作を概念的に示した図である。
【発明を実施するための形態】
【００２８】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【００２９】
［システムの概要］
図１は、本実施形態に係る通信システムの概要を示した図である。
【００３０】
同図に示すように、本実施形態に係るシステムは、複数のデバイス１００（１００ａ，１００ｂ）と、クラウド（インターネット）上の複数の中継サーバ２００（２００ａ，２００ｂ，２００ｃ）及びResolveサーバ３００から構成される。デバイス１００及び中継サーバ２００の数は、図示されたものに限られない。
【００３１】
各デバイス１００は、中継サーバ２００と通信可能であり、当該中継サーバ２００を介して他のデバイス１００と通信可能である。各デバイス１００には、接続すべき中継サーバ２００が割り当てられている。例えばデバイス１００ａは中継サーバ２００ａに接続し、デバイス１００ｂは中継サーバ２００ｂに接続することとされている。また各デバイス１００は、中継サーバ２００の負荷を軽減するため、可能な場合には直接、例えばＵＰｎＰによるＰ２Ｐ（Peer to Peer）通信を行う。
【００３２】
ここで各デバイス１００は、例えばスマートフォン、デスクトップＰＣ、ノートブックＰＣ、タブレット、ＢＤＲ（Blu-ray（登録商標） Recorder）、ＴＶ、ストレージ装置、ゲーム機器、オーディオ機器等、あらゆるデバイスであり得る。
【００３３】
各中継サーバ２００は、管理対象のデバイス１００間の通信を中継し、各デバイス１００間のコネクションを管理する。各中継サーバ２００は、例えばデバイス１００間の所定数（例えば数万、数百万コネクションでもあり得る）のコネクション毎に設置される。各中継サーバ２００は他の中継サーバ２００及びResolveサーバ３００とも通信可能である。
【００３４】
中継サーバ２００は、各デバイス１００の接続情報（ＩＰアドレス、ポート番号等）を、各デバイスを識別するデバイスＩＤ等と対応付けて記憶している。
【００３５】
各デバイス１００が中継サーバ２００を介して通信する場合には、各デバイス１００は、自身のＩＤ及び送信先ＩＤを指定して中継サーバ２００へメッセージを送信し、中継サーバ２００は当該ＩＤに基づいて送信先ＩＤを有するデバイスへ当該メッセージを転送する。
【００３６】
Resolveサーバ３００は、各デバイス１００がどの中継サーバ２００へ接続すべきかを示すデータ（以下、Resolveデータ）を記憶する。各デバイス１００は、中継サーバ２００への接続に先立って、当該ResolveデータをResolveサーバ３００から受信する。
【００３７】
Resolveデータは、例えば中継サーバ２００が増設された場合や、デバイス１００の環境の変化等に応じて適宜更新される。例えば同図では、Resolveデータの現在のバージョンはVer=14であるが、中継サーバ２００ｃが増設され、デバイス１００ｂ等のいくつかのデバイス１００が接続すべき中継サーバ２００が、中継サーバ２００ｂから中継サーバ２００ｃへと変更される状況も考えられる。
【００３８】
この場合Resolveデータのバージョンはver=14からver=15へと更新される。本実施形態では、全てのデバイス１００が、この更新されたResolveデータを取得し、接続すべき中継サーバ２００が切り替わったことを検知したデバイス１００が、接続すべき中継サーバ２００を変更する仕組みが提供される。
【００３９】
この接続すべき中継サーバ２００（Resolveデータ）の切り替えは、全てのデバイス１００が対象のネットワーク構成の切り替え処理であるから、全てのデバイス１００が同時期に実行することが前提となる。しかし、切り替えのタイミングで各デバイス１００がResolveサーバ３００へ一斉にアクセスしてResolveデータを取得すると、Resolveサーバ３００及びそれに接続されたネットワークの負荷が増大することになる。本実施形態では、上記前提に立ちながらも、この負荷を軽減可能なシステムが提供される。
【００４０】
［デバイスのハードウェア構成］
図２は、上記デバイス１００のハードウェア構成を示した図である。同図に示すように、デバイス１００は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、入出力インタフェース１５、及び、これらを互いに接続するバス１４を備える。
【００４１】
ＣＰＵ１１は、必要に応じてＲＡＭ１３等に適宜アクセスし、各種演算処理を行いながらデバイス１００の各ブロック全体を統括的に制御する。ＲＯＭ１２は、ＣＰＵ１１に実行させるＯＳ、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の作業用領域等として用いられ、ＯＳ、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
【００４２】
入出力インタフェース１５には、表示部１６、操作受付部１７、記憶部１８、通信部１９等が接続される。
【００４３】
表示部１６は、例えばＬＣＤ（Liquid Crystal Display）、ＯＥＬＤ（Organic ElectroLuminescence Display）、ＣＲＴ（Cathode Ray Tube）等を用いた表示デバイスである。
【００４４】
操作受付部１７は、例えばタッチパネル、キーボード、ボタン等の入力装置である。操作受付部１７がタッチパネルである場合、それは表示部１６と一体化されている。
【００４５】
記憶部１８は、例えばフラッシュメモリ（ＳＳＤ；Solid State Drive）、その他の固体メモリ等の不揮発性メモリである。当該記憶部１８には、ＯＳのほか、Resolveサーバ３００から取得したResolveデータや、中継サーバ２００から受信した更新通知情報等のデータ、及びそれらのデータに基づくResolveデータの更新に必要な各種ソフトウェア等が記憶される。
【００４６】
通信部１９は、ネットワークに接続するためのモジュールであり、上記中継サーバ２００、Resolveサーバ３００及び他のデバイス１００との間の通信処理を担う。
【００４７】
［中継サーバのハードウェア構成］
図３は、上記中継サーバ２００のハードウェア構成を示した図である。同図に示すように、中継サーバ２００のハードウェア構成も、上記デバイス１００のハードウェア構成と基本的に同様である。すなわち、中継サーバ２００は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、入出力インタフェース２５、及び、これらを互いに接続するバス２４、表示部２６、操作受付部２７、記憶部２８、通信部２９を備える。ここで表示部２６は、中継サーバ２００に外部接続されていてもよい。また記憶部２８としては、ＨＤＤ（Hard Disk Drive）が用いられてもよい。
【００４８】
ＣＰＵ２１は、記憶部２８や通信部２９等の各ブロックを制御して、デバイス１００との通信処理や、各種データ処理を実行する。
【００４９】
記憶部２８には、各デバイス１００間の通信を中継及び管理するための各種ソフトウェア、Resolveサーバ３００に記憶されたResolveデータのデバイス１００への更新通知処理等に必要な各種ソフトウェアや、当該Resolveデータのバージョンに関するデータ等の各種データが記憶される。
【００５０】
通信部２９は、例えばEthernet（登録商標）用のＮＩＣ（Network Interface Card）であり、上記デバイス１００、Resolveサーバ３００及び他の中継サーバ２００との間の通信処理を担う。
【００５１】
［システムのソフトウェア構成］
図４は、上記デバイス１００、中継サーバ２００及びResolveサーバ３００が有するソフトウェアモジュールの構成を示した図である。
【００５２】
同図に示すように、デバイス１００は、通信部１１０、データ送受信部１２０、中継サーバ接続管理部１３０、Resolveデータ管理部１４０、Resolveデータversion判定部１５０、待機時間生成部１６０及びResolveデータ格納部１７０の各モジュールを有する。
【００５３】
通信部１１０は、中継サーバ２００及びResolveサーバ３００との通信を統括的に制御する。
【００５４】
データ送受信部１２０は、他のデバイス１００、中継サーバ２００及びResolveサーバ３００との間で各種データを送受信する。
【００５５】
中継サーバ接続管理部１３０は、中継サーバ２００への接続処理及び接続後の接続維持処理等を管理する。
【００５６】
Resolveデータ管理部１４０は、上記Resolveサーバ３００から取得したResolveデータをResolveデータ格納部１７０に格納し、当該Resolveデータ及びそのバージョンに関する情報を管理する。またResolveデータ管理部１４０は、また中継サーバ２００からの更新通知に基づいてそれらの情報を更新する。
【００５７】
Resolveデータ格納部１７０は、Resolveサーバ３００から取得されたResolveデータを記憶する。
【００５８】
Resolveデータversion判定部１５０は、上記Resolveデータ管理部１４０が管理する情報に基づいて、Resolveデータの現在のバージョン（current）及び更新後のバージョン（future）を判定する。
【００５９】
待機時間生成部１６０は、中継サーバ２００からResolveデータの更新通知があった場合に、当該更新通知で指定された、ResolveデータをResolveサーバ３００から取得するまでの最大待機時間内の任意の待機時間を生成する。
【００６０】
中継サーバ２００は、通信部２１０、入力部２２０、データ中継部２３０、Resolveデータ管理部２４０、Resolveデータ格納部２５０、Resolveバージョン通知部２６０、及び通知バージョン／待機時間格納部２７０の各モジュールを有する。
【００６１】
通信部２１０は、各デバイス１００、Resolveサーバ３００及び他の中継サーバ２００との通信処理を統括的に制御する。
【００６２】
入力部２２０は、中継サーバ２００の管理者からの操作入力を受け付ける。
【００６３】
データ中継部２３０は、管理対象のデバイス１００間のデータ通信を中継する。
【００６４】
Resolveデータ管理部２４０は、Resolveサーバ３００から受信したResolveデータをResolveデータ格納部２５０へ格納し、それを管理する。
【００６５】
Resolveデータ格納部２５０は、Resolveサーバ３００から受信したResolveデータを記憶する。
【００６６】
Resolveバージョン通知部２６０は、管理対象の各デバイス１００へ、Resolveデータのバージョン（現在のバージョン及び更新されたバージョン）を通知する。
【００６７】
通知バージョン／待機時間格納部２７０は、各デバイス１００へ通知すべきResolveデータのバージョン情報を記憶し、また各デバイス１００がResolveデータの更新通知を受けてからその取得まで待機するための最大待機時間に関する情報を通知用に記憶する。
【００６８】
ここで最大待機時間は、例えば３日、１週間等であるが、これらに限られない。
【００６９】
Resolveサーバ３００は、通信部３１０、入力部３２０、Resolveデータ管理部３３０及びResolveデータ格納部３４０の各モジュールを有する。
【００７０】
通信部３１０は、各デバイス１００及び各中継サーバ２００との通信処理を統括的に制御する。
【００７１】
入力部３２０は、Resolveサーバ３００の管理者からの操作入力を受け付ける。
【００７２】
Resolveデータ管理部３３０は、Resolveデータ（現在のバージョン及び更新バージョン）をResolveデータ格納部３４０へ格納し、それを管理する。
【００７３】
Resolveデータ格納部３４０は、上記Resolveデータを記憶する。
【００７４】
［システムの動作］
次に、以上のように構成されたシステムにおけるデバイス１００及び中継サーバ２００の動作について説明する。本実施形態において、デバイス１００及び中継サーバ２００の動作は、ＣＰＵ１１及び１２と、その制御下において実行されるソフトウェアとで協働して行われる。
【００７５】
（デバイスの初回起動時の動作）
まず、デバイス１００の初回起動時の動作について説明する。
【００７６】
ここで「初回起動時」とは、厳密にはデバイス１００がResolveデータを取得していない状態のことをいう。すなわち、デバイス１００が工場出荷後に最初に電源ＯＮされた状態のみならず、例えば一度Resolveデータが取得されたものの、何らかの事情により削除され、その後に初めて起動される場合も、「初回起動時」に含まれる。
【００７７】
デバイス１００は、初回起動時にはまず、Resolveサーバ３００へアクセスし、Resolveデータを取得する。この場合デバイス１００は、Resolveデータの現在のversion番号を知ることはできないので、Resolveサーバ３００に対して、「現在稼働中のResolveデータ」を要求する。
【００７８】
（Resolveサーバが配信する情報）
次に、上記Resolveデータを含め、Resolveサーバ３００が配信するデータについて説明する。
【００７９】
各デバイス１００に対しては、上述のとおり、Resolveデータ、すなわち、接続すべき中継サーバ２００に関するデータ（アドレスデータ）が配信される。
【００８０】
各中継サーバ２００に対しては、全ての中継サーバ２００のアドレスデータと、各デバイス１００がどの中継サーバ２００に接続されることになっているかを示すデータとが配信される。
【００８１】
Resolveサーバ３００はHTTPサーバとされ、データ取得要求元がデバイス１００であるか中継サーバ２００であるかによって、返答するURLを切り替える。すなわち、デバイス１００と中継サーバ２００とでは、利用するURLが異なる。
【００８２】
例えば、各中継サーバ２００に対しては、以下のURLが返答される。
http://example.com/srv?ver=14
これは、ver=14のResolveデータが返答される場合のURLである。
【００８３】
一方、各デバイス１００に対しては、以下のURLが返答される。
http://example.com/dev?ver=15
これは、ver=15のResolveデータが返答される場合のURLである。
【００８４】
また、上述したように、デバイス１００の初回起動時には、現在稼動中のResolveデータが返答される。以下はその場合のResolveデータの例である。
http://example.com/dev?ver=current
【００８５】
（デバイスによる中継サーバへの接続処理）
次に、デバイス１００による中継サーバ２００への接続時の動作を説明する。
【００８６】
図５は、デバイス１００が起動してから中継サーバ２００への接続した際の動作の流れを示したフローチャートである。
【００８７】
同図に示すように、まずデバイス１００が起動すると（ステップ５１）、Resolveデータ管理部１４０は、取得済みのResolveデータが存在するか否かを判断する（ステップ５２）。
【００８８】
取得済みのResolveデータが存在しない場合（Ｎｏ）、すなわち初回起動時には、Resolveデータ管理部１４０は、上述の通り、現在稼動中のResolveデータをResolveサーバ３００から取得する（ステップ５３）。
【００８９】
取得済みのResolveデータが存在する場合（Ｙｅｓ）、中継サーバ接続管理部１３０は、当該Resolveデータで示されたURLを用いて中継サーバ２００へ接続する（ステップ５４）。
【００９０】
これにより、デバイス１００には、中継サーバ２００から、Resolveデータのバージョン通知が受信される。当該通知には、Resolveデータの現在のバージョン情報（URL）（current=X）、更新後のバージョン情報（URL）（future=Y）、及び更新後のバージョンを取得するまでの最大待機時間情報（wait=Z）が含まれる。
【００９１】
続いてResolveデータVersion判定部１５０は、現在Resolveデータ格納部１７０にcurrentとして保持されているResolveデータのバージョンが、上記通知されたver=Xであるか否かを判断する（ステップ５５）。
【００９２】
保持されているResolveデータのバージョンがver=Xである場合には（Ｙｅｓ）、現時点でResolveデータの更新の必要はないため、中継サーバ接続管理部１３０は、中継サーバ２００への接続を完了する（ステップ６０）。
【００９３】
一方、保持されているResolveデータがver=Xではない場合、ResolveデータVersion判定部１５０は、ver=XのResolveデータがfutureとして保持されているか否かを判断する（ステップ５６）。
【００９４】
ここで、ver=XのResolveデータがfutureとして保持されている場合とは、例えば、デバイス１００が、ver=XのResolveデータをfutureとして取得した後、Resolveデータの切り替え処理を実行せずにスリープした場合等が挙げられる。
【００９５】
ver=XのResolveデータがfutureとして保持されている場合（Ｙｅｓ）、Resolveデータ管理部１４０は、ver=XのResolveデータのステータスをfutureからcurrentへ切り替える（ステップ５７）。
【００９６】
一方、ver=XのResolveデータがfutureとしても保持されていない場合（Ｎｏ）、Resolveデータ管理部１４０は、上記通知されたURLを用いて、Resolveサーバ３００から当該ver=XのResolveデータをcurrent用として取得する（ステップ５８）。
【００９７】
続いて中継サーバ接続管理部１３０は、上記ver=XのResolveデータにより、接続すべき中継サーバ２００に変更があったか否かを判断する（ステップ５９）。
【００９８】
接続すべき中継サーバに変更があった場合（Ｙｅｓ）には、中継サーバ接続管理部１３０は、上記ステップ５４に戻り、新たな中継サーバ２００へ接続する。
【００９９】
接続すべき中継サーバに変更がない場合（Ｎｏ）には、中継サーバ接続管理部１３０は、現在の接続先である中継サーバ２００との接続を完了する（ステップ６０）。
【０１００】
（更新用Resolveデータの取得処理）
次に、デバイス１００によるfuture用のResolveデータの取得処理について説明する。
【０１０１】
図６は、デバイス１００が中継サーバ２００からResolveデータ更新通知を受信して更新後のResolveデータを取得する動作の流れを示したフローチャートである。また図７は、中継サーバ２００がデバイス１００へResolveデータ更新通知を送信する処理を概念的に示した図である。また図８は、デバイス１００がResolveデータを取得する処理を概念的に示した図である。
【０１０２】
図６に示すように、まず、デバイス１００の中継サーバ接続管理部１３０は、中継サーバ２００へ接続済みの状態で（ステップ６１）、中継サーバ２００から、Resolveデータの更新通知を受信する（ステップ６２）。当該更新通知には、更新後のバージョン情報（URL）（future=verX）及び最大待機時間情報（wait=Y）が含まれる。
【０１０３】
図７の例では、各デバイス１００がver=14のResolveデータを保持している状態で、現在のバージョン（current ver=14）、更新後のバージョン（future ver=15）及び最大待機時間情報を含む更新通知が各中継サーバ２００から各デバイス１００へ通知されている。
【０１０４】
続いて待機時間生成部１６０は、上記最大待機時間（wait=Y）内のランダムな待機時間Ｔを決定する（ステップ６３）。
【０１０５】
続いてResolveデータ管理部１４０は、上記Ｔ時間の経過を待つ（ステップ６４、６５）。この待機中も、中継サーバ２００を介した通信は実行される。
【０１０６】
Resolveデータ管理部１４０は、上記Ｔ時間が経過したと判断された場合（ステップ６５のＹｅｓ）、上記ver=XのResolveデータが取得済みか否かを判断する（ステップ６６）。
【０１０７】
上記ver=XのResolveデータが取得済みでないと判断された場合（Ｎｏ）、Resolveデータ管理部１４０は、Resolveサーバ３００から当該ver=XのResolveデータを取得し、それをfuture用としてResolveデータ格納部１７０へ保存する（ステップ６７）。
【０１０８】
図８の例では、各デバイス１００がfuture用のver=15のResolveデータをResolveサーバ２００から取得することで、それがfuture用のResolveデータとして格納されていることが示されている。future用のver=15のResolveデータ取得後も、後述する切り替え通知があるまでは、各デバイス１００は、ver=14のResolveデータで動作することになる。
【０１０９】
（Resolveデータの切り替え処理）
次に、上記取得した更新用のResolveデータの切り替え処理について説明する。
【０１１０】
図９は、デバイス１００がResolveデータを更新バージョンへ切り替える処理の流れを示したフローチャートである。また図１０は、中継サーバ２００が各デバイス１００へResolveデータの切り替え通知を送信する処理を概念的に示した図である。また図１１は、各デバイス１００がResolveデータを切り替える処理を概念的に示した図である。
【０１１１】
図９に示すように、まず、デバイス１００の中継サーバ接続管理部１３０は、中継サーバ２００へ接続済みの状態で（ステップ９１）、中継サーバ２００から、future用のResolveデータ（future=X）をcurrent用（current=X）に切り替える（更新する）ように要求する切り替え通知（更新要求）を受信する（ステップ９２）。
【０１１２】
この切り替え通知は、全てのデバイス１００がfuture用のResolveデータを取得した後、すなわち、上記最大待機時間の経過後に送信される。
【０１１３】
図１０の例では、各デバイス１００がcurrent用としてver=14、future用としてver=15のResolveデータを保持している状態で、中継サーバ２００から、current用のResolveデータのver=15への切り替え要求が通知されている。
【０１１４】
続いてResolveデータVersion判定部１５０は、デバイス１００が、Resolveデータがcurrent=Xの状態で既に稼動中であるか否かを判断する（ステップ９３）。
【０１１５】
Resolveデータがcurrent=Xの状態で既に稼動中であると判断された場合（Ｙｅｓ）、Resolveデータの切り替えの必要はないため、中継サーバ接続管理部１３０は、そのまま中継サーバ２００との接続を続行する。
【０１１６】
Resolveデータがcurrent=Xの状態で既に稼動中でないと判断された場合（Ｎｏ）、ResolveデータVersion判定部１５０は、ver=XのResolveデータがfuture用として保持されているか否かを判断する（ステップ９４）。
【０１１７】
ver=XのResolveデータがfuture用として保持されていると判断された場合（Ｙｅｓ）、Resolveデータ管理部１４０は、当該Resolveデータのステータスをfutureからcurrentへ切り替える（ステップ９５）。
【０１１８】
ver=XのResolveデータがfuture用として保持されていないと判断された場合（Ｎｏ）、Resolveデータ管理部１４０は、ver=XのResolveデータをcurrent用としてResolveサーバ３００から取得する（ステップ９６）。
【０１１９】
そして中継サーバ接続管理部１３０は、上記ver=XのResolveデータにより、接続すべき中継サーバ２００に変更があったか否かを判断する（ステップ９７）。
【０１２０】
接続すべき中継サーバに変更があった場合（Ｙｅｓ）には、中継サーバ接続管理部１３０は、上記図５のステップ５４の処理により、新たな中継サーバ２００へ接続する。
【０１２１】
図１１の例では、各デバイス１００がver=15のResolveデータのステータスをcurrentに切り替えたことが示されている。またこれにより例えばデバイス１００ｂが接続すべき中継サーバ２００は中継サーバ２００ｂから中継サーバ２００ｃへ変更され、新たに中継サーバ２００ｃへ接続したことも示されている。
【０１２２】
（デバイスが切り替え通知を受信できなかった場合の対応策）
次に、上記Resolveデータの切り替え通知をデバイス１００が受信できなかった場合の対応策について説明する。
【０１２３】
図１２は、デバイス１００が長時間未接続の状態を経て中継サーバへ接続する場合の動作を概念的に示した図である。例えば、デバイス１００が、切り替え通知が送信された場合には電源がＯＦＦの状態であったため当該切り替え通知を受信することができずに、その後に電源がＯＮとなった場合が想定される。
【０１２４】
上記図５でも説明したように、中継サーバ２００は、デバイス１００との通信路構築時のネゴシエーションにおいて、必ずResolveデータのcurrentバージョン情報をデバイス１００へ通知する。
【０１２５】
したがってデバイス１００は、自身が保持するResolveデータのバージョンが、上記通知されたバージョンと異なることを検知することができ、その場合には即座にResolveサーバ３００へアクセスしてcurrentバージョンのResolveデータを取得し、Resolveデータをそのデータへと切り替えることができる。
【０１２６】
同図の例では、各デバイス１００のうちデバイス１００ｃのみがver=15のResolveデータのfutureからcurrentへの切り替え通知を受信できず、ver=14のResolveデータが保持されたままになっている。しかし、中継サーバ２００と再接続時に中継サーバ２００からcurrent ver=15の通知を受け、それにより切り替えの事実を検知して、Resolveサーバ３００からver=15のResolveデータを取得すべく、Resolveサーバ３００へアクセスしていることが分かる。
【０１２７】
[まとめ]
以上説明したように、本実施形態によれば、Resolveデータを全てのデバイス１００が同時期に切り替える必要がある場合でも、各デバイス１００が最大待機時間内のランダムな時刻に更新後のResolveデータを取得して保持しておき、中継サーバ２００からの通知を待ってResolveデータを切り替えることで、アクセス集中によるResolveサーバ３００及びネットワークの負荷を軽減させることができる。
【０１２８】
［変形例］
本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更され得る。
【０１２９】
上述の実施形態では、中継サーバ２００がResolveデータの取得までの最大待機時間を指定し、各デバイス１００が最大待機時間内の任意の時間を待機時間として決定していた。しかし、中継サーバ２００がデバイス１００毎に異なる待機時間を決定して割り振ってもよい。この場合、上記更新通知には、最大待機時間に替わって当該決定された待機時間情報が含まれる。
【０１３０】
上述の実施形態では、中継サーバ２００が、最大待機時間経過後に切り替え通知をデバイス１００へ送信することで、Resolveデータの切り替えが実行された。しかし、中継サーバが切り替え通知を送信せず、所定の切り替え時刻が到来した場合にはデバイス１００が自動的にResolveデータを切り替えてもよい。この場合、中継サーバ２００からの更新通知またはResolveサーバ３００から取得されるResolveデータには、上記切り替え時刻情報が含まれる。すなわち、この場合、データ切り替えは、デバイス１００の内部での時刻管理によって実行される。
【０１３１】
上述の実施形態では、ResolveデータはResolveサーバ３００から取得されたが、Resolveデータが予めResolveサーバ３００から中継サーバ２００へ送信されており、デバイス１００がResolveデータを中継サーバ２００から取得しても構わない。
【０１３２】
上述の実施形態では、Resolveデータ、すなわち、各デバイス１００が接続すべき中継サーバに関するデータが更新対象とされた。しかし、更新対象となるデータはこれに限られない。例えば、中継サーバ２００が管理する各デバイス１００の各種動作設定情報が更新対象とされてもよい。
【０１３３】
上述の実施形態では、更新（future）用のResolveデータに関する情報は中継サーバ２００から一度に１つのバージョンのみ通知され、一度に１つのバージョンのみResolveサーバ３００から取得された。しかし、複数のバージョンの更新（future）用のResolveデータの情報が通知されて、デバイス１００がResolveサーバ３００から複数のバージョンの更新（future）用Resolveデータを一度に取得してもよい。この場合、各バージョンのfuture用データ毎に異なる最大待機時間が設定され、順次データが更新されていくことになる。これによりResolveサーバ３００の負荷は一層軽減される。
【０１３４】
さらに、各デバイス１００間の通信を仲介する中継サーバ２００が存在しないシステムにも本技術は適用可能である。すなわち、各デバイス１００に記憶されたあらゆるデータが更新対象となり得る。例えば、各デバイス１００にインストールされたプログラムやアプリケーション（例えば天気予報情報やクーポン情報）が更新対象とされてもよいし、各デバイス１００が通信処理等に用いる鍵情報が更新対象とされてもよい。
【０１３５】
上述の各実施形態では、上記図２で説明した各ハードウェアと図３で示したソフトウェアモジュールとによって本技術が実施されたが、本技術は、当該ソフトウェアモジュールに代わる専用回路等の他のハードウェアによって実施されても構わない。
【０１３６】
［その他］
本技術は以下のような構成も採ることができる。
（１）
サーバと通信可能な通信部と、
所定の処理に使用されるデータを記憶可能な記憶部と、
前記データの現在のバージョンを示す現在バージョン情報及び前記データの現在のバージョンが更新されたバージョンを示す更新バージョン情報を含む通知情報を前記サーバから受信し、所定の最大待機時間内で任意に決定される待機時間だけ待機した後に所定の記憶場所から前記更新されたバージョンを取得するように前記通信部を制御し、
前記記憶されたデータを、前記取得された更新されたバージョンへ、前記最大待機時間経過後に更新するように前記記憶部を制御する
ことが可能な制御部と
を具備する情報処理装置。
（２）
上記（１）に記載の情報処理装置であって、
前記通知情報には、前記最大待機時間を示す最大待機時間情報が含まれ、
前記制御部は、
前記最大待機時間内で任意に前記待機時間を決定可能であり、
前記最大待機時間経過後に、前記データを更新するよう要求する更新要求情報を前記サーバから受信するように前記通信部を制御可能であり、
前記更新要求情報に基づいて前記データを前記更新されたバージョンへ更新するように前記記憶部を制御可能である
情報処理装置。
（３）
上記（１）に記載の情報処理装置であって、
前記通知情報には、前記更新されたバージョンの更新時刻を示す更新時刻情報が含まれ、
前記更新時刻が到来したときに前記データを前記更新されたバージョンへ更新するように前記記憶部を制御可能である
情報処理装置。
（４）
上記（２）に記載の情報処理装置であって、
前記制御部は、
前記サーバと未接続のために前記更新要求情報を前記サーバから受信できなかった場合に、次回の前記サーバとの接続時に、当該サーバから前記現在バージョン情報を受信するように前記通信部を制御し、
前記現在バージョン情報で示されたバージョンと前記記憶部に記憶されたデータのバージョンとを比較し、
それらのバージョンが異なる場合に、前記記憶場所から前記データの前記現在バージョン情報で示されたバージョンを取得するように前記通信部を制御し、
取得されたバージョンによって前記記憶されたデータを更新するように前記記憶部を制御する
ことが可能である
情報処理装置。
（５）
上記（１）〜（４）のいずれかに記載の情報処理装置であって、
前記制御部は、当該情報処理装置の起動時であって、前記記憶部に前記データが記憶されていない場合に、前記記憶場所から前記データの現在のバージョンを取得するように前記通信部を制御可能である
情報処理装置。
（６）
上記（１）〜（５）のいずれかに記載の情報処理装置であって、
前記サーバは、当該情報処理装置と他の複数の装置との間の通信を中継する中継サーバであり、
前記データは、複数の中継サーバのうち、当該情報処理装置が前記中継のために接続すべき中継サーバの切り替えを示すデータである
情報処理装置。
（７）
上記（１）〜（６）のいずれかに記載の情報処理装置であって、
前記制御部は、
前記更新バージョン情報として、前記データの現在のバージョンが更新されたバージョンを示す情報と、当該更新されたバージョンがさらに更新されたバージョンを示す情報とを少なくとも含む複数の更新バージョン情報を受信するように前記通信部を制御可能であり、
前記複数の更新バージョン毎に設定された、それぞれ異なる最大待機時間の経過後に前記データを前記更新されたバージョンへ更新するように前記記憶部を制御可能である
情報処理装置。
【符号の説明】
【０１３７】
１１，２１…ＣＰＵ
１３，２３…ＲＡＭ
１８，２８…記憶部
１９，２９，１１０，２１０…通信部
１００（１００ａ，１００ｂ，１００ｃ）…デバイス
１２０…データ送受信部
１３０…中継サーバ接続管理部
１４０…Resolveデータ管理部
１５０…Resolveデータversion判定部
１６０…待機時間生成部
１７０…Resolveデータ格納部
２００（２００ａ，２００ｂ，２００ｃ）…中継サーバ
２３０…データ中継部
２４０…Resolveデータ管理部
２５０…Resolveデータ格納部
２６０…Resolveバージョン通知部
２７０…待機時間格納部
３００…Resolveサーバ
３３０…Resolveデータ管理部
３４０…Resolveデータ格納部
【図１】
2015032184.tif 000003
【図２】
2015032184.tif 000004
【図３】
2015032184.tif 000005
【図４】
2015032184.tif 000006
【図５】
2015032184.tif 000007
【図６】
2015032184.tif 000008
【図７】
2015032184.tif 000009
【図８】
2015032184.tif 000010
【図９】
2015032184.tif 000011
【図１０】
2015032184.tif 000012
【図１１】
2015032184.tif 000013
【図１２】
2015032184.tif 000014