WO2014155490A1 - Data transmission device, data transmission method, and program - Google Patents

Data transmission device, data transmission method, and program Download PDF

Info

Publication number
WO2014155490A1
WO2014155490A1 PCT/JP2013/058577 JP2013058577W WO2014155490A1 WO 2014155490 A1 WO2014155490 A1 WO 2014155490A1 JP 2013058577 W JP2013058577 W JP 2013058577W WO 2014155490 A1 WO2014155490 A1 WO 2014155490A1
Authority
WO
WIPO (PCT)
Prior art keywords
compression
data
time
transmission
parameter value
Prior art date
Application number
PCT/JP2013/058577
Other languages
French (fr)
Japanese (ja)
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/JP2013/058577 priority Critical patent/WO2014155490A1/en
Priority to TW102114764A priority patent/TW201438407A/en
Publication of WO2014155490A1 publication Critical patent/WO2014155490A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/607Selection between different types of compressors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Definitions

  • the present invention relates to a technology for compressing and transmitting data.
  • a transmission source device for example, a server device
  • compresses data using a predetermined compression algorithm By compressing data, the size of data to be transmitted can be reduced, and the time required for data transmission / reception can be shortened.
  • a problem occurs when the following situation occurs.
  • Patent Document 1 a technique for transmitting compressed data or non-compressed data
  • Patent Document 1 the communication performance and the computation performance of the transmission destination device are used as conditions when a compression algorithm is selected.
  • Patent Document 2 there is a technique for determining whether or not compression processing can be performed in a debug device according to the type of data to be transferred (data or instruction) and the calculation performance of the transfer source (server device) (for example, Patent Document 2). ).
  • Patent Document 1 it is necessary to prepare a plurality of pieces of data that have been subjected to a plurality of types of compression processing in advance in a transmission source device. For this reason, it cannot cope with an environment in which it is difficult to compress data in advance. For example, in an environment where data to be transmitted frequently changes or an environment in which software is frequently updated, the data to be transmitted is not uniquely determined, and it is difficult to compress the data in advance.
  • Patent Document 2 since it is assumed that one compression algorithm is used, it is not possible to change the compression algorithm in accordance with communication conditions. Also, communication performance when transmitting data and machine performance on the data receiving side are not considered.
  • the main object of the present invention is to solve the above-described problems, and comprehensively determine the conditions at the time of data transmission without preparing a plurality of compressed data by a plurality of compression algorithms in advance.
  • the main object is to select an optimum compression algorithm from among the compression algorithms and obtain a configuration for compressing data using the selected compression algorithm.
  • a data transmission apparatus is as follows.
  • a data transmitting device that transmits data compressed using any one of the plurality of compression algorithms to a data receiving device that supports a plurality of compression algorithms, Compression time influence parameter value that affects the compression time that is the time spent for data compression, and communication that affects the communication time that is the time spent from the transmission of the compressed data to the reception at the data receiving device
  • An influence parameter value acquisition unit that acquires a time influence parameter value and a decompression time influence parameter value that affects a decompression time that is a time spent for decompressing data after compression;
  • a compression algorithm For each, a compression time of transmission data to be transmitted to the data receiving device, a communication time of transmission data after compression, and a decompression time of transmission data after compression are calculated, and according to the calculation result, the plurality of compression algorithms.
  • a compression algorithm For each, a compression time of transmission data to be transmitted to the data receiving device, a communication time of transmission data after compression, and a decompression time of transmission data
  • the time spent for compression, the time spent for decompression, the time spent for communication of compressed data is calculated, the compression algorithm is selected from a plurality of compression algorithms according to the calculation result, and the selected compression algorithm Compress the transmitted data with. Therefore, it is possible to comprehensively determine the conditions at the time of data transmission and select an optimal compression algorithm from a plurality of compression algorithms. Further, it is not necessary to prepare a plurality of compressed data by a plurality of compression algorithms in advance.
  • FIG. 1 is a diagram illustrating a configuration example of a communication system according to Embodiment 1.
  • FIG. FIG. 4 is a flowchart showing an operation example according to the first embodiment.
  • FIG. 4 is a flowchart showing an operation example according to the first embodiment.
  • FIG. 6 is a diagram showing an example of a compression effect management table according to the first embodiment.
  • FIG. 4 is a diagram illustrating a configuration example of a communication system according to a second embodiment.
  • FIG. 9 is a flowchart showing an operation example according to the second embodiment.
  • FIG. 9 is a flowchart showing an operation example according to the second embodiment.
  • FIG. 9 shows a configuration example of a communication system according to a third embodiment.
  • FIG. 9 is a flowchart showing an operation example according to the third embodiment.
  • FIG. 9 is a flowchart showing an operation example according to the third embodiment.
  • FIG. 9 is a flowchart showing an operation example according to the third embodiment.
  • FIG. 9 is a flowchart showing an operation example according to the third embodiment.
  • FIG. 10 is a diagram for explaining an effect according to the third embodiment.
  • FIG. 4 is a diagram illustrating a hardware configuration example of a server device and a client device according to the first to third embodiments.
  • a compression algorithm is selected by comprehensively considering communication conditions such as data type (other than data and instructions), communication performance, calculation performance of server device and client device.
  • the structure to perform is demonstrated. More specifically, in Embodiments 1 to 3, a configuration that can reduce the total time of data compression time, data communication time, and data decompression time will be described.
  • the configurations shown in the first to third embodiments are particularly effective in an environment where the tendency of software to be transmitted in advance is determined. For example, software often includes not only instructions but also a plurality of types of data such as text files such as help files and instructions, and databases handled by the software.
  • the compression effect can be enhanced by individually selecting a compression algorithm corresponding to the data type for such a plurality of types of data.
  • FIG. 1 shows a configuration example of a communication system according to the present embodiment.
  • FIG. 1 shows a general client-server model to which TCP / IP (Transmission Control Protocol / Internet Protocol) is applied as an example.
  • TCP / IP Transmission Control Protocol / Internet Protocol
  • FIG. 1 shows an example in which data is differentially downloaded in order to update software in such a client-server model.
  • the arrows in FIG. 1 represent the data flow.
  • Server device 110 (hereinafter also referred to as server 110) is a computer that provides software.
  • the server device 110 includes a data transfer unit 111, a version management table storage unit 112, a transmission file list creation unit 113, a calculation performance acquisition unit 114, a data classification unit 115, a compression effect management table storage unit 116, a compression algorithm selection unit 117, a database. 118 and a data compression unit 119.
  • the server device 110 corresponds to an example of a data transmission device.
  • the client device 120 (hereinafter also referred to as a client 120) is a computer provided with software from the server device 110 and using the provided software.
  • the client device 120 includes a data transfer unit 121, a version acquisition unit 122, an arithmetic performance acquisition unit 123, a communication performance acquisition unit 124, a data decompression unit 125, and a data combination unit 126.
  • the client device 120 corresponds to an example of a data receiving device.
  • the server device 110 and the client device 120 are connected via a network 130.
  • the broken lines on the left and right of the network 130 represent the data correspondence between the server device 110 and the client device 120.
  • the client device 120 supports a plurality of compression algorithms.
  • the server apparatus 110 transmits data to the client apparatus 120, the server apparatus 110 selects the most efficient compression algorithm from among a plurality of compression algorithms, compresses the data using the selected compression algorithm, and stores the compressed data. Send to client device 120.
  • the server device 110 When selecting a compression algorithm, the server device 110 acquires a compression time influence parameter value that affects the compression time, a communication time influence parameter value that affects the communication time, and a decompression time influence parameter value that affects the decompression time.
  • the compression time is a time spent for data compression, and the server device 110 acquires, for example, a value of calculation performance of the server device 110 as a compression time influence parameter value.
  • the communication time is the time spent from the transmission of the compressed data to the reception by the client device 120.
  • the server device 110, as the communication time influence parameter value includes, for example, the server device 110, the client device 120, and the like. Get the value of communication performance between.
  • the decompression time is a time spent for decompressing the compressed data, and the server device 110 acquires, for example, a value of the computing performance of the client device 120 as the decompression time influence parameter value.
  • the server apparatus 110 uses the compression time influence parameter value, the communication time influence parameter value, the decompression time influence parameter value, and the compression performance value of each compression algorithm, for each compression algorithm.
  • a compression time of transmission data to be transmitted, a communication time of transmission data after compression, and a decompression time of transmission data after compression are calculated.
  • the server apparatus 110 selects an optimal compression algorithm from among a plurality of compression algorithms according to the calculation result, compresses transmission data using the selected compression algorithm, and transmits the compressed transmission data (compressed data). To the client device 120.
  • the data transfer unit 111 of the server 110 receives various parameter values (communication time influence parameter value and decompression time influence parameter value) for downloading from the client 120.
  • the data transfer unit 111 transmits to the client 120 information regarding the location of the data after decompressing the compressed data and the compressed data.
  • the data transfer unit 111 corresponds to an example of an influence parameter value acquisition unit and a transmission unit.
  • the version management table storage unit 112 stores a version management table.
  • the version management table is a table in which a correspondence relationship between a version and a module (program code) is defined for each version of software to be downloaded.
  • the transmission file list creation unit 113 refers to two version information (described later) acquired from the client 120 and a version management table in the version management table storage unit 112. Then, the transmission file list creation unit 113 creates file arrangement information in which a list of files that need to be transmitted and the arrangement positions (folder structure or directory structure) of these files when the software actually operates are recorded.
  • the two pieces of version information are information on the version of software that the client 120 currently has and information on the version to be updated that the client 120 requests to download. Then, the transmission file list creation unit 113 transmits the file arrangement information to the client 120 via the data transfer unit 111.
  • the calculation performance acquisition unit 114 acquires the calculation performance value (compression time effect parameter value) of the server 110.
  • the computing performance acquisition unit 114 corresponds to an example of an influence parameter value acquisition unit.
  • the data classification unit 115 obtains a list of files that need to be transmitted from the transmission file list creation unit 113 and classifies these files into a plurality according to the type of data.
  • the compression effect management table storage unit 116 stores a compression effect management table.
  • the compression effect management table is a correspondence table between compression algorithms and data types, and stores information related to compression effects when each type of data is compressed by each compression algorithm.
  • the compression rate, compression speed, and decompression speed of each compression algorithm are shown as the compression effect value of each compression algorithm.
  • the compression effect management table corresponds to an example of compression algorithm information
  • the compression effect management table storage unit 116 corresponds to an example of a compression algorithm information storage unit.
  • the compression algorithm selection unit 117 selects an optimal compression algorithm for each data. Specifically, the compression algorithm selection unit 117 acquires the compression effect value corresponding to the type of data from the compression effect management table, the acquired compression effect value, the communication performance value received from the client 120, and the calculation performance. A compression algorithm is selected for each data classified by the data classifying unit 115 using the value of the computing performance of the server 110 acquired by the acquiring unit 114 and the value of the computing performance of the client received from the client 120.
  • the database 118 stores all versions of modules.
  • the data compression unit 119 acquires data to be compressed from the database 118, compresses the data with the compression algorithm selected by the compression algorithm selection unit 117, and transmits the compressed data to the client 120 via the data transfer unit 111.
  • the data transfer unit 121 of the client 120 receives information on the location of the data after decompressing the compressed data and the compressed data from the server 110, and downloads various parameter values (communication time effect parameter value and decompression time effect parameter). Value) to the server 110.
  • the version acquisition unit 122 acquires the version of the software to be updated and the version of the software possessed by the client 120. Then, the version acquisition unit 122 transmits to the server 110 the version information of the version of the software that the client 120 currently has and the version information of the version to be updated that the client 120 requests to download via the data transfer unit 121. To do.
  • the calculation performance acquisition unit 123 acquires the calculation performance value of the client 120 and transmits the calculation performance value to the server 110 via the data transfer unit 121.
  • the communication performance acquisition unit 124 acquires a communication performance value between the client 120 and the server 110 and transmits the communication performance value to the server 110 via the data transfer unit 121.
  • the data decompression unit 125 decompresses the compressed data received from the server 110.
  • the data combining unit 126 arranges the data received from the server 110 at a predetermined arrangement position for each data type in accordance with the file arrangement information received from the server 110.
  • 2 and 3 are flowcharts showing an operation example of the server 110 and the client 120 according to the present embodiment.
  • the version acquisition unit 122 displays the version to be updated and the client 120.
  • the possessed software version is acquired (step S101).
  • the computing performance acquisition unit 123 of the client 120 acquires the clock frequency and usage rate of the CPU (Central Processing Unit) of the client 120 as the value of the computing performance (step S102).
  • CPU Central Processing Unit
  • the data transfer unit 121 of the client 120 transmits a download request including two pieces of version information indicating two versions of software and calculation performance information indicating the calculation performance value of the CPU to the server 110 (step S103). ).
  • the communication performance acquisition unit 124 starts time measurement using a timer (not shown).
  • the data transfer unit 111 of the server 110 receives a download request including two version information and calculation performance information, and transmits an ACK packet as a response to the download request to the client 120 (step S104).
  • the data transfer unit 121 of the client 120 receives the ACK packet, and the communication performance acquisition unit 124 measures the time from the packet transmission of step S103 to the reception of the ACK packet as a value of the communication performance, and RTT (Round Trip Time). ) Is calculated (step S105). Further, the communication performance acquisition unit 124 acquires the maximum value of WS (Window Size) from the setting value of TCP in the OS (Operating System) of the client 120 (Step S105).
  • WS Window Size
  • the data transfer unit 121 of the client 120 transmits RTT and WS to the server 110 (step S106).
  • the data transfer unit 111 receives RTT and WS (step S107).
  • the transmission file list creation unit 113 of the server 110 refers to the two version information and the version management table, and calculates the difference between the two versions. Thereby, the transmission file list creation unit 113 creates a list of files that need to be transmitted to the client 120 (step S108). In addition, the transmission file list creation unit 113 generates arrangement information of each file.
  • the data transfer unit 111 of the server 110 transmits the arrangement information of each file to the client 120 (step S109).
  • the data transfer unit 121 receives the arrangement information of each file (step S110).
  • the computing performance acquisition unit 114 acquires the clock frequency and usage rate of the CPU of the server 110 (step S111).
  • the data classification unit 115 of the server 110 classifies the files that need to be transmitted to the client 120 into a plurality of files according to the type of data (step S112).
  • the compression algorithm selection unit 117 of the server 110 selects a compression algorithm by referring to the compression effect management table for each type of data classified into plural in step S112 (step S113).
  • the data compression unit 119 of the server 110 takes out the data to be transmitted from the database 118 and compresses the data using the compression algorithm selected in step S113 (step S114).
  • the data transfer unit 111 of the server 110 transmits the data compressed in step S114 to the client 120 (step S115).
  • the data transfer unit 121 receives the compressed data (step S116).
  • Step S118 is executed when all types of data classified into a plurality of pieces at step S112 are received, and step S113 is executed when data that has not yet been received remains (step S117).
  • the data decompression unit 125 of the client 120 decompresses all the received compressed data (step S118).
  • the data combining unit 126 of the client 120 integrates the plurality of classified data according to the arrangement information received in step S112, and starts using the software (step S119).
  • the server 110 may determine the version of software that the client 120 has. In addition, the server 110 may determine the version of software that the client 120 requests to update. Note that the version of software that the client 120 requests to update is not always the latest version.
  • the version information can be acquired by either the client 120 or the server 110 because it does not significantly affect the performance.
  • differential download by software update is given as an example, but instead of differential download, the method shown in this embodiment is used when downloading one version of all software. Also good. In this case, it is only necessary to acquire one version to be downloaded.
  • the value of the performance is calculated from the clock frequency and usage rate of the CPU.
  • a memory usage rate or the like may be acquired and used.
  • the value of communication performance is calculated from the maximum values of RTT and WS.
  • WS changes depending on communication conditions, and using the maximum value may deteriorate the accuracy of calculating communication performance.
  • Other WS acquisition methods may be used to increase the accuracy of compression algorithm selection.
  • the appropriateness of the compression algorithm exists according to the contents of the data. Therefore, the data is classified into a plurality according to the type, and the compression algorithm is selected for each. For example, since the size of a text file after compression does not become very small even if the compression rate is increased, it is conceivable that compression is performed with emphasis on compression / decompression speed. On the other hand, since there is a trade-off between the compression rate and the compression / decompression speed of the software executable file, it is necessary to select a compression algorithm according to the conditions.
  • the data type, the communication performance value (transfer rate), and the computation performance values of the client 120 and the server 110 are used as input information.
  • the transfer rate can be obtained from RTT and WS.
  • the value of the calculation performance can be obtained from the CPU clock frequency and the usage rate.
  • the input information may be further increased to increase the accuracy of compression algorithm selection. Since the transfer speed and calculation performance (CPU usage rate) may change over time, it may be possible to remeasure each time one type of data transfer is completed. An example of remeasurement will be described in the second embodiment. Since it may not be possible to cope with changes if only a temporary value is determined, it is also possible to make a statistical measurement and determine an average.
  • the total time required for transfer of compressed data and compression / decompression is expressed by the following equation.
  • the communication term is obtained from the first term in the above equation, the compression time is obtained from the second term, and the decompression time is obtained from the third term.
  • the communication time, compression time and decompression time are calculated for each communication time compression algorithm, and the compression algorithm selection is optimized by selecting the compression algorithm that minimizes the total time. Since the compression rate, compression speed, and decompression speed are determined by the type of compression algorithm and the type of file, a correspondence table (compression effect management table) of the compression algorithm and data type as shown in FIG. 4 is prepared in advance. The compression rate, compression speed, and decompression speed are obtained from this correspondence table. In the example of FIG.
  • the compression algorithm selection unit 117 compares the 1 / transfer speed with the total time for each compression algorithm, One of the compression algorithms or no compression is selected.
  • step S117 since both the client 120 and the server 110 have file arrangement information, the client 120 and the server 110 determine that there is a file that has not been transferred without communication. can do.
  • the decompression method is determined from the extension of each compressed file and the data header.
  • the compression effect of each compression algorithm is defined for each data type, but the compression effect of each compression algorithm is defined without specifying the data type. You may make it do. That is, one compression effect may be defined for each compression algorithm.
  • Embodiment 2 an example in which a communication performance value and a calculation performance value are obtained again for each file type and used for selecting a compression algorithm will be described.
  • FIG. 5 shows a configuration example of a communication system according to the present embodiment.
  • the server device 210 (hereinafter also referred to as the server 210) is a computer that provides software
  • the client device 220 (hereinafter also referred to as the client 220) is a computer that uses software, and the server device 210, the client device 220, and the like. Are connected by a network 230.
  • the server 210 and the client 220 have the same components as the server 110 and the client 120 described in FIG.
  • a plurality of data is transmitted from server 210 to client 220 in a predetermined order.
  • the data decompression unit 225 acquires the computation performance in order to re-acquire the communication performance value and the computation performance value for each data type.
  • a performance value reacquisition command is issued to the unit 223 and the communication performance acquisition unit 224.
  • the computing performance acquisition unit 223 acquires a new computing performance value (CPU usage rate) of the client 220
  • the communication performance acquisition unit 224 acquires a new communication performance (WS).
  • the data transfer unit 211 acquires a new calculation performance value and a new communication performance value of the client 220 from the client 220, and the calculation performance acquisition unit 214 sets a new calculation performance value of the server 210. (CPU usage rate) is acquired.
  • the compression algorithm selection unit 217 transmits data from the data transfer unit 211, Based on the new computation performance value of the client 220, the new computation performance value of the server 210, and the new communication performance value, the compression time, communication time, and decompression time of the data to be transmitted next (next transmission data) And a compression algorithm used for compression of the next transmission data is selected from a plurality of compression algorithms according to the calculation result.
  • FIG. 6 shows processing after S109 of FIG. 2 is executed.
  • Steps S101 to S110 are as shown in FIG. 2, and description of the operations of steps S101 to S110 is omitted.
  • S211 and S212 are the same as S111 and S112 shown in FIG. In the present embodiment, it is assumed that the data to be transmitted to the client 220 is classified into data 1 and data 2 by the data classification in step S212.
  • a compression algorithm for data 1 is selected, data 1 is compressed, compressed data 1 is transmitted, and compressed data 1 is received and decompressed.
  • the client 220 and the server 210 re-acquire input information that may change over time. Specifically, CPU usage rates of WS (Window Size), client 220, and server 210 are acquired.
  • the compression algorithm selection unit 217 uses the newly acquired WS and the CPU usage rate of the client 220 and the server 210 to set the compression time, communication time, and decompression time for each compression algorithm as in the first embodiment. Calculate and select the compression algorithm with the least total time.
  • data 2 is compressed, compressed data 2 is transmitted, and compressed data 2 is received and decompressed.
  • the data combining unit 226 of the client 220 combines the decompressed data 1 and data 2.
  • the client 120 decompresses the compressed data after all the data has been received.
  • the client 220 decompresses the compressed data every time it receives each data. carry out. This is because the load on the CPU due to the data decompression process is also taken into consideration.
  • the communication performance value and the calculation performance value are re-acquired and used as an input for selecting the compression algorithm for data 2, so that a compression algorithm more suitable for the conditions at the time of communication can be obtained. You can choose.
  • FIG. 8 shows a configuration example of a communication system according to the present embodiment.
  • the server device 310 (hereinafter also referred to as the server 310) is a computer that provides software
  • the client device 320 (hereinafter also referred to as the client 320) is a computer that uses software, and the server device 310, the client device 320, and the like. Are connected by a network 330.
  • the server 310 and the client 320 have the same components as the server 110 and the client 120 described in FIG.
  • the difference from FIG. 1 is that the data transfer unit 311 and the data transfer unit 321 are set as a parallel execution block 340, and data transfer processing and processing other than data transfer processing are executed in parallel. Also in this embodiment, a plurality of data is transmitted from the server 310 to the client 320 in a predetermined order, but the compression algorithm selection unit 317 is transmitted next in parallel with the transmission of the compressed data by the data transfer unit 311. Select a compression algorithm used for compressing data (next transmission data). The data compression unit 319 also compresses the next transmission data using the compression algorithm selected by the compression algorithm selection unit 317 in parallel with the transmission of the compressed data by the data transfer unit 311.
  • FIG. 9 and FIG. 10 are flowcharts showing an operation example of the server 310 and the client 320 according to the present embodiment.
  • the server 310 can execute other processes in parallel while data is being transmitted or while waiting for data to be received from the client 320, the server 310 according to the third embodiment does not transmit or transmit compressed data. The processes are executed in parallel.
  • steps S301 to S303 are executed in the same manner as steps S101 to S103.
  • step S304 the server 310 receives the download request from the client 320, returns an ACK packet to the client 320, and does not wait for data reception from the client 320, so that the server 310 performs the subsequent processing in parallel. . That is, the processes in steps S305 to S307 and the processes in steps S308 to S310 are executed in parallel. And step S311 is performed at the stage where execution of both step S307 and step S310 is completed. Note that the contents of the processing of S304 to S312 are the same as those of S104 to S112. The only difference from the first embodiment is that S305 to S307 and S308 to S310 are performed in parallel.
  • step S313 the compression algorithm selection unit 317 selects a compression algorithm for data 1, and in step S314, the data compression unit 319 performs compression of data 1. Then, transmission of compressed data 1 in step S315 and data 2 in step S318 are performed. Processing after selection of the compression algorithm is executed in parallel. That is, even if it takes time to transmit the compressed data 1 in step S315, the compression of data 2 in step S319, the selection of the compression algorithm for data 3 in step S323, and the compression of data 3 in step 324 are also executed in parallel. .
  • the client 320 executes decompression of the compressed data 1 in step S317 and reception of the compressed data 2 in step S321 in parallel.
  • step S411 the data compression unit 319 executes three compression processes in parallel. After that, the data transfer unit 311 starts transmission in order from the data for which the compression processing has been completed, and on the client 320 side, the data decompression unit 325 decompresses in parallel from the data that has been received. In the example of FIGS. 11 and 12, the compression of the data 1 is completed first, and the compression of the data 3 is completed last.
  • FIG. 13 shows the execution time required for compression, transfer and decompression by the length of the arrow.
  • Each alphabet corresponds to a series of compression, transfer and decompression.
  • data compressed by compression A is transmitted by transfer A, and decompressed by decompression A.
  • Case 1 is an example in which compression, transfer, and decompression are sequentially performed together.
  • Case 2 is an example in which transfer and processing other than transfer are executed in parallel as described with reference to FIGS. Comparing Case 1 and Case 2, by executing processing other than transfer and transfer in parallel in Case 2, the execution time can be shortened by the amount indicated by (1) in the figure.
  • Case 3 is an example in which all of compression, transfer and decompression are executed in parallel by a multi-core CPU or the like (FIGS. 11 and 12).
  • compression A, compression B, and compression C can be executed in parallel.
  • transfer becomes a bottleneck, and it is expected that the execution time will be almost the same as in case 2.
  • the method of Case 3 is effective if it is a high-speed communication line in which transfer does not become a bottleneck.
  • the total time required for transfer of compressed data and compression / decompression in Case 3 is expressed by the following equation.
  • this equation is calculated for each compression algorithm, and the compression method that minimizes the total time is selected according to the type of data.
  • the number of classifications in the above formula is the number of types of data classified by the data classification unit 315.
  • the number of threads that can be occupied is the number that can be processed simultaneously, and is calculated by the number of threads that can be occupied by this system. Since the number of divisions or more cannot be executed in parallel, the number of occupying threads exceeding the number of divisions is not considered.
  • the time required for data transfer does not change, but the time required for data compression / decompression can be reduced relatively, and the total time Can be reduced as compared with the first and second embodiments.
  • the server 110 (210, 310) and the client 120 (220, 320) are computers, and each element of the server 110 (210, 310) and the client 120 (220, 320) can be realized by a program.
  • an arithmetic device 901, an external storage device 902, a main storage device 903, a communication device 904, and an input / output device 905 are connected to the bus. ing.
  • the arithmetic device 901 is a CPU (Central Processing Unit) that executes a program.
  • the external storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device.
  • the main storage device 903 is a RAM (Random Access Memory).
  • the communication device 904 corresponds to the physical layer of the data transfer units 111 (211 and 311) and the data transfer units 121 (221 and 321).
  • the input / output device 905 is, for example, a mouse, a keyboard, a display device, or the like.
  • the program is normally stored in the external storage device 902, and is loaded into the main storage device 903 and sequentially read into the arithmetic device 901 and executed.
  • the program is a program that realizes a function described as “ ⁇ unit” (excluding “ ⁇ storage unit”, the same applies hereinafter) shown in FIG.
  • an operating system (OS) is also stored in the external storage device 902. At least a part of the OS is loaded into the main storage device 903, and the arithmetic device 901 executes the OS while displaying “ ⁇ ” shown in FIG.
  • the program that realizes the function of “part” is executed.
  • data received from the communication destination device is stored in the main storage device 903.
  • the encryption key / decryption key, random number value, and parameter may be stored in the main storage device 903 as a file.
  • FIG. 14 is merely an example of the hardware configuration of the server 110 (210, 310) and the client 120 (220, 320), and the server 110 (210, 310) and the client 120 (220, 320). ) Is not limited to the configuration illustrated in FIG. 14, and may be another configuration.
  • the data transmission method according to the present invention can be realized by the procedure shown in the first to third embodiments.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A computation performance acquisition unit (114) acquires a compression time impact parameter value which has an impact upon a compression time. A data transfer unit (111) acquires a communication time impact parameter value which has an impact upon a communication time, and a decompression time impact parameter value which has an impact upon a decompression time. Using each parameter value and a value of a compression effect of each compression algorithm, a compression algorithm selection unit (117) computes, for each compression algorithm, a transmission data compression time, a compressed transmission data communication time, and a compressed transmission data decompression time, and, according to the results of the computation, selects an optimal compression algorithm from among a plurality of compression algorithms. A data compression unit (119) compresses the transmission data using the selected compression algorithm, and the data transfer unit (111) transmits the compressed transmission data to a client device (220).

