[go: up one dir, main page]

WO2012035665A1 - データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法 - Google Patents

データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法 Download PDF

Info

Publication number
WO2012035665A1
WO2012035665A1 PCT/JP2010/066253 JP2010066253W WO2012035665A1 WO 2012035665 A1 WO2012035665 A1 WO 2012035665A1 JP 2010066253 W JP2010066253 W JP 2010066253W WO 2012035665 A1 WO2012035665 A1 WO 2012035665A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
data
storage device
server
section
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
Application number
PCT/JP2010/066253
Other languages
English (en)
French (fr)
Inventor
康志 栗原
浩一郎 山下
宏真 山内
鈴木 貴久
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to PCT/JP2010/066253 priority Critical patent/WO2012035665A1/ja
Priority to JP2012533826A priority patent/JP5447679B2/ja
Priority to CN201080069103.3A priority patent/CN103109277B/zh
Publication of WO2012035665A1 publication Critical patent/WO2012035665A1/ja
Priority to US13/801,433 priority patent/US9503386B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation

Definitions

  • the present invention relates to a data sharing program for sharing and distributing data, a data distribution program, a terminal, a server, a data sharing method, and a data distribution method.
  • Patent Document 2 a technique for reducing the amount of data transferred between nodes when an access to a database of another node occurs in parallel processing of a query to a parallel database in a distributed memory type computer is disclosed (for example, Patent Document 2 below). See).
  • the mobile terminal A uses the data Db possessed by the mobile terminal B when the terminal It is necessary to transmit data Db from B to terminal A.
  • the portable terminal A wants to use the data Dc that the portable terminal C has, it is necessary to transmit the data Dc from the portable terminal C to the portable terminal A.
  • the user of the portable terminal A cannot access the data Db, Dc of the portable terminals B, C from the portable terminal A even when he / she wants to use the data Db, Dc, and is unusable for data sharing. was there.
  • Such inconvenience in data sharing is caused when the portable terminal B uses the data Da held by the portable terminal A or the data Dc held by the portable terminal C, or the data Da or portable terminal B held by the portable terminal A has. The same applies to the case where the mobile terminal C uses the data Db.
  • the mobile terminals A to C can download the data Da to Dc by accessing the server via the mobile phone network.
  • the bandwidth of the base station in the mobile phone network is fixed and shared by mobile terminals connected to the base station. For this reason, as the number of mobile terminals connected to the base station increases, the bandwidth used per mobile terminal decreases. Therefore, when all the data Da to Dc are downloaded for each of the mobile terminals A to C, there is a problem that the download time becomes long.
  • each mobile terminal A to C downloads all the data Da to Dc, there is a problem that if the total data amount of the data Da to Dc is huge, it cannot be downloaded due to insufficient memory.
  • An object of the present invention is to provide a data sharing program, a terminal, and a data sharing method capable of realizing efficient data sharing among a plurality of terminals in order to solve the above-described problems caused by the prior art.
  • a data sharing program, a data distribution program, a terminal, a server, a data sharing method, and data distribution capable of efficiently downloading data for each terminal It aims to provide a method.
  • the communication band between the first terminal and the second terminal that are communicably connected in the ad hoc network is detected, and the detected communication band An operation method relating to data sharing between the data in the storage device of the first terminal and the data in the storage device of the second terminal based on the comparison result by comparing the bandwidth related to the storage device of the first terminal And determining the determined operation method from the first terminal to the second terminal, and based on the determined operation method, from the second terminal to the storage device of the first terminal.
  • a data sharing program, a terminal, and a data sharing method that execute a mount process that enables access are proposed as an example.
  • the first communication speed information between the first terminal and the server that can access the content is acquired, and the second communication speed between the second terminal and the server that are in ad hoc communication with the first terminal.
  • Information is acquired, and based on the acquired first and second communication speed information, the first downloaded in the first terminal in the download section from the download start position to the end position of the content download
  • the data in the first section specified in the content is transmitted to the first terminal, and the data from the second terminal is transmitted.
  • the data distribution program for transmitting data of the identified within said second section to said second terminal of said content server, and data distribution method is proposed as an example.
  • FIG. 5 is an explanatory diagram illustrating a detailed processing procedure of the connection process (steps S402, S403, and S407) illustrated in FIG. 4; It is explanatory drawing which shows the download screen in the master terminal A. It is explanatory drawing which shows the sequence of a download process.
  • FIG. 10 is a sequence diagram showing a detailed processing procedure of charge data download processing (steps S703, S704, and S706).
  • step S804 It is a flowchart which shows the detailed process sequence of a download area calculation process (step S804). It is explanatory drawing which shows the operation system setting sequence.
  • 11 is a flowchart showing a detailed processing procedure of the operation method determination process (step S1006) shown in FIG. It is a flowchart which shows the detailed process sequence of the operation system setting process (step S1008) in the connection origin terminal shown in FIG. It is a flowchart which shows the detailed process sequence of the operation system setting process (step S1009) in the connecting point terminal shown in FIG.
  • step S1009 in the connecting point terminal shown in FIG.
  • step S1009 shows the state which downloaded responsible data Da and Db in the terminal A and the terminal B, respectively. It is explanatory drawing which shows the state loosely coupled from the state shown in FIG.
  • FIG. 14 by using terminal A as a connection source terminal and terminal B as a connection destination terminal.
  • It is explanatory drawing (the 1) which shows the data access after the loose coupling setting by FIG.
  • the 2 which shows the data access after the loose coupling setting by FIG.
  • FIG. 19 is an explanatory diagram illustrating a state in which the terminal A is a connection source terminal and the terminal B is a connection destination terminal from the state illustrated in FIG. 18.
  • the 2 which shows the data access after the tight coupling setting by FIG.
  • FIG. 23 is a sequence diagram (part 1) showing a detailed processing procedure of the inter-terminal data access processing (step S2208) shown in FIG. 22;
  • FIG. 23 is a sequence diagram (part 2) illustrating a detailed processing procedure of the inter-terminal data access processing (step S2208) illustrated in FIG. 22;
  • FIG. 10 is a sequence diagram showing a detailed processing procedure of charge data download processing (steps S703, S704, and S706). It is a flowchart which shows the detailed process sequence of the download area calculation process (step S2505) shown in FIG.
  • FIG. 10 is a sequence diagram showing a detailed processing procedure of charge data download processing (steps S703, S704, and S706).
  • FIG. 10 is a sequence diagram showing a detailed processing procedure of charge data download processing (steps S703, S704, and S706).
  • step S2905 is a flowchart showing a detailed processing procedure of download section calculation processing (step S2905) shown in FIG. 29.
  • FIG. 1 is an explanatory diagram showing a system configuration example of a data sharing system according to an embodiment of the present invention.
  • a plurality of (for example, three) terminals A to C are connected to a server 102 via a base station 101 and a network 103 so as to be able to communicate with each other.
  • Terminals A to C are portable computers capable of wireless communication, such as mobile phones, smartphones, electronic dictionaries, tablet terminals, and portable game machines.
  • each of the terminals A to C accesses the server 102 via the base station 101 and the mobile phone network when the server 102 is in the mobile phone network in the network 103.
  • each of the terminals A to C accesses the server 102 via the base station 101, the mobile phone network, and the Internet network.
  • Each terminal A to C can perform ad hoc communication between terminals.
  • Each terminal A to C can also acquire current position information by receiving a signal from the GPS satellite 104.
  • the server 102 stores data D such as video, games, and maps, and downloads it to the terminal that requested the download in response to a download request from the terminals A to C.
  • the server 102 executes download request reception processing and data storage and download processing.
  • the download request reception processing and data storage and download processing are performed by different servers 102. May be executed.
  • the first server that executes the download request receiving process transmits the received download request to the second server that stores and downloads the data D.
  • the second server identifies the download request source and the data to be downloaded based on the received download request, and downloads the data to the download request source terminal.
  • each of the terminals A to C downloads data D from the server 102 in a divided manner.
  • the divided data downloaded by each terminal A to C is referred to as responsible data.
  • the assigned data Da to Dc are different data.
  • Each terminal A to C can access data in charge of another terminal that has not been downloaded by the own terminal in the data D by ad hoc communication.
  • the terminal A can access the assigned data Db and Dc by ad hoc communication.
  • the terminals A to C are connected to each other by ad hoc communication, the responsible data stored in the other terminals can be accessed from the own terminal. Further, since each terminal A to C does not need to download all the data Da to Dc, the download time can be shortened, and the shortage of memory can be reduced.
  • FIG. 2 is a block diagram illustrating a hardware configuration example of the server 102.
  • the server 102 includes a CPU (Central Processing Unit) 201, a ROM (Read Only Memory) 202, a RAM (Random Access Memory) 203, a magnetic disk drive 204, a magnetic disk 205, an optical disk drive 206, and the like.
  • Each component is connected by a bus 200.
  • the CPU 201 governs overall control of the server 102.
  • the ROM 202 stores a program such as a boot program.
  • the RAM 203 is used as a work area for the CPU 201.
  • the magnetic disk drive 204 controls reading / writing of data with respect to the magnetic disk 205 according to the control of the CPU 201.
  • the magnetic disk 205 stores data written under the control of the magnetic disk drive 204.
  • the optical disc drive 206 controls reading / writing of data with respect to the optical disc 207 according to the control of the CPU 201.
  • the optical disk 207 stores data written under the control of the optical disk drive 206, or causes the computer to read data stored on the optical disk 207.
  • the display 208 displays data such as a document, an image, and function information as well as a cursor, an icon, or a tool box.
  • a CRT a CRT
  • a TFT liquid crystal display a plasma display, or the like can be adopted.
  • I / F An interface 209 is connected to a network 214 such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet through a communication line, and others are connected via this network 214. Connected to other devices.
  • the I / F 209 controls an internal interface with the network 214 and controls data input / output from an external device.
  • a modem or a LAN adapter may be employed as the I / F 209.
  • the keyboard 210 includes keys for inputting characters, numbers, various instructions, and the like, and inputs data. Moreover, a touch panel type input pad or a numeric keypad may be used.
  • the mouse 211 performs cursor movement, range selection, window movement, size change, and the like. A trackball or a joystick may be used as long as they have the same function as a pointing device.
  • the scanner 212 optically reads an image and takes in the image data into the server 102.
  • the scanner 212 may have an OCR (Optical Character Reader) function.
  • OCR Optical Character Reader
  • the printer 213 prints image data and document data.
  • a laser printer or an ink jet printer can be employed as the printer 213, for example, a laser printer or an ink jet printer can be employed.
  • FIG. 3 is a block diagram illustrating a hardware configuration example of the terminal.
  • terminals A to C include a processor 301, a memory 302, a storage 303, a display device 304, an input device 305, a GPS receiver 306, a communication I / F 307, and a plurality (two in FIG. 3). ) Communication module 308. Each component is connected by a bus 309.
  • the processor 301 controls the entire terminal.
  • the memory 302 is a main storage device used as a work area for the CPU 201.
  • a volatile memory or a nonvolatile memory can be adopted.
  • the storage 303 is an auxiliary storage device that stores an OS, applications, other programs, various data, and a file system.
  • a nonvolatile memory or a hard disk can be employed.
  • the display device 304 is a display that displays data such as a document, an image, and function information as well as a cursor, an icon, or a tool box.
  • the input device 305 inputs characters, numbers, various instructions, and the like by user operations.
  • a keyboard, a numeric keypad, a touch panel, or the like is employed as the input device 305.
  • the GPS receiver 306 receives a signal from the GPS satellite 104 and acquires current position information of the terminal itself.
  • the communication I / F 307 is an interface that is connected to the mobile phone network via the base station 101, and is communicably connected to the server 102 via the network 103 shown in FIG.
  • the communication module 308 is an interface that performs ad hoc communication with other terminals. In FIG. 3, since two are prepared as an example, ad hoc communication can be performed simultaneously with a maximum of two terminals.
  • the number of communication modules 308 may be three or more.
  • a terminal among a plurality of terminals sharing data makes a master declaration.
  • the terminal (master terminal) that has made the master declaration performs connection processing for ad hoc communication with each other terminal. Since the ad hoc communication connection processing is not completed between the remaining terminals excluding the master terminal, the ad hoc communication connection processing is performed between the remaining terminals in accordance with an instruction from the master terminal.
  • FIG. 4 is an explanatory diagram showing a sequence of connection processing for ad hoc communication.
  • terminal A is used as a master terminal as an example, but terminal B or terminal C may be a master terminal.
  • terminal A performs master declaration processing (step S401).
  • Terminal A master terminal A
  • terminal A which has become the master terminal by the master declaration process, executes a connection process with terminals B and C (steps S402 and S403). Details of the connection processing with terminals B and C (steps S402 and S403) will be described later.
  • a group is a group of terminals that share data.
  • the master terminal A and the master terminal A are terminals B and C in which ad hoc communication connection processing has been completed.
  • the master terminal A identifies the connection destination terminals B and C by the connection process.
  • This specification is for causing the ad hoc communication connection process to be executed between the terminals B and C of the connection destination. Thereafter, the master terminal A notifies the terminal B of the connection destination terminals B and C of the connection instruction for the ad hoc communication with the terminal C (step S405).
  • the terminal B that has received the notification of the connection instruction specifies the connection request destination (step S406).
  • the terminal B executes a connection process with the terminal C (step S407). Details of this connection process (step S407) will also be described later.
  • terminal D (not shown) is specified as an intra-group terminal
  • the connection request destination terminals in S406 are terminals C and D
  • terminal B is connected to terminal C
  • the connection process is executed.
  • the terminal A notifies the connection instruction also to the terminal C (step S405)
  • the terminal C specifies the request destination (step S406) and specifies the terminal D as the connection request destination.
  • the terminal C will perform a connection process with the terminal D (step S407).
  • the terminal B When the terminal B completes the connection process with the terminal C, the terminal B transmits a completion notification to the master terminal A (step S408).
  • the master terminal A sets the terminal ID of the terminal in the group (step S409).
  • the terminal ID is unique identification information assigned to the terminal in the group. For example, the terminal ID of the master terminal A is 0, the terminal B is 1, the terminal C is 2, and so on.
  • the master terminal A transmits the terminal ID and the total number of terminals to the terminals B and C by ad hoc communication (step S410).
  • the total number of terminals is the total number of terminals in the group. In this case, since the terminals are A to C, the total number of terminals is 3. Therefore, terminal ID 1 and terminal total number 3 are transmitted to terminal B. Also, terminal ID: 2 and total number of terminals: 3 are transmitted to terminal C.
  • FIG. 5 is an explanatory diagram showing a detailed processing procedure of the connection processing (steps S402, S403, and S407) shown in FIG.
  • a terminal that requests connection is a “request source terminal”, and a terminal that is a connection request destination is a “request destination terminal”. Therefore, in step S402, the request source terminal is the master terminal A and the request destination terminal is the terminal B.
  • the request source terminal is the master terminal A, and the request destination terminal is the terminal C.
  • the request source terminal is the terminal B and the request destination terminal is the terminal C.
  • the request source terminal transmits a connection request to the request destination terminal (step S501).
  • the master declaration process (step S401) of the master terminal A serves as a connection request trigger.
  • the request destination identification (step S406) is a trigger for the connection request.
  • the request destination terminal When the request destination terminal receives the connection request, it executes response processing (step S502). Then, the request destination terminal transmits an ad hoc communication connection permission / denial notification to the request source terminal.
  • the request source terminal receives the connection permission / disapproval notification from the request destination terminal, and determines whether the ad hoc communication connection is permitted or not (step S503). If it is permitted (step S503: Yes), the session is established (step S504), and ad hoc communication is possible between the connection source terminal and the connection destination terminal. On the other hand, if it is not permitted (step S503: No), the session is not established. In this case, the same request destination terminal is retried, or the request destination terminal is changed to retry.
  • the download process at each terminal will be described.
  • the target data is downloaded by dividing the total number of terminals.
  • Data downloaded at each terminal is referred to as “data in charge”.
  • the data to be downloaded is determined by the master terminal A accessing the server 102.
  • FIG. 6 is an explanatory diagram showing a download screen on the master terminal A.
  • A is a screen for designating the genre of the content to be downloaded. Here, for example, it is assumed that “movie” is selected.
  • B is a transition screen when “movie” is selected in (A).
  • ovie the next content to be downloaded is selected from various contents. Here, as an example, it is assumed that “77 people's bags” is selected.
  • the download screen changes to (C).
  • (C) data in charge of the master terminal A is downloaded.
  • the process proceeds to (D).
  • the URL at which the content “77 people's bag” designated in (B) is stored is notified from the master terminal A, and the content “77 people's bag” is stored. The data in charge will be downloaded.
  • FIG. 7 is an explanatory diagram showing a download process sequence.
  • the master terminal A accesses the server 102 and acquires the URL of the file (target file) relating to the selected content as shown in FIG. 6B (step S701).
  • the master terminal A notifies the acquired URL to the terminals B and C by ad hoc communication (step S702). Thereafter, the master terminal A accesses the server 102 and executes a process of downloading data in charge of the master terminal A (step S703).
  • the terminal B that has received the notification of the URL in step S702 accesses the server 102 and executes the process of downloading the data in charge of the terminal B (step S704). Then, after the download is completed, terminal B transmits a notification of completion of download of the assigned data to master terminal A (step S705).
  • the terminal C that has received the notification of the URL in step S702 accesses the server 102 and executes a process for downloading the data in charge of the terminal C (step S706). Then, after the download is completed, the terminal C transmits a notification of completion of download of the assigned data to the master terminal A (step S707).
  • FIG. 8 is a sequence diagram showing the detailed processing procedure of the charge data download processing (steps S703, S704, and S706).
  • a terminal that accesses the server 102 and downloads responsible data is referred to as a “responsible terminal”. Therefore, both master terminal A and terminals B and C are responsible terminals.
  • the responsible terminal first transmits a Web page request to the server 102 in accordance with the URL of the server 102 that has been acquired or notified (step S801).
  • the server 102 accepts the web page request
  • the server 102 transmits the web page to the terminal in charge (step S802).
  • the terminal in charge selects the target file from the Web page (step S803).
  • the target file content: “77 people's bags”.
  • the target file is not selected.
  • step S804 the terminal in charge executes a download section calculation process. Details of the download section calculation process (step S804) will be described later.
  • the terminal in charge transmits a download request and download section I (k) to the server 102.
  • the server 102 determines whether or not the received data of the received download section I (k) exists in the target file (step S805). If it exists (step S805: Yes), the server 102 transmits responsible data defined by the download section I (k) to the responsible terminal (step S806).
  • the responsible terminal stores the assigned data transmitted from the server 102 in an internal storage device (memory 302 or file system) (step S807).
  • step S805 if the data in charge of the received download section I (k) does not exist in the target file (step S805: No), the server 102 transmits a completion notification to the terminal in charge (step S808). Thereby, the download process of the assigned data is completed.
  • FIG. 9 is a flowchart showing a detailed processing procedure of the download section calculation process (step S804).
  • the initial value of k is the terminal ID of the terminal in charge.
  • S is the seek size.
  • the seek size S is determined in advance.
  • the terminal in charge transmits the download request and the download section I (k) to the server 102 (step S903).
  • n number of terminals is added to k to update k (step S904), and the process returns to step S901.
  • the operation method is a method of sharing data downloaded to each terminal.
  • the distribution method is a method in which each terminal requests the server 102 to download data other than the responsible data and downloads data other than the responsible data.
  • Both the loosely coupled method and the tightly coupled method are methods for accessing data downloaded by other terminals by ad hoc communication.
  • the loosely coupled method is a method of accessing a file system of another terminal that stores data in charge downloaded by the other terminal by ad hoc communication.
  • the tightly coupled method is a method of accessing the memory 302 in the terminal that has downloaded data other than the data in charge (data in charge when viewed from another terminal).
  • the logical data specifying the data in charge of the other terminal from the own terminal is converted (logical conversion) into the logical address specifying the data in charge on the memory 302 of the other terminal, whereby the data in charge of the other terminal It is a method to access.
  • the other terminal accesses the assigned data by converting the converted logical address to the physical address of the assigned data (logical-physical conversion).
  • FIG. 10 is an explanatory diagram showing an operation method setting sequence. Both the connection source terminal and the connection destination terminal of ad hoc communication wait for a certain period of time to elapse (step S1001: No). If a certain period of time has elapsed (step S1001: Yes), the local terminal uses the data received by the GPS receiver 306. Is updated (step S1002), and the process returns to step S1001.
  • the connection source terminal transmits a coordinate information acquisition request of the connection destination terminal to the connection destination terminal (step S1003).
  • the connection destination terminal transmits the latest coordinate information of the connection destination terminal to the connection source terminal (step S1004).
  • connection source terminal When the connection source terminal receives the coordinate information of the connection destination terminal, the connection source terminal calculates a relative distance from the connection destination terminal (step S1005). Then, the connection source terminal executes an operation method determination process (step S1006). Details of the operation method determination process (step S1006) will be described later. Then, the connection source terminal notifies the connection destination terminal of the determined operation method (step S1007).
  • connection source terminal executes an operation method setting process at the connection source terminal (step S1008)
  • connection destination terminal executes an operation method setting process at the connection destination terminal (step S1009). Details of each operation method setting process (steps S1008 and S1009) will be described later, but coordinate information indicating the current positions of the connection source terminal and the connection destination terminal is updated in real time. Therefore, the operation method is dynamically changed, and the optimum operation method is determined according to the situation.
  • FIG. 11 is a flowchart showing a detailed processing procedure of the operation method determination process (step S1006) shown in FIG.
  • this operation method determination process step S1006
  • the operation method between the connection source terminal and the connection destination terminal is determined according to the relative distance between the terminals and the comparison result between the communication bandwidth Rt and the storage bandwidth Rs / memory bandwidth Rm. Is done.
  • a certain range ⁇ ⁇ Rt in this example
  • the storage bandwidth Rs / memory bandwidth Rm is stored in the memory 302 or the storage 303 in the terminal itself.
  • connection source terminal detects the communication band Rt during the coordinate information acquisition period (step S1101). Then, the connection source terminal determines whether or not the relative distance obtained from the coordinate information of the connection source terminal and the coordinate information of the connection destination terminal is within a predetermined distance (step S1102).
  • connection source terminal determines the operation method between the connection source terminal and the connection destination terminal to be a distributed method (step S1103). Then, the connection source terminal notifies the connection destination terminal of the determined operation method (step S1104).
  • step S1102 when the relative distance is within the predetermined distance in step S1102 (step S1102: Yes), the connection source terminal compares the communication band Rt with the storage band Rs (step S1105).
  • step S1105: Rt ⁇ Rs ⁇ Rs the comparison result between the communication band Rt and the storage band Rs is Rt ⁇ Rs ⁇ Rs (step S1105: Rt ⁇ Rs ⁇ Rs)
  • the connection source terminal is connected between the connection source terminal and the connection destination terminal.
  • the operation method is determined to be a distributed method (step S1103).
  • the connection source terminal notifies the connection destination terminal of the determined operation method (step S1104).
  • step S1105 when the comparison result between the communication band Rt and the storage band Rs is Rs ⁇ Rs ⁇ Rt ⁇ Rs + ⁇ Rs (step S1105: Rs ⁇ Rs ⁇ Rt ⁇ Rs + ⁇ Rs), the connection source terminal is connected to the connection source terminal and the connection destination terminal. Is determined to be a loosely coupled method (step S1106). Then, the connection source terminal notifies the connection destination terminal of the determined operation method (step S1104).
  • the connection source terminal compares the communication band Rt with the memory band Rm (step S1107).
  • the comparison result between the communication band Rt and the memory band Rm is Rt ⁇ Rm (step S1107: Rt ⁇ Rm)
  • the connection source terminal sparse the operation method between the connection source terminal and the connection destination terminal.
  • the combination method is determined (step S1106).
  • the connection source terminal notifies the connection destination terminal of the determined operation method (step S1104).
  • the connection source terminal sets the operation method between the connection source terminal and the connection destination terminal densely.
  • the combination method is determined (step S1108).
  • the connection source terminal notifies the connection destination terminal of the determined operation method (step S1104).
  • the operation method between the connection source terminal and the connection destination terminal is determined according to the relative distance between the terminals and the size of the communication band Rt.
  • step S1102 if the relative distance is within the predetermined distance (step S1102: Yes), the communication band Rt and the storage band Rs need not be compared (step S1105), and the loose coupling method may be determined. .
  • step S1102 if the relative distance is within the predetermined distance (step S1102: Yes), the communication band Rt and the storage band Rs are compared (step S1105), and the communication band Rt and the memory band Rm are compared (step S1107). Needless to say, the tight coupling method may be used.
  • step S1105 if the comparison result between the communication band Rt and the storage band Rs is Rt> Rs + ⁇ Rs (step S1105: Rt> Rs + ⁇ Rs), until the communication band Rt is compared with the memory band Rm (step S1107).
  • the loose coupling method or the tight coupling method may be determined.
  • FIG. 12 is a flowchart showing a detailed processing procedure of the operation method setting process (step S1008) at the connection source terminal shown in FIG.
  • the connection source terminal confirms the determined operation method (step S1201). If it is a distributed method (step S1201: distributed), the operation method setting process (step S1008) at the connection source terminal is terminated.
  • step S1201 loosely coupled
  • the connection source terminal acquires the file path of the responsible data downloaded to the connection destination terminal from the connection destination terminal (step S1202).
  • step S1203 the connection source terminal sets a logical address designating assigned data downloaded to the connection destination terminal in a logical address space that can be referred to by the application (step S1203).
  • connection source terminal writes the file path acquired in step S1202 to the designated logical address in step S1203. Thereafter, the connection source terminal performs a logical conversion stop setting (step S1205). Thus, the operation method setting process (step S1008) at the connection source terminal is completed.
  • step S1201 in the case of the tight coupling method (step S1201: tight coupling), the connection source terminal logically calculates the logical address (translation source logical address) at the connection source terminal of the data in charge downloaded at the connection destination terminal. An address space is set (step S1206). Next, the connection source terminal acquires the logical address (translation destination logical address) at the connection destination terminal of the assigned data downloaded at the connection destination terminal from the connection destination terminal (step S1207).
  • connection source terminal generates an argument conversion table (step S1208).
  • the logical conversion table is a table in which a conversion source logical address, a conversion destination logical address, and a terminal ID of a connection destination terminal that is a conversion destination are associated with each other.
  • the connection source terminal performs logic conversion start setting (step S1209).
  • the logic conversion activation setting is a setting that enables access to the logic conversion table.
  • step S1008 This completes the operation method setting process (step S1008) at the connection source terminal.
  • the operation method setting process (step S1008) at the connection source terminal it is possible to mount the connection destination terminal according to loose coupling or tight coupling.
  • FIG. 13 is a flowchart showing a detailed processing procedure of the operation method setting process (step S1009) at the connection destination terminal shown in FIG.
  • the connection destination terminal waits for the operation method from the connection source terminal (step S1301: No).
  • the connection destination terminal confirms the received operation method (step S1301: No).
  • S1302 If it is a distributed method (step S1302: distributed), the operation method setting process (step S1009) at the connection destination terminal is terminated.
  • step S1302 loosely coupled
  • the connection destination terminal acquires the file path of the responsible data downloaded to the connection source terminal from the connection source terminal (step S1303).
  • the connection destination terminal sets a logical address designating assigned data downloaded to the connection source terminal in a logical address space that can be referred to by the application (step S1304).
  • connection destination terminal writes the file path acquired in step S1303 to the designated logical address in step S1304. Thereafter, the connection destination terminal performs a logical conversion stop setting (step S1306). Thus, the operation method setting process (step S1009) at the connection destination terminal is completed.
  • step S1302 in the case of the tightly coupled method (step S1302: tightly coupled), the connection destination terminal logically calculates the logical address (conversion source logical address) at the connection destination terminal of the assigned data downloaded at the connection source terminal.
  • the address space is set (step S1307).
  • the connection destination terminal acquires the logical address (translation destination logical address) at the connection source terminal of the assigned data downloaded at the connection source terminal from the connection source terminal (step S1308).
  • connection destination terminal generates an argument conversion table (step S1309).
  • the logical conversion table is a table in which the conversion source logical address, the conversion destination logical address, and the terminal ID of the connection source terminal that is the conversion destination are associated with each other.
  • the connection destination terminal performs logic conversion start setting (step S1310).
  • the logic conversion activation setting is a setting that enables access to the logic conversion table.
  • step S1008 the operation method setting process (step S1008) at the connection source terminal and the operation method setting process (step S1009) at the connection destination terminal are executed, so that the cross mount is performed between the connection source terminal and the connection destination terminal. Will be realized.
  • FIG. 14 is an explanatory diagram showing a state in which responsible data Da and Db are downloaded in the terminal A and the terminal B, respectively.
  • the file path in the file system FSa of the data A Da in charge of the terminal A is fpa
  • the file path in the file system FSb of the data Db in charge of the terminal B is fpb.
  • the responsible data Da of the terminal A is stored in the logical address [0x0150, 0x0249] in the logical address space LSa visible to the application of the terminal A.
  • the responsible data Db of the terminal B is stored in the logical address [0x0200, 0x0299] in the logical address space LSb that can be seen from the application of the terminal B.
  • FIG. 15 is an explanatory diagram showing a state where the terminal A is a connection source terminal and the terminal B is a connection destination terminal from the state shown in FIG. Specifically, the terminal ID of the terminal B and the file path fpb to the assigned data Db are set in the empty address of the logical address space LSa of the terminal A. As a result, the file system FSb of the terminal B is mounted on the terminal A. Similarly, the terminal ID of the terminal A and the file path fpa to the assigned data Da are set in the empty address of the logical address space LSb of the terminal B. As a result, the file system FSa of the terminal A is mounted on the terminal B.
  • FIG. 16 is an explanatory diagram (part 1) showing data access after the loose coupling setting shown in FIG. FIG. 16 shows an example in which terminal A accesses assigned data Da and Db.
  • the application of the terminal A designates the logical address of the responsible data Da in the logical address space LSa, so that the controller of the storage 303 of the terminal A has a file path fpa to the responsible data Da.
  • Refer to and convert to logical The terminal A can access the data in charge Da by designating the physical address subjected to logical-physical conversion.
  • the application of the terminal A specifies the logical address having the terminal ID of the terminal B of the logical address space LSa and the file path fpb, and starts the communication driver. Then, the terminal A transmits the file path fpb to the terminal B through the communication driver.
  • the terminal B refers to the file path fpb from the terminal A and accesses the assigned data Db in the storage 303 of the terminal B.
  • terminal B transmits the responsible data Db to the terminal A.
  • Terminal A receives the assigned data Db from terminal B.
  • terminal B transmits a write completion notification to terminal A. In this way, the terminal A can access the assigned data Db.
  • FIG. 17 is an explanatory diagram (part 2) illustrating data access after the loose coupling setting according to FIG.
  • FIG. 17 shows an example in which the terminal B accesses the assigned data Da and Db.
  • the application of the terminal B designates the logical address of the assigned data Db in the logical address space LSb, so that the controller of the storage 303 in the terminal B has a file path to the assigned data Db.
  • the application of the terminal B specifies the logical address having the terminal ID of the terminal A in the logical address space LSb and the file path fpa, and starts the communication driver. Then, the terminal B transmits the file path fpa to the terminal A through the communication driver.
  • the terminal A refers to the file path fpa from the terminal B and accesses the assigned data Da in the storage 303 of the terminal A.
  • terminal A transmits the responsible data Da to the terminal B.
  • Terminal B receives assigned data Da from terminal A.
  • terminal A transmits a write completion notification to terminal B.
  • the terminal B can access the assigned data Da.
  • FIG. 18 is an explanatory diagram showing a state in which the responsible data Da and Db are downloaded in the terminal A and the terminal B, respectively.
  • the file path in the file system FSa of the data A Da in charge of the terminal A is fpa
  • the file path in the file system FSb of the data Db in charge of the terminal B is fpb.
  • the responsible data Da of the terminal A is stored in the logical address [0x0150, 0x0249] in the logical address space LSa visible to the application of the terminal A.
  • the responsible data Db of the terminal B is stored in the logical address [0x0200, 0x0299] in the logical address space LSb that can be seen from the application of the terminal B.
  • the responsible data Da is read from the file system FSa in the storage 303 of the terminal A to the memory 302 of the terminal A (hereinafter, memory Ma). It is not necessary if it has already been read.
  • the physical address [0x1100, 0x1199] on the memory Ma of the assigned data Da is associated with the logical address [0x0150, 0x0249] of the logical address space LSa. Accordingly, when the logical address [0x0150, 0x0249] is designated, the controller of the memory Ma performs logical-physical conversion to the physical address [0x1100, 0x1199] on the memory Ma.
  • the responsible data Db is read from the file system FSb in the storage 303 of the terminal B to the memory 302 (hereinafter, memory Mb) of the terminal B. It is not necessary if it has already been read.
  • the physical address [0x1150, 0x1249] on the memory 302 of the assigned data Db is associated with the logical address [0x0200, 0x0299] in the logical address space LSb.
  • the controller of the memory Mb performs logical-physical conversion to the physical address [0x0200, 0x0299] on the memory Mb.
  • FIG. 19 is an explanatory diagram illustrating a state in which the terminal A is a connection source terminal and the terminal B is a connection destination terminal from the state illustrated in FIG. Specifically, the terminal A acquires the logical address (translation destination logical address) of the assigned data Db from the terminal B, and assigns the conversion source logical address of the assigned data Db to the logical address space of the terminal A. Then, the terminal A generates a logical conversion table LLTa in which the conversion source logical address, the conversion destination terminal ID, and the conversion destination logical address are associated with each other. As a result, the memory Mb of the terminal B is mounted on the terminal A.
  • the terminal A acquires the logical address (translation destination logical address) of the assigned data Db from the terminal B, and assigns the conversion source logical address of the assigned data Db to the logical address space of the terminal A. Then, the terminal A generates a logical conversion table LLTa in which the conversion source logical address, the conversion destination terminal ID, and the
  • the terminal B acquires the logical address (translation destination logical address) of the assigned data Da from the terminal A, and assigns the conversion source logical address of the assigned data Da to the logical address space of the terminal B. Then, the terminal B generates a logical conversion table LLTb in which the conversion source logical address, the conversion destination terminal ID, and the conversion destination logical address are associated with each other. As a result, the memory Ma of the terminal A is mounted on the terminal B.
  • FIG. 20 is an explanatory diagram (part 1) showing data access after the tight coupling setting shown in FIG. FIG. 20 shows an example in which terminal A accesses assigned data Da and Db.
  • the application of the terminal A designates the logical address of the assigned data Da in the logical address space LSa, so that the controller of the memory Ma performs logical-physical conversion to the physical address of the assigned data Da. .
  • the terminal A can access the assigned data Da on the memory Ma.
  • the application of the terminal A specifies the logical address of the assigned data Db in the logical address space LSa, and the logical conversion table LLTa is set with the specified logical address as the conversion source logical address. refer.
  • the terminal ID of the conversion destination and the conversion destination logical address are specified.
  • the terminal A activates the communication driver and transmits the conversion destination logical address to the terminal B that is the conversion destination.
  • the controller of the memory 302 performs logical-physical conversion to the physical address of the assigned data Db. Then, by designating the physical address subjected to logical-physical conversion, the terminal B can access the assigned data Db on the memory Mb.
  • the terminal B transmits the responsible data Db to the terminal A.
  • Terminal A receives the assigned data Db from terminal B.
  • terminal B transmits a write completion notification to terminal A. In this way, the terminal A can access the assigned data Db.
  • FIG. 21 is an explanatory diagram (part 2) illustrating data access after the tight coupling setting according to FIG.
  • FIG. 21 shows an example in which the terminal B accesses the assigned data Da and Db.
  • the application of the terminal B specifies the logical address of the assigned data Db in the logical address space LSb, so that the controller of the memory Mb performs logical-physical conversion to the physical address of the assigned data Db. .
  • the terminal B can access the assigned data Db on the memory Mb.
  • the application of the terminal B specifies the logical address of the assigned data Da in the logical address space LSb, and the logical conversion table LLTb is set with the specified logical address as the conversion source logical address. refer.
  • the terminal ID of the conversion destination and the conversion destination logical address are specified.
  • the terminal B activates the communication driver and transmits the conversion destination logical address to the terminal A that is the conversion destination.
  • the controller of the memory Ma performs logical-physical conversion to the physical address of the assigned data Da. Then, by designating the logical / physical converted physical address, the terminal A can access the assigned data Da on the memory Ma.
  • the terminal A transmits the responsible data Da to the terminal B.
  • Terminal B receives assigned data Da from terminal A.
  • terminal A transmits a write completion notification to terminal B.
  • the terminal B can access the assigned data Da.
  • FIG. 22 is an explanatory diagram showing a sequence of data access processing between terminals.
  • the access source terminal waits until there is a data access (read / write) request (step S2201: No). If there is a data access request (step S2201: Yes), the access source terminal starts logical conversion. It is determined whether or not (step S2202). If it is activated (step S2202: YES), the access source terminal refers to the logic conversion table and executes logic conversion (step S2203).
  • step S2204 the access destination terminal determines whether the access destination is its own terminal (access source terminal) (step S2204). Specifically, for example, when a terminal ID and a file path are specified in loose coupling, the terminal specified by the terminal ID becomes the access destination terminal. In the case of the tight coupling, the terminal specified by the terminal ID becomes the access destination terminal when referring to the logic conversion table.
  • step S2204 If the access destination is its own terminal (step S2204: YES), the access source terminal logically converts the logical address specified in the access request into a physical address (step S2205). Then, the access source terminal accesses the converted physical address in the own terminal (step S2206). Thereby, the data access ends.
  • step S2204 determines whether the access destination is another terminal in step S2204 (step S2204: No). If the access destination is another terminal in step S2204 (step S2204: No), the access source terminal activates the communication driver (step S2207) and executes the inter-terminal data access process (step S2208). Thereby, data access to the access destination terminal can be performed by ad hoc communication.
  • FIG. 23 is a sequence diagram (part 1) showing a detailed processing procedure of the inter-terminal data access processing (step S2208) shown in FIG. FIG. 23 shows a case where the data access is a read.
  • the access source terminal transmits a read request to the access destination terminal by ad hoc communication (step S2301).
  • the access destination terminal analyzes the read request (step S2302). Specifically, for example, the access destination terminal takes out information included in the read request. In the case of loose coupling, the file path is extracted, and in the case of tight coupling, the conversion destination logical address is extracted.
  • the access destination terminal specifies the physical address that is the read destination based on the information obtained by the analysis (step S2303). Specifically, for example, when the file path is extracted, the access destination terminal specifies the physical address with reference to the file path. When the conversion destination logical address is taken out, the conversion destination logical address is logically converted to specify the physical address.
  • the access destination terminal accesses the specified physical address and reads the target data (step S2304). Then, the access destination terminal transmits the read target data to the access source terminal that is the transmission source of the read request (step S2305). The access source terminal receives the target data transmitted from the access destination terminal (step S2306). Thereby, the terminal-to-terminal data access process at the time of reading (step S2208) is terminated.
  • FIG. 24 is a sequence diagram (part 2) showing a detailed processing procedure of the inter-terminal data access processing (step S2208) shown in FIG. FIG. 24 shows a case where the data access is a write.
  • the access source terminal transmits a write request and target data to the access destination terminal by ad hoc communication (step S2401).
  • the access destination terminal analyzes the write request (step S2402). Specifically, for example, the access destination terminal extracts information included in the write request. In the case of loose coupling, the file path and target data are extracted. In the case of tight coupling, the conversion destination logical address and target data are extracted.
  • the access destination terminal specifies the physical address that is the read destination based on the information obtained by the analysis (step S2403). Specifically, for example, when the file path is extracted, the access destination terminal specifies the physical address with reference to the file path. When the conversion destination logical address is taken out, the conversion destination logical address is logically converted to specify the physical address.
  • the access destination terminal accesses the specified physical address and writes the target data (step S2404).
  • the access destination terminal transmits a write completion notification to the access source terminal that is the transmission source of the write request (step S2405).
  • the inter-terminal data access processing at the time of writing ends. In this way, by cross-mounting between terminals, data access between terminals becomes possible.
  • FIG. 25 is a sequence diagram showing a detailed processing procedure of the charge data download processing (steps S703, S704, and S706).
  • steps S703, S704, and S706 the process of downloading the responsible data mainly by the responsible terminal has been described, but in FIG. 25, the process of downloading the responsible data mainly by the server 102 will be described.
  • the same steps as those in FIG. 8 are denoted by the same step numbers, and the description thereof is omitted.
  • the responsible terminal stores the received responsible data in the memory 302 or the storage 303 (step S2507). Thereafter, when all the responsible data has been downloaded, the server 102 transmits a completion notification to the responsible terminal (step S2508). Thereby, the download process of the assigned data is completed.
  • FIG. 26 is a flowchart showing a detailed processing procedure of the download section calculation process (step S2505) shown in FIG.
  • the server 102 determines whether or not the assigned data specified in the received download section I (k) exists in the target file (step S2603). If it exists (step S2603: Yes), the server 102 transmits the responsible data specified in the download section I (k) to the responsible terminal (step S2604).
  • the responsible terminal stores the responsible data transmitted from the server 102 in the internal storage device (memory 302 or storage 303) (step S2507). Thereafter, the server 102 updates by adding n to k (step S2605), and returns to step S2601. As a result, the download start position and the download end position are updated.
  • step S2603 when the assigned data specified in the received download section I (k) does not exist in the target file (step S2603: No), the server 102 transmits a completion notification to the responsible terminal (step S2603). S2606). Thereby, the download process of the assigned data is completed.
  • FIG. 27 is a sequence diagram illustrating a detailed processing procedure of the charge data download processing (steps S703, S704, and S706).
  • steps S703, S704, and S706 the process of downloading the responsible data mainly by the responsible terminal has been described.
  • FIG. 27 the process of downloading the responsible data by taking the performance terminal into account is described.
  • the same steps as those in FIG. 8 are denoted by the same step numbers, and the description thereof is omitted.
  • a terminal in charge other than the master terminal is referred to as a “slave terminal”.
  • step S2704 After selecting the target file in step S803, the master terminal executes download section calculation processing (step S2704). Details of the download section calculation process (step S2704) will be described later.
  • the master terminal transmits a download request and the download section I (j) of the master terminal to the server 102 (step S2705). Further, the master terminal transmits the download interval I (j) of the slave terminal to the slave terminal in the download interval calculation process (step S2704) (step S2706).
  • the slave terminal transmits a download request and a download interval I (j) of the slave terminal to the server 102 (step S2707).
  • the server 102 determines whether or not the data in charge of the received download section I (j) exists in the target file (step S2708). If it exists (step S2708: Yes), the server 102 transmits the assigned data defined by the download section I (j) to the terminal (master terminal or slave terminal) that is the transmission section of the download section I (j) (step S2708: Yes). S2709).
  • the master terminal stores the assigned data transmitted from the server 102 in the internal storage device (memory 302 or file system) (step S2710).
  • the slave terminal stores the assigned data transmitted from the server 102 in the internal storage device (memory 302 or storage 303) (step S2711).
  • step S2708 when the data in charge of the received download section I (j) does not exist in the target file (step S2708: No), the server 102 sends a completion notification to the source of the download section I (j). It transmits to the terminal (master terminal or slave terminal) (step S2712).
  • FIG. 28 is a flowchart showing a detailed processing procedure of the download section calculation process (step S2704) shown in FIG.
  • Is set to S (k) S ⁇ ⁇ b (k) / ⁇ b (k) ⁇ (step S2801).
  • S is a fixed seek size
  • ⁇ b (k) is the sum of the communication line speeds of all terminals (terminals A to C) that share data. That is, the seek size S (k) is a seek size considering the performance difference of the terminal. It is assumed that the communication line speed b (k) of the slave terminal is acquired periodically.
  • step S2807 NO
  • the process moves to S2810.
  • the section width of the download section I (k) varies according to the performance of the terminal in charge, that is, the seek size S (k). .
  • FIG. 29 is a sequence diagram illustrating a detailed processing procedure of the charge data download processing (steps S703, S704, and S706).
  • the process in which the responsible terminal is mainly responsible for downloading the responsible data in consideration of the performance difference has been described.
  • the server 102 is the principally responsible for the performance difference of the responsible terminal and the responsible data is considered.
  • the process of downloading is described.
  • the same steps as those in FIG. 8 are denoted by the same step numbers, and the description thereof is omitted.
  • the server 102 executes a download section calculation process (step S2905). Details of the download section calculation process (step S2905) will be described later.
  • the server 102 When the server 102 calculates the download section I (k), the server 102 transmits the assigned data specified in the download section I (k) in the target file to the responsible terminal (step S2906).
  • the responsible terminal receives the responsible data, the responsible terminal stores the responsible data in the storage device (memory 302 or file system) (step S2907).
  • the server 102 transmits a completion notification to the terminal in charge when there is no data in charge designated by the download section I (k) (step S2908).
  • FIG. 30 is a flowchart showing a detailed processing procedure of the download section calculation process (step S2905) shown in FIG.
  • the seek size S (k) is a seek size considering the performance difference of the terminal in charge. Since the download section calculation process (step S2905) cannot be executed without the communication line speed b (k) of all the responsible terminals, the communication lines of the remaining responsible terminals when there is a download request from a certain responsible terminal. The speed may be acquired. It is also possible to periodically acquire the communication line speeds of all the responsible terminals and use the latest communication line speed.
  • the section width of the download section I (k) varies according to the performance of the terminal in charge, that is, the seek size S (k). .
  • efficient data sharing can be realized among a plurality of terminals. Further, the operation method can be dynamically switched according to the size of the communication band with the connection destination terminal and the relative distance. Therefore, efficient data sharing between terminals can be realized. Furthermore, since the download from the server 102 can be performed in consideration of the performance difference of each terminal, the load on the terminal due to the download can be distributed according to the performance of the terminal.
  • the execution subject when the execution subject is the server 102, specifically, for example, the CPU 201 executes a program stored in a storage device such as the ROM 202, the RAM 203, and the magnetic disk 205 illustrated in FIG. Will be realized.
  • the execution subject is a terminal, specifically, for example, it is realized by causing the processor 301 to execute a program stored in a storage device such as the memory 302 and the storage 303 illustrated in FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

 端末Aの論理アドレス空間(LSa)の空きアドレスには、端末(B)の端末IDおよび担当データ(Db)へのファイルパス(fpb)が設定される。これにより、端末(B)のファイルシステム(FSb)が端末(A)にマウントされることとなる。同様に、端末(B)の論理アドレス空間(LSb)の空きアドレスには、端末(A)の端末IDおよび担当データ(Da)へのファイルパス(fpa)が設定される。これにより、端末(A)のファイルシステム(FSa)が端末(B)にマウントされることとなる。

