(57)【要約】  データ共有システムは、第１の端末＃０（１）にその他の端末＃１（９）からデータを転送するのに要すると見積もられる時間、第１の端末＃０（１）に集約されたデータを第１の端末＃０（１）で演算処理するのに要すると見積もられる時間、および第１の端末＃０（１）からその他の端末＃１（９）へ演算処理済みのデータを転送するのに要すると見積もられる時間の合計時間がリアルタイム制約を満たし、かつ第１の端末＃０（１）に集約されたデータを第１の端末＃０（１）で演算処理するときに消費されると見積もられる電力が、その他の端末＃１（９）で見積もられる消費電力よりも少ない場合に、第１の端末＃０（１）をサーバーとし、その他の端末＃１（９）をクライアントとするＣＳ方式を選択する。データ共有システムは、複数の端末（１，９）のいずれも合計時間がリアルタイム制約を満たさない場合にＰ２Ｐ方式を選択する。
2012035639.tif 000002
【特許請求の範囲】
【請求項１】
互いに通信可能な複数の端末を備え、
前記複数の端末のうち、第１の端末にその他の端末からデータを転送するのに要すると見積もられる時間、前記第１の端末に集約されたデータを前記第１の端末で演算処理するのに要すると見積もられる時間、および前記第１の端末から前記その他の端末へ演算処理済みのデータを転送するのに要すると見積もられる時間の合計時間がリアルタイム制約を満たし、かつ前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力よりも少ない場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、
前記複数の端末のいずれも前記合計時間がリアルタイム制約を満たさない場合にピアツーピア方式を選択することを特徴とするデータ共有システム。
【請求項２】
前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力のうち最少の電力と同じである場合、
前記第１の端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする請求項１に記載のデータ共有システム。
【請求項３】
前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されていることを特徴とする請求項１に記載のデータ共有システム。
【請求項４】
前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されており、
前記アプリケーションプログラムの起動時に前記プロセッサの負荷率を取得することを特徴とする請求項２に記載のデータ共有システム。
【請求項５】
他の端末と通信する通信部と、
自端末に、互いに通信可能なその他の端末からデータを転送するのに要する時間、および前記自端末から前記その他の端末へ演算処理済みのデータを転送するのに要する時間を見積もるデータ転送時間見積もり部と、
前記自端末に集約されたデータを前記自端末で演算処理するのに要する時間を見積もる演算時間見積もり部と、
前記データ転送時間見積もり部により見積もられたデータ転送時間および前記演算時間見積もり部により見積もられた演算時間の合計時間を算出する合計時間算出部と、
前記自端末に集約された前記データを前記自端末で演算処理するときに消費される電力を見積もる消費電力見積もり部と、
前記合計時間算出部により算出された合計時間がリアルタイム制約を満たすか否かを判断する判断部と、
前記判断部により前記合計時間が前記リアルタイム制約を満たすと判断され、かつ前記消費電力見積もり部により見積もられた消費電力が、前記その他の端末が前記自端末と同じ演算処理を行うときに消費されると見積もられる消費電力よりも少ない場合に、前記自端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、いずれの端末も前記合計時間が前記リアルタイム制約を満たさない場合にピアツーピア方式を選択する選択部と、
を備えることを特徴とする端末。
【請求項６】
前記選択部は、
前記判断部により前記合計時間が前記リアルタイム制約を満たすと判断され、かつ前記消費電力見積もり部により見積もられた消費電力が、前記その他の端末が前記自端末と同じ演算処理を行うときに消費されると見積もられる消費電力のうち最少の消費電力と同じである場合、
前記自端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記自端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする請求項５に記載の端末。
【請求項７】
前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されていることを特徴とする請求項５に記載の端末。
【請求項８】
前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されており、
前記プロセッサは前記アプリケーションプログラムの起動時に前記プロセッサの負荷率を取得することを特徴とする請求項６に記載の端末。
【請求項９】
互いに通信可能な複数の端末のうち、第１の端末にその他の端末からデータを転送するのに要する時間、前記第１の端末に集約されたデータを前記第１の端末で演算処理するのに要する時間、および前記第１の端末から前記その他の端末へ演算処理済みのデータを転送するのに要する時間の合計時間を見積もり、
前記合計時間がリアルタイム制約を満たし、かつ前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力よりも少ない場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、
前記複数の端末のいずれも前記合計時間がリアルタイム制約を満たさない場合にピアツーピア方式を選択することを特徴とするデータ共有方法。
【請求項１０】
前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力のうち最少の電力と同じである場合、
前記第１の端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする請求項９に記載のデータ共有方法。
【請求項１１】
アプリケーションプログラム中に前記リアルタイム制約および前記消費電力の算出式を記述しておくことを特徴とする請求項９に記載のデータ共有方法。
【請求項１２】
アプリケーションプログラム中に前記リアルタイム制約および前記消費電力の算出式を記述しておき、
前記アプリケーションプログラムの起動時に前記プロセッサの負荷率を取得することを特徴とする請求項１０に記載のデータ共有方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ共有システム、端末およびデータ共有方法に関する。
【背景技術】
【０００２】
従来、複数の端末間でデータを共有する方式の一例として、サーバークライアント方式やピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）方式がある。サーバークライアント方式では、サーバー端末がクライアント端末から全てのデータを回収して演算処理を行う。サーバー端末はその演算結果を各クライアント端末へ転送する。ピアツーピア方式では、ネットワーク上の端末同士がデータを交換し、各端末が演算処理を行う。ピアツーピアはＰ２Ｐと略記されることがある。本明細書中において、サーバークライアントをＣＳと略記し、ピアツーピアをＰ２Ｐと略記することとする。【０００３】
Ｐ２Ｐ方式およびＣＳ方式の両方において、クライアント装置間で共有されるデータの登録要求およびアクセス要求を管理サーバが受け付け、各クライアント装置が、管理サーバからの承認応答に従ってデータの保存やデータへのアクセスの手順を実行することで、両方式の利点を享受できるシステムがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１１６９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のＣＳ方式では、一つの端末で演算処理を行うのでシステム全体の消費電力を削減できるが、データの回収時と演算結果の転送時にサーバー端末と各クライアント端末との間でデータ通信を行うため、データの回収から演算結果の転送終了まで時間がかかってしまう。一方、従来のＰ２Ｐ方式では、端末に別の端末からデータが入力するときにデータ通信を行えばよいので、データの入力から演算処理の終了まで短時間で終わらせることができるが、各端末で演算処理を行うため、システム全体の消費電力が大きくなってしまう。そこで、端末での演算処理を含めて、システム全体の消費電力を抑えたい場合にはＣＳ方式でデータを共有し、高速で処理したい場合にはＰ２Ｐ方式でデータを共有することができるのが望ましい。【０００６】
消費電力や処理速度に応じてデータの共有方式を選択することができるデータ共有システム、端末およびデータ共有方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
データ共有システムは互いに通信可能な複数の端末を備える。データ共有システムは、複数の端末のうち、第１の端末にその他の端末からデータを転送するのに要すると見積もられる時間、第１の端末に集約されたデータを第１の端末で演算処理するのに要すると見積もられる時間、および第１の端末からその他の端末へ演算処理済みのデータを転送するのに要すると見積もられる時間の合計時間がリアルタイム制約を満たし、かつ第１の端末に集約されたデータを第１の端末で演算処理するときに消費されると見積もられる電力が、その他の端末が第１の端末と同じ演算処理を行うときに消費されると見積もられる電力よりも少ない場合に、第１の端末をサーバーとし、その他の端末をクライアントとするＣＳ方式を選択する。データ共有システムは、複数の端末のいずれも合計時間がリアルタイム制約を満たさない場合にＰ２Ｐ方式を選択する。
【発明の効果】
【０００８】
消費電力や処理速度に応じてデータの共有方式を選択することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施例１にかかるデータ共有システムを示すブロック図である。
【図２】実施例１にかかるデータ共有方法を示すフローチャートである。
【図３】実施例２にかかるデータ共有システムを示すブロック図である。
【図４】実施例２にかかるアプリケーションデータテーブルを示す図である。
【図５】実施例２にかかるファイル共有方法においてファイル共有を許可する端末の登録作業を示すフローチャートである。
【図６】実施例２にかかるファイル共有方法においてファイル共有を許可する端末の登録作業を示すフローチャートである。
【図７】実施例２にかかるファイル共有方法において仮マスター端末の設定および端末間距離の測定作業を示すフローチャートである。
【図８】実施例２にかかるファイル共有方法において仮マスター端末の設定および端末間距離の測定作業を示すフローチャートである。
【図９】実施例２にかかるファイル共有方法において隣接する端末を決定する処理を示すフローチャートである。
【図１０】実施例２にかかるファイル共有方法において選択されたデータ共有方式での処理の全体を示すフローチャートである。
【図１１】図１０の続きを示すフローチャートである。
【図１２】実施例２にかかるファイル共有方法において選択されたデータ共有方式での処理の全体を示すフローチャートである。
【図１３】図１２の続きを示すフローチャートである。
【図１４】実施例２にかかるファイル共有方法において選択されたデータ共有方式での処理の全体を示すフローチャートである。
【図１５】実施例２にかかるファイル共有方法における共有方式の選択手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、この発明にかかるデータ共有システム、端末およびデータ共有方法の実施例を図面に基づいて詳細に説明する。データ共有システムは、一端末にデータを集約して演算処理した結果を他の端末へ転送する際の合計時間および演算処理時の消費電力を見積もってＰ２Ｐ方式またはＣＳ方式を選択するものである。本明細書および添付図面においては、「アプリケーション」または「アプリケーションプログラム」を単に「アプリ」と表すことがある。なお、この実施例によりこの発明が限定されるものではない。
【００１１】
（実施例１）
・データ共有システムおよび端末の説明
図１は、実施例１にかかるデータ共有システムを示すブロック図である。図１に示すように、データ共有システムは互いに通信可能な複数の端末（＃０、＃１）１，９を備えている。なお、端末の数は３個以上でもよい。各端末１，９は、データ転送時間見積もり部２、演算時間見積もり部３、消費電力見積もり部４、合計時間算出部５、判断部６、選択部７および通信部８を備えている。これらの各部は、後述するデータ共有方法を実現するプログラムをプロセッサが実行することにより実現されてもよい。プログラムは例えば図示省略したメモリに格納され、例えば図示省略したプロセッサにより呼び出されて順次実行される。
【００１２】
データ転送時間見積もり部２は、自端末に、互いに通信可能なその他の端末からデータを転送するのに要する時間、および自端末からその他の端末へ演算処理済みのデータを転送するのに要する時間を見積もる。演算時間見積もり部３は、自端末に集約されたデータを自端末で演算処理するのに要する時間を見積もる。合計時間算出部５は、データ転送時間見積もり部２により見積もられたデータ転送時間および演算時間見積もり部３により見積もられた演算時間の合計時間を算出する。判断部６は、合計時間算出部５により算出された合計時間がリアルタイム制約を満たすか否かを判断する。消費電力見積もり部４は、自端末に集約されたデータを自端末で演算処理するときに消費される電力を見積もる。
【００１３】
選択部７は、判断部６により合計時間がリアルタイム制約を満たすと判断され、かつ消費電力見積もり部４により見積もられた消費電力が、その他の端末が自端末と同じ演算処理を行うときに消費されると見積もられる消費電力よりも少ない場合に、ＣＳ方式を選択する。ＣＳ方式では、自端末がサーバーとなり、その他の端末がクライアントとなる。選択部７は、いずれの端末も合計時間がリアルタイム制約を満たさない場合にＰ２Ｐ方式を選択する。
【００１４】
・データ共有方法の説明
図２は、実施例１にかかるデータ共有方法を示すフローチャートである。ここでは、第１の端末＃０＿１がＣＳ方式においてサーバーとなる場合について説明する。図２に示すように、データ共有方法を実現する処理が開始されると、まず、第１の端末＃０＿１のデータ転送時間見積もり部２は、通信部８を介して第１の端末＃０＿１にその他の端末＃１＿９からデータを転送するのに要する時間ｔtrans(in)を見積もる。また、第１の端末＃０＿１のデータ転送時間見積もり部２は、通信部８を介して第１の端末＃０＿１からその他の端末＃１＿９へ演算処理済みのデータを転送するのに要する時間ｔtrans(out)を見積もる。
【００１５】
第１の端末＃０＿１の演算時間見積もり部３は、第１の端末＃０＿１に集約されたデータを第１の端末＃０＿１で演算処理するのに要する時間ｔexeを見積もる。そして、第１の端末＃０＿１の合計時間算出部５は、ｔtrans(in)とｔexeとｔtrans(out)との合計時間（ｔtrans(in)＋ｔexe＋ｔtrans(out)）を算出して、処理の合計時間を見積もる（ステップＳ１）。
【００１６】
次いで、第１の端末＃０＿１の判断部６は、合計時間算出部５により算出された処理の合計時間（ｔtrans(in)＋ｔexe＋ｔtrans(out)）がリアルタイム制約を満たすか否かを判断する。さらに、第１の端末＃０＿１の消費電力見積もり部４は、第１の端末＃０＿１に集約されたデータを第１の端末＃０＿１で演算処理するときに消費される電力を見積もる。そして、第１の端末＃０＿１の判断部６は、消費電力見積もり部４により見積もられた消費電力が、その他の端末＃１＿９が第１の端末＃０＿１と同じ演算処理を行うときに消費されると見積もられる電力よりも少ないか否か、すなわち第１の端末＃０＿１で演算処理するときに消費される電力が最少であるか否かを判断する（ステップＳ２）。
【００１７】
処理の合計時間（ｔtrans(in)＋ｔexe＋ｔtrans(out)）がリアルタイム制約を満たし、かつ第１の端末＃０＿１における消費電力の見積もり値が最少である場合（ステップＳ２：Ｔ（ｔｒｕｅ、真））、第１の端末＃０＿１の選択部７はＣＳ方式を選択する（ステップＳ３）。このときのサーバーは第１の端末＃０＿１であり、クライアントはその他の端末＃１＿９である。一方、いずれの端末も合計時間（ｔtrans(in)＋ｔexe＋ｔtrans(out)）がリアルタイム制約を満たさない場合（ステップＳ２：Ｆ（ｆａｌｓｅ、偽））、第１の端末＃０＿１の選択部７はＰ２Ｐ方式を選択する（ステップＳ４）。そして、処理を終了する。
【００１８】
実施例１によれば、処理の合計時間がリアルタイム制約を満たす場合、消費電力の見積もり値が最少となる端末をサーバーとし、その他の端末をクライアントとするＣＳ方式が選択されるので、端末での演算処理を含めて、システム全体の消費電力を抑えることができる。処理の合計時間がリアルタイム制約を満たさない場合には、Ｐ２Ｐ方式が選択されるので、高速に処理することができる。
【００１９】
（実施例２）
・データ共有システムおよび端末の説明
図３は、実施例２にかかるデータ共有システムを示すブロック図である。図３に示すように、データ共有システムは、複数の端末（＃０、＃１）１０，１９を備えている。なお、端末の数は３個以上でもよい。端末の一例として、例えば携帯電話機や携帯型のノートパソコン（モバイルコンピュータ）などの、通信機能を有する情報処理装置が挙げられる。
【００２０】
各端末（＃０、＃１）１０，１９においては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）１３、通信モジュール１４およびメモリコントローラ１６がバス１５に接続されている。メモリコントローラ１６には、例えばＣＰＵ１３により作業領域として使用されるメモリ１７が接続されている。メモリ１７にはファイルシステム１８が接続されている。ＣＰＵ１３は、例えばファイルシステム１８からＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、オペレーティングシステム）１２を読み出し、メモリ１７を作業領域として実行する。ＯＳ１２のスケジューラは、データ共有方法を決定し、データ共有方法がＣＳ方式である場合にはサーバーとなる端末を決定する。
【００２１】
各端末（＃０、＃１）１０，１９において、ＯＳ１２はアプリケーションデータテーブルを有する。アプリケーションデータテーブルには、各端末が他の端末から転送されてくるデータを取得したときに、その取得したデータに基づいてアプリケーションの実行形態を決定するためのパラメータが登録される。各端末（＃０、＃１）１０，１９に新たにアプリケーションプログラムが追加される場合には、アプリケーションをインストールするデータに、アプリケーションデータテーブルに記載される情報が含まれている。インストール作業において、アプリケーションデータテーブルに当該情報が追記される。
【００２２】
ＯＳ１２上では、アプリケーションプログラム１１が実行される。ＣＰＵ１３は、例えばファイルシステム１８からアプリケーションプログラム１１を読み出し、メモリ１７を作業領域として実行する。端末＃０＿１０と端末＃１＿１９とでデータを共有するときには、端末＃０＿１０と端末＃１＿１９とで同じアプリケーションプログラム１１が実行される。通信モジュール１４は、例えばＰ２Ｐ方式でデータを共有する場合でも、各端末に隣接する端末にのみ接続してもよい。各端末が隣接する端末にのみ接続する構成の場合には、各端末は隣接する端末へパイプライン式にデータを転送し、隣接する端末からデータを受信する、ということを繰り返すので、通信モジュール１４は１個あれば足りる。
【００２３】
通信モジュール１４は、ＣＳ方式およびＰ２Ｐ方式の両方に対応している。通信制御を行うソフトウェアにおけるモードを変更することにより、通信モジュール１４はＣＳ方式またはＰ２Ｐ方式で他の端末の通信モジュール１４と通信を行うことができる。また、通信モジュール１４は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース、登録商標）や赤外線などによる無線通信機能を有する。通信モジュール１４は、ブルートゥースや赤外線などによる無線通信機能を用いて各端末間の距離を測定する。例えば、一方の端末の通信モジュール１４から送信時刻のデータを含む信号を送信し、他方の端末の通信モジュール１４が当該信号を受信した時刻を記録し、送信時刻と受信時刻との差を求めることによって端末間の距離を測定することができる。各端末（＃０、＃１）１０，１９の機能的な構成については、実施例１と同様であるので、重複する説明を省略する。
【００２４】
・アプリケーションデータテーブルの説明
図４は、実施例２にかかるアプリケーションデータテーブルを示す図である。図４に示すように、アプリケーションデータテーブル２１には、例えばアプリケーションプログラムごとにデータ共有方法として、例えば「実行時に決定」、ＣＳ方式またはＰ２Ｐ方式が設定される。「実行時に決定」は、アプリケーションプログラムの実行時にデータ共有方法を決定することを表している。図４に示す例では、アプリ＃０のデータ共有方法は「実行時に決定」に設定されている。アプリ＃１のデータ共有方法は「ＣＳ方式」に設定されている。アプリ＃ｎのデータ共有方法は「Ｐ２Ｐ方式」に設定されている。「ＣＳ方式」および「Ｐ２Ｐ方式」はアプリケーションプログラムの設計時に設定される。ＣＳ方式は、消費電力を削減したいアプリケーションプログラムに対して設定されることがある。Ｐ２Ｐ方式は、高速処理が必要なアプリケーションプログラムに対して設定されることがある。
【００２５】
また、アプリケーションデータテーブル２１には、例えばアプリケーションプログラムごとにデータ共有方法を決定する際に使用されるパラメータやデータの一例として、例えば「消費電力計算式」、「処理時間閾値」および「電池残量閾値」がアプリケーションプログラムの設計時に設定されていてもよい。また、実行時にデータ共有方法を決定する際に使用されるパラメータやデータの一例として、例えば「ＣＰＵ負荷率」、「端末間距離」および「各端末電池残量」がアプリケーションプログラムの起動時に収集されて設定されてもよい。
【００２６】
「消費電力計算式」は、例えばアプリケーションプログラムの設計時にシミュレーションを行い、シミュレーション結果に基づいてモデル化された式であってもよい。「処理時間閾値」は、アプリケーションが満たすべき最悪処理時間であってもよい。「電池残量閾値」は、サーバーとなる端末がサーバーとして処理を実行するのに必要な最少の電池残量であってもよい。「ＣＰＵ負荷率」は、各端末が他の端末から転送されてくるデータを取得する前にＯＳ１２のスケジューラにより取得されて設定されてもよい。「端末間距離」は、各端末が他の端末から転送されてくるデータを取得する前に通信モジュール１４により端末間の距離が測定されて設定されてもよい。「各端末電池残量」は、各端末が他の端末から転送されてくるデータを取得する前に取得されて設定されてもよい。
【００２７】
・アプリケーションを実行する際の演算時間の見積もり
演算時間ｔexeは次の（１）式で見積もられる。（１）式において、Ｔは基準クロック周波数で、かつ基準データサイズのデータでアプリケーションプログラムをシミュレーション実行したときの実行時間である。Ｃは基準クロック周波数である。ｃは見積もり時、すなわちアプリケーションプログラムの実行時のクロック周波数である。Ｄは基準データサイズである。ｄは見積もり時のデータサイズである。
【００２８】
ｔexe＝Ｔ×Ｃ／ｃ×ｄ／Ｄ×（１−ＣＰＵ負荷率）  ・・・（１）
【００２９】
・アプリケーションを実行する際のデータ転送時間の見積もり
データ転送時間ｔtransは次の（２）式で見積もられる。（２）式において、Ｔは１パケットを単位距離間で送信したときにかかる転送時間である。Ｐはパケット量であり、［データサイズ］／［１パケットあたりのデータサイズ］である。Ｄは単位距離である。ｄは端末間の距離である。
【００３０】
ｔtrans＝Ｔ×Ｐ×ｄ／Ｄ  ・・・（２）
【００３１】
・アプリケーションを実行する際の消費電力の見積もり
消費電力Ｐexeは次の（３）式で見積もられる。（３）式において、Ｐは基準データサイズのデータでアプリケーションプログラムを実行したときの消費電力である。Ｄは基準データサイズである。ｄは消費電力見積もり時のデータサイズである。
【００３２】
Ｐexe＝Ｐ×Ｄ／ｄ  ・・・（３）
【００３３】
・データ共有方法の説明
実施例２にかかるデータ共有方法は、例えば次のような流れで実施される。まず、事前準備として、ファイル共有を行うことを許可する端末の登録作業が行われる。この端末の登録作業は、例えばユーザーによって行われてもよい。次いで、仮にマスターとなる端末（仮マスター端末）の設定作業および端末間距離の測定作業が行われる。仮マスター端末は、アプリケーションプログラムの実行時にデータ共有方式を決定する場合にＣＳ方式を選択するかＰ２Ｐ方式を選択するかを判断する。次いで、実際にＣＳ方式またはＰ２Ｐ方式が選択され、選択されたデータ共有方式でデータの転送および演算処理が行われる。
【００３４】
・ファイル共有を許可する端末の登録作業
図５および図６は、実施例２にかかるファイル共有方法においてファイル共有を許可する端末の登録作業を示すフローチャートである。図５は、ある端末＃０においてその他の端末＃ｎを登録する際の手順を示している。図５に示すように、端末の登録作業が開始されると、ある端末＃０はその他の端末＃ｎに対して、端末＃０をファイルを共有する端末として登録することを依頼する（ステップＳ１１）。ある端末＃０はその他の端末＃ｎからの、登録依頼に対する回答を受信するのを待ち（ステップＳ１２：Ｆ）、登録依頼に対する回答を受信する（ステップＳ１２：Ｔ）。
【００３５】
ある端末＃０は、その他の端末＃ｎからの回答が登録依頼を許可する回答である場合（ステップＳ１３：Ｔ）、登録依頼を許可した端末＃ｎを登録し（ステップＳ１４）、ある端末＃０における一連の登録作業を終了する。一方、ある端末＃０は、その他の端末＃ｎからの回答が登録依頼を許可しない回答である場合（ステップＳ１３：Ｆ）、登録依頼を許可しない端末＃ｎを登録しないで、ある端末＃０における一連の登録作業を終了する。複数の端末の中で、その他の端末＃ｎに対して登録依頼をする端末＃０をどれにするかということについては、例えばユーザーが任意に決めてもよい。
【００３６】
図６は、その他の端末＃ｎにおいてある端末＃０を登録する際の手順を示している。図６に示すように、端末の登録作業が開始されると、その他の端末＃ｎはある端末＃０から、当該端末＃０をファイルを共有する端末として登録するという依頼を受信する（ステップＳ２１）。登録依頼を受信した端末＃ｎは、登録依頼の送信元である端末＃０をファイルを共有する端末として登録する場合（ステップＳ２２：Ｔ）、登録を許可することを端末＃０へ通知し（ステップＳ２３）、その他の端末＃ｎにおける一連の登録作業を終了する。一方、登録依頼を受信した端末＃ｎは、登録依頼の送信元である端末＃０をファイルを共有する端末として登録しない場合（ステップＳ２２：Ｆ）、登録を許可しないことを端末＃０へ通知し（ステップＳ２４）、その他の端末＃ｎにおける一連の登録作業を終了する。
【００３７】
・仮マスター端末の設定作業および端末間距離の測定作業
図７および図８は、実施例２にかかるファイル共有方法において仮マスター端末の設定および端末間距離の測定作業を示すフローチャートである。図７は、ある端末＃０における仮マスター端末の設定および端末間距離の測定作業の手順を示している。図７に示すように、ある端末＃０においてアプリケーションプログラムが起動されると（ステップＳ３１）、仮マスター端末の設定および端末間距離の測定作業が開始される。
【００３８】
その他の端末＃ｎにおいてもある端末＃０で起動されたアプリケーションプログラムと同じアプリケーションプログラムが起動される。同じアプリケーションプログラムを起動した複数の端末のうち、最初に当該アプリケーションプログラムを起動した端末、ここではある端末＃０が仮マスター端末に設定される。この場合、仮マスター端末は、上述した、ファイル共有を許可する端末の登録作業において、その他の端末＃ｎに対して登録依頼をする端末とした端末＃０とは異なることがある。あるいは、上述した、ファイル共有を許可する端末の登録作業において、その他の端末＃ｎに対して登録依頼をする端末とした端末＃０を仮マスター端末としてもよい。
【００３９】
仮マスター端末＃０は、その他の端末＃ｎとファイルを共有するモードへ移行する（ステップＳ３２）。次いで、仮マスター端末＃０は、その他の端末＃ｎとの間でセッションを確立し、その他の端末＃ｎに対して、ファイルを共有するモードへ移行したことを通知する（ステップＳ３３）。ファイルを共有するモードへの移行通知の通知先は、上述したステップＳ１４で登録した端末である。仮マスター端末＃０は、その他の端末＃ｎからの、ファイルを共有するモードへの移行通知に対する回答を受信するのを待ち（ステップＳ３４：Ｆ）、ファイルを共有するモードへの移行通知に対する回答を受信する（ステップＳ３４：Ｔ）。
【００４０】
仮マスター端末＃０は、その他の端末＃ｎからの全ての回答が移行を許可する回答である場合（ステップＳ３５：Ｔ）、移行を許可した端末＃ｎを、ファイルを共有する端末として登録する（ステップＳ３６）。次いで、仮マスター端末＃０は、ファイルを共有するモードに参加している全ての端末＃ｎに、当該全ての端末＃ｎに関するデータを通知する（ステップＳ３７）。次いで、仮マスター端末＃０は、ファイルを共有するモードに参加している各端末＃ｎと自端末＃０との間の距離を測定し（ステップＳ３８）、セッションを解除する。そして、仮マスター端末＃０は仮マスター端末＃０における一連の仮マスター端末の設定および端末間距離の測定作業を終了する。
【００４１】
一方、仮マスター端末＃０は、その他の端末＃ｎからの回答の中に移行を許可しない回答が含まれている場合（ステップＳ３５：Ｆ）、ファイルを共有するモードから通常のモードへ移行し（ステップＳ３９）、セッションを解除する。そして、仮マスター端末＃０は仮マスター端末＃０における一連の仮マスター端末の設定および端末間距離の測定作業を終了する。通常モードでは、各端末は、他の端末との間でファイルを共有しないで、起動したアプリケーションプログラムを実行する。
【００４２】
図８は、その他の端末＃ｎにおける仮マスター端末の設定および端末間距離の測定作業の手順を示している。図８に示すように、その他の端末＃ｎにおいて、ある端末＃０で起動されたアプリケーションプログラムと同じアプリケーションプログラムが起動されると（ステップＳ４１）、仮マスター端末の設定および端末間距離の測定作業が開始される。その他の端末＃ｎは、ある端末＃０との間でセッションを確立し、ある端末＃０から、ファイルを共有するモードへ移行した通知を受信する（ステップＳ４２）。
【００４３】
移行通知を受信した端末＃ｎは、ファイルを共有するモードへ移行する場合、ある端末＃０へ、ファイルを共有するモードへの移行を許可する回答をし（ステップＳ４３：Ｔ）、ファイルを共有するモードへ移行する（ステップＳ４４）。次いで、ファイルを共有するモードへ移行した端末＃ｎは、端末＃０を仮マスター端末として登録する（ステップＳ４５）。次いで、ファイルを共有するモードへ移行した端末＃ｎは、ファイルを共有するモードに参加している全ての端末に関するデータを受信する（ステップＳ４６）。
【００４４】
次いで、ファイルを共有するモードへ移行した端末＃ｎは、ファイルを共有するモードに参加している他の端末＃ｎと自端末＃ｎとの間の距離を測定し（ステップＳ４７）、セッションを解除する。そして、ファイルを共有するモードへ移行した端末＃ｎは当該端末＃ｎにおける一連の仮マスター端末の設定および端末間距離の測定作業を終了する。一方、移行通知を受信した端末＃ｎが、ファイルを共有するモードへ移行しない場合（ステップＳ４３：Ｆ）、セッションを解除する。そして、ファイルを共有するモードへ移行しない端末＃ｎは当該端末＃ｎにおける一連の仮マスター端末の設定および端末間距離の測定作業を終了する。
【００４５】
・Ｐ２Ｐ方式において隣接する端末を決定する処理
図９は、実施例２にかかるファイル共有方法において隣接する端末を決定する処理を示すフローチャートである。図９に示すように、隣接する端末を決定する処理が開始されると、まず、仮マスター端末＃０は、隣接する端末が設定されていない端末の中で、例えば端末ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ、識別子）の最も小さい端末（端末＃ｎ）を探索する（ステップＳ５１）。次いで、仮マスター端末＃０は、ステップＳ５１で探索された端末＃ｎに最も近い端末を、当該端末＃ｎに隣接する端末に設定する（ステップＳ５２）。その際、仮マスター端末＃０は、上述したステップＳ３８で仮マスター端末＃０が測定した端末間距離、および上述したステップＳ４７で、ファイルを共有するモードに参加している他の端末＃ｎが測定し、後述するステップＳ８６で仮マスター端末＃０へ転送された端末間距離のうち、最も端末間距離が小さい端末を、当該端末＃ｎに隣接する端末に設定する。
【００４６】
次いで、仮マスター端末＃０は、隣接する端末が設定されていない端末が残っているか否かを判断する（ステップＳ５３）。残っていれば（ステップＳ５３：Ｙ（Ｙｅｓ））、ステップＳ５１に戻り、隣接する端末が設定されていない端末がなくなるまでステップＳ５１からステップＳ５３を繰り返す。隣接する端末が設定されていない端末がなくなったら（ステップＳ５３：Ｎ（Ｎｏ））、一連の隣接する端末を決定する処理を終了する。
【００４７】
・アプリケーションプログラムの実行時に選択されたデータ共有方式での処理の全体
図１０〜図１４は、実施例２にかかるファイル共有方法において選択されたデータ共有方式での処理の全体を示すフローチャートである。図１０および図１１は、仮マスター端末＃０における処理手順を示している。図１０に示すように、仮マスター端末＃０において処理が開始されると、まず、仮マスター端末＃０はアプリケーションプログラムの入力データとなるデータを取得する（ステップＳ６１）。例えば、アプリケーションプログラムが、各端末で撮影された画像を結合してパノラマ写真などの大きな写真を生成するアプリケーションである場合には、画像ファイルが入力データとなる。
【００４８】
次いで、仮マスター端末＃０は、仮マスター端末＃０のＣＰＵ負荷率、データサイズおよび電池残量情報を取得する（ステップＳ６２）。次いで、仮マスター端末＃０は、その他の端末＃ｎに仮マスター端末＃０のデータのデータサイズを通知する（ステップＳ６３）。このとき、同様にその他の端末＃ｎも当該端末＃ｎのデータのデータサイズを通知する。そして、仮マスター端末＃０は、その他の端末＃ｎから通知されたデータサイズおよび仮マスター端末＃０のデータサイズに基づいてアプリケーションプログラムで処理する対象のデータの全データサイズを計算する。
【００４９】
次いで、仮マスター端末＃０は全データサイズおよび仮マスター端末＃０のＣＰＵ負荷率に基づいて演算時間（ｔexe）を見積もる（ステップＳ６４）。また、仮マスター端末＃０は全データサイズおよび端末間距離に基づいてデータ転送時間（ｔtrans）を見積もる（ステップＳ６５）。次いで、仮マスター端末＃０は共有方式を選択する（ステップＳ６６）。共有方式の選択手順については後述する。
【００５０】
仮マスター端末＃０がＰ２Ｐ方式を選択する場合（ステップＳ６６：Ｐ２Ｐ方式）、仮マスター端末＃０はＰ２Ｐ方式を選択し、その他の端末＃ｎにＰ２Ｐ方式でデータを共有することを通知する（ステップＳ６７）。次いで、仮マスター端末＃０は、仮マスター端末＃０に隣接する端末へ、ステップＳ６１で取得した仮マスター端末＃０のデータを転送する（ステップＳ６８）。隣接する端末については、図９に示す処理手順により決定される。また、仮マスター端末＃０は、仮マスター端末＃０に隣接する端末から当該隣接する端末のデータを受信する（ステップＳ６９）。すべてのデータの受信が済むまで（ステップＳ７０：Ｆ）、ステップＳ６８からステップＳ７０を繰り返し、すべてのデータを受信したら（ステップＳ７０：Ｔ）、仮マスター端末＃０は演算処理を行い（ステップＳ７１）、仮マスター端末＃０における一連の処理を終了する。
【００５１】
一方、仮マスター端末＃０が共有方式を選択する際（ステップＳ６６）、ＣＳ方式を選択する場合（ステップＳ６６：ＣＳ方式）、図１１に示すように、仮マスター端末＃０はＣＳ方式を選択し、その他の端末＃ｎにサーバーとなる端末を通知する（ステップＳ７２）。次いで、仮マスター端末であった端末＃０は、サーバーとなる端末へ、ステップＳ６１で取得した端末＃０のデータを転送する（ステップＳ７３）。サーバーとなる端末は、それ以外の端末から転送されてきたデータを用いて演算処理を行い、演算処理の結果を各端末へ転送する。仮マスター端末であった端末＃０は、サーバーとなる端末から転送されてきた演算処理の結果を受信し（ステップＳ７４）、仮マスター端末＃０における一連の処理を終了する。
【００５２】
図１２および図１３は、その他の端末＃ｎにおける処理手順を示している。図１２に示すように、その他の端末＃ｎにおいて処理が開始されると、まず、その他の端末＃ｎはアプリケーションプログラムの入力データとなるデータを取得する（ステップＳ８１）。次いで、その他の端末＃ｎは、その他の端末＃ｎのＣＰＵ負荷率、データサイズおよび電池残量情報を取得する（ステップＳ８２）。次いで、その他の端末＃ｎは、仮マスター端末＃０を含む他の端末に、ステップＳ８１で取得したデータのデータサイズを通知する（ステップＳ８３）。そして、その他の端末＃ｎは、仮マスター端末＃０を含む他の端末から通知されたデータサイズおよびステップＳ８１で取得したデータのデータサイズに基づいてアプリケーションプログラムで処理する対象のデータの全データサイズを計算する。
【００５３】
次いで、その他の端末＃ｎは全データサイズおよびその他の端末＃ｎのＣＰＵ負荷率に基づいて演算時間（ｔexe）を見積もる（ステップＳ８４）。また、その他の端末＃ｎは全データサイズおよび端末間距離に基づいてデータ転送時間（ｔtrans）を見積もる（ステップＳ８５）。次いで、その他の端末＃ｎは、見積もった演算時間（ｔexe）、データ転送時間（ｔtrans）、ＣＰＵ負荷率、電池残量および各端末間距離を仮マスター端末＃０へ転送する（ステップＳ８６）。
【００５４】
次いで、その他の端末＃ｎは仮マスター端末＃０から、仮マスター端末＃０が選択した共有方式が通知されるのを待つ（ステップＳ８７：Ｆ）。Ｐ２Ｐ方式が選択されたことが通知されると（ステップＳ８７：Ｐ２Ｐ方式）、その他の端末＃ｎは、ファイルを共有するモードに参加している全ての端末に関するデータに基づいて、隣接する端末との間でセッションを確立する（ステップＳ８８）。次いで、その他の端末＃ｎは、その他の端末＃ｎに隣接する端末へ、ステップＳ８１で取得したデータを転送する（ステップＳ８９）。隣接する端末については、図９に示す処理手順により決定される。
【００５５】
また、その他の端末＃ｎは、その他の端末＃ｎに隣接する端末から当該隣接する端末のデータを受信する（ステップＳ９０）。すべてのデータの受信が済むまで（ステップＳ９１：Ｆ）、ステップＳ８９からステップＳ９１を繰り返し、すべてのデータを受信したら（ステップＳ９１：Ｔ）、その他の端末＃ｎは演算処理を行い（ステップＳ９２）、その他の端末＃ｎにおける一連の処理を終了する。
【００５６】
一方、その他の端末＃ｎは仮マスター端末＃０から、仮マスター端末＃０がＣＳ方式を選択したこととサーバーとなる端末が通知されると（ステップＳ８７：ＣＳ方式）、図１３に示すように、サーバーとなる端末との間でセッションを確立する（ステップＳ９３）。次いで、その他の端末＃ｎは、サーバーとなる端末へ、ステップＳ８１で取得したデータを転送する（ステップＳ９４）。サーバーとなる端末は、それ以外の端末から転送されてきたデータを用いて演算処理を行い、演算処理の結果を各端末へ転送する。その他の端末＃ｎは、サーバーとなる端末から転送されてきた演算処理の結果を受信し（ステップＳ９５）、その他の端末＃ｎにおける一連の処理を終了する。
【００５７】
図１４は、サーバーとなる端末＃ｍにおける処理手順を示している。図１４に示すように、サーバーとなる端末＃ｍにおいて処理が開始されると、まず、サーバーとなる端末＃ｍは、クライアントとなる端末、すなわち仮マスター端末であった端末＃０、およびサーバーとなる端末＃ｍを除くその他の端末＃ｎとの間でセッションを確立する（ステップＳ１０１）。次いで、サーバーとなる端末＃ｍは、ステップＳ７３で端末＃０が転送したデータ、およびステップＳ９４でその他の端末＃ｎが転送したデータを受信する（ステップＳ１０２）。次いで、サーバーとなる端末＃ｍは、サーバーとなる端末＃ｍのデータ、およびステップＳ１０２で受信したデータを用いて演算処理を行う（ステップＳ１０３）。そして、サーバーとなる端末＃ｍは、仮マスター端末であった端末＃０、およびサーバーとなる端末＃ｍを除くその他の端末＃ｎへ演算処理の結果を転送し（ステップＳ１０４）、サーバーとなる端末＃ｍにおける一連の処理を終了する。
【００５８】
・共有方式の選択手順
図１５は、実施例２にかかるファイル共有方法における共有方式の選択手順を示すフローチャートである。ここでは、端末の数がＮ個（Ｎは２以上の整数）であり、ｎを０からＮ−１までの整数とする。図１５に示すように、共有方式の選択処理が開始されると、まず、仮マスター端末＃０は共有方式をＰ２Ｐ方式に設定する（ステップＳ１１１）。仮マスター端末＃０はｎを０に設定し（ステップＳ１１２）、ｎがＮ−１よりも小さい値である間（ステップＳ１１３：Ｔ）、以下のステップＳ１１３からステップＳ１２０を繰り返す。
【００５９】
端末＃ｎについて、処理時間がリアルタイム制約（処理時間閾値）よりも短く（ステップＳ１１４：Ｔ）、電池残量#nが電池残量閾値よりも多く（ステップＳ１１５：Ｔ）、消費電力Ｐ#nがその時点での最小の消費電力Ｐsmallestよりも少ない場合（ステップＳ１１６：Ｔ）、仮マスター端末＃０はＣＳ方式を選択する。そして、仮マスター端末＃０はこのときの端末＃ｎをサーバーとなる端末に設定する（ステップＳ１１９）。そして、ｎの値がインクリメントされる（ステップＳ１２０）。
【００６０】
ステップＳ１１４およびステップＳ１１５は真（Ｔ）であるが、ステップＳ１１６が偽（Ｆ）である場合には、ステップＳ１１７およびステップＳ１１８によって共有方式が選択される。すなわち、端末＃ｎの消費電力Ｐ#nがその時点での最小の消費電力Ｐsmallestに等しい場合（ステップＳ１１７：Ｔ）、端末＃ｎのＣＰＵ負荷率#nがその時点での最小のＣＰＵ負荷率smallestよりも小さければ（ステップＳ１１８：Ｔ）、仮マスター端末＃０はＣＳ方式を選択し、このときの端末＃ｎをサーバーとなる端末に設定する（ステップＳ１１９）。そして、ｎの値がインクリメントされる（ステップＳ１２０）。
【００６１】
ステップＳ１１４、ステップＳ１１５、ステップＳ１１７およびステップＳ１１８が偽（Ｆ）である場合には、仮マスター端末＃０はＰ２Ｐ方式を変更せずに、ｎの値をインクリメントする（ステップＳ１２０）。また、ｎがＮ−１よりも小さい値でなくなったら（ステップＳ１１３：Ｆ）、一連の処理を終了する。
【００６２】
ここで、端末＃ｎをサーバーとなる端末とした場合の処理時間の計算例を示す。例えば、端末＃０について端末間距離およびデータサイズをそれぞれ１ｍおよび１００ＫＢとする。端末＃１について端末間距離およびデータサイズをそれぞれ２ｍおよび１５０ＫＢとする。端末＃ｎ−１について端末間距離およびデータサイズをそれぞれ５ｍおよび１００ＫＢとする。他の端末については例示を省略する。この場合、端末＃ｎでの処理時間は次の（４）式で表される。
【００６３】
処理時間＝ｔexe＋Σｔtrans
＝Ｔ×Ｃ／ｃ×ｄ／（１００ＫＢ＋１５０ＫＢ＋・・・＋１００ＫＢ）×（１−ＣＰＵ負荷率）
＋（Ｔ0×１００ＫＢ／１２８Ｂ×１ｍ／Ｄ）
＋（Ｔ1×１５０ＫＢ／１２８Ｂ×２ｍ／Ｄ）
＋・・・
＋（Ｔn-1×１００ＫＢ／１２８Ｂ×５ｍ／Ｄ）
＋（Ｔn×（１００ＫＢ＋１５０ＫＢ＋・・・＋１００ＫＢ）／１２８Ｂ×１ｍ／Ｄ）
＋（Ｔn×（１００ＫＢ＋１５０ＫＢ＋・・・＋１００ＫＢ）／１２８Ｂ×２ｍ／Ｄ）
＋・・・
＋（Ｔn×（１００ＫＢ＋１５０ＫＢ＋・・・＋１００ＫＢ）／１２８Ｂ×１ｍ／Ｄ）  ・・・（４）
【００６４】
上記（４）式において、２行目は演算時間を計算する部分である。３〜６行目は、各端末からサーバーとなる端末＃ｎへ、各端末が取得したデータを転送するのに要する時間を計算する部分である。７〜１０行目は、サーバーとなる端末＃ｎから各端末へ、サーバーとなる端末＃ｎでの演算処理の結果を転送するのに要する時間を計算する部分である。ここでは、各端末からサーバーとなる端末＃ｎへのデータ転送と、サーバーとなる端末＃ｎから各端末へのデータ転送と、を同時には行わないとしている。
【００６５】
実施例２によれば、実施例１と同様の効果が得られる。
【符号の説明】
【００６６】
１，９  端末
２  データ転送時間見積もり部
３  演算時間見積もり部
４  消費電力見積もり部
５  合計時間算出部
６  判断部
７  選択部
８  通信部
【図１】
2012035639.tif 000003
【図２】
2012035639.tif 000004
【図３】
2012035639.tif 000005
【図４】
2012035639.tif 000006
【図５】
2012035639.tif 000007
【図６】
2012035639.tif 000008
【図７】
2012035639.tif 000009
【図８】
2012035639.tif 000010
【図９】
2012035639.tif 000011
【図１０】
2012035639.tif 000012
【図１１】
2012035639.tif 000013
【図１２】
2012035639.tif 000014
【図１３】
2012035639.tif 000015
【図１４】
2012035639.tif 000016
【図１５】
2012035639.tif 000017
【手続補正書】
【提出日】平成25年3月29日(2013.3.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
互いに通信可能な複数の端末を備え、
前記複数の端末のうち、第１の端末にその他の端末からデータを転送するのに要すると見積もられる時間、前記第１の端末に集約されたデータを前記第１の端末で演算処理するのに要すると見積もられる時間、および前記第１の端末から前記その他の端末へ演算処理済みのデータを転送するのに要すると見積もられる時間の合計時間がリアルタイム制約を満たし、かつ前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力よりも少ない場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、
前記複数の端末のいずれも前記合計時間がリアルタイム制約を満たさない場合にピアツーピア方式を選択することを特徴とするデータ共有システム。
【請求項２】
前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力のうち最少の電力と同じである場合、
前記第１の端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする請求項１に記載のデータ共有システム。
【請求項３】
前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されていることを特徴とする請求項１に記載のデータ共有システム。
【請求項４】
前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されており、
前記アプリケーションプログラムの起動時に前記プロセッサの負荷率を取得することを特徴とする請求項２に記載のデータ共有システム。
【請求項５】
他の端末と通信する通信部と、
自端末に、互いに通信可能なその他の端末からデータを転送するのに要する時間、および前記自端末から前記その他の端末へ演算処理済みのデータを転送するのに要する時間を見積もるデータ転送時間見積もり部と、
前記自端末に集約されたデータを前記自端末で演算処理するのに要する時間を見積もる演算時間見積もり部と、
前記データ転送時間見積もり部により見積もられたデータ転送時間および前記演算時間見積もり部により見積もられた演算時間の合計時間を算出する合計時間算出部と、
前記自端末に集約された前記データを前記自端末で演算処理するときに消費される電力を見積もる消費電力見積もり部と、
前記合計時間算出部により算出された合計時間がリアルタイム制約を満たすか否かを判断する判断部と、
前記判断部により前記合計時間が前記リアルタイム制約を満たすと判断され、かつ前記消費電力見積もり部により見積もられた消費電力が、前記その他の端末が前記自端末と同じ演算処理を行うときに消費されると見積もられる消費電力よりも少ない場合に、前記自端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、いずれの端末も前記合計時間が前記リアルタイム制約を満たさない場合にピアツーピア方式を選択する選択部と、
を備えることを特徴とする端末。
【請求項６】
前記選択部は、
前記判断部により前記合計時間が前記リアルタイム制約を満たすと判断され、かつ前記消費電力見積もり部により見積もられた消費電力が、前記その他の端末が前記自端末と同じ演算処理を行うときに消費されると見積もられる消費電力のうち最少の消費電力と同じである場合、
前記自端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記自端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする請求項５に記載の端末。
【請求項７】
互いに通信可能な複数の端末のうち、第１の端末にその他の端末からデータを転送するのに要する時間、前記第１の端末に集約されたデータを前記第１の端末で演算処理するのに要する時間、および前記第１の端末から前記その他の端末へ演算処理済みのデータを転送するのに要する時間の合計時間を見積もり、
前記合計時間がリアルタイム制約を満たし、かつ前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力よりも少ない場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、
前記複数の端末のいずれも前記合計時間がリアルタイム制約を満たさない場合にピアツーピア方式を選択することを特徴とするデータ共有方法。
【請求項８】
前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力のうち最少の電力と同じである場合、
前記第１の端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする請求項７に記載のデータ共有方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ共有システム、端末およびデータ共有方法に関する。
【背景技術】
【０００２】
従来、複数の端末間でデータを共有する方式の一例として、サーバークライアント方式やピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）方式がある。サーバークライアント方式では、サーバー端末がクライアント端末から全てのデータを回収して演算処理を行う。サーバー端末はその演算結果を各クライアント端末へ転送する。ピアツーピア方式では、ネットワーク上の端末同士がデータを交換し、各端末が演算処理を行う。ピアツーピアはＰ２Ｐと略記されることがある。本明細書中において、サーバークライアントをＣＳと略記し、ピアツーピアをＰ２Ｐと略記することとする。
【０００３】
Ｐ２Ｐ方式およびＣＳ方式の両方において、クライアント装置間で共有されるデータの登録要求およびアクセス要求を管理サーバが受け付け、各クライアント装置が、管理サーバからの承認応答に従ってデータの保存やデータへのアクセスの手順を実行することで、両方式の利点を享受できるシステムがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１１６９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のＣＳ方式では、一つの端末で演算処理を行うのでシステム全体の消費電力を削減できるが、データの回収時と演算結果の転送時にサーバー端末と各クライアント端末との間でデータ通信を行うため、データの回収から演算結果の転送終了まで時間がかかってしまう。一方、従来のＰ２Ｐ方式では、端末に別の端末からデータが入力するときにデータ通信を行えばよいので、データの入力から演算処理の終了まで短時間で終わらせることができるが、各端末で演算処理を行うため、システム全体の消費電力が大きくなってしまう。そこで、端末での演算処理を含めて、システム全体の消費電力を抑えたい場合にはＣＳ方式でデータを共有し、高速で処理したい場合にはＰ２Ｐ方式でデータを共有することができるのが望ましい。
【０００６】
１つの側面では、本発明は、消費電力や処理速度に応じてデータの共有方式を選択することができるデータ共有システム、端末およびデータ共有方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、互いに通信可能な複数の端末を備えるデータ共有システムであって、複数の端末のうち、第１の端末にその他の端末からデータを転送するのに要すると見積もられる時間、第１の端末に集約されたデータを第１の端末で演算処理するのに要すると見積もられる時間、および第１の端末からその他の端末へ演算処理済みのデータを転送するのに要すると見積もられる時間の合計時間がリアルタイム制約を満たし、かつ第１の端末に集約されたデータを第１の端末で演算処理するときに消費されると見積もられる電力が、その他の端末が第１の端末と同じ演算処理を行うときに消費されると見積もられる電力よりも少ない場合に、第１の端末をサーバーとし、その他の端末をクライアントとするＣＳ方式を選択するデータ共有システムが提案される。また、複数の端末のいずれも合計時間がリアルタイム制約を満たさない場合にＰ２Ｐ方式を選択するデータ共有システムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、消費電力や処理速度に応じてデータの共有方式を選択することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施例１にかかるデータ共有システムを示すブロック図である。
【図２】実施例１にかかるデータ共有方法を示すフローチャートである。
【図３】実施例２にかかるデータ共有システムを示すブロック図である。
【図４】実施例２にかかるアプリケーションデータテーブルを示す図である。
【図５】実施例２にかかるファイル共有方法においてファイル共有を許可する端末の登録作業を示すフローチャートである。
【図６】実施例２にかかるファイル共有方法においてファイル共有を許可する端末の登録作業を示すフローチャートである。
【図７】実施例２にかかるファイル共有方法において仮マスター端末の設定および端末間距離の測定作業を示すフローチャートである。
【図８】実施例２にかかるファイル共有方法において仮マスター端末の設定および端末間距離の測定作業を示すフローチャートである。
【図９】実施例２にかかるファイル共有方法において隣接する端末を決定する処理を示すフローチャートである。
【図１０】実施例２にかかるファイル共有方法において選択されたデータ共有方式での処理の全体を示すフローチャートである。
【図１１】図１０の続きを示すフローチャートである。
【図１２】実施例２にかかるファイル共有方法において選択されたデータ共有方式での処理の全体を示すフローチャートである。
【図１３】図１２の続きを示すフローチャートである。
【図１４】実施例２にかかるファイル共有方法において選択されたデータ共有方式での処理の全体を示すフローチャートである。
【図１５】実施例２にかかるファイル共有方法における共有方式の選択手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、この発明にかかるデータ共有システム、端末およびデータ共有方法の実施例を図面に基づいて詳細に説明する。データ共有システムは、一端末にデータを集約して演算処理した結果を他の端末へ転送する際の合計時間および演算処理時の消費電力を見積もってＰ２Ｐ方式またはＣＳ方式を選択するものである。本明細書および添付図面においては、「アプリケーション」または「アプリケーションプログラム」を単に「アプリ」と表すことがある。なお、この実施例によりこの発明が限定されるものではない。
【００１１】
（実施例１）
・データ共有システムおよび端末の説明
図１は、実施例１にかかるデータ共有システムを示すブロック図である。図１に示すように、データ共有システムは互いに通信可能な複数の端末（＃０、＃１）１，９を備えている。なお、端末の数は３個以上でもよい。各端末１，９は、データ転送時間見積もり部２、演算時間見積もり部３、消費電力見積もり部４、合計時間算出部５、判断部６、選択部７および通信部８を備えている。これらの各部は、後述するデータ共有方法を実現するプログラムをプロセッサが実行することにより実現されてもよい。プログラムは例えば図示省略したメモリに格納され、例えば図示省略したプロセッサにより呼び出されて順次実行される。
【００１２】
データ転送時間見積もり部２は、自端末に、互いに通信可能なその他の端末からデータを転送するのに要する時間、および自端末からその他の端末へ演算処理済みのデータを転送するのに要する時間を見積もる。演算時間見積もり部３は、自端末に集約されたデータを自端末で演算処理するのに要する時間を見積もる。合計時間算出部５は、データ転送時間見積もり部２により見積もられたデータ転送時間および演算時間見積もり部３により見積もられた演算時間の合計時間を算出する。判断部６は、合計時間算出部５により算出された合計時間がリアルタイム制約を満たすか否かを判断する。消費電力見積もり部４は、自端末に集約されたデータを自端末で演算処理するときに消費される電力を見積もる。
【００１３】
選択部７は、判断部６により合計時間がリアルタイム制約を満たすと判断され、かつ消費電力見積もり部４により見積もられた消費電力が、その他の端末が自端末と同じ演算処理を行うときに消費されると見積もられる消費電力よりも少ない場合に、ＣＳ方式を選択する。ＣＳ方式では、自端末がサーバーとなり、その他の端末がクライアントとなる。選択部７は、いずれの端末も合計時間がリアルタイム制約を満たさない場合にＰ２Ｐ方式を選択する。
【００１４】
・データ共有方法の説明
図２は、実施例１にかかるデータ共有方法を示すフローチャートである。ここでは、第１の端末＃０＿１がＣＳ方式においてサーバーとなる場合について説明する。図２に示すように、データ共有方法を実現する処理が開始されると、まず、第１の端末＃０＿１のデータ転送時間見積もり部２は、通信部８を介して第１の端末＃０＿１にその他の端末＃１＿９からデータを転送するのに要する時間ｔtrans(in)を見積もる。また、第１の端末＃０＿１のデータ転送時間見積もり部２は、通信部８を介して第１の端末＃０＿１からその他の端末＃１＿９へ演算処理済みのデータを転送するのに要する時間ｔtrans(out)を見積もる。
【００１５】
第１の端末＃０＿１の演算時間見積もり部３は、第１の端末＃０＿１に集約されたデータを第１の端末＃０＿１で演算処理するのに要する時間ｔexeを見積もる。そして、第１の端末＃０＿１の合計時間算出部５は、ｔtrans(in)とｔexeとｔtrans(out)との合計時間（ｔtrans(in)＋ｔexe＋ｔtrans(out)）を算出して、処理の合計時間を見積もる（ステップＳ１）。
【００１６】
次いで、第１の端末＃０＿１の判断部６は、合計時間算出部５により算出された処理の合計時間（ｔtrans(in)＋ｔexe＋ｔtrans(out)）がリアルタイム制約を満たすか否かを判断する。さらに、第１の端末＃０＿１の消費電力見積もり部４は、第１の端末＃０＿１に集約されたデータを第１の端末＃０＿１で演算処理するときに消費される電力を見積もる。そして、第１の端末＃０＿１の判断部６は、消費電力見積もり部４により見積もられた消費電力が、その他の端末＃１＿９が第１の端末＃０＿１と同じ演算処理を行うときに消費されると見積もられる電力よりも少ないか否か、すなわち第１の端末＃０＿１で演算処理するときに消費される電力が最少であるか否かを判断する（ステップＳ２）。
【００１７】
処理の合計時間（ｔtrans(in)＋ｔexe＋ｔtrans(out)）がリアルタイム制約を満たし、かつ第１の端末＃０＿１における消費電力の見積もり値が最少である場合（ステップＳ２：Ｔ（ｔｒｕｅ、真））、第１の端末＃０＿１の選択部７はＣＳ方式を選択する（ステップＳ３）。このときのサーバーは第１の端末＃０＿１であり、クライアントはその他の端末＃１＿９である。一方、いずれの端末も合計時間（ｔtrans(in)＋ｔexe＋ｔtrans(out)）がリアルタイム制約を満たさない場合（ステップＳ２：Ｆ（ｆａｌｓｅ、偽））、第１の端末＃０＿１の選択部７はＰ２Ｐ方式を選択する（ステップＳ４）。そして、処理を終了する。
【００１８】
実施例１によれば、処理の合計時間がリアルタイム制約を満たす場合、消費電力の見積もり値が最少となる端末をサーバーとし、その他の端末をクライアントとするＣＳ方式が選択されるので、端末での演算処理を含めて、システム全体の消費電力を抑えることができる。処理の合計時間がリアルタイム制約を満たさない場合には、Ｐ２Ｐ方式が選択されるので、高速に処理することができる。
【００１９】
（実施例２）
・データ共有システムおよび端末の説明
図３は、実施例２にかかるデータ共有システムを示すブロック図である。図３に示すように、データ共有システムは、複数の端末（＃０、＃１）１０，１９を備えている。なお、端末の数は３個以上でもよい。端末の一例として、例えば携帯電話機や携帯型のノートパソコン（モバイルコンピュータ）などの、通信機能を有する情報処理装置が挙げられる。
【００２０】
各端末（＃０、＃１）１０，１９においては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）１３、通信モジュール１４およびメモリコントローラ１６がバス１５に接続されている。メモリコントローラ１６には、例えばＣＰＵ１３により作業領域として使用されるメモリ１７が接続されている。メモリ１７にはファイルシステム１８が接続されている。ＣＰＵ１３は、例えばファイルシステム１８からＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、オペレーティングシステム）１２を読み出し、メモリ１７を作業領域として実行する。ＯＳ１２のスケジューラは、データ共有方法を決定し、データ共有方法がＣＳ方式である場合にはサーバーとなる端末を決定する。
【００２１】
各端末（＃０、＃１）１０，１９において、ＯＳ１２はアプリケーションデータテーブルを有する。アプリケーションデータテーブルには、各端末が他の端末から転送されてくるデータを取得したときに、その取得したデータに基づいてアプリケーションの実行形態を決定するためのパラメータが登録される。各端末（＃０、＃１）１０，１９に新たにアプリケーションプログラムが追加される場合には、アプリケーションをインストールするデータに、アプリケーションデータテーブルに記載される情報が含まれている。インストール作業において、アプリケーションデータテーブルに当該情報が追記される。
【００２２】
ＯＳ１２上では、アプリケーションプログラム１１が実行される。ＣＰＵ１３は、例えばファイルシステム１８からアプリケーションプログラム１１を読み出し、メモリ１７を作業領域として実行する。端末＃０＿１０と端末＃１＿１９とでデータを共有するときには、端末＃０＿１０と端末＃１＿１９とで同じアプリケーションプログラム１１が実行される。通信モジュール１４は、例えばＰ２Ｐ方式でデータを共有する場合でも、各端末に隣接する端末にのみ接続してもよい。各端末が隣接する端末にのみ接続する構成の場合には、各端末は隣接する端末へパイプライン式にデータを転送し、隣接する端末からデータを受信する、ということを繰り返すので、通信モジュール１４は１個あれば足りる。
【００２３】
通信モジュール１４は、ＣＳ方式およびＰ２Ｐ方式の両方に対応している。通信制御を行うソフトウェアにおけるモードを変更することにより、通信モジュール１４はＣＳ方式またはＰ２Ｐ方式で他の端末の通信モジュール１４と通信を行うことができる。また、通信モジュール１４は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース、登録商標）や赤外線などによる無線通信機能を有する。通信モジュール１４は、ブルートゥースや赤外線などによる無線通信機能を用いて各端末間の距離を測定する。例えば、一方の端末の通信モジュール１４から送信時刻のデータを含む信号を送信し、他方の端末の通信モジュール１４が当該信号を受信した時刻を記録し、送信時刻と受信時刻との差を求めることによって端末間の距離を測定することができる。各端末（＃０、＃１）１０，１９の機能的な構成については、実施例１と同様であるので、重複する説明を省略する。
【００２４】
・アプリケーションデータテーブルの説明
図４は、実施例２にかかるアプリケーションデータテーブルを示す図である。図４に示すように、アプリケーションデータテーブル２１には、例えばアプリケーションプログラムごとにデータ共有方法として、例えば「実行時に決定」、ＣＳ方式またはＰ２Ｐ方式が設定される。「実行時に決定」は、アプリケーションプログラムの実行時にデータ共有方法を決定することを表している。図４に示す例では、アプリ＃０のデータ共有方法は「実行時に決定」に設定されている。アプリ＃１のデータ共有方法は「ＣＳ方式」に設定されている。アプリ＃ｎのデータ共有方法は「Ｐ２Ｐ方式」に設定されている。「ＣＳ方式」および「Ｐ２Ｐ方式」はアプリケーションプログラムの設計時に設定される。ＣＳ方式は、消費電力を削減したいアプリケーションプログラムに対して設定されることがある。Ｐ２Ｐ方式は、高速処理が必要なアプリケーションプログラムに対して設定されることがある。
【００２５】
また、アプリケーションデータテーブル２１には、例えばアプリケーションプログラムごとにデータ共有方法を決定する際に使用されるパラメータやデータの一例として、例えば「消費電力計算式」、「処理時間閾値」および「電池残量閾値」がアプリケーションプログラムの設計時に設定されていてもよい。また、実行時にデータ共有方法を決定する際に使用されるパラメータやデータの一例として、例えば「ＣＰＵ負荷率」、「端末間距離」および「各端末電池残量」がアプリケーションプログラムの起動時に収集されて設定されてもよい。
【００２６】
「消費電力計算式」は、例えばアプリケーションプログラムの設計時にシミュレーションを行い、シミュレーション結果に基づいてモデル化された式であってもよい。「処理時間閾値」は、アプリケーションが満たすべき最悪処理時間であってもよい。「電池残量閾値」は、サーバーとなる端末がサーバーとして処理を実行するのに必要な最少の電池残量であってもよい。「ＣＰＵ負荷率」は、各端末が他の端末から転送されてくるデータを取得する前にＯＳ１２のスケジューラにより取得されて設定されてもよい。「端末間距離」は、各端末が他の端末から転送されてくるデータを取得する前に通信モジュール１４により端末間の距離が測定されて設定されてもよい。「各端末電池残量」は、各端末が他の端末から転送されてくるデータを取得する前に取得されて設定されてもよい。
【００２７】
・アプリケーションを実行する際の演算時間の見積もり
演算時間ｔexeは次の（１）式で見積もられる。（１）式において、Ｔは基準クロック周波数で、かつ基準データサイズのデータでアプリケーションプログラムをシミュレーション実行したときの実行時間である。Ｃは基準クロック周波数である。ｃは見積もり時、すなわちアプリケーションプログラムの実行時のクロック周波数である。Ｄは基準データサイズである。ｄは見積もり時のデータサイズである。
【００２８】
ｔexe＝Ｔ×Ｃ／ｃ×ｄ／Ｄ×（１−ＣＰＵ負荷率）  ・・・（１）
【００２９】
・アプリケーションを実行する際のデータ転送時間の見積もり
データ転送時間ｔtransは次の（２）式で見積もられる。（２）式において、Ｔは１パケットを単位距離間で送信したときにかかる転送時間である。Ｐはパケット量であり、［データサイズ］／［１パケットあたりのデータサイズ］である。Ｄは単位距離である。ｄは端末間の距離である。
【００３０】
ｔtrans＝Ｔ×Ｐ×ｄ／Ｄ  ・・・（２）
【００３１】
・アプリケーションを実行する際の消費電力の見積もり
消費電力Ｐexeは次の（３）式で見積もられる。（３）式において、Ｐは基準データサイズのデータでアプリケーションプログラムを実行したときの消費電力である。Ｄは基準データサイズである。ｄは消費電力見積もり時のデータサイズである。
【００３２】
Ｐexe＝Ｐ×Ｄ／ｄ  ・・・（３）
【００３３】
・データ共有方法の説明
実施例２にかかるデータ共有方法は、例えば次のような流れで実施される。まず、事前準備として、ファイル共有を行うことを許可する端末の登録作業が行われる。この端末の登録作業は、例えばユーザーによって行われてもよい。次いで、仮にマスターとなる端末（仮マスター端末）の設定作業および端末間距離の測定作業が行われる。仮マスター端末は、アプリケーションプログラムの実行時にデータ共有方式を決定する場合にＣＳ方式を選択するかＰ２Ｐ方式を選択するかを判断する。次いで、実際にＣＳ方式またはＰ２Ｐ方式が選択され、選択されたデータ共有方式でデータの転送および演算処理が行われる。
【００３４】
・ファイル共有を許可する端末の登録作業
図５および図６は、実施例２にかかるファイル共有方法においてファイル共有を許可する端末の登録作業を示すフローチャートである。図５は、ある端末＃０においてその他の端末＃ｎを登録する際の手順を示している。図５に示すように、端末の登録作業が開始されると、ある端末＃０はその他の端末＃ｎに対して、端末＃０をファイルを共有する端末として登録することを依頼する（ステップＳ１１）。ある端末＃０はその他の端末＃ｎからの、登録依頼に対する回答を受信するのを待ち（ステップＳ１２：Ｆ）、登録依頼に対する回答を受信する（ステップＳ１２：Ｔ）。
【００３５】
ある端末＃０は、その他の端末＃ｎからの回答が登録依頼を許可する回答である場合（ステップＳ１３：Ｔ）、登録依頼を許可した端末＃ｎを登録し（ステップＳ１４）、ある端末＃０における一連の登録作業を終了する。一方、ある端末＃０は、その他の端末＃ｎからの回答が登録依頼を許可しない回答である場合（ステップＳ１３：Ｆ）、登録依頼を許可しない端末＃ｎを登録しないで、ある端末＃０における一連の登録作業を終了する。複数の端末の中で、その他の端末＃ｎに対して登録依頼をする端末＃０をどれにするかということについては、例えばユーザーが任意に決めてもよい。
【００３６】
図６は、その他の端末＃ｎにおいてある端末＃０を登録する際の手順を示している。図６に示すように、端末の登録作業が開始されると、その他の端末＃ｎはある端末＃０から、当該端末＃０をファイルを共有する端末として登録するという依頼を受信する（ステップＳ２１）。登録依頼を受信した端末＃ｎは、登録依頼の送信元である端末＃０をファイルを共有する端末として登録する場合（ステップＳ２２：Ｔ）、登録を許可することを端末＃０へ通知し（ステップＳ２３）、その他の端末＃ｎにおける一連の登録作業を終了する。一方、登録依頼を受信した端末＃ｎは、登録依頼の送信元である端末＃０をファイルを共有する端末として登録しない場合（ステップＳ２２：Ｆ）、登録を許可しないことを端末＃０へ通知し（ステップＳ２４）、その他の端末＃ｎにおける一連の登録作業を終了する。
【００３７】
・仮マスター端末の設定作業および端末間距離の測定作業
図７および図８は、実施例２にかかるファイル共有方法において仮マスター端末の設定および端末間距離の測定作業を示すフローチャートである。図７は、ある端末＃０における仮マスター端末の設定および端末間距離の測定作業の手順を示している。図７に示すように、ある端末＃０においてアプリケーションプログラムが起動されると（ステップＳ３１）、仮マスター端末の設定および端末間距離の測定作業が開始される。
【００３８】
その他の端末＃ｎにおいてもある端末＃０で起動されたアプリケーションプログラムと同じアプリケーションプログラムが起動される。同じアプリケーションプログラムを起動した複数の端末のうち、最初に当該アプリケーションプログラムを起動した端末、ここではある端末＃０が仮マスター端末に設定される。この場合、仮マスター端末は、上述した、ファイル共有を許可する端末の登録作業において、その他の端末＃ｎに対して登録依頼をする端末とした端末＃０とは異なることがある。あるいは、上述した、ファイル共有を許可する端末の登録作業において、その他の端末＃ｎに対して登録依頼をする端末とした端末＃０を仮マスター端末としてもよい。
【００３９】
仮マスター端末＃０は、その他の端末＃ｎとファイルを共有するモードへ移行する（ステップＳ３２）。次いで、仮マスター端末＃０は、その他の端末＃ｎとの間でセッションを確立し、その他の端末＃ｎに対して、ファイルを共有するモードへ移行したことを通知する（ステップＳ３３）。ファイルを共有するモードへの移行通知の通知先は、上述したステップＳ１４で登録した端末である。仮マスター端末＃０は、その他の端末＃ｎからの、ファイルを共有するモードへの移行通知に対する回答を受信するのを待ち（ステップＳ３４：Ｆ）、ファイルを共有するモードへの移行通知に対する回答を受信する（ステップＳ３４：Ｔ）。
【００４０】
仮マスター端末＃０は、その他の端末＃ｎからの全ての回答が移行を許可する回答である場合（ステップＳ３５：Ｔ）、移行を許可した端末＃ｎを、ファイルを共有する端末として登録する（ステップＳ３６）。次いで、仮マスター端末＃０は、ファイルを共有するモードに参加している全ての端末＃ｎに、当該全ての端末＃ｎに関するデータを通知する（ステップＳ３７）。次いで、仮マスター端末＃０は、ファイルを共有するモードに参加している各端末＃ｎと自端末＃０との間の距離を測定し（ステップＳ３８）、セッションを解除する。そして、仮マスター端末＃０は仮マスター端末＃０における一連の仮マスター端末の設定および端末間距離の測定作業を終了する。
【００４１】
一方、仮マスター端末＃０は、その他の端末＃ｎからの回答の中に移行を許可しない回答が含まれている場合（ステップＳ３５：Ｆ）、ファイルを共有するモードから通常のモードへ移行し（ステップＳ３９）、セッションを解除する。そして、仮マスター端末＃０は仮マスター端末＃０における一連の仮マスター端末の設定および端末間距離の測定作業を終了する。通常モードでは、各端末は、他の端末との間でファイルを共有しないで、起動したアプリケーションプログラムを実行する。
【００４２】
図８は、その他の端末＃ｎにおける仮マスター端末の設定および端末間距離の測定作業の手順を示している。図８に示すように、その他の端末＃ｎにおいて、ある端末＃０で起動されたアプリケーションプログラムと同じアプリケーションプログラムが起動されると（ステップＳ４１）、仮マスター端末の設定および端末間距離の測定作業が開始される。その他の端末＃ｎは、ある端末＃０との間でセッションを確立し、ある端末＃０から、ファイルを共有するモードへ移行した通知を受信する（ステップＳ４２）。
【００４３】
移行通知を受信した端末＃ｎは、ファイルを共有するモードへ移行する場合、ある端末＃０へ、ファイルを共有するモードへの移行を許可する回答をし（ステップＳ４３：Ｔ）、ファイルを共有するモードへ移行する（ステップＳ４４）。次いで、ファイルを共有するモードへ移行した端末＃ｎは、端末＃０を仮マスター端末として登録する（ステップＳ４５）。次いで、ファイルを共有するモードへ移行した端末＃ｎは、ファイルを共有するモードに参加している全ての端末に関するデータを受信する（ステップＳ４６）。
【００４４】
次いで、ファイルを共有するモードへ移行した端末＃ｎは、ファイルを共有するモードに参加している他の端末＃ｎと自端末＃ｎとの間の距離を測定し（ステップＳ４７）、セッションを解除する。そして、ファイルを共有するモードへ移行した端末＃ｎは当該端末＃ｎにおける一連の仮マスター端末の設定および端末間距離の測定作業を終了する。一方、移行通知を受信した端末＃ｎが、ファイルを共有するモードへ移行しない場合（ステップＳ４３：Ｆ）、セッションを解除する。そして、ファイルを共有するモードへ移行しない端末＃ｎは当該端末＃ｎにおける一連の仮マスター端末の設定および端末間距離の測定作業を終了する。
【００４５】
・Ｐ２Ｐ方式において隣接する端末を決定する処理
図９は、実施例２にかかるファイル共有方法において隣接する端末を決定する処理を示すフローチャートである。図９に示すように、隣接する端末を決定する処理が開始されると、まず、仮マスター端末＃０は、隣接する端末が設定されていない端末の中で、例えば端末ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ、識別子）の最も小さい端末（端末＃ｎ）を探索する（ステップＳ５１）。次いで、仮マスター端末＃０は、ステップＳ５１で探索された端末＃ｎに最も近い端末を、当該端末＃ｎに隣接する端末に設定する（ステップＳ５２）。その際、仮マスター端末＃０は、上述したステップＳ３８で仮マスター端末＃０が測定した端末間距離、および上述したステップＳ４７で、ファイルを共有するモードに参加している他の端末＃ｎが測定し、後述するステップＳ８６で仮マスター端末＃０へ転送された端末間距離のうち、最も端末間距離が小さい端末を、当該端末＃ｎに隣接する端末に設定する。
【００４６】
次いで、仮マスター端末＃０は、隣接する端末が設定されていない端末が残っているか否かを判断する（ステップＳ５３）。残っていれば（ステップＳ５３：Ｙ（Ｙｅｓ））、ステップＳ５１に戻り、隣接する端末が設定されていない端末がなくなるまでステップＳ５１からステップＳ５３を繰り返す。隣接する端末が設定されていない端末がなくなったら（ステップＳ５３：Ｎ（Ｎｏ））、一連の隣接する端末を決定する処理を終了する。
【００４７】
・アプリケーションプログラムの実行時に選択されたデータ共有方式での処理の全体
図１０〜図１４は、実施例２にかかるファイル共有方法において選択されたデータ共有方式での処理の全体を示すフローチャートである。図１０および図１１は、仮マスター端末＃０における処理手順を示している。図１０に示すように、仮マスター端末＃０において処理が開始されると、まず、仮マスター端末＃０はアプリケーションプログラムの入力データとなるデータを取得する（ステップＳ６１）。例えば、アプリケーションプログラムが、各端末で撮影された画像を結合してパノラマ写真などの大きな写真を生成するアプリケーションである場合には、画像ファイルが入力データとなる。
【００４８】
次いで、仮マスター端末＃０は、仮マスター端末＃０のＣＰＵ負荷率、データサイズおよび電池残量情報を取得する（ステップＳ６２）。次いで、仮マスター端末＃０は、その他の端末＃ｎに仮マスター端末＃０のデータのデータサイズを通知する（ステップＳ６３）。このとき、同様にその他の端末＃ｎも当該端末＃ｎのデータのデータサイズを通知する。そして、仮マスター端末＃０は、その他の端末＃ｎから通知されたデータサイズおよび仮マスター端末＃０のデータサイズに基づいてアプリケーションプログラムで処理する対象のデータの全データサイズを計算する。
【００４９】
次いで、仮マスター端末＃０は全データサイズおよび仮マスター端末＃０のＣＰＵ負荷率に基づいて演算時間（ｔexe）を見積もる（ステップＳ６４）。また、仮マスター端末＃０は全データサイズおよび端末間距離に基づいてデータ転送時間（ｔtrans）を見積もる（ステップＳ６５）。次いで、仮マスター端末＃０は共有方式を選択する（ステップＳ６６）。共有方式の選択手順については後述する。
【００５０】
仮マスター端末＃０がＰ２Ｐ方式を選択する場合（ステップＳ６６：Ｐ２Ｐ方式）、仮マスター端末＃０はＰ２Ｐ方式を選択し、その他の端末＃ｎにＰ２Ｐ方式でデータを共有することを通知する（ステップＳ６７）。次いで、仮マスター端末＃０は、仮マスター端末＃０に隣接する端末へ、ステップＳ６１で取得した仮マスター端末＃０のデータを転送する（ステップＳ６８）。隣接する端末については、図９に示す処理手順により決定される。また、仮マスター端末＃０は、仮マスター端末＃０に隣接する端末から当該隣接する端末のデータを受信する（ステップＳ６９）。すべてのデータの受信が済むまで（ステップＳ７０：Ｆ）、ステップＳ６８からステップＳ７０を繰り返し、すべてのデータを受信したら（ステップＳ７０：Ｔ）、仮マスター端末＃０は演算処理を行い（ステップＳ７１）、仮マスター端末＃０における一連の処理を終了する。
【００５１】
一方、仮マスター端末＃０が共有方式を選択する際（ステップＳ６６）、ＣＳ方式を選択する場合（ステップＳ６６：ＣＳ方式）、図１１に示すように、仮マスター端末＃０はＣＳ方式を選択し、その他の端末＃ｎにサーバーとなる端末を通知する（ステップＳ７２）。次いで、仮マスター端末であった端末＃０は、サーバーとなる端末へ、ステップＳ６１で取得した端末＃０のデータを転送する（ステップＳ７３）。サーバーとなる端末は、それ以外の端末から転送されてきたデータを用いて演算処理を行い、演算処理の結果を各端末へ転送する。仮マスター端末であった端末＃０は、サーバーとなる端末から転送されてきた演算処理の結果を受信し（ステップＳ７４）、仮マスター端末＃０における一連の処理を終了する。
【００５２】
図１２および図１３は、その他の端末＃ｎにおける処理手順を示している。図１２に示すように、その他の端末＃ｎにおいて処理が開始されると、まず、その他の端末＃ｎはアプリケーションプログラムの入力データとなるデータを取得する（ステップＳ８１）。次いで、その他の端末＃ｎは、その他の端末＃ｎのＣＰＵ負荷率、データサイズおよび電池残量情報を取得する（ステップＳ８２）。次いで、その他の端末＃ｎは、仮マスター端末＃０を含む他の端末に、ステップＳ８１で取得したデータのデータサイズを通知する（ステップＳ８３）。そして、その他の端末＃ｎは、仮マスター端末＃０を含む他の端末から通知されたデータサイズおよびステップＳ８１で取得したデータのデータサイズに基づいてアプリケーションプログラムで処理する対象のデータの全データサイズを計算する。
【００５３】
次いで、その他の端末＃ｎは全データサイズおよびその他の端末＃ｎのＣＰＵ負荷率に基づいて演算時間（ｔexe）を見積もる（ステップＳ８４）。また、その他の端末＃ｎは全データサイズおよび端末間距離に基づいてデータ転送時間（ｔtrans）を見積もる（ステップＳ８５）。次いで、その他の端末＃ｎは、見積もった演算時間（ｔexe）、データ転送時間（ｔtrans）、ＣＰＵ負荷率、電池残量および各端末間距離を仮マスター端末＃０へ転送する（ステップＳ８６）。
【００５４】
次いで、その他の端末＃ｎは仮マスター端末＃０から、仮マスター端末＃０が選択した共有方式が通知されるのを待つ（ステップＳ８７：Ｆ）。Ｐ２Ｐ方式が選択されたことが通知されると（ステップＳ８７：Ｐ２Ｐ方式）、その他の端末＃ｎは、ファイルを共有するモードに参加している全ての端末に関するデータに基づいて、隣接する端末との間でセッションを確立する（ステップＳ８８）。次いで、その他の端末＃ｎは、その他の端末＃ｎに隣接する端末へ、ステップＳ８１で取得したデータを転送する（ステップＳ８９）。隣接する端末については、図９に示す処理手順により決定される。
【００５５】
また、その他の端末＃ｎは、その他の端末＃ｎに隣接する端末から当該隣接する端末のデータを受信する（ステップＳ９０）。すべてのデータの受信が済むまで（ステップＳ９１：Ｆ）、ステップＳ８９からステップＳ９１を繰り返し、すべてのデータを受信したら（ステップＳ９１：Ｔ）、その他の端末＃ｎは演算処理を行い（ステップＳ９２）、その他の端末＃ｎにおける一連の処理を終了する。
【００５６】
一方、その他の端末＃ｎは仮マスター端末＃０から、仮マスター端末＃０がＣＳ方式を選択したこととサーバーとなる端末が通知されると（ステップＳ８７：ＣＳ方式）、図１３に示すように、サーバーとなる端末との間でセッションを確立する（ステップＳ９３）。次いで、その他の端末＃ｎは、サーバーとなる端末へ、ステップＳ８１で取得したデータを転送する（ステップＳ９４）。サーバーとなる端末は、それ以外の端末から転送されてきたデータを用いて演算処理を行い、演算処理の結果を各端末へ転送する。その他の端末＃ｎは、サーバーとなる端末から転送されてきた演算処理の結果を受信し（ステップＳ９５）、その他の端末＃ｎにおける一連の処理を終了する。
【００５７】
図１４は、サーバーとなる端末＃ｍにおける処理手順を示している。図１４に示すように、サーバーとなる端末＃ｍにおいて処理が開始されると、まず、サーバーとなる端末＃ｍは、クライアントとなる端末、すなわち仮マスター端末であった端末＃０、およびサーバーとなる端末＃ｍを除くその他の端末＃ｎとの間でセッションを確立する（ステップＳ１０１）。次いで、サーバーとなる端末＃ｍは、ステップＳ７３で端末＃０が転送したデータ、およびステップＳ９４でその他の端末＃ｎが転送したデータを受信する（ステップＳ１０２）。次いで、サーバーとなる端末＃ｍは、サーバーとなる端末＃ｍのデータ、およびステップＳ１０２で受信したデータを用いて演算処理を行う（ステップＳ１０３）。そして、サーバーとなる端末＃ｍは、仮マスター端末であった端末＃０、およびサーバーとなる端末＃ｍを除くその他の端末＃ｎへ演算処理の結果を転送し（ステップＳ１０４）、サーバーとなる端末＃ｍにおける一連の処理を終了する。
【００５８】
・共有方式の選択手順
図１５は、実施例２にかかるファイル共有方法における共有方式の選択手順を示すフローチャートである。ここでは、端末の数がＮ個（Ｎは２以上の整数）であり、ｎを０からＮ−１までの整数とする。図１５に示すように、共有方式の選択処理が開始されると、まず、仮マスター端末＃０は共有方式をＰ２Ｐ方式に設定する（ステップＳ１１１）。仮マスター端末＃０はｎを０に設定し（ステップＳ１１２）、ｎがＮ−１よりも小さい値である間（ステップＳ１１３：Ｔ）、以下のステップＳ１１３からステップＳ１２０を繰り返す。
【００５９】
端末＃ｎについて、処理時間がリアルタイム制約（処理時間閾値）よりも短く（ステップＳ１１４：Ｔ）、電池残量#nが電池残量閾値よりも多く（ステップＳ１１５：Ｔ）、消費電力Ｐ#nがその時点での最小の消費電力Ｐsmallestよりも少ない場合（ステップＳ１１６：Ｔ）、仮マスター端末＃０はＣＳ方式を選択する。そして、仮マスター端末＃０はこのときの端末＃ｎをサーバーとなる端末に設定する（ステップＳ１１９）。そして、ｎの値がインクリメントされる（ステップＳ１２０）。
【００６０】
ステップＳ１１４およびステップＳ１１５は真（Ｔ）であるが、ステップＳ１１６が偽（Ｆ）である場合には、ステップＳ１１７およびステップＳ１１８によって共有方式が選択される。すなわち、端末＃ｎの消費電力Ｐ#nがその時点での最小の消費電力Ｐsmallestに等しい場合（ステップＳ１１７：Ｔ）、端末＃ｎのＣＰＵ負荷率#nがその時点での最小のＣＰＵ負荷率smallestよりも小さければ（ステップＳ１１８：Ｔ）、仮マスター端末＃０はＣＳ方式を選択し、このときの端末＃ｎをサーバーとなる端末に設定する（ステップＳ１１９）。そして、ｎの値がインクリメントされる（ステップＳ１２０）。
【００６１】
ステップＳ１１４、ステップＳ１１５、ステップＳ１１７およびステップＳ１１８が偽（Ｆ）である場合には、仮マスター端末＃０はＰ２Ｐ方式を変更せずに、ｎの値をインクリメントする（ステップＳ１２０）。また、ｎがＮ−１よりも小さい値でなくなったら（ステップＳ１１３：Ｆ）、一連の処理を終了する。
【００６２】
ここで、端末＃ｎをサーバーとなる端末とした場合の処理時間の計算例を示す。例えば、端末＃０について端末間距離およびデータサイズをそれぞれ１ｍおよび１００ＫＢとする。端末＃１について端末間距離およびデータサイズをそれぞれ２ｍおよび１５０ＫＢとする。端末＃ｎ−１について端末間距離およびデータサイズをそれぞれ５ｍおよび１００ＫＢとする。他の端末については例示を省略する。この場合、端末＃ｎでの処理時間は次の（４）式で表される。
【００６３】
処理時間＝ｔexe＋Σｔtrans
＝Ｔ×Ｃ／ｃ×ｄ／（１００ＫＢ＋１５０ＫＢ＋・・・＋１００ＫＢ）×（１−ＣＰＵ負荷率）
＋（Ｔ0×１００ＫＢ／１２８Ｂ×１ｍ／Ｄ）
＋（Ｔ1×１５０ＫＢ／１２８Ｂ×２ｍ／Ｄ）
＋・・・
＋（Ｔn-1×１００ＫＢ／１２８Ｂ×５ｍ／Ｄ）
＋（Ｔn×（１００ＫＢ＋１５０ＫＢ＋・・・＋１００ＫＢ）／１２８Ｂ×１ｍ／Ｄ）
＋（Ｔn×（１００ＫＢ＋１５０ＫＢ＋・・・＋１００ＫＢ）／１２８Ｂ×２ｍ／Ｄ）
＋・・・
＋（Ｔn×（１００ＫＢ＋１５０ＫＢ＋・・・＋１００ＫＢ）／１２８Ｂ×１ｍ／Ｄ）  ・・・（４）
【００６４】
上記（４）式において、２行目は演算時間を計算する部分である。３〜６行目は、各端末からサーバーとなる端末＃ｎへ、各端末が取得したデータを転送するのに要する時間を計算する部分である。７〜１０行目は、サーバーとなる端末＃ｎから各端末へ、サーバーとなる端末＃ｎでの演算処理の結果を転送するのに要する時間を計算する部分である。ここでは、各端末からサーバーとなる端末＃ｎへのデータ転送と、サーバーとなる端末＃ｎから各端末へのデータ転送と、を同時には行わないとしている。
【００６５】
実施例２によれば、実施例１と同様の効果が得られる。
【００６６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）互いに通信可能な複数の端末を備え、
前記複数の端末のうち、第１の端末にその他の端末からデータを転送するのに要すると見積もられる時間、前記第１の端末に集約されたデータを前記第１の端末で演算処理するのに要すると見積もられる時間、および前記第１の端末から前記その他の端末へ演算処理済みのデータを転送するのに要すると見積もられる時間の合計時間がリアルタイム制約を満たし、かつ前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力よりも少ない場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、
前記複数の端末のいずれも前記合計時間がリアルタイム制約を満たさない場合にピアツーピア方式を選択することを特徴とするデータ共有システム。
【００６８】
（付記２）前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力のうち最少の電力と同じである場合、
前記第１の端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする付記１に記載のデータ共有システム。
【００６９】
（付記３）前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されていることを特徴とする付記１に記載のデータ共有システム。
【００７０】
（付記４）前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されており、
前記アプリケーションプログラムの起動時に前記プロセッサの負荷率を取得することを特徴とする付記２に記載のデータ共有システム。
【００７１】
（付記５）他の端末と通信する通信部と、
自端末に、互いに通信可能なその他の端末からデータを転送するのに要する時間、および前記自端末から前記その他の端末へ演算処理済みのデータを転送するのに要する時間を見積もるデータ転送時間見積もり部と、
前記自端末に集約されたデータを前記自端末で演算処理するのに要する時間を見積もる演算時間見積もり部と、
前記データ転送時間見積もり部により見積もられたデータ転送時間および前記演算時間見積もり部により見積もられた演算時間の合計時間を算出する合計時間算出部と、
前記自端末に集約された前記データを前記自端末で演算処理するときに消費される電力を見積もる消費電力見積もり部と、
前記合計時間算出部により算出された合計時間がリアルタイム制約を満たすか否かを判断する判断部と、
前記判断部により前記合計時間が前記リアルタイム制約を満たすと判断され、かつ前記消費電力見積もり部により見積もられた消費電力が、前記その他の端末が前記自端末と同じ演算処理を行うときに消費されると見積もられる消費電力よりも少ない場合に、前記自端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、いずれの端末も前記合計時間が前記リアルタイム制約を満たさない場合にピアツーピア方式を選択する選択部と、
を備えることを特徴とする端末。
【００７２】
（付記６）前記選択部は、
前記判断部により前記合計時間が前記リアルタイム制約を満たすと判断され、かつ前記消費電力見積もり部により見積もられた消費電力が、前記その他の端末が前記自端末と同じ演算処理を行うときに消費されると見積もられる消費電力のうち最少の消費電力と同じである場合、
前記自端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記自端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする付記５に記載の端末。
【００７３】
（付記７）前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されていることを特徴とする付記５に記載の端末。
【００７４】
（付記８）前記リアルタイム制約および前記消費電力の算出式は、アプリケーションプログラムの設計時に設定されて前記アプリケーションプログラム中に記述されており、
前記プロセッサは前記アプリケーションプログラムの起動時に前記プロセッサの負荷率を取得することを特徴とする付記６に記載の端末。
【００７５】
（付記９）互いに通信可能な複数の端末のうち、第１の端末にその他の端末からデータを転送するのに要する時間、前記第１の端末に集約されたデータを前記第１の端末で演算処理するのに要する時間、および前記第１の端末から前記その他の端末へ演算処理済みのデータを転送するのに要する時間の合計時間を見積もり、
前記合計時間がリアルタイム制約を満たし、かつ前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力よりも少ない場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択し、
前記複数の端末のいずれも前記合計時間がリアルタイム制約を満たさない場合にピアツーピア方式を選択することを特徴とするデータ共有方法。
【００７６】
（付記１０）前記第１の端末に集約された前記データを前記第１の端末で演算処理するときに消費されると見積もられる電力が、前記その他の端末が前記第１の端末と同じ演算処理を行うときに消費されると見積もられる電力のうち最少の電力と同じである場合、
前記第１の端末のプロセッサが前記データを演算処理するときの負荷率が、前記最少の消費電力と見積もられた端末のプロセッサが前記データを演算処理するときの負荷率よりも小さい場合に、前記第１の端末をサーバーとし、前記その他の端末をクライアントとするサーバークライアント方式を選択することを特徴とする付記９に記載のデータ共有方法。
【００７７】
（付記１１）アプリケーションプログラム中に前記リアルタイム制約および前記消費電力の算出式を記述しておくことを特徴とする付記９に記載のデータ共有方法。
【００７８】
（付記１２）アプリケーションプログラム中に前記リアルタイム制約および前記消費電力の算出式を記述しておき、
前記アプリケーションプログラムの起動時に前記プロセッサの負荷率を取得することを特徴とする付記１０に記載のデータ共有方法。
【符号の説明】
【００７９】
１，９  端末
２  データ転送時間見積もり部
３  演算時間見積もり部
４  消費電力見積もり部
５  合計時間算出部
６  判断部
７  選択部
８  通信部
【国際調査報告】
2012035639.tif 000018
2012035639.tif 000019
2012035639.tif 000020
2012035639.tif 000021