Description

データ送信装置及びデータ送信方法及びプログラムData transmission apparatus, data transmission method, and program
 本発明は、データを圧縮して送信する技術に関する。 The present invention relates to a technology for compressing and transmitting data.
 サイズが大きいデータを送信する際は、送信元の装置(例えば、サーバ装置)が所定の圧縮アルゴリズムでデータを圧縮し、圧縮されたデータを送信することが一般的である。
 データを圧縮することによって送信するデータのサイズを小さくすることができ、データの送受信に要する時間を短縮することができる。
 しかし、常に同一の圧縮アルゴリズムでデータを圧縮すると、以下のような状況になった場合に問題が生じる。
 (圧縮・解凍に要する時間)+(圧縮した場合の通信時間)>(圧縮しない場合の転送時間)
When transmitting data having a large size, it is common that a transmission source device (for example, a server device) compresses data using a predetermined compression algorithm and transmits the compressed data.
By compressing data, the size of data to be transmitted can be reduced, and the time required for data transmission / reception can be shortened.
However, if data is always compressed with the same compression algorithm, a problem occurs when the following situation occurs.
(Time required for compression / decompression) + (Communication time when compressed)> (Transfer time when not compressed)
 上記のような状況では、圧縮した場合の合計時間が圧縮しない場合の合計時間よりも大きくなり、データを圧縮することによってダウンロードの性能が悪化する。
 このような問題に対して、通信時の条件に応じて圧縮の効果を予測することによって圧縮の実施の可否、または、圧縮アルゴリズムを自動的に決定する方式が考案されている。