Description

データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法
 本発明は、データを共有、配信するデータ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法に関する。
 従来、デジタルカメラのデータをサーバへ転送する時に複数のデジタルカメラにデータを分割して割り当て各デジタルカメラがサーバに担当部分のデータを転送する技術が開示されている(たとえば、下記特許文献1を参照。)。
 また、分散メモリ型計算機における並列データベースへの問い合わせ並列処理において、他ノードのデータベースへのアクセスが生じた際にノード間のデータ転送量を削減する技術が開示されている(たとえば、下記特許文献2を参照。)。
 また、アドホック通信しか使用できない状況で離れた端末へデータ通信を実現する技術や、要求しているデータを持つ携帯端末が複数存在する場合に、最も距離の近い端末からデータ転送を可能にする技術が開示されている(たとえば、下記特許文献3,4を参照。)。
特開2007-66061号公報 特開2007-531087号公報 特開2007-336360号公報 特開2004-64646号公報
 しかしながら、上述した従来技術を用いて、複数の携帯端末(たとえば、携帯端末A~C)間でデータ共有を行う場合、携帯端末Aは、携帯端末Bが有するデータDbを利用したいときは、端末Bから端末AにデータDbを送信する必要がある。同様に、携帯端末Aは、携帯端末Cが有するデータDcを利用したいときは、携帯端末Cから携帯端末AにデータDcを送信する必要がある。
 したがって、携帯端末Aのユーザは、データDb,Dcを利用したいときでも、携帯端末Aから携帯端末B,CのデータDb,Dcにアクセスすることができず、データ共有について使い勝手が悪いというという問題があった。
 このようなデータ共有についての使い勝手の悪さは、携帯端末Aが有するデータDaや携帯端末Cが有するデータDcを携帯端末Bが利用する場合や、携帯端末Aが有するデータDaや携帯端末Bが有するデータDbを携帯端末Cが利用する場合についても同様である。
 また、データDa~Dcがサーバに存在する場合、携帯電話網を介してサーバにアクセスすることで、携帯端末A~CはデータDa~Dcをダウンロードすることができる。
 しかしながら、携帯電話網における基地局の帯域は決まっており、基地局に接続されている携帯端末でシェアすることになる。そのため、基地局に接続している携帯端末が増加するほど、携帯端末1台当たりの使用帯域が減少してしまうこととなる。したがって、携帯端末A~Cごとに、全データDa~Dcをダウンロードする場合、ダウンロード時間が長くなってしまうという問題があった。
 また、各携帯端末A~Cが全データDa~Dcをダウンロードするため、データDa~Dcの総データ量が巨大な場合、メモリ不足によりダウンロードできなくなるという問題があった。
 本発明は、上述した従来技術による問題点を解消するため、複数の端末間で効率的なデータ共有を実現することができるデータ共有プログラム、端末、およびデータ共有方法を提供することを目的とする。また、複数の端末間でデータ共有を実現するために、各端末の担当分のデータを効率的にダウンロードすることができるデータ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法を提供することを目的とする。
 上述した課題を解決し、目的を達成するため、アドホックネットワーク内で通信可能に接続されている第1の端末と第2の端末との間の通信帯域を検出し、検出された通信帯域と前記第1の端末の記憶装置に関する帯域とを比較し、比較結果に基づいて、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定し、決定された運用方式を前記第1の端末から前記第2の端末に通知し、決定された運用方式に基づいて、前記第2の端末から前記第1の端末の記憶装置へのアクセスを可能にするマウント処理を実行するデータ共有プログラム、端末、およびデータ共有方法が、一例として提案される。
 また、第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報を取得し、取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定し、前記第1の端末からのダウンロード要求があった場合、前記コンテンツのうち特定された前記第1の区間内のデータを前記第1の端末に送信するとともに、前記第2の端末からのダウンロード要求があった場合、前記コンテンツのうち特定された前記第2の区間内のデータを前記第2の端末に送信するデータ配信プログラム、サーバ、およびデータ配信方法が、一例として提案される。
 上記データ共有プログラム、端末、およびデータ共有方法によれば、複数の端末間で効率的なデータ共有を実現することができるという効果を奏する。また、上記データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法によれば、複数の端末間でデータ共有を実現するために、各端末の担当分のデータを効率的にダウンロードすることができるという効果を奏する。
