以下、本発明の実施形態について、図面を参照しながら説明する。なお、全図を通じて同一の要素には同一の符号を付している。また、各実施形態及び各変形例において、重複する説明は省略する。
(第1実施形態)
図1は、本発明の第1実施形態に係る更新情報配布システムの構成を示す。更新情報配布システム101は、更新情報を端末のいずれかがダウンロードし、その更新情報を端末間で配布するシステムである。
更新情報は、随時更新される情報である。更新情報は例えば、随時、ユーザなどによって作成され、サーバに格納される。本実施形態に係る更新情報は、各端末にインストールされている共通のソフトウェア・プログラムの改良、修正などをするモジュールである。
なお、更新情報は、各端末に配布されるべき情報であればいかなる情報であってもよく、例えば、所定のセグメントに属する各端末へ配布されるニュース、画像などを含む情報であってよい。
更新情報配布システム101は、図1に示すように、サーバ102と、複数の端末(端末A106a,端末B106b,端末C106c)とを備える。サーバ102は、更新情報を保持する装置である。端末A106a〜C106cは、更新情報配布装置の一例であり、更新情報をサーバ102からダウンロードし、ダウンロードした更新情報を他の端末A106a〜C106cに配布する装置である。
また、各端末A106a〜C106cは、第1の通信経路としてのLAN(Local Area Network)103を介して相互に通信可能に接続されている。サーバ102と各端末A106a〜C106cとは、第2の通信経路を介して相互に通信可能に接続されている。第2の通信経路は、LAN103と、ルータ104と、WAN(Wide Area Network)105とを含む。WANの具体例には、インターネットがある。ルータ104は、LAN103とWAN105とを接続する機器の一例である。
なお、第1の通信経路と第2の通信経路とは、LAN103という通信領域において重複することとしたが、これに限られない。第1の通信経路と第2の通信経路とは、同一の通信領域内の通信経路であってもよく、また、別の通信領域内の通信経路であってもよい。
サーバ102の構成について、図2を参照して説明する。同図に示すように、サーバ102は、記憶部111を備える。記憶部111には、最新更新情報111aと最新バージョン情報111bとが記憶されている。これによって、サーバ102は、各情報111a〜bを保持する。
最新更新情報111aは、サーバ102が保持している更新情報である。サーバ102には、随時新しい更新情報が格納されるため、サーバ102が保持している更新情報は、最新のものとなる。
最新バージョン情報111bは、最新更新情報111aの更新情報としての新しさ(バージョン)を示す情報である。随時作成される各更新情報には、その新しさを示すバージョンが付与される。そして、サーバ102には、随時新しい更新情報111aが格納されるため、最新バージョン情報111bは、更新情報の最新のバージョンを示す情報となる。
図3は、本実施形態に係る最新バージョン情報111bの内容の例を示す。同図に示す最新バージョン情報111bは、「2」を示す情報であり、それによって示される数字が大きいほど、サーバ102が保持している更新情報が新しいことを示す。
なお、最新バージョン情報111b及び後述する保持バージョン情報121dが示すバージョンは、1つの数字からなる例により説明するが、バージョンは更新情報の新しさを他の更新情報と比較できるものであれば、適宜定められてよい。例えば、バージョン情報は、最新更新情報111aが作成された日時を示す情報などであってもよい。
最新更新情報111a及び最新バージョン情報111bは、サーバ102のユーザの操作によって、記憶部111を管理する記憶管理部112(図2参照)を介して記憶部111に格納される。
さらに、図2に示すように、サーバ102は、最新バージョン要求受信部113と、最新バージョン送信部114と、ダウンロード要求受信部115と、最新更新情報送信部116とを備える。
最新バージョン要求受信部113は、最新バージョン要求情報を端末A106a〜C106cのいずれかから受信する。最新バージョン要求情報は、最新バージョン要求を含む情報である。最新バージョン要求は、最新バージョン要求情報の送信元である端末A106a〜C106cへ最新バージョン情報111bを送信するようにとの要求である。
最新バージョン送信部114は、最新バージョン要求受信部113が最新バージョン要求情報を受信した場合に、記憶部111の最新バージョン情報111bを最新バージョン要求情報の送信元である端末A106a〜C106cへ送信する。このとき、最新バージョン送信部114は、記憶管理部112を介して、記憶部111から最新バージョン情報111bを取得する。
ダウンロード要求受信部115は、ダウンロード要求情報を端末A106a〜C106cのいずれかから受信する。ダウンロード要求情報は、ダウンロード要求を含む情報である。ダウンロード要求は、ダウンロード要求情報の送信元である端末A106a〜C106cへ最新更新情報111aを送信するようにとの要求である。
最新更新情報送信部116は、ダウンロード要求受信部115がダウンロード要求情報を受信した場合に、ダウンロード要求情報の送信元である端末A106a〜C106cへ記憶部111の最新更新情報111aを送信する。このとき、最新更新情報送信部116は、記憶管理部112を介して、記憶部111から最新更新情報111aを取得する。
次に、第1実施形態に係る端末A106a〜C106aの構成について、端末A106aの構成を例に図4を参照して説明する。なお、各端末B106b,C106cの構成は、端末A106aの構成と同じである。そのため、端末B106b,C106cの構成に関する説明は省略する。
図4に示すように、端末A106aは、記憶部121を備える。記憶部121には、セグメント(アドレス)情報121aと、起動情報121bと、保持更新情報121cと、保持バージョン情報121dと、確認時期情報121eとが記憶されている。
セグメント情報121aは、同一のセグメントに属する端末A106a〜C106cのうち、少なくとも他の端末B106b,C106cのアドレスを示す情報である。同一のセグメントとは、共通の通信経路を介して接続されており、相互に通信可能に設定されている端末の集まりをいう。
本実施形態に係るセグメント情報121aは、図5に示すように、LAN103を介して接続されており、同一のセグメントに属する各端末A106a〜C106cのプライベートアドレスを示す情報である。
起動情報121bは、同一のセグメントに属する端末A106a〜C106cのうち、少なくとも他の端末B106b,C106cの中で起動中である端末を示す情報である。
本実施形態に係る起動情報121bは、図6に示すように、LAN103を介して接続された各端末A106a〜C106cが起動中であるか否かをフラグ(起動フラグ)によって示す情報である。フラグが「1」であることは、そのフラグが関連付けられた各端末A106a〜C106cが起動中であることを表す。フラグが「0」であることは、そのフラグが関連付けられた各端末A106a〜C106cが停止中である(起動中ではない)ことを表す。したがって、同図に示す起動情報121bは、端末A106a及び端末B106bが起動中であり、端末C106cが停止中であることを示す。
保持更新情報121cは、端末A106a自身が保持している更新情報である。
保持バージョン情報121dは、保持更新情報121cのバージョンを示す情報である。本実施形態に係る端末A106aの保持バージョン情報121dは、図7に示すように、「1」を示す情報である。この保持バージョン情報121dと上述の最新バージョン情報111bとの内容を比較することによって、保持更新情報121cが最新更新情報111aより古い更新情報であることがわかる。
確認時期情報121eは、サーバ102に新たな更新情報が保持されているか否かを端末A106aがサーバ102に確認する時期(確認時期)を示す情報であって、その時期はユーザなどによって任意に設定される。本実施形態に係る確認時期情報121eは、図8に示すように、端末A106aの確認時刻を示す情報である。端末A106aが起動している間に、確認時期情報121eによって示される時刻「0時00分」が到来すると、端末A106aは、新たな更新情報がサーバ102に格納されたか否かをサーバ102に問い合わせることによって、確認する。
次に、図4に示すように、端末A106aは、計時部122と、時期判断部123と、ダウンロード部124と、配布部125と、受領部126と、更新部127とを備える。これらの処理部122〜127を備えることによって、端末A106aは、サーバ102に新たな更新情報があるか否かを確認して、新たな更新情報がある場合にサーバ102からそれをダウンロードして他の端末B106b,C106cに配布することができる。
計時部122は、現在時刻を保持し、現在時刻を示す情報(現在時刻情報)を生成する。
時期判断部123は、確認時期が到来したか否かを判断する。
詳細には、時期判断部123は、計時部122から現在時刻情報を取得し、記憶部121から確認時期情報121eを取得する。そして、時期判断部123は、取得した両情報が示す時刻を比較し、それによって、確認時期が到来したか否かを判断する。確認時期が到来したと判断した時期判断部123は、その判断結果を示す情報を生成する。
ダウンロード部124は、保持更新情報121cより新しい更新情報をサーバ102が確認時期に保持している場合に、最新更新情報111aをサーバ102からダウンロードする。ダウンロード部124がサーバ102との間で情報を授受する場合、その情報の授受は、LAN103及びWAN105を介して行なわれる。
図9はダウンロード部124の詳細な構成を示す。同図に示すように、ダウンロード部124は、最新バージョン問合わせ部141と、最新バージョン受信部142と、ダウンロード判断部143と、ダウンロード要求送信部144と、最新更新情報受信部145とを備える。
最新バージョン問合わせ部141は、確認時期に、サーバ102に更新情報の最新バージョンを問い合わせる。
詳細には、最新バージョン問合わせ部141は、時期判断部123によって確認時期が到来したと判断された場合に、その判断結果を示す情報を取得する。その情報を取得した最新バージョン問合わせ部141は、最新バージョン要求情報をサーバ102に送信する。最新バージョン要求情報は、最新バージョン要求を含む情報である。最新バージョン要求は、最新バージョン要求情報の送信元である端末A106a〜C106cへ最新バージョン情報111bを送信するようにとの要求である。
最新バージョン受信部142は、最新バージョン問合わせ部141からの問合わせ(要求)の応答としてサーバ102から送信される最新バージョン情報111bを受信する。
ダウンロード判断部143は、最新更新情報111aをサーバ102からダウンロードするか否かを判断する。
詳細には、ダウンロード判断部143は、最新バージョン受信部142が受信した最新バージョン情報111bを取得する。また、ダウンロード判断部143は、記憶部121から保持バージョン情報121dを取得する。ダウンロード判断部143は、最新バージョン情報111b及び保持バージョン情報121dのそれぞれが示す最新及び保持バージョンを比較する。比較した結果、最新バージョンが保持バージョンよりも新しい場合に、ダウンロード判断部143はダウンロードすると判断し、その判断結果を示す情報を生成する。また、比較した結果、最新バージョンが保持バージョンよりも新しいものではない場合に、ダウンロード判断部143はダウンロードしないと判断する。
ダウンロード要求送信部144は、ダウンロードすると判断したダウンロード判断部143が生成する情報を取得した場合に、ダウンロード要求情報をサーバ102に送信する。
最新更新情報受信部145は、ダウンロード要求送信部144が送信した要求の応答としてサーバ102から送信される最新更新情報111aを受信する。
図4に示す配布部125は、起動情報121bを参照し、起動情報121bによって起動中であると示される他の端末B106b,C106cに、ダウンロード部124がダウンロードした最新更新情報111aを送信する。これによって、最新更新情報111aが起動中の他の端末B106b,C106cに配布される。配布部125は、他の端末B106b,C106cとの間で情報を授受する場合、その情報の授受は、LAN103を介して行なわれる。
図10は配布部125の詳細な構成を示す。同図に示すように、配布部125は、保持バージョン送信部151と、保持更新要求受信部152と、保持更新情報送信部153と、更新確認受信部154とを備える。
保持バージョン送信部151は、ダウンロード部124が最新更新情報111aをダウンロードした場合に、起動情報121bを参照し、起動情報121bによって起動中であると示される他の端末B106b,C106cへ保持バージョン情報121dを送信する。保持バージョン情報121dの内容は、上述のように、端末A106aが保持する更新情報のバージョンであり、ここでは、端末A106aのダウンロード部124がダウンロードした最新更新情報111aのバージョンである。
保持更新要求受信部152は、保持バージョン情報121dの送信先である端末B106b,C106cから送信される保持更新要求情報を受信する。保持更新要求情報は、保持更新要求を含む情報である。保持更新要求は、保持更新要求情報の送信元である端末へ保持更新情報121cを送信するようにとの要求である。保持更新情報121cは、上述のように、端末A106aが保持する更新情報である。
保持更新情報送信部153は、保持更新要求情報の送信元である端末B106b,C106cへ、端末A106aが保持している保持更新情報121cを送信する。ここでの保持更新情報121cは、端末A106aのダウンロード部124がダウンロードした最新更新情報111aである。
更新確認受信部154は、保持更新情報送信部153が保持更新情報121cを送信した送信先の端末B106b,C106cから更新確認情報を受信する。更新確認情報は、保持更新情報121cを受信したことを示す情報である。
図4に示す受領部126は、端末A106aよりも新しいバージョンの更新情報を他の端末B106b,C106cが保持している場合に、その新しいバージョンの更新情報を他の端末B106b,C106cの配布部125から受信する。受領部126が他の端末B106b,C106cの配布部125との間で情報を授受する場合、その情報の授受は、LAN103を介して行われる。
図11は受領部126の詳細な構成を示す。同図に示すように、受領部126は、保持バージョン受信部161と、受領判断部162と、保持更新要求送信部163と、保持更新情報受信部164と、更新確認送信部165とを備える。
保持バージョン受信部161は、他の端末B106b,C106cから送信される保持バージョン情報121dを受信する。
受領判断部162は、他の端末B106b,C106cが保持更新情報121cを配布しようとする場合に、その保持更新情報121cを端末A106aが受領するか否かを判断する。
詳細には、受領判断部162は、保持バージョン受信部161が受信した保持バージョン情報121d、すなわち他の端末B106b,C106cの保持バージョン情報121dを取得する。また、受領判断部162は、記憶部121から保持バージョン情報121d、すなわち自身の保持バージョン情報121dを取得する。受領判断部162は、他の端末B106b,C106cの保持バージョン情報121dが示すバージョン(他の保持バージョン)及び自身の保持バージョン情報121dが示すバージョン(自身の保持バージョン)を比較する。比較した結果、他の保持バージョンが自身の保持バージョンより新しいものである場合に、受領判断部162は受領すると判断し、その判断結果を示す情報を生成する。また、比較した結果、他の保持バージョンが自身の保持バージョンより新しいものでない場合に、受領判断部162は受領しないと判断する。
保持更新要求送信部163は、受領すると判断した受領判断部162からその判断結果を示す情報を取得した場合に、保持バージョン情報121dの送信元である他の端末B106b,C106cに更新要求情報を送信する。
保持更新情報受信部164は、保持更新要求送信部163からの要求の応答として、その要求の送信先である他の端末B106b,C106cから送信される保持更新情報121cを受信する。ここでの保持更新情報121cは、それを送信する端末B106b,C106cが保持するものである。
更新確認送信部165は、他の端末B106b,C106cから保持更新情報121cを受信できた場合に、又は、受信した保持更新情報121cに基づいて後述する更新部127が実行すべき処理を実行できた場合に、更新確認情報を送信する。いずれの場合に、更新確認情報を送信するかは、適宜設定されてよい。
ここで、更新確認情報は、保持更新情報121cを受信できたこと、又は、更新部127の所定の処理が実行できたことを送信先の他の端末B106b,C106cに知らせる情報である。
また、更新確認情報は、それを送信する端末B106b,C106cの保持バージョン情報121dを含み、起動情報121bによって起動中であると示される他の端末B106b,C106cのすべてへ送信される。
図4に示す更新部127は、ダウンロード部124が最新更新情報111aをダウンロードした場合に、又は、受領部126が保持更新情報121cを受信した場合に、それに関する更新処理を行なう。詳細には、更新部127は、図12に示すように、インストール部171と、バージョン情報更新部172とを備える。
インストール部171は、ダウンロード部124が最新更新情報111aをダウンロードした場合に、又は、受領部126が保持更新情報121cを受信した場合に、その最新更新情報111a又はその保持更新情報121cを端末A106aにインストールする。また、インストール部171は、ダウンロードした最新更新情報111a又は受信した保持更新情報121cを、端末A106aの記憶部121に格納する。
バージョン情報更新部172は、ダウンロード部124が最新更新情報111aをダウンロードした場合に、又は、受領部126が保持更新情報121cを受信した場合に、その最新更新情報111a又はその保持更新情報121cのバージョンによって保持バージョン情報121dを更新する。
さらに、図4に示すように、端末A106aは、入力受付部128と、起動判断部129と、起動部130と、停止判断部131と、停止部132と、起動端末認識部133とを備える。これらの処理部を備えることによって、端末A106aは、各端末A106a〜C106cの起動時及び停止時に他の端末B106b,C106cと通信することができる。この通信によって、起動中の各端末A106a〜C106cの起動情報121bをリアルタイムで更新することが可能になる。
入力受付部128は、ユーザの操作に基づく指示内容を示す情報を受け付ける。本実施形態では、入力受付部128は、端末A106aを起動させる指示を示す情報(起動指示情報)、端末A106aの稼働を停止させる指示を示す情報(停止指示情報)などを受け付ける。なお、ユーザの操作は、キーボード、マウス、タッチパネル、スイッチ、ボタンなどの入力部(図30を参照して後述する。)になされる。
起動判断部129は、入力受付部128が起動指示情報を受け付けたか否かに基づいて、起動するか否かを判断する。すなわち、入力受付部128が起動指示情報を取得した場合に、起動判断部129は、起動すると判断する。
起動部130は、起動判断部129が起動すると判断した場合に、起動処理を実行する。起動処理は、LAN103を介して起動中の他の端末B106b,C106cと情報を送受信することを含む。これによって、端末A106aは、自身の起動情報121bを生成し、また、起動中の他の端末B106b,C106cは、それが保持する起動情報121bを更新することができる。
図13は起動部130の詳細な構成を示す。同図に示すように、起動部130は、起動通知送信部181と、起動応答受信部182と、起動情報生成部183とを備える。
起動通知送信部181は、起動判断部129が起動すると判断した場合に、セグメント情報121aを参照し、同一セグメントに属する他の端末B106b,C106cのすべてに、起動通知情報を送信する。起動通知情報は、端末A106aが起動したことを示す情報である。
起動応答受信部182は、起動応答情報を受信する。起動応答情報は、起動応答情報を送信する端末が起動通知情報を受信したことを知らせるための情報である。起動応答情報を受信した起動中の他の端末B106b,C106cから送信される。
起動情報生成部183は、起動応答情報を他の端末B106b,C106cから受信した場合に、端末A106aの起動情報121bを生成する。起動情報生成部183は、起動応答情報の送信元である他の端末B106b,C106cが起動中であると判断し、その判断結果に基づく起動情報121bを生成する。
図4に示す停止判断部131は、入力受付部128が停止指示情報を取得したか否かに基づいて、停止するか否かを判断する。すなわち、入力受付部128が停止指示情報を取得した場合に、停止判断部131は、停止すると判断する。
停止部132は、停止判断部131が停止すると判断した場合に、停止処理を実行する。停止処理は、LAN103を介して起動中の他の端末B106b,C106cと情報を送受信することを含む。これによって、端末A106aは、自身の起動情報121bをクリアし、また、起動中の他の端末B106b,C106cは、それが保持する起動情報121bを更新することができる。
図14は停止部132の詳細な構成を示す。停止部132は、停止通知送信部191と、停止応答受信部192と、起動情報クリア部193とを備える。
停止通知送信部191は、起動判断部129が停止すると判断した場合に、起動情報121bを参照し、起動中の他の端末B106b,C106cへ停止通知情報を送信する。停止通知情報は、端末A106aが停止することを示す情報である。
停止応答受信部192は、停止応答情報を受信する。停止応答情報は、停止応答情報を送信する端末が停止通知情報を受信したことを知らせるための情報である。停止応答情報は、停止通知情報を受信した起動中の他の端末B106b,C106cから送信される。
起動情報クリア部193は、端末A106aの起動情報121bをクリアする。起動情報121bのクリアの具体的な内容は、適宜設定されてよい。起動情報121bのクリアには、例えば、起動情報121b自体を削除すること、起動情報121bの内容を削除すること(例えば、起動フラグをすべて「0」にすること)、現在の起動情報121bを無効にすることなどが含まれてよい。
図4に示す起動端末認識部133は、LAN103を介して他の端末B106b,C106cとの間で情報を送受信することによって、同一のセグメントに属する他の端末B106b,C106cの起動及び停止をリアルタイムで認識する。そして、起動端末認識部133は、その認識に応じて端末A106aの起動情報121bを更新する。
他の端末B106b,C106cの起動及び停止は、他の端末B106b,C106cが起動時及び停止時に送信する起動通知情報、及び停止通知情報に基づいて認識される。これによって、他の端末B106b,C106cが起動中であるか否かを起動情報121bにリアルタイムで反映させることができる。
図15は起動端末認識部133の詳細な構成を示す。起動端末認識部133は、起動通知受信部201と、起動応答送信部202と、停止通知受信部203と、停止応答送信部204と、起動情報更新部205とを備える。
起動通知受信部201は、他の端末B106b,C106cから送信される起動通知情報を受信する。
起動応答送信部202は、起動通知受信部201によって起動通知情報が受信された場合に、その起動通知情報の送信元である他の端末B106b,C106cへ起動応答情報を送信する。起動応答情報は、例えば端末A106aが保持する起動情報121bが更新された後に、送信される。
停止通知受信部203は、他の端末B106b,C106cから送信される停止通知情報を受信する。
停止応答送信部204は、停止通知受信部203によって停止通知情報が受信された場合に、その停止通知情報の送信元である他の端末B106b,C106cへ停止応答情報を送信する。停止応答情報は、例えば端末A106aが保持する起動情報121bがクリアされた後に、送信される。
起動情報更新部205は、起動通知受信部201によって起動通知情報が受信された場合に、起動情報121bを変更する。この場合、起動情報121bは、起動通知情報の送信元である他の端末B106b,C106cが起動中の端末であることを示すように変更される。
また、起動情報更新部205は、停止通知受信部203によって停止通知情報が受信された場合に、起動情報121bをクリアする。
そして、起動情報更新部205は、起動情報121bを更新(変更又はクリア)した後に、起動応答送信部202又は停止応答送信部204へ起動情報121bの更新が完了したことを知らせる。
ここから、更新情報配布システムにおいて、サーバ102及び各端末A106a〜C106cが実行する処理の例について、説明する。まず、図16を参照して、端末A106aが実行する処理の概要を説明し、その後に、各処理(ステップS102,S104,S105,S107)の詳細について別の図を参照して説明する。
図16は、第1実施形態に係る端末A106aが実行する処理を示すフローチャートである。
図16に示すように、起動判断部129は、入力受付部128が起動指示情報を取得したか否かに基づいて、端末A106aを起動するか否かを判断する(ステップS101)。入力受付部128が起動指示情報を取得しない場合(ステップS101;No)、起動判断部129は、起動判断処理(ステップS101)を継続する。
入力受付部128が起動指示情報を取得した場合に、起動判断部129は起動すると判断し、その判断結果を示す情報を生成する。
起動判断部129によって起動すると判断された場合に(ステップS101;Yes)、起動部130は、起動処理を実行する(ステップS102)。起動処理(ステップS102)の詳細については後に説明する。
起動処理(ステップS102)が終了すると、時期判断部123は、確認時期が到来したか否かを判断する(ステップS103)。
確認時期が到来したと判断された場合に(ステップS103;Yes)、ダウンロード部124は、サーバ102から適宜、最新更新情報111aをダウンロードし(ステップS104)、ダウンロードした最新更新情報111aを他の端末B106b,C106cへ適宜配布する(ステップS105)。ダウンロード処理(ステップS104)及び配布処理(ステップS105)の詳細については後に説明する。
確認時期が到来しないと判断された場合に(ステップS103;No)、又は、配布処理(ステップS105)が終了した後に、停止判断部131は、入力受付部128が停止指示情報を取得したか否かに基づいて、停止するか否かを判断する(ステップS106)。
入力受付部128が停止指示情報を取得しない場合、停止判断部131は停止しないと判断する。停止判断部131が停止しないと判断した場合(ステップS106;No)、端末A106aは、上述の確認時期判断処理(ステップS103)から配布処理(ステップS105)を再び実行する。
入力受付部128が停止指示情報を取得した場合、停止判断部131は停止すると判断する。停止判断部131によって停止すると判断された場合(ステップS106;Yes)、停止部132は、停止処理を実行する(ステップ107)。停止処理(ステップ107)の詳細については後に説明する。
これにより、端末A106aは処理を終了する。
ここから、各処理(ステップS102,S104,S105,S107)の詳細について説明する。
(起動処理:ステップS102)
図17を参照して、図16に示す起動処理(ステップS102)を端末A106aが実行する場合を例に、起動処理(ステップS102)の詳細とともに、起動処理中における他の端末B106b,C106cの動作を説明する。すなわち、図17は、端末A106aが起動する例を示す。また、図6に示す起動情報121bに従い、端末A106aの起動時に、端末B106bは起動中であるが、端末C106cは起動中でない例により説明する。
端末A106aの起動通知送信部181は、起動判断部129によって起動すると判断された場合に(ステップS101;Yes)、記憶部121のセグメント情報121aを参照する(ステップS1021)。
端末A106aの起動通知送信部181は、参照したセグメント情報121aに含まれる他の端末B106b,C106cへ起動通知情報1022,1025を送信する。
端末B106bは起動中であるため、その起動通知受信部201は、端末A106aが送信した起動通知情報1022を受信する。起動通知情報1022が受信されると、端末B106bの起動情報更新部205は、端末A106aが起動中であることを示すように起動情報121bを更新する(ステップS1023)。起動情報121bが更新されると、端末B106bの起動応答送信部202は、起動応答情報1024を端末A106aへ送信する。端末A106aの起動応答受信部182は、端末B106bが送信した起動応答情報1024を受信する。
これに対して、端末C106cは停止中であるため、その起動通知受信部201は、端末A106aが送信した起動通知情報1025を受信することができない。そのため、端末C106cの起動応答送信部202が、起動応答情報を送信することもない。
端末A106aの起動情報生成部183は、起動応答受信部182が受信した起動応答情報1024を参照し、それによって、起動応答情報1024の送信元が端末B106bであると特定し、端末B106bが起動中であると判断する。また、その起動情報生成部183は、起動通知情報1025が送信された後所定の時間が経過しても、端末C106cからの起動応答情報を受信しないことによって、端末C106cが起動中ではないと判断する。端末A106aの起動情報生成部183は、自身の判断結果に従った内容を含む起動情報121bを生成し、端末A106aの記憶部121に格納する(ステップS1026)。
図17に示すように端末B106bが起動中であり、端末C106cが起動中でない場合、端末A106aの起動情報生成部183が生成する起動情報121bの内容は、図6に示すものとなる。これにより、端末A106aの起動部130は、起動処理(ステップS102)を終了する。
(ダウンロード処理:ステップS104)
図18を参照して、図16に示すダウンロード処理(ステップS104)を端末A106aが実行する場合を例に、ダウンロード処理(ステップS104)の詳細とともに、ダウンロード処理中におけるサーバ102の動作を説明する。
端末A106aの最新バージョン問合わせ部141は、時期判断部123によって確認時期が到来したと判断された場合に(ステップS103;Yes)、サーバ102にバージョン要求情報1041を送信する。それによって、最新バージョン問合わせ部141は、更新情報の最新バージョンを問い合わせる。サーバ102の最新バージョン要求受信部113は、端末A106aが送信した最新バージョン要求情報1041を受信する。
最新バージョン要求情報1041が受信されると、サーバ102の最新バージョン送信部114は、記憶部111の最新バージョン情報111bを取得する。そして、最新バージョン送信部114は、取得した最新バージョン情報1042(111b)を最新バージョン要求情報1041の送信元である端末A106aへ送信する。端末A106aの最新バージョン受信部142は、サーバ102が送信した最新バージョン情報1042を受信する。
端末A106aのダウンロード判断部143は、最新バージョン情報1042及び端末A106aの保持バージョン情報121dが示すバージョンを比較し、比較した結果に基づいて、最新更新情報111aをサーバ102からダウンロードするか否かを判断する(ステップS1043)。ダウンロード判断部143は、最新バージョンが保持バージョンよりも新しいものではない場合に、ダウンロードしないと判断する(ステップS1043;No)。ダウンロードしないと判断した場合に(ステップS1043;No)、ダウンロード部124は処理を終了する。
最新バージョンが保持バージョンよりも新しい場合に、ダウンロード判断部143は、ダウンロードすると判断する(ステップS1043;Yes)。
ダウンロード判断部143によってダウンロードすると判断された場合に(ステップS1043;Yes)、その判断結果を示す情報を取得したダウンロード要求送信部144は、ダウンロード要求情報1044をサーバ102へ送信する。サーバ102のダウンロード要求受信部115は、端末A106aが送信したダウンロード要求情報1044を受信する。
ダウンロード要求情報1044が受信されると、サーバ102の最新更新情報送信部116は、記憶部111の最新更新情報111aを取得する。そして、最新更新情報送信部116は、取得した最新更新情報1045(111a)をダウンロード要求情報1044の送信元である端末A106aへ送信する。端末A106aの最新更新情報受信部145は、サーバ102が送信した最新更新情報1045を受信する。
端末A106aのインストール部171は、最新更新情報受信部145が受信した最新更新情報1045を保持更新情報121cとして端末A106aの記憶部121に格納し、端末A106aにインストールする(ステップS1046)。
端末A106aのバージョン情報更新部172は、最新更新情報受信部145が受信した最新更新情報1045のバージョンである最新バージョンを示す情報を保持バージョン情報121dとして端末A106aの記憶部121に格納する(ステップS1047)。これにより、端末A106aのダウンロード部124は、ダウンロード処理(ステップS104)を終了する。
(配布処理:ステップS105)
図19を参照して、図16に示す配布処理(ステップS105)を端末A106aが実行する場合を例に、配布処理(ステップS105)の詳細とともに、配布処理中における他の端末B106b,C106cの動作を説明する。図19では、図6に示す起動情報121bに従い、端末A106aと端末B106bが起動中である場合の例を示す。停止中である端末C106cは、同図では、省略されている。
端末A106aの保持バージョン送信部151は、端末A106aが保持している保持バージョン情報121dを記憶部121から取得し、起動情報121bを参照する。保持バージョン送信部151は、起動情報121bによって起動中であると示される他の端末B106bへ、取得した端末A106aの保持バージョン情報1051(121d)を送信する。端末B106bの保持バージョン受信部161は、端末A106aが送信した保持バージョン情報1051を受信する。
端末B106bの受領判断部162は、保持バージョン情報1051が示すバージョン及び端末B106bの保持バージョン情報121dが示すバージョン(自己の保持バージョン)を比較する。そして、受領判断部162は、比較した結果に基づいて、端末A106aが保持している保持更新情報121cを受領するか否かを判断する(ステップS1052)。受領判断部162は、保持バージョン情報1051が示すバージョンが自己の保持バージョンよりも新しいものではない場合に、受領しないと判断する(ステップS1052;No)。これによって、受領部126は受領処理を終了する。
端末A106aの配布部125も、保持バージョン情報1051から所定の時間を経過しても端末B106bから応答がないことにより、配布処理を終了する。
なお、受領しないと判断した受領判断部162が、その判断結果を示す情報を保持バージョン情報1051の送信元である端末A106aへ送信し、その後、端末B106bの受領部126が受領処理を終了してもよい。そして、端末A106aの配布部125は、端末B106bの受領判断部162による判断結果を示す情報を受信し、それによって、配布処理を終了してもよい。
端末B106bの受領判断部162は、保持バージョン情報1051によって示されるバージョンが自己の保持バージョンよりも新しい場合に、受領すると判断する(ステップS1052;Yes)。
受領判断部162によって受領すると判断された場合に(ステップS1052;Yes)、端末B106bの保持更新要求送信部163は、保持更新要求情報1053を端末A106aへ送信する。端末A106aの保持更新要求受信部152は、端末B106bが送信した保持更新要求情報1053を受信する。
保持更新要求情報1053が受信されると、端末A106aの保持更新情報送信部153は、記憶部121の保持更新情報121cを取得する。そして、保持更新情報送信部153は、取得した保持更新情報1054(121c)を保持更新要求情報1053の送信元である端末B106bへ送信する。端末Bの保持更新情報受信部164は、端末A106aが送信した保持更新情報1054を受信する。
端末B106bのインストール部171は、保持更新情報受信部164が受信した保持更新情報1054(121c)を端末B106bの記憶部121に格納し、端末B106bにインストールする(ステップS1055)。
端末B106bのバージョン情報更新部172は、保持更新情報受信部164が受信した保持更新情報1054のバージョンを示す情報を保持バージョン情報121dとして端末B106bの記憶部121に格納する(ステップS1056)。
上述のインストール処理(ステップS1055)及びバージョン情報更新処理(ステップS1056)が終了すると、端末B106bの更新確認送信部165は、端末B106bの起動情報121bを参照し、起動中の端末である他の端末である端末A106aへ更新確認情報1057を送信する。この更新確認情報は、端末B106bの保持バージョン情報121dを含む。端末A106aの更新確認受信部154は、端末B106bからの更新確認情報1057を受信する。
更新確認情報1057を受信すると、端末A106aの受領判断部162は、上述の受領判断処理(ステップS1052)と同様の処理を実行する(ステップS1058)。ここで、端末A106aは、サーバ102から最初に最新更新情報111aをダウンロードした端末である。そのため、受領判断処理(ステップS1058)において、端末A106aの受領判断部162は、受領しないと判断する(ステップS1058;No)。これによって、端末A106aの配布部125は配布処理(ステップS105)を終了する。
これまで図19を参照して説明した例では、保持更新情報121cの配布を受けた端末B106bが更新確認情報を送信する利点は明らかでないであろう。端末B106bが更新確認情報を起動中の他の端末へ送信する利点は、端末A106aの配布処理(ステップS105)の途中に、停止中であった他の端末が起動された場合にある。
図20は、端末A106aの配布処理(ステップS105)が実行されている途中に、端末Cが起動した場合の各端末の動作を示す図である。なお、図20では、端末A106a及び端末B106bが新しい更新情報を配布・受領するために実行する処理については、その一部のみが示されている。また、図19と図20とで同一の処理又は情報の送受信には、同一の符号を付しており、それらに関するここでの説明は省略する。
図20を参照すると、端末C106cの入力受付部128は、端末A106aが保持バージョン情報1051を送信した後に、起動指示を受け付ける(ステップS1061)。これによって、端末C106cの起動判断部129は起動すると判断し、起動処理を実行する。起動処理の詳細は、図17を参照して説明したものと同様である。
端末C106cの起動通知送信部181は、記憶部121のセグメント情報121aを参照し(ステップS1062)、他の端末A106a,B106bへ起動通知情報1063,1064を送信する。端末A106a及び端末B106bのそれぞれの起動通知受信部201は、起動通知情報1063,1064を受信する。端末A106a及び端末B106bのそれぞれの起動情報更新部205は、それぞれの端末A106a,B106bが保持している起動情報121bを、端末C106cが起動していることを示すように変更する(ステップS1065,ステップS1066)。端末A106a及び端末B106bのそれぞれの起動応答送信部202は、起動応答情報1067,1068を送信する。端末C106cの起動応答受信部182は、起動応答情報1067,1068を受信する。端末C106cの起動情報生成部183は、受信された起動応答情報1067,1068に基づいて、端末A106a及び端末B106bの両方が起動していることを示す起動情報121bを生成し、端末C106cの記憶部121に格納する(ステップS1069)。このような、端末C106cが起動したことによって実行される処理は、端末A106aと端末B106bとの間での新しい更新情報の配布・受領と並行して実行される。
端末B106bでのバージョン情報更新処理(ステップS1056)が終了すると、端末B106bの更新確認送信部165は、端末B106bの起動情報121bを参照する。そして、端末B106bの更新確認送信部165は、起動中の端末である端末A106a及び端末C106cに更新確認情報1057,1070を送信する。
端末Cの受領判断部162は、受領判断処理(ステップS1052)と同様の処理を実行する(ステップS1071)。受領判断部162によって受領すると判断された場合に(ステップS1071;Yes)、端末C106cの保持更新要求送信部163は、保持更新要求情報1072を端末B102bへ送信し、端末B106bの保持更新要求受信部152は、保持更新要求情報1072を受信する。
保持更新要求情報1072が受信されると、端末B106bの保持更新情報送信部153は、記憶部121の保持更新情報121cを取得し、取得した保持更新情報1073(121c)を保持更新要求情報1072の送信元である端末C106cへ送信する。端末C106cの保持更新情報受信部164は、端末B106bが送信した保持更新情報1073を受信する。
端末C106cのインストール部171は、保持更新情報1073(121c)を端末C106cの記憶部121に格納し、端末C106cにインストールする(ステップS1074)。端末C106cのバージョン情報更新部172は、保持更新情報1073のバージョンを示す情報を保持バージョン情報121dとして端末C106cの記憶部121に格納する(ステップS1075)。
このように、更新確認情報1057,1070は、保持更新情報121cの配布を受けた端末B106bから、端末A106aだけでなく、端末C106cにも送信される。もし、保持更新情報121cの配布を受けた端末B106bが更新確認情報を送信しなければ、端末C106cは自身の確認時期にサーバ102からダウンロードするまで、最新更新情報111aを取得できないであろう。なぜなら、端末C106cよりも先に端末B106bの確認時期が到来しても、端末B106bは最新更新情報111aを既に保持しているため、それをダウンロードせず、したがって、端末C106cにも配布されないからである。このように、端末C106cが、端末A106aによるバージョン情報1051の送信から、端末B106bによる更新確認情報1057の送信までに起動した場合、端末C106cは、新しい更新情報を早く取得することができる。
したがって、端末B106bが、最新更新情報111aをダウンロードした端末A106aから保持更新情報121cを受領した後に更新確認情報を送信することによって、最新のバージョンの更新情報を各端末A106a〜C106cへ早く配布することが可能になる。
(停止処理:ステップS107)
図21を参照して、図16に示す停止処理(ステップS107)を端末Aが実行する場合を例に、停止処理(ステップS107)の詳細とともに、起動処理中における起動中の他の端末B106b,C106cの動作を説明する。図21では、端末A106aが停止する例を示す。また、図6に示す起動情報121bに従い、端末A106aが停止する時に、端末B106bは起動中であるが、端末C106cは起動中でない例により説明する。
端末A106aの停止通知送信部191は、停止判断部131によって停止すると判断された場合に(ステップS106;Yes)、記憶部121の起動情報121bを参照する(ステップS1081)。
端末A106aの停止通知送信部191は、参照した起動情報121bによって起動中であると示される他の端末B106bへ停止通知情報1082を送信する。端末B106bの停止通知受信部203は、端末A106aが送信した停止通知情報1082を受信する。
停止通知情報1082が受信されると、端末B106bの起動情報更新部205は、端末A106aが起動されていないことを示すように起動情報121bを変更する(ステップS1083)。
起動情報121bが変更されると、端末B106bの停止応答送信部204は、停止応答情報1084を端末A106aへ送信する。端末A106aの停止応答受信部192は、端末B106bが送信した停止応答情報1084を受信する。
端末A106aの起動情報クリア部193は、記憶部121の起動情報121bをクリアする(ステップS1085)。これによって、停止部132は、停止処理(ステップS107)を終了する。
これまで、図16に示す端末A106aが実行する処理の流れに沿って、各処理と各処理に関連してサーバ102及び他の端末B106b,C106cが実行する処理との例について説明した。これまで説明した端末A106aが実行する処理は、他の端末B106b,C106cによっても実行されるものである。例えば、これまでの説明で端末A106aが実行する処理を端末B106bが実行する場合、これまでの説明で他の端末B106b,C106cは、端末C106c,A106aに適宜置き換えることができる。
本実施形態によれば、各端末(例えば、A106a)は、確認時期にサーバ102に最新バージョンを問い合わせる。問い合わせた時に新しい更新情報がサーバ102に保持されている場合には、端末A106aは、その最新更新情報111aをダウンロードして、その時に起動している他の端末(例えば、B106b)に配布する。すなわち、新しい更新情報は、それを最初にダウンロードした端末A106aによって、起動中の他の端末B106bに配布される。
このような端末間での更新情報の配布・受領によって、サーバ102から新しい更新情報をダウンロードする回数を減少させることができる。したがって、更新情報を各端末に行き渡らせるためにサーバに掛かる負荷を軽減することが可能になる。また、サーバと各端末A106a〜C106cとの間で授受される情報量を軽減することが可能になる。
さらに、端末間での更新情報の配布・受領によって、各端末A106a〜C106cは、その端末自身がサーバからダウンロードしなくとも、新しい更新情報を取得することができる。そのため、各端末A106a〜C106cが新しい更新情報を取得する機会が増える。したがって、サーバ102に格納された最新更新情報を早期に、各端末A106a〜C106cに行き渡らせることが可能になる。
さらに、本実施形態では、第2の通信経路はWAN(例えば、インターネット)を含むが、第1の通信経路はWANを含まない。一般的に、WANを流通する情報量はLANに比べて膨大であるため、第2の通信経路を介した更新情報の取得には、第1の通信経路を介する場合よりも、長い時間を要することが多い。本実施形態では、端末(例えば、端末A106a)がサーバ102からダウンロードした更新情報は、第1の通信経路を介して、ダウンロード時に起動している他の端末(例えば、端末B106b)に配布される。したがって、本実施形態によれば、他の端末(例えば、端末A106a)から更新情報を受領する方が、端末(例えば、端末B106b)自身がサーバ102から更新情報をダウンロードするよりも、その端末B106bは、更新情報を速く取得することが可能になる。
さらに、各端末A106a〜C106cは、セグメント情報121aを保持しているため、他の端末との間で通信するために、サーバ102に問い合わせたり、サーバ102の認証を受けたりする必要がない。そのため、サーバ102での設定を減らすことができ、利用者の手間を減らすことが可能になる。
なお、本実施形態はこれまで説明したものに限られず、例えば、確認時期情報121eは、ユーザによって任意に設定されてよい。確認時期情報121eは、例えば、「起動後、3時間ごと」などのように起動後一定時間ごとに新たな更新情報がサーバ102に格納されたか否かを確認するように設定されてもよい。
なお、確認時期は、端末A106a〜C106cごとに異なることが望ましい。これによって、サーバ102に新たな更新情報が保持されたか否かを異なる時期に確認して、ダウンロードすることができる。そのため、新たな更新情報を各端末A106a〜C106cに早く行き渡らせることが可能になる。
(第2実施形態)
第1実施形態では、端末A106aが起動した場合、その時に起動している他の端末B106bと通信することによって、起動情報121bを生成し、更新することとした。第2実施形態では、このような起動情報121bの生成及び更新に加えて、起動した端末A106aが、起動中の他の端末(例えば、端末B106b)の保持バージョンを確認し、適宜、その端末の保持更新情報121cを受領する。
第2実施形態に係る更新情報配布システムの構成は、図1に示す第1実施形態に係る更新情報配布システム101の構成と同様である。そのため、本実施形態では、更新情報配布システムの構成に関する説明は省略する。
また、第2実施形態に係る各端末A306a(B306b,C306c)の構成は、図22に示すように、第1実施形態に係る各端末A106a(B106b,C106c)の構成と概ね同様である。第2及び第1実施形態に係る各端末A306a〜C306c(A106a〜C106c)の違いは、配布部325(125)及び起動部330(130)の詳細な構成にある。
第2実施形態に係る配布部325の詳細な構成について、図23を参照して、端末A306aを例に説明する。
同図に示すように、配布部325は、第1実施形態に係る配布部125と同じ保持更新要求受信部152と、保持更新情報送信部153と、更新確認受信部154とを備える。また、配布部325は、保持バージョン送信部151に代えて、保持バージョン送信部351を備える。さらに、配布部325は、保持バージョン要求受信部355を備える。
保持バージョン要求受信部355は、保持バージョン要求情報を他の端末B306b,C306cから受信する。保持バージョン要求情報は、保持バージョン要求を含む情報である。保持バージョン要求は、保持バージョン要求情報の送信元である端末へ保持バージョン情報121cを送信するようにとの要求である。
保持バージョン送信部351は、第1実施形態に係る保持バージョン送信部151と同様に、ダウンロード部124が最新更新情報111aをダウンロードした場合に、起動中である他の端末B306b,C306cへ保持バージョン情報121dを送信する。それに加えて、本実施形態に係る保持バージョン送信部351は、保持バージョン要求受信部355が保持バージョン要求情報を受信した場合に、その保持バージョン要求情報の送信元である端末へ保持バージョン情報121dを送信する。
第2実施形態に係る起動部330の詳細な構成について、図24を参照して、端末A306aを例に説明する。
同図に示すように、起動部330は、第1実施形態に係る起動部130と同じ起動通知送信部181と、起動応答受信部182と、起動情報生成部183とを備える。これらに加えて、起動部330は、起動有無判断部384と、保持バージョン問合わせ部385とを備える。
起動有無判断部384は、端末A306aが起動した時に、起動中である他の端末B306b,C306cがあるか否かを判断する。起動中である他の端末B306b,C306cの有無は、起動応答受信部182が起動応答情報を受信したか否かに基づいて判断される。本実施形態では、その有無は、受信した起動応答情報に基づいて生成される起動情報121bを参照することによって判断される。
保持バージョン問合わせ部385は、起動有無判断部384によって起動中の他の端末B306b,C306cがあると判断された場合に、その起動中の他の端末B306b,C306cへ保持バージョン要求情報を送信する。これによって、保持バージョン問合わせ部385は、起動中の他の端末B306b,C306cにその保持バージョンを問い合わせる。
図25は、第2実施形態に係る端末A306aが実行する処理を示すフローチャートである。同図に示す第2実施形態に係る端末A306aが実行する処理は、第1実施形態に係る端末A106aが実行する処理(図16参照)と概ね同じである。これらの違いは、起動処理(ステップS202,ステップS102)の詳細にある。
図26を参照して、図25に示す起動処理(ステップS202)を端末A306aが実行する場合を例に、起動処理の詳細とともに、起動処理中における他の端末B306b,C306cの動作を説明する。すなわち、図26は、端末A306aが起動する例を示す。また、図6に示す起動情報121bに従い、端末A306aの起動時に、端末B306bは起動中であるが、端末C306cは起動中でない例により説明する。
図26に示す各端末A306a,B306bが実行する処理(ステップS1021、S1023、及びS1026)は、図17に示す同一の符号を付したものと同じである。また、各端末A306a,B306bの間で送受信される情報(1022、1024、及び1025)とその情報を送受信するための各端末A306a,B306bにおける処理は、図17に示す同一の符号を付したものと同じである。また、端末C306cは停止中であるため、処理を実行しない点も図17を参照して説明したものと同じである。そのため、本実施形態では、これらに関する詳細な説明は省略する。
起動情報121bが生成されると(ステップS1026)、端末A306aの起動有無判断部384は、生成した起動情報121bを参照し、それによって、起動している他の端末B306bの有無を判断する(ステップS2021)。起動中の他の端末がないと判断した場合(ステップS2021;No)、起動部330は、起動処理(ステップS202)を終了する。
起動中の他の端末があると判断した場合(ステップS2021;Yes)、端末A306aの保持バージョン問合わせ部385は、起動中の他の端末B306bへ保持バージョン要求情報2022を送信する。端末B306bの保持バージョン要求受信部355は、保持バージョン要求情報2022を受信する。
図26に示す各端末A306a,B306bの間で送受信される情報(1051、1053、及び1054)とその情報を送受信するための各端末A306a,B306bにおける処理は、図19に示す同一の符号を付したものと同様である。また、端末A306aが実行する処理(ステップS1052、S1055、及びS1056)は、図19に示す同一の符号を付したものと同様である。ただし、本実施形態では、更新情報を受領する端末は端末A306aであり、更新情報を配布する端末は端末B306bであるのに対し、第1実施形態では、それらを実行する端末が逆である点が異なる。
このように、本実施形態によれば、各端末(例えば、端末A306a)が起動した時、その時に起動中である他の端末(例えば、端末B306b)に他の端末B306bの保持バージョンを問い合わせる。そして、他の端末B306bの保持バージョンが、起動した端末A306aの保持バージョンよりも新しい場合に、起動した端末A306aは、他の端末B306bが保持する保持更新情報121cを受領する。
本実施形態によれば、各端末A306a,B306b,C306cは、ユーザなどが任意に設定する確認時期に加えて、起動した時にも、その保持バージョンより新しい更新情報がある場合には、その新しい更新情報を取得できる。そのため、本実施形態では、第1実施形態の場合よりも新しい更新情報を取得する機会が増える。したがって、本実施形態では、第1実施形態の場合よりも早期に、各端末A306a,B306b,C306cに新しい更新情報を行き渡らせることが可能になる。
また、本実施形態では、各端末(例えば、端末A306a)が起動した時には、その起動した端末A306aは、他の端末(例えば、端末B306b)との間で情報を授受し、サーバ102との間では情報を授受しない。そのため、本実施形態では、サーバ102に掛かる処理負荷は第1実施形態と同じであり、従って、サーバ102に掛かる処理負荷を、第1実施形態と同様に軽減することが可能である。また、サーバ102と各端末A106a〜C106cとの間で授受される情報量についても、第1実施形態と同様に軽減することが可能である。さらに、第1の通信経路が、第2の通信経路とは異なり、膨大な情報が流通する通信経路を含まない場合、他の端末(例えば、端末A106a)から更新情報を受領する端末(例えば、端末B106b)は、更新情報を速く取得することが可能になる。
このように、本実施形態では、第1実施形態と同様に、サーバ102の負荷を軽減することが可能になる。サーバ102と各端末A106a〜C106cとの間で授受される情報量を軽減することが可能になる。更新情報を速く取得することが可能になる。利用者の手間を軽減することが可能になる。そして、本実施形態によれば、サーバ102に保持された新しい更新情報を第1実施形態の場合よりも早期に、各端末A106a〜C106cに行き渡らせることが可能になる。
なお、本実施形態はこれまで説明したものに限られない。例えば、端末A306aが起動した時に、端末A306aは、他の端末からではなく、サーバから新しい更新情報をダウンロードしてもよい(第1変形例)。
この第1変形例では、起動した端末(例えば、端末A106a)は、起動時及び所定の確認時期に、サーバ102に最新バージョンを問い合わせて、自身の保持バージョンよりサーバの最新バージョンが新しい場合に、最新更新情報111aをダウンロードする。これによって、例えばニュースを内容とするなど更新情報が頻繁に更新される場合であっても、新しい更新情報を早期に、端末のいずれかがサーバ102から取得して、各端末に行き渡らせることが可能になる。
第1変形例では、さらに、確認時期情報121eが、各端末A106a〜C106cに保持又は設定されなくてもよい。すなわち、各端末A106a〜C106cは、起動時にのみ、その保持バージョンより新しい更新情報をサーバからダウンロードしてもよい(第2変形例)。
第2変形例によっても、第1実施形態と同様に、サーバ102の負荷を軽減することが可能になる。サーバ102と各端末A106a〜C106cとの間で授受される情報量を軽減することが可能になる。更新情報を速く取得することが可能になる。
第2変形例は、例えば端末A106a〜C106cが一定の時間帯に少しずつ時間をずらして起動する場合に特に有用である。この場合、最初にサーバ102から新しい更新情報をダウンロードした端末A106a〜C106cが、その新しい更新情報を他の端末A106a〜C106cへ配布することができる。したがって、サーバ102に負荷を掛けることなく、新しい更新情報を各端末A106a〜C106cへ早期に行き渡らせることが可能になる。
(第3実施形態)
第1実施形態では、更新情報配布システム101において、すべての端末A106a〜C106cがサーバ102と通信可能であるとした。第3実施形態では、サーバ102と通信可能な第1段目の端末に加えて、第1段目の端末を擬似的なサーバとする第2段目の端末とを備える更新情報配布システムの例について説明する。すなわち、サーバと複数の端末との関係を多段階に備える更新情報配布システムの例について説明する。
図27は、本発明の第3実施形態に係る更新情報配布システムの構成を示す図である。同図に示すように、第3実施形態に係る更新情報配布システム401は、第1実施形態と同様の構成を備えるサーバ102と、複数の第1段目の端末(第1端末A406a,第1端末B406b,第1端末C406c)とを備える。更新情報配布システム401は、さらに、第2段目の複数の端末(第2端末A408a,第2端末B408b,第2端末C408c,第2端末D408d,第2端末E408e)を備える。
サーバ102と複数の第1端末A406a〜C406cとは、第1実施形態と同様に、LAN103とルータ104とWAN105(第2の通信経路)を介して通信可能に接続されている。また、複数の第1端末A406a〜C406cは、第1実施形態と同様に、LAN103(第1の通信経路)を介して通信可能に接続されている。
さらに、第1端末A406aと、第2端末A408a〜C408cとは、第3の通信経路407aを介して通信可能に接続されている。また、第1端末C406cと、第2端末D408d,E408eとは、第4の通信経路407bを介して通信可能に接続されている。
このような構成によって、第1端末A406a〜C406cは、第1実施形態の各端末A106a〜C106cと同様に、サーバ102に新しい更新情報が保持された場合に、サーバ102からそれをダウンロードする。そして、新しい更新情報は、第1端末A406a〜C406cの間でそれを配布・受領される。
本実施形態では、第2端末A408a〜C408cは、第1端末A406aに新しい更新情報が保持された場合に、第1端末A406aからそれをダウンロードし、第2端末A408a〜C408cの間でそれを配布・受領する。このように、第1端末A406aは、それに接続されたセグメントに属する第2端末A408a〜C408cのサーバのように機能する。同様に、第1端末C406cは、それに接続されたセグメントに属する第2端末D408d〜E408eのサーバのように機能する。
なお、図27では、第3及び第4の通信経路407a〜bは、LAN103とは別の分離した通信経路として示しているが、必ずしも物理的に分離されている必要はない。第2端末A408a〜C408cが第1端末A406aを擬似的なサーバとするセグメントに属し、第2端末D〜E408d〜eが第1端末C406cを擬似的なサーバとするセグメントに属することが判別できる構成であればよい。このような判別が可能であれば、第2端末A〜E408a〜eは、物理的には、LAN103に接続されていてもよい。
なお、更新情報配布システムは、3段で構成されてもよい。3段の構成とは、第2端末A408a〜E408eの一部又は全部に、複数の第3段目の端末(第3端末)が接続されている構成である。この場合、第2端末A408a〜E408eが、それに接続された第3端末のサーバのように機能する。また、更新情報配布システムは、4段以上で構成されてもよい。
本実施形態に係るサーバ102は、第1実施形態のサーバ102と同様の構成である。そのため、ここではサーバ102に関する説明は省略する。
次に、本実施形態に係る第1及び第2端末A406a〜C406c,A408a〜E408eの構成について、説明する。
図28は、本発明の第3実施形態に係る第1端末A406aの構成を示す図である。本実施形態に係る各端末406a〜c,408a〜eの構成は同じである。そのため、第1端末A406aを例に説明し、他の端末406b〜c,408a〜eの構成に関する詳細な説明は省略する。
図28に示すように、第1端末A406aは、上述のようにサーバのように機能するために、端末A106aが備える構成(図4参照)に加えて、更新情報提供部434を備える。
更新情報提供部434は、第1端末A406aの下段に接続される第2端末(例えば、第2端末A408a)から更新要求情報を受信した場合に、更新要求情報の送信元である第2端末A408aへ、第1端末A406aの保持更新情報121cを送信する。
更新要求情報は、更新要求を含む情報である。更新要求は、更新要求情報の送信元である第2端末A408a〜C408cへ第1端末A406aの保持更新情報121cを送信するようにとの要求である。
図29は更新情報提供部434の詳細な構成を示す。同図に示すように、更新情報提供部434は、バージョン要求受信部501と、バージョン送信部502と、更新要求受信部503と、更新情報送信部504とを備える。
バージョン要求受信部501は、第1端末A406aのクライアントのように機能する第2端末A408a〜C409cからバージョン要求情報を受信する。バージョン要求情報は、バージョン要求を含む情報である。バージョン要求は、バージョン要求情報の送信元である第2端末A408a〜C409cへ、擬似的にサーバとして動作する端末である第1端末A406aの保持バージョン情報121dを送信するようにとの要求である。
バージョン送信部502は、バージョン要求受信部501がバージョン要求情報を受信した場合に、バージョン要求情報の送信元である第2端末A408a〜C409cへ記憶部121の保持バージョン情報121dを送信する。
更新要求受信部503は、第2端末A408a〜C409cから更新要求情報を受信する。
更新情報送信部504は、更新要求受信部503が更新要求情報を受信した場合に、この情報の送信元である第2端末A408a〜C409cへ記憶部121の保持更新情報121cを送信する。
次に、本実施形態に係るサーバ102が実行する処理は、第1実施形態に係るサーバ102と同様である(図18参照)。
本実施形態に係る第1端末A406a〜C406cが実行する処理は、第1実施形態に係る各端末106a〜cが実行する処理(図16など参照)と、第1実施形態に係るサーバ102が実行する処理に対応する処理とを含む。
「第1実施形態に係るサーバ102が実行する処理に対応する処理」について、第1端末A406aがそれを実行する場合を例に説明する。同処理は、第2端末A408a〜C408cから保持バージョンの問い合わせを受けることを含む。保持バージョンの問い合わせは、第2端末A408a〜C408cがバージョン要求情報を送信することによって行なわれる。また、同処理は、問い合わせをした第2端末A408a〜C408cへ保持バージョン情報121dを送信することを含む。さらに、同処理は、第2端末A408a〜C408cからの更新要求情報を受けることを含む。さらに、同処理は、更新要求をした第2端末A408a〜C408cへ保持更新情報121cを送信することを含む。
本実施形態に係る第2端末408a〜eが実行する処理は、第1実施形態に係る各端末106a〜cが実行する処理に対応する処理を含む。
「第1実施形態に係る各端末106a〜cが実行する処理に対応する処理」について、第2端末A408aが実行する場合を例に説明する。同処理は、各端末106a〜cが実行する処理と概ね同じである。ただし、第1実施形態に係る端末A106aがサーバ102に対して実行する処理については、第2端末A408aは、第1端末A406aに対して実行する。また、第1実施形態に係る端末A106aが他の端末B106b,C106cとの間で実行する処理については、第2端末A408aは、他の第2端末B408b,C408cとの間で実行する。
このような第3実施形態は、特に、多数の端末に新しい更新情報を行き渡らせる場合に好適である。このような場合に、本実施形態によれば、第1実施形態と同様の効果に加えて、端末が他の端末に配布する負荷の分散が可能になる。
(サーバ102及び端末106,306,406,408の物理的構成の例)
図30は、各実施形態に係るサーバ102及び端末106a〜c,306a〜c,406a〜c,408a〜eの物理的構成の一例を示す。物理的構成の説明では、サーバ102及び端末106a〜c,306a〜c,406a〜c,408a〜eを区別する必要がない場合、これらを総称して装置という。
装置は、補助記憶部601と、処理・制御部602と、主記憶部603と、通信I/F(インターフェース)部604と、入出力部605とを備える。各部601〜605は、内部バス706により情報を相互に送受信できるように接続されている。
補助記憶部601は、HDD(ハードディスクドライブ)、フラッシュメモリなどの記憶媒体である。処理・制御部602は、1つ又は複数のプロセッサである。主記憶部603は、RAM(Random Access Memory)などである。通信I/F部604は、各通信経路103,105,107a〜b,407a〜bを介して他の装置と通信するための制御及び処理を実行するプロセッサなどを含むインターフェースである。入出力部605は、LCD(Liquid Crystal Display)などの表示部と、マウス、キーボード、タッチパネル、ボタン、スイッチなどの入力部とを含む。
補助記憶部601は、記憶部111,121に相当する。補助記憶部601には、各実施形態で説明した情報に加えて、更新情報によって更新されるソフトウェア・プログラム(更新対象プログラム)が記憶されている。
処理・制御部602は、補助記憶部601から更新対象プログラムを読み出すことができる。処理・制御部602は、補助記憶部601、主記憶部603及び通信I/F部604と協働することによって、読み出した更新対象プログラムを実行する。これによって、各装置は、各実施形態において説明した機能を備えるとともに、処理を実行することができる。なお、各装置が備える機能の一部は、更新対象プログラムと処理・制御部602などとの協働ではなく、その機能を備えた1つ又は複数のプロセッサによって実現されてもよい。
入出力部605の入力部をユーザが操作することによって、各実施形態で説明した設定などがなされる。また、入出力部605の出力部をユーザが見ることによって、各種の設定内容、更新対象プログラムの実行結果、更新情報のダウンロード又は受領の状況、更新情報のインストールの状況、更新情報のバージョンなどを確認することができる。
以上、本発明のいくつかの実施形態及び変形例を説明したが、本願発明は、これらの実施形態及び変形例に限定されず、特許請求の範囲に記載された発明とその均等の範囲を含む。以下に、本願発明の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
随時更新される情報である更新情報と、当該更新情報のバージョンである保持バージョンを示す情報と、所定の通信経路を介して通信できるセグメントに属する他の更新情報配布装置のアドレスを示すアドレス情報と、前記他の更新情報配布装置が起動中であるか否かを示す起動情報とを記憶している記憶手段と、
前記保持バージョンより新しい更新情報をサーバが所定の時期に保持している場合に、当該新しい更新情報を当該サーバからダウンロードするダウンロード手段と、
前記起動情報によって前記他の更新情報配布装置が起動中であると示される場合に、前記ダウンロード手段によってダウンロードされた新しい更新情報を前記起動中である他の更新情報配布装置へ送信する配布手段とを備える
ことを特徴とする更新情報配布装置。
(付記2)
前記他の更新情報配布装置とは、第1の通信経路を介して相互に通信できるように接続されており、
前記サーバとは、前記第1の通信経路とは異なる通信経路を含む第2の通信経路を介して相互に通信できるように接続されている
ことを特徴とする付記1に記載の更新情報配布装置。
(付記3)
起動時に、前記アドレス情報によって示される他の更新情報配布装置へ起動したことを示す情報を送信する起動手段と、
前記他の更新情報配布装置から前記起動したことを示す情報を受信した場合に、当該他の更新情報配布装置が起動中であることを示すように前記起動情報を更新する起動情報更新手段とを備える
ことを特徴とする付記1又は2に記載の更新情報配布装置。
(付記4)
停止指示を示す情報を取得した場合であって、前記起動情報によって前記他の更新情報配布装置が起動中であると示されるときに、当該起動中である他の更新情報配布装置へ停止することを示す情報を送信する停止手段と、
前記他の更新情報配布装置から前記停止することを示す情報を取得した場合に、当該他の更新情報配布装置が起動中でないことを示すように前記起動情報を更新する起動情報更新手段とを備える
ことを特徴とする付記1から3のいずれか1つに記載の更新情報配布装置。
(付記5)
前記配布手段は、
前記起動情報によって前記他の更新情報配布装置が起動中であると示される場合に、当該起動中である他の更新情報配布装置へ前記保持バージョンを示す情報を送信する保持バージョン送信手段と、
前記ダウンロード手段によってダウンロードされた新しい更新情報を前記起動中である他の更新情報配布装置へ送信する更新情報送信手段とを備える
ことを特徴とする付記1から4のいずれか1つに記載の更新情報配布装置。
(付記6)
前記所定の時期が到来したか否かを判断する時期判断手段をさらに備え、
前記ダウンロード手段は、
前記時期判断手段によって前記所定の時期が到来したと判断された場合に、前記更新情報の最新バージョンを前記サーバへ問い合わせる最新バージョン問合わせ手段と、
前記最新バージョンと前記保持バージョンとを比較し、前記最新バージョンが前記保持バージョンより新しい更新情報のバージョンを示す場合に、当該新しい更新情報を前記サーバからダウンロードすると判断するダウンロード判断手段と、
前記ダウンロード判断手段によってダウンロードすると判断された場合に、前記新しい更新情報を前記サーバから受信する更新情報ダウンロード手段とを備える
ことを特徴とする付記1から5のいずれか1つに記載の更新情報配布装置。
(付記7)
前記所定の時期は、自身が起動した時である
ことを特徴とする付記1から5のいずれか1つに記載の更新情報配布装置。
(付記8)
前記起動手段は、
起動時に、前記アドレス情報によって示される他の更新情報配布装置へ起動したこと示す情報を送信する起動通知送信手段と、
前記起動したこと示す情報を受信したことの応答である起動応答情報を前記他の更新情報配布装置から受信する起動応答受信手段と、
前記起動応答情報の送信元である前記他の更新情報配布装置へ、当該他の更新情報配布装置の保持バージョンを問い合わせる保持バージョン問合わせ手段とを備え、
前記更新情報配布装置は、さらに、
前記他の更新情報配布装置の保持バージョンと自身の保持バージョンとを比較し、前記他の更新情報配布装置の保持バージョンが前記自身の保持バージョンより新しい更新情報のバージョンを示す場合に、当該新しい更新情報を当該他の更新情報配布装置から受領する受領手段を備える
ことを特徴とする付記3から7のいずれか1つに記載の更新情報配布装置。
(付記9)
前記ダウンロード手段によってダウンロードされた新しい更新情報のバージョンによって前記保持バージョンを示す情報を更新する更新手段を備える
ことを特徴とする付記1から8のいずれか1つに記載の更新情報配布装置。
(付記10)
前記他の更新情報配布装置とは異なるセグメントに属し、かつ、自身とは通信可能に接続されている別の更新情報配布装置から要求を受けた場合に、当該別の更新情報配布装置へ自身が保持している更新情報を提供する更新情報提供手段を備える
ことを特徴とする付記1から9のいずれか1つに記載の更新情報配布装置。
(付記11)
サーバと、所定の通信経路を介して通信できるセグメントに属する複数の端末とを備える更新情報配布システムであり、
前記サーバと前記複数の端末とは、通信可能に接続されており、
前記サーバは、更新情報と、当該更新情報のバージョンとを記憶している記憶手段を備え、
前記複数の端末の各々は、
随時更新される情報である更新情報と、当該更新情報のバージョンである保持バージョンを示す情報と、他の端末のアドレスを示すセグメント情報と、前記他の端末の各々が起動中であるか否かを示す起動情報とを記憶している記憶手段と、
前記保持バージョンより新しい更新情報をサーバが所定の時期に保持している場合に、当該新しい更新情報を当該サーバからダウンロードするダウンロード手段と、
前記起動情報によって起動中であると示される前記他の端末がある場合に、前記ダウンロード手段によってダウンロードされた新しい更新情報を前記起動中である他の端末の各々へ送信する配布手段と、
前記他の端末から新しい更新情報を受領する受領手段とを備える
ことを特徴とする更新情報配布システム。
(付記12)
随時更新される情報である更新情報のうち、自己が保持している更新情報のバージョンである保持バージョンより新しい更新情報をサーバが所定の時期に保持している場合に、当該新しい更新情報を当該サーバからダウンロードし、
所定の通信経路を介して通信できるセグメントに属する他の更新情報配布装置のアドレスを示すアドレス情報と、前記他の更新情報配布装置が起動中であるか否かを示す起動情報とを参照し、
前記起動情報によって前記他の更新情報配布装置が起動中であると示される場合に、前記ダウンロードされた新しい更新情報を前記起動中である他の更新情報配布装置へ送信する
ことを特徴とする更新情報配布方法。
(付記13)
随時更新される情報である更新情報のうち、自己が保持している更新情報のバージョンである保持バージョンより新しい更新情報をサーバが所定の時期に保持している場合に、当該新しい更新情報を当該サーバからダウンロードし、
前記ダウンロードされた新しい更新情報のバージョンによって前記保持バージョンを示す情報を更新し、
所定の通信経路を介して通信できるセグメントに属する他の更新情報配布装置のアドレスを示すアドレス情報と、前記他の更新情報配布装置が起動中であるか否かを示す起動情報とを参照し、
前記起動情報によって前記他の更新情報配布装置が起動中であると示される場合に、前記ダウンロードされた新しい更新情報を前記起動中である他の更新情報配布装置へ送信することをコンピュータに実行させる
ことを特徴とするプログラム。