WO2016132538A1 - 通信システム、通信装置、情報処理方法、及び、情報処理プログラム - Google Patents

通信システム、通信装置、情報処理方法、及び、情報処理プログラム Download PDF

Info

Publication number
WO2016132538A1
WO2016132538A1 PCT/JP2015/054821 JP2015054821W WO2016132538A1 WO 2016132538 A1 WO2016132538 A1 WO 2016132538A1 JP 2015054821 W JP2015054821 W JP 2015054821W WO 2016132538 A1 WO2016132538 A1 WO 2016132538A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
communication device
hash value
transmission
chunk
Prior art date
Application number
PCT/JP2015/054821
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 PCT/JP2015/054821 priority Critical patent/WO2016132538A1/ja
Publication of WO2016132538A1 publication Critical patent/WO2016132538A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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

Definitions

  • the present invention relates to a communication system, a communication device, an information processing method, and an information processing program.
  • the method of reducing the amount of transferred data is effective for a low-band line because the band used is reduced.
  • a method of reducing the amount of transfer data for example, there is a method of removing redundantly transmitted data.
  • FIG. 1 is a diagram illustrating an example of a data duplication transmission removal system.
  • Data duplicate transmission removal system P100 includes communication device # 1 and communication device # 2.
  • Each of the communication device # 1 and the communication device # 2 is, for example, a device located at a network boundary.
  • the transmission-side communication device # 1 when receiving the transmission request target data from the application, divides the data into 1 to 4 KB variable-length blocks called chunks. For example, the communication apparatus # 1 calculates a SHA1 (Secure Hash Algorithm) for each chunk to obtain a hash value, and performs a hash search in the cache using the hash value as a key.
  • the cache of the communication device # 1 holds a chunk of data that has been transmitted and the calculation result of SHA1.
  • the communication device # 1 stores the chunk in the cache, Send a chunk.
  • the communication device # 1 has the chunk smaller in size than the chunk.
  • the chunk index includes, for example, an application ID, location information of the chunk, and the size of the chunk.
  • the communication device # 2 on the receiving side transfers the chunk to the destination and stores the chunk in the cache.
  • the communication apparatus # 2 reads the corresponding chunk from the cache, restores the data, and transmits it to the destination. Since the size of the index is smaller than the chunk, the amount of transfer data can be reduced by transmitting the index instead of the redundantly transmitted chunk.
  • the data duplication / transmission removal system P100 shown in FIG. 1 has the following problems, for example.
  • FIG. 2 is a diagram showing an example of a duplicate data transmission removal system P100 similar to the duplicate data transmission removal system P100 shown in FIG.
  • both the communication device # 1 and the communication device # 2 store the chunk, that is, the data itself in the storage device. Therefore, similarly to the transmission of the duplicate data index from the communication device # 1 to the communication device # 2, when the duplicate data index is transmitted from the reverse communication device # 2 to the communication device # 1, Communication device # 1 can obtain data from the received index. That is, in the data duplication transmission removal system shown in FIG. 2, duplication of data is bidirectional in the direction from the communication device # 1 to the communication device # 2 and the direction from the communication device # 2 to the communication device # 1. Transmission removal can be performed.
  • the transmission of identification information such as a small-sized index instead of the data at the time of data duplication transmission is hereinafter referred to as data duplication transmission elimination processing.
  • both the communication device # 1 and the communication device # 2 are required to store the same data. Therefore, when either one is a device with a small storage capacity, such as a mobile terminal, the ratio of the memory used for data storage in the data duplication transmission removal process is larger than the storage capacity of the device with a small storage capacity. There is a possibility that the processing load of the device having a small storage capacity is increased. However, if data for data duplicate transmission removal is not stored in a device with a small storage capacity, data duplicate transmission will not be removed in communication in the direction from the communication partner device to the device with a small storage capacity. The data removal efficiency becomes worse.
  • One aspect of the present invention is a communication system capable of reducing consumption of storage capacity used for data storage of one communication device while suppressing a decrease in the efficiency of removing duplicate data in the process of removing transmission of duplicate data,
  • An object is to provide a communication device, an information processing method, and an information processing program.
  • One aspect of the present invention is a communication system including a first communication device and a second communication device that transmits and receives data to and from the first communication device.
  • the first communication device includes a first storage unit that stores data and identification information of the data having a size smaller than the data.
  • the second communication device has a second storage unit that stores the data identification information or the data identification information and the data itself, and a transmission request for the data according to the data duplication frequency. If the data identification information is stored in the second storage unit, a transmission unit that transmits the data identification information to the first communication device is provided.
  • the data storage of one communication apparatus can be performed while suppressing a decrease in the efficiency of removing duplicate data.
  • the consumption of the storage capacity used can be reduced.
  • FIG. 1 It is a figure which shows an example of a data duplication transmission removal system. It is a figure which shows an example of the data duplication transmission removal system similar to the data duplication transmission removal system shown by FIG. It is a figure which shows an example of a data duplication transmission removal system. It is a figure which shows an example of a data duplication transmission removal system. It is a figure which shows an example of the data duplication transmission removal system which concerns on 1st Embodiment. It is a figure which shows an example of the hardware constitutions of information processing apparatus. It is a figure which shows an example of a function structure of an information processing apparatus and a portable terminal in case data is transmitted to a portable terminal from an information processing apparatus.
  • FIG. 3 is a diagram illustrating an example of the data duplication transmission removal system P200.
  • the communication device # 1 stores the transmission data and the fingerprint of the transmission data in the cache at the time of data transmission.
  • the fingerprint is a hash value calculated from data, for example. Since the hash value is very unlikely to be a value that is calculated from other data, the hash value can be used as data identification information.
  • the size of the fingerprint is sufficiently smaller than the transmission data.
  • Communication device # 1 compares the fingerprint of the transmission data with the fingerprint stored in the cache. If the fingerprint of the transmission data does not match the fingerprint stored in the cache, the communication device # 1 transmits the transmission data and stores the transmission data and the fingerprint in the cache. If the fingerprint of the transmission data matches the fingerprint stored in the cache, the communication device # 1 transmits the fingerprint without transmitting the transmission data. For example, in the example of FIG. 3, the communication device # 1 transmits data A, B, and C when transmitting data A, B, and C for the first time. When the communication device # 1 transmits the data A, B, and C for the second time, the data A, B, and C and their respective fingerprints are stored in the cache. , B, C fingerprints F_A, F_B, F_C are transmitted.
  • the communication device # 2 calculates the fingerprint of the received data, and stores the received data and the fingerprint of the received data in the cache.
  • the communication device # 2 searches the cache with the received fingerprint and restores the data.
  • the fingerprint is 20 bytes, and the size is small. Therefore, the cache search process can be accelerated by using the fingerprint.
  • the duplicate data transmission removal process is performed not only in the direction from the communication device # 1 to the communication device # 2, but also in the direction from the communication device # 2 to the communication device # 1. Is possible. This is because both the communication device # 1 and the communication device # 2 store data and fingerprints. For example, after receiving the data A, B, and C, when the communication device # 2 transmits the data A, B, and C, the data A, B, C, and the fingerprint are stored in the cache. Instead of data A, B, and C, fingerprints F_A, F_B, and F_C are transmitted.
  • both the communication device # 1 and the communication device # 2 store data and fingerprints, so the memory capacity used for data storage in the data duplication transmission removal processing is as shown in FIG. There is the same problem as the data duplication transmission removal system P100 shown in FIG.
  • FIG. 4 is a diagram illustrating an example of the data duplication transmission removal system P300.
  • the communication device # 1 compares the fingerprint of the transmission data with the fingerprint stored in the cache, and if they do not match, the communication device # 1. Transmits transmission data. If the fingerprint of the transmission data does not match the fingerprint stored in the cache, the communication device # 1 stores the transmission data and the fingerprint in the cache. Up to this point, it is the same as the data duplication transmission elimination system P200 shown in FIG.
  • the communication device # 1 When the fingerprint of the transmission data matches the fingerprint stored in the cache, the communication device # 1 confirms the number of transmissions of the transmission data. If the number of transmissions of transmission data is less than a predetermined threshold, the communication device # 1 transmits transmission data. If the number of transmissions of transmission data is equal to or greater than a predetermined threshold, the communication device # 1 transmits a fingerprint.
  • the threshold of the number of transmissions is 3, and in the fourth transmission of data A, the fingerprint F_A of data A is transmitted instead of data A.
  • the communication device # 2 When the same data is received a predetermined number of times, the communication device # 2 stores the received data and the fingerprint of the received data in a cache.
  • the threshold value for the number of times of reception which is a determination criterion for storing received data, is smaller than the threshold value for the number of times of transmission in which the communication apparatus # 1 determines the transmission of the fingerprint. If the fingerprint of the data is received after receiving the same data a predetermined number of times, the communication device # 2 searches the cache with the received fingerprint and restores the data.
  • the communication device # 2 does not store the data whose number of receptions is less than the predetermined number of times and the fingerprint of the data in the cache.
  • the memory capacity used can be reduced.
  • the data received more than a predetermined number of times and the fingerprint of the data are stored in the communication device # 2. Therefore, when transmitting the stored data to the communication apparatus # 1, the communication apparatus # 2 can transmit a fingerprint of the data. However, since the data whose number of receptions is less than the predetermined number is neither stored nor the fingerprint stored in the communication device # 2, the communication device # 2 cannot transmit the fingerprint for the unstored data. .
  • the first communication device stores the transmitted and received data and the identification information of the data, and the identification information instead of the data is limited to the one that is expected to have a high frequency of transmission / reception.
  • the second communication device that performs data transmission / reception with the first communication device stores at least identification information of the transmitted and received data, and the data itself is limited to one that is expected to have a high frequency of transmission / reception overlap.
  • the second communication device can reduce the storage capacity used for data storage in the data duplication transmission removal process.
  • the second communication device uses the first identification information instead of the data for the data storing the identification information, regardless of whether or not the second communication device itself stores the data itself. Can be transmitted to other communication devices. That is, the second communication device can remove duplicate data transmission in data transmission to the first communication device.
  • the second communication device since the second communication device stores data that is expected to have a high duplication frequency, when the identification information is received from the first communication device, the data is restored from the identification information. be able to. That is, the data duplication / transmission elimination system 100 according to the first embodiment, when data that is expected to have a high duplication frequency is transmitted from the second communication device even when it is transmitted from the first communication device. However, it is possible to eliminate duplicate data transmission in both directions.
  • FIG. 5 is a diagram illustrating an example of a data duplication transmission removal system according to the first embodiment.
  • a data duplication / transmission removal system 100 according to the first embodiment includes an information processing apparatus 1 and a portable terminal 2 that performs data transmission / reception with the information processing apparatus 1.
  • devices included in the duplicate data transmission removal system 100 are not limited to the information processing device 1 and the portable terminal 2.
  • the number of information processing apparatuses 1 may be two, and the number of portable terminals 2 may be two.
  • count of duplication of transmission and reception shall be used as a judgment criterion of the duplication frequency of data transmission / reception.
  • the criterion for determining the frequency of duplication of data transmission / reception is not limited to the number of times of duplication of transmission and reception.
  • the determination criterion of the duplication frequency of data transmission / reception may be data priority.
  • the priority of data is set according to, for example, a file name, a file update date and time, a user, and the like.
  • the number of times of duplication it indicates the total number of times that the data has been transmitted in duplicate and the number of times that the data has been received in duplicate.
  • a fingerprint is used as data identification information.
  • the fingerprint is a hash value by SHA1.
  • the data identification information is not limited to the fingerprint and may be any information that can identify the data.
  • the data identification information may be a data index.
  • the information processing apparatus 1 and the portable terminal 2 compare storage capacities with each other.
  • the device with the larger storage capacity operates as the first communication device described above.
  • the device with the smaller storage capacity operates as the above-described second communication device.
  • the information processing apparatus 1 has a larger storage capacity than the mobile terminal 2, and the information processing apparatus 1 operates as a first communication apparatus and the mobile terminal 2 operates as a second communication apparatus. To do.
  • the data duplication transmission removal processing in data transmission from the information processing apparatus 1 to the portable terminal 2 is as follows.
  • the cache is searched with the hash value of the transmission data, and if the matching hash value is not stored in the cache, the transmission is performed.
  • the data and the hash value of the transmission data are stored in the cache.
  • the information processing apparatus 1 checks the number of times the transmission data is duplicated. If the number of times of duplication of transmission data is equal to or greater than a threshold value M (M: positive integer), the information processing apparatus 1 transmits a hash value. When the transmission data duplication count is less than the threshold value M, the information processing apparatus 1 transmits the transmission data itself.
  • M positive integer
  • the mobile terminal 2 Since the mobile terminal 2 operates as the above-described second communication device, the number of times the received data is duplicated is confirmed when data is received. If the received data duplication count is less than a threshold value N (N: positive integer), the mobile terminal 2 stores the received data hash value in the cache without storing the received data. When the number of times the received data is duplicated is greater than or equal to the threshold value N, the mobile terminal 2 stores the received data and the hash value of the received data in the cache.
  • N positive integer
  • the threshold values M and N for the duplication times of the information processing device 1 and the portable terminal 2 are set so that the reception data of the portable terminal 2 is stored prior to the transmission of the hash value of the corresponding data of the information processing device 1. Is done. More specifically, the threshold M for the number of times of duplication for determining the transmission of the hash value of the transmission data of the information processing device 1> the threshold N for the number of times of duplication for determining the storage of the received data of the mobile terminal 2 are set. .
  • the duplication number threshold M for determining the transmission of the hash value of the transmission data of the information processing device 1 is three, and the duplication number threshold for determining the reception data storage of the portable terminal 2.
  • N is set to be twice.
  • the information processing apparatus 1 starts transmitting the hash value of the data A when transmitting the data A for the fourth time, that is, when the number of duplications of the data A is three.
  • the mobile terminal 2 stores the hash value at the first reception of each of the data A, B, and C, and the data A when the data A is received for the third time, that is, when the data A is duplicated twice. Save. Therefore, the mobile terminal 2 can restore the data A from the hash value from the fourth and subsequent reception of the data A.
  • data duplication transmission removal processing in data transmission from the portable terminal 2 to the information processing apparatus 1 is as follows.
  • the mobile terminal 2 searches the cache with the hash value of the transmission data. When the hash value of the transmission data is not stored in the cache, the mobile terminal 2 stores the hash value of the transmission data in the cache and transmits the transmission data itself to the information processing apparatus 1.
  • the mobile terminal 2 transmits the hash value of the transmission data to the information processing apparatus 1 instead of the transmission data. Further, the mobile terminal 2 confirms the number of times the transmission data is duplicated. If the number of times transmission data is duplicated is greater than or equal to the threshold value N, the portable terminal 2 stores the transmission data and the hash value of the transmission data in a cache. When the number of transmission data duplications is less than the threshold value N, the mobile terminal 2 transmits the transmission data. Note that the threshold N for the number of times of data storage determination at the time of data transmission is the same as the threshold N for the number of times of data storage determination at the time of data reception.
  • the information processing apparatus 1 When the information processing apparatus 1 receives data from the portable terminal 2, if the hash value of the received data is not stored in the cache, the information processing apparatus 1 stores the received data and the hash value of the received data in the cache.
  • the mobile terminal 2 since the mobile terminal 2 stores the hash values of the data A, B, and C, when transmitting the data A, B, and C to the information processing apparatus 1, the data itself Instead of sending a hash value.
  • the portable terminal 2 does not store the data itself, but holds the hash value, and since the data B and C are stored in the information processing apparatus 1, the hash value is transmitted. By doing so, duplicate transmission can be eliminated.
  • the mobile terminal 2 transmits the data itself.
  • FIG. 6 is a diagram illustrating an example of a hardware configuration of the information processing apparatus 1.
  • the information processing apparatus 1 is, for example, a general-purpose computer such as a PC (personal computer) or a dedicated computer such as a server.
  • the information processing apparatus 1 includes a CPU (Central Processing Unit) 11, a main storage device 12, an input device 13, an output device 14, an auxiliary storage device 15, and a network interface 17. These are connected to each other by a bus 19.
  • CPU Central Processing Unit
  • main storage device 12 an input device 13, an output device 14, an auxiliary storage device 15, and a network interface 17. These are connected to each other by a bus 19.
  • the input device 13 is, for example, a touch panel, a keyboard, a keypad, or the like. Data input from the input device 13 is output to the CPU 11.
  • the input device 13 may include a voice input device such as a microphone, for example.
  • the auxiliary storage device 15 stores various programs and data used by the CPU 11 when executing each program.
  • the auxiliary storage device 15 is, for example, a non-volatile memory such as an EPROM (Erasable Programmable ROM), a flash memory, or a hard disk drive (Hard Disk Drive).
  • the auxiliary storage device 15 holds, for example, an operating system (OS), a duplicate transmission removal program, and various other application programs.
  • the duplicate transmission program is a program for removing duplicate data transmission by transmitting identification information instead of data when data is duplicated.
  • the main storage device 12 provides the CPU 11 with a storage area and a work area for loading a program stored in the auxiliary storage device 15, and is used as a buffer.
  • the main storage device 12 includes, for example, a semiconductor memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory).
  • the CPU 11 executes various processes by loading the OS and various application programs held in the auxiliary storage device 15 to the main storage device 12 and executing them.
  • the CPU 11 is not limited to one, and a plurality of CPUs may be provided.
  • the network interface 17 is an interface for inputting / outputting information to / from the network.
  • the network interface 17 includes an interface connected to a wired network and an interface connected to a wireless network.
  • the network interface 17 is, for example, a NIC (Network Interface Card), a wireless LAN (Local Area Network) card, a wireless circuit, or the like. Data received by the network interface 17 is output to the CPU 11.
  • the output device 14 outputs the processing result of the CPU 11.
  • the output device 14 includes a display and a printer.
  • the information processing apparatus 1 may include a portable recording medium driving device and execute a program recorded on the portable recording medium.
  • the portable recording medium is, for example, an SD card, a miniSD card, a microSD card, a USB (Universal Serial Bus) flash memory, a CD (Compact Compact Disc), a DVD (Digital Versatile Disc), a Blu-ray (registered trademark) Disc, or a flash.
  • a recording medium such as a memory card.
  • the information processing apparatus 1 may not include the input device 13 and the output device 14.
  • the mobile terminal 2 is, for example, a smartphone or a tablet terminal. Since the hardware configuration of the portable terminal 2 is similar to that of the information processing apparatus 1, the illustration is omitted.
  • the portable terminal 2 includes a CPU, a main storage device, an auxiliary storage device, a touch panel and a microphone as an input device, a display as an output device, a speaker, and a wireless unit as a network interface for performing wireless communication processing as a hardware configuration.
  • the mobile terminal 2 may also include a portable recording medium driving device.
  • FIG. 7 is a diagram illustrating an example of a functional configuration of the information processing apparatus 1 and the mobile terminal 2 when data is transmitted from the information processing apparatus 1 to the mobile terminal 2.
  • the information processing apparatus 1 includes a higher-level receiving unit 101, a data dividing unit 102, a hash value calculating unit 103, a comparison processing unit 104, a storage processing unit 105, a determination processing unit 106, a transmission unit 107, and a negotiation unit as a transmission side functional configuration. 108, a host application 109, a hash table 111, and a cache 112.
  • the functional configuration other than the host application 109 is a functional configuration achieved by the CPU 11 executing the duplicate transmission elimination program stored in the auxiliary storage device 15.
  • areas for the hash table 111 and the cache 112 are secured in the storage area of the auxiliary storage device 15.
  • the negotiation unit 108 is a device in which the own device stores transmission / reception data and a hash value of transmission / reception data (the first communication device described above), and transmission / reception data expected to have a high frequency of overlap with the hash value of transmission / reception data. It is determined which of the devices (the above-mentioned second communication device) that stores the data is to be operated.
  • a mode that operates as a device that stores transmission / reception data and a hash value of the transmission / reception data is referred to as a first mode.
  • the mode that operates as a device that stores the hash value of the transmission / reception data and the transmission / reception data that is expected to have a high duplication frequency is hereinafter referred to as a second mode.
  • the negotiation unit 108 exchanges the storage capacity available as the cache 112 with the communication partner device at the time of start-up or at the time of a data transmission request from the upper application 109.
  • the negotiation unit 108 selects the first operation mode.
  • the negotiation unit 108 selects the second operation mode.
  • the negotiation unit 108 When the storage capacity of the cache 112 of the own apparatus and the storage capacity of the cache of the communication partner apparatus are the same value, the negotiation unit 108 operates the apparatus serving as the data transmission side as the first operation mode. And the operation mode of the device itself may be selected. Alternatively, the negotiation unit 108 may determine the operation mode by, for example, further exchanging the device type, the device unique identification information, and the like.
  • the negotiation unit 108 is an example of an “operation determination unit”.
  • the negotiation unit 108 of the information processing apparatus 1 selects the first operation mode. To do.
  • the negotiation unit 108 notifies the determination processing unit 106 of the selected operation mode.
  • the upper receiving unit 101 receives data to be transmitted from the upper application 109 that is a data transmission source, and terminates the session of the application.
  • the upper application 109 that is the data transmission source is an application that performs communication using TCP (TransmissionTransControl Protocol)
  • the upper reception unit 101 receives the transmission request from the data transmission source and transmits the data. Establish a TCP session with the original.
  • the upper receiving unit 101 communicates with a data transmission source using a socket that is a combination of an IP address and a port number. Therefore, the upper receiving unit 101 can identify the application from the socket.
  • the entity that executes the application that is the data transmission source may be the information processing apparatus 1 itself or another apparatus.
  • the higher-level receiving unit 101 sends the transmission request and the transmission request target data from the other device via the network interface 17. Receive.
  • an entity that executes an application that is a data transmission source is not specified and is simply referred to as a “transmission source”.
  • the upper receiving unit 101 outputs the transmission target data received from the upper application 109 to the data dividing unit 102.
  • the data dividing unit 102 receives input of data to be transmitted from the upper receiving unit 101 and divides the data to be transmitted into chunks.
  • a chunk is a variable length block of 1 to 4 KB.
  • the data dividing unit 102 outputs the chunk to the hash value calculating unit 103.
  • the hash value calculation unit 103 receives a chunk input from the data division unit 102 and calculates a hash value of the chunk. In the first embodiment, the hash value calculation unit 103 calculates SHA1. However, the calculation method of the hash value calculation unit 103 is not limited to SHA1. Any hash value calculation method may be used as long as the hash value is obtained by a common method between the information processing apparatus 1 and the communication partner. The hash value calculation unit 103 outputs the calculated hash value to the comparison processing unit 104.
  • the comparison processing unit 104 receives an input of the hash value of the chunk from the hash value calculation unit 103, and compares the hash value of the chunk with the hash value stored in the hash table 111. If the hash value of the chunk is not stored in the hash table 111, the comparison processing unit 104 outputs the chunk and the hash value to the storage processing unit 105, and outputs the chunk to the transmission unit 107. When the hash value of the chunk is stored in the hash table 111, the chunk is duplicately transmitted, so the comparison processing unit 104 requests the determination processing unit 106 described later to perform a determination process.
  • the determination processing unit 106 determines whether to transmit the chunk itself or the hash value of the chunk for the duplicate transmission chunk. Specifically, the determination processing unit 106 holds a threshold M for the number of duplications in advance, and the chunk or the hash value of the chunk is determined according to whether the number of duplications of the corresponding chunk is equal to or greater than the threshold M. One of the transmissions is determined. The determination processing unit 106 notifies the determination result to the comparison processing unit 104, and the comparison processing unit 104 notifies the transmission unit 107 of either the chunk or the hash value of the chunk according to the determination result. Further, the determination processing unit 106 updates the number of times the corresponding hash value is duplicated in the hash table 111.
  • the storage processing unit 105 receives an input of the chunk and the hash value from the comparison processing unit 104 when there is no entry of the hash value of the chunk in the hash table 111, and stores the chunk and the hash value in the cache 112. In addition, the storage processing unit 105 creates an entry for the chunk hash value in the hash table 111.
  • the transmission unit 107 receives the chunk or the hash value of the chunk from the comparison processing unit 104, and transmits the chunk or the hash value of the chunk to the communication partner device. For example, when the upper application 109 is an application using TCP, the transmission unit 107 establishes a TCP session with a communication partner apparatus, and transmits the chunk or the hash value of the chunk using the TCP session. .
  • the transmission unit 107 is an example of a “first transmission unit”.
  • the hash table 111 is a table that holds the hash value of the chunk transmitted from the information processing device 1, the hash value of the chunk that has reached the information processing device 1, and the number of times the chunk has been duplicated. And The entry of the hash table 111 is registered by the storage processing unit 105. The initial value of the number of times of duplication is 0, and every time a corresponding chunk is received or transmitted, 1 is added and updated by the determination processing unit 106. The presence of the corresponding hash value entry in the hash table 111 means that in the information processing apparatus 1 operating in the first mode, the hash value and the chunk corresponding to the hash value are stored in the cache 112. Indicates that
  • the cache 112 stores chunks and hash values transmitted or received by the information processing apparatus 1.
  • the chunk stored in the cache 112 is specified by a hash value.
  • the chunk stored in the cache 112 may be deleted when there is no access for a predetermined time.
  • the cache 112 is an example of a “first storage unit”.
  • the mobile terminal 2 includes a receiving unit 201, a restoration processing unit 202, a hash value calculation unit 203, a comparison processing unit 204, a storage processing unit 205, a determination processing unit 206, a data combining unit 207, as a functional configuration on the receiving side.
  • a negotiation unit 208, a higher-level transmission unit 210, a higher-level application 209, a read processing unit 213, a hash table 211, and a cache 212 are provided.
  • the functional configuration other than the host application 209 is a functional configuration that is achieved when the CPU of the mobile terminal 2 executes the duplicate transmission elimination program stored in the auxiliary storage device. Further, by executing the duplicate transmission removal program, areas for the hash table 211 and the cache 212 are secured in the storage area of the auxiliary storage device of the mobile terminal 2.
  • the negotiation unit 208, the storage processing unit 205, the hash table 211, and the cache 212 overlap with the negotiation unit 108, the storage processing unit 105, the hash table 111, and the cache 112 of the information processing apparatus 1, description thereof is omitted.
  • the presence of the hash value entry in the hash table 211 indicates that there is a history of reception or transmission of the corresponding chunk, and It does not indicate that the chunk is stored.
  • the cache 212 is an example of a “second storage unit”.
  • the receiving unit 201 receives a chunk or hash value from a communication partner device via a network.
  • the receiving unit 201 outputs the received chunk or hash value to the restoration processing unit 202.
  • the receiving unit 201 establishes a TCP session with a communication partner device, and receives a chunk or hash value through the TCP session.
  • the restoration processing unit 202 receives a chunk or hash value input from the receiving unit 201.
  • the restoration processing unit 202 requests the read processing unit 213 to acquire a chunk corresponding to the hash value, and acquires the chunk corresponding to the hash value from the read processing unit 213.
  • the restoration processing unit 202 outputs the chunk input from the reception unit 201 or the chunk acquired from the read processing unit 213 to the hash value calculation unit 203.
  • the read processing unit 213 receives a request from the restoration processing unit 202, acquires a chunk corresponding to the corresponding hash value from the cache 212, and outputs the chunk to the restoration processing unit 202.
  • the hash value calculation unit 203 receives a chunk input from the restoration processing unit 202 and calculates a hash value of the chunk.
  • the hash value calculation unit 203 calculates a hash value from a chunk input in a common method with the communication partner.
  • the hash value calculation unit 203 outputs the chunk and the calculated hash value to the comparison processing unit 204.
  • the comparison processing unit 204 receives the input of the chunk and the hash value from the hash value calculation unit 203, and searches the hash table 211 with the hash value. If there is no entry for the hash value input in the hash table 211, the comparison processing unit 204 outputs the hash value to the storage processing unit 205. Upon receiving the hash value from the comparison processing unit 204, the storage processing unit 205 registers the hash value entry in the hash table 211, and stores the hash value in the cache 212.
  • the comparison processing unit 204 If there is an entry of the hash value input in the hash table 211, the comparison processing unit 204 requests the determination processing unit 206 to determine whether to store the received chunk. Also, the comparison processing unit 204 outputs the chunk to the data combining unit 207.
  • the determination processing unit 206 receives a request from the comparison processing unit 204, and determines whether to store the chunk itself in the cache 212. Specifically, the determination processing unit 206 acquires the number of chunk duplications from the hash table 211. If the number of chunk duplications is less than the threshold value N or greater than the threshold value N, the determination processing unit 206 updates the number of duplications of the corresponding entry in the hash table 211 by adding one.
  • the determination processing unit 206 determines the storage of the chunks.
  • the determination processing unit 206 notifies the storage processing unit 205 of the storage of the chunk.
  • the storage processing unit 205 stores the corresponding chunk in the cache 212.
  • the storage processing unit 205 is an example of a “storage unit”.
  • the threshold N of the number of chunk duplications is set to a value smaller than the threshold M used for determination of transmission of the hash value of the determination processing unit 106 of the information processing apparatus 1 on the transmission side (N ⁇ M). This is because the chunk is restored from the hash value, so that the portable terminal 2 on the reception side stores the chunk prior to transmission of the hash value from the information processing apparatus 1 on the transmission side.
  • the data combining unit 207 receives the chunk input from the comparison processing unit 204 and combines the plurality of chunks to acquire the original data.
  • the number of chunks to be combined may be fixed, or may vary according to the CPU load of the mobile terminal 2, for example.
  • the acquired data is output to the higher-level transmission unit 210.
  • the upper transmission unit 210 receives data input from the data combining unit 207, outputs the data to the upper application 209 that is the data transmission destination, and terminates the session of the application.
  • the upper transmission unit 210 communicates with the upper application 209 that is a data destination using a socket that is a combination of an IP address and a port number. Therefore, the upper transmission unit 210 can identify the application from the socket.
  • FIG. 8 is a diagram illustrating an example of a functional configuration of the information processing apparatus 1 and the mobile terminal 2 when data is transmitted from the mobile terminal 2 to the information processing apparatus 1.
  • the mobile terminal 2 includes a higher-level receiving unit 214, a data division unit 215, a hash value calculation unit 203, a comparison processing unit 204, a determination processing unit 206, a storage processing unit 205, a transmission unit 216, and a higher-level application 209 as functional configurations on the transmission side.
  • the functional configuration other than the host application 209 is a functional configuration that is achieved when the CPU of the mobile terminal 2 executes the duplicate transmission elimination program stored in the auxiliary storage device.
  • the same reference numerals as those in FIG. 7 are attached to the same functional configuration on the receiving side of the mobile terminal 2.
  • the processes of the upper receiving unit 214, the data dividing unit 215, the hash value calculating unit 203, and the transmitting unit 216 are functional configurations on the transmitting side of the information processing apparatus 1.
  • the transmission unit 216 is an example of a “transmission unit”.
  • the comparison processing unit 204 receives the input of the hash value of the chunk from the hash value calculation unit 203 and searches the hash table 211 with the hash value. When there is an entry corresponding to the hash value of the chunk in the hash table 211, the comparison processing unit 204 outputs the hash value to the transmission unit 216 and requests the determination processing unit 206 to determine the storage of the chunk. . When there is no entry corresponding to the hash value of the chunk in the hash table 211, the comparison processing unit 204 outputs the hash value of the chunk to the storage processing unit 205 and the chunk to the transmission unit 216. In this case, the storage processing unit 205 stores the hash value in the cache 212 and registers the hash value entry in the hash table 211.
  • the determination processing unit 206 receives the request from the comparison processing unit 204 and determines whether to save the chunk. Specifically, the determination processing unit 206 acquires the number of times of duplication of the corresponding chunk from the hash table 211, and when the number of times of duplication is less than the threshold value N or larger than the threshold value N, the number of times of duplication of the entry in the corresponding hash table 211. Update. When the number of times of duplication is the threshold value N, the determination processing unit 206 determines storage of the corresponding chunk and outputs a notification of storage of the corresponding chunk to the storage processing unit 205. The storage processing unit 205 receives a chunk storage notification from the determination processing unit 206 and stores the chunk in the cache 212. Also in this case, the determination processing unit 206 updates the number of duplicate entries in the corresponding hash table 211.
  • threshold value N used by the determination processing unit 206 to determine chunk storage is the same as the threshold value N used to determine chunk storage when the mobile terminal 2 is on the receiving side.
  • the information processing apparatus 1 on the reception side includes a reception unit 113, a restoration processing unit 114, a hash value calculation unit 103, a comparison processing unit 104, a determination processing unit 106, a data combination unit 115, and a higher order as a reception side functional configuration.
  • a transmission unit 116, a read processing unit 117, a storage processing unit 105, a negotiation unit 108, a higher-level application 109, a hash table 111, and a cache 112 are provided.
  • the functional configuration other than the host application 109 is a functional configuration achieved by the CPU 11 executing the duplicate transmission elimination program stored in the auxiliary storage device 15.
  • the same reference numerals as those in FIG. 7 are attached to the same functional configuration on the transmission side of the information processing apparatus 1.
  • the processing of the reception unit 113, the restoration processing unit 114, the hash value calculation unit 103, the reading processing unit 117, the data combination unit 115, and the upper transmission unit 116 is performed by the reception unit 201 and the restoration processing unit of the functional configuration on the reception side of the mobile terminal 2. 202, the hash value calculation unit 203, the read processing unit 213, the data combination unit 207, and the upper transmission unit 210.
  • the comparison processing unit 104 receives the hash value from the hash value calculation unit 103 and searches the hash table 111 with the hash value. When there is an entry corresponding to the hash value of the chunk in the hash table 111, the comparison processing unit 104 outputs the hash value to the determination processing unit 106.
  • the determination processing unit 106 receives an input of a hash value from the comparison processing unit 104, and updates the number of times of duplication of entries in the hash table 111 corresponding to the hash value by one.
  • the comparison processing unit 104 If the hash value of the chunk is not stored in the hash table 111, the comparison processing unit 104 outputs the chunk and the hash value to the storage processing unit 105.
  • the storage processing unit 105 receives the chunk and the hash value from the comparison processing unit 104, stores the chunk and the hash value in the cache 112, and registers the hash value entry and the hash table 111.
  • the comparison processing unit 104 outputs the chunk to the data combining unit 115.
  • FIG. 9 is a diagram illustrating an example of a flowchart of processing of the negotiation unit 108 of the information processing apparatus 1 and the negotiation unit 208 of the mobile terminal 2. Both processes are the same, but for the sake of convenience, in FIG. 9, the negotiation unit 108 of the information processing apparatus 1 will be mainly described.
  • the flowchart shown in FIG. 9 is started when, for example, the apparatus is activated and a transmission request is received from the upper application 109.
  • the negotiation unit 108 calculates a storage capacity V1 that can be used as the cache 112. Next, the process proceeds to OP2.
  • the negotiation unit 108 notifies the communication partner apparatus of the storage capacity V1 that can be used as the cache 112. Next, the process proceeds to OP3.
  • the negotiation unit 108 waits for a response from the communication partner device until a predetermined time elapses after the notification of the storage capacity V1. If there is a response from the communication partner device within a predetermined time (OP3: YES), the process proceeds to OP6. If there is no response from the communication partner device within the predetermined time (OP3: NO), the process proceeds to OP4.
  • the response from the communication partner device includes a storage capacity V2 that can be used as a cache of the communication partner device.
  • the negotiation unit 108 enters a standby state for receiving a notification of the storage capacity V2 that can be used as a cache of the other device from another device.
  • the notification received by the negotiation unit 108 in OP4 is the same type as the notification transmitted by the negotiation unit 108 to the communication partner device in OP2.
  • a notification of the storage capacity V2 that can be used as a cache is received from another device (OP4: YES)
  • the process proceeds to OP5.
  • the negotiation unit 108 notifies the communication partner apparatus of the smaller one of the storage capacity V1 of the own apparatus and the notified storage capacity V2 of the communication partner apparatus as a response.
  • the process proceeds to OP6.
  • the negotiation unit 108 determines whether or not the storage capacity V1 of the own device is larger than the notified storage capacity V2 of the communication partner. If the storage capacity V1 of the own device is larger (OP6: YES), the process proceeds to OP7. When the storage capacity V1 of the own apparatus is less than or equal to the storage capacity V2 of the communication partner apparatus (OP6: NO), the process proceeds to OP8.
  • the negotiation unit 108 selects the first mode as the operation mode because the storage capacity V1 of its own device is larger. Thereafter, the process shown in FIG. 9 ends.
  • the negotiation unit 108 selects the second mode as the operation mode because the storage capacity V1 of the own apparatus is less than or equal to the storage capacity V2 of the communication partner apparatus. Thereafter, the process shown in FIG. 9 ends.
  • the processing shown in FIG. 9 is an example, and the processing of the negotiation unit 108 is not limited to this.
  • the storage capacity V1 of the own device and the storage capacity V2 of the communication partner device are the same, for example, information such as the unique identification information of the device and the type of the device is further exchanged, and based on these information, An operating mode may be determined.
  • FIG. 10 is an example of a flowchart of a transmission process of a device operating in the first mode.
  • the information processing apparatus 1 will be mainly described as an apparatus that operates in the first mode.
  • the process illustrated in FIG. 10 is started when the negotiation unit 108 determines the operation mode to be the first mode and a transmission request is notified from the upper application 109 of the information processing apparatus 1.
  • the entity of the processing entity shown in FIG. 10 is the CPU 11, but for convenience, the corresponding functional configuration of each process will be described as the entity.
  • the upper receiving unit 101 acquires data to be transmitted from the upper application 109. Next, the process proceeds to OP12.
  • the data dividing unit 102 divides the data to be transmitted into a plurality of chunks. Next, the process proceeds to OP13.
  • the hash value calculation unit 103 calculates a hash value from the chunk. Next, the process proceeds to OP14.
  • the comparison processing unit 104 searches the hash table 111 with the hash value calculated from the chunk, and determines whether an entry of the hash value exists in the hash table 111. Whether there is an entry for the hash value in the hash table 111 indicates whether the hash value is stored in the cache 112. If there is an entry for the hash value calculated from the chunk in the hash table 111 (OP14: YES), the process proceeds to OP16. If there is no entry of the hash value calculated from the chunk in the hash table 111 (OP14: NO), the process proceeds to OP15.
  • the storage processing unit 105 stores the chunk and the hash value in the cache 112. In addition, the storage processing unit 105 registers the hash value entry in the hash table 111. The number of duplicates of the registered hash value entry is 0 as an initial value. Next, the process proceeds to OP19.
  • the determination processing unit 106 adds 1 to the number of times of duplication of the entry of the hash value hash table 111 and updates it. Next, the process proceeds to OP17.
  • the determination processing unit 106 determines whether or not the number of times the corresponding hash value is duplicated is greater than or equal to the threshold value M. If the number of times the corresponding hash value is duplicated is greater than or equal to the threshold value M (OP17: YES), the process proceeds to OP18. When the number of times the corresponding hash value is duplicated is less than the threshold value M (OP17: NO), the process proceeds to OP19.
  • the determination processing unit 106 determines transmission of the hash value of the corresponding chunk, and the transmission unit 107 transmits the hash value of the corresponding chunk to the communication partner. Send to device. Thereafter, the process shown in FIG. 10 ends.
  • the determination processing unit 106 determines transmission of the corresponding chunk, and the transmission unit 107 The corresponding chunk is transmitted to the communication partner. Thereafter, the process shown in FIG. 10 ends.
  • FIG. 11 is an example of a flowchart of reception processing of the device operating in the first mode.
  • the information processing apparatus 1 will be mainly described as an apparatus operating in the first mode.
  • the processing shown in FIG. 11 is started when the operation mode is determined to be the first mode by the negotiation unit 108 and data is received from the communication partner apparatus via the network.
  • the entity of the processing entity shown in FIG. 11 is the CPU 11, but for convenience, the corresponding functional configuration of each process will be described as the entity.
  • the restoration processing unit 114 determines whether or not the received data is a chunk. Whether or not the received data is a chunk can be determined from the size of the received data, for example. If the received data is a chunk (OP21: YES), the process proceeds to OP22. If the received data is not a chunk (OP21: NO), the process proceeds to OP28.
  • the hash value calculation unit 103 calculates a hash value of the chunk. Next, the process proceeds to OP23.
  • the comparison processing unit 104 searches the hash table 111 with the hash value calculated from the chunk, and determines whether or not an entry of the hash value exists in the hash table 111. If there is an entry for the hash value calculated from the chunk in the hash table 111 (OP23: YES), the process proceeds to OP25. If there is no entry of the hash value calculated from the chunk in the hash table 111 (OP23: NO), the process proceeds to OP24.
  • the storage processing unit 105 since there is no entry of the hash value calculated from the chunk in the hash table 111, the storage processing unit 105 stores the chunk and the hash value in the cache 112. In addition, the storage processing unit 105 registers the hash value entry in the hash table 111. Next, the process proceeds to OP26.
  • the determination processing unit 106 adds 1 to the number of times the entry in the hash value table 111 corresponding to the hash value is updated. Next, the process proceeds to OP26.
  • the data combining unit 115 combines a predetermined number of chunks and restores the data. Next, the process proceeds to OP27.
  • the upper transmission unit 116 transmits the restored data to the upper application 109. Thereafter, the process shown in FIG. 11 ends.
  • the restoration processing unit 114 determines whether or not the received data is a hash value. If the received data is a hash value (OP28: YES), the process proceeds to OP29. If the received data is not a hash value (OP28: NO), the processing shown in FIG. 11 ends.
  • the restoration processing unit 114 acquires a chunk corresponding to the hash value from the cache 112. Next, the process proceeds to OP25.
  • the process shown in FIG. 11 when the received data is a chunk and the hash value of the chunk is stored, the number of times of duplication is updated. However, in the information processing system 100 according to the first embodiment, it does not normally occur. Since it is considered as an event, the process may be terminated as an error.
  • FIG. 12 is an example of a flowchart of the reception process of the device operating in the second mode.
  • the portable terminal 2 will be mainly described as an apparatus operating in the second mode.
  • the process shown in FIG. 12 is started when the negotiation unit 208 determines that the operation mode of the mobile terminal 2 is the second mode and receives data from the communication partner device via the network.
  • the entity of the processing entity shown in FIG. 12 is a CPU, but for convenience, the corresponding functional configuration of each process will be described as the entity.
  • the restoration processing unit 202 determines whether or not the received data is a chunk. If the received data is a chunk (OP31: YES), the process proceeds to OP32. If the received data is not a chunk (OP31: NO), the process proceeds to OP40.
  • the hash value calculation unit 203 calculates a hash value of the chunk. Next, the process proceeds to OP33.
  • the comparison processing unit 204 searches the hash table 211 with the hash value calculated from the chunk, and determines whether or not there is an entry of the hash value in the hash table 211.
  • the presence of a hash value entry in the hash table 211 indicates that the hash value is stored in the cache 212. If there is an entry for the hash value calculated from the chunk in the hash table 211 (OP33: YES), the process proceeds to OP34. If there is no entry of the hash value calculated from the chunk in the hash table 211 (OP33: NO), the process proceeds to OP37.
  • the determination processing unit 206 adds 1 to the number of times of duplication in the hash table 211 of the hash value and updates it. Next, the process proceeds to OP35.
  • the determination processing unit 206 determines whether or not the number of times the hash value is duplicated is a threshold value N (N ⁇ M). When the number of times the hash value is duplicated is the threshold value N (OP35: YES), the process proceeds to OP36. If the number of times the hash value is duplicated is less than the threshold value N or greater than the threshold value N (OP35: NO), the process proceeds to OP38.
  • the storage processing unit 205 stores the chunk and the hash value in the cache 212. Next, the process proceeds to OP38.
  • the storage processing unit 205 stores the hash value in the cache 212 and registers the hash value entry in the hash table 211. Next, the process proceeds to OP38.
  • the data combining unit 207 combines a predetermined number of chunks to restore the data. Next, the process proceeds to OP39.
  • the upper transmission unit 210 transmits the restored data to the upper application 209. Thereafter, the process shown in FIG. 12 ends.
  • the restoration processing unit 202 determines whether or not the received data is a hash value. If the received data is a hash value (OP40: YES), the process proceeds to OP41. If the received data is not a hash value (OP40: NO), the process shown in FIG. 12 ends.
  • the restoration processing unit 202 acquires a chunk corresponding to the hash value from the cache 212. Next, the process proceeds to OP42.
  • the determination processing unit 206 adds 1 to the number of times of duplication of entries in the hash table 211 of the corresponding hash value and updates it. Next, the process proceeds to OP38.
  • the storage processing unit 205 may overwrite the already stored chunk. Further, before the processing of OP35, the determination processing unit 206 may determine whether or not the corresponding chunk is stored in the cache 212. In this case, when the corresponding chunk is stored in the cache 212, the process proceeds to OP38, and when the corresponding chunk is not stored in the cache 212, the process proceeds to OP35.
  • FIG. 13 is an example of a flowchart of a transmission process of a device operating in the second mode.
  • the portable terminal 2 will be mainly described as an apparatus that operates in the second mode.
  • the process shown in FIG. 13 is started when the negotiation unit 208 determines the operation mode to be the second mode and a transmission request is notified from the upper application 209 of the mobile terminal 2.
  • the entity of the processing entity shown in FIG. 13 is a CPU, but for convenience, the corresponding functional configuration of each process will be described as the entity.
  • the upper receiving unit 214 acquires data to be transmitted from the upper application 209. Next, the process proceeds to OP52.
  • the data division unit 215 divides the transmission target data into a plurality of chunks. Next, the process proceeds to OP53.
  • the hash value calculation unit 203 calculates a hash value from the chunk. Next, the process proceeds to OP54.
  • the comparison processing unit 204 searches the hash table 211 with the hash value calculated from the chunk, and determines whether or not there is an entry of the hash value in the hash table 211. If there is an entry for the hash value calculated from the chunk in the hash table 211 (OP54: YES), the process proceeds to OP55. If there is no entry of the hash value calculated from the chunk in the hash table 211 (OP54: NO), the process proceeds to OP59.
  • the determination processing unit 206 adds 1 to the number of times of duplication of the entry in the hash table 211 of the corresponding hash value and updates it. Next, the process proceeds to OP56.
  • the determination processing unit 206 determines whether or not the number of times the corresponding hash value is duplicated is a threshold value N. If the number of times the corresponding hash value is duplicated is the same as the threshold value N (OP56: YES), the process proceeds to OP57. If the number of times the corresponding hash value is duplicated is less than the threshold value N or greater than the threshold value N (OP56: NO), the process proceeds to OP58.
  • the determination processing unit 206 determines storage of the corresponding chunk, and the storage processing unit 205 stores the corresponding chunk and the hash value in the cache 212. Next, the process proceeds to OP58.
  • the transmission unit 216 transmits the hash value of the corresponding chunk to the communication partner apparatus. Thereafter, the process shown in FIG. 13 ends.
  • the storage processing unit 205 stores the hash value of the chunk in the cache 212, and stores the hash value entry of the chunk in the hash table 211. sign up. Next, the process proceeds to OP60.
  • the transmission unit 216 transmits the corresponding chunk to the communication partner. Thereafter, the process shown in FIG. 13 ends.
  • the determination processing unit 206 may determine whether or not the corresponding chunk is stored in the cache 212. In this case, when the corresponding chunk is stored in the cache 212, the process proceeds to OP58, and when the corresponding chunk is not stored in the cache 212, the process proceeds to OP56.
  • FIG. 14 is a diagram illustrating an example of a process sequence for selecting an operation mode.
  • the mobile terminal 2 is activated.
  • the mobile terminal 2 calculates a storage capacity V12 that can be used as the cache 212 (FIG. 9, OP1), and notifies the information processing apparatus 1 of the storage capacity V12.
  • V12 can be used as the cache 212 (FIG. 9, OP1)
  • FIG. 14 it is assumed that the information processing apparatus 1 is not activated when the mobile terminal 2 notifies the storage capacity V12, and there is no response to the notification even after a predetermined time has elapsed.
  • the information processing apparatus 1 is activated and a transmission request to the portable terminal 2 is generated.
  • the information processing apparatus 1 calculates the storage capacity V11 that can be used as the cache 112 (OP1 in FIG. 9).
  • the information processing apparatus 1 notifies the storage capacity V11 to the portable terminal 2 (FIG. 9, OP2).
  • the portable terminal 2 receives the notification of the storage capacity V11 transmitted by the information processing apparatus 1 (FIG. 9, OP4: YES), and determines that the storage capacity V12 of the own apparatus is smaller.
  • the portable terminal 2 notifies the information processing apparatus 1 of the storage capacity V12, which is the smaller storage capacity, as a response (FIG. 9, OP5).
  • the portable terminal 2 selects the second mode as the operation mode because the storage capacity V12 of its own device is smaller (FIG. 9, OP6: NO, OP8).
  • the information processing apparatus 1 receives a response from the mobile terminal 2 (FIG. 9, OP3: YES), and selects the first mode as the operation mode because the storage capacity V11 of the own apparatus is larger (FIG. 9). , OP6: YES, OP7).
  • the communication device operating in the second mode stores the hash value without storing the chunk itself for the chunk having the number of duplications less than N.
  • the communication device that operates in the first mode stores chunks from the first transmission or reception.
  • the communication device operating in the second mode can transmit the hash value even if the chunk that has been transmitted or received is not stored, and the first value can be transmitted.
  • Duplicate transmission removal processing can be executed when data is transmitted to a communication apparatus operating in the mode. As a result, it is possible to reduce consumption of the storage capacity used for data storage of the communication device operating in the second mode while suppressing a decrease in the efficiency of the duplicate transmission elimination process.
  • the communication device operating in the second mode also stores the chunk itself for chunks that are duplicated N times or more. That is, the communication device operating in the second mode stores the chunk itself for the chunk with a high overlap frequency. Therefore, with respect to the chunk with high duplication frequency, it is possible to perform duplicate transmission removal processing from the communication device operating in the first mode to the communication device operating in the second communication mode, and the duplicate transmission removal processing of the entire system Efficiency can be improved.
  • a communication device with a larger storage capacity used as a cache operates in the first operation mode, and a communication device with a smaller storage capacity used as a cache operates in the second operation mode. To do. As a result, it is possible to reduce the consumption of the memory used for data storage of the communication device having the smaller storage capacity. In an example of the experiment of the communication system 100 according to the first embodiment, the result is that the storage capacity used for data storage of the communication device operating in the second communication mode is reduced by 80%.
  • the duplication frequency is determined based on the number of data duplications, the determination of the storage of the chunk of the communication device operating in the second mode, the transmission of the hash value of the communication device operating in the first mode. A determination is made.
  • the duplication frequency that is a determination criterion for storing chunks of a communication device that operates in the second mode and a hash value transmission criterion for communication devices that operate in the first mode is not based on the number of data duplications. Absent.
  • the duplication frequency serving as the determination criterion may be based on the priority of data.
  • the data priority is set such that the higher the data priority, the higher the frequency of duplication.
  • the priority of data is determined by the determination processing units 106 and 206 based on the file attribute, for example.
  • the file attributes include, for example, a file name, file update date and time, user identification information, and the like.
  • the determination processing units 106 and 206 set the priority higher than a predetermined value if, for example, a predetermined keyword is included in the file name.
  • the predetermined keyword is, for example, a version name and a word “important”.
  • the determination processing units 106 and 206 set the priority higher as the file update date and time is newer, for example.
  • the determination processing units 106 and 206 determine the priority based on information such as the user's title set in advance.
  • the priority of data may be set by combining a plurality of file attribute elements.
  • the hash values and the priority of data are stored in the hash tables 111 and 211. Further, when the data priority is updated, the data priority is updated at the same timing as the timing at which the number of duplications is updated in the first embodiment.
  • the threshold values of the data priorities of the determination processing units 106 and 206 are determined by storing chunks of the device operating in the second mode prior to transmission of the hash value of the communication device operating in the first mode. Set to be executed.
  • the determination thresholds M and N are fixed values, but the thresholds M and N may not be fixed values. For example, when the priority is determined from the number of times of duplication and each file element (file name, update date, etc.), the thresholds M and N are updated as the number of times of duplication increases. Also good. When the threshold values M and N are updated, the threshold values M and N may be updated at the timing when the priority is updated. As a result, data storage of the communication device operating in the second mode can be controlled more flexibly.
  • any of the communication devices operating in the first and second modes performs chunk storage, chunk storage determination, duplication number update, and the like in both transmission and reception of chunks. . Instead, only when a chunk is transmitted from a communication device operating in the first mode to a communication device operating in the second mode, determination of chunk storage, chunk storage determination, and updating of the number of duplications Etc. may be performed.
  • the communication device operating in the first mode does not perform the processing of OP22 to OP25 in FIG. 11, for example.
  • the communication device operating in the second mode does not perform the processing of OP55 to OP58 and OP59 in FIG.
  • a program for causing a computer or other machine or device (hereinafter, a computer or the like) to realize any of the above functions can be recorded on a recording medium that can be read by the computer or the like.
  • the function can be provided by causing a computer or the like to read and execute the program of the recording medium.
  • a computer-readable recording medium is a non-temporary recording medium in which information such as data and programs is accumulated by electrical, magnetic, optical, mechanical, or chemical action and can be read from a computer or the like.
  • a typical recording medium examples of such recording media that can be removed from a computer or the like include, for example, a memory such as a flexible disk, a magneto-optical disk, a CD-ROM, a CD-R / W, a DVD, a Blu-ray disc, a DAT, an 8 mm tape, and a flash memory.
  • a recording medium fixed to a computer or the like there are a hard disk, a ROM (Read Only Memory), and the like.
  • an SSD Solid State Drive

