(57)【要約】  各端末は、端末（１０１ａ〜１０１ｄ）にてファイルを共有する。また、各端末は、ユーザからファイルの共有化処理の処理要求を受け付けた場合、端末（１０１ａ〜１０１ｄ）の中からファイルの共有化処理を実行する端末を選択して、該端末にファイルの共有化処理を割り当てる。その際、各端末は、端末（１０１ａ〜１０１ｄ）の各端末の共有化処理の完了時間と、各端末のバッテリ残量とを考慮して、各端末の評価値を算出する。ここで、評価値とは、ファイルの共有化処理の割当先となる端末を選択する際の指標となるものである。評価値は、各端末の完了時間が短いほど高くなり、各端末のバッテリ残量が多いほど高くなるように算出される。各端末は、端末（１０１ａ〜１０１ｄ）の中から評価値の高い端末を選択して、該端末にファイルの共有化処理を割り当てる。
2012124064.tif 000002
【特許請求の範囲】
【請求項１】
第１端末は、前記第１端末を含む複数の端末の中から、前記複数の端末で複数のファイルを共有するための共有化処理を行う第２端末を、前記複数の端末のバッテリ残量および前記共有化処理の処理時間に基づいて選択し、
前記第２端末に前記共有化処理を割り当てること
を特徴とするファイル共有化方法。
【請求項２】
前記共有化処理は、前記複数のファイルに分割する分割処理と前記複数のファイルを復元する復元処理とを含むこと
を特徴とする請求項１に記載のファイル共有化方法。
【請求項３】
前記複数のファイルがアクセスされるときに前記バッテリ残量を取得すること
を特徴とする請求項１または２に記載のファイル共有化方法。
【請求項４】
前記複数の端末に関するパラメータおよびバッテリ残量を前記複数の端末の共有ファイルに登録すること
を特徴とする請求項１〜３のいずれか一つに記載のファイル共有化方法。
【請求項５】
前記複数のファイルのサイズ、前記複数のファイルの分割処理速度、前記複数のファイルの復元処理速度、前記複数の端末に内蔵される第１ストレージからの読出速度、前記第１ストレージへの書込速度、前記複数の端末に着脱される第２ストレージからの読出速度、前記第２ストレージへの書込速度、前記複数の端末間の通信速度、または、前記複数の端末の端末数を含むパラメータに基づいて前記処理時間を計算すること
を特徴とする請求項１〜４のいずれか一つに記載のファイル共有化方法。
【請求項６】
前記第１端末は、前記複数のファイルへの書き込み要求に基づいて前記複数の端末間の通信速度を閾値と比較し、
前記通信速度が前記閾値よりも小さいときには前記書き込み要求に対応するデータを前記第１端末のストレージに書き込むこと
を特徴とする請求項１〜５のいずれか一つに記載のファイル共有化方法。
【請求項７】
前記通信速度が前記閾値以上になったときに、前記データを前記複数のファイルに反映すること
を特徴とする請求項６に記載のファイル共有化方法。
【請求項８】
第１ＣＰＵと、
前記第１ＣＰＵを含む複数のＣＰＵで共有化される複数のファイルの少なくとも一部と、を含み、
前記第１ＣＰＵは、前記複数のＣＰＵの中から、前記複数のＣＰＵで前記複数のファイルを共有するための共有化処理を行う第２ＣＰＵを、前記複数のＣＰＵのうちの対応するＣＰＵを含む複数の端末のバッテリ残量および前記複数のＣＰＵのそれぞれの前記複数のファイルの共有化処理の処理時間に基づいて選択し、前記第２ＣＰＵに前記複数のファイルの共有化処理を割り当てること
を特徴とする端末。
【請求項９】
前記複数のＣＰＵに関するパラメータおよび前記複数のＣＰＵのバッテリ残量を登録する取得部を含むこと
を特徴とする請求項８に記載の端末。
【請求項１０】
前記複数のＣＰＵのそれぞれについて、前記複数のファイルのサイズ、前記複数のファイルの分割処理速度、前記複数のファイルの復元処理速度、前記複数の端末に内蔵される第１ストレージからの読出速度、前記第１ストレージへの書込速度、前記複数の端末に着脱される第２ストレージからの読出速度、前記第２ストレージへの書込速度、前記複数の端末間の通信速度、または前記複数の端末の数を含むパラメータに基づいて前記処理時間を計算する算出部を含むこと
を特徴とする請求項８または９に記載の端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルを共有するファイル共有化方法および端末に関する。
【背景技術】
【０００２】
従来、複数の端末にてファイルを共有する技術が開示されている。例えば、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）型のファイル共有システムにおいて、ファイルから分割された分割データを複数の端末がそれぞれ記憶するものがある。ファイル共有システムでは、ファイルの分割データを複数の端末に分散配置することにより、不正アクセスに対するファイルの秘匿性の確保や、個々の端末の記憶容量よりも大きなデータサイズのファイルの共有を可能にしている。【０００３】
各端末は、ユーザからファイルの共有化処理の処理要求を受け付け、該処理要求に応じた共有化処理を行う。ここで、処理要求とは、例えば、ファイルの読出要求や、ファイルの書込要求である。また、共有化処理とは、例えば、ファイルから分割された複数の分割データを各端末に分散配置する書込処理や、各端末に記憶されている分割データを収集してファイルを復元させる読出処理である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７５９３７号公報
【特許文献２】特開２００５−９２２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、ファイルの共有化処理を完了するまでにかかる時間が増大してしまうことがあるといった問題があった。【０００６】
例えば、バッテリの充電が十分でない端末が処理要求をユーザから受け付けた場合、共有化処理を完了するよりも前にバッテリが切れてしまい、共有化処理が中断されてしまうことがある。この場合、例えば、バッテリを充電したり付け替えたりしてから共有化処理を再開することになり、共有化処理を完了するまでの時間が増大してしまう。【０００７】
また、例えば、他の端末よりも処理速度の遅い端末が処理要求をユーザから受け付けた場合、共有化処理を完了するまでの処理時間が、他の端末における処理時間よりも長くなってしまう場合がある。【０００８】
本発明は、上述した従来技術による問題点を解消するため、ファイルの共有化処理を効率的に行うことができるファイル共有化方法および端末を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、第１端末は、前記第１端末を含む複数の端末の中から、前記複数の端末で複数のファイルを共有するための共有化処理を行う第２端末を、前記複数の端末のバッテリ残量および前記共有化処理の処理時間に基づいて選択し、前記第２端末に前記共有化処理を割り当てる。
【発明の効果】
【００１０】
本発明の一側面によれば、ファイルの共有化処理を効率的に行うことができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態１にかかるファイル共有化方法の一実施例を示す説明図である。
【図２】図２は、実施の形態２にかかるファイル共有システムの一例を示す説明図である。
【図３】図３は、共有対象となるファイルの書込処理の完了時間の算出例を示す説明図（その１）である。
【図４】図４は、共有対象となるファイルの書込処理の完了時間の算出例を示す説明図（その２）である。
【図５】図５は、実施の形態２にかかる端末のハードウェア例を示すブロック図である。
【図６】図６は、ファイル共有グループＤＢの記憶内容の一例を示す説明図である。
【図７】図７は、実施の形態２にかかる端末の機能の一例を示すブロック図である。
【図８】図８は、実施の形態２にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。
【図９】図９は、実施の形態２にかかる端末の通信速度収集処理手順の一例を示すフローチャートである。
【図１０】図１０は、実施の形態２にかかる端末のストレージ挿抜検出処理手順の一例を示すフローチャートである。
【図１１】図１１は、実施の形態２にかかる端末の書込要求受付処理手順の一例を示すフローチャートである。
【図１２】図１２は、実施の形態２にかかる端末の評価値算出処理手順の一例を示すフローチャートである。
【図１３】図１３は、実施の形態２にかかる端末の書込割当処理手順の一例を示すフローチャートである。
【図１４】図１４は、共有対象となるファイルの読出処理の完了時間の算出例を示す説明図（その１）である。
【図１５】図１５は、共有対象となるファイルの読出処理の完了時間の算出例を示す説明図（その２）である。
【図１６】図１６は、ファイル共有グループＤＢの記憶内容の一例を示す説明図である。
【図１７】図１７は、実施の形態３にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。
【図１８】図１８は、実施の形態３にかかる端末のストレージ挿抜検出処理手順の一例を示すフローチャートである。
【図１９】図１９は、実施の形態３にかかる端末の読出要求受付処理手順の一例を示すフローチャートである。
【図２０】図２０は、実施の形態３にかかる端末の読出割当処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかるファイル共有化方法および端末の実施の形態を詳細に説明する。
【００１３】
（実施の形態１）
まず、実施の形態１にかかるファイル共有化方法の一実施例について説明する。図１は、実施の形態１にかかるファイル共有化方法の一実施例を示す説明図である。図１において、ファイル共有システム１００は、端末１０１ａ〜１０１ｄを含む。
【００１４】
ファイル共有システム１００において、各端末は、端末１０１ａ〜１０１ｄにてファイルを共有する。端末１０１ａ〜１０１ｄは、例えば、携帯電話や、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）や、ノートＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。共有対象となるファイルは、例えば、複数のユーザで共有する写真や動画などの画像ファイルである。
【００１５】
各端末は、ユーザからファイルの共有化処理の処理要求を受け付けた場合、端末１０１ａ〜１０１ｄの中からファイルの共有化処理を実行する端末を選択して、該端末にファイルの共有化処理を割り当てる。ファイルの共有化処理とは、複数の端末にてファイルを共有するための処理である。共有化処理には、例えば、ファイルの書込処理および読出処理が含まれる。
【００１６】
ここで、ファイルの共有化処理を実行する端末の処理能力が高いほど、共有化処理を完了するまでにかかる完了時間は短くなる。一方、ファイルの共有化処理を実行する端末の処理能力が低いほど、共有化処理を完了するまでにかかる完了時間は長くなる。また、ファイルの共有化処理を実行中の端末のバッテリが切れた場合、共有化処理の中断や再開などにより、共有化処理の処理要求をユーザから受け付けてから共有化処理を完了するまでの時間が増加してしまう。
【００１７】
そこで、実施の形態１では、各端末は、端末１０１ａ〜１０１ｄの各端末の共有化処理の完了時間と、各端末のバッテリ残量とを考慮して、各端末の評価値を算出する。ここで、評価値とは、ファイルの共有化処理の割当先となる端末を選択する際の指標となるものである。
【００１８】
完了時間とは、ユーザから共有化処理の処理要求を受け付けてから共有化処理を完了するまでにかかる時間である。ただし、この完了時間は、共有化処理の実行中に、バッテリ切れなどにより共有化処理が中断されないことを前提とする時間である。完了時間は、各端末のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の処理速度や、各端末間の通信速度などにより算出される。図１の例では、完了時間が「長」である端末１０１ｃ，１０１ｄは、完了時間が「短」である端末１０１ａ，１０１ｂよりも完了時間が長いことを示している。
【００１９】
バッテリ残量とは、各端末に対して電気を供給するバッテリの残量である。具体的に、例えば、バッテリ残量は、バッテリの残量や、バッテリに充電可能な電気容量に対する残量の割合によって表現される。図１の例では、バッテリ残量が「多」である端末１０１ｂ，１０１ｄは、バッテリ残量が「少」である端末１０１ａ，１０１ｃよりも、バッテリ残量が多いことを示している。
【００２０】
ここでは、評価値は、各端末の完了時間が短いほど高くなり、各端末のバッテリ残量が多いほど高くなるように算出される。各端末は、端末１０１ａ〜１０１ｄの中から評価値の高い端末を選択して、該端末にファイルの共有化処理を割り当てる。以下、端末１０１ａがファイルの共有化処理の処理要求を受け付けた場合を想定して、共有化処理の割当例について説明する。
【００２１】
端末１０１ａは、ユーザからファイルの共有化処理の処理要求を受け付けた場合、各端末の評価値を算出する。図１の例では、完了時間が「短」、バッテリ残量が「少」である端末１０１ａの評価値として「中」が算出されている。また、完了時間が「短」、バッテリ残量が「多」である端末１０１ｂの評価値として「高」が算出されている。また、完了時間が「長」、バッテリ残量が「少」である端末１０１ｃの評価値として「低」が算出されている。また、完了時間が「長」、バッテリ残量が「多」である端末１０１ｄの評価値として「中」が算出されている。
【００２２】
ここで、評価値が「中」である端末１０１ａ，１０１ｄは、評価値が「高」である端末１０１ｂよりもファイルの共有化処理を実行する端末として推奨されるべき度合いが低いことを示している。また、評価値が「中」である端末１０１ａ，１０１ｄは、評価値が「低」である端末１０１ｃよりもファイルの共有化処理を実行する端末として推奨されるべき度合いが高いことを示している。
【００２３】
この場合、端末１０１ａは、端末１０１ａ〜１０１ｄの中から評価値の最も高い端末１０１ｂを選択して、端末１０１ｂに共有化処理を割り当てる。この結果、端末１０１ｂにより、ファイルの共有化処理が実行される。
【００２４】
以上説明した実施の形態１にかかるファイル共有化方法によれば、ファイルを共有する各端末のバッテリ残量および共有化処理の完了時間に基づいて、共有化処理の割当先となる端末を選択することができる。これにより、共有化処理の実行中にバッテリが切れる可能性ができるだけ低く、共有化処理が完了するまでにかかる完了時間ができるだけ短くなるような端末を、共有化処理の割当先となる端末として選択することができる。この結果、共有化処理の実行中におけるバッテリ切れを防止するとともに共有化処理の処理時間の短縮化を図ることができる。
【００２５】
（実施の形態２）
（ファイル共有システムの一例）
つぎに、実施の形態２にかかるファイル共有システムについて説明する。実施の形態２では、共有対象となるファイルの共有化処理として、ファイルの書込処理を行う場合を例に挙げて説明する。ファイルの書込処理とは、ファイルを複数の分割データに分割して、複数の端末に分散配置する処理である。なお、実施の形態１で説明した箇所と同一箇所については説明を省略する。
【００２６】
図２は、実施の形態２にかかるファイル共有システムの一例を示す説明図である。図２において、ファイル共有システム２００は、ｍ個の端末２０１−１〜２０１−ｍを含むＰ２Ｐ型のシステムである。ファイル共有システム２００において、端末２０１−１〜２０１−ｍは、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク２０２を介して接続されている。また、端末２０１−１〜２０１−ｍは、端末間で直接通信可能であってもよく、また、基地局を介して通信可能であってもよい。なお、以下の説明では、端末２０１−１〜２０１−ｍのうち任意の端末を「端末２０１−ｋ」と表記する（ｋ＝１，２，…，ｍ）。
【００２７】
各端末２０１−ｋには、共有対象となるファイルの書込処理を行う場合に共有対象となるファイルを分割する分割速度や、各端末２０１−ｋが有するストレージの書込速度などが設定されている。ストレージとは、メインメモリを補助するための外部記憶装置であり、端末２０１−ｋに内蔵されている内蔵ストレージと、着脱自在な可搬ストレージとがある。内蔵ストレージには、例えば、フラッシュメモリがある。また、可搬ストレージには、例えば、ＳＤカードがある。
【００２８】
端末２０１−ｋは、ユーザからファイル共有の開始要求を受け付けた場合、ファイル共有グループの設定を行う。ファイル共有グループとは、ファイルを共有する複数の端末である。ファイル共有グループの設定とは、端末２０１−ｋがファイル共有グループの各端末のアドレス情報などを取得することにより、ファイルを共有可能な環境を設定することである。
【００２９】
端末２０１−ｋは、ファイル共有グループの設定を行ってからファイル共有の終了要求をユーザから受け付けてファイル共有を終了するまで、以下の処理を行う。なお、ファイル共有を終了する契機は、ユーザからの終了要求の受け付けに限るものではない。例えば、端末２０１−ｋは、ファイル共有を開始してから所定時間が経過した場合にファイル共有を終了するものであってもよい。
【００３０】
まず、端末２０１−ｋは、端末２０１−１〜２０１−ｍの評価値の算出に用いる各種パラメータの値を取得してファイル共有グループＤＢ（Ｄａｔｅ  Ｂａｓｅ）に登録する。評価値とは、ファイルの書込処理の割当先となる端末を選択する際の指標となるものである。各種パラメータとは、例えば、端末２０１−ｋと他の端末との間の通信速度や、端末２０１−１〜２０１−ｍのバッテリ残量や、端末２０１−１〜２０１−ｍのストレージの書込速度などである。なお、ファイル共有グループＤＢについての詳細な説明は、図６を用いて後述する。
【００３１】
つぎに、端末２０１−ｋは、ユーザから共有対象となるファイルに対する書込要求を受け付けた場合に、ファイル共有グループＤＢに登録されている各種パラメータの値から評価値を算出し、評価値の最も高い端末を、書込処理の割当先の端末として選択する。そして、端末２０１−ｋは、選択した端末に対して、ファイルの書込処理を割り当てる。
【００３２】
ファイルの書込処理を割り当てるとは、ファイルの書込処理を実行させることである。例えば、ファイルに対する書込要求を受け付けた端末２０１−１の評価値が最も高い場合、端末２０１−１が書込処理を実行する。一方、ファイルに対する書込要求を受け付けた端末２０１−１とは異なる端末の評価値が最も高い場合、端末２０１−１は、評価値が最も高い端末に対して、ファイルの書込処理の処理要求を送信する。処理要求を受け付けた端末は、ファイルの書込処理を実行する。
【００３３】
（ファイルの書込処理の完了時間の算出例）
つぎに、ファイル共有システム２００において、端末２０１−１〜２０１−３がファイル共有グループである場合を想定して、共有対象となるファイルの書込処理の完了時間の算出例について説明する。ファイルの書込処理の完了時間とは、ユーザからの書込要求があってから、ファイルの書込処理が完了するまでにかかる時間である。ここでは一例として、端末２０１−１がユーザから書込要求を受け付けた場合を例に挙げて説明する。
【００３４】
図３および図４は、共有対象となるファイルの書込処理の完了時間の算出例を示す説明図である。まず、図３を用いて、共有対象となるファイル３０１の書込要求をユーザから受け付けた端末２０１−１がファイルの書込処理を実行する場合の、書込処理の完了時間（ここでは、「端末２０１−１の完了時間ＣW」という）の算出例について説明する。
【００３５】
図３において、端末２０１−１の完了時間ＣWは、分割時間Ｃ１と、書込時間Ｃ２と、書込時間Ｃ３と、書込時間Ｃ４と、から算出される。ここで、分割時間Ｃ１は、端末２０１−１によってファイル３０１を、分割データ３０１ａ〜３０１ｃに分割する際にかかる時間である。また、書込時間Ｃ２は、端末２０１−１によってファイル３０１から分割された分割データ３０１ａを端末２０１−１のストレージに書き込む際にかかる時間である。
【００３６】
また、書込時間Ｃ３は、分割データ３０１ｂが端末２０１−１から端末２０１−２へ転送される際にかかる時間と、端末２０１−２によって分割データ３０１ｂを端末２０１−２のストレージに書き込む際にかかる時間と、の合計時間である。すなわち、書込時間Ｃ３は、分割データ３０１ｂが、端末２０１−１から端末２０１−２に転送されて書き込まれるまでにかかる所要時間である。
【００３７】
また、書込時間Ｃ４は、分割データ３０１ｃが端末２０１−１から端末２０１−３へ転送される際にかかる時間と、端末２０１−３によって分割データ３０１ｃを端末２０１−３のストレージに書き込む際にかかる時間と、の合計時間である。すなわち、書込時間Ｃ４は、分割データ３０１ｃが、端末２０１−１から端末２０１−３に転送されて書き込まれるまでにかかる所要時間である。
【００３８】
そして、端末２０１−１の完了時間ＣWは、分割時間Ｃ１および書込時間Ｃ２の合計時間と、分割時間Ｃ１および書込時間Ｃ３の合計時間と、分割時間Ｃ１および書込時間Ｃ４の合計時間と、に基づいて算出される。例えば、端末２０１−１は、分割時間Ｃ１および書込時間Ｃ２の合計時間と、分割時間Ｃ１および書込時間Ｃ３の合計時間と、分割時間Ｃ１および書込時間Ｃ４の合計時間とのうちの最大の合計時間を、端末２０１−１の完了時間ＣWとして算出する。
【００３９】
つぎに、図４を用いて、端末２０１−１が共有対象となるファイル３０１の書込要求をユーザから受け付け、端末２０１−２が書込処理を実行する場合の、書込処理の完了時間（ここでは、「端末２０１−２の完了時間ＣW」という）の算出例について説明する。
【００４０】
図４において、端末２０１−２の完了時間ＣWは、転送時間Ｃ５と、分割時間Ｃ６と、書込時間Ｃ７と、書込時間Ｃ８と、書込時間Ｃ９と、から算出される。ここで、転送時間Ｃ５は、ファイル３０１が端末２０１−１から端末２０１−２へ転送される際にかかる時間である。また、分割時間Ｃ６は、端末２０１−２によってファイル３０１を、分割データ３０１ａ〜３０１ｃに分割する際にかかる時間である。また、書込時間Ｃ７は、端末２０１−２によってファイル３０１から分割された分割データ３０１ｂを端末２０１−２のストレージに書き込む際にかかる時間である。
【００４１】
また、書込時間Ｃ８は、分割データ３０１ａが端末２０１−２から端末２０１−１へ転送される際にかかる時間と、端末２０１−１によって分割データ３０１ａを端末２０１−１のストレージに書き込む際にかかる時間と、の合計時間である。すなわち、書込時間Ｃ８は、分割データ３０１ａが、端末２０１−２から端末２０１−１に転送されて書き込まれるまでにかかる所要時間である。
【００４２】
また、書込時間Ｃ９は、分割データ３０１ｃが端末２０１−２から端末２０１−３へ転送される際にかかる時間と、端末２０１−３によって分割データ３０１ｃを端末２０１−３のストレージに書き込む際にかかる時間と、の合計時間である。すなわち、書込時間Ｃ９は、分割データ３０１ｃが、端末２０１−２から端末２０１−３に転送されて書き込まれるまでにかかる所要時間である。
【００４３】
そして、端末２０１−２の完了時間ＣWは、分割時間Ｃ６および書込時間Ｃ７の合計時間Ａ１と、分割時間Ｃ６および書込時間Ｃ８の合計時間Ａ２と、分割時間Ｃ６および書込時間Ｃ９の合計時間Ａ３と、転送時間Ｃ５と、に基づいて算出される。例えば、端末２０１−１は、転送時間Ｃ５および合計時間Ａ１の合計時間と、転送時間Ｃ５および合計時間Ａ２の合計時間と、転送時間Ｃ５および合計時間Ａ３の合計時間とのうちの最大の合計時間を端末２０１−２の完了時間ＣWとして算出する。
【００４４】
（端末のハードウェア例）
図５は、実施の形態２にかかる端末のハードウェア例を示すブロック図である。図５において、端末２０１−ｋは、ＣＰＵ５０１と、メモリ５０２と、Ｃｒｙｐｔ  Ｅｎｇｉｎｅ５０３と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）５０４と、内蔵ストレージ５０５と、可搬ストレージ５０６と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）５０７と、を含む。また、各部はバス５００によってそれぞれ接続されている。
【００４５】
ここで、ＣＰＵ５０１は、端末２０１−ｋの全体の制御を司る。なお、ここでは、端末２０１−ｋが、単一のＣＰＵを含むものとしたが、これに限るものではなく、例えば、複数のＣＰＵを含むものであってもよい。メモリ５０２は、ＣＰＵ５０１から直接アクセスされる記憶装置であり、例えば、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などからなる。ＲＯＭは、ブートプログラムなどのプログラムを記憶している。ＲＡＭは、ＣＰＵ５０１のワークエリアとして使用される。
【００４６】
Ｃｒｙｐｔ  Ｅｎｇｉｎｅ５０３は、ファイルの暗号化処理を行う。例えば、Ｃｒｙｐｔ  Ｅｎｇｉｎｅ５０３は、共有対象となるファイルから分割された分割データに対して、端末ごとに異なる端末番号などを用いた暗号化処理を行う。Ｉ／Ｆ５０４は、通信回線を通じてＬＡＮ、ＷＡＮ、インターネットなどのネットワーク２０２に接続され、このネットワーク２０２を介して他の端末に接続される。そして、Ｉ／Ｆ５０４は、ネットワーク２０２と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ５０４には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００４７】
内蔵ストレージ５０５は、端末２０１−ｋに内蔵されたストレージであり、共有対象となるファイルから分割された分割データを記憶する。可搬ストレージ５０６は、端末２０１−ｋに着脱自在なストレージであり、共有対象となるファイルから分割データを記憶する。ＰＭＵ５０７は、端末２０１−ｋのバッテリの制御を司り、バッテリ残量を検知する。
【００４８】
つぎに、ファイル共有グループＤＢの記憶内容について説明する。ファイル共有グループＤＢは、例えば、図５に示した端末２０１−ｋのメモリ５０２、内蔵ストレージ５０５、可搬ストレージ５０６などの記憶装置により実現される。ここでは、端末２０１−１が有するファイル共有グループＤＢ６００を例に挙げて説明する。
【００４９】
（ファイル共有グループＤＢ６００の記憶内容）
図６は、ファイル共有グループＤＢの記憶内容の一例を示す説明図である。図６において、端末２０１−１が有するファイル共有グループＤＢ６００は、端末名Ｔ、分割速度Ｑ、ストレージ数Ｎ、書込速度ＳW、バッテリ残量Ｂ、通信速度ｔｎ、予測通信速度ｔｆおよび単位書込時間Ｗｒｉｔｅのフィールドを有する。各フィールドに情報を設定することで、端末特性データ６０１−１〜６０１−ｍがレコードとして記憶されている。
【００５０】
なお、ファイル共有グループＤＢ６００には、ファイル共有グループＤＢ６００を有する端末２０１−１に対するレコードが、一つ目の端末特性データ６０１−１として記憶されている。また、端末２０１−１以外の端末（以下「他端末」という）に対するレコードが、二つ目以降の端末特性データ６０１−２〜６０１−ｍとして記憶されている。なお、ここでは、端末２０１−１〜２０１−３がファイル共有グループである例を挙げて説明する。
【００５１】
端末名Ｔは、端末を識別する名称であり、端末ごとに異なるＩＤなどであってもよい。例えば、端末２０１−１の端末名Ｔは「Ｘ」であり、端末２０１−２の端末名Ｔは「Ｙ」であり、端末２０１−３の端末名Ｔは「Ｚ」である。以下、端末Ｔと記載した場合、端末名Ｔが「Ｔ」である端末を示す。例えば、端末Ｘとは、端末名Ｔが「Ｘ」である端末を示す。
【００５２】
分割速度Ｑは、共有対象となるファイルを分割する際に、単位時間あたりに分割するデータサイズであり、単位は［ＭＢ／ｓ］である。分割速度Ｑは、端末２０１−１〜２０１−３のＣＰＵの性能によって決定されている。以下の説明では、端末名Ｔに対応する分割速度Ｑを、「分割速度ＱT」と表記する。例えば、分割速度ＱXとは、端末名Ｔが「Ｘ」である端末２０１−１の分割速度Ｑを示している。
【００５３】
ストレージ数Ｎは、端末ごとの内蔵ストレージおよび可搬ストレージの総数である。ストレージ数Ｎは、可搬ストレージの着脱時に更新される。以下の説明では、端末名Ｔに対応するストレージ数Ｎを、「ストレージ数ＮT」と表記する。例えば、ストレージ数ＮXとは、端末名Ｔである「Ｘ」の端末２０１−１のストレージ数Ｎを示している。
【００５４】
書込速度ＳWは、共有対象となるファイルから分割された分割データをストレージへ書き込む際の、単位時間あたりに書き込むデータサイズであり、単位は［ＭＢ／ｓ］である。書込速度ＳWは、ストレージの着脱に応じて、ストレージごとに登録される。以下の説明では、端末名Ｔに対応する書込速度ＳWを、「書込速度ＳWT」と表記する。例えば、書込速度ＳWxとは、端末名Ｔが「Ｘ」である端末２０１−１の書込速度ＳWを示している。
【００５５】
また、以下の説明では、各端末におけるｉ番目のストレージに対応する書込速度ＳWを、「書込速度ＳWi」と表記する。例えば、書込速度ＳW1とは、１番目のストレージの書込速度ＳWを示している。これらより、書込速度ＳWX1とは、端末名Ｔが「Ｘ」の端末２０１−１の、１番目のストレージにおける書込速度ＳWを示している。なおここでは、内蔵ストレージを１番目のストレージとし、可搬ストレージを２番目以降のストレージとする。
【００５６】
バッテリ残量Ｂは、各端末のバッテリの相対残量であり、単位は［％］である。自端末のバッテリ残量Ｂは、所定の周期ごとに取得される。また、他端末のバッテリ残量Ｂは、書込要求をユーザから受け付けた際に取得される。以下の説明では、端末名Ｔに対応するバッテリ残量Ｂを、「バッテリ残量ＢT」と表記する。例えば、バッテリ残量ＢXとは、端末名Ｔが「Ｘ」である端末２０１−１のバッテリ残量Ｂを示している。
【００５７】
通信速度ｔｎは、自端末と他端末との間における、単位時間あたりに通信可能なデータサイズを示しており、単位は［ＭＢ／ｓ］である。通信速度ｔｎは、自端末が周期的に基地局に対する交信を行う際に取得される。以下の説明では、自端末である端末Ｔｏおよび他端末である端末Ｔａに対応する通信速度ｔｎを、「通信速度ｔｎToTa」と表記する。例えば、通信速度ｔｎxyとは、端末名Ｔが「Ｘ」である端末２０１−１と、端末名Ｔが「Ｙ」である端末２０１−２と、の間の通信速度ｔｎを示している。
【００５８】
予測通信速度ｔｆは、単位時間経過後の通信速度の予測値であり、過去の通信速度および最新の通信速度に基づいて算出される。過去の通信速度とは、最新の通信速度の取得時に、ファイル共有グループＤＢ６００に登録されている通信速度である。予測通信速度ｔｆの単位は［ＭＢ／ｓ］である。また、予測通信速度ｔｆは、通信速度ｔｎが取得される周期と同様の周期にて算出される。以下の説明では、自端末である端末Ｔｏおよび他端末である端末Ｔａに対応する予測通信速度ｔｆを、「予測通信速度ｔｆToTa」と表記する。例えば、予測通信速度ｔｆxyとは、端末名Ｔが「Ｘ」である端末と、端末名Ｔが「Ｙ」である端末と、の間の予測通信速度ｔｆを示している。
【００５９】
単位書込時間Ｗｒｉｔｅは、端末ごとの、単位データサイズあたりの書込処理時間を示しており、単位は［ｍｓ／ＭＢ］である。書込処理時間とは、各端末が書込処理の実行を開始してから完了するまでの時間であり、具体的には、共有対象となるファイルを分割し、他の端末へ送信し、各端末のストレージへの書き込みが終了するまでに要する時間である。すなわち、単位書込時間Ｗｒｉｔｅに共有対象となるファイルのデータサイズを乗じることにより、対応する端末によって、共有対象となるファイルの書込処理の実行が開始されてから完了されるまでにかかる時間が算出可能である。
【００６０】
自端末に対応する単位書込時間Ｗｒｉｔｅは、所定の周期ごとに算出され、登録される。また、他端末に対応する単位書込時間Ｗｒｉｔｅは、書込要求をユーザから受け付けた際に、他端末から取得され、登録される。以下の説明では、端末名Ｔに対応する単位書込時間Ｗｒｉｔｅを、「単位書込時間ＷｒｉｔｅT」と表記する。例えば、単位書込時間ＷｒｉｔｅXとは、端末名Ｔが「Ｘ」である端末２０１−１の単位書込時間Ｗｒｉｔｅを示している。
【００６１】
一例として、端末特性データ６０１−２を例に挙げると、端末名Ｔが「Ｙ」、分割速度ＱY＝１５０［ＭＢ／ｓ］、ストレージ数ＮY＝２［個］、書込速度ＳWY1＝２０［ＭＢ／ｓ］、書込速度ＳWY2＝１５［ＭＢ／ｓ］、バッテリ残量ＢY＝７５［％］、通信速度ｔｎXY＝１０［ＭＢ／ｓ］、予測通信速度ｔｆXY＝１５［ＭＢ／ｓ］、単位書込時間ＷｒｉｔｅY＝７６［ｍｓ／ＭＢ］が記憶されている。
【００６２】
（端末２０１−ｋの機能例）
つぎに、実施の形態２にかかる端末２０１−ｋの機能例について説明する。図７は、実施の形態２にかかる端末の機能の一例を示すブロック図である。端末２０１−ｋは、取得部７０１と、選択部７０２と、割当部７０３と、算出部７０４と、判定部７０５と、を含む。各機能部（取得部７０１〜判定部７０５）は、具体的には、例えば、図５に示したメモリ５０２、内蔵ストレージ５０５、可搬ストレージ５０６などの記憶装置に記憶されたプログラムをＣＰＵ５０１に実行させることにより、または、Ｉ／Ｆ５０４により、その機能を実現する。各機能部の処理結果は、メモリ５０２、内蔵ストレージ５０５、可搬ストレージ５０６などの記憶装置に記憶される。
【００６３】
取得部７０１は、共有対象となるファイルを共有する端末２０１−１〜２０１−ｍの各々の端末２０１−１〜２０１−ｍのバッテリ残量Ｂを取得する。具体的には、例えば、取得部７０１が、自端末のＰＭＵから、自端末のバッテリ残量Ｂを取得する。また、取得部７０１は、他端末から、他端末のバッテリ残量Ｂを取得する。
【００６４】
なお、取得部７０１によるバッテリ残量Ｂの取得処理は、例えば、ファイルの書込要求をユーザから受け付けた際に実行されてもよく、また、所定の周期ごとに実行されることにしてもよい。
【００６５】
選択部７０２は、端末２０１−１〜２０１−ｍの中から、ファイルの書込処理を行う端末を選択する。具体的に、例えば、選択部７０２が、ファイルの書込処理を行う端末として、取得部７０１によって取得されたバッテリ残量Ｂが最も多い端末を選択したり、バッテリ残量Ｂが所定値以上である端末のうち一の端末を選択したりする。
【００６６】
これにより、選択部７０２は、端末２０１−１〜２０１−ｍの中から、ファイルの書込処理中にバッテリが切れる可能性の最も低い端末を、ファイルの書込処理を行う端末として選択することができる。
【００６７】
割当部７０３は、選択部７０２によって選択された端末にファイルの書込処理を割り当てる。具体的には、例えば、自端末が選択された場合、割当部７０３が、ファイルの書込処理を自端末に割り当てる。この結果、端末２０１−ｋがファイルの書込処理を実行する。また、他端末が選択された場合、割当部７０３が、他端末に対してファイルの書込処理の処理要求を送信する。この結果、処理要求を受信した端末が、ファイルの書込処理を実行する。
【００６８】
また、取得部７０１は、ファイルの書込処理の完了時間を算出するための情報を取得する。ファイルの書込処理の完了時間は、上述したように、ファイルの書込処理を実行する端末にファイルを転送する転送時間と、ファイルを分割する分割時間と、分割した分割データを複数の端末に分散配置する分散時間と、を含む。分散配置とは、分割データを各端末へ転送し、各端末のストレージへ書き込ませることである。完了時間を算出するための情報とは、例えば、共有対象となるファイルのデータサイズや、共有対象となるファイルの端末ごとの分割速度Ｑや、端末ごとのストレージに対する分割データの書込速度ＳWや、自端末と他端末の間の通信速度ｔｎなどである。
【００６９】
具体的には、例えば、取得部７０１が、共有対象となるファイルを参照して、該ファイルのデータサイズを取得する。また、取得部７０１が、ファイル共有グループＤＢ（例えば、図６参照）の中から、自端末のデータの分割速度Ｑを取得する。なお、自端末のデータの分割速度Ｑは、例えば、製造時に予め設定されてファイル共有グループＤＢに登録されている。
【００７０】
また、取得部７０１が、例えば、ファイルの共有を開始する際に、他端末の分割速度Ｑを他端末から取得する。また、例えば、取得部７０１は、自端末のストレージに微小なサイズ（例えば、数ビット）のデータを書き込み、該データの書き込みを開始してから完了するまでの時間を計測することにより、自端末の書込速度ＳWiを取得する。取得された自端末の書込速度ＳWiは、例えば、ファイル共有グループＤＢに登録される。
【００７１】
また、取得部７０１が、例えば、ファイルの共有を開始する際に、他端末の書込速度ＳWiを他端末から取得する。取得された他端末の書込速度ＳWiは、例えば、ファイル共有グループＤＢに登録される。自端末および他端末の書込速度ＳWiは、例えば、自端末および他端末のストレージが脱着されると、その都度取得される。
【００７２】
また、取得部７０１は、他端末に対して微小なサイズ（例えば、数ビット）のデータを送信してから他端末からの応答があるまでの時間を計測することにより、自端末と他端末との間の通信速度ｔｎを取得する。取得された自端末と他端末との間の通信速度ｔｎは、例えば、ファイル共有グループＤＢに登録される。また、自端末と他端末との間の通信速度ｔｎは、例えば、一定周期ごとに取得される。
【００７３】
算出部７０４は、取得部７０１によって取得された情報に基づいて、各々の端末によるファイルの書込処理の完了時間ＣWを算出する。具体的に、例えば、算出部７０４が、取得部７０１によって取得された情報および所定の式を用いて、各端末によるファイルの書込処理の完了時間ＣWを算出する。
【００７４】
以下の説明では、端末名Ｔが「Ｔ１」である端末がユーザからファイルの書込要求を受け付けた場合の、端末名Ｔが「Ｔ２」である端末に対応するファイルの書込処理の完了時間ＣWを、「完了時間ＣWT1T2」と表記する。例えば、完了時間ＣWXYとは、端末名Ｔが「Ｘ」の端末がユーザからファイルの書込要求を受け付け、端末名Ｔが「Ｙ」の端末が書込処理を実行する際の完了時間ＣWを示している。
【００７５】
ここで、図６に示したファイル共有グループＤＢ６００に応じたファイル共有グループを例に挙げて、算出部７０４によって算出される完了時間ＣWについて説明する。より具体的には、例えば、算出部７０４が、下記式（１）を用いて、ユーザから書込要求を受け付けた端末Ｘが、自端末に書込処理を割り当てる場合の完了時間ＣWXXを算出することができる。
【００７６】
ただし、下記式（１）において、Ｆは、共有対象となるファイルのデータサイズを示すパラメータである。ＱXは、端末Ｘの分割速度Ｑを示すパラメータである。Ｎは、ファイル共有グループの総ストレージ数を示すパラメータである。ＮXは、端末Ｘのストレージ数を示すパラメータである。ＮYは、端末Ｙのストレージ数を示すパラメータである。ＮZは、端末Ｚのストレージ数を示すパラメータである。すなわち、Ｎは、ＮXとＮYとＮZとを足し合わせた値である。また、ＳWXiは、端末Ｘのｉ番目のストレージの書込速度ＳWを示すパラメータである。ＳWYiは、端末Ｙのｉ番目のストレージの書込速度ＳWを示すパラメータである。ＳWZiは、端末Ｚのｉ番目のストレージの書込速度ＳWを示すパラメータである。ｔｎXYは、端末Ｘと端末Ｙとの間の通信速度ｔｎを示すパラメータである。ｔｎXZは、端末Ｘと端末Ｚとの間の通信速度ｔｎを示すパラメータである。
【００７７】
【数１】
2012124064.tif 000003
【００７８】
すなわち、算出部７０４が、上述した各種パラメータの値を上記式（１）に代入することにより、ユーザからファイルの書込要求を受け付けた端末Ｘが書込処理を行う際の完了時間ＣWXXを算出することができる。
【００７９】
上記式（１）の２行目の式において、一つ目の要素は、共有対象となるファイルを分割するための時間を示している。上記式（１）の２行目の式における括弧内の各要素は、共有対象となるファイルから分割された分割データを自端末に書き込む時間と、分割データが他端末に転送が開始されてから、各端末のストレージに書き込みが完了されるまでの時間とである。分割データの各端末への移動および書き込みは端末ごとに並行して行われるため、該括弧内の最大値をとることにより、最も処理時間の長い処理の処理時間を算出している。
【００８０】
上記式（１）において、２行目の式をＦで括った式が３行目の式であり、３行目の式の括弧内を、単位書込時間ＷｒｉｔｅXに置き換えた式が４行目の式である。上記式（１）によれば、ユーザから書込要求を受け付けた端末Ｘが、共有対象となるファイルを分割してから、分割データをすべての端末に書き込み終えるまでの完了時間ＣWXXを算出することができる。
【００８１】
図６に示したファイル共有グループＤＢ６００の例では、各種パラメータの値はつぎの通りである。Ｆ＝１２［ＭＢ］、ＱX＝５０［ＭＢ／ｓ］、Ｎ＝５［個］、ＮX＝１［個］、ＮY＝２［個］、ＮZ＝２［個］、ＳWX1＝１０［ＭＢ／ｓ］、ＳWY1＝２０［ＭＢ／ｓ］、ＳWY2＝１５［ＭＢ／ｓ］、ＳWZ1＝１０［ＭＢ／ｓ］、ＳWZ2＝２０［ＭＢ／ｓ］、ｔｎXY＝１０［ＭＢ／ｓ］、ｔｎXZ＝２０［ＭＢ／ｓ］
【００８２】
この場合、算出部７０４が、上記式（１）に各種パラメータの上記値を代入することにより、単位書込時間ＷｒｉｔｅX＝８３［ｍｓ／ＭＢ］、完了時間ＣWXX＝１．０［ｓ］を算出することができる。
【００８３】
また、他の端末においても、上記式（１）と同様の式を用いることにより、ユーザから書込要求を受け付けた端末が書込処理を実行する際の完了時間ＣWを算出することができる。例えば、ユーザから書込要求を受け付けた端末Ｙが書込処理を実行する際の完了時間ＣWYYは、上記式（１）のＸおよびＹを入れ替えた式に、端末Ｙによって各種パラメータの値が代入されることにより算出される。
【００８４】
また、例えば、算出部７０４が、下記式（２）を用いて、ユーザから書込要求を受け付けた端末Ｘが、端末Ｙにファイルの書込処理を割り当てる場合の完了時間ＣWXYを算出することができる。
【００８５】
【数２】
2012124064.tif 000004
【００８６】
すなわち、算出部７０４が、Ｆ、ｔｎXY、ＷｒｉｔｅYの値を上記式（２）に代入することにより、完了時間ＣWXYを算出することができる。上記式（２）の１行目の式における一つ目の要素は、端末Ｘから端末Ｙへ共有対象となるファイルを転送させるための時間であり、二つ目の要素は、端末Ｙが書込処理を開始してから完了するまでにかかる完了時間ＣWYYである。上記式（２）の２行目の式の二つ目の要素は、完了時間ＣWYYを上記式（１）にならって分解したものである。
【００８７】
例えば、各種パラメータの値を、Ｆ＝１２［ＭＢ］、ｔｎXY＝１０［ＭＢ／ｓ］、ＷｒｉｔｅY＝７６［ｍｓ／ＭＢ］とした場合、完了時間ＣWXYは２．１［ｓ］となる。
【００８８】
他の端末においても、上記式（２）と同様の式を用いることにより、ユーザから書込処理を受け付けた端末とは異なる端末が書込処理を実行する際の完了時間ＣWを算出することができる。例えば、ユーザから書込要求を受け付けた端末Ｙとは異なる端末Ｚが書込処理を実行する際の完了時間ＣWYZは、上記式（２）のＸおよびＹを入れ替え、ＹおよびＺを入れ替えた式に、端末Ｙによって各種パラメータの値が代入されることにより算出される。
【００８９】
また、選択部７０２は、算出部７０４による算出結果に基づいて、ファイルの書込処理を行う端末を選択することにしてもよい。具体的には、例えば、選択部７０２が、算出されたファイルの書込処理の完了時間ＣWが最も短い端末を、ファイルの書込処理を行う端末として選択する。より具体的には、例えば、選択部７０２が、端末Ｘがユーザからファイルの書込要求を受け付けた場合に、完了時間ＣWXXと、完了時間ＣWXYと、完了時間ＣWXZと、のうち最も短い完了時間に対応する端末を、書込処理を割り当てる端末として選択する。
【００９０】
これにより、選択部７０２は、端末２０１−１〜２０１−ｍの中から、ファイルの書込処理の完了時間ＣWが最も短い端末を、ファイルの書込処理を行う端末として選択することができる。
【００９１】
また、算出部７０４が、バッテリ残量Ｂとファイルの書込処理の完了時間ＣWとに基づいて、ファイルの書込処理の割当先となる端末を選択する際の指標となる評価値（以下、「評価値ＶW」という）を算出することにしてもよい。以下の説明では、端末Ｘがユーザから書込要求を受け付けた場合における、端末Ｘの評価値ＶWを「ＶWXX」と表記する。また、端末Ｘがユーザから書込要求を受け付けた場合における、端末Ｙの評価値ＶWを「ＶWXY」と表記する。
【００９２】
ここで、図６に示したファイル共有グループＤＢ６００に応じたファイル共有グループを例に挙げて、算出部７０４によって算出される評価値ＶWについて説明する。具体的には、例えば、算出部７０４が、下記式（３）〜（５）のいずれかを用いて、端末Ｘがユーザから書込要求を受け付けた場合における、端末Ｘの評価値ＶWXXを算出することができる。ただし、下記式（３）〜（５）において、ＢXは、端末Ｘのバッテリ残量Ｂを示すパラメータである。なお、αおよびβは所定の係数である。
【００９３】
【数３】
2012124064.tif 000005
【００９４】
【数４】
2012124064.tif 000006
【００９５】
【数５】
2012124064.tif 000007
【００９６】
すなわち、算出部７０４が、ＢXおよびＣWXXの値を上記式（３）〜（５）のいずれかに代入することにより、端末Ｘがユーザから書込要求を受け付けた場合における、端末Ｘの評価値ＶWXXを算出することができる。上記式（３）〜（５）のいずれの式においても、バッテリ残量Ｂが多いほど、また、完了時間ＣWが短いほど、高い評価値が算出されるようになっている。
【００９７】
他の端末においても、上記式（３）〜（５）と同様の式を用いることにより評価値ＶWを算出することができる。例えば、端末Ｘがファイルの書込要求を受け付けた際の端末Ｙの評価値ＶWXYは、上記式（３）〜（５）のＢXをＢYとし、ＣWXXをＣWXYとした式を用いることにより算出することができる。
【００９８】
この場合、選択部７０２は、算出部７０４によって算出された評価値ＶWに基づいて、端末２０１−１〜２０１−ｍの中からファイルの書込処理を行う端末を選択することにしてもよい。具体的には、例えば、選択部７０２は、算出部７０４によって算出された評価値ＶWの最も高い端末を、ファイルの書込処理を行う端末として選択する。
【００９９】
これにより、選択部７０２は、端末２０１−１〜２０１−ｍの中から、ファイルの書込処理中にバッテリが切れる可能性ができるだけ低く、ファイルの書込処理の完了時間ＣWができるだけ短い端末を、ファイルの書込処理を行う端末として選択することができる。
【０１００】
判定部７０５は、通信速度ｔｎに基づいて、ファイルの書込処理を実行するか否かを判定する。具体的に、例えば、判定部７０５が、現在の通信速度ｔｎと所定の閾値Ｄとを比較し、通信速度ｔｎが閾値Ｄ未満の場合に、ファイルの書込処理を実行しないと判定する。一方、通信速度ｔｎが閾値Ｄ以上の場合に、判定部７０５が、ファイルの書込処理を実行すると判定する。
【０１０１】
ここで、閾値Ｄとしては、例えば、端末間の通信速度ｔｎが閾値Ｄ未満となった場合、端末間の通信が途切れてデータを消失してしまう可能性が高くなる値に設定される。閾値Ｄは、例えば、予め設定されてメモリ５０２、内蔵ストレージ５０５などの記憶装置に記憶されている。
【０１０２】
なお、閾値Ｄの比較対象として、予測通信速度ｔｆを用いることにしてもよい。これにより、将来的に端末間の通信が途切れてデータを消失してしまう可能性が高い場合に、ファイルの書込処理を実行しないと判定することができる。
【０１０３】
また、上記取得部７０１、選択部７０２、割当部７０３および算出部７０４の各種処理は、例えば、判定部７０５によって書込処理を実行すると判定された場合に実行されることにしてもよい。
【０１０４】
これにより、端末２０１−ｋは、端末間の分割データの転送中に通信が途切れることによる分割データの消失を防止することができる。
【０１０５】
また、ファイルの書込処理を実行しないと判定された場合、端末２０１−ｋは、該ファイルをメモリ５０２、内蔵ストレージ５０５、可搬ストレージ５０６などの記憶装置に記憶することにしてもよい。そして、端末２０１−ｋは、所定時間経過後に判定部７０５による判定処理を再実行することにしてもよく、また、ユーザからのファイルの書込要求を再度受け付けるまで待機することにしてもよい。また、端末２０１−ｋは、通信速度ｔｎが閾値Ｄ以上になったときに、自端末の記憶装置に記憶したファイルの書込処理を再開することにしてもよい。
【０１０６】
また、判定部７０５によって書込処理を実行しないと判定された場合、端末２０１−ｋは、エラーメッセージを出力するものとしてもよい。具体的には、例えば、端末２０１−ｋは、文字情報をディスプレイ（不図示）に表示することにより、エラーメッセージを出力する。文字情報とは、例えば、「現在通信状況が悪いため、しばらく立ってから書込処理を再実行してください。」や、「エラーが発生しました。共有を中止します。」などである。
【０１０７】
また、端末２０１−ｋは、共有対象となるファイルに対する書込要求をユーザから受け付け、通信速度ｔｎが閾値Ｄ未満である場合、該書込要求に対応するデータを共有対象となるファイルに反映せず自端末のストレージへ書き込むことにしてもよい。そして、端末２０１−ｋは、通信速度ｔｎが閾値Ｄ以上となったときに、自端末のストレージへ書き込んだデータを共有対象となるファイルへ反映することにしてもよい。書込要求に対応するデータとは、例えば、共有対象となるファイルを修正する修正データなどである。
【０１０８】
（端末２０１−ｋの処理手順）
以下、端末２０１−ｋが行う処理手順の一例について説明する。
【０１０９】
（端末２０１−ｋのファイル共有設定処理手順）
図８は、実施の形態２にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。ファイル共有設定処理は、ＣＰＵ５０１によって実行される処理である。ファイル共有設定処理において、端末２０１−ｋは、まず、ファイル共有の開始要求をユーザから受け付けたか否かを判定し（ステップＳ８０１）、受け付けない場合（ステップＳ８０１：Ｎｏ）、受け付けるまで待機する。
【０１１０】
ステップＳ８０１において、ファイル共有の開始要求をユーザから受け付けた場合（ステップＳ８０１：Ｙｅｓ）、取得部７０１により、各種パラメータの値を取得する（ステップＳ８０２）。各種パラメータとは、静的なパラメータであり、例えば、他端末における分割速度Ｑと、書込速度ＳWiとである。そして、端末２０１−ｋは、取得した各種パラメータの値を、端末２０１−ｋが有するファイル共有グループＤＢへ登録する（ステップＳ８０３）。
【０１１１】
その後、端末２０１−ｋは、ファイル共有の終了要求をユーザから受け付けたか否かを判定する（ステップＳ８０４）。ここで、ファイル共有の終了要求をユーザから受け付けていない場合（ステップＳ８０４：Ｎｏ）、取得部７０１により、通信速度収集処理（図９を参照）を実行する（ステップＳ８０５）。通信速度収集処理とは、自端末と他端末との間の通信速度を収集する処理である。
【０１１２】
その後、取得部７０１により端末２０１−ｋのバッテリ残量ＢをＰＭＵ５０７から取得する（ステップＳ８０６）。そして、端末２０１−ｋは、取得された自端末のバッテリ残量Ｂをファイル共有グループＤＢに登録する（ステップＳ８０７）。そして、端末２０１−ｋは、他端末から、可搬ストレージの挿抜を検出した旨を示す可搬ストレージの変更通知を受信したか否かを判定する（ステップＳ８０８）。端末２０１−ｋは、可搬ストレージの変更通知を受信していない場合（ステップＳ８０８：Ｎｏ）、ステップＳ８１０へ移行する。
【０１１３】
ステップＳ８０８において、可搬ストレージの変更通知を受信した場合（ステップＳ８０８：Ｙｅｓ）、端末２０１−ｋは、ファイル共有グループＤＢに変更内容を登録する（ステップＳ８０９）。具体的には、端末２０１−ｋは、挿抜を検出したストレージの書込速度ＳWiを更新して登録する。その後、算出部７０４により、自端末の単位書込時間Ｗｒｉｔｅを算出する（ステップＳ８１０）。
【０１１４】
そして、端末２０１−ｋは、算出された自端末の単位書込時間Ｗｒｉｔｅを、ファイル共有グループＤＢへ登録し（ステップＳ８１１）、ステップＳ８０４へ移行する。また、ステップＳ８０４において、端末２０１−ｋは、ファイル共有の終了要求をユーザから受け付けた場合（ステップＳ８０４：Ｙｅｓ）、本フローチャートによる一連の処理を終了する。
【０１１５】
（端末２０１−ｋの通信速度収集処理手順）
図９は、実施の形態２にかかる端末の通信速度収集処理手順の一例を示すフローチャートである。通信速度収集処理において、まず、取得部７０１により、自端末と他端末との間の通信速度ｔｎを取得する（ステップＳ９０１）。
【０１１６】
ステップＳ９０１において、具体的には、例えば、端末２０１−ｋは、微小なデータサイズのデータを各他端末へ送信し、送信を完了した旨を示す情報を各他端末から受信するまでの時間を計測することにより、各通信速度ｔｎを取得する。そして、端末２０１−ｋは、ファイル共有グループＤＢに登録されている通信速度ｔｎを抽出する（ステップＳ９０２）。
【０１１７】
その後、算出部７０４により、予測通信速度ｔｆを算出する（ステップＳ９０３）。具体的に、例えば、ステップＳ９０１にて取得された通信速度ｔｎおよびステップＳ９０２にて抽出された通信速度ｔｎの差を、ステップＳ９０１にて取得された通信速度ｔｎに加算することにより、算出部７０４は、予測通信速度ｔｆを算出する。なお、ファイル共有グループＤＢに通信速度ｔｎが登録されていない場合、すなわち、ファイルの共有を開始してから１回目の通信速度収集処理においては、ステップＳ９０２〜Ｓ９０４を行わないものとしてもよい。
【０１１８】
そして、端末２０１−ｋは、ステップＳ９０１において取得した通信速度ｔｎを、ファイル共有グループＤＢへ登録する（ステップＳ９０４）。その後、端末２０１−ｋは、ステップＳ９０３において算出した予測通信速度ｔｆを、ファイル共有グループＤＢへ登録し（ステップＳ９０５）、本フローチャートによる一連の処理を終了する。
【０１１９】
（端末２０１−ｋのストレージ挿抜検出処理手順）
図１０は、実施の形態２にかかる端末のストレージ挿抜検出処理手順の一例を示すフローチャートである。ストレージ挿抜検出処理は、ＣＰＵ５０１によって実行される処理である。ストレージ挿抜検出処理において、まず、端末２０１−ｋは、可搬ストレージの挿抜を検出したか否かを判定し（ステップＳ１００１）、検出しない場合（ステップＳ１００１：Ｎｏ）、検出するまで待機する。
【０１２０】
ステップＳ１００１において、可搬ストレージの挿抜を検出した場合（ステップＳ１００１：Ｙｅｓ）、端末２０１−１は、可搬ストレージが利用可能であるか否かを判定する（ステップＳ１００２）。これにより、端末２０１−１は、可搬ストレージが装着されているか否かを判定している。
【０１２１】
ステップＳ１００２において、可搬ストレージが利用可能でない場合（ステップＳ１００２：Ｎｏ）、ステップＳ１００４へ移行する。可搬ストレージが利用可能である場合（ステップＳ１００２：Ｙｅｓ）、取得部７０１により、可搬ストレージの書込速度ＳWiを測定する（ステップＳ１００３）。
【０１２２】
そして、端末２０１−ｋは、ファイル共有グループＤＢを更新する（ステップＳ１００４）。その際、ステップＳ１００２において可搬ストレージが利用可能であれば、端末２０１−ｋは、ステップＳ１００３において測定した書込速度ＳWiをファイル共有グループＤＢに更新する。また、ステップＳ１００２において可搬ストレージが利用可能でなければ、端末２０１−ｋは、可搬ストレージに対応する書込速度ＳWiをファイル共有グループＤＢから削除する。
【０１２３】
その後、端末２０１−ｋは、他端末に対して、可搬ストレージに対応する書込速度ＳWiの情報を含む可搬ストレージ変更通知を送信することにより、可搬ストレージの変更を通知し（ステップＳ１００５）、本フローチャートによる一連の処理を終了する。
【０１２４】
（端末２０１−ｋの書込要求受付処理手順）
図１１は、実施の形態２にかかる端末の書込要求受付処理手順の一例を示すフローチャートである。書込要求受付処理は、ＣＰＵ５０１によって実行される処理である。書込要求受付処理において、まず、端末２０１−ｋは、共有対象となるファイルの書込要求をユーザから受け付けたか否かを判定し（ステップＳ１１０１）、受け付けていない場合（ステップＳ１１０１：Ｎｏ）、受け付けるまで待機する。
【０１２５】
ステップＳ１１０１において、共有対象となるファイルの書込要求をユーザから受け付けた場合（ステップＳ１１０１：Ｙｅｓ）、判定部７０５により、一つ以上の他端末と自端末の間の予測通信速度ｔｆが所定の閾値Ｄ未満であるか否かを判定する（ステップＳ１１０２）。一つ以上の他端末と自端末の間の予測通信速度ｔｆが所定の閾値Ｄ未満である場合（ステップＳ１１０２：Ｙｅｓ）、端末２０１−ｋは、ステップＳ１１１１へ移行する。
【０１２６】
すべての他端末と自端末の間の予測通信速度ｔｆが所定の閾値Ｄ以上である場合（ステップＳ１１０２：Ｎｏ）、取得部７０１により、他端末の単位書込時間Ｗｒｉｔｅおよびバッテリ残量Ｂを取得する（ステップＳ１１０３）。その後、端末２０１−ｋは、取得された他端末の単位書込時間Ｗｒｉｔｅおよびバッテリ残量Ｂを、ファイル共有グループＤＢへ登録する（ステップＳ１１０４）。
【０１２７】
ステップＳ１１０４の後、算出部７０４により、評価値ＶWを算出する評価値算出処理（図１２を参照）を行う（ステップＳ１１０５）。そして、割当部７０３により、書込処理を端末に割り当てる書込割当処理（図１３を参照）を行う（ステップＳ１１０６）。
【０１２８】
そして、ステップＳ１１０６の後、端末２０１−ｋは、ファイルの書込処理が完了したか否かを判定する（ステップＳ１１０７）。ファイルの書込処理が完了するとは、ファイルの書込処理が割り当てられている他端末から、端末２０１−ｋが、ファイルの書込処理の完了を通知する情報を取得することである。また、自端末が書込処理を割り当てられている場合、書込処理が完了するとは、すべての他端末から、端末２０１−ｋが、分割データの各ストレージへの書き込みが完了した旨を示す情報を取得することである。
【０１２９】
ステップＳ１１０７において、ファイルの書込処理が完了した場合（ステップＳ１１０７：Ｙｅｓ）、端末２０１−ｋは、本フローチャートによる一連の処理を終了する。ファイルの書込処理が完了していない場合（ステップＳ１１０７：Ｎｏ）、端末２０１−ｋは、異常を検出したか否かを判定する（ステップＳ１１０８）。例えば、端末２０１−ｋは、共有対象となるファイルから分割された分割データの書き込み途中に可搬ストレージが抜かれた場合などを異常として検出する。
【０１３０】
異常を検出した場合（ステップＳ１１０８：Ｙｅｓ）、端末２０１−ｋは、エラー処理を実行し（ステップＳ１１０９）、本フローチャートによる一連の処理を終了する。エラー処理を実行するとは、例えば、端末２０１−ｋが、エラー情報をログとして書き込んだり、エラーが発生した旨を表示したりすることである。
【０１３１】
ステップＳ１１０８において、異常を検出しない場合（ステップＳ１１０８：Ｎｏ）、判定部７０５により、予測通信速度ｔｆが所定の閾値Ｄよりも低いか否かを判定する（ステップＳ１１１０）。予測通信速度ｔｆが所定の閾値Ｄより低くない場合（ステップＳ１１１０：Ｎｏ）、端末２０１−ｋは、ステップＳ１１０７へ移行する。
【０１３２】
ステップＳ１１１０において、予測通信速度ｔｆが所定の閾値Ｄより低い場合（ステップＳ１１１０：Ｙｅｓ）、端末２０１−ｋは、自端末のストレージに共有対象となるファイルを書き込み（ステップＳ１１１１）、本フローチャートによる一連の処理を終了する。ステップＳ１１１１において書き込まれた共有対象となるファイルは、通信速度ｔｎが閾値Ｄを超えた場合に、改めてファイルの書込処理が実行されるものとする。
【０１３３】
（端末２０１−ｋの評価値算出処理手順）
図１２は、実施の形態２にかかる端末の評価値算出処理手順の一例を示すフローチャートである。評価値算出処理において、まず、端末２０１−ｋは、ファイル共有グループＤＢから、各種パラメータの値を抽出する（ステップＳ１２０１）。
【０１３４】
ステップＳ１２０１の後、算出部７０４により、完了時間を算出する（ステップＳ１２０２）。その際、上記式（１）や上記式（２）などの式が用いられる。その後、算出部７０４により評価値ＶWを算出し（ステップＳ１２０３）、本フローチャートによる一連の処理を終了する。ステップＳ１２０３においては、上記式（３）〜（５）などの式が用いられる。
【０１３５】
（端末２０１−ｋの書込割当処理手順）
図１３は、実施の形態２にかかる端末の書込割当処理手順の一例を示すフローチャートである。書込割当処理において、まず、端末２０１−ｋは、評価値算出処理において算出された評価値ＶWを参照する（ステップＳ１３０１）。そして、選択部７０２により、書込処理を実行する端末を選択する（ステップＳ１３０２）。その際、例えば、選択部７０２は、評価値ＶWの最も高い端末を、書込処理を実行する端末として選択する。
【０１３６】
その後、端末２０１−ｋは、ステップＳ１３０２にて選択された端末が自端末であるか否かを判定する（ステップＳ１３０３）。ここで、自端末である場合（ステップＳ１３０３：Ｙｅｓ）、端末２０１−ｋは、書込処理の実行を開始し（ステップＳ１３０４）、本フローチャートによる一連の処理を終了する。その際、具体的に、端末２０１−ｋは、共有対象となるファイルを分割し、共有対象となるファイルから分割された分割データをＣｒｙｐｔ  Ｅｎｇｉｎｅ５０３によって暗号化する。そして、端末２０１−ｋは、暗号化された分割データを端末２０１−ｋのストレージへ書き込むとともに、共有対象となるファイルから分割された分割データを他端末へ送信する。
【０１３７】
また、ステップＳ１３０２において選択された端末が他端末である場合（ステップＳ１３０３：Ｎｏ）、割当部７０３により、選択された端末に書込要求を送信し（ステップＳ１３０５）、本フローチャートによる一連の処理を終了する。
【０１３８】
以上説明した実施の形態２にかかる端末２０１−ｋによれば、ファイルを共有する各端末のバッテリ残量Ｂおよびファイルの書込処理の完了時間ＣWに基づいて、ファイルの書込処理の割当先となる端末を選択することができる。すなわち、ファイルの書込処理を実行する端末を、各端末のバッテリ残量Ｂ、処理性能および端末間の通信状況を複合的に評価して選択することができる。
【０１３９】
これにより、ファイルの書込処理の実行中にバッテリが切れる可能性ができるだけ低く、該書込処理が完了するまでにかかる完了時間ＣWができるだけ短くなるような端末を、該書込処理の割当先となる端末として選択することができる。この結果、ファイルの書込処理の実行中におけるバッテリ切れを防止するとともにファイルの書込処理の処理時間の短縮化を図ることができる。
【０１４０】
また、端末２０１−ｋによれば、自端末と他端末との間の予測通信速度ｔｆが所定の閾値Ｄよりも低い場合、ファイルの書込処理を行わないものとすることにより、分割データの転送中に通信が途切れることを防止することができる。仮に、共有対象となるファイルから分割された分割データの自端末から他端末への転送中に、自端末と他端末との通信が途切れた場合、送信中の分割データが消失してしまうことがある。そこで、上述したように、分割データの送信中に通信が途切れることを防止することにより、分割データの消失を防止することができる。
【０１４１】
なお、実施の形態２において、端末２０１−ｋは、ファイルの書込要求をユーザから受け付けた場合に、各端末のバッテリ残量Ｂおよびファイルの書込処理の完了時間ＣWに基づいて、書込処理を実行する端末を選択するものとしたが、これに限るものではない。
【０１４２】
例えば、端末２０１−ｋは、書込要求をユーザから受け付けた場合に、各端末のバッテリ残量Ｂに基づいて、ファイルの書込処理を実行する端末を選択するものであってもよい。その場合、ファイルの書込処理の実行中にバッテリが切れる可能性ができるだけ低い端末を、書込処理の割当先となる端末として選択することができる。この結果、ファイルの書込処理の実行中におけるバッテリ切れを防止することができる。
【０１４３】
また、例えば、端末２０１−ｋは、書込要求をユーザから受け付けた場合に、ファイルの書込処理の完了時間ＣWに基づいて、ファイルの書込処理を実行する端末を選択するものであってもよい。その場合、書込処理が完了するまでにかかる完了時間ＣWができるだけ短くなるような端末を、書込処理の割当先となる端末として選択することができる。この結果、ファイルの書込処理の処理時間の短縮化を図ることができる。
【０１４４】
（実施の形態３）
（ファイル共有システムの一例）
つぎに、実施の形態３にかかるファイル共有システムの一例について説明する。実施の形態３では、共有対象となるファイルの共有化処理として、ファイルの読出処理を行う場合を例に挙げて説明する。ファイルの読出処理とは、分散配置されている分割データを収集し、共有対象となるファイルに復元することである。なお、実施の形態１、２で説明した箇所と同一箇所については説明を省略する。
【０１４５】
図２を用いて、実施の形態３にかかるファイル共有システムの一例について説明する。各端末２０１−ｋには、共有対象となるファイルの読出処理を行う場合に共有対象となるファイルから分割された分割データを復元する復元速度や、各端末２０１−ｋが有するストレージの読出速度などが設定されている。
【０１４６】
端末２０１−ｋは、ファイル共有グループの設定を行ってからファイル共有の終了要求をユーザから受け付けてファイル共有を終了するまで、以下の処理を行う。まず、端末２０１−ｋは、端末２０１−１〜２０１−ｍの評価値の算出に用いる各種パラメータの値を取得してファイル共有グループＤＢ（Ｄａｔｅ  Ｂａｓｅ）に登録する。評価値とは、ファイルの読出処理の割当先となる端末を選択する際の指標となるものである。
【０１４７】
各種パラメータとは、例えば、端末２０１−ｋと他の端末との間の通信速度ｔｎや、端末２０１−１〜２０１−ｍのバッテリ残量Ｂや、端末２０１−１〜２０１−ｍのストレージの読出速度などである。なお、ファイル共有グループＤＢについての詳細な説明は、図１６を用いて後述する。
【０１４８】
つぎに、端末２０１−ｋは、ユーザから共有対象となるファイルに対する読出要求を受け付けた場合に、ファイル共有グループＤＢに登録されている各種パラメータの値から評価値を算出し、評価値の最も高い端末を、読出処理の割当先の端末として選択する。そして、端末２０１−ｋは、選択した端末に対して、ファイルの読出処理を割り当てる。
【０１４９】
ファイルの読出処理を割り当てるとは、ファイルの読出処理を実行させることである。例えば、ファイルに対する読出要求を受け付けた端末２０１−１の評価値が最も高い場合、端末２０１−１が読出処理を実行する。一方、ファイルに対する読出要求を受け付けた端末２０１−１とは異なる端末の評価値が最も高い場合、端末２０１−１は、評価値が最も高い端末に対して、ファイルの読出処理の処理要求を送信する。処理要求を受け付けた端末は、ファイルの読出処理を実行する。
【０１５０】
（ファイルの読出処理の完了時間の算出例）
つぎに、ファイル共有システム２００において、端末２０１−１〜２０１−３がファイル共有グループである場合を想定して、共有対象となるファイルの読出処理の完了時間の算出例について説明する。ファイルの読出処理の完了時間とは、ユーザからの読出要求があってから、ファイルの読出処理が完了するまでにかかる時間である。ここでは一例として、端末２０１−１がユーザから読出要求を受け付けた場合を例に挙げて説明する。
【０１５１】
図１４および図１５は、共有対象となるファイルの読出処理の完了時間の算出例を示す説明図である。まず、図１４を用いて、共有対象となるファイル３０１の読出要求をユーザから受け付けた端末２０１−１がファイルの読出処理を実行する場合の、読出処理の完了時間（ここでは、「端末２０１−１の完了時間ＣR」という）の算出例について説明する。
【０１５２】
図１４において、端末２０１−１の完了時間ＣRは、読出時間Ｃ１１と、読出時間Ｃ１２と、読出時間Ｃ１３と、復元時間Ｃ１４と、から算出される。ここで、読出時間Ｃ１１は、端末２０１−１によって分割データ３０１ａを端末２０１−１のストレージから読み出す際にかかる時間である。
【０１５３】
また、読出時間Ｃ１２は、端末２０１−２によって分割データ３０１ｂを端末２０１−２のストレージから読み出す際にかかる時間と、分割データ３０１ｂが端末２０１−２から端末２０１−１へ転送される際にかかる時間と、の合計時間である。すなわち、読出時間Ｃ１２は、分割データ３０１ｂが、端末２０１−２から読み出されて端末２０１−２から端末２０１−１に転送されるまでにかかる所要時間である。
【０１５４】
また、読出時間Ｃ１３は、端末２０１−３によって分割データ３０１ｃを端末２０１−３のストレージから読み出す際にかかる時間と、分割データ３０１ｃが端末２０１−３から端末２０１−１へ転送される際にかかる時間と、の合計時間である。すなわち、読出時間Ｃ１３は、分割データ３０１ｃが、端末２０１−３から読み出されて端末２０１−３から端末２０１−１に転送されるまでにかかる所要時間である。
【０１５５】
また、復元時間Ｃ１４は、端末２０１−１によって収集された分割データ３０１ａ〜３０１ｃを、共有対象となるファイル３０１に復元する際にかかる時間である。
【０１５６】
そして、端末２０１−１の完了時間ＣRは、読出時間Ｃ１１および復元時間Ｃ１４の合計時間と、読出時間Ｃ１２および復元時間Ｃ１４の合計時間と、読出時間Ｃ１３および復元時間Ｃ１４の合計時間と、に基づいて算出される。例えば、端末２０１−１は、読出時間Ｃ１１および復元時間Ｃ１４の合計時間と、読出時間Ｃ１２および復元時間Ｃ１４の合計時間と、読出時間Ｃ１３および復元時間Ｃ１４の合計時間とのうちの最大の合計時間を、端末２０１−１の完了時間ＣRとして算出する。
【０１５７】
つぎに、図１５を用いて、端末２０１−１が共有対象となるファイル３０１の読出要求をユーザから受け付け、端末２０１−２が読出処理を実行する場合の、読出処理の完了時間（ここでは、「端末２０１−２の完了時間ＣR」という）の算出例について説明する。
【０１５８】
図１５において、端末２０１−２の完了時間ＣRは、読出時間Ｃ１５と、読出時間Ｃ１６と、読出時間Ｃ１７と、復元時間Ｃ１８と、転送時間Ｃ１９と、から算出される。ここで、読出時間Ｃ１５は、端末２０１−２によって分割データ３０１ｂを端末２０１−２のストレージから読み出す際にかかる時間である。
【０１５９】
また、読出時間Ｃ１６は、端末２０１−１によって分割データ３０１ａを端末２０１−１のストレージから読み出す際にかかる時間と、分割データ３０１ａが端末２０１−１から端末２０１−２へ転送される際にかかる時間と、の合計時間である。すなわち、読出時間Ｃ１６は、分割データ３０１ａが、端末２０１−１から読み出されて端末２０１−１から端末２０１−２に転送されるまでにかかる所要時間である。
【０１６０】
また、読出時間Ｃ１７は、端末２０１−３によって分割データ３０１ｃを端末２０１−３のストレージから読み出す際にかかる時間と、分割データ３０１ｃが端末２０１−３から端末２０１−２へ転送される際にかかる時間と、の合計時間である。すなわち、読出時間Ｃ１７は、分割データ３０１ｃが、端末２０１−３から読み出されて端末２０１−３から端末２０１−２に転送されるまでにかかる所要時間である。
【０１６１】
また、復元時間Ｃ１８は、端末２０１−２によって収集された分割データ３０１ａ〜３０１ｃを、共有対象となるファイル３０１に復元する際にかかる時間である。転送時間Ｃ１９は、端末２０１−２によって復元された共有対象となるファイル３０１が端末２０１−２から端末２０１−１に転送される際にかかる所要時間である。
【０１６２】
そして、端末２０１−２の完了時間ＣRは、読出時間Ｃ１５および復元時間Ｃ１８の合計時間Ａ４と、読出時間Ｃ１６および復元時間Ｃ１８の合計時間Ａ５と、読出時間Ｃ１７および復元時間Ｃ１８の合計時間Ａ６と、転送時間Ｃ１９と、に基づいて算出される。例えば、端末２０１−１は、合計時間Ａ４および転送時間Ｃ１９の合計時間と、合計時間Ａ５および転送時間Ｃ１９の合計時間と、合計時間Ａ６および転送時間Ｃ１９の合計時間とのうちの最大の合計時間を端末２０１−２の完了時間ＣRとして算出する。
【０１６３】
つぎに、ファイル共有グループＤＢの記憶内容について説明する。ここでは、端末２０１−１が有するファイル共有グループＤＢ１６００を例に挙げて説明する。
【０１６４】
（ファイル共有グループＤＢ１６００の記憶内容）
図１６は、ファイル共有グループＤＢの記憶内容の一例を示す説明図である。図１６において、端末２０１−１が有するファイル共有グループＤＢ１６００は、端末名Ｔ、復元速度Ｐ、ストレージ数Ｎ、読出速度ＳR、バッテリ残量Ｂ、通信速度ｔｎおよび単位読出時間Ｒｅａｄのフィールドを有する。各フィールドに情報を設定することで、端末特性データ１６０１−１〜１６０１−ｍがレコードとして記憶されている。
【０１６５】
なお、ファイル共有グループＤＢ１６００には、ファイル共有グループＤＢ１６００を有する端末２０１−１に対するレコードが、一つ目の端末特性データ１６０１−１として記憶されている。また、他端末に対するレコードが、二つ目以降の端末特性データ１６０１−２〜１６０１−ｍとして記憶されている。なお、ここでは、端末２０１−１〜２０１−３がファイル共有グループである例を挙げて説明する。
【０１６６】
復元速度Ｐは、共有対象となるファイルから分割された分割データを復元する際に、単位時間あたりに復元するデータサイズであり、単位は［ＭＢ／ｓ］である。復元速度Ｐは、端末２０１−１〜２０１−３のＣＰＵの性能によって決定されている。以下の説明では、端末名Ｔに対応する復元速度Ｐを、「復元速度ＰT」と表記する。例えば、復元速度ＰXとは、端末名Ｔが「Ｘ」である端末２０１−１の復元速度Ｐを示している。
【０１６７】
読出速度ＳRは、共有対象となるファイルから分割された分割データをストレージから読み出す際の、単位時間あたりに読み出すデータサイズであり、単位は［ＭＢ／ｓ］である。読出速度ＳRは、ストレージの着脱に応じて、ストレージごとに登録される。以下の説明では、端末名Ｔに対応する読出速度ＳRを、「読出速度ＳRT」と表記する。例えば、読出速度ＳRxとは、端末名Ｔが「Ｘ」である端末２０１−１の読出速度ＳRを示している。
【０１６８】
また、以下の説明では、各端末におけるｉ番目のストレージに対応する読出速度ＳRを、「読出速度ＳRi」と表記する。例えば、読出速度ＳR1とは、１番目のストレージの読出速度ＳRを示している。これらより、読出速度ＳRX1とは、端末名Ｔが「Ｘ」の端末２０１−１の、１番目のストレージにおける読出速度ＳRを示している。なおここでは、内蔵ストレージを１番目のストレージとし、可搬ストレージを２番目以降のストレージとする。
【０１６９】
単位読出時間Ｒｅａｄは、端末ごとの、単位データサイズあたりの読出処理時間を示しており、単位は［ｍｓ／ＭＢ］である。読出処理時間とは、各端末が読出処理の実行を開始してから完了するまでの時間であり、具体的には、分散配置された分割データを収集し、収集した分割データから共有対象となるファイルの復元が完了するまでにかかる時間である。すなわち、単位読出時間Ｒｅａｄに共有対象となるファイルのデータサイズを乗じることにより、対応する端末によって、共有対象となるファイルの読出処理の実行が開始されてから完了されるまでにかかる時間が算出可能である。
【０１７０】
自端末に対応する単位読出時間Ｒｅａｄは、所定の周期ごとに算出され、登録される。また、他端末に対応する単位読出時間Ｒｅａｄは、読出要求をユーザから受け付けた際に、他端末から取得され、登録される。以下の説明では、端末名Ｔに対応する単位読出時間Ｒｅａｄを、「単位読出時間ＲｅａｄT」と表記する。例えば、単位読出時間ＲｅａｄXとは、端末名Ｔが「Ｘ」である端末２０１−１の単位読出時間Ｒｅａｄを示している。
【０１７１】
一例として、端末特性データ１６０１−２を例に挙げると、端末名Ｔが「Ｙ」、復元速度ＰY＝１５０［ＭＢ／ｓ］、ストレージ数ＮY＝２［個］、読出速度ＳRY1＝４０［ＭＢ／ｓ］、読出速度ＳRY2＝３０［ＭＢ／ｓ］、バッテリ残量ＢY＝７５［％］、通信速度ｔｎXY＝１０［ＭＢ／ｓ］、単位読出時間ＲｅａｄY＝６１［ｍｓ／ＭＢ］が記憶されている。
【０１７２】
（端末２０１−ｋの機能例）
つぎに、図７を用いて、実施の形態３にかかる端末の機能例について説明する。選択部７０２は、端末２０１−１〜２０１−ｍの中から、ファイルの読出処理を行う端末を選択する。具体的に、例えば、選択部７０２が、ファイルの読出処理を行う端末として、取得部７０１によって取得されたバッテリ残量Ｂが最も多い端末を選択したり、バッテリ残量Ｂが所定値以上である端末のうち一の端末を選択したりする。
【０１７３】
これにより、選択部７０２は、端末２０１−１〜２０１−ｍの中から、ファイルの読出処理中にバッテリが切れる可能性の最も低い端末を、ファイルの読出処理を行う端末として選択することができる。
【０１７４】
割当部７０３は、選択部７０２によって選択された端末にファイルの読出処理を割り当てる。具体的には、例えば、自端末が選択された場合、割当部７０３が、ファイルの読出処理を自端末に割り当てる。この結果、端末２０１−ｋがファイルの読出処理を実行する。また、他端末が選択された場合、割当部７０３が、他端末に対してファイルの読出処理の処理要求を送信する。この結果、処理要求を受信した端末が、ファイルの読出処理を実行する。
【０１７５】
また、取得部７０１は、ファイルの読出処理の完了時間を算出するための情報を取得する。ファイルの読出処理の完了時間は、上述したように、分散配置された分割データを複数の端末から収集する収集時間と、分割データから共有対象となるファイルを復元する復元時間と、ファイルの読出処理を実行する端末からファイルが転送される転送時間と、を含む。分割データを収集するとは、各端末のストレージから分割データを読み出し、読み出された分割データが、各端末から読出処理を実行する端末へ転送されることである。
【０１７６】
完了時間を算出するための情報とは、例えば、共有対象となるファイルのデータサイズや、共有対象となるファイルの端末ごとの復元速度Ｐや、端末ごとのストレージに対する分割データの読出速度ＳRiや、自端末と他端末の間の通信速度ｔｎなどである。
【０１７７】
具体的には、例えば、取得部７０１が、ファイル共有グループＤＢ（例えば、図１６参照）の中から、自端末のデータの復元速度Ｐを取得する。なお、自端末のデータの復元速度Ｐは、例えば、製造時に予め設定されてファイル共有グループＤＢに登録されている。
【０１７８】
また、取得部７０１が、例えば、ファイルの共有を開始する際に、他端末の復元速度Ｐを他端末から取得する。また、例えば、取得部７０１は、自端末のストレージから微小なサイズ（例えば、数ビット）のデータを読み出し、該データの読み出しを開始してから完了するまでの時間を計測することにより、自端末の読出速度ＳRiを取得する。取得された自端末の読出速度ＳRiは、例えば、ファイル共有グループＤＢに登録される。
【０１７９】
また、取得部７０１が、例えば、ファイルの共有を開始する際に、他端末の読出速度ＳRiを他端末から取得する。取得された他端末の読出速度ＳRiは、例えば、ファイル共有グループＤＢに登録される。自端末および他端末の読出速度ＳRiは、例えば、自端末および他端末のストレージが脱着されると、その都度取得される。
【０１８０】
算出部７０４は、取得部７０１によって取得された情報に基づいて、各々の端末によるファイルの読出処理の完了時間ＣRを算出する。具体的に、例えば、算出部７０４が、取得部７０１によって取得された情報および所定の式を用いて、各端末によるファイルの読出処理の完了時間ＣRを算出する。
【０１８１】
以下の説明では、端末名Ｔが「Ｔ１」である端末がユーザからファイルの読出要求を受け付けた場合の、端末名Ｔが「Ｔ２」である端末に対応するファイルの読出処理の完了時間ＣRを、「完了時間ＣRT1T2」と表記する。例えば、完了時間ＣRXYとは、端末名Ｔが「Ｘ」の端末がユーザからファイルの読出要求を受け付け、端末名Ｔが「Ｙ」の端末が読出処理を実行する際の完了時間ＣRを示している。
【０１８２】
ここで、図１６に示したファイル共有グループＤＢ１６００に応じたファイル共有グループを例に挙げて、算出部７０４によって算出される完了時間ＣRについて説明する。より具体的には、例えば、算出部７０４が、下記式（６）を用いて、ユーザから読出要求を受け付けた端末Ｘが、自端末に読出処理を割り当てる場合の完了時間ＣRXXを算出することができる。
【０１８３】
ただし、下記式（６）において、ＳRXiは、端末Ｘのｉ番目のストレージの読出速度ＳRを示すパラメータである。ＳRYiは、端末Ｙのｉ番目のストレージの読出速度ＳRを示すパラメータである。ＳRZiは、端末Ｚのｉ番目のストレージの読出速度ＳRを示すパラメータである。
【０１８４】
【数６】
2012124064.tif 000008
【０１８５】
すなわち、算出部７０４が、上述した各種パラメータの値を上記式（６）に代入することにより、ユーザからファイルの読出要求を受け付けた端末Ｘが読出処理を行う際の完了時間ＣRXXを算出することができる。
【０１８６】
上記式（６）の１行目の式における括弧内の各要素は、分散配置された分割データを自端末から読み出す時間と、各他端末のストレージから読み出しが開始されてから、読出処理を実行する端末への分割データの転送が完了されるまでの時間とである。分割データの読み出しおよび読出処理を実行する端末への転送は端末ごとに並行して行われるため、該括弧内の最大値をとることにより、最も処理時間の長い処理の処理時間を算出している。また、上記式（６）の１行目の式において、二つ目の要素は、収集された分割データから共有対象となるファイルを復元するための時間を示している。
【０１８７】
上記式（６）において、１行目の式をＦで括った式が２行目の式であり、２行目の式の括弧内を、単位読出時間ＲｅａｄXに置き換えた式が３行目の式である。上記式（６）によれば、ユーザから読出要求を受け付けた端末Ｘが、分割された分割データを収集してから、収集した分割データから共有対象となるファイルの復元が完了するまでの完了時間ＣRXXを算出することができる。
【０１８８】
図１６に示したファイル共有グループＤＢ１６００の例では、各種パラメータの値はつぎの通りである。Ｆ＝１２［ＭＢ］、ＰX＝５０［ＭＢ／ｓ］、Ｎ＝５［個］、ＮX＝１［個］、ＮY＝２［個］、ＮZ＝２［個］、ＳRX1＝２０［ＭＢ／ｓ］、ＳRY1＝４０［ＭＢ／ｓ］、ＳRY2＝３０［ＭＢ／ｓ］、ＳRZ1＝２０［ＭＢ／ｓ］、ＳRZ2＝４０［ＭＢ／ｓ］、ｔｎXY＝１０［ＭＢ／ｓ］、ｔｎXZ＝２０［ＭＢ／ｓ］
【０１８９】
この場合、算出部７０４が、上記式（６）に各種パラメータの上記値を代入することにより、単位読出時間ＲｅａｄX＝７６［ｍｓ／ＭＢ］、完了時間ＣRXX＝０．９［ｓ］を算出することができる。
【０１９０】
また、他の端末においても、上記式（６）と同様の式を用いることにより、ユーザから読出要求を受け付けた端末が読出処理を実行する際の完了時間ＣRを算出することができる。例えば、ユーザから読出要求を受け付けた端末Ｙが読出処理を実行する際の完了時間ＣRYYは、上記式（６）のＸおよびＹを入れ替えた式に、端末Ｙによって各種パラメータの値が代入されることにより算出される。
【０１９１】
また、例えば、算出部７０４が、下記式（７）を用いて、ユーザから読出要求を受け付けた端末Ｘが、端末Ｙにファイルの読出処理を割り当てる場合の完了時間ＣRXYを算出することができる。
【０１９２】
【数７】
2012124064.tif 000009
【０１９３】
すなわち、算出部７０４が、Ｆ、ｔｎXY、ＲｅａｄYの値を上記式（７）に代入することにより、完了時間ＣRXYを算出することができる。上記式（７）の１行目の式における一つ目の要素は、端末Ｙが読出処理を開始してから完了するまでにかかる完了時間ＣRYYであり、二つ目の要素は、復元された共有対象となるファイルを端末Ｙから端末Ｘへ転送させるための時間である。上記式（７）の２行目の式の二つ目の要素は、完了時間ＣRYYを上記式（６）にならって分解したものである。
【０１９４】
例えば、各種パラメータの値を、Ｆ＝１２［ＭＢ］、ｔｎXY＝１０［ＭＢ／ｓ］、ＲｅａｄY＝６１［ｍｓ／ＭＢ］とした場合、完了時間ＣRXYは２．１［ｓ］となる。
【０１９５】
他の端末においても、上記式（７）と同様の式を用いることにより、ユーザから読出処理を受け付けた端末とは異なる端末が読出処理を実行する際の完了時間ＣRを算出することができる。例えば、ユーザから読出要求を受け付けた端末Ｙとは異なる端末Ｚが読出処理を実行する際の完了時間ＣRYZは、上記式（７）のＸおよびＹを入れ替え、ＹおよびＺを入れ替えた式に、端末Ｙによって各種パラメータの値が代入されることにより算出される。
【０１９６】
また、選択部７０２は、算出部７０４による算出結果に基づいて、ファイルの読出処理を行う端末を選択することにしてもよい。具体的には、例えば、選択部７０２が、算出されたファイルの読出処理の完了時間ＣRが最も短い端末を、ファイルの読出処理を行う端末として選択する。より具体的には、例えば、選択部７０２が、端末Ｘがユーザからファイルの読出要求を受け付けた場合に、完了時間ＣRXXと、完了時間ＣRXYと、完了時間ＣRXZと、のうち最も短い完了時間に対応する端末を、読出処理を割り当てる端末として選択する。
【０１９７】
これにより、選択部７０２は、端末２０１−１〜２０１−ｍの中から、ファイルの読出処理の完了時間ＣRが最も短い端末を、ファイルの読出処理を行う端末として選択することができる。
【０１９８】
また、算出部７０４が、バッテリ残量Ｂとファイルの読出処理の完了時間ＣRとに基づいて、ファイルの読出処理の割当先となる端末を選択する際の指標となる評価値（以下、「評価値ＶR」という）を算出することにしてもよい。以下の説明では、端末Ｘがユーザから読出要求を受け付けた場合における、端末Ｘの評価値ＶRを「ＶRXX」と表記する。また、端末Ｘがユーザから読出要求を受け付けた場合における、端末Ｙの評価値ＶRを「ＶRXY」と表記する。
【０１９９】
ここで、図１６に示したファイル共有グループＤＢ１６００に応じたファイル共有グループを例に挙げて、算出部７０４によって算出される評価値ＶRについて説明する。具体的には、例えば、算出部７０４が、上記式（３）〜（５）のＷをＲに置き換えたいずれかの式を用いて、端末Ｘがユーザから読出要求を受け付けた場合における、端末Ｘの評価値ＶRXXを算出することができる。
【０２００】
すなわち、算出部７０４が、上記式（３）〜（５）のＷをＲに置き換えたいずれかの式に、ＢXおよびＣRXXの値を代入することにより、端末Ｘがユーザから読出要求を受け付けた場合における、端末Ｘの評価値ＶRXXを算出することができる。上記式（３）〜（５）のＷをＲに置き換えたいずれの式においても、バッテリ残量Ｂが多いほど、また、完了時間ＣRが短いほど、高い評価値ＶRが算出されるようになっている。
【０２０１】
他の端末においても、上記式（３）〜（５）のＷをＲに置き換えた式と同様の式を用いることにより評価値ＶRを算出することができる。例えば、端末Ｘがファイルの読出要求を受け付けた際の端末Ｙの評価値ＶRXYは、上記式（３）〜（５）のＷをＲに置き換えた式のＢXをＢYとし、ＣRXXをＣRXYとした式を用いることにより算出することができる。
【０２０２】
この場合、選択部７０２は、算出部７０４によって算出された評価値ＶRに基づいて、端末２０１−１〜２０１−ｍの中からファイルの読出処理を行う端末を選択することにしてもよい。具体的には、例えば、選択部７０２は、算出部７０４によって算出された評価値ＶRの最も高い端末を、ファイルの読出処理を行う端末として選択する。
【０２０３】
これにより、選択部７０２は、端末２０１−１〜２０１−ｍの中から、ファイルの読出処理中にバッテリが切れる可能性ができるだけ低く、ファイルの読出処理の完了時間ＣRができるだけ短い端末を、ファイルの読出処理を行う端末として選択することができる。
【０２０４】
（端末２０１−ｋの処理手順）
以下、端末２０１−ｋが行う処理手順の一例について説明する。
【０２０５】
（端末２０１−ｋのファイル共有設定処理手順）
図１７は、実施の形態３にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。ファイル共有設定処理は、ＣＰＵ５０１によって実行される処理である。ファイル共有設定処理において、端末２０１−ｋは、まず、ファイル共有の開始要求をユーザから受け付けたか否かを判定し（ステップＳ１７０１）、受け付けない場合（ステップＳ１７０１：Ｎｏ）、受け付けるまで待機する。
【０２０６】
ステップＳ１７０１において、ファイル共有の開始要求をユーザから受け付けた場合（ステップＳ１７０１：Ｙｅｓ）、取得部７０１により、各種パラメータの値を取得する（ステップＳ１７０２）。各種パラメータとは、静的なパラメータであり、例えば、他端末における復元速度Ｐと、読出速度ＳRとである。そして、端末２０１−ｋは、取得された各種パラメータの値を、端末２０１−ｋが有するファイル共有グループＤＢへ登録する（ステップＳ１７０３）。
【０２０７】
その後、端末２０１−ｋは、ファイル共有の終了要求をユーザから受け付けたか否かを判定する（ステップＳ１７０４）。ここで、ファイル共有の終了要求をユーザから受け付けていない場合（ステップＳ１７０４：Ｎｏ）、取得部７０１により、通信速度収集処理（図９を参照）が実行される（ステップＳ１７０５）。
【０２０８】
その後、取得部７０１により、端末２０１−ｋのバッテリ残量ＢをＰＭＵ５０７から取得する（ステップＳ１７０６）。そして、端末２０１−ｋは、取得された自端末のバッテリ残量Ｂをファイル共有グループＤＢに登録する（ステップＳ１７０７）。そして、端末２０１−ｋは、他端末から、可搬ストレージの挿抜を検出した旨を示す可搬ストレージの変更通知を受信したか否かを判定する（ステップＳ１７０８）。端末２０１−ｋは、可搬ストレージの変更通知を受信していない場合（ステップＳ１７０８：Ｎｏ）、ステップＳ１７１０へ移行する。
【０２０９】
ステップＳ１７０８において、可搬ストレージの変更通知を受信した場合（ステップＳ１７０８：Ｙｅｓ）、端末２０１−ｋは、ファイル共有グループＤＢに変更内容を登録する（ステップＳ１７０９）。具体的には、端末２０１−ｋは、挿抜を検出したストレージの読出速度を更新して登録する。その後、算出部７０４により、自端末の単位読出時間Ｒｅａｄを算出する（ステップＳ１７１０）。
【０２１０】
そして、端末２０１−ｋは、算出された自端末の単位読出時間Ｒｅａｄを、ファイル共有グループＤＢへ登録し（ステップＳ１７１１）、ステップＳ１７０４へ移行する。また、端末２０１−ｋは、ファイル共有の終了要求をユーザから受け付けた場合（ステップＳ１７０４：Ｙｅｓ）、本フローチャートによる一連の処理を終了する。
【０２１１】
（端末２０１−ｋのストレージ挿抜検出処理手順）
図１８は、実施の形態３にかかる端末のストレージ挿抜検出処理手順の一例を示すフローチャートである。ストレージ挿抜検出処理は、ＣＰＵ５０１によって実行される処理である。ストレージ挿抜検出処理において、まず、端末２０１−ｋは、可搬ストレージの挿抜を検出したか否かを判定し（ステップＳ１８０１）、検出しない場合（ステップＳ１８０１：Ｎｏ）、検出するまで待機する。
【０２１２】
ステップＳ１８０１において、可搬ストレージの挿抜を検出した場合（ステップＳ１８０１：Ｙｅｓ）、端末２０１−ｋは、可搬ストレージが利用可能であるか否かを判定する（ステップＳ１８０２）。これにより、端末２０１−ｋは、可搬ストレージが装着されているか否かを判定している。
【０２１３】
ステップＳ１８０２において、可搬ストレージが利用可能でない場合（ステップＳ１８０２：Ｎｏ）、ステップＳ１８０４へ移行する。可搬ストレージが利用可能である場合（ステップＳ１８０２：Ｙｅｓ）、取得部７０１により、可搬ストレージの読出速度ＳRiを測定する（ステップＳ１８０３）。
【０２１４】
そして、端末２０１−ｋは、ファイル共有グループＤＢを更新する（ステップＳ１８０４）。その際、ステップＳ１８０２において可搬ストレージが利用可能であれば、端末２０１−ｋは、ステップＳ１８０３において測定した読出速度ＳRiをファイル共有グループＤＢに更新する。また、ステップＳ１８０２において可搬ストレージが利用可能でなければ、端末２０１−ｋは、可搬ストレージに対応する読出速度ＳRiをファイル共有グループＤＢから削除する。
【０２１５】
その後、端末２０１−ｋは、他端末に対して、可搬ストレージに対応する読出速度ＳRiの情報を含む可搬ストレージ変更通知を送信することにより、可搬ストレージの変更を通知し（ステップＳ１８０５）、本フローチャートによる一連の処理を終了する。
【０２１６】
（端末２０１−ｋの読出要求受付処理手順）
図１９は、実施の形態３にかかる端末の読出要求受付処理手順の一例を示すフローチャートである。読出要求受付処理は、ＣＰＵ５０１によって実行される処理である。読出要求受付処理において、まず、端末２０１−ｋは、共有対象となるファイルの読出要求をユーザから受け付けたか否かを判定し（ステップＳ１９０１）、受け付けていない場合（ステップＳ１９０１：Ｎｏ）、受け付けるまで待機する。
【０２１７】
ステップＳ１９０１において、共有対象となるファイルの読出要求をユーザから受け付けた場合（ステップＳ１９０１：Ｙｅｓ）、取得部７０１により、他端末の単位読出時間Ｒｅａｄおよびバッテリ残量Ｂを取得する（ステップＳ１９０２）。その後、端末２０１−ｋは、取得された他端末の単位読出時間Ｒｅａｄおよびバッテリ残量Ｂを、ファイル共有グループＤＢへ登録する（ステップＳ１９０３）。
【０２１８】
ステップＳ１９０３の後、算出部７０４により、完了時間ＣRおよび評価値ＶRを算出する評価値算出処理（図１２を参照）を行う（ステップＳ１９０４）。そして、割当部７０３により、読出処理を端末に割り当てる読出割当処理（図２０を参照）を行う（ステップＳ１９０５）。
【０２１９】
そして、ステップＳ１９０５の後、端末２０１−ｋは、ファイルの読出処理が完了したか否かを判定する（ステップＳ１９０６）。ファイルの読出処理が完了するとは、ファイルの読出処理が割り当てられている他端末から、端末２０１−ｋが、分割データから復元されたファイルを受信することである。また、自端末が読出処理を割り当てられている場合、読出処理が完了するとは、分割データから共有対象となるファイルの復元が完了することである。
【０２２０】
ステップＳ１９０６において、ファイルの読出処理が完了した場合（ステップＳ１９０６：Ｙｅｓ）、端末２０１−ｋは、本フローチャートによる一連の処理を終了する。ファイルの読出処理が完了していない場合（ステップＳ１９０６：Ｎｏ）、端末２０１−ｋは、異常を検出したか否かを判定する（ステップＳ１９０７）。例えば、端末２０１−ｋは、共有対象となるファイルから分割された分割データの読み出し途中に可搬ストレージが抜かれた場合などを異常として検出する。
【０２２１】
異常を検出した場合（ステップＳ１９０７：Ｙｅｓ）、端末２０１−ｋは、エラー処理を実行し（ステップＳ１９０８）、本フローチャートによる一連の処理を終了する。
【０２２２】
ステップＳ１９０７において、異常を検出しない場合（ステップＳ１９０７：Ｎｏ）、端末２０１−ｋは、ステップＳ１９０６へ移行する。
【０２２３】
（端末２０１−ｋの読出割当処理手順）
図２０は、実施の形態３にかかる端末の読出割当処理手順の一例を示すフローチャートである。読出割当処理において、まず、端末２０１−ｋは、評価値算出処理において算出された評価値ＶRを参照する（ステップＳ２００１）。そして、選択部７０２により、読出処理を実行する端末を選択する（ステップＳ２００２）。その際、例えば、選択部７０２は、評価値の最も高い端末を、読出処理を実行する端末として選択する。
【０２２４】
その後、端末２０１−ｋは、ステップＳ２００２にて選択された端末が自端末であるか否かを判定する（ステップＳ２００３）。ここで、端末２０１−ｋは、自端末である場合（ステップＳ２００３：Ｙｅｓ）、読出処理の実行を開始し（ステップＳ２００４）、本フローチャートによる一連の処理を終了する。その際、具体的に、端末２０１−ｋは、各端末のストレージから分割データを読み出させ、読み出させた分割データを収集し、収集した各分割データから共有対象となるファイルを復元する。
【０２２５】
また、ステップＳ２００２において選択された端末が他端末である場合（ステップＳ２００３：Ｎｏ）、割当部７０３により、選択された端末に読出要求を送信し（ステップＳ２００５）、本フローチャートによる一連の処理を終了する。
【０２２６】
以上説明した実施の形態３にかかる端末２０１−ｋによれば、ファイルを共有する各端末のバッテリ残量Ｂおよびファイルの読出処理の完了時間ＣRに基づいて、ファイルの読出処理の割当先となる端末を選択することができる。すなわち、ファイルの読出処理を実行する端末を、各端末のバッテリ残量Ｂ、処理性能および端末間の通信状況を複合的に評価して選択することができる。
【０２２７】
これにより、ファイルの読出処理の実行中にバッテリが切れる可能性ができるだけ低く、該読出処理が完了するまでにかかる完了時間ＣRができるだけ短くなるような端末を、該読出処理の割当先となる端末として選択することができる。この結果、ファイルの読出処理の実行中におけるバッテリ切れを防止するとともにファイルの読出処理の処理時間の短縮化を図ることができる。
【０２２８】
なお、実施の形態３において、端末２０１−ｋは、ファイルの読出要求をユーザから受け付けた場合に、各端末のバッテリ残量Ｂおよびファイルの読出処理の完了時間ＣRに基づいて、読出処理を実行する端末を選択するものとしたが、これに限るものではない。
【０２２９】
例えば、端末２０１−ｋは、読出要求をユーザから受け付けた場合に、各端末のバッテリ残量Ｂに基づいて、ファイルの読出処理を実行する端末を選択するものであってもよい。その場合、ファイルの読出処理の実行中にバッテリが切れる可能性ができるだけ低い端末を、読出処理の割当先となる端末として選択することができる。この結果、ファイルの読出処理の実行中におけるバッテリ切れを防止することができる。
【０２３０】
また、例えば、端末２０１−ｋは、読出要求をユーザから受け付けた場合に、ファイルの読出処理の完了時間ＣRに基づいて、ファイルの読出処理を実行する端末を選択するものであってもよい。その場合、読出処理が完了するまでにかかる完了時間ＣRができるだけ短くなるような端末を、読出処理の割当先となる端末として選択することができる。この結果、ファイルの読出処理の処理時間の短縮化を図ることができる。
【０２３１】
なお、本実施の形態で説明したファイル共有化方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ファイル共有化プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ファイル共有化プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０２３２】
１００  ファイル共有システム
１０１ａ〜１０１ｄ  端末
２００  ファイル共有システム
２０１−１〜２０１−ｍ  端末
２０２  ネットワーク
６００，１６００  ファイル共有グループＤＢ
７０１  取得部
７０２  選択部
７０３  割当部
７０４  算出部
７０５  判定部
【図１】
2012124064.tif 000010
【図２】
2012124064.tif 000011
【図３】
2012124064.tif 000012
【図４】
2012124064.tif 000013
【図５】
2012124064.tif 000014
【図６】
2012124064.tif 000015
【図７】
2012124064.tif 000016
【図８】
2012124064.tif 000017
【図９】
2012124064.tif 000018
【図１０】
2012124064.tif 000019
【図１１】
2012124064.tif 000020
【図１２】
2012124064.tif 000021
【図１３】
2012124064.tif 000022
【図１４】
2012124064.tif 000023
【図１５】
2012124064.tif 000024
【図１６】
2012124064.tif 000025
【図１７】
2012124064.tif 000026
【図１８】
2012124064.tif 000027
【図１９】
2012124064.tif 000028
【図２０】
2012124064.tif 000029
【手続補正書】
【提出日】平成26年5月7日(2014.5.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１端末は、前記第１端末を含む複数の端末の中から、前記複数の端末で複数のファイルを共有するための前記複数のファイルに分割する分割処理と前記複数のファイルを復元する復元処理とを含む共有化処理を行う第２端末を、前記複数の端末のバッテリ残量および前記共有化処理の処理時間に基づいて選択し、
前記第２端末に前記共有化処理を割り当てること
を特徴とするファイル共有化方法。
【請求項２】
前記複数のファイルがアクセスされるときに前記バッテリ残量を取得すること
を特徴とする請求項１に記載のファイル共有化方法。
【請求項３】
前記複数の端末に関するパラメータおよびバッテリ残量を前記複数の端末の共有ファイルに登録すること
を特徴とする請求項１または２に記載のファイル共有化方法。
【請求項４】
前記複数のファイルのサイズ、前記複数のファイルの分割処理速度、前記複数のファイルの復元処理速度、前記複数の端末に内蔵される第１ストレージからの読出速度、前記第１ストレージへの書込速度、前記複数の端末に着脱される第２ストレージからの読出速度、前記第２ストレージへの書込速度、前記複数の端末間の通信速度、または、前記複数の端末の端末数を含むパラメータに基づいて前記処理時間を計算すること
を特徴とする請求項１〜３のいずれか一つに記載のファイル共有化方法。
【請求項５】
前記第１端末は、前記複数のファイルへの書き込み要求に基づいて前記複数の端末間の通信速度を閾値と比較し、
前記通信速度が前記閾値よりも小さいときには前記書き込み要求に対応するデータを前記第１端末のストレージに書き込むこと
を特徴とする請求項１〜４のいずれか一つに記載のファイル共有化方法。
【請求項６】
前記通信速度が前記閾値以上になったときに、前記データを前記複数のファイルに反映すること
を特徴とする請求項５に記載のファイル共有化方法。
【請求項７】
第１ＣＰＵと、
前記第１ＣＰＵを含む複数のＣＰＵで共有化される複数のファイルの少なくとも一部と、を含み、
前記第１ＣＰＵは、前記複数のＣＰＵの中から、前記複数のＣＰＵで前記複数のファイルを共有するための前記複数のファイルに分割する分割処理と前記複数のファイルを復元する復元処理とを含む共有化処理を行う第２ＣＰＵを、前記複数のＣＰＵのうちの対応するＣＰＵを含む複数の端末のバッテリ残量および前記複数のＣＰＵのそれぞれの前記複数のファイルの共有化処理の処理時間に基づいて選択し、前記第２ＣＰＵに前記複数のファイルの共有化処理を割り当てること
を特徴とする端末。
【請求項８】
前記複数のＣＰＵに関するパラメータおよび前記複数のＣＰＵのバッテリ残量を登録する取得部を含むこと
を特徴とする請求項７に記載の端末。
【請求項９】
前記複数のＣＰＵのそれぞれについて、前記複数のファイルのサイズ、前記複数のファイルの分割処理速度、前記複数のファイルの復元処理速度、前記複数の端末に内蔵される第１ストレージからの読出速度、前記第１ストレージへの書込速度、前記複数の端末に着脱される第２ストレージからの読出速度、前記第２ストレージへの書込速度、前記複数の端末間の通信速度、または前記複数の端末の数を含むパラメータに基づいて前記処理時間を計算する算出部を含むこと
を特徴とする請求項７または８に記載の端末。
【国際調査報告】
2012124064.tif 000030
2012124064.tif 000031
2012124064.tif 000032
2012124064.tif 000033