(57)【要約】【課題】プログラム配信サーバ１２の負荷を軽減することができるプログラム配信システム１０を提供する。【解決手段】情報端末２０は、無線通信部２００と、プログラムおよび当該プグラムの付帯情報を格納するプログラム格納部２０６と、無線通信部２００を介して、プログラム配信サーバ１２または他の情報端末２０からプログラムおよび付帯情報を取得し、プログラム格納部２０６内の付帯情報が、取得した付帯情報と異なる場合に、取得したプログラムおよび付帯情報で、プログラム格納部２０６内のプログラムおよび付帯情報を更新するプログラム取得部２０２と、プログラム格納部２０６内のプログラムおよび付帯情報を、無線通信部２００を介して他の情報端末２０へ転送するプログラム転送部２０４と、プログラム格納部２０６内のプログラムを実行するプログラム実行部２０８とを備える。【選択図】図４
2006178896.tif 000002
【特許請求の範囲】
【請求項１】
プログラム配布サーバによって配布されたプログラムに基づいて動作する情報端末であって、
前記プログラム配布サーバおよび他の前記情報端末との間で無線通信が可能な無線通信部と、
前記プログラム配布サーバによって配布されたプログラムおよび当該プログラムの付帯情報を格納するプログラム格納部と、
前記無線通信部を介して、前記プログラム配布サーバおよび前記他の情報端末から前記プログラムおよび前記プログラムの付帯情報を取得し、前記プログラム格納部を参照して、前記プログラム格納部に既に格納されている付帯情報が、前記プログラム配布サーバまたは前記他の情報端末から取得した付帯情報と異なる場合に、前記プログラム配布サーバまたは前記他の情報端末から取得したプログラムおよび付帯情報で、前記プログラム格納部に格納されているプログラムおよび付帯情報を更新するプログラム取得部と、
前記プログラム取得部によって取得されたプログラムおよび付帯情報で、前記プログラム格納部に格納されているプログラムおよび付帯情報が更新された場合、または前記プログラム格納部に既に格納されている付帯情報が、前記プログラム取得部が前記プログラム配布サーバまたは前記他の情報端末から取得した付帯情報と同一である場合に、前記プログラム格納部に格納されているプログラムおよび付帯情報を、前記無線通信部を介して前記他の情報端末へ転送するプログラム転送部と、
前記プログラム格納部に格納されているプログラムを実行するプログラム実行部と
を備えることを特徴とする情報端末。
【請求項２】
請求項１に記載の情報端末であって、
前記プログラム転送部は、
前記プログラムの転送に先立って、前記付帯情報を前記他の情報端末へ転送し、前記他の情報端末から前記付帯情報に対応する前記プログラムの受信要求を、前記無線通信部を介して受信した場合に、転送した前記付帯情報に対応する前記プログラムを、前記受信要求を送信した前記他の情報端末へ転送し、
前記プログラム取得部は、
前記プログラム配布サーバまたは前記他の情報端末から前記付帯情報を受信した場合に、前記プログラム格納部に既に格納されている前記付帯情報が、前記プログラム配布サーバから取得した前記付帯情報と異なる場合に、前記付帯情報を送信した前記他の情報端末へ前記受信要求を送信し、前記受信要求に応答して前記プログラム配布サーバまたは前記他の情報端末から前記付帯情報に対応する前記プログラムを受信した場合に、受信した前記プログラムおよび前記付帯情報で、前記プログラム格納部に格納されている前記プログラムおよび前記付帯情報を更新する
ことを特徴とする情報端末。
【請求項３】
情報端末にプログラムを配布するプログラム配布システムであって、
配布された前記プログラムに基づいて動作する複数の情報端末と、
前記情報端末へ前記プログラムを配布するプログラム配布サーバと
を備え、
前記複数の情報端末のそれぞれは、
前記プログラム配布サーバおよび他の前記情報端末との間で無線通信が可能な機器側無線通信部と、
前記プログラム配布サーバによって配布された前記プログラムおよび前記プログラムの付帯情報を格納する機器側プログラム格納部と、
前記機器側無線通信部を介して、前記プログラム配布サーバまたは前記他の情報端末から前記プログラムおよび前記プログラムの付帯情報を取得し、前記機器側プログラム格納部を参照して、前記機器側プログラム格納部に既に格納されている前記付帯情報が、前記プログラム配布サーバまたは前記他の情報端末から取得した前記付帯情報と異なる場合に、前記プログラム配布サーバまたは前記他の情報端末から取得した前記プログラムおよび前記付帯情報で、前記機器側プログラム格納部に格納されている前記プログラムおよび前記付帯情報を更新するプログラム取得部と、
前記プログラム取得部が取得した前記プログラムおよび前記付帯情報で、前記機器側プログラム格納部に格納されている前記プログラムおよび前記付帯情報を更新した場合、および前記機器側プログラム格納部に既に格納されている前記付帯情報が、前記プログラム取得部が前記プログラム配布サーバまたは前記他の情報端末から取得した前記付帯情報と同一である場合に、前記機器側プログラム格納部に格納されている前記プログラムおよび前記付帯情報を、前記機器側無線通信部を介して前記他の情報端末へ転送するプログラム転送部と、
前記機器側プログラム格納部に格納されている前記プログラムを実行するプログラム実行部と
を有し、
前記プログラム配布サーバは、
前記複数の情報端末のいずれかとの間で無線通信が可能なサーバ側無線通信部と、
配布すべき前記プログラムおよび前記配布すべきプログラムの前記付帯情報を格納するサーバ側プログラム格納部と、
前記情報端末への前記プログラムの配布に先立って、前記サーバ側プログラム格納部から前記プログラムの付帯情報を読み出し、読み出した前記付帯情報を、前記サーバ側無線通信部を介して前記情報端末へ送信する付帯情報送信部と、
前記付帯情報送信部が送信した前記プログラムの付帯情報に応答して、前記情報端末から前記受信要求を受信した場合に、前記配布すべきプログラムを前記サーバ側プログラム格納部から読み出し、読み出した前記配布すべきプログラムを、前記サーバ側無線通信部を介して前記情報端末へ送信するプログラム送信部と
を有することを特徴とするプログラム配布システム。
【請求項４】
配布されたプログラムに基づいて動作する複数の情報端末および前記情報端末にプログラムを配布するプログラム配布サーバを備えるプログラム配布システムのプログラム配布方法であって、
前記複数の情報端末のそれぞれは、
前記プログラムおよび前記プログラムの付帯情報を機器側プログラム格納部に格納するステップと、
前記プログラム配布サーバまたは他の前記情報端末から、無線通信を用いて前記プログラムおよび前記プログラムの付帯情報を取得し、前記機器側プログラム格納部を参照して、前記機器側プログラム格納部に既に格納されている前記付帯情報が、前記プログラム配布サーバまたは前記他の情報端末から取得した前記付帯情報と異なる場合に、前記プログラム配布サーバまたは前記他の情報端末から取得した前記プログラムおよび前記付帯情報で、前記機器側プログラム格納部に格納されている前記プログラムおよび前記付帯情報を更新するステップと、
取得した前記プログラムおよび前記付帯情報で、前記機器側プログラム格納部に格納されている前記プログラムおよび前記付帯情報を更新した場合、および前記機器側プログラム格納部に既に格納されている前記付帯情報が、前記プログラム配布サーバまたは前記他の情報端末から取得した前記付帯情報と同一である場合に、前記機器側プログラム格納部に格納されている前記プログラムおよび前記付帯情報を、無線通信を用いて前記他の情報端末へ転送するステップと、
前記機器側プログラム格納部に格納されている前記プログラムを実行するステップと
を行い、
前記プログラム配布サーバは、
配布すべき前記プログラムおよび前記配布すべきプログラムの前記付帯情報をサーバ側プログラム格納部に格納するステップと、
前記情報端末への前記プログラムの配布に先立って、前記サーバ側プログラム格納部から前記プログラムの付帯情報を読み出し、読み出した前記付帯情報を、無線通信を用いて前記情報端末へ送信するステップと、
送信した前記付帯情報に応答して、前記情報端末から前記受信要求を受信した場合に、前記配布すべきプログラムを前記サーバ側プログラム格納部から読み出し、読み出した前記配布すべきプログラムを、無線通信を用いて前記情報端末へ送信するステップと
を行うことを特徴とするプログラム配布方法。
【請求項５】
プログラム配布サーバによって配布されたプログラムに基づいて動作する情報端末であって、
前記プログラム配布サーバおよび他の前記情報端末との間で無線通信が可能な無線通信部と、
前記プログラム配布サーバによって配布された前記プログラムを格納するプログラム格納部と、
前記無線通信部を介して、前記プログラムと共に、前記プログラムを格納すべき前記情報端末の識別情報を含む格納指示および前記プログラムの転送先の前記情報端末の識別情報を含む転送指示を、前記プログラム配布サーバまた前記他の情報端末から取得し、前記格納指示内に自身の前記識別情報が含まれている場合に、前記格納指示と共に取得した前記プログラムで、前記プログラム格納部に格納されている前記プログラムを更新するプログラム取得部と、
前記プログラム取得部が取得した前記プログラムで、前記プログラム格納部に格納されている前記プログラムを更新した場合、および前記プログラム取得部が取得した前記格納指示内に前記自身の識別情報が含まれていない場合に、前記プログラム取得部が取得した前記プログラム、前記格納指示、および前記転送指示を、前記転送指示に含まれる前記識別情報に対応する前記他の情報端末へ、前記無線通信部を介して転送するプログラム転送部と、
前記プログラム格納部に格納されている前記プログラムを実行するプログラム実行部と
を備えることを特徴とする情報端末。
【請求項６】
請求項５に記載の情報端末であって、
前記プログラム配布サーバまたは前記他の情報端末から、通信可能な前記他の情報端末を報告すべき旨の報告指示を、前記無線通信部を介して受信する報告指示受信部と、
前記報告指示受信部が受信した前記報告指示に自身の前記識別情報が付加されていない場合には、前記自身の識別情報を付加して、前記自身の識別情報を付加した報告指示を、前記無線通信部を介して前記他の情報端末へ転送し、前記報告指示受信部が受信した前記報告指示に前記自身の識別情報が付加されている場合には、受信した前記報告指示を破棄する報告指示転送部と、
所定期間経過しても、前記報告指示転送部が転送した前記報告指示に応答して、前記他の情報端末から報告応答を受信ない場合には、転送した前記報告指示および前記自身の識別情報を含む報告応答を生成し、生成した前記報告応答を、前記機器側無線通信部を介して前記他の情報端末へ送信する報告応答生成部と、
前記他の情報端末から前記報告応答を受信した場合に、前記報告応答に含まれる前記報告指示を参照して、前記報告応答を送信した前記情報端末へ送信した前記報告指示を受信した前記情報端末へ、受信した前記報告応答を転送する報告応答転送部と
をさらに備えることを特徴とする情報端末。
【請求項７】
請求項５または６に記載の情報端末であって、
前記プログラム格納部は、
前記プログラムの付帯情報をさらに格納し、
前記報告指示転送部は、
前記自身の識別情報に加えて、前記プログラム格納部に格納されている前記付帯情報をさらに付加すること
を特徴とする情報端末。
【請求項８】
請求項１から７のいずれかに記載の情報端末であって、
前記無線通信部は、Ｂｌｕｅｔｏｏｔｈの規格に基づく無線通信方式を用いて通信を行うことを特徴とする情報端末。
【請求項９】
情報端末にプログラムを配布するプログラム配布システムであって、
配布された前記プログラムに基づいて動作する複数の情報端末と、
前記情報端末へ前記プログラムを配布するプログラム配布サーバと
を備え、
前記複数の情報端末のそれぞれは、
前記プログラム配布サーバおよび他の前記情報端末との間で無線通信が可能な無線通信部と、
前記プログラム配布サーバによって配布された前記プログラムを格納する機器側プログラム格納部と、
前記無線通信部を介して、前記プログラムと共に、前記プログラムを格納すべき前記情報端末の識別情報を含む格納指示および前記プログラムの転送先の前記情報端末の識別情報を含む転送指示を、前記プログラム配布サーバまたは前記他の情報端末から取得し、前記格納指示内に自身の前記識別情報が含まれている場合に、前記格納指示と共に取得した前記プログラムで、前記機器側プログラム格納部に格納されている前記プログラムを更新するプログラム取得部と、
前記プログラム取得部が取得した前記プログラムで、前記機器側プログラム格納部に格納されている前記プログラムを更新した場合、および前記プログラム取得部が取得した前記格納指示内に前記自身の識別情報が含まれていない場合に、前記プログラム取得部が取得した前記プログラム、前記格納指示、および前記転送指示を、前記転送指示に含まれる前記識別情報に対応する前記他の情報端末へ、前記無線通信部を介して転送するプログラム転送部と、
前記機器側プログラム格納部に格納されている前記プログラムを実行するプログラム実行部と
を有し、
前記プログラム配布サーバは、
前記複数の情報端末のいずれかとの間で無線通信が可能なサーバ側無線通信部と、
配布すべき前記プログラムを格納するサーバ側プログラム格納部と、
前記サーバ側プログラム格納部から前記プログラムを読み出し、読み出した前記プログラムを、前記格納指示および前記転送指示と共に、前記サーバ側無線通信部を介して前記情報端末へ送信するプログラム送信部と
を有することを特徴とするプログラム配布システム。
【請求項１０】
配布されたプログラムに基づいて動作する複数の情報端末および前記情報端末にプログラムを配布するプログラム配布サーバを備えるプログラム配布システムのプログラム配布方法であって、
前記複数の情報端末のそれぞれは、
前記プログラムを機器側プログラム格納部に格納するステップと、
前記プログラムと共に、前記プログラムを格納すべき前記情報端末の識別情報を含む格納指示および前記プログラムの転送先の前記情報端末の識別情報を含む転送指示を、前記プログラム配布サーバまたは他の前記情報端末から無線通信を用いて取得し、前記格納指示内に自身の前記識別情報が含まれている場合に、前記格納指示と共に取得した前記プログラムで、機器側プログラム格納部に格納されている前記プログラムを更新するステップと、
取得した前記プログラムで、前記機器側プログラム格納部に格納されている前記プログラムを更新した場合、および取得した前記格納指示内に前記自身の識別情報が含まれていない場合に、取得した前記プログラム、前記格納指示、および前記転送指示を、前記転送指示に含まれる前記識別情報に対応する前記他の情報端末へ、無線通信を用いて転送するステップと、
前記機器側プログラム格納部に格納されている前記プログラムを実行するステップと
を行い、
前記プログラム配布サーバは、
配布すべき前記プログラムをサーバ側プログラム格納部に格納するステップと、
前記格納指示を生成するステップと、
前記転送指示を生成するステップと、
前記サーバ側プログラム格納部から前記プログラムを読み出し、読み出した前記プログラムを、生成した前記格納指示および前記転送指示と共に、無線通信を用いて前記情報端末へ送信するステップと
を行うことを特徴とするプログラム配布方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム等のデータを情報端末に配布する技術に関する。
【背景技術】
【０００２】
従来、情報端末のプログラムを更新する場合、プログラムを配信するサーバは、ケーブルを介して１対１に接続された情報端末に対して、当該ケーブルを介して更新プログラムを供給していた。また、ＣＤ−ＲＯＭ等の記録媒体に記録された情報を読み込む機能を有する情報端末においては、更新プログラムを記録した記録媒体を介して更新プログラムを読み込ませることにより、情報端末のプログラムが更新されていた。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、ケーブルを介したプログラムの更新において、車や冷蔵庫、ＰＤＰ（Ｐｌａｓｍａ  Ｄｉｓｐｌａｙ  Ｐａｎｅｌ）等を用いたテレビ等の大型の機器に搭載されている状態で、情報端末のプログラムの更新を行う場合、接続するケーブルが長くなり、プログラム配布サーバとケーブルとのインターフェイスの強度を高める必要があり、当該インターフェイスがさらに大型化する場合があった。また、プログラムを更新する場合に、当該長いケーブルを接続する必要があり、プログラムの更新のための準備に時間がかかる場合があった。
【０００４】
また、機器に搭載されている状態で情報端末に更新プログラムを供給する場合、機器のデザイン上の制約から、ＣＤ−ＲＯＭ等の可搬性の記録媒体を情報端末に読み込ませるインターフェイスを外部に設けることができない場合がある。そのため、更新プログラムを情報端末に供給することができない場合があった。
【０００５】
上記した問題を解決するために、ＩｒＤＡ等の近距離無線通信を用いて、機器に搭載された状態で、情報端末に更新プログラムを供給する場合がある。しかし、このような構成においては、更新プログラムを配布するサーバが、プログラムの更新を必要とする情報端末のそれぞれへ更新プログラムを供給するので、当該サーバの処理負荷が高くなる場合があった。
【０００６】
そこで本発明は、上記の課題を解決することのできる情報端末、プログラム配布システム、およびプログラム配布方法を提供することを目的とする。例えば、配布すべきプログラムを情報端末に容易に供給することができるようにする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、情報端末は、プログラム配布サーバから更新プログラムを取得すると共に、無線通信によって、他の情報端末へ転送する。
【０００８】
例えば、本発明の第１の態様は、プログラム配布サーバによって配布されたプログラムに基づいて動作する情報端末であって、プログラム配布サーバおよび他の情報端末との間で無線通信が可能な無線通信部と、プログラム配布サーバによって配布されたプログラムおよびプログラムの付帯情報を格納するプログラム格納部と、無線通信部を介して、プログラム配布サーバおよび他の情報端末からプログラムおよびプログラムの付帯情報を取得し、プログラム格納部を参照して、プログラム格納部に既に格納されている付帯情報が、プログラム配布サーバまたは他の情報端末から取得した付帯情報と異なる場合に、プログラム配布サーバまたは他の情報端末から取得したプログラムおよび付帯情報で、プログラム格納部に格納されているプログラムおよび付帯情報を更新するプログラム取得部と、プログラム取得部が取得したプログラムおよび付帯情報で、プログラム格納部に格納されているプログラムおよび付帯情報を更新した場合、およびプログラム格納部に既に格納されている付帯情報が、プログラム取得部がプログラム配布サーバまたは他の情報端末から取得した付帯情報と同一である場合に、プログラム格納部に格納されているプログラムおよび付帯情報を、無線通信部を介して他の情報端末へ転送するプログラム転送部と、プログラム格納部に格納されているプログラムを実行するプログラム実行部とを備えることを特徴とする情報端末を提供する。
【０００９】
また、本発明の第２の態様は、プログラム配布サーバによって配布されたプログラムに基づいて動作する情報端末であって、プログラム配布サーバおよび他の情報端末との間で無線通信が可能な無線通信部と、プログラム配布サーバによって配布されたプログラムを格納するプログラム格納部と、無線通信部を介して、プログラムと共に、プログラムを格納すべき情報端末の識別情報を含む格納指示およびプログラムの転送先の情報端末の識別情報を含む転送指示を、プログラム配布サーバまた他の情報端末から取得し、格納指示内に自身の識別情報が含まれている場合に、格納指示と共に取得したプログラムで、プログラム格納部に格納されているプログラムを更新するプログラム取得部と、プログラム取得部が取得したプログラムで、プログラム格納部に格納されているプログラムを更新した場合、およびプログラム取得部が取得した格納指示内に自身の識別情報が含まれていない場合に、プログラム取得部が取得したプログラム、格納指示、および転送指示を、転送指示に含まれる識別情報に対応する他の情報端末へ、無線通信部を介して転送するプログラム転送部と、プログラム格納部に格納されているプログラムを実行するプログラム実行部とを備えることを特徴とする情報端末を提供する。
【発明の効果】
【００１０】
本発明によれば、更新プログラムを配布する場合のプログラム配布サーバの処理負荷を低減することができる。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明の第１の実施の形態について説明する。
【００１２】
図１は、本発明の一実施形態に係るプログラム配信システム１０の構成を示す。プログラム配信システム１０は、プログラム配信サーバ１２および複数の情報端末２０を備える。プログラム配信サーバ１２は、情報端末２０へ配布するプログラムを格納しており、例えばＢｌｕｅｔｏｏｔｈ（登録商標）と呼ばれる無線通信方式に基づいて、複数の情報端末２０と通信を行い、格納しているプログラムを、当該Ｂｌｕｅｔｏｏｔｈを用いて情報端末２０へ配布する。
【００１３】
ここで、Ｂｌｕｅｔｏｏｔｈとは、２．４ＧＨｚ帯の電波を用いて、１０から１００ｍ程度の通信範囲を有する通信方式である。互いに通信可能な範囲内にあるＢｌｕｅｔｏｏｔｈ対応機器のそれぞれは、電源が投入された後のシーケンスに基づいて、アクセスポイントの役割を担うマスタまたは当該マスタを介して他のＢｌｕｅｔｏｏｔｈ対応機器との間で通信を行うスレーブとして動作する。マスタは、最大７つのスレーブとの間で同時に無線通信を行うピコネットを形成することができる。また、Ｂｌｕｅｔｏｏｔｈでは、複数のピコネットどうしが相互接続されたスキャタネットを形成することができる。これにより、複数のＢｌｕｅｔｏｏｔｈ対応機器のそれぞれが互いに通信可能な範囲内にある場合、これら複数のＢｌｕｅｔｏｏｔｈ対応機器のみで無線ネットワークを形成することができる。従って、基地局やアクセスポイント等のＢｌｕｅｔｏｏｔｈ対応機器以外の設備を必要としないので、Ｂｌｕｅｔｏｏｔｈに基づく通信方式を採用することにより、無線通信ネットワークを低いコストで容易に形成することができる。
【００１４】
複数の情報端末２０のそれぞれは、それぞれの自動車２２に設けられる、例えばカーナビゲーション装置である。他の例として、情報端末２０は、冷蔵庫や、ＰＤＰを用いたテレビ等の大型の装置や、稼動中の装置等に搭載されてもよい。それぞれの情報端末２０は、プログラム配信サーバ１２および他の情報端末２０との間でＢｌｕｅｔｏｏｔｈを用いて通信を行うことができる。
【００１５】
本実施形態において、情報端末２０ａおよび情報端末２０ｂは、Ｂｌｕｅｔｏｏｔｈを用いてプログラム配信サーバ１２が通信可能なエリア内に置かれており、プログラム配信サーバ１２、情報端末２０ａ、および情報端末２０ｂは、例えば、プログラム配信サーバ１２をマスタとするピコネットを形成することができる。
【００１６】
また、プログラム配信サーバ１２、情報端末２０ｃ、および情報端末２０ｄは、Ｂｌｕｅｔｏｏｔｈを用いて情報端末２０ａが通信可能なエリア内に置かれており、プログラム配信サーバ１２、情報端末２０ａ、情報端末２０ｃ、および情報端末２０ｄは、例えば、情報端末２０ａをマスタとするピコネットを形成することができる。
【００１７】
同様に、プログラム配信サーバ１２および情報端末２０ｅは、Ｂｌｕｅｔｏｏｔｈを用いて情報端末２０ｂが通信可能なエリア内に置かれており、プログラム配信サーバ１２、情報端末２０ｂ、および情報端末２０ｅは、例えば、情報端末２０ｂをマスタとするピコネットを形成することができる。
【００１８】
プログラム配信サーバ１２および情報端末２０ａ〜ｅは、スキャタネットを形成しており、直接または情報端末２０を介して、互いに通信することができる。このように、プログラム配信サーバ１２および情報端末２０ａ〜ｅがスキャタネットを形成しているので、Ｂｌｕｅｔｏｏｔｈを用いてプログラム配信サーバ１２が通信可能なエリアの外部に配置されている情報端末２０ｃ、情報端末２０ｄ、および情報端末２０ｅに対しても、プログラム配信サーバ１２が格納しているプログラムを配布することができる。また、プログラム配信サーバ１２がＢｌｕｅｔｏｏｔｈを用いて複数の情報端末２０と通信を行うので、携帯電話や無線ＬＡＮを用いる無線通信ネットワークよりも安価にかつ容易に無線通信ネットワークを形成することができる。
【００１９】
図２は、本発明の第１実施形態に係るプログラム配信サーバ１２の詳細な構成の一例を示すブロック図である。プログラム配信サーバ１２は、プログラム格納部１２０、プログラム送信部１２２、付帯情報送信部１２４、および無線通信部１２６を備える。プログラム格納部１２０は、情報端末２０に配布するプログラムおよび当該プログラムのバージョン等の情報である付帯情報を格納する。
【００２０】
無線通信部１２６は、Ｂｌｕｅｔｏｏｔｈを用いて情報端末２０と無線通信を行う。付帯情報送信部１２４は、情報端末２０へのプログラムの配布に先立って、配布すべきプログラムの例えばバージョン情報等の付帯情報を、プログラム格納部１２０から読み出し、読み出した付帯情報を、無線通信部１２６を介して情報端末２０へ送信する。プログラム送信部１２２は、付帯情報送信部１２４が送信した付帯情報に応答して、無線通信部１２６を介して情報端末２０から受信要求を受信した場合に、配布すべきプログラムをプログラム格納部１２０から読み出し、読み出したプログラムを、無線通信部１２６を介して情報端末２０へ送信する。
【００２１】
図３は、プログラム格納部１２０に格納されるデータの構造の一例を示す。プログラム格納部１２０は、プログラムを識別するプログラムＩＤ１２００、プログラムＩＤ１２００で識別されるプログラムの付帯情報１２０２、およびプログラムＩＤ１２００で識別されるプログラムのプログラム本体１２０４を格納する。プログラム格納部１２０は、配布すべきプログラムを、例えば圧縮した状態で格納している。
【００２２】
図４は、本発明の第１実施形態に係る情報端末２０の詳細な構成の一例を示すブロック図である。情報端末２０は、無線通信部２００、プログラム取得部２０２、プログラム転送部２０４、プログラム格納部２０６、およびプログラム実行部２０８を備える。プログラム格納部２０６は、製造時に予め格納されたプログラム、あるいはプログラム配信サーバ１２から取得したプログラムを、その付帯情報と共に格納する。プログラム実行部２０８は、プログラム格納部２０６に格納されているプログラムを実行する。無線通信部２００は、Ｂｌｕｅｔｏｏｔｈを用いてプログラム配信サーバ１２および他の情報端末２０と無線通信を行う。
【００２３】
プログラム取得部２０２は、無線通信部２００を介して、プログラム配信サーバ１２または他の情報端末２０からプログラムに先立って送信されるプログラムの付帯情報を取得し、プログラム格納部２０６に既に格納されている付帯情報が、プログラム配信サーバ１２または他の情報端末２０から取得した付帯情報と同一か否かを判定する。そして、プログラム格納部２０６に既に格納されている付帯情報が、プログラム配信サーバ１２または他の情報端末２０から取得した付帯情報と異なる場合に、プログラム取得部２０２は、付帯情報を送信したプログラム配信サーバ１２または他の情報端末２０へ当該プログラムの受信要求を送信する。そして、当該受信要求に応答してプログラム配信サーバ１２または他の情報端末２０からプログラムを受信した場合に、プログラム取得部２０２は、受信したプログラムおよび付帯情報で、プログラム格納部２０６に格納されているプログラムおよび付帯情報を更新する。
【００２４】
本例において、プログラム取得部２０２は、プログラム配信サーバ１２または他の情報端末２０から受信した付帯情報が、既にプログラム格納部２０６に格納されている付帯情報と同一でない場合に、受信した付帯情報に対応するプログラムの受信要求を送信するので、付帯情報がプログラムのバージョンである場合に、情報端末２０は、プログラムのバーッジョンアップだけでなく、プログラムのバージョンダウンにも対応することができる。また、他の例として、プログラム取得部２０２は、付帯情報がプログラムのバージョンである場合に、プログラム配信サーバ１２または他の情報端末２０から受信したプログラムのバージョンが、既にプログラム格納部２０６に格納されているプログラムのバージョンよりも新しい場合にのみ、受信した付帯情報に対応するプログラムの受信要求を送信してもよい。
【００２５】
プログラム取得部２０２によって、プログラム格納部２０６に格納されているプログラムおよび付帯情報が更新された場合、プログラム転送部２０４は、プログラム格納部２０６に格納されているプログラムの付帯情報を、無線通信部２００を介して他の情報端末２０へ転送する。一方、プログラム取得部２０２によって、プログラム格納部２０６に既に格納されている付帯情報と、プログラム配信サーバ１２または他の情報端末２０から取得した付帯情報とが同一であると判定された場合、プログラム転送部２０４は、プログラム格納部２０６に格納されているプログラムの付帯情報を、無線通信部２００を介して他の情報端末２０へ転送する。
【００２６】
そして、プログラム転送部２０４は、転送した付帯情報に応答して、他の情報端末２０からプログラムの受信要求を、無線通信部２００を介して受信したか否かを判定する。転送した付帯情報に応答して、他の情報端末２０からプログラムの受信要求を受信した場合、プログラム転送部２０４は、転送した付帯情報に対応するプログラムを、受信要求を送信した他の情報端末２０へ転送する。
【００２７】
このように、プログラム配信サーバ１２または他の情報端末２０から送信されるプログラムを他の情報端末２０へ転送するので、プログラム配信サーバ１２によって通信可能なエリアの外部に配置されている情報端末２０に対しても、プログラム配信サーバ１２はプログラムを配信することができる。また、プログラムの配布に先立って、付帯情報を転送するので、既に保持しているプログラムを受信することなく、配布されるプログラムを受信すべきか否か判断することができる。これにより、プログラムを受信させるべき情報端末２０へ、より迅速にプログラムを配信することができる。
【００２８】
図５は、プログラム格納部２０６に格納されるデータの構造の一例を示す。プログラム格納部２０６は、プログラムを識別するプログラムＩＤ２０６０、付帯情報２０６２、配布形式のプログラム２０６４、および実行形式のプログラム２０６６を格納する。
【００２９】
配布形式のプログラム２０６４とは、プログラム配信サーバ１２または他の情報端末２０から取得したプログラムの状態であり、例えば圧縮された状態のプログラムである。配布形式のプログラム２０６４を参照することにより、プログラム転送部２０４は、他の情報端末２０へ転送するプログラムを取得することができる。また、実行形式のプログラム２０６６とは、例えば圧縮されて配布されたプログラムを展開した状態である。実行形式のプログラム２０６６を参照することにより、プログラム実行部２０８は、実行可能な状態のプログラムを取得することができる。
【００３０】
図６は、本発明の第１実施形態に係るプログラム配信サーバ１２の動作の一例を示すフローチャートである。プログラム配信サーバ１２の電源が投入される等の所定のタイミングで、本フローチャートに示すプログラム配信サーバ１２の動作が開始する。まず、無線通信部１２６は、通信可能な情報端末２０との間で、例えばＢｌｕｅｔｏｏｔｈを用いて無線通信リンクを確立する（Ｓ１００）。ステップ１００において、少なくとも１台の情報端末２０との間で無線通信リンクが確立されない場合、本フローチャートに示すプログラム配信サーバ１２の処理は終了する。
【００３１】
次に、付帯情報送信部１２４は、配布すべきプログラムの付帯情報を、プログラム格納部１２０から読み出し、読み出した付帯情報を、無線通信部１２６を介して無線通信リンクを確立している情報端末２０へ送信する（Ｓ１０２）。そして、プログラム送信部１２２は、情報端末２０から受信要求を受信したか否かを判定する（Ｓ１０４）。少なくとも１台の情報端末２０から受信要求を受信した場合（Ｓ１０４：Ｙｅｓ）、プログラム送信部１２２は、プログラム格納部１２０から配布すべきプログラムを読み出し、読み出したプログラムを、受信要求を返信した情報端末２０へ無線通信部１２６を介して送信し（Ｓ１０６）、本フローチャートに示したプログラム配信サーバ１２の動作は終了する。
【００３２】
ステップ１０４において、受信要求を受信しなかった場合、すなわち付帯情報送信部１２４が付帯情報を送信してから所定時間経過した場合（Ｓ１０４：Ｎｏ）、本フローチャートに示したプログラム配信サーバ１２の動作は終了する。
【００３３】
図７は、本発明の第１実施形態に係る情報端末２０の動作の一例を示すフローチャートである。情報端末２０の電源が投入される等の所定のタイミングで、本フローチャートに示す情報端末２０の動作が開始する。まず、無線通信部２００は、プログラム配信サーバ１２および他の情報端末２０のうち、無線通信が可能なものとの間で、例えばＢｌｕｅｔｏｏｔｈを用いて無線通信リンクを確立する（Ｓ２００）。ステップ２００において、プログラム配信サーバ１２または少なくとも１台の情報端末２０との間で無線通信リンクが確立されない場合、本フローチャートに示す情報端末２０の処理は終了する。
【００３４】
次に、プログラム取得部２０２は、無線通信リンクを確立しているプログラム配信サーバ１２または他の情報端末２０から、無線通信部２００を介して付帯情報を受信したか否かを判定する（Ｓ２０２）。付帯情報を受信していない場合（Ｓ２０２：Ｎｏ）、プログラム取得部２０２は、付帯情報を受信するまで、ステップ２０２を所定時間繰り返す。なお、所定時間が経過しても付帯情報を受信しなかった場合、本フローチャートに示す情報端末２０の動作は終了する。
【００３５】
ステップ２０２において、付帯情報を受信した場合（Ｓ２０２：Ｙｅｓ）、プログラム取得部２０２は、プログラム格納部２０６を参照して、受信した付帯情報がプログラム格納部２０６に格納されている付帯情報と同一か否かを判定する（Ｓ２０４）。受信した付帯情報がプログラム格納部２０６に格納されている付帯情報と異なる場合（Ｓ２０４：Ｎｏ）、プログラム取得部２０２は、付帯情報を送信したプログラム配信サーバ１２または他の情報端末２０へ、無線通信部２００を介して受信要求を送信する（Ｓ２０６）。受信した付帯情報がプログラム格納部２０６に格納されている付帯情報と同一である場合（Ｓ２０４：Ｙｅｓ）、プログラム転送部２０４は、後述するステップ２１２に示す処理を行う。
【００３６】
次に、プログラム取得部２０２は、送信した受信要求に応答して、プログラム配信サーバ１２または他の情報端末２０からプログラムを受信したか否かを判定する（Ｓ２０８）。プログラム配信サーバ１２または他の情報端末２０からプログラムを受信していない場合（Ｓ２０８：Ｎｏ）、プログラム取得部２０２は、プログラム配信サーバ１２または他の情報端末２０からプログラムを受信するまで、ステップ２０８を所定時間繰り返す。なお、所定時間が経過しても、プログラム配信サーバ１２または他の情報端末２０からプログラムを受信しなかった場合、本フローチャートに示す情報端末２０の動作は終了する。
【００３７】
ステップ２０８において、プログラム配信サーバ１２または他の情報端末２０からプログラムを受信した場合（Ｓ２０８：Ｙｅｓ）、プログラム取得部２０２は、受信したプログラムおよび付帯情報で、プログラム格納部２０６に格納されているプログラムおよび付帯情報を更新する（Ｓ２１０）。次に、プログラム転送部２０４は、プログラム格納部２０６に格納されているプログラムの付帯情報を、プログラム格納部２０６から読み出し、読み出した付帯情報を、無線通信部２００を介して他の情報端末２０へ送信する（Ｓ２１２）。
【００３８】
そして、プログラム転送部２０４は、送信した付帯情報に応答して、他の情報端末２０から受信要求を受信したか否かを判定する（Ｓ２１４）。他の情報端末２０から受信要求を受信していない場合（Ｓ２１４：Ｎｏ）、プログラム転送部２０４は、他の情報端末２０から受信要求を受信するまで、ステップ２１４を所定時間繰り返す。なお、所定時間が経過しても、通信可能な他の情報端末２０から受信要求を受信しなかった場合、本フローチャートに示す情報端末２０の動作は終了する。
【００３９】
ステップ２１４において、通信可能な他の情報端末２０のいずれかから受信許可を受信した場合（Ｓ２１４：Ｙｅｓ）、プログラム転送部２０４は、プログラム格納部２０６に格納されているプログラムを、無線通信部２００を介して受信要求を返信した他の情報端末２０へ転送し（Ｓ２１６）、本フローチャートに示す情報端末２０の動作は終了する。
【００４０】
図８は、本発明の第１実施形態に係る情報端末２０のハードウェア構成の一例を示す。情報端末２０は、無線通信部２２０、ＲＯＭ２２２、ＲＡＭ２２４、ＣＰＵ２２６、ＨＤＤ２２８、およびインターフェイス２３０を備える。
【００４１】
ＣＰＵ２２６は、ＲＯＭ２２２およびＲＡＭ２２４に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ２２２は、例えば情報端末２０の起動時にＣＰＵ２２６が実行するブートプログラムや、情報端末２０のハードウェアに依存するプログラム等を格納する。ＲＡＭ２２４は、ＣＰＵ２２６が実行するプログラムおよびＣＰＵ２２６が使用するデータ等を格納する。インターフェイス２３０は、入力装置等の外部機器から操作情報等を取得してＣＰＵ２２６へ送信すると共に、ＣＰＵ２２６が生成した画像情報等のデータをディスプレイ等の外部機器へ出力する。
【００４２】
ＨＤＤ２２８は、無線通信部２２０がプログラム配信サーバ１２または他の情報端末２０から受信したプログラムおよび当該プログラムの付帯情報を格納し、格納したプログラムを、ＲＡＭ２２４を介してＣＰＵ２２６に供給する。無線通信部２２０は、ＣＰＵ２２６によって制御され、無線通信を用いてプログラム配信サーバ１２および他の情報端末２０と通信を行い、プログラム配信サーバ１２または他の情報端末２０から付帯情報およびプログラムを受信し、受信した付帯情報およびプログラムをＨＤＤ２２８に格納すると共に、ＨＤＤ２２８に格納された付帯情報およびプログラムを他の情報端末２０へ転送する。
【００４３】
無線通信部２２０は、ＣＰＵ２２６によって制御され、無線通信部２００、プログラム取得部２０２、およびプログラム転送部２０４として機能する。また、ＨＤＤ２２８は、ＣＰＵ２２６によって制御され、プログラム格納部２０６として機能する。また、ＲＯＭ２２２、ＲＡＭ２２４、ＣＰＵ２２６、インターフェイス２３０は、プログラム実行部２０８として機能する。
【００４４】
以上、本発明の第１の実施形態について説明した。上記説明から明らかなように、本発明のプログラム配信システム１０によれば、プログラムを配信する場合に、プログラム配信サーバ１２は、プログラム配信サーバ１２と直接通信が可能な情報端末２０に対してのみプログラムを配信すればよいので、プログラム配信サーバ１２の処理負荷を低減することができる。
【００４５】
次に、本発明の第２の実施形態について説明する。
【００４６】
図９は、本発明の第２実施形態に係るプログラム配信サーバ１２の詳細な構成の一例を示すブロック図である。プログラム配信サーバ１２は、プログラム格納部１２０、プログラム送信部１２２、無線通信部１２６、報告指示送信部１３０、および転送指示テーブル生成部１３２を備える。なお、以下に説明する点を除き、図９において、図２と同じ符号を付した構成は、図２における構成と同一または同様の機能を有するため説明を省略する。
【００４７】
報告指示送信部１３０は、プログラムの配布に先立って、通信可能な他の情報端末２０の識別情報である機器ＩＤを報告すべき旨の報告指示を、無線通信部１２６を介して情報端末２０へ送信する。転送指示テーブル生成部１３２は、報告指示送信部１３０が送信した報告指示に応答して、情報端末２０から返信された報告応答に基づいて、プログラムを格納すべき情報端末２０の機器ＩＤおよびプログラムの転送先の情報端末２０の機器ＩＤを含む転送指示テーブルを生成する。
【００４８】
プログラム送信部１２２は、配布すべきプログラムをプログラム格納部１２０から読み出し、読み出したプログラムを、転送指示テーブル生成部１３２が生成した転送指示テーブルと共に、無線通信部１２６を介して情報端末２０へ送信する。
【００４９】
図１０は、本発明の第２実施形態に係る情報端末２０の詳細な構成の一例を示すブロック図である。情報端末２０は、無線通信部２００、プログラム取得部２０２、プログラム転送部２０４、プログラム格納部２０６、プログラム実行部２０８、報告指示受信部２１０、報告指示転送部２１２、報告応答生成部２１４、および報告応答転送部２１６を備える。なお、以下に説明する点を除き、図１０において、図４と同じ符号を付した構成は、図４における構成と同一または同様の機能を有するため説明を省略する。
【００５０】
報告指示受信部２１０は、プログラム配信サーバ１２または他の情報端末２０から、通信可能な他の情報端末２０を報告すべき旨の報告指示を、無線通信部２００を介して受信する。報告指示転送部２１２は、報告指示受信部２１０が受信した報告指示に自身の機器ＩＤが付加されているか否かを判定する。報告指示受信部２１０が受信した報告指示に自身の機器ＩＤが付加されていない場合、報告指示転送部２１２は、自身の機器ＩＤおよびプログラム格納部２０６に格納されている付帯情報を当該報告指示に付加して他の情報端末２０へ、無線通信部２００を介して転送する。一方、報告指示受信部２１０が受信した報告指示に自身の機器ＩＤが付加されている場合、報告指示転送部２１２は、報告指示受信部２１０が受信した報告指示を破棄する。
【００５１】
報告応答生成部２１４は、報告指示転送部２１２が転送した報告指示に対して、他の情報端末２０から報告応答を、所定期間以内に受信したか否かを判定する。他の情報端末２０から所定期間以内に報告応答を受信しなかった場合、転送した報告指示を含む報告応答を生成し、生成した報告応答を、無線通信部２００を介して他の情報端末２０へ送信する。前記他の情報端末を介して前記報告応答を前記プログラム配布サーバへ返信する。
【００５２】
報告応答転送部２１６は、他の情報端末２０から報告応答を受信した場合に、報告応答に含まれる報告指示を参照して、受信した報告応答を転送する。当該報告指示には、転送される都度、転送を行った情報端末２０の機器ＩＤが付加されているので、当該報告応答に含まれる報告指示を参照することにより、報告指示を転送した経路を逆にたどり、受信した報告応答を対応する情報端末２０へ転送する。これにより、報告応答は、最終的にプログラム配信サーバ１２へ転送される。
【００５３】
プログラム取得部２０２は、無線通信部２００を介して、プログラム、当該プログラムの付帯情報、および転送指示テーブルを、プログラム配信サーバ１２または他の情報端末２０から取得する。そして、自身の機器ＩＤに対応付けて、プログラムを格納する旨が、受信した転送指示テーブル内に格納されている場合、転送指示テーブルと共に取得したプログラムおよび付帯情報で、プログラム格納部２０６に格納されているプログラムおよび付帯情報を更新する。
【００５４】
プログラム転送部２０４は、プログラム取得部２０２が取得したプログラムおよび付帯情報で、プログラム格納部２０６に格納されているプログラムおよび付帯情報が更新された場合、またはプログラム取得部２０２が取得した転送指示テーブル内に自身の機器ＩＤが格納されていない場合に、プログラム取得部２０２が取得したプログラム、付帯情報、および転送指示テーブルを、転送指示テーブルに含まれる機器ＩＤに従って他の情報端末２０情報端末へ、無線通信部２００を介して転送する。
【００５５】
図１１は、転送指示テーブル３４が生成される過程を説明するための概念図である。通信トポロジ３０は、本例におけるプログラム配信サーバ１２と複数の情報端末２０とが形成する無線通信リンクの一例を示す。本例の通信トポロジ３０において、プログラム配信サーバ１２は、情報端末２０ａおよび情報端末２０ｂと直接通信が可能である。同様に、本例の通信トポロジ３０において、例えば、情報端末２０ｈは、情報端末２０ｄ、情報端末２０ｍ、情報端末２０ｎ、および情報端末２０ｏと直接通信が可能である。なお、通信トポロジ３０は、情報端末２０どうしの距離が等しくなるように模式的に表現しており、実際の情報端末２０の配置とは無関係である。
【００５６】
プログラム配信サーバ１２は、報告指示を情報端末２０ａおよび情報端末２０ｂへ送信する。情報端末２０ａは、プログラム配信サーバ１２から受信した報告指示に自身の機器ＩＤを付加して情報端末２０ｃおよび情報端末２０ｄへ転送する。情報端末２０ｂは、プログラム配信サーバ１２から受信した報告指示に自身の機器ＩＤを付加して情報端末２０ｅおよび情報端末２０ｆへ転送する。情報端末２０ｋは、情報端末２０ｇから報告指示を受信した場合、受信した報告指示に応答して、報告応答を生成し、生成した報告応答を情報端末２０ｇへ送信する。情報端末２０ｅ、情報端末２０ｉ、情報端末２０ｊ、情報端末２０ｌ、情報端末２０ｍ、情報端末２０ｎ、および情報端末２０ｏの通信トポロジ３０の末端に位置する情報端末２０についても、情報端末２０ｋと同様に、受信した報告指示に応答して報告応答を生成する。
【００５７】
報告応答３２は、報告指示３２０および付帯情報３２２を有する。報告指示３２０は、プログラム配信サーバ１２から送信された報告指示を転送した情報端末２０の機器ＩＤが付加された後に、通信トポロジ３０の末端に位置する情報端末２０の機器ＩＤが付加されたものである。通信トポロジ３０の末端に位置する情報端末２０は、報告指示３２０を含む報告応答３２を生成し、自身の機器ＩＤに対応する付帯情報３２２の欄に、自身が有するプログラムの付帯情報を格納して、当該報告指示３２０に格納された機器ＩＤを参照して、次に報告応答３２を転送する情報端末２０の機器ＩＤを特定し、対応する情報端末２０へ当該報告応答３２を転送する。
【００５８】
本例において、通信トポロジ３０の末端に位置する情報端末２０ｋは、自身の機器ＩＤを付加した報告指示３２０を含む報告応答３２を生成し、自身の機器ＩＤであるｋに対応する付帯情報３２２の欄に、自身が有するプログラムの付帯情報を格納する。そして、情報端末２０ｋは、報告指示３２０に格納された機器ＩＤを参照して、機器ＩＤがｇである情報端末２０へ当該報告応答３２を転送する。情報端末２０ｃは報告応答３２ｋを２０ｇから受信し、当該報告応答に含まれる報告指示３２０を参照して、情報端末２０ｃは、受信した報告応答を情報端末２０ａへ転送する。このようにして、報告応答３２に含まれる報告指示３２０を参照して、受信した報告応答３２を転送するので、通信トポロジ３０の末端に位置する情報端末２０が生成した報告応答３２をプログラム配信サーバ１２へ届けることができる。
【００５９】
プログラム配信サーバ１２は、受信した報告応答３２に基づいて、転送指示テーブル３４を生成する。転送指示テーブル３４は、機器ＩＤ３４０および対応する機器ＩＤの情報端末２０が、当該転送指示テーブル３４と共に受信したプログラムを格納するか否かを示す格納フラグ３４２を有する。本例において、格納フラグ３４２は、１ならば転送指示テーブル３４と共に受信したプログラムを報告応答生成部２１４に格納し、０ならば、当該プログラムを格納せずに、転送指示テーブル３４に従って他の情報端末２０へ転送する。転送指示テーブル３４は、通信トポロジ３０の末端に位置する情報端末２０の数だけ生成される。
【００６０】
なお、本例では、プログラム配信サーバ１２が配布するプログラムの付帯情報は、Ｖｅｒ１．０．１．１であることを仮定している。そのため、情報端末２０ｃは配布されたプログラムを必要としない。しかし、情報端末２０ｇ、情報端末２０ｋ、および情報端末２０ｌは、情報端末２０ｃを介さなければ格納すべきプログラムを取得することができないので、情報端末２０ｃは、格納はしないものの、配布されたプログラム取得して、情報端末２０ｇへ転送する。そのため、情報端末２０ｃがプログラムと共に転送する全ての転送指示テーブル３４内の、情報端末２０ｃに対応する格納フラグ３４２には０が設定される。
【００６１】
また、本例において、転送指示テーブル３４ｋは、情報端末２０ａに対する格納フラグを１に設定している。そのため、転送指示テーブル３４ｋ以外の転送指示テーブル３４であって、情報端末２０ａを介して配布される転送指示テーブル３４の情報端末２０ａに対応する機器ＩＤには格納フラグとして０が格納される。このようにして、転送指示テーブル３４を通信トポロジ３０の末端に位置する情報端末２０の数だけ生成し、配布すべきプログラムと共に送信することにより、プログラム配信サーバ１２は、直接通信することができない情報端末２０に対しても配布すべきプログラムを供給することができる。
【００６２】
また、プログラム配信サーバ１２は、プログラムの配布を許可されている情報端末２０の機器ＩＤのリストを格納し、プログラムと共に送信する転送指示テーブル３４の格納フラグを、当該リストで許可されている情報端末２０についてのみ１に設定してもよい。これにより、プログラム配信サーバ１２は、プログラムの配布を許可されている情報端末２０にのみプログラムを配布することができる。さらに、転送指示テーブル内の格納フラグを制御することにより、プログラム配信サーバ１２は、通信トポロジ３０内の特定の情報端末２０にのみプログラムを供給することができる。
【００６３】
図１２は、本発明の第２実施形態に係るプログラム配信サーバ１２の動作の一例を示すフローチャートである。プログラム配信サーバ１２の電源が投入される等の所定のタイミングで、本フローチャートに示すプログラム配信サーバ１２の動作が開始する。まず、無線通信部１２６は、通信可能な情報端末２０との間で、例えばＢｌｕｅｔｏｏｔｈを用いて無線通信リンクを確立する（Ｓ３００）。ステップ３００において、少なくとも１台の情報端末２０との間で無線通信リンクが確立されない場合、本フローチャートに示すプログラム配信サーバ１２の処理は終了する。
【００６４】
次に、報告指示送信部１３０は、報告指示を、無線通信部１２６を介して直接通信可能な情報端末２０へ送信する（Ｓ３０２）。そして、転送指示テーブル生成部１３２は、報告指示送信部１３０が送信した報告指示に応答して、直接通信可能な全ての情報端末２０から報告応答を受信したか否かを判定する（Ｓ３０４）。直接通信可能な全ての情報端末２０から報告応答を受信した場合（Ｓ３０４：Ｙｅｓ）、転送指示テーブル生成部１３２は、受信した報告応答のそれぞれに対応する転送指示テーブルを生成する（Ｓ３０６）。
【００６５】
ステップ３０６において、転送指示テーブル生成部１３２は、受信した報告応答に含まれている、それぞれの情報端末２０が既に有しているプログラムの付帯情報を参照して、当該付帯情報が、プログラム格納部１２０に格納されているプログラムの付帯情報と異なる場合に、当該異なる付帯情報のプログラムを有する情報端末２０に対応する格納フラグを１に設定する。これにより、付帯情報がプログラムのバージョンである場合に、情報端末２０は、プログラムのバーッジョンアップだけでなく、プログラムのバージョンダウンにも対応することができる。また、他の例として、転送指示テーブル生成部１３２は、付帯情報がプログラムのバージョンである場合に、情報端末２０が既に有しているプログラムのバージョンが、プログラム格納部１２０に格納されているプログラムのバージョンより古い場合にのみ、対応する情報端末２０の格納フラグを１に設定してもよい。
【００６６】
次に、プログラム送信部１２２は、プログラム格納部１２０から配布すべきプログラムを読み出し、転送指示テーブル生成部１３２が生成した転送指示テーブルのそれぞれに、読み出したプログラムを添付して、転送指示テーブルを送信すべき情報端末２０へ送信し（Ｓ３０８）、本フローチャートに示すプログラム配信サーバ１２の動作は終了する。
【００６７】
図１３は、本発明の第２実施形態に係る情報端末２０の動作の一例を示すフローチャートである。情報端末２０の電源が投入される等の所定のタイミングで、本フローチャートに示す情報端末２０の動作が開始する。まず、無線通信部２００は、プログラム配信サーバ１２および他の情報端末２０のうち、無線通信が可能なものとの間で、例えばＢｌｕｅｔｏｏｔｈを用いて無線通信リンクを確立する（Ｓ４００）。ステップ４００において、プログラム配信サーバ１２または少なくとも１台の情報端末２０との間で無線通信リンクが確立されない場合、本フローチャートに示す情報端末２０の処理は終了する。
【００６８】
次に、報告指示受信部２１０は、無線通信リンクを確立しているプログラム配信サーバ１２または他の情報端末２０から、無線通信部２００を介して報告指示を受信したか否かを判定する（Ｓ４０２）。報告指示を受信していない場合（Ｓ４０２：Ｎｏ）、報告指示受信部２１０は、報告指示を受信するまで、ステップ４０２を所定時間繰り返す。なお、所定時間が経過しても付帯情報を受信しなかった場合、本フローチャートに示す情報端末２０の動作は終了する。
【００６９】
ステップ４０２において、無線通信リンクを確立しているプログラム配信サーバ１２または他の情報端末２０から報告指示を受信した場合（Ｓ４０２：Ｙｅｓ）、報告指示転送部２１２は、報告指示受信部２１０が受信した報告指示に、既に自身の機器ＩＤが付加されているか否かを判定する（Ｓ４０４）。受信した報告指示に、既に自身の機器ＩＤが付加されている場合（Ｓ４０４：Ｙｅｓ）、報告応答生成部２１４および報告応答転送部２１６は、ステップ４０２において受信した報告指示の送信元とは異なる他の情報端末２０から報告応答を受信したか否かを判定する（Ｓ４０８）。
【００７０】
ステップ４０４において、受信した報告指示に、自身の機器ＩＤが付加されていない場合（Ｓ４０４：Ｎｏ）、報告指示転送部２１２は、受信した報告指示に自身の機器ＩＤを付加し、自身の機器ＩＤを付加した報告指示を、ステップ４０２において受信した報告指示の送信元とは異なる他の情報端末２０へ転送し（Ｓ４０６）、ステップ４０８で示した処理を行う。
【００７１】
ステップ４０８において、ステップ４０２において受信した報告指示の送信元とは異なる他の情報端末２０から報告応答を受信していない場合（Ｓ４０８：Ｎｏ）、報告応答生成部２１４および報告応答転送部２１６は、報告指示転送部２１２が報告指示を転送してから所定時間が経過したか否かを判定する（Ｓ４１０）。所定時間が経過していない場合（Ｓ４１０：Ｎｏ）、報告応答生成部２１４および報告応答転送部２１６は、再びステップ４０８に示した処理を行う。所定時間が経過した場合（Ｓ４１０：Ｙｅｓ）、報告応答生成部２１４は、転送した報告指示を含む報告応答を生成し、生成した報告応答を、ステップ４０２において受信した報告指示の送信元の情報端末２０へ送信し（Ｓ４１４）、ステップ４１６に示す処理を行う。
【００７２】
ステップ４０８において、ステップ４０２において受信した報告指示の送信元とは異なる他の情報端末２０から報告応答を受信した場合（Ｓ４０８：Ｙｅｓ）、報告応答転送部２１６は、受信した報告応答に含まれる報告指示を参照して、受信した報告応答を、ステップ４０２において受信した報告指示の送信元の情報端末２０へ転送する（Ｓ４１２）。そして、プログラム取得部２０２は、プログラム配信サーバ１２または他の情報端末２０からプログラムと共に送信された転送指示テーブルを、無線通信部２００を介して受信したか否かを判定する（Ｓ４１６）。プログラム取得部２０２は、プログラム配信サーバ１２または他の情報端末２０がプログラムと共に送信された転送指示テーブルを受信するまで、ステップ４１６を所定時間繰り返す。なお、所定時間が経過してもプログラムと共に送信された転送指示テーブルを受信しなかった場合、本フローチャートに示す情報端末２０の動作は終了する。
【００７３】
ステップ４１６において、プログラム配信サーバ１２または他の情報端末２０からプログラムと共に送信された転送指示テーブルを受信した場合（Ｓ４１６：Ｙｅｓ）、プログラム取得部２０２は、受信した転送指示テーブル内の、自身の機器ＩＤに対応する格納フラグが１か否かを判定する（Ｓ４１８）。受信した転送指示テーブル内の、自身の機器ＩＤに対応する格納フラグが０である場合（Ｓ４１８：Ｎｏ）、報告指示受信部２１０は、ステップ４２２に示す処理を行う。
【００７４】
ステップ４１８において、受信した転送指示テーブル内の、自身の機器ＩＤに対応する格納フラグが１である場合（Ｓ４１８：Ｙｅｓ）、報告指示受信部２１０は、転送指示テーブルと共に取得したプログラムおよび付帯情報で、プログラム格納部２０６に格納されているプログラムおよび付帯情報を更新する（Ｓ４２０）。そして、報告指示受信部２１０は、転送指示テーブルに格納された機器ＩＤに基づいて、受信したプログラムおよび転送指示テーブルを、他の情報端末２０へ転送し（Ｓ４２２）、本フローチャートに示した情報端末２０の動作は終了する。
【００７５】
以上、本発明の第２の実施形態について説明した。上記説明から明らかなように、本実施形態においても、プログラム配信システム１０は、プログラムを配信する場合のプログラム配信サーバ１２の処理負荷を低減することができる。
【００７６】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【００７７】
例えば、情報端末２０の無線通信部２００、プログラム取得部２０２、プログラム転送部２０４、報告指示受信部２１０、報告指示転送部２１２、報告応答生成部２１４、および報告応答転送部２１６は、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等の集積ロジックＩＣによりハード的に実現されるものでもよく、ＤＳＰ（Digital Signal Processor）や汎用計算機によりソフトウェア的に実現されてもよく、あるいは、部分的にハードウェアまたはソフトウェアで実現させた機能ブロックを組み合わせてもよい。
【００７８】
また、本実施形態では、サーバから情報端末２０へ配信される情報を、プログラムを例に説明したが、本発明はこれに限られない。他の例として、サーバから情報端末２０へ配信される情報は、プログラムの差分情報、情報端末２０が取り扱うデータ、または情報端末２０の稼動の許可／不許可を指示する情報等であってもよい。
【００７９】
また、本実施形態では、プログラム配信サーバ１２および情報端末２０は、互いに無線によって通信する構成を例に説明したが、他の例として、プログラム配信サーバ１２および情報端末２０が、通信ネットワークを介して互いに通信を行う構成であってもよい。この場合、プログラム配信サーバ１２が情報端末２０と通信するために用いる通信回線の通信容量が少ない場合に、一部の情報端末２０へ配信したプログラムを、当該一部の情報端末２０が、他の情報端末２０へ転送することにより、プログラム配信サーバ１２のプログラム配信に伴う処理負荷を低減すると共に、プログラムの更新を必要としている全ての情報端末２０へ、より迅速にプログラムを配信することができる。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施形態に係るプログラム配信システム１０の構成を示す図である。
【図２】本発明の第１実施形態に係るプログラム配信サーバ１２の詳細な構成の一例を示すブロック図である。
【図３】プログラム格納部１２０に格納されるデータの構造の一例を示す図である。
【図４】本発明の第１実施形態に係る情報端末２０の詳細な構成の一例を示すブロック図である。
【図５】プログラム格納部２０６に格納されるデータの構造の一例を示す図である。
【図６】本発明の第１実施形態に係るプログラム配信サーバ１２の動作の一例を示すフローチャートである。
【図７】本発明の第１実施形態に係る情報端末２０の動作の一例を示すフローチャートである。
【図８】本発明の第１実施形態に係る情報端末２０のハードウェア構成の一例を示す図である。
【図９】本発明の第２実施形態に係るプログラム配信サーバ１２の詳細な構成の一例を示すブロック図である。
【図１０】本発明の第２実施形態に係る情報端末２０の詳細な構成の一例を示すブロック図である。
【図１１】転送指示テーブル３４が生成される過程を説明するための概念図である。
【図１２】本発明の第２実施形態に係るプログラム配信サーバ１２の動作の一例を示すフローチャートである。
【図１３】本発明の第２実施形態に係る情報端末２０の動作の一例を示すフローチャートである。
【符号の説明】
【００８１】
１０・・・プログラム配信システム、１２・・・プログラム配信サーバ、１２０・・・プログラム格納部、１２００・・・プログラムＩＤ、１２０２・・・付帯情報、１２０４・・・プログラム本体、１２２・・・プログラム送信部、１２４・・・付帯情報送信部、１２６・・・無線通信部、１３０・・・報告指示送信部、１３２・・・転送指示テーブル生成部、２０・・・情報端末、２００・・・無線通信部、２０２・・・プログラム取得部、２０４・・・プログラム転送部、２０６・・・プログラム格納部、２０６０・・・プログラムＩＤ、２０６２・・・付帯情報、２０６４・・・配布形式のプログラム、２０６６・・・実行形式のプログラム、２０８・・・プログラム実行部、２１０・・・報告指示受信部、２１２・・・報告指示転送部、２１４・・・報告応答生成部、２１６・・・報告応答転送部、２２０・・・無線通信部、２２２・・・ＲＯＭ、２２４・・・ＲＡＭ、２２６・・・ＣＰＵ、２２８・・・ＨＤＤ、２３０・・・インターフェイス、２２・・・自動車、３０・・・通信トポロジ、３２・・・報告応答、３２０・・・機器ＩＤ、３２２・・・付帯情報、３４・・・転送指示テーブル、３４０・・・機器ＩＤ、３４２・・・格納フラグ
【図１】
2006178896.tif 000003
【図２】
2006178896.tif 000004
【図３】
2006178896.tif 000005
【図４】
2006178896.tif 000006
【図５】
2006178896.tif 000007
【図６】
2006178896.tif 000008
【図７】
2006178896.tif 000009
【図８】
2006178896.tif 000010
【図９】
2006178896.tif 000011
【図１０】
2006178896.tif 000012
【図１１】
2006178896.tif 000013
【図１２】
2006178896.tif 000014
【図１３】
2006178896.tif 000015