Landscapes

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

Abstract

第1の通信装置と、第1の通信装置とデータの送受信を行う第2の通信装置とを含む通信システムである。第1の通信装置は、データと、該データよりも小さいサイズである該データの識別情報とを記憶する第1の記憶部、を備える。第2の通信装置は、データの重複頻度に応じて、データの識別情報、又は、該データの識別情報と該データ自体と、を記憶する第2の記憶部と、データに対する送信要求が発生した場合に、第2の記憶部にデータの識別情報が格納されていれば、データの識別情報を第1の通信装置に送信する送信部と、を備える。

Description

通信システム、通信装置、情報処理方法、及び、情報処理プログラム
 本発明は、通信システム、通信装置、情報処理方法、及び情報処理プログラムに関する。
 通信の高速化を実現する方法の一つに、転送データ量を削減する方法がある。転送データ量を削減する方法は、使用帯域が減るため、低帯域の回線に対して有効である。転送データ量を削減する方法として、例えば、重複して送信されるデータを除去する方法がある。
 図1は、データ重複送信除去システムの一例を示す図である。データ重複送信除去システムP100は、通信装置#1と通信装置#2とを含む。通信装置#1及び通信装置#2は、それぞれ、例えば、ネットワークの境界に位置する装置である。
 送信側の通信装置#1は、例えば、アプリケーションから送信要求対象のデータを受信すると、チャンクと呼ばれる1~4KBの可変長ブロックに該データを分割する。通信装置#1は、例えば、各チャンクについてSHA1(Secure Hash Algorithm)の計算をしてハッシュ値を取得し、該ハッシュ値をキーとして、キャッシュ内のハッシュ探索を行う。通信装置#1のキャッシュには、送信実績のあるデータのチャンクとSHA1の計算結果とが保持されている。
 ハッシュ探索の結果、キャッシュからSHA1の計算結果が一致するチャンクが検出されない場合には、すなわち、チャンクの送信が重複していない場合には、通信装置#1は、該チャンクをキャッシュに保存し、チャンクを送信する。ハッシュ探索の結果、SHA1の計算結果が一致するチャンクが検出された場合には、すなわち、チャンクの送信が重複している場合には、通信装置#1は、該チャンクよりもサイズの小さい該チャンクのインデックスを送信する。チャンクのインデックスには、例えば、アプリケーションIDと、該チャンクの位置情報と、該チャンクのサイズとが含まれている。
 受信側の通信装置#2は、チャンクを受信した場合には、該チャンクを宛先に転送するとともに、キャッシュに該チャンクを保存する。通信装置#2は、チャンクのインデックスを受信した場合には、キャッシュから該当するチャンクを読み出してデータを復元し、宛先に送信する。インデックスはチャンクよりもサイズが小さいため、重複して送信されるチャンクの代わりにインデックが送信されることによって、転送データ量を減らすことができる。
