(57)【特許請求の範囲】
【請求項１】
情報処理端末であって、
通信インターフェイスと、
ソフトウェアを更新するための第１の更新機能を実現するためのプロセッサと、
前記プロセッサに接続されて、第１のソフトウェアを格納するためのメモリとを備え、
前記プロセッサは、
前記第１のソフトウェアのための第１の更新用ファイルの最新バージョン情報、および、前記情報処理端末と通信可能な他の装置に格納されている第２のソフトウェアのための第２の更新用ファイルの最新バーション情報を含む更新情報ファイルを、前記通信インターフェイスを介して取得し、
前記第１のソフトウェアのバージョン情報と、前記更新情報ファイルに含まれる最新バージョン情報とに基づいて、前記第１のソフトウェアの更新が必要であるか否かを判断し、
前記第１のソフトウェアの更新が必要である場合に、前記通信インターフェイスを介して前記第１の更新用ファイルを取得し、前記第１の更新用ファイルを用いて前記第１のソフトウェアを更新し、
前記第２のソフトウェアのバージョン情報と、前記更新情報ファイルに含まれる最新バージョン情報とに基づいて、前記第２のソフトウェアの更新が必要であるか否かを判断し、
前記第２のソフトウェアの更新が必要である場合に、前記通信インターフェイスを介して前記第２の更新用ファイルを取得し、
取得した前記第２の更新用ファイルを前記他の装置に送信するように構成されている、情報処理端末。
【請求項２】
前記プロセッサは、
前記第１のソフトウェアの更新用ファイルを、第１のサーバから取得し、
前記第２のソフトウェアの更新用ファイルを、第２のサーバから取得し、
前記更新情報ファイルを、前記第１のサーバまたは前記第２のサーバから取得し、
最新の前記第１の更新用ファイルおよび前記第２の更新用ファイルが有効にされてから、最新の更新情報ファイルは有効にされている、請求項１に記載の情報処理端末。
【請求項３】
前記プロセッサは、前記第１の更新機能とは異なる第２の更新機能を実現するように構成されており、
前記第１の更新機能は、前記第１のソフトウェアによって実現され、前記第１の更新機能には、前記更新情報ファイルに含まれる内容と同じ内容を含む更新情報が関連付けられ、
前記プロセッサは、前記第２の更新機能を実行することにより、前記第１のソフトウェアを更新し、
前記情報処理端末に対して与えられる命令に基づいて、または、前記第１の更新機能の実行に応じて、前記プロセッサは、前記第２の更新機能を実行するように構成されており、
前記第１の更新機能の実行に基づいて前記第２の更新機能が実行されるとき、前記プロセッサは、前記更新情報ファイルと前記更新情報とに基づいて、前記第１のソフトウェアを更新し、
前記第１のソフトウェアが実行された時点において、前記プロセッサは、前記第１のソフトウェアの更新が必要であるか否かを確認するように構成されている、請求項１または２に記載の情報処理端末。
【請求項４】
前記更新情報ファイルは、前記第２のサーバに保存され、
前記第２のソフトウェアの最新の更新用ファイルが有効にされ、次に、前記第１のソフトウェアの最新の更新用ファイルが有効にされ、最後に、前記更新情報ファイルが有効にされる、請求項３に記載の情報処理端末。
【請求項５】
情報処理端末がソフトウェアを更新するための方法であって、前記情報処理端末は、通信インターフェイスと、ソフトウェアを更新するための第１の更新機能を実現するためのプロセッサと、前記プロセッサに接続されて、第１のソフトウェアを格納するためのメモリとを備えており、前記方法は、
前記プロセッサが、前記第１のソフトウェアのための第１の更新用ファイルの最新バージョン情報、および、前記情報処理端末と通信可能な他の装置に格納されている第２のソフトウェアのための第２の更新用ファイルの最新バーション情報を含む更新情報ファイルを、前記通信インターフェイスを介して取得するステップと、
前記プロセッサが、前記第１のソフトウェアのバージョン情報と、前記更新情報ファイルに含まれる最新バージョン情報とに基づいて、前記第１のソフトウェアの更新が必要であるか否かを判断するステップと、
前記プロセッサが、前記第１のソフトウェアの更新が必要である場合に、前記通信インターフェイスを介して前記第１の更新用ファイルを取得し、前記第１の更新用ファイルを用いて前記第１のソフトウェアを更新するステップと、
前記プロセッサが、前記第２のソフトウェアのバージョン情報と、前記更新情報ファイルに含まれる最新バージョン情報とに基づいて、前記第２のソフトウェアの更新が必要であるか否かを判断するステップと、
前記プロセッサが、前記第２のソフトウェアの更新が必要である場合に、前記通信インターフェイスを介して前記第２の更新用ファイルを取得するステップと、
前記プロセッサが、取得した前記第２の更新用ファイルを前記他の装置に送信するステップとを含む、ソフトウェアを更新するための方法。
【請求項６】
情報処理端末にソフトウェアを更新させるためのプログラムであって、前記情報処理端末は、通信インターフェイスと、ソフトウェアを更新するための第１の更新機能を実現するためのプロセッサと、前記プロセッサに接続されて、第１のソフトウェアを格納するためのメモリとを備えており、前記プログラムは、前記プロセッサに、
前記第１のソフトウェアのための第１の更新用ファイルの最新バージョン情報、および、前記情報処理端末と通信可能な他の装置に格納されている第２のソフトウェアのための第２の更新用ファイルの最新バーション情報を含む更新情報ファイルを、前記通信インターフェイスを介して取得するステップと、
前記メモリから、前記第１のソフトウェアのバージョン情報と、前記更新情報ファイルに含まれる最新バージョン情報とに基づいて、前記第１のソフトウェアの更新が必要であるか否かを判断するステップと、
前記第１のソフトウェアの更新が必要である場合に、前記通信インターフェイスを介して前記第１の更新用ファイルを取得し、前記第１の更新用ファイルを用いて前記第１のソフトウェアを更新するステップと、
前記第２のソフトウェアのバージョン情報と、前記更新情報ファイルに含まれる最新バージョン情報とに基づいて、前記第２のソフトウェアの更新が必要であるか否かを判断するステップと、
前記第２のソフトウェアの更新が必要である場合に、前記通信インターフェイスを介して前記第２の更新用ファイルを取得するステップと、
取得した前記第２の更新用ファイルを前記他の装置に送信するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエア、ファームウエア、OS（Operating  System：オペレーティングシステム）、アプリケーション、プログラムその他の更新を必要とするプログラムを更新する技術に関する。
【背景技術】
【０００２】
ソフトウェアを更新するための技術として、たとえば、特開２００５−１２８８４８号公報（特許文献１）は、「クライアントが有する複数のソフトウェアを更新する場合であっても、極めて長時間を要することなく、ＨＴＴＰを使用しない環境であっても容易にソフトウェアの更新を行なうことができるソフトウェア更新管理システム」を開示している（［要約］の［課題］参照）。このソフトウェア更新管理システムによると、「ＦＴＰプロトコルを用いてクライアント２５ａ等からＦＴＰサーバ５５へ情報ファイル４２を転送しＦＴＰサーバ５５からクライアント２５ａ等へインストーラ・ファイル９６を転送することにより、ＨＴＴＰプロトコルを使用しない環境であっても容易に情報ファイル４２およびインストーラ・ファイル９６の転送を行なうことができる。複数のクライアント２５ａ等が有する複数のソフトウェアについて情報ファイル４２をＦＴＰサーバ５５へ転送することにより複数のクライアント２５ａ等が有する複数のソフトウェアを更新する場合であっても長時間を要することなくソフトウェアの更新を行なうことができる」というものである（［要約］の［解決手段］）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１２８８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術は、２またはそれ以上の複数の端末のソフトウェアが連携して動作し、かつ、別のサーバからソフトウェア更新を行うシステムに対応していない。すなわち、端末同士が連携している場合、全ての更新が完了しないとソフトウェアの基本機能の動作を開始できない。
【０００５】
また、ソフトウェア更新用ファイルは、端末毎に別のサーバに置かれるが、ソフトウェア更新用ファイルのアップロードと、端末の更新の開始とを適切に行わないと、更新が正しく行われない。これは、一般に、別々のサーバが別々に管理されているためであり、また、全てのソフトウェア更新用ファイルは同時にサーバにアップロードされないからである。そして、たとえば、最初に第１のソフトウェア更新用ファイルをアップロードして、当該ソフトウェア更新用ファイルを使う第１の端末が更新を行った場合、もし、もう一つの第２の端末用の第２のソフトウェア更新用ファイルがまだサーバにアップロードされていない場合、連携している第１の端末と第２の端末とは正しく動作しなくなる。たとえば、第１の端末と第２の端末とが情報を交換する際、第１の端末および第２の端末は、情報を交換する形式を互いに知る必要があるが、もしこの情報を交換する形式が更新されて、第１の端末だけが更新された場合、第１の端末における当該形式は、更新されていない第２の端末における当該形式とは異なることになり、結果として、正しく情報交換ができなくなる。
【０００６】
したがって、連携している複数の端末においてソフトウェアを正しく更新するための技術が必要とされている。
【０００７】
本願発明は、上述のような問題点を解決するためになされたものであって、その目的は、ソフトウェアを確実に更新することができる情報端末を提供することである。他の目的は、連携する複数の情報端末において、ソフトウェアを確実に更新するための方法を提供することである。さらに他の目的は、情報端末に、ソフトウェアを確実に更新させるためのプログラムを提供することである。
【課題を解決するための手段】
【０００８】
一実施の形態に従う情報処理端末は、通信インターフェイスと、ソフトウェアを更新するための第１の更新機能を実現するためのプロセッサと、プロセッサに接続されて、第１のソフトウェアを格納するためのメモリとを備える。プロセッサは、第１のソフトウェアのための第１の更新用ファイルの最新バージョン情報、および、情報処理端末と通信可能な他の装置に格納されている第２のソフトウェアのための第２の更新用ファイルの最新バーション情報を含む更新情報ファイルを、通信インターフェイスを介して取得し、第１のソフトウェアのバージョン情報と、更新情報ファイルに含まれる最新バージョン情報とに基づいて、第１のソフトウェアの更新が必要であるか否かを判断し、第１のソフトウェアの更新が必要である場合に、通信インターフェイスを介して第１の更新用ファイルを取得し、第１の更新用ファイルを用いて第１のソフトウェアを更新し、第２のソフトウェアのバージョン情報と、更新情報ファイルに含まれる最新バージョン情報とに基づいて、第２のソフトウェアの更新が必要であるか否かを判断し、第２のソフトウェアの更新が必要である場合に、通信インターフェイスを介して第２の更新用ファイルを取得し、取得した第２の更新用ファイルを他の装置に送信するように構成されている。
【０００９】
上記の構成によれば、第１のソフトウェアと第２のソフトウェアとが連携してしる場合でも、更新後の第１のソフトウェアと第２のソフトウェアとの基本機能を動作させることにより、第１のソフトウェアと第２のソフトウェアとは、問題なく動作する。
【００１０】
好ましくは、プロセッサは、第１のソフトウェアの更新用ファイルを、第１のサーバから取得し、第２のソフトウェアの更新用ファイルを、第２のサーバから取得し、更新情報ファイルを、第１のサーバまたは第２のサーバから取得し、最新の第１の更新用ファイルおよび第２の更新用ファイルが有効にされてから、最新の更新情報ファイルは有効にされている。
【００１１】
上記構成によれば、たとえば、第１のソフトウェアの更新用ファイルと第２のソフトウェアの更新用ファイルとが、それぞれ、第１のサーバと第２のサーバとにおいて有効にされてから、更新情報ファイルが有効に（アップロード）されている。すなわち、更新用ファイルの更新が不要な場合、その更新用ファイルはすでに有効である（すでに有効であるが、再度同じファイルをアップロードしてもよい）。更新用ファイルの更新が必要な場合、新しい更新用ファイルがアップロードされる。更新情報ファイルは、第１のソフトウェアの更新用ファイルの最新情報と、第２のソフトウェアの更新用ファイルの最新情報とを保持しているため、いずれかの更新用ファイルにおいて更新があった場合、当該更新情報ファイルの更新も必要となる。
【００１２】
更新機能は、更新情報ファイルから更新の確認を行うため、更新情報ファイルと更新用ファイルとの間に矛盾がない。たとえば、更新情報ファイルがアップロードされてから、第２のソフトウェアの更新用ファイルがアップロードされた場合、第２のソフトウェアの更新用ファイルがアップロードされる前に、更新機能が第２のソフトウェアの更新用ファイルをダウンロードしようとする可能性がある。この場合、ソフトウェアの更新は、適切に行われない。
【００１３】
好ましくは、プロセッサは、第１の更新機能とは異なる第２の更新機能を実現するように構成されている。第１の更新機能は、第１のソフトウェアによって実現され、第１の更新機能には、更新情報ファイルに含まれる内容と同じ内容を含む更新情報が関連付けられる。プロセッサは、第２の更新機能を実行することにより、第１のソフトウェアを更新する。情報処理端末に対して与えられる命令に基づいて、または、第１の更新機能の実行に応じて、プロセッサは、第２の更新機能を実行するように構成されている。第１の更新機能の実行に基づいて第２の更新機能が実行されるとき、プロセッサは、更新情報ファイルと更新情報とに基づいて、第１のソフトウェアを更新するように構成されている。第１のソフトウェアが実行された時点において、プロセッサは、第１のソフトウェアの更新が必要であるか否かを確認するように構成されている。
【００１４】
上記の構成によれば、第２の更新機能が第１のソフトウェアの更新を行うが、第１の更新機能も、第１のソフトウェアの更新の必要性を確認することができる。したがって、情報処理端末とサーバとがアンドロイド（登録商標）・オペレーティング・システム（Android（登録商標）OS）で作動するシステムである場合、第２の更新機能の一例として、アンドロイド（登録商標）（Android（登録商標））更新機能が更新の確認を行なわないように設定されている場合でも、第１のソフトウェアの更新の確認と更新とを行うことができる。すなわち、第１のソフトウェアと第２のソフトウェアとの連携機能の更新が必須の場合でも、第１のソフトウェアの更新の必要性を確認することができるので、情報処理端末のユーザに更新を促すことができる。
【００１５】
好ましくは、更新情報ファイルは、第２のサーバに保存されている。第２のソフトウェアの最新の更新用ファイルが有効にされ、次に、第１のソフトウェアの最新の更新用ファイルが有効にされ、最後に、更新情報ファイルが有効にされる。
【００１６】
上記の構成によれば、（１）最新の第２のソフトウェアの更新用ファイルが有効にされ、（２）次に、最新の第１のソフトウェアの更新用ファイルが有効にされ、（３）最後に、更新情報ファイルが有効にされている。すなわち、更新用ファイルの更新が不要な場合、その更新用ファイルはすでに有効であり、更新用ファイルの更新が必要な場合、新しい更新用ファイルがアップロードされる。また、第１の更新機能は、第１のソフトウェアが立ち上がった時点にも更新の必要性を確認する。
【００１７】
よって、情報処理端末とサーバとが、たとえば、アンドロイド（登録商標）・システムである場合、上記の処理（１）と（２）とが行なわれた時点から、アンドロイド（登録商標）・マーケット（Android（登録商標）  Market）を通して第１のソフトウェアの更新が可能になる。ここで、第１のソフトウェアの更新が行なわれた場合、更新された第１のソフトウェア内部の更新情報が、更新情報ファイルより最新である。このとき、処理（３）は、まだ行なわれていない。ここで、第１のソフトウェアが更新された時点で、第１の更新機能は、第２のソフトウェアの確認を行い、更新情報に基づいて、更新が必要か否かを判断し、更新が必要であると判断すると第２のソフトウェアを更新する。ここで、処理（１）が行なわれていない場合、第２のソフトウェアが正しく更新されない。よって、処理（１）を処理（２）の前に行う必要がある。また、たとえば、第２の更新機能の一例としてのアンドロイド（登録商標）・更新機能が更新の確認をしない設定になっている場合、第１の更新機能は、最新情報を更新情報ファイルから確認することができ、情報処理端末は、そのユーザに更新依頼を通知することができる。この時点で、第１のソフトウェアの更新用ファイルがアンドロイド（登録商標）・マーケットにアップロードされていない場合、第１のソフトウェアを正確に更新できなくなるため、処理（２）は、処理（３）の前に実行される。
【００１８】
他の実施の形態に従うと、情報処理端末がソフトウェアを更新するための方法が提供される。情報処理端末は、通信インターフェイスと、ソフトウェアを更新するための第１の更新機能を実現するためのプロセッサと、プロセッサに接続されて、第１のソフトウェアを格納するためのメモリとを備えている。この方法は、プロセッサが、第１のソフトウェアのための第１の更新用ファイルの最新バージョン情報、および、情報処理端末と通信可能な他の装置に格納されている第２のソフトウェアのための第２の更新用ファイルの最新バーション情報を含む更新情報ファイルを、通信インターフェイスを介して取得するステップと、プロセッサが、第１のソフトウェアのバージョン情報と、更新情報ファイルに含まれる最新バージョン情報とに基づいて、第１のソフトウェアの更新が必要であるか否かを判断するステップと、プロセッサが、第１のソフトウェアの更新が必要である場合に、通信インターフェイスを介して第１の更新用ファイルを取得し、第１の更新用ファイルを用いて第１のソフトウェアを更新するステップと、プロセッサが、第２のソフトウェアのバージョン情報と、更新情報ファイルに含まれる最新バージョン情報とに基づいて、第２のソフトウェアの更新が必要であるか否かを判断するステップと、プロセッサが、第２のソフトウェアの更新が必要である場合に、通信インターフェイスを介して第２の更新用ファイルを取得するステップと、プロセッサが、取得した第２の更新用ファイルを他の装置に送信するステップとを含む。
【００１９】
他の実施の形態に従うと、情報処理端末にソフトウェアを更新させるためのプログラムが提供される。情報処理端末は、通信インターフェイスと、ソフトウェアを更新するための第１の更新機能を実現するためのプロセッサと、プロセッサに接続されて、第１のソフトウェアを格納するためのメモリとを備えている。プログラムは、プロセッサに、第１のソフトウェアのための第１の更新用ファイルの最新バージョン情報、および、情報処理端末と通信可能な他の装置に格納されている第２のソフトウェアのための第２の更新用ファイルの最新バーション情報を含む更新情報ファイルを、通信インターフェイスを介して取得するステップと、第１のソフトウェアのバージョン情報と、更新情報ファイルに含まれる最新バージョン情報とに基づいて、第１のソフトウェアの更新が必要であるか否かを判断するステップと、第１のソフトウェアの更新が必要である場合に、通信インターフェイスを介して第１の更新用ファイルを取得し、第１の更新用ファイルを用いて第１のソフトウェアを更新するステップと、第２のソフトウェアのバージョン情報と、更新情報ファイルに含まれる最新バージョン情報とに基づいて、第２のソフトウェアの更新が必要であるか否かを判断するステップと、第２のソフトウェアの更新が必要である場合に、通信インターフェイスを介して第２の更新用ファイルを取得するステップと、取得した第２の更新用ファイルを他の装置に送信するステップとを実行させる。
【発明の効果】
【００２０】
ある実施の形態において、連携している複数の端末においてソフトウェアが正しく更新される。
【００２１】
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００２２】
【図１】サーバ１１００と通信可能な端末１０００におけるソフトウェアの更新ソフトウェアの更新の一例を表わす図である。
【図２】本実施の形態に係る端末およびサーバの概略構成を表わす図である。
【図３】端末１００がアンドロイド（登録商標）端末である例を表わす図である。
【図４】端末１００，１０１，２００，１０００のハードウェア構成を表わすブロック図である。
【図５】サーバ３００，３０１，４００，１１００として機能するコンピュータシステム５００のハードウェア構成を表わすブロック図である。
【図６】端末１００が実行する一連の処理の一部を表わすフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２４】
まず、図１を参照して、ある局面においてソフトウェアを更新するための方法の一例を説明する。図１は、サーバ１１００と通信可能な端末１０００におけるソフトウェアの更新ソフトウェアの更新の一例を表わす図である。
【００２５】
なお、本実施の形態においては、ソフトウェアとは、ファームウェア、OS（Operating  System）、アプリケーション、プログラム等を含むものとする。
【００２６】
端末１０００は、ソフトウェアの更新を必要とする情報処理端末である。端末１０００は、更新機能１０１０と、更新が行われるソフトウェア１０２０とを含む。更新機能１０１０は、たとえば、ＣＰＵ（Central  Processing  Unit）その他の情報処理装置（以下「プロセッサ」ともいう。）が更新のための命令を実行することにより実現される。
【００２７】
なお、他の局面において、更新機能１０１０を実現するための命令は、ソフトウェア１０２０に含まれる構成であってもよい。
【００２８】
サーバ１１００は、ソフトウェアの更新情報１１１０と、ソフトウェア１０２０の更新用ファイル１１２０とを含む。サーバ１１００は、メモリやプロセッサその他の周知の構成を有するコンピュータ装置によって実現される。たとえば、更新情報１１１０は、当該メモリに格納されている。更新情報１１１０は、ソフトウェアのバーション情報等を含む。なお、他の局面において、更新情報１１１０は、たとえば、ファイル名そのものであってもよい。
【００２９】
更新は、図１に示されるように、以下の手順で行なわれる。まず、ステップＳ１において、新しい更新用ファイル１１２０および更新情報１１１０が、サーバにアップロードされる。このアップロードは、たとえば、当該サーバの管理者によって行なわれ得る。
【００３０】
ステップＳ２において、端末１０００は、定期的に、サーバ１１００から、更新情報１１１０を取得する。取得方法として、たとえば、端末１０００がサーバ１１００にアクセスして、更新情報１１１０を取りに行く方法や、逆に、サーバ１１００が、端末１０００にアクセスして、更新情報１１１０を端末１０００に送信する方法が考えられる。
【００３１】
ステップＳ３において、端末１０００は、当該端末１０００にインストールされているソフトウェアのバーション情報を取得する。
【００３２】
ステップＳ４において、端末１０００は、各バージョン情報を比較することにより、更新の必要性を確認する。たとえば、端末１０００は、ステップＳ２において更新情報１１１０から取得したバーション情報と、ステップＳ３において取得したバーション情報とが一致した場合には、端末１０００は、当該更新が不要であると判断する。一方、ステップＳ２において取得されたバーション情報がステップＳ３において取得された情報より新しい場合には、端末１０００は、当該更新が必要であると判断する。なお、バージョン情報が新しいか否かの確認は、たとえば、バーションの番号の大小に基づいて、または、バーション情報が時刻情報を含む場合にはその時刻情報の新旧に基づいて、行なわれる。また、他の局面において、更新の必要性の判断は、バーションが新しいか否かのみに限られず、たとえば、バーションが他のバージョンとは異なる場合にも、端末１０００は、当該更新が必要であると判断してもよい。
【００３３】
ステップＳ４において、端末１０００は、更新が必要であると判断すると、ステップＳ５において、端末１０００は、サーバ１１００から、ソフトウェア更新用ファイルをダウンロードする。
【００３４】
ステップＳ６において、端末１０００は、ステップＳ５においてダウンロードされたファイルを用いて、端末１０００のメモリに保存されているソフトウェア１０２０を更新する。
【００３５】
なお、ある局面において、ステップＳ４とステップＳ５における更新の態様は、端末１０００の仕組みに依存する。更新の対象がアプリケーションプログラムの場合、端末１０００は、ソフトウェア更新用ファイル（すなわち、当該アプリケーションプログラムの更新用データ）を適切な場所（たとえば、更新のためにメモリに確保された領域）にダウンロードして、再びインストールすることになる。別の局面において、端末１０００がオペレーティングシステムを更新する場合、通常、ファイルシステムは、複数のパーティションに分割される。起動時に、ブートパーティションの機能が、オペレーティングシステムが格納されているパーティションから当該オペレーティングシステムを起動する。そして、オペレーティングシステムの更新の際、端末１０００は、新しいオペレーティングシステムを古いオペレーティングシステムが格納されているパーティションとは別のパーティションに保存する。端末１０００は、オペレーティングシステムを再起動する際、新しいオペレーティングシステムが保存されているパーティションにアクセスして、当該新しいオペレーティングシステムを起動する。
【００３６】
次に、図２を参照して、本発明の実施の形態に係る更新システムについてさらに説明する。図２は、本実施の形態に係る端末およびサーバの概略構成を表わす図である。
【００３７】
図２に示されるように、本実施の形態に係る更新システムは、端末１００と、端末２００と、サーバ３００と、サーバ４００とを備える。端末１００および端末２００が更新を必要とする。端末１００および端末２００は、たとえば、タブレット端末、タブレット型コンピュータ、スマートフォンその他の通信機能を有する情報処理装置である。通信機能は、無線通信および有線通信のいずれであってもよい。また、通信の態様は、特に限られない。
【００３８】
端末１００は、更新機能１１０とソフトウェア１２０とを含む。更新機能１１０は、端末１００が有するプロセッサが当該更新機能を実現するためのプログラムを実行することにより実現される。ソフトウェア１２０は、メモリ（図示しない）に格納されている。ソフトウェア１２０は、オペレーティングシステム、アプリケーションプログラムのいずれであってもよい。
【００３９】
端末２００は、ソフトウェア２２０を含む。ソフトウェア２２０は、メモリ（図示しない）に格納されている。ソフトウェア２２０は、オペレーティングシステム、アプリケーションプログラムのいずれであってもよい。
【００４０】
なお、他の局面において、端末１００に含まれる更新機能１１０は、ソフトウェア１２０に含まれてもよい。
【００４１】
サーバ３００は、更新情報ファイル３１０と、ソフトウェア１２０の更新用ファイル３２０とを保持する。サーバ３００は、プロセッサ、メモリその他の周知の構成を有するコンピュータ装置によって実現される。更新情報ファイル３１０と更新用ファイル３２０とは、ハードディスク、フラッシュメモリその他の記憶装置（図示しない）に格納されている。更新情報ファイル３１０は、ソフトウェア１２０の更新用ファイル３２０のバージョン情報と、ソフトウェア２２０の更新用ファイル４２０のバージョン情報とを含む。
【００４２】
サーバ４００は、更新情報ファイル４１０と、更新用ファイル４２０とを保持している。サーバ４００も、プロセッサ、メモリその他の周知の構成を有するコンピュータ装置によって実現される。更新情報ファイル４１０は、更新情報ファイル３１０と同じである。すなわち、更新情報ファイル４１０は、ソフトウェア１２０の更新用ファイル３２０のバージョン情報と、ソフトウェア２２０の更新用ファイル４２０のバージョン情報とを含む。
【００４３】
なお、サーバ３００およびサーバ４００が、常に、更新情報ファイル３１０および更新情報ファイル４１０をそれぞれ保持している必要はなく、少なくともいずれかが当該更新情報ファイルを有していればよい。
【００４４】
ある局面において、端末２００は、たとえば、温度や電力を測定するために常に動作している機器である。端末１００は、文字、数値または画像を表示するための機能を有する表示装置である。端末１００は、端末２００との間で通信を確立することにより、そのユーザが希望する時に端末２００によって測定された結果を受信し、端末１００のディスプレイ（図示しない）に当該結果を表示することができる。すなわち、端末１００と端末２００とは、連携する。この連携は、たとえば、端末１００と端末２００とが通信ネットワークを介して互いにデータや情報を交換することである。この場合、ある局面において、端末１００と端末２００とは、データや情報を交換するための形式を、予め知っている。すなわち、交換の形式を示すデータは、端末１００および端末２００に保持されている。あるいは、他の局面において、端末１００および端末２００は、データや情報を交換する前に、交換の形式を示すデータを通信することにより、当該形式を知ることができる。
【００４５】
ある局面において、ソフトウェア１２０の更新と、ソフトウェア２２０の更新とは、更新機能１１０によって実現される。すなわち、端末２００に保存されているソフトウェア２２０の更新は、端末１００によって行なわれることになる。
【００４６】
［ソフトウェアの更新］
ある局面におけるソフトウェアの更新の手順は、たとえば、以下のとおりである。
【００４７】
ステップ（１）  まず、ソフトウェア１２０の更新用ファイル３２０とソフトウェア２２０の更新用ファイル４２０とが、サーバ３００とサーバ４００にそれぞれアップロードされる。各更新用ファイル３２０，４２０のアップロードの順は、特に限られず、サーバ３００またはサーバ４００の管理者が任意に決定し得る。なお、アップロードされるのは、新しいファイルのみであってもよい。たとえば、ソフトウェア１２０の更新用ファイル３２０のみが新しくなった場合、管理者は、更新用ファイル３２０のみを、サーバ３００にアップロードすればよい。
【００４８】
ステップ（２）  ソフトウェア１２０の更新用ファイル３２０のアップロードと、ソフトウェア２２０の更新用ファイル４２０のアップロードとが確認されると、管理者は、各更新用ファイル３２０，４２０の最新情報を含んだ更新情報ファイル３１０または更新情報ファイル４１０を、サーバ３００またはサーバ４００のいずれかにアップロードする。なお、更新情報ファイル３１０，４１０がアップロードされる際、サーバ３００，４００上の古い更新情報ファイル３１０，４１０は、上書きされる。
【００４９】
ステップ（３）  端末１００は、定期的に、サーバ３００から、更新情報ファイル３１０を、または、サーバ４００から、更新情報ファイル４１０を取得する。取得のパターンとして、端末１００がサーバ３００に更新情報ファイル３１０を取りに行く態様、端末１００がサーバ４００に更新情報ファイル４１０を取りに行く態様、または、サーバ３００およびサーバ４００のいずれかのサーバが、当該サーバに保存されている更新情報ファイル３１０または４１０を端末１００に送る態様が考えられる。
【００５０】
ステップ（４Ａ）  端末１００は、端末１００にインストールされているソフトウェア１２０のバーション情報を、更新情報ファイル３１０または更新情報ファイル４１０から取得する。
【００５１】
ステップ（４Ｂ）  端末１００は、端末２００にインストールされているソフトウェア２２０のバーション情報を、更新情報ファイル３１０または更新情報ファイル４１０から取得する。
【００５２】
ステップ（５Ａ）  端末１００は、ソフトウェア１２０の更新の必要性を確認する。たとえば、これは、ステップ（３）において更新情報ファイル３１０または更新情報ファイル４１０から取得されたバーション情報と、ステップ（４Ａ）で取得されたバーション情報とが一致したら、端末１００は、ソフトウェア１２０の更新が不要であると判断する。一方、ステップ（３）で取得されたバーション情報がステップ（４Ａ）で取得された情報より新しい場合、端末１００は、当該更新が必要であると判断する。
【００５３】
なお、バージョン情報が新しいか否かの確認は、たとえば、バーションの番号の大小に基づいて、または、バーション情報が時刻情報を含んでいる場合には当該時刻情報の新旧に基づいて、行なわれる。また、更新の判断は、この態様に限られない。たとえば、バーションが新しいか否かではなく、各バーションが互いに異なる場合も、端末１００は、ソフトウェアの更新が必要であると判断してもよい。
【００５４】
ステップ（５Ｂ）  端末１００は、ソフトウェア２２０の更新の必要性を確認する。確認の態様は、ステップ（５Ａ）における態様と同じである。
【００５５】
ステップ（６Ａ）  もし、ステップ（５Ａ）において、端末１００が、ソフトウェア１２０の更新が必要であると判断すると、端末１００は、サーバ３００からソフトウェア１２０の更新用ファイル３２０をダウンロードする。なお、更新情報ファイル３１０は、ダウンロード先のサーバを識別する名称と、更新用ファイルの名称とを、例えばＵＲＬ（Uniform  Resource  Locator）を用いて指定してもよい。
【００５６】
ステップ（６Ｂ）  もし、ステップ５Ｂにおいて、端末１００が、ソフトウェア２２０の更新は必要であると判断した場合、端末１００は、サーバ４００から、ソフトウェア２２０の更新用ファイル４２０をダウンロードして、ダウンロードした更新用ファイル４２０を端末２００にアップロードする。このため、端末２００は、更新用ファイル４２０の受信を受け入れる機能があるとする。なお、更新情報ファイル４１０は、ダウンロード先のサーバとファイル名とを、例えばＵＲＬで指定してもよい。
【００５７】
ステップ（７Ａ）  端末１００は、ステップ（６Ａ）においてダウンロードされたファイルを用いて、ソフトウェア１２０の更新（たとえば、インストール等）を行なう。
【００５８】
ステップ（７Ｂ）  端末１００は、ステップ（６Ｂ）において、サーバ４００からダウンロードされた更新用ファイル４２０を端末２００にアップロードする。この後、端末２００は、更新用ファイルを受け終わったら、たとえば、自動的に更新処理（インストール等）を開始することができる。または、アップロード後、端末１００は、端末２００に更新指示を送り、端末２００は、更新指示を受けると、ソフトウェア２２０の更新処理を行なうことができる。
【００５９】
上述のように、ソフトウェア１２０の更新は、ステップ４Ａ，５Ａ，６Ａ，７Ａの順に従う。同様に、ソフトウェア２２０の更新は、ステップ４Ｂ，５Ｂ，６Ｂ，７Ｂの順に従う。なお、同一のステップ番号におけるＡとＢが行なわれる順序は、特に限られない。ステップ４ｘ，５ｘ，６ｘ，７ｘ（ｘは、ＡまたはＢ）の順に従っていれば、ソフトウェアの更新は、たとえば、ステップ４Ｂ，５Ｂ，６Ｂ，７Ｂ，４Ａ，５Ａ，６Ａ，７Ａの順であってもよい。
【００６０】
なお、ソフトウェア１２０およびソフトウェア２２０の両方が、毎回更新されると限らない。たとえば、ソフトウェア１２０とソフトウェア２２０とが全体として連携しているけれども、ソフトウェア１２０においてソフトウェア２２０が連携していない部分が更新された場合、ソフトウェア１２０更新用ファイル（３２０）のみからソフトウェア１２０（１２０）のみを更新すればよい。この場合、ステップ（５Ｂ）におけるソフトウェア２２０の更新は、不要となる。
【００６１】
なお、更新機能１１０は、ソフトウェア１２０とソフトウェア２２０の基本機能が全ての更新が完了するまでに開始しないように、当該基本機能の実行を管理する。
【００６２】
更新機能１１０がソフトウェア１２０に含まれ、さらに、ソフトウェア１２０の更新がソフトウェア２２０の前に行われる場合、端末１００は、更新の確認を、ソフトウェア１２０が実行される時にも行なうことが望ましい。その理由は、ソフトウェア１２０は、更新の際に再インストールされ、再インストール時に、更新機能１１０の動作が停止されてしまうためである。すなわち、ソフトウェア１２０が更新されて再起動されたときに、再度、更新の確認をする際に、ソフトウェア２２０の更新が行なわれることになる。
【００６３】
なお、端末２００に相当する端末（すなわち、端末１００と通信可能な端末）は、複数であってもよい。この場合、各端末のためのソフトウェア更新用ファイルが、それぞれ必要になり、更新情報ファイル４１０にも全てのソフトウェア更新用ファイルの情報が必要となる。更新機能も全ての端末に対応する必要があるが、これらの更新は、繰り返し処理になる。また、それぞれのソフトウェア更新用ファイルは、同一のサーバ、または、別個のサーバのいずれにあってもよい。
【００６４】
なお、サーバ３００とサーバ４００とは、論理的に別個のサーバであり、物理的に同一のサーバ（すなわち、同一のコンピュータ装置）であってもよい。たとえば、ある局面において、ある企業が、物理的なサーバを運営し、他の企業は、そのサーバを借りて経営を行なう場合がある。サーバ３００が、ある企業によって借りられるサーバであり、サーバ４００が別の企業によって借りられるサーバである場合、サーバ３００とサーバ４００とは、論理的に別であり、管理も別となる。しかしながら、サーバ３００およびサーバ４００のいずれも、物理的には、サーバを運営している企業に設置される同一のコンピュータ装置となることがある。
【００６５】
［具体例］
次に、図３を参照して、本発明の実施の形態のより詳細な一例について説明する。図３は、端末１００がアンドロイド（登録商標）（Android（登録商標））端末である例を表わす図である。なお、図２に示される構成と同じ構成の説明は繰り返さない。以下では、図２の構成との差異の構成を説明する。
【００６６】
図３を参照して、端末１０１は、いわゆるアンドロイド（登録商標）端末である。アンドロイド（登録商標）端末は、Android（登録商標）  OS（アンドロイド（登録商標）・オペレーティング・システム）を使った端末である。アンドロイド（登録商標）端末では、ソフトウェアは、アプリ（アプリケーション）と読ばれている。また、更新用のファイルは、apkファイルの形式である。
【００６７】
アンドロイド（登録商標）端末のアプリの更新は、Android（登録商標）  Market（アンドロイド（登録商標）・マーケット）を使って行なわれる。アンドロイド（登録商標）・マーケットは、アンドロイド（登録商標）端末側のアンドロイド（登録商標）・マーケット・アプリと、サーバ側のアンドロイド（登録商標）・マーケット・サーバとによって構成される。図３の例では、アンドロイド（登録商標）・マーケット・アプリは、更新機能１３０であり、サーバ３０１は、アンドロイド（登録商標）・マーケット・サーバとして機能している。
【００６８】
アンドロイド（登録商標）マーケットの更新として、端末１０１は、端末１０１にインストールされているソフトウェア１２１のバーションとサーバ３０１にあるソフトウェア更新用ファイルのバーションとを確認する。端末１０１は、更新が必要と判断すると、モニタの画面上のステータスバーに、更新が必要である旨の通知を表示する。ユーザは、その通知を見ると、ユーザ自身の意思で（すなわち、端末１０１を操作することにより）、アンドロイド（登録商標）・マーケット・アプリを起動して、ソフトウェア１２１を更新する。
【００６９】
ここで、ユーザは、さらに、たとえば、以下のような動作を選択できる。
（１）端末１０１に更新の確認をさせない。
【００７０】
（２）ソフトウェアの更新が必要な場合、アンドロイド（登録商標）・マーケット・アプリを立ち上げずに、端末１０１に自動的に更新させる。
【００７１】
（３）ソフトウェアの更新が必要な場合であっても、更新を行なわない。
ところで、アンドロイド（登録商標）・マーケット・サーバには、アンドロイド（登録商標）・アプリ以外のソフトウェアを置くことができない。
【００７２】
また、アンドロイド（登録商標）・マーケット・サーバに新しい更新用ファイル３２１がアップロードされると、端末１０１は、更新用ファイル３２１を用いて、ソフトウェア１２１を更新することが可能になる。
【００７３】
ある局面において、更新機能１１０は、ソフトウェア１２１に含まれる。さらに、ソフトウェア１２１には、更新情報１１１が追加される。更新情報１１１は、更新情報ファイル４１０に含まれる情報と同じ情報を含む。しかしながら、更新情報１１１および更新情報ファイル４１０の両方が最新であると限らない。たとえば、ソフトウェア１２１が更新されていない場合、ソフトウェア１２１の更新情報１１１は、更新情報ファイル４１０よりも古い状態になる。また、ソフトウェア１２１がアンドロイド（登録商標）・マーケットから更新され、更新情報ファイル４１０がまだ更新されていない場合がある。この場合、更新情報１１１は、更新情報ファイル４１０より新しい状態になる。
【００７４】
図３に示される場合の更新方法は、図２に示される場合の更新方法に対して、サーバ３０１，４００に情報をアップロードする順序と、ソフトウェア１２１を更新する方法とが異なる。
【００７５】
ある局面において、サーバ３０１，４００に情報をアップロードする順序は、以下のとおりである。
【００７６】
（１）まず、新しい更新用ファイル４２０がある場合に、更新用ファイル４２０をサーバ４００にアップロードする。
【００７７】
（２）次に、新しい更新用ファイル３２１がある場合に、更新用ファイル３２１をサーバ３００にアップロードする。
【００７８】
（３）最後に、更新用ファイル４２０または更新用ファイル３２１が新しくなった場合、この情報が更新された更新情報ファイル４１０は、サーバ４００にアップロードされる。ソフトウェアの更新をこの順番に行なうことにより、ソフトウェア１２１またはソフトウェア２２０の更新を正しく行うことができる。
【００７９】
上述のように、ソフトウェア１２１の更新の確認は、通常は、アンドロイド（登録商標）・マーケットの機能から行われるが、ユーザは更新の確認をしない選択もできる。その代わりに、更新機能１１０は、ソフトウェア１２１の更新の確認をすることができる。更新が必要であれば、更新機能１１０は、更新機能１３０を用いてソフトウェア１２１を更新することを、端末１０１のユーザに促してもよい。たとえば、ソフトウェア１２１とソフトウェア２２０との連携機能の更新が必須の場合でも、端末１０１は、更新を確認することができ、ユーザに更新を促すことができる。
【００８０】
［ハードウェア構成］
図４を参照して、本実施の形態に係る端末の具体的構成について説明する。図４は、端末１００，１０１，２００，１０００のハードウェア構成を表わすブロック図である。
【００８１】
本実施の形態に係る端末は、一例としてアンドロイド（登録商標）端末が示されているが、これに限られない。当該端末は、サーバとの通信機能と、当該端末と連携している他の端末との通信機能と、ソフトウェアの更新機能を有する端末であればよい。
【００８２】
端末１００，１０１，２００，１０００は、通信装置１３と、チューナ１２と、アンテナ１４，１５と、ＣＰＵ（Central  Processing  Unit）１０と、音声信号処理回路１１と、測位処理部２５と、測位信号受信フロントエンド部２４と、ＧＰＳ（Global  Positioning  System）アンテナ２３と、カメラ１７と、スピーカ２７と、フラッシュメモリ１８と、ＲＡＭ（Random  Access  Memory）１９と、ＲＯＭ（Read  Only  Memory）２０と、モニタ２８と、バックライト２９と、マイク２６と、ＬＥＤ（Light  Emitting  Diode）３０と、メモリカード駆動装置２１と、データ通信Ｉ／Ｆ（Interface）３１と、バイブレータ３２と、センサ６１０とを備える。メモリカード駆動装置２１には、メモリカード２２が装着され得る。
【００８３】
アンテナ１４は、ワンセグ放送その他のテレビジョン放送信号を受信する。チューナ１２は、ＣＰＵ１０の命令に従って番組を選局し、映像信号および音声信号をＣＰＵ１０に伝送する。他の局面において、アンテナ１４は、ラジオ放送を受信してもよい。アンテナ１５によって受信された信号は、通信装置１３によってフロントエンド処理が行なわれた後、処理後の信号は、ＣＰＵ１０に送られる。
【００８４】
センサ６１０は、端末１００，１０１，２００，１０００の姿勢を検知する。ある局面において、センサ６１０は、加速度センサとして実現される。センサ６１０は、端末１００，１０１，２００，１０００が水平方向に対して傾いている角度を検出する。検出結果は、ＣＰＵ１０に入力される。
【００８５】
ＣＰＵ１０は、端末１００，１０１，２００，１０００に対して与えられる命令に基づいて端末１００，１０１，２００，１０００の動作を制御するための処理を実行する。ＣＰＵ１０は、通信装置１３から送られた信号に基づいて予め規定された処理を実行し、処理後の信号を音声信号処理回路１１に送出する。音声信号処理回路１１は、その信号に対して予め規定された信号処理を実行し、処理後の信号をスピーカ２７に送出する。スピーカ２７は、その信号に基づいて音声を出力する。
【００８６】
スイッチ１６は、端末１００，１０１，２００，１０００に対する操作を受け付ける。スイッチ１６は、物理的な操作キー、または、タッチパネル等で実現されるソフトウェアキーのいずれによっても構成される。
【００８７】
マイク２６は、端末１００，１０１，２００，１０００に対する発話を受け付けて、発話された音声に対応する信号を音声信号処理回路１１に対して送出する。音声信号処理回路１１は、その信号に基づいて通話のために予め規定された処理を実行し、処理後の信号をＣＰＵ１０に対して送出する。ＣＰＵ１０は、その信号を送信用のデータに変換し、変換後のデータを通信装置１３に対して送出する。通信装置１３は、そのデータを用いて送信用の信号を生成し、アンテナ１５に向けてその信号を送出する。
【００８８】
フラッシュメモリ１８は、ＣＰＵ１０から送られるデータを格納する。また、ＣＰＵ１０は、フラッシュメモリ１８に格納されているデータを読み出し、そのデータを用いて予め規定された処理を実行する。
【００８９】
ＲＡＭ１９は、スイッチ１６に対して行なわれた操作に基づいてＣＰＵ１０によって生成されるデータを一時的に保持する。ＲＯＭ２０は、端末１００，１０１，２００，１０００に予め定められた動作を実行させるためのプログラムあるいはデータを格納している。ＣＰＵ１０は、ＲＯＭ２０から当該プログラムまたはデータを読み出し、端末１００，１０１，２００，１０００の動作を制御する。
【００９０】
メモリカード駆動装置２１は、メモリカード２２に格納されているデータを読み出し、ＣＰＵ１０に送出する。逆にメモリカード駆動装置２１は、ＣＰＵ１０によって出力されるデータを、メモリカード２２の空き領域に書き込む。
【００９１】
音声信号処理回路１１は、上述のような通話のための信号処理を実行する。なお、図１に示される例では、ＣＰＵ１０と音声信号処理回路１１とが別個の構成として示されているが、他の局面において、ＣＰＵ１０と音声信号処理回路１１とが一体として構成されていてもよい。
【００９２】
モニタ２８は、ＣＰＵ１０から取得されるデータに基づいて、当該データによって規定される画像を表示する。たとえば、フラッシュメモリ１８が格納している静止画像、動画像、文書、音楽ファイルの属性（当該ファイルの名前、演奏者、演奏時間など）を表示する。ある局面において、モニタ２８は、二次元の画像と三次元の画像とを表示することができる。三次元の画像の表示は、たとえば、視差バリアを形成することによって実現されるが、三次元の表示のために他の方式が用いられてもよい。また、他の局面において、モニタ２８は、タッチパネル式のディスプレイであってもよい。この場合、タッチパネルの機構は特に限られない。なお、画像を表示するための手段の態様は、モニタ２８に限られず、たとえば、有機ＥＬ（Electro  Luminescence）パネルを用いたモニタであってもよい。
【００９３】
バックライト２９は、発光することにより、モニタ２８に対して光を供給する。ある局面において、バックライト２９は、ＣＰＵ１０からの制御信号に基づいて光量を増加させ、または減少させることができる。
【００９４】
ＬＥＤ３０は、ＣＰＵ１０からの信号に基づいて、予め定められた発光動作を実現する。たとえば、ＬＥＤ３０が複数の色を表示可能な場合には、ＬＥＤ３０は、ＣＰＵ１０から出力される信号に含まれるデータに関連付けられている色で発光する。発光の態様（間隔、発光する色の数、点滅パターンなど）は特に限られない。
【００９５】
データ通信Ｉ／Ｆ３１は、データ通信用のケーブルの装着を受け付ける。データ通信Ｉ／Ｆ３１は、ＣＰＵ１０から出力される信号を当該ケーブルに対して送出する。あるいは、データ通信Ｉ／Ｆ３１は、当該ケーブルを介して受信されるデータを、ＣＰＵ１０に対して送出する。
【００９６】
バイブレータ３２は、ＣＰＵ１０から出力される命令に基づいて、フラッシュメモリ１８において設定されている周波数で発振する。
【００９７】
ＧＰＳアンテナ２３は、ＧＰＳ衛星から発信される信号を受信し、受信した信号を測位信号受信フロントエンド部２４に送出する。測位信号受信フロントエンド部２４は、少なくとも３つ（望ましくは４つ以上）のＧＳＰ衛星から受信した各信号に基づいてパターンマッチングを行ない、各信号に含まれるコードパターンと端末１００，１０１，２００，１０００が保持するコードパターンとが一致した場合に、その信号を測位処理部２５に送出する。
【００９８】
測位処理部２５は、その信号を用いて、測位処理を実行し、当該信号を受信した端末１００，１０１，２００，１０００の位置を算出する。ＣＰＵ１０は、その算出結果をモニタ２８に表示する。ある局面において、モニタ２８は、測位処理部２５が算出した端末１００，１０１，２００，１０００の位置情報（たとえば緯度、経度、高度など）を地図上に重ねて表示してもよい。他の局面において、モニタ２８は、カメラ１７によって撮影された場所の画像と、当該場所の位置情報とを重ねて表示してもよい。
【００９９】
［具体的な動作］
ある局面において、ＣＰＵ１０は、ソフトウェア１２０のための更新用ファイル３２０の最新バージョン情報、および、端末１００と通信可能な他の端末２００に格納されているソフトウェア２２０のための更新用ファイル４２０の最新バーション情報を含む更新情報ファイル４１０を、データ通信Ｉ／Ｆ３１を介して、サーバ４００から取得する。
【０１００】
ＣＰＵ１０は、フラッシュメモリ１８から、ソフトウェア１２０のバージョン情報を取得する。ＣＰＵ１０は、取得したバージョン情報と、更新情報ファイル３１０に含まれる最新バージョン情報とに基づいて、ソフトウェア１２０の更新が必要であるか否かを判断する。ＣＰＵ１０は、ソフトウェア１２０の更新が必要であると判断すると、データ通信Ｉ／Ｆ３１を介して、サーバ３００から更新用ファイル３２０を取得し、更新用ファイル３２０を用いてソフトウェア１２０を更新する。
【０１０１】
ＣＰＵ１０は、さらに、ソフトウェア２２０のバージョン情報と、更新情報ファイル４１０に含まれる最新バージョン情報とに基づいて、ソフトウェア２２０の更新が必要であるか否かを判断する。ＣＰＵ１０は、ソフトウェア２２０の更新が必要である場合に、データ通信Ｉ／Ｆ３１を介して、サーバ４００から、更新用ファイル４２０を取得する。ＣＰＵ１０は、取得した更新用ファイル４２０を、データ通信Ｉ／Ｆ３１を介して端末２００に送信する。端末２００が、更新指示を必要とする構成である場合、ＣＰＵ１０は、ソフトウェア２２０を更新する指示を、端末２００に与える。
【０１０２】
好ましくは、ＣＰＵ１０は、ソフトウェア１２０の更新用ファイル３２０を、サーバから３００から取得する。ＣＰＵ１０は、ソフトウェア２２０の更新用ファイルを、サーバ４００から取得する。ＣＰＵ１０は、更新情報ファイル３１０をサーバ３００から取得し、または、更新情報ファイル４１０をサーバ４００から取得する。最新の更新用ファイル３２０が有効にされてから、最新の更新情報ファイル３１０は有効にされる。更新情報ファイル４１０が有効にされてから、更新用ファイル４２０は有効にされる。
【０１０３】
好ましくは、ＣＰＵ１０は、第１の更新機能とは異なる第２の更新機能を実現するように構成されている。第１の更新機能は、ソフトウェア１２０によって実現される。第１の更新機能には、更新情報ファイル４１０に含まれる内容と同じ内容を含む更新情報１１１が関連付けられている。
【０１０４】
ＣＰＵ１０は、第２の更新機能を実行することにより、ソフトウェア１２０を更新する。ＣＰＵ１０は、端末１０１に対して与えられる命令に基づいて、または、第１の更新機能の実行に応じて、第２の更新機能を実行するように構成されている。第１の更新機能の実行に基づいて第２の更新機能が実行されるとき、ＣＰＵ１０は、更新情報ファイル４１０と更新情報１１１とに基づいて、ソフトウェア１２０を更新する。
【０１０５】
ソフトウェア１２０が実行された時点において、ＣＰＵ１０は、ソフトウェア１２０の更新が必要であるか否かを確認する。
【０１０６】
好ましくは、更新情報ファイル４１０は、第２のサーバに保存されている。第２のソフトウェアの最新の更新用ファイル４２０が有効にされ、次に、ソフトウェア１２０の最新の更新用ファイル３２０が有効にされ、最後に、更新情報ファイル４１０が有効にされる。
【０１０７】
［サーバのハードウェア構成］
次に、図５を参照して、本実施の形態に係るサーバ３００，３０１，４００，１１００の具体的構成について説明する。図５は、サーバ３００，３０１，４００，１１００として機能するコンピュータシステム５００のハードウェア構成を表わすブロック図である。
【０１０８】
コンピュータシステム５００は、主たる構成要素として、プログラムを実行するＣＰＵ１と、コンピュータシステム５００の使用者による指示の入力を受けるマウス２およびキーボード３と、ＣＰＵ１によるプログラムの実行により生成されたデータ、又はマウス２若しくはキーボード３を介して入力されたデータを揮発的に格納するＲＡＭ４と、データを不揮発的に格納するハードディスク５と、光ディスク駆動装置６と、モニタ８と、通信ＩＦ（Interface）９とを備える。各構成要素は、相互にバスによって接続されている。光ディスク駆動装置６には、ＣＤ−ＲＯＭ９その他の光ディスクが装着される。
【０１０９】
コンピュータシステム５００における処理は、各ハードウェアおよびＣＰＵ１により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク５に予め格納されている場合がある。また、ソフトウェアは、ＣＤ−ＲＯＭ９その他のコンピュータ読み取り可能なデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置６その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信ＩＦ７を介してダウンロードされた後、ハードディスク５に一旦格納される。そのソフトウェアは、ＣＰＵ１によってハードディスク５から読み出され、ＲＡＭ４に実行可能なプログラムの形式で格納される。ＣＰＵ１は、そのプログラムを実行する。
【０１１０】
図５に示されるコンピュータシステム５００を構成する各構成要素は、一般的なものである。コンピュータシステム５００の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【０１１１】
なお、データ記録媒体としては、ＣＤ−ＲＯＭ、ＦＤ（Flexible  Disk）、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク（ＭＯ（Magnetic  Optical  Disc）／ＭＤ（Mini  Disc）／ＤＶＤ（Digital  Versatile  Disc））、ＩＣ（Integrated  Circuit）カード（メモリカードを含む）、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Electronically  Programmable  Read-Only  Memory）、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）、フラッシュＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
【０１１２】
ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含み得る。
【０１１３】
［制御構造］
図４および図６を参照して、本実施の形態に係る端末１００の制御構造について説明する。図６は、端末１００が実行する一連の処理の一部を表わすフローチャートである。
【０１１４】
ステップＳ６１０にて、端末１００のＣＰＵ１０は、ソフトウェア１２０の更新用ファイル３２０の最新バージョン情報、および、ソフトウェア２２０の更新用ファイル４２０の最新バーション情報を含む更新情報ファイル３１０を、サーバ３００から取得する。あるいは、他の局面において、ＣＰＵ１０は、更新情報ファイル３１０に含まれる情報と同じ情報を含む更新情報ファイル４１０を、サーバ４００から取得する。
【０１１５】
ステップＳ６１５にて、ＣＰＵ１０は、ソフトウェア１２０のバーション情報を、フラッシュメモリ１８に既に格納されているソフトウェア１２０から取得する。
【０１１６】
ステップＳ６２０にて、ＣＰＵ１０は、取得したバージョン情報と、更新情報ファイルに含まれる最新バージョン情報とを比較する。
【０１１７】
ステップＳ６２５にて、ＣＰＵ１０は、バージョン情報の比較の結果に基づいて、ソフトウェア１２０の更新が必要であるか否かを判断する。ＣＰＵ１０は、更新が必要であると判断すると（ステップＳ６２５にてＹＥＳ）、制御をステップＳ６３０に切り替える。創でない場合には（ステップＳ６２５にてＮＯ）、ＣＰＵ１０は、制御をステップＳ６３５に切り替える。
【０１１８】
ステップＳ６３０にて、ＣＰＵ１０は、ソフトウェア１２０の更新用ファイル３２０を用いて、ソフトウェア１２０を更新する。
【０１１９】
ステップＳ６３５にて、ＣＰＵ１０は、端末２００において用いられているソフトウェア２２０のバージョン情報と、更新用ファイル３２０（または更新用ファイル４２０）に含まれる最新バージョン情報とを比較する。
【０１２０】
ステップＳ６４０にて、ＣＰＵ１０は、バージョン情報の比較の結果に基づいて、ソフトウェア２２０の更新が必要であるか否かを判断する。ＣＰＵ１０は、ソフトウェア２２０の更新が必要であると判断すると（ステップＳ６４０にてＹＥＳ）、制御をステップＳ６４５に切り替える。そうでない場合には（ステップＳ６４０にてＮＯ）、ＣＰＵ１０は、処理を終了する。
【０１２１】
ステップＳ６４５にて、ＣＰＵ１０は、ソフトウェア２２０の更新用ファイル４２０を、サーバ４００から取得する。
【０１２２】
ステップＳ６５０にて、ＣＰＵ１０は、ソフトウェア２２０の更新用ファイル４２０を端末２００に転送する。
【０１２３】
端末２００が更新指示を必要とする場合、ステップＳ６５５にて、ＣＰＵ１０は、ソフトウェア２２０を更新する指示を、端末２００に送信する。
【０１２４】
以上のようにして、本実施の形態によると、連携している複数の端末１００，２００においてソフトウェアが正しく更新される。
【０１２５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２６】
１，１０  ＣＰＵ、２  マウス、３  キーボード、４，１９  ＲＡＭ、５  ハードディスク、６  光ディスク駆動装置、８，２８  モニタ、９，２０  ＲＯＭ、１１  音声信号処理回路、１２  チューナ、１３  通信装置、１４，１５，２３  アンテナ、１６  スイッチ、１７  カメラ、１８  フラッシュメモリ、２１  メモリカード駆動装置、２２  メモリカード、２４  測位信号受信フロントエンド部、２５  測位処理部、２６  マイク、２７  スピーカ、２９  バックライト、３２  バイブレータ、１００，１０１，２００，１０００  端末、３００，４００  サーバ、５００  コンピュータシステム。
【要約】
【課題】連携している端末間においてソフトウェアを更新する。
【解決手段】端末１００は、ソフトウェア１２０と、更新機能１１０とを含む。更新情報ファイル３１０または更新情報ファイル４１０から取得されたバーション情報と、バーション情報とが一致したら、端末１００は、ソフトウェア１２０の更新が不要であると判断する。端末１００は、サーバ３００からソフトウェア１２０の更新用ファイル３２０をダウンロードする。端末１００が、ソフトウェア２２０の更新は必要であると判断すると、端末１００は、サーバ４００から、ソフトウェア２２０の更新用ファイル４２０をダウンロードして、ダウンロードした更新用ファイル４２０を端末２００にアップロードする。端末１００は、端末２００に更新指示を送る。端末２００は、更新指示を受けると、ソフトウェア２２０の更新（インストール等）を行う。
【選択図】図２【図１】
0005192070.tif 000002
【図２】
0005192070.tif 000003
【図３】
0005192070.tif 000004
【図４】
0005192070.tif 000005
【図５】
0005192070.tif 000006
【図６】
0005192070.tif 000007