本発明の実施の形態にかかるデータ共有システムのシステム構成例を示す説明図である。 サーバのハードウェア構成例を示すブロック図である。 端末のハードウェア構成例を示すブロック図である。 アドホック通信の接続処理のシーケンスを示す説明図である。 図4に示した接続処理(ステップS402、S403、S407)の詳細な処理手順を示す説明図である。 マスタ端末Aでのダウンロード画面を示す説明図である。 ダウンロード処理のシーケンスを示す説明図である。 担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。 ダウンロード区間算出処理(ステップS804)の詳細な処理手順を示すフローチャートである。 運用方式設定シーケンスを示す説明図である。 図10に示した運用方式決定処理(ステップS1006)の詳細な処理手順を示すフローチャートである。 図10に示した接続元端末での運用方式設定処理(ステップS1008)の詳細な処理手順を示すフローチャートである。 図10に示した接続先端末での運用方式設定処理(ステップS1009)の詳細な処理手順を示すフローチャートである。 端末Aおよび端末Bにおいてそれぞれ担当データDa,Dbをダウンロードした状態を示す説明図である。 図14に示した状態から、端末Aを接続元端末、端末Bを接続先端末として疎結合した状態を示す説明図である。 図15による疎結合設定後におけるデータアクセスを示す説明図(その1)である。 図15による疎結合設定後におけるデータアクセスを示す説明図(その2)である。 端末Aおよび端末Bにおいてそれぞれ担当データDa,Dbをダウンロードした状態を示す説明図である。 図18に示した状態から、端末Aを接続元端末、端末Bを接続先端末として密結合した状態を示す説明図である。 図19による密結合設定後におけるデータアクセスを示す説明図(その1)である。 図19による密結合設定後におけるデータアクセスを示す説明図(その2)である。 端末間のデータアクセス処理のシーケンスを示す説明図である。 図22に示した端末間データアクセス処理(ステップS2208)の詳細な処理手順を示すシーケンス図(その1)である。 図22に示した端末間データアクセス処理(ステップS2208)の詳細な処理手順を示すシーケンス図(その2)である。 担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。 図25に示したダウンロード区間算出処理(ステップS2505)の詳細な処理手順を示すフローチャートである。 担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。 図27に示したダウンロード区間算出処理(ステップS2704)の詳細な処理手順を示すフローチャートである。 担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。 図29に示したダウンロード区間算出処理(ステップS2905)の詳細な処理手順を示すフローチャートである。
 以下に添付図面を参照して、本発明の実施の形態を詳細に説明する。
<システム構成例>
 図1は、本発明の実施の形態にかかるデータ共有システムのシステム構成例を示す説明図である。図1のデータ共有システム100では、複数(例として3台)の端末A~Cが、基地局101およびネットワーク103を介してサーバ102と交信可能に接続されている。端末A~Cは、無線通信可能な携帯型のコンピュータであり、たとえば、携帯電話機、スマートフォン、電子辞書、タブレット型端末、携帯ゲーム機などがある。
 また、各端末A~Cは、サーバ102がネットワーク103内の携帯電話網にある場合は、基地局101および携帯電話網を介してサーバ102にアクセスすることとなる。サーバ102がネットワーク103内のインターネット網にある場合は、各端末A~Cは、基地局101、携帯電話網、インターネット網を介して、サーバ102にアクセスすることとなる。各端末A~Cは、端末間でアドホック通信可能である。また、各端末A~Cは、GPS衛星104からの信号を受信することで、現在位置情報を取得することもできる。
 サーバ102は、映像、ゲーム、地図といったデータDを記憶しており、端末A~Cからのダウンロード要求に応じて、ダウンロード要求元の端末にダウンロードする。なお、図1では、サーバ102はダウンロード要求の受付処理と、データを記憶しダウンロードする処理とを実行するが、ダウンロード要求の受付処理と、データを記憶しダウンロードする処理とを、異なるサーバ102で実行してもよい。
 この場合、ダウンロード要求の受付処理を実行する第1のサーバは、データDを記憶しダウンロードする処理を実行する第2のサーバに、受け付けたダウンロード要求を送信する。第2のサーバは、受信したダウンロード要求によりダウンロード要求元とダウンロード対象となるデータを特定して、ダウンロード要求元の端末にダウンロードする。
 このようなデータ共有システム100において、各端末A~Cは、サーバ102からデータDを分割ダウンロードする。各端末A~Cがダウンロードした分割データを担当データと称す。担当データDa~Dcは、それぞれ異なるデータである。各端末A~Cは、アドホック通信により、データDのうち自端末でダウンロードしなかった他端末の担当データにアクセスすることができる。たとえば、端末Aは、アドホック通信により担当データDb,Dcにアクセスすることができる。
 これにより、各端末A~Cは、相互にアドホック通信により接続されているため、他端末に記憶されている担当データに自端末からアクセスすることができる。また、各端末A~Cは全データDa~Dcをダウンロードする必要がないため、ダウンロード時間の短縮化を図ることができ、メモリ不足に陥ることも低減されることとなる。
<ハードウェア構成>
 図2は、サーバ102のハードウェア構成例を示すブロック図である。図2において、サーバ102は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
 ここで、CPU201は、サーバ102の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
 光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
 ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
 インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
 キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
 スキャナ212は、画像を光学的に読み取り、サーバ102内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
 図3は、端末のハードウェア構成例を示すブロック図である。図3において、端末A~Cは、プロセッサ301と、メモリ302と、ストレージ303と、表示装置304と、入力装置305と、GPSレシーバ306と、通信I/F307と、複数(図3では2個)の通信モジュール308と、を備える。また、各構成部はバス309によってそれぞれ接続されている。
 ここで、プロセッサ301は、端末の全体の制御を司る。メモリ302は、CPU201のワークエリアとして使用される主記憶装置である。メモリ302としては、揮発性メモリまたは不揮発性メモリを採用することができる。ストレージ303は、OSやアプリケーションその他プログラムや、各種データ、ファイルシステムを保存する補助記憶装置である。ストレージ303としては、不揮発性メモリやハードディスクを採用することができる。
 表示装置304は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示するディスプレイである。入力装置305は、ユーザ操作により文字、数字、各種指示などを入力する。入力装置305としては、キーボード、テンキー、タッチパネルなどが採用される。
 GPSレシーバ306は、GPS衛星104からの信号を受信して、自端末の現在位置情報を取得する。通信I/F307は、基地局101を介して携帯電話網に接続するインターフェースであり、図1に示したネットワーク103を介してサーバ102と通信可能に接続する。通信モジュール308は、他の端末とアドホック通信をおこなうインターフェースである。図3では、例として2個用意されているため、最大で2台の端末と同時にアドホック通信をおこなうことができる。
 なお、通信モジュール308の個数は、3個以上でもよい。なお、複数の端末間で相互にアドホック通信をおこなう場合は、各端末には、(端末数-1)個の通信モジュール308が必要となる。たとえば、5台の端末間で相互にアドホック通信をおこなう場合は、各端末には、4(=5-1)個の通信モジュール308が必要となる。
<端末間の相互接続処理>
 つぎに、端末間の相互接続について説明する。本実施の形態では、データを共有しあう複数の端末のうちある端末がマスタ宣言をおこなう。マスタ宣言をおこなった端末(マスタ端末)は、他の端末とそれぞれアドホック通信の接続処理をおこなう。マスタ端末を除く残余の端末間では、アドホック通信の接続処理が完了していないため、マスタ端末からの指示により、残余の端末間でアドホック通信の接続処理をおこなうこととなる。
 図4は、アドホック通信の接続処理のシーケンスを示す説明図である。図4では、例として端末Aをマスタ端末とするが、端末Bや端末Cがマスタ端末になってもよい。まず、端末Aは、マスタ宣言処理をする(ステップS401)。マスタ宣言処理によりマスタ端末となった端末A(マスタ端末A)は、端末B,Cとの接続処理を実行する(ステップS402、S403)。端末B,Cとの接続処理(ステップS402、S403)の詳細については後述する。
 このあと、マスタ端末Aは、グループ内端末を特定する(ステップS404)。グループとは、データ共有しあう端末群であり、具体的には、図4の例では、マスタ端末Aとマスタ端末Aがアドホック通信の接続処理ができた端末B,Cからなる。
 すなわち、マスタ端末Aは、接続処理による接続先の端末B,Cを特定する。この特定は、接続先の端末B,Cどうしでアドホック通信の接続処理を実行させるためである。このあと、マスタ端末Aは、接続先の端末B,Cのうち端末Bに対して端末Cとのアドホック通信の接続指示を通知する(ステップS405)。
 そして、接続指示の通知を受けた端末Bは、接続要求先を特定する(ステップS406)。この場合は、接続要求先は端末Cのみとなるため、端末Bは、端末Cとの接続処理を実行する(ステップS407)。この接続処理(ステップS407)の詳細についても後述する。
 また、仮に、端末D(不図示)がグループ内端末として特定されていたとすると、S406での接続要求先端末は端末C、Dとなり、端末Bは、端末Cとの接続処理と、端末Dとの接続処理を実行することとなる。この場合、端末Aは、端末Cに対しても、接続指示を通知し(ステップS405)、端末Cは、要求先特定(ステップS406)をして接続要求先として端末Dを特定する。そして、端末Cは、端末Dとの接続処理を実行することとなる(ステップS407)。
 端末Bが端末Cとの接続処理を完了させると、端末Bは、マスタ端末Aに完了通知を送信する(ステップS408)。完了通知を受け取ると、マスタ端末Aは、グループ内端末の端末IDを設定する(ステップS409)。端末IDは、グループ内端末に対して割り当てられる固有の識別情報である。たとえば、マスタ端末Aの端末IDは0、端末Bは1、端末Cは2というように、マスタ端末を0として0から始まる連続番号とする。
 そして、マスタ端末Aは、アドホック通信により、端末B,Cに、端末IDおよび端末総数を送信する(ステップS410)。端末総数とは、グループ内端末の総数である。この場合は、端末A~Cであるため、端末総数は3である。したがって、端末Bには、端末ID:1および端末総数:3を送信する。また、端末Cには、端末ID:2および端末総数:3を送信することとなる。
 図5は、図4に示した接続処理(ステップS402、S403、S407)の詳細な処理手順を示す説明図である。図5では、接続要求する端末を「要求元端末」、接続要求先となる端末を「要求先端末」とする。したがって、ステップS402では、要求元端末がマスタ端末A、要求先端末が端末Bとなる。また、ステップS403では、要求元端末がマスタ端末A、要求先端末が端末Cとなる。さらに、ステップS407では、要求元端末が端末B、要求先端末が端末Cとなる。
 まず、要求元端末は、接続要求を要求先端末に送信する(ステップS501)。ステップS402、S403の場合は、マスタ端末Aのマスタ宣言処理(ステップS401)が接続要求のトリガとなる。ステップS407の場合は、要求先特定(ステップS406)が接続要求のトリガとなる。
 要求先端末は、接続要求を受信すると、応答処理を実行する(ステップS502)。そして、要求先端末は、要求元端末に対し、アドホック通信の接続許可/不許可通知を送信する。
 要求元端末は、要求先端末からの接続許可/不許可通知を受信して、アドホック通信の接続が許可であるか不許可であるかを判断する(ステップS503)。許可である場合(ステップS503:Yes)、セッション確立となり(ステップS504)、接続元端末と接続先端末との間でアドホック通信が可能となる。一方、不許可である場合(ステップS503:No)、セッションが確立しない。この場合、再度同じ要求先端末に対してリトライするか、要求先端末を変えてリトライすることとなる。
<各端末でのダウンロード処理>
 つぎに、各端末でのダウンロード処理について説明する。本実施の形態では、対象となるデータを端末総数で分割してダウンロードする。各端末でダウンロードされるデータを「担当データ」と称す。どのデータをダウンロードするかは、マスタ端末Aがサーバ102にアクセスして決めることとする。
 図6は、マスタ端末Aでのダウンロード画面を示す説明図である。(A)は、ダウンロード対象となるコンテンツのジャンルを指定する画面である。ここで、たとえば、「映画」を選択したとする。(B)は、(A)において「映画」を選択した場合の遷移画面である。「映画」を選択すると、つぎは、各種コンテンツの中からダウンロードしたいコンテンツを選択する。ここでは、例として、「77人の侍」を選択したとする。
 つぎに、ダウンロード画面は、(C)に遷移する。(C)では、マスタ端末Aの担当データがダウンロードされる。ダウンロードが完了すると、(D)に遷移する。なお、マスタ端末A以外の端末B,Cについては、(B)で指定されたコンテンツ「77人の侍」が保存されているURLがマスタ端末Aから通知され、コンテンツ「77人の侍」の中の担当データがダウンロードされることとなる。
 図7は、ダウンロード処理のシーケンスを示す説明図である。まず、マスタ端末Aは、サーバ102にアクセスして、図6の(B)のように選択したコンテンツに関するファイル(対象ファイル)のURLを取得する(ステップS701)。
 そして、マスタ端末Aは、取得したURLを端末B,Cにアドホック通信により通知する(ステップS702)。このあと、マスタ端末Aは、サーバ102にアクセスして、マスタ端末Aの担当データのダウンロード処理を実行する(ステップS703)。
 また、ステップS702でURLの通知を受けた端末Bは、サーバ102にアクセスして、端末Bの担当データのダウンロード処理を実行する(ステップS704)。そして、端末Bは、ダウンロード完了後に、担当データのダウンロードの完了通知をマスタ端末Aに送信する(ステップS705)。
 また、ステップS702でURLの通知を受けた端末Cは、サーバ102にアクセスして、端末Cの担当データのダウンロード処理を実行する(ステップS706)。そして、端末Cは、ダウンロード完了後に、担当データのダウンロードの完了通知をマスタ端末Aに送信する(ステップS707)。
 図8は、担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。図8において、サーバ102にアクセスして担当データをダウンロードする端末を「担当端末」と称す。したがって、マスタ端末Aも端末B,Cも担当端末である。
 担当端末は、まず、取得または通知を受けたサーバ102のURLにしたがって、サーバ102に対しWebページ要求を送信する(ステップS801)。サーバ102は、Webページ要求を受け付けると、担当端末に対し、Webページを送信する(ステップS802)。そして、担当端末は、Webページから対象ファイルを選択する(ステップS803)。具体的には、たとえば、マスタ端末Aの場合、図6に示した(A)、(B)のように対象ファイル(コンテンツ:「77人の侍」)を選択する。一方、端末B,Cの場合、マスタ端末Aにより対象ファイルが決められているため、対象ファイルは選択しない。
 このあと、担当端末は、ダウンロード区間算出処理を実行する(ステップS804)。ダウンロード区間算出処理(ステップS804)の詳細については後述する。ダウンロード区間算出処理(ステップS804)によりダウンロード区間が算出されると、担当端末は、サーバ102に対しダウンロード要求およびダウンロード区間I(k)を送信する。
 サーバ102は、担当端末からダウンロード要求およびダウンロード区間I(k)を受信すると、受信したダウンロード区間I(k)の担当データが対象ファイルの中に存在するか否かを判断する(ステップS805)。存在する場合(ステップS805:Yes)、サーバ102は、ダウンロード区間I(k)で規定される担当データを担当端末に送信する(ステップS806)。担当端末は、サーバ102から送信されてくる担当データを内部の記憶装置(メモリ302またはファイルシステム)に格納する(ステップS807)。
 一方、ステップS805において、受信したダウンロード区間I(k)の担当データが対象ファイルの中に存在しない場合(ステップS805:No)、サーバ102は、完了通知を担当端末に送信する(ステップS808)。これにより、担当データのダウンロード処理を終了する。
 図9は、ダウンロード区間算出処理(ステップS804)の詳細な処理手順を示すフローチャートである。まず、担当端末は、ダウンロード区間I(k)のダウンロード開始位置start(k)をstart(k)=k×Sとする(ステップS901)。また、担当端末は、ダウンロード区間I(k)のダウンロード終了位置end(k)をend(k)=start(k)+S-1とする(ステップS902)。
 ここで、kの初期値は、担当端末の端末IDである。Sはシークサイズである。シークサイズSはあらかじめ決めておく。そして、担当端末は、ダウンロード要求およびダウンロード区間I(k)をサーバ102に送信する(ステップS903)。このあと、kにn(端末数)を加算してkを更新し(ステップS904)、ステップS901に戻る。
<運用方式設定処理>
 つぎに、運用方式設定処理について説明する。運用方式とは、各端末にダウンロードされたデータを共有しあう方式である。運用方式には、分散方式、疎結合方式、密結合方式の3種類ある。分散方式とは、各端末が、サーバ102に対し担当データ以外のデータについてダウンロード要求をして、担当データ以外のデータをダウンロードする方式である。
 疎結合方式および密結合方式は、ともに、アドホック通信により他端末がダウンロードした担当データにアクセスする方式である。特に、疎結合方式は、アドホック通信により他端末がダウンロードした担当データを記憶する他端末のファイルシステムにアクセスする方式である。
 具体的には、自端末から他端末の担当データを指定する論理アドレスを、他端末のファイルシステムでのファイルパスで指定される担当データの物理アドレスに変換(論物変換)することで、他端末の担当データにアクセスする方式である。
 また、密結合方式は、担当データ以外のデータ(他端末から見れば担当データ)をダウンロードした端末内のメモリ302にアクセスする方式である。具体的には、自端末から他端末の担当データを指定する論理アドレスを、他端末のメモリ302上の担当データを指定する論理アドレスに変換(論論変換)することで、他端末の担当データにアクセスする方式である。この場合、他端末では、変換された論理アドレスを担当データの物理アドレスに変換(論物変換)することで、担当データにアクセスすることとなる。
 図10は、運用方式設定シーケンスを示す説明図である。アドホック通信の接続元端末および接続先端末ともに、一定時間経過するのを待ち受け(ステップS1001:No)、一定時間経過した場合(ステップS1001:Yes)、GPSレシーバ306で受信したデータを用いて自端末の現在位置を示す座標情報を更新して(ステップS1002)、ステップS1001に戻る。
 このように接続元端末および接続先端末の現在位置を示す座標情報がリアルタイムで更新される状況下で、接続元端末は、接続先端末の座標情報取得要求を接続先端末に送信する(ステップS1003)。接続先端末は、座標情報取得要求を受信すると、接続先端末の最新の座標情報を接続元端末に送信する(ステップS1004)。
 接続元端末は、接続先端末の座標情報を受信すると、接続先端末との相対距離を算出する(ステップS1005)。そして、接続元端末は、運用方式決定処理を実行する(ステップS1006)。運用方式決定処理(ステップS1006)の詳細については後述する。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1007)。
 その後、接続元端末は、接続元端末での運用方式設定処理を実行し(ステップS1008)、接続先端末は、接続先端末での運用方式設定処理を実行する(ステップS1009)。各運用方式設定処理(ステップS1008、S1009)の詳細については後述するが、接続元端末および接続先端末の現在位置を示す座標情報がリアルタイムで更新される。したがって、運用方式は動的に変更されることとなり、状況に応じて最適な運用方式に決定されることとなる。
 図11は、図10に示した運用方式決定処理(ステップS1006)の詳細な処理手順を示すフローチャートである。まず、この運用方式決定処理(ステップS1006)では、端末間の相対距離や通信帯域Rtとストレージ帯域Rs/メモリ帯域Rmとの比較結果に応じて接続元端末と接続先端末との運用方式が決定される。なお、通信帯域Rtの比較においては、ある程度のレンジ(本例では±ΔRt)を持たせることとする。また、ストレージ帯域Rs/メモリ帯域Rmは、自端末内のメモリ302またはストレージ303に記憶されているものとする。
 まず、接続元端末は、座標情報取得期間の通信帯域Rtを検出する(ステップS1101)。そして、接続元端末は、接続元端末の座標情報と接続先端末の座標情報とで求められる相対距離が所定距離以内か否かを判断する(ステップS1102)。
 所定距離以内でない場合(ステップS1102:No)、接続元端末は、接続元端末と接続先端末との間の運用方式を分散方式に決定する(ステップS1103)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
 一方、ステップS1102において、相対距離が所定距離以内である場合(ステップS1102:Yes)、接続元端末は、通信帯域Rtとストレージ帯域Rsとを比較する(ステップS1105)。そして、通信帯域Rtとストレージ帯域Rsとの比較結果が、Rt<Rs-ΔRsである場合(ステップS1105:Rt<Rs-ΔRs)、接続元端末は、接続元端末と接続先端末との間の運用方式を分散方式に決定する(ステップS1103)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
 一方、通信帯域Rtとストレージ帯域Rsとの比較結果が、Rs-ΔRs≦Rt≦Rs+ΔRsである場合(ステップS1105:Rs-ΔRs≦Rt≦Rs+ΔRs)、接続元端末は、接続元端末と接続先端末との間の運用方式を疎結合方式に決定する(ステップS1106)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
 また、通信帯域Rtとストレージ帯域Rsとの比較結果が、Rt>Rs+ΔRsである場合(ステップS1105:Rt>Rs+ΔRs)、接続元端末は、通信帯域Rtとメモリ帯域Rmとを比較する(ステップS1107)。そして、通信帯域Rtとメモリ帯域Rmとの比較結果が、Rt<Rmである場合(ステップS1107:Rt<Rm)、接続元端末は、接続元端末と接続先端末との間の運用方式を疎結合方式に決定する(ステップS1106)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
 一方、通信帯域Rtとメモリ帯域Rmとの比較結果が、Rt≧Rmである場合(ステップS1107:Rt≧Rm)、接続元端末は、接続元端末と接続先端末との間の運用方式を密結合方式に決定する(ステップS1108)。そして、接続元端末は、決定された運用方式を接続先端末に通知する(ステップS1104)。
 このように、端末間の相対距離や通信帯域Rtの大きさに応じて接続元端末と接続先端末との間の運用方式が決定されることとなる。なお、ステップS1102において、相対距離が所定距離以内である場合(ステップS1102:Yes)、通信帯域Rtとストレージ帯域Rsとを比較(ステップS1105)するまでもなく、疎結合方式に決定してもよい。
 また、ステップS1102において、相対距離が所定距離以内である場合(ステップS1102:Yes)、通信帯域Rtとストレージ帯域Rsとを比較(ステップS1105)や通信帯域Rtとメモリ帯域Rmとを比較(ステップS1107)するまでもなく、密結合方式に決定してもよい。
 また、ステップS1105において、通信帯域Rtとストレージ帯域Rsとの比較結果が、Rt>Rs+ΔRsである場合(ステップS1105:Rt>Rs+ΔRs)、通信帯域Rtとメモリ帯域Rmとを比較(ステップS1107)するまでもなく、疎結合方式または密結合方式のいずれか一方の方式に決定してもよい。
 図12は、図10に示した接続元端末での運用方式設定処理(ステップS1008)の詳細な処理手順を示すフローチャートである。まず、接続元端末は、決定された運用方式を確認する(ステップS1201)。分散方式である場合(ステップS1201:分散)、接続元端末での運用方式設定処理(ステップS1008)を終了する。
 一方、疎結合方式である場合(ステップS1201:疎結合)、接続元端末は、接続先端末にダウンロードされた担当データのファイルパスを接続先端末から取得する(ステップS1202)。つぎに、接続元端末は、接続先端末にダウンロードされた担当データを指定する論理アドレスをアプリケーションが参照可能な論理アドレス空間に設定する(ステップS1203)。
 そして、接続元端末は、ステップS1202で取得したファイルパスを、ステップS1203での指定論理アドレスに書き込む。このあと、接続元端末は、論論変換停止設定をおこなう(ステップS1205)。これにより、接続元端末での運用方式設定処理(ステップS1008)を終了する。
 また、ステップS1201において、密結合方式である場合(ステップS1201:密結合)、接続元端末は、接続先端末でダウンロードされた担当データの接続元端末での論理アドレス(変換元論理アドレス)を論理アドレス空間に設定する(ステップS1206)。つぎに、接続元端末は、接続先端末でダウンロードされた担当データの接続先端末での論理アドレス(変換先論理アドレス)を接続先端末から取得する(ステップS1207)。
 そして、接続元端末は、論論変換テーブルを生成する(ステップS1208)。論論変換テーブルとは、変換元論理アドレスと変換先論理アドレスと変換先となる接続先端末の端末IDとを対応付けたテーブルである。このあと、接続元端末は、論論変換起動設定をおこなう(ステップS1209)。論論変換起動設定とは、論論変換テーブルへのアクセスを可能にする設定である。
 これにより、接続元端末での運用方式設定処理(ステップS1008)を終了する。このように、接続元端末での運用方式設定処理(ステップS1008)では、疎結合または密結合に応じて接続先端末とのマウントをおこなうことができる。
 図13は、図10に示した接続先端末での運用方式設定処理(ステップS1009)の詳細な処理手順を示すフローチャートである。接続先端末は、接続元端末からの運用方式を待ち受け(ステップS1301:No)、運用方式が受信された場合(ステップS1301:Yes)、接続先端末は、受信された運用方式を確認する(ステップS1302)。分散方式である場合(ステップS1302:分散)、接続先端末での運用方式設定処理(ステップS1009)を終了する。
 一方、疎結合方式である場合(ステップS1302:疎結合)、接続先端末は、接続元端末にダウンロードされた担当データのファイルパスを接続元端末から取得する(ステップS1303)。つぎに、接続先端末は、接続元端末にダウンロードされた担当データを指定する論理アドレスをアプリケーションが参照可能な論理アドレス空間に設定する(ステップS1304)。
 そして、接続先端末は、ステップS1303で取得したファイルパスを、ステップS1304での指定論理アドレスに書き込む。このあと、接続先端末は、論論変換停止設定をおこなう(ステップS1306)。これにより、接続先端末での運用方式設定処理(ステップS1009)を終了する。
 また、ステップS1302において、密結合方式である場合(ステップS1302:密結合)、接続先端末は、接続元端末でダウンロードされた担当データの接続先端末での論理アドレス(変換元論理アドレス)を論理アドレス空間に設定する(ステップS1307)。つぎに、接続先端末は、接続元端末でダウンロードされた担当データの接続元端末での論理アドレス(変換先論理アドレス)を接続元端末から取得する(ステップS1308)。
 そして、接続先端末は、論論変換テーブルを生成する(ステップS1309)。論論変換テーブルとは、変換元論理アドレスと変換先論理アドレスと変換先となる接続元端末の端末IDとを対応付けたテーブルである。このあと、接続先端末は、論論変換起動設定をおこなう(ステップS1310)。論論変換起動設定とは、論論変換テーブルへのアクセスを可能にする設定である。これにより、接続先端末での運用方式設定処理(ステップS1009)を終了する。このように、接続先端末での運用方式設定処理(ステップS1009)では、疎結合または密結合に応じて接続元端末とのマウントをおこなうことができる。
 すなわち、接続元端末での運用方式設定処理(ステップS1008)と接続先端末での運用方式設定処理(ステップS1009)とが実行されることで、接続元端末と接続先端末との間でクロスマウントが実現されることとなる。
<疎結合の具体例>
 つぎに、疎結合の具体例について図14~図17を用いて説明する。
 図14は、端末Aおよび端末Bにおいてそれぞれ担当データDa,Dbをダウンロードした状態を示す説明図である。図14において、端末Aの担当データDaのファイルシステムFSaでのファイルパスをfpa、端末Bの担当データDbのファイルシステムFSbでのファイルパスをfpbとする。
 また、端末Aの担当データDaは、端末Aのアプリケーションから見える論理アドレス空間LSa内では、論理アドレス[0x0150,0x0249]に保存されているものとする。また、端末Bの担当データDbは、端末Bのアプリケーションから見える論理アドレス空間LSb内では、論理アドレス[0x0200,0x0299]に保存されているものとする。
 図15は、図14に示した状態から、端末Aを接続元端末、端末Bを接続先端末として疎結合した状態を示す説明図である。具体的には、端末Aの論理アドレス空間LSaの空きアドレスには、端末Bの端末IDおよび担当データDbへのファイルパスfpbが設定される。これにより、端末BのファイルシステムFSbが端末Aにマウントされることとなる。同様に、端末Bの論理アドレス空間LSbの空きアドレスには、端末Aの端末IDおよび担当データDaへのファイルパスfpaが設定される。これにより、端末AのファイルシステムFSaが端末Bにマウントされることとなる。
 図16は、図15による疎結合設定後におけるデータアクセスを示す説明図(その1)である。図16では、端末Aが担当データDa,Dbにアクセスする例である。端末Aが担当データDaにアクセスする場合は、端末Aのアプリケーションが論理アドレス空間LSaの担当データDaの論理アドレスを指定することで、端末Aのストレージ303のコントローラが担当データDaへのファイルパスfpaを参照して論物変換する。そして、論物変換された物理アドレスを指定することで、端末Aは、担当データDaにアクセスすることができる。
 また、端末Aが担当データDbにアクセスする場合は、端末Aのアプリケーションが論理アドレス空間LSaの端末Bの端末IDおよびファイルパスfpbを有する論理アドレスを指定し、通信ドライバを起動する。そして、端末Aは通信ドライバを介して、端末Bに対しファイルパスfpbを送信する。端末Bでは、端末Aからのファイルパスfpbを参照して、端末Bのストレージ303内の担当データDbにアクセスする。
 そして、リードアクセスの場合は、端末Bは担当データDbを端末Aに送信する。端末Aは端末Bからの担当データDbを受信する。また、ライトアクセスの場合は、端末Bはライト完了通知を端末Aに送信する。このように、端末Aは、担当データDbにアクセスすることができる。
 図17は、図15による疎結合設定後におけるデータアクセスを示す説明図(その2)である。図17では、端末Bが担当データDa,Dbにアクセスする例である。端末Bが担当データDbにアクセスする場合は、端末Bのアプリケーションが論理アドレス空間LSbの担当データDbの論理アドレスを指定することで、端末B内のストレージ303のコントローラが担当データDbへのファイルパスfpbを参照して論物変換する。そして、論物変換された物理アドレスを指定することで、端末Bは、担当データDbにアクセスすることができる。
 また、端末Bが担当データDaにアクセスする場合は、端末Bのアプリケーションが論理アドレス空間LSbの端末Aの端末IDおよびファイルパスfpaを有する論理アドレスを指定し、通信ドライバを起動する。そして、端末Bは通信ドライバを介して、端末Aに対しファイルパスfpaを送信する。端末Aでは、端末Bからのファイルパスfpaを参照して、端末Aのストレージ303内の担当データDaにアクセスする。
 そして、リードアクセスの場合は、端末Aは担当データDaを端末Bに送信する。端末Bは端末Aからの担当データDaを受信する。また、ライトアクセスの場合は、端末Aはライト完了通知を端末Bに送信する。このように、端末Bは、担当データDaにアクセスすることができる。
<密結合の具体例>
 つぎに、密結合の具体例について図18~図21を用いて説明する。
 図18は、端末Aおよび端末Bにおいてそれぞれ担当データDa,Dbをダウンロードした状態を示す説明図である。図18において、端末Aの担当データDaのファイルシステムFSaでのファイルパスをfpa、端末Bの担当データDbのファイルシステムFSbでのファイルパスをfpbとする。
 また、端末Aの担当データDaは、端末Aのアプリケーションから見える論理アドレス空間LSa内では、論理アドレス[0x0150,0x0249]に保存されているものとする。また、端末Bの担当データDbは、端末Bのアプリケーションから見える論理アドレス空間LSb内では、論理アドレス[0x0200,0x0299]に保存されているものとする。
 また、端末Aは、密結合状態になると、担当データDaを端末Aのストレージ303内のファイルシステムFSaから端末Aのメモリ302(以下、メモリMa)に読み出す。すでに読み出されている場合は不要である。担当データDaのメモリMa上の物理アドレス[0x1100,0x1199]は、論理アドレス空間LSaの論理アドレス[0x0150,0x0249]に対応づけされる。これにより、メモリMaのコントローラは、論理アドレス[0x0150,0x0249]が指定されると、メモリMa上の物理アドレス[0x1100,0x1199]に論物変換する。
 同様に、端末Bは、密結合状態になると、担当データDbを端末Bのストレージ303内のファイルシステムFSbから端末Bのメモリ302(以下、メモリMb)に読み出す。すでに読み出されている場合は不要である。担当データDbのメモリ302上の物理アドレス[0x1150,0x1249]は、論理アドレス空間LSbの論理アドレス[0x0200,0x0299]に対応づけされる。これにより、メモリMbのコントローラは、論理アドレス[0x1150,0x1249]が指定されると、メモリMb上の物理アドレス[0x0200,0x0299]に論物変換する。
 図19は、図18に示した状態から、端末Aを接続元端末、端末Bを接続先端末として密結合した状態を示す説明図である。具体的には、端末Aは、担当データDbの論理アドレス(変換先論理アドレス)を端末Bから取得し、端末Aの論理アドレス空間に担当データDbの変換元論理アドレスを割り当てる。そして、端末Aは、変換元論理アドレスと変換先端末IDと変換先論理アドレスとを対応付けした論論変換テーブルLLTaを生成する。これにより、端末BのメモリMbが端末Aにマウントされることとなる。
 同様に、端末Bは、担当データDaの論理アドレス(変換先論理アドレス)を端末Aから取得し、端末Bの論理アドレス空間に担当データDaの変換元論理アドレスを割り当てる。そして、端末Bは、変換元論理アドレスと変換先端末IDと変換先論理アドレスとを対応付けした論論変換テーブルLLTbを生成する。これにより、端末AのメモリMaが端末Bにマウントされることとなる。
 図20は、図19による密結合設定後におけるデータアクセスを示す説明図(その1)である。図20では、端末Aが担当データDa,Dbにアクセスする例である。端末Aが担当データDaにアクセスする場合は、端末Aのアプリケーションが論理アドレス空間LSaの担当データDaの論理アドレスを指定することで、メモリMaのコントローラが担当データDaの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Aは、メモリMa上の担当データDaにアクセスすることができる。
 また、端末Aが担当データDbにアクセスする場合は、端末Aのアプリケーションが論理アドレス空間LSaの担当データDbの論理アドレスを指定し、指定した論理アドレスを変換元論理アドレスとして論論変換テーブルLLTaを参照する。論論変換テーブルLLTaでは、変換先の端末IDと変換先論理アドレスが特定される。
 したがって、端末Aは、通信ドライバを起動して、変換先である端末Bに対し、変換先論理アドレスを送信する。端末Bでは、端末Aからの変換先論理アドレスを参照して、メモリ302のコントローラが担当データDbの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Bは、メモリMb上の担当データDbにアクセスすることができる。
 このあと、リードアクセスの場合は、端末Bは担当データDbを端末Aに送信する。端末Aは端末Bからの担当データDbを受信する。また、ライトアクセスの場合は、端末Bはライト完了通知を端末Aに送信する。このように、端末Aは、担当データDbにアクセスすることができる。
 図21は、図19による密結合設定後におけるデータアクセスを示す説明図(その2)である。図21では、端末Bが担当データDa,Dbにアクセスする例である。端末Bが担当データDbにアクセスする場合は、端末Bのアプリケーションが論理アドレス空間LSbの担当データDbの論理アドレスを指定することで、メモリMbのコントローラが担当データDbの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Bは、メモリMb上の担当データDbにアクセスすることができる。
 また、端末Bが担当データDaにアクセスする場合は、端末Bのアプリケーションが論理アドレス空間LSbの担当データDaの論理アドレスを指定し、指定した論理アドレスを変換元論理アドレスとして論論変換テーブルLLTbを参照する。論論変換テーブルLLTbでは、変換先の端末IDと変換先論理アドレスが特定される。
 したがって、端末Bは、通信ドライバを起動して、変換先である端末Aに対し、変換先論理アドレスを送信する。端末Aでは、端末Bからの変換先論理アドレスを参照して、メモリMaのコントローラが担当データDaの物理アドレスに論物変換する。そして、論物変換された物理アドレスを指定することで、端末Aは、メモリMa上の担当データDaにアクセスすることができる。
 このあと、リードアクセスの場合は、端末Aは担当データDaを端末Bに送信する。端末Bは端末Aからの担当データDaを受信する。また、ライトアクセスの場合は、端末Aはライト完了通知を端末Bに送信する。このように、端末Bは、担当データDaにアクセスすることができる。
 図22は、端末間のデータアクセス処理のシーケンスを示す説明図である。まずアクセス元端末は、データアクセス(リード/ライト)要求があるまで待ち受け(ステップS2201:No)、データアクセス要求があった場合(ステップS2201:Yes)、アクセス元端末は、論論変換が起動しているか否かを判断する(ステップS2202)。起動している場合(ステップS2202:Yes)、アクセス元端末は、論論変換テーブルを参照して論論変換を実行する(ステップS2203)。
 一方、論論変換が起動していない場合(ステップS2202:No)、ステップS2204に移行する。ステップS2204では、アクセス先端末は、アクセス先が自端末(アクセス元端末)であるか否かを判断する(ステップS2204)。具体的には、たとえば、疎結合においては端末IDおよびファイルパスが指定されている場合は、端末IDで指定された端末がアクセス先端末となる。密結合の場合は、論論変換テーブルを参照した場合に端末IDで指定された端末がアクセス先端末となる。
 アクセス先が自端末である場合(ステップS2204:Yes)、アクセス元端末は、アクセス要求で指定された論理アドレスを物理アドレスに論物変換する(ステップS2205)。そして、アクセス元端末は、自端末内の変換された物理アドレスにアクセスする(ステップS2206)。これにより、データアクセスが終了する。
 一方、ステップS2204において、アクセス先が他端末である場合(ステップS2204:No)、アクセス元端末は、通信ドライバを起動して(ステップS2207)、端末間データアクセス処理を実行する(ステップS2208)。これにより、アドホック通信でアクセス先端末へのデータアクセスが可能となる。
 図23は、図22に示した端末間データアクセス処理(ステップS2208)の詳細な処理手順を示すシーケンス図(その1)である。図23は、データアクセスがリードである場合を示している。まず、アクセス元端末が、アドホック通信により、アクセス先端末にリード要求を送信する(ステップS2301)。アクセス先端末は、リード要求を受信すると、リード要求を解析する(ステップS2302)。具体的には、たとえば、アクセス先端末は、リード要求に含まれている情報を取り出す。疎結合の場合はファイルパス、密結合の場合は変換先論理アドレスを取り出す。
 そして、アクセス先端末は、解析で得られた情報に基づいて、リード先となる物理アドレスを特定する(ステップS2303)。具体的には、たとえば、ファイルパスが取り出された場合は、アクセス先端末は、ファイルパスを参照して物理アドレスを特定する。変換先論理アドレスが取り出された場合は、変換先論理アドレスを論物変換して物理アドレスを特定する。
 このあと、アクセス先端末は、特定された物理アドレスにアクセスして対象データを読み出す(ステップS2304)。そして、アクセス先端末は、リード要求の送信元であるアクセス元端末に、読み出した対象データを送信する(ステップS2305)。アクセス元端末は、アクセス先端末から送信されてくる対象データを受信する(ステップS2306)。これにより、リード時の端末間データアクセス処理(ステップS2208)を終了する。
 図24は、図22に示した端末間データアクセス処理(ステップS2208)の詳細な処理手順を示すシーケンス図(その2)である。図24は、データアクセスがライトである場合を示している。まず、アクセス元端末が、アドホック通信により、アクセス先端末にライト要求および対象データを送信する(ステップS2401)。アクセス先端末は、ライト要求を受信すると、ライト要求を解析する(ステップS2402)。具体的には、たとえば、アクセス先端末は、ライト要求に含まれている情報を取り出す。疎結合の場合はファイルパスおよび対象データ、密結合の場合は変換先論理アドレスおよび対象データを取り出す。
 そして、アクセス先端末は、解析で得られた情報に基づいて、リード先となる物理アドレスを特定する(ステップS2403)。具体的には、たとえば、ファイルパスが取り出された場合は、アクセス先端末は、ファイルパスを参照して物理アドレスを特定する。変換先論理アドレスが取り出された場合は、変換先論理アドレスを論物変換して物理アドレスを特定する。
 このあと、アクセス先端末は、特定された物理アドレスにアクセスして対象データを書き込む(ステップS2404)。そして、アクセス先端末は、ライト要求の送信元であるアクセス元端末に、ライト完了通知を送信する(ステップS2405)。これにより、ライト時の端末間データアクセス処理(ステップS2208)を終了する。このように、端末間においてクロスマウントをしておくことで、端末間でのデータアクセスが可能となる。
<担当データのダウンロード処理の他の例1>
 図25は、担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。図8では、担当端末が主体となって担当データをダウンロードする処理について説明したが、図25では、サーバ102が主体となって担当データをダウンロードする処理について説明する。なお、図8と同一処理については同一ステップ番号を付し、その説明を省略する。
 ステップS803において対象ファイルを選択したあと、担当端末は、サーバ102に対し、ダウンロード要求と端末ID(=k)と端末総数nとを送信する(ステップS2504)。そして、サーバ102は、ダウンロード区間算出処理を実行する(ステップS2505)。ダウンロード区間算出処理(ステップS2505)については後述する。このあと、サーバ102は、ダウンロード区間で指定された担当データを担当端末に送信する(ステップS2506)。
 担当端末は、受信した担当データをメモリ302またはストレージ303に格納する(ステップS2507)。このあと、すべての担当データをダウンロードした場合、サーバ102は、担当端末に完了通知を送信する(ステップS2508)。これにより、担当データのダウンロード処理を終了する。
 図26は、図25に示したダウンロード区間算出処理(ステップS2505)の詳細な処理手順を示すフローチャートである。まず、サーバ102は、ダウンロード区間I(k)のダウンロード開始位置start(k)をstart(k)=k×Sとする(ステップS2601)。また、サーバ102は、ダウンロード区間I(k)のダウンロード終了位置end(k)をend(k)=start(k)+S-1とする(ステップS2602)。
 サーバ102は、受信したダウンロード区間I(k)で指定される担当データが対象ファイルの中に存在するか否かを判断する(ステップS2603)。存在する場合(ステップS2603:Yes)、サーバ102は、ダウンロード区間I(k)で指定される担当データを担当端末に送信する(ステップS2604)。
 なお、担当端末は、サーバ102から送信されてくる担当データを内部の記憶装置(メモリ302またはストレージ303)に格納することとなる(ステップS2507)。このあと、サーバ102は、kにnを加算して更新し(ステップS2605)、ステップS2601に戻る。これにより、ダウンロード開始位置およびダウンロード終了位置が更新されることとなる。
 一方、ステップS2603において、受信したダウンロード区間I(k)で指定される担当データが対象ファイルの中に存在しない場合(ステップS2603:No)、サーバ102は、完了通知を担当端末に送信する(ステップS2606)。これにより、担当データのダウンロード処理を終了する。
<担当データのダウンロード処理の他の例2>
 図27は、担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。図8では、担当端末が主体となって担当データをダウンロードする処理について説明したが、図27では、担当端末が主体となって性能差を考慮して担当データをダウンロードする処理について説明する。なお、図8と同一処理については同一ステップ番号を付し、その説明を省略する。また、マスタ端末以外の担当端末を「スレーブ端末」と称す。
 ステップS803において対象ファイルを選択したあと、マスタ端末は、ダウンロード区間算出処理を実行する(ステップS2704)。ダウンロード区間算出処理(ステップS2704)の詳細については後述する。
 ダウンロード区間算出処理(ステップS2704)では、マスタ端末は、サーバ102に対し、ダウンロード要求およびマスタ端末のダウンロード区間I(j)を送信することとなる(ステップS2705)。また、マスタ端末は、ダウンロード区間算出処理(ステップS2704)において、スレーブ端末に対し、スレーブ端末のダウンロード区間I(j)を送信することとなる(ステップS2706)。
 このあと、スレーブ端末は、サーバ102に対し、ダウンロード要求およびスレーブ端末のダウンロード区間I(j)を送信する(ステップS2707)。サーバ102は、ダウンロード要求およびダウンロード区間I(j)を受信すると、受信したダウンロード区間I(j)の担当データが対象ファイルの中に存在するか否かを判断する(ステップS2708)。存在する場合(ステップS2708:Yes)、サーバ102は、ダウンロード区間I(j)で規定される担当データをダウンロード区間I(j)の送信元の端末(マスタ端末またはスレーブ端末)に送信する(ステップS2709)。
 マスタ端末は、サーバ102から送信されてくる担当データを内部の記憶装置(メモリ302またはファイルシステム)に格納する(ステップS2710)。スレーブ端末は、サーバ102から送信されてくる担当データを内部の記憶装置(メモリ302またはストレージ303)に格納する(ステップS2711)。
 一方、ステップS2708において、受信したダウンロード区間I(j)の担当データが対象ファイルの中に存在しない場合(ステップS2708:No)、サーバ102は、完了通知をダウンロード区間I(j)の送信元の端末(マスタ端末またはスレーブ端末)に送信する(ステップS2712)。
 図28は、図27に示したダウンロード区間算出処理(ステップS2704)の詳細な処理手順を示すフローチャートである。まず、マスタ端末は、端末IDであるkをk=0、端末ID=kの端末(k=0ならマスタ端末A、k=1、2ならスレーブ端末B,C)のシークサイズS(k)を、S(k)=S×{b(k)/Σb(k)}に設定する(ステップS2801)。
 Sは固定のシークサイズ、b(k)は端末ID=kの端末の通信回線速度、Σb(k)は、データ共有しあう全端末(端末A~C)の通信回線速度の総和である。すなわち、シークサイズS(k)は、端末の性能差を考慮したシークサイズとなる。なお、スレーブ端末の通信回線速度b(k)は定期的に取得するものとする。
 つぎに、マスタ端末は、変数jをj=kとし(ステップS2802)、j=0であるか否かを判断する(ステップS2803)。j=0である場合(ステップS2803:Yes)、マスタ端末Aは、対象ファイルのダウンロード区間I(j)のダウンロード開始位置start(j)をstart(j)=0とし(ステップS2804)、ステップS2806に移行する。一方、j=0でない場合(ステップS2803:No)、マスタ端末Aは、対象ファイルのダウンロード開始位置start(j)をstart(j)=end(j-1)+1とし(ステップS2804)、ステップS2806に移行する。
 ステップS2806では、マスタ端末は、ダウンロード区間I(j)のダウンロード終了位置end(j)をend(j)=start(j)+S(k)-1に設定する(ステップS2806)。そして、マスタ端末Aは、端末IDであるkがk=0であるか否かを判断する(ステップS2807)。k=0である場合(ステップS2807:Yes)、マスタ端末Aは、マスタ端末A(k=0)からのダウンロード要求およびダウンロード区間I(j)をサーバ102に送信し(ステップS2808)、ステップS2810に移行する。
 一方、k=0でない場合(ステップS2807:No)、マスタ端末は、端末ID=k(k≠0)のスレーブ端末に対し、そのダウンロード区間I(j)を送信して(ステップS2809)、ステップS2810に移行する。
 ステップS2810では、マスタ端末は、変数jをインクリメントし(ステップS2810)、端末IDであるkもインクリメントする(ステップS2811)。そして、マスタ端末Aは、k=nであるか否かを判断する(ステップS2812)。nは端末総数である。k=nでない場合(ステップS2812:No)、ステップS2803に戻る。一方、k=nである場合(ステップS2812:Yes)、マスタ端末は、k=0に戻して(ステップS2813)、ステップS2803に戻る。
 これにより、担当端末の性能、すなわち、シークサイズS(k)に応じて、ダウンロード区間I(k)の区間幅が変動するため、性能がよい担当端末ほどダウンロードするファイルサイズが大きくなることとなる。
<担当データのダウンロード処理の他の例3>
 図29は、担当データのダウンロード処理(ステップS703、S704、S706)の詳細な処理手順を示すシーケンス図である。図27では、担当端末が主体となって性能差を考慮して担当データをダウンロードする処理について説明したが、図29では、サーバ102が主体となって担当端末の性能差を考慮して担当データをダウンロードする処理について説明する。なお、図8と同一処理については同一ステップ番号を付し、その説明を省略する。
 ステップS803において対象ファイルを選択したあと、担当端末は、サーバ102に対し、ダウンロード要求、端末ID(=k)、回線速度b(k)を送信する(ステップS2904)。サーバ102は、担当端末からのダウンロード要求を受信すると、ダウンロード区間算出処理を実行する(ステップS2905)。ダウンロード区間算出処理(ステップS2905)の詳細については後述する。
 サーバ102は、ダウンロード区間I(k)を算出すると、対象ファイルのうちダウンロード区間I(k)で指定される担当データを担当端末に送信する(ステップS2906)。担当端末は、担当データを受信すると、担当データを記憶装置(メモリ302またはファイルシステム)に格納する(ステップS2907)。なお、サーバ102は、ダウンロード区間算出処理(ステップS2905)において、ダウンロード区間I(k)で指定される担当データがない場合は、担当端末に対し完了通知を送信する(ステップS2908)。
 図30は、図29に示したダウンロード区間算出処理(ステップS2905)の詳細な処理手順を示すフローチャートである。まず、サーバ102は、端末IDであるkをk=0、端末ID=kの担当端末のシークサイズS(k)を、S(k)=S×{b(k)/Σb(k)}に設定する(ステップS3001)。
 Sは固定のシークサイズ、b(k)は端末ID=kの担当端末の通信回線速度、Σb(k)は、データ共有しあう全端末(担当端末A~C)の通信回線速度の総和である。すなわち、シークサイズS(k)は、担当端末の性能差を考慮したシークサイズとなる。なお、ダウンロード区間算出処理(ステップS2905)は、すべての担当端末の通信回線速度b(k)がないと実行できないため、ある担当端末からダウンロード要求があった場合に、残りの担当端末の通信回線速度を取得してもよい。また、定期的にすべての担当端末の通信回線速度を取得し、最新の通信回線速度を用いることとしてもよい。
 つぎに、サーバ102は、変数jをj=kとし(ステップS3002)、j=0であるか否かを判断する(ステップS3003)。j=0である場合(ステップS3003:Yes)、サーバ102は、対象ファイルのダウンロード区間I(j)のダウンロード開始位置start(j)をstart(j)=0とし(ステップS3004)、ステップS3006に移行する。一方、j=0でない場合(ステップS3003:No)、サーバ102は、対象ファイルのダウンロード開始位置start(j)をstart(j)=end(j-1)+1とし(ステップS3005)、ステップS3006に移行する。
 ステップS3006では、サーバ102は、ダウンロード区間I(j)のダウンロード終了位置end(j)をend(j)=start(j)+S(k)-1に設定する(ステップS3006)。そして、サーバ102は、ダウンロード区間I(j)で指定される担当データがあるか否かを判断する(ステップS3007)。
 ダウンロード区間I(j)で指定される担当データがある場合(ステップS3007:Yes)、サーバ102は、ダウンロード区間I(j)で指定される担当データを端末ID=kの担当端末に送信する(ステップS3008)。このあと、変数jをインクリメントし(ステップS3009)、端末IDであるkもインクリメントする(ステップS3010)。
 そして、サーバ102は、k=nであるか否かを判断する(ステップS3011)。nは端末総数である。k=nでない場合(ステップS3011:No)、ステップS3003に戻る。一方、k=nである場合(ステップS3011:Yes)、サーバ102は、k=0に戻して(ステップS3012)、ステップS3003に戻る。
 また、ステップS3007において、ダウンロード区間I(j)で指定される担当データがない場合(ステップS3007:No)、サーバ102は、端末ID=kの担当端末に対し、完了通知を送信する(ステップS3013)。これにより、ダウンロード区間算出処理(ステップS2905)を終了する。
 これにより、担当端末の性能、すなわち、シークサイズS(k)に応じて、ダウンロード区間I(k)の区間幅が変動するため、性能がよい担当端末ほどダウンロードするファイルサイズが大きくなることとなる。
 以上説明したように、本実施の形態によれば、複数の端末間で効率的なデータ共有を実現することができる。また、接続先端末との通信帯域の大きさや相対距離に応じて運用方式を動的に切り替えることができる。したがって、端末間で効率のよいデータ共有を実現することができる。さらに、サーバ102からのダウンロードを各端末の性能差を考慮しておこなうことができるため、ダウンロードによる端末への負荷を端末の性能に応じて分散させることができる。
 なお、上述したフローチャートは、実行主体がサーバ102の場合は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205などの記憶装置に記憶されたプログラムをCPU201に実行させることにより実現されることとなる。実行主体が端末の場合は、具体的には、たとえば、図3に示したメモリ302、ストレージ303などの記憶装置に記憶されたプログラムをプロセッサ301に実行させることにより実現されることとなる。
100 データ共有システム
101 基地局
103 ネットワーク
102 サーバ
302 メモリ
303 ストレージ
Rt 通信帯域
Rs ストレージ帯域
Rm メモリ帯域
FSa ファイルシステム
FSb ファイルシステム
LSa 論理アドレス空間
LSb 論理アドレス空間
LLTa 論論変換テーブル
LLTb 論論変換テーブル

Claims (25)

  1.  アドホックネットワーク内で通信可能に接続されている第1の端末と第2の端末との間の通信帯域を検出する検出工程と、
     前記検出工程によって検出された通信帯域と前記第1の端末の記憶装置に関する帯域とを比較する比較工程と、
     前記比較工程によって比較された比較結果に基づいて、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
     前記決定工程によって決定された運用方式を前記第1の端末から前記第2の端末に通知する通知工程と、
     前記決定工程によって決定された運用方式に基づいて、前記第2の端末から前記第1の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
     を前記第1の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
  2.  前記比較工程は、
     前記通信帯域と前記第1の端末の記憶装置のうち主記憶装置に関する帯域とを比較し、
     前記決定工程は、
     前記通信帯域が前記主記憶装置に関する帯域以上である場合、前記データ共有に関する運用方式を、前記第2の端末から前記第1の端末の主記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の主記憶装置へのアクセスする密結合方式に決定し、
     前記設定工程は、
     前記決定工程によって密結合方式に決定された場合、前記第2の端末から前記第1の端末の主記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項1に記載のデータ共有プログラム。
  3.  前記決定工程は、
     前記通信帯域が前記主記憶装置に関する帯域以上でない場合、前記データ共有に関する運用方式を、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の補助記憶装置へのアクセスする疎結合方式に決定し、
     前記設定工程は、
     前記決定工程によって疎結合方式に決定された場合、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項2に記載のデータ共有プログラム。
  4.  前記比較工程は、
     前記通信帯域と前記第1の端末の記憶装置のうち補助記憶装置に関する帯域とを比較して、前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも大きかった場合、さらに、前記通信帯域と前記第1の端末の記憶装置のうち主記憶装置に関する帯域とを比較することを特徴とする請求項2または3に記載のデータ共有プログラム。
  5.  前記第1の端末と前記第2の端末との相対距離を取得する取得工程と、
     前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第1の端末のプロセッサに実行させ、
     前記比較工程は、
     前記判断工程によって前記所定距離以内であると判断された場合、前記通信帯域と前記第1の端末の記憶装置のうち主記憶装置に関する帯域とを比較することを特徴とする請求項2または3に記載のデータ共有プログラム。
  6.  前記比較工程は、
     前記通信帯域と前記第1の端末の記憶装置のうち補助記憶装置に関する帯域とを比較し、
     前記決定工程は、
     前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲内である場合、前記データ共有に関する運用方式を、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の補助記憶装置へのアクセスする疎結合方式に決定し、
     前記設定工程は、
     前記決定工程によって疎結合方式に決定された場合、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項1に記載のデータ共有プログラム。
  7.  前記比較工程は、
     前記通信帯域と前記第1の端末の記憶装置のうち補助記憶装置に関する帯域とを比較し、
     前記決定工程は、
     前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも大きい場合、前記データ共有に関する運用方式を、前記第2の端末から前記第1の端末の主記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の主記憶装置へのアクセスする密結合方式に決定し、
     前記設定工程は、
     前記決定工程によって密結合方式に決定された場合、前記第2の端末から前記第1の端末の主記憶装置および補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項6に記載のデータ共有プログラム。
  8.  前記決定工程は、
     前記通信帯域と前記補助記憶装置に関する帯域との帯域差が許容範囲外で、かつ、前記通信帯域が前記補助記憶装置に関する帯域よりも小さい場合、前記データ共有に関する運用方式を、前記第1および第2の端末が前記第1および第2の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式に決定し、
     前記設定工程は、
     前記取得元サーバにアクセスして前記第2の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする請求項5または6に記載のデータ共有プログラム。
  9.  前記第1の端末と前記第2の端末との相対距離を取得する取得工程と、
     前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第1の端末のプロセッサに実行させ、
     前記比較工程は、
     前記判断工程によって前記所定距離以内であると判断された場合、前記通信帯域と前記第1の端末の記憶装置のうち補助記憶装置に関する帯域とを比較することを特徴とする請求項6または7に記載のデータ共有プログラム。
  10.  前記第1の端末と前記第2の端末との相対距離を取得する取得工程と、
     前記取得工程によって取得された相対距離が所定距離以内であるか否かを判断する判断工程を前記第1の端末のプロセッサに実行させ、
     前記決定工程は、
     前記判断工程によって前記所定距離以内でないと判断された場合、前記比較工程を実行せずに、または、前記比較工程によって比較された比較結果にかかわらず、前記データ共有に関する運用方式を、前記第1および第2の端末が前記第1および第2の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式に決定し、
     前記設定工程は、
     前記取得元サーバにアクセスして前記第2の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする請求項1~3,6または7に記載のデータ共有プログラム。
  11.  アドホックネットワーク内で通信可能に接続されている第1および第2の端末のうち前記第1の端末から、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
     前記受付工程によって受け付けられた運用方式に基づいて、前記第1の端末から前記第2の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
     を前記第2の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
  12.  前記設定工程は、
     前記受付工程によって、前記第2の端末から前記第1の端末の主記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の主記憶装置へのアクセスする密結合方式が受け付けられた場合、前記第1の端末から前記第2の端末の主記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項11に記載のデータ共有プログラム。
  13.  前記設定工程は、
     前記受付工程によって、前記第2の端末から前記第1の端末の補助記憶装置へのアクセスを可能にし、かつ、前記第1の端末から前記第2の端末の補助記憶装置へのアクセスする疎結合方式が受け付けられた場合、前記第1の端末から前記第2の端末の補助記憶装置へのアクセスを可能にするマウント処理を実行することを特徴とする請求項11に記載のデータ共有プログラム。
  14.  前記設定工程は、
     前記受付工程によって、前記第1および第2の端末が前記第1および第2の端末の記憶装置内のデータの取得元サーバにアクセスする分散方式が受け付けられた場合、前記取得元サーバにアクセスして前記第1の記憶装置内のデータと同一のデータをダウンロード可能なプログラムを起動することを特徴とする請求項11に記載のデータ共有プログラム。
  15.  第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報をアドホック通信により前記第2の端末から取得する取得工程と、
     前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
     前記特定工程によって特定された前記第2の区間をアドホック通信により前記第2の端末に送信するとともに、前記第1の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
     前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第1の区間内のデータを前記サーバから受信する受信工程と、
     前記受信工程によって受信された前記第1の区間内のデータを前記第1の端末の記憶装置に格納する格納工程と、
     を前記第1の端末のプロセッサに実行させることを特徴とするデータ共有プログラム。
  16.  前記第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第2の端末と前記サーバとの第2の通信速度情報をアドホック通信により前記第2の端末から取得する取得工程と、
     前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
     前記特定工程によって特定された前記第2の区間をアドホック通信により前記第2の端末に送信するとともに、前記第1の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
     前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第1の区間内のデータを前記サーバから受信する受信工程と、
     前記受信工程によって受信された前記第1の区間内のデータを前記第1の端末の記憶装置に格納する格納工程と、を前記第1の端末のプロセッサに実行させ、
     前記決定工程は、
     前記比較工程によって比較された比較結果に基づいて、前記格納工程によって前記第1の端末の記憶装置に格納された第1の区間内のデータと前記第2の端末の記憶装置に格納された前記第2の区間内のデータとのデータ共有に関する運用方式を決定することを特徴とする請求項1~3,6または7に記載のデータ共有プログラム。
  17.  第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報を取得する取得工程と、
     前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
     前記第1の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第1の区間内のデータを前記第1の端末に送信するとともに、前記第2の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第2の区間内のデータを前記第2の端末に送信する送信工程と、
     を前記サーバのプロセッサに実行させることを特徴とするデータ配信プログラム。
  18.  アドホックネットワーク内で通信可能に接続されている自端末と他端末との間の通信帯域を検出する検出手段と、
     前記検出手段によって検出された通信帯域と前記自端末の記憶装置に関する帯域とを比較する比較手段と、
     前記比較手段によって比較された比較結果に基づいて、前記自端末の記憶装置内のデータと前記他端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定手段と、
     前記決定手段によって決定された運用方式を前記自端末から前記他端末に通知する通知手段と、
     前記決定手段によって決定された運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
     を備えることを特徴とする端末。
  19.  アドホックネットワーク内で自端末と通信可能に接続されている他端末から、前記他端末の記憶装置内のデータと前記自端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付手段と、
     前記受付手段によって受け付けられた運用方式に基づいて、前記他端末から前記自端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定手段と、
     を備えることを特徴とする端末。
  20.  コンテンツを選択する選択手段と、
     自端末と前記選択手段によって選択されたコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記自端末とアドホック通信される他端末と前記サーバとの第2の通信速度情報をアドホック通信により前記他端末から取得する取得手段と、
     前記取得手段によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記自端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記他端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定手段と、
     前記特定手段によって特定された前記第2の区間をアドホック通信により前記他端末に送信するとともに、前記第1の区間を含むダウンロード要求を前記サーバに送信する送信手段と、
     前記送信手段によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第1の区間内のデータを前記サーバから受信する受信手段と、
     前記受信手段によって受信された前記第1の区間内のデータを前記自端末の記憶装置に格納する格納手段と、
     を備えることを特徴とする端末。
  21.  第1の端末との第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末との第2の通信速度情報を取得する取得手段と、
     前記取得手段によって取得された第1および第2の通信速度情報に基づいて、コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定手段と、
     前記第1の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第1の区間内のデータを前記第1の端末に送信するとともに、前記第2の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定手段によって特定された前記第2の区間内のデータを前記第2の端末に送信する送信手段と、
     を備えることを特徴とするサーバ。
  22.  アドホックネットワーク内で通信可能に接続されている第1の端末と第2の端末との間の通信帯域を検出する検出工程と、
     前記検出工程によって検出された通信帯域と前記第1の端末の記憶装置に関する帯域とを比較する比較工程と、
     前記比較工程によって比較された比較結果に基づいて、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を決定する決定工程と、
     前記決定工程によって決定された運用方式を前記第1の端末から前記第2の端末に通知する通知工程と、
     前記決定工程によって決定された運用方式に基づいて、前記第2の端末から前記第1の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
     を前記第1の端末が実行することを特徴とするデータ共有方法。
  23.  アドホックネットワーク内で通信可能に接続されている第1および第2の端末のうち前記第1の端末から、前記第1の端末の記憶装置内のデータと前記第2の端末の記憶装置内のデータとのデータ共有に関する運用方式を受け付ける受付工程と、
     前記受付工程によって受け付けられた運用方式に基づいて、前記第1の端末から前記第2の端末の記憶装置へのアクセスを可能にするマウント処理を実行する設定工程と、
     を前記第2の端末が実行することを特徴とするデータ共有方法。
  24.  コンテンツを選択する選択工程と、
     第1の端末と前記選択工程によって選択されたコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報をアドホック通信により前記第2の端末から取得する取得工程と、
     前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
     前記特定工程によって特定された前記第2の区間をアドホック通信により前記第2の端末に送信するとともに、前記第1の区間を含むダウンロード要求を前記サーバに送信する送信工程と、
     前記送信工程によって前記ダウンロード要求が前記サーバに送信された結果、前記コンテンツのうち前記第1の区間内のデータを前記サーバから受信する受信工程と、
     前記受信工程によって受信された前記第1の区間内のデータを前記第1の端末の記憶装置に格納する格納工程と、
     を前記第1の端末が実行することを特徴とするデータ共有方法。
  25.  第1の端末とコンテンツにアクセス可能なサーバとの第1の通信速度情報を取得するとともに、前記第1の端末とアドホック通信される第2の端末と前記サーバとの第2の通信速度情報を取得する取得工程と、
     前記取得工程によって取得された第1および第2の通信速度情報に基づいて、前記コンテンツのダウンロードの開始位置から終了位置までのダウンロード区間のうち、前記第1の端末にダウンロードされる前記第1の通信速度情報に応じたデータ量となる第1の区間と前記第2の端末にダウンロードされる前記第2の通信速度情報に応じたデータ量となる第2の区間とを特定する特定工程と、
     前記第1の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第1の区間内のデータを前記第1の端末に送信するとともに、前記第2の端末からのダウンロード要求があった場合、前記コンテンツのうち前記特定工程によって特定された前記第2の区間内のデータを前記第2の端末に送信する送信工程と、
     を前記サーバが実行することを特徴とするデータ配信方法。
PCT/JP2010/066253 2010-09-17 2010-09-17 データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法 Ceased WO2012035665A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2010/066253 WO2012035665A1 (ja) 2010-09-17 2010-09-17 データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法
JP2012533826A JP5447679B2 (ja) 2010-09-17 2010-09-17 データ共有プログラム、端末、およびデータ共有方法
CN201080069103.3A CN103109277B (zh) 2010-09-17 2010-09-17 数据共享方法及终端
US13/801,433 US9503386B2 (en) 2010-09-17 2013-03-13 Computer product, terminal, server, data sharing method, and data distribution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/066253 WO2012035665A1 (ja) 2010-09-17 2010-09-17 データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/801,433 Continuation US9503386B2 (en) 2010-09-17 2013-03-13 Computer product, terminal, server, data sharing method, and data distribution method

Publications (1)

Publication Number Publication Date
WO2012035665A1 true WO2012035665A1 (ja) 2012-03-22

Family

ID=45831163

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/066253 Ceased WO2012035665A1 (ja) 2010-09-17 2010-09-17 データ共有プログラム、データ配信プログラム、端末、サーバ、データ共有方法、およびデータ配信方法

Country Status (4)

Country Link
US (1) US9503386B2 (ja)
JP (1) JP5447679B2 (ja)
CN (1) CN103109277B (ja)
WO (1) WO2012035665A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885818A (zh) * 2012-12-20 2014-06-25 联想(北京)有限公司 一种资源启用方法及电子设备
EP2993588A4 (en) * 2013-04-28 2016-12-07 Xiaomi Inc Method, device and system for downloading file
JP2017058927A (ja) * 2015-09-16 2017-03-23 日本放送協会 データ配信システム、情報サーバ、及び通信端末

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092716A (zh) * 2013-12-04 2014-10-08 腾讯科技(深圳)有限公司 数据共享的方法、第一终端、服务器及系统
CN105872049A (zh) * 2016-03-30 2016-08-17 努比亚技术有限公司 应用下载装置和方法
CN107577421A (zh) * 2017-07-31 2018-01-12 深圳市牛鼎丰科技有限公司 智能设备扩容方法、装置、存储介质和计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004096779A (ja) * 2003-10-17 2004-03-25 Mitsubishi Electric Corp 無線端末交信方法
JP2007336167A (ja) * 2006-06-14 2007-12-27 Mitsubishi Electric Corp 情報端末装置およびデータ通信方法
JP2009505539A (ja) * 2005-08-23 2009-02-05 ソニー エリクソン モバイル コミュニケーションズ, エービー プル型デジタル情報配信機能を備えた通信端末及びプル型デジタル情報配信方法
JP2009527136A (ja) * 2006-01-11 2009-07-23 クゥアルコム・インコーポレイテッド 異なる能力を有するデバイス間における通信を確立するための方法及び装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5138847B2 (ja) * 2001-08-31 2013-02-06 富士通株式会社 ネットワークシステム、ネットワーク中継装置、ネットワーク中継監視装置およびネットワーク運用方法
JP2004064646A (ja) 2002-07-31 2004-02-26 Sharp Corp 情報処理装置、データ交換プログラムおよび記憶媒体
KR20050113626A (ko) 2003-02-28 2005-12-02 코닌클리케 필립스 일렉트로닉스 엔.브이. 네트워크에서 사용자 스테이션들 사이의 파일들을 공유하는방법
US7583955B2 (en) * 2003-07-24 2009-09-01 Lg Electronics Inc. System for and method of reproducing multimedia contents in mobile communication terminal
CA2556979A1 (en) 2004-02-21 2005-10-20 Datallegro, Inc. Ultra-shared-nothing parallel database
US20050188089A1 (en) * 2004-02-24 2005-08-25 Lichtenstein Walter D. Managing reservations for resources
JP4407431B2 (ja) * 2004-08-30 2010-02-03 株式会社日立製作所 計算機システム及び計算機システムの帯域制御方法
US7860962B2 (en) * 2005-08-09 2010-12-28 At&T Intellectual Property I, L.P. Media download method and system based on connection speed
CN100542341C (zh) * 2005-08-12 2009-09-16 深圳华为通信技术有限公司 实现移动终端间数据共享的方法和设备
JP2007066061A (ja) 2005-08-31 2007-03-15 Eastman Kodak Co データ送信装置、受信装置、送信システム、受信システム、方法及び端末装置
US8811369B2 (en) 2006-01-11 2014-08-19 Qualcomm Incorporated Methods and apparatus for supporting multiple communications modes of operation
JP4948054B2 (ja) 2006-06-16 2012-06-06 三菱電機株式会社 管理装置及び通信端末装置及び通信システム及び通信管理方法
WO2008117295A2 (en) * 2007-03-28 2008-10-02 Unison Play Ltd. Distributed storage management
CN101631092A (zh) * 2008-07-18 2010-01-20 株式会社日立制作所 数据分发系统及方法
US7869383B2 (en) * 2008-07-24 2011-01-11 Symform, Inc. Shared community storage network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004096779A (ja) * 2003-10-17 2004-03-25 Mitsubishi Electric Corp 無線端末交信方法
JP2009505539A (ja) * 2005-08-23 2009-02-05 ソニー エリクソン モバイル コミュニケーションズ, エービー プル型デジタル情報配信機能を備えた通信端末及びプル型デジタル情報配信方法
JP2009527136A (ja) * 2006-01-11 2009-07-23 クゥアルコム・インコーポレイテッド 異なる能力を有するデバイス間における通信を確立するための方法及び装置
JP2007336167A (ja) * 2006-06-14 2007-12-27 Mitsubishi Electric Corp 情報端末装置およびデータ通信方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885818A (zh) * 2012-12-20 2014-06-25 联想(北京)有限公司 一种资源启用方法及电子设备
EP2993588A4 (en) * 2013-04-28 2016-12-07 Xiaomi Inc Method, device and system for downloading file
US9800510B2 (en) 2013-04-28 2017-10-24 Xiaomi Inc. Method and device for downloading file
JP2017058927A (ja) * 2015-09-16 2017-03-23 日本放送協会 データ配信システム、情報サーバ、及び通信端末

Also Published As

Publication number Publication date
US9503386B2 (en) 2016-11-22
US20130198390A1 (en) 2013-08-01
CN103109277B (zh) 2016-03-23
JPWO2012035665A1 (ja) 2014-01-20
JP5447679B2 (ja) 2014-03-19
CN103109277A (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
JP5447679B2 (ja) データ共有プログラム、端末、およびデータ共有方法
US8924608B2 (en) Peripheral device management
CN1531303B (zh) 协议无关的客户端高速缓存系统和方法
JP6268914B2 (ja) 情報管理装置、情報管理システム、情報管理方法、及びプログラム
CN106471517B (zh) 对显示元素的因用户而异的可视化
US20100309508A1 (en) Network print-related service
US11064041B2 (en) Apparatus for providing cloud service using cloud service brokerage based on multiple clouds and method thereof
US10057275B2 (en) Restricted content publishing with search engine registry
CN104717197B (zh) 会话管理系统、会话管理设备和会话管理方法
WO2021119230A1 (en) Intelligent conversion of internet domain names to vector embeddings
Luo et al. Sharing and exploring sensor streams over geocentric interfaces
JP5709377B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
US7735115B2 (en) System which enforces policy for virtual private organization and method thereof
US8112495B2 (en) Transmitting information about distributed group memberships
CN103297494A (zh) 用于与具有服务器响应预期的分布式应用交互的方法和系统
CN106446289A (zh) 基于Pinpoint的信息查询方法和装置
CN117112937A (zh) 访问请求的处理方法、相关设备及存储介质
WO2025055979A1 (zh) 一种数据处理的方法、相应装置及云系统
JP2008299553A (ja) 情報処理システム、コアサーバ装置、およびプログラム
Payton et al. Integrating participatory sensing in application development practices
CN114281921A (zh) 数据的处理方法、装置、存储介质及设备
CN118819788B (zh) 集群调度方法、装置及设备
US20250202776A1 (en) Data compliance system and method
US12348374B2 (en) Container based limit enforcement
Melo et al. Architecture for the 15-Minute City

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080069103.3

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10857298

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012533826

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: 10857298

Country of ref document: EP

Kind code of ref document: A1