Communication systems, methods, and programs
The communication system addresses inefficiencies in large data transmission by segmenting data and distributing it across multiple paths, enhancing efficiency and reducing channel overload.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- BRIDGEPORT CORP
- Filing Date
- 2024-11-12
- Publication Date
- 2026-05-22
Smart Images

Figure 2026084765000001_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a technique for transmitting and receiving data.
Background Art
[0002] Conventionally, a reliable data transfer method between a transmitter and a receiver over an unreliable network where the time overhead for retransmitting lost data remains constant due to arbitrary high latency, loss, or reordering of data during transmission, and due to arbitrary high transmission speed, is provided, wherein the method involves obtaining the injection rate of data block transmission from the transmitter, transmitting data blocks sequentially from the transmitter to the receiver at the injection rate, receiving one or more data blocks, each having an identification number, detecting the lost original data block based on the received identification number, detecting the lost retransmission data block based on the estimated reception time as a function of the predicted path round-trip time, sending a retransmission request from the receiver to the transmitter, the transmitter searching for the corresponding data block from the data source, predicting and estimating the time to transmit the data block to the receiver, detecting the path round-trip time, and adding a data ID as the number of lost blocks increases. A method has been proposed that includes storing one or more identification numbers of the lost data blocks in the receiving unit so as not to worsen the time required to retrieve or search from storage; sending a retransmission request from the receiving unit to the transmitting unit using a timer based on the predicted path round-trip time so that the transmitting unit can retransmit the lost data as quickly as possible so as not to prematurely retransmit only data blocks that are just delayed and will eventually arrive at the receiving unit, in order to maximize continuous reception of data; storing retransmission requests for lost data blocks in the transmitting unit so as not to worsen the time required to add or search for the block IDs of the blocks to be retransmitted as the number of retransmission requests increases; transmitting the retransmitted data at a rate equivalent to the injection rate so as to minimize the storage of retransmission requests in the transmitting unit; and first transmitting data for all pending retransmission requests before transmitting any data that has not yet been transmitted, in order to avoid complex data loss (see Patent Document 1). [Prior art documents] [Patent Documents]
[0003] [Patent Document 1] Patent No. 4589406 [Overview of the project] [Problems that the invention aims to solve]
[0004] Traditionally, transmitting large data (files) such as big data and high-resolution images to other devices has been difficult, as it often takes a long time to transmit the data and can overload certain communication channels.
[0005] This disclosure addresses the challenge of efficiently transmitting data. [Means for solving the problem]
[0006] One example of the present disclosure is a communication system comprising a transmitting device and one or more receiving devices that acquire data transmitted by the transmitting device via one or more relay devices, wherein the transmitting device comprises: a division means for generating a plurality of divided data by dividing data to be transmitted in a predetermined division method; a storage means for storing a plurality of communication paths available between the transmitting device and the one or more relay devices; a selection means for selecting a transmission path for each of the plurality of divided data from the plurality of communication paths so that the plurality of divided data are transmitted distributed over two or more communication paths; and a divided data transmission means for transmitting each of the plurality of divided data to a destination relay device, which is a relay device at the end of the transmission path, via the transmission path selected by the selection means, and each of the one or more receiving devices comprises a divided data acquisition means for acquiring divided data from at least one of the one or more destination relay devices to which at least one divided data is transmitted, by making a divided data transmission request to the at least one relay device.
[0007] Furthermore, this disclosure can be understood as an information processing device, system, method executed by a computer, or program executed by a computer. This disclosure can also be understood as such a program recorded on a recording medium readable by a computer or other device or machine. Here, a recording medium readable by a computer refers to a recording medium that stores information such as data and programs through electrical, magnetic, optical, mechanical, or chemical means and can be read by a computer. [Effects of the Invention]
[0008] According to this disclosure, it will be possible to transmit data efficiently. [Brief explanation of the drawing]
[0009] [Figure 1] This is a schematic diagram showing the configuration of the system according to the embodiment. [Figure 2] This figure shows a schematic representation of the functional configuration of the system according to the embodiment. [Figure 3] This figure illustrates data stored in the transmitting device according to the embodiment. [Figure 4] This is a diagram illustrating the division method using division keywords according to the embodiment. [Figure 5] This figure shows an example of communication channel information according to the embodiment. [Figure 6] This figure shows an example of channel priority data according to the embodiment. [Figure 7] This figure shows an example of communication channel performance value data according to the embodiment. [Figure 8] This diagram illustrates a method for selecting the communication channel to be used for each segmented data according to the embodiment. [Figure 9] This figure shows an example of information included in the segmented transmission data according to the embodiment. [Figure 10] This figure illustrates the data stored in the control information relay device according to the embodiment. [Figure 11]It is a diagram showing an example of a transmission history according to an embodiment. [Figure 12] It is a diagram illustrating data stored in the split data relay device A according to an embodiment. [Figure 13] It is a diagram illustrating data stored in the split data relay device B according to an embodiment. [Figure 14] It is a diagram illustrating data stored in the receiving device according to an embodiment. [Figure 15] It is a flowchart and communication sequence (1) showing an overview of the data transmission / reception processing flow according to an embodiment. [Figure 16] It is a flowchart and communication sequence (2) showing an overview of the data transmission / reception processing flow according to an embodiment. [Figure 17] It is a flowchart and communication sequence (3) showing an overview of the data transmission / reception processing flow according to an embodiment. [Figure 18] It is a flowchart and communication sequence ( / ) showing an overview of the data transmission / reception processing flow according to an embodiment. [Figure 19] It is a flowchart and communication sequence (5) showing an overview of the data transmission / reception processing flow according to an embodiment. [Figure 20] It is a flowchart and communication sequence (6) showing an overview of the data transmission / reception processing flow according to an embodiment. [Figure 21] It is a flowchart showing an overview of the data splitting processing flow according to an embodiment. [Figure 22] It is a flowchart showing an overview of the communication path selection processing flow according to an embodiment. [Figure 23] It is a flowchart showing an overview of the hash value and split data identifier generation processing flow according to an embodiment. [Figure 24] It is a flowchart showing an overview of the split transmission data generation processing flow according to an embodiment. [Figure 25] It is a diagram showing an example of information included in the split transmission data according to Variation 1. [Figure 26]This diagram shows a schematic representation of the system's functional configuration related to Variation 2. [Figure 27] This figure illustrates the data stored in receiver A related to variation 2. [Figure 28] This figure illustrates the data stored in receiver B related to variation 2. [Modes for carrying out the invention]
[0010] The embodiments of the system, method, and program relating to this disclosure will be described below with reference to the drawings. However, the embodiments described below are illustrative and not limited to the specific configurations of the system, method, and program relating to this disclosure. In implementation, specific configurations may be adopted as appropriate depending on the manner of implementation, and various improvements and modifications may be made.
[0011] This embodiment describes an embodiment in which the system, method, and program relating to this disclosure are implemented in a system for transmitting and receiving medical data. However, the system, method, and program relating to this disclosure can be broadly used for technologies for transmitting and receiving data, and the scope of application of this disclosure is not limited to the examples shown in the embodiment.
[0012] <System Configuration> Figure 1 is a schematic diagram showing the configuration of the system according to this embodiment. The system according to this embodiment comprises a transmitting device 1 that can communicate with each other by being connected to a network, one or more relay devices 2, a receiving device 7, one or more storage devices 4, and one or more processing devices 6. The transmitting device 1 is connected to one or more relay devices 2 via a router 8 and a provider 9 so as to be able to communicate with each other. In this embodiment, the relay devices 2 include a control information relay device 3 and one or more segmented data relay devices 5. However, the specific configuration of the system according to this embodiment can be omitted, replaced, or added as appropriate depending on the embodiment. For example, at least some of the functions of the control information relay device 3 (for example, a second storage unit 41, a control information receiving unit 42, a control information transfer unit 44, etc.) may be provided by the segmented data relay device 5. In this case, when the receiving device 7 receives segmented transmission data transmitted by the transmitting device 1, it can acquire control information used to receive the segmented transmission data without connecting to a device that does not store the segmented transmission data (control information relay device 3). Furthermore, it is also possible to transmit control information from the transmitting device 1 to the receiving device 7, in which case the system according to this embodiment does not need to include a control information relay device 3.
[0013] In this embodiment, the divided data relay devices 5 are exemplified as divided data relay device A (divided data relay device 5a), divided data relay device B (divided data relay device 5b), and divided data relay device C (divided data relay device 5c). Also in this embodiment, the storage devices 4 are exemplified as storage device A (storage device 4a), storage device B (storage device 4b), and storage device C (storage device 4c). Also in this embodiment, the processing devices 6 are exemplified as processing device A (processing device 6a), processing device B (processing device 6b), and processing device C (processing device 6c). Furthermore, in this embodiment, the providers 9 are exemplified as provider X (provider 9x), provider A (provider 9a), provider B (provider 9b), and provider C (provider 9c). However, the number of divided data relay devices 5, storage devices 4, and processing devices 6 in the system according to this embodiment may be any number. Also, the number of providers 9 may be any number.
[0014] In this embodiment, as shown in Figure 1, it is possible to use Provider X between Transmitter 1 and Control Information Relay 3, Providers A and B between Transmitter 1 and Split Data Relay A, Provider C between Transmitter 1 and Split Data Relay B, and Provider C between Transmitter 1 and Split Data Relay C. Thus, in this embodiment, by contracting with multiple different providers between Transmitter 1 and the multiple Split Data Relays 3, it is possible to have multiple communication paths between Transmitter 1 and the multiple Split Data Relays 3. In this embodiment, the ID of Transmitter 1 will be "XYZ" and the ID of Receiving Device 7 will be "ABC" for the following explanation.
[0015] Transmitting device 1 is a computer equipped with a CPU (Central Processing Unit) 11, ROM (Read Only Memory) 12, RAM (Random Access Memory) 13, a storage device 14 such as an EEPROM (Electrically Erasable and Programmable Read Only Memory) or HDD (Hard Disk Drive), and a communication unit 15 such as a NIC (Network Interface Card). Transmitting device 1 divides the data to be transmitted (hereinafter referred to as "data to be transmitted"), generates multiple divided data, and then transmits the multiple divided data to the divided data relay device 5 by distributing them across multiple communication channels (parallel transmission). Transmitting device 1 also transmits control information, which will be described later, to the control information relay device 3. The data to be transmitted may be any type of data, such as medical image data, sensor data, or cooking image data.
[0016] The control information relay unit 3 is a computer equipped with a CPU 31, ROM 32, RAM 33, storage devices 34 such as EEPROM and HDD, and communication units 35 such as NIC. The control information relay unit 3 receives control information from the transmitting device 1 and transmits (transfers) the control information to the receiving device 7 in response to a request from the receiving device 7.
[0017] Each divided data relay unit 5 (divided data relay units A to C) is a computer equipped with a CPU 51, ROM 52, RAM 53, storage devices 54 such as EEPROM or HDD, and communication units 55 such as NIC. Each divided data relay unit 5 receives divided data from the transmitting device 1 and transmits (transfers) the divided data to the receiving device 7 in response to a request from the receiving device 7.
[0018] The receiving device 7 is a computer equipped with a CPU 71, ROM 72, RAM 73, a storage device 74 such as an EEPROM or HDD, a communication unit 75 such as a NIC, and the like. The receiving device 7 requests the control information relay device 3 to transmit control information and requests the divided data relay device 5 to transmit divided data.
[0019] The storage device 4 and the processing device 6 are also computers equipped with a CPU, ROM, RAM, storage devices such as EEPROM and HDD, and communication units such as NICs. The storage device 4 receives and stores data (data to be transmitted (original data) and segmented data, etc.) from the receiving device 7. The storage device 4 may be, for example, a network storage device such as a file sharing server. The processing device 6 retrieves the data stored in the storage device 4 from the storage device 4 and performs predetermined processing (subsequent processing) using that data.
[0020] However, the specific hardware configuration of the transmitting device 1, control information relay device 3, segmented data relay device 5, receiving device 7, storage device 4, and processing device 6 can be omitted, replaced, or added as appropriate depending on the implementation. For example, the transmitting device 1, control information relay device 3, segmented data relay device 5, receiving device 7, storage device 4, and processing device 6 may be equipped with input / output devices (e.g., touch panel displays, speakers, microphones, displays, keyboards, mice, etc.). Furthermore, the transmitting device 1, control information relay device 3, segmented data relay device 5, receiving device 7, storage device 4, and processing device 6 are not limited to devices consisting of a single enclosure. The transmitting device 1, control information relay device 3, segmented data relay device 5, receiving device 7, storage device 4, and processing device 6 may be implemented by multiple devices using so-called cloud or distributed computing technologies.
[0021] Figure 2 is a diagram illustrating the schematic functional configuration of the system according to this embodiment. In Figure 2, for ease of illustration, only one of each device is shown. The transmitting device 1 functions as an information processing device comprising a first storage unit 21, a division unit 22, a selection unit 23, a port control unit 24, a control information generation unit 25, a divided transmission data generation unit 26, a control information transmission unit 27, a divided data transmission unit 28, and a first identifier transmission unit 29, by having the program recorded in the storage device 14 read into the RAM 13 and executed by the CPU 11, thereby controlling each hardware component of the transmitting device 1. In this embodiment and other embodiments described later, each function of the transmitting device 1 is executed by the CPU 11, which is a general-purpose processor, but some or all of these functions may be executed by one or more dedicated processors. Furthermore, some or all of these functions may be executed by devices installed in remote locations or by multiple distributed devices using cloud technology or the like.
[0022] The first storage unit 21 stores various types of data (information). Specifically, the first storage unit 21 stores various programs used to control the transmitting device 1, as well as various types of data such as data to be transmitted and predefined information, in the storage device 14. The first storage unit 21 also stores various types of data such as divided data in the RAM 13.
[0023] Figure 3 is a diagram illustrating the data stored in the transmitting device 1 (first storage unit 21) according to this embodiment. The first storage unit 21 stores the data to be transmitted, startup parameters, and predefined information (first predefined information) in the storage device 14 as preparation before transmitting the data to be transmitted (divided data). The startup parameters are values (command line arguments) passed to the program when starting the program that executes the data transmission process in the transmitting device 1 (the process of the transmitting device 1 shown in Figure 15). As shown in Figure 3, the startup parameters include the division method, data type, number of lines used, number of simultaneously connected ports, whether or not automatic adjustment is performed, the transmitting device ID and password for connecting to the control information relay 3, the transmitting device ID and password for connecting to the divided data relay 5, the receiving device ID of the receiving device 7 and the password for each transmitting device ID for each receiving device, whether or not merging is performed, the received file name, the received folder name, information for connecting to the control information relay 3 (IP address), information for connecting to the divided data relay 5 (IP address), encryption key, etc. The transmitter ID and password for connecting to the control information relay 3, the transmitter ID and password for connecting to the divided data relay 5, and the receiver ID and password for each receiver transmitter ID of the receiver 7 are provided in advance by the control information relay 3, etc., and stored in the transmitter 1. The encryption key is also provided in advance by the receiver 7 and stored in the transmitter 1. The first predefined information is information that is predefined in the transmitter 1, and as shown in Figure 3, it includes communication channel information and communication channel priority data. When the performance value of each communication channel is obtained by the selection unit 23, the first storage unit 21 stores the communication channel performance value data in the storage device 14.
[0024] The first storage unit 21 stores data such as the data to be transmitted (the data to be transmitted read from the storage device 14), divided data, divided encrypted data, divided data-related information, divided transmission data, and control information in the RAM 13. The divided data-related information is information related to the divided data obtained by dividing the data to be transmitted, and as shown in Figure 3, it includes hash values, self-identifiers, other divided data identifiers, etc. Details of the various data stored by the first storage unit 21 shown in Figure 3 will be explained below.
[0025] The splitting unit 22 obtains a splitting method (a predetermined splitting method) specified in advance by the user or the like from the storage device 14, and splits the data to be transmitted using the obtained method. The "splitting method" is a method for splitting the data to be transmitted. Various methods may be used for the splitting method. For example, the data to be transmitted may be split in units of a specified number of bytes. Also, if the data to be transmitted is an image file, the data to be transmitted may be split in units of a specified image size (such as specifying height x width in pixels). Also, if the data to be transmitted is a text file, the data to be transmitted may be split in units of a specified number of lines (number of line breaks). Also, if the data to be transmitted is a text file, the data to be transmitted may be split at the location where a specific keyword (hereinafter, "splitting keyword") appears. Furthermore, the splitting method may be a combination of two or more of the four methods described above: splitting in units of a specified number of bytes, splitting by a specified image size, splitting in units of a specified number of lines, and splitting at the location where a splitting keyword appears. The splitting method may be stored in the storage device 14 by specifying the splitting method in advance by the user, such as the operator of the transmitting device 1. The data to be transmitted is divided by the division unit 22, generating multiple divided data sets. The data may be divided to generate a predetermined number of divided data sets, or any number of divided data sets may be generated by dividing it according to a specified division method. The division method may also be specified for each data set to be transmitted or for each data type of the data set to be transmitted. The division unit 22 may also divide the data to be transmitted only if the data set satisfies predetermined division conditions. For example, the data to be transmitted may be divided only if it exceeds a predetermined size or if it belongs to a predetermined data type.
[0026] In this embodiment, as shown in Figure 3, the text data "XXXXX" is used as the data to be transmitted, and the five divided data generated by splitting the data are exemplified by the order in which the data is split (order at the time of splitting): "AAAAA", "BBBBB", "CCCCC", "DDDDD", and "EEEEE". For example, when text data is split into five divided data, the beginning of the text data is "AAAAA" and the end is "EEEEE". However, "XXXXX" and "AAAAA" to "EEEEE" are examples of each data and do not represent the actual values or lengths of the data. The method of splitting at the occurrence of the splitting keyword will be explained in detail below.
[0027] Figure 4 is a diagram illustrating the division method using division keywords according to this embodiment. As shown in Figure 4, the data to be transmitted can be divided by keywords related to the date, sensor ID, data generation location, page (page number), etc. For example, it is possible to divide the data at the location where the date appears (up to the location immediately preceding the date), such as "2024-01-01" or "2024-01-02" (in the example in Figure 4, it is divided into three data). It is also possible to divide the data at the location where the sensor ID appears, such as "sensor A" or "sensor B" (in the example in Figure 4, it is divided into four). Furthermore, it is possible to divide the data at the location where the data generation location appears, such as "Tokyo Station" or "Shinagawa Station" (in the example in Figure 4, it is divided into four). Finally, it is possible to divide the data at the location where the page (page number) appears, such as "page1" or "page2" (in the example in Figure 4, it is divided into two).
[0028] The selection unit 23 selects a communication path for transmitting the divided data to be transmitted (divided data) from a plurality of available communication paths (a plurality of communication paths available between the transmitting device 1 and one or more relay devices 2). In this embodiment, "communication path" is a path (route) for transmitting data between the transmitting device 1 and the relay device (divided data relay device 5). In this embodiment, the transmission path (communication path to be used for transmission) for each divided data is selected (determined) so that the plurality of divided data obtained by dividing the data to be transmitted are distributed and transmitted across two or more communication paths. First, the selection unit 23 obtains the number of lines to be used stored in the storage device 14. Then, the selection unit 23 selects the number of communication paths equal to the number of lines to be used from the plurality of available communication paths defined in the communication path information stored in the storage device 14. "Number of lines to be used" is the number of communication paths (circuit paths) used to transmit the data to be transmitted (divided data), and a predetermined number of two or more is specified. The number of lines to be used may be the same for all data to be transmitted, or different numbers may be specified for each data to be transmitted or for each data type of data to be transmitted.
[0029] Figure 5 shows an example of channel information according to this embodiment. The channel information shown in Figure 5 defines four available channels between the transmitting device 1 and one or more relay devices 2 (divided data relay devices 5). Specifically, channel 1-A using Provider A and divided data relay device A, channel 2-A using Provider B and divided data relay device A, channel 3-B using Provider C and divided data relay device B, and channel 3-C using Provider C and divided data relay device C are defined. Thus, in this embodiment, a channel is expressed by connecting "channel" with a hyphen, such as "channel 2-A", followed by the identifier of the provider used for communication between the transmitting device 1 and the divided data relay device 5 (e.g., 2 (Provider B)) and the identifier of the divided data relay device 5 that is the data transmission destination (transmission destination) (e.g., A (divided data relay device A)). In this embodiment, the number of channels required for use are selected from these four channels. Note that the channel information may be stored as part of the channel priority data or channel performance value data. Furthermore, in this embodiment, multiple communication paths are defined (prepared) depending on the combination of the provider and the divided data relay device 5, but any communication path may be defined as long as multiple communication paths are defined between the transmitting device 1 and one or more divided data relay devices 5.
[0030] Two methods are exemplified for selecting a communication channel: a method using predefined channel priorities (the first method) and a method using the performance values of the communication channels (the second method). In this embodiment, the choice of which of the two methods to use is predetermined as a startup parameter. Specifically, if the startup parameter "Automatic Adjustment" is set to "Yes (On)", the second method is used, and if it is set to "No (Off)", the first method is used. "Automatic Adjustment" is a parameter that defines whether or not there is an automatic adjustment function that selects the best communication channel based on the line speed of each communication channel (i.e., whether or not the second method is adopted). However, the above method is just an example, and any method may be used to select a communication channel. The first and second methods will be described below.
[0031] (Method 1) In the first method, a predefined channel priority (channel priority data stored in the storage device 14) is used to select multiple channels from among the available channels to be used for transmitting multiple segmented data generated from the data to be transmitted.
[0032] Figure 6 shows an example of channel priority data (priority information) according to this embodiment. The channel priority data shown in Figure 6 has predefined priorities for each of the four channels defined in Figure 5. Specifically, in order of highest priority, channel 1-A is assigned a priority of 100, channel 2-A is assigned a priority of 50, channel 3-B is assigned a priority of 50, and channel 3-C is assigned a priority of 30. In the first method, the number of channels corresponding to the number of lines in use are selected in order of highest priority. For example, if the number of lines in use is 3 and the channel priority data to be used is the data shown in Figure 6, the selection unit 23 selects the top three channels with the highest priority: channel 1-A, channel 2-A, and channel 3-B. Note that the priority of each channel may also be defined for different time periods. Furthermore, if the first method is not used to select the channels, the transmitting device 1 does not need to have channel priority data.
[0033] (Second method) In the second method, performance values for each communication channel (performance value information indicating the performance value of each communication channel) are used to select multiple communication channels from among the available channels to be used for transmitting multiple segmented data generated from the data to be transmitted.
[0034] Figure 7 shows an example of channel performance value data (performance value information) according to this embodiment. The channel performance value data shown in Figure 7 stores performance values (channel performance values) obtained for the four channels defined in Figure 5. The "performance value" is a value that indicates the degree to which the state of the channel (line state) is good. In this embodiment, the value corresponding to the line speed of the channel is used as the performance value. In the channel performance value data shown in Figure 7, the performance values are stored in order of best performance: channel 2-A has a performance value of 120, channel 1-A has a performance value of 100, channel 3-B has a performance value of 50, and channel 3-C has a performance value of 50. In the second method, the selection unit 23 performs communication for performance measurement for each channel defined in the channel information and obtains the performance value by measuring the line speed. For example, the line speed itself (Ping (Packet Internet Groper) value, download speed, etc.) may be used as the performance value, or a value obtained using the line speed and a predetermined calculation formula may be used as the performance value. Furthermore, the communication used for performance measurement can be any communication that allows for the measurement of the communication channel's performance. Then, the communication channels are selected in descending order of the acquired performance values (from best to worst performance), corresponding to the number of uses. For example, if the number of lines used is 3 and the performance values of each communication channel are as shown in Figure 7, the selection unit 23 will select communication channels 1-A, 2-A, and 3-B (or 3-C) with the top 3 performance values. In this way, by judging the line status and selecting the specified number of communication channels in descending order of line speed, it becomes possible to automatically select the optimal communication channel from multiple communication channels.
[0035] Furthermore, if the performance values are the same, as in the case of communication channels 3-B and 3-C, and it is necessary to select only one of the communication channels due to the number of lines used, a predetermined priority condition may be set, and the communication channel that meets that predetermined priority condition may be selected (the same applies when the priority is the same). For example, the predetermined priority condition may be a condition that specifies the preferred provider 9, or a condition that specifies the preferred divided data relay device 5, etc. Alternatively, one of the communication channels may be selected randomly. Also, if the second method is not used to select a communication channel, the transmitting device 1 does not need to have communication channel performance value data.
[0036] The selection unit 23, after selecting multiple communication channels to be used for transmitting multiple divided data generated from the data to be transmitted using the first or second method described above, determines which communication channel (transmission channel) to be used for transmitting the divided data from among the selected multiple communication channels for each divided data. For example, as shown in Figure 3, if the data to be transmitted is divided into five divided data: "AAAAA", "BBBBB", "CCCCC", "DDDDD", and "EEEEE", the unit determines which communication channel to use for transmitting each of these five divided data. Two methods are exemplified for selecting a communication channel for each divided data: a method using priority and a method using performance values, as shown in the first and second methods described above. Which method to use may be predetermined. The method using priority (communication channel priority data shown in Figure 6) will be described below.
[0037] Figure 8 is a diagram illustrating the method for selecting the communication channel to be used for each segmented data according to this embodiment. As described above, Figure 8 assumes that the number of lines used is 3 and the communication channel priority data used is the data shown in Figure 6, and that communication channels 1-A, 2-A, and 3-B are selected as the communication channels to transmit multiple segmented data. In other words, Figure 8 illustrates a method for selecting which communication channel to use from communication channels 1-A, 2-A, and 3-B for each of the segmented data "AAAAA", "BBBBB", "CCCCC", "DDDDD", and "EEEEE". As a method of selection using priority, a method of generating a random number for each segmented data is illustrated in Figure 8. First, the ratio of each communication channel (priority ratio) is calculated based on the priority of each communication channel, communication channels 1-A, 2-A, and 3-B. The ratio is a normalized value of priority, for example, a value scaled from a minimum value of 0 to a maximum value of 1. In Figure 8, the ratio for communication channel 1-A is calculated to be 0.5, the ratio for communication channel 2-A is 0.25, and the ratio for communication channel 3-B is 0.25. Based on these ratios, upper and lower limits for the random numbers are set for each communication channel. Then, when a random number (a value between 0 and 1) is generated for each divided data, the generated random number is compared with the upper and lower limits for the random number to determine which communication channel it belongs to.
[0038] In Figure 8, the segmented data "AAAAA" is determined to use channel 2-A because the generated random number is 0.64. Similarly, the segmented data "BBBBB" is determined to use channel 3-B because the generated random number is 0.80, the segmented data "CCCCC" is determined to use channel 1-A because the generated random number is 0.35, the segmented data "DDDDD" is determined to use channel 3-B because the generated random number is 0.91, and the segmented data "EEEEE" is determined to use channel 1-A because the generated random number is 0.16. From this, it becomes possible to allocate communication channels with a probability according to the priority (transmission priority) of the communication channels. With the communication channels determined in this way, it is determined that the segmented data "AAAAA", "CCCCC", and "EEEEE" will be sent to segmented data relay A, and the segmented data "BBBBB" and "DDDDD" will be sent to segmented data relay B. Furthermore, if, as a result of generating random numbers for each divided data, the same communication channel is selected for all divided data, that is, if only one communication channel is selected for all divided data, then random numbers will be generated again for each divided data to re-select the channels so that the multiple divided data are distributed across multiple communication channels.
[0039] The method of selecting the transmission path for each divided data using priority is not limited to the method of generating random numbers described above; any other method using priority may be used. For example, the transmission path for each divided data may be selected so that a number of divided data is allocated roughly according to the priority ratio. Similarly, when selecting the transmission path for each divided data using performance values, it is possible to use methods such as generating random numbers or other methods. This makes it possible to allocate communication channels with a probability corresponding to the performance ratio (line speed ratio) of the communication channels. Furthermore, methods other than those using priority and performance values may be used to select the transmission path for each divided data. For example, the transmission path for each divided data may be selected so that the divided data is allocated roughly equally to multiple communication channels determined to be used for transmitting multiple divided data generated from the data to be transmitted.
[0040] Furthermore, as described above, since the transmission path for each divided data is determined so that it is distributed across multiple communication paths, it is conceivable that either all divided data is transmitted to a single divided data relay device, or that the divided data is distributed and transmitted to multiple divided data relay devices. The selection unit 23 may also determine the transmission path for each divided data so that the multiple divided data divided from the data to be transmitted are always distributed and transmitted to multiple divided data relay devices 5. For example, the number of divided data relay devices 5 to be used for transmitting divided data (number of destination relay devices) may be set in advance, and communication paths equal to the number of lines used may be selected so that the number of divided data relay devices 5 equal to the number of destination relay devices is used. For example, consider the case where communication paths are selected using the communication path performance value data shown in Figure 7, and the number of lines used is set to 3 and the number of destination relay devices is set to 3 in advance. In this case, since the number of destination relay devices is 3, it is necessary to select three communication paths corresponding to divided data relay devices A, B, and C, respectively. Therefore, it is determined that communication paths 3-B and 3-C will be used, and for the communication path corresponding to divided data relay device A, communication path 2-A, which has a better performance value, is selected. As a result, multiple divided data will be distributed and transmitted to divided data relay devices A, B, and C. Alternatively, for example, once the transmission path for each divided data has been determined by the method described above, it may be determined whether the divided data will be transmitted to the number of divided data relay devices 5 equal to the number of destination relay devices. If it is determined that the data will not be transmitted, the transmission path for each divided data may be re-selected using the method described above. In this way, by distributing and transmitting multiple divided data to multiple divided data relay devices 5, each divided data relay device will only store a portion of the divided data and will not store the original data to be transmitted. Therefore, even if one divided data relay device is attacked, the risk of the theft of the data to be transmitted itself can be reduced.
[0041] The port control unit 24 controls the communication ports provided by the transmitting device 1. In this embodiment, first, the port control unit 24 obtains the number of simultaneously connected ports stored in the storage device 14. Then, for each communication path used with the divided data relay device 5, the port control unit 24 opens the number of communication ports equal to the number of simultaneously connected ports obtained. In other words, multiple communication ports are opened between the transmitting device 1 and the divided data relay device 5. The "number of simultaneously connected ports" is the number of communication ports that are simultaneously connected (communication ports that are opened) for each communication path used to transmit divided data. The number of simultaneously connected ports may be set to the same number for all communication paths, or different numbers may be set for each communication path. In this embodiment, since UDP (User Datagram Protocol) communication, which does not provide a transmission guarantee function but is excellent in high speed, is used for transmitting divided data, the port control unit 24 opens the number of UDP ports equal to the number of simultaneously connected ports.
[0042] The control information generation unit 25 generates control information. The control information is control information relating to the data to be transmitted, and is information for controlling the processing of the data to be transmitted in the receiving device 1 (such as the method of acquiring the data transmitted from the transmitting device 1 (divided data of the data to be transmitted) (acquisition destination, etc.) and the processing of the received data). Control information is generated for each data to be transmitted. As shown in Figure 3, the control information includes the number of divisions, destination divided data relay information, data type, whether or not to merge, received file name, received folder name, data to be transmitted identifier, etc. The "number of divisions" is the number of divided data generated by dividing the data to be transmitted (total number of divisions of the data to be transmitted (total number of divided data)). The "destination divided data relay information" is information (such as relay name and relay ID) indicating the destination divided data relay (hereinafter referred to as "destination relay") to which at least one of the multiple divided data generated by dividing the data to be transmitted will be sent. In the example shown in Figure 8 above, it is decided to send the segmented data "AAAAA", "CCCCC", and "EEEEE" to segmented data relay A, and the segmented data "BBBBB" and "DDDDD" to segmented data relay B. As a result, the control information includes information about segmented data relay A and B (e.g., relay ID) as destination segmented data relay information. "Data type" is the type of data to be transmitted (segmented data), such as "medical image data", "sensor data", or "cooking image data". The data type is used in subsequent processing described later. "Merge or not" specifies whether to merge (combine) the multiple segmented data acquired by the receiving device 7 when segmented data is acquired (to merge and output to the storage device 4). "Received file name" specifies the file name to be given to the merged segmented data when merge is specified. "Received folder name" specifies the name of the folder (received folder) where the merged segmented data is saved when merge is specified. This received folder is created in the storage device 4. The "transmission target identifier" is an identifier that can uniquely identify the data to be transmitted. The control information generation unit 25 issues (generates) the transmission target identifier.Furthermore, since there is a one-to-one correspondence between the data to be transmitted and the control information, the data to be transmitted identifier is also an identifier that can uniquely identify the control information (control information identifier). Any information can be used as the data to be transmitted identifier (control information identifier), as long as it is an identifier that can uniquely identify the data to be transmitted (control information). For example, a UUID (Universally Unique Identifier) may be used. In the example in Figure 3, "CID01" is used as the data to be transmitted identifier (identifier of control information 1) for the data to be transmitted "XXXXX".
[0043] Furthermore, if the data to be transmitted is image data, the control information may include information that identifies the position of each segmented data (partial image) within the data to be transmitted (referred to as "position identification information"). For example, if segmented data is segmented according to a specified image size, the control information may include the number of horizontal segmentations (the number of horizontal segmentations when the data to be transmitted is segmented). As a specific example, let's assume the image size of the data to be transmitted is 1500 pixels high x 2000 pixels wide, and the specified segmentation size (size of segmented data) is 100 pixels high x 100 pixels wide. In this case, the "number of horizontal segmentations" will be 20. Based on this number of horizontal segmentations and the other segmented data identifier described later, it becomes possible to identify the position of each segmented data within the data to be transmitted. For example, let's assume that image data is segmented into 40 segmented data (segmented images). In this case, by first referring to the other segmented data identifier for each segmented data, it is possible to identify the order in which each segmented data was segmented. Then, each divided data is merged to the right from the starting point in the order it was divided. After merging up to the 20th divided data, the 21st divided data is merged one row below the 1st divided data (starting point), and from there, it is merged further to the right up to the 40th divided data. This makes it possible to reconstruct the image data. However, if the transmitting device 1 and the receiving device 7 have shared information regarding the method of dividing (merging) the image data in advance, the control information does not need to include position identification information. However, the position identification information is not limited to the number of horizontal divisions, but may also be information indicating the position (arrangement) of each divided data. The divided data, which is image data, may include information regarding the vertical and horizontal dimensions and the data format (PNG (Portable Network Graphics) or JPG (Joint Photographic Experts Group), etc.).
[0044] The segmented transmission data generation unit 26 generates segmented transmission data. First, the segmented transmission data generation unit 26 generates a hash value and an identifier that uniquely identifies the segmented data (hereinafter referred to as the "segmented data identifier") for each segmented data. The segmented data identifier may be, for example, a UUID, or a key consisting of a combination of the transmission device ID, transmission device number, and a number within the transmission device. For example, if customer A has five transmission devices, the transmission device ID (customer ID) of these five transmission devices is common, and the transmission device number is different for each transmission device (e.g., transmission device numbers 1 to 5). The "number within the transmission device" is a number issued so that the same number is not assigned to each segmented data within the transmission device, and in this embodiment, a sequential number is exemplified. The segmented data identifier for each of the multiple segmented data may be a sequential number according to the order in which the multiple segmented data are arranged in the data to be transmitted, or it may not be a sequential number. The hash value is a value used to verify whether the segmented data has been transmitted correctly (whether it has been tampered with, etc.). Any hash function may be used to calculate the hash value. The divided transmission data generation unit 26 also obtains an identifier for other divided data for each divided data. The "other divided data identifier" of the divided data (first divided data) is an identifier that can uniquely identify the divided data that is one step before or one step after the divided data (the divided data that is one step before or one step after the divided data based on the sequence of divided data in the data to be transmitted) in the sequence of multiple divided data in the data to be transmitted (sequence at the time of division). If there is no subsequent divided data, a code indicating no data (for example, "00") is set as the other divided data identifier.
[0045] Furthermore, the segmented transmission data generation unit 26 generates encrypted segmented data (hereinafter referred to as "segmented encrypted data") by encrypting each segmented data with an encryption key specified in advance by the receiving device 7. In this embodiment, the receiving device 7 has a secret key, and the public key is sent from the receiving device 7 to the transmitting device 1 in advance, enabling secure transmission and reception of segmented data between the transmitting device 1 and the receiving device 7. However, the encryption method for segmented data is not limited to this example, and any encryption method may be used. For example, an encryption method predetermined by the receiving device 7 may be used. The segmented transmission data generation unit 26 then generates merged data (hereinafter referred to as "segmented transmission data") by merging the hash value, segmented data identifier (self identifier), other segmented data identifiers, and segmented encrypted data for each segmented data. If the data to be transmitted is segmented using a segmentation keyword, the segmentation keyword used (for example, "2024-01-01" or "sensor A" in Figure 4) is merged together with the segmented encrypted data, etc. Furthermore, if the data to be transmitted is divided using a method that divides it into a specified number of bytes, a specified image size, or a specified number of lines, the sequential number used at the time of division (an identifier that uniquely identifies the divided data in the data to be transmitted) is merged together with the encrypted divided data, etc. For example, if the data to be transmitted is divided into 100 divided data using a specified image size, a sequential number (a single number between 001 and 100) is issued for each of the 100 divided data, and the number issued for the divided data (sequential number) is merged into the divided transmission data corresponding to that divided data.
[0046] Figure 9 shows an example of information included in the segmented transmission data according to this embodiment. In Figure 9, the identifier for segmented data "AAAAA" is key01, the identifier for segmented data "BBBBB" is key02, the identifier for segmented data "CCCCC" is key03, the identifier for segmented data "DDDDD" is key04, and the identifier for segmented data "EEEEE" is key05. However, key01 to key05 are not the actual identifier values (the actual values are the UUIDs mentioned above), and are referred to as key01 to key05 for convenience. The text data to be transmitted, "XXXXX", is segmented into segmented data "AAAAA", "BBBBB", "CCCCC", "DDDDD", and "EEEEE" in order from the beginning, and as shown in Figure 8, identifiers for other segmented data are set. In this embodiment, the identifier for the segmented data one position after the segmented data in the order at the time of segmentation (hereinafter referred to as the "next segmented data identifier") is used as an example of the other segmented data identifier. For example, for the segmented data "AAAAA", the identifier for the next segmented data, "BBBBB", which is located immediately after segmented data "AAAAA" in the data to be transmitted, is set as key02.
[0047] Note that the segmented data "EEEEE" is the last segmented data in terms of the sequence (order) of the data to be transmitted, so the next segmented data identifier (next segmented data identifier) is set to "00" to indicate that there is no data. In Figure 9, the hash values of the segmented data "AAAAA", "BBBBB", "CCCCC", "DDDDD", and "EEEEE" are h1, h2, h3, h4, and h5, respectively. However, h1 to h5 are not actual hash values, but are referred to as h1 to h5 for convenience. In Figure 9, the encrypted data of the segmented data "AAAAA", "BBBBB", "CCCCC", "DDDDD", and "EEEEE" are referred to as the segmented encrypted data "HHHHH", "IIIII", "JJJJJ", "KKKKK", and "LLLLL", respectively.
[0048] The segmented transmission data generation unit 26 generates segmented transmission data A for segmented data "AAAAA" by merging its own identifier "key01", other segmented data identifier "key02", hash value "h1", and segmented encrypted data "HHHHH". Similarly, segmented transmission data (segmented transmission data B to E) is generated for segmented data "BBBB" to "EEEEE" in the same manner.
[0049] The control information transmission unit 27 connects to the control information relay unit 3 and transmits control information to the control information relay unit 3. The control information transmission unit 27 connects to the control information relay unit 3 using the startup parameters: the transmission device ID and password for connecting to the control information relay unit 3, the receiving device ID of the receiving device 7 and the password for each receiving device's transmission device ID, and information (IP address) for connecting to the control information relay unit 3. Specifically, the control information transmission unit 27 sends the transmission device ID and password for connecting to the control information relay unit 3, as well as the receiving device ID of the receiving device 7 and the password for each receiving device's transmission device ID, to the IP address of the control information relay unit 3. The "receiving device ID of the receiving device 7" is the ID of the receiving device (destination receiving device) that is to receive the data to be transmitted (divided data). The "password for each receiving device's transmission device ID" is a password used in combination with the receiving device ID, and is a password set for each transmission device (transmission device ID). When connecting to the control information relay 3, the receiving device ID and a password for each receiving device-specific transmitting device ID are transmitted, enabling connection authentication checks for the folder of the receiving device (receiving device ID) to which the data to be transmitted (divided data) will be sent. Furthermore, by transmitting the receiving device ID, transmitting device 1 specifies the receiving device 7 (destination receiving device 7) to which it wants to send the control information and the data to be transmitted (divided data). After connecting to the control information relay 3, the control information transmission unit 27 transmits the control information to the control information relay 3. The transmission of the control information is performed using TCP / IP (Transmission Control Protocol / Internet Protocol) communication, which, while lacking in high speed, allows for synchronous communication (emphasizing transmission assurance). However, as described above, transmitting device 1 (control information transmission unit 27) may also transmit the control information to the target receiving device 7 instead of the control information relay 3.
[0050] The segmented data transmission unit 28 transmits the segmented data to the segmented data relay unit 5. In this embodiment, it connects to the segmented data relay unit 5 and transmits the segmented data (segmented encrypted data) to the segmented data relay unit 5. In other words, the segmented data transmission unit 28 transmits the segmented data in an encrypted state. Thus, it is desirable that the segmented data be transmitted encrypted, but an embodiment in which unencrypted segmented data is transmitted is also possible.
[0051] First, the segmented data transmission unit 28 connects to the segmented data relay unit 5 using the startup parameters: the transmitter ID and password for connecting to the segmented data relay unit 5, the receiver ID of the receiver 7 and the password for each receiver-specific transmitter ID, and information (IP address) for connecting to the segmented data relay unit 5. Specifically, the segmented data transmission unit 28 sends the transmitter ID and password for connecting to the segmented data relay unit 5, and the receiver ID of the receiver 7 and the password for each receiver-specific transmitter ID to the IP address of the segmented data relay unit 5. The receiver ID of the receiver 7 and the password for each receiver-specific transmitter ID may be the same as the receiver ID and password sent when connecting to the control information relay unit 3. By sending the receiver ID and the password for each receiver-specific transmitter ID when connecting to the segmented data relay unit 5, it becomes possible to authenticate the connection to the folder of the receiver (receiver ID) to which the data to be transmitted should be delivered. Also, by sending the receiver ID, the transmission unit 1 specifies the receiver 7 to which the data to be transmitted (segmented data) should be delivered.
[0052] After connecting with the divided data relay unit 5, the divided data transmission unit 28 transmits the divided data using the communication path determined (allocated) by the selection unit 23. In other words, each of the multiple divided data (divided data) is transmitted to the divided data relay unit 5 (destination relay) at the end of the transmission path selected by the selection unit 23. At this time, the divided data transmission unit 28 transmits a transmission target identifier along with each divided data. The transmission of the divided data is performed using UDP communication, which is a communication method that offers excellent high speed but does not provide a transmission guarantee function.
[0053] Furthermore, the segmented data transmission unit 28 may determine the line delay status each time it transmits segmented data and automatically adjust the transmission weight (increase or decrease the transmission weight) to match the delay status. Since UDP communication is used to transmit segmented data, there is a possibility of packet loss. For this reason, for example, the transmission weight is adjusted based on the line congestion status to ensure that the transmission timing minimizes packet loss. In addition, in response to a segmented data retransmission request from the segmented data relay unit 5, the segmented data transmission unit 28 transmits the segmented data (segmented data) corresponding to the segmented data identifier specified in the segmented data retransmission request to the segmented data relay unit 5.
[0054] The first identifier transmission unit 29 transmits the identifier of the divided data (divided data identifier) transmitted to the divided data relay unit 5 by the divided data transmission unit 28 to the divided data relay unit 5. In this embodiment, the first identifier transmission unit 29 transmits the divided data identifier of the divided data to the divided data relay unit 5 before transmitting the divided data to the divided data relay unit 5 (for example, immediately before). However, the transmission of the divided data identifier by the first identifier transmission unit 29 may be performed simultaneously with the transmission of the divided data (divided transmission data), or after the transmission of the divided data (immediately after, etc.). The transmission of the divided data identifier by the first identifier transmission unit 29 shall be performed using TCP communication, which enables synchronous communication. This makes it possible for the divided data relay unit 5 to reliably receive the identifier of the divided data transmitted from the transmitting device 1 to its own relay unit (divided data relay unit) 5. In other words, it is possible for the divided data relay unit 5 to reliably grasp the divided data transmitted from the transmitting device 1 to its own relay unit 5.
[0055] The control information relay device 3 functions as an information processing device comprising a second storage unit 41, a control information receiving unit 42, a control information management unit 43, a control information transfer unit 44, a first receiving unit 45, and a first deletion request unit 46. This is achieved by reading the program recorded in the storage device 34 into the RAM 33, executing it by the CPU 31, and controlling the various hardware components of the control information relay device 3. In this embodiment and other embodiments described later, the functions of the control information relay device 3 are executed by the general-purpose processor CPU 31, but some or all of these functions may be executed by one or more dedicated processors. Furthermore, some or all of these functions may be executed by devices installed in remote locations or by multiple distributed devices using cloud technology or the like.
[0056] The second storage unit 41 stores various data (information). Specifically, the second storage unit 41 stores various programs used for controlling the control information relay unit 3, as well as various data such as predefined information, control information, and transmission history in the storage device 34.
[0057] Figure 10 is a diagram illustrating the data stored in the control information relay 3 (second storage unit 41) according to this embodiment. The second storage unit 41 stores predefined information (second predefined information) in the storage device 34 as preparation before control information is acquired from the transmitting device 1. The second predefined information is information that is predefined in the control information relay 3, and as shown in Figure 10, it includes the transmitting device ID and password for connecting to the control information relay 3, the receiving device ID and password for connecting to the control information relay 3, the control information relay ID and password for connecting to the divided data relay 5, the receiving device ID of the receiving device 7 and the password for each transmitting device ID for each receiving device, information for connecting to the divided data relay (IP address) and the number of days to store the information. In this way, the control information relay 3 can authenticate connections using IDs and passwords by the transmitting device 1 and the receiving device 7 by storing the IDs (transmitting device ID and receiving device ID) and passwords used by the transmitting device 1 and the receiving device 7 when connecting to itself. Furthermore, as described above, in order for the control information relay 3 to perform connection authentication checks to the folder of the receiving device (receiving device ID), the second storage unit 41 stores the receiving device ID of the receiving device 7 and the password for each receiving device-specific transmitting device ID. "Information for connecting to the segmented data relay device (IP address)" is information about the segmented data relay device 5 (a segmented data relay device 5 to which the control information relay 3 may connect) provided by the system according to this embodiment. "Storage period" is the number of days for which the control information relay 3 stores (stores) the control information, and control information stored for longer than the storage period will be deleted from the control information relay 3.
[0058] Furthermore, when the control information is received by the control information receiving unit 42, the second storage unit 41 stores the control information in the storage device 34. Specifically, the second storage unit 41 stores the control information in association with the receiving device 7 to which the data to be transmitted should be delivered (the receiving device 7 specified by the transmitting device 1 when the transmitting device 1 and the control information relay device 3 are connected). For example, as shown in Figure 10, the second storage unit 41 creates a folder for each receiving device ID in the storage device 34 (in Figure 10, folders for receiving devices A and B and folders for receiving device XX are shown as examples) and stores the control information in the created folders. The date on which the storage (memory) of the control information was started (hereinafter referred to as the "storage date") is stored in association with the control information. In this embodiment, when storing the control information, the file name of the control information is used as the transmission target identifier. The second storage unit 41 also stores the history of when control information has been sent to the receiving device 7 as the transmission history. Furthermore, control information and transmission history may be configured in advance on the control information relay device 3 to be stored in RAM 33 instead of storage device 34.
[0059] Figure 11 shows an example of a transmission history according to this embodiment. As shown in Figure 11, the transmission history stores the ID and No. of the receiving device to which the control information is transmitted, the identifier of the control information (control information identifier (transmission target identifier)), and the status (transmission in progress, transmission completed, etc.). Information about the control information for which a transmission request has been made from the receiving device 7 to the control information relay device 3 is stored in the transmission history. When the transmission of the control information starts in response to the transmission request, the status becomes "transmission in progress," and when the transmission of the control information is completed, the status becomes "transmission completed." The transmission history may also store the date and time on which the control information was transmitted.
[0060] The control information receiving unit 42 accepts the connection from the transmitting device 1 and receives control information from the transmitting device 1. The control information receiving unit 42 compares the information transmitted from the transmitting device 1 (transmitting device ID and password for connecting to the control information relay 3, and the receiving device ID of the receiving device 7 and the password for each receiving device-specific transmitting device ID) with the information defined in the second predefined information (transmitting device ID and password for connecting to the control information relay 3, and the receiving device ID of the receiving device 7 and the password for each receiving device-specific transmitting device ID). If the comparison results in a match, the control information receiving unit 42 authenticates the connection from the transmitting device 1 to its own device and the connection to the above receiving device ID folder. After accepting the connection from the transmitting device 1, the control information receiving unit 42 receives control information from the transmitting device 1.
[0061] The control information management unit 43 manages the control information stored in the storage device 34. When the control information management unit 43 receives a request to delete control information from the receiving device 7, it deletes the control information. Specifically, the control information management unit 43 deletes from the control information relay device 3 (storage device 34) the control information identified by the transmission target identifier specified in the control information deletion request received from the receiving device 7 (control information whose file name is the specified transmission target identifier (control information including the specified transmission target identifier)). The control information management unit 43 also refers to the control information stored in the storage device 34 (the date the control information is stored) and determines whether there is any control information stored in the storage device 34 for longer than the "number of days to be stored" defined in the second predefined information. If it determines that such control information exists, it deletes the control information. When the control information management unit 43 deletes control information, it instructs the first deletion request unit 46 to make a deletion request for the segmented transmission data (segmented data) corresponding to the control information.
[0062] The control information transfer unit 44 accepts the connection from the receiving device 7 and transfers (transmits) control information to the receiving device 7. The control information transfer unit 44 compares the information transmitted from the receiving device 7 (receiving device ID and password for connecting to the control information relay 3) with the information defined in the second predefined information (receiving device ID and password for connecting to the control information relay 3). If the two match, the control information transfer unit 44 authenticates the connection from the receiving device 7 to its own unit. After accepting the connection from the receiving device 7, the control information transfer unit 44 transfers the control information stored in association with the receiving device 7 to the receiving device 7. For example, the control information transfer unit 44 transfers the control information (control information 1) stored in the folder for the connected receiving device 7 (receiving device ID "ABC") from the folders for each receiving device shown in Figure 10. However, by referring to the transmission history (see Figure 11), it does not transmit control information that has already been sent to the receiving device 7. Specifically, the second storage unit 41 searches the transmission history using a combination of the receiving device ID, receiving device No., and transmission target identifier of the connected receiving device 7 as a search key. If control information (history) with the same key as the search key is found, that control information is not transmitted to the receiving device 7. In this way, to prevent the transmission of duplicate control information to the receiving device by referring to the transmission history, the second storage unit 41 adds and updates (updates the status) the information related to the transfer process during the transfer process by the control information transfer unit 44 to the transmission history.
[0063] The first receiving unit 45 receives a connection from the receiving device 7 and accepts a control information deletion request. The method for receiving a connection from the receiving device 7 is generally the same as the method described in the control information transfer unit 44, so the explanation is omitted. A control information deletion request is made by specifying the identifier of the control information to be deleted (transmission target identifier), so the first receiving unit 45 obtains the control information identifier (transmission target identifier) to be deleted.
[0064] The first deletion request unit 46 connects to the divided data relay unit 5 and requests the deletion of divided data specifying the target identifier. Based on the target identifier specified in the control information deletion request received from the receiving device 7, the first deletion request unit 46 identifies the divided data relay unit 5 to which the deletion request for divided data should be made. In the example shown in Figure 10, if the target identifier to be deleted is "CID01", then divided data relay units A and B, which are "destination divided data relay unit information" included in the control information (control information 1) containing "CID01", are identified as the divided data relay units 5 to which the deletion request should be made. In other words, the divided data relay unit to which the divided data of the target data corresponding to the control information to be deleted was transmitted is identified. The first deletion request unit 46 then sends the control information relay unit ID and password for connecting to the divided data relay unit 5 to the IP address (IP address defined in the second predefined information) of the identified divided data relay unit 5 (divided data relay units A and B). The first deletion request unit 46 then sends the deletion request for divided data specifying the target identifier. In other words, this requests that the segmented data of the data to be transmitted, corresponding to the control information to be deleted, be deleted. Similarly, when deleting control information that has been stored for longer than the retention period, a request for deletion of the segmented data is made using the same method as described above.
[0065] The divided data relay device 5 functions as an information processing device comprising a third storage unit 61, a divided data receiving unit 62, a first identifier receiving unit 63, a first determination unit 64, a divided data management unit 65, a divided data transfer unit 66, a second identifier transmission unit 67, and a second reception unit 68, by having the program recorded in the storage device 54 read into the RAM 53, executed by the CPU 51, and controlling each piece of hardware provided in the divided data relay device 5. In this embodiment and other embodiments described later, each function of the divided data relay device 5 is executed by the general-purpose processor CPU 51, but some or all of these functions may be executed by one or more dedicated processors. Furthermore, some or all of these functions may be executed by devices installed in remote locations or by multiple distributed devices using cloud technology or the like.
[0066] The third storage unit 61 stores various types of data (information). Specifically, the third storage unit 61 stores various programs used to control the divided data relay device 5, as well as various types of data such as predefined information and divided transmission data, in the storage device 54.
[0067] Figure 12 is a diagram illustrating the data stored in the divided data relay device A (third storage unit 61) according to this embodiment. The third storage unit 61 stores predefined information (third predefined information) in the storage device 54 as preparation before divided data is acquired from the transmitting device 1. The third predefined information is information that is predefined in the divided data divider 5, and as shown in Figure 12, it includes the transmitting device ID and password for connecting to the divided data relay device 5, the receiving device ID and password for connecting to the divided data relay device 5, the control information relay device ID and password for connecting to the divided data relay device 5, the receiving device ID of the receiving device 7 and the password for each transmitting device ID for each receiving device, etc. In this way, the divided data divider 5 can authenticate connections using IDs and passwords by the transmitting device 1, the control information relay device 3 and the receiving device 7 by storing the IDs (transmitting device ID, control information relay device ID and receiving device ID) and passwords used by the transmitting device 1, the control information relay device 3 and the receiving device 7 when connecting to itself. Furthermore, as described above, in order for the divided data relay device 5 to perform connection authentication checks to the folder of the receiving device (receiving device ID), the third storage unit 61 stores the receiving device ID of the receiving device 7 and the password for each receiving device-specific transmitting device ID.
[0068] Furthermore, when the divided transmission data is received by the divided data receiving unit 62, the third storage unit 61 stores the divided transmission data in the storage device 54. Specifically, the third storage unit 61 stores the divided transmission data in association with the receiving device 7 to which the transmission target data is to be delivered (the receiving device 7 specified by the transmitting device 1 when the transmitting device 1 and the divided data relay device 5 are connected). The third storage unit 61 also stores the transmission target identifier received by the divided data receiving unit 62 along with the divided transmission data in association with the divided transmission data. For example, as shown in Figure 12, the third storage unit 61 creates a folder for each receiving device ID in the storage device 54 (Figure 12 shows examples of folders for receiving devices A and B and folders for receiving device XX), and within that folder, it further creates a folder for each control information (transmission target identifier) (Figure 12 shows an example of a folder for control information 1), and stores the divided transmission data in this folder for each control information. In this embodiment, as shown in Figure 12, when storing divided transmission data, the file name of the divided transmission data shall be the value of the self-identifier included in the divided transmission data (e.g., "key01"). However, if the divided transmission data includes a division keyword or a sequential number at the time of division, the file name of the divided transmission data shall be a file name that includes the self-identifier and the division keyword or sequential number at the time of division. For example, the file name of the divided transmission data may be a file name in which the division data identifier and the division keyword are connected by an underscore (e.g., "key01_2024-01-01"). In addition, the divided transmission data may be configured to be stored in RAM 53 instead of storage device 54 by prior configuration of the divided data relay device 5.
[0069] In the example shown in Figure 12, a folder for each control information (transmission target identifier) is created within the folder for each receiving device ID. Specifically, in the example shown in Figure 8, as shown in Figure 12, divided transmission data A, divided transmission data C, and divided transmission data E are stored in the folder for control information 1 (folder name is CID01) within the folder for receiving devices A and B of the divided data relay device A.
[0070] Figure 13 is a diagram illustrating the data stored in the divided data relay device B (third storage unit 61) according to this embodiment. As shown in Figure 13, the divided data relay device B also stores the third predefined information, similar to the divided data relay device A. In addition, the divided transmission data received from the transmitting device 1 is also stored in the divided data relay device B. For example, in the example of Figure 8, as shown in Figure 13, the divided transmission data B and divided transmission data D are stored in the folder for control information 1 (folder name is CID01) within the folder for receiving devices ABC of the divided data relay device B.
[0071] The third storage unit 61 may also store in the storage device 54 the history of when the divided data relay unit 5 has transmitted divided data (divided transmission data) to the receiving device 7 as a transmission history. For example, the divided data identifier of the divided data transmitted to the receiving device 7 may be written (added) to the transmission history. In this case, the divided data transfer unit 66 may transfer only the untransmitted divided data by referring to the transmission history. However, if a request for retransmission of divided data is received from the receiving device 7, the divided data specified by the receiving device 7 may be transferred without referring to the transmission history. The transmission history may be set to be stored in the RAM 53 instead of the storage device 54 by prior settings of the divided data relay unit 5.
[0072] The segmented data receiving unit 62 accepts the connection from the transmitting device 1 and receives segmented data (segmented transmission data) and a transmission target identifier from the transmitting device 1. The segmented data receiving unit 62 compares the information transmitted from the transmitting device 1 (transmitting device ID and password for connecting to the segmented data relay device 5, and the receiving device ID of the receiving device 7 and the password for each receiving device-specific transmitting device ID) with the information defined in the third predefined information (transmitting device ID and password for connecting to the segmented data relay device 5, and the receiving device ID of the receiving device 7 and the password for each receiving device-specific transmitting device ID). If the comparison results in a match, the segmented data receiving unit 62 authenticates the connection from the transmitting device 1 to its own unit and the connection to the above receiving device ID folder. After accepting the connection from the transmitting device 1, the segmented data receiving unit 62 receives the segmented transmission data and the transmission target identifier corresponding to the segmented data (the identifier of the transmission target data, which is the source data from which the segmented data was segmented) from the transmitting device 1.
[0073] The segmented data receiving unit 62 then requests the transmitting device 1 to retransmit the segmented data. Specifically, if it determines that there is segmented data that has not been received from the transmitting device 1 (hereinafter, segmented data that has not been received, i.e., has not arrived, will be referred to as "undelivered data"), it sends a segmented data retransmission request to the transmitting device 1, specifying the segmented data identifier of the undelivered data. The segmented data receiving unit 62 then receives the segmented data transmitted from the transmitting device 1 in response to the segmented data retransmission request.
[0074] The first identifier receiving unit 63 receives the segmented data identifier transmitted from the transmitting device 1 (first identifier transmitting unit 29). The reception of the segmented data identifier by the first identifier receiving unit 63 is performed using TCP communication, which enables synchronous communication. As a result, as described above, the segmented data relay device 5 can reliably receive the segmented data identifier transmitted from the transmitting device 1 to itself (the segmented data relay device) 5.
[0075] The first determination unit 64 determines whether a request for retransmission of segmented data to the transmitting device 1 is necessary. Specifically, the first determination unit 64 determines whether there is any segmented data (undelivered data) that has not been received from the transmitting device 1. If it determines that there is undelivered data, it instructs the segmented data receiving unit 62 to execute a retransmission request. The segmented data that has not been received from the transmitting device 1 at the segmented data relay unit 5 (undelivered data from the transmitting device 1) refers to segmented data that is included in multiple segmented data segments that have been segmented from the data to be transmitted, and which has been transmitted from the transmitting device 1 to the segmented data relay unit 5 but has not been received by the segmented data relay unit 5 (has not reached the segmented data relay unit 5).
[0076] Whether or not there is undelivered data from the transmitting device 1 can be determined by referring to the self-identifier (an identifier indicating the divided data included in the divided transmission data) contained in the divided transmission data received by the divided data receiving unit 62 and the divided data identifier received by the first identifier receiving unit 63. Specifically, the first determination unit 64 determines, for each divided data identifier received by the first identifier receiving unit 63, whether or not the divided transmission data containing that divided data identifier as its self-identifier has been received by the divided data receiving unit 62. In other words, the first determination unit 64 determines whether or not the divided data (divided transmission data) corresponding to the divided data identifier received by the first identifier receiving unit 63 has been received by the divided data relay unit 5. If the divided data corresponding to the divided data identifier (for example, key03) received by the first identifier receiving unit 63 has not been received, the first determination unit 64 can determine that the divided transmission data indicated by that divided data identifier (for example, divided transmission data C indicated by key03) has not been delivered from the transmitting device 1. In this case, a request for retransmission of segmented data (a request for retransmission of segmented transmission data C) specifying key03 is sent from the segmented data receiving unit 62 to the transmitting device 1.
[0077] The segmented data management unit 65 manages the segmented transmission data (segmented data) stored in the storage device 54. When the segmented data management unit 65 receives a request to delete segmented transmission data from the control information relay device 3, it deletes the segmented transmission data. Specifically, the segmented data management unit 65 deletes the segmented transmission data stored in association with the transmission target identifier specified in the segmented data deletion request received from the control information relay device 3 from the segmented data relay device 5 (storage device 54). For example, in the case of the example in Figure 12, if the transmission target identifier "CID01" is specified from the control information relay device 3, the segmented transmission data (segmented transmission data A, C, E) in the folder for control information 1, which is a folder for each piece of control information corresponding to the transmission target identifier, will be deleted.
[0078] The segmented data transfer unit 66 receives a connection request and a request to transmit segmented transmission data (segmented data) from the receiving device 7 (hereinafter, the request to transmit (or transfer) segmented transmission data (segmented data) will be referred to as a "segmented data transmission request"), and transfers (transmits) the segmented transmission data (segmented data) to the receiving device 7. The segmented data transfer unit 66 compares the information transmitted from the receiving device 7 (receiving device ID and password for connecting to the segmented data relay device 5) with the information defined in the third predefined information (receiving device ID and password for connecting to the segmented data relay device 5). If the two match as a result of the comparison, the segmented data transfer unit 66 authenticates the connection from the receiving device 7 to its own unit. After receiving the connection from the receiving device 7, the segmented data transfer unit 66 transfers to the receiving device 7 the segmented transmission data stored in association with the receiving device 7 and the transmission target identifier received from the receiving device 7. For example, the segmented data transfer unit 66 transfers the segmented transmission data stored in the folder for control information 1 corresponding to the transmission target identifier specified in the segmented data transmission request, which is located within the folder for the connected receiving device 7 (receiving device ID) (e.g., the folder for receiving devices ABC) among the folders for each receiving device shown in Figure 12.
[0079] Specifically, in the case of Figure 12, the unit refers to the folder for control information (folder for control information 1) corresponding to the transmission target identifier "CID01" received from the receiving device 7, which is located in the folder for receiving device ABC corresponding to the receiving device ID "ABC" received from the receiving device 7. If there is data in this referred folder, the divided data transfer unit 66 acquires the data (divided transmission data A, divided transmission data C, divided transmission data E) as the data to be transmitted to the receiving device 7. Thus, the divided data transfer unit 66 acquires divided transmission data A, C, and E from the storage device 54 as the data to be transmitted to the receiving device 7.
[0080] Furthermore, if an extraction keyword is specified in the segmented data transmission request received from the receiving device 7, only segmented data whose file names partially match the extraction keyword (segmented data whose file names contain a segmented keyword that matches the extraction key or a sequential number at the time of segmentation) will be transmitted. Also, if a segmented data retransmission request specifying a segmented data identifier is received from the receiving device 7, the connection will be accepted in the same manner as above, and the segmented data identified by the specified segmented data identifier will be sent to the receiving device 7. In addition, in response to the segmented data retransmission request from the receiving device 7, the segmented data transfer unit 66 will send the segmented data (segmented data) corresponding to the segmented data identifier specified in the segmented data retransmission request to the receiving device 7.
[0081] The second identifier transmission unit 67 (corresponding to the "identifier transmission means" in this application) transmits the identifier of the divided data (divided data identifier) that is transferred to the receiving device 7 by the divided data transfer unit 66 to the receiving device 7. In this embodiment, the second identifier transmission unit 67 transmits the divided data identifier of the divided data to the receiving device 7 before (for example, immediately before) transferring the divided data to the receiving device 7. However, the transmission of the divided data identifier by the second identifier transmission unit 67 may be performed simultaneously with the transfer of the divided data (divided transmission data), or after (immediately after, etc.) the transfer of the divided data. The transmission of the divided data identifier by the second identifier transmission unit 67 shall be performed using TCP communication that enables synchronous communication. This makes it possible for the receiving device 7 to reliably receive the identifier of the divided data transferred from the divided data relay unit 5 to its own device (the receiving device) 7. In other words, it is possible for the receiving device 7 to reliably grasp the divided data transferred from the divided data relay unit 5 to its own device 7.
[0082] The second reception unit 68 receives a connection from the control information relay unit 3 and accepts a request to delete segmented data. The second reception unit 68 compares the information transmitted from the control information relay unit 3 (control information relay unit ID and password for connecting to the segmented data relay unit 5) with the information defined in the third predefined information (control information relay unit ID and password for connecting to the segmented data relay unit 5). If the two match, the second reception unit 68 authenticates the connection from the control information relay unit 3 to its own unit. Since the segmented data deletion request specifies a transmission target identifier corresponding to the segmented transmission data to be deleted, the second reception unit 68 obtains this transmission target identifier.
[0083] The receiving device 7 functions as an information processing device comprising a fourth storage unit 81, a control information acquisition unit 82, a divided data acquisition unit 83, a second identifier receiving unit 84, a second determination unit 85, a coupling unit 86, an output unit 87, a second deletion request unit 88, and an execution request unit 89, by having the program recorded in the storage device 74 read into the RAM 73, executed by the CPU 71, and controlling each piece of hardware provided in the receiving device 7. In this embodiment and other embodiments described later, each function of the receiving device 7 is executed by the general-purpose processor CPU 71, but some or all of these functions may be executed by one or more dedicated processors. Furthermore, some or all of these functions may be executed by devices installed in remote locations or by multiple distributed devices using cloud technology or the like.
[0084] The fourth storage unit 81 stores various data (information). Specifically, the fourth storage unit 81 stores various data such as various programs used to control the receiving device 7 and predefined information in the storage device 74. In addition, the fourth storage unit 81 stores various data such as control information, segmented transmission data, and segmented data in the RAM 73. However, control information, segmented transmission data, and segmented data may also be stored in the storage device 74.
[0085] Figure 14 is a diagram illustrating the data stored in the receiving device 7 (fourth storage unit 81) according to this embodiment. The fourth storage unit 81 stores predefined information (fourth predefined information) in the storage device 74 as preparation before data is acquired from the control information relay unit 3 and the divided data relay unit 5. The fourth predefined information is information that is predetermined in the receiving device 7 and includes, as shown in Figure 14, the receiving device ID and password for connecting to the control information relay unit 3, the receiving device ID and password for connecting to the divided data relay unit 5, information for connecting to the control information relay unit 3 to which a transmission request is made (IP address), information indicating the divided data relay unit 5 to which a transmission request is made (relay unit name (or relay unit ID, etc.) of the divided data relay unit 5 (divided data relay unit A, B) to which a transmission request is made, information for connecting to the divided data relay unit 5 (IP address), etc.), the time interval (predetermined interval) for making a control information acquisition request, the decryption key, and job definitions for each data type. Details of the various data stored in the fourth storage unit 81 shown in Figure 14 will be explained below. Furthermore, the various data stored in the first storage unit 21, the second storage unit 41, the third storage unit 61, and the fourth storage unit 81 can be stored in either RAM or a storage device.
[0086] The control information acquisition unit 82 acquires control information from the control information relay unit 3. Specifically, the control information acquisition unit 82 connects to the control information relay unit 3 designated in advance (the IP address of the control information relay unit 3 as defined in the fourth predefined information) and makes a control information transmission request. First, the control information acquisition unit 82 connects to the control information relay unit 3 using the fourth predefined information, which includes the receiving device ID (the ID of the device itself) and password for connecting to the control information relay unit 3, and the information for connecting to the control information relay unit 3 that is the target of the transmission request (IP address). Specifically, the control information acquisition unit 82 sends the receiving device ID and password for connecting to the control information relay unit 3 to the IP address of the control information relay unit 3. Then, the control information acquisition unit 82 requests the control information relay unit 3 to transmit control information (transmission of control information transmission request). In this embodiment, when the receiving device 7 is started up, the control information acquisition unit 82 sends the control information transmission request at the "predetermined interval" defined in the fourth predefined information. However, while receiving data from the divided data relay unit 5, the control information transmission request is not sent. The control information acquisition unit 82 may also send its own receiving device number when sending the transmission request. The "predetermined interval" is the interval at which the receiving device 1 requests the control information relay unit 3 to transmit control information, and any interval such as every 10 seconds or every minute may be set. The control information acquisition unit 82 then acquires the control information stored in the control information relay unit 3 in association with the receiving device ID of its own device (receiving device 7). However, as described above, the receiving device 7 (control information acquisition unit 82) may acquire control information by receiving control information transmitted from the transmitting device 1. TCP communication is used for sending and receiving data between the control information relay unit 3 and the receiving device 7.
[0087] The segmented data acquisition unit 83, based on the control information received from the control information relay unit 3, requests segmented data transmission from the segmented data relay unit 5 and acquires segmented data (segmented transmission data). Specifically, the segmented data acquisition unit 83 decides to request segmented data transmission from segmented data relay unit 5, which is among the destination segmented data relay units specified in the received control information and corresponds to the segmented data relay unit that is the target of the transmission request specified in the fourth predefined information (the transmission request relay unit, which is the relay unit from which the receiving device requests the transmission of segmented data). In the example shown in Figure 14, the destination segmented data relay units specified in the received control information (control information 1) are segmented data relay units A and B, and the segmented data relay units that are the target of the transmission request specified in the fourth predefined information are also segmented data relay units A and B. Therefore, segmented data relay units A and B are determined to be the destinations to which the segmented data transmission request will be sent. The divided data acquisition unit 83 then uses the fourth predefined information, which includes the receiving device ID (the ID of the unit itself) and password for connecting to the divided data relay unit 5, and the information (IP address) for connecting to the divided data relay unit 5 that is the target of the transmission request, to connect to the determined divided data transmission relay unit 5. Specifically, the divided data acquisition unit 83 sends the receiving device ID and password for connecting to the divided data relay unit 5 to the determined IP address of the divided data transmission relay unit 5. The divided data acquisition unit 83 then requests the divided data relay unit 5 to transmit the divided data (transmission of divided data transmission request). At this time, the divided data acquisition unit 83 transmits the transmission target identifier included in the control information transmitted from the control information relay unit 3 to the divided data relay unit 5. The divided data acquisition unit 83 then acquires (receives) the divided data stored in the divided data relay unit 5 in association with the transmitted transmission target identifier.
[0088] The segmented data acquisition unit 83 can also request the transmission of segmented data by specifying an extraction keyword. The "extraction keyword" is a keyword used to identify the segmented data to be received by the receiving device. In this case, the segmented data acquisition unit 83 will receive only the segmented transmission data whose file names partially match the specified extraction keyword. Different keywords may be specified for each receiving device. The extraction keywords may be stored in advance in the RAM 73 or storage device 74 by the fourth storage unit 81. UDP communication is used for sending and receiving data between the segmented data relay device 5 and the receiving device 7. The receiving device 7 may also receive segmented transmission data in parallel by using multiple communication ports, similar to the transmitting device 1.
[0089] The segmented data acquisition unit 83 then requests the relevant segmented data relay unit 5 to retransmit the segmented transmission data. Specifically, if it determines that there is segmented transmission data that has not been received from the segmented data relay unit 5, or if it determines that the segmented transmission data (segmented data) received from the segmented data relay unit 5 was not transmitted correctly, it sends a segmented data retransmission request to the segmented data relay unit 5, specifying the segmented data identifier of the segmented transmission data. The segmented data acquisition unit 83 then acquires (receives) the segmented transmission data transmitted from the segmented data relay unit 5 in response to the segmented data retransmission request.
[0090] The segmented data acquisition unit 83 generates (acquires) segmented data by performing a decryption process on the segmented encrypted data included in the segmented transmission data acquired from the segmented data relay unit 5. The decryption process uses the decryption key defined in the fourth predefined information.
[0091] The second identifier receiving unit 84 receives the segmented data identifier transmitted from the segmented data relay unit 5 (second identifier transmitting unit 67). The reception of the segmented data identifier by the second identifier receiving unit 84 is performed using TCP communication, which enables synchronous communication. As a result, as described above, the receiving device 7 can reliably receive the identifier of the segmented data transferred from the segmented data relay unit 5 to its own device (the receiving device) 7.
[0092] The second determination unit 85 (corresponding to the "determination means" in this application) determines whether a request for retransmission of divided data to the divided data relay unit 5 is necessary. Specifically, the second determination unit 85 determines whether there is any divided data (undelivered data) that has not been received from the divided data relay unit 5, and if it determines that there is undelivered data, it instructs the divided data acquisition unit 83 to execute a retransmission request. In addition, the second determination unit 85 determines whether the divided transmission data (divided data) received from the divided data relay unit 5 has been transmitted correctly, and if it determines that it has not been transmitted correctly, it instructs the divided data acquisition unit 83 to execute a retransmission request. Note that the divided data that has not been received by the receiving device 7 from the divided data relay unit 5 (undelivered data from the divided data relay unit 5) refers to the divided data that has been transmitted from the transmitting device 1 to the divided data relay unit 5, which is included in a plurality of divided data divided from the transmission target data (transmission target data addressed to the receiving device 7), but has not been received by the receiving device 7 (has not reached the receiving device 7).
[0093] Whether or not there is any undelivered data from the divided data relay unit 5 can be determined by referring to the self-identifier (an identifier indicating the divided data included in the divided transmission data) included in the divided transmission data received by the divided data acquisition unit 83 and the divided data identifier received by the second identifier receiving unit 84. Specifically, the second determination unit 85 determines, for each divided data identifier received by the second identifier receiving unit 84, whether or not the divided transmission data containing that divided data identifier as its self-identifier has been received by the divided data acquisition unit 83. In other words, the second determination unit 85 determines whether or not the divided data (divided transmission data) corresponding to the divided data identifier received by the second identifier receiving unit 84 has been received by the receiving device 7. If the divided data corresponding to the divided data identifier (for example, key03) received by the second identifier receiving unit 84 has not been received, the second determination unit 85 can determine that the divided transmission data indicated by that divided data identifier (for example, divided transmission data C indicated by key03) has not yet arrived from the divided data relay unit 5. In this case, a request for retransmission of segmented data (a request for retransmission of segmented transmission data C) specifying key03 is sent from the segmented data acquisition unit 83 to the segmented data relay unit 5.
[0094] Whether or not the divided transmission data (divided data) received from the divided data relay device 5 has been transmitted correctly can be determined using the hash value contained in the divided transmission data. First, the second determination unit 85 calculates the hash value of the divided data obtained by decrypting the divided encrypted data contained in the divided transmission data. The hash function used at this time is the same as that used in the transmission device 1. Then, the second determination unit 85 compares the calculated hash value with the hash value contained in the divided transmission data. If the two match, it is determined that the data has been transmitted correctly; if they do not match, it is determined that the data has not been transmitted correctly.
[0095] The merging unit 86 creates merged data by merging (combining) the divided data. If the transmitting device 1 specifies that merging is enabled, the merging unit 86 merges the divided data obtained from one or more divided data relay devices 5. The merging unit 86 merges the divided data using the divided data identifier of each divided data. For example, if the divided data identifier of each of the multiple divided data is a sequential number according to the order in which the multiple divided data are arranged in the data to be transmitted, the merging unit 86 can merge the multiple divided data in the order of the divided data identifiers (sequential numbers). Furthermore, the merging unit 86 can merge multiple divided data using the divided data identifier of each divided data and the other divided data identifiers of each divided data. Specifically, the divided data (second divided data) identified by the other divided data identifier of the divided data (first divided data) is merged after the first divided data. This process is repeated until the other divided data identifier "00" is encountered. For example, the receiving device 7 shown in Figure 14 acquires five divided data, and the identifiers for other divided data for each divided data are as shown in Figure 9. In this case, the divided data "AAAAA", "BBBBB", "CCCCC", "DDDDD", and "EEEEE" are merged in that order according to the identifiers for other divided data shown in Figure 9. In this way, multiple divided data are merged according to the order indicated by the identifiers for other divided data (order at the time of division). The merging unit 86 may also confirm that all divided data for the data to be transmitted has been merged (that the merging is successful) by checking whether the number of divided data included in the control information received from the control information relay unit 3 has been merged. If the control information includes location identification information, the merging unit 86 merges the divided data based on the identifiers for other divided data and the location identification information (for example, the number of horizontal divisions). In this embodiment, an example is given in which multiple divided data are merged using the identifiers for each divided data and the identifiers for other divided data of each divided data, but the merging method is not limited to this method.Therefore, for example, by including information indicating the order of multiple divided data in the data to be transmitted, using the respective divided data identifiers of the multiple divided data, in the control information and transmitting it from the transmitting device 1 to the control information relay device 3, the coupling unit 86 can merge the divided data correctly (in the order in which they were divided) using the control information and the identifiers of each divided data. However, transmitting and receiving information indicating the order (other divided data identifiers) via UDP communication in the divided transmission data allows for faster transmission and reception of information indicating the order than transmitting and receiving it via TCP communication in the control information, etc.
[0096] The output unit 87 outputs the divided data or merged data to the storage device 4 (external storage device). Specifically, the output unit 87 outputs the merged data generated by the merging unit 86 to the storage device 4 specified in advance by the receiving device 7. At this time, the output unit 87 creates a receiving folder with the receiving folder name specified in the control information in the destination storage device 4, and outputs the divided data so that it is saved in that folder with the receiving file name specified in the control information. The output unit 87 also outputs the acquired divided data to the storage device 4 specified in advance by the receiving device 7. For the divided data, the divided data identifier may be used as the file name. When outputting divided data, the output unit 87 may distribute and save (output) multiple divided data to multiple storage devices 4. For example, the destination (storage device) may be specified to be different for each divided data relay device from which the divided data was acquired. Alternatively, for example, the divided data may be specified to be distributed roughly equally among all storage devices 4. Alternatively, for example, each divided data may be specified to be output to a storage device 4 randomly selected from among multiple storage devices 4.
[0097] The second deletion request unit 88 connects to the control information relay unit 3 and requests the deletion of control information. In this embodiment, the receiving device 7 requests the control information relay unit 3 to delete the control information corresponding to the divided data, triggered by events such as successfully acquiring the divided data (or merged data) or successfully outputting the divided data (or merged data) to the storage device 4. For example, the second deletion request unit 88 determines whether the receiving device 7 has successfully acquired multiple divided data generated by dividing the data to be transmitted, and if it determines that it has been successfully acquired, it makes a deletion request. Whether multiple divided data has been successfully acquired can be determined, for example, using the number of divisions included in the control information. Specifically, if the number of divided data acquired by the receiving device 7 matches the number of divisions included in the control information, it can be determined that the divided data has been successfully acquired. First, the second deletion request unit 88 connects to the control information relay unit 3 in the same manner as the control information acquisition unit 82. Then, the second deletion request unit 88 makes a control information deletion request to the control information relay unit 3, specifying the transmission target identifier for the control information to be deleted. The second deletion request unit 88 may also send a deletion request for the divided data (divided transmission data) to the divided data relay unit 5.
[0098] The execution request unit 89 sends a job execution request to the processing unit 6 according to the data type. Based on the "data type" contained in the control information received by the receiving device 7, the execution request unit 89 obtains a job (job information) according to the data type by referring to the "job definition for each data type" defined in the fourth predefined information. The "job definition for each data type" defines a job (process) to be performed using the data for each "data type". Any job may be defined in the job definition, for example, jobs such as data display processing and big data analysis processing may be defined. Then, the execution request unit 89 sends a job execution request to the processing unit 6 based on the job information. As a result, the processing unit 6 that receives the job execution request will perform a predetermined process (processing corresponding to the job information above) using the data acquired from the storage device 4. In addition, by sending job execution requests to multiple processing units 6 that acquire segmented data from some of the multiple storage devices 4 and perform processing using the acquired segmented data, it becomes possible to perform parallel processing (processing using segmented data) in multiple processing units 6. For example, by having processing unit A receive segmented data from storage unit A, processing unit B receive it from storage unit B, and processing unit C receive it from storage unit C, each processing unit 6 can perform processing (parallel processing) using the segmented data. This makes processing more efficient (in a shorter time) compared to processing all segmented data with a single processing unit 6. For example, by distributing and parallelizing the AI processing of partial images (segmented data) obtained by segmenting high-resolution pathology diagnostic images (large-sized images) across multiple processing units 6, AI processing can be performed in a shorter time compared to performing AI processing on the original image (large-sized image). The receiving unit 7 is pre-stored with information about the processing unit 6 to which it is connected (the destination of the execution request). Similarly, the processing unit 6 is pre-stored with information about the storage unit 4 from which it acquires segmented data.
[0099] Figures 15 to 20 are flowcharts and communication sequences illustrating the data transmission and reception processing flow according to this embodiment. The processing shown in these flowcharts is initiated when data to be transmitted is generated or when an instruction to transmit data is received from the user. In this flowchart, as shown in Figure 3, the data to be transmitted "XXXXX" is divided into divided data "AAAAA" to "EEEEE", and each divided data (divided transmission data) is transmitted via the communication channel shown in Figure 8.
[0100] In step S101, the transmitting device 1 performs a data splitting process. The splitting unit 22 divides the data to be transmitted into multiple data segments using a predetermined method. Details of the splitting process will be described later with reference to Figure 21. The process then proceeds to step S102.
[0101] In step S102, the transmitting device 1 performs a communication channel selection process. The selection unit 23 selects a communication channel for transmitting each segmented data (segmented transmission data). Details of the communication channel selection process will be described later using Figure 22. After that, the process proceeds to step S103.
[0102] In step S103, the transmitting device 1 performs the process of generating a hash value and an identifier for each divided data. The divided transmission data generation unit 26 generates a hash value and an identifier for identifying the divided data for each divided data. Details of the process in step S103 will be described later with reference to Figure 23. After that, the process proceeds to step S104. Note that the process in step S103 may be performed in step S113, or at any time before step S113.
[0103] In step S104, the transmitting device 1 connects to the control information relay 3. The control information transmission unit 27 connects to the control information relay 3 by sending the transmitting device ID and password for connecting to the control information relay 3, as well as the receiving device ID of the receiving device 7 and the password for each transmitting device ID for each receiving device, to the predefined IP address of the control information relay 3. After that, the process proceeds to steps S105 and S107.
[0104] In step S105, the control information relay 3 accepts the connection from the transmitting device 1. The control information receiving unit 42 performs connection authentication by comparing (matching) the information transmitted from the transmitting device 1 in step S104 (the transmitting device ID and password for connecting to the control information relay 3, and the receiving device ID of the receiving device 7 and the password for each transmitting device ID for each receiving device) with the same information stored in the storage device 34. After that, the process proceeds to step S106.
[0105] In step S106, the control information relay unit 3 waits for the transmission of control information from the transmitting device 1. The control information receiving unit 42 also waits for the transmission of control information from the transmitting device 1.
[0106] In step S107, control information is generated in the transmitting device 1. The control information generation unit 25 generates control information for the data to be transmitted that was read into memory in step S1012 (see Figure 3). At this time, the control information generation unit 25 issues a data to be transmitted identifier. The first storage unit 21 stores the generated control information in the RAM 13. After that, the process proceeds to step S108.
[0107] In step S108, the transmitting device 1 transmits control information to the control information relay device 3. The control information transmitting unit 27 transmits the control information generated in step S107 to the control information relay device 3, which was connected in step S104. The process then proceeds to steps S109 and S110.
[0108] In step S109, the control information relay unit 3 receives the control information. The control information receiving unit 42 receives the control information transmitted in step S108. The second storage unit 41 stores the acquired control information in the storage device 34, associating it with the information of the receiving device (the receiving device ID transmitted (specified) from the transmitting device 1 (in step S104) at the time of connection) (see Figure 10). At this time, the file name of the control information is the value of the transmission target identifier included in the control information received in step S109.
[0109] In step S110, the transmitting device 1 connects to the divided data relay 5. The divided data transmitting unit 28 connects to the divided data relay 5 by sending the transmitting device ID and password for connecting to the divided data relay 5, as well as the receiving device ID of the receiving device 7 and the password for each transmitting device ID for each receiving device, to the IP address (predefined IP address) of the divided data relay 5 (divided data relay 5 A and B, respectively) at the end of the communication path determined in step S1028. After that, the process proceeds to steps S111 and S113.
[0110] In step S111, the divided data relay unit 5 (divided data relay units A and B, respectively) accepts the connection from the transmitting device 1. The divided data receiving unit 62 performs connection authentication by comparing (matching) the information transmitted from the transmitting device 1 in step S110 (the transmitting device ID and password for connecting to the divided data relay unit 5, and the receiving device ID of the receiving device 7 and the password for each transmitting device ID for each receiving device) with the same information stored in the storage device 54. After that, the process proceeds to step S112.
[0111] In step S112, the divided data relay units 5 (divided data relay units A and B, respectively) wait for the transmission of divided data from the transmitting device 1. The divided data receiving unit 62 waits for the transmission of divided data from the transmitting device 1.
[0112] In step S113, the transmission device 1 performs the process of generating segmented transmission data. The segmented transmission data generation unit 26 performs the process of generating segmented transmission data. Details of the process in step S113 will be described later with reference to Figure 24. After that, the process proceeds to step S114.
[0113] In step S114, the transmitter 1 transmits the identifier of the segmented data to be transmitted. The first identifier transmitting unit 29 transmits the identifier of the segmented data (segmented data identifier) that was transmitted from the transmitter 1 to the segmented data relay unit 5 in step S116 to the segmented data relay unit 5 using TCP communication. In this embodiment, the segmented data identifier is transmitted by the first identifier transmitting unit 29 each time segmented data is transmitted in parallel. The process then proceeds to steps S115 and S116.
[0114] In step S115, the segmented data identifiers are received by the segmented data relay devices 5 (each of segmented data relay devices A and B). The first identifier receiving unit 63 receives the segmented data identifiers transmitted in step S114. For example, in the example shown in Figures 8 and 9, segmented data relay device A receives the identifier for segmented data "AAAAA" (key01), the identifier for segmented data "CCCCC" (key03), and the identifier for segmented data "EEEEE" (key05), while segmented data relay device B receives the identifier for segmented data "BBBBB" (key02) and the identifier for segmented data "DDDDD" (key04).
[0115] In step S116, the divided transmission data is distributed and transmitted in parallel by the transmitting device 1. The divided data transmission unit 28 transmits each divided transmission data according to the allocation of divided data in step S1028 (see Figure 8). For example, if the communication channel for transmitting each divided data is determined in step S1028 as shown in Figure 8, each divided data is transmitted according to the communication channel shown in Figure 8. For example, divided transmission data A is transmitted to communication channel 2-A. The divided data transmission unit 28 also transmits the transmission target identifier issued in step S107 when transmitting each divided transmission data. The divided data transmission unit 28 may also determine the delay status of the line each time it transmits divided transmission data and automatically adjust the transmission weight to match the delay status. After that, the process proceeds to step S117. The order in which the control information transmission process and the divided transmission data transmission process are performed may be reversed. Also, the order in which the processes in step S114 and step S116 are performed may be reversed.
[0116] In step S117, the divided data relay devices 5 (divided data relay devices A and B, respectively) receive the divided transmission data and the transmission target identifier. The divided data receiving unit 62 receives the divided transmission data and the transmission target identifier transmitted in step S114. The third storage unit 61 stores the acquired divided transmission data in the storage device 54, associating it with the receiving device information (the receiving device ID transmitted (specified) from the transmitting device 1 at the time of connection (in step S110)) and the acquired transmission target identifier (see Figures 12 and 13). At this time, the file name of the divided transmission data is the value of the self identifier included in the divided transmission data. After that, the process proceeds to step S118.
[0117] In step S118, the divided data relay unit 5 (divided data relay units A and B, respectively) determines whether or not there is any undelivered data. The first determination unit 64 uses the divided data identifier received in step S115 and the self identifier (divided data identifier) included in the divided transmission data received in step S117 to determine whether or not there is any divided transmission data that has not been received from the transmitting device 1. For example, each divided data relay unit can determine whether or not the divided transmission data received in step S117 contains divided transmission data whose self identifier is the divided data identifier received in step S115, and if it does not contain such data, it can determine that the divided data (divided transmission data) indicated by that divided data identifier has not been delivered. If there is no undelivered data (No in step S118), the process proceeds to step S131. On the other hand, if there is undelivered data (Yes in step S118), the process proceeds to step S119.
[0118] In step S119, the segmented data relay unit 5 connects to the transmitting device 1 and makes a retransmission request specifying the segmented data identifier. The segmented data receiving unit 62 connects to the transmitting device 1 and sends a retransmission request to the transmitting device 1 specifying the segmented data identifier corresponding to the segmented transmission data determined to be undelivered in step S118. The process then proceeds to step S120.
[0119] In step S120, the transmitting device 1 receives a connection and retransmission request from the divided data relay device 5, and obtains the divided transmission data corresponding to the divided data identifier. The divided data transmission unit 28 authenticates the connection of the divided data relay device 5 and receives a retransmission request for divided transmission data from the divided data relay device 5, specifying the divided data identifier. The divided data transmission unit 28 then obtains the divided transmission data identified by the divided data identifier specified in the retransmission request sent from the divided data relay device 5 in step S119 from the RAM 13. Note that since connection authentication has already been performed in step S111, connection authentication in step S120 is not required. After that, the process proceeds to step S121.
[0120] In step S121, the transmission device 1 sends the divided transmission data to the divided data relay device 5. The divided data transmission unit 28 transmits the divided transmission data acquired in step S120 to the divided data relay device 5, which requested retransmission in step S119. The process then proceeds to step S122. After step S121, the processing in the transmission device 1 shown in this flowchart is completed.
[0121] In step S122, the divided data relay unit 5 receives the divided data. The divided data receiving unit 62 receives the divided data transmitted in step S121. At this time, the first determination unit 64 (or the divided data receiving unit 62) may determine whether the self-identifier included in the received divided data matches the divided data identifier specified in the retransmission request made in step S119. If they match, it becomes possible to determine that the divided data corresponding to the divided data identifier specified in the retransmission request has been received. After that, the process returns to step S118.
[0122] In step S123, the receiving device 7 makes a connection and transmission request to the control information relay 3. The control information acquisition unit 82 connects to the control information relay 3 by sending the receiving device ID (ID of the receiving device 7) and password for connecting to the control information relay 3 to the IP address of the control information relay 3 that is the target of the transmission request. In this embodiment, when the receiving device 7 is started up, the receiving device 7 makes control information transmission requests to the control information relay 3 at predetermined intervals. Figure 17 shows an example in which the receiving device 7 is started up in step S123. However, the receiving device 7 may be started up and a control information transmission request made to the control information relay 3 at a stage before step S123. However, until the control information relay 3 acquires control information (control information corresponding to the receiving device 7) from the transmitting device 1, the control information relay 3 will not transmit control information to the receiving device 7. After that, the process proceeds to steps S124 and S125.
[0123] In step S124, the receiving device 7 waits for the transmission (transfer) of control information from the control information relay device 3. The control information acquisition unit 82 waits for the transmission of control information from the control information relay device 3.
[0124] In step S125, the control information relay 3 receives the connection and transmission request from the receiving device 7. The control information transfer unit 44 performs connection authentication by comparing (matching) the information transmitted from the receiving device 7 in step S123 (the receiving device ID and password for connecting to the control information relay 3) with the same information stored in the storage device 34. The control information transfer unit 44 then receives the control information transmission request from the receiving device 7. After that, the process proceeds to step S126.
[0125] In step S126, the control information stored in the control information relay 3 in association with the receiving device ID is retrieved. The control information transfer unit 44 retrieves the control information (control information 1 in Figure 10) stored in association with the receiving device ID transmitted from the receiving device 7 in step S123, that is, the ID "ABC" of the receiving device 7 that made the transmission request, from the storage device 34. After that, the process proceeds to step S127.
[0126] In step S127, the control information relay 3 transfers (transmits) the control information to the receiving device 7. The control information transfer unit 44 transfers the control information acquired in step S126 to the receiving device 7 that requested transmission in step S123. The second storage unit 41 also adds information about the transfer process of the control information to the transmission history. If the control information has already been sent to the receiving device 7 by referring to the transmission history, the control information will not be sent again. The process then proceeds to step S128.
[0127] In step S128, the receiving device 7 receives and stores the control information. The control information acquisition unit 82 receives the control information transmitted in step S127. The fourth storage unit 81 stores the acquired control information in the RAM 73 (see Figure 14). The process then proceeds to step S129.
[0128] In step S129, the receiving device 7 connects to the divided data relay 5 and requests the transmission of divided data. The divided data acquisition unit 83 determines the divided data relay 5 to which the divided data transmission request will be made, based on the predefined information indicating the divided data relay 5 to which the transmission request will be made and the destination divided data relay 5 information included in the control information acquired in step S128 (in the case of Figure 14, divided data relay 5 A and B). The divided data acquisition unit 83 then connects to the divided data relay 5 by sending the receiving device ID (ID of the receiving device 7) and password to the IP address of the determined divided data relay 5 (divided data relay 5 A and B, respectively). The divided data acquisition unit 83 then makes a request to transmit divided data by specifying the transmission target identifier included in the control information acquired in step 128 (in the case of Figure 10, "CID01" included in control information 1). The divided data acquisition unit 83 can also specify an extraction keyword. After that, the process proceeds to steps S130 and S131.
[0129] In step S130, the receiving device 7 waits for the transmission of divided data from the divided data relay device 5. The divided data acquisition unit 83 waits for the transmission of divided data from the divided data relay device 5. In the example shown in Figure 14, the divided data acquisition unit 83 waits for the transmission of divided data from both divided data relay devices A and B.
[0130] In step S131, the divided data relay units 5 (divided data relay units A and B, respectively) receive connection and transmission requests from the receiving device 7. The divided data transfer unit 66 performs connection authentication by comparing (matching) the information transmitted from the receiving device 7 in step S129 (receiving device ID and password for connecting to the divided data relay unit 5) with the same information stored in the storage device 54. Then, the divided data transfer unit 66 receives a divided data transmission request from the receiving device 7, specifying the target identifier for transmission. Note that extraction keywords may also be specified in the divided data transmission request. After that, the process proceeds to step S132.
[0131] In step S132, the divided data relay unit 5 (divided data relay units A and B, respectively) retrieves the divided transmission data stored in association with the transmission target identifier. The divided data transfer unit 66 retrieves the divided transmission data stored in association with the transmission target identifier specified in the transmission request sent from the receiving device 7 in step S129 from the storage device 54. For example, in Figure 12, the divided data transfer unit 66 of divided data relay unit A retrieves divided transmission data A, divided transmission data C, and divided transmission data E, which are stored in association with the transmission target identifier "CID01". If an extraction keyword is specified in the divided data transmission request, only the divided transmission data whose file name partially matches the extraction keyword is retrieved as the transmission target. The process then proceeds to step S133.
[0132] In step S133, the identifier of the divided data to be transferred is transmitted at the divided data relay unit 5 (divided data relay units A and B, respectively). The second identifier transmission unit 67 transmits the identifier of the divided data (divided data identifier) that is transmitted from its own relay unit (divided data relay unit 5) to the receiving device 7 in step S135 to the receiving device 7 using TCP communication. In this embodiment, the divided data identifier is transmitted by the second identifier transmission unit 67 each time divided data is transferred. The process then proceeds to steps S134 and S135.
[0133] In step S134, the receiving device 7 receives the segmented data identifiers. The second identifier receiving unit 84 receives the segmented data identifiers transmitted in step S134. For example, in the example shown in Figures 8 and 9, the receiving device 7 receives the identifier for segmented data "AAAAA" (key01), the identifier for segmented data "CCCCC" (key03), and the identifier for segmented data "EEEEE" (key05) from segmented data relay A, and the identifier for segmented data "BBBBB" (key02) and the identifier for segmented data "DDDDD" (key04) from segmented data relay B.
[0134] In step S135, the divided data relay devices 5 (divided data relay devices A and B, respectively) transfer (transmit) the divided data to the receiving device 7. The divided data transfer unit 66 transfers the divided data acquired in step S132 to the receiving device 7 that made the transmission request in step S129. The process then proceeds to step S136.
[0135] In step S136, the receiving device 7 receives the segmented transmission data. The segmented data acquisition unit 83 receives the segmented transmission data transferred in step S135. The process then proceeds to step S137.
[0136] In step S137, the receiving device 7 determines whether or not there is any undelivered data. The second determination unit 85 uses the segmented data identifier received in step S134 and the self-identifier (segmented data identifier) included in the segmented transmission data received in step S136 to determine whether or not there is any segmented transmission data that has not been received from the segmented relay 5. For example, the receiving device 7 can determine whether or not the segmented transmission data received from segmented data relay A in step S136 contains segmented transmission data whose self-identifier is the segmented data identifier received from segmented data relay A in step S134, and if it does not contain such data, it can determine that the segmented data (segmented transmission data) indicated by the segmented data identifier has not been received from segmented data relay A. If there is no undelivered data (No in step S137), the process proceeds to step S138. On the other hand, if there is undelivered data (Yes in step S137), the process proceeds to step S142.
[0137] In step S138, the receiving device 7 obtains the hash value, its own identifier, and the identifier of other divided data from the divided transmission data. The receiving device 7 (CPU 71) obtains the hash value, its own identifier, and the identifier of other divided data from the divided transmission data received in step S136. After that, the process proceeds to step S139.
[0138] In step S139, the receiving device 7 performs decryption processing of the divided encrypted data (generation (restoration) of divided data). The divided data acquisition unit 83 performs decryption processing on the divided encrypted data included in the divided transmission data acquired in steps S136 and S146. After that, the process proceeds to step S140.
[0139] In step S140, the receiving device 7 determines whether the hash value is correct. The second determination unit 85 determines whether the hash value is correct by comparing the hash value contained in the divided transmission data obtained in step S136 and step S146 with the hash value calculated based on the divided data obtained in step S139. If the hash value is correct (both hash values match) (Yes in step S140), the process proceeds to step S141. On the other hand, if the hash value is incorrect (both hash values do not match) (No in step S140), the process proceeds to step S142.
[0140] In step S141, the receiving device 7 stores the divided transmission data and the divided data. The fourth storage unit 81 stores the divided transmission data acquired in steps S136 and S146, and the divided data generated in step S139, in the RAM 73 (see Figure 14). The process then proceeds to step S147.
[0141] In step S142, the receiving device 7 connects to the segmented data relay 5 and makes a retransmission request specifying the segmented data identifier. The segmented data acquisition unit 83 connects to the segmented data relay 5, which stores the segmented transmission data determined to be undelivered in step S137 or segmented transmission data whose hash value was determined to be incorrect in step S140, in the same manner as the processing in step S129. The segmented data acquisition unit 83 then sends a retransmission request to the segmented data relay 5, specifying the segmented data identifier corresponding to the segmented transmission data determined to be undelivered in step S137 or segmented transmission data whose hash value was determined to be incorrect in step S140. After that, the process proceeds to step S143.
[0142] In step S143, the divided data relay unit 5 receives connection and retransmission requests from the receiving device 7. The divided data transfer unit 66 performs connection authentication in the same manner as in step S131. The divided data transfer unit 66 then receives a request from the receiving device 7 for retransmission of divided data, specifying the divided data identifier. Note that since connection authentication has already been performed in step S131, connection authentication in step S143 is not necessary. The process then proceeds to step S144.
[0143] In step S144, the divided data relay unit 5 acquires the divided data transmission data corresponding to the divided data identifier. The divided data transfer unit 66 acquires the divided data transmission data identified by the divided data identifier specified in the retransmission request sent from the receiving device 7 in step S142 from the storage device 54. The process then proceeds to step S145.
[0144] In step S145, the divided data relay device 5 transfers (transmits) the divided data to the receiving device 7. The divided data transfer unit 66 transfers the divided data acquired in step S144 to the receiving device 7 that requested retransmission in step S142. The process then proceeds to step S146.
[0145] In step S146, the receiving device 7 receives the segmented transmission data. The segmented data acquisition unit 83 receives the segmented transmission data transmitted in step S145. At this time, the second determination unit 85 may determine whether the self-identifier included in the received segmented transmission data matches the segmented data identifier specified in the retransmission request made in step S142. If they match, it becomes possible to determine that segmented transmission data corresponding to the segmented data identifier specified in the retransmission request has been received. After that, the process returns to step S137.
[0146] In step S147, it is determined whether the receiving device 7 is specified to merge. The coupling unit 86 determines whether it is specified to merge by referring to the "whether or not to merge" contained in the control information received in step S128. If it is specified to merge (Yes in step S147), the process proceeds to step S148. On the other hand, if it is specified not to merge (No in step S147), the process proceeds to step S150.
[0147] In step S148, the receiving device 7 merges the divided data based on the other divided data identifiers (generation of merged data). The merging unit 86 merges the divided data stored in step S141 by referring to the other divided data identifiers for each divided data. In this embodiment, since there is only one receiving device 7, the receiving device 7 acquires all the divided data for the data to be transmitted, so the merged data generated here is identical to the data to be transmitted (restoration (reconstruction) of the data to be transmitted). The process then proceeds to step S149.
[0148] In step S149, the receiving device 7 outputs the merged data to the storage device 4. The output unit 87 outputs the merged data generated in step S148 to the storage device 4, which was previously specified in the receiving device 7. The process then proceeds to step S151.
[0149] In step S150, the receiving device 7 outputs the divided data to the storage device 4. The output unit 87 outputs each divided data stored in the RAM 73 in step S141 to the storage device 4 that was previously specified in the receiving device 7. At this time, each divided data may be output (stored) to multiple different storage devices 4. After that, the process proceeds to step S151.
[0150] In step S151, the receiving device 7 connects to the control information relay 3 and transmits a control information deletion request. The second deletion request unit 88 connects to the control information relay 3 and transmits a control information deletion request specifying the control information to be deleted (the transmission target identifier included in the control information received in step S128). The process then proceeds to steps S152 and S153.
[0151] In step S152, the receiving device 7 makes a job execution request. The execution request unit 89, based on the "data type" included in the control information received in step S128, refers to the predefined "job definition for each data type" and sends a job execution request to the processing device 6. The processing device 6 then executes the job in accordance with the job execution request. After that, the processing in the receiving device 7 shown in this flowchart is completed.
[0152] In step S153, the control information relay 3 receives the connection from the receiving device 7 and the control information deletion request. The first receiving unit 45 receives the connection and control information deletion request from the receiving device 7 in step S151. At this time, the first receiving unit 45 receives the transmission target identifier. After that, the process proceeds to step S154.
[0153] In step S154, the control information relay 3 receives a request to delete divided data, specifying the target identifier to connect to and transmit to the divided data relay 5. First, the first deletion request unit 46 identifies the divided data relay 5 (divided data relay 5 A and B in the example of Figure 10) to which the request for deletion of divided data should be made, based on the target identifier received in step S153. Then, the first deletion request unit 46 connects to the identified divided data relay 5 by sending the control information relay ID and password for connecting to the identified divided data relay 5 to the IP address (predefined IP address) of the identified divided data relay 5. The first deletion request unit 46 then sends a request to delete divided data, specifying the target identifier received in step S153. After that, the process proceeds to steps S155 and S157.
[0154] In step S155, the divided data relay unit 5 receives connection and deletion requests from the control information relay unit 3. The second reception unit 68 performs connection authentication by comparing (matching) the information transmitted from the control information relay unit 3 in step S154 (control information relay unit ID and password for connecting to the divided data relay unit 5) with the same information stored in the storage device 54. Then, the second reception unit 68 receives a divided data deletion request from the control information relay unit 3, specifying the target identifier to be transmitted. After that, the process proceeds to step S156.
[0155] In step S156, the segmented data relay unit 5 deletes the segmented data stored in association with the transmission target identifier. The segmented data management unit 65 deletes the segmented data stored in the storage device 54 in association with the transmission target identifier received in step S155.
[0156] In step S157, the control information corresponding to the transmission target identifier is deleted in the control information relay unit 3. The control information management unit 43 deletes the control information identified by the transmission target identifier received in step S153 from the control information relay unit 3 (storage device 34). The process then proceeds to step S158.
[0157] In step S158, the control information relay unit 3 determines whether there is any control information stored in the control information relay unit 3 that exceeds a predetermined number of days (the "storage period" defined in the second predefined information). The control information management unit 43 determines whether there is any control information that exceeds the predefined "storage period" by referring to the storage device 34. If there is control information that exceeds the predetermined number of days (Yes in step S158), the process proceeds to step S159. On the other hand, if there is no control information that exceeds the predetermined number of days (No in step S158), the process shown in this flowchart ends.
[0158] In step S159, the control information relay 3 requests the deletion of segmented data by connecting to the segmented data relay and specifying the identifier to be transmitted. First, the first deletion request unit 46 identifies one or more segmented data relay 5 that are the targets for the segmented data deletion request, based on the identifier of the control information (transmission target identifier) that was determined to have exceeded the retention period in step S158. Then, the first deletion request unit 46 connects to the IP address (predefined IP address) of each of the identified one or more segmented data relay 5 and sends a segmented data deletion request specifying the identifier of the control information (transmission target identifier) that was determined to have exceeded the retention period in step S158. After that, the process proceeds to steps S160 and S162.
[0159] In step S160, the divided data relay unit 5 receives a deletion request from the control information relay unit 3. The second receiving unit 68 receives a divided data deletion request from the control information relay unit 3, specifying the identifier to be transmitted. The process then proceeds to step S161.
[0160] In step S161, the segmented transmission data stored in the segmented data relay device 5 in association with the transmission target identifier is deleted. The segmented data management unit 65 deletes the segmented transmission data stored in the storage device 54 in association with the transmission target identifier received in step S160. After that, the process shown in this flowchart is completed.
[0161] In step S162, the control information is deleted in the control information relay unit 3. The control information management unit 43 deletes the control information identified by the identifier (transmission target identifier) of the control information that was determined to have exceeded the retention period in step S158 from the control information relay unit 3 (storage device 34). In steps S156, S157, S161, and S162, the deletion of segmented data and information related to segmented data reduces the risk of theft regarding information related to the transmission target data. After that, the process shown in this flowchart is completed.
[0162] Figure 21 is a flowchart illustrating the data partitioning process flow according to this embodiment. The process shown in this flowchart is initiated when data to be transmitted is generated, or when an instruction to transmit the data to be transmitted is received from the user.
[0163] In step S1011, the division method is obtained. The division unit 22 obtains a pre-specified division method from the storage device 14. The details of the division method are as described above, so a detailed explanation is omitted here. After that, the process proceeds to step S1012.
[0164] In step S1012, the data to be transmitted is loaded into memory. The splitting unit 22 loads the data to be transmitted stored in the storage device 14 into memory (RAM 13). After that, the process proceeds to step S1013.
[0165] In step S1013, the data to be transmitted is divided according to the specified division method. The division unit 22 divides the data to be transmitted read in step S1012 using the division method obtained in step S1011 (generation of divided data). After that, the process proceeds to step S1014.
[0166] In step S1014, the division results (divided data) are stored in memory. The storage unit 21 stores each of the divided data generated in step S1013 in memory (RAM 13). After that, the process shown in this flowchart is completed.
[0167] Figure 22 is a flowchart illustrating the overview of the communication channel selection process flow according to this embodiment. The process shown in this flowchart is initiated when the process of step S101 shown in Figure 15 (the process shown in Figure 21) is completed.
[0168] In step S1021, the number of communication channels to be used is obtained. The selection unit 23 obtains the number of lines to be used from the storage device 14. For example, it obtains the number of lines to be used as "3". After that, the process proceeds to step S1022.
[0169] In step S1022, it is determined whether or not automatic adjustment is enabled. The selection unit 23 refers to the status of automatic adjustment stored in the storage device 14. If automatic adjustment is disabled, the process proceeds to step S1023. On the other hand, if automatic adjustment is enabled, the process proceeds to step S1024.
[0170] In step S1023, a communication channel is selected from among multiple available communication channels based on a predefined priority. The selection unit 23 uses the communication channel priority data shown in Figure 6 to select the number of communication channels obtained in step S1021 (for example, 3) from among the multiple communication channels shown in Figures 5 and 6. The method of selecting a communication channel using the communication channel priority data has been described above, so a detailed explanation is omitted here. The process then proceeds to step S1026.
[0171] In step S1024, performance values are acquired and stored for each of the multiple available communication channels. The selection unit 23 performs communication for performance measurement for each of the multiple communication channels shown in Figure 5 and acquires performance values. The first storage unit 21 then stores the acquired performance values in the storage device 14 (see Figure 7). After that, the process proceeds to step S1025.
[0172] In step S1025, based on the performance values of each communication channel, the communication channel to be used is selected from among the multiple available communication channels. The selection unit 23 uses the performance values of each communication channel obtained in step S1024 (communication channel performance value data shown in Figure 7) to select the number of communication channels obtained in step S1021 (for example, 3) from among the multiple communication channels shown in Figures 5 and 7. The method of selecting communication channels using communication channel performance value data has been described above, so a detailed explanation is omitted here. After that, the process proceeds to step S1026.
[0173] In step S1026, the number of communication ports to be connected simultaneously is obtained. The port control unit 24 obtains the number of simultaneously connected ports from the storage device 14. For example, it obtains the number of simultaneously connected ports as "20". After that, the process proceeds to step S1027.
[0174] In step S1027, the number of communication ports acquired is opened. The port control unit 24 opens the number of communication ports acquired in step S1026 (for example, 20) for each communication channel selected in step S1023 or step S1025. The process then proceeds to step S1028.
[0175] In step S1028, the communication channel to be used for each divided data is determined (allocation of divided data). The selection unit 23 selects a communication channel for transmitting each divided data generated in step S1013 from the communication channels selected in step S1023 or step S1025 (see Figure 8). The method for determining the communication channel to be used for each divided data has been described above, so a detailed explanation is omitted here. After that, the process shown in this flowchart is completed. Note that the process in step S1028 may be performed at any time between the time the communication channel to be used is selected in step S1023 or step S1025 and the process in step S1033 shown in Figure 23.
[0176] Figure 23 is a flowchart illustrating the overview of the hash value and partitioned data identifier generation process flow according to this embodiment. The process shown in this flowchart is initiated when the process in step S102 shown in Figure 15 (the process shown in Figure 22) is completed.
[0177] In step S1031, a hash value is generated and stored for each divided data. The divided transmission data generation unit 26 generates (calculates) a hash value for each divided data generated in step S1013. The first storage unit 21 then stores the hash value in RAM 13 in association with the divided data (see Figure 9). After that, the process proceeds to step S1032.
[0178] In step S1032, an identifier is generated and stored for each divided data. The divided data generation unit 26 generates a divided data identifier for each divided data generated in step S1013. Then, the first storage unit 21 stores the divided data identifier in RAM 13 in association with the divided data (see Figure 9). After that, the process proceeds to step S1033.
[0179] In step S1033, an identifier for other divided data is acquired and stored for each divided data. The divided transmission data generation unit 26 acquires an identifier for other divided data (in this embodiment, the next divided data identifier) for each divided data generated in step S1013 by referring to the order in which the multiple divided data were arranged when the data to be transmitted was divided (step S1013) (the order in which the divided data were arranged in the divided transmission data) and the divided data identifier for each divided data generated in step S1032. The first storage unit 21 then stores the identifier for other divided data in RAM 13 in association with the divided data (see Figure 9). After that, the process shown in this flowchart is completed.
[0180] Figure 24 is a flowchart illustrating the overview of the segmented transmission data generation process according to this embodiment. The process shown in this flowchart is initiated when the process in step S110 shown in Figure 15 is completed.
[0181] In step S1131, each segmented data is encrypted using an encryption key pre-specified by the receiving device (generation and storage of segmented encrypted data). The segmented transmission data generation unit 26 obtains the encryption key from the storage device 14 and uses this encryption key to perform the encryption process on each segmented data generated in step S1013. The first storage unit 21 then stores the segmented encrypted data obtained through the encryption process in the RAM 13 (see Figure 9). After that, the process proceeds to step S1132.
[0182] In step S1132, the hash value, the segmented data identifier (self identifier), the other segmented data identifier, and the segmented encrypted data are merged (generation and storage of segmented transmission data). The segmented transmission data generation unit 26 merges, for each segmented data, the hash value generated in step S1031, the segmented data identifier generated in step S1032, the other segmented data identifier obtained in step S1033, and the segmented encrypted data generated in step S1131. As a result, segmented transmission data is generated for each segmented data. If the data to be transmitted is segmented using a segmentation keyword, the segmentation keyword used is further merged. Also, if the data to be transmitted is segmented using a method that divides it into a specified number of bytes, a method that divides it into a specified image size, or a method that divides it into a specified number of lines, the sequential numbers used during segmentation are further merged. The first storage unit 21 then stores the generated segmented transmission data in the RAM 13 (see Figure 9). After that, the process shown in this flowchart is completed.
[0183] In this embodiment, the divided data relay unit 5 (second identifier transmission unit 67) transmits the divided data identifiers of the divided data to be transferred to the receiving device 7. However, the transmitting device 1 may transmit the divided data identifiers to the receiving device 7 or the control information relay unit 3, so that the receiving device 7 can receive the divided data identifiers from the transmitting device 1 or the control information relay unit 3. For example, the transmitting device 1 transmits "key01", "key03", and "key05" as divided data identifiers for the divided data to be transmitted to the divided data relay unit A, and "key02" and "key04" as divided data identifiers for the divided data to be transmitted to the divided data relay unit B, to the receiving device 7 or the control information relay unit 3. The transmitting device 1 (control information transmission unit 27) can, for example, transmit this information along with the control information described above. In this case, the receiving device 7 (control information acquisition unit 82) receives the divided data identifiers by acquiring the control information from the transmitting device 1 or the control information relay unit 3. Thus, as described above, the receiving device 7 can determine whether or not there is any unreceived data from the divided data relay unit 5. Furthermore, when the transmitting device 1 transmits a segmented data identifier to the receiving device 7 or the control information relay device 3, it shall be done using a synchronous communication method (TCP communication).
[0184] As described above, the processing disclosed in this embodiment makes it possible to transmit data efficiently. This makes it possible to reduce the load on some communication channels. Furthermore, the processing disclosed in this embodiment allows for the parallel transmission of multiple divided data through multiple communication channels, making it possible to transmit multiple divided data in a shorter time (efficiently) compared to transmitting multiple divided data through a single communication channel. In addition, the processing disclosed in this embodiment allows for faster data transmission and reception compared to using TCP communication by using UDP communication for sending and receiving divided data. This makes it possible to send and receive large data (files) such as big data and high-resolution images at high speed. Furthermore, the processing disclosed in this embodiment distributes and transmits multiple divided data to multiple divided data relay devices, so that each divided data relay device only stores a portion of the divided data and does not store the original data to be transmitted. Therefore, even if one divided data relay device is attacked, the risk of the theft of the data to be transmitted itself is reduced. In other words, security can be improved.
[0185] Furthermore, according to the processing disclosed in this embodiment, the transmitting device transmits information indicating the order of the divided data (another divided data identifier) together with the divided data. This allows the receiving device to merge the divided data in the correct order based on the transmitted information, even if the order of the divided data during transmission is random (even in asynchronous communication). Additionally, according to the processing disclosed in this embodiment, the receiving device can determine whether or not there is any unreachable data from the divided data relay device based on the divided transmission data received from the divided data relay device 5 (the self identifier (divided data identifier) included in the divided transmission data) and the divided data identifier received using a different communication protocol (e.g., TCP) than the communication protocol (e.g., UDP) used for transferring (transmitting) the divided transmission data. As a result, reliable file transmission and reception without data loss becomes possible, even in asynchronous communication. Consequently, even large data (files) such as big data and high-resolution images can be efficiently transmitted and received. Furthermore, according to the processing disclosed in this embodiment, the transmitting device 1 transmits segmented data and control information in association with the receiving device 7 (receiving device ID), and the control information relay device 3 and segmented data relay device 5 store the segmented data and control information in association with the receiving device 7, thereby making it possible to transmit the segmented data and control information only to the receiving device. This makes it possible to prevent the data to be transmitted (segmented data) from being acquired by a receiving device 7 that was not intended by the transmitting device 1.
[0186] <Variation 1> In the embodiment described above, by including the target identifier in the control information transmitted from the transmitting device 1, the receiving device 7, which receives the control information, can specify the target identifier and receive the divided data from the divided data relay device 5. However, the information that the receiving device 7 specifies to the divided data relay device 5 in order to receive the divided data may be information other than the target identifier. In this variation, we illustrate the case where the divided data identifier of the first divided data (hereinafter referred to as the "relay-specific first data identifier") is specified when the divided data (divided data generated from the target) transmitted from the transmitting device 1 to the divided data relay device 5 is arranged in the order (sequential relationship) of the target data. In this variation, by including the relay-specific first data identifier for each destination relay device (divided data relay device 5) in the control information transmitted from the transmitting device 1, the receiving device 7, which receives the control information, can specify the relay-specific first data identifier and receive the divided data from the divided data relay device 5. In this variation, the explanation of configurations common to the embodiment described above is omitted, and the differences are explained. The system configuration of this variation is generally the same as the system configuration shown in Figure 1, so its explanation will be omitted. Similarly, the functional configuration of this variation is generally the same as the functional configuration of the system shown in Figure 2, so its explanation will also be omitted. The differences from the above embodiment will now be explained.
[0187] The transmitting device 1 (control information generation unit 25) generates control information that includes the number of divisions, destination division data relay device information, data type, whether or not to merge, received file name, received folder name, and transmission target identifier, as well as a relay-specific starting data identifier. In the example shown in Figures 8 and 9, the control information includes the relay-specific starting data identifier of division data relay device A (key01, which is the identifier for division data "AAAAA") and the relay-specific starting data identifier of division data relay device B (key02, which is the identifier for division data "BBBBB"). Control information containing relay-specific starting data identifiers is transmitted and received between the transmitting device 1 and the control information relay device 3, and between the control information relay device 3 and the receiving device 7, in the same manner as in the above embodiment.
[0188] In this variation, the segmented transmission data further includes a "relay-specific segmented data identifier," and the segmented transmission data including the relay-specific segmented data identifier is transmitted and received between the transmitting device 1 and the segmented data relay device 5, and between the segmented data relay device 5 and the receiving device 7. The "relay-specific segmented data identifier" is another segmented data segmented from the transmission target data, which is the source of the segmented data to be transmitted (hereinafter referred to as "target segmented data"), and is the identifier of the segmented data immediately preceding or succeeding the target segmented data when the segmented data transmitted to the segmented data relay device 5, the destination of the target segmented data, are arranged in the order they appear in the transmission target data. The segmented transmission data generation unit 26 obtains the relay-specific segmented data identifier for each segmented data segment by referring to the segmented data allocation by the selection unit 23 (for example, Figure 8), and merges it into the segmented transmission data. Similar to the other segmented data identifier, if there is no subsequent segmented data, a code indicating no data (for example, "00") is set as the relay-specific segmented data identifier. The relay-specific segmented data identifier is used in the segmented transmission data transfer process at the segmented data relay device 5, which will be described later.
[0189] Figure 25 shows an example of the information included in the segmented transmission data related to this variation. Note that the segmented transmission data shown in Figure 25 is substantially the same as the segmented transmission data shown in Figure 9, except that it includes a relay-specific segmented data identifier, so only the differences will be explained. In the example in Figure 8 described above, it was decided to send the segmented data "AAAAA", "CCCCC", and "EEEEE" to segmented data relay A, and the segmented data "BBBBB" and "DDDDD" to segmented data relay B, and as shown in Figure 25, a relay-specific segmented data identifier is set. In this embodiment, the identifier of the segmented data one position later in the sequence (relay-specific next segmented data identifier) is used as the relay-specific segmented data identifier. For example, key03, the identifier of segmented data "CCCCC", is set as the relay-specific segmented data identifier (relay-specific next segmented data identifier) for segmented data "AAAAA".
[0190] Furthermore, the segmented data "DDDDD" is the last segmented data in terms of context (order at the time of segmentation) among the segmented data (segmented data "BBBBB" and "DDDDD") transmitted to segmented data relay B, so the relay-specific other segmented data identifier is set to "00". Also, the segmented data "EEEEE" is the last segmented data in terms of context among the segmented data (segmented data "AAAAA", "CCCCC", and "EEEEE") transmitted to segmented data relay A, so the relay-specific other segmented data identifier is set to "00".
[0191] Upon receiving control information containing a relay-specific starting data identifier, the receiving device 7 specifies the relay-specific starting data identifier and receives the divided data from the divided data relay device 5. For example, the receiving device 7 sends a divided data transmission request to divided data relay device A specifying the relay-specific starting data identifier "key01," and sends a divided data transmission request to divided data relay device B specifying the relay-specific starting data identifier "key02." The divided data relay device 5 (divided data transfer unit 66), upon receiving the divided data transmission requests, obtains the divided transmission data corresponding to the relay-specific starting data identifier specified in the divided data transmission request from the storage device 54. The divided data transfer unit 66 then refers to the relay-specific other divided data identifier of the obtained divided transmission data and obtains the divided transmission data corresponding to that relay-specific other divided data identifier from the storage device 54. This process is repeated until the relay-specific other divided data identifier becomes "00." From this point, the divided data relay device 5 (divided data transfer unit 66) transmits the divided transmission data obtained from the storage device 54 to the receiving device 7. For example, when the receiving device 7 makes a request to the divided data relay device A to transmit divided data specifying "key01", the divided data relay device A obtains the divided transmission data A identified by "key01" from the storage device 54. Then, since the relay device and other divided data identifier contained in divided transmission data A is "key03", the divided data relay device A obtains the divided transmission data C identified by "key03" from the storage device 54. Then, since the relay device and other divided data identifier contained in divided transmission data C is "key05", the divided data relay device A obtains the divided transmission data E identified by "key05" from the storage device 54. Then, since the relay device and other divided data identifier contained in divided transmission data E is "00", this iterative process ends and the divided data relay device A transfers divided transmission data A, divided transmission data C, and divided transmission data E to the receiving device 7.
[0192] The data transmission / reception processing flow, data splitting processing flow, communication channel selection processing, hash value and identifier generation processing for each split data, and split transmission data generation processing for this variation are generally the same as those described in the above embodiment with reference to Figures 15 to 24, so their explanation will be omitted.
[0193] In this variation, the target identifier does not necessarily have to be included in the control information. In this case, in steps S151, S154, and S159, the repeater-specific starting data identifier may be specified in place of the target identifier in the deletion request. In this case, when the control information repeater 3 receives a control information deletion request in which the repeater-specific starting data identifier is specified, it deletes the control information including the specified repeater-specific starting data identifier. Also, when the segmented data repeater 5 receives a segmented data deletion request in which the repeater-specific starting data identifier is specified, it deletes the segmented transmission data (segmented data) identified by the specified repeater-specific starting data identifier and the segmented transmission data (segmented data) identified by other repeater-specific segmented data identifiers included in this identified segmented transmission data.
[0194] <Variation 2> In the embodiment described above, an example was given of a case where all the divided data of the data to be transmitted is received by one receiving device 7. However, the divided data (multiple divided data separated from the data to be transmitted) may be distributed and received by multiple receiving devices 7. In this variation, an example is given of a case where the divided data is distributed and received by two receiving devices 7 (receiving device A (receiving device 7a) and receiving device B (receiving device 7b)). However, in this variation, there can be multiple receiving devices 7, so it is not limited to two. In this variation, receiving device A is designated as the master device (master receiving device), with receiving device ID "ABC" and receiving device No. "001". Receiving device B is designated as the slave device (slave receiving device), with receiving device ID "ABC" and receiving device No. "002". Note that the system according to this variation may have multiple slave receiving devices. Note that in this variation, the description of configurations common to the embodiment described above is omitted, and the differences will be described. The system configuration for this variation is essentially the same as that shown in Figure 1, except for the number of receiving devices; therefore, a detailed explanation is omitted.
[0195] Figure 26 is a diagram illustrating the schematic functional configuration of the system relating to this variation. In this variation, the receiving device 7 functions as an information processing device that includes a fourth storage unit 81, a control information acquisition unit 82, a divided data acquisition unit 83, a second identifier receiving unit 84, a second determination unit 85, a coupling unit 86, an output unit 87, a second deletion request unit 88, and an execution request unit 89, in addition to a notification unit 90. The differences from the above embodiment will be explained below.
[0196] Figure 27 is a diagram illustrating the data stored in the receiving device 7a (receiving device A) according to this variation. In the example in Figure 27, receiving device A stores the relay name (or relay ID, etc.) and IP address of divided data relay device A as information indicating the divided data relay device to which the transmission request is made. In other words, receiving device A makes a divided data transmission request only to divided data relay device A. By making a divided data transmission request from receiving device A to divided data relay device A in the same manner as in the embodiment described above, divided transmission data (divided transmission data A, divided transmission data C, and divided transmission data E according to the allocation in Figure 8) is obtained from divided data relay device A. Furthermore, as shown in Figure 27 and Figure 28 described later, in this variation, the control information received from control information relay device 1 may also include information on the number of divided data per relay device. The "number of divided data per relay device" is the number of divided data that are sent to each divided data relay device (each destination relay device) out of the multiple divided data corresponding to the data to be transmitted. For example, in the case shown in Figure 8, the number of divided data points per relay for divided data relay device A is 3, and the number of divided data points per relay device for divided data relay device B is 2.
[0197] Figure 28 illustrates the data stored in the receiving device 7b (receiving device B) related to this variation. In the example in Figure 28, receiving device B stores the relay name (or relay ID, etc.) and IP address of the divided data relay device B as information indicating the divided data relay device to which the transmission request is made. In other words, receiving device B makes a divided data transmission request only to divided data relay device B. By making a divided data transmission request from receiving device B to divided data relay device B in the same manner as in the embodiment described above, divided transmission data (divided transmission data B and divided transmission data D according to the allocation in Figure 8) is obtained from divided data relay device B. Also, as shown in Figure 28, the fourth predefined information of receiving device B, which is a child receiving device, includes information for connecting to the parent receiving device (the IP address of the parent receiving device).
[0198] Thus, in this variation, by pre-defining different divided data relay devices 5 (transmission request relay devices) for each receiving device to which a divided data transmission request is made, it becomes possible to distribute data reception across multiple receiving devices 7. As a result, it becomes possible to receive divided data more efficiently (in a shorter time) compared to when all divided data is received by a single receiving device 7.
[0199] The second deletion request unit 88 requests the control information to be deleted from the control information relay unit 3, similar to the embodiment described above. However, in this variation, the second deletion request unit 88 requests deletion only when its own device is a parent receiving device. Any method may be used to determine whether or not its own device is a parent receiving device. For example, if the fourth predefined information does not include information for connecting to a parent receiving device, it may be determined that its own device is a parent receiving device, and if it does include information for connecting to a parent receiving device, it may be determined that its own device is a child receiving device. Also, for example, if the receiving device No. of its own device is "001" (the first number), it may be determined that its own device is a parent receiving device. Furthermore, in this variation, the second deletion request unit 88 requests the deletion of control information when its own device (parent receiving device) and child receiving devices have successfully acquired divided data (or merged data), or have successfully output divided data (or merged data) to the storage device 4, etc. For example, the second deletion request unit 88 of the parent receiving device may determine whether the sum of the number of segmented data received by the child receiving device and the number of segmented data acquired by the device itself matches the number of segmented data (total number of segmented data) included in the control information received by the receiving device 7. If they match, the device may determine that it has successfully acquired the segmented data and make a control information deletion request.
[0200] The notification unit 90, when it is a child receiving device, notifies the parent receiving device of the number of segmented data received by its own device.
[0201] The data transmission / reception processing flow, data splitting processing flow, communication channel selection processing, hash value and identifier generation processing for each split data, and split transmission data generation processing for this variation are generally the same as those described in the above embodiment with reference to Figures 15 to 24, so the differences will be explained below.
[0202] In step S129, similar to the embodiment described above, the receiving device 7 determines the target divided data relay 5 for which it will make a transmission request, based on the predefined information indicating the target divided data relay 5 for which it will make a transmission request and the destination divided data relay 5 information included in the control information acquired in step S128. As described above, receiving device A determines that the target divided data relay 5 for which it will make a transmission request is divided data relay 5, and receiving device B determines that the target divided data relay 5 for which it will make a transmission request is divided data relay 5. As a result, in step S129, receiving device A connects to divided data relay 5 and makes a divided data transmission request by specifying the target identifier (CID01) included in the control information (control information 1) acquired in step 128. Similarly, receiving device B connects to divided data relay 5 and makes a divided data transmission request by specifying the target identifier (CID01) included in the control information (control information 1) acquired in step 128. Next, in step S136, receiving device A receives divided transmission data A, divided transmission data C, and divided transmission data E from divided data relay device A, and receiving device B receives divided transmission data B and divided transmission data D. Then, the processing in steps S137 to S150 is performed between receiving device A and divided data relay device A, and between receiving device B and divided data relay device B.
[0203] Furthermore, in step S148 of this variation, the parent receiving device performs a merger process of the divided data. First, receiving device A confirms that it is the parent receiving device and waits for a notification (completion notification) from the child receiving device. When receiving device B confirms that it is the child receiving device, the output unit 87 of receiving device B saves (outputs) the divided data (divided data "BBBBB", "DDDDD") obtained from the divided data relay device B to a folder (shared folder) that can be shared with the parent receiving device, receiving device A. Note that this process may also be performed in step S141 by the fourth storage unit 81. Then, receiving device B (notification unit 90) connects to receiving device A, the parent receiving device, using the information (IP address) for connecting to the parent receiving device defined in the fourth predefined information, and notifies receiving device A that it has finished receiving the two divided data (completion notification). When receiving device A receives completion notifications from all child receiving devices (receiving devices B), it accesses a shared folder to retrieve the segmented data (segmented data "BBBBB", "DDDDD") acquired by the child receiving devices, and merges these segmented data with the segmented data "AAAAA", "CCCCC", and "EEEEE" acquired by itself. At this time, the merging unit 86 of receiving device A performs the merging using the segmented data identifier (self identifier) and other segmented data identifiers of each segmented data. Alternatively, the merging unit 86 of the parent receiving device 7 may check whether all segmented data for the data to be transmitted has been successfully merged (or merged) by checking whether the segmented data corresponding to the "number of segments" included in the control information received from the control information relay device 3 has been merged (or has been merged). Furthermore, in step S150, receiving device A confirms that it is the parent receiving device and waits for a completion notification from the child receiving device, receiving device B confirms that it is the child receiving device, connects to receiving device A using the information for connecting to the parent receiving device defined in the fourth predefined information, and notifies receiving device A that it has completed receiving the two divided data (completion notification).
[0204] In this variation, the parent receiving device performs the merging process for all divided data in step S148, but each receiving device may merge only the divided data it has acquired. For example, receiving device A may merge the divided data "AAAAA", "CCCCC", and "EEEEE". When merging, the order in which the data was divided may be ignored, or the data may be merged in ascending order of the divided data identifier numbers. The coupling unit 86 of each receiving device 7 may also check whether all the divided data acquired by its device has been successfully merged by checking whether the number of divided data entries per relay device included in the control information received from the control information relay device 3 has been merged (or has been merged).
[0205] In step S151, the parent receiving device A sends a control information deletion request to the control information relay device 3. When receiving device A receives completion notifications from all child receiving devices (receiving devices B), it checks whether the sum of the number of segmented data acquired by itself (e.g., 3) and the number of segmented data acquired by each child receiving device as notified by all child receiving devices (e.g., 2) matches the number of segmented data included in the control information received in step S128 (e.g., 5). If they match, it means that all segmented data separated from the data to be transmitted has been received by receiving device 7, and therefore the parent receiving device A requests the deletion of the control information.
[0206] As in this variation, by using multiple receiving devices 7 and separating the data relay devices for the data transmission request, it becomes possible to distribute data reception across multiple receiving devices 7. This allows for more efficient (shorter) data reception compared to receiving all divided data with a single receiving device 7.
[0207] In this variation, as described above, the divided data is distributed and received by multiple receiving devices 7 by specifying different divided data relay devices for transmission requests for each receiving device. However, even if the divided data relay devices for transmission requests are the same, it is possible to perform divided reception by using extraction keywords. For example, even if the system related to this variation has only one divided data relay device 5, distributed reception is possible by having receiving device A and receiving device B specify different extraction keywords and send divided data transmission requests to the divided data relay device 5. For example, receiving device A specifies an integer from "001" to "010" as the extraction keyword, and receiving device B specifies an integer from "011" to "020". In this case, the divided data relay device 5 sends divided transmission data (10 divided transmission data) to receiving device A, in which the file name partially matches the extraction keyword (any integer from "001" to "010"). Furthermore, the split relay 5 sends split transmission data (10 split transmission data) to the receiving device B, where the file name partially matches the extraction keyword (any integer from "011" to "020"). In this way, by specifying a different extraction keyword when requesting split transmission data for each receiving device 7, it becomes possible to receive multiple split data sets with multiple receiving devices 7. This makes it possible to receive data more efficiently (in a shorter time) compared to processing all split data with a single receiving device 7.
[0208] When specifying extraction keywords in this manner, each receiving device 7 can merge the segmented data contained in the segmented transmission data received by its own device using the identifiers of other segmented data contained in the segmented transmission data. Alternatively, as described above, the parent receiving device may merge the segmented data acquired by the parent receiving device and the segmented data acquired by the child receiving device using the identifiers of other segmented data. Furthermore, the extraction keywords specified by each receiving device may be determined dynamically by each receiving device. For example, when receiving device 7 receives control information from the control information relay device 3, it may determine the extraction keywords based on the number of segments contained in the control information. For example, if the number of segments is 20, the parent receiving device may determine the extraction keywords to be integers from "001" to "010" to receive half of the segmented data, and the child receiving device may determine the extraction keywords to be integers from "011" to "020" to receive the other half of the segmented data.
[0209] It is also possible to adopt an embodiment that combines Variation 1 and Variation 2. In this case, in step S148 of Figure 19, when each receiving device merges only the segmented data acquired by its own device, it may use the relay-specific other segmented data identifier for merging. For example, receiving device A can merge the segmented data "AAAAA", "CCCCC", and "EEEEE" acquired by receiving device A using the relay-specific other segmented data identifier included in segmented transmission data A, segmented transmission data C, and segmented transmission data E. [Explanation of Symbols]
[0210] 1. Transmitter 3. Control Information Relay Unit 5-way split data relay device 7. Receiving device
Claims
1. A communication system comprising a transmitting device and one or more receiving devices that acquire data transmitted by the transmitting device via one or more relay devices, The transmitting device is A splitting means that generates multiple split data by splitting the data to be transmitted according to a predetermined splitting method, A storage means for storing multiple communication paths available between the transmitting device and the one or more relay devices, A selection means for selecting a transmission path from the multiple communication paths for each of the multiple divided data so that the multiple divided data are transmitted in a distributed manner across two or more communication paths, The system includes a segmented data transmission means that transmits each of the plurality of segmented data to a destination relay, which is a relay, at the end of the transmission path selected by the selection means, via the transmission path selected by the selection means. Each of the one or more receiving devices is: The system includes a segmented data acquisition means that acquires segmented data from at least one of the one or more destination relays to which at least one segmented data is transmitted, by making a segmented data transmission request to at least one relay. Communication system.
2. The selection means determines a predetermined number of communication channels, which is two or more, from the plurality of communication channels using priority information indicating the priority of each predetermined communication channel or performance value information indicating the performance value of each communication channel, and selects a transmission path for each of the plurality of divided data from the predetermined number of communication channels so that the plurality of divided data are transmitted distributed across two or more communication channels. The communication system according to claim 1.
3. The selection means selects a transmission path for each of the plurality of divided data from the determined predetermined number of communication paths using the priority of the predetermined number of communication paths or the ratio of the performance values. The communication system according to claim 2.
4. The selection means selects a transmission path for each of the multiple divided data so that the multiple divided data are transmitted to two or more relay devices. The communication system according to claim 1.
5. The transmitting device is The system further comprises control information transmission means for transmitting control information, which includes information indicating one or more destination relay stations to which at least one segmented data is transmitted, to a predetermined relay station included in the one or more relay stations or to one or more receiving devices, Each of the one or more receiving devices is: The system further includes control information acquisition means for acquiring information indicating one or more destination relay stations from the predetermined relay station or the transmitting device, The segmented data acquisition means refers to the information acquired by the control information acquisition means and makes a segmented data transmission request to at least one of the one or more destination relays indicated by the information. The communication system according to claim 1.
6. When transmitting each of the multiple divided data, the divided data transmission means transmits a divided data identifier that uniquely identifies the divided data along with the divided data. The segmented data acquisition means acquires the segmented data identifier together with the segmented data, At least one receiving device included in the one or more receiving devices is: The system further comprises a combining means for combining the segmented data acquired by the receiving device, or the segmented data acquired by the receiving device and other receiving devices, using the segmented data identifier of each segmented data. The communication system according to claim 1.
7. When transmitting the first divided data included in the plurality of divided data, the divided data transmission means transmits, together with the first divided data, the divided data identifier of the first divided data and another divided data identifier which is a divided data identifier that can uniquely identify the divided data immediately preceding or succeeding the first divided data in the order of the plurality of divided data in the data to be transmitted. The segmented data acquisition means acquires the segmented data identifier and the other segmented data identifier of the first segmented data together with the first segmented data. The combining means combines the segmented data acquired by the self-receiving device, or the segmented data acquired by the self-receiving device and other receiving devices, using the segmented data identifier and other segmented data identifier for each segmented data. The communication system according to claim 6.
8. The communication system further comprises one or more relay devices, When transmitting each of the multiple divided data, the divided data transmission means transmits a divided data identifier that uniquely identifies the divided data along with the divided data. The destination relay device included in the one or more relay devices is: A segmented data receiving means that receives the segmented data and the segmented data identifier transmitted from the transmitting device, A segmented data transfer means that, upon receiving the segmented data transmission request from the receiving device, transfers the segmented data and the segmented data identifier received from the transmitting device to the receiving device, The system includes an identifier transmission means that transmits the segmented data identifier for the segmented data transferred by the segmented data transfer means to the receiving device using a different communication protocol than the communication protocol used for transferring the segmented data, The segmented data acquisition means acquires the segmented data and the segmented data identifier transferred by the segmented data transfer means, Each of the one or more receiving devices is: An identifier receiving means that receives the segmented data identifier transmitted by the identifier transmitting means, The system further comprises a determination means that determines whether or not there is any undelivered segmented data from the destination relay station, using the segmented data identifier obtained by the segmented data acquisition means and the segmented data identifier received by the identifier receiving means. The communication system according to claim 1.
9. The communication system further comprises one or more relay devices, The transmitting device is The system further comprises control information transmission means for transmitting control information, including the segmented data identifier for the segmented data transmitted by the segmented data transmission means, to a predetermined relay or receiving device included in the one or more relays, When transmitting each of the multiple divided data, the divided data transmission means transmits a divided data identifier that uniquely identifies the divided data along with the divided data. The destination relay device included in the one or more relay devices is: A segmented data receiving means that receives the segmented data and the segmented data identifier transmitted from the transmitting device, The system includes a segmented data transfer means that, upon receiving a segmented data transmission request from the receiving device, transfers the segmented data and the segmented data identifier received from the transmitting device, The segmented data acquisition means acquires the segmented data and the segmented data identifier transferred by the segmented data transfer means, Each of the one or more receiving devices is: Control information acquisition means for acquiring the segmented data identifier for the segmented data transmitted by the segmented data transmission means from the predetermined relay or the transmission device, The system further includes a determination means that determines whether or not there is any unreachable segmented data from the destination relay station, using the segmented data identifier obtained by the segmented data acquisition means and the segmented data identifier obtained by the control information acquisition means. The communication system according to claim 1.
10. The aforementioned communication system includes multiple receiving devices, Each of the aforementioned plurality of receiving devices is: The device further includes storage means for storing information indicating one or more transmission request relays that are relays to which the receiving device requests transmission of the divided data, The one or more relay devices that request the transmission of the segmented data differ for each receiving device. The segmented data acquisition means is one or more destination relay devices to which at least one segmented data is transmitted, and acquires the segmented data from a relay device by making a segmented data transmission request to a relay device that corresponds to one or more transmission request relay devices indicated by the information stored by the storage means. The communication system according to claim 1.
11. The first receiving device included in the one or more receiving devices is: The system further includes a deletion request means that determines whether the plurality of divided data has been successfully acquired by the one or more receiving devices, and if it is determined that the plurality of divided data has been successfully acquired, it transmits a deletion request to at least one of the one or more relay devices to delete the plurality of divided data and / or information related to said plurality of divided data. The communication system according to claim 1.
12. The transmitting device is The system further comprises control information transmission means for transmitting control information, including the number of divided data generated by the division of the data to be transmitted by the division means, to a predetermined relay or receiving device included in the one or more relays, Of the one or more receiving devices, at least the first receiving device is The system further comprises control information acquisition means for obtaining the aforementioned number from the predetermined relay device or the transmitting device, The deletion request means determines, using the acquired number, whether the one or more receiving devices have successfully acquired the plurality of divided data. The communication system according to claim 11.
13. The communication system comprises a plurality of receiving devices, including the first receiving device and one or more second receiving devices different from the first receiving device. Each of the one or more second receiving devices is: The device further includes a notification means for notifying the first receiving device of the number of segmented data received by the device itself, The deletion request means of the first receiving device sums the number of divided data notified from each of the one or more second receiving devices and the number of divided data received by the first receiving device, and sends the deletion request when the sum matches the number. The communication system according to claim 12.
14. Each of the one or more receiving devices is: The system further includes output means for distributing and outputting the multiple divided data acquired by the divided data acquisition means to multiple external storage devices. The communication system according to claim 1.
15. The transmitting device is The system further comprises control information transmission means for transmitting control information, including information indicating the data type of the data to be transmitted, to a predetermined relay or receiving device included in the one or more relays, Each of the one or more receiving devices is: A storage means for storing job definitions that specify jobs to be executed for each data type, A control information acquisition means that acquires information indicating the data type from the predetermined relay or the transmitting device, The system further includes execution request means that, by referring to the job definition based on the acquired data type, each makes an execution request for the job corresponding to the acquired data type to a plurality of external processing devices that acquire segmented data from some of the storage devices of the plurality of external storage devices and perform processing using the acquired segmented data, The communication system according to claim 14.
16. The communication system further comprises one or more relay devices, The communication system comprises a plurality of the receiving devices, When transmitting each of the multiple divided data, the divided data transmission means transmits, along with the divided data, a predetermined keyword included in the divided data or an identifier that can uniquely identify the divided data in the data to be transmitted. The destination relay device included in the one or more relay devices is: A segmented data receiving means that receives the segmented data transmitted from the transmitting device and the predetermined keyword or identifier transmitted together with the segmented data, A storage means for storing the acquired segmented data and the predetermined keyword or identifier transmitted together with the segmented data in association; The system includes a segmented data transfer means that, upon receiving a segmented data transmission request from the receiving device specifying an extraction keyword, transfers to the receiving device the segmented data stored in association with a predetermined keyword or identifier that includes the specified extraction keyword. Each of the aforementioned plurality of receiving devices is: The system further includes a storage means for storing the extracted keywords, which are keywords for identifying the segmented data to be received by the receiving device, and which are different keywords assigned to each receiving device included in the plurality of receiving devices. The segmented data acquisition means obtains the segmented data stored in association with the predetermined keyword or identifier, which includes the specified extraction keyword, from the at least one relay device by making a segmented data transmission request to at least one of the one or more destination relay devices, specifying the stored extraction keyword. The communication system according to claim 1.
17. The communication system further comprises one or more relay devices, The transmitting device is The system further includes control information transmission means for transmitting control information, which includes an identifier capable of uniquely identifying the data to be transmitted, to a predetermined relay device included in the one or more relay devices or to one or more receiving devices. The divided data transmission means transmits each of the plurality of divided data together with the identifier. The destination relay device included in the one or more relay devices is: A segmented data receiving means that receives the segmented data and the identifier transmitted from the transmitting device, A storage means for storing the acquired segmented data and the identifier in association, The system includes a segmented data transfer means that, upon receiving a segmented data transmission request specifying the identifier from the receiving device, transfers the segmented data stored in association with the specified identifier to the receiving device. Each of the one or more receiving devices is: The system further comprises control information acquisition means for obtaining the identifier from the predetermined relay device or the transmitting device, The segmented data acquisition means obtains the segmented data included in the plurality of segmented data from at least one of the one or more destination relay devices by making a segmented data transmission request to at least one relay device specifying the identifier obtained by the control information acquisition means. The communication system according to claim 1.
18. The communication system further comprises one or more relay devices, When transmitting each of the multiple divided data, the divided data transmission means transmits a divided data identifier that uniquely identifies the divided data along with the divided data. The transmitting device is The system further comprises control information transmission means for transmitting control information to a predetermined relay or one or more receiving devices included in the one or more relays, which includes a relay-specific first data identifier that is the first divided data identifier of the divided data generated from the data to be transmitted, when the divided data is arranged in the order in the data to be transmitted, for each of the one or more relays included in the one or more relays, The destination relay device included in the one or more relay devices is: A divided data receiving means that receives the divided data and the divided data identifier transmitted from the transmitting device, A storage means for storing the acquired segmented data and the segmented data identifier in association, The system includes a segmented data transfer means that, upon receiving a segmented data transmission request from the receiving device specifying the relay-specific starting data identifier, transfers to the receiving device one or more segmented data, each including at least the segmented data stored in association with the specified relay-specific starting data identifier, Each of the one or more receiving devices is: The system further comprises control information acquisition means for obtaining the relay-specific leading data identifier from the predetermined relay or the transmitting device, The segmented data acquisition means obtains the one or more segmented data transferred by the segmented data transfer means from the at least one relay device by making a segmented data transmission request to at least one of the one or more destination relay devices, specifying the relay device-specific starting data identifier obtained by the control information acquisition means. The communication system according to claim 1.
19. The communication protocol used for transferring the aforementioned segmented data is UDP. The aforementioned other communication protocol is TCP. The communication system according to claim 10.
20. The divided data transmission means transmits the divided data via UDP communication. The control information transmission means transmits the control information via TCP communication. The control information acquisition means acquires the control information via TCP communication, The segmented data acquisition means acquires the segmented data via UDP communication. A communication system according to any one of claims 5, 9, 12, 13, 15, 17, and 18.
21. In a communication system comprising a transmitting device and one or more receiving devices that acquire data transmitted by the transmitting device via one or more relay devices, The transmitting device, which includes storage means for storing multiple communication paths that can be used with the one or more relay devices, A splitting step that generates multiple split data by splitting the data to be transmitted according to a predetermined splitting method, A selection step in which a transmission path is selected from the multiple communication paths for each of the multiple divided data so that the multiple divided data are transmitted distributed across two or more communication paths, A segmented data transmission step is performed, which transmits each of the plurality of segmented data to a destination relay, which is a relay, at the end of the transmission path selected by the selection step, via the transmission path selected by the selection step. Each of the one or more receiving devices is: A segmented data acquisition step is performed by making a segmented data transmission request to at least one of the one or more destination relay devices to which at least one segmented data is transmitted, thereby acquiring the segmented data from the at least one relay device. method.
22. In a communication system comprising a transmitting device and one or more receiving devices that acquire data transmitted by the transmitting device via one or more relay devices, The transmitting device includes a storage means for storing multiple communication paths that can be used with the one or more relay devices, A splitting means that generates multiple split data by splitting the data to be transmitted according to a predetermined splitting method, A selection means for selecting a transmission path from the multiple communication paths for each of the multiple divided data so that the multiple divided data are transmitted in a distributed manner across two or more communication paths, The divided data transmission means functions to transmit each of the plurality of divided data to the destination relay, which is the relay, at the end of the transmission path selected by the selection means. Each of the one or more receiving devices is: The system functions as a segmented data acquisition means that acquires segmented data from at least one of the one or more destination relay devices to which at least one segmented data is transmitted, by making a segmented data transmission request to at least one relay device. program.