特開2001-197429号公報 特開2002-16865号公報 特開2007-274556号公報
 しかしながら、図1に示されるデータ重複送信除去システムP100には、例えば、以下のような問題がある。
 図2は、図1に示されるデータ重複送信除去システムP100と同様のデータ重複送信除去システムP100の一例を示す図である。図1に示されるデータ重複送信除去システムP100では、通信装置#1も通信装置#2もチャンク、すなわち、データそのものを記憶装置に保存する。そのため、通信装置#1から通信装置#2への重複するデータのインデックスの送信と同様に、逆方向の通信装置#2から通信装置#1へ重複するデータのインデックスが送信された場合にも、通信装置#1は受信したインデックスからデータを取得することができる。すなわち、図2に示されるデータ重複送信除去システムでは、通信装置#1から通信装置#2への方向と、通信装置#2から通信装置#1への方向との、双方向で、データの重複送信の除去を行うことができる。データの重複送信の際に、該データの代わりにサイズの小さいインデックス等の識別情報を送信することを、以降、データ重複送信除去処理と称する。
 しかしながら、双方向でデータ重複送信除去処理を行う場合には、通信装置#1と通信装置#2との双方が同じデータを保存することを求められる。そのため、いずれか一方がモバイル端末等の記憶容量の小さい装置である場合には、該記憶容量の小さい装置の記憶容量に対してデータ重複送信除去処理におけるデータ保存に用いられるメモリの割合が大きくなり、該記憶容量の小さい装置の処理負荷が高くなる可能性がある。しかしながら、記憶容量の小さい装置にデータ重複送信除去のためのデータを保存しないとなると、通信相手の装置から該記憶容量の小さい装置への方向の通信においてデータ重複送信の除去が行われなくなり、重複データの除去効率が悪くなる。
 本発明の一態様は、重複するデータの送信を除去する処理において、重複データの除去効率の低下を抑えながら、一方の通信装置のデータ保存に用いられる記憶容量の消費を削減可能な通信システム、通信装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
 本発明の態様の一つは、第1の通信装置と、該第1の通信装置とデータの送受信を行う第2の通信装置とを含む通信システムである。第1の通信装置は、データと、該データよりも小さいサイズである該データの識別情報とを記憶する第1の記憶部を備える。第2の通信装置は、データの重複頻度に応じて、データの識別情報、又は、データの識別情報とデータ自体と、を記憶する第2の記憶部と、データに対する送信要求が発生した場合に、第2の記憶部にデータの識別情報が格納されていれば、データの識別情報を第1の通信装置に送信する送信部と、を備える。
 開示の通信システム、通信装置、情報処理方法、及び情報処理プログラムによれば、重複するデータの送信を除去する処理において、重複データの除去効率の低下を抑えながら、一方の通信装置のデータ保存に用いられる記憶容量の消費を削減することができる。
データ重複送信除去システムの一例を示す図である。 図1に示されるデータ重複送信除去システムと同様のデータ重複送信除去システムの一例を示す図である。 データ重複送信除去システムの一例を示す図である。 データ重複送信除去システムの一例を示す図である。 第1実施形態に係るデータ重複送信除去システムの一例を示す図である。 情報処理装置のハードウェア構成の一例を示す図である。 情報処理装置から携帯端末へデータが送信される場合の情報処理装置と携帯端末との機能構成の一例を示す図である。 携帯端末から情報処理装置へデータが送信される場合の情報処理装置と携帯端末との機能構成の一例を示す図である。 情報処理装置のネゴシエーション部及び携帯端末のネゴシエーション部の処理のフローチャートの一例を示す図である。 第1のモードで動作する装置の送信処理のフローチャートの一例である。 第1のモードで動作する装置の受信処理のフローチャートの一例である。 第2のモードで動作する装置の受信処理のフローチャートの一例である。 第2のモードで動作する装置の送信処理のフローチャートの一例である。 動作モードの選択の処理のシーケンスの一例を示す図である。
 以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
 <データ重複送信除去システムの一例>
 図3は、データ重複送信除去システムP200の一例を示す図である。図3に示されるデータ重複送信除去システムP200では、通信装置#1は、データ送信時に、キャッシュに送信データと送信データのフィンガープリントとを保存する。フィンガープリントとは、例えば、データから算出されるハッシュ値である。ハッシュ値は他のデータから算出されるものと重複する値になる可能性が非常に低いため、ハッシュ値をデータの識別情報として用いることができる。フィンガープリントのサイズは、送信データに比べ十分に小さい。
 通信装置#1は、送信データのフィンガープリントとキャッシュに記憶されているフィンガープリントとを比較する。送信データのフィンガープリントとキャッシュに記憶されているフィンガープリントとが一致しない場合には、通信装置#1は、送信データを送信し、送信データとフィンガープリントとをキャッシュに保存する。送信データのフィンガープリントとキャッシュに保存されているフィンガープリントとが一致する場合には、通信装置#1は、送信データを送信せずに、フィンガープリントを送信する。例えば、図3の例では、通信装置#1は、データA、B、Cを初回に送信する際には、データA、B、Cを送信する。通信装置#1が2回目にデータA、B、Cを送信する際には、データA、B、Cとそれぞれのフィンガープリントとがキャッシュに記憶されているので、通信装置#1は、データA、B、CのフィンガープリントF_A、F_B、F_Cを送信する。
 通信装置#2は、データを受信した場合には、該受信データのフィンガープリントを算出し、受信データと該受信データのフィンガープリントとをキャッシュに保存する。通信装置#2は、フィンガープリントを受信した場合には、受信したフィンガープリントでキャッシュを検索し、データを復元する。
 フィンガープリントは、例えば、SHA1の場合には20バイトであり、サイズが小さい。そのため、フィンガープリントを用いることによって、キャッシュの検索処理を高速化することができる。
 図3に示されるデータ重複送信除去システムP200においても、通信装置#1から通信装置#2への方向だけでなく、通信装置#2から通信装置#1への方向もデータ重複送信除去処理を実施可能である。通信装置#1、通信装置#2ともに、データとフィンガープリントを保存するからである。例えば、データA、B、Cの受信以降、通信装置#2は、データA、B、Cを送信する場合には、キャッシュにデータA、B、Cとフィンガープリントとが保存されているので、データA、B、Cの代わりにフィンガープリントF_A、F_B、F_Cを送信する。
 だたし、図3に示される例でも、通信装置#1、通信装置#2の双方がデータとフィンガープリントとを保存するので、データ重複送信除去処理においてデータ保存に用いられるメモリ容量について図1に示されるデータ重複送信除去システムP100と同様の問題がある。
 図4は、データ重複送信除去システムP300の一例を示す図である。図4に示されるデータ重複送信除去システムP300では、通信装置#1は、送信データのフィンガープリントとキャッシュに記憶されているフィンガープリントとを比較し、両者が一致しない場合には、通信装置#1は、送信データを送信する。また、通信装置#1は、送信データのフィンガープリントとキャッシュに記憶されているフィンガープリントとが一致しない場合には、送信データとフィンガープリントとをキャッシュに保存する。ここまでは、図3に示されるデータ重複送信除去システムP200と同様である。
 送信データのフィンガープリントとキャッシュに保存されているフィンガープリントとが一致する場合には、通信装置#1は、該送信データの送信回数を確認する。送信データの送信回数が所定の閾値未満の場合には、通信装置#1は、送信データを送信する。送信データの送信回数が所定の閾値以上の場合には、通信装置#1は、フィンガープリントを送信する。
 図4に示される例では、送信回数の閾値が3回であり、データAの4回目の送信では、データAではなく、データAのフィンガープリントF_Aが送信されている。
 通信装置#2は、所定回数同じデータを受信した場合に、該受信データと該受信データのフィンガープリントとをキャッシュに保存する。受信データの保存の判定基準となる受信回数の閾値は、通信装置#1がフィンガープリントの送信を判定する送信回数の閾値よりも小さい値である。同じデータの所定回数の受信以降に、該データのフィンガープリントを受信した場合には、通信装置#2は、受信したフィンガープリントでキャッシュを検索し、データを復元する。
 図4に示されるデータ重複送信除去システムP300では、通信装置#2は、受信回数が所定回数未満のデータと、該データのフィンガープリントとをキャッシュに保存しないので、通信装置#2のデータ保存に用いられるメモリ容量を削減することができる。
 図4に示されるデータ重複送信除去システムP300において、所定回数以上受信されたデータと該データのフィンガープリントとは通信装置#2に保存されている。そのため、通信装置#2は、保存されているデータを通信装置#1へ送信する際には、該データのフィンガープリントを送信することができる。しかしながら、受信回数が所定回数未満のデータはデータそのものもフィンガープリントも通信装置#2に保存されていないので、通信装置#2は、保存されていないデータについては、フィンガープリントを送信することができない。
 図4に示される例では、データAは、通信装置#2に所定回数以上受信されているので、通信装置#2にデータAとフィンガープリントとが保存されている。そのため、通信装置#2が通信装置#1にデータAを送信する際には、通信装置#2はデータAの代わりにデータAのフィンガープリントを送信することができる。
 データB、データCは、所定回数以上受信されていないので、通信装置#2にはデータそのものもフィンガープリントも保存されていない。そのため、通信装置#2が通信装置#1にデータB又はデータCを送信する際には、データB又はデータCそのものを送信することとなる。データB、データCについては、通信装置#1にデータそのものとフィンガープリントとが保存されており、通信装置#1はフィンガープリントからデータを復元可能な状態であるにもかかわらず、通信装置#2からの送信の際にはデータそのものが送信される。そのため、図4に示されるデータ重複送信システムP300は、データ転送量の削減の効果を最大限得られていない。
 <第1実施形態>
 第1実施形態では、第1の通信装置は、送信及び受信したデータと該データの識別情報とを記憶し、送受信の重複頻度が高いと予想されるものに限って、データに代わって識別情報を送信する。一方、第1の通信装置とデータ送受信を行う第2の通信装置は、送信及び受信したデータの少なくとも識別情報を記憶し、データそのものについては、送受信の重複頻度が高いと予想されるものに限って記憶する。これによって、第2の通信装置は、データ重複送信除去処理においてデータ保存に用いられる記憶容量を低減させることができる。
 また、第2の通信装置が識別情報を記憶しているデータについては、第1の通信装置に該データそのものと識別情報とが記憶されている。そのため、第2の通信装置は、識別情報を記憶しているデータについて、第2の通信装置自身がデータそのものを記憶しているか否かにかかわらず、データに代わり該データの識別情報を第1の通信装置に送信することができる。すなわち、第2の通信装置は、第1の通信装置へのデータ送信においてデータ重複送信の除去を行うことができる。
 また、第2の通信装置は、重複頻度が高いと予想されるデータを保存するので、該データについては、第1の通信装置から識別情報を受信した場合に、該識別情報からデータを復元することができる。すなわち、第1実施形態に係るデータ重複送信除去システム100は、重複頻度が高いと予想されるデータについては、第1の通信装置から送信される場合でも、第2の通信装置から送信される場合でも、双方向でデータ重複送信の除去を行うことができる。
 図5は、第1実施形態に係るデータ重複送信除去システムの一例を示す図である。第1実施形態に係るデータ重複送信除去システム100は、情報処理装置1、情報処理装置1とデータ送受信を行う携帯端末2を含む。ただし、データ重複送信除去システム100に含まれる装置は情報処理装置1、携帯端末2に限られない。例えば、情報処理装置1が2台であってもよいし、携帯端末2が2台であってもよい。
 以降、第1実施形態では、データ送受信の重複頻度の判定基準として、送信及び受信の重複回数が用いられることとする。ただし、データ送受信の重複頻度の判定基準は、送信及び受信の重複回数に限られない。例えば、データの送受信の重複頻度の判定基準は、データの優先度であってもよい。データの優先度は、例えば、ファイル名、ファイル更新日時、ユーザ等に応じて設定される。以降、単に「重複回数」と称する場合には、データが重複して送信された回数と、重複して受信された回数との合計回数を示すこととする。
 また、以降、第1実施形態では、データの識別情報として、フィンガープリントが用いられることとする。また、第1実施形態では、フィンガープリントは、SHA1によるハッシュ値とする。ただし、データの識別情報は、フィンガープリントに限られず、データを特定可能なものであればよい。例えば、データの識別情報は、データのインデックスであってもよい。
 情報処理装置1及び携帯端末2は、互いの記憶容量を比較する。記憶容量の大きい方の装置は、上述の第1の通信装置として動作する。記憶容量の小さい方の装置は、上述の第2の通信装置として動作する。第1実施形態では、情報処理装置1の方が携帯端末2よりも記憶容量が大きく、情報処理装置1は第1の通信装置として、携帯端末2は第2の通信装置として動作することを想定する。
 まず、情報処理装置1から携帯端末2へのデータ送信におけるデータ重複送信除去処理は、以下の通りである。
 情報処理装置1は、上述の第1の通信装置として動作するので、データ送信時には、送信データのハッシュ値でキャッシュを検索して、一致するハッシュ値がキャッシュに保存されていない場合には、送信データと送信データのハッシュ値とをキャッシュに記憶する。送信データのハッシュ値に一致するハッシュ値がキャッシュに保存されている場合には、情報処理装置1は、該送信データの重複回数を確認する。送信データの重複回数が閾値M(M:正の整数)以上である場合には、情報処理装置1はハッシュ値を送信する。送信データの重複回数が閾値M未満である場合には、情報処理装置1は送信データそのものを送信する。
 携帯端末2は、上述の第2の通信装置として動作するので、データ受信時には、受信データの重複回数を確認する。受信データの重複回数が閾値N(N:正の整数)未満である場合には、携帯端末2は、受信データは保存せずに、受信データのハッシュ値をキャッシュに記憶する。受信データの重複回数が閾値N以上である場合には、携帯端末2は、受信データと受信データのハッシュ値とをキャッシュに記憶する。
 なお、受信側となる携帯端末2にデータが保存されていないと、携帯端末2は情報処理装置1からハッシュ値を受信した場合に、該ハッシュ値から元のデータを復元することができない。そのため、携帯端末2の受信データの保存が情報処理装置1の該当データのハッシュ値の送信よりも先んじて行われるように、情報処理装置1、携帯端末2の重複回数の閾値M、Nは設定される。より具体的には、情報処理装置1の送信データのハッシュ値送信の判定のための重複回数の閾値M>携帯端末2の受信データの保存の判定のための重複回数の閾値Nと設定される。
 図5に示される例では、情報処理装置1の送信データのハッシュ値送信の判定のための重複回数の閾値Mは3回、携帯端末2の受信データの保存の判定のための重複回数の閾値Nは2回と設定されていることとする。図5に示される例では、情報処理装置1は、データAを4回目に送信する場合、すなわち、データAの重複回数が3回となる場合に、データAのハッシュ値を送信し始める。
 携帯端末2は、データA、B、Cのそれぞれの初回の受信時にそれぞれのハッシュ値を保存し、データAの受信の3回目、すなわち、データAの重複回数が2回となる場合にデータAを保存する。したがって、携帯端末2は、データAの4回目以降の受信から、ハッシュ値からデータAを復元できるようになる。
 次に、携帯端末2から情報処理装置1へのデータ送信におけるデータ重複送信除去処理は、以下の通りである。
 携帯端末2は、送信データのハッシュ値でキャッシュの検索を行う。送信データのハッシュ値がキャッシュに保存されていない場合には、携帯端末2は、送信データのハッシュ値をキャッシュに記憶し、送信データそのものを情報処理装置1に送信する。
 送信データのハッシュ値がキャッシュに保存されている場合には、携帯端末2は、送信データではなく送信データのハッシュ値を情報処理装置1に送信する。また、携帯端末2は、該送信データの重複回数を確認する。送信データの重複回数が閾値N以上である場合には、携帯端末2は送信データと送信データのハッシュ値とをキャッシュに保存する。送信データの重複回数が閾値N未満である場合には、携帯端末2は、送信データを送信する。なお、データ送信時のデータ保存判定の重複回数の閾値Nは、データ受信時のデータ保存判定の重複回数の閾値Nと同じものである。
 情報処理装置1は、携帯端末2からデータを受信すると、該受信データのハッシュ値がキャッシュに保存されていなければ、該受信データと該受信データのハッシュ値とをキャッシュに保存する。
 図5に示される状態の場合、携帯端末2は、データA、B、Cのハッシュ値を記憶しているので、データA、B、Cを情報処理装置1に送信する場合には、データそのものではなくハッシュ値を送信する。データB、Cについては、携帯端末2はデータそのものを記憶していないが、ハッシュ値を保持しており、情報処理装置1にはデータB、Cそのものが記憶されているため、ハッシュ値を送信することで、重複送信を除去することができる。データA、B、C以外のデータの送信の場合には、キャッシュにハッシュ値が保存されていないので、携帯端末2はデータそのものを送信する。
 <装置構成>
 図6は、情報処理装置1のハードウェア構成の一例を示す図である。情報処理装置1は、例えば、PC(パーソナルコンピュータ)のような汎用のコンピュータ、サーバのような専用のコンピュータである。
 情報処理装置1は、CPU(Central Processing Unit)11、主記憶装置12、入力装置13、出力装置14、補助記憶装置15、ネットワークインタフェース17を備える。また、これらはバス19により互いに接続されている。
 入力装置13は、例えば、タッチパネル、キーボード、キーパッド等である。入力装置13から入力されたデータは、CPU 11に出力される。入力装置13は、例えば、マイクロフォンのような音声入力装置を含んでもよい。
 補助記憶装置15は、様々なプログラムや、各プログラムの実行に際してCPU 11が使用するデータを格納する。補助記憶装置15は、例えば、EPROM(Erasable Programmable ROM)、フラッシュメモリ、又はハードディスクドライブ(Hard Disk Drive)等の不揮発性のメモリである。補助記憶装置15は、例えば、オペレーティングシステム(OS)、重複送信除去プログラム、その他様々なアプリケーションプログラムを保持する。重複送信プログラムは、データの重複送信の際にはデータの代わりに識別情報を送信することで重複するデータの送信を除去するためのプログラムである。
 主記憶装置12は、CPU 11に、補助記憶装置15に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置12は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)のような半導体メモリを含む。
 CPU 11は、補助記憶装置15に保持されたOSや様々なアプリケーションプログラムを主記憶装置12にロードして実行することによって、様々な処理を実行する。CPU 11は、1つに限られず、複数備えられてもよい。
 ネットワークインタフェース17は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース17は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース17は、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード、無線回路等である。ネットワークインタフェース17で受信されたデータ等は、CPU 11に出力される。
 出力装置14は、CPU 11の処理の結果を出力する。出力装置14は、ディスプレイ、プリンタを含む。
 なお、図6に示される情報処理装置1のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、情報処理装置1は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、SDカード、miniSDカード、microSDカード、USB(Universal Serial Bus)フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、Blu-ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。また、情報処理装置1がサーバである場合には、例えば、情報処理装置1は、入力装置13、出力装置14を備えていなくてもよい。
 携帯端末2は、例えば、スマートフォン、タブレット端末等である。携帯端末2のハードウェア構成は、情報処理装置1と似ているため、図示を省略する。携帯端末2は、ハードウェア構成として、CPU、主記憶装置、補助記憶装置、入力装置としてのタッチパネル及びマイクロフォン、出力装置としてのディスプレイ、スピーカ、無線通信処理を行うネットワークインタフェースとしての無線部を備える。また、携帯端末2も、可搬記録媒体駆動装置を備えてもよい。
 図7は、情報処理装置1から携帯端末2へデータが送信される場合の情報処理装置1と携帯端末2との機能構成の一例を示す図である。情報処理装置1は、送信側の機能構成として、上位受信部101、データ分割部102、ハッシュ値算出部103、比較処理部104、保存処理部105、判定処理部106、送信部107、ネゴシエーション部108、上位アプリケーション109、ハッシュテーブル111、キャッシュ112を備える。上位アプリケーション109以外の機能構成は、CPU 11が補助記憶装置15に格納されている重複送信除去プログラムを実行することによって達成される機能構成である。また、重複送信除去プログラムが実行されることによって、補助記憶装置15の記憶領域にハッシュテーブル111、キャッシュ112用の領域が確保される。
 ネゴシエーション部108は、自装置が、送受信データと送受信データのハッシュ値とを保存する方の装置(上述の第1の通信装置)、送受信データのハッシュ値と重複頻度が高いと予想される送受信データとを保存する方の装置(上述の第2の通信装置)のいずれで動作するのかを決定する。送受信データと送受信データのハッシュ値とを保存する方の装置として動作するモードを、以降、第1のモードと称する。送受信データのハッシュ値と重複頻度が高いと予想される送受信データとを保存する方の装置として動作するモードを、以降、第2のモードと称する。
 ネゴシエーション部108は、例えば、起動時又は上位アプリケーション109からのデータ送信要求時に、通信相手の装置と、キャッシュ112として利用可能な記憶容量を交換する。自装置のキャッシュ112の記憶容量の方が通信相手より大きい場合には、ネゴシエーション部108は、第1の動作モードを選択する。自装置のキャッシュ112の記憶容量の方が通信相手より小さい場合には、ネゴシエーション部108は、第2の動作モードを選択する。
 自装置のキャッシュ112の記憶容量と通信相手の装置のキャッシュの記憶容量とが同じ値である場合には、ネゴシエーション部108は、データの送信側となる装置を第1の動作モードとして動作する装置と判定し、自装置の動作モードを選択してもよい。又は、ネゴシエーション部108は、例えば、装置の種類や、装置の固有識別情報等をさらに交換することによって、動作モードを決定してもよい。ネゴシエーション部108は、「動作判定部」の一例である。
 第1実施形態では、情報処理装置1の方が携帯端末2よりもキャッシュ112の記憶容量が大きいことを想定しているので、情報処理装置1のネゴシエーション部108は、第1の動作モードを選択する。ネゴシエーション部108は、選択した動作モードを判定処理部106に通知する。
 上位受信部101は、データの送信元となる上位アプリケーション109から送信要求対象のデータを受信し、該アプリケーションのセッションを終端する。例えば、データの送信元である上位アプリケーション109がTCP(Transmission Control Protocol)で通信を行うアプリケーションである場合には、上位受信部101は、データの送信元から送信要求を受信すると、該データの送信元とTCPセッションを確立する。上位受信部101は、IPアドレスとポート番号との組み合わせであるソケットを用いてデータの送信元と通信を行う。そのため、上位受信部101は、ソケットからアプリケーションを識別可能である。
 なお、データの送信元となるアプリケーションを実行する実体は、情報処理装置1自身であってもよいし、他の装置であってもよい。例えば、データの送信元となる上位アプリケーション109を実行する実体が他の装置である場合には、上位受信部101は、ネットワークインタフェース17を通じて、該他の装置から送信要求及び送信要求対象のデータを受信する。第1実施形態では、以降、データの送信元となるアプリケーションを実行する実体を特定することなく、単に、「送信元」と称する。
 上位受信部101は、上位アプリケーション109から受信した送信対象のデータをデータ分割部102に出力する。
 データ分割部102は、上位受信部101から送信対象のデータの入力を受け、該送信対象のデータをチャンクに分割する。チャンクは、1~4KBの可変長ブロックである。データ分割部102は、チャンクをハッシュ値算出部103に出力する。
 ハッシュ値算出部103は、データ分割部102からチャンクの入力を受け、チャンクのハッシュ値を算出する。第1実施形態では、ハッシュ値算出部103は、SHA1の計算を行うこととする。ただし、ハッシュ値算出部103の計算方法は、SHA1に限られない。情報処理装置1と通信相手との間で、共通の方式でハッシュ値が求められるのであれば、如何なるハッシュ値算出方式であってもよい。ハッシュ値算出部103は、算出したハッシュ値を比較処理部104に出力する。
 比較処理部104は、ハッシュ値算出部103からチャンクのハッシュ値の入力を受けて、チャンクのハッシュ値とハッシュテーブル111に格納されているハッシュ値との比較を行う。チャンクのハッシュ値がハッシュテーブル111に格納されていない場合には、比較処理部104は、該チャンクとハッシュ値とを保存処理部105に、該チャンクを送信部107に出力する。チャンクのハッシュ値がハッシュテーブル111に格納されている場合には、該チャンクは重複送信されることとなるので、比較処理部104は、後述の判定処理部106に判定処理を依頼する。
 判定処理部106は、比較処理部104からの依頼を受けて、重複送信のチャンクについて、該チャンクそのもの又は該チャンクのハッシュ値のいずれを送信するか、を判定する。具体的には、判定処理部106は、予め重複回数の閾値Mを保持しており、該当のチャンクの重複回数が閾値M以上であるか否か応じて、該チャンク又は該チャンクのハッシュ値のいずれかの送信を判定する。判定処理部106は、判定結果を比較処理部104に通知し、比較処理部104は判定結果に応じて、チャンク又は該チャンクのハッシュ値のいずれかを送信部107に通知する。また、判定処理部106は、ハッシュテーブル111の該当ハッシュ値の重複回数を更新する。
 保存処理部105は、ハッシュテーブル111にチャンクのハッシュ値のエントリがない場合に比較処理部104からチャンクとハッシュ値との入力を受け、チャンクとハッシュ値とをキャッシュ112に保存する。また、保存処理部105は、ハッシュテーブル111に該チャンクのハッシュ値のエントリを作成する。
 送信部107は、比較処理部104からチャンク又は該チャンクのハッシュ値の入力を受け、通信相手の装置にチャンク又は該チャンクのハッシュ値を送信する。例えば、上位アプリケーション109がTCPを用いるアプリケーションである場合には、送信部107は通信相手の装置との間にTCPセッションを確立し、該TCPセッションを用いてチャンク又は該チャンクのハッシュ値を送信する。送信部107は、「第1の送信部」の一例である。
 ハッシュテーブル111は、情報処理装置1から送信されたチャンクのハッシュ値及び情報処理装置1に届いたチャンクのハッシュ値と、該チャンクの重複回数とを保持するテーブルであり、ハッシュ値を検索のキーとする。ハッシュテーブル111のエントリは、保存処理部105によって登録される。重複回数の初期値は0であり、該当チャンクが受信又は送信される度に、判定処理部106によって1が加算されて更新される。ハッシュテーブル111に該当のハッシュ値のエントリが存在するということは、第1のモードで動作する情報処理装置1においては、該ハッシュ値と該ハッシュ値に対応するチャンクとがキャッシュ112に保存されていることを示す。
 キャッシュ112は、情報処理装置1が送信又は受信したチャンクとハッシュ値とを記憶する。キャッシュ112に記憶されるチャンクは、ハッシュ値によって特定される。キャッシュ112に記憶されたチャンクは、例えば、所定時間アクセスがない場合には、削除されるようにしてもよい。キャッシュ112は、「第1の記憶部」の一例である。
 次に、携帯端末2は、受信側の機能構成として、受信部201、復元処理部202、ハッシュ値算出部203、比較処理部204、保存処理部205、判定処理部206、データ結合部207、ネゴシエーション部208、上位送信部210、上位アプリケーション209、読込処理部213、ハッシュテーブル211、キャッシュ212を備える。上位アプリケーション209以外の機能構成は、携帯端末2のCPUが補助記憶装置に格納されている重複送信除去プログラムを実行することによって達成される機能構成である。また、重複送信除去プログラムが実行されることによって、携帯端末2の補助記憶装置の記憶領域にハッシュテーブル211、キャッシュ212用の領域が確保される。
 ネゴシエーション部208、保存処理部205、ハッシュテーブル211、キャッシュ212は、情報処理装置1のネゴシエーション部108、保存処理部105、ハッシュテーブル111、キャッシュ112と重複するので、説明を省略する。ただし、第2のモードで動作する携帯端末2においては、ハッシュテーブル211にハッシュ値のエントリが存在することは、該当チャンクの受信又は送信の履歴があることが示されるのであって、キャッシュ212に該当チャンクが保存されていることを示すものではない。キャッシュ212は、「第2の記憶部」の一例である。
 受信部201は、通信相手の装置からネットワークを通じてチャンク又はハッシュ値を受信する。受信部201は、受信したチャンク又はハッシュ値を復元処理部202に出力する。なお、受信部201は、例えば、上位アプリケーション209がTCPを用いる場合には、通信相手の装置とTCPセッションを確立し、該TCPセッションを通じてチャンク又はハッシュ値を受信する。
 復元処理部202は、受信部201からチャンク又はハッシュ値の入力を受ける。復元処理部202は、ハッシュ値の入力を受けた場合に、該ハッシュ値に対応するチャンクの取得を読込処理部213に依頼し、読込処理部213から該ハッシュ値に対応するチャンクを取得する。復元処理部202は、受信部201から入力されたチャンク又は読込処理部213から取得したチャンクをハッシュ値算出部203に出力する。
 読込処理部213は、復元処理部202からの依頼を受けて、該当のハッシュ値に対応するチャンクをキャッシュ212から取得し、復元処理部202に出力する。
 ハッシュ値算出部203は、復元処理部202からチャンクの入力を受け、該チャンクのハッシュ値を算出する。ハッシュ値算出部203は、通信相手と共通の方式で入力されたチャンクからハッシュ値を算出する。ハッシュ値算出部203は、チャンクと算出したハッシュ値とを比較処理部204に出力する。
 比較処理部204は、ハッシュ値算出部203からチャンクとハッシュ値との入力を受け、ハッシュテーブル211を該ハッシュ値で検索する。ハッシュテーブル211に入力されたハッシュ値のエントリがない場合には、比較処理部204は、該ハッシュ値を保存処理部205に出力する。保存処理部205は、比較処理部204からハッシュ値を受信すると、該ハッシュ値のエントリをハッシュテーブル211に登録し、該ハッシュ値をキャッシュ212に保存する。
 ハッシュテーブル211に入力されたハッシュ値のエントリがある場合には、比較処理部204は、判定処理部206に受信チャンクの保存の判定を依頼する。また、比較処理部204は、チャンクをデータ結合部207に出力する。
 判定処理部206は、比較処理部204からの依頼を受け、該チャンクそのもののキャッシュ212への保存を判定する。具体的には、判定処理部206は、ハッシュテーブル211からチャンクの重複回数を取得する。チャンクの重複回数が閾値N未満又は閾値Nより大きい場合には、判定処理部206は、ハッシュテーブル211の該当エントリの重複回数を1加算して更新する。
 チャンクの重複回数が閾値Nである場合には、判定処理部206は、該チャンクの保存を判定する。判定処理部206は、チャンクの保存を保存処理部205に通知し、保存処理部205は、判定処理部206からチャンクの保存の通知を受けると、該当のチャンクをキャッシュ212に保存する。保存処理部205は、「保存部」の一例である。
 チャンクの重複回数の閾値Nは、送信側である情報処理装置1の判定処理部106のハッシュ値の送信の判定に用いられる閾値Mよりも小さい値に設定される(N<M)。ハッシュ値からチャンクが復元されるので、送信側の情報処理装置1からのハッシュ値の送信に先立って、受信側の携帯端末2がチャンクを保存するためである。
 データ結合部207は、比較処理部204からチャンクの入力を受け、複数のチャンクを結合して元のデータを取得する。結合するチャンクの数は固定されていてもよいし、例えば、携帯端末2のCPU負荷に応じて変動してもよい。取得されたデータは、上位送信部210に出力される。
 上位送信部210は、データ結合部207からデータの入力を受け、該データをデータの送信先となる上位アプリケーション209に出力し、該アプリケーションのセッションを終端する。上位送信部210は、IPアドレスとポート番号との組み合わせであるソケットを用いてデータの宛先である上位アプリケーション209と通信を行う。そのため、上位送信部210は、ソケットからアプリケーションを識別可能である。
 図8は、携帯端末2から情報処理装置1へデータが送信される場合の情報処理装置1と携帯端末2との機能構成の一例を示す図である。携帯端末2は、送信側の機能構成として、上位受信部214、データ分割部215、ハッシュ値算出部203、比較処理部204、判定処理部206、保存処理部205、送信部216、上位アプリケーション209、ネゴシエーション部208、ハッシュテーブル211、キャッシュ212を備える。上位アプリケーション209以外の機能構成は、携帯端末2のCPUが補助記憶装置に格納されている重複送信除去プログラムを実行することによって達成される機能構成である。図8では、携帯端末2の受信側の機能構成と同様のものに対しては、図7と同じ符号が付されている。
 上位受信部214、データ分割部215、ハッシュ値算出部203、送信部216の処理は、情報処理装置1の送信側の機能構成である、上位受信部101、データ分割部102、ハッシュ値算出部103、送信部107と同様であるため、説明を省略する。送信部216は、「送信部」の一例である。
 比較処理部204は、ハッシュ値算出部203からチャンクのハッシュ値の入力を受け、該ハッシュ値でハッシュテーブル211を検索する。ハッシュテーブル211にチャンクのハッシュ値に該当するエントリがある場合には、比較処理部204は、該ハッシュ値を送信部216に出力するとともに、判定処理部206に該チャンクの保存の判定を依頼する。ハッシュテーブル211にチャンクのハッシュ値に該当するエントリがない場合には、比較処理部204は、該チャンクのハッシュ値を保存処理部205に、該チャンクを送信部216に出力する。この場合、保存処理部205は、該ハッシュ値をキャッシュ212に保存し、ハッシュテーブル211に該ハッシュ値のエントリを登録する。
 判定処理部206は、比較処理部204からの依頼を受け、チャンクの保存の判定を行う。具体的には、判定処理部206は、ハッシュテーブル211から該当のチャンクの重複回数を取得し、重複回数が閾値N未満又は閾値Nより大きい場合には、該当のハッシュテーブル211のエントリの重複回数を更新する。該重複回数が閾値Nである場合には、判定処理部206は、該当のチャンクの保存を判定し、該当のチャンクの保存の通知を保存処理部205に出力する。保存処理部205は、判定処理部206からチャンクの保存の通知を受け、該当のチャンクをキャッシュ212に保存する。また、この場合にも、判定処理部206は、該当のハッシュテーブル211のエントリの重複回数を更新する。
 なお、判定処理部206がチャンクの保存を判定するために用いる閾値Nは、携帯端末2が受信側のときのチャンクの保存の判定に用いられる閾値Nと同じものである。
 次に、受信側の情報処理装置1は、受信側の機能構成として、受信部113、復元処理部114、ハッシュ値算出部103、比較処理部104、判定処理部106、データ結合部115、上位送信部116、読込処理部117、保存処理部105、ネゴシエーション部108、上位アプリケーション109、ハッシュテーブル111、キャッシュ112を備える。上位アプリケーション109以外の機能構成は、CPU 11が補助記憶装置15に格納されている重複送信除去プログラムを実行することによって達成される機能構成である。図8では、情報処理装置1の送信側の機能構成と同様のものに対しては、図7と同じ符号が付されている。
 受信部113、復元処理部114、ハッシュ値算出部103、読込処理部117、データ結合部115、上位送信部116の処理は、携帯端末2の受信側の機能構成の受信部201、復元処理部202、ハッシュ値算出部203、読込処理部213、データ結合部207、上位送信部210と同様である。
 比較処理部104は、ハッシュ値算出部103からハッシュ値の入力を受けて、該ハッシュ値でハッシュテーブル111を検索する。ハッシュテーブル111にチャンクのハッシュ値に該当するエントリがある場合には、比較処理部104は、該ハッシュ値を判定処理部106に出力する。判定処理部106は、比較処理部104からハッシュ値の入力を受け、該ハッシュ値に該当するハッシュテーブル111のエントリの重複回数を1加算して更新する。
 チャンクのハッシュ値がハッシュテーブル111に格納されていない場合には、比較処理部104は、該チャンクとハッシュ値とを保存処理部105に出力する。保存処理部105は、比較処理部104からチャンクとハッシュ値との入力を受け、該チャンクとハッシュ値とをキャッシュ112に格納し、該ハッシュ値のエントリとハッシュテーブル111に登録する。比較処理部104は、ハッシュ値によるハッシュテーブル111の検索が終了すると、チャンクをデータ結合部115に出力する。
 <処理の流れ>
 図9は、情報処理装置1のネゴシエーション部108及び携帯端末2のネゴシエーション部208の処理のフローチャートの一例を示す図である。両者の処理は同様であるが、便宜上、図9では、情報処理装置1のネゴシエーション部108を主体として説明する。
 図9に示されるフローチャートは、例えば、装置の起動、上位アプリケーション109からの送信要求の受信を契機に開始される。
 OP1では、ネゴシエーション部108は、キャッシュ112として利用可能な記憶容量V1を算出する。次に処理がOP2に進む。
 OP2では、ネゴシエーション部108は、キャッシュ112として利用可能な記憶容量V1を通信相手の装置に通知する。次に処理がOP3に進む。
 OP3では、ネゴシエーション部108は、記憶容量V1の通知後所定時間経過するまでの間に通信相手の装置からの応答を待機する。通信相手の装置から所定時間内に応答がある場合には(OP3:YES)、処理がOP6に進む。所定時間内に通信相手の装置から応答がない場合には(OP3:NO)、処理がOP4に進む。なお、通信相手の装置からの応答には、該通信相手の装置のキャッシュとして利用可能な記憶容量V2が含まれる。
 OP4では、ネゴシエーション部108は、他の装置から該他の装置のキャッシュとして利用可能な記憶容量V2の通知の受信の待機状態となる。OP4でネゴシエーション部108が受信する通知は、OP2でネゴシエーション部108が通信相手の装置に送信する通知と同種のものである。他の装置からキャッシュとして利用可能な記憶容量V2の通知を受信した場合には(OP4:YES)、処理がOP5に進む。
 OP5では、ネゴシエーション部108は、自装置の記憶容量V1と、通知された通信相手の装置の記憶容量V2のうちの小さい方を、該通信相手の装置に応答として通知する。次に処理がOP6に進む。
 OP6では、ネゴシエーション部108は、自装置の記憶容量V1の方が通知された通信相手の記憶容量V2よりも大きいか否かを判定する。自装置の記憶容量V1の方が大きい場合には(OP6:YES)、処理がOP7に進む。自装置の記憶容量V1が通信相手の装置の記憶容量V2以下の場合には(OP6:NO)、処理がOP8に進む。
 OP7では、ネゴシエーション部108は、自装置の記憶容量V1の方が大きいので、第1のモードを動作モードとして選択する。その後、図9に示される処理が終了する。
 OP8では、ネゴシエーション部108は、自装置の記憶容量V1が通信相手の装置の記憶容量V2以下であるので、第2のモードを動作モードとして選択する。その後、図9に示される処理が終了する。
 図9に示される処理は一例であって、ネゴシエーション部108の処理はこれに限定されない。自装置の記憶容量V1と通信相手の装置の記憶容量V2とが同じである場合には、例えば、装置の固有識別情報や装置の種類等の情報をさらに交換し、これらの情報に基づいて、動作モードが決定されてもよい。
 図10は、第1のモードで動作する装置の送信処理のフローチャートの一例である。図10では、第1のモードで動作する装置として情報処理装置1を主体に説明する。図10に示される処理は、ネゴシエーション部108によって動作モードが第1のモードに決定され、情報処理装置1の上位アプリケーション109から送信要求が通知されると開始される。なお、第1実施形態では、図10に示される処理主体の実体はCPU 11であるが、便宜上、各処理の該当機能構成を主体として説明する。
 OP11では、上位受信部101が送信対象のデータを上位アプリケーション109から取得する。次に処理がOP12に進む。
 OP12では、データ分割部102が送信対象のデータを複数のチャンクに分割する。次に処理がOP13に進む。
 OP13では、ハッシュ値算出部103が、チャンクからハッシュ値を算出する。次に処理がOP14に進む。
 OP14では、比較処理部104が、チャンクから算出されたハッシュ値でハッシュテーブル111を検索し、該ハッシュ値のエントリがハッシュテーブル111にあるか否かを判定する。ハッシュテーブル111にハッシュ値のエントリがあるか否かは、該ハッシュ値がキャッシュ112に保存されているか否かを示す。チャンクから算出されたハッシュ値のエントリがハッシュテーブル111にある場合には(OP14:YES)、処理がOP16に進む。チャンクから算出されたハッシュ値のエントリがハッシュテーブル111にない場合には(OP14:NO)、処理がOP15に進む。
 OP15では、チャンクから算出されたハッシュ値のエントリがハッシュテーブル111にないので、保存処理部105は、該チャンクとハッシュ値とをキャッシュ112に保存する。また、保存処理部105は、該ハッシュ値のエントリをハッシュテーブル111に登録する。登録された該ハッシュ値のエントリの重複回数は、初期値の0である。次に処理がOP19に進む。
 OP16では、チャンクから算出されたハッシュ値のエントリがハッシュテーブル111にあるので、判定処理部106は、該ハッシュ値のハッシュテーブル111のエントリの重複回数を1加算して更新する。次に処理がOP17に進む。
 OP17では、判定処理部106は、該当のハッシュ値の重複回数が閾値M以上であるか否かを判定する。該当のハッシュ値の重複回数が閾値M以上である場合には(OP17:YES)、処理がOP18に進む。該当のハッシュ値の重複回数が閾値M未満である場合には(OP17:NO)、処理がOP19に進む。
 OP18では、該当のハッシュ値の重複回数が閾値M以上であるので、判定処理部106は、該当のチャンクのハッシュ値の送信を判定し、送信部107は該当のチャンクのハッシュ値を通信相手の装置に送信する。その後、図10に示される処理が終了する。
 OP19では、該当のハッシュ値の重複回数が閾値M未満、又は、該当のハッシュ値のエントリがハッシュテーブル111にないので、判定処理部106は、該当のチャンクの送信を判定し、送信部107は、該当のチャンクを通信相手に送信する。その後、図10に示される処理が終了する。
 図11は、第1のモードで動作する装置の受信処理のフローチャートの一例である。図11では、第1のモードで動作する装置として情報処理装置1を主体に説明する。図11に示される処理は、ネゴシエーション部108によって動作モードが第1のモードに決定され、ネットワーク経由で通信相手の装置からデータを受信すると開始される。なお、第1実施形態では、図11に示される処理主体の実体はCPU 11であるが、便宜上、各処理の該当機能構成を主体として説明する。
 OP21では、復元処理部114は、受信データがチャンクであるか否かを判定する。受信データがチャンクであるか否かは、例えば、受信データのサイズから判定可能である。受信データがチャンクである場合には(OP21:YES)、処理がOP22に進む。受信データがチャンクでない場合には(OP21:NO)、処理がOP28に進む。
 OP22では、受信データがチャンクであるので、ハッシュ値算出部103は、チャンクのハッシュ値を算出する。次に処理がOP23に進む。
 OP23では、比較処理部104は、チャンクから算出されたハッシュ値でハッシュテーブル111を検索し、該ハッシュ値のエントリがハッシュテーブル111にあるか否かを判定する。チャンクから算出されたハッシュ値のエントリがハッシュテーブル111にある場合には(OP23:YES)、処理がOP25に進む。チャンクから算出されたハッシュ値のエントリがハッシュテーブル111にない場合には(OP23:NO)、処理がOP24に進む。
 OP24では、チャンクから算出されたハッシュ値のエントリがハッシュテーブル111にないので、保存処理部105は、該チャンクとハッシュ値とをキャッシュ112に保存する。また、保存処理部105は、該ハッシュ値のエントリをハッシュテーブル111に登録する。次に処理がOP26に進む。
 OP25では、チャンクから算出されたハッシュ値のエントリがハッシュテーブル111にあるので、判定処理部106は、該当のハッシュ値のハッシュテーブル111のエントリの重複回数を1加算して更新する。次に処理がOP26に進む。
 OP26では、データ結合部115は、所定数のチャンクを結合し、データを復元する。次に処理がOP27に進む。
 OP27では、上位送信部116は、上位アプリケーション109に復元されたデータを送信する。その後、図11に示される処理が終了する。
 OP28では、復元処理部114は、受信データがハッシュ値であるか否かを判定する。受信データがハッシュ値である場合には(OP28:YES)、処理がOP29に進む。受信データがハッシュ値でない場合には(OP28:NO)、図11に示される処理が終了する。
 OP29では、受信データがハッシュ値であるので、復元処理部114は、キャッシュ112から該ハッシュ値に対応するチャンクを取得する。次に処理がOP25に進む。
 図11に示される処理では、受信データがチャンクであり、該チャンクのハッシュ値が保存されている場合には、重複回数を更新するが、第1実施形態の情報処理システム100では、通常発生しない事象と考えられるので、エラーとして処理を終了させてもよい。
 図12は、第2のモードで動作する装置の受信処理のフローチャートの一例である。図12では、第2のモードで動作する装置として携帯端末2を主体に説明する。図12に示される処理は、ネゴシエーション部208によって携帯端末2の動作モードが第2のモードに決定され、ネットワーク経由で通信相手の装置からデータを受信すると開始される。なお、第1実施形態では、図12に示される処理主体の実体はCPUであるが、便宜上、各処理の該当機能構成を主体として説明する。
 OP31では、復元処理部202は、受信データがチャンクであるか否かを判定する。受信データがチャンクである場合には(OP31:YES)、処理がOP32に進む。受信データがチャンクでない場合には(OP31:NO)、処理がOP40に進む。
 OP32では、受信データがチャンクであるので、ハッシュ値算出部203は、チャンクのハッシュ値を算出する。次に処理がOP33に進む。
 OP33では、比較処理部204は、チャンクから算出されたハッシュ値でハッシュテーブル211を検索し、該ハッシュ値のエントリがハッシュテーブル211にあるか否かを判定する。ハッシュテーブル211にハッシュ値のエントリがあることは、キャッシュ212に該ハッシュ値が保存されていることを示す。チャンクから算出されたハッシュ値のエントリがハッシュテーブル211にある場合には(OP33:YES)、処理がOP34に進む。チャンクから算出されたハッシュ値のエントリがハッシュテーブル211にない場合には(OP33:NO)、処理がOP37に進む。
 OP34では、チャンクから算出されたハッシュ値のエントリがハッシュテーブル211にあるので、判定処理部206は、該ハッシュ値のハッシュテーブル211のエントリ内の重複回数を1加算して更新する。次に処理がOP35に進む。
 OP35では、判定処理部206は、該ハッシュ値の重複回数が閾値N(N<M)であるか否かを判定する。ハッシュ値の重複回数が閾値Nである場合には(OP35:YES)、処理がOP36に進む。ハッシュ値の重複回数が閾値N未満又は閾値Nより大きい場合には(OP35:NO)、処理がOP38に進む。
 OP36では、該ハッシュ値の重複回数が閾値Nと同じ値であるので、保存処理部205は、該チャンクとハッシュ値とをキャッシュ212に保存する。次に処理がOP38に進む。
 OP37では、算出されたハッシュ値のエントリがハッシュテーブル211にないので、保存処理部205は、該ハッシュ値をキャッシュ212に保存し、該ハッシュ値のエントリをハッシュテーブル211に登録する。次に処理がOP38に進む。
 OP38では、データ結合部207は、所定数のチャンクを結合し、データを復元する。次に処理がOP39に進む。
 OP39では、上位送信部210は、上位アプリケーション209に復元されたデータを送信する。その後、図12に示される処理が終了する。
 OP40では、復元処理部202は、受信データがハッシュ値であるか否かを判定する。受信データがハッシュ値である場合には(OP40:YES)、処理がOP41に進む。受信データがハッシュ値でない場合には(OP40:NO)、図12に示される処理が終了する。
 OP41では、受信データがハッシュ値であるので、復元処理部202は、キャッシュ212から該ハッシュ値に対応するチャンクを取得する。次に処理がOP42に進む。
 OP42では、判定処理部206は、該当のハッシュ値のハッシュテーブル211のエントリの重複回数を1加算して更新する。次に処理がOP38に進む。
 なお、ハッシュ値の重複回数がN回より大きい場合には、保存処理部205は、既に保存されているチャンクを上書き保存してもよい。また、OP35の処理の前に、判定処理部206は、該当のチャンクがキャッシュ212に保存されているか否かを判定してもよい。この場合には、該当のチャンクがキャッシュ212に保存されている場合には、処理がOP38に進み、該当のチャンクがキャッシュ212に保存されていない場合には、処理がOP35に進む。
 図13は、第2のモードで動作する装置の送信処理のフローチャートの一例である。図13では、第2のモードで動作する装置として携帯端末2を主体に説明する。図13に示される処理は、ネゴシエーション部208によって動作モードが第2のモードに決定され、携帯端末2の上位アプリケーション209から送信要求が通知されると開始される。なお、第1実施形態では、図13に示される処理主体の実体はCPUであるが、便宜上、各処理の該当機能構成を主体として説明する。
 OP51では、上位受信部214が送信対象のデータを上位アプリケーション209から取得する。次に処理がOP52に進む。
 OP52では、データ分割部215が送信対象のデータを複数のチャンクに分割する。次に処理がOP53に進む。
 OP53では、ハッシュ値算出部203が、チャンクからハッシュ値を算出する。次に処理がOP54に進む。
 OP54では、比較処理部204が、チャンクから算出されたハッシュ値でハッシュテーブル211を検索し、該ハッシュ値のエントリがハッシュテーブル211にあるか否かを判定する。チャンクから算出されたハッシュ値のエントリがハッシュテーブル211にある場合には(OP54:YES)、処理がOP55に進む。チャンクから算出されたハッシュ値のエントリがハッシュテーブル211にない場合には(OP54:NO)、処理がOP59に進む。
 OP55では、チャンクから算出されたハッシュ値のエントリがハッシュテーブル211にあるので、判定処理部206は、該当のハッシュ値のハッシュテーブル211のエントリの重複回数を1加算して更新する。次に処理がOP56に進む。
 OP56では、判定処理部206は、該当のハッシュ値の重複回数が閾値Nであるか否かを判定する。該当のハッシュ値の重複回数が閾値Nと同じである場合には(OP56:YES)、処理がOP57に進む。該当のハッシュ値の重複回数が閾値N未満又は閾値Nより大きい場合には(OP56:NO)、処理がOP58に進む。
 OP57では、該当のハッシュ値の重複回数が閾値Nであるので、判定処理部206は該当チャンクの保存を判定し、保存処理部205は、該当チャンクとハッシュ値とをキャッシュ212に保存する。次に処理がOP58に進む。
 OP58では、送信部216は該当のチャンクのハッシュ値を通信相手の装置に送信する。その後、図13に示される処理が終了する。
 OP59では、チャンクから算出されたハッシュ値のエントリがハッシュテーブル211にないので、保存処理部205は、該チャンクのハッシュ値をキャッシュ212に保存し、該チャンクのハッシュ値のエントリをハッシュテーブル211に登録する。次に処理がOP60に進む。
 OP60では、送信部216は、該当のチャンクを通信相手に送信する。その後、図13に示される処理が終了する。
 なお、OP56の処理の前に、判定処理部206は、該当のチャンクがキャッシュ212に保存されているか否かを判定してもよい。この場合には、該当のチャンクがキャッシュ212に保存されている場合には、処理がOP58に進み、該当のチャンクがキャッシュ212に保存されていない場合には、処理がOP56に進む。
 図14は、動作モードの選択の処理のシーケンスの一例を示す図である。S1では、携帯端末2が起動する。S2では、携帯端末2は、キャッシュ212として利用可能な記憶容量V12を算出し(図9、OP1)、該記憶容量V12を情報処理装置1に通知する。図14では、携帯端末2が記憶容量V12を通知した時点では情報処理装置1は起動しておらず、この後所定時間経過しても、該通知に対する応答がないものとする。
 S3では、情報処理装置1が起動し、携帯端末2に対する送信要求が発生する。S4では、情報処理装置1は、キャッシュ112として利用可能な記憶容量V11を算出する(図9、OP1)。S5では、情報処理装置1は、携帯端末2に記憶容量V11を通知する(図9、OP2)。
 S6では、携帯端末2は、情報処理装置1が送信した記憶容量V11の通知を受信し(図9、OP4:YES)、自装置の記憶容量V12の方が小さいことを判定する。S7では、携帯端末2は、応答として、小さい方の記憶容量である記憶容量V12を情報処理装置1に通知する(図9、OP5)。S8では、携帯端末2は、自装置の記憶容量V12が小さい方であるので、動作モードとして第2モードを選択する(図9、OP6:NO、OP8)。
 S8では、情報処理装置1は、携帯端末2から応答を受信し(図9、OP3:YES)、自装置の記憶容量V11の方が大きいので、動作モードとして第1モードを選択する(図9、OP6:YES、OP7)。
 <第1実施形態の作用効果>
 第1実施形態では、第2のモードで動作する通信装置は、重複回数がN回未満のチャンクについては、チャンクそのものは保存せずに、ハッシュ値を保存する。また、第1実施形態では、第1のモードで動作する通信装置は、送信又は受信の1回目からチャンクを保存する。
 そのため、第1実施形態では、第2のモードで動作する通信装置は、送信又は受信したことのあるチャンクについてはチャンクを保存していなくても、ハッシュ値を送信することができ、第1のモードで動作する通信装置へのデータ送信時に重複送信除去処理を実行することができる。これによって、重複送信除去処理の効率の低下を抑えながら、第2のモードで動作する通信装置のデータ保存によって用いられる記憶容量の消費を削減することができる。
 また、第1実施形態では、第2のモードで動作する通信装置は、重複回数がN回以上のチャンクについては、チャンクそのものも保存する。すなわち、第2のモードで動作する通信装置は、重複頻度の高いチャンクについてはチャンクそのものも保存する。そのため、該重複頻度の高いチャンクについては、第1のモードで動作する通信装置から第2の通信モードで動作する通信装置への重複送信除去処理を行うことができ、システム全体の重複送信除去処理の効率を向上させることができる。
 また、第1実施形態では、キャッシュとして用いられる記憶容量が大きい方の通信装置が第1の動作モードで動作し、キャッシュとして用いられる記憶容量が小さい方の通信装置が第2の動作モードで動作する。これによって、記憶容量の少ない方の通信装置のデータ保存に用いられるメモリの消費を低減させることができる。第1実施形態の通信システム100の実験の一例では、第2の通信モードで動作する通信装置のデータ保存のために用いられる記憶容量を80%削減する、という結果が得られている。
 <変形例>
 第1実施形態では、データの重複回数に基づいて重複頻度が判定され、第2のモードで動作する通信装置のチャンクの保存の判定、第1のモードで動作する通信装置のハッシュ値の送信の判定が行われる。第2のモードで動作する通信装置のチャンクの保存の判定、第1のモードで動作する通信装置のハッシュ値の送信の判定基準となる重複頻度は、データの重複回数に基づくものとは限られない。
 例えば、上記判定基準となる重複頻度は、データの優先度に基づいてもよい。例えば、データの優先度が高いほど重複頻度も高くなるように、データの優先度は設定される。データの優先度は、例えば、ファイル属性に基づいて、判定処理部106、206によって決定される。ファイル属性には、例えば、ファイル名、ファイル更新日時、ユーザの識別情報等がある。
 データの優先度がファイル名に基づいて決定される場合には、判定処理部106、206は、例えば、所定のキーワードがファイル名に含まれていれば優先度を所定値よりも高く設定する。所定のキーワードは、例えば、バージョン名、“重要”という文言である。
 データの優先度がファイル更新日時に基づいて決定される場合には、判定処理部106、206は、例えば、ファイルの更新日時が新しいほど優先度を高く設定する。
 データの優先度がファイルを作成又は更新したユーザの識別情報に基づく場合には、判定処理部106、206は、予め設定されている該ユーザの役職等の情報によって、優先度を決定する。
 なお、データの優先度は、複数のファイル属性の要素を組み合わせて設定されてもよい。また、データの優先度に基づいて、上記判定が行われる場合には、ハッシュテーブル111、211には、ハッシュ値とデータの優先度とが格納される。また、データの優先度が更新される場合には、第1実施形態において重複回数が更新されるタイミングと同じタイミングでデータの優先度が更新される。
 また、判定処理部106、206のデータの優先度のそれぞれの閾値は、第1のモードで動作する通信装置のハッシュ値の送信に先行して第2のモードで動作する装置のチャンクの保存が実行されるように設定される。
 上記判定がデータの優先度に基づいて行われる場合には、装置間のデータ送受信の実績が少なくても重複送信除去処理の実行が開始されるので、重複除去の効率を向上させることができる。
 また、第1実施形態では、上記判定の閾値M、Nは固定値であるが、閾値M、Nは、固定値でなくともよい。例えば、上記判定が、重複回数と各ファイルの要素(ファイル名、更新日時等)から優先度が決定される場合には、重複回数の増加に応じて、閾値M、Nの値が更新されてもよい。閾値M、Nが更新される場合には、優先度が更新されるタイミングで閾値M、Nが更新されるようにしてもよい。これによって、第2のモードで動作する通信装置のデータ保存をより柔軟に制御することができる。
 また、第1実施形態では、第1及び第2のモードで動作する通信装置のいずれも、チャンクの送信及び受信の双方において、チャンクの保存、チャンクの保存の判定、重複回数の更新等を行う。これに代えて、第1のモードで動作する通信装置から第2のモードで動作する通信装置へチャンクの送信を行う場合に限定して、チャンクの保存、チャンクの保存の判定や重複回数の更新等が行われるようにしてもよい。
 この場合には、第1のモードで動作する通信装置は、例えば、図11のOP22~OP25の処理を行わない。第2のモードで動作する通信装置は、例えば、図13のOP55~OP58、OP59の処理を行わない。
 <記録媒体>
 コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
 ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD-ROM、CD-R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(Read Only Memory)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コンピュータ等に固定された記録媒体としても利用可能である。
1   情報処理装置
2   携帯端末
11  CPU
12  主記憶装置
15  補助記憶装置
101、214 上位受信部
102、215 データ分割部
103、203 ハッシュ値算出部
104、204 比較処理部
105、205 保存処理部
106、206 判定処理部
107、216 送信部
108、208 ネゴシエーション部
109、209 上位アプリケーション
111、211 ハッシュテーブル
112、212 キャッシュ
113、201 受信部
114、202 復元処理部
115、207 データ結合部
116、210 上位送信部
117、213 読込処理部

Claims (9)

  1.  第1の通信装置と、前記第1の通信装置とデータの送受信を行う第2の通信装置とを含み、
     前記第1の通信装置は、
      前記データと、該データよりも小さいサイズである前記データの識別情報とを記憶する第1の記憶部、を備え、
     前記第2の通信装置は、
      前記データの重複頻度に応じて、前記データの識別情報、又は、前記データの識別情報と前記データ自体と、を記憶する第2の記憶部と、
     前記データに対する送信要求が発生した場合に、前記第2の記憶部に前記データの識別情報が格納されていれば、前記データの識別情報を前記第1の通信装置に送信する送信部と、
    を備える通信システム。
  2.  前記第2の通信装置は、
      前記データの重複頻度が所定閾値より低い場合に、前記データの識別情報を前記第2の記憶部に格納し、前記データの重複頻度が前記所定閾値以上の場合に、前記データと前記データの識別情報とを前記第2の記憶部に格納する保存部、
    をさらに備える請求項1に記載の通信システム。
  3.  前記第1の通信装置は、
      前記データの重複頻度が前記所定閾値より高い値である第1の閾値以上の場合に、前記データの識別情報を前記第2の通信装置に送信し、前記データの重複頻度が前記第1の閾値より低い場合に、前記データを前記第2の通信装置に送信する第1の送信部、
    をさらに備える請求項2に記載の通信システム。
  4.  前記データの重複頻度は、少なくとも前記第2の通信装置の前記データの受信回数に基づく、
    請求項2または3に記載の通信システム。
  5.  前記データの重複頻度は、前記データを含むファイル属性に基づく、
    請求項2又は3に記載の通信システム。
  6.  データの送受信を行う2台の通信装置はそれぞれ、
     自装置の記憶部の記憶容量を他の通信装置と交換し、前記自装置の記憶部の記憶容量が前記他の通信装置の記憶容量よりも大きい場合に前記第1の通信装置として動作することを判定し、前記自装置の記憶容量が前記他の通信装置の記憶容量よりも小さい場合に前記第2の通信装置として動作することを判定する動作判定部、
    を備える、
    請求項1から5のいずれか一項に記載の通信システム。
  7.  データと該データよりも小さいサイズである該データの識別情報とを記憶する他の通信装置と前記データの送受信を行う通信装置であって、
     前記データの重複頻度に応じて、前記データよりも小さいサイズである識別情報、又は、前記データの識別情報と前記データ自体と、を記憶する記憶部と、
     前記データに対する送信要求が発生した場合に、前記記憶部に前記データの識別情報が格納されていれば、前記データの識別情報を、前記他の通信装置に送信する送信部と、
    を備える通信装置。
  8.  第1の通信装置と、前記第1の通信装置とデータの送受信を行う第2の通信装置とを含む通信システムにおいて、
     前記第1の通信装置が、
      前記データと、該データよりも小さいサイズである前記データの識別情報とを第1の記憶部に記憶し、
     前記第2の通信装置が、
      前記データの重複頻度に応じて、前記データの識別情報、又は、前記データの識別情報と前記データ自体と、を第2の記憶部に記憶し、
     前記データに対する送信要求が発生した場合に、前記第2の記憶部に前記データの識別情報が格納されていれば、前記データの識別情報を前記第1の通信装置に送信する、
    情報処理方法。
  9.  第1の通信装置と、前記第1の通信装置とデータの送受信を行う第2の通信装置とを含む通信システムにおいて、
     前記第1の通信装置として動作するコンピュータに、
      前記データと、該データよりも小さいサイズである前記データの識別情報とを第1の記憶部に記憶させ、
     前記第2の通信装置として動作するコンピュータに、
      前記データの重複頻度に応じて、前記データの識別情報、又は、前記データの識別情報と前記データ自体と、を第2の記憶部に記憶させ、
     前記データに対する送信要求が発生した場合に、前記第2の記憶部に前記データの識別情報が格納されていれば、前記データの識別情報を前記第1の通信装置に送信させる、
    ための情報処理プログラム。
     
     