In the situation as described above, the total time when compressed is greater than the total time when not compressed, and the download performance deteriorates by compressing the data.
In order to solve such a problem, a method has been devised in which whether or not compression can be performed or a compression algorithm is automatically determined by predicting the effect of compression in accordance with communication conditions.
 従来の方式としては、予め送信元の装置で複数の圧縮アルゴリズムを使用して送信対象のデータを圧縮した圧縮データを複数用意しておき、送信時に複数の圧縮データの中から条件に最も適した圧縮データまたは非圧縮のデータを送信する技術がある(例えば、特許文献1)。
 特許文献1では、通信性能と送信先の装置の演算性能を圧縮アルゴリズム選択時の条件としている。
 また、デバッグ装置において、転送する対象のデータの種類(データか命令か)と転送元(サーバ装置)の演算性能に応じて、圧縮処理の実施の可否を決める技術がある(例えば、特許文献2)。
As a conventional method, a plurality of compressed data obtained by compressing data to be transmitted using a plurality of compression algorithms in advance at the transmission source device is prepared, and the most suitable for the condition among the plurality of compressed data at the time of transmission There is a technique for transmitting compressed data or non-compressed data (for example, Patent Document 1).
In Patent Document 1, the communication performance and the computation performance of the transmission destination device are used as conditions when a compression algorithm is selected.
In addition, there is a technique for determining whether or not compression processing can be performed in a debug device according to the type of data to be transferred (data or instruction) and the calculation performance of the transfer source (server device) (for example, Patent Document 2). ).
特開2004-234539号公報JP 2004-234539 A 特開2008-176420号公報JP 2008-176420 A
 特許文献1では、予め複数種類の圧縮処理を施した複数のデータを送信元の装置で用意しておく必要がある。
 このため、予めデータを圧縮しておくことが難しいような環境には対応することができない。
 例えば、送信対象のデータが頻繁に変化するような環境や頻繁にソフトウェアのアップデートをするような環境では送信対象のデータが一意に決まらず、予めデータを圧縮しておくことが難しい。
In Patent Document 1, it is necessary to prepare a plurality of pieces of data that have been subjected to a plurality of types of compression processing in advance in a transmission source device.
For this reason, it cannot cope with an environment in which it is difficult to compress data in advance.
For example, in an environment where data to be transmitted frequently changes or an environment in which software is frequently updated, the data to be transmitted is not uniquely determined, and it is difficult to compress the data in advance.
 特許文献2では、1つの圧縮アルゴリズムを使用することを想定しているため、通信時の条件に応じて圧縮アルゴリズムを変更するということができない。
 また、データを送信する際の通信性能やデータを受信する側のマシン性能も考慮されていない。
In Patent Document 2, since it is assumed that one compression algorithm is used, it is not possible to change the compression algorithm in accordance with communication conditions.
Also, communication performance when transmitting data and machine performance on the data receiving side are not considered.
 本発明は、上記のような課題を解決することを主な目的とし、複数の圧縮アルゴリズムによる複数の圧縮データを予め用意することなく、データ送信時の条件を総合的に判断して、複数の圧縮アルゴリズムの中から最適な圧縮アルゴリズムを選択し、選択した圧縮アルゴリズムでデータを圧縮する構成を得ることを主な目的とする。 The main object of the present invention is to solve the above-described problems, and comprehensively determine the conditions at the time of data transmission without preparing a plurality of compressed data by a plurality of compression algorithms in advance. The main object is to select an optimum compression algorithm from among the compression algorithms and obtain a configuration for compressing data using the selected compression algorithm.
 本発明に係るデータ送信装置は、
 複数の圧縮アルゴリズムに対応したデータ受信装置に、前記複数の圧縮アルゴリズムのうちのいずれかの圧縮アルゴリズムを用いて圧縮されたデータを送信するデータ送信装置であって、
 データの圧縮に費やされる時間である圧縮時間に影響を与える圧縮時間影響パラメータ値と、圧縮後のデータの送信から前記データ受信装置での受信までに費やされる時間である通信時間に影響を与える通信時間影響パラメータ値と、圧縮後のデータの解凍に費やされる時間である解凍時間に影響を与える解凍時間影響パラメータ値とを取得する影響パラメータ値取得部と、
 前記影響パラメータ値取得部により取得された、前記圧縮時間影響パラメータ値と、前記通信時間影響パラメータ値と、前記解凍時間影響パラメータ値と、各圧縮アルゴリズムの圧縮効果の値とを用いて、圧縮アルゴリズムごとに、前記データ受信装置に送信する送信データの圧縮時間と圧縮後の送信データの通信時間と圧縮後の送信データの解凍時間とを算出し、算出結果に応じて、前記複数の圧縮アルゴリズムの中から、前記送信データの圧縮に用いられる圧縮アルゴリズムを選択する圧縮アルゴリズム選択部と、
 前記圧縮アルゴリズム選択部により選択された圧縮アルゴリズムを用いて前記送信データを圧縮するデータ圧縮部と、
 圧縮後の送信データを前記データ受信装置に送信する送信部とを有することを特徴とする。
A data transmission apparatus according to the present invention is as follows.
A data transmitting device that transmits data compressed using any one of the plurality of compression algorithms to a data receiving device that supports a plurality of compression algorithms,
Compression time influence parameter value that affects the compression time that is the time spent for data compression, and communication that affects the communication time that is the time spent from the transmission of the compressed data to the reception at the data receiving device An influence parameter value acquisition unit that acquires a time influence parameter value and a decompression time influence parameter value that affects a decompression time that is a time spent for decompressing data after compression;
Using the compression time influence parameter value, the communication time influence parameter value, the decompression time influence parameter value, and the compression effect value of each compression algorithm acquired by the influence parameter value acquisition unit, a compression algorithm For each, a compression time of transmission data to be transmitted to the data receiving device, a communication time of transmission data after compression, and a decompression time of transmission data after compression are calculated, and according to the calculation result, the plurality of compression algorithms. A compression algorithm selection unit for selecting a compression algorithm used for compression of the transmission data,
A data compression unit that compresses the transmission data using the compression algorithm selected by the compression algorithm selection unit;
And a transmission unit that transmits the compressed transmission data to the data receiving device.
 本発明によれば、圧縮に費やす時間、解凍に費やす時間、圧縮データの通信に費やす時間を算出し、算出結果に応じて、複数の圧縮アルゴリズムの中から圧縮アルゴリズムを選択し、選択した圧縮アルゴリズムで送信データを圧縮する。
 このため、データ送信時の条件を総合的に判断して、複数の圧縮アルゴリズムの中から最適な圧縮アルゴリズムを選択することができる。
 また、複数の圧縮アルゴリズムによる複数の圧縮データを予め用意する必要がない。
According to the present invention, the time spent for compression, the time spent for decompression, the time spent for communication of compressed data is calculated, the compression algorithm is selected from a plurality of compression algorithms according to the calculation result, and the selected compression algorithm Compress the transmitted data with.
Therefore, it is possible to comprehensively determine the conditions at the time of data transmission and select an optimal compression algorithm from a plurality of compression algorithms.
Further, it is not necessary to prepare a plurality of compressed data by a plurality of compression algorithms in advance.
実施の形態1に係る通信システムの構成例を示す図。1 is a diagram illustrating a configuration example of a communication system according to Embodiment 1. FIG. 実施の形態1に係る動作例を示すフローチャート図。FIG. 4 is a flowchart showing an operation example according to the first embodiment. 実施の形態1に係る動作例を示すフローチャート図。FIG. 4 is a flowchart showing an operation example according to the first embodiment. 実施の形態1に係る圧縮効果管理テーブルの例を示す図。FIG. 6 is a diagram showing an example of a compression effect management table according to the first embodiment. 実施の形態2に係る通信システムの構成例を示す図。FIG. 4 is a diagram illustrating a configuration example of a communication system according to a second embodiment. 実施の形態2に係る動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example according to the second embodiment. 実施の形態2に係る動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example according to the second embodiment. 実施の形態3に係る通信システムの構成例を示す図。FIG. 9 shows a configuration example of a communication system according to a third embodiment. 実施の形態3に係る動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example according to the third embodiment. 実施の形態3に係る動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example according to the third embodiment. 実施の形態3に係る動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example according to the third embodiment. 実施の形態3に係る動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example according to the third embodiment. 実施の形態3に係る効果を説明する図。FIG. 10 is a diagram for explaining an effect according to the third embodiment. 実施の形態1~3に係るサーバ装置及びクライアント装置のハードウェア構成例を示す図。FIG. 4 is a diagram illustrating a hardware configuration example of a server device and a client device according to the first to third embodiments.
 以下の実施の形態1~3では、データの種類(データと命令以外も想定)、通信性能、サーバ装置及びクライアント装置の演算性能といった、通信時の条件を総合的に考慮して圧縮アルゴリズムを選択する構成を説明する。
 より具体的には、実施の形態1~3では、データの圧縮に要する時間、データの通信に要する時間、データの解凍に要する時間の合計時間を短縮できる構成を説明する。
 実施の形態1~3に示す構成は、例えば、予め送信するソフトウェアの傾向が決まっているような環境において、特に効果を発揮する。
 例えば、ソフトウェアには命令だけではなく、ヘルプファイルや説明書といったテキストファイルやソフトウェアが取り扱うデータベースといった複数の種類のデータが含まれていることが多い。
 このような複数の種類のデータに対してデータの種類に応じた圧縮アルゴリズムをそれぞれ個別に選択することで圧縮の効果を高めることができる。
In the following first to third embodiments, a compression algorithm is selected by comprehensively considering communication conditions such as data type (other than data and instructions), communication performance, calculation performance of server device and client device. The structure to perform is demonstrated.
More specifically, in Embodiments 1 to 3, a configuration that can reduce the total time of data compression time, data communication time, and data decompression time will be described.
The configurations shown in the first to third embodiments are particularly effective in an environment where the tendency of software to be transmitted in advance is determined.
For example, software often includes not only instructions but also a plurality of types of data such as text files such as help files and instructions, and databases handled by the software.
The compression effect can be enhanced by individually selecting a compression algorithm corresponding to the data type for such a plurality of types of data.
 実施の形態1.
 図1は、本実施の形態に係る通信システムの構成例を示す。
 図1では、一例として、TCP/IP(Transmission Control Protocol/Internet Protocol)を適用した一般的なクライアント・サーバモデルを示している。
 そして、本実施の形態では、このようなクライアント・サーバモデルにおいて、ソフトウェアをアップデートするためにデータを差分ダウンロードする例を説明する。
 なお、図1の矢印はデータの流れを表している。
Embodiment 1 FIG.
FIG. 1 shows a configuration example of a communication system according to the present embodiment.
FIG. 1 shows a general client-server model to which TCP / IP (Transmission Control Protocol / Internet Protocol) is applied as an example.
In the present embodiment, an example in which data is differentially downloaded in order to update software in such a client-server model will be described.
The arrows in FIG. 1 represent the data flow.
 サーバ装置110(以下、サーバ110ともいう)は、ソフトウェアを提供するコンピュータである。
 サーバ装置110は、データ転送部111、バージョン管理テーブル記憶部112、送信ファイル一覧作成部113、演算性能取得部114、データ分類部115、圧縮効果管理テーブル記憶部116、圧縮アルゴリズム選択部117、データベース118、データ圧縮部119を持つ。
 サーバ装置110は、データ送信装置の例に相当する。
Server device 110 (hereinafter also referred to as server 110) is a computer that provides software.
The server device 110 includes a data transfer unit 111, a version management table storage unit 112, a transmission file list creation unit 113, a calculation performance acquisition unit 114, a data classification unit 115, a compression effect management table storage unit 116, a compression algorithm selection unit 117, a database. 118 and a data compression unit 119.
The server device 110 corresponds to an example of a data transmission device.
 クライアント装置120(以下、クライアント120ともいう)は、サーバ装置110からソフトウェアを提供され、提供されたソフトウェアを使用するコンピュータである。
 クライアント装置120は、データ転送部121、バージョン取得部122、演算性能取得部123、通信性能取得部124、データ解凍部125、データ結合部126を持つ。
 クライアント装置120は、データ受信装置の例に相当する。
The client device 120 (hereinafter also referred to as a client 120) is a computer provided with software from the server device 110 and using the provided software.
The client device 120 includes a data transfer unit 121, a version acquisition unit 122, an arithmetic performance acquisition unit 123, a communication performance acquisition unit 124, a data decompression unit 125, and a data combination unit 126.
The client device 120 corresponds to an example of a data receiving device.
 サーバ装置110とクライアント装置120は、ネットワーク130で接続されている。
 なお、図中でネットワーク130の左右に存在する破線は、サーバ装置110とクライアント装置120との間でのデータの対応関係を表している。
The server device 110 and the client device 120 are connected via a network 130.
In the figure, the broken lines on the left and right of the network 130 represent the data correspondence between the server device 110 and the client device 120.
 本実施の形態では、クライアント装置120は、複数の圧縮アルゴリズムに対応している。
 サーバ装置110は、クライアント装置120にデータを送信する際に、複数の圧縮アルゴリズムの中から最も効率の良い圧縮アルゴリズムを選択し、選択した圧縮アルゴリズムを用いてデータを圧縮し、圧縮後のデータをクライアント装置120に送信する。
In the present embodiment, the client device 120 supports a plurality of compression algorithms.
When the server apparatus 110 transmits data to the client apparatus 120, the server apparatus 110 selects the most efficient compression algorithm from among a plurality of compression algorithms, compresses the data using the selected compression algorithm, and stores the compressed data. Send to client device 120.
 サーバ装置110は、圧縮アルゴリズムの選択に際して、圧縮時間に影響を与える圧縮時間影響パラメータ値、通信時間に影響を与える通信時間影響パラメータ値、解凍時間に影響を与える解凍時間影響パラメータ値を取得する。
 圧縮時間とは、データの圧縮に費やされる時間であり、サーバ装置110は、圧縮時間影響パラメータ値として、例えば、サーバ装置110の演算性能の値を取得する。
 また、通信時間とは、圧縮後のデータの送信からクライアント装置120での受信までに費やされる時間であり、サーバ装置110は、通信時間影響パラメータ値として、例えば、サーバ装置110とクライアント装置120との間の通信性能の値を取得する。
 また、解凍時間とは、圧縮後のデータの解凍に費やされる時間であり、サーバ装置110は、解凍時間影響パラメータ値として、例えば、クライアント装置120の演算性能の値を取得する。
When selecting a compression algorithm, the server device 110 acquires a compression time influence parameter value that affects the compression time, a communication time influence parameter value that affects the communication time, and a decompression time influence parameter value that affects the decompression time.
The compression time is a time spent for data compression, and the server device 110 acquires, for example, a value of calculation performance of the server device 110 as a compression time influence parameter value.
The communication time is the time spent from the transmission of the compressed data to the reception by the client device 120. The server device 110, as the communication time influence parameter value, includes, for example, the server device 110, the client device 120, and the like. Get the value of communication performance between.
The decompression time is a time spent for decompressing the compressed data, and the server device 110 acquires, for example, a value of the computing performance of the client device 120 as the decompression time influence parameter value.
 そして、サーバ装置110は、圧縮時間影響パラメータ値と、通信時間影響パラメータ値と、解凍時間影響パラメータ値と、各圧縮アルゴリズムの圧縮性能の値とを用いて、圧縮アルゴリズムごとに、データ受信装置に送信する送信データの圧縮時間と圧縮後の送信データの通信時間と圧縮後の送信データの解凍時間とを算出する。
 そして、サーバ装置110は、算出結果に応じて、複数の圧縮アルゴリズムの中から、最適の圧縮アルゴリズムを選択し、選択した圧縮アルゴリズムを用いて送信データを圧縮し、圧縮後の送信データ(圧縮データという)をクライアント装置120に送信する。
Then, the server apparatus 110 uses the compression time influence parameter value, the communication time influence parameter value, the decompression time influence parameter value, and the compression performance value of each compression algorithm, for each compression algorithm. A compression time of transmission data to be transmitted, a communication time of transmission data after compression, and a decompression time of transmission data after compression are calculated.
Then, the server apparatus 110 selects an optimal compression algorithm from among a plurality of compression algorithms according to the calculation result, compresses transmission data using the selected compression algorithm, and transmits the compressed transmission data (compressed data). To the client device 120.
 図1において、サーバ110のデータ転送部111は、ダウンロードのための各種パラメータ値(通信時間影響パラメータ値と解凍時間影響パラメータ値)をクライアント120から受信する。
 また、データ転送部111は、圧縮データを解凍した後のデータの配置場所に関する情報と圧縮データをクライアント120に送信する。
 データ転送部111は、影響パラメータ値取得部及び送信部の例に相当する。
In FIG. 1, the data transfer unit 111 of the server 110 receives various parameter values (communication time influence parameter value and decompression time influence parameter value) for downloading from the client 120.
In addition, the data transfer unit 111 transmits to the client 120 information regarding the location of the data after decompressing the compressed data and the compressed data.
The data transfer unit 111 corresponds to an example of an influence parameter value acquisition unit and a transmission unit.
 バージョン管理テーブル記憶部112は、バージョン管理テーブルを記憶する。
 バージョン管理テーブルは、ダウンロードされるソフトウェアのバージョンごとに、バージョンとモジュール(プログラムコード)との対応関係が定義されたテーブルである。
The version management table storage unit 112 stores a version management table.
The version management table is a table in which a correspondence relationship between a version and a module (program code) is defined for each version of software to be downloaded.
 送信ファイル一覧作成部113は、クライアント120から取得した2つのバージョン情報(後述)とバージョン管理テーブル記憶部112内のバージョン管理テーブルとを参照する。
 そして、送信ファイル一覧作成部113は、送信が必要なファイルの一覧と実際にソフトウェアが動作する際のこれらのファイルの配置位置(フォルダ構造またはディレクトリ構造)を記録したファイルの配置情報を作成する。
 2つのバージョン情報とは、クライアント120が現状で所持しているソフトウェアのバージョンの情報とクライアント120がダウンロードを要求しているアップデート対象のバージョンの情報である。
 そして、送信ファイル一覧作成部113は、データ転送部111を介してファイルの配置情報をクライアント120に送信する。
The transmission file list creation unit 113 refers to two version information (described later) acquired from the client 120 and a version management table in the version management table storage unit 112.
Then, the transmission file list creation unit 113 creates file arrangement information in which a list of files that need to be transmitted and the arrangement positions (folder structure or directory structure) of these files when the software actually operates are recorded.
The two pieces of version information are information on the version of software that the client 120 currently has and information on the version to be updated that the client 120 requests to download.
Then, the transmission file list creation unit 113 transmits the file arrangement information to the client 120 via the data transfer unit 111.
 演算性能取得部114は、サーバ110の演算性能の値(圧縮時間影響パラメータ値)を取得する。
 演算性能取得部114は、影響パラメータ値取得部の例に相当する。
The calculation performance acquisition unit 114 acquires the calculation performance value (compression time effect parameter value) of the server 110.
The computing performance acquisition unit 114 corresponds to an example of an influence parameter value acquisition unit.
 データ分類部115は、送信ファイル一覧作成部113から送信が必要なファイルの一覧を得てデータの種類に応じてこれらのファイルを複数に分類する。 The data classification unit 115 obtains a list of files that need to be transmitted from the transmission file list creation unit 113 and classifies these files into a plurality according to the type of data.
 圧縮効果管理テーブル記憶部116は、圧縮効果管理テーブルを記憶している。
 圧縮効果管理テーブルは、圧縮アルゴリズムとデータの種類の対応表であり、それぞれの圧縮アルゴリズムで各種類のデータを圧縮した場合の圧縮効果に関する情報が格納されている。
 圧縮効果管理テーブルには、図4に例示するように、各圧縮アルゴリズムの圧縮効果の値として、各圧縮アルゴリズムの圧縮率と圧縮速度と解凍速度とが示されている。
 圧縮効果管理テーブルは、圧縮アルゴリズム情報の例に相当し、圧縮効果管理テーブル記憶部116は、圧縮アルゴリズム情報記憶部の例に相当する。
The compression effect management table storage unit 116 stores a compression effect management table.
The compression effect management table is a correspondence table between compression algorithms and data types, and stores information related to compression effects when each type of data is compressed by each compression algorithm.
In the compression effect management table, as illustrated in FIG. 4, the compression rate, compression speed, and decompression speed of each compression algorithm are shown as the compression effect value of each compression algorithm.
The compression effect management table corresponds to an example of compression algorithm information, and the compression effect management table storage unit 116 corresponds to an example of a compression algorithm information storage unit.
 圧縮アルゴリズム選択部117は、データごとに最適な圧縮アルゴリズムを選択する。
 具体的には、圧縮アルゴリズム選択部117は、圧縮効果管理テーブルからデータの種類に対応した圧縮効果の値を取得し、取得した圧縮効果の値、クライアント120から受信した通信性能の値、演算性能取得部114で取得したサーバ110の演算性能の値及びクライアント120から受信したクライアントの演算性能の値を用いて、データ分類部115で分類されたデータごとに圧縮アルゴリズムを選択する。
The compression algorithm selection unit 117 selects an optimal compression algorithm for each data.
Specifically, the compression algorithm selection unit 117 acquires the compression effect value corresponding to the type of data from the compression effect management table, the acquired compression effect value, the communication performance value received from the client 120, and the calculation performance. A compression algorithm is selected for each data classified by the data classifying unit 115 using the value of the computing performance of the server 110 acquired by the acquiring unit 114 and the value of the computing performance of the client received from the client 120.
 データベース118には、全バージョンのモジュールが格納されている。 The database 118 stores all versions of modules.
 データ圧縮部119は、データベース118から圧縮対象のデータを取得し、圧縮アルゴリズム選択部117によって選択された圧縮アルゴリズムでデータを圧縮し、データ転送部111を介して圧縮データをクライアント120に送信する。 The data compression unit 119 acquires data to be compressed from the database 118, compresses the data with the compression algorithm selected by the compression algorithm selection unit 117, and transmits the compressed data to the client 120 via the data transfer unit 111.
 クライアント120のデータ転送部121は、圧縮データを解凍した後のデータの配置場所の情報と圧縮データをサーバ110から受信し、ダウンロードのための各種パラメータ値(通信時間影響パラメータ値と解凍時間影響パラメータ値)をサーバ110に送信する。 The data transfer unit 121 of the client 120 receives information on the location of the data after decompressing the compressed data and the compressed data from the server 110, and downloads various parameter values (communication time effect parameter value and decompression time effect parameter). Value) to the server 110.
 バージョン取得部122は、アップデートする対象のソフトウェアのバージョンとクライアント120が所持しているソフトウェアのバージョンを取得する。
 そして、バージョン取得部122は、データ転送部121を介してクライアント120が現状で所持しているソフトウェアのバージョンのバージョン情報とクライアント120がダウンロードを要求するアップデート対象のバージョンのバージョン情報をサーバ110に送信する。
The version acquisition unit 122 acquires the version of the software to be updated and the version of the software possessed by the client 120.
Then, the version acquisition unit 122 transmits to the server 110 the version information of the version of the software that the client 120 currently has and the version information of the version to be updated that the client 120 requests to download via the data transfer unit 121. To do.
 演算性能取得部123は、クライアント120の演算性能の値を取得し、データ転送部121を介して演算性能の値をサーバ110に送信する。 The calculation performance acquisition unit 123 acquires the calculation performance value of the client 120 and transmits the calculation performance value to the server 110 via the data transfer unit 121.
 通信性能取得部124は、クライアント120とサーバ110の間の通信性能の値を取得し、データ転送部121を介して通信性能の値をサーバ110に送信する。 The communication performance acquisition unit 124 acquires a communication performance value between the client 120 and the server 110 and transmits the communication performance value to the server 110 via the data transfer unit 121.
 データ解凍部125は、サーバ110から受信した圧縮データを解凍する。 The data decompression unit 125 decompresses the compressed data received from the server 110.
 データ結合部126は、サーバ110から受信したファイルの配置情報に従って、サーバ110から受信したデータをデータの種類ごとに所定の配置位置に配置する。 The data combining unit 126 arranges the data received from the server 110 at a predetermined arrangement position for each data type in accordance with the file arrangement information received from the server 110.
 次に、本実施の形態に係るサーバ110とクライアント120の動作を説明する。
 図2及び図3は、本実施の形態に係るサーバ110とクライアント120の動作例を示すフローチャートである。
Next, operations of the server 110 and the client 120 according to the present embodiment will be described.
2 and 3 are flowcharts showing an operation example of the server 110 and the client 120 according to the present embodiment.
 図1には不図示の入力装置を介してユーザがクライアント120にアップデート対象のバージョンを指定してダウンロードの要求を出すと、クライアント120では、バージョン取得部122が、アップデート対象のバージョンとクライアント120が所持しているソフトウェアのバージョンを取得する(ステップS101)。 In FIG. 1, when a user issues a download request by specifying a version to be updated to the client 120 via an input device (not shown), in the client 120, the version acquisition unit 122 displays the version to be updated and the client 120. The possessed software version is acquired (step S101).
 次に、クライアント120の演算性能取得部123が、演算性能の値として、クライアント120のCPU(Central Processing Unit)のクロック周波数と使用率を取得する(ステップS102)。 Next, the computing performance acquisition unit 123 of the client 120 acquires the clock frequency and usage rate of the CPU (Central Processing Unit) of the client 120 as the value of the computing performance (step S102).
 次に、クライアント120のデータ転送部121が、ソフトウェアの2つのバージョンが示される2つのバージョン情報とCPUの演算性能値が示される演算性能情報が含まれるダウンロード要求をサーバ110に送信する(ステップS103)。
 なお、このとき、通信性能取得部124がタイマ(不図示)による時間計測を開始する。
Next, the data transfer unit 121 of the client 120 transmits a download request including two pieces of version information indicating two versions of software and calculation performance information indicating the calculation performance value of the CPU to the server 110 (step S103). ).
At this time, the communication performance acquisition unit 124 starts time measurement using a timer (not shown).
 サーバ110のデータ転送部111が、2つのバージョン情報、演算性能情報が含まれるダウンロード要求を受信し、ダウンロード要求に対する応答であるACKパケットをクライアント120に送信する(ステップS104)。 The data transfer unit 111 of the server 110 receives a download request including two version information and calculation performance information, and transmits an ACK packet as a response to the download request to the client 120 (step S104).
 クライアント120のデータ転送部121が、ACKパケットを受信し、通信性能取得部124が、通信性能の値として、ステップS103のパケット送信からACKパケットの受信までの時間を測定してRTT(Round Trip Time)を算出する(ステップS105)。
 また、通信性能取得部124は、クライアント120のOS(Operating System)におけるTCPの設定値からWS(Window Size)の最大値を取得する(ステップS105)。
The data transfer unit 121 of the client 120 receives the ACK packet, and the communication performance acquisition unit 124 measures the time from the packet transmission of step S103 to the reception of the ACK packet as a value of the communication performance, and RTT (Round Trip Time). ) Is calculated (step S105).
Further, the communication performance acquisition unit 124 acquires the maximum value of WS (Window Size) from the setting value of TCP in the OS (Operating System) of the client 120 (Step S105).
 次に、クライアント120のデータ転送部121が、RTTとWSをサーバ110に送信する(ステップS106)。 Next, the data transfer unit 121 of the client 120 transmits RTT and WS to the server 110 (step S106).
 サーバ110では、データ転送部111が、RTTとWSを受信する(ステップS107)。 In the server 110, the data transfer unit 111 receives RTT and WS (step S107).
 次に、サーバ110の送信ファイル一覧作成部113が、2つのバージョン情報とバージョン管理テーブルとを参照し、2つのバージョンの差分を算出する。
 これにより、送信ファイル一覧作成部113は、クライアント120に送信が必要なファイルのリストを作成する(ステップS108)。
 また、送信ファイル一覧作成部113は、各ファイルの配置情報を生成する。
Next, the transmission file list creation unit 113 of the server 110 refers to the two version information and the version management table, and calculates the difference between the two versions.
Thereby, the transmission file list creation unit 113 creates a list of files that need to be transmitted to the client 120 (step S108).
In addition, the transmission file list creation unit 113 generates arrangement information of each file.
 次に、サーバ110のデータ転送部111が、各ファイルの配置情報をクライアント120に送信する(ステップS109)。 Next, the data transfer unit 111 of the server 110 transmits the arrangement information of each file to the client 120 (step S109).
 クライアント120では、データ転送部121が、各ファイルの配置情報を受信する(ステップS110)。 In the client 120, the data transfer unit 121 receives the arrangement information of each file (step S110).
 サーバ110では、演算性能取得部114が、サーバ110のCPUのクロック周波数と使用率を取得する(ステップS111)。 In the server 110, the computing performance acquisition unit 114 acquires the clock frequency and usage rate of the CPU of the server 110 (step S111).
 次に、サーバ110のデータ分類部115が、クライアント120に送信が必要なファイルを、データの種類に応じて複数に分類する(ステップS112)。 Next, the data classification unit 115 of the server 110 classifies the files that need to be transmitted to the client 120 into a plurality of files according to the type of data (step S112).
 次に、サーバ110の圧縮アルゴリズム選択部117が、ステップS112で複数に分類したデータの種類ごとに圧縮効果管理テーブルを参照して圧縮アルゴリズムを選択する(ステップS113)。 Next, the compression algorithm selection unit 117 of the server 110 selects a compression algorithm by referring to the compression effect management table for each type of data classified into plural in step S112 (step S113).
 次に、サーバ110のデータ圧縮部119が、データベース118から送信対象のデータを取り出し、ステップS113で選択された圧縮アルゴリズムでデータを圧縮する(ステップS114)。 Next, the data compression unit 119 of the server 110 takes out the data to be transmitted from the database 118 and compresses the data using the compression algorithm selected in step S113 (step S114).
 次に、サーバ110のデータ転送部111が、ステップS114で圧縮されたデータをクライアント120に送信する(ステップS115)。 Next, the data transfer unit 111 of the server 110 transmits the data compressed in step S114 to the client 120 (step S115).
 クライアント120では、データ転送部121が、圧縮されたデータを受信する(ステップS116)。 In the client 120, the data transfer unit 121 receives the compressed data (step S116).
 ステップS112で複数に分類された全ての種類のデータが受信されている場合はステップS118が実行され、まだ受信されていないデータが残っている場合はステップS113が実行される(ステップS117)。 Step S118 is executed when all types of data classified into a plurality of pieces at step S112 are received, and step S113 is executed when data that has not yet been received remains (step S117).
 クライアント120のデータ解凍部125が、受信したデータ全ての圧縮データを解凍する(ステップS118)。 The data decompression unit 125 of the client 120 decompresses all the received compressed data (step S118).
 次に、クライアント120のデータ結合部126が、複数に分類されたデータをステップS112で受信した配置情報に従って統合し、ソフトウェアの利用を開始する(ステップS119)。 Next, the data combining unit 126 of the client 120 integrates the plurality of classified data according to the arrangement information received in step S112, and starts using the software (step S119).
 次に、図2及び図3に示した、いくつかのステップについて説明を補足する。 Next, the explanation will be supplemented with respect to some steps shown in FIGS.
 ステップS101とステップS108のソフトウェアのバージョンの特定に関して、サーバ110がクライアント120のソフトウェアのバージョンを把握している場合は、クライアント120が所持しているソフトウェアのバージョンをサーバ110に通知することなく、サーバ110が自らクライアント120が所持しているソフトウェアのバージョンを判断するようにしてもよい。
 また、クライアント120がアップデートを要求するソフトウェアのバージョンをサーバ110が自ら判断するようにしてもよい。
 なお、クライアント120がアップデートを要求するソフトウェアのバージョンは常に最新バージョンであるとは限らない。
 バージョンの情報に関しては、クライアント120とサーバ110のどちらで取得しても性能に大きな影響を与えることは無いため、どちらで取得してもよい。
 また、本実施の形態では、一例としてソフトウェアのアップデートによる差分ダウンロードを挙げているが、差分ダウンロードでは無く、1つのバージョンのソフトウェアを全てダウンロードする際に本実施の形態で示した方法を使用してもよい。
 この場合は、ダウンロード対象のバージョンを1つ取得するだけでよい。
Regarding the specification of the software version in steps S101 and S108, if the server 110 knows the software version of the client 120, the server 110 does not notify the server 110 of the software version possessed by the client 120. 110 may determine the version of software that the client 120 has.
In addition, the server 110 may determine the version of software that the client 120 requests to update.
Note that the version of software that the client 120 requests to update is not always the latest version.
The version information can be acquired by either the client 120 or the server 110 because it does not significantly affect the performance.
Also, in this embodiment, differential download by software update is given as an example, but instead of differential download, the method shown in this embodiment is used when downloading one version of all software. Also good.
In this case, it is only necessary to acquire one version to be downloaded.
 ステップS102とステップS111で取得するCPUの演算性能の値に関して、本実施の形態では一例として演算性能の値をCPUのクロック周波数と使用率から算出することとしている。
 圧縮アルゴリズム選択の精度を高めるために、この他にもメモリ使用率などを取得して利用してもよい。
With respect to the CPU performance values acquired in step S102 and step S111, in this embodiment, as an example, the value of the performance is calculated from the clock frequency and usage rate of the CPU.
In addition to this, in order to increase the accuracy of selecting a compression algorithm, a memory usage rate or the like may be acquired and used.
 また、ステップS105に関して、本実施の形態では一例として通信性能の値をRTTとWSの最大値から算出することとしている。
 しかし、WSは通信の状況によって変化するものであり、最大値を使用すると通信性能を算出する精度が悪くなる可能性がある。
 圧縮アルゴリズム選択の精度を高めるために、他のWS取得方法を利用してもよい。
 WSの取得方法に関しては様々な既存技術が存在するが、本発明の本質ではないため詳細な説明は省略する。
Regarding step S105, in this embodiment, as an example, the value of communication performance is calculated from the maximum values of RTT and WS.
However, WS changes depending on communication conditions, and using the maximum value may deteriorate the accuracy of calculating communication performance.
Other WS acquisition methods may be used to increase the accuracy of compression algorithm selection.
Various existing technologies exist regarding the WS acquisition method, but the detailed description is omitted because it is not the essence of the present invention.
 ステップS112のデータ分類に関しては、データの内容に応じて圧縮アルゴリズムの適正が存在するため、種類に応じてデータを複数に分類し、それぞれに対して圧縮アルゴリズムを選択する。
 例えば、テキストファイルは圧縮率を高くしても圧縮後のサイズはあまり小さくならないため、圧縮・解凍のスピード重視で圧縮をすることが考えられる。
 一方、ソフトウェアの実行ファイルは圧縮率と圧縮・解凍速度の間にトレードオフが存在するため、条件に応じて圧縮アルゴリズムを選択する必要がある。
Regarding the data classification in step S112, the appropriateness of the compression algorithm exists according to the contents of the data. Therefore, the data is classified into a plurality according to the type, and the compression algorithm is selected for each.
For example, since the size of a text file after compression does not become very small even if the compression rate is increased, it is conceivable that compression is performed with emphasis on compression / decompression speed.
On the other hand, since there is a trade-off between the compression rate and the compression / decompression speed of the software executable file, it is necessary to select a compression algorithm according to the conditions.
 また、ステップS113の圧縮アルゴリズムの選択では、入力情報として、データの種類、通信性能の値(転送速度)、クライアント120及びサーバ110の演算性能の値を用いる。
 例えば、転送速度は、RTTとWSから求めることができる。
 また、演算性能の値はCPUのクロック周波数と使用率から求めることができる。
 本実施の形態では入力情報を4種類にしているが、更に入力情報を増やし、圧縮アルゴリズム選択の精度を上げてもよい。
 そして、転送速度と演算性能(CPUの使用率)は、時間の経過とともに変化する可能性があるため、1種類のデータの転送が完了する度に再測定することも考えられる。
 再測定する例を実施の形態2で説明する。
 一時的な値だけで判断すると変化に対応できない可能性もあるため、この他にも、統計的に測定して平均で判断することも考えられる。
 圧縮データの転送と圧縮・解凍に要する時間の合計は、以下の式で表される。
In the selection of the compression algorithm in step S113, the data type, the communication performance value (transfer rate), and the computation performance values of the client 120 and the server 110 are used as input information.
For example, the transfer rate can be obtained from RTT and WS.
Further, the value of the calculation performance can be obtained from the CPU clock frequency and the usage rate.
Although four types of input information are used in the present embodiment, the input information may be further increased to increase the accuracy of compression algorithm selection.
Since the transfer speed and calculation performance (CPU usage rate) may change over time, it may be possible to remeasure each time one type of data transfer is completed.
An example of remeasurement will be described in the second embodiment.
Since it may not be possible to cope with changes if only a temporary value is determined, it is also possible to make a statistical measurement and determine an average.
The total time required for transfer of compressed data and compression / decompression is expressed by the following equation.
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000001
 上式の第1項により通信時間が得られ、第2項により圧縮時間が得られ、第3項により解凍時間が得られる。
 上式に従って、通信時間圧縮アルゴリズムごとに通信時間、圧縮時間及び解凍時間を計算し、最も合計時間が短くなる圧縮アルゴリズムを選択することで、圧縮アルゴリズムの選択を最適化する。
 圧縮率、圧縮速度及び解凍速度は圧縮アルゴリズムの種類とファイルの種類から傾向が決まるため、予め図4に示すような圧縮アルゴリズムとデータの種類の対応表(圧縮効果管理テーブル)を用意しておき、この対応表から圧縮率と圧縮速度及び解凍速度を求める。
 図4の例では、対応表に2種類のデータしか存在しないが、データの種類を増やすことで条件に合わせて圧縮の効果を高めることができる。
 なお、上式の第1項~第3項の全てにおいて元のファイルサイズは共通になるため、各圧縮アルゴリズムの比較時には元のファイルサイズは無視しても構わない。
 また、無圧縮の場合、圧縮率が1となり、圧縮・解凍速度を考慮する必要が無いため、圧縮アルゴリズム選択部117は、1/転送速度と圧縮アルゴリズムごとの合計時間とを比較して、いずれかの圧縮アルゴリズム又は無圧縮を選択する。
The communication term is obtained from the first term in the above equation, the compression time is obtained from the second term, and the decompression time is obtained from the third term.
According to the above formula, the communication time, compression time and decompression time are calculated for each communication time compression algorithm, and the compression algorithm selection is optimized by selecting the compression algorithm that minimizes the total time.
Since the compression rate, compression speed, and decompression speed are determined by the type of compression algorithm and the type of file, a correspondence table (compression effect management table) of the compression algorithm and data type as shown in FIG. 4 is prepared in advance. The compression rate, compression speed, and decompression speed are obtained from this correspondence table.
In the example of FIG. 4, there are only two types of data in the correspondence table, but by increasing the types of data, the compression effect can be enhanced according to the conditions.
Since the original file size is the same for all of the first to third terms in the above equation, the original file size may be ignored when comparing the compression algorithms.
In the case of no compression, the compression ratio is 1, and there is no need to consider the compression / decompression speed. Therefore, the compression algorithm selection unit 117 compares the 1 / transfer speed with the total time for each compression algorithm, One of the compression algorithms or no compression is selected.
 ステップS117の判断に関して、クライアント120とサーバ110は、どちらもファイルの配置情報を所持しているため、クライアント120とサーバ110は、転送を完了していないファイルが残っていることについて通信無しに判断することができる。 Regarding the determination in step S117, since both the client 120 and the server 110 have file arrangement information, the client 120 and the server 110 determine that there is a file that has not been transferred without communication. can do.
 本実施の形態では圧縮、転送、解凍の処理の流れを逐次実行することを想定しており、圧縮、転送、解凍の処理の流れを並列に実行する例は実施の形態3で説明する。 In this embodiment, it is assumed that the flow of compression, transfer, and decompression processes are executed sequentially, and an example of executing the flow of compression, transfer, and decompression processes in parallel will be described in Embodiment 3.
 ステップS118の圧縮データの解凍に関して、解凍方法は各圧縮ファイルの拡張子やデータヘッダから判断する。 Regarding the decompression of the compressed data in step S118, the decompression method is determined from the extension of each compressed file and the data header.
 以上のように、転送、圧縮及び解凍の処理時間に影響を与えるパラメータ値を入力として通信時の条件により適した圧縮アルゴリズムを選択することで、1つの圧縮アルゴリズムで全てのデータを圧縮する場合よりも、データの転送と圧縮・解凍に要する時間の合計を短縮できる。 As described above, by selecting the compression algorithm that is more suitable for the communication conditions using the parameter values that affect the processing time of transfer, compression, and decompression as compared with the case of compressing all data with one compression algorithm. However, the total time required for data transfer and compression / decompression can be shortened.
 特に、実施の形態1で示したように、ソフトウェアのアップデートのために差分ダウンロードをするような場合に、効果を発揮する。 Especially, as shown in the first embodiment, it is effective when differential download is performed for software update.
 なお、本実施の形態では、図4に示すように、データの種類ごとに、各圧縮アルゴリズムの圧縮効果を定義しているが、データの種類を特定せずに各圧縮アルゴリズムの圧縮効果を定義するようにしてもよい。
 つまり、圧縮アルゴリズムごとに、1つの圧縮効果を定義するようにしてもよい。
In this embodiment, as shown in FIG. 4, the compression effect of each compression algorithm is defined for each data type, but the compression effect of each compression algorithm is defined without specifying the data type. You may make it do.
That is, one compression effect may be defined for each compression algorithm.
 実施の形態2.
 本実施の形態では、ファイルの種類ごとに通信性能の値と演算性能の値を取得し直し、圧縮アルゴリズムの選択に利用する例を示す。
Embodiment 2. FIG.
In the present embodiment, an example in which a communication performance value and a calculation performance value are obtained again for each file type and used for selecting a compression algorithm will be described.
 本実施の形態に係る通信システムの構成例を図5に示す。 FIG. 5 shows a configuration example of a communication system according to the present embodiment.
 サーバ装置210(以下、サーバ210ともいう)は、ソフトウェアを提供するコンピュータであり、クライアント装置220(以下、クライアント220ともいう)は、ソフトウェアを使用するコンピュータであり、サーバ装置210とクライアント装置220とはネットワーク230で接続されている。 The server device 210 (hereinafter also referred to as the server 210) is a computer that provides software, and the client device 220 (hereinafter also referred to as the client 220) is a computer that uses software, and the server device 210, the client device 220, and the like. Are connected by a network 230.
 サーバ210とクライアント220は、それぞれ図1で述べたサーバ110とクライアント120と共通の構成要素を持つ。 The server 210 and the client 220 have the same components as the server 110 and the client 120 described in FIG.
 本実施の形態では、複数のデータが所定の順序でサーバ210からクライアント220に送信される。
 そして、本実施の形態では、データ転送部211からデータが送信される度に、データの種類ごとに通信性能の値と演算性能の値を取得し直すために、データ解凍部225が演算性能取得部223と通信性能取得部224に性能値の再取得命令を出す。
 再取得命令に従って、演算性能取得部223は、クライアント220の新たな演算性能の値(CPU使用率)を取得し、また、通信性能取得部224が新たな通信性能(WS)を取得する。
 サーバ210では、データ転送部211がクライアント220の新たな演算性能の値と新たな通信性能の値をクライアント220から取得し、また、演算性能取得部214が、サーバ210の新たな演算性能の値(CPU使用率)を取得する。
 そして、圧縮アルゴリズム選択部217が、データ転送部211からデータが送信される度に、
 クライアント220の新たな演算性能の値とサーバ210の新たな演算性能の値と新たな通信性能の値とに基づき、次に送信されるデータ(次送信データ)の圧縮時間と通信時間と解凍時間とを算出し、算出結果に応じて、複数の圧縮アルゴリズムの中から、次送信データの圧縮に用いられる圧縮アルゴリズムを選択する。
In the present embodiment, a plurality of data is transmitted from server 210 to client 220 in a predetermined order.
In this embodiment, every time data is transmitted from the data transfer unit 211, the data decompression unit 225 acquires the computation performance in order to re-acquire the communication performance value and the computation performance value for each data type. A performance value reacquisition command is issued to the unit 223 and the communication performance acquisition unit 224.
In accordance with the reacquisition command, the computing performance acquisition unit 223 acquires a new computing performance value (CPU usage rate) of the client 220, and the communication performance acquisition unit 224 acquires a new communication performance (WS).
In the server 210, the data transfer unit 211 acquires a new calculation performance value and a new communication performance value of the client 220 from the client 220, and the calculation performance acquisition unit 214 sets a new calculation performance value of the server 210. (CPU usage rate) is acquired.
Each time the compression algorithm selection unit 217 transmits data from the data transfer unit 211,
Based on the new computation performance value of the client 220, the new computation performance value of the server 210, and the new communication performance value, the compression time, communication time, and decompression time of the data to be transmitted next (next transmission data) And a compression algorithm used for compression of the next transmission data is selected from a plurality of compression algorithms according to the calculation result.
 次に、本実施の形態に係るサーバ210とクライアント220の動作を説明する。
 図6及び図7は、本実施の形態に係るサーバ210とクライアント220の動作例を示すフローチャートである。
 なお、図6は、図2のS109が実行された後の処理を示している。
 なお、ステップS101~ステップS110は、図2に示した通りであり、ステップS101~ステップS110の動作の説明は省略する。
