WO2012124064A1 - ファイル共有化方法および端末 - Google Patents
ファイル共有化方法および端末 Download PDFInfo
- Publication number
- WO2012124064A1 WO2012124064A1 PCT/JP2011/056113 JP2011056113W WO2012124064A1 WO 2012124064 A1 WO2012124064 A1 WO 2012124064A1 JP 2011056113 W JP2011056113 W JP 2011056113W WO 2012124064 A1 WO2012124064 A1 WO 2012124064A1
- Authority
- WO
- WIPO (PCT)
- 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.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates to a file sharing method and a terminal for sharing a file.
- a technology for sharing a file among a plurality of terminals has been disclosed.
- a plurality of terminals each store divided data divided from a file.
- file division data is distributed to multiple terminals to ensure confidentiality of files against unauthorized access and to share files with data sizes larger than the storage capacity of individual terminals.
- Each terminal receives a processing request for file sharing processing from the user, and performs sharing processing according to the processing request.
- the processing request is, for example, a file read request or a file write request.
- the sharing process is, for example, a writing process in which a plurality of pieces of divided data divided from a file are distributed and arranged in each terminal, or a reading process in which the divided data stored in each terminal is collected and the file is restored. It is.
- JP 2005-275937 A Japanese Patent Laid-Open No. 2005-92288
- the conventional technique has a problem that the time required to complete the file sharing process may increase.
- the battery may run out before the sharing process is completed, and the sharing process may be interrupted.
- the sharing process is restarted after the battery is charged or replaced, and the time until the sharing process is completed increases.
- the processing time until the sharing process is completed may be longer than the processing time in the other terminal. is there.
- the present invention has an object to provide a file sharing method and a terminal capable of efficiently performing file sharing processing in order to solve the above-described problems caused by the prior art.
- the first terminal shares a plurality of files among the plurality of terminals including the first terminal.
- the second terminal that performs the sharing process for performing the sharing process is selected based on the remaining battery power of the plurality of terminals and the processing time of the sharing process, and the sharing process is assigned to the second terminal.
- FIG. 1 is an explanatory diagram of an example of the file sharing method according to the first embodiment.
- FIG. 2 is an explanatory diagram of an example of a file sharing system according to the second embodiment.
- FIG. 3 is an explanatory diagram (part 1) of a calculation example of the completion time of the writing process of the file to be shared.
- FIG. 4 is an explanatory diagram (part 2) of a calculation example of the completion time of the writing process of the file to be shared.
- FIG. 5 is a block diagram of a hardware example of the terminal according to the second embodiment.
- FIG. 6 is an explanatory diagram of an example of the contents stored in the file sharing group DB.
- FIG. 7 is a block diagram of an example of functions of the terminal according to the second embodiment.
- FIG. 8 is a flowchart of an example of a file sharing setting process procedure of the terminal according to the second embodiment.
- FIG. 9 is a flowchart of an example of a communication speed collection processing procedure of the terminal according to the second embodiment.
- FIG. 10 is a flowchart of an example of a storage insertion / extraction detection process procedure of the terminal according to the second embodiment.
- FIG. 11 is a flowchart of an example of a write request reception process procedure of the terminal according to the second embodiment.
- FIG. 12 is a flowchart of an example of an evaluation value calculation process procedure of the terminal according to the second embodiment.
- FIG. 13 is a flowchart of an example of a write allocation process procedure of the terminal according to the second embodiment.
- FIG. 14 is an explanatory diagram (part 1) of a calculation example of the completion time of the reading process of the file to be shared.
- FIG. 15 is an explanatory diagram (part 2) of a calculation example of the completion time of the reading process of the file to be shared.
- FIG. 16 is an explanatory diagram of an example of the contents stored in the file sharing group DB.
- FIG. 17 is a flowchart of an example of a file sharing setting process procedure of the terminal according to the third embodiment.
- FIG. 18 is a flowchart of an example of a storage insertion / extraction detection processing procedure of the terminal according to the third embodiment.
- FIG. 19 is a flowchart of an example of a read request receiving process procedure of the terminal according to the third embodiment.
- FIG. 20 is a flowchart of an example of a read allocation process procedure of the terminal according to the third embodiment.
- FIG. 1 is an explanatory diagram of an example of the file sharing method according to the first embodiment.
- a file sharing system 100 includes terminals 101a to 101d.
- each terminal shares a file with the terminals 101a to 101d.
- the terminals 101a to 101d are, for example, a mobile phone, a PDA (Personal Digital Assistant), a notebook PC (Personal Computer), or the like.
- the file to be shared is, for example, an image file such as a photo or a video shared by a plurality of users.
- each terminal When each terminal receives a file sharing process request from a user, each terminal selects a terminal that executes the file sharing process from among the terminals 101a to 101d, and assigns the file sharing process to the terminal.
- the file sharing process is a process for sharing a file among a plurality of terminals.
- the sharing process includes, for example, a file writing process and a reading process.
- the higher the processing capability of the terminal that executes the file sharing process the shorter the completion time required to complete the sharing process.
- the lower the processing capability of the terminal that executes the file sharing process the longer the completion time required to complete the sharing process.
- the time from the reception of the sharing process request from the user to the completion of the sharing process due to the suspension or restart of the sharing process Will increase.
- each terminal calculates the evaluation value of each terminal in consideration of the completion time of the sharing process of each of the terminals 101a to 101d and the remaining battery level of each terminal.
- the evaluation value is an index for selecting a terminal that is an allocation destination of the file sharing process.
- Completion time is the time it takes for the sharing process to be completed after receiving a sharing process request from the user.
- this completion time is a time on the premise that the sharing process is not interrupted due to a battery exhaustion or the like during the execution of the sharing process.
- the completion time is calculated based on a processing speed of a CPU (Central Processing Unit) of each terminal, a communication speed between the terminals, and the like.
- the terminals 101c and 101d having the completion time “long” indicate that the completion time is longer than the terminals 101a and 101b having the completion time “short”.
- the battery remaining amount is the remaining amount of the battery that supplies electricity to each terminal. Specifically, for example, the battery remaining amount is expressed by the remaining amount of the battery or the ratio of the remaining amount to the electric capacity that can be charged in the battery.
- the terminals 101b and 101d with the remaining battery level “high” indicate that the remaining battery level is higher than the terminals 101a and 101c with the remaining battery level “low”.
- the evaluation value is calculated so as to be higher as the completion time of each terminal is shorter, and to be higher as the battery remaining amount of each terminal is larger.
- Each terminal selects a terminal having a high evaluation value from the terminals 101a to 101d, and assigns a file sharing process to the terminal.
- An example of sharing process allocation will be described below assuming that the terminal 101a receives a request for file sharing processing.
- the terminal 101a When the terminal 101a receives a processing request for file sharing processing from the user, the terminal 101a calculates an evaluation value of each terminal.
- “medium” is calculated as the evaluation value of the terminal 101 a whose completion time is “short” and the remaining battery level is “low”.
- “high” is calculated as the evaluation value of the terminal 101b whose completion time is “short” and the remaining battery level is “high”.
- “low” is calculated as the evaluation value of the terminal 101c whose completion time is “long” and the remaining battery level is “low”.
- “medium” is calculated as the evaluation value of the terminal 101d whose completion time is “long” and the remaining battery level is “many”.
- the terminals 101a and 101d having the evaluation value “medium” are less recommended as terminals that execute the file sharing process than the terminal 101b having the evaluation value “high”. Yes.
- the terminals 101a and 101d having the evaluation value “medium” are more highly recommended as terminals that execute the file sharing process than the terminal 101c having the evaluation value “low”. .
- the terminal 101a selects the terminal 101b having the highest evaluation value from the terminals 101a to 101d, and assigns sharing processing to the terminal 101b. As a result, file sharing processing is executed by the terminal 101b.
- the terminal to which the sharing process is assigned is selected based on the remaining battery level of each terminal sharing the file and the completion time of the sharing process. be able to.
- a terminal that has the lowest possibility of running out of battery during the sharing process and that has the shortest completion time until the sharing process is completed is selected as a terminal to which the sharing process is assigned. can do.
- Embodiment 2 Example of file sharing system
- a file sharing system according to the second embodiment a file sharing system according to the second embodiment.
- the file writing process is a process in which a file is divided into a plurality of divided data and distributed to a plurality of terminals.
- description is abbreviate
- FIG. 2 is an explanatory diagram of an example of the file sharing system according to the second embodiment.
- a file sharing system 200 is a P2P type system including m terminals 201-1 to 201-m.
- the terminals 201-1 to 201-m are connected via a network 202 such as the Internet, a LAN (Local Area Network), and a WAN (Wide Area Network).
- the terminals 201-1 to 201-m may be able to communicate directly with each other or may be able to communicate with each other via a base station.
- Each terminal 201-k is set with a division speed for dividing a file to be shared when writing a file to be shared, a storage writing speed of each terminal 201-k, and the like.
- the storage is an external storage device for assisting the main memory, and includes a built-in storage built in the terminal 201-k and a removable portable storage.
- An example of the internal storage is a flash memory.
- the portable storage includes, for example, an SD card.
- a file sharing group is a plurality of terminals that share files.
- Setting a file sharing group means setting an environment in which a file can be shared by the terminal 201-k acquiring address information of each terminal of the file sharing group.
- the terminal 201-k performs the following processing from the setting of the file sharing group until the file sharing termination request is received from the user and the file sharing is terminated.
- the opportunity to end file sharing is not limited to accepting an end request from a user.
- the terminal 201-k may end the file sharing when a predetermined time has elapsed since the file sharing was started.
- the terminal 201-k acquires values of various parameters used for calculating the evaluation values of the terminals 201-1 to 201-m and registers them in a file sharing group DB (Date Base).
- the evaluation value is an index when selecting a terminal to which a file writing process is assigned.
- the various parameters include, for example, the communication speed between the terminal 201-k and another terminal, the remaining battery level of the terminals 201-1 to 201-m, and the storage writing of the terminals 201-1 to 201-m. Such as speed.
- a detailed description of the file sharing group DB will be described later with reference to FIG.
- the terminal 201-k calculates an evaluation value from the values of various parameters registered in the file sharing group DB.
- a high terminal is selected as a terminal to which write processing is assigned. Then, the terminal 201-k assigns a file writing process to the selected terminal.
- Allocating file write processing means executing file write processing. For example, when the evaluation value of the terminal 201-1 that has received the write request for the file is the highest, the terminal 201-1 executes the writing process. On the other hand, when the evaluation value of the terminal different from the terminal 201-1 that received the file writing request is the highest, the terminal 201-1 sends a processing request for the file writing process to the terminal with the highest evaluation value. Send. The terminal that has received the processing request executes a file writing process.
- the completion time of the file writing process is the time required for the file writing process to be completed after the writing request from the user.
- terminal 201-1 accepts a write request from a user will be described as an example.
- FIG. 3 and 4 are explanatory diagrams illustrating an example of calculating the completion time of the writing process of the file to be shared.
- the write process completion time here, “ A calculation example of “completion time C W of terminal 201-1” will be described.
- the completion time C W of the terminal 201-1 is calculated from the division time C1, the writing time C2, the writing time C3, and the writing time C4.
- the division time C1 is a time taken when the terminal 201-1 divides the file 301 into divided data 301a to 301c.
- the writing time C2 is the time taken to write the divided data 301a divided from the file 301 by the terminal 201-1 into the storage of the terminal 201-1.
- the write time C3 is the time taken for the divided data 301b to be transferred from the terminal 201-1 to the terminal 201-2 and the time when the divided data 301b is written to the storage of the terminal 201-2 by the terminal 201-2. And the total time. That is, the writing time C3 is the time required for the divided data 301b to be transferred from the terminal 201-1 to the terminal 201-2 and written.
- the writing time C4 is the time taken for the divided data 301c to be transferred from the terminal 201-1 to the terminal 201-3, and the time when the terminal 201-3 writes the divided data 301c to the storage of the terminal 201-3. And the total time. That is, the writing time C4 is a time required until the divided data 301c is transferred from the terminal 201-1 to the terminal 201-3 and written.
- the completion time C W of the terminal 201-1 is the total time of the division time C1 and the writing time C2, the total time of the division time C1 and the writing time C3, and the total time of the division time C1 and the writing time C4. And calculated based on the above. For example, the terminal 201-1 determines the maximum of the total time of the division time C1 and the writing time C2, the total time of the division time C1 and the writing time C3, and the total time of the division time C1 and the writing time C4. Is calculated as the completion time C W of the terminal 201-1.
- the write process completion time (
- the completion time C W of the terminal 201-2” will be described.
- the completion time C W of the terminal 201-2 is calculated from a transfer time C5, a division time C6, a writing time C7, a writing time C8, and a writing time C9.
- the transfer time C5 is a time taken when the file 301 is transferred from the terminal 201-1 to the terminal 201-2.
- the division time C6 is a time required for dividing the file 301 into the divided data 301a to 301c by the terminal 201-2.
- the writing time C7 is a time required for writing the divided data 301b divided from the file 301 by the terminal 201-2 into the storage of the terminal 201-2.
- the writing time C8 is the time taken for the divided data 301a to be transferred from the terminal 201-2 to the terminal 201-1 and when the divided data 301a is written to the storage of the terminal 201-1 by the terminal 201-1. And the total time. That is, the writing time C8 is a time required until the divided data 301a is transferred from the terminal 201-2 to the terminal 201-1 and written.
- the writing time C9 is the time taken for the divided data 301c to be transferred from the terminal 201-2 to the terminal 201-3, and the time when the terminal 201-3 writes the divided data 301c to the storage of the terminal 201-3. And the total time. That is, the writing time C9 is a time required for the divided data 301c to be transferred from the terminal 201-2 to the terminal 201-3 and written.
- the completion time C W of the terminal 201-2 includes the total time A1 of the division time C6 and the writing time C7, the total time A2 of the division time C6 and the writing time C8, and the division time C6 and the writing time C9. It is calculated based on the total time A3 and the transfer time C5. For example, the terminal 201-1 determines the maximum total time among the total time of the transfer time C5 and the total time A1, the total time of the transfer time C5 and the total time A2, and the total time of the transfer time C5 and the total time A3. Is calculated as the completion time C W of the terminal 201-2.
- FIG. 5 is a block diagram of a hardware example of the terminal according to the second embodiment.
- a terminal 201-k includes a CPU 501, a memory 502, a crypto engine 503, an I / F (Interface) 504, a built-in storage 505, a portable storage 506, a PMU (Power Management Unit) 507, including. Each unit is connected by a bus 500.
- the CPU 501 governs overall control of the terminal 201-k.
- the terminal 201-k includes a single CPU.
- the present invention is not limited to this.
- the terminal 201-k may include a plurality of CPUs.
- the memory 502 is a storage device that is directly accessed from the CPU 501 and includes, for example, a ROM (Read-Only Memory), a RAM (Random Access Memory), and the like.
- the ROM stores a program such as a boot program.
- the RAM is used as a work area for the CPU 501.
- Crypt Engine 503 performs file encryption processing. For example, Crypt Engine 503 performs an encryption process on the divided data divided from the file to be shared using a terminal number that is different for each terminal.
- the I / F 504 is connected to a network 202 such as a LAN, a WAN, or the Internet through a communication line, and is connected to other terminals via the network 202.
- the I / F 504 manages an internal interface with the network 202 and controls data input / output from an external device. For example, a modem or a LAN adapter may be employed as the I / F 504.
- the built-in storage 505 is a storage built in the terminal 201-k, and stores divided data divided from files to be shared.
- the portable storage 506 is a storage detachable from the terminal 201-k, and stores divided data from a file to be shared.
- the PMU 507 manages the battery of the terminal 201-k and detects the remaining battery level.
- the file sharing group DB is realized by, for example, a storage device such as the memory 502, the internal storage 505, and the portable storage 506 of the terminal 201-k illustrated in FIG.
- the file sharing group DB 600 of the terminal 201-1 will be described as an example.
- FIG. 6 is an explanatory diagram of an example of the contents stored in the file sharing group DB.
- the file sharing group DB 600 included in the terminal 201-1 includes a terminal name T, a division speed Q, a storage number N, a writing speed S W , a remaining battery charge B, a communication speed tn, a predicted communication speed tf, and a unit document. It has a field for the inclusion time Write. By setting information in each field, terminal characteristic data 601-1 to 601-m are stored as records.
- a record for the terminal 201-1 having the file sharing group DB 600 is stored as the first terminal characteristic data 601-1. Records for terminals other than the terminal 201-1 (hereinafter referred to as “other terminals”) are stored as second and subsequent terminal characteristic data 601-2 to 601-m.
- other terminals Records for terminals other than the terminal 201-1 (hereinafter referred to as “other terminals”) are stored as second and subsequent terminal characteristic data 601-2 to 601-m.
- the terminal name T is a name for identifying the terminal, and may be an ID that is different for each terminal.
- the terminal name T of the terminal 201-1 is “X”
- the terminal name T of the terminal 201-2 is “Y”
- the terminal name T of the terminal 201-3 is “Z”.
- the term “terminal T” refers to a terminal whose terminal name T is “T”.
- the terminal X indicates a terminal whose terminal name T is “X”.
- the division speed Q is a data size to be divided per unit time when a file to be shared is divided, and the unit is [MB / s].
- the division speed Q is determined by the CPU performance of the terminals 201-1 to 201-3.
- the division rate Q corresponding to the terminal name T is expressed as “division rate Q T ”.
- the division rate Q X indicates the division rate Q of the terminal 201-1 whose terminal name T is “X”.
- the storage number N is the total number of built-in storage and portable storage for each terminal.
- the storage number N is updated when the portable storage is attached or detached.
- the storage number N corresponding to the terminal name T is expressed as “storage number N T ”.
- the storage number N X indicates the storage number N of the terminal 201-1 having the terminal name “X” “X”.
- the writing speed SW is the data size to be written per unit time when the divided data divided from the file to be shared is written to the storage, and the unit is [MB / s].
- the writing speed SW is registered for each storage according to the attachment / detachment of the storage.
- the write speed S W corresponding to the terminal name T referred to as "writing speed S WT”.
- the writing speed S Wx indicates the writing speed S W of the terminal 201-1 whose terminal name T is “X”.
- the writing speed S W corresponding to the i-th storage in each terminal referred to as "writing speed S Wi".
- the writing speed S W1 indicates the writing speed S W of the first storage.
- the writing speed S WX1 indicates the writing speed S W in the first storage of the terminal 201-1 whose terminal name T is “X”.
- the internal storage is the first storage
- the portable storage is the second and subsequent storages.
- the battery remaining amount B is a relative remaining amount of the battery of each terminal, and its unit is [%].
- the battery remaining amount B of the own terminal is acquired every predetermined cycle.
- the remaining battery charge B of the other terminal is acquired when a write request is received from the user.
- the remaining battery level B corresponding to the terminal name T is expressed as “remaining battery level B T ”.
- the remaining battery level B X indicates the remaining battery level B of the terminal 201-1 whose terminal name T is “X”.
- the communication speed tn indicates the data size that can be communicated per unit time between the own terminal and another terminal, and the unit is [MB / s].
- the communication speed tn is acquired when the own terminal periodically communicates with the base station.
- the communication speed tn corresponding to the terminal To that is the terminal itself and the terminal Ta that is the other terminal is denoted as “communication speed tn ToTa ”.
- the communication speed tn xy indicates the communication speed tn between the terminal 201-1 whose terminal name T is “X” and the terminal 201-2 whose terminal name T is “Y”.
- the predicted communication speed tf is a predicted value of the communication speed after the unit time has elapsed, and is calculated based on the past communication speed and the latest communication speed.
- the past communication speed is a communication speed registered in the file sharing group DB 600 when the latest communication speed is acquired.
- the unit of the predicted communication speed tf is [MB / s].
- the predicted communication speed tf is calculated at the same cycle as the cycle at which the communication speed tn is acquired.
- the predicted communication speed tf corresponding to the terminal To that is the terminal itself and the terminal Ta that is the other terminal is expressed as “predicted communication speed tf ToTa ”.
- the predicted communication speed tf xy indicates the predicted communication speed tf between a terminal whose terminal name T is “X” and a terminal whose terminal name T is “Y”.
- the unit write time Write indicates the write processing time per unit data size for each terminal, and the unit is [ms / MB].
- the write processing time is the time from when each terminal starts executing the write process until it is completed. Specifically, the file to be shared is divided and transmitted to other terminals. This is the time required for the terminal to finish writing to the storage. In other words, by multiplying the unit write time Write by the data size of the file to be shared, the time taken from the start of the writing process of the file to be shared to the completion by the corresponding terminal is completed. It can be calculated.
- the unit writing time Write corresponding to the own terminal is calculated and registered every predetermined period.
- the unit write time Write corresponding to the other terminal is acquired from the other terminal and registered when a write request is received from the user.
- the unit write time Write corresponding to the terminal name T is expressed as “unit write time Write T ”.
- the unit write time Write X indicates the unit write time Write of the terminal 201-1 whose terminal name T is “X”.
- the terminal name T is “Y”
- the division speed Q Y 150 [MB / s]
- the number of storages N Y 2 [pieces]
- the writing speed S WY1. 20 [MB / s]
- writing speed S WY2 15 [MB / s]
- remaining battery power B Y 75 [%]
- communication speed tn XY 10 [MB / s]
- predicted communication speed tf XY 15 [MB / s]
- unit write time Write Y 76 [ms / MB] are stored.
- FIG. 7 is a block diagram of an example of functions of the terminal according to the second embodiment.
- the terminal 201-k includes an acquisition unit 701, a selection unit 702, an allocation unit 703, a calculation unit 704, and a determination unit 705.
- each functional unit executes, for example, a program stored in a storage device such as the memory 502, the internal storage 505, and the portable storage 506 illustrated in FIG.
- the function is realized by making it or by the I / F 504.
- the processing result of each functional unit is stored in a storage device such as the memory 502, the internal storage 505, and the portable storage 506.
- the acquiring unit 701 acquires the remaining battery level B of each of the terminals 201-1 to 201-m of the terminals 201-1 to 201-m sharing the file to be shared. Specifically, for example, the acquisition unit 701 acquires the battery remaining amount B of the own terminal from the PMU of the own terminal. In addition, the acquisition unit 701 acquires the remaining battery level B of the other terminal from the other terminal.
- the acquisition process of the remaining battery level B by the acquisition unit 701 may be executed when a file write request is received from a user, or may be executed at predetermined intervals, for example. .
- the selection unit 702 selects a terminal that performs a file writing process from the terminals 201-1 to 201-m. Specifically, for example, the selection unit 702 selects a terminal having the largest remaining battery level B acquired by the acquisition unit 701 as a terminal that performs file writing processing, or the remaining battery level B is greater than or equal to a predetermined value. Select one of the terminals.
- the selection unit 702 selects, from the terminals 201-1 to 201-m, the terminal with the lowest possibility of running out of the battery during the file writing process as the terminal that performs the file writing process. Can do.
- the assigning unit 703 assigns a file writing process to the terminal selected by the selecting unit 702. Specifically, for example, when the own terminal is selected, the assigning unit 703 assigns the file writing process to the own terminal. As a result, the terminal 201-k executes a file writing process. If another terminal is selected, the assigning unit 703 transmits a processing request for file writing processing to the other terminal. As a result, the terminal that has received the processing request executes a file writing process.
- the acquisition unit 701 acquires information for calculating the completion time of the file writing process.
- the file writing process completion time includes the transfer time for transferring the file to the terminal that executes the file writing process, the dividing time for dividing the file, and the divided divided data to the plurality of terminals. Dispersion time for distributed placement. The distributed arrangement is to transfer the divided data to each terminal and write it to the storage of each terminal.
- the information for calculating the completion time includes, for example, the data size of the file to be shared, the division speed Q for each terminal of the file to be shared, and the writing speed S W of the divided data to the storage for each terminal. And the communication speed tn between the own terminal and another terminal.
- the acquisition unit 701 refers to a file to be shared and acquires the data size of the file. Also, the acquisition unit 701 acquires the data division rate Q of the terminal itself from the file sharing group DB (see, for example, FIG. 6). The data division rate Q of the terminal itself is set in advance at the time of manufacture and registered in the file sharing group DB, for example.
- the acquisition unit 701 when the acquisition unit 701 starts sharing a file, the acquisition unit 701 acquires the division speed Q of the other terminal from the other terminal. Further, for example, the acquisition unit 701 writes data of a very small size (for example, several bits) in the storage of the own terminal, and measures the time from the start of writing the data to the completion of the own terminal. The writing speed S Wi is obtained. The acquired writing speed S Wi of the own terminal is registered in the file sharing group DB, for example.
- the acquisition unit 701 acquires the writing speed S Wi of the other terminal from the other terminal.
- the acquired writing speed S Wi of the other terminal is registered in the file sharing group DB, for example.
- the writing speed S Wi of the own terminal and the other terminal is acquired each time the storage of the own terminal and the other terminal is detached.
- the acquisition unit 701 measures the time from when data of a minute size (for example, several bits) is transmitted to another terminal until there is a response from the other terminal, so that the own terminal and the other terminal To obtain the communication speed tn.
- the acquired communication speed tn between the own terminal and another terminal is registered in the file sharing group DB, for example.
- the communication speed tn between the own terminal and another terminal is acquired for every fixed period, for example.
- the calculation unit 704 calculates the completion time C W of the file writing process by each terminal. Specifically, for example, the calculation unit 704 calculates the completion time C W of the file writing process by each terminal using the information acquired by the acquisition unit 701 and a predetermined formula.
- the completion time of the file writing process corresponding to the terminal whose terminal name T is “T2” C W is expressed as “completion time C WT1T2 ”.
- the completion time C WXY is a completion time C when a terminal whose terminal name T is “X” accepts a file write request from a user and a terminal whose terminal name T is “Y” executes a writing process. W is shown.
- the completion time C W calculated by the calculation unit 704 will be described by taking a file sharing group corresponding to the file sharing group DB 600 shown in FIG. 6 as an example. More specifically, for example, the calculation unit 704 calculates the completion time C WXX when the terminal X that has received the write request from the user assigns the write process to the own terminal, using the following formula (1). can do.
- F is a parameter indicating the data size of the file to be shared.
- Q X is a parameter indicating the division speed Q of the terminal X.
- N is a parameter indicating the total number of storages in the file sharing group.
- N X is a parameter indicating the number of storages of the terminal X.
- N Y is a parameter indicating the number of storages of the terminal Y.
- N Z is a parameter indicating the number of storages of the terminal Z. That is, N is a value obtained by adding N X , N Y, and N Z.
- S WXi is a parameter indicating the writing speed S W of the i-th storage terminal X.
- S WYi is a parameter indicating the writing speed S W of the i-th storage terminal Y.
- S WZi is a parameter indicating the writing speed S W of the i-th storage of the terminal Z.
- tn XY is a parameter indicating the communication speed tn between the terminal X and the terminal Y.
- tn XZ is a parameter indicating the communication speed tn between the terminal X and the terminal Z.
- the calculation unit 704 substitutes the values of the various parameters described above into the above formula (1), so that the completion time C WXX when the terminal X that has received the file write request from the user performs the write process is calculated . Can be calculated.
- the first element indicates the time for dividing the file to be shared.
- Each element in parentheses in the expression on the second line of the above expression (1) is the time for writing the divided data divided from the file to be shared to the own terminal, and after the divided data is started to be transferred to another terminal. , And the time until writing to the storage of each terminal is completed. Since movement and writing of the divided data to each terminal are performed in parallel for each terminal, the processing time of the processing with the longest processing time is calculated by taking the maximum value in the parentheses.
- the formula in which the formula on the second row is enclosed by F is the formula on the third row, and the formula in which the parentheses in the formula on the third row are replaced with the unit write time Write X is four rows. It is an expression of eyes.
- the terminal X that has received the write request from the user calculates the completion time C WXX from when the file to be shared is divided until the divided data has been written to all the terminals. be able to.
- the completion time C W when the terminal that receives the write request from the user executes the writing process.
- the completion time C WYY when the terminal Y that has received a write request from the user executes the writing process is calculated by changing the values of various parameters by the terminal Y to the formula in which X and Y in the formula (1) are replaced. Calculated by substitution.
- the calculation unit 704 calculates the completion time C WXY when the terminal X that has received a write request from the user assigns a file write process to the terminal Y using the following equation (2). Can do.
- the calculation unit 704 can calculate the completion time C WXY by substituting the values of F, tn XY , and Write Y into the above equation (2).
- the first element in the expression on the first line of the above expression (2) is the time for transferring the file to be shared from the terminal X to the terminal Y, and the second element is written by the terminal Y. It is a completion time C WYY required from the start of the loading process to the completion.
- the second element of the expression in the second row of the above expression (2) is obtained by decomposing the completion time C WYY according to the above expression (1).
- the completion time C W when the terminal different from the terminal that has received the writing process from the user executes the writing process is calculated. Can do.
- the completion time C WYZ when the terminal Z that is different from the terminal Y that has received the write request from the user executes the writing process is switched between X and Y in the above formula (2), and Y and Z are switched. It is calculated by substituting the values of various parameters by the terminal Y into the equation.
- the selection unit 702 may select a terminal that performs file writing processing based on the calculation result by the calculation unit 704. Specifically, for example, the selection unit 702 selects the terminal having the shortest completion time C W of the calculated file writing process as the terminal that performs the file writing process. More specifically, for example, when the terminal X receives a file write request from the user, the selection unit 702 is the most complete of the completion time C WXX , the completion time C WXY, and the completion time C WXZ. The terminal corresponding to the short completion time is selected as the terminal to which the writing process is assigned.
- the selection unit 702 can select, from the terminals 201-1 to 201-m, the terminal with the shortest file writing process completion time C W as the terminal that performs the file writing process. .
- the calculation unit 704 evaluates as an index when selecting a terminal to which the file writing process is allocated (hereinafter referred to as an evaluation value). , “Evaluation value V W ”).
- evaluation value V W the evaluation value V W of the terminal X when the terminal X receives a write request from the user is expressed as “V WXX ”.
- the evaluation value V W of the terminal Y is expressed as “V WXY ”.
- the evaluation value V W calculated by the calculation unit 704 will be described using the file sharing group corresponding to the file sharing group DB 600 illustrated in FIG. 6 as an example.
- the calculation unit 704 uses the following formulas (3) to (5) to calculate the evaluation value V WXX of the terminal X when the terminal X receives a write request from the user. Can be calculated.
- B X is a parameter indicating the remaining battery level B of the terminal X.
- ⁇ and ⁇ are predetermined coefficients.
- the calculation unit 704 substitutes the values of B X and C WXX into any one of the above formulas (3) to (5), so that the terminal X receives the write request from the user.
- An evaluation value V WXX can be calculated. In any of the above formulas (3) to (5), the higher the battery remaining amount B and the shorter the completion time C W , the higher the evaluation value is calculated.
- the evaluation value V W can be calculated by using equations similar to the above equations (3) to (5).
- the evaluation value V WXY of the terminal Y when the terminal X receives a file write request is an expression in which B X in the above formulas (3) to (5) is BY and C WXX is C WXY. It can be calculated by using.
- the selection unit 702 may select a terminal that performs a file writing process from the terminals 201-1 to 201-m based on the evaluation value V W calculated by the calculation unit 704. . Specifically, for example, the selection unit 702 selects the terminal having the highest evaluation value V W calculated by the calculation unit 704 as the terminal that performs the file writing process.
- the selection unit 702 has the terminal 201-1 to 201-m that has the lowest possibility of running out of the battery during the file writing process and has the shortest completion time C W of the file writing process. Can be selected as a terminal that performs a file writing process.
- the determining unit 705 determines whether or not to execute the file writing process based on the communication speed tn. Specifically, for example, the determination unit 705 compares the current communication speed tn with a predetermined threshold value D, and determines that the file writing process is not executed when the communication speed tn is less than the threshold value D. On the other hand, when the communication speed tn is equal to or higher than the threshold value D, the determination unit 705 determines to execute the file writing process.
- the threshold D when the communication speed tn between the terminals is less than the threshold D, the threshold D is set to a value that increases the possibility that the communication between the terminals is interrupted and the data is lost.
- the threshold value D is set in advance and stored in a storage device such as the memory 502 and the built-in storage 505, for example.
- the predicted communication speed tf may be used as a comparison target of the threshold value D.
- the various processes of the acquisition unit 701, the selection unit 702, the allocation unit 703, and the calculation unit 704 may be executed when the determination unit 705 determines that the writing process is to be executed, for example.
- the terminal 201-k can prevent the loss of the divided data due to the interruption of communication during the transfer of the divided data between the terminals.
- the terminal 201-k may store the file in a storage device such as the memory 502, the internal storage 505, or the portable storage 506.
- the terminal 201-k may re-execute the determination process by the determination unit 705 after a predetermined time has elapsed, or may wait until a file write request from the user is accepted again. Further, the terminal 201-k may resume the writing process of the file stored in the storage device of the own terminal when the communication speed tn becomes equal to or higher than the threshold value D.
- the terminal 201-k may output an error message. Specifically, for example, the terminal 201-k outputs an error message by displaying character information on a display (not shown).
- the character information is, for example, “Since the communication status is currently bad, please re-execute the writing process after a while” or “An error has occurred. Sharing will be cancelled.”
- the terminal 201-k accepts a write request for a file to be shared from the user, and when the communication speed tn is less than the threshold value D, the data corresponding to the write request is reflected in the file to be shared. Instead, it may be written in the storage of its own terminal. Then, the terminal 201-k may reflect the data written in the storage of its own terminal to the file to be shared when the communication speed tn becomes equal to or higher than the threshold value D.
- the data corresponding to the write request is, for example, correction data for correcting a file to be shared.
- FIG. 8 is a flowchart of an example of a file sharing setting process procedure of the terminal according to the second embodiment.
- the file sharing setting process is a process executed by the CPU 501.
- the terminal 201-k first determines whether or not a file sharing start request has been received from the user (step S801). If not received (step S801: No), the terminal 201-k waits until it is received.
- step S801 when a file sharing start request is received from the user (step S801: Yes), the acquisition unit 701 acquires values of various parameters (step S802).
- the various parameters are static parameters, for example, a division speed Q and a writing speed S Wi in another terminal.
- the terminal 201-k registers the acquired values of various parameters in the file sharing group DB included in the terminal 201-k (step S803).
- the terminal 201-k determines whether or not a file sharing end request has been received from the user (step S804). If a file sharing end request has not been received from the user (step S804: No), the acquisition unit 701 executes communication speed collection processing (see FIG. 9) (step S805).
- the communication speed collection process is a process of collecting the communication speed between the own terminal and another terminal.
- the acquisition unit 701 acquires the remaining battery level B of the terminal 201-k from the PMU 507 (step S806). Then, the terminal 201-k registers the acquired battery remaining amount B of its own terminal in the file sharing group DB (step S807). Then, the terminal 201-k determines whether or not a portable storage change notification indicating that the insertion or removal of the portable storage has been detected is received from another terminal (step S808). If the terminal 201-k has not received the change notification of the portable storage (step S808: No), the terminal 201-k proceeds to step S810.
- step S808 when the portable storage change notification is received (step S808: Yes), the terminal 201-k registers the changed content in the file sharing group DB (step S809). Specifically, the terminal 201-k and registers and updates the writing speed S Wi of storage that detected the insertion. After that, the calculation unit 704 calculates the unit writing time Write of the terminal itself (step S810).
- step S811 the terminal 201-k registers the calculated unit write time Write of its own terminal in the file sharing group DB (step S811), and proceeds to step S804.
- step S804 when the terminal 201-k receives a file sharing end request from the user (step S804: Yes), the terminal 201-k ends the series of processes in this flowchart.
- FIG. 9 is a flowchart of an example of a communication speed collection processing procedure of the terminal according to the second embodiment.
- the acquisition unit 701 acquires a communication speed tn between the own terminal and another terminal (step S901).
- step S901 specifically, for example, the terminal 201-k transmits data of a minute data size to each other terminal, and determines the time until receiving information indicating that the transmission is completed from each other terminal. By measuring, each communication speed tn is acquired. Then, the terminal 201-k extracts the communication speed tn registered in the file sharing group DB (step S902).
- the predicted communication speed tf is calculated by the calculation unit 704 (step S903). Specifically, for example, the calculation unit 704 adds the difference between the communication speed tn acquired in step S901 and the communication speed tn extracted in step S902 to the communication speed tn acquired in step S901. Calculates the predicted communication speed tf. Note that when the communication speed tn is not registered in the file sharing group DB, that is, in the first communication speed collection process after file sharing is started, steps S902 to S904 may not be performed.
- the terminal 201-k registers the communication speed tn acquired in step S901 in the file sharing group DB (step S904). After that, the terminal 201-k registers the predicted communication speed tf calculated in step S903 in the file sharing group DB (step S905), and ends a series of processes according to this flowchart.
- FIG. 10 is a flowchart of an example of a storage insertion / extraction detection process procedure of the terminal according to the second embodiment.
- the storage insertion / removal detection process is a process executed by the CPU 501.
- the terminal 201-k determines whether or not insertion / removal of a portable storage has been detected (step S1001). If not detected (step S1001: No), the terminal 201-k waits until it is detected.
- step S1001 When it is detected in step S1001 that the portable storage is inserted / removed (step S1001: Yes), the terminal 201-1 determines whether the portable storage is available (step S1002). As a result, the terminal 201-1 determines whether or not a portable storage is attached.
- step S1002 when the portable storage is not available (step S1002: No), the process proceeds to step S1004. If portable storage is available (Step S1002: Yes), the acquiring unit 701 measures the writing speed S Wi of portable storage (step S1003).
- the terminal 201-k updates the file sharing group DB (step S1004).
- the portable storage at step S1002 is available, the terminal 201-k updates the writing speed S Wi measured in step S1003 to a file-sharing group DB. Further, if the portable storage available in step S1002, the terminal 201-k deletes the writing speed S Wi corresponding to portable storage from a file-sharing group DB.
- the terminal 201-k to the other terminal, by transmitting a portable storage change notification including information of the writing speed S Wi corresponding to portable storage notifies the change of the portable storage (step S1005), a series of processing according to this flowchart is terminated.
- FIG. 11 is a flowchart of an example of a write request reception process procedure of the terminal according to the second embodiment.
- the write request acceptance process is a process executed by the CPU 501.
- the terminal 201-k determines whether or not a write request for a file to be shared has been received from the user (step S1101). If not received (step S1101: No), Wait until it is accepted.
- step S1101 when a write request for a file to be shared is received from the user (step S1101: Yes), the determination unit 705 determines that the predicted communication speed tf between one or more other terminals and the own terminal is a predetermined value. It is determined whether it is less than the threshold value D (step S1102). When the predicted communication speed tf between one or more other terminals and the own terminal is less than the predetermined threshold D (step S1102: Yes), the terminal 201-k proceeds to step S1111.
- step S1102 When the predicted communication speed tf between all other terminals and the own terminal is equal to or higher than the predetermined threshold D (step S1102: No), the acquisition unit 701 acquires the unit write time Write and the remaining battery charge B of the other terminal. (Step S1103). Thereafter, the terminal 201-k registers the acquired unit write time Write and remaining battery charge B of the other terminal in the file sharing group DB (step S1104).
- step S1104 the calculation unit 704 performs an evaluation value calculation process (see FIG. 12) for calculating the evaluation value V W (step S1105). Then, the assignment unit 703 performs a write assignment process (see FIG. 13) for assigning the write process to the terminal (step S1106).
- step S1106 the terminal 201-k determines whether or not the file writing process is completed (step S1107).
- Completing the file writing process means that the terminal 201-k acquires information for notifying the completion of the file writing process from another terminal to which the file writing process is assigned. Further, when the own terminal is assigned the writing process, the completion of the writing process means that the terminal 201-k has completed the writing of the divided data to each storage from all other terminals. Is to get.
- step S1107 when the file writing process is completed (step S1107: Yes), the terminal 201-k ends the series of processes according to this flowchart. If the file writing process has not been completed (step S1107: No), the terminal 201-k determines whether an abnormality has been detected (step S1108). For example, the terminal 201-k detects, as an abnormality, a case where the portable storage is removed while writing divided data divided from a file to be shared.
- step S1109 the terminal 201-k executes error processing (step S1109), and ends a series of processing according to this flowchart.
- Executing error processing means, for example, that the terminal 201-k writes error information as a log or displays that an error has occurred.
- step S1108 when no abnormality is detected (step S1108: No), the determination unit 705 determines whether the predicted communication speed tf is lower than a predetermined threshold D (step S1110). When the predicted communication speed tf is not lower than the predetermined threshold D (step S1110: No), the terminal 201-k proceeds to step S1107.
- step S1110 when the predicted communication speed tf is lower than the predetermined threshold D (step S1110: Yes), the terminal 201-k writes a file to be shared to the storage of the terminal (step S1111), and the sequence according to this flowchart. Terminate the process.
- the file to be shared written in step S1111 is assumed to be subjected to a new file writing process when the communication speed tn exceeds the threshold value D.
- FIG. 12 is a flowchart of an example of an evaluation value calculation process procedure of the terminal according to the second embodiment.
- the terminal 201-k extracts values of various parameters from the file sharing group DB (step S1201).
- step S1201 the calculation unit 704 calculates a completion time (step S1202). In that case, formulas such as the above formula (1) and the above formula (2) are used. Thereafter, the evaluation value V W is calculated by the calculation unit 704 (step S1203), and a series of processes according to this flowchart is terminated. In step S1203, equations such as the above equations (3) to (5) are used.
- FIG. 13 is a flowchart of an example of a write allocation process procedure of the terminal according to the second embodiment.
- the terminal 201-k refers to the evaluation value V W calculated in the evaluation value calculation process (step S1301).
- the selection unit 702 selects a terminal that executes the writing process (step S1302).
- the selection unit 702 selects the terminal having the highest evaluation value V W as the terminal that executes the writing process.
- the terminal 201-k determines whether or not the terminal selected in step S1302 is its own terminal (step S1303). Here, if it is the own terminal (step S1303: Yes), the terminal 201-k starts execution of the writing process (step S1304), and ends the series of processes according to this flowchart. At that time, specifically, the terminal 201-k divides the file to be shared, and encrypts the divided data divided from the file to be shared by the Crypt Engine 503. Then, the terminal 201-k writes the encrypted divided data to the storage of the terminal 201-k and transmits the divided data divided from the file to be shared to another terminal.
- step S1302 When the terminal selected in step S1302 is another terminal (step S1303: No), the allocation unit 703 transmits a write request to the selected terminal (step S1305), and performs a series of processes according to this flowchart. finish.
- the allocation of the file writing process is based on the remaining battery level B of each terminal sharing the file and the completion time C W of the file writing process.
- the destination terminal can be selected.
- the terminal that executes the file writing process can be selected by comprehensively evaluating the remaining battery capacity B, the processing performance, and the communication status between the terminals.
- the terminal can be selected as the destination terminal. As a result, it is possible to prevent the battery from running out during execution of the file writing process and to shorten the processing time of the file writing process.
- the terminal 201-k when the predicted communication speed tf between the own terminal and the other terminal is lower than the predetermined threshold D, the file writing process is not performed, so that It is possible to prevent communication from being interrupted during transfer. If the communication between the own terminal and the other terminal is interrupted while transferring the divided data divided from the file to be shared from the own terminal to the other terminal, the divided data being transmitted may be lost. is there. Therefore, as described above, the loss of the divided data can be prevented by preventing the communication from being interrupted during the transmission of the divided data.
- the terminal 201-k when the terminal 201-k receives a file write request from the user, the terminal 201-k writes the file based on the remaining battery level B of each terminal and the completion time C W of the file write process.
- the present invention is not limited to this.
- the terminal 201-k may select a terminal that performs a file writing process based on the remaining battery level B of each terminal.
- a terminal that has a low possibility of running out of the battery during execution of the file writing process can be selected as a terminal to which the writing process is assigned. As a result, it is possible to prevent the battery from running out during execution of the file writing process.
- the terminal 201-k when the terminal 201-k receives a write request from the user, the terminal 201-k selects a terminal that executes the file writing process based on the completion time C W of the file writing process. May be. In that case, a terminal whose completion time C W required to complete the writing process is as short as possible can be selected as a terminal to which the writing process is assigned. As a result, the processing time of the file writing process can be shortened.
- Embodiment 3 Example of file sharing system
- a file reading process is performed as a sharing process of a file to be shared
- the file reading process is to collect divided data distributed in a distributed manner and restore it to a file to be shared.
- description is abbreviate
- Each terminal 201-k has a restoration speed for restoring divided data divided from a file to be shared when performing a process of reading a file to be shared, a storage reading speed of each terminal 201-k, and the like. Is set.
- the terminal 201-k performs the following processing from the setting of the file sharing group until the file sharing termination request is received from the user and the file sharing is terminated.
- the terminal 201-k acquires values of various parameters used to calculate the evaluation values of the terminals 201-1 to 201-m and registers them in a file sharing group DB (Date Base).
- the evaluation value serves as an index when selecting a terminal to which a file read process is assigned.
- the various parameters include, for example, the communication speed tn between the terminal 201-k and other terminals, the remaining battery charge B of the terminals 201-1 to 201-m, and the storage of the terminals 201-1 to 201-m. For example, reading speed.
- the file sharing group DB A detailed description of the file sharing group DB will be described later with reference to FIG.
- the terminal 201-k calculates an evaluation value from the values of various parameters registered in the file sharing group DB, and has the highest evaluation value.
- the terminal is selected as a terminal to which the reading process is assigned. Then, the terminal 201-k assigns a file reading process to the selected terminal.
- Allocating the file reading process is to execute the file reading process. For example, when the evaluation value of the terminal 201-1 that has received the read request for the file is the highest, the terminal 201-1 executes the reading process. On the other hand, when the evaluation value of the terminal different from the terminal 201-1 that has received the read request for the file is the highest, the terminal 201-1 transmits a processing request for the file reading process to the terminal with the highest evaluation value. To do. The terminal that has received the processing request executes a file reading process.
- the completion time of the file reading process is the time taken from the time when the reading request is received from the user until the completion of the file reading process.
- terminal 201-1 receives a read request from a user will be described as an example.
- terminal 201-1 that has received a read request for the file 301 to be shared from the user executes the file read process (here, “terminal 201- A calculation example of “completion time C R of 1”) will be described.
- completion time C R of the terminal 201-1, the read time C11, the readout time C12, the readout time C13, and recovery time C14, is calculated from.
- the read time C11 is a time required for the terminal 201-1 to read the divided data 301a from the storage of the terminal 201-1.
- the reading time C12 is a time taken for the terminal 201-2 to read the divided data 301b from the storage of the terminal 201-2 and a time taken for the divided data 301b to be transferred from the terminal 201-2 to the terminal 201-1. And the total time. That is, the read time C12 is the time required for the divided data 301b to be read from the terminal 201-2 and transferred from the terminal 201-2 to the terminal 201-1.
- the read time C13 is a time required for the terminal 201-3 to read the divided data 301c from the storage of the terminal 201-3, and a time required for the divided data 301c to be transferred from the terminal 201-3 to the terminal 201-1. And the total time. That is, the read time C13 is a time required for the divided data 301c to be read from the terminal 201-3 and transferred from the terminal 201-3 to the terminal 201-1.
- the restoration time C14 is a time taken to restore the divided data 301a to 301c collected by the terminal 201-1 to the file 301 to be shared.
- the completion time of the read process (here, A calculation example of “the completion time C R of the terminal 201-2” will be described.
- the read time C15 is a time taken for the terminal 201-2 to read the divided data 301b from the storage of the terminal 201-2.
- the read time C16 is a time required for the terminal 201-1 to read the divided data 301a from the storage of the terminal 201-1 and a time required for the divided data 301a to be transferred from the terminal 201-1 to the terminal 201-2. And the total time. That is, the read time C16 is the time required for the divided data 301a to be read from the terminal 201-1 and transferred from the terminal 201-1 to the terminal 201-2.
- the reading time C17 is a time taken for the terminal 201-3 to read the divided data 301c from the storage of the terminal 201-3 and a time taken for the divided data 301c to be transferred from the terminal 201-3 to the terminal 201-2. And the total time. That is, the read time C17 is the time required for the divided data 301c to be read from the terminal 201-3 and transferred from the terminal 201-3 to the terminal 201-2.
- the restoration time C18 is a time taken to restore the divided data 301a to 301c collected by the terminal 201-2 to the file 301 to be shared.
- the transfer time C19 is a time required for transferring the file 301 to be shared restored by the terminal 201-2 from the terminal 201-2 to the terminal 201-1.
- the terminal 201-1 determines the maximum total time among the total time of the total time A4 and the transfer time C19, the total time of the total time A5 and the transfer time C19, and the total time of the total time A6 and the transfer time C19. the calculated as completion time C R of the terminal 201-2.
- the file sharing group DB 1600 of the terminal 201-1 will be described as an example.
- FIG. 16 is an explanatory diagram of an example of the contents stored in the file sharing group DB.
- the file sharing group DB 1600 possessed by the terminal 201-1 has fields of terminal name T, restoration speed P, number of storages N, reading speed S R , remaining battery charge B, communication speed tn, and unit reading time Read. .
- terminal characteristic data 1601-1 to 1601-m are stored as records.
- a record for the terminal 201-1 having the file sharing group DB 1600 is stored as the first terminal characteristic data 1601-1. Records for other terminals are stored as second and subsequent terminal characteristic data 1601-2 to 1601-m.
- the terminals 201-1 to 201-3 are file sharing groups.
- the restoration speed P is a data size to be restored per unit time when restoring divided data divided from a file to be shared, and the unit is [MB / s].
- the restoration speed P is determined by the CPU performance of the terminals 201-1 to 201-3.
- the restoration speed P corresponding to the terminal name T is expressed as “restoration speed P T ”.
- the restoration speed P X indicates the restoration speed P of the terminal 201-1 whose terminal name T is “X”.
- the reading speed S R is the data size read per unit time when reading the divided data divided from the file to be shared from the storage, and the unit is [MB / s].
- the reading speed S R is registered for each storage according to whether the storage is attached or detached.
- the reading speed S R corresponding to the terminal name T is expressed as “reading speed S RT ”.
- the reading speed S Rx indicates the reading speed S R of the terminal 201-1 whose terminal name T is “X”.
- the reading speed S R corresponding to the i-th storage in each terminal is referred to as “reading speed S Ri ”.
- the reading speed S R1 indicates the reading speed S R of the first storage.
- the reading speed S RX1 indicates the reading speed S R in the first storage of the terminal 201-1 whose terminal name T is “X”.
- the internal storage is the first storage
- the portable storage is the second and subsequent storages.
- the unit read time Read indicates the read processing time per unit data size for each terminal, and the unit is [ms / MB].
- the read processing time is the time from when each terminal starts executing the read processing until it is completed.
- the divided processing is performed by collecting divided data that is distributed and being shared from the collected divided data. This is the time it takes to complete the file restoration.
- by multiplying the unit read time Read by the data size of the file to be shared it is possible to calculate the time taken from the start of the reading process of the file to be shared by the corresponding terminal to completion. It is.
- the unit reading time Read corresponding to the own terminal is calculated and registered every predetermined period.
- the unit reading time Read corresponding to the other terminal is acquired from the other terminal and registered when a reading request is received from the user.
- the unit reading time Read corresponding to the terminal name T is expressed as “unit reading time Read T ”.
- the unit reading time Read X indicates the unit reading time Read of the terminal 201-1 whose terminal name T is “X”.
- the terminal name T is “Y”
- the restoration speed P Y 150 [MB / s]
- the number of storages N Y 2 [pieces]
- the reading speed S RY1 40 [MB / s]
- reading speed S RY2 30 [MB / s]
- remaining battery power B Y 75 [%]
- communication speed tn XY 10 [MB / s]
- Read Y 61 [ ms / MB] is stored.
- the selection unit 702 selects a terminal that performs a file reading process from the terminals 201-1 to 201-m. Specifically, for example, the selection unit 702 selects a terminal with the largest remaining battery level B acquired by the acquisition unit 701 as the terminal that performs file reading processing, or the remaining battery level B is equal to or greater than a predetermined value. Select one of the terminals.
- the selection unit 702 can select, from the terminals 201-1 to 201-m, the terminal that has the lowest possibility of running out of the battery during the file reading process as the terminal that performs the file reading process. .
- the assigning unit 703 assigns a file reading process to the terminal selected by the selecting unit 702. Specifically, for example, when the own terminal is selected, the assigning unit 703 assigns the file reading process to the own terminal. As a result, the terminal 201-k executes a file reading process. When another terminal is selected, assignment section 703 transmits a processing request for file read processing to the other terminal. As a result, the terminal that has received the processing request executes a file reading process.
- the acquisition unit 701 acquires information for calculating the completion time of the file reading process.
- the completion time of the file reading process includes the collection time for collecting distributed data distributed from a plurality of terminals, the restoration time for restoring a file to be shared from the divided data, and the file reading process. And a transfer time during which the file is transferred from the terminal executing. Collecting the divided data means that the divided data is read from the storage of each terminal, and the read divided data is transferred from each terminal to the terminal that executes the reading process.
- the information for calculating the completion time includes, for example, the data size of the file to be shared, the restoration speed P for each terminal of the file to be shared, the reading speed S Ri of the divided data with respect to the storage for each terminal, The communication speed tn between the own terminal and another terminal.
- the acquisition unit 701 acquires the data restoration speed P of the terminal itself from the file sharing group DB (for example, see FIG. 16).
- the data restoration speed P of the terminal itself is set in advance at the time of manufacture and registered in the file sharing group DB, for example.
- the acquisition unit 701 when the acquisition unit 701 starts sharing of a file, the acquisition speed 701 of the other terminal is acquired from the other terminal.
- the acquisition unit 701 reads data of a minute size (for example, several bits) from the storage of the own terminal, and measures the time from the start of reading the data to the completion of the own terminal.
- the reading speed S Ri is acquired.
- the acquired reading speed S Ri of the terminal is registered in the file sharing group DB, for example.
- the acquisition unit 701 acquires the reading speed S Ri of the other terminal from the other terminal.
- the acquired reading speed S Ri of the other terminal is registered in the file sharing group DB, for example.
- the reading speed S Ri of the own terminal and other terminals is acquired each time the storage of the own terminal and other terminals is detached.
- Calculator 704 based on the information acquired by the acquiring unit 701, calculates the completion time C R of the read process of the file by each terminal. Specifically, for example, calculation unit 704, by using the acquired information and a predetermined equation by the acquiring unit 701, calculates the completion time C R of the read process of the file by each terminal.
- the completion time C RXY is a completion time C R when a terminal whose terminal name T is “X” accepts a file read request from a user and a terminal whose terminal name T is “Y” executes a reading process. Show.
- completion time C R calculated by the calculating unit 704. More specifically, for example, the calculation unit 704 calculates the completion time C RXX when the terminal X that has received the read request from the user assigns the read process to the own terminal, using the following equation (6). Can do.
- S RXi is a parameter indicating the read speed S R of the i-th storage of the terminal X.
- S RYi is a parameter indicating the reading speed S R of the i-th storage of the terminal Y.
- S RZi is a parameter indicating the reading speed S R of the i-th storage of the terminal Z.
- the calculation unit 704 calculates the completion time C RXX when the terminal X that has received the file read request from the user performs the reading process by substituting the values of the various parameters described above into the above equation (6). be able to.
- Each element in parentheses in the first line of the above formula (6) executes the reading process after the time to read the distributed data distributed from the own terminal and the reading from the storage of each other terminal Time until transfer of divided data to the terminal to be completed is completed. Since the reading of the divided data and the transfer to the terminal executing the reading process are performed in parallel for each terminal, the processing time of the processing with the longest processing time is calculated by taking the maximum value in the parentheses. .
- the second element indicates a time for restoring the file to be shared from the collected divided data.
- the formula in which the formula on the first row is enclosed by F is the formula on the second row, and the formula in which the parentheses in the formula on the second row are replaced with the unit read time Read X is the third row. It is an expression. According to the above equation (6), the terminal X that has received the read request from the user collects the divided data and completes the restoration of the file to be shared from the collected divided data. C RXX can be calculated.
- the completion time C R when the terminal that has received a read request from the user to perform the reading process.
- the completion time CRYY when the terminal Y that has received a read request from the user executes the read process, the values of various parameters are substituted by the terminal Y into the formula in which X and Y in the above formula (6) are interchanged. Is calculated.
- the calculation unit 704 can calculate the completion time CRXY when the terminal X that has received a read request from the user assigns a file read process to the terminal Y using the following equation (7). .
- the calculation unit 704 can calculate the completion time C RXY by substituting the values of F, tn XY , and Read Y into the above equation (7).
- the first element in the expression in the first row of the above expression (7) is the completion time CRYY that is required from the start of the reading process by the terminal Y, and the second element is restored. This is the time for transferring the file to be shared from the terminal Y to the terminal X.
- the second element of the expression in the second row of the above expression (7) is obtained by decomposing the completion time CRYY according to the above expression (6).
- the completion time C R when the different terminal executes the read processing from the terminal that has received the read process from the user .
- the completion time C RYZ when the terminal Z different from the terminal Y that has received the read request from the user executes the reading process is an expression in which X and Y in the above equation (7) are exchanged and Y and Z are exchanged. The values of various parameters are substituted by the terminal Y.
- the selection unit 702 may select a terminal that performs a file reading process based on the calculation result by the calculation unit 704. Specifically, for example, the selection unit 702, completion time C R of the read processing of the calculated file the shortest terminal, selects a terminal for reading processing of the file. More specifically, for example, the selection unit 702, when the terminal X has accepted the read request file from the user, the completion time C RXX, and completion time C RXY, and completion time C Rxz, the shortest among the The terminal corresponding to the completion time is selected as the terminal to which the reading process is assigned.
- the selection unit 702 from among the terminals 201-1 ⁇ 201-m, the shortest terminal completion time C R of the read process of the file can be selected as terminal for reading processing of the file.
- the calculation unit 704 based on the completion time C R of the read process of the battery remaining amount B and the file, the evaluation value indicative of the time of selecting a terminal to be the allocation destination of the reading processing of the file (hereinafter, " Evaluation value V R ”) may be calculated.
- the evaluation value V R of the terminal X when the terminal X receives a read request from the user is expressed as “V RXX ”.
- the evaluation value V R of the terminal Y when the terminal X receives a read request from the user is expressed as “V RXY ”.
- the evaluation value V R calculated by the calculation unit 704 will be described using a file sharing group corresponding to the file sharing group DB 1600 illustrated in FIG. 16 as an example. Specifically, for example, the terminal when the calculation unit 704 receives a read request from the user using any one of the expressions (3) to (5) in which W is replaced with R. An evaluation value V RXX of X can be calculated.
- the calculation unit 704 substitutes the values of B X and C RXX into any of the equations in which W in the above equations (3) to (5) is replaced with R, whereby the terminal X issues a read request from the user.
- the evaluation value V RXX of the terminal X can be calculated. Also in the above formulas (3) to (5) any of the formulas W was replaced by R a, the more the battery remaining amount B, also completion time C as R is short, so that a high evaluation value V R is calculated It has become.
- the evaluation value V R can be calculated by using a formula similar to the formula in which W in the formulas (3) to (5) is replaced with R.
- the evaluation value V RXY terminal Y when the terminal X has accepted the read request file the expression of B X a W was replaced by R in the formula (3) to (5) and B Y, C RXX Can be calculated by using an expression where C RXY is used.
- the selection unit 702 may select a terminal that performs a file reading process from the terminals 201-1 to 201-m based on the evaluation value V R calculated by the calculation unit 704. Specifically, for example, selection unit 702, the highest terminal evaluation value V R calculated by the calculating unit 704 is selected as terminal for reading processing of the file.
- the selection unit 702 from among the terminals 201-1 ⁇ 201-m, a possibility that the battery runs out while reading processing of the file is as low as possible, completion time C R of the read processing of the file is as short as possible terminals, It can be selected as a terminal that performs file reading processing.
- FIG. 17 is a flowchart of an example of a file sharing setting process procedure of the terminal according to the third embodiment.
- the file sharing setting process is a process executed by the CPU 501.
- the terminal 201-k first determines whether a file sharing start request has been received from the user (step S1701). If not received (step S1701: No), the terminal 201-k waits until it is received.
- step S1701 If a file sharing start request is received from the user in step S1701 (step S1701: Yes), the acquisition unit 701 acquires values of various parameters (step S1702).
- the various parameters are static parameters, for example, a restoration speed P and a reading speed S R in another terminal. Then, the terminal 201-k registers the acquired values of various parameters in the file sharing group DB of the terminal 201-k (step S1703).
- the terminal 201-k determines whether or not a file sharing end request has been received from the user (step S1704). If a file sharing termination request has not been received from the user (step S1704: NO), the acquisition unit 701 executes communication speed collection processing (see FIG. 9) (step S1705).
- the acquisition unit 701 acquires the remaining battery charge B of the terminal 201-k from the PMU 507 (step S1706). Then, the terminal 201-k registers the acquired battery remaining amount B of its own terminal in the file sharing group DB (step S1707). Then, the terminal 201-k determines whether or not a portable storage change notification indicating that the insertion or removal of the portable storage has been detected is received from another terminal (step S1708). If the terminal 201-k has not received the change notification of the portable storage (step S1708: No), the terminal 201-k proceeds to step S1710.
- step S1708 when the portable storage change notification is received (step S1708: Yes), the terminal 201-k registers the change contents in the file sharing group DB (step S1709). Specifically, the terminal 201-k updates and registers the storage read speed at which insertion / extraction is detected. Thereafter, the calculation unit 704 calculates the unit read time Read of the terminal itself (step S1710).
- the terminal 201-k registers the calculated unit reading time Read of its own terminal in the file sharing group DB (step S1711), and proceeds to step S1704. If the terminal 201-k receives a file sharing end request from the user (step S1704: YES), the terminal 201-k ends the series of processes according to the flowchart.
- FIG. 18 is a flowchart of an example of a storage insertion / extraction detection processing procedure of the terminal according to the third embodiment.
- the storage insertion / removal detection process is a process executed by the CPU 501.
- the terminal 201-k determines whether or not insertion / removal of a portable storage has been detected (step S1801), and if not detected (step S1801: No), waits until detection.
- step S1801 when the insertion / extraction of the portable storage is detected (step S1801: Yes), the terminal 201-k determines whether the portable storage is available (step S1802). Thereby, the terminal 201-k determines whether or not a portable storage is attached.
- step S1802 if the portable storage is not available (step S1802: No), the process proceeds to step S1804. If the portable storage is available (step S1802: Yes), the acquisition unit 701 measures the portable storage read speed S Ri (step S1803).
- the terminal 201-k updates the file sharing group DB (step S1804). At this time, if the portable storage is available in step S1802, the terminal 201-k updates the reading speed S Ri measured in step S1803 to the file sharing group DB. If the portable storage is not available in step S1802, the terminal 201-k deletes the reading speed S Ri corresponding to the portable storage from the file sharing group DB.
- the terminal 201-k notifies the other terminal of the change in the portable storage by transmitting a portable storage change notification including information on the reading speed S Ri corresponding to the portable storage (step S1805). ), A series of processes according to this flowchart is terminated.
- FIG. 19 is a flowchart of an example of a read request receiving process procedure of the terminal according to the third embodiment.
- the read request acceptance process is a process executed by the CPU 501.
- the terminal 201-k determines whether or not a read request for a file to be shared has been received from the user (step S1901). stand by.
- step S1901 when a read request for a file to be shared is received from the user (step S1901: Yes), the acquisition unit 701 acquires the unit read time Read and the remaining battery charge B of the other terminal (step S1902). Thereafter, the terminal 201-k registers the acquired unit reading time Read and remaining battery charge B of the other terminal in the file sharing group DB (step S1903).
- step S1903 the calculating unit 704, the evaluation value calculation processing for calculating the completion time C R and the evaluation value V R (see FIG. 12) (step S1904). Then, the assignment unit 703 performs a read assignment process (see FIG. 20) for assigning the read process to the terminal (step S1905).
- step S1906 the terminal 201-k determines whether the file reading process is completed. Completing the file reading process means that the terminal 201-k receives a file restored from the divided data from another terminal to which the file reading process is assigned. Further, when the own terminal is assigned the read process, the completion of the read process means that the restoration of the file to be shared from the divided data is completed.
- step S1906 when the file reading process is completed (step S1906: Yes), the terminal 201-k ends the series of processes according to this flowchart. If the file reading process has not been completed (step S1906: NO), the terminal 201-k determines whether an abnormality has been detected (step S1907). For example, the terminal 201-k detects, as an abnormality, the case where the portable storage is removed while reading the divided data divided from the file to be shared.
- step S1907 If an abnormality is detected (step S1907: YES), the terminal 201-k executes error processing (step S1908), and ends a series of processing according to this flowchart.
- step S1907 If no abnormality is detected in step S1907 (step S1907: NO), the terminal 201-k proceeds to step S1906.
- FIG. 20 is a flowchart of an example of a read allocation process procedure of the terminal according to the third embodiment.
- the terminal 201-k refers to the evaluation value V R calculated in the evaluation value calculation process (step S2001).
- the selection unit 702 selects a terminal that executes the reading process (step S2002). At that time, for example, the selection unit 702 selects the terminal having the highest evaluation value as the terminal that executes the reading process.
- the terminal 201-k determines whether or not the terminal selected in step S2002 is its own terminal (step S2003).
- step S2003 Yes
- the execution of the reading process is started (step S2004), and the series of processes according to this flowchart is ended.
- the terminal 201-k reads the divided data from the storage of each terminal, collects the read divided data, and restores the file to be shared from each collected divided data.
- step S2002 If the terminal selected in step S2002 is another terminal (step S2003: No), the assignment unit 703 transmits a read request to the selected terminal (step S2005), and ends the series of processes in this flowchart. To do.
- the terminal 201-k based on the completion time C R of the read process of the battery remaining amount B and files for each terminal to share files, and assign the read processing of the file Can be selected. That is, it is possible to select a terminal that executes a file reading process by evaluating the battery remaining amount B, processing performance, and communication status between terminals in a composite manner.
- a terminal such as completion time C R is as short as possible according to the until said read out process is completed, the allocation destination of said read out process It can be selected as a terminal. As a result, it is possible to prevent the battery from running out during the file reading process and to shorten the processing time of the file reading process.
- the terminal 201-k is the read request of the file when receiving from the user, based on the completion time C R of the read process of the battery remaining amount B and files for each terminal, the readout process
- the terminal to be executed is selected, the present invention is not limited to this.
- the terminal 201-k may select a terminal that executes a file reading process based on the remaining battery charge B of each terminal.
- a terminal with the lowest possibility of running out of the battery during the file reading process can be selected as a terminal to which the reading process is assigned. As a result, it is possible to prevent the battery from running out during the file reading process.
- terminal 201-k is, upon receiving a read request from the user, based on the completion time C R of the read processing of the file may be one for selecting a terminal to perform reading processing of the file .
- completion time C R is as short as possible according to the until reading process is completed, the terminal as the allocation destination of the reading process.
- the processing time of the file reading process can be shortened.
- the file sharing method described in the present embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation.
- the file sharing program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer.
- the file sharing program may be distributed via a network such as the Internet.
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)
Abstract
各端末は、端末(101a~101d)にてファイルを共有する。また、各端末は、ユーザからファイルの共有化処理の処理要求を受け付けた場合、端末(101a~101d)の中からファイルの共有化処理を実行する端末を選択して、該端末にファイルの共有化処理を割り当てる。その際、各端末は、端末(101a~101d)の各端末の共有化処理の完了時間と、各端末のバッテリ残量とを考慮して、各端末の評価値を算出する。ここで、評価値とは、ファイルの共有化処理の割当先となる端末を選択する際の指標となるものである。評価値は、各端末の完了時間が短いほど高くなり、各端末のバッテリ残量が多いほど高くなるように算出される。各端末は、端末(101a~101d)の中から評価値の高い端末を選択して、該端末にファイルの共有化処理を割り当てる。
Description
本発明は、ファイルを共有するファイル共有化方法および端末に関する。
従来、複数の端末にてファイルを共有する技術が開示されている。例えば、P2P(Peer to Peer)型のファイル共有システムにおいて、ファイルから分割された分割データを複数の端末がそれぞれ記憶するものがある。ファイル共有システムでは、ファイルの分割データを複数の端末に分散配置することにより、不正アクセスに対するファイルの秘匿性の確保や、個々の端末の記憶容量よりも大きなデータサイズのファイルの共有を可能にしている。
各端末は、ユーザからファイルの共有化処理の処理要求を受け付け、該処理要求に応じた共有化処理を行う。ここで、処理要求とは、例えば、ファイルの読出要求や、ファイルの書込要求である。また、共有化処理とは、例えば、ファイルから分割された複数の分割データを各端末に分散配置する書込処理や、各端末に記憶されている分割データを収集してファイルを復元させる読出処理である。
しかしながら、従来技術では、ファイルの共有化処理を完了するまでにかかる時間が増大してしまうことがあるといった問題があった。
例えば、バッテリの充電が十分でない端末が処理要求をユーザから受け付けた場合、共有化処理を完了するよりも前にバッテリが切れてしまい、共有化処理が中断されてしまうことがある。この場合、例えば、バッテリを充電したり付け替えたりしてから共有化処理を再開することになり、共有化処理を完了するまでの時間が増大してしまう。
また、例えば、他の端末よりも処理速度の遅い端末が処理要求をユーザから受け付けた場合、共有化処理を完了するまでの処理時間が、他の端末における処理時間よりも長くなってしまう場合がある。
本発明は、上述した従来技術による問題点を解消するため、ファイルの共有化処理を効率的に行うことができるファイル共有化方法および端末を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、第1端末は、前記第1端末を含む複数の端末の中から、前記複数の端末で複数のファイルを共有するための共有化処理を行う第2端末を、前記複数の端末のバッテリ残量および前記共有化処理の処理時間に基づいて選択し、前記第2端末に前記共有化処理を割り当てる。
本発明の一側面によれば、ファイルの共有化処理を効率的に行うことができるという効果を奏する。
以下に添付図面を参照して、この発明にかかるファイル共有化方法および端末の実施の形態を詳細に説明する。
(実施の形態1)
まず、実施の形態1にかかるファイル共有化方法の一実施例について説明する。図1は、実施の形態1にかかるファイル共有化方法の一実施例を示す説明図である。図1において、ファイル共有システム100は、端末101a~101dを含む。
まず、実施の形態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では、共有対象となるファイルの共有化処理として、ファイルの書込処理を行う場合を例に挙げて説明する。ファイルの書込処理とは、ファイルを複数の分割データに分割して、複数の端末に分散配置する処理である。なお、実施の形態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がユーザから書込要求を受け付けた場合を例に挙げて説明する。
つぎに、ファイル共有システム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によってそれぞれ接続されている。
図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がレコードとして記憶されている。
図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などの記憶装置に記憶される。
つぎに、実施の形態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を示すパラメータである。
すなわち、算出部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を算出することができる。
すなわち、算出部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を示すパラメータである。なお、αおよびβは所定の係数である。
すなわち、算出部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が行う処理手順の一例について説明する。
(端末201-kのファイル共有設定処理手順)
図8は、実施の形態2にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。ファイル共有設定処理は、CPU501によって実行される処理である。ファイル共有設定処理において、端末201-kは、まず、ファイル共有の開始要求をユーザから受け付けたか否かを判定し(ステップS801)、受け付けない場合(ステップS801:No)、受け付けるまで待機する。
図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)。
図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)、検出するまで待機する。
図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)、受け付けるまで待機する。
図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)。
図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の最も高い端末を、書込処理を実行する端末として選択する。
図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で説明した箇所と同一箇所については説明を省略する。
(ファイル共有システムの一例)
つぎに、実施の形態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がユーザから読出要求を受け付けた場合を例に挙げて説明する。
つぎに、ファイル共有システム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がレコードとして記憶されている。
図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が所定値以上である端末のうち一の端末を選択したりする。
つぎに、図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を示すパラメータである。
すなわち、算出部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を算出することができる。
すなわち、算出部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が行う処理手順の一例について説明する。
(端末201-kのファイル共有設定処理手順)
図17は、実施の形態3にかかる端末のファイル共有設定処理手順の一例を示すフローチャートである。ファイル共有設定処理は、CPU501によって実行される処理である。ファイル共有設定処理において、端末201-kは、まず、ファイル共有の開始要求をユーザから受け付けたか否かを判定し(ステップS1701)、受け付けない場合(ステップS1701:No)、受け付けるまで待機する。
図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)、検出するまで待機する。
図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)、受け付けるまで待機する。
図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は、評価値の最も高い端末を、読出処理を実行する端末として選択する。
図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 判定部
101a~101d 端末
200 ファイル共有システム
201-1~201-m 端末
202 ネットワーク
600,1600 ファイル共有グループDB
701 取得部
702 選択部
703 割当部
704 算出部
705 判定部
Claims (10)
- 第1端末は、前記第1端末を含む複数の端末の中から、前記複数の端末で複数のファイルを共有するための共有化処理を行う第2端末を、前記複数の端末のバッテリ残量および前記共有化処理の処理時間に基づいて選択し、
前記第2端末に前記共有化処理を割り当てること
を特徴とするファイル共有化方法。 - 前記共有化処理は、前記複数のファイルに分割する分割処理と前記複数のファイルを復元する復元処理とを含むこと
を特徴とする請求項1に記載のファイル共有化方法。 - 前記複数のファイルがアクセスされるときに前記バッテリ残量を取得すること
を特徴とする請求項1または2に記載のファイル共有化方法。 - 前記複数の端末に関するパラメータおよびバッテリ残量を前記複数の端末の共有ファイルに登録すること
を特徴とする請求項1~3のいずれか一つに記載のファイル共有化方法。 - 前記複数のファイルのサイズ、前記複数のファイルの分割処理速度、前記複数のファイルの復元処理速度、前記複数の端末に内蔵される第1ストレージからの読出速度、前記第1ストレージへの書込速度、前記複数の端末に着脱される第2ストレージからの読出速度、前記第2ストレージへの書込速度、前記複数の端末間の通信速度、または、前記複数の端末の端末数を含むパラメータに基づいて前記処理時間を計算すること
を特徴とする請求項1~4のいずれか一つに記載のファイル共有化方法。 - 前記第1端末は、前記複数のファイルへの書き込み要求に基づいて前記複数の端末間の通信速度を閾値と比較し、
前記通信速度が前記閾値よりも小さいときには前記書き込み要求に対応するデータを前記第1端末のストレージに書き込むこと
を特徴とする請求項1~5のいずれか一つに記載のファイル共有化方法。 - 前記通信速度が前記閾値以上になったときに、前記データを前記複数のファイルに反映すること
を特徴とする請求項6に記載のファイル共有化方法。 - 第1CPUと、
前記第1CPUを含む複数のCPUで共有化される複数のファイルの少なくとも一部と、を含み、
前記第1CPUは、前記複数のCPUの中から、前記複数のCPUで前記複数のファイルを共有するための共有化処理を行う第2CPUを、前記複数のCPUのうちの対応するCPUを含む複数の端末のバッテリ残量および前記複数のCPUのそれぞれの前記複数のファイルの共有化処理の処理時間に基づいて選択し、前記第2CPUに前記複数のファイルの共有化処理を割り当てること
を特徴とする端末。 - 前記複数のCPUに関するパラメータおよび前記複数のCPUのバッテリ残量を登録する取得部を含むこと
を特徴とする請求項8に記載の端末。 - 前記複数のCPUのそれぞれについて、前記複数のファイルのサイズ、前記複数のファイルの分割処理速度、前記複数のファイルの復元処理速度、前記複数の端末に内蔵される第1ストレージからの読出速度、前記第1ストレージへの書込速度、前記複数の端末に着脱される第2ストレージからの読出速度、前記第2ストレージへの書込速度、前記複数の端末間の通信速度、または前記複数の端末の数を含むパラメータに基づいて前記処理時間を計算する算出部を含むこと
を特徴とする請求項8または9に記載の端末。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013504447A JP5617995B2 (ja) | 2011-03-15 | 2011-03-15 | ファイル共有化方法および端末 |
| PCT/JP2011/056113 WO2012124064A1 (ja) | 2011-03-15 | 2011-03-15 | ファイル共有化方法および端末 |
| US14/026,481 US9729626B2 (en) | 2011-03-15 | 2013-09-13 | File sharing method and terminal |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2011/056113 WO2012124064A1 (ja) | 2011-03-15 | 2011-03-15 | ファイル共有化方法および端末 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/026,481 Continuation US9729626B2 (en) | 2011-03-15 | 2013-09-13 | File sharing method and terminal |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012124064A1 true WO2012124064A1 (ja) | 2012-09-20 |
Family
ID=46830193
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2011/056113 Ceased WO2012124064A1 (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)
| 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 (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007158478A (ja) * | 2005-11-30 | 2007-06-21 | Sharp Corp | 携帯端末装置 |
| JP2009122981A (ja) * | 2007-11-15 | 2009-06-04 | Nec Corp | キャッシュ配置方法 |
| JP2010157016A (ja) * | 2008-12-26 | 2010-07-15 | Kddi Corp | P2p配信システム及び配信方法 |
| JP2010277517A (ja) * | 2009-06-01 | 2010-12-09 | Ricoh Co Ltd | ファイル管理サーバ、ファイル管理システム、ファイル管理プログラム、及びファイル管理方法 |
Family Cites Families (5)
| 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ネットワークシステム |
| 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) |
| US8838797B2 (en) * | 2009-07-10 | 2014-09-16 | Empire Technology Development Llc | Dynamic computation allocation |
-
2011
- 2011-03-15 WO PCT/JP2011/056113 patent/WO2012124064A1/ja not_active Ceased
- 2011-03-15 JP JP2013504447A patent/JP5617995B2/ja not_active Expired - Fee Related
-
2013
- 2013-09-13 US US14/026,481 patent/US9729626B2/en not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007158478A (ja) * | 2005-11-30 | 2007-06-21 | Sharp Corp | 携帯端末装置 |
| JP2009122981A (ja) * | 2007-11-15 | 2009-06-04 | Nec Corp | キャッシュ配置方法 |
| JP2010157016A (ja) * | 2008-12-26 | 2010-07-15 | Kddi Corp | P2p配信システム及び配信方法 |
| JP2010277517A (ja) * | 2009-06-01 | 2010-12-09 | Ricoh Co Ltd | ファイル管理サーバ、ファイル管理システム、ファイル管理プログラム、及びファイル管理方法 |
Non-Patent Citations (2)
| Title |
|---|
| KIYOSHI UEDA: "IP Network Adaptive P2P Network Topology Control", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS(J92-B), 1 November 2009 (2009-11-01), pages 1750 - 1763 * |
| LU YI: "Peer group construction strategy for task allocation on P2P-Grid Environment", IEICE TECHNICAL REPORT, vol. 108, no. 359, 11 December 2008 (2008-12-11), pages 19 - 22 * |
Also Published As
| Publication number | Publication date |
|---|---|
| US20140012921A1 (en) | 2014-01-09 |
| US9729626B2 (en) | 2017-08-08 |
| JPWO2012124064A1 (ja) | 2014-07-17 |
| JP5617995B2 (ja) | 2014-11-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110515539B (zh) | 基于云存储的云磁盘挂载方法、装置、设备和存储介质 | |
| JP6130890B2 (ja) | データ同期化 | |
| EP2715539B1 (en) | Distributed computing framework | |
| CN103294580B (zh) | 实时性能监控 | |
| US8914379B2 (en) | Index constructing method, search method, device and system | |
| US20100281482A1 (en) | Application efficiency engine | |
| WO2012100037A1 (en) | Storing data on storage nodes | |
| AU2012207328A1 (en) | Storing data on storage nodes | |
| JP5617995B2 (ja) | ファイル共有化方法および端末 | |
| EP2977898A1 (en) | Task allocation in a computing environment | |
| CN111143133A (zh) | 虚拟机备份方法和备份虚拟机恢复方法 | |
| US9852050B2 (en) | Selecting computing resources | |
| JP2011123812A (ja) | 情報処理装置、リソーススケジュール方法、リソーススケジュールプログラム | |
| CN110581887B (zh) | 数据处理方法、装置、区块链节点及存储介质 | |
| CN111416825A (zh) | 线程间无锁日志管理方法和系统、终端、存储介质 | |
| Du et al. | Hawkeye: Adaptive straggler identification on heterogeneous spark cluster with reinforcement learning | |
| CN112257736A (zh) | 基于多集群的模型训练系统、方法、设备及存储介质 | |
| TW201227268A (en) | Data backup system and data backup and retrival method | |
| Krieter et al. | Following topics across all apps and media formats: Mobile keyword tracking as a privacy-friendly data source in mobile media research | |
| CN109558270A (zh) | 数据备份的方法和装置、数据还原的方法和装置 | |
| CN114860479A (zh) | 数据同步的方法、装置、计算机可读存储介质和处理器 | |
| JP5392257B2 (ja) | 情報収集装置、情報収集プログラム及び方法 | |
| Weiss et al. | A comparison of alternative client/server architectures for ubiquitous mobile sensor-based applications | |
| CN112306373A (zh) | 一种集群扩容方法、系统及电子设备和存储介质 | |
| JP2008077281A (ja) | スーパースケジューラ、処理依頼方法、およびスーパースケジューラプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11861228 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2013504447 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 11861228 Country of ref document: EP Kind code of ref document: A1 |