PCT/JP2015/054821 2015-02-20 2015-02-20 通信システム、通信装置、情報処理方法、及び、情報処理プログラム WO2016132538A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/054821 WO2016132538A1 (ja) 2015-02-20 2015-02-20 通信システム、通信装置、情報処理方法、及び、情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/054821 WO2016132538A1 (ja) 2015-02-20 2015-02-20 通信システム、通信装置、情報処理方法、及び、情報処理プログラム

Publications (1)

Publication Number Publication Date
WO2016132538A1 true WO2016132538A1 (ja) 2016-08-25

Family

ID=56692708

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/054821 WO2016132538A1 (ja) 2015-02-20 2015-02-20 通信システム、通信装置、情報処理方法、及び、情報処理プログラム

Country Status (1)

Country Link
WO (1) WO2016132538A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190340843A1 (en) * 2019-06-24 2019-11-07 Intel Corporation Methods, systems, articles of manufacture and apparatus to manage process excursions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010045262A1 (en) * 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
JP2011175421A (ja) * 2010-02-24 2011-09-08 Nec Corp ストレージシステム
JP2012094220A (ja) * 2010-10-28 2012-05-17 Internatl Business Mach Corp <Ibm> 書込みレコードの重複を排除する記憶装置、及びその書込み方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010045262A1 (en) * 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
JP2011175421A (ja) * 2010-02-24 2011-09-08 Nec Corp ストレージシステム
JP2012094220A (ja) * 2010-10-28 2012-05-17 Internatl Business Mach Corp <Ibm> 書込みレコードの重複を排除する記憶装置、及びその書込み方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIROAKI KAMEYAMA ET AL.: "WAN acceleration technology applicable to various network environments", DICOMO 2014 SYMPOSIUM RONBUNSHU, vol. 2014, no. 1, 2 July 2014 (2014-07-02), pages 1191 - 1196, ISSN: 1882-0840 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190340843A1 (en) * 2019-06-24 2019-11-07 Intel Corporation Methods, systems, articles of manufacture and apparatus to manage process excursions
US11755689B2 (en) * 2019-06-24 2023-09-12 Intel Corporation Methods, systems, articles of manufacture and apparatus to manage process excursions

Similar Documents

Publication Publication Date Title
US10185496B2 (en) System and apparatus for removing duplicate in data transmission
EP3376393A1 (en) Data storage method and apparatus
JP6254293B2 (ja) データ重複排除方法及びストレージアレイ
US20190014016A1 (en) Data acquisition device, data acquisition method and storage medium
CN109889588B (zh) 文件获取方法、装置、计算机设备和存储介质
WO2017097106A1 (zh) 一种文件差量的传输方法以及装置
US10637969B2 (en) Data transmission method and data transmission device
CN114039973A (zh) 文件的传输方法、设备以及存储介质
CN112579311A (zh) 访问固态硬盘的方法及存储设备
CN112835740A (zh) 用于管理数据备份的方法、电子设备和计算机程序产品
WO2016132538A1 (ja) 通信システム、通信装置、情報処理方法、及び、情報処理プログラム
JP5444728B2 (ja) ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム
US20180113874A1 (en) Information processing apparatus, information processing method and recording medium with information processing program
US10341467B2 (en) Network utilization improvement by data reduction based migration prioritization
JP2015201050A (ja) キャッシュ保存プログラム、情報処理装置およびキャッシュ保存方法
US10168909B1 (en) Compression hardware acceleration
JP7431098B2 (ja) 情報処理装置
CN114174978B (zh) 密钥可压缩加密的方法和系统
CN203720857U (zh) 一种具有数据压缩功能的读卡器
WO2012053152A1 (ja) ストレージシステム、データ管理装置、方法及びプログラム
PREDICTON DUPLICATON PREDICTON INFORMATION TRANSMION
JPWO2004068356A1 (ja) データ通信システムおよびデータ通信方法、データ通信プログラム
JP6344520B2 (ja) 通信装置、情報処理方法、及び、情報処理プログラム
JP6300497B2 (ja) 通信装置およびその制御方法
JP2017174265A (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: 15882640

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15882640

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP