JP5617995B2 - ファイル共有化方法および端末 - Google Patents

ファイル共有化方法および端末 Download PDF

Info

Publication number
JP5617995B2
JP5617995B2 JP2013504447A JP2013504447A JP5617995B2 JP 5617995 B2 JP5617995 B2 JP 5617995B2 JP 2013504447 A JP2013504447 A JP 2013504447A JP 2013504447 A JP2013504447 A JP 2013504447A JP 5617995 B2 JP5617995 B2 JP 5617995B2
Authority
JP
Japan
Prior art keywords
terminal
file
time
terminals
speed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013504447A
Other languages
English (en)
Other versions
JPWO2012124064A1 (ja
Inventor
俊也 大友
俊也 大友
浩一郎 山下
浩一郎 山下
鈴木 貴久
貴久 鈴木
宏真 山内
宏真 山内
康志 栗原
康志 栗原
尚記 大舘
尚記 大舘
哲夫 平木
哲夫 平木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012124064A1 publication Critical patent/JPWO2012124064A1/ja
Application granted granted Critical
Publication of JP5617995B2 publication Critical patent/JP5617995B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ファイルを共有するファイル共有化方法および端末に関する。
従来、複数の端末にてファイルを共有する技術が開示されている。例えば、P2P(Peer to Peer)型のファイル共有システムにおいて、ファイルから分割された分割データを複数の端末がそれぞれ記憶するものがある。ファイル共有システムでは、ファイルの分割データを複数の端末に分散配置することにより、不正アクセスに対するファイルの秘匿性の確保や、個々の端末の記憶容量よりも大きなデータサイズのファイルの共有を可能にしている。
各端末は、ユーザからファイルの共有化処理の処理要求を受け付け、該処理要求に応じた共有化処理を行う。ここで、処理要求とは、例えば、ファイルの読出要求や、ファイルの書込要求である。また、共有化処理とは、例えば、ファイルから分割された複数の分割データを各端末に分散配置する書込処理や、各端末に記憶されている分割データを収集してファイルを復元させる読出処理である。
特開2005−275937号公報 特開2005−92288号公報
しかしながら、従来技術では、ファイルの共有化処理を完了するまでにかかる時間が増大してしまうことがあるといった問題があった。
例えば、バッテリの充電が十分でない端末が処理要求をユーザから受け付けた場合、共有化処理を完了するよりも前にバッテリが切れてしまい、共有化処理が中断されてしまうことがある。この場合、例えば、バッテリを充電したり付け替えたりしてから共有化処理を再開することになり、共有化処理を完了するまでの時間が増大してしまう。
また、例えば、他の端末よりも処理速度の遅い端末が処理要求をユーザから受け付けた場合、共有化処理を完了するまでの処理時間が、他の端末における処理時間よりも長くなってしまう場合がある。
本発明は、上述した従来技術による問題点を解消するため、ファイルの共有化処理を効率的に行うことができるファイル共有化方法および端末を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、第1端末は、前記第1端末を含む複数の端末の中から、前記複数の端末で複数のファイルを共有するための共有化処理を行う第2端末を、前記複数の端末のバッテリ残量および前記共有化処理の処理時間に基づいて選択し、前記第2端末に前記共有化処理を割り当てる。
本発明の一側面によれば、ファイルの共有化処理を効率的に行うことができるという効果を奏する。
図1は、実施の形態1にかかるファイル共有化方法の一実施例を示す説明図である。 図2は、実施の形態2にかかるファイル共有システムの一例を示す説明図である。 図3は、共有対象となるファイルの書込処理の完了時間の算出例を示す説明図(その1)である。 図4は、共有対象となるファイルの書込処理の完了時間の算出例を示す説明図(その2)である。 図5は、実施の形態2にかかる端末のハードウェア例を示すブロック図である。 図6は、ファイル共有グループDBの記憶内容の一例を示す説明図である。 図7は、実施の形態2にかかる端末の機能の一例を示すブロック図である。 図8は、実施の形態2にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。 図9は、実施の形態2にかかる端末の通信速度収集処理手順の一例を示すフローチャートである。 図10は、実施の形態2にかかる端末のストレージ挿抜検出処理手順の一例を示すフローチャートである。 図11は、実施の形態2にかかる端末の書込要求受付処理手順の一例を示すフローチャートである。 図12は、実施の形態2にかかる端末の評価値算出処理手順の一例を示すフローチャートである。 図13は、実施の形態2にかかる端末の書込割当処理手順の一例を示すフローチャートである。 図14は、共有対象となるファイルの読出処理の完了時間の算出例を示す説明図(その1)である。 図15は、共有対象となるファイルの読出処理の完了時間の算出例を示す説明図(その2)である。 図16は、ファイル共有グループDBの記憶内容の一例を示す説明図である。 図17は、実施の形態3にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。 図18は、実施の形態3にかかる端末のストレージ挿抜検出処理手順の一例を示すフローチャートである。 図19は、実施の形態3にかかる端末の読出要求受付処理手順の一例を示すフローチャートである。 図20は、実施の形態3にかかる端末の読出割当処理手順の一例を示すフローチャートである。
以下に添付図面を参照して、この発明にかかるファイル共有化方法および端末の実施の形態を詳細に説明する。
(実施の形態1)
まず、実施の形態1にかかるファイル共有化方法の一実施例について説明する。図1は、実施の形態1にかかるファイル共有化方法の一実施例を示す説明図である。図1において、ファイル共有システム100は、端末101a〜101dを含む。
ファイル共有システム100において、各端末は、端末101a〜101dにてファイルを共有する。端末101a〜101dは、例えば、携帯電話や、PDA(Personal Digital Assistants)や、ノートPC(Personal Computer)などである。共有対象となるファイルは、例えば、複数のユーザで共有する写真や動画などの画像ファイルである。
各端末は、ユーザからファイルの共有化処理の処理要求を受け付けた場合、端末101a〜101dの中からファイルの共有化処理を実行する端末を選択して、該端末にファイルの共有化処理を割り当てる。ファイルの共有化処理とは、複数の端末にてファイルを共有するための処理である。共有化処理には、例えば、ファイルの書込処理および読出処理が含まれる。
ここで、ファイルの共有化処理を実行する端末の処理能力が高いほど、共有化処理を完了するまでにかかる完了時間は短くなる。一方、ファイルの共有化処理を実行する端末の処理能力が低いほど、共有化処理を完了するまでにかかる完了時間は長くなる。また、ファイルの共有化処理を実行中の端末のバッテリが切れた場合、共有化処理の中断や再開などにより、共有化処理の処理要求をユーザから受け付けてから共有化処理を完了するまでの時間が増加してしまう。
そこで、実施の形態1では、各端末は、端末101a〜101dの各端末の共有化処理の完了時間と、各端末のバッテリ残量とを考慮して、各端末の評価値を算出する。ここで、評価値とは、ファイルの共有化処理の割当先となる端末を選択する際の指標となるものである。
完了時間とは、ユーザから共有化処理の処理要求を受け付けてから共有化処理を完了するまでにかかる時間である。ただし、この完了時間は、共有化処理の実行中に、バッテリ切れなどにより共有化処理が中断されないことを前提とする時間である。完了時間は、各端末のCPU(Central Processing Unit)の処理速度や、各端末間の通信速度などにより算出される。図1の例では、完了時間が「長」である端末101c,101dは、完了時間が「短」である端末101a,101bよりも完了時間が長いことを示している。
バッテリ残量とは、各端末に対して電気を供給するバッテリの残量である。具体的に、例えば、バッテリ残量は、バッテリの残量や、バッテリに充電可能な電気容量に対する残量の割合によって表現される。図1の例では、バッテリ残量が「多」である端末101b,101dは、バッテリ残量が「少」である端末101a,101cよりも、バッテリ残量が多いことを示している。
ここでは、評価値は、各端末の完了時間が短いほど高くなり、各端末のバッテリ残量が多いほど高くなるように算出される。各端末は、端末101a〜101dの中から評価値の高い端末を選択して、該端末にファイルの共有化処理を割り当てる。以下、端末101aがファイルの共有化処理の処理要求を受け付けた場合を想定して、共有化処理の割当例について説明する。
端末101aは、ユーザからファイルの共有化処理の処理要求を受け付けた場合、各端末の評価値を算出する。図1の例では、完了時間が「短」、バッテリ残量が「少」である端末101aの評価値として「中」が算出されている。また、完了時間が「短」、バッテリ残量が「多」である端末101bの評価値として「高」が算出されている。また、完了時間が「長」、バッテリ残量が「少」である端末101cの評価値として「低」が算出されている。また、完了時間が「長」、バッテリ残量が「多」である端末101dの評価値として「中」が算出されている。
ここで、評価値が「中」である端末101a,101dは、評価値が「高」である端末101bよりもファイルの共有化処理を実行する端末として推奨されるべき度合いが低いことを示している。また、評価値が「中」である端末101a,101dは、評価値が「低」である端末101cよりもファイルの共有化処理を実行する端末として推奨されるべき度合いが高いことを示している。
この場合、端末101aは、端末101a〜101dの中から評価値の最も高い端末101bを選択して、端末101bに共有化処理を割り当てる。この結果、端末101bにより、ファイルの共有化処理が実行される。
以上説明した実施の形態1にかかるファイル共有化方法によれば、ファイルを共有する各端末のバッテリ残量および共有化処理の完了時間に基づいて、共有化処理の割当先となる端末を選択することができる。これにより、共有化処理の実行中にバッテリが切れる可能性ができるだけ低く、共有化処理が完了するまでにかかる完了時間ができるだけ短くなるような端末を、共有化処理の割当先となる端末として選択することができる。この結果、共有化処理の実行中におけるバッテリ切れを防止するとともに共有化処理の処理時間の短縮化を図ることができる。
(実施の形態2)
(ファイル共有システムの一例)
つぎに、実施の形態2にかかるファイル共有システムについて説明する。実施の形態2では、共有対象となるファイルの共有化処理として、ファイルの書込処理を行う場合を例に挙げて説明する。ファイルの書込処理とは、ファイルを複数の分割データに分割して、複数の端末に分散配置する処理である。なお、実施の形態1で説明した箇所と同一箇所については説明を省略する。
図2は、実施の形態2にかかるファイル共有システムの一例を示す説明図である。図2において、ファイル共有システム200は、m個の端末201−1〜201−mを含むP2P型のシステムである。ファイル共有システム200において、端末201−1〜201−mは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などのネットワーク202を介して接続されている。また、端末201−1〜201−mは、端末間で直接通信可能であってもよく、また、基地局を介して通信可能であってもよい。なお、以下の説明では、端末201−1〜201−mのうち任意の端末を「端末201−k」と表記する(k=1,2,…,m)。
各端末201−kには、共有対象となるファイルの書込処理を行う場合に共有対象となるファイルを分割する分割速度や、各端末201−kが有するストレージの書込速度などが設定されている。ストレージとは、メインメモリを補助するための外部記憶装置であり、端末201−kに内蔵されている内蔵ストレージと、着脱自在な可搬ストレージとがある。内蔵ストレージには、例えば、フラッシュメモリがある。また、可搬ストレージには、例えば、SDカードがある。
端末201−kは、ユーザからファイル共有の開始要求を受け付けた場合、ファイル共有グループの設定を行う。ファイル共有グループとは、ファイルを共有する複数の端末である。ファイル共有グループの設定とは、端末201−kがファイル共有グループの各端末のアドレス情報などを取得することにより、ファイルを共有可能な環境を設定することである。
端末201−kは、ファイル共有グループの設定を行ってからファイル共有の終了要求をユーザから受け付けてファイル共有を終了するまで、以下の処理を行う。なお、ファイル共有を終了する契機は、ユーザからの終了要求の受け付けに限るものではない。例えば、端末201−kは、ファイル共有を開始してから所定時間が経過した場合にファイル共有を終了するものであってもよい。
まず、端末201−kは、端末201−1〜201−mの評価値の算出に用いる各種パラメータの値を取得してファイル共有グループDB(Date Base)に登録する。評価値とは、ファイルの書込処理の割当先となる端末を選択する際の指標となるものである。各種パラメータとは、例えば、端末201−kと他の端末との間の通信速度や、端末201−1〜201−mのバッテリ残量や、端末201−1〜201−mのストレージの書込速度などである。なお、ファイル共有グループDBについての詳細な説明は、図6を用いて後述する。
つぎに、端末201−kは、ユーザから共有対象となるファイルに対する書込要求を受け付けた場合に、ファイル共有グループDBに登録されている各種パラメータの値から評価値を算出し、評価値の最も高い端末を、書込処理の割当先の端末として選択する。そして、端末201−kは、選択した端末に対して、ファイルの書込処理を割り当てる。
ファイルの書込処理を割り当てるとは、ファイルの書込処理を実行させることである。例えば、ファイルに対する書込要求を受け付けた端末201−1の評価値が最も高い場合、端末201−1が書込処理を実行する。一方、ファイルに対する書込要求を受け付けた端末201−1とは異なる端末の評価値が最も高い場合、端末201−1は、評価値が最も高い端末に対して、ファイルの書込処理の処理要求を送信する。処理要求を受け付けた端末は、ファイルの書込処理を実行する。
(ファイルの書込処理の完了時間の算出例)
つぎに、ファイル共有システム200において、端末201−1〜201−3がファイル共有グループである場合を想定して、共有対象となるファイルの書込処理の完了時間の算出例について説明する。ファイルの書込処理の完了時間とは、ユーザからの書込要求があってから、ファイルの書込処理が完了するまでにかかる時間である。ここでは一例として、端末201−1がユーザから書込要求を受け付けた場合を例に挙げて説明する。
図3および図4は、共有対象となるファイルの書込処理の完了時間の算出例を示す説明図である。まず、図3を用いて、共有対象となるファイル301の書込要求をユーザから受け付けた端末201−1がファイルの書込処理を実行する場合の、書込処理の完了時間(ここでは、「端末201−1の完了時間CW」という)の算出例について説明する。
図3において、端末201−1の完了時間CWは、分割時間C1と、書込時間C2と、書込時間C3と、書込時間C4と、から算出される。ここで、分割時間C1は、端末201−1によってファイル301を、分割データ301a〜301cに分割する際にかかる時間である。また、書込時間C2は、端末201−1によってファイル301から分割された分割データ301aを端末201−1のストレージに書き込む際にかかる時間である。
また、書込時間C3は、分割データ301bが端末201−1から端末201−2へ転送される際にかかる時間と、端末201−2によって分割データ301bを端末201−2のストレージに書き込む際にかかる時間と、の合計時間である。すなわち、書込時間C3は、分割データ301bが、端末201−1から端末201−2に転送されて書き込まれるまでにかかる所要時間である。
また、書込時間C4は、分割データ301cが端末201−1から端末201−3へ転送される際にかかる時間と、端末201−3によって分割データ301cを端末201−3のストレージに書き込む際にかかる時間と、の合計時間である。すなわち、書込時間C4は、分割データ301cが、端末201−1から端末201−3に転送されて書き込まれるまでにかかる所要時間である。
そして、端末201−1の完了時間CWは、分割時間C1および書込時間C2の合計時間と、分割時間C1および書込時間C3の合計時間と、分割時間C1および書込時間C4の合計時間と、に基づいて算出される。例えば、端末201−1は、分割時間C1および書込時間C2の合計時間と、分割時間C1および書込時間C3の合計時間と、分割時間C1および書込時間C4の合計時間とのうちの最大の合計時間を、端末201−1の完了時間CWとして算出する。
つぎに、図4を用いて、端末201−1が共有対象となるファイル301の書込要求をユーザから受け付け、端末201−2が書込処理を実行する場合の、書込処理の完了時間(ここでは、「端末201−2の完了時間CW」という)の算出例について説明する。
図4において、端末201−2の完了時間CWは、転送時間C5と、分割時間C6と、書込時間C7と、書込時間C8と、書込時間C9と、から算出される。ここで、転送時間C5は、ファイル301が端末201−1から端末201−2へ転送される際にかかる時間である。また、分割時間C6は、端末201−2によってファイル301を、分割データ301a〜301cに分割する際にかかる時間である。また、書込時間C7は、端末201−2によってファイル301から分割された分割データ301bを端末201−2のストレージに書き込む際にかかる時間である。
また、書込時間C8は、分割データ301aが端末201−2から端末201−1へ転送される際にかかる時間と、端末201−1によって分割データ301aを端末201−1のストレージに書き込む際にかかる時間と、の合計時間である。すなわち、書込時間C8は、分割データ301aが、端末201−2から端末201−1に転送されて書き込まれるまでにかかる所要時間である。
また、書込時間C9は、分割データ301cが端末201−2から端末201−3へ転送される際にかかる時間と、端末201−3によって分割データ301cを端末201−3のストレージに書き込む際にかかる時間と、の合計時間である。すなわち、書込時間C9は、分割データ301cが、端末201−2から端末201−3に転送されて書き込まれるまでにかかる所要時間である。
そして、端末201−2の完了時間CWは、分割時間C6および書込時間C7の合計時間A1と、分割時間C6および書込時間C8の合計時間A2と、分割時間C6および書込時間C9の合計時間A3と、転送時間C5と、に基づいて算出される。例えば、端末201−1は、転送時間C5および合計時間A1の合計時間と、転送時間C5および合計時間A2の合計時間と、転送時間C5および合計時間A3の合計時間とのうちの最大の合計時間を端末201−2の完了時間CWとして算出する。
(端末のハードウェア例)
図5は、実施の形態2にかかる端末のハードウェア例を示すブロック図である。図5において、端末201−kは、CPU501と、メモリ502と、Crypt Engine503と、I/F(Interface)504と、内蔵ストレージ505と、可搬ストレージ506と、PMU(Power Management Unit)507と、を含む。また、各部はバス500によってそれぞれ接続されている。
ここで、CPU501は、端末201−kの全体の制御を司る。なお、ここでは、端末201−kが、単一のCPUを含むものとしたが、これに限るものではなく、例えば、複数のCPUを含むものであってもよい。メモリ502は、CPU501から直接アクセスされる記憶装置であり、例えば、ROM(Read‐Only Memory)や、RAM(Random Access Memory)などからなる。ROMは、ブートプログラムなどのプログラムを記憶している。RAMは、CPU501のワークエリアとして使用される。
Crypt Engine503は、ファイルの暗号化処理を行う。例えば、Crypt Engine503は、共有対象となるファイルから分割された分割データに対して、端末ごとに異なる端末番号などを用いた暗号化処理を行う。I/F504は、通信回線を通じてLAN、WAN、インターネットなどのネットワーク202に接続され、このネットワーク202を介して他の端末に接続される。そして、I/F504は、ネットワーク202と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F504には、例えばモデムやLANアダプタなどを採用することができる。
内蔵ストレージ505は、端末201−kに内蔵されたストレージであり、共有対象となるファイルから分割された分割データを記憶する。可搬ストレージ506は、端末201−kに着脱自在なストレージであり、共有対象となるファイルから分割データを記憶する。PMU507は、端末201−kのバッテリの制御を司り、バッテリ残量を検知する。
つぎに、ファイル共有グループDBの記憶内容について説明する。ファイル共有グループDBは、例えば、図5に示した端末201−kのメモリ502、内蔵ストレージ505、可搬ストレージ506などの記憶装置により実現される。ここでは、端末201−1が有するファイル共有グループDB600を例に挙げて説明する。
(ファイル共有グループDB600の記憶内容)
図6は、ファイル共有グループDBの記憶内容の一例を示す説明図である。図6において、端末201−1が有するファイル共有グループDB600は、端末名T、分割速度Q、ストレージ数N、書込速度SW、バッテリ残量B、通信速度tn、予測通信速度tfおよび単位書込時間Writeのフィールドを有する。各フィールドに情報を設定することで、端末特性データ601−1〜601−mがレコードとして記憶されている。
なお、ファイル共有グループDB600には、ファイル共有グループDB600を有する端末201−1に対するレコードが、一つ目の端末特性データ601−1として記憶されている。また、端末201−1以外の端末(以下「他端末」という)に対するレコードが、二つ目以降の端末特性データ601−2〜601−mとして記憶されている。なお、ここでは、端末201−1〜201−3がファイル共有グループである例を挙げて説明する。
端末名Tは、端末を識別する名称であり、端末ごとに異なるIDなどであってもよい。例えば、端末201−1の端末名Tは「X」であり、端末201−2の端末名Tは「Y」であり、端末201−3の端末名Tは「Z」である。以下、端末Tと記載した場合、端末名Tが「T」である端末を示す。例えば、端末Xとは、端末名Tが「X」である端末を示す。
分割速度Qは、共有対象となるファイルを分割する際に、単位時間あたりに分割するデータサイズであり、単位は[MB/s]である。分割速度Qは、端末201−1〜201−3のCPUの性能によって決定されている。以下の説明では、端末名Tに対応する分割速度Qを、「分割速度QT」と表記する。例えば、分割速度QXとは、端末名Tが「X」である端末201−1の分割速度Qを示している。
ストレージ数Nは、端末ごとの内蔵ストレージおよび可搬ストレージの総数である。ストレージ数Nは、可搬ストレージの着脱時に更新される。以下の説明では、端末名Tに対応するストレージ数Nを、「ストレージ数NT」と表記する。例えば、ストレージ数NXとは、端末名Tである「X」の端末201−1のストレージ数Nを示している。
書込速度SWは、共有対象となるファイルから分割された分割データをストレージへ書き込む際の、単位時間あたりに書き込むデータサイズであり、単位は[MB/s]である。書込速度SWは、ストレージの着脱に応じて、ストレージごとに登録される。以下の説明では、端末名Tに対応する書込速度SWを、「書込速度SWT」と表記する。例えば、書込速度SWxとは、端末名Tが「X」である端末201−1の書込速度SWを示している。
また、以下の説明では、各端末におけるi番目のストレージに対応する書込速度SWを、「書込速度SWi」と表記する。例えば、書込速度SW1とは、1番目のストレージの書込速度SWを示している。これらより、書込速度SWX1とは、端末名Tが「X」の端末201−1の、1番目のストレージにおける書込速度SWを示している。なおここでは、内蔵ストレージを1番目のストレージとし、可搬ストレージを2番目以降のストレージとする。
バッテリ残量Bは、各端末のバッテリの相対残量であり、単位は[%]である。自端末のバッテリ残量Bは、所定の周期ごとに取得される。また、他端末のバッテリ残量Bは、書込要求をユーザから受け付けた際に取得される。以下の説明では、端末名Tに対応するバッテリ残量Bを、「バッテリ残量BT」と表記する。例えば、バッテリ残量BXとは、端末名Tが「X」である端末201−1のバッテリ残量Bを示している。
通信速度tnは、自端末と他端末との間における、単位時間あたりに通信可能なデータサイズを示しており、単位は[MB/s]である。通信速度tnは、自端末が周期的に基地局に対する交信を行う際に取得される。以下の説明では、自端末である端末Toおよび他端末である端末Taに対応する通信速度tnを、「通信速度tnToTa」と表記する。例えば、通信速度tnxyとは、端末名Tが「X」である端末201−1と、端末名Tが「Y」である端末201−2と、の間の通信速度tnを示している。
予測通信速度tfは、単位時間経過後の通信速度の予測値であり、過去の通信速度および最新の通信速度に基づいて算出される。過去の通信速度とは、最新の通信速度の取得時に、ファイル共有グループDB600に登録されている通信速度である。予測通信速度tfの単位は[MB/s]である。また、予測通信速度tfは、通信速度tnが取得される周期と同様の周期にて算出される。以下の説明では、自端末である端末Toおよび他端末である端末Taに対応する予測通信速度tfを、「予測通信速度tfToTa」と表記する。例えば、予測通信速度tfxyとは、端末名Tが「X」である端末と、端末名Tが「Y」である端末と、の間の予測通信速度tfを示している。
単位書込時間Writeは、端末ごとの、単位データサイズあたりの書込処理時間を示しており、単位は[ms/MB]である。書込処理時間とは、各端末が書込処理の実行を開始してから完了するまでの時間であり、具体的には、共有対象となるファイルを分割し、他の端末へ送信し、各端末のストレージへの書き込みが終了するまでに要する時間である。すなわち、単位書込時間Writeに共有対象となるファイルのデータサイズを乗じることにより、対応する端末によって、共有対象となるファイルの書込処理の実行が開始されてから完了されるまでにかかる時間が算出可能である。
自端末に対応する単位書込時間Writeは、所定の周期ごとに算出され、登録される。また、他端末に対応する単位書込時間Writeは、書込要求をユーザから受け付けた際に、他端末から取得され、登録される。以下の説明では、端末名Tに対応する単位書込時間Writeを、「単位書込時間WriteT」と表記する。例えば、単位書込時間WriteXとは、端末名Tが「X」である端末201−1の単位書込時間Writeを示している。
一例として、端末特性データ601−2を例に挙げると、端末名Tが「Y」、分割速度QY=150[MB/s]、ストレージ数NY=2[個]、書込速度SWY1=20[MB/s]、書込速度SWY2=15[MB/s]、バッテリ残量BY=75[%]、通信速度tnXY=10[MB/s]、予測通信速度tfXY=15[MB/s]、単位書込時間WriteY=76[ms/MB]が記憶されている。
(端末201−kの機能例)
つぎに、実施の形態2にかかる端末201−kの機能例について説明する。図7は、実施の形態2にかかる端末の機能の一例を示すブロック図である。端末201−kは、取得部701と、選択部702と、割当部703と、算出部704と、判定部705と、を含む。各機能部(取得部701〜判定部705)は、具体的には、例えば、図5に示したメモリ502、内蔵ストレージ505、可搬ストレージ506などの記憶装置に記憶されたプログラムをCPU501に実行させることにより、または、I/F504により、その機能を実現する。各機能部の処理結果は、メモリ502、内蔵ストレージ505、可搬ストレージ506などの記憶装置に記憶される。
取得部701は、共有対象となるファイルを共有する端末201−1〜201−mの各々の端末201−1〜201−mのバッテリ残量Bを取得する。具体的には、例えば、取得部701が、自端末のPMUから、自端末のバッテリ残量Bを取得する。また、取得部701は、他端末から、他端末のバッテリ残量Bを取得する。
なお、取得部701によるバッテリ残量Bの取得処理は、例えば、ファイルの書込要求をユーザから受け付けた際に実行されてもよく、また、所定の周期ごとに実行されることにしてもよい。
選択部702は、端末201−1〜201−mの中から、ファイルの書込処理を行う端末を選択する。具体的に、例えば、選択部702が、ファイルの書込処理を行う端末として、取得部701によって取得されたバッテリ残量Bが最も多い端末を選択したり、バッテリ残量Bが所定値以上である端末のうち一の端末を選択したりする。
これにより、選択部702は、端末201−1〜201−mの中から、ファイルの書込処理中にバッテリが切れる可能性の最も低い端末を、ファイルの書込処理を行う端末として選択することができる。
割当部703は、選択部702によって選択された端末にファイルの書込処理を割り当てる。具体的には、例えば、自端末が選択された場合、割当部703が、ファイルの書込処理を自端末に割り当てる。この結果、端末201−kがファイルの書込処理を実行する。また、他端末が選択された場合、割当部703が、他端末に対してファイルの書込処理の処理要求を送信する。この結果、処理要求を受信した端末が、ファイルの書込処理を実行する。
また、取得部701は、ファイルの書込処理の完了時間を算出するための情報を取得する。ファイルの書込処理の完了時間は、上述したように、ファイルの書込処理を実行する端末にファイルを転送する転送時間と、ファイルを分割する分割時間と、分割した分割データを複数の端末に分散配置する分散時間と、を含む。分散配置とは、分割データを各端末へ転送し、各端末のストレージへ書き込ませることである。完了時間を算出するための情報とは、例えば、共有対象となるファイルのデータサイズや、共有対象となるファイルの端末ごとの分割速度Qや、端末ごとのストレージに対する分割データの書込速度SWや、自端末と他端末の間の通信速度tnなどである。
具体的には、例えば、取得部701が、共有対象となるファイルを参照して、該ファイルのデータサイズを取得する。また、取得部701が、ファイル共有グループDB(例えば、図6参照)の中から、自端末のデータの分割速度Qを取得する。なお、自端末のデータの分割速度Qは、例えば、製造時に予め設定されてファイル共有グループDBに登録されている。
また、取得部701が、例えば、ファイルの共有を開始する際に、他端末の分割速度Qを他端末から取得する。また、例えば、取得部701は、自端末のストレージに微小なサイズ(例えば、数ビット)のデータを書き込み、該データの書き込みを開始してから完了するまでの時間を計測することにより、自端末の書込速度SWiを取得する。取得された自端末の書込速度SWiは、例えば、ファイル共有グループDBに登録される。
また、取得部701が、例えば、ファイルの共有を開始する際に、他端末の書込速度SWiを他端末から取得する。取得された他端末の書込速度SWiは、例えば、ファイル共有グループDBに登録される。自端末および他端末の書込速度SWiは、例えば、自端末および他端末のストレージが脱着されると、その都度取得される。
また、取得部701は、他端末に対して微小なサイズ(例えば、数ビット)のデータを送信してから他端末からの応答があるまでの時間を計測することにより、自端末と他端末との間の通信速度tnを取得する。取得された自端末と他端末との間の通信速度tnは、例えば、ファイル共有グループDBに登録される。また、自端末と他端末との間の通信速度tnは、例えば、一定周期ごとに取得される。
算出部704は、取得部701によって取得された情報に基づいて、各々の端末によるファイルの書込処理の完了時間CWを算出する。具体的に、例えば、算出部704が、取得部701によって取得された情報および所定の式を用いて、各端末によるファイルの書込処理の完了時間CWを算出する。
以下の説明では、端末名Tが「T1」である端末がユーザからファイルの書込要求を受け付けた場合の、端末名Tが「T2」である端末に対応するファイルの書込処理の完了時間CWを、「完了時間CWT1T2」と表記する。例えば、完了時間CWXYとは、端末名Tが「X」の端末がユーザからファイルの書込要求を受け付け、端末名Tが「Y」の端末が書込処理を実行する際の完了時間CWを示している。
ここで、図6に示したファイル共有グループDB600に応じたファイル共有グループを例に挙げて、算出部704によって算出される完了時間CWについて説明する。より具体的には、例えば、算出部704が、下記式(1)を用いて、ユーザから書込要求を受け付けた端末Xが、自端末に書込処理を割り当てる場合の完了時間CWXXを算出することができる。
ただし、下記式(1)において、Fは、共有対象となるファイルのデータサイズを示すパラメータである。QXは、端末Xの分割速度Qを示すパラメータである。Nは、ファイル共有グループの総ストレージ数を示すパラメータである。NXは、端末Xのストレージ数を示すパラメータである。NYは、端末Yのストレージ数を示すパラメータである。NZは、端末Zのストレージ数を示すパラメータである。すなわち、Nは、NXとNYとNZとを足し合わせた値である。また、SWXiは、端末Xのi番目のストレージの書込速度SWを示すパラメータである。SWYiは、端末Yのi番目のストレージの書込速度SWを示すパラメータである。SWZiは、端末Zのi番目のストレージの書込速度SWを示すパラメータである。tnXYは、端末Xと端末Yとの間の通信速度tnを示すパラメータである。tnXZは、端末Xと端末Zとの間の通信速度tnを示すパラメータである。
Figure 0005617995
すなわち、算出部704が、上述した各種パラメータの値を上記式(1)に代入することにより、ユーザからファイルの書込要求を受け付けた端末Xが書込処理を行う際の完了時間CWXXを算出することができる。
上記式(1)の2行目の式において、一つ目の要素は、共有対象となるファイルを分割するための時間を示している。上記式(1)の2行目の式における括弧内の各要素は、共有対象となるファイルから分割された分割データを自端末に書き込む時間と、分割データが他端末に転送が開始されてから、各端末のストレージに書き込みが完了されるまでの時間とである。分割データの各端末への移動および書き込みは端末ごとに並行して行われるため、該括弧内の最大値をとることにより、最も処理時間の長い処理の処理時間を算出している。
上記式(1)において、2行目の式をFで括った式が3行目の式であり、3行目の式の括弧内を、単位書込時間WriteXに置き換えた式が4行目の式である。上記式(1)によれば、ユーザから書込要求を受け付けた端末Xが、共有対象となるファイルを分割してから、分割データをすべての端末に書き込み終えるまでの完了時間CWXXを算出することができる。
図6に示したファイル共有グループDB600の例では、各種パラメータの値はつぎの通りである。F=12[MB]、QX=50[MB/s]、N=5[個]、NX=1[個]、NY=2[個]、NZ=2[個]、SWX1=10[MB/s]、SWY1=20[MB/s]、SWY2=15[MB/s]、SWZ1=10[MB/s]、SWZ2=20[MB/s]、tnXY=10[MB/s]、tnXZ=20[MB/s]
この場合、算出部704が、上記式(1)に各種パラメータの上記値を代入することにより、単位書込時間WriteX=83[ms/MB]、完了時間CWXX=1.0[s]を算出することができる。
また、他の端末においても、上記式(1)と同様の式を用いることにより、ユーザから書込要求を受け付けた端末が書込処理を実行する際の完了時間CWを算出することができる。例えば、ユーザから書込要求を受け付けた端末Yが書込処理を実行する際の完了時間CWYYは、上記式(1)のXおよびYを入れ替えた式に、端末Yによって各種パラメータの値が代入されることにより算出される。
また、例えば、算出部704が、下記式(2)を用いて、ユーザから書込要求を受け付けた端末Xが、端末Yにファイルの書込処理を割り当てる場合の完了時間CWXYを算出することができる。
Figure 0005617995
すなわち、算出部704が、F、tnXY、WriteYの値を上記式(2)に代入することにより、完了時間CWXYを算出することができる。上記式(2)の1行目の式における一つ目の要素は、端末Xから端末Yへ共有対象となるファイルを転送させるための時間であり、二つ目の要素は、端末Yが書込処理を開始してから完了するまでにかかる完了時間CWYYである。上記式(2)の2行目の式の二つ目の要素は、完了時間CWYYを上記式(1)にならって分解したものである。
例えば、各種パラメータの値を、F=12[MB]、tnXY=10[MB/s]、WriteY=76[ms/MB]とした場合、完了時間CWXYは2.1[s]となる。
他の端末においても、上記式(2)と同様の式を用いることにより、ユーザから書込処理を受け付けた端末とは異なる端末が書込処理を実行する際の完了時間CWを算出することができる。例えば、ユーザから書込要求を受け付けた端末Yとは異なる端末Zが書込処理を実行する際の完了時間CWYZは、上記式(2)のXおよびYを入れ替え、YおよびZを入れ替えた式に、端末Yによって各種パラメータの値が代入されることにより算出される。
また、選択部702は、算出部704による算出結果に基づいて、ファイルの書込処理を行う端末を選択することにしてもよい。具体的には、例えば、選択部702が、算出されたファイルの書込処理の完了時間CWが最も短い端末を、ファイルの書込処理を行う端末として選択する。より具体的には、例えば、選択部702が、端末Xがユーザからファイルの書込要求を受け付けた場合に、完了時間CWXXと、完了時間CWXYと、完了時間CWXZと、のうち最も短い完了時間に対応する端末を、書込処理を割り当てる端末として選択する。
これにより、選択部702は、端末201−1〜201−mの中から、ファイルの書込処理の完了時間CWが最も短い端末を、ファイルの書込処理を行う端末として選択することができる。
また、算出部704が、バッテリ残量Bとファイルの書込処理の完了時間CWとに基づいて、ファイルの書込処理の割当先となる端末を選択する際の指標となる評価値(以下、「評価値VW」という)を算出することにしてもよい。以下の説明では、端末Xがユーザから書込要求を受け付けた場合における、端末Xの評価値VWを「VWXX」と表記する。また、端末Xがユーザから書込要求を受け付けた場合における、端末Yの評価値VWを「VWXY」と表記する。
ここで、図6に示したファイル共有グループDB600に応じたファイル共有グループを例に挙げて、算出部704によって算出される評価値VWについて説明する。具体的には、例えば、算出部704が、下記式(3)〜(5)のいずれかを用いて、端末Xがユーザから書込要求を受け付けた場合における、端末Xの評価値VWXXを算出することができる。ただし、下記式(3)〜(5)において、BXは、端末Xのバッテリ残量Bを示すパラメータである。なお、αおよびβは所定の係数である。
Figure 0005617995
Figure 0005617995
Figure 0005617995
すなわち、算出部704が、BXおよびCWXXの値を上記式(3)〜(5)のいずれかに代入することにより、端末Xがユーザから書込要求を受け付けた場合における、端末Xの評価値VWXXを算出することができる。上記式(3)〜(5)のいずれの式においても、バッテリ残量Bが多いほど、また、完了時間CWが短いほど、高い評価値が算出されるようになっている。
他の端末においても、上記式(3)〜(5)と同様の式を用いることにより評価値VWを算出することができる。例えば、端末Xがファイルの書込要求を受け付けた際の端末Yの評価値VWXYは、上記式(3)〜(5)のBXをBYとし、CWXXをCWXYとした式を用いることにより算出することができる。
この場合、選択部702は、算出部704によって算出された評価値VWに基づいて、端末201−1〜201−mの中からファイルの書込処理を行う端末を選択することにしてもよい。具体的には、例えば、選択部702は、算出部704によって算出された評価値VWの最も高い端末を、ファイルの書込処理を行う端末として選択する。
これにより、選択部702は、端末201−1〜201−mの中から、ファイルの書込処理中にバッテリが切れる可能性ができるだけ低く、ファイルの書込処理の完了時間CWができるだけ短い端末を、ファイルの書込処理を行う端末として選択することができる。
判定部705は、通信速度tnに基づいて、ファイルの書込処理を実行するか否かを判定する。具体的に、例えば、判定部705が、現在の通信速度tnと所定の閾値Dとを比較し、通信速度tnが閾値D未満の場合に、ファイルの書込処理を実行しないと判定する。一方、通信速度tnが閾値D以上の場合に、判定部705が、ファイルの書込処理を実行すると判定する。
ここで、閾値Dとしては、例えば、端末間の通信速度tnが閾値D未満となった場合、端末間の通信が途切れてデータを消失してしまう可能性が高くなる値に設定される。閾値Dは、例えば、予め設定されてメモリ502、内蔵ストレージ505などの記憶装置に記憶されている。
なお、閾値Dの比較対象として、予測通信速度tfを用いることにしてもよい。これにより、将来的に端末間の通信が途切れてデータを消失してしまう可能性が高い場合に、ファイルの書込処理を実行しないと判定することができる。
また、上記取得部701、選択部702、割当部703および算出部704の各種処理は、例えば、判定部705によって書込処理を実行すると判定された場合に実行されることにしてもよい。
これにより、端末201−kは、端末間の分割データの転送中に通信が途切れることによる分割データの消失を防止することができる。
また、ファイルの書込処理を実行しないと判定された場合、端末201−kは、該ファイルをメモリ502、内蔵ストレージ505、可搬ストレージ506などの記憶装置に記憶することにしてもよい。そして、端末201−kは、所定時間経過後に判定部705による判定処理を再実行することにしてもよく、また、ユーザからのファイルの書込要求を再度受け付けるまで待機することにしてもよい。また、端末201−kは、通信速度tnが閾値D以上になったときに、自端末の記憶装置に記憶したファイルの書込処理を再開することにしてもよい。
また、判定部705によって書込処理を実行しないと判定された場合、端末201−kは、エラーメッセージを出力するものとしてもよい。具体的には、例えば、端末201−kは、文字情報をディスプレイ(不図示)に表示することにより、エラーメッセージを出力する。文字情報とは、例えば、「現在通信状況が悪いため、しばらく立ってから書込処理を再実行してください。」や、「エラーが発生しました。共有を中止します。」などである。
また、端末201−kは、共有対象となるファイルに対する書込要求をユーザから受け付け、通信速度tnが閾値D未満である場合、該書込要求に対応するデータを共有対象となるファイルに反映せず自端末のストレージへ書き込むことにしてもよい。そして、端末201−kは、通信速度tnが閾値D以上となったときに、自端末のストレージへ書き込んだデータを共有対象となるファイルへ反映することにしてもよい。書込要求に対応するデータとは、例えば、共有対象となるファイルを修正する修正データなどである。
(端末201−kの処理手順)
以下、端末201−kが行う処理手順の一例について説明する。
(端末201−kのファイル共有設定処理手順)
図8は、実施の形態2にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。ファイル共有設定処理は、CPU501によって実行される処理である。ファイル共有設定処理において、端末201−kは、まず、ファイル共有の開始要求をユーザから受け付けたか否かを判定し(ステップS801)、受け付けない場合(ステップS801:No)、受け付けるまで待機する。
ステップS801において、ファイル共有の開始要求をユーザから受け付けた場合(ステップS801:Yes)、取得部701により、各種パラメータの値を取得する(ステップS802)。各種パラメータとは、静的なパラメータであり、例えば、他端末における分割速度Qと、書込速度SWiとである。そして、端末201−kは、取得した各種パラメータの値を、端末201−kが有するファイル共有グループDBへ登録する(ステップS803)。
その後、端末201−kは、ファイル共有の終了要求をユーザから受け付けたか否かを判定する(ステップS804)。ここで、ファイル共有の終了要求をユーザから受け付けていない場合(ステップS804:No)、取得部701により、通信速度収集処理(図9を参照)を実行する(ステップS805)。通信速度収集処理とは、自端末と他端末との間の通信速度を収集する処理である。
その後、取得部701により端末201−kのバッテリ残量BをPMU507から取得する(ステップS806)。そして、端末201−kは、取得された自端末のバッテリ残量Bをファイル共有グループDBに登録する(ステップS807)。そして、端末201−kは、他端末から、可搬ストレージの挿抜を検出した旨を示す可搬ストレージの変更通知を受信したか否かを判定する(ステップS808)。端末201−kは、可搬ストレージの変更通知を受信していない場合(ステップS808:No)、ステップS810へ移行する。
ステップS808において、可搬ストレージの変更通知を受信した場合(ステップS808:Yes)、端末201−kは、ファイル共有グループDBに変更内容を登録する(ステップS809)。具体的には、端末201−kは、挿抜を検出したストレージの書込速度SWiを更新して登録する。その後、算出部704により、自端末の単位書込時間Writeを算出する(ステップS810)。
そして、端末201−kは、算出された自端末の単位書込時間Writeを、ファイル共有グループDBへ登録し(ステップS811)、ステップS804へ移行する。また、ステップS804において、端末201−kは、ファイル共有の終了要求をユーザから受け付けた場合(ステップS804:Yes)、本フローチャートによる一連の処理を終了する。
(端末201−kの通信速度収集処理手順)
図9は、実施の形態2にかかる端末の通信速度収集処理手順の一例を示すフローチャートである。通信速度収集処理において、まず、取得部701により、自端末と他端末との間の通信速度tnを取得する(ステップS901)。
ステップS901において、具体的には、例えば、端末201−kは、微小なデータサイズのデータを各他端末へ送信し、送信を完了した旨を示す情報を各他端末から受信するまでの時間を計測することにより、各通信速度tnを取得する。そして、端末201−kは、ファイル共有グループDBに登録されている通信速度tnを抽出する(ステップS902)。
その後、算出部704により、予測通信速度tfを算出する(ステップS903)。具体的に、例えば、ステップS901にて取得された通信速度tnおよびステップS902にて抽出された通信速度tnの差を、ステップS901にて取得された通信速度tnに加算することにより、算出部704は、予測通信速度tfを算出する。なお、ファイル共有グループDBに通信速度tnが登録されていない場合、すなわち、ファイルの共有を開始してから1回目の通信速度収集処理においては、ステップS902〜S904を行わないものとしてもよい。
そして、端末201−kは、ステップS901において取得した通信速度tnを、ファイル共有グループDBへ登録する(ステップS904)。その後、端末201−kは、ステップS903において算出した予測通信速度tfを、ファイル共有グループDBへ登録し(ステップS905)、本フローチャートによる一連の処理を終了する。
(端末201−kのストレージ挿抜検出処理手順)
図10は、実施の形態2にかかる端末のストレージ挿抜検出処理手順の一例を示すフローチャートである。ストレージ挿抜検出処理は、CPU501によって実行される処理である。ストレージ挿抜検出処理において、まず、端末201−kは、可搬ストレージの挿抜を検出したか否かを判定し(ステップS1001)、検出しない場合(ステップS1001:No)、検出するまで待機する。
ステップS1001において、可搬ストレージの挿抜を検出した場合(ステップS1001:Yes)、端末201−1は、可搬ストレージが利用可能であるか否かを判定する(ステップS1002)。これにより、端末201−1は、可搬ストレージが装着されているか否かを判定している。
ステップS1002において、可搬ストレージが利用可能でない場合(ステップS1002:No)、ステップS1004へ移行する。可搬ストレージが利用可能である場合(ステップS1002:Yes)、取得部701により、可搬ストレージの書込速度SWiを測定する(ステップS1003)。
そして、端末201−kは、ファイル共有グループDBを更新する(ステップS1004)。その際、ステップS1002において可搬ストレージが利用可能であれば、端末201−kは、ステップS1003において測定した書込速度SWiをファイル共有グループDBに更新する。また、ステップS1002において可搬ストレージが利用可能でなければ、端末201−kは、可搬ストレージに対応する書込速度SWiをファイル共有グループDBから削除する。
その後、端末201−kは、他端末に対して、可搬ストレージに対応する書込速度SWiの情報を含む可搬ストレージ変更通知を送信することにより、可搬ストレージの変更を通知し(ステップS1005)、本フローチャートによる一連の処理を終了する。
(端末201−kの書込要求受付処理手順)
図11は、実施の形態2にかかる端末の書込要求受付処理手順の一例を示すフローチャートである。書込要求受付処理は、CPU501によって実行される処理である。書込要求受付処理において、まず、端末201−kは、共有対象となるファイルの書込要求をユーザから受け付けたか否かを判定し(ステップS1101)、受け付けていない場合(ステップS1101:No)、受け付けるまで待機する。
ステップS1101において、共有対象となるファイルの書込要求をユーザから受け付けた場合(ステップS1101:Yes)、判定部705により、一つ以上の他端末と自端末の間の予測通信速度tfが所定の閾値D未満であるか否かを判定する(ステップS1102)。一つ以上の他端末と自端末の間の予測通信速度tfが所定の閾値D未満である場合(ステップS1102:Yes)、端末201−kは、ステップS1111へ移行する。
すべての他端末と自端末の間の予測通信速度tfが所定の閾値D以上である場合(ステップS1102:No)、取得部701により、他端末の単位書込時間Writeおよびバッテリ残量Bを取得する(ステップS1103)。その後、端末201−kは、取得された他端末の単位書込時間Writeおよびバッテリ残量Bを、ファイル共有グループDBへ登録する(ステップS1104)。
ステップS1104の後、算出部704により、評価値VWを算出する評価値算出処理(図12を参照)を行う(ステップS1105)。そして、割当部703により、書込処理を端末に割り当てる書込割当処理(図13を参照)を行う(ステップS1106)。
そして、ステップS1106の後、端末201−kは、ファイルの書込処理が完了したか否かを判定する(ステップS1107)。ファイルの書込処理が完了するとは、ファイルの書込処理が割り当てられている他端末から、端末201−kが、ファイルの書込処理の完了を通知する情報を取得することである。また、自端末が書込処理を割り当てられている場合、書込処理が完了するとは、すべての他端末から、端末201−kが、分割データの各ストレージへの書き込みが完了した旨を示す情報を取得することである。
ステップS1107において、ファイルの書込処理が完了した場合(ステップS1107:Yes)、端末201−kは、本フローチャートによる一連の処理を終了する。ファイルの書込処理が完了していない場合(ステップS1107:No)、端末201−kは、異常を検出したか否かを判定する(ステップS1108)。例えば、端末201−kは、共有対象となるファイルから分割された分割データの書き込み途中に可搬ストレージが抜かれた場合などを異常として検出する。
異常を検出した場合(ステップS1108:Yes)、端末201−kは、エラー処理を実行し(ステップS1109)、本フローチャートによる一連の処理を終了する。エラー処理を実行するとは、例えば、端末201−kが、エラー情報をログとして書き込んだり、エラーが発生した旨を表示したりすることである。
ステップS1108において、異常を検出しない場合(ステップS1108:No)、判定部705により、予測通信速度tfが所定の閾値Dよりも低いか否かを判定する(ステップS1110)。予測通信速度tfが所定の閾値Dより低くない場合(ステップS1110:No)、端末201−kは、ステップS1107へ移行する。
ステップS1110において、予測通信速度tfが所定の閾値Dより低い場合(ステップS1110:Yes)、端末201−kは、自端末のストレージに共有対象となるファイルを書き込み(ステップS1111)、本フローチャートによる一連の処理を終了する。ステップS1111において書き込まれた共有対象となるファイルは、通信速度tnが閾値Dを超えた場合に、改めてファイルの書込処理が実行されるものとする。
(端末201−kの評価値算出処理手順)
図12は、実施の形態2にかかる端末の評価値算出処理手順の一例を示すフローチャートである。評価値算出処理において、まず、端末201−kは、ファイル共有グループDBから、各種パラメータの値を抽出する(ステップS1201)。
ステップS1201の後、算出部704により、完了時間を算出する(ステップS1202)。その際、上記式(1)や上記式(2)などの式が用いられる。その後、算出部704により評価値VWを算出し(ステップS1203)、本フローチャートによる一連の処理を終了する。ステップS1203においては、上記式(3)〜(5)などの式が用いられる。
(端末201−kの書込割当処理手順)
図13は、実施の形態2にかかる端末の書込割当処理手順の一例を示すフローチャートである。書込割当処理において、まず、端末201−kは、評価値算出処理において算出された評価値VWを参照する(ステップS1301)。そして、選択部702により、書込処理を実行する端末を選択する(ステップS1302)。その際、例えば、選択部702は、評価値VWの最も高い端末を、書込処理を実行する端末として選択する。
その後、端末201−kは、ステップS1302にて選択された端末が自端末であるか否かを判定する(ステップS1303)。ここで、自端末である場合(ステップS1303:Yes)、端末201−kは、書込処理の実行を開始し(ステップS1304)、本フローチャートによる一連の処理を終了する。その際、具体的に、端末201−kは、共有対象となるファイルを分割し、共有対象となるファイルから分割された分割データをCrypt Engine503によって暗号化する。そして、端末201−kは、暗号化された分割データを端末201−kのストレージへ書き込むとともに、共有対象となるファイルから分割された分割データを他端末へ送信する。
また、ステップS1302において選択された端末が他端末である場合(ステップS1303:No)、割当部703により、選択された端末に書込要求を送信し(ステップS1305)、本フローチャートによる一連の処理を終了する。
以上説明した実施の形態2にかかる端末201−kによれば、ファイルを共有する各端末のバッテリ残量Bおよびファイルの書込処理の完了時間CWに基づいて、ファイルの書込処理の割当先となる端末を選択することができる。すなわち、ファイルの書込処理を実行する端末を、各端末のバッテリ残量B、処理性能および端末間の通信状況を複合的に評価して選択することができる。
これにより、ファイルの書込処理の実行中にバッテリが切れる可能性ができるだけ低く、該書込処理が完了するまでにかかる完了時間CWができるだけ短くなるような端末を、該書込処理の割当先となる端末として選択することができる。この結果、ファイルの書込処理の実行中におけるバッテリ切れを防止するとともにファイルの書込処理の処理時間の短縮化を図ることができる。
また、端末201−kによれば、自端末と他端末との間の予測通信速度tfが所定の閾値Dよりも低い場合、ファイルの書込処理を行わないものとすることにより、分割データの転送中に通信が途切れることを防止することができる。仮に、共有対象となるファイルから分割された分割データの自端末から他端末への転送中に、自端末と他端末との通信が途切れた場合、送信中の分割データが消失してしまうことがある。そこで、上述したように、分割データの送信中に通信が途切れることを防止することにより、分割データの消失を防止することができる。
なお、実施の形態2において、端末201−kは、ファイルの書込要求をユーザから受け付けた場合に、各端末のバッテリ残量Bおよびファイルの書込処理の完了時間CWに基づいて、書込処理を実行する端末を選択するものとしたが、これに限るものではない。
例えば、端末201−kは、書込要求をユーザから受け付けた場合に、各端末のバッテリ残量Bに基づいて、ファイルの書込処理を実行する端末を選択するものであってもよい。その場合、ファイルの書込処理の実行中にバッテリが切れる可能性ができるだけ低い端末を、書込処理の割当先となる端末として選択することができる。この結果、ファイルの書込処理の実行中におけるバッテリ切れを防止することができる。
また、例えば、端末201−kは、書込要求をユーザから受け付けた場合に、ファイルの書込処理の完了時間CWに基づいて、ファイルの書込処理を実行する端末を選択するものであってもよい。その場合、書込処理が完了するまでにかかる完了時間CWができるだけ短くなるような端末を、書込処理の割当先となる端末として選択することができる。この結果、ファイルの書込処理の処理時間の短縮化を図ることができる。
(実施の形態3)
(ファイル共有システムの一例)
つぎに、実施の形態3にかかるファイル共有システムの一例について説明する。実施の形態3では、共有対象となるファイルの共有化処理として、ファイルの読出処理を行う場合を例に挙げて説明する。ファイルの読出処理とは、分散配置されている分割データを収集し、共有対象となるファイルに復元することである。なお、実施の形態1、2で説明した箇所と同一箇所については説明を省略する。
図2を用いて、実施の形態3にかかるファイル共有システムの一例について説明する。各端末201−kには、共有対象となるファイルの読出処理を行う場合に共有対象となるファイルから分割された分割データを復元する復元速度や、各端末201−kが有するストレージの読出速度などが設定されている。
端末201−kは、ファイル共有グループの設定を行ってからファイル共有の終了要求をユーザから受け付けてファイル共有を終了するまで、以下の処理を行う。まず、端末201−kは、端末201−1〜201−mの評価値の算出に用いる各種パラメータの値を取得してファイル共有グループDB(Date Base)に登録する。評価値とは、ファイルの読出処理の割当先となる端末を選択する際の指標となるものである。
各種パラメータとは、例えば、端末201−kと他の端末との間の通信速度tnや、端末201−1〜201−mのバッテリ残量Bや、端末201−1〜201−mのストレージの読出速度などである。なお、ファイル共有グループDBについての詳細な説明は、図16を用いて後述する。
つぎに、端末201−kは、ユーザから共有対象となるファイルに対する読出要求を受け付けた場合に、ファイル共有グループDBに登録されている各種パラメータの値から評価値を算出し、評価値の最も高い端末を、読出処理の割当先の端末として選択する。そして、端末201−kは、選択した端末に対して、ファイルの読出処理を割り当てる。
ファイルの読出処理を割り当てるとは、ファイルの読出処理を実行させることである。例えば、ファイルに対する読出要求を受け付けた端末201−1の評価値が最も高い場合、端末201−1が読出処理を実行する。一方、ファイルに対する読出要求を受け付けた端末201−1とは異なる端末の評価値が最も高い場合、端末201−1は、評価値が最も高い端末に対して、ファイルの読出処理の処理要求を送信する。処理要求を受け付けた端末は、ファイルの読出処理を実行する。
(ファイルの読出処理の完了時間の算出例)
つぎに、ファイル共有システム200において、端末201−1〜201−3がファイル共有グループである場合を想定して、共有対象となるファイルの読出処理の完了時間の算出例について説明する。ファイルの読出処理の完了時間とは、ユーザからの読出要求があってから、ファイルの読出処理が完了するまでにかかる時間である。ここでは一例として、端末201−1がユーザから読出要求を受け付けた場合を例に挙げて説明する。
図14および図15は、共有対象となるファイルの読出処理の完了時間の算出例を示す説明図である。まず、図14を用いて、共有対象となるファイル301の読出要求をユーザから受け付けた端末201−1がファイルの読出処理を実行する場合の、読出処理の完了時間(ここでは、「端末201−1の完了時間CR」という)の算出例について説明する。
図14において、端末201−1の完了時間CRは、読出時間C11と、読出時間C12と、読出時間C13と、復元時間C14と、から算出される。ここで、読出時間C11は、端末201−1によって分割データ301aを端末201−1のストレージから読み出す際にかかる時間である。
また、読出時間C12は、端末201−2によって分割データ301bを端末201−2のストレージから読み出す際にかかる時間と、分割データ301bが端末201−2から端末201−1へ転送される際にかかる時間と、の合計時間である。すなわち、読出時間C12は、分割データ301bが、端末201−2から読み出されて端末201−2から端末201−1に転送されるまでにかかる所要時間である。
また、読出時間C13は、端末201−3によって分割データ301cを端末201−3のストレージから読み出す際にかかる時間と、分割データ301cが端末201−3から端末201−1へ転送される際にかかる時間と、の合計時間である。すなわち、読出時間C13は、分割データ301cが、端末201−3から読み出されて端末201−3から端末201−1に転送されるまでにかかる所要時間である。
また、復元時間C14は、端末201−1によって収集された分割データ301a〜301cを、共有対象となるファイル301に復元する際にかかる時間である。
そして、端末201−1の完了時間CRは、読出時間C11および復元時間C14の合計時間と、読出時間C12および復元時間C14の合計時間と、読出時間C13および復元時間C14の合計時間と、に基づいて算出される。例えば、端末201−1は、読出時間C11および復元時間C14の合計時間と、読出時間C12および復元時間C14の合計時間と、読出時間C13および復元時間C14の合計時間とのうちの最大の合計時間を、端末201−1の完了時間CRとして算出する。
つぎに、図15を用いて、端末201−1が共有対象となるファイル301の読出要求をユーザから受け付け、端末201−2が読出処理を実行する場合の、読出処理の完了時間(ここでは、「端末201−2の完了時間CR」という)の算出例について説明する。
図15において、端末201−2の完了時間CRは、読出時間C15と、読出時間C16と、読出時間C17と、復元時間C18と、転送時間C19と、から算出される。ここで、読出時間C15は、端末201−2によって分割データ301bを端末201−2のストレージから読み出す際にかかる時間である。
また、読出時間C16は、端末201−1によって分割データ301aを端末201−1のストレージから読み出す際にかかる時間と、分割データ301aが端末201−1から端末201−2へ転送される際にかかる時間と、の合計時間である。すなわち、読出時間C16は、分割データ301aが、端末201−1から読み出されて端末201−1から端末201−2に転送されるまでにかかる所要時間である。
また、読出時間C17は、端末201−3によって分割データ301cを端末201−3のストレージから読み出す際にかかる時間と、分割データ301cが端末201−3から端末201−2へ転送される際にかかる時間と、の合計時間である。すなわち、読出時間C17は、分割データ301cが、端末201−3から読み出されて端末201−3から端末201−2に転送されるまでにかかる所要時間である。
また、復元時間C18は、端末201−2によって収集された分割データ301a〜301cを、共有対象となるファイル301に復元する際にかかる時間である。転送時間C19は、端末201−2によって復元された共有対象となるファイル301が端末201−2から端末201−1に転送される際にかかる所要時間である。
そして、端末201−2の完了時間CRは、読出時間C15および復元時間C18の合計時間A4と、読出時間C16および復元時間C18の合計時間A5と、読出時間C17および復元時間C18の合計時間A6と、転送時間C19と、に基づいて算出される。例えば、端末201−1は、合計時間A4および転送時間C19の合計時間と、合計時間A5および転送時間C19の合計時間と、合計時間A6および転送時間C19の合計時間とのうちの最大の合計時間を端末201−2の完了時間CRとして算出する。
つぎに、ファイル共有グループDBの記憶内容について説明する。ここでは、端末201−1が有するファイル共有グループDB1600を例に挙げて説明する。
(ファイル共有グループDB1600の記憶内容)
図16は、ファイル共有グループDBの記憶内容の一例を示す説明図である。図16において、端末201−1が有するファイル共有グループDB1600は、端末名T、復元速度P、ストレージ数N、読出速度SR、バッテリ残量B、通信速度tnおよび単位読出時間Readのフィールドを有する。各フィールドに情報を設定することで、端末特性データ1601−1〜1601−mがレコードとして記憶されている。
なお、ファイル共有グループDB1600には、ファイル共有グループDB1600を有する端末201−1に対するレコードが、一つ目の端末特性データ1601−1として記憶されている。また、他端末に対するレコードが、二つ目以降の端末特性データ1601−2〜1601−mとして記憶されている。なお、ここでは、端末201−1〜201−3がファイル共有グループである例を挙げて説明する。
復元速度Pは、共有対象となるファイルから分割された分割データを復元する際に、単位時間あたりに復元するデータサイズであり、単位は[MB/s]である。復元速度Pは、端末201−1〜201−3のCPUの性能によって決定されている。以下の説明では、端末名Tに対応する復元速度Pを、「復元速度PT」と表記する。例えば、復元速度PXとは、端末名Tが「X」である端末201−1の復元速度Pを示している。
読出速度SRは、共有対象となるファイルから分割された分割データをストレージから読み出す際の、単位時間あたりに読み出すデータサイズであり、単位は[MB/s]である。読出速度SRは、ストレージの着脱に応じて、ストレージごとに登録される。以下の説明では、端末名Tに対応する読出速度SRを、「読出速度SRT」と表記する。例えば、読出速度SRxとは、端末名Tが「X」である端末201−1の読出速度SRを示している。
また、以下の説明では、各端末におけるi番目のストレージに対応する読出速度SRを、「読出速度SRi」と表記する。例えば、読出速度SR1とは、1番目のストレージの読出速度SRを示している。これらより、読出速度SRX1とは、端末名Tが「X」の端末201−1の、1番目のストレージにおける読出速度SRを示している。なおここでは、内蔵ストレージを1番目のストレージとし、可搬ストレージを2番目以降のストレージとする。
単位読出時間Readは、端末ごとの、単位データサイズあたりの読出処理時間を示しており、単位は[ms/MB]である。読出処理時間とは、各端末が読出処理の実行を開始してから完了するまでの時間であり、具体的には、分散配置された分割データを収集し、収集した分割データから共有対象となるファイルの復元が完了するまでにかかる時間である。すなわち、単位読出時間Readに共有対象となるファイルのデータサイズを乗じることにより、対応する端末によって、共有対象となるファイルの読出処理の実行が開始されてから完了されるまでにかかる時間が算出可能である。
自端末に対応する単位読出時間Readは、所定の周期ごとに算出され、登録される。また、他端末に対応する単位読出時間Readは、読出要求をユーザから受け付けた際に、他端末から取得され、登録される。以下の説明では、端末名Tに対応する単位読出時間Readを、「単位読出時間ReadT」と表記する。例えば、単位読出時間ReadXとは、端末名Tが「X」である端末201−1の単位読出時間Readを示している。
一例として、端末特性データ1601−2を例に挙げると、端末名Tが「Y」、復元速度PY=150[MB/s]、ストレージ数NY=2[個]、読出速度SRY1=40[MB/s]、読出速度SRY2=30[MB/s]、バッテリ残量BY=75[%]、通信速度tnXY=10[MB/s]、単位読出時間ReadY=61[ms/MB]が記憶されている。
(端末201−kの機能例)
つぎに、図7を用いて、実施の形態3にかかる端末の機能例について説明する。選択部702は、端末201−1〜201−mの中から、ファイルの読出処理を行う端末を選択する。具体的に、例えば、選択部702が、ファイルの読出処理を行う端末として、取得部701によって取得されたバッテリ残量Bが最も多い端末を選択したり、バッテリ残量Bが所定値以上である端末のうち一の端末を選択したりする。
これにより、選択部702は、端末201−1〜201−mの中から、ファイルの読出処理中にバッテリが切れる可能性の最も低い端末を、ファイルの読出処理を行う端末として選択することができる。
割当部703は、選択部702によって選択された端末にファイルの読出処理を割り当てる。具体的には、例えば、自端末が選択された場合、割当部703が、ファイルの読出処理を自端末に割り当てる。この結果、端末201−kがファイルの読出処理を実行する。また、他端末が選択された場合、割当部703が、他端末に対してファイルの読出処理の処理要求を送信する。この結果、処理要求を受信した端末が、ファイルの読出処理を実行する。
また、取得部701は、ファイルの読出処理の完了時間を算出するための情報を取得する。ファイルの読出処理の完了時間は、上述したように、分散配置された分割データを複数の端末から収集する収集時間と、分割データから共有対象となるファイルを復元する復元時間と、ファイルの読出処理を実行する端末からファイルが転送される転送時間と、を含む。分割データを収集するとは、各端末のストレージから分割データを読み出し、読み出された分割データが、各端末から読出処理を実行する端末へ転送されることである。
完了時間を算出するための情報とは、例えば、共有対象となるファイルのデータサイズや、共有対象となるファイルの端末ごとの復元速度Pや、端末ごとのストレージに対する分割データの読出速度SRiや、自端末と他端末の間の通信速度tnなどである。
具体的には、例えば、取得部701が、ファイル共有グループDB(例えば、図16参照)の中から、自端末のデータの復元速度Pを取得する。なお、自端末のデータの復元速度Pは、例えば、製造時に予め設定されてファイル共有グループDBに登録されている。
また、取得部701が、例えば、ファイルの共有を開始する際に、他端末の復元速度Pを他端末から取得する。また、例えば、取得部701は、自端末のストレージから微小なサイズ(例えば、数ビット)のデータを読み出し、該データの読み出しを開始してから完了するまでの時間を計測することにより、自端末の読出速度SRiを取得する。取得された自端末の読出速度SRiは、例えば、ファイル共有グループDBに登録される。
また、取得部701が、例えば、ファイルの共有を開始する際に、他端末の読出速度SRiを他端末から取得する。取得された他端末の読出速度SRiは、例えば、ファイル共有グループDBに登録される。自端末および他端末の読出速度SRiは、例えば、自端末および他端末のストレージが脱着されると、その都度取得される。
算出部704は、取得部701によって取得された情報に基づいて、各々の端末によるファイルの読出処理の完了時間CRを算出する。具体的に、例えば、算出部704が、取得部701によって取得された情報および所定の式を用いて、各端末によるファイルの読出処理の完了時間CRを算出する。
以下の説明では、端末名Tが「T1」である端末がユーザからファイルの読出要求を受け付けた場合の、端末名Tが「T2」である端末に対応するファイルの読出処理の完了時間CRを、「完了時間CRT1T2」と表記する。例えば、完了時間CRXYとは、端末名Tが「X」の端末がユーザからファイルの読出要求を受け付け、端末名Tが「Y」の端末が読出処理を実行する際の完了時間CRを示している。
ここで、図16に示したファイル共有グループDB1600に応じたファイル共有グループを例に挙げて、算出部704によって算出される完了時間CRについて説明する。より具体的には、例えば、算出部704が、下記式(6)を用いて、ユーザから読出要求を受け付けた端末Xが、自端末に読出処理を割り当てる場合の完了時間CRXXを算出することができる。
ただし、下記式(6)において、SRXiは、端末Xのi番目のストレージの読出速度SRを示すパラメータである。SRYiは、端末Yのi番目のストレージの読出速度SRを示すパラメータである。SRZiは、端末Zのi番目のストレージの読出速度SRを示すパラメータである。
Figure 0005617995
すなわち、算出部704が、上述した各種パラメータの値を上記式(6)に代入することにより、ユーザからファイルの読出要求を受け付けた端末Xが読出処理を行う際の完了時間CRXXを算出することができる。
上記式(6)の1行目の式における括弧内の各要素は、分散配置された分割データを自端末から読み出す時間と、各他端末のストレージから読み出しが開始されてから、読出処理を実行する端末への分割データの転送が完了されるまでの時間とである。分割データの読み出しおよび読出処理を実行する端末への転送は端末ごとに並行して行われるため、該括弧内の最大値をとることにより、最も処理時間の長い処理の処理時間を算出している。また、上記式(6)の1行目の式において、二つ目の要素は、収集された分割データから共有対象となるファイルを復元するための時間を示している。
上記式(6)において、1行目の式をFで括った式が2行目の式であり、2行目の式の括弧内を、単位読出時間ReadXに置き換えた式が3行目の式である。上記式(6)によれば、ユーザから読出要求を受け付けた端末Xが、分割された分割データを収集してから、収集した分割データから共有対象となるファイルの復元が完了するまでの完了時間CRXXを算出することができる。
図16に示したファイル共有グループDB1600の例では、各種パラメータの値はつぎの通りである。F=12[MB]、PX=50[MB/s]、N=5[個]、NX=1[個]、NY=2[個]、NZ=2[個]、SRX1=20[MB/s]、SRY1=40[MB/s]、SRY2=30[MB/s]、SRZ1=20[MB/s]、SRZ2=40[MB/s]、tnXY=10[MB/s]、tnXZ=20[MB/s]
この場合、算出部704が、上記式(6)に各種パラメータの上記値を代入することにより、単位読出時間ReadX=76[ms/MB]、完了時間CRXX=0.9[s]を算出することができる。
また、他の端末においても、上記式(6)と同様の式を用いることにより、ユーザから読出要求を受け付けた端末が読出処理を実行する際の完了時間CRを算出することができる。例えば、ユーザから読出要求を受け付けた端末Yが読出処理を実行する際の完了時間CRYYは、上記式(6)のXおよびYを入れ替えた式に、端末Yによって各種パラメータの値が代入されることにより算出される。
また、例えば、算出部704が、下記式(7)を用いて、ユーザから読出要求を受け付けた端末Xが、端末Yにファイルの読出処理を割り当てる場合の完了時間CRXYを算出することができる。
Figure 0005617995
すなわち、算出部704が、F、tnXY、ReadYの値を上記式(7)に代入することにより、完了時間CRXYを算出することができる。上記式(7)の1行目の式における一つ目の要素は、端末Yが読出処理を開始してから完了するまでにかかる完了時間CRYYであり、二つ目の要素は、復元された共有対象となるファイルを端末Yから端末Xへ転送させるための時間である。上記式(7)の2行目の式の二つ目の要素は、完了時間CRYYを上記式(6)にならって分解したものである。
例えば、各種パラメータの値を、F=12[MB]、tnXY=10[MB/s]、ReadY=61[ms/MB]とした場合、完了時間CRXYは2.1[s]となる。
他の端末においても、上記式(7)と同様の式を用いることにより、ユーザから読出処理を受け付けた端末とは異なる端末が読出処理を実行する際の完了時間CRを算出することができる。例えば、ユーザから読出要求を受け付けた端末Yとは異なる端末Zが読出処理を実行する際の完了時間CRYZは、上記式(7)のXおよびYを入れ替え、YおよびZを入れ替えた式に、端末Yによって各種パラメータの値が代入されることにより算出される。
また、選択部702は、算出部704による算出結果に基づいて、ファイルの読出処理を行う端末を選択することにしてもよい。具体的には、例えば、選択部702が、算出されたファイルの読出処理の完了時間CRが最も短い端末を、ファイルの読出処理を行う端末として選択する。より具体的には、例えば、選択部702が、端末Xがユーザからファイルの読出要求を受け付けた場合に、完了時間CRXXと、完了時間CRXYと、完了時間CRXZと、のうち最も短い完了時間に対応する端末を、読出処理を割り当てる端末として選択する。
これにより、選択部702は、端末201−1〜201−mの中から、ファイルの読出処理の完了時間CRが最も短い端末を、ファイルの読出処理を行う端末として選択することができる。
また、算出部704が、バッテリ残量Bとファイルの読出処理の完了時間CRとに基づいて、ファイルの読出処理の割当先となる端末を選択する際の指標となる評価値(以下、「評価値VR」という)を算出することにしてもよい。以下の説明では、端末Xがユーザから読出要求を受け付けた場合における、端末Xの評価値VRを「VRXX」と表記する。また、端末Xがユーザから読出要求を受け付けた場合における、端末Yの評価値VRを「VRXY」と表記する。
ここで、図16に示したファイル共有グループDB1600に応じたファイル共有グループを例に挙げて、算出部704によって算出される評価値VRについて説明する。具体的には、例えば、算出部704が、上記式(3)〜(5)のWをRに置き換えたいずれかの式を用いて、端末Xがユーザから読出要求を受け付けた場合における、端末Xの評価値VRXXを算出することができる。
すなわち、算出部704が、上記式(3)〜(5)のWをRに置き換えたいずれかの式に、BXおよびCRXXの値を代入することにより、端末Xがユーザから読出要求を受け付けた場合における、端末Xの評価値VRXXを算出することができる。上記式(3)〜(5)のWをRに置き換えたいずれの式においても、バッテリ残量Bが多いほど、また、完了時間CRが短いほど、高い評価値VRが算出されるようになっている。
他の端末においても、上記式(3)〜(5)のWをRに置き換えた式と同様の式を用いることにより評価値VRを算出することができる。例えば、端末Xがファイルの読出要求を受け付けた際の端末Yの評価値VRXYは、上記式(3)〜(5)のWをRに置き換えた式のBXをBYとし、CRXXをCRXYとした式を用いることにより算出することができる。
この場合、選択部702は、算出部704によって算出された評価値VRに基づいて、端末201−1〜201−mの中からファイルの読出処理を行う端末を選択することにしてもよい。具体的には、例えば、選択部702は、算出部704によって算出された評価値VRの最も高い端末を、ファイルの読出処理を行う端末として選択する。
これにより、選択部702は、端末201−1〜201−mの中から、ファイルの読出処理中にバッテリが切れる可能性ができるだけ低く、ファイルの読出処理の完了時間CRができるだけ短い端末を、ファイルの読出処理を行う端末として選択することができる。
(端末201−kの処理手順)
以下、端末201−kが行う処理手順の一例について説明する。
(端末201−kのファイル共有設定処理手順)
図17は、実施の形態3にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。ファイル共有設定処理は、CPU501によって実行される処理である。ファイル共有設定処理において、端末201−kは、まず、ファイル共有の開始要求をユーザから受け付けたか否かを判定し(ステップS1701)、受け付けない場合(ステップS1701:No)、受け付けるまで待機する。
ステップS1701において、ファイル共有の開始要求をユーザから受け付けた場合(ステップS1701:Yes)、取得部701により、各種パラメータの値を取得する(ステップS1702)。各種パラメータとは、静的なパラメータであり、例えば、他端末における復元速度Pと、読出速度SRとである。そして、端末201−kは、取得された各種パラメータの値を、端末201−kが有するファイル共有グループDBへ登録する(ステップS1703)。
その後、端末201−kは、ファイル共有の終了要求をユーザから受け付けたか否かを判定する(ステップS1704)。ここで、ファイル共有の終了要求をユーザから受け付けていない場合(ステップS1704:No)、取得部701により、通信速度収集処理(図9を参照)が実行される(ステップS1705)。
その後、取得部701により、端末201−kのバッテリ残量BをPMU507から取得する(ステップS1706)。そして、端末201−kは、取得された自端末のバッテリ残量Bをファイル共有グループDBに登録する(ステップS1707)。そして、端末201−kは、他端末から、可搬ストレージの挿抜を検出した旨を示す可搬ストレージの変更通知を受信したか否かを判定する(ステップS1708)。端末201−kは、可搬ストレージの変更通知を受信していない場合(ステップS1708:No)、ステップS1710へ移行する。
ステップS1708において、可搬ストレージの変更通知を受信した場合(ステップS1708:Yes)、端末201−kは、ファイル共有グループDBに変更内容を登録する(ステップS1709)。具体的には、端末201−kは、挿抜を検出したストレージの読出速度を更新して登録する。その後、算出部704により、自端末の単位読出時間Readを算出する(ステップS1710)。
そして、端末201−kは、算出された自端末の単位読出時間Readを、ファイル共有グループDBへ登録し(ステップS1711)、ステップS1704へ移行する。また、端末201−kは、ファイル共有の終了要求をユーザから受け付けた場合(ステップS1704:Yes)、本フローチャートによる一連の処理を終了する。
(端末201−kのストレージ挿抜検出処理手順)
図18は、実施の形態3にかかる端末のストレージ挿抜検出処理手順の一例を示すフローチャートである。ストレージ挿抜検出処理は、CPU501によって実行される処理である。ストレージ挿抜検出処理において、まず、端末201−kは、可搬ストレージの挿抜を検出したか否かを判定し(ステップS1801)、検出しない場合(ステップS1801:No)、検出するまで待機する。
ステップS1801において、可搬ストレージの挿抜を検出した場合(ステップS1801:Yes)、端末201−kは、可搬ストレージが利用可能であるか否かを判定する(ステップS1802)。これにより、端末201−kは、可搬ストレージが装着されているか否かを判定している。
ステップS1802において、可搬ストレージが利用可能でない場合(ステップS1802:No)、ステップS1804へ移行する。可搬ストレージが利用可能である場合(ステップS1802:Yes)、取得部701により、可搬ストレージの読出速度SRiを測定する(ステップS1803)。
そして、端末201−kは、ファイル共有グループDBを更新する(ステップS1804)。その際、ステップS1802において可搬ストレージが利用可能であれば、端末201−kは、ステップS1803において測定した読出速度SRiをファイル共有グループDBに更新する。また、ステップS1802において可搬ストレージが利用可能でなければ、端末201−kは、可搬ストレージに対応する読出速度SRiをファイル共有グループDBから削除する。
その後、端末201−kは、他端末に対して、可搬ストレージに対応する読出速度SRiの情報を含む可搬ストレージ変更通知を送信することにより、可搬ストレージの変更を通知し(ステップS1805)、本フローチャートによる一連の処理を終了する。
(端末201−kの読出要求受付処理手順)
図19は、実施の形態3にかかる端末の読出要求受付処理手順の一例を示すフローチャートである。読出要求受付処理は、CPU501によって実行される処理である。読出要求受付処理において、まず、端末201−kは、共有対象となるファイルの読出要求をユーザから受け付けたか否かを判定し(ステップS1901)、受け付けていない場合(ステップS1901:No)、受け付けるまで待機する。
ステップS1901において、共有対象となるファイルの読出要求をユーザから受け付けた場合(ステップS1901:Yes)、取得部701により、他端末の単位読出時間Readおよびバッテリ残量Bを取得する(ステップS1902)。その後、端末201−kは、取得された他端末の単位読出時間Readおよびバッテリ残量Bを、ファイル共有グループDBへ登録する(ステップS1903)。
ステップS1903の後、算出部704により、完了時間CRおよび評価値VRを算出する評価値算出処理(図12を参照)を行う(ステップS1904)。そして、割当部703により、読出処理を端末に割り当てる読出割当処理(図20を参照)を行う(ステップS1905)。
そして、ステップS1905の後、端末201−kは、ファイルの読出処理が完了したか否かを判定する(ステップS1906)。ファイルの読出処理が完了するとは、ファイルの読出処理が割り当てられている他端末から、端末201−kが、分割データから復元されたファイルを受信することである。また、自端末が読出処理を割り当てられている場合、読出処理が完了するとは、分割データから共有対象となるファイルの復元が完了することである。
ステップS1906において、ファイルの読出処理が完了した場合(ステップS1906:Yes)、端末201−kは、本フローチャートによる一連の処理を終了する。ファイルの読出処理が完了していない場合(ステップS1906:No)、端末201−kは、異常を検出したか否かを判定する(ステップS1907)。例えば、端末201−kは、共有対象となるファイルから分割された分割データの読み出し途中に可搬ストレージが抜かれた場合などを異常として検出する。
異常を検出した場合(ステップS1907:Yes)、端末201−kは、エラー処理を実行し(ステップS1908)、本フローチャートによる一連の処理を終了する。
ステップS1907において、異常を検出しない場合(ステップS1907:No)、端末201−kは、ステップS1906へ移行する。
(端末201−kの読出割当処理手順)
図20は、実施の形態3にかかる端末の読出割当処理手順の一例を示すフローチャートである。読出割当処理において、まず、端末201−kは、評価値算出処理において算出された評価値VRを参照する(ステップS2001)。そして、選択部702により、読出処理を実行する端末を選択する(ステップS2002)。その際、例えば、選択部702は、評価値の最も高い端末を、読出処理を実行する端末として選択する。
その後、端末201−kは、ステップS2002にて選択された端末が自端末であるか否かを判定する(ステップS2003)。ここで、端末201−kは、自端末である場合(ステップS2003:Yes)、読出処理の実行を開始し(ステップS2004)、本フローチャートによる一連の処理を終了する。その際、具体的に、端末201−kは、各端末のストレージから分割データを読み出させ、読み出させた分割データを収集し、収集した各分割データから共有対象となるファイルを復元する。
また、ステップS2002において選択された端末が他端末である場合(ステップS2003:No)、割当部703により、選択された端末に読出要求を送信し(ステップS2005)、本フローチャートによる一連の処理を終了する。
以上説明した実施の形態3にかかる端末201−kによれば、ファイルを共有する各端末のバッテリ残量Bおよびファイルの読出処理の完了時間CRに基づいて、ファイルの読出処理の割当先となる端末を選択することができる。すなわち、ファイルの読出処理を実行する端末を、各端末のバッテリ残量B、処理性能および端末間の通信状況を複合的に評価して選択することができる。
これにより、ファイルの読出処理の実行中にバッテリが切れる可能性ができるだけ低く、該読出処理が完了するまでにかかる完了時間CRができるだけ短くなるような端末を、該読出処理の割当先となる端末として選択することができる。この結果、ファイルの読出処理の実行中におけるバッテリ切れを防止するとともにファイルの読出処理の処理時間の短縮化を図ることができる。
なお、実施の形態3において、端末201−kは、ファイルの読出要求をユーザから受け付けた場合に、各端末のバッテリ残量Bおよびファイルの読出処理の完了時間CRに基づいて、読出処理を実行する端末を選択するものとしたが、これに限るものではない。
例えば、端末201−kは、読出要求をユーザから受け付けた場合に、各端末のバッテリ残量Bに基づいて、ファイルの読出処理を実行する端末を選択するものであってもよい。その場合、ファイルの読出処理の実行中にバッテリが切れる可能性ができるだけ低い端末を、読出処理の割当先となる端末として選択することができる。この結果、ファイルの読出処理の実行中におけるバッテリ切れを防止することができる。
また、例えば、端末201−kは、読出要求をユーザから受け付けた場合に、ファイルの読出処理の完了時間CRに基づいて、ファイルの読出処理を実行する端末を選択するものであってもよい。その場合、読出処理が完了するまでにかかる完了時間CRができるだけ短くなるような端末を、読出処理の割当先となる端末として選択することができる。この結果、ファイルの読出処理の処理時間の短縮化を図ることができる。
なお、本実施の形態で説明したファイル共有化方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ファイル共有化プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ファイル共有化プログラムは、インターネット等のネットワークを介して配布してもよい。
100 ファイル共有システム
101a〜101d 端末
200 ファイル共有システム
201−1〜201−m 端末
202 ネットワーク
600,1600 ファイル共有グループDB
701 取得部
702 選択部
703 割当部
704 算出部
705 判定部

Claims (9)

  1. 第1端末は、前記第1端末を含む複数の端末の中から、前記複数の端末で複数のファイルを共有するための前記複数のファイルに分割する分割処理と前記複数のファイルを復元する復元処理とを含む共有化処理を行う第2端末を、前記複数の端末のバッテリ残量および前記共有化処理の処理時間に基づいて選択し、
    前記第2端末に前記共有化処理を割り当てること
    を特徴とするファイル共有化方法。
  2. 前記複数のファイルがアクセスされるときに前記バッテリ残量を取得すること
    を特徴とする請求項1に記載のファイル共有化方法。
  3. 前記複数の端末に関するパラメータおよびバッテリ残量を前記複数の端末の共有ファイルに登録すること
    を特徴とする請求項1または2に記載のファイル共有化方法。
  4. 前記複数のファイルのサイズ、前記複数のファイルの分割処理速度、前記複数のファイルの復元処理速度、前記複数の端末に内蔵される第1ストレージからの読出速度、前記第1ストレージへの書込速度、前記複数の端末に着脱される第2ストレージからの読出速度、前記第2ストレージへの書込速度、前記複数の端末間の通信速度、または、前記複数の端末の端末数を含むパラメータに基づいて前記処理時間を計算すること
    を特徴とする請求項1〜のいずれか一つに記載のファイル共有化方法。
  5. 前記第1端末は、前記複数のファイルへの書き込み要求に基づいて前記複数の端末間の通信速度を閾値と比較し、
    前記通信速度が前記閾値よりも小さいときには前記書き込み要求に対応するデータを前記第1端末のストレージに書き込むこと
    を特徴とする請求項1〜のいずれか一つに記載のファイル共有化方法。
  6. 前記通信速度が前記閾値以上になったときに、前記データを前記複数のファイルに反映すること
    を特徴とする請求項に記載のファイル共有化方法。
  7. 第1CPUと、
    前記第1CPUを含む複数のCPUで共有化される複数のファイルの少なくとも一部と、を含み、
    前記第1CPUは、前記複数のCPUの中から、前記複数のCPUで前記複数のファイルを共有するための前記複数のファイルに分割する分割処理と前記複数のファイルを復元する復元処理とを含む共有化処理を行う第2CPUを、前記複数のCPUのうちの対応するCPUを含む複数の端末のバッテリ残量および前記複数のCPUのそれぞれの前記複数のファイルの共有化処理の処理時間に基づいて選択し、前記第2CPUに前記複数のファイルの共有化処理を割り当てること
    を特徴とする端末。
  8. 前記複数のCPUに関するパラメータおよび前記複数のCPUのバッテリ残量を登録する取得部を含むこと
    を特徴とする請求項に記載の端末。
  9. 前記複数のCPUのそれぞれについて、前記複数のファイルのサイズ、前記複数のファイルの分割処理速度、前記複数のファイルの復元処理速度、前記複数の端末に内蔵される第1ストレージからの読出速度、前記第1ストレージへの書込速度、前記複数の端末に着脱される第2ストレージからの読出速度、前記第2ストレージへの書込速度、前記複数の端末間の通信速度、または前記複数の端末の数を含むパラメータに基づいて前記処理時間を計算する算出部を含むこと
    を特徴とする請求項またはに記載の端末。
JP2013504447A 2011-03-15 2011-03-15 ファイル共有化方法および端末 Expired - Fee Related JP5617995B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/056113 WO2012124064A1 (ja) 2011-03-15 2011-03-15 ファイル共有化方法および端末

Publications (2)

Publication Number Publication Date
JPWO2012124064A1 JPWO2012124064A1 (ja) 2014-07-17
JP5617995B2 true JP5617995B2 (ja) 2014-11-05

Family

ID=46830193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013504447A Expired - Fee Related JP5617995B2 (ja) 2011-03-15 2011-03-15 ファイル共有化方法および端末

Country Status (3)

Country Link
US (1) US9729626B2 (ja)
JP (1) JP5617995B2 (ja)
WO (1) WO2012124064A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10045167B2 (en) * 2014-10-09 2018-08-07 Lenovo (Singapore) Pte. Ltd. Phone record
US10361987B2 (en) * 2016-05-21 2019-07-23 Facebook, Inc. Techniques to convert multi-party conversations to an editable document
US10728193B2 (en) * 2017-11-17 2020-07-28 International Business Machines Corporation Receiving and sharing files in a group messaging environment
CN110597773B (zh) * 2019-08-28 2022-07-29 北京梦想绽放科技有限公司 在计算机设备和虚拟现实设备之间共享文件的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007158478A (ja) * 2005-11-30 2007-06-21 Sharp Corp 携帯端末装置
JP2010277517A (ja) * 2009-06-01 2010-12-09 Ricoh Co Ltd ファイル管理サーバ、ファイル管理システム、ファイル管理プログラム、及びファイル管理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813632B2 (en) * 2002-04-24 2004-11-02 International Business Machines Corporation Distributed file system using scatter-gather
JP2005092288A (ja) 2003-09-12 2005-04-07 Ntt Communications Kk 分散ファイル共有システム、方法、及び、サーバ、クライアント、クライアントにおける分散ファイル共有プログラム
JP2005275937A (ja) 2004-03-25 2005-10-06 Fujitsu Ltd P2pネットワークシステム
JP2009122981A (ja) * 2007-11-15 2009-06-04 Nec Corp キャッシュ配置方法
WO2010043400A2 (en) * 2008-10-17 2010-04-22 Nec Europe Ltd. System and method for sharing resources over ims (ip multimedia system) in next generation networks (ngn)
JP5160405B2 (ja) * 2008-12-26 2013-03-13 Kddi株式会社 P2p配信システム及び配信方法
US8838797B2 (en) * 2009-07-10 2014-09-16 Empire Technology Development Llc Dynamic computation allocation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007158478A (ja) * 2005-11-30 2007-06-21 Sharp Corp 携帯端末装置
JP2010277517A (ja) * 2009-06-01 2010-12-09 Ricoh Co Ltd ファイル管理サーバ、ファイル管理システム、ファイル管理プログラム、及びファイル管理方法

Also Published As

Publication number Publication date
JPWO2012124064A1 (ja) 2014-07-17
US9729626B2 (en) 2017-08-08
US20140012921A1 (en) 2014-01-09
WO2012124064A1 (ja) 2012-09-20

Similar Documents

Publication Publication Date Title
US11080143B2 (en) Systems and processes for data backup and recovery
CN110515539B (zh) 基于云存储的云磁盘挂载方法、装置、设备和存储介质
US9648128B2 (en) Dynamic ad hoc cloud based memory management for mobile devices
CN111143133B (zh) 虚拟机备份方法和备份虚拟机恢复方法
JP5617995B2 (ja) ファイル共有化方法および端末
AU2012207328A1 (en) Storing data on storage nodes
WO2012100037A1 (en) Storing data on storage nodes
US8935501B2 (en) Apparatus, method, and recording medium storing a program for selecting a destination storage based on a buffer size
CN103294580B (zh) 实时性能监控
US9852050B2 (en) Selecting computing resources
CN110581887B (zh) 数据处理方法、装置、区块链节点及存储介质
EP2977898B1 (en) Task allocation in a computing environment
JP5324914B2 (ja) ストレージリソースを割り振る方法および装置
CN103336730A (zh) 一种基于云存储的数据备份方法及系统
CN107301090B (zh) 在存储服务器中为应用设置数据处理路径的方法及装置
Du et al. Hawkeye: Adaptive straggler identification on heterogeneous spark cluster with reinforcement learning
CN112905668B (zh) 基于分布式数据流处理引擎的数据库导数方法、设备和介质
JP4887999B2 (ja) スーパースケジュール装置、処理実行システム、処理依頼方法、およびスーパースケジューラプログラム
CN112257736A (zh) 基于多集群的模型训练系统、方法、设备及存储介质
CN109669814A (zh) 一种元数据服务的恢复方法、装置、设备及可读存储介质
JP5392257B2 (ja) 情報収集装置、情報収集プログラム及び方法
JP2008027162A (ja) データ記録装置およびデータ記録プログラム
CN104516778B (zh) 一种多任务环境下进程检查点的保存与恢复系统及方法
Paraskevakos et al. Workflow design analysis for high resolution satellite image analysis
CN110147480A (zh) 一种数据拉取方法、设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140901

R150 Certificate of patent or registration of utility model

Ref document number: 5617995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees