(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022185776
(43)【公開日】2022-12-15
(54)【発明の名称】データ配布装置、データ配布方法、及びコンピュータプログラム
(51)【国際特許分類】
G06F 16/185 20190101AFI20221208BHJP
G06F 9/44 20180101ALI20221208BHJP
【FI】
G06F16/185
G06F9/44
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021093606
(22)【出願日】2021-06-03
(71)【出願人】
【識別番号】000003609
【氏名又は名称】株式会社豊田中央研究所
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】大濱 吉紘
(72)【発明者】
【氏名】木村 好克
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA32
(57)【要約】
【課題】多数の装置へのデータの配布を迅速化するデータ配布装置を提供する。
【解決手段】階層的構造からなるデータの配布に要するコストを算出し、算出したコストを用いて、前記データの配布に要するコストが最適化されるように前記データの階層的構造を選択する階層構造選択部105と、階層構造選択部105によって階層的構造が選択されたデータを配布先装置に配布するデータ伝送部107と、を備える、データ配布装置10が提供される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
階層的構造からなるデータの配布に要するコストを算出し、算出したコストを用いて、前記データの配布に要するコストが最適化されるように前記データの階層的構造を選択する階層構造選択部と、
前記階層構造選択部によって階層的構造が選択されたデータを配布先装置に配布するデータ伝送部と、
を備える、データ配布装置。
【請求項2】
前記階層構造選択部は、前記配布先装置毎に累積記録されたコスト値、前記配布先装置に類似した性能の装置に対して実施した疑似的な配布により記録されたコスト値、前記配布先装置との間の伝送経路及び前記配布先装置の計算処理をシミュレーションして得られたコスト値を使用してコストを算出する、請求項1に記載のデータ配布装置。
【請求項3】
前記階層構造選択部は、前記データの依存関係を利用して前記データの階層的構造を選択する、請求項1又は2に記載のデータ配布装置。
【請求項4】
前記階層構造選択部は、前記データの変更頻度に関する情報を利用して前記データの階層的構造を選択する、請求項1~3のいずれか1項に記載のデータ配布装置。
【請求項5】
前記階層構造選択部は、過去に選択した階層的構造の履歴を参照して、コストの減少が期待できる階層的構造を選択する、請求項1~4のいずれか1項に記載のデータ配布装置。
【請求項6】
前記データの依存関係に基づいて前記データが取り得る階層的構造を列挙するデータ特性分析部をさらに備え、
前記階層構造選択部は、前記データ特性分析部によって列挙された階層的構造のそれぞれに対してコストを算出する、請求項1~5のいずれか1項に記載のデータ配布装置。
【請求項7】
プロセッサが、
階層的構造からなるデータの配布に要するコストを算出し、
算出したコストを用いて、前記データの配布に要するコストが最適化されるように前記データの階層的構造を選択し、
階層的構造が選択されたデータを配布先装置に配布する、
処理を実行する、データ配布方法。
【請求項8】
コンピュータに、
階層的構造からなるデータの配布に要するコストを算出し、
算出したコストを用いて、前記データの配布に要するコストが最適化されるように前記データの階層的構造を選択し、
階層的構造が選択されたデータを配布先装置に配布する、
処理を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ配布装置、データ配布方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
コンピュータプログラム等のデータを、サーバからクライアントに配布するための技術が従来提案されている(例えば特許文献1~3等参照)。
【0003】
特許文献1は、キャッシュ可能な記憶域領域内で、キャッシュしておくと伝送時間の期待値が最小となるイメージの組み合わせを解き、キャッシュする期待値の算出に必要な確率は、過去に稼働した仮想マシンの履歴から集計する技術を開示する。
【0004】
特許文献2は、プロキシサーバが起動した際に要求イメージをイメージサーバから取得し、イメージサーバとプロキシサーバの負荷が集中しないよう管理サーバがプロキシサーバの起動タイミングを管理することで、複数の送信先装置がデータの取得までの時間を短縮できる技術を開示する。
【0005】
特許文献3は、各クライアントで稼働中のコンテナを停止する前に、新しいバージョンのコンテナのイメージをサーバから取得して、別の論理ネットワークで新しいバージョンのコンテナを停止すると同時に論理ネットワークを繋ぎ替えることで、コンテナ内で動作するアプリケーションやミドルウェア等のソフトウェアの更新を効率的に行う技術を開示する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2012-68790号公報
【特許文献2】特開2014-16672号公報
【特許文献3】特開2019-133424号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述した従来技術のように、負荷集中や差分データ管理に着目した技術は開示されているが、データの配布に際してデータ構造に着目したものは無かった。
【0008】
本発明は、上記の点に鑑みてなされたものであり、多数の装置へのデータの配布を迅速化するデータ配布装置、データ配布方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の第1態様に係るデータ配布装置は、階層的構造からなるデータの配布に要するコストを算出し、算出したコストを用いて、前記データの配布に要するコストが最適化されるように前記データの階層的構造を選択する階層構造選択部と、前記階層構造選択部によって階層的構造が選択されたデータを配布先装置に配布するデータ伝送部と、を備える。
【0010】
本発明の第2態様に係るデータ配布装置は、第1態様に係るデータ配布装置であって、前記階層構造選択部は、前記配布先装置毎に累積記録されたコスト値、前記配布先装置に類似した性能の装置に対して実施した疑似的な配布により記録されたコスト値、前記配布先装置との間の伝送経路及び前記配布先装置の計算処理をシミュレーションして得られたコスト値を使用してコストを算出する。
【0011】
本発明の第3態様に係るデータ配布装置は、第1態様又は第2態様に係るデータ配布装置であって、前記階層構造選択部は、前記データの依存関係を利用して前記データの階層的構造を選択する。
【0012】
本発明の第4態様に係るデータ配布装置は、第1態様~第3態様のいずれかに係るデータ配布装置であって、前記階層構造選択部は、前記データの変更頻度に関する情報を利用して前記データの階層的構造を選択する。
【0013】
本発明の第5態様に係るデータ配布装置は、第1態様~第4態様のいずれかに係るデータ配布装置であって、前記階層構造選択部は、過去に選択した階層的構造の履歴を参照して、コストの減少が期待できる階層的構造を選択する。
【0014】
本発明の第6態様に係るデータ配布装置は、第1態様~第5態様のいずれかに係るデータ配布装置であって、前記データの依存関係に基づいて前記データが取り得る階層的構造を列挙するデータ特性分析部をさらに備え、前記階層構造選択部は、前記データ特性分析部によって列挙された階層的構造のそれぞれに対してコストを算出する。
【0015】
本発明の第7態様に係るデータ配布方法は、プロセッサが、階層的構造からなるデータの配布に要するコストを算出し、算出したコストを用いて、前記データの配布に要するコストが最適化されるように前記データの階層的構造を選択し、階層的構造が選択されたデータを配布先装置に配布する、処理を実行する。
【0016】
本発明の第8態様に係るコンピュータプログラムは、コンピュータに、階層的構造からなるデータの配布に要するコストを算出し、算出したコストを用いて、前記データの配布に要するコストが最適化されるように前記データの階層的構造を選択し、階層的構造が選択されたデータを配布先装置に配布する、処理を実行させる。
【発明の効果】
【0017】
本発明によれば、データの配布に要するコストを算出し、算出したコストに応じてデータ構造を変更することで、多数の装置へのデータの配布を迅速化するデータ配布装置、データ配布方法、及びコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【0018】
【
図1】開示の技術の実施形態に係るデータ配布装置を備えたデータ配布システムの概略構成を示す図である。
【
図2】データ配布装置のハードウェア構成を示すブロック図である。
【
図3】データ配布装置の機能構成の例を示すブロック図である。
【
図4】データ特性分析部による階層的構造の列挙例を示す図である。
【
図5】データ特性分析部による集合の作成例を示す図である。
【
図6】伝送特性推定部による予測モデルの生成例を示す例である。
【
図7】データ格納部が格納するデータの例を示す図である。
【
図8】データ配布装置によるデータ配布処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0020】
図1は、本実施形態に係るデータ配布装置を備えたデータ配布システムの概略構成を示す図である。データ配布システムは、データ配布装置10と、データ配布装置10からデータの配布を受ける複数の情報処理装置20と、を含んで構成される。データ配布装置10と、情報処理装置20とは、インターネット等のネットワーク30、特に無線ネットワークで接続される。なお、本実施形態においてデータとは、コンピュータプログラム、ミドルウェアなどの階層的構造を有するデータのことを指す。
【0021】
データ配布装置10は、情報処理装置20に配布するデータを管理し、情報処理装置20へデータを配布する装置である。データ配布装置10は、データの更新が発生したタイミングで、又は、情報処理装置20からデータ配布の要求があったタイミングで、ネットワーク30を通じて、管理しているデータを情報処理装置20に配布する。
【0022】
情報処理装置20は、データ配布装置10から配布されるデータを使用して動作する装置である。情報処理装置20は、例えばスマートフォンのような高性能のプロセッサを備えた装置であってもよいが、本実施形態では比較的低性能の装置を想定する。そして、データ配布装置10と情報処理装置20との間のネットワーク30は、高速大容量の通信路であってもよいが、比較的低速かつ低容量の通信路を想定する。すなわち、データ配布装置10は、比較的低性能である情報処理装置20に対して、低速かつ低容量のネットワーク30を通じてデータを配布するために、データ構造を再構成し、再構成したデータを配布することを特徴とする装置である。
【0023】
図2は、データ配布装置10のハードウェア構成を示すブロック図である。
【0024】
図2に示すように、データ配布装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16及び通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0025】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12またはストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12またはストレージ14に記録されているプログラムにしたがって、上記各構成の制御および各種の演算処理を行う。本実施形態では、ROM12またはストレージ14には、情報処理装置20に配布するデータの構造を変更し、構造を変更したデータを情報処理装置20にネットワーク30を通じて配布するデータ配布プログラムが格納されている。
【0026】
ROM12は、各種プログラムおよび各種データを格納する。RAM13は、作業領域として一時的にプログラムまたはデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)、SSD(Solid State Drive)またはフラッシュメモリ等の記憶装置により構成され、オペレーティングシステムを含む各種プログラム、および各種データを格納する。
【0027】
入力部15は、マウス等のポインティングデバイス、およびキーボードを含み、各種の入力を行うために使用される。
【0028】
表示部16は、たとえば、液晶ディスプレイであり、各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能しても良い。
【0029】
通信インタフェース17は、情報処理装置20等の他の機器と通信するためのインタフェースであり、たとえば、イーサネット(登録商標)若しくはFDDI等の有線通信の規格、又は、4G、5G、若しくはWi-Fi(登録商標)等の無線通信の規格が用いられる。
【0030】
上記のデータ配布プログラムを実行する際に、データ配布装置10は、上記のハードウェア資源を用いて、各種の機能を実現する。データ配布装置10が実現する機能構成について説明する。
【0031】
図3は、データ配布装置10の機能構成の例を示すブロック図である。
【0032】
図3に示すように、データ配布装置10は、機能構成として、データ特性分析部101、データ変更履歴分析部102、伝送特性推定部103、伝送特性生成部104、階層構造選択部105、データ格納部106、及びデータ伝送部107を有する。各機能構成は、CPU11がROM12またはストレージ14に記憶されたデータ配布プログラムを読み出し、実行することにより実現される。
【0033】
データ特性分析部101は、データ配布装置10が配布するデータの特性を分析する。具体的には、データ特性分析部101は、配布対象のデータにおける依存関係を参照し、参照した依存関係に基づいて、配布対象のデータが取り得る階層的構造を列挙する。
【0034】
図4は、データ特性分析部101による階層的構造の列挙例を示す図である。
図4では、有向グラフGによってデータの依存関係を示している。データの3つの要素a、b、cは頂点集合Vであり、要素b、cはいずれもaを参照していることを辺集合Eで表している。この場合において、データ特性分析部101は、階層的構造Dとして、階層数が1つの場合を1通り、2つの場合を3通り、3つの場合を2通りの6通りを列挙する。データ特性分析部101は、列挙した各階層的構造について、特徴量として、含まれるファイル数(Files)、データサイズ(Size)、及び直近の更新回数(Commits)を集計する。直近の更新回数は、データ変更履歴分析部102での重要度P(d)の算出に用いられる。dは階層的構造Dの中の1つの要素である。
【0035】
なお、依存関係を参照しない場合、3つの要素a、b、cについて全ての組み合わせを列挙すると12通りとなる。従って、データ特性分析部101は、依存関係を参照することで、依存関係を参照しない場合と比較して列挙する数を削減し、計算量を低減させることが出来る。
【0036】
データ特性分析部101による処理の具体例を示す。
【0037】
データ特性分析部101は、まず列挙結果の集合Cを初期化する。続いて、データ特性分析部101は、頂点集合Vの1,2,・・・,|G|群への分け方を列挙する。頂点集合Vの分け方は2
|G|-1通りである。続いて、データ特性分析部101は、各群内の要素数のベクトルを元とする集合H
|G|を作る。
図5は、データ特性分析部101による集合の作成例を示す図である。頂点集合Vが3つの要素からなる場合、データ特性分析部101は、4通りに頂点集合Vを分けることが出来、
図5のように集合H
3を作ることができる。
【0038】
続いて、データ特性分析部101は、列挙結果の集合C’を初期化する。続いて、データ特性分析部101は、頂点集合V’から、h0個の全ての組み合わせを元とする集合V’’を作成する。例えば頂点集合V’が3つの要素a、b、cからなる場合、データ特性分析部101は、以下の3つの集合V’’を作成できる。
V’’={{a,b,c}}
V’’={{a},{b},{c}}
V’’={{a,b},{b,c},{a,c}}
【0039】
続いて、データ特性分析部101は、集合H|G|の全ての元について、後述の処理結果を集合C’に追加する。
【0040】
続いて、データ特性分析部101は、全てのv’’(v’’∈V’’)につき、頂点集合V’からv’’を取り出した後のV’-v’’が、集合Ev’’の元を含まない場合、集合C’にv’’を追加する。また、V’-v’’≠φであれば、hからh0を除いたh0 ̄と、V’-v’’とにより、処理結果を集合C’に追加する。
【0041】
データ変更履歴分析部102は、階層構造選択部105が過去に選択した階層的構造の差分を取得する。そして、データ変更履歴分析部102は、取得した差分を、伝送時間の期待値に反映させる。データ変更履歴分析部102による差分の取得及び伝送時間の期待値への反映は、データを配布すべき情報処理装置20の数が多数存在し、かつ、それぞれの情報処理装置20のデータ取得周期が一定でない場合に好適である。データ変更履歴分析部102は、データ特性分析部101が出力する直近の更新回数(Commits)から重要度P(d)を算出する。
【0042】
伝送特性推定部103は、データ配布装置10からのデータの配布に要する時間を推定する。具体的には、処理能力及び通信速度が異なる仮想的な情報処理装置20を複数用意し、ダミーデータで生成したデータを実際にデータ配布装置10から情報処理装置20にダウンロードさせる。そして、伝送特性推定部103は、ダウンロードに要した時間を計測し、計測結果から予測モデルf(Files,Sizes,Layers|処理性能,通信速度)を生成する。Layersは階層数である。伝送特性推定部103は、例えば、回帰分析を用いて、計測結果から予測モデルを生成する。
【0043】
図6は、伝送特性推定部103による予測モデルの生成例を示す例である。
図6では、処理性能が高く、通信速度が速い場合の予測モデル、及び処理性能が低く、通信速度が遅い場合の予測モデルの例が示されている。
【0044】
ダミーデータで、階層的構造を有するデータ(イメージ)を生成するためには、例えば、最小限のOSの機能が実装された公知のイメージを用いて、データのコピー又は変換を行うコマンドにパラメータを振って生成したランダムなバイナリデータを追加すればよい。そして、伝送特性推定部103は、生成したダミーデータで構成されたイメージを所定の場所に格納し、仮想的な情報処理装置20にダウンロードさせて、ダウンロードに要した時間を計測することができる。
【0045】
伝送特性生成部104は、ネットワーク30で生じるエラー、通信切断などの、通信品質を仮定したシミュレーション又は理論計算を行う。伝送特性生成部104によるシミュレーション又は理論計算の結果は、伝送特性推定部103による予測モデルの生成に用いられる。伝送特性生成部104によってシミュレーション又は理論計算を行うことで、ネットワーク30の通信品質が時間的に変動するような場合であっても、伝送特性推定部103が生成する予測モデルfの精度を高めることができる。
【0046】
階層構造選択部105は、データの配布に要するコストを算出し、算出したコストを用いて、データの配布に要するコストが最適化されるようにデータの階層的構造を選択する。具体的には、階層構造選択部105は、データ特性分析部101が生成した、各データ構造の特徴量及び階層数を、伝送特性推定部103が生成した予測モデルfに入力し、伝送時間を予測する。階層構造選択部105は、データの伝送時間を予測する際に、データ変更履歴分析部102が出力する当該データの重要度P(d)を用いてもよい。伝送時間は本発明のコストの一例である。そして、階層構造選択部105は、伝送時間の予測値を、更新回数を重みとして期待値に変換し、情報処理装置20の処理能力と通信速度とで層別し、期待値が最小のものを最適な階層的構造として選択する。
【0047】
階層構造選択部105による階層的構造の選択処理の具体例について詳細に説明する。
【0048】
階層構造選択部105は、まずソースコードが格納されているリポジトリをクローンし、基礎データを収集する。基礎データとして収集されるのは、パッケージ群毎のファイル数(Files)、コミット履歴から得られるパッケージ群のコミット回数(Commits)、依存関係順にビルドされたイメージの各階層のサイズ(Sizes)である。
【0049】
階層構造選択部105は、続いて、依存関係の制約を考慮した列挙により、階層データ構造候補群を生成する。そして、階層構造選択部105は、各階層データ構造候補について、最上位から順に全階層について、第l層内のパッケージ群のFiles,Commits,Sizesのそれぞれの総和を求める。階層構造選択部105は、l<Lならば、第l+1層内のFiles,Sizesのそれぞれの総和を求める。
【0050】
階層構造選択部105は、続いて、各階層データ構造候補について、各階層のFiles,Sizes、及びLayers(=L-l+1)を用いて、回帰モデルから伝送時間を予測する。そして、階層構造選択部105は、各階層データ構造候補について予測した伝送時間に対して各階層のCommitsを重みに与えて加重平均を求める。階層構造選択部105は、求めた加重平均を期待伝送時間とする。最後に、階層構造選択部105は、期待伝送時間が最小となる階層データ構造候補を出力することで、階層的構造を選択する。
【0051】
階層構造選択部105は、このように階層構造を選択することで、データ内の依存関係を考慮して、他の要素の依存が多い要素、更新頻度が多い要素を高い階層に配置するような階層的構造を選択できる。また、データ配布装置10は、データ内の依存関係を考慮して、他の要素への依存が少ないモジュール、更新頻度が低いモジュールを低い階層に配置する。
【0052】
階層構造選択部105は、過去に選択した階層的構造の履歴を参照して、コストの減少が期待できる階層的構造を選択してもよい。過去に選択した階層的構造の履歴を参照して、コストの減少が期待できる階層的構造を階層構造選択部105が選択することで、データ配布装置10は、データの階層的構造の階層数が多くなり、列挙が困難な場合であっても、最適な階層的構造を選択することができる。
【0053】
データ格納部106は、階層構造選択部105が選択した階層的構造に適合するようにデータを変換して、情報処理装置20の処理能力と通信速度とで層別して引き出せるように格納する。
図7は、データ格納部106が格納するデータの例を示す図である。データ格納部106は、例えばストレージ14にデータを格納する。データ格納部106は、配布するデータにタグを付与してもよい。データ格納部106は、例えば、データの識別名、情報処理装置20の処理能力を示すラベル、情報処理装置20の通信速度を示すラベルをタグとして付与してもよい。
【0054】
データ伝送部107は、情報処理装置20に対して、データ格納部106に格納されたデータを配布する。データ伝送部107は、データを配布する際には、階層的構造で格納されたデータの一部を情報処理装置20に配布する。データ伝送部107は、データにタグが付与されている場合、配布相手の情報処理装置20の能力に応じたタグが付与されているデータをデータ格納部106から取り出し、取り出したデータを情報処理装置20へ送信する。
【0055】
データ配布装置10は、
図3に示した機能構成を有することで、データの配布に要するコストを算出し、算出したコストに応じてデータ構造を変更することで、多数の装置へのデータの配布を迅速化することができる。
【0056】
次に、データ配布装置10の作用について説明する。
【0057】
図8は、データ配布装置10によるデータ配布処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14からデータ配布プログラムを読み出して、RAM13に展開して実行することにより、データ配布処理が行なわれる。
【0058】
CPU11は、情報処理装置20へ配布するデータの特性を分析する(ステップS101)。具体的には、CPU11は、配布対象のデータにおける依存関係を参照し、参照した依存関係に基づいて、配布対象のデータが取り得る階層的構造を列挙する。
【0059】
ステップS101に続いて、CPU11は、データ配布装置10と情報処理装置20との間の伝送特性を推定する(ステップS102)。具体的には、CPU11は、処理能力及び通信速度が異なる仮想的な情報処理装置20を複数用意し、ダミーデータで生成したデータを実際にデータ配布装置10から情報処理装置20にダウンロードさせる。そして、CPU11は、ダウンロードに要した時間を計測し、計測結果から予測モデルf(Files,Sizes,Layers|処理性能,通信速度)を生成する。Layersは階層数である。CPU11は、例えば、回帰分析を用いて、計測結果から予測モデルを生成する。
【0060】
ステップS102に続いて、CPU11は、データ配布装置10から情報処理装置20に配布するデータの階層構造を選択する(ステップS103)。具体的には、CPU11は、CPU11が生成した各データ構造の特徴量及び階層数を、ステップS102で生成した予測モデルfに入力し、伝送時間を予測する。そして、CPU11は、伝送時間の予測値を、更新回数を重みとして期待値に変換し、情報処理装置20の処理能力と通信速度とで層別し、期待値が最小のものを最適な階層的構造として選択する。
【0061】
ステップS103に続いて、CPU11は、選択した階層構造のデータをストレージ14に格納する(ステップS104)。
【0062】
ステップS104に続いて、CPU11は、格納したデータを情報処理装置20に配布する(ステップS105)。CPU11は、情報処理装置20からの要求に応じて、又はデータが変更されて格納されたタイミング等の所定のタイミングで、データを情報処理装置20に配布する。
【0063】
本実施形態のデータ配布装置10の効果を説明する。データ配布装置10がソフトウェアを情報処理装置20に配布する場合を例示する。ソフトウェアは階層的構造で記述されたデータである。データ配布装置10は、ソフトウェア内のモジュール構造の依存関係を考慮して、他のモジュールへの依存が多いモジュール、更新頻度が多いモジュールを高い階層に配置する。また、データ配布装置10は、ソフトウェア内のモジュール構造の依存関係を考慮して、他のモジュールへの依存が少ないモジュール、更新頻度が低いモジュールを低い階層に配置する。また、データ配布装置10は、情報処理装置20との間の通信品質、情報処理装置20の処理能力、情報処理装置20の記憶域の書き込み速度等を考慮して、隣接のモジュールを単一の階層にまとめる。データ配布装置10は、このようにデータを自動的に階層化することで、配布先の情報処理装置20の状況に最適な構造でソフトウェアを保持でき、ソフトウェアの配布を迅速化することができる。
【0064】
さらに、データ配布装置10は、情報処理装置20の処理能力、情報処理装置20の記憶域の書き込み速度等を考慮してデータを階層化することで、ソフトウェアのバージョンアップのみならず、バージョンアップ前のバージョンに戻すことも容易となる。
【0065】
上記実施形態では、ネットワーク30を通じたデータの配布を行う場合を説明したが、本発明は係る例に限定されるものではなく、例えば、記録媒体を通じたデータの配布を行う場合にも適用可能である。
【0066】
また上記実施形態では、情報処理装置20の処理能力、情報処理装置20の記憶域の書き込み速度等を考慮して、データ配布装置10がデータを階層化する例を示したが、情報処理装置20の特性の例として、通信速度、通信可能時間帯、受信したデータのエラー率、受信する場所(障害物に囲まれているかどうか否か等)等を考慮して、データ配布装置10がデータを階層化してもよい。
【0067】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したデータ配布処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、データ配布処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0068】
また、上記各実施形態では、データ配布処理のプログラムがROMまたはストレージに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0069】
10 データ配布装置
20 情報処理装置