Next, operations of the server 210 and the client 220 according to the present embodiment will be described.
6 and 7 are flowcharts showing an operation example of the server 210 and the client 220 according to the present embodiment.
FIG. 6 shows processing after S109 of FIG. 2 is executed.
Steps S101 to S110 are as shown in FIG. 2, and description of the operations of steps S101 to S110 is omitted.
 図6において、S211とS212は、図3に示したS111とS112と同じである。
 本実施の形態では、ステップS212のデータ分類によって、クライアント220に送信するデータがデータ1とデータ2に分類されたと想定する。
In FIG. 6, S211 and S212 are the same as S111 and S112 shown in FIG.
In the present embodiment, it is assumed that the data to be transmitted to the client 220 is classified into data 1 and data 2 by the data classification in step S212.
 S213~217において、実施の形態1と同様に、データ1の圧縮アルゴリズムが選択され、データ1が圧縮され、圧縮後のデータ1が送信され、圧縮後のデータ1が受信され、解凍される。
 その後に、S218~S221において、クライアント220及びサーバ210において時間の経過とともに変化する可能性がある入力情報を再取得する。
 具体的には、WS(Window Size)とクライアント220及びサーバ210のCPU使用率を取得する。
 その後、S222において、新たに取得されたWSとクライアント220及びサーバ210のCPU使用率を用いて実施の形態1と同様に圧縮アルゴリズム選択部217が圧縮アルゴリズムごとに圧縮時間、通信時間及び解凍時間を算出し、合計時間が最も少ない圧縮アルゴリズムを選択する。
 そして、S223~S226において、実施の形態1と同様に、データ2が圧縮され、圧縮後のデータ2が送信され、圧縮後のデータ2が受信され、解凍される。
 最後に、クライアント220のデータ結合部226が、解凍後のデータ1とデータ2とを結合する。
In S213 to 217, as in the first embodiment, a compression algorithm for data 1 is selected, data 1 is compressed, compressed data 1 is transmitted, and compressed data 1 is received and decompressed.
Thereafter, in S218 to S221, the client 220 and the server 210 re-acquire input information that may change over time.
Specifically, CPU usage rates of WS (Window Size), client 220, and server 210 are acquired.
After that, in step S222, the compression algorithm selection unit 217 uses the newly acquired WS and the CPU usage rate of the client 220 and the server 210 to set the compression time, communication time, and decompression time for each compression algorithm as in the first embodiment. Calculate and select the compression algorithm with the least total time.
In S223 to S226, as in the first embodiment, data 2 is compressed, compressed data 2 is transmitted, and compressed data 2 is received and decompressed.
Finally, the data combining unit 226 of the client 220 combines the decompressed data 1 and data 2.
 また、実施の形態1ではクライアント120は全てのデータの受信が完了した後に圧縮データの解凍を実施していたが、実施の形態2ではクライアント220は各データを受信するたびに圧縮データの解凍を実施する。
 これは、データの解凍処理によるCPUへの負荷も考慮するためである。
In the first embodiment, the client 120 decompresses the compressed data after all the data has been received. However, in the second embodiment, the client 220 decompresses the compressed data every time it receives each data. carry out.
This is because the load on the CPU due to the data decompression process is also taken into consideration.
 以上のように、本実施の形態では、通信性能の値と演算性能の値を再取得してデータ2の圧縮アルゴリズム選択のための入力とすることで、通信時の条件により適した圧縮アルゴリズムを選択することができる。 As described above, in this embodiment, the communication performance value and the calculation performance value are re-acquired and used as an input for selecting the compression algorithm for data 2, so that a compression algorithm more suitable for the conditions at the time of communication can be obtained. You can choose.
 実施の形態3.
 本実施の形態では、転送と転送以外の処理を並列に実行する例を示す。
 図8は、本実施の形態に係る通信システムの構成例を示す。
Embodiment 3 FIG.
In this embodiment, an example in which transfer and processing other than transfer are executed in parallel is shown.
FIG. 8 shows a configuration example of a communication system according to the present embodiment.
 サーバ装置310(以下、サーバ310ともいう)は、ソフトウェアを提供するコンピュータであり、クライアント装置320(以下、クライアント320ともいう)は、ソフトウェアを使用するコンピュータであり、サーバ装置310とクライアント装置320とはネットワーク330で接続されている。 The server device 310 (hereinafter also referred to as the server 310) is a computer that provides software, and the client device 320 (hereinafter also referred to as the client 320) is a computer that uses software, and the server device 310, the client device 320, and the like. Are connected by a network 330.
 サーバ310とクライアント320は、それぞれ図1で述べたサーバ110とクライアント120と共通の構成要素を持つ。 The server 310 and the client 320 have the same components as the server 110 and the client 120 described in FIG.
 図1との違いは、データ転送部311とデータ転送部321を並列実行ブロック340とし、データ転送処理とデータ転送処理以外の処理を並列に実行する点である。
 本実施の形態でも、複数のデータが所定の順序でサーバ310からクライアント320に送信されるが、圧縮アルゴリズム選択部317は、データ転送部311による圧縮データの送信に並行して、次に送信されるデータ(次送信データ)の圧縮に用いられる圧縮アルゴリズムを選択する。
 また、データ圧縮部319も、データ転送部311による圧縮データの送信に並行して、圧縮アルゴリズム選択部317により選択された圧縮アルゴリズムを用いて、次送信データを圧縮する。
The difference from FIG. 1 is that the data transfer unit 311 and the data transfer unit 321 are set as a parallel execution block 340, and data transfer processing and processing other than data transfer processing are executed in parallel.
Also in this embodiment, a plurality of data is transmitted from the server 310 to the client 320 in a predetermined order, but the compression algorithm selection unit 317 is transmitted next in parallel with the transmission of the compressed data by the data transfer unit 311. Select a compression algorithm used for compressing data (next transmission data).
The data compression unit 319 also compresses the next transmission data using the compression algorithm selected by the compression algorithm selection unit 317 in parallel with the transmission of the compressed data by the data transfer unit 311.
 次に、本実施の形態に係るサーバ310とクライアント320の動作を説明する。
 図9及び図10は、本実施の形態に係るサーバ310とクライアント320の動作例を示すフローチャートである。
Next, operations of the server 310 and the client 320 according to the present embodiment will be described.
FIG. 9 and FIG. 10 are flowcharts showing an operation example of the server 310 and the client 320 according to the present embodiment.
 データの送信中やクライアント320からデータを受信するのを待つ間は、サーバ310において他の処理を並列に実行可能であるため、実施の形態3に係るサーバ310は、圧縮データの送信と送信以外の処理を並列に実行する。 Since the server 310 can execute other processes in parallel while data is being transmitted or while waiting for data to be received from the client 320, the server 310 according to the third embodiment does not transmit or transmit compressed data. The processes are executed in parallel.
 まず、ステップS301~ステップS303は、ステップS101~ステップS103と同様に実行する。 First, steps S301 to S303 are executed in the same manner as steps S101 to S103.
 その後、ステップS304で、サーバ310がクライアント320からダウンロード要求を受信し、クライアント320にACKパケットを返信した後にクライアント320からのデータ受信を待たずに、サーバ310側は並列に以降の処理を実行する。
 つまり、ステップS305~ステップS307の処理とステップS308~ステップS310の処理をそれぞれ並列に実行する。
 そして、ステップS311は、ステップS307とステップS310の両方の実行が終わった段階で実行する。
 なお、S304~S312の処理の内容は、S104~S112と同じである。
 実施の形態1との違いは、S305~S307とS308~S310を並列に行っている点のみである。
Thereafter, in step S304, the server 310 receives the download request from the client 320, returns an ACK packet to the client 320, and does not wait for data reception from the client 320, so that the server 310 performs the subsequent processing in parallel. .
That is, the processes in steps S305 to S307 and the processes in steps S308 to S310 are executed in parallel.
And step S311 is performed at the stage where execution of both step S307 and step S310 is completed.
Note that the contents of the processing of S304 to S312 are the same as those of S104 to S112.
The only difference from the first embodiment is that S305 to S307 and S308 to S310 are performed in parallel.
 実施の形態3では、ステップS310のデータ分類によって送信対象のデータがデータ1、データ2及びデータ3に分類されたものとする。
 ステップS313で圧縮アルゴリズム選択部317がデータ1の圧縮アルゴリズムを選択し、ステップS314でデータ圧縮部319がデータ1の圧縮を行った後、ステップS315の圧縮データ1の送信とステップS318のデータ2の圧縮アルゴリズムの選択以降の処理が並列に実行される。
 つまり、仮にステップS315の圧縮データ1の送信に時間がかかった場合でも、ステップS319のデータ2の圧縮、ステップS323のデータ3の圧縮アルゴリズムの選択及びステップ324のデータ3の圧縮も並列に実行する。
In the third embodiment, it is assumed that the data to be transmitted is classified into data 1, data 2, and data 3 by the data classification in step S310.
In step S313, the compression algorithm selection unit 317 selects a compression algorithm for data 1, and in step S314, the data compression unit 319 performs compression of data 1. Then, transmission of compressed data 1 in step S315 and data 2 in step S318 are performed. Processing after selection of the compression algorithm is executed in parallel.
That is, even if it takes time to transmit the compressed data 1 in step S315, the compression of data 2 in step S319, the selection of the compression algorithm for data 3 in step S323, and the compression of data 3 in step 324 are also executed in parallel. .
 一方、クライアント320では、ステップS316の圧縮データ1の受信が完了した後に、ステップS317の圧縮データ1の解凍とステップS321の圧縮データ2の受信を並列に実行する。 On the other hand, after the reception of the compressed data 1 in step S316 is completed, the client 320 executes decompression of the compressed data 1 in step S317 and reception of the compressed data 2 in step S321 in parallel.
 以上で述べた方法とは別に、マルチコアCPUなどにより、圧縮、転送及び解凍を全て並列に実行することも考えられる。
 この場合のフローチャートを図11及び図12に示し、以下で説明する。
Apart from the method described above, it is also conceivable to execute all compression, transfer and decompression in parallel by a multi-core CPU or the like.
The flowchart in this case is shown in FIGS. 11 and 12, and will be described below.
 図11及び図12の処理の図9及び図10の処理との違いは、ステップS313~ステップS327とステップS413~ステップS427の実行順序の違いである。
 マルチコアCPUなどにより、圧縮、転送及び解凍を全て並列に実行するため、図11及び図12では、ステップS411を実行後、データ圧縮部319は、3つの圧縮処理を並列に実行する。
 その後、データ転送部311は、圧縮処理が完了したデータから順番に送信を開始し、クライアント320側では、データ解凍部325が、受信が完了したデータから並列に解凍する。
 図11及び図12の例では、データ1の圧縮が最初に完了し、データ3の圧縮が最後に完了している。
11 and 12 differs from the processes in FIGS. 9 and 10 in the execution order of steps S313 to S327 and steps S413 to S427.
In order to execute all compression, transfer, and decompression in parallel by a multi-core CPU or the like, in FIG. 11 and FIG. 12, after executing step S411, the data compression unit 319 executes three compression processes in parallel.
After that, the data transfer unit 311 starts transmission in order from the data for which the compression processing has been completed, and on the client 320 side, the data decompression unit 325 decompresses in parallel from the data that has been received.
In the example of FIGS. 11 and 12, the compression of the data 1 is completed first, and the compression of the data 3 is completed last.
 実施の形態3の効果について図13を用いて説明する。
 図13は圧縮、転送及び解凍に要する実行時間を矢印の長さで表している。
 アルファベットは、それぞれ一連の圧縮、転送及び解凍に対応している。
 例えば圧縮Aで圧縮したデータを転送Aで送信し、解凍Aで解凍する。
 ケース1は圧縮、転送、解凍をまとめて逐次実行する例である。
 ケース2は図9及び図10で説明したように、転送と転送以外の処理を並列に実行する例である。
 ケース1とケース2を比較すると、ケース2で転送と転送以外の処理を並列に実行することによって、図中(1)で示した分だけ実行時間を短縮することができる。
 ケース3はマルチコアCPUなどにより、圧縮、転送及び解凍を全て並列に実行する場合(図11及び図12)の例である。
 サーバ310側では圧縮A、圧縮B及び圧縮Cを並列に実行可能である。
 しかし、圧縮、転送、解凍という順番に実行する必要があるため、転送がボトルネックになり、ケース2とほぼ同じ実行時間になると予想される。
 ケース3の方式は、転送がボトルネックにならないような高速な通信回線であれば効果的である。
 具体的には、ケース3での圧縮データの転送と圧縮・解凍に要する時間の合計は、以下の式で表される。
The effect of Embodiment 3 is demonstrated using FIG.
FIG. 13 shows the execution time required for compression, transfer and decompression by the length of the arrow.
Each alphabet corresponds to a series of compression, transfer and decompression.
For example, data compressed by compression A is transmitted by transfer A, and decompressed by decompression A.
Case 1 is an example in which compression, transfer, and decompression are sequentially performed together.
Case 2 is an example in which transfer and processing other than transfer are executed in parallel as described with reference to FIGS.
Comparing Case 1 and Case 2, by executing processing other than transfer and transfer in parallel in Case 2, the execution time can be shortened by the amount indicated by (1) in the figure.
Case 3 is an example in which all of compression, transfer and decompression are executed in parallel by a multi-core CPU or the like (FIGS. 11 and 12).
On the server 310 side, compression A, compression B, and compression C can be executed in parallel.
However, since it is necessary to execute in the order of compression, transfer, and decompression, transfer becomes a bottleneck, and it is expected that the execution time will be almost the same as in case 2.
The method of Case 3 is effective if it is a high-speed communication line in which transfer does not become a bottleneck.
Specifically, the total time required for transfer of compressed data and compression / decompression in Case 3 is expressed by the following equation.
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000002
 実施の形態1と同様にこの式を圧縮アルゴリズムごとに計算し、合計時間が最小となる圧縮方式をデータの種類に応じて選定する。
 なお、上式中の分類数はデータ分類部315によって分類されたデータの種類数である。
 占有可能スレッド数は同時処理可能な数であり、本システムで占有可能なスレッド数で計算する。
 なお、分割数以上は並列実行できないため、分割数以上の占有可能スレッド数は考慮しない。
Similar to the first embodiment, this equation is calculated for each compression algorithm, and the compression method that minimizes the total time is selected according to the type of data.
The number of classifications in the above formula is the number of types of data classified by the data classification unit 315.
The number of threads that can be occupied is the number that can be processed simultaneously, and is calculated by the number of threads that can be occupied by this system.
Since the number of divisions or more cannot be executed in parallel, the number of occupying threads exceeding the number of divisions is not considered.
 以上のように、転送と転送以外の処理を並列に実行することで、データの転送に要する時間は変わらないが、データの圧縮・解凍に要する時間を相対的に減らすことができ、合計の時間を実施の形態1や2と比較して削減することができる。 As described above, by executing processing other than transfer and transfer in parallel, the time required for data transfer does not change, but the time required for data compression / decompression can be reduced relatively, and the total time Can be reduced as compared with the first and second embodiments.
 最後に、実施の形態1~3に示したサーバ110(210、310)及びクライアント120(220、320)のハードウェア構成例を図14を参照して説明する。
 サーバ110(210、310)及びクライアント120(220、320)はコンピュータであり、サーバ110(210、310)及びクライアント120(220、320)の各要素をプログラムで実現することができる。
 サーバ110(210、310)及びクライアント120(220、320)のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
Finally, a hardware configuration example of the server 110 (210, 310) and the client 120 (220, 320) described in the first to third embodiments will be described with reference to FIG.
The server 110 (210, 310) and the client 120 (220, 320) are computers, and each element of the server 110 (210, 310) and the client 120 (220, 320) can be realized by a program.
As hardware configurations of the server 110 (210, 310) and the client 120 (220, 320), an arithmetic device 901, an external storage device 902, a main storage device 903, a communication device 904, and an input / output device 905 are connected to the bus. ing.
 演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
 外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
 主記憶装置903は、RAM(Random Access Memory)である。
 通信装置904は、データ転送部111(211、311)及びデータ転送部121(221、321)の物理層に対応する。
 入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
The arithmetic device 901 is a CPU (Central Processing Unit) that executes a program.
The external storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device.
The main storage device 903 is a RAM (Random Access Memory).
The communication device 904 corresponds to the physical layer of the data transfer units 111 (211 and 311) and the data transfer units 121 (221 and 321).
The input / output device 905 is, for example, a mouse, a keyboard, a display device, or the like.
 プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
 プログラムは、図1等に示す「~部」(「~記憶部」を除く、以下も同様)として説明している機能を実現するプログラムである。
 更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1等に示す「~部」の機能を実現するプログラムを実行する。
 また、実施の形態1~3の説明において、「~の判断」、「~の判定」、「~の抽出」、「~の検知」、「~の設定」、「~の登録」、「~の選択」、「~の参照」、「~の生成」、「~の入力」、「~の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
 また、通信先の装置から受信したデータが主記憶装置903に記憶される。
 また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置903にファイルとして記憶されてもよい。
The program is normally stored in the external storage device 902, and is loaded into the main storage device 903 and sequentially read into the arithmetic device 901 and executed.
The program is a program that realizes a function described as “˜unit” (excluding “˜storage unit”, the same applies hereinafter) shown in FIG.
Further, an operating system (OS) is also stored in the external storage device 902. At least a part of the OS is loaded into the main storage device 903, and the arithmetic device 901 executes the OS while displaying “˜” shown in FIG. The program that realizes the function of “part” is executed.
In the description of the first to third embodiments, “determining”, “determining”, “extracting”, “detecting”, “setting of”, “registering”, “ Information, data, signal values, and variable values that indicate the results of the processing described as “selection”, “reference to”, “generation of”, “input of”, “output of”, etc. It is stored as a file in the device 903.
In addition, data received from the communication destination device is stored in the main storage device 903.
Further, the encryption key / decryption key, random number value, and parameter may be stored in the main storage device 903 as a file.
 なお、図14の構成は、あくまでもサーバ110(210、310)及びクライアント120(220、320)のハードウェア構成の一例を示すものであり、サーバ110(210、310)及びクライアント120(220、320)のハードウェア構成は図14に記載の構成に限らず、他の構成であってもよい。 14 is merely an example of the hardware configuration of the server 110 (210, 310) and the client 120 (220, 320), and the server 110 (210, 310) and the client 120 (220, 320). ) Is not limited to the configuration illustrated in FIG. 14, and may be another configuration.
 また、実施の形態1~3に示す手順により、本発明に係るデータ送信方法を実現可能である。 Further, the data transmission method according to the present invention can be realized by the procedure shown in the first to third embodiments.
 以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
 あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
 あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
 なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
As mentioned above, although embodiment of this invention was described, you may implement in combination of 2 or more among these embodiment.
Alternatively, one of these embodiments may be partially implemented.
Alternatively, two or more of these embodiments may be partially combined.
In addition, this invention is not limited to these embodiment, A various change is possible as needed.
 110 サーバ、111 データ転送部、112 バージョン管理テーブル記憶部、113 送信ファイル一覧作成部、114 演算性能取得部、115 データ分類部、116 圧縮効果管理テーブル記憶部、117 圧縮アルゴリズム選択部、118 データベース、119 データ圧縮部、120 クライアント、121 データ転送部、122 バージョン取得部、123 演算性能取得部、124 通信性能取得部、125 データ解凍部、126 データ結合部、130 ネットワーク、210 サーバ、211 データ転送部、212 バージョン管理テーブル記憶部、213 送信ファイル一覧作成部、214 演算性能取得部、215 データ分類部、216 圧縮効果管理テーブル記憶部、217 圧縮アルゴリズム選択部、218 データベース、219 データ圧縮部、220 クライアント、221 データ転送部、222 バージョン取得部、223 演算性能取得部、224 通信性能取得部、225 データ解凍部、226 データ結合部、230 ネットワーク、310 サーバ、311 データ転送部、312 バージョン管理テーブル記憶部、313 送信ファイル一覧作成部、314 演算性能取得部、315 データ分類部、316 圧縮効果管理テーブル記憶部、317 圧縮アルゴリズム選択部、318 データベース、319 データ圧縮部、320 クライアント、321 データ転送部、322 バージョン取得部、323 演算性能取得部、324 通信性能取得部、325 データ解凍部、326 データ結合部、330 ネットワーク、340 並列実行ブロック。 110 server, 111 data transfer unit, 112 version management table storage unit, 113 transmission file list creation unit, 114 calculation performance acquisition unit, 115 data classification unit, 116 compression effect management table storage unit, 117 compression algorithm selection unit, 118 database, 119 Data compression unit, 120 client, 121 data transfer unit, 122 version acquisition unit, 123 calculation performance acquisition unit, 124 communication performance acquisition unit, 125 data decompression unit, 126 data combination unit, 130 network, 210 server, 211 data transfer unit , 212 Version management table storage unit, 213 Transmission file list creation unit, 214 Operation performance acquisition unit, 215 Data classification unit, 216 Compression effect management table storage unit, 217 Compression algorithm Selection unit, 218 database, 219 data compression unit, 220 client, 221 data transfer unit, 222 version acquisition unit, 223 calculation performance acquisition unit, 224 communication performance acquisition unit, 225 data decompression unit, 226 data combination unit, 230 network, 310 Server, 311 data transfer unit, 312 version management table storage unit, 313 transmission file list creation unit, 314 calculation performance acquisition unit, 315 data classification unit, 316 compression effect management table storage unit, 317 compression algorithm selection unit, 318 database, 319 Data compression unit, 320 client, 321 data transfer unit, 322 version acquisition unit, 323 calculation performance acquisition unit, 324 communication performance acquisition unit, 325 data decompression unit, 326 data combination unit, 3 0 network, 340 parallel execution block.

Claims (11)

  1.  複数の圧縮アルゴリズムに対応したデータ受信装置に、前記複数の圧縮アルゴリズムのうちのいずれかの圧縮アルゴリズムを用いて圧縮されたデータを送信するデータ送信装置であって、
     データの圧縮に費やされる時間である圧縮時間に影響を与える圧縮時間影響パラメータ値と、圧縮後のデータの送信から前記データ受信装置での受信までに費やされる時間である通信時間に影響を与える通信時間影響パラメータ値と、圧縮後のデータの解凍に費やされる時間である解凍時間に影響を与える解凍時間影響パラメータ値とを取得する影響パラメータ値取得部と、
     前記影響パラメータ値取得部により取得された、前記圧縮時間影響パラメータ値と、前記通信時間影響パラメータ値と、前記解凍時間影響パラメータ値と、各圧縮アルゴリズムの圧縮効果の値とを用いて、圧縮アルゴリズムごとに、前記データ受信装置に送信する送信データの圧縮時間と圧縮後の送信データの通信時間と圧縮後の送信データの解凍時間とを算出し、算出結果に応じて、前記複数の圧縮アルゴリズムの中から、前記送信データの圧縮に用いられる圧縮アルゴリズムを選択する圧縮アルゴリズム選択部と、
     前記圧縮アルゴリズム選択部により選択された圧縮アルゴリズムを用いて前記送信データを圧縮するデータ圧縮部と、
     圧縮後の送信データを前記データ受信装置に送信する送信部とを有することを特徴とするデータ送信装置。
    A data transmitting device that transmits data compressed using any one of the plurality of compression algorithms to a data receiving device that supports a plurality of compression algorithms,
    Compression time influence parameter value that affects the compression time that is the time spent for data compression, and communication that affects the communication time that is the time spent from the transmission of the compressed data to the reception at the data receiving device An influence parameter value acquisition unit that acquires a time influence parameter value and a decompression time influence parameter value that affects a decompression time that is a time spent for decompressing data after compression;
    Using the compression time influence parameter value, the communication time influence parameter value, the decompression time influence parameter value, and the compression effect value of each compression algorithm acquired by the influence parameter value acquisition unit, a compression algorithm For each, a compression time of transmission data to be transmitted to the data receiving device, a communication time of transmission data after compression, and a decompression time of transmission data after compression are calculated, and according to the calculation result, the plurality of compression algorithms. A compression algorithm selection unit for selecting a compression algorithm used for compression of the transmission data,
    A data compression unit that compresses the transmission data using the compression algorithm selected by the compression algorithm selection unit;
    A data transmission apparatus comprising: a transmission unit that transmits the compressed transmission data to the data reception apparatus.
  2.  前記データ送信装置は、更に、
     各圧縮アルゴリズムの圧縮効果の値として、各圧縮アルゴリズムの圧縮率と圧縮速度と解凍速度とが示されている圧縮アルゴリズム情報を記憶する圧縮アルゴリズム情報記憶部を有し、
     前記圧縮アルゴリズム選択部は、
     前記圧縮時間影響パラメータ値と、前記通信時間影響パラメータ値と、前記解凍時間影響パラメータ値と、前記圧縮アルゴリズム情報に示される各圧縮アルゴリズムの圧縮率と圧縮速度と解凍速度とを用いて、圧縮アルゴリズムごとに、前記送信データの圧縮時間と圧縮後の送信データの通信時間と圧縮後の送信データの解凍時間とを算出することを特徴とする請求項1に記載のデータ送信装置。
    The data transmission device further includes:
    As a compression effect value of each compression algorithm, it has a compression algorithm information storage unit that stores compression algorithm information indicating the compression rate, compression speed, and decompression speed of each compression algorithm,
    The compression algorithm selection unit
    A compression algorithm using the compression time influence parameter value, the communication time influence parameter value, the decompression time influence parameter value, and the compression rate, compression speed, and decompression speed of each compression algorithm indicated in the compression algorithm information The data transmission device according to claim 1, wherein a compression time of the transmission data, a communication time of the transmission data after compression, and a decompression time of the transmission data after compression are calculated for each time.
  3.  前記圧縮アルゴリズム情報記憶部は、
     データの種類ごとに、各圧縮アルゴリズムの圧縮率と圧縮速度と解凍速度とが示されている圧縮アルゴリズム情報を記憶し、
     前記圧縮アルゴリズム選択部は、
     前記圧縮時間影響パラメータ値と、前記通信時間影響パラメータ値と、前記解凍時間影響パラメータ値と、前記圧縮アルゴリズム情報に示されている、各圧縮アルゴリズムの前記送信データの種類に対応する圧縮率と圧縮速度と解凍速度とを用いて、圧縮アルゴリズムごとに、前記送信データの圧縮時間と圧縮後の送信データの通信時間と圧縮後の送信データの解凍時間とを算出することを特徴とする請求項2に記載のデータ送信装置。
    The compression algorithm information storage unit is
    For each data type, store compression algorithm information indicating the compression rate, compression speed, and decompression speed of each compression algorithm,
    The compression algorithm selection unit
    The compression rate and compression corresponding to the type of transmission data of each compression algorithm indicated in the compression time influence parameter value, the communication time influence parameter value, the decompression time influence parameter value, and the compression algorithm information 3. The compression time of the transmission data, the communication time of the transmission data after compression, and the decompression time of the transmission data after compression are calculated for each compression algorithm using the speed and the decompression speed. The data transmission device described in 1.
  4.  前記圧縮アルゴリズム選択部は、
     前記送信データの圧縮時間と圧縮後の送信データの通信時間と圧縮後の送信データの解凍時間との合計時間が最も少ない圧縮アルゴリズムを選択することを特徴とする請求項2又は3に記載のデータ送信装置。
    The compression algorithm selection unit
    4. The data according to claim 2, wherein a compression algorithm having a minimum total time of a compression time of the transmission data, a communication time of transmission data after compression, and a decompression time of transmission data after compression is selected. Transmitter device.
  5.  前記圧縮アルゴリズム選択部は、
     算出結果に応じて、前記送信データの圧縮を行わないことを決定することを特徴とする請求項2~4のいずれかに記載のデータ送信装置。
    The compression algorithm selection unit
    5. The data transmission apparatus according to claim 2, wherein it is determined not to compress the transmission data according to a calculation result.
  6.  前記影響パラメータ値取得部は、
     前記圧縮時間影響パラメータ値として、前記データ送信装置の演算性能の値を取得し、
     前記通信時間影響パラメータ値として、前記データ受信装置及び前記データ送信装置間の通信性能の値を取得し、
     前記解凍時間影響パラメータ値として、前記データ受信装置の演算性能の値を取得することを特徴とする請求項1~5のいずれかに記載のデータ送信装置。
    The influence parameter value acquisition unit
    As the compression time influence parameter value, obtain the value of the calculation performance of the data transmission device,
    As the communication time influence parameter value, obtain a value of communication performance between the data receiving device and the data transmitting device,
    The data transmission device according to any one of claims 1 to 5, wherein a calculation performance value of the data reception device is acquired as the decompression time influence parameter value.
  7.  前記データ受信装置に複数の送信データが所定の順序で送信される場合に、
     前記影響パラメータ値取得部は、
     圧縮後の送信データが前記送信部から送信される度に、新たな圧縮時間影響パラメータ値と新たな通信時間影響パラメータ値と新たな解凍時間影響パラメータ値とを取得し、
     前記圧縮アルゴリズム選択部は、
     圧縮後の送信データが前記送信部から送信される度に前記影響パラメータ値取得部により取得された新たな圧縮時間影響パラメータ値と新たな通信時間影響パラメータ値と新たな解凍時間影響パラメータ値とを用いて、前記送信部により次に送信される次送信データの圧縮時間と圧縮後の次送信データの通信時間と圧縮後の次送信データの解凍時間とを算出し、算出結果に応じて、前記複数の圧縮アルゴリズムの中から、前記次送信データの圧縮に用いられる圧縮アルゴリズムを選択することを特徴とする請求項1~6のいずれかに記載のデータ送信装置。
    When a plurality of transmission data is transmitted in a predetermined order to the data receiving device,
    The influence parameter value acquisition unit
    Each time compressed transmission data is transmitted from the transmission unit, a new compression time influence parameter value, a new communication time influence parameter value, and a new decompression time influence parameter value are acquired,
    The compression algorithm selection unit
    A new compression time influence parameter value, a new communication time influence parameter value, and a new decompression time influence parameter value acquired by the influence parameter value acquisition section every time compressed transmission data is transmitted from the transmission section. And calculating the compression time of the next transmission data to be transmitted next by the transmission unit, the communication time of the next transmission data after compression, and the decompression time of the next transmission data after compression, according to the calculation result, 7. The data transmitting apparatus according to claim 1, wherein a compression algorithm used for compressing the next transmission data is selected from a plurality of compression algorithms.
  8.  前記データ受信装置に複数の送信データが所定の順序で送信される場合に、
     前記圧縮アルゴリズム選択部は、
     前記送信部による圧縮後の送信データの送信に並行して、前記送信部により次に送信される次送信データの圧縮に用いられる圧縮アルゴリズムを選択し、
     前記データ圧縮部は、
     前記送信部による圧縮後の送信データの送信に並行して、前記圧縮アルゴリズム選択部により前記次送信データに対して選択された圧縮アルゴリズムを用いて、前記次送信データを圧縮することを特徴とする請求項1~7のいずれかに記載のデータ送信装置。
    When a plurality of transmission data is transmitted in a predetermined order to the data receiving device,
    The compression algorithm selection unit
    In parallel with transmission of transmission data after compression by the transmission unit, select a compression algorithm used for compression of next transmission data transmitted next by the transmission unit,
    The data compression unit
    In parallel with transmission of transmission data after compression by the transmission unit, the next transmission data is compressed using a compression algorithm selected for the next transmission data by the compression algorithm selection unit. The data transmission device according to any one of claims 1 to 7.
  9.  前記データ受信装置に複数の送信データが送信される場合に、
     前記圧縮アルゴリズム選択部は、
     各送信データの圧縮に用いられる圧縮アルゴリズムを並行して選択し、
     前記データ圧縮部は、
     前記圧縮アルゴリズム選択部により各送信データに対して選択された圧縮アルゴリズムを用いて、各送信データを並行して圧縮し、
     前記送信部は、
     圧縮後の各送信データを並行して前記データ受信装置に送信することを特徴とする請求項1~7のいずれかに記載のデータ送信装置。
    When a plurality of transmission data is transmitted to the data receiving device,
    The compression algorithm selection unit
    Select the compression algorithm used for compression of each transmission data in parallel,
    The data compression unit
    Using the compression algorithm selected for each transmission data by the compression algorithm selection unit, compress each transmission data in parallel,
    The transmitter is
    The data transmission device according to any one of claims 1 to 7, wherein the transmission data after compression are transmitted to the data reception device in parallel.
  10.  複数の圧縮アルゴリズムに対応したデータ受信装置に、前記複数の圧縮アルゴリズムのうちのいずれかの圧縮アルゴリズムを用いて圧縮されたデータを送信するコンピュータが行うデータ送信方法であって、
     前記コンピュータが、データの圧縮に費やされる時間である圧縮時間に影響を与える圧縮時間影響パラメータ値と、圧縮後のデータの送信から前記データ受信装置での受信までに費やされる時間である通信時間に影響を与える通信時間影響パラメータ値と、圧縮後のデータの解凍に費やされる時間である解凍時間に影響を与える解凍時間影響パラメータ値とを取得し、
     前記コンピュータが、前記圧縮時間影響パラメータ値と、前記通信時間影響パラメータ値と、前記解凍時間影響パラメータ値と、各圧縮アルゴリズムの圧縮効果の値とを用いて、圧縮アルゴリズムごとに、前記データ受信装置に送信する送信データの圧縮時間と圧縮後の送信データの通信時間と圧縮後の送信データの解凍時間とを算出し、算出結果に応じて、前記複数の圧縮アルゴリズムの中から、前記送信データの圧縮に用いる圧縮アルゴリズムを選択し、
     前記コンピュータが、選択した圧縮アルゴリズムを用いて前記送信データを圧縮し、
     前記コンピュータが、圧縮後の送信データを前記データ受信装置に送信することを特徴とするデータ送信方法。
    A data transmission method performed by a computer that transmits data compressed using a compression algorithm of any of the plurality of compression algorithms to a data reception device that supports a plurality of compression algorithms,
    The compression time influence parameter value that affects the compression time, which is the time spent by the computer to compress data, and the communication time, which is the time spent from transmission of the compressed data to reception by the data receiving device Get the communication time influence parameter value that affects and the decompression time influence parameter value that affects the decompression time, which is the time spent decompressing the compressed data,
    The computer receives the data reception device for each compression algorithm using the compression time influence parameter value, the communication time influence parameter value, the decompression time influence parameter value, and the compression effect value of each compression algorithm. Calculating the compression time of the transmission data to be transmitted to the communication, the communication time of the transmission data after compression, and the decompression time of the transmission data after compression, and according to the calculation result, from among the plurality of compression algorithms, Select the compression algorithm used for compression,
    The computer compresses the transmitted data using a selected compression algorithm;
    The data transmission method, wherein the computer transmits the compressed transmission data to the data receiving device.
  11.  複数の圧縮アルゴリズムに対応したデータ受信装置に、前記複数の圧縮アルゴリズムのうちのいずれかの圧縮アルゴリズムを用いて圧縮されたデータを送信するコンピュータに、
     データの圧縮に費やされる時間である圧縮時間に影響を与える圧縮時間影響パラメータ値と、圧縮後のデータの送信から前記データ受信装置での受信までに費やされる時間である通信時間に影響を与える通信時間影響パラメータ値と、圧縮後のデータの解凍に費やされる時間である解凍時間に影響を与える解凍時間影響パラメータ値とを取得する影響パラメータ値取得処理と、
     前記影響パラメータ値取得処理により取得された、前記圧縮時間影響パラメータ値と、前記通信時間影響パラメータ値と、前記解凍時間影響パラメータ値と、各圧縮アルゴリズムの圧縮効果の値とを用いて、圧縮アルゴリズムごとに、前記データ受信装置に送信する送信データの圧縮時間と圧縮後の送信データの通信時間と圧縮後の送信データの解凍時間とを算出し、算出結果に応じて、前記複数の圧縮アルゴリズムの中から、前記送信データの圧縮に用いられる圧縮アルゴリズムを選択する圧縮アルゴリズム選択処理と、
     前記圧縮アルゴリズム選択処理により選択された圧縮アルゴリズムを用いて前記送信データを圧縮するデータ圧縮処理と、
     圧縮後の送信データを前記データ受信装置に送信する送信処理とを実行させることを特徴とするプログラム。
    To a computer that transmits data compressed using a compression algorithm of any of the plurality of compression algorithms to a data reception device that supports a plurality of compression algorithms,
    Compression time influence parameter value that affects the compression time that is the time spent for data compression, and communication that affects the communication time that is the time spent from the transmission of the compressed data to the reception at the data receiving device An influence parameter value acquisition process for acquiring a time influence parameter value and a decompression time influence parameter value that affects the decompression time, which is a time spent for decompressing data after compression;
    Using the compression time influence parameter value, the communication time influence parameter value, the decompression time influence parameter value, and the compression effect value of each compression algorithm acquired by the influence parameter value acquisition process, a compression algorithm For each, a compression time of transmission data to be transmitted to the data receiving device, a communication time of transmission data after compression, and a decompression time of transmission data after compression are calculated, and according to the calculation result, the plurality of compression algorithms. A compression algorithm selection process for selecting a compression algorithm used for compression of the transmission data,
    A data compression process for compressing the transmission data using the compression algorithm selected by the compression algorithm selection process;
    A program for executing transmission processing for transmitting transmission data after compression to the data receiving device.
PCT/JP2013/058577 2013-03-25 2013-03-25 Data transmission device, data transmission method, and program WO2014155490A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2013/058577 WO2014155490A1 (en) 2013-03-25 2013-03-25 Data transmission device, data transmission method, and program
TW102114764A TW201438407A (en) 2013-03-25 2013-04-25 Data transmission device, data transmission method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/058577 WO2014155490A1 (en) 2013-03-25 2013-03-25 Data transmission device, data transmission method, and program

Publications (1)

Publication Number Publication Date
WO2014155490A1 true WO2014155490A1 (en) 2014-10-02

Family

ID=51622582

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/058577 WO2014155490A1 (en) 2013-03-25 2013-03-25 Data transmission device, data transmission method, and program

Country Status (2)

Country Link
TW (1) TW201438407A (en)
WO (1) WO2014155490A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9521218B1 (en) 2016-01-21 2016-12-13 International Business Machines Corporation Adaptive compression and transmission for big data migration
CN109101524A (en) * 2017-06-20 2018-12-28 三星电子株式会社 The method of memory driver and the data of compressibility and compression thereon thereon
CN110912710A (en) * 2019-12-09 2020-03-24 上海创能国瑞数据系统有限公司 Data and algorithm transmission method
CN112311720A (en) * 2019-07-23 2021-02-02 腾讯科技(深圳)有限公司 Data transmission method and device
CN113709510A (en) * 2021-08-06 2021-11-26 联想(北京)有限公司 High-speed data real-time transmission method and device, equipment and storage medium
US20220135067A1 (en) * 2020-11-03 2022-05-05 Volkswagen Aktiengesellschaft Vehicle, apparatus for a vehicle, computer program, and method for processing information for communication in a tele-operated driving session

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1029349A (en) * 1996-07-15 1998-02-03 Canon Inc Image forming device and image formation
JP2002229886A (en) * 2001-02-01 2002-08-16 Hitachi Ltd Data sending and receiving method
JP2002244950A (en) * 2001-02-15 2002-08-30 Nec Corp Method and program for increasing efficiency of file transfer
JP2003296055A (en) * 2002-04-01 2003-10-17 Fuji Xerox Co Ltd Print data transmitting method, printer control device, and computer program for controlling printer
JP2006254280A (en) * 2005-03-14 2006-09-21 Kyocera Mita Corp Terminal device and image processing system with same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1029349A (en) * 1996-07-15 1998-02-03 Canon Inc Image forming device and image formation
JP2002229886A (en) * 2001-02-01 2002-08-16 Hitachi Ltd Data sending and receiving method
JP2002244950A (en) * 2001-02-15 2002-08-30 Nec Corp Method and program for increasing efficiency of file transfer
JP2003296055A (en) * 2002-04-01 2003-10-17 Fuji Xerox Co Ltd Print data transmitting method, printer control device, and computer program for controlling printer
JP2006254280A (en) * 2005-03-14 2006-09-21 Kyocera Mita Corp Terminal device and image processing system with same

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9521218B1 (en) 2016-01-21 2016-12-13 International Business Machines Corporation Adaptive compression and transmission for big data migration
CN109101524A (en) * 2017-06-20 2018-12-28 三星电子株式会社 The method of memory driver and the data of compressibility and compression thereon thereon
JP2019008792A (en) * 2017-06-20 2019-01-17 三星電子株式会社Samsung Electronics Co.,Ltd. Storage drive, compression system thereof, and data compression method thereof
JP7169098B2 (en) 2017-06-20 2022-11-10 三星電子株式会社 Storage drive, its compression system, and its data compression method
CN109101524B (en) * 2017-06-20 2023-11-24 三星电子株式会社 Storage drive, compression system thereon, and method of compressing data thereon
CN112311720A (en) * 2019-07-23 2021-02-02 腾讯科技(深圳)有限公司 Data transmission method and device
CN110912710A (en) * 2019-12-09 2020-03-24 上海创能国瑞数据系统有限公司 Data and algorithm transmission method
CN110912710B (en) * 2019-12-09 2022-04-01 上海创能国瑞数据系统有限公司 Data and algorithm transmission method
US20220135067A1 (en) * 2020-11-03 2022-05-05 Volkswagen Aktiengesellschaft Vehicle, apparatus for a vehicle, computer program, and method for processing information for communication in a tele-operated driving session
US11814071B2 (en) * 2020-11-03 2023-11-14 Volkswagen Aktiegensellschaft Vehicle, apparatus for a vehicle, computer program, and method for processing information for communication in a tele-operated driving session
CN113709510A (en) * 2021-08-06 2021-11-26 联想(北京)有限公司 High-speed data real-time transmission method and device, equipment and storage medium

Also Published As

Publication number Publication date
TW201438407A (en) 2014-10-01

Similar Documents

Publication Publication Date Title
WO2014155490A1 (en) Data transmission device, data transmission method, and program
JP6521403B2 (en) Efficient data compression and analysis as a service
JP4912401B2 (en) System and method for adaptively collecting performance and event information
CN109997139B (en) Detecting malware using hash-based fingerprints
US20140250158A1 (en) Method and device for obtaining file
CN111563206B (en) Method, device, electronic equipment and medium for displaying object information sequence
JP7038740B2 (en) Data aggregation methods for cache optimization and efficient processing
CA2840450C (en) Method of hybrid message passing with shared memory
CN113508373A (en) Distributed metadata-based cluster computing
CN112947981A (en) Application program resource updating method and device, terminal equipment and server
CN115412370B (en) Vehicle communication data detection method and device, electronic equipment and readable medium
CN110650209A (en) Method and device for realizing load balance
CN108804445B (en) Thermodynamic diagram generation method and device
US20210250260A1 (en) Detection device and detection method
US10505739B2 (en) Prefix fingerprint
US9098863B2 (en) Compressed analytics data for multiple recurring time periods
JP7375744B2 (en) Processing devices, systems, processing methods, and computer programs
JP7098735B2 (en) Optimization of large-scale data analysis
WO2017036042A1 (en) Information collection method and apparatus
WO2023051035A1 (en) Data transmission method and apparatus for robot, electronic device, and storage medium
US10248690B1 (en) Decremental correlation calculation for big data or streamed data using components
US9626330B2 (en) Information processing apparatus, and information processing method
US20220050614A1 (en) System and method for approximating replication completion time
CN114860295A (en) Resource file updating method, device, equipment and readable storage medium
EP3479235A1 (en) Real-time application behavior changes

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP