WO2015011840A1 - 差分データ転送システム及び方法 - Google Patents

差分データ転送システム及び方法 Download PDF

Info

Publication number
WO2015011840A1
WO2015011840A1 PCT/JP2013/070391 JP2013070391W WO2015011840A1 WO 2015011840 A1 WO2015011840 A1 WO 2015011840A1 JP 2013070391 W JP2013070391 W JP 2013070391W WO 2015011840 A1 WO2015011840 A1 WO 2015011840A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
file
latest
receiving device
identifier
Prior art date
Application number
PCT/JP2013/070391
Other languages
English (en)
French (fr)
Inventor
吉田 功
角谷 有司
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2015528091A priority Critical patent/JP6062551B2/ja
Priority to PCT/JP2013/070391 priority patent/WO2015011840A1/ja
Publication of WO2015011840A1 publication Critical patent/WO2015011840A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Definitions

  • the present invention relates to a system and method for sharing data among a plurality of bases.
  • Patent Document 1 proposes a method in which chunks are further divided on the client side, and portions that do not match are narrowed down and transferred. Note that the feature amount described below is described in Patent Document 1.
  • the client side is divided into several kilobyte units called chunks and only new chunks that are not owned by the server are transferred, it is necessary to transfer differential chunks from the device that updated the data. Therefore, when the network distance between devices that transmit and receive data is long, the data transfer time increases. This problem cannot be avoided particularly when data is transferred between globally distributed sites. In other prior art systems as well, it is necessary to transfer data from a device in which data has been updated.
  • an object of the present invention is to shorten the time required for data transfer and to shorten the time from the time of checkout or approval of data take-out until the user can use the data.
  • a differential data transfer system is a differential data transfer system in which a data reception device and a plurality of data transmission devices are connected to each other via a network.
  • a receiving device storing a file, a file identifier of the file, divided data of the file, file configuration information in which the identifier and hash value of the divided data are associated, and a plurality of data
  • the notification that the latest file is stored from the transmission device is received, or the latest file and the reception are received from the data transmission device that has made the notification to the data transmission device that is in the shortest distance to the data reception device
  • a request for divided data that is a difference from the file stored in the device storage unit is transmitted, or the data at the shortest distance is transmitted.
  • a differential data generation unit that generates differential hash information including an identifier and a hash value and transmits the differential hash information to the plurality of data transmission devices, and the data reception device among the data transmission devices that have received information that the latest file is stored
  • a restoration unit that restores the latest file, and each of the plurality of data transmission devices includes an identifier of the file and the file.
  • a transmission device storage unit that stores the divided data of the data and the identifier of the divided data in association with each other, and receives the differential hash information and the identifier of the latest file from the data receiving device, or stores the latest file. If it is determined that the divided data that is the difference and the transmitting device communication unit that transmits the divided data to the data receiving device and the identifier of the latest file received from the data receiving device, And a determination unit that determines whether or not the file to be stored is the latest.
  • the present invention can also be understood as a differential data transfer method.
  • the time required for data transfer can be shortened, and the time from the time of checkout or approval of data export to the time when the user can use the data can be shortened.
  • FIG. 3 is an explanatory diagram illustrating an outline of a data flow between apparatuses in the first embodiment. It is a block diagram which illustrates schematic structure of a data receiver. It is a block diagram which illustrates schematic structure of the newest data management apparatus. It is a block diagram which illustrates schematic structure of a data transmitter. It is a sequence diagram which illustrates the data transfer process of a data receiver and the newest data management apparatus. It is a sequence diagram which illustrates the data transfer process (first half) of a data receiver and a data transmitter. It is a sequence diagram which illustrates the data transfer process (latter half) of a data receiver and a data transmitter.
  • FIG. 6 is an explanatory diagram illustrating an outline of a data flow between apparatuses in Example 2. It is a figure which illustrates chunking and hash value calculation. It is a figure which illustrates lock management information. It is a sequence diagram which illustrates file structure output processing.
  • FIG. 10 is an explanatory diagram showing an outline of a data flow between devices in Example 3. It is a figure which illustrates the application matter information of a data export management workflow.
  • FIG. 1 is a diagram illustrating an outline of a differential data transfer system according to the present embodiment.
  • the differential data transfer system includes a data reception device 20, n data transmission devices 40-1 to 40-n, and a latest data management device 30, which communicate information with each other via the network 10. It is designed to send and receive.
  • the data transmission devices 40-1 to 40-n all have the same configuration.
  • an arbitrary one is referred to as a data transmission device 40.
  • the data transmission device 40 and the latest data management device 30 are physically divided into two housings, but one data transmission device 40 includes the latest data management device 30. Also good.
  • each device serves as both a transmitting side and a receiving side
  • a device having a function necessary for data reception is referred to as a data receiving device 20
  • a device having a function necessary for data transmission will be described separately as a data transmission device 40.
  • the latest data management device 30 compares the hash value received from the data receiving device 20 with the hash value of the latest file requested by the data receiving device 20, identifies the difference data, and determines the chunk of the difference data. By transmitting the chunk from the data transmission device 40 closest to the data reception device 20 among the owned data transmission devices 40-1 to 40-n, the data transfer speed is increased.
  • the latest version of the file is described on the assumption that the latest data management device 30 manages the file, but the data reception device 20 and the data transmission device 40 may manage the file.
  • the data reception device 20 transmits a file identifier 204 indicating the file 200 to the latest data management device 30 in order to confirm the latest version of the file 200.
  • An example of the file identifier 204 is shown in FIG.
  • a file is specified by a combination of a project ID, a file name, and a version of the file for identifying the project in which the file is created.
  • the file name of the file 200 is F1.txt and the version is 002.
  • the file 200 indicates that the file is created by a project whose project ID is P00001.
  • the latest data management device 30 transmits the file configuration information 303 including the hash value 302 of the latest file 400 corresponding to the received file identifier 204 and the file identifier 404 to the data receiving device 20. Specific contents of the hash value 302 and the file configuration information 303 will be described later.
  • the data receiving device 20 determines the chunk that is the difference between the chunk included in the file configuration information 303 and the held file and the chunk of the chunk.
  • Difference hash information 225 composed of hash values is transmitted to a plurality of data transmission devices 40-1 to 40-n.
  • Each data transmission device 40 compares the difference hash information 225 received from the data reception device 20 with the hash value of the chunk of the retained file, and is included in the retained chunk and the difference hash information 225.
  • the differential hash information 425 including the chunk identifier chunk and the hash value is transmitted to the data receiving device 20.
  • the data reception device 20 specifies the closest one of the data transmission devices 40 that received the differential hash information 425, and requests the data transmission device 40 to transfer the differential chunk to the file identifier 404. And the above-described differential hash information 225 is transmitted. Next, the data transmission device 40 that has received the differential hash information 225 transmits a chunk corresponding to the hash value 432 included in the information to the data reception device 20.
  • the data receiving device 20 that has received the chunks from the data transmitting devices 40-1 to 40-n restores the file 400 from the chunk 202 and the previously held chunk 202.
  • the transfer time of data exchanged on the network can be shortened.
  • FIG. 3 is a block diagram illustrating a schematic configuration of the data receiving device 20.
  • the data receiving device 20 includes a CPU 210, a memory 212, a storage 214, a user interface 216, a communication interface 218, a differential data receiving unit 290, and a setting unit 280, which mutually communicate information via an internal bus 219. It is designed to send and receive.
  • the differential data reception unit 290 includes a chunking unit 240, a hash value calculation unit 250, a hash comparison unit 220, a path selection unit 230, and a file restoration unit 260. You can send and receive.
  • the CPU 210 is a central processing unit that performs various numerical calculations, information processing, device control, and the like.
  • the memory 212 is a semiconductor storage device such as a RAM or ROM that can be directly read and written by the CPU 210.
  • the storage 214 is a device such as a hard disk, a magnetic tape, or a flash memory that stores data and programs in the computer. The device stores a file received from the data transmission device 40 and the like.
  • the user interface 216 is a device such as a display, a mouse, and a keyboard for outputting a processing result to the user, receiving a user instruction, and reflecting it on each component of the data transmission device 40.
  • the communication interface 218 is a device for controlling transmission / reception of data via the network 10 of each component of the data transmission device 40. Control is performed such as establishing a communication path by authenticating with the other party, or disconnecting the communication path after completion of processing, or when the other party does not respond after a certain period of time.
  • Components unique to the present embodiment are a differential data receiving unit 290, a chunking unit 240, a hash value calculating unit 250, a hash comparing unit 220, a path selecting unit 230, and a file restoring unit 260 constituting the differential data receiving unit 290.
  • the most characteristic component that does not exist in the conventional data transfer apparatus is a path selection unit 230.
  • the difference data receiving unit 290 receives an instruction to acquire the latest version of the file stored in the storage 214 from the user via the user interface 216.
  • the differential data receiving unit 290 controls the chunking unit 240, the hash value calculation unit 250, the hash comparison unit 220, the path selection unit 230, the file restoration unit 260, etc., and the hash value 222 and the chunk 242 via the communication interface 218.
  • the chunking unit 240 reads a file stored in the storage 214, divides it into chunks, and temporarily stores it in the memory 212 or the storage 214.
  • the hash value calculation unit 250 is a device that reads a file or chunk stored in the memory 212 or the storage 214, calculates a hash value, and outputs the hash value to the memory 212 or the storage 214.
  • MD5 and SHA-1 are known as hash functions for deriving a hash value.
  • the setting unit 280 sets an upper limit of a waiting time for waiting for a response from the latest data management device 30 or the data transmission device 40, and parameters necessary for processing such as chunking. These parameters are set by the user via the user interface 216 and reflected in the chunking unit 240, the hash value calculation unit 250, and the like.
  • each of the differential data receiving unit 290, the chunking unit 240, the hash value calculating unit 250, the hash comparing unit 220, the path selecting unit 230, and the file restoring unit 260 constituting the differential data receiving unit 290 executes processing alone.
  • each device may include only a program, and the CPU 210 may read the program into the memory 212 and execute it.
  • FIG. 4 is a block diagram illustrating a schematic configuration of the latest data management device 30.
  • the latest data management device 30 includes a CPU 310, a memory 312, a storage 314, a user interface 316, a communication interface 318, and a latest data management unit 390, which can transmit / receive information to / from each other via an internal bus 319. Designed to be
  • General-purpose components such as the CPU 310, the memory 312, the storage 314, the user interface 316, and the communication interface 318 have the same functions as those in FIG.
  • a characteristic component unique to this embodiment and not found in the conventional data transfer apparatus is the latest data management unit 390.
  • the latest data management unit 390 receives the file identifier 204 from the data receiving device 20 via the communication interface 318, temporarily stores it in the memory 312, and stores the hash value of the chunk constituting the file corresponding to the file identifier 204.
  • This is a device for acquiring from the storage 314, temporarily storing it in the memory 312 and the storage 314, and transmitting it to the data receiving device 20 via the communication interface 318. The operation flow of this series of processing will be described later with reference to FIG.
  • FIG. 5 is a block diagram illustrating a schematic configuration of the data transmission device 40.
  • the data transmission device 40 includes a CPU 410, a memory 412, a storage 414, a user interface 416, a communication interface 418, and a differential data transmission unit 490 so that these can transmit / receive information to / from each other via an internal bus 419.
  • the differential data transmission unit 490 includes a chunking unit 450, a hash value calculation unit 420, a hash comparison unit 430, and a chunk transmission unit 440, and can send and receive information to and from the CPU 310 and the like alone via the internal bus 419. it can.
  • General-purpose components such as the CPU 410, the memory 412, the storage 414, the user interface 416, and the communication interface 418 have the same functions as those in FIG.
  • Characteristic components unique to the present embodiment and not found in the conventional data transfer apparatus are the differential data transmission unit 490, the chunking unit 450, the hash value calculation unit 420, the hash comparison unit 430, and the chunk transmission unit that constitute the differential data transmission unit 490 440.
  • the differential data transmission unit 490 is a device for transmitting / receiving the hash value, the duplicate hash value 406, and the chunk 401 to / from the data reception device 20 via the communication interface 418.
  • the operation flow of this series of processing will be described later with reference to FIG. Note that, regarding the differential data transmission unit 490, the chunking unit 450, the hash value calculation unit 420, the hash comparison unit 430, and the chunk transmission unit 440 that constitute the differential data transmission unit 490, each device may execute processing alone. Each device may include only a program, and the CPU 410 may read the program into the memory 412 and execute it.
  • the difference data receiving unit 290 in FIG. 3, the latest data management unit 390 in FIG. 4, and the difference data transmitting unit 490 in FIG. 5 perform data transfer via the network 10 in the following procedure.
  • the differential data reception unit 290, the latest data management unit 390, and the differential data transmission unit 490 perform data transfer with each other via the communication interface 218, the communication interface 318, and the communication interface 418, respectively. Therefore, the description of the communication interface processing is omitted.
  • the user interface 216 of the data receiving device 20 receives selection of the file 200 for requesting the latest version from the user (S600).
  • the differential data receiving unit 290 of the data receiving device 20 transmits the file identifier 204 of the file 200 to the latest data managing device 30 in order to confirm whether the file 200 is the latest (S601).
  • An example of the file identifier 204 is shown in FIG.
  • the latest data management unit 390 of the latest data management device 30 refers to the latest version of the file 200 corresponding to the file identifier 204 received from the data reception device 20 in the version management table, and acquires the file identifier 304 indicating the latest version.
  • the latest data management unit 390 acquires the hash value of the chunk of the file configured by the file configuration information 303 from the hash management table 307 using the file identifier 304 as a search key (S602).
  • An example of the version management table is shown in FIG. In the example of FIG. 10, the latest version can be confirmed by referring to the version value of the record whose project ID and file name match. For example, it can be seen that the latest version of the file identified by the file name F1.txt is 003.
  • the hash management table 307 stores a file identifier, a chunk identifier of a chunk obtained by dividing a file identified by the file identifier, and a hash value of the chunk in association with each other.
  • the file of version 002 identified by F1.txt is divided into two chunks identified by chunk identifiers 001 and 002, and the hash values of each chunk are M9LA7EU2F and EPJVU884WE, respectively. It shows that there is.
  • FIG. 13 An example of file configuration information is shown in FIG. As shown in FIG. 13, the file configuration information stores the above-described chunk identifier and hash value in association with each file.
  • the hash value of the chunk identified by the chunk identifier 001 is M9LA7EU2F.
  • the file shown in the example of FIG. 13 indicates that it is composed of five chunks of chunk identifiers 001 to 005.
  • the latest data management unit 390 accesses the hash management table 307 using the file identifier as a key, and stores the hash values of the chunks constituting the file received from the data receiving device 20 in the hash management table.
  • file configuration information is stored.
  • the chunking unit 240 and the hash value calculation unit 250 of the data receiving device 20 execute the file configuration output process shown in FIG. 18 (S603).
  • the chunking unit 240 divides the file 200 into partial data called chunks 202 (chunking).
  • the hash value calculation unit 250 calculates the hash value 208 of the chunk 202.
  • FIG. 18 is a flowchart showing the processing procedure of the file configuration output process.
  • the chunking unit 240 acquires the file 200 indicated by the file identifier transmitted in S601 from the storage 214 or the memory 212 (S1800), and executes the above-described chunking process on the file 200. (S1801). Then, the chunking unit 240 outputs each divided chunk in association with the chunk identifier (S1802).
  • the hash value calculation unit 250 calculates a hash value of each chunk stored in the storage 214 or the memory 212 (S1803), and generates file configuration information as shown in FIG. 13 (S1804). When the process of S1804 is finished, the file configuration output process is finished.
  • FIG. 16 shows an example in which file 200 is divided into four chunks 202 of chunks 202-1 to 202-4 and hash values 208-1 to 208-4 are calculated from chunks 202-1 to 202-4 as a result of chunking. Indicates.
  • the chunking unit 240 divides the file 200 into four chunks, and the hash value calculation unit 250 calculates the hash value of each chunk. Subsequently, returning to FIG. 6, the processing after S604 will be described.
  • the differential data receiving unit 290 of the data receiving device 20 temporarily stores the chunk 202, the file configuration information 203, and the file identifier 204 obtained in step S603 in the memory 212 or the storage 214 (S604).
  • An example of storing the chunk 202 in the storage 214 is shown in FIG.
  • the chunk identifier is stored as the file name of the chunk 202 in a folder whose name is the file identifier 204.
  • FIG. 12 it can be seen that the file identified by the file name P00001_F1.txt_002 is divided into four chunks and stored in the storage 214. Note that the processing of step S603 and step S604 may be performed before step S600.
  • the latest data management unit 390 of the latest data management device 30 transmits the file configuration information 303 and the file identifier 304 acquired in step (S602) to the data reception device 20 (S605).
  • the differential data receiving unit 290 of the data receiving device 20 temporarily stores the file configuration information 303 and the file identifier 304 received from the latest data management device 30 in the memory 212 or the storage 214 (S606).
  • the hash comparison unit 220 of the differential data reception unit 290 of the data reception device 20 receives the file configuration information 303 received from the latest data management device 30 and stored in the memory 212 or the storage 214, and the hash value calculation unit 250 performs file configuration output processing.
  • the hash comparison process is executed using the file configuration information 203 generated in step S2 and stored in the memory 212 or the storage 214 as input values to generate duplicate hash information 226 and difference hash information 226 (S607).
  • the hash comparison process will be described later with reference to FIG.
  • the hash value 222 included in the difference hash information 226 means a hash value of a chunk of difference data between the file 200 and the latest version file 400.
  • the differential data receiving unit 290 of the data receiving device 20 sends the differential hash information 226 and the file identifier 304 to a plurality of data transmitting devices 40 in order to inquire whether or not the differential chunk is held. Send to -1 to 40-n (S701).
  • the differential data transmission unit 490 of the data transmission device 40 acquires the differential hash information 226 and the file identifier 304 received from the data reception device 20, and determines whether or not the latest version of the file 400 indicated by the file identifier 304 is held. Judgment is made and the result is confirmed (S702). As a result of the confirmation, the differential data transmission unit 490 of the data transmission device 40 proceeds to step S708 if it has the latest version of the file 400, and proceeds to step S704 if it does not (step S703).
  • the chunking unit 450 of the difference data transmission unit 490 identifies a file 400 similar to the latest version of the file indicated by the file identifier 304, executes chunking processing using the file 400 as an input value, and stores the chunk 452 of the retained file. Generate (S704). For example, the chunking unit 450 identifies files having the same project ID and file name and different versions, or files having the same file name and different project IDs and versions as similar files. To do.
  • the hash value calculation unit 420 of the difference data transmission unit 490 executes a hash value calculation process using the retained file chunk 452 as an input value, and calculates a hash value 454 of the retained file chunk 452. Next, the file configuration information 403 as shown in FIG. 13 is generated from the hash value 454 (S705).
  • the hash comparison unit 430 of the difference data transmission unit 490 executes hash comparison processing using the file configuration information 403 generated in step S705 and the difference hash information 226 acquired in step S702 as input values, and generates difference hash information 425 ( S706). For example, even if the project ID is different, if the content is the same as the latest version, the difference hash information 425 is the same as the difference hash information 226, whereas if the content is different from the latest version, the hash value is The hash value included in the differential hash information 226 of the latest version file is a different value.
  • the chunk transmission unit 440 of the differential data transmission unit 490 transmits the differential hash information 425 to the data reception device 20 (S707).
  • the chunk transmission unit 440 of the differential data transmission unit 490 notifies the fact (S708). Since the chunk transmission unit 440 of the difference data transmission unit 490 has already acquired the file configuration information 403 of the file from the latest data management device 30, it only notifies that fact.
  • the differential data receiving unit 290 of the data receiving device 20 temporarily stores the differential hash information 425 received from the data transmitting device 40 in the memory 212 or the storage 214 together with the name of the data receiving device that transmitted the data (S709).
  • step S800 the process waits and repeats the process of step S709 of the other data transmission device 40 (S710).
  • the path selection unit 230 of the differential data reception unit 290 of the data reception device 20 performs the memory 212 or the storage 214 in step S709 for each hash value 222 included in the differential hash information 226 generated in S607.
  • the hash value 432 having the same value as the hash value 222 is searched for in the difference hash value included in the difference hash information 425 temporarily stored in, and a list of names of corresponding data receiving devices is acquired ( S801).
  • the path selection unit 230 of the difference data reception unit 290 receives data from the list of names of the data reception devices as request destinations for requesting transfer of chunks corresponding to the hash values 222 searched in S801.
  • the data receiving device having the shortest network distance between the device 20 and each data receiving device is selected (S802).
  • the route selection unit 230 of the difference data reception unit 290 determines whether or not the network distance is the shortest, for example, by confirming the IP address.
  • the path selection unit 230 of the difference data reception unit 290 transmits a chunk identifier corresponding to the hash value 222 to the selected data transmission device 40 in order to request a difference chunk (S803).
  • the chunk transmission unit 440 of the differential data transmission unit 490 transmits a combination of a chunk and a chunk identifier corresponding to the hash value 222 received from the data reception device 20 to the data reception device 20 (S804).
  • the file restoration unit 260 of the differential data reception unit 290 temporarily stores the chunk received from the data transmission device 40 in the storage 214 using the received chunk identifier 207 as a key (S805). This process is continued until all the requested chunks 424 are received, and when completed, the process proceeds to step S806.
  • the file restoration unit 260 of the differential data receiving unit 290 reads the file configuration information 303 temporarily stored in the memory 212 or the storage 214 in step S607, and the chunk 424 stored in the storage 214 in step S805, and the storage in step S603.
  • the chunk 202 stored in 214 is read out, and the latest version of the file 400 is restored by combining the chunks in the order of the chunk identifiers included in the file configuration information 303 (S806).
  • FIG. 14A shows the file configuration information 203 of the held file
  • FIG. 14B shows the file configuration information 303 of the file to be checked for the existence of a difference.
  • C in FIG. 14 is differential hash information including a differential hash value obtained by hash comparison processing and a corresponding chunk identifier.
  • FIG. 14D shows duplicate hash information including a duplicate hash value obtained by hash comparison processing and a corresponding chunk identifier.
  • the file configuration information 203 is searched for whether the hash value of the file configuration information 303 matches the hash value. If there is a match, the record is classified as a duplicate hash value. If there is no match, the record is classified into a differential hash value. For example, since the hash values “AAAA”, “BBBB”, and “CCCC” in FIG. 14B exist in the first to third records in FIG. 14A, respectively, as shown in FIG. Into duplicate hash values. On the other hand, since the hash values “XXXX” and “YYYY” in FIG. 14B do not exist in any of the records in FIG. 14A, such a difference record is shown in FIG. Classify into duplicate hash values as shown.
  • a chunk can be acquired from a data transmission device having the shortest network distance among a plurality of data transmission devices having chunks, so that the total data transfer time is further reduced as compared with the conventional method. be able to. Further, the data transfer time can be shortened by shortening the distance of the network for transferring data. In addition, the data transfer process is distributed to multiple devices, and the route for transferring data is also distributed, so the available communication bandwidth per unit data size becomes relatively large and the total data transfer time is shortened. it can.
  • the case where the data receiving device 20 acquires the latest version is described.
  • a specific version desired by the user for example, the version of the file in the cycle before the latest
  • the file structure information and differential hash information of the version of the file may be received and restored.
  • the latest data management device 30 manages file update locks and the data transmission device 40 distributes update data to the data reception device 20 in order to always synchronize the latest data. This will be described in detail with reference to the drawings.
  • the data transmission device 40 transmits the file identifier 404 of the file 400 to be updated to the latest data management device 30 in order to update the file after checking in (exclusively controlling and locking the file).
  • the latest data management device 30 transmits the file identifier 404 to the data reception device 20 in order to notify the check-in.
  • the user of the data receiving device 20 knows that the file is locked by this notification.
  • the data receiving device 20 tentatively requests the transfer of the differential chunks by using the transmitted file identifier 404 and the file configuration information 203 of the file indicated by the file identifier currently owned by the data receiving device 20.
  • the data is transmitted to the data transmission device 40.
  • the data transmission device 40 transmits the difference chunk and the updated file configuration information 403 to the data reception device 20.
  • the process of transmitting the chunk of differential data corresponding to the update and the file configuration information 403 to the data reception device 20 is repeated.
  • the data receiving device 20 receives the chunk of differential data and the file configuration information 403 from the data transmitting device 40, the same processing as in S805 and S806 is repeated as in the first embodiment.
  • the latest data management device 30 stores the latest file identifier 404 and the updated file configuration information 403 at the end of the update. Send to. Finally, the data transmitting device 40 transmits a file identifier 404 to the data receiving device 20 to notify the checkout.
  • the processing flow in this embodiment is composed of three processes: check-in, differential data transfer, and check-out. First, the check-in process flow will be described.
  • the data transmission device 40 sets the file identifier 404 of the file 400. It is transmitted to the latest data management device 30.
  • the latest data management unit 390 of the latest data management device 30 refers to the lock management information stored in the memory 312 or the storage 314, confirms whether the received file identifier 404 is locked, and is in a locked state (locked). If it is in the locked state (locked), the data transmitting device 40 is transmitted. If it is unlocked (unlocked), update the lock ID and user ID of the corresponding record in the lock management information with the value of the lock ID (locked) and the user ID requesting check-in, and change the version of the file identifier 404 The file identifier 304 provisionally updated to a new version is transmitted to the data transmission device 40.
  • Fig. 17 shows an example of lock management information.
  • lock presence / absence is “locked”, it means that the file indicated by the file identifier is locked during check-in.
  • FIG. 17 shows that the version 002 file with the file name F1.txt is not locked, and the version 003 file with the file name F1.txt is locked by the user U0001.
  • the latest data management unit 390 of the latest data management device 30 transmits the file identifier 404 to all the data reception devices 20 in order to notify check-in.
  • the differential data receiving unit 290 of the data receiving device 20 restricts access so that the user of the data receiving device 20 cannot update the file 200 corresponding to the received file identifier 404.
  • the differential data transmission unit 490 of the data transmission device 40 executes the file configuration output process shown in FIG. 18 with the file identifier 404 as an argument, The updated file configuration information 403 is generated. Further, before and after the update of the file configuration information 403 is compared, the updated chunk, the file identifier 404, and the updated file configuration information 403 having different hash values are transmitted to the data receiving device 20.
  • the differential data receiving unit 290 of the data receiving device 20 receives the file identifier 404, the updated chunk, and the updated file configuration information 403, and possessed the chunk received based on the file configuration information 403.
  • the chunk is stored in the memory 212 or the storage 214 in association with the file identifier 404.
  • the above difference data transfer processing flow is executed each time the user updates the file 400 via the user interface 416 of the data transmission device 40.
  • the differential data transmission unit 490 of the data transmission device 40 updates the file identifier 404 and the file configuration information 403 with the latest data management. Transmit to device 30.
  • the latest data management unit 390 of the latest data management device 30 sets the lock presence / absence value of the record corresponding to the received file identifier 404 to the unlocked state (unlocked) in the lock management information stored in the memory 312 or the storage 314. Update.
  • the latest data management unit 390 of the latest data management device 30 transmits the latest file identifier 404 received from the data transmission device 40 to the data reception device 20 to notify the checkout.
  • the user of the other receiving device 20 knows the latest version of the file.
  • the data receiving device 20 unlocks the file indicated by the received file identifier 404 so that the user of the data receiving device 20 can update the file.
  • the difference chunk of the updated file is transmitted to the data receiving device 20 each time and updated.
  • the file configuration information is sent to the latest data management device and the exclusive control is released, so the user can use the data after releasing the exclusive control compared to releasing the exclusive control by updating the file at once. Time to become can be shortened.
  • the latest data management device 30 of the present embodiment has a differential data transmission unit 390 including a chunking unit 350, a hash value calculation unit 320, a hash comparison unit 330, and a chunk transmission unit 340, as with the data transmission device 40, and each data
  • the storage 314 has hash values of files owned by the receiving device 20 and the data transmitting device 40.
  • 19 exemplifies typical data transfer processing of the data receiving device 20, the latest data management device 30, and the data transmitting device 40 in the present embodiment.
  • This embodiment is composed of four processing flows: data export application, encrypted data transfer, data export approval, and data decryption.
  • FIG. 20 shows an example of application item information.
  • the case where the application case ID for identifying the application case is W00001 is applied by the applicant user-1, and the file identified by the file identifier F00001 is transferred to the transfer destination Site_B. ing.
  • the application has been approved by the applicant user-2.
  • the workflow management unit of the latest data management apparatus 30 stores the received application matter information and the file 400 in the memory 312 or the storage 314.
  • the status value of the data is set to “unapproved”.
  • the workflow management unit executes the file configuration output process shown in FIG. 18 with the file 400 as an input, and generates the file configuration information 403.
  • the workflow management unit associates data export prohibition information registered in advance (for example, a file prohibited to be taken out, a chunk included in the file, and a hash value of the chunk). ) Is not included in the file configuration information 403, and if it is included, a warning flag or a warning message is added to the application matter information to transfer the data (for example, to the data receiving device 20) Block send).
  • data export prohibition information registered in advance (for example, a file prohibited to be taken out, a chunk included in the file, and a hash value of the chunk).
  • the workflow management unit determines whether the hash value included in the file configuration information 403 is included in a list of hash values of data (chunks included in the file) approved for data transfer in advance registered If the number of hash values not included or the ratio exceeds a preset value, a warning flag or a warning message may be added to the application matter information to block data transfer. . That is, even when the workflow management unit is approved to transmit the approval request target file before approval, the hash value of the divided data of the approval request target file before approval is stored in advance in the data receiving device 20 to be stored.
  • the workflow management unit generates an encryption key for the file 400 and temporarily stores it in the memory 312 or the storage 314.
  • the workflow management unit compares the generated file configuration information 403 with the hash value of the chunk included in the file held by the data receiving device 20, and obtains the same differential hash information as in the first and second embodiments. Generate. Then, the latest data management unit 390 generates an encrypted chunk obtained by encrypting the chunk corresponding to the differential hash information with the encryption key. Then, the encryption key and the encryption chunk are temporarily stored in the memory 312 or the storage 314.
  • the reason for generating the encrypted chunk is that if the file (file identified by the file identifier) included in the application matter information is in an unapproved state, the approver is in the process of considering the matter, This is because information that is not disclosed to other users who use the data receiving device 20, such as reasons for non-approval, may be recorded. Therefore, the workflow management unit encrypts the entire file in an unapproved state or a portion thereof (a portion different from that at the time of application, that is, a chunk included in the differential hash information).
  • the differential data receiving unit of the data receiving device 20 requests the downloading of undelivered files
  • the latest data management device periodically assigns a user ID (for example, a user other than the applicant of the application matter information shown in FIG. 20). Send to 30.
  • the latest data management unit 390 checks whether there is undelivered data corresponding to the received user ID, and if there is an undelivered file, the file identifier indicating the file 304 and the above-described encrypted chunk are transmitted to the data receiving device 20.
  • the data receiving device 20 For confirmation of undelivered data, for example, a table in which a user ID, a file identifier, and a delivery date / time of the file are associated with each other is stored, and when the file is delivered, the delivery date / time is written and the delivery date / time is written. Is written, it is determined that the file has already been distributed.
  • the user of the data receiving device 20 receives a partially encrypted file.
  • a user with workflow approval authority refers to the data export management workflow application matter information and the file 400 via the Web browser of the data transmission device 40, and The information application matter ID and approval action are transmitted to the latest data management device 30.
  • the workflow management unit of the latest data management apparatus 30 updates the status of the received application item information of the received application item ID to “approved”.
  • the differential data receiving unit of the data receiving device 20 transmits the file identifier 304 to the latest data management device 30 in order to obtain an encryption key necessary for decrypting the encrypted chunk received in the processing flow of encrypted data transfer. .
  • the difference data transmission unit of the latest data management device 30 confirms the status of the application matter information corresponding to the received file identifier 304, and if the status is already “approved”, the corresponding encryption key Is transmitted to the data receiving device 20.
  • the differential data receiving unit of the data receiving device 20 decrypts the encrypted chunk temporarily stored in the memory 212 or the storage 214 with the received encryption key, and stores the decrypted chunk in the memory 212 or Store in the storage 214. Then, the chunks are combined based on the file configuration information 403 stored in the memory 212 or the storage 214, and the file 400 is restored.
  • a part of the file is encrypted and transmitted when requested by the user, and then approved. After that, the encrypted part data and the key for decrypting the encrypted part data are transmitted, and only the part is decrypted. For example, the requested data is transmitted only after approval is given. Compared to the case, the time until the user can use the data can be shortened.
  • Network 20 Data reception device 30: Latest data management device 40, 40-1 to 40-n: Data transmission device 200, 400: File 202, 202-1 to 202-4, 401: Chunk 203, 303, 403 : File configuration information 204, 304, 404: File identifier 210, 310, 410: CPU 212, 312, 412: Memory 214, 314, 414: Storage 216, 316, 416: User interface 218, 318, 418: Communication interface 219, 319, 419: Internal bus 220, 430: Hash comparison unit 230: Path selection unit 240, 450: Chunking part 250, 420: Hash value calculation part 260: File restoration part 280: Setting part 290: Difference data receiving part 302: Version management table 307: Hash management table 380: Export prohibition information management part 385: Export prohibition information 409: File structure change information 440: Chunk transmission unit 490: Difference data transmission unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 データ転送に要する時間を短くすること、およびチェックアウト時またはデータ持出の承認時からユーザがデータを利用可能になるまでの時間を短縮することを目的とする。 転送を要求するデータを複数の部分データに分割し、当該部分データのハッシュ値を送信することで各部分データの所有の有無を複数の送信装置に問合せ、各部分データを所有する送信装置の中で最も受信装置に近い送信装置から当該部分データを転送する。またチェックイン中やワークフローの案件が未承認の状態で事前に送信装置から受信装置にデータを転送し、受信装置のユーザがアクセスできない状態で格納しておき、チェックアウト後や当該案件が承認済の状態になったら直ぐアクセス権限を付与する。

Description

差分データ転送システム及び方法
 本発明は、複数の拠点間でデータを共有するシステムおよび方法に関するものである。
 データをクライアント側でチャンクとよばれる数キロバイトの単位に分割し、サーバが所有していない新規チャンクのみを転送する方式を適用した場合、クライアントが転送しようとしているチャンクの中身が、サーバで所有しているチャンクの中身と少しでも異なっている場合、ハッシュ値が一致しないため、クライアントは当該チャンクの中身をすべて転送する必要がある。特許文献1ではこの無駄を解決すべく、クライアント側でチャンクをさらに分割して、一致していない部分を絞り込んで転送する方式を提案している。なお、以下で述べる特徴量については特許文献1に記載されている。
WO2012/005016
 データをクライアント側でチャンクとよばれる数キロバイトの単位に分割し、サーバが所有していない新規チャンクのみを転送する方式を適用した場合、データを更新した装置から差分のチャンクを転送する必要があるため、データを送受信する装置間のネットワークの距離が離れている場合はデータ転送時間が増大してしまう。特にグローバルに分散した拠点間でデータを転送する場合にはこの問題を避けることができない。他の従来技術の方式でも、同様にデータを更新した装置からデータを転送する必要がある。
 また、データの同時更新による不整合を防ぐために排他制御を行う場合に、チェックアウトしてから他の装置にデータを転送するとデータ転送に時間がかかる。同様にワークフローでデータ持出を管理する場合に、データ持出が承認されてから他の装置にデータを転送するとデータ転送に時間がかかる。
 そこで、本発明は、データ転送に要する時間を短くすること、およびチェックアウト時またはデータ持出の承認時からユーザがデータを利用可能になるまでの時間を短縮することを目的とする。
 上述した課題を解決し、目的を達成するために、本発明にかかる差分データ転送システムは、データ受信装置と複数のデータ送信装置とが互いにネットワークで接続された差分データ転送システムであって、データ受信装置は、ファイルと、前記ファイルのファイル識別子と、前記ファイルの分割データと、前記分割データの識別子およびハッシュ値とを対応付けたファイル構成情報とを記憶する受信装置記憶部と、複数のデータ送信装置から最新ファイルを記憶している旨の通知を受信し、または前記通知を行ったデータ送信装置の中から前記データ受信装置に最短距離にあるデータ送信装置に対して前記最新ファイルと前記受信装置記憶部が記憶するファイルとの差分となる分割データの要求を送信し、または前記最短距離にあるデータ送信装置から前記差分となる分割データを受信する受信装置通信部と、前記最新ファイルのファイル構成情報と、前記受信装置記憶部が記憶するファイル構成情報とに基づいて、前記差分となる分割データの識別子およびハッシュ値を含む差分ハッシュ情報を生成して前記複数のデータ送信装置に送信する差分データ生成部と、前記最新ファイルを記憶している旨を受信したデータ送信装置の中で前記データ受信装置に最短距離にあるデータ送信装置を特定する経路選択部と、前記受信装置記憶部が記憶する分割データと、前記最短距離にあるデータ送信装置から受信した前記差分となる分割データとに基づいて、最新のファイルを復元する復元部と、を備え、前記複数のデータ送信装置のそれぞれは、前記ファイルの識別子と、前記ファイルの分割データと、前記分割データの識別子とを対応付けて記憶する送信装置記憶部と、前記データ受信装置から前記差分ハッシュ情報と前記最新ファイルの識別子を受信し、または前記最新ファイルを記憶していると判定された場合に、前記差分となる分割データおよびその旨を前記データ受信装置に送信する送信装置通信部と、前記データ受信装置から受信した前記最新ファイルの識別子に基づいて、自身が記憶するファイルが最新であるか否かを判定する判定部と、を備えることを特徴とする差分データ転送システムとして構成される。
 また、本発明は、差分データ転送方法としても把握される。
 本発明によれば、データ転送に要する時間を短くすること、およびチェックアウト時またはデータ持出の承認時からユーザがデータを利用可能になるまでの時間を短縮することができる。
差分データ転送システムの概略を示した説明図である。 実施例1の装置間のデータフローの概要を示した説明図である。 データ受信装置の概略構成を例示するブロック図である。 最新データ管理装置の概略構成を例示するブロック図である。 データ送信装置の概略構成を例示するブロック図である。 データ受信装置と最新データ管理装置のデータ転送処理を例示するシーケンス図である。 データ受信装置とデータ送信装置のデータ転送処理(前半)を例示するシーケンス図である。 データ受信装置とデータ送信装置のデータ転送処理(後半)を例示するシーケンス図である。 ファイル識別子を例示する図である。 バージョン管理テーブルを例示する図である。 ハッシュ管理テーブルを例示する図である。 ストレージに格納したチャンクを例示する図である。 ファイル構成情報を例示する図である。 比較する二つのファイル構成情報と差分ハッシュ値および重複ハッシュ値を例示する図である。 実施例2の装置間のデータフローの概要を示した説明図である。 チャンキングおよびハッシュ値算出を例示する図である。 ロック管理情報を例示する図である。 ファイル構成出力処理を例示するシーケンス図である。 実施例3の装置間のデータフローの概要を示した説明図である。 データ持出管理ワークフローの申請案件情報を例示する図である。
 以下に添付図面を参照して、本発明にかかる差分データ転送システムおよび差分データ転送方法の実施の形態を詳細に説明する。
 図1は、本実施の形態における差分データ転送システムの概略を例示する図である。図示するように、差分データ転送システムは、データ受信装置20と、n台のデータ送信装置40-1~40-nと、最新データ管理装置30を備え、これらがネットワーク10を介して相互に情報を送受信できるよう設計されている。データ送信装置40-1~40-nはすべて同じ構成をとる。以下、任意の一つをデータ送信装置40と呼ぶ。なお、以下では、データ送信装置40と最新データ管理装置30とを物理的に2つの筺体に分けた前提で説明しているが、一つのデータ送信装置40が最新データ管理装置30を備えていてもよい。また、各装置が送信側と受信側のどちらの役割にもなるのが一般的な構成であるが、説明を分かりやすくするために、データ受信に必要な機能を有する装置をデータ受信装置20、データ送信に必要な機能を有する装置をデータ送信装置40として区別して説明する。
 なお、以下ではファイルを分割して得られるデータをチャンクとよび区別することにする。チャンクの実体はバイト列からなるデータに過ぎないため、以下で説明する実施の形態は、チャンクをデータと読み替えても正しく動作する。本実施形態では、最新データ管理装置30は、データ受信装置20から受信するハッシュ値とデータ受信装置20が要求する最新のファイルのハッシュ値を比較して差分データを特定し、差分データのチャンクを所有しているデータ送信装置40-1~40-nの中でデータ受信装置20に最も近いデータ送信装置40から当該チャンクを送信させることによりデータ転送の高速化を図る。また、以下ではファイルの最新バージョンを最新データ管理装置30が管理している前提で説明しているが、データ受信装置20やデータ送信装置40が管理していてもよい。
 図2を用いて本実施形態における装置間のデータフローの概要を説明する。データ受信装置20が古いバージョンのファイル200を保持しており、当該ファイル200の最新バージョンのファイル400の部分データであるチャンクをデータ送信装置40からデータ受信装置20に転送する場合の例で説明する。
 まずデータ受信装置20は、ファイル200の最新バージョンを確認するために、ファイル200を示すファイル識別子204を最新データ管理装置30へ送信する。ファイル識別子204の例を図9に示す。この例では、そのファイルが作成されたプロジェクトを識別するためのプロジェクトIDとファイル名とそのファイルのバージョンの組合せによりファイルを特定する。図9に示す例では、ファイル200のファイル名はF1.txtであり、そのバージョンが002であることを示している。また、そのファイル200は、プロジェクトIDがP00001であるプロジェクトで作成されたものであることを示している。
 次に、最新データ管理装置30は、受信したファイル識別子204に対応する最新のファイル400のハッシュ値302を含むファイル構成情報303とファイル識別子404をデータ受信装置20に送信する。ハッシュ値302、ファイル構成情報303の具体的な内容については後述する。
 次にデータ受信装置20は、差分データのチャンクを保持しているか否かを問い合わせるために、上述したファイル構成情報303に含まれるチャンクと保有しているファイルとの差分となるチャンクとそのチャンクのハッシュ値から構成される差分ハッシュ情報225を複数のデータ送信装置40-1~40-nに送信する。
 それぞれのデータ送信装置40は、データ受信装置20から受信した差分ハッシュ情報225と、保有しているファイルのチャンクのハッシュ値を比較して、保有しているチャンクと、差分ハッシュ情報225に含まれるチャンク識別子のチャンクとハッシュ値を含む差分ハッシュ情報425をデータ受信装置20に送信する。
 次にデータ受信装置20は、差分ハッシュ情報425を受け取ったデータ送信装置40のなかから最も近いものを特定し、そのデータ送信装置40に、差分のチャンクの転送を要求するために、ファイル識別子404と上述した差分ハッシュ情報225を送信する。次に、当該差分ハッシュ情報225を受信したデータ送信装置40は当該情報に含まれているハッシュ値432に対応するチャンクをデータ受信装置20に送信する。
 最後に、データ送信装置40-1~40-nからチャンクを受信したデータ受信装置20は当該チャンクと予め保有していたチャンク202からファイル400を復元する。以上の方式によりネットワーク上でやり取りするデータの転送時間が短縮できる。
 図3は、データ受信装置20の概略構成を例示するブロック図である。図示するように、データ受信装置20は、CPU210、メモリ212、ストレージ214、ユーザインターフェース216、通信インターフェース218、差分データ受信部290および設定部280を備え、これらが内部バス219を介して相互に情報を送受信できるように設計されている。差分データ受信部290は、チャンキング部240、ハッシュ値算出部250、ハッシュ比較部220、経路選択部230、ファイル復元部260を備え、内部バス219を介して単体でCPU210などと相互に情報を送受信することができる。
 まずは汎用的な構成要素について説明する。CPU210は、様々な数値計算や情報処理、機器制御などを行う中央処理装置である。メモリ212は、CPU210が直接読み書きできるRAMやROMなどの半導体記憶装置である。ストレージ214は、コンピュータ内でデータやプログラムを記憶するハードディスクや磁気テープ、フラッシュメモリ等の装置である。当該装置はデータ送信装置40から受信するファイルなどを格納する。
 ユーザインターフェース216は、ディスプレイやマウス、キーボード等、ユーザに処理結果を出力し、かつユーザの指示を受け付けてデータ送信装置40の各構成要素に反映させるための装置である。
 通信インターフェース218は、データ送信装置40の各構成要素のネットワーク10を介したデータの送受信を制御するための装置である。相手方と認証して通信路を確立したり、処理が完了した後や、一定時間を経過しても相手方が何の応答しなかった場合などに通信路を切断したりなどの制御をおこなう。
 本実施例特有の構成要素は、差分データ受信部290、これを構成するチャンキング部240、ハッシュ値算出部250、ハッシュ比較部220、経路選択部230、ファイル復元部260である。これらのうち従来のデータ転送装置にはない最も特徴的な構成要素は、経路選択部230である。
 差分データ受信部290は、ストレージ214に格納されているファイルの最新バージョンの取得指示を、ユーザインターフェース216を介してユーザから受け取る。差分データ受信部290は、チャンキング部240、ハッシュ値算出部250、ハッシュ比較部220、経路選択部230、ファイル復元部260などを制御して、通信インターフェース218を介してハッシュ値222およびチャンク242を送受信し、メモリ212またはストレージ214に格納する。データ転送処理の一連の動作フローについては後で図6を用いて説明する。
 チャンキング部240は、ストレージ214に格納されているファイルを読み取ってチャンクに分割し、メモリ212またはストレージ214に一時的に格納する。
 ハッシュ値算出部250は、メモリ212またはストレージ214に格納されているファイルやチャンクを読み取り、ハッシュ値を算出し、メモリ212またはストレージ214に出力する装置である。ハッシュ値を導出するハッシュ関数として、例えばMD5やSHA-1などが知られている。
 設定部280は、最新データ管理装置30やデータ送信装置40からの応答を待つ待機時間の上限や、チャンキングなどの処理に必要なパラメータを設定する。これらのパラメータはユーザインターフェース216を介してユーザによって設定され、チャンキング部240、ハッシュ値算出部250などに反映される。
 なお、差分データ受信部290、これを構成するチャンキング部240、ハッシュ値算出部250、ハッシュ比較部220、経路選択部230、およびファイル復元部260については、それぞれの各部が単体で処理を実行してもよいし、それぞれの装置はプログラムのみを具備し、CPU210が当該プログラムをメモリ212に読み込んで実行してもよい。
 図4は、最新データ管理装置30の概略構成を例示するブロック図である。図示するように最新データ管理装置30は、CPU310、メモリ312、ストレージ314、ユーザインターフェース316、通信インターフェース318、および最新データ管理部390を備え、これらが内部バス319を介して相互に情報を送受信できるように設計されている。
 汎用的な構成要素であるCPU310、メモリ312、ストレージ314、ユーザインターフェース316、通信インターフェース318については、図3と同様の機能を有するので説明を割愛する。本実施例特有で従来のデータ転送装置にはない特徴的な構成要素は、最新データ管理部390である。
 最新データ管理部390は、通信インターフェース318を介してデータ受信装置20からファイル識別子204を受信してメモリ312に一時的に格納し、当該ファイル識別子204に対応するファイルを構成するチャンクのハッシュ値をストレージ314から取得し、メモリ312、ストレージ314に一時的に格納し、通信インターフェース318を介してデータ受信装置20に送信するための装置である。この一連の処理の動作フローについては後で図6を用いて説明する。
 図5は、データ送信装置40の概略構成を例示するブロック図である。図示するようにデータ送信装置40は、CPU410、メモリ412、ストレージ414、ユーザインターフェース416、通信インターフェース418、および差分データ送信部490を備え、これらが内部バス419を介して相互に情報を送受信できるように設計されている。差分データ送信部490は、チャンキング部450、ハッシュ値算出部420、ハッシュ比較部430、およびチャンク送信部440を備え、内部バス419を介して単体でCPU310などと相互に情報を送受信することができる。
 汎用的な構成要素であるCPU410、メモリ412、ストレージ414、ユーザインターフェース416、通信インターフェース418については、図3と同様の機能を有するので説明を割愛する。本実施例特有で従来のデータ転送装置にはない特徴的な構成要素は、差分データ送信部490、これを構成するチャンキング部450、ハッシュ値算出部420、ハッシュ比較部430、およびチャンク送信部440である。
 差分データ送信部490は、通信インターフェース418を介してデータ受信装置20とハッシュ値および重複ハッシュ値406およびチャンク401を送受信するための装置である。この一連の処理の動作フローについては後で図6を用いて説明する。なお、差分データ送信部490、これを構成するチャンキング部450、ハッシュ値算出部420、ハッシュ比較部430、およびチャンク送信部440については、それぞれの装置が単体で処理を実行してもよいし、それぞれの装置はプログラムのみを具備し、CPU410が当該プログラムをメモリ412に読み込んで実行してもよい。
 図6と図7および図8を用いて、データ受信装置20、最新データ管理装置30、およびデータ送信装置40の代表的なデータ転送処理を例示する。図3の差分データ受信部290と図4の最新データ管理部390、および図5の差分データ送信部490とが、以下の手順でネットワーク10を介したデータ転送を行う。差分データ受信部290、最新データ管理部390、および差分データ送信部490は、それぞれ通信インターフェース218、通信インターフェース318、通信インターフェース418を介して相互にデータ転送を行うが、ここでは説明を簡潔にするために、通信インターフェースの処理の記載は省略する。
 まず、データ受信装置20のユーザインターフェース216が、ユーザから最新バージョンを要求するファイル200の選択を受け付ける(S600)。データ受信装置20の差分データ受信部290は、当該ファイル200が最新であるかどうかを確認するために当該ファイル200のファイル識別子204を最新データ管理装置30に送信する(S601)。ファイル識別子204の例を図9に示す。
 最新データ管理装置30の最新データ管理部390は、データ受信装置20から受信したファイル識別子204に対応するファイル200の最新バージョンをバージョン管理テーブルで参照し、最新バージョンを示すファイル識別子304を取得する。次に、最新データ管理部390は、当該ファイル識別子304を検索キーとしてハッシュ管理テーブル307からファイル構成情報303によって構成されるファイルのチャンクのハッシュ値を取得する(S602)。
バージョン管理テーブルの例を図10に示す。図10の例の場合は、プロジェクトIDとファイル名が一致するレコードのバージョンの値を参照することにより最新バージョンを確認できる。例えば、ファイル名F1.txtで識別されるファイルの最新バージョンは003であることが分かる。
 また、ハッシュ管理テーブル307の例を図11に示す。図11に示すように、ハッシュ管理テーブル307は、ファイル識別子と、そのファイル識別子によって識別されるファイルを分割したチャンクのチャンク識別子と、そのチャンクのハッシュ値とが対応付けて記憶されている。例えば、図11では、F1.txtによって識別されるバージョン002のファイルは、チャンク識別子001および002によって識別される2つのチャンクに分割されて管理され、各チャンクのハッシュ値が、それぞれM9LA7EU2F、EPJVU884WEであることを示している。
 また、ファイル構成情報の例を図13に示す。図13に示すように、ファイル構成情報は、ファイルごとに、上述したチャンク識別子とハッシュ値とが対応付けて記憶されている。図13では、例えば、チャンク識別子001で識別されるチャンクのハッシュ値はM9LA7EU2Fであることを示している。また、図13の例で示されるファイルは、チャンク識別子001~005の5つのチャンクによって構成されていることを示している。最新データ管理部390は、ファイルが最新の状態に更新される都度、ファイル識別子をキーとしてハッシュ管理テーブル307にアクセスし、データ受信装置20から受信したファイルを構成するチャンクのハッシュ値をハッシュ管理テーブル307に格納するとともに、ファイル構成情報を格納する。
 S601が終了すると、データ受信装置20のチャンキング部240とハッシュ値算出部250は、図18に示すファイル構成出力処理を実行する(S603)。チャンキング部240は、ファイル200を複数のチャンク202とよばれる部分データに分割する(チャンキング)。ハッシュ値算出部250は、当該チャンク202のハッシュ値208を算出する。
 図18は、ファイル構成出力処理の処理手順を示すフローチャートである。図18に示すように、チャンキング部240は、S601で送信したファイル識別子が示すファイル200をストレージ214やメモリ212から取得し(S1800)、そのファイル200に対して上述したチャンキング処理を実行する(S1801)。そして、チャンキング部240は、分割したそれぞれのチャンクにチャンク識別子に関連付けて出力する(S1802)。
 ハッシュ値算出部250は、ストレージ214やメモリ212に記憶された各チャンクのハッシュ値を算出し(S1803)、図13に示したようなファイル構成情報を生成する(S1804)。このS1804の処理が終了すると、ファイル構成出力処理が終了する。
 図16にチャンキングの結果、ファイル200をチャンク202-1~202-4の4つのチャンク202に分割し、チャンク202-1~202-4からハッシュ値208-1~208-4を算出した例を示す。図16では、チャンキング部240がファイル200を4つのチャンクに分割し、ハッシュ値算出部250がそれぞれのチャンクのハッシュ値を算出していることがわかる。続いて、図6に戻って、S604以降の処理について説明する。
 データ受信装置20の差分データ受信部290は、ステップS603で得られるチャンク202とファイル構成情報203とファイル識別子204をメモリ212またはストレージ214に一時的に格納する(S604)。ここでチャンク202をストレージ214に格納する例を、図12に示す。この例ではファイル識別子204を名称とするフォルダにチャンク識別子をチャンク202のファイル名として格納する。図12では、ファイル名P00001_F1.txt_002で識別されるファイルが4つのチャンクに分割され、ストレージ214に格納されていることがわかる。なお、ステップS603およびステップS604の処理は、ステップS600の前に行っていてもよい。
 S602の処理が終了すると、最新データ管理装置30の最新データ管理部390は、ステップ(S602)で取得したファイル構成情報303とファイル識別子304をデータ受信装置20に送信する(S605)。データ受信装置20の差分データ受信部290は、最新データ管理装置30から受信したファイル構成情報303とファイル識別子304をメモリ212またはストレージ214に一時的に格納する(S606)。
 データ受信装置20の差分データ受信部290のハッシュ比較部220は、最新データ管理装置30から受信し、メモリ212またはストレージ214に格納したファイル構成情報303と、ハッシュ値算出部250がファイル構成出力処理で生成し、メモリ212またはストレージ214に格納したファイル構成情報203とを入力値としてハッシュ比較処理を実行し、重複ハッシュ情報226と差分ハッシュ情報226を生成する(S607)。ハッシュ比較処理は図14を用いて後で説明する。差分ハッシュ情報226に含まれるハッシュ値222はファイル200と最新バージョンのファイル400との差分データのチャンクのハッシュ値を意味する。
 続いて、図7に進み、データ受信装置20の差分データ受信部290は、前記差分のチャンクの保有の有無を問い合わせるために、前記差分ハッシュ情報226と前記ファイル識別子304を複数のデータ送信装置40-1~40-nに送信する(S701)。
 データ送信装置40の差分データ送信部490は、データ受信装置20から受信した差分ハッシュ情報226とファイル識別子304を取得し、当該ファイル識別子304が示す最新バージョンのファイル400を保有しているか否かを判定し、その結果を確認する(S702)。データ送信装置40の差分データ送信部490は、確認の結果、最新バージョンのファイル400を保有している場合はステップS708へ、保有していない場合はステップS704へ進む(S703)。
 差分データ送信部490のチャンキング部450は、ファイル識別子304が示す最新バージョンのファイルに類似するファイル400を特定し、当該ファイル400を入力値としてチャンキング処理を実行し、保有ファイルのチャンク452を生成する(S704)。例えば、チャンキング部450は、ファイル識別子のうち、プロジェクトIDおよびファイル名が同じであってバージョンが異なるファイル、あるいはファイル名が同じであって、プロジェクトIDおよびバージョンが異なるファイルを類似するファイルとして特定する。
 差分データ送信部490のハッシュ値算出部420は、前記保有ファイルのチャンク452を入力値としてハッシュ値算出処理を実行し、保有ファイルのチャンク452のハッシュ値454を算出する。次に当該ハッシュ値454から図13に示したようなファイル構成情報403を生成する(S705)。
 差分データ送信部490のハッシュ比較部430は、ステップS705で生成したファイル構成情報403とステップS702で取得した差分ハッシュ情報226を入力値としてハッシュ比較処理を実行し、差分ハッシュ情報425を生成する(S706)。例えば、プロジェクトIDが異なる場合であっても最新バージョンと内容が同じであれば差分ハッシュ情報425は差分ハッシュ情報226と同じものとなる一方、最新バージョンと内容が異なる場合には、そのハッシュ値は、最新バージョンのファイルの差分ハッシュ情報226に含まれるハッシュ値とは異なる値となる。差分データ送信部490のチャンク送信部440は、当該差分ハッシュ情報425をデータ受信装置20に送信する(S707)。
 一方、S703で最新バージョンのファイル400を保有している場合、差分データ送信部490のチャンク送信部440は、その旨を通知する(S708)。差分データ送信部490のチャンク送信部440は、そのファイルのファイル構成情報403については既に最新データ管理装置30から取得しているため、その旨のみ通知している。
 データ受信装置20の差分データ受信部290は、データ送信装置40から受信した差分ハッシュ情報425を当該データを送信したデータ受信装置の名称と共にメモリ212またはストレージ214に一時的に格納する(S709)。
 データ受信装置20の差分データ受信部290は、ステップS704で差分ハッシュ情報226を送信した全てのデータ送信装置40-1~40-nから重複ハッシュ情報426を受信した場合、またはタイムアウトになった場合にステップS800に進み、それ以外の場合は待機して、他のデータ送信装置40のステップS709の処理を繰り返す(S710)。
 そして、図8に進み、データ受信装置20の差分データ受信部290の経路選択部230は、S607で生成された差分ハッシュ情報226に含まれるハッシュ値222ごとに、ステップS709でメモリ212またはストレージ214に一時的に格納した差分ハッシュ情報425に含まれる差分ハッシュ値の中で、そのハッシュ値222と値が同一であるハッシュ値432を検索し、対応するデータ受信装置の名称のリストを取得する(S801)。
 差分データ受信部290の経路選択部230は、S801で検索したハッシュ値222ごとに、その値に対応するチャンクの転送を要求する要求先として、データ受信装置の名称のリストの中から、データ受信装置20と各データ受信装置のネットワーク距離が最短であるデータ受信装置を選択する(S802)。差分データ受信部290の経路選択部230は、ネットワーク距離が最短であるか否かの判断を、例えば、IPアドレスを確認することによって行う。
 差分データ受信部290の経路選択部230は、差分のチャンクを要求するために、選択したデータ送信装置40に対して、そのハッシュ値222と対応するチャンク識別子を送信する(S803)。差分データ送信部490のチャンク送信部440は、データ受信装置20から受信したハッシュ値222に対応するチャンクとチャンク識別子の組合せをデータ受信装置20に送信する(S804)。
 差分データ受信部290のファイル復元部260は、データ送信装置40から受信したチャンクを、受信したチャンク識別子207をキーにしてストレージ214に一時的に格納する(S805)。ここで要求した全てのチャンク424を受信するまで当該処理を継続し、完了したらステップS806の処理に進む。
 差分データ受信部290のファイル復元部260は、ステップS607でメモリ212またはストレージ214に一時的に格納したファイル構成情報303を読み出すとともに、ステップS805でストレージ214に格納したチャンク424、およびステップS603でストレージ214に格納したチャンク202を読み出し、そのファイル構成情報303に含まれるチャンク識別子の順にチャンクを結合して最新バージョンのファイル400を復元する(S806)。
 次に、図14を用いてハッシュ比較処理の例を説明する。図14の(A)は保有しているファイルのファイル構成情報203であり、図14の(B)は差分の有無を確認する対象となるファイルのファイル構成情報303である。図14の(C)はハッシュ比較処理で得られる差分ハッシュ値と対応するチャンク識別子からなる差分ハッシュ情報である。図14の(D)はハッシュ比較処理で得られる重複ハッシュ値と対応するチャンク識別子からなる重複ハッシュ情報である。
 ハッシュ比較処理では、まずファイル構成情報303のハッシュ値について当該ハッシュ値と値が一致するものがファイル構成情報203にあるか検索し、一致するものがある場合は当該レコードを重複ハッシュ値に分類し、一致するものがない場合は当該レコードを差分ハッシュ値に分類する。例えば図14の(B)のハッシュ値「AAAA」と「BBBB」と「CCCC」はそれぞれ図14の(A)の1レコード目から3レコード目に存在するため図14の(D)に示すように重複ハッシュ値に分類する。反対に図14の(B)のハッシュ値「XXXX」と「YYYY」はそれぞれ図14の(A)のどのレコードにも存在しないためそのような差となったレコードを図14の(C)に示すように重複ハッシュ値に分類する。
 以上、図1~図17を用いて、本実施例のシステム構成及びデータ転送方式について説明した。本実施例によって、チャンクを有する複数のデータ送信装置の中でネットワーク距離が最短であるデータ送信装置からチャンクを取得できるようになるため、従来方式と比較してよりデータ転送の総時間を短縮することができる。また、データを転送するネットワークの距離が短くなることでデータ転送時間を短縮できる。またデータ転送処理が複数の装置に分散され、さらにデータが転送される経路も分散されることにより、単位データサイズあたりの利用可能な通信帯域が相対的に大きくなり、トータルのデータ転送時間が短縮できる。
 なお、本実施例では、最新のバージョンをデータ受信装置20が取得する場合について説明しているが、ユーザ所望の特定のバージョン(例えば、最新よりも1つ前のサイクルのファイルのバージョン)が指定され、そのバージョンのファイルのファイル構成情報や差分ハッシュ情報を受信し、復元してもよい。
 次に、実施例1の最新データ管理装置30においてファイル更新のロックを管理し、最新データを常に同期するためにデータ送信装置40が更新データをデータ受信装置20に配信する場合の実施の形態を図面に基づいて詳細に説明する。
 図15を用いて本実施形態における装置間のデータフローの概要を説明する。まず初めにデータ送信装置40がチェックインして(ファイルを排他制御してロックして)ファイルを更新するために、更新するファイル400のファイル識別子404を最新データ管理装置30に送信する。
 次に最新データ管理装置30がチェックインを通知するために、そのファイル識別子404をデータ受信装置20に送信する。データ受信装置20のユーザは、この通知により、そのファイルがロックされたことがわかる。
 次にデータ受信装置20は、暫定的に差分のチャンクの転送を要求するために、送信されたファイル識別子404とデータ受信装置20が現在所有しているファイル識別子が示すファイルのファイル構成情報203をデータ送信装置40に送信する。
 次に、データ送信装置40が差分のチャンクと更新後のファイル構成情報403をデータ受信装置20に送信する。ここでデータ送信装置40がファイル400を更新するたびに、更新に対応する差分データのチャンクとファイル構成情報403をデータ受信装置20に送信する処理を繰り返す。データ受信装置20では、差分データのチャンクとファイル構成情報403をデータ送信装置40から受信すると、実施例1の場合のように、S805およびS806と同様の処理を繰り返す。
 次に、データ送信装置40がファイルの更新を終了してチェックアウトするために最新データ管理装置30に、更新終了時点の最新のファイル識別子404と更新後のファイル構成情報403を最新データ管理装置30に送信する。最後に、データ送信装置40がチェックアウトを通知するためにファイル識別子404をデータ受信装置20に送信する。
 図15を用いて、データ受信装置20、最新データ管理装置30、およびデータ送信装置40の代表的なデータ転送処理を例示する。本実施形態における処理フローは、チェックイン、差分データ転送、チェックアウトの3つから構成する。初めにチェックインの処理フローを説明する。
 まず、ユーザがデータ送信装置40のユーザインターフェース416を介してファイル400に対してチェックインを指示し、ユーザインタフェース416がその指示を受け付けると、データ送信装置40は、当該ファイル400のファイル識別子404を最新データ管理装置30に送信する。
 最新データ管理装置30の最新データ管理部390は、メモリ312またはストレージ314に格納しているロック管理情報を参照して、受信したファイル識別子404のロック有無を確認し、ロック状態(locked)であればロック状態(locked)であることをデータ送信装置40に送信する。非ロック状態(unlocked)であればロック管理情報の当該レコードのロック有無およびユーザIDをそれぞれロック状態(locked)とチェックインを要求しているユーザIDの値で更新し、ファイル識別子404のバージョンを暫定的に新しいバージョンに更新したファイル識別子304をデータ送信装置40に送信する。
 図17にロック管理情報の例を示す。ロック有無の値が「locked」の場合はチェックイン中でファイル識別子が示すファイルがロックされていることを意味する。図17では、ファイル名F1.txtのバージョン002のファイルはロックされておらず、ファイル名F1.txtのバージョン003のファイルはユーザU0001によってロックされていることを示している。
 次に最新データ管理装置30の最新データ管理部390は、チェックインを通知するために全てのデータ受信装置20にファイル識別子404を送信する。データ受信装置20の差分データ受信部290では、受信したファイル識別子404に対応するファイル200をデータ受信装置20のユーザが更新できないように、アクセスを制限する。
 次に、差分データ転送の処理フローを説明する。ユーザがデータ送信装置40のユーザインターフェース416を介してファイル400を更新すると、データ送信装置40の差分データ送信部490は、ファイル識別子404を引数として図18に示すファイル構成出力処理を実行して、更新後のファイル構成情報403を生成する。またファイル構成情報403の更新前後を比較し、ハッシュ値が異なる更新後のチャンクとファイル識別子404と更新後のファイル構成情報403をデータ受信装置20に送信する。
 次にデータ受信装置20の差分データ受信部290は、ファイル識別子404と更新後のチャンクと更新後のファイル構成情報403を受信し、当該ファイル構成情報403に基づいて受信したチャンクと所有していたチャンクをファイル識別子404に対応付けてメモリ212またはストレージ214に格納する。上記の差分データ転送の処理フローは、ユーザがデータ送信装置40のユーザインターフェース416を介してファイル400を更新する度に実行する。
 次に、チェックアウトの処理フローを説明する。次に、ユーザがデータ送信装置40のユーザインターフェース416を介してファイル400に対してチェックアウトを指示すると、データ送信装置40の差分データ送信部490はファイル識別子404とファイル構成情報403を最新データ管理装置30に送信する。
 最新データ管理装置30の最新データ管理部390は、メモリ312またはストレージ314に格納しているロック管理情報において、受信したファイル識別子404に対応するレコードのロック有無の値を非ロック状態(unlocked)に更新する。
 次に最新データ管理装置30の最新データ管理部390は、チェックアウトを通知するためにデータ送信装置40から受信した最新のファイル識別子404をデータ受信装置20に送信する。これにより他受信装置20のユーザはファイルの最新のバージョンがわかる。最後にデータ受信装置20は、受信したファイル識別子404が示すファイルのロックを解除し、データ受信装置20のユーザが当該ファイルを更新できる状態にする。
 このように、実施例2では、更新されるファイルを排他制御した後、更新されたファイルの差分チャンクをその都度データ受信装置20に送信して更新しておく一方、最終的に更新された際のファイル構成情報を最新データ管理装置に送信し、排他制御を解除するので、一度にファイルを更新して排他制御を解除する場合に比べて、排他制御を解除してからユーザがデータを利用可能になるまでの時間を短縮できる。
 次に、実施例1の最新データ管理装置30においてデータ持出管理ワークフローを管理し、ワークフローのステータスに連動してデータ転送する場合の実施の形態を図面に基づいて詳細に説明する。
 本実施形態の最新データ管理装置30はデータ送信装置40と同様にチャンキング部350、ハッシュ値算出部320、ハッシュ比較部330、チャンク送信部340を含む差分データ送信部390を有し、各データ受信装置20、およびデータ送信装置40が所有するファイルのハッシュ値をストレージ314に有する。
 図19を用いて本実施形態におけるデータ受信装置20、最新データ管理装置30、およびデータ送信装置40の代表的なデータ転送処理を例示する。本実施形態は、データ持出申請、暗号データ転送、データ持出承認、データ復号化の4つの処理フローから構成する。
 はじめにデータ持出申請の処理フローを説明する。ファイル400の持出の承認を得るために、ユーザがデータ送信装置40のWebブラウザを介してデータ持出管理ワークフローの申請案件情報とファイル400を最新データ管理装置30に送信する。図20に申請案件情報の例を示す。図20では、例えば、申請案件を識別するための申請案件IDがW00001の案件は、申請者user-1によって申請され、ファイル識別子F00001によって識別されるファイルを、転送先Site_Bに転送することを示している。また、現段階では、その申請は、申請者user-2によって承認済みの状態であることを示している。
 次に最新データ管理装置30のワークフロー管理部は、受信した当該申請案件情報とファイル400をメモリ312またはストレージ314に格納する。当該申請案件情報を格納する際、当該データのステータスの値を「未承認」にする。また、ワークフロー管理部は、当該ファイル400を入力として図18に示すファイル構成出力処理を実行して、ファイル構成情報403を生成する。
 ここで、ワークフロー管理部は、事前に登録されているデータ持出禁止情報(例えば、持ち出しが禁止されているファイルと、そのファイルに含まれるチャンクと、そのチャンクのハッシュ値とを対応付けた情報)のハッシュ値が前記ファイル構成情報403に含まれていないか検索し、含まれている場合は前記申請案件情報に警告フラグまたは警告メッセージを追加してデータ転送(例えば、データ受信装置20への送信)をブロックする。
 あるいは、ワークフロー管理部は、前記ファイル構成情報403に含まれているハッシュ値が事前に登録されているデータ転送を承認されたデータ(ファイルに含まれるチャンク)のハッシュ値のリストに含まれているかを確認し、含まれていないハッシュ値の数またはその比率が予め設定している値を超えた場合は前記申請案件情報に警告フラグまたは警告メッセージを追加してデータ転送をブロックすることとしてもよい。すなわち、ワークフロー管理部が、承認前の承認申請対象ファイルの送信を承認された場合であっても、承認前の承認申請対象ファイルの分割データのハッシュ値が、あらかじめ記憶するデータ受信装置20への送信が承認されたファイルの分割データのハッシュ値に含まれていない分割データの数または比率を判定し、その分割データの数または比率が所定の閾値を超えた場合、データ受信装置20に警告を送信して承認前の承認申請対象ファイルの送信をブロックすることも可能である。
 次に、ワークフロー管理部は、当該ファイル400に対して暗号鍵を生成し、一時的にメモリ312またはストレージ314に格納する。
 次に、ワークフロー管理部は、生成したファイル構成情報403とデータ受信装置20が保有しているファイルに含まれるチャンクのハッシュ値を比較し、実施例1、2の場合と同様の差分ハッシュ情報を生成する。そして、最新データ管理部390は、当該差分ハッシュ情報に対応するチャンクを前記暗号鍵で暗号化した暗号化チャンクを生成する。そして当該暗号鍵と当該暗号チャンクを一時的にメモリ312またはストレージ314に格納する。暗号化チャンクを生成する理由は、申請案件情報に含まれるファイル(ファイル識別子によって識別されるファイル)が未承認の状態の場合には、その案件に対して承認者が検討途中であり、承認、未承認の理由等、データ受信装置20を使用する他のユーザに開示されては困る情報が記録されている場合があるためである。したがって、ワークフロー管理部は、未承認の状態にあるファイル全体、またはその部分(申請時と異なる部分。すなわち、差分ハッシュ情報に含まれるチャンク)について暗号化する。
 次に、暗号データ転送の処理フローを説明する。データ受信装置20の差分データ受信部は、未配信のファイルのダウンロードを要求するため、定期的にユーザID(例えば、図20に示した申請案件情報の申請者以外のユーザ)を最新データ管理装置30に送信する。
 次に、最新データ管理装置30は、最新データ管理部390が、受信した前記ユーザIDに対応する未配信のデータの有無を確認し、未配信のファイルがある場合は、当該ファイルを示すファイル識別子304と上述した暗号化チャンクをデータ受信装置20に送信する。未配信のデータの確認については、例えば、ユーザIDと、ファイル識別子と、そのファイルの配信日時とを対応付けたテーブルを記憶しておき、ファイルを配信した場合にその配信日時を書込み、配信日時が書き込まれている場合には、そのファイルは配信済みであると判断する。この段階では、データ受信装置20のユーザは、一部が暗号化された状態のファイルを受信することとなる。
 次に、データ持出承認の処理フローを説明する。データ持出管理ワークフローの案件を処理するために、ワークフローの承認権限を持つユーザがデータ送信装置40のWebブラウザを介してデータ持出管理ワークフローの申請案件情報とファイル400を参照し、当該申請案件情報の申請案件IDと承認アクションを最新データ管理装置30に送信する。次に最新データ管理装置30のワークフロー管理部は、受信した前記申請案件IDの申請案件情報のステータスを「承認済」に更新する。
 次に、データ復号化の処理フローを説明する。データ受信装置20の差分データ受信部は、暗号データ転送の処理フローで受信した暗号化チャンクの復号化に必要な暗号鍵を取得するために、前記ファイル識別子304を最新データ管理装置30に送信する。
 次に最新データ管理装置30の差分データ送信部は、受信した前記ファイル識別子304に対応する申請案件情報のステータスを確認し、ステータスが既に「承認済」になっている場合は、対応する暗号鍵をデータ受信装置20に送信する。
 最後に、データ受信装置20の差分データ受信部は、受信した前記暗号鍵で一時的にメモリ212またはストレージ214に格納している前記の暗号化チャンクを復号化し、復号化したチャンクをメモリ212またはストレージ214に格納する。そしてメモリ212またはストレージ214に格納している前記ファイル構成情報403に基づいてチャンクを結合し、ファイル400を復元する。
 このように、実施例3では、承認が必要なファイルが未承認の状態であっても、ユーザから要求があった場合にはその一部を暗号化して送信しておき、その後承認がなされた後、暗号化した部分のデータおよび暗号化された部分のデータを復号化するための鍵を送信し、その部分のみを復号化するので、例えば、承認が下りて初めて要求されたデータを送信する場合に比べて、ユーザがデータを利用可能になるまでの時間を短縮できる。
 10:ネットワーク
 20:データ受信装置
 30:最新データ管理装置
 40、40-1~40-n:データ送信装置
 200、400:ファイル
 202、202-1~202-4、401:チャンク
 203、303、403:ファイル構成情報
204、304、404:ファイル識別子
 210、310、410:CPU
 212、312、412:メモリ
 214、314、414:ストレージ
 216、316、416:ユーザインターフェース
 218、318、418:通信インターフェース
 219、319、419:内部バス
 220、430:ハッシュ比較部
 230:経路選択部
 240、450:チャンキング部
 250、420:ハッシュ値算出部
 260:ファイル復元部
 280:設定部
 290:差分データ受信部
 302:バージョン管理テーブル
 307:ハッシュ管理テーブル
 380:持出禁止情報管理部
 385:持出禁止情報
 409:ファイル構成変更情報
 440:チャンク送信部
 490:差分データ送信部。

Claims (9)

  1.  データ受信装置と複数のデータ送信装置とが互いにネットワークで接続された差分データ転送システムであって、
     データ受信装置は、
     ファイルと、前記ファイルのファイル識別子と、前記ファイルの分割データと、前記分割データの識別子およびハッシュ値とを対応付けたファイル構成情報とを記憶する受信装置記憶部と、
     複数のデータ送信装置から最新ファイルを記憶している旨の通知を受信し、または前記通知を行ったデータ送信装置の中から前記データ受信装置に最短距離にあるデータ送信装置に対して前記最新ファイルと前記受信装置記憶部が記憶するファイルとの差分となる分割データの要求を送信し、または前記最短距離にあるデータ送信装置から前記差分となる分割データを受信する受信装置通信部と、
     前記最新ファイルのファイル構成情報と、前記受信装置記憶部が記憶するファイル構成情報とに基づいて、前記差分となる分割データの識別子およびハッシュ値を含む差分ハッシュ情報を生成して前記複数のデータ送信装置に送信する差分データ生成部と、
     前記最新ファイルを記憶している旨を受信したデータ送信装置の中で前記データ受信装置に最短距離にあるデータ送信装置を特定する経路選択部と、
     前記受信装置記憶部が記憶する分割データと、前記最短距離にあるデータ送信装置から受信した前記差分となる分割データとに基づいて、最新のファイルを復元する復元部と、を備え、
     前記複数のデータ送信装置のそれぞれは、
     前記ファイルの識別子と、前記ファイルの分割データと、前記分割データの識別子とを対応付けて記憶する送信装置記憶部と、
     前記データ受信装置から前記差分ハッシュ情報と前記最新ファイルの識別子を受信し、または前記最新ファイルを記憶していると判定された場合に、前記差分となる分割データおよびその旨を前記データ受信装置に送信する送信装置通信部と、
     前記データ受信装置から受信した前記最新ファイルの識別子に基づいて、自身が記憶するファイルが最新であるか否かを判定する判定部と、
     を備えることを特徴とする差分データ転送システム。
  2.  最新ファイルを管理するデータ管理装置であって、前記最新ファイルのファイル識別子と、前記最新ファイルのファイル構成情報とを記憶する管理装置記憶部と、前記データ受信装置から受信した前記最新ファイルの送信要求に基づいて、前記最新ファイルのファイル構成情報を取得して前記データ受信装置に送信する管理装置通信部と、を備え、前記データ受信装置および前記データ送信装置にネットワークを介して接続されたデータ管理装置をさらに備え、
     前記データ受信装置は、
     前記受信装置通信部が、前記データ管理装置に前記識別子を送信して最新バージョンのファイルの送信要求を行い、または前記最新ファイルのファイル構成情報およびその識別子を前記データ管理装置から受信する、
     ことを特徴とする請求項1に記載の差分データ転送システム。
  3.  前記データ送信装置のそれぞれは、
     前記判定部が、自身が記憶するファイルが最新でないと判定した場合には、そのファイルの分割データを生成し、生成した前記分割データのハッシュ値と、前記データ受信装置から受信した差分ハッシュ情報に含まれるハッシュ値とに基づいて、前記差分ハッシュ情報に含まれるハッシュ値と同じハッシュ値を含む分割データの差分ハッシュ情報を前記データ受信装置に送信し、
     前記データ受信装置は、
     前記経路選択部が、前記差分ハッシュ情報に含まれるハッシュ値と同じハッシュ値を含む分割データの差分ハッシュ情報を受信したデータ送信装置の中で、前記データ受信装置に最短距離にあるデータ送信装置を特定し、
     前記復元部は、前記受信装置記憶部が記憶する分割データと、最短距離にあるデータ送信装置から受信した前記差分ハッシュ情報で示される分割データとに基づいて、最新のファイルを復元する、
     ことを特徴とする請求項1または2に記載の差分データ転送システム。
  4.  前記データ送信装置は、
     前記判定部が、前記送信装置記憶部に記憶されているファイルを更新する際に排他制御してデータ受信装置からのアクセスを不可として前記ファイルを更新し、最後に更新した際に前記ファイルのファイル構成情報と前記ファイル識別子とを前記管理サーバに送信し、
     前記データ受信装置は、
     前記差分データ生成部が、前記データ送信装置に前記差分となる分割データの送信要求を行い、
     前記受信装置通信部が、前記データ送信装置が前記ファイルを更新する都度前記差分となる分割データを受信し、または最後に更新された前記ファイルのファイル識別子を前記データ管理装置から受信し、
     前記データ管理装置は、
     前記前記管理装置通信部が、前記データ送信装置から受信した最後に更新した際に前記ファイルのファイル構成情報と前記ファイル識別子とを前記管理装置記憶部に記憶し、前記最後に更新された前記ファイルのファイル識別子を前記データ受信装置に送信する、
     ことを特徴とする請求項1または2に記載の差分データ転送システム。
  5.  前記データ送信装置は、
     前記送信装置通信部が、ユーザからの指示を受けて前記送信装置記憶部に記憶されている承認申請対象ファイルを前記データ管理装置に送信し、または前記承認申請対象ファイルに対する承認情報を前記データ管理装置に送信し、
     前記データ受信装置は、
     前記受信装置通信部が、ユーザからの指示を受けて承認前の前記承認申請対象ファイルのダウンロード要求を前記データ管理装置に送信し、または前記データ管理装置から前記承認前の前記承認申請対象ファイルの前記分割データが暗号化された暗号化分割データを前記データ管理装置から受信し、または前記承認後の前記承認申請対象ファイルのファイル識別子を送信し、または前記データ管理装置から前記ファイル識別子と前記暗号カギに対応する復号鍵とを受信し、
     前記データ管理装置は、
     前記管理装置通信部が、前記データ送信装置から受信した前記承認申請対象ファイルの分割データを暗号化して前記データ受信装置に送信し、前記データ送信装置から前記承認申請対象ファイルの承認を受信した場合に、承認された前記承認申請対象ファイルのファイル識別子と前記復号鍵とを前記データ受信装置に送信する、
     ことを特徴とする請求項1または2に記載の差分データ転送システム。
  6.  前記データ管理装置は、
     あらかじめ前記管理装置記憶部が記憶する持ち出しが禁止されているファイルに、前記データ受信装置から受信した前記承認申請対象ファイルが含まれているか否かを判定し、前記持ち出しが禁止されているファイルに前記承認申請対象ファイルが含まれていると判定した場合、前記データ受信装置への前記承認前の承認申請対象ファイルの送信をブロックするデータ管理部をさらに備える、
     ことを特徴とする請求項5に記載の差分データ転送システム。
  7.  前記データ管理装置は、
     前記データ管理部が、前記承認前の承認申請対象ファイルの送信を承認された場合であっても、前記承認前の承認申請対象ファイルの分割データのハッシュ値が、あらかじめ前記管理装置記憶部が記憶する前記データ受信装置への送信が承認されたファイルの分割データのハッシュ値に含まれていない分割データの数または比率を判定し、前記分割データの数または比率が所定の閾値を超えた場合、前記データ受信装置に警告を送信して前記承認前の承認申請対象ファイルの送信をブロックする、
     ことを特徴とする請求項6に記載の差分データ転送システム。
  8.  互いにネットワークで接続されたデータ受信装置と複数のデータ送信装置との間で行われる差分データ転送方法であって、
     データ受信装置から、最新ファイルのファイル構成情報と、受信装置記憶部が記憶するファイル構成情報とに基づいて、前記最新ファイルと前記受信装置記憶部が記憶するファイルとの差分となる分割データの識別子およびハッシュ値を含む差分ハッシュ情報を生成して複数のデータ送信装置に送信する第1ステップと、
     前記データ受信装置から前記差分ハッシュ情報と前記最新ファイルの識別子を受信する第2ステップと、
     前記データ受信装置から受信した前記最新ファイルの識別子に基づいて、自身が記憶するファイルが最新であるか否かを判定する第3ステップと、
     前記最新ファイルを記憶していると判定された場合に、前記差分となる分割データおよびその旨を前記データ受信装置に送信する第4ステップと、
     前記複数のデータ送信装置から最新ファイルを記憶している旨の通知を受信する第5ステップと、
     前記最新ファイルを記憶している旨を受信したデータ送信装置の中で前記データ受信装置に最短距離にあるデータ送信装置を特定する第6ステップと、
     前記通知を行ったデータ送信装置の中から前記データ受信装置に最短距離にあるデータ送信装置に対して前記最新ファイルと前記受信装置記憶部が記憶するファイルとの差分となる分割データの要求を送信する第7ステップと、
     前記最短距離にあるデータ送信装置から前記差分となる分割データを受信する第8ステップと、
     前記受信装置記憶部が記憶する分割データと、前記最短距離にあるデータ送信装置から受信した前記差分となる分割データとに基づいて、最新のファイルを復元する第9ステップと、
    を含むことを特徴とする差分データ転送方法。
  9.  最新ファイルを管理するデータ管理装置にファイルの識別子を送信して最新バージョンのファイルの送信要求を行うステップと、
     前記データ受信装置から受信した前記最新ファイルの送信要求に基づいて、管理装置記憶部が記憶する前記最新ファイルのファイル構成情報を取得して前記データ受信装置に送信するステップと、
     前記最新ファイルのファイル構成情報およびその識別子を前記データ管理装置から受信するステップと、
     をさらに含み、これらの各ステップを行って前記第1ステップを実行する、
     ことを特徴とする請求項8に記載の差分データ転送方法。
PCT/JP2013/070391 2013-07-26 2013-07-26 差分データ転送システム及び方法 WO2015011840A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015528091A JP6062551B2 (ja) 2013-07-26 2013-07-26 差分データ転送システム及び方法
PCT/JP2013/070391 WO2015011840A1 (ja) 2013-07-26 2013-07-26 差分データ転送システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/070391 WO2015011840A1 (ja) 2013-07-26 2013-07-26 差分データ転送システム及び方法

Publications (1)

Publication Number Publication Date
WO2015011840A1 true WO2015011840A1 (ja) 2015-01-29

Family

ID=52392916

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/070391 WO2015011840A1 (ja) 2013-07-26 2013-07-26 差分データ転送システム及び方法

Country Status (2)

Country Link
JP (1) JP6062551B2 (ja)
WO (1) WO2015011840A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018537741A (ja) * 2015-10-29 2018-12-20 ドロップボックス, インコーポレイテッド デジタルコンテンツアイテムのマルチプレミスホスティングのためのピアツーピア同期プロトコル
WO2020054600A1 (ja) * 2018-09-11 2020-03-19 株式会社ブックウォーカー 電子コンテンツ閲覧システム、電子コンテンツ閲覧方法、及び、コンピュータ読出可能記録媒体
JP2020154873A (ja) * 2019-03-20 2020-09-24 富士ゼロックス株式会社 情報処理装置及びプログラム
JP2020166583A (ja) * 2019-03-29 2020-10-08 日立オートモティブシステムズ株式会社 演算装置、判定方法
US11095712B2 (en) 2020-01-21 2021-08-17 Hitachi, Ltd. Computer system and control method for data transfer
JP7083973B1 (ja) 2021-03-04 2022-06-14 株式会社ストラテジット データ連携システム及びデータ連携方法
CN117113439A (zh) * 2023-10-23 2023-11-24 深圳市烽航实业有限公司 一种行车记录仪数据安全防篡改存储方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012079044A (ja) * 2010-09-30 2012-04-19 Yahoo Japan Corp ファイル送受信システム、端末装置、ストレージサーバ、ファイル送受信方法及びプログラム
JP2012178114A (ja) * 2011-02-28 2012-09-13 Brother Ind Ltd 配信システム、情報処理装置、情報処理方法及びプログラム
JP2013045273A (ja) * 2011-08-24 2013-03-04 Nec Corp キャッシュサーバ、キャッシュ対象決定方法、コンテンツ配信システム及びキャッシュ対象決定プログラム
JP2013061833A (ja) * 2011-09-14 2013-04-04 Brother Ind Ltd 情報処理装置、情報通信システム、情報通信方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012079044A (ja) * 2010-09-30 2012-04-19 Yahoo Japan Corp ファイル送受信システム、端末装置、ストレージサーバ、ファイル送受信方法及びプログラム
JP2012178114A (ja) * 2011-02-28 2012-09-13 Brother Ind Ltd 配信システム、情報処理装置、情報処理方法及びプログラム
JP2013045273A (ja) * 2011-08-24 2013-03-04 Nec Corp キャッシュサーバ、キャッシュ対象決定方法、コンテンツ配信システム及びキャッシュ対象決定プログラム
JP2013061833A (ja) * 2011-09-14 2013-04-04 Brother Ind Ltd 情報処理装置、情報通信システム、情報通信方法及びプログラム

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018537741A (ja) * 2015-10-29 2018-12-20 ドロップボックス, インコーポレイテッド デジタルコンテンツアイテムのマルチプレミスホスティングのためのピアツーピア同期プロトコル
JPWO2020054600A1 (ja) * 2018-09-11 2020-12-17 株式会社ブックウォーカー 電子コンテンツ閲覧システム、電子コンテンツ閲覧方法、及び、コンピュータ読出可能記録媒体
WO2020054600A1 (ja) * 2018-09-11 2020-03-19 株式会社ブックウォーカー 電子コンテンツ閲覧システム、電子コンテンツ閲覧方法、及び、コンピュータ読出可能記録媒体
US11263271B2 (en) 2018-09-11 2022-03-01 Book Walker Co., Ltd. Digital content viewing system, digital content viewing method, and computer-readable recording medium
JP7322446B2 (ja) 2019-03-20 2023-08-08 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
JP2020154873A (ja) * 2019-03-20 2020-09-24 富士ゼロックス株式会社 情報処理装置及びプログラム
WO2020202886A1 (ja) * 2019-03-29 2020-10-08 日立オートモティブシステムズ株式会社 演算装置、判定方法
CN113632155A (zh) * 2019-03-29 2021-11-09 日立安斯泰莫株式会社 运算装置、判定方法
JP2020166583A (ja) * 2019-03-29 2020-10-08 日立オートモティブシステムズ株式会社 演算装置、判定方法
JP7123843B2 (ja) 2019-03-29 2022-08-23 日立Astemo株式会社 演算装置、判定方法
US11928900B2 (en) 2019-03-29 2024-03-12 Hitachi Astemo, Ltd. Arithmetic operation device and determination method
CN113632155B (zh) * 2019-03-29 2024-04-12 日立安斯泰莫株式会社 运算装置、判定方法
US11095712B2 (en) 2020-01-21 2021-08-17 Hitachi, Ltd. Computer system and control method for data transfer
JP7083973B1 (ja) 2021-03-04 2022-06-14 株式会社ストラテジット データ連携システム及びデータ連携方法
JP2022135827A (ja) * 2021-03-04 2022-09-15 株式会社ストラテジット データ連携システム及びデータ連携方法
CN117113439A (zh) * 2023-10-23 2023-11-24 深圳市烽航实业有限公司 一种行车记录仪数据安全防篡改存储方法及系统
CN117113439B (zh) * 2023-10-23 2024-02-06 深圳市烽航实业有限公司 一种行车记录仪数据安全防篡改存储方法及系统

Also Published As

Publication number Publication date
JP6062551B2 (ja) 2017-01-18
JPWO2015011840A1 (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
JP6062551B2 (ja) 差分データ転送システム及び方法
US11533321B2 (en) Secure decentralized file sharing systems and methods
WO2019119929A1 (zh) 区块链共识方法、装置和系统、标识信息处理方法和装置
US8725682B2 (en) Distribution and synchronization of digital objects
US9779269B1 (en) Storage system comprising per-tenant encryption keys supporting deduplication across multiple tenants
US8504830B2 (en) Transfer data management system for internet backup
US9088538B2 (en) Secure network storage
US20160182494A1 (en) Distributed device management and directory resolution
US11729175B2 (en) Blockchain folding
US9424433B2 (en) Data storage management
US9390101B1 (en) Social deduplication using trust networks
CN110771124B (zh) 对本地网络上的数据存储系统的访问的基于云的管理
KR101623742B1 (ko) 파일 연관 메시지 공유 방법 및 메시지 공유 시스템
KR20100067976A (ko) 분산 저장된 컨텐츠 파일의 동기화 방법
US8611542B1 (en) Peer to peer key synchronization
JP7053031B2 (ja) 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム
JP2000200208A (ja) ファイルバックアップ方法,装置およびそのプログラム記録媒体
CN112817912B (zh) 文件管理方法、装置、计算机设备和存储介质
JP2008085448A (ja) 共有暗号ファイルの暗号化・復号処理方法及びプログラム
KR20200118985A (ko) 블록체인 환경에서의 데이터 관리 방법 및 이를 위한 장치
KR20160038496A (ko) 파일 시스템을 이용한 저장공간 통합 방법 및 시스템
JP5586397B2 (ja) セキュア・ネットワーク・ストレージ・システム、方法、クライアント装置、サーバ装置、及びプログラム
US20200244632A1 (en) Redundant Device Locking Key Management System
WO2023004807A1 (zh) 知识管理系统、方法、装置、电子设备和存储介质
JP5533090B2 (ja) セキュリティ管理システム、セキュリティ管理プログラム、情報処理装置、情報処理方法及び情報処理プログラム

Legal Events

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

Ref document number: 13890172

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015528091

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

Country of ref document: EP

Kind code of ref document: A1