Patent Publication Number: US-11381642-B2

Title: Distributed storage system suitable for sensor data

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This is a U.S. national phase application under 35 USC 371 of international application PCT/JP2018/038689, filed Oct. 17, 2018, which claims priority to Japanese patent application No. 2017-213880, filed on Nov. 6, 2017. The entire disclosures of the above applications are incorporated herein by reference. 
     FIELD 
     The present invention relates generally to a distributed information storage system, method and program for storing data in a distributed manner. 
     BACKGROUND 
     An IoT system that has recently received attention requires a platform software program to accumulate all the data transmitted from many various sensor devices and to read arbitrary data from the accumulated data at any timing. 
     Most of the data transmitted from a sensor device in the IoT system is transmitted in small amounts at a high frequency. In general, such data is transmitted to the platform software program that performs aggregation, in accordance with a lightweight publisher-subscriber model messaging protocol, examples of which include Message Queueing Telemetry Transport (MQTT). 
     A sensor device may not have a permanent storage area, and there may not be any workers stationed around. It is therefore necessary to continuously and completely write data into the storage area in the platform software. To realize this, the platform software should ensure fault tolerance (see, for example, Non-patent Literature 1). 
     In addition, in the IoT system, more devices that have not been connected to the Internet are expected to be connected to the network. Furthermore, the entity that makes calls is not a user but a device. In view of this, the system is preferably designed to have scalability, beginning at a small scale and gradually expanding to a large-scale system (see, for example, Non-patent Literature 2). 
     CITATION LIST 
     Non-Patent Literature 
     
         
         [Non-patent Literature 1] Kohei Hiraga and Osamu Tatebe. “Study on Redundancy Method of Metadata Server in Distributed File System”, Research Reports of High Performance Computing (HPC) 2011.37 (2011): 1-7. 
         [Non-patent Literature 2] Naoki Kondo, et al. “Comparison experiment of performance for range queries using Fat-Btree, P-tree, SkipGraph”, Information Fundamentals and Access Technology (IFAT) Technical Report, 2011.15 (2011): 1-8. 
       
    
     SUMMARY 
     When storing data in a distributed manner, a distributed database in general stores the same data in a plurality of information storage devices and thereby ensures data redundancy, thereby attaining the above-described fault tolerance. 
     In a conventional distributed database as described in Non-patent Literature 1, in order to ensure data redundancy, the information storage device that has received data determines information storage devices for storing the data, and duplicates and sends this data. In such a distributed database, however, a process of duplicating data and transmitting and receiving the duplicated data is required, which may lower the write performance per information storage device, in comparison to a non-distributed database. 
     The present invention has been conceived in view of the above circumstances. The purpose of the invention is to offer a distributed information storage system, method and program for storing data transmitted from an information transmission device, in a distributed manner without the need to duplicate or transmit/receive the data between the information storage devices. 
     In order to solve the above problem, the invention according to the first mode is a distributed information storage system including a plurality of information storage devices configured to conduct data communication with information transmission devices and information reception devices, each information storage device of the information storage devices includes a data acquiring unit configured to acquire data transmitted together with an identifier corresponding to an Information reception device assigned to the information storage device from among data transmitted from the information transmission devices, based on a first correspondence table associating the information reception devices and identifiers indicating types of data acquired by the information reception devices and a second correspondence table indicating a correspondence between the information storage devices and the information reception devices assigned to the information storage devices, the first correspondence table and the second correspondence table being shared among the information storage devices, and a storage medium configured to store the acquired data. 
     In the invention according to the second mode, each of the information storage devices further includes a request acquiring unit configured to acquire a data request from the information reception device, a determining unit configured to determine whether or not the acquired data request is transmitted from the assigned information reception device, and an output unit configured to output data stored in the storage medium to the assigned information reception device when the acquired data request is determined as being acquired from the assigned information reception device, wherein the determining unit determines an information storage device responsible for an information reception device that is a sender of the data request based on the second correspondence table, when the acquired data request is not acquired from the assigned information reception device, each of the information storage devices further includes a relay unit configured to acquire data stored in the storage medium of the information storage device that is determined as the information storage device responsible for the information reception device that has sent the data request, and the output unit outputs the acquired data via the relay unit to the information reception device that has sent the data request. 
     In the invention according to the third mode, the distributed information storage system further includes a management device to implement the initial setting of, or data access to, the first correspondence table or the second correspondence table shared among the information storage devices. 
     In the invention according to the fourth mode, each of the information storage devices includes a correspondence updating unit to store, when an information reception device is added, the added information reception device in the second correspondence table without associating it with an information storage device; and a selecting unit to select an information reception device to be assigned from among the information reception devices that are not associated with any of the information storage devices, with reference to the second correspondence table, where the correspondence updating unit includes a correspondence updating unit to store the correspondence with the selected information reception device in the second correspondence table. 
     In the invention according to the fifth mode, the second correspondence table further stores a time point at which the correspondence with the information reception device is entered, for each of the information storage devices, each of the information storage devices further includes a correspondence monitoring unit configured to determine whether or not a predetermined time has elapsed after a time point is entered in relation to another information storage device responsible for the assigned information reception device, by referring to the second correspondence table, and a correspondence updating unit configured to, when it is determined that the predetermined time has elapsed after the time point is entered, clear the correspondence of the information storage device subjected to the determination with the information reception device from the second correspondence table, and update the time point entered in relation to the information storage device itself on the second correspondence table. 
     In the invention according to the sixth mode, each of the information storage devices further includes a calculation unit to calculate a total value of costs to the assigned information reception devices for each information storage device, on the second correspondence table; and when an information storage device is added to the distributed information storage system, the added information storage device further includes a selecting unit to select, as an information reception device to be assigned, an information reception device having the highest cost from among the information reception devices assigned to the information storage device having the largest total value of the calculated costs; and a correspondence updating unit to store correspondence with the selected information reception device in the second correspondence table. 
     The following additional modes may also be possible. 
     According to the first additional mode, after storing the correspondence in the second correspondence table in the sixth mode, the added information storage device sends a notification to the information storage device having the largest total value of the calculated costs. 
     According to the second additional mode, after storing the correspondence in the second correspondence table in the sixth mode, the added information storage device calculates the total value of the costs to the information reception devices associated with the information storage device itself, and determines whether or not the total value of the calculated costs exceeds a predetermined value. 
     According to the invention according to the first mode, in each of the information storage devices, the data transmitted together with the identifier associated with the information reception device assigned to the information storage device is acquired based on the first correspondence table shared among the information storage devices and also on the information indicating the correspondence, where the first correspondence table associates the information reception devices with the identifiers indicating the types of data acquired by the information reception devices, and the information indicates the correspondence between the information storage devices and the information reception devices assigned to the information storage devices. The acquired data is then stored. In other words, each information storage device autonomously acquires and accumulates the data to be acquired. 
     In this manner, with each information storage device configured to autonomously acquire data, the data can be stored in multiple information storage devices in a distributed manner, without having to duplicate or transmit/receive the data between the information storage devices. This realizes a distributed information storage system in which the write performance per information storage device during data storage is prevented from being lowered. 
     In addition, if the information indicating the correspondence between the information storage devices and the information reception devices assigned to the information storage devices is set such that one information reception device is assigned to two or more information storage devices, data redundancy can be ensured over a plurality of information storage devices, thereby assuring the fault tolerance of the distributed information storage system. 
     According to the invention according to the second mode, a data request is acquired in each of the information storage devices from the information reception devices, and whether or not the acquired data request is transmitted from an assigned information reception device is determined. Then, as a result of the determination, if the data request is transmitted from the assigned information reception device, the stored data is output to the assigned information reception device. On the other hand, if the data request is not from an assigned information reception device, the information storage device responsible for the information reception device that has sent the data request is determined, based on the second correspondence table that is shared among the information storage devices for associating the information reception devices with the information storage devices assigned to the information reception devices. Thereafter, the data stored in the information storage device determined as the information storage device responsible for the information reception device that has sent the data request is acquired and output to the information reception device that has sent the data request. The information reception device therefore can acquire the desired data, whichever information storage device the information reception device makes an access to. 
     In the invention according to the third mode, initial setting of, or data access to, a first correspondence table or a second correspondence table shared among the information storage devices is performed by a management device. This allows for collective management of information shared by information storage devices, or in other words collective management of the distributed information storage system, by the management device. 
     In the invention according to the fourth mode, when an information reception device is added, the added information reception device is stored in the second correspondence table in each of the information storage devices, without being associated with a specific information storage device. Thereafter, the second correspondence table is referred to in each of the information storage devices; an information reception device to be assigned is selected from the information reception devices which are not associated with any of the information storage devices; and the correspondence with the selected information reception device is stored in the second correspondence table. 
     Thus, according to the fourth mode, the system can be provided with a scaling-out property that allows an information reception device to be added to the system, without the need to transmit and receive data between the information storage devices at the time of scaling out. As a result, a distributed information storage system can be achieved which is provided with a scaling-out property and which can prevent the write performance per information storage device from being lowered even at the time of scaling out. 
     For conventional databases having a scaling-out property that allows for system expansion as described, for example, in Non-patent Literature 2, it is common to adopt hashing for keys and perform divide-and-conquer in accordance with the range of hash values or a subtree of a tree structure. With such a scheme, the data transmitted from an information transmission device is analyzed inside the database, an information storage device into which the information is to be written is searched for, and the writing is performed based on this result, onto the target information storage device. As described above, the conventional technology as described in Non-patent Literature 2 requires a process of transmitting and receiving information between information storage devices. Thus, in comparison to a non-distributed database, the amount of work at one write operation increases in proportion to the number of information storage devices, which lowers the write performance per information storage device. That is, the fourth mode has an advantageous feature as described above, over the prior art. 
     In the invention according to the fifth mode, each of the information storage devices refers to the second correspondence table, and determines whether or not a predetermined time has elapsed since the time stored for another information storage device that is responsible for the information reception device assigned to the information storage device itself. As a result of this determination, if a predetermined, time has elapsed since the time stored, each of the information storage devices removes from the second correspondence table the correspondence between the Information storage device for which the time has elapsed and the information reception device, while updating the time stored for the information storage device itself. 
     In general, even if a normal operation has been confirmed for an information storage device, a problem may occur to cause the device to not operate properly as the operation time elapses. However, by removing the correspondence with the information storage device that has been associated with an information reception device with reference to the time as in the fifth mode described above, an information storage device that is not properly operating can be prevented from taking on responsibility for an information reception device. In this manner, the reliability of the entire distributed information storage system can be improved. 
     In addition, the operation of the information storage device that has performed the above process of monitoring the correspondence table is checked at the same time as the monitoring process. Thus, the correspondence with respect to a properly operating information storage device can be prevented from being removed when updating the time points in the second correspondence table as described above, and therefore the efficiency of the distributed information storage can be prevented from being lowered. 
     In the invention according to the sixth mode, each of the information storage devices calculates the total value of the costs to the information reception devices assigned to each information storage device in the second correspondence table. When an information storage device is added to the distributed information storage system, the added information storage device selects, as an information reception device to be assigned, the information reception device having the highest cost from among the information reception devices assigned to the information storage device having the total value of the largest total value of the calculated costs, and the correspondence with the selected information reception device is stored in the second correspondence table. 
     Thus, the system can be provided with a scaling-out property that allows for the addition of an information storage device to the system, without the need to transmit and receive data between the information storage devices at the time of scaling out. As a result, a distributed information storage system can be achieved which is provided with a scaling-out property and which can prevent the write performance per information storage device from being lowered even at the time of scaling out. 
     According to the first additional mode, after storing the correspondence in the second correspondence table in the sixth mode, the added information storage device sends a notification to the information storage device having the largest total value of the calculated costs. For this reason, the information storage device receiving the notification relinquishes the correspondence with the information reception device that is newly assigned to the added information storage device, so as to no longer receive the data for the information reception device with which the correspondence is relinquished. In this manner, the load of a heavily loaded information storage device can be reduced. 
     According to the second additional mode, after storing the correspondence in the second correspondence table in the sixth mode, the added information storage device calculates the total value of the costs to the information reception devices associated with the device itself, and determines whether or not the total value of the calculated costs exceeds a predetermined value. For this reason, an additional information reception device may be assigned depending on the determination result, thereby smoothing out the loads on the information storage devices. 
     That is, according to each mode of the present invention, a distributed information storage system, method, and program for distributing and staring the data transmitted from an information transmission device can be offered, without requiring duplication or transmission/reception of the data between information storage devices. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic diagram showing the configuration of a network system in the invention according to the first embodiment. 
         FIG. 2A  is a block diagram showing the functional configuration of an information storage device in the network system illustrated in  FIG. 1 . 
         FIG. 2B  is a block diagram showing a detailed functional configuration of a setting sharing unit illustrated in  FIG. 2A . 
         FIG. 3  is a diagram showing an example of a first correspondence table for associating information reception devices with identifiers indicating types of data acquired, by respective information reception devices, which is shared among the setting management device and a plurality of information storage devices. 
         FIG. 4  is a diagram showing an example of a second correspondence table for associating information reception devices with information storage devices responsible for the information reception devices, which is shared among a setting management device and the information storage devices. 
         FIG. 5  is a flowchart showing an example of a data write process implemented by the control unit of the information storage device illustrated in  FIG. 2 . 
         FIG. 6  is a flowchart showing a data request response process implemented by the control unit of the information storage device illustrated in  FIG. 2 . 
         FIG. 7  is a flowchart showing an example of a selection process implemented by the control unit of the information storage device illustrated in  FIG. 2  for selecting, when an information reception device is added to the network system illustrated in  FIG. 1 , a to-be-assigned information reception device. 
         FIG. 8  is a flowchart showing an example of a correspondence monitoring process implemented by the control unit of the information storage, device illustrated in  FIG. 2 . 
         FIG. 9  is a diagram showing the state of the second correspondence table being updated in accordance with the correspondence monitoring process of  FIG. 8 . 
         FIG. 10  is a flowchart showing an example of the selection process implemented by the control unit of the information storage device illustrated in  FIG. 2  for selecting, when an information storage device is added to the network system shown in  FIG. 1 , a to-be-assigned information reception device. 
         FIG. 11  is a diagram showing the state of the second correspondence table being updated in accordance with the selection process of a to-be-assigned information reception device shown in  FIG. 10 . 
     
    
    
     DETAILED DESCRIPTION 
     Embodiments of the present invention will be described below with reference to the drawings. 
     Embodiment 1 
     (Structure) 
       FIG. 1  is a schematic diagram showing the configuration of a network system in the invention according to the first embodiment. 
     The network system of  FIG. 1  includes information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F, which serve as sensor devices on the data transmission side, a broker  3 , as well as information storage devices  1 A,  1 B,  1 C and  1 D and a setting management device  5 , which serve as a distributed information storage system for storing transmission data, in a data communicable manner as in the publisher-subscriber model used in an IoT system. The network system may also include information reception devices  4 A,  4 B,  4 C and  4 D, which are applications, on the data reception side. The network system illustrated in  FIG. 1  is merely given as an example. Any number (one or more) of information transmission devices and information reception devices may be present in the network system, and any number (two or more) of information storage devices may be present. 
     Each of the setting management device  5  and the information storage devices  1 A,  1 B,  1 C and  1 D stores therein a first correspondence table for associating the information reception devices with identifiers that indicate the types of data acquired by the information reception devices, and a second correspondence table for associating the information reception devices with the information storage devices responsible for the information reception devices to store data corresponding to the information reception devices. The first and second correspondence tables are shared in a synchronous manner among the setting management device  5  and the information storage devices  1 A,  1 B,  1 C and  1 D. The first and second correspondence tables may be initially set by an operator on the setting management device  5 . 
     Of the data transmitted from the information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F, the information storage devices  1 A,  1 B,  1 C and  1 D store the data to be acquired by a respective one of the information reception devices  4 A,  4 B,  4 C and  4 D that is assigned to the respective information storage devices, based on the first correspondence table. When one information reception device is assigned to two or more information storage devices, the data to be acquired by this information reception device is divided and duplicated so chat the data can be stored in a distributed manner among the information storage devices. 
     Meanwhile, upon a data request from the information reception devices  4 A,  4 B,  4 C and  4 D, the corresponding information storage devices  1 A,  1 B,  1 C and  1 D transmit and receive data among the information storage devices  1 A,  1 B,  1 C and  1 D, as necessary, based on the second correspondence table, and output the data requested by the information reception devices  4 A,  4 B,  4 C and  4 D. 
     (1) Information Storage Device 
       FIG. 2A  is a block diagram showing the functional configuration of the information storage device  1 A illustrated in  FIG. 1 . The functional configuration of the information storage device  1 A is described below. It should be noted that other information storage devices such as the information storage devices  1 B,  1 C, and  1 D have the same functional configuration. For reference, in  FIG. 2A , the input and output of data are indicated by solid arrows, while the input and output of the setting information relating to the first and second correspondence tables are indicated by dashed arrows. 
     The information storage device  1 A includes a control unit  11 A, a storage unit  12 A, and a communication interface unit  13 A. 
     The communication interface unit  13 A may include one or more wired or wireless communication interface units. The communication interface unit  13 A acquires a data request having an identifier that indicates the type of data and is output from the control unit  11 A, and outputs this data request to the broker  3  through the communication network. Thereafter, the communication interface unit  13 A acquires the data transmitted together with, the identifier from the broker  3  through the communication network, from among the data transmitted by the information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F, and outputs the acquired data to the control unit  11 A. 
     The communication interface unit  13 A acquires the data request transmitted by the information reception devices  4 A,  4 B,  4 C and  4 D through the communication network, and outputs the acquired data request to the control unit  11 A. Thereafter, the communication interface unit  13 A transmits the data output from the control unit  11 A, to the information reception device that has sent the data request through the communication network. The communication interface unit  13 A also transmits and receives data and setting information to and from other information storage devices such as the information storage devices  1 B,  1 C, and  1 D, and transmits and receives setting information to and from the setting management device  5 . 
     For the storage unit  12 A, a nonvolatile memory such as a hard disk drive (HDD) or a solid state drive (SSD) on which write and read operations can be performed at any time may be adopted as a storage medium. The storage unit  12 A includes a data storage unit  121 A and a shared setting storage unit  122 A as storage areas used for realizing the present embodiment. 
     The data storage unit  121 A is used for storing the data acquired from the broker  3  for respective information reception devices assigned to the information storage device that the data storage unit  121 A belongs to. 
     The shared setting storage unit  122 A is used for storing a first correspondence table for associating the information reception devices with the identifiers indicating the types of data acquired by the information reception devices, where the first correspondence table is shared among the information storage devices  1 A,  1 B,  1 C and  1 D and the setting management device  5 . The shared setting storage unit  122 A is further used for storing a second correspondence table for associating the information reception devices with the information storage devices  1 A,  1 B,  1 C and  1 D that are responsible for the information reception devices, where the second correspondence table is shared by the information storage devices  1 A,  1 B,  1 C and  1 D and the setting management device  5 . 
     The control unit  11 A includes a hardware processor such as a central processing unit (CPU) and a program memory. In order to implement the processing functions of the present embodiment, the control unit  11 A has a data write unit  111 A, a data output unit  112 A, a relay determination unit  113 A, a relay unit  114 A, and a setting sharing unit  115 A. All of the processing functions of these units can be realized by the hardware processor executing the programs stored in the program memory. 
     The data write unit  111 A implements the process of reading the first correspondence table stored in the shared setting storage unit  122 A of the storage unit  12 A for associating the information reception devices with identifiers indicating the types of data acquired by the information reception devices. Thereafter, based on the first correspondence table and the preset information indicating the correspondence between the information storage devices and the information reception devices assigned to the information storage devices, the data write unit  111 A implements the process of outputting to the broker  3  via the communication interface unit  13 A the data request including the identifier that is associated with the information reception device assigned to the data storage device  1 A of this data write unit  111 A. 
     Then, the data write unit  111 A implements the process of acquiring from the broker  3  via the communication interface unit  13 A the data transmitted with the above identifier from among the data transmitted by the information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F, and storing the acquired data in the data storage unit  121 A of the storage unit  12 A for each of the assigned information reception devices. The data for an information reception device assigned to the information storage device  1 A may be acquired by other information storage devices  1 E, . . . , and  1 D based on the first correspondence table. The data write unit  111 A may acquire this data from the information storage device that has acquired the data, and store the data in the data storage unit  121 A of the storage unit  12 A. 
     The information indicating the correspondence between the information storage device and the information reception device assigned to the information storage device may be the information indicating a correspondence preselected by the setting management device  5 , or the information indicating the correspondence selected by the setting sharing unit  1152 A of the control unit  11 A. The information indicating the correspondence between the aforementioned information storage device and the information reception device assigned to the information storage device may include the correspondence for other information storage devices such as information storage devices  1 B,  1 C and  1 B. 
     The relay determination unit  113 A implements the process of acquiring, via the communication interface unit  13 A, the data request transmitted together with an identifier indicating an information reception device from among the information reception devices including the information reception devices  4 A,  4 B,  4 C and  4 D. In the following explanation, it is assumed that a data request is acquired from the information reception device  4 A as an example. 
     Then, the relay determination unit  113 A implements the process of determining whether or not the acquired data request is transmitted from the information reception device assigned to the information storage device  1 A of the relay determination unit  113 A itself. This determination process may be based on the aforementioned information indicating the correspondence between the information storage devices and the information reception devices assigned to the information storage devices. Alternatively, the determination processing may be based on the second correspondence table stored in the shared setting storage unit  122 A of the storage unit  12 A for associating the information reception devices with the information storage devices responsible for the information reception devices. The relay determination unit  113 A implements, if it is determined that the acquired data request is not from the information reception device assigned to the information storage device  1 A that the relay determination unit  113 A belongs to, the process of determining the information storage device responsible for the information reception device  4 A which has sent the data request, based on the second correspondence table stored in the shared setting storage unit  122 A of the storage unit  12 A. In the following explanation, as an example, it is assumed that the information storage device  1 B is determined as the information storage device responsible for the information reception device  4 A that has sent the data request. 
     The relay unit  114 A implements, when it is determined that the acquired data request is not from the information reception device assigned to the information storage device  1 A that the relay unit  114 A belongs to, the process for outputting the data request via the communication interface unit  13 A to the information storage device  1 B that is determined as the information storage device responsible for the information reception device  4 A that has sent the data request. Thereafter, the relay unit  114 A implements the process for acquiring the data stored in the data storage unit  121 B of the information storage device  1 B via the communication interface unit  13 A. The acquired data may be stored in the storage unit  12 A. Instead of outputting the data request to the information storage device  1 B that serves as a relay point, the relay unit  114 A may issue a command to transmit the data stored for the information reception device  4 A in the data storage unit  121 B of the information storage device  1 B. 
     The data output  112 A implements, if it is determined that the acquired data request is not from the information reception device assigned to the information storage device  1 A that the data output unit  112 A belongs to, the process for outputting the data acquired through the processing at the relay unit  114 A, to the information reception device  4 A via the communication interface unit  13 A. On the other hand, the data output unit  112 A implements, if it is determined that the acquired data request is transmitted from the information reception device assigned to the information storage device  1 A that the data output unit  112 A belongs to, the process for reading the data stored in the data storage unit  121 A of the storage unit  12 A for the information reception device  4 A that has sent the data request. Thereafter, the data output unit  112 A implements the process for outputting the read-out data to the information reception device  4 A via the communication interface unit  13 A. 
     The setting sharing unit  115 A implements the process for keeping the first and second correspondence tables stored in the shared setting storage unit  122 A of the storage unit  12 A in synchronization with each other in accordance with the initial setting or data access that has been performed by the setting management device  5  on the first or second correspondence table stored in the shared setting storage unit  521  of the setting management device  5 . 
     If the first correspondence table or the second correspondence table stored in the shared setting storage unit  122 A of the storage unit  12 A is updated, the setting sharing unit  115 A further implements the processing for outputting, via the communication interface unit  13 A, the setting information that is stored in the setting management device  5  and the information storage devices  1 B,  1 C and  1 D and used for keeping the first correspondence table and second correspondence table is stored in the setting management device  5  and the information storage devices  1 B,  1 C and  1 D in synchronization with each other. 
       FIG. 2B  is a block diagram showing the detailed functional configuration of the setting sharing unit  115 A. The setting sharing unit  115 A includes a target device selecting unit  1151 A, a correspondence monitoring unit  1152 A, and a correspondence updating unit  1153 A. 
     The target device selecting unit  1151 A implements the process of selecting an information reception device to be assigned to the information storage device  1 A that the target device selecting unit  1151 A belongs to. This selection process may be implemented by referring to the second correspondence table stored in the shared setting storage unit  122 A of the storage unit  12 A. The target device selecting unit  1151 A may execute a process of selecting an information reception device, assigned to an information storage device other than the information storage device  1 A that the target device selecting unit  1151 A belongs to. 
     The correspondence monitoring unit  1152 A implements the process of monitoring the second correspondence table stored in the shared setting storage unit  122 A of the storage unit  12 A. 
     The correspondence updating unit  1153 A implements the update process for writing, into the second correspondence table stored in the shared setting storage unit  122 A of the storage unit  12 A, the correspondence between the information storage device  1 A that the correspondence updating unit  1153 A belongs to and the information reception device selected by the target device selecting unit  1151 A or the setting management device  5 , after the completion of the data write process by the data write unit  111 A. The correspondence updating unit  1153 A further implements the process of updating the second correspondence table stored in the shared setting storage unit  122 A of the storage unit  12 A in accordance with the monitoring process performed by the correspondence monitoring unit  1152 A. 
     (2) Correspondence Table 
       FIG. 3  provides an example of the first correspondence table shared among the setting management device  5  and the information storage devices  1 A,  1 B,  1 C and  1 D. The first correspondence table associates the information reception devices with identifiers indicating the types of data acquired by the information reception devices. In the example of the first correspondence table in  FIG. 3 , the correspondence of end points # 1 , # 2 , # 3  and # 4 , which correspond to the identifiers indicating the information reception devices  4 A,  4 B,  4 C and  4 D, with the types of data corresponding to the identifiers indicating topics # 1 , # 2 , # 3  and  4 , is stored. 
       FIG. 4  provides an example of the second correspondence table shared between the setting management device  5  and the information storage devices  1 A,  1 B,  1 C and  1 D. The second correspondence table associates the information reception devices with the information storage devices assigned to these information reception devices. In the example of the second correspondence table in  FIG. 4 , the correspondence of the end points # 1 , # 2 , # 3  and # 4  that correspond to the identifiers indicating the information reception devices  4 A,  4 E,  4 C and  4 D and the information storage devices  1 A,  1 B,  1 C and  1 D is stored. 
     In addition, in the example of the second correspondence table in  FIG. 4 , the latest time point at which the correspondence of the information storage devices  1 A,  1 B,  1 C and  1 D with any of the end points is established is stored. A standby flag may also be stored to indicate an end point being in a standby state for the correspondence with an information storage device. In the example of the second correspondence table shown in  FIG. 4 , the cost is further stored for each end point. The cost at an end point represents, for example, the frequency of access to the end point per unit time and the amount of processing per unit time that increases for the information storage device by handling this end point. 
     (Operation) 
     Next, the operation of information storage devices configured as described above, including the information storage devices  1 A,  1 B,  1 C and  1 D, will be explained. 
     In the following explanation, the operation of the information storage device  1 A will be discussed as an example. However, any step of the operation flow described below may be performed by any information storage device other than the information storage device  1 A. In the operation flow described below, the use of the first correspondence table of  FIG. 3  and the second correspondence table of  FIG. 4  will be described as an example. In  FIGS. 3 and 4 , the end points # 1 , # 2 , # 3  and # 4  correspond to the identifiers indicating the information reception devices  4 A,  4 B,  4 C and  4 D, respectively. In a similar manner, the information reception device  4 A and end point # 1 , the information reception device  4 B and end point # 2 , the information reception device  4 C and end point # 3 , and the information reception device  4 D and end point # 4 , are regarded as synonymous. 
     (1) Data Write Process 
       FIG. 5  is a flowchart showing an example of the data write process implemented by the control unit  11 A of the Information storage device  1 A in  FIG. 2 . 
     First, at step S 11 , the control unit  11 A determines the end point to be assigned to the information storage device  1 A that the control unit  11 A belongs to, based on the preset information indicating the correspondence between the information storage devices and the end points assigned to the information storage devices, under the control of the data write unit  111 A. Hereinafter, a situation will be described in which the end point # 1  is determined as the end point to be assigned to the information storage device  1 A. 
     The information indicating the correspondence between the information storage device and the end point assigned to the information storage device may be the information indicating a correspondence preselected by the setting management device  5 , or the information indicating the correspondence selected by the setting sharing unit  115 A of the control unit  11 A. 
     If the second correspondence table associating the end points and the information storage devices responsible for the end points is initially set by the setting management device  5 , the aforementioned information indicating the correspondence between the storage devices and the end points assigned to the information storage devices may be information from the second correspondence table. 
     At step S 12 , the control unit  11 A reads, under the control of the data write unit  111 A, the first correspondence table stored in the shared setting storage unit  122 A to associate the end points with identifiers indicating the types of data acquired by the end points. Then, under the control of the data write unit  111 A, the control unit  11 A acquires, based on the first correspondence table, data transmitted together with the identifier indicating the topic # 2  associated with the end point # 1  from the broker  3 , from among the data transmitted by the information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F, and stores the acquired data in the data storage unit  121 A of the storage unit  12 A. 
     One of the features of this technique resides in storing, in the first correspondence table, the correspondence between end points representing the reception devices and topics that are identifiers representing the types and structures of abstract data for each data generating sensor or device, which is requested by a reception device; storing, in the second correspondence table, the correspondence between the end points representing the reception devices and the specific information storage devices that store the data requested by the reception devices; and associating the correspondence tables 1 and 2. 
     In the determination of the allocation of information storage devices that store data in the data write process, a storage device responsible for the data storage can be automatically determined simply by updating and maintaining the second correspondence table based only on the information on the correspondence between the reception devices and information storage devices, without the need to consider the information of specific data generation devices that are added to the IoT system or removed from the IoT system. This allows for the provision of a distributed storage mechanism by a simple structure. 
     In addition, when adding a new data generator to the IoT system or changing the type of data requested by the information reception device, it is possible to reflect the change in the connected data generator or in the data requested by the data reception device by updating the first correspondence table, without, the need to consider the configuration of the information storage devices. 
     When there is a change in the data generators or the type of data requested by a reception device, the first correspondence table is updated. When there is a change in the configuration such as addition of a reception device or storage device, the second correspondence table is referred to and changed to determine the allocation of storage devices. In this manner, the automatic data distribution and storage in a plurality of storage devices can be realized with a simple mechanism, with a change in the configuration of the system constituting devices being reflected and also a change in the requested data being reflected. 
     In the process of connecting a new sensor or the like to the IoT system, only the maintenance of the first correspondence table is needed. In the process of assigning storage devices in a distributed manner when a new information reception device is added, only the maintenance of the second correspondence table is needed. This facilitates the implementation of the processes. 
     By combining the first correspondence table and the second correspondence table, updating of the devices and the distribution and allocation of the storage can be automated. Thus, an advantageous feature of the present invention resides in the reduced maintenance and management load of the distributed storage system. 
     In the process of writing to the data storage unit  121 A, a key for uniquely identifying data corresponding to an end point may be provided and stored for each assigned end point. The key may be stored in the first correspondence table so as to be commonly used among all the information storage devices and the setting management device  5 . 
     At step S 13 , under the control of the correspondence updating unit  1153 A, the control unit  11 A writes the correspondence between the information storage device  1 A and the assigned end point # 1  in the second correspondence table stored in the shared setting storage unit  122 A. The result, is shown in the second correspondence table of  FIG. 4 , in which a circle (“◯”) is entered to indicate that the information storage device  1 A is associated with the end point # 1 . This second correspondence table is shared among all the storage devices and the setting management device  5 . 
     (2) Data Request Response Process 
       FIG. 6  is a flowchart showing an example of a data request response process implemented by the control unit  11 A of the information storage device  1 A in  FIG. 2 . 
     First, at step S 21 , the control unit  11 A receives, under control of the relay determination unit  113 A, a data request transmitted from an information reception device such as the information reception device  4 A,  4 B,  4 C or  4 D, together with an identifier indicating this information reception device. 
     At step S 22 , the control unit  11 A determines, under the control of the relay determination unit  113 A, whether or not the acquired data request is transmitted from an end point assigned to the information storage device  1 A that the control unit  11 A belongs to. This determination process may be based on the information indicating the correspondence between the information storage devices and the end points assigned to the information storage devices as described in relation to step S 11 . Alternatively, the determination process may be performed with reference to the second correspondence table stored in the shared setting storage unit  122 A. 
     The control unit  11 A reads, if it is determined that the acquired data request is transmitted, for example, from the end point # 1  assigned to the Information storage device  1 A that the control unit  11 A belongs to, the data stored in the data storage unit  121 A for the end point # 1 , and outputs the read-out data to the information reception device  4 A corresponding to the end point # 1  that has sent the data request, under the control of the data output unit  112 A at step S 23 . 
     In contrast, if it is determined that the acquired data request is transmitted, for example, from the end point # 2 , which is not assigned to the information storage device  1 A, the control unit  11 A determines, based on the second correspondence table stored in the shared setting storage unit  122 A, the information storage device responsible for the end point # 2  that has sent the data request, under the control of the relay determination unit  113 A at step S 24 . Thereafter, under the control of the relay unit  114 A, the control unit  11 A outputs the data request to at least one of the information storage device  1 B and the information storage device  1 C determined as the information storage devices responsible for the end point # 2  that has sent the data request. 
     At step S 25 , under the control of the relay unit  114 A, the control unit  11 A acquires the data stored in at least one of the information storage device  1 B and the information storage device  1 C responsible for the end point # 2  that has sent the data request. 
     At step S 26 , the control unit  11 A outputs the acquired data to the information reception device  4 B corresponding to the end point # 2  that has sent the data request, under the control of the data output unit  112 A. 
     (3) Selecting Process for Allocation of Information Reception Devices when New Information Reception Device is Added 
       FIG. 7  is a flowchart showing an example of a process of selecting an information reception device to be assigned, where the process is implemented by the control unit  11 A of the information storage device  1 A in  FIG. 2  when an information reception device is added to the network system of  FIG. 1 . 
     When an information reception device  4 E is to be added to the network system, first of all, the control unit  11 A adds a row or column for an end point # 5  corresponding to the information reception device  4 E to the second correspondence table stored in the shared setting storage unit  122 A under the control of the correspondence updating unit  1153 A at step S 31 . Here, the correspondence with regard to an information storage device is not entered, and a standby flag is set. 
     The control unit  13 A may add a row or a column for the end point # 5  to the first correspondence table stored in the shared setting storage unit  122 A, under the control of the correspondence updating unit  1153 A. In the first correspondence table, an identifier indicating the type of to-be-acquired data that is sent, for example, from the information reception device  4 E may be stored in association with the added end point # 5 . 
     Subsequently, at step S 32 , the control unit  11 A reads the second correspondence table stored in the shared setting storage unit  122 A, and selects an end point to be assigned from among end points for which a standby flag is set, under the control of the target device selecting unit  1151 A. The selection process may be random selection from the end points with a standby flag being set. 
     Next, at step S 33 , the control unit  11 A determines whether or not the selected end point is associated with two or more information storage devices on the second correspondence table stored in the shared setting storage unit  122 A, under the control of the target device selecting unit  1151 A. If it is determined that the selected end point is associated with two or more information storage devices, the process of step S 32  is repeated. 
     On the other hand, if it is determined that the selected end point is not associated with two or more information storage devices, the control unit  11 A acquires the data transmitted together with an identifier associated with the selected end point, from among the data transmitted by the information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F, based on the first correspondence table stored in the setting storage unit  122 A, under the control of the data write unit  111 A at step S 34 . 
     Thereafter, at step S 35 , the control unit  11 A writes the correspondence between the information storage device  1 A and the selected end point into the second correspondence table stored in the shared setting storage unit  122 A, under the control of the correspondence updating unit  1153 A. 
     At step S 36 , the control unit  11 A determines whether or not all of the end points are associated with two or more information storage devices on the second correspondence table stored in the shared setting storage unit  122 A, under the control of the target device selecting unit  1151 A. If it is determined that there is an end point that is not yet associated with two or more information storage devices, the processing of step S 32  and after is repeated. 
     In contrast, if it is determined that all of the end points are associated with two or more information storage devices, the control unit  11 A clears the standby flags from the second correspondence table stored in the shared setting storage unit  122 A, under the control of the correspondence updating unit  1153 A at step S 37 . 
     (4) Correspondence Monitoring Process 
       FIG. 8  is a flowchart showing an example of a correspondence monitoring process implemented by the control unit  11 A of the information storage device  1 A in  FIG. 2 .  FIG. 9  is a diagram showing the state of updating the second correspondence table of  FIG. 4  in accordance with the correspondence monitoring process of  FIG. 8 . 
     First, at step S 41 , the control unit  11 A refers to the second correspondence table stored in the shared setting storage unit  122 A, and reads the time point “10345681” stored in relation to the information storage device  1 D that is another information storage device responsible for the assigned end point # 1 , and the time point “12345679” stored in relation to the information storage device  1 B that is another information storage device responsible for the assigned end point # 4 , under the control of the correspondence monitoring unit  1152 A. 
     At step S 42 , the control unit  11 A determines, with regard to the read time points “12345679” and “10345681” as shown in  FIG. 9 , whether or not a predetermined time has elapsed since the time points were entered, under the control of the correspondence monitoring unit  1152 A. For the time point “12345679” stored for the information storage device  1 B, it is determined that a predetermined time has not yet elapsed, whereas for the time point “10345681” stored for the information storage device  1 D, it is determined that the predetermined time has already elapsed. 
     At step S 43 , the control unit  11 A clears the correspondence of the end point with the information storage device  1 D relating to the time point “10345681”, from which a predetermined time has elapsed, on the second correspondence table stored in the shared setting storage unit  122 A in  FIG. 9 , and sets a standby flag for the end points # 1  and # 3 , for which the correspondence has been cleared, under the control of the correspondence updating unit  1153 A. 
     At step S 44 , the control unit  11 A updates the time point “12345678” that is entered in the second correspondence table stored in the shared setting storage unit  122 A with respect to the information storage device  1 A, which is the information storage device that the control unit  11 A belongs to, under the control of the correspondence updating unit  1153 A. The update process may be implemented even when it is determined at step S 42  that the predetermined time has not elapsed with regard to all the read-out time points. 
     At step S 45 , the control unit  11 A refers to the second correspondence table stored in the shared setting storage unit  122 A, and determines whether or not the time confirmation process as described above has been implemented for all the assigned end points, under the control of the correspondence monitoring unit  1152 A. As a result of this determination, if there is any end point for which the time confirmation process has not yet been implemented, the processing of step S 41  and after is repeated for this end point. 
     The processing of steps S 41  to S 45  may be implemented at different timings, for example at regular intervals, among the information storage devices  1 A,  1 B,  1 C and  1 D, based on a clock synchronized among the information storage devices  1 A,  1 B,  1 C and  1 D. 
     In relation to the end points for which a standby flag is set at step S 43 , the processing of step S 32  and after in  FIG. 7  may be implemented in the respective information storage devices so as to select a to-be-assigned end point. 
     (5) Selection Process for Allocation of Information Reception Devices when New Information Storage Device is Added 
       FIG. 10  is a flowchart showing an example of a process of selecting an information reception device to be assigned, where the process is implemented, when an information storage device is added to the network system of  FIG. 1 , by the control unit  11 A of the information storage device  1 A in  FIG. 2  and the control unit  11 E of the added information storage device  1 E.  FIG. 11  is a diagram showing the state of updating the second correspondence table of  FIG. 4  in accordance with the selection process of a to-be-assigned information reception device shown in  FIG. 10 . 
     First, at step S 51 , the control unit  11 A updates the cost to the end points on the second correspondence table stored in the shared setting storage unit  122 A when handling the end points, under the control of the correspondence updating unit  1153 A. The update process may be implemented based on a notification of the frequency of access to the end point per unit time, or on the amount of processing per unit time calculated, where the calculated value is obtained by calculating the amount of processing per unit time that has increased in accordance with handling of this end point at the information storage device. 
     At step S 52 , the control unit  11 A calculates the total value of costs to the end points assigned to each of the information storage devices on the second correspondence table stored in the shared setting storage unit  122 A, under the control of the correspondence updating unit  1153 A. The calculation process may be calculation, at each of the information storage devices, of the total value of the costs to the end points associated with the respective information storage device, or calculation, at a single information storage device, of the total value of the costs to the end points associated with a plurality of information storage devices. 
     At step S 53 , the control unit  11 E of the added information storage device  1 E refers to the second correspondence table stored in the shared setting storage unit  122 E, and determines that the added information storage device  1 E is to be responsible for the end point # 2 , which is the end point having the highest cost among the end points assigned to the information storage device  1 B having the highest total value of the calculated, costs in  FIG. 11 , under the control of the target device selecting unit  1151 B. 
     At step S 54 , the control unit  11 E of the added information storage device  1 E first reads the first correspondence table, stored in the shared setting storage unit  122 E under the control of the data write unit  111 E. Based on this first correspondence table, the data transmitted together with the identifiers corresponding to the topics # 1  and # 2  that are associated with the assigned end point # 2  is acquired from the broker  3  from among the data transmitted by the information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F, and the acquired data is stored in the data storage unit  121 E of the storage unit  12 E. 
     At step S 55 , the control unit  11 E of the added information storage device  1 B enters the correspondence between this information storage device  1 E and the assigned end point # 2  into the second correspondence table stored in the shared setting storage unit  122 E, under the control of the correspondence updating unit  1153 E. 
     At step S 56 , the control unit  11 E of the added information storage device  1 E sends a notification to the information storage device  1 B, which is the information storage device having the highest total value of costs as calculated above. In response to the notification, the information storage device  1 B may deallocate its correspondence with the end point # 2 , which is now assigned to the information storage device  1 E, so as to no longer acquire the data transmitted together with the identifier associated with the end point # 2 , and may clear this correspondence from the second correspondence table. 
     At step S 57 , the control unit  11 E of the added information storage device  1 E calculates the total value of the costs to the end point associated with the information, storage device  1 E that the control unit  11 E belongs to on the second correspondence table stored in the shared setting storage unit  122 B, and determines whether or not the total value of the calculated costs exceeds a predetermined value, under the control of the correspondence updating unit  1153 E, It is determined, for example, whether or not the total value of the calculated costs exceeds (sum of the costs to the end points)×(redundancy/number of information storage devices). For example, in the example of the second correspondence table in  FIG. 9 , whether or not the total value exceeds (6+8+4+6)×2/5 is determined. As a result of this determination, if the total value of the calculated costs does not exceed a predetermined value, the processing of step S 51  and after is repeated. 
     (Effects) 
     As described above in detail, the first embodiment of the present invention offers the following effects. 
     (1) The information storage device  1 A determines, for example, the end point # 1  as the end point assigned to the information storage device  1 A, based on the information indicating the correspondence between the information storage device and the end point assigned to the information storage device, under the control of the data write unit  111 A. The first correspondence table stored in the shared setting storage unit  122 A for associating the end points with the identifiers indicating the types of data acquired by the end points is read under the control of the data write unit  111 A; the data transmitted together with the identifier corresponding to the topic # 2  that is associated with the assigned end point # 1  is acquired from the broker  3  based on the first correspondence table from among the data transmitted by the information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F; and the acquired data is stored in the data storage unit  121 A. The correspondence between the information storage device  1 A and the assigned end point # 1  is entered into the second correspondence table stored in the shared setting storage unit  122 A under the control of the correspondence updating unit  1153 A. 
     With each information storage device configured to autonomously acquire data as described above, the data can be stored in multiple information storage devices in a distributed manner, without the need to duplicate or transmit/receive the data between the information storage devices. This realizes a distributed information storage system in which the write performance per information storage device during data storage is prevented from being lowered. In addition, if the information indicating the correspondence between the information storage devices and the end points assigned to the information storage devices Is set such that one end point is assigned to two or more information storage devices, data redundancy can be ensured over multiple information storage devices, thereby achieving the fault tolerance of the distributed information storage system. 
     (2) In the information storage device  1 A, a data request transmitted from an information reception device such as the information reception device  4 A,  4 B,  4 C or  4 D together with an identifier indicating this information reception device is acquired under the control of the relay determination unit  113 A. Whether or not the acquired data request is transmitted from an end point assigned to the information storage device  1 A is determined under the control of the relay determination unit  113 A. If it is determined that the acquired data request is transmitted, for example, from the end point # 1  assigned to the information storage device  1 A, the data stored in the data storage unit  121 A for the end point # 1  is read out, and the read-out data is output to the information reception device  4 A corresponding to the end point # 1  that has sent the data request, under the control of the data output unit  112 A. On the other hand, if it is determined that the acquired data request is transmitted, for example, from the end point # 2  which is not assigned to the information storage device  1 A, the information storage device responsible for the end point # 2  that has sent the data request is determined based on the second correspondence table stored in the shared setting storage unit  122 A, under the control of the relay determination unit  113 A. Thereafter, the data request is output to at least one of the information storage device  1 B and the information storage device  1 C, which are determined as the information storage devices responsible for the end point # 2  that has sent the data request, under the control of the relay unit  114 A. Then, the data stored in at least one of the information storage device  1 B and the information storage device  1 C responsible for the end point # 2  that has sent the data request is acquired, under the control of the relay unit  114 A. The acquired data is output to the information reception device  4 B corresponding to the end point # 2  that has sent the data request, under the control of the data output unit  112 A. 
     Accordingly, the information reception device can acquire the desired data, whichever information storage device the information reception device accesses. 
     (3) The information storage device  1 A refers to the second correspondence table stored in the shared setting storage unit  122 A, and reads the time point “10345681” stored in relation to another information storage device  1 D responsible for the assigned end point # 1  and the time point “12345679” stored in relation to another information storage device  1 B responsible for the assigned end point # 4 , under the control of the correspondence monitoring unit  1152 A. For each of the read-out time points “12345679” and “10345681”, it is determined, under the control of the correspondence monitoring unit  1152 A, whether or not a predetermined time has elapsed since these time points were entered. The correspondence of the information storage device  1 D having the time point “10345681”, from which the predetermined time has elapsed, with the end point is cleared from the second correspondence table stored in the shared setting storage unit  122 A, and a standby flag is set to the end points # 1  and # 3 , for which the correspondence has been cleared, under the control of the correspondence updating unit  1153 A. In the second correspondence table stored in the shared setting storage unit  122 A, the time point “12345678” stored in relation to the information storage device  1 A, which is the information storage device of the shared setting storage unit  122 A, is updated under the control of the correspondence updating unit  1153 A. 
     In general, even if a normal operation has been confirmed for an information storage device, the device may become unable to operate properly for some reason, as the operation time elapses. As described above, by clearing the correspondence with regard to an information storage device associated with an end point in accordance with the time reference, an information storage device that is not normally operating can be prevented from taking on responsibility for the end point. Thus, the reliability of the entire distributed information storage system can be improved. Furthermore, for the information storage device that has performed the above-described process of monitoring the correspondence table, its operation is checked at the same time as the monitoring process. By updating the time points on the second correspondence table as described above, the correspondence for a normally operating information storage device can be prevented from being cleared, and the efficiency of the distributed information storage can be prevented from being lowered. 
     (4) When the information reception device  4 E is to be added to the network system, a row or column for the end point # 5  corresponding to the information reception device  4 E is added to the second correspondence table stored in the shared setting storage unit  122 A in the information storage device  1 A, with a standby flag being set and without the correspondence with any information storage device entered, under the control of the correspondence updating unit  1153 A. The second correspondence table stored in the shared setting storage unit  122 A is read out, and the to-be-assigned end point is selected from the end points for which the standby flag is set, under the control of the target device selecting unit  1151 A. Based on the first correspondence table stored in the shared setting storage unit  122 A, the data transmitted together with the identifier associated with the selected end point is acquired from the data transmitted by the information transmission devices  2 A,  2 B,  20 ,  2 D,  2 E and  2 F, under the control of the data write unit  111 A. The correspondence between the information storage device  1 A and the selected end point is entered into the second correspondence table stored in the shared setting storage unit  122 A, under the control of the correspondence updating unit  1153 A. 
     Furthermore, when the information storage device  1 E is added to the network system, the total value of the calculated costs to the end points assigned to an information storage device is calculated for each information storage device on the second correspondence table stored in the shared setting storage unit  122 A, under the control of the correspondence updating unit  1153 A. In the added information storage device  1 E, the second correspondence table of the shared setting storage unit  122 E is referred to, and the end point # 2 , which has the highest cost among the end points assigned to the information storage device  1 B having the highest total value of the calculated costs, is determined as the assigned end point, under the control of the target device selecting unit  1151 E. Under the control of the data write unit  111 E, the first correspondence table stored in the shared setting storage unit  122 E is read out, and the data transmitted together with the identifiers corresponding to the topics # 1  and # 2  that are associated with the assigned end point # 2  is acquired from the broker  3  based on this first correspondence table, from among the data transmitted by the information transmission devices  2 A,  2 B,  2 C,  2 D,  2 E and  2 F. Under the control of the correspondence updating unit  1153 E, the correspondence between the information storage device  1 B and the assigned end point # 2  is entered into the second correspondence table stored in the shared setting storage unit  122 E. 
     As discussed above, the system can be provided with a scaling-out property that allows for the addition of an information reception device and information storage device, without the need to transmit and receive data between the information storage devices at the time of scaling out. As a result, a distributed information storage system can be achieved which is provided with a scaling-out property and which can prevent the write performance per information storage device from being lowered even at the time of scaling out. 
     (5) After the correspondence with the assigned end point # 2  is entered into the second correspondence table, the added information storage device  1 E sends a notification to the information storage device  1 B having the highest total value of the calculated costs. Furthermore, the added information storage device  1 E calculates the total value of the costs to the end points associated with the information storage device  1 E itself, and determines whether or not the total value of the calculated costs exceeds a predetermined value. 
     For this reason, the information storage device  1 B receiving the notification deallocates the correspondence with the end point # 2 , which is now assigned to the added information storage device  1 E, so as to no longer receive, the data for the end point # 2  which is deallocated in regard to the correspondence. In this manner, the large load on an information storage device can be reduced. In addition, the added information storage device  1 E may handle an additional end point depending on the above determination result, thereby smoothing out the load applied onto the information storage devices. 
     Other Embodiments 
     The present invention is not limited to the above embodiment. For example, the processes implemented in connection with the correspondence table, which have been explained in the above operation flow as being implemented by any information storage device, including the process of selecting an information reception device to be assigned, the process of updating the correspondence tables, the process of updating the costs on the second correspondence table, and the process of calculating the total value of the costs, may be configured to be implemented by the setting management device. With the processes implemented by the setting management device, the information shared by a plurality of information storage devices can be collectively managed, or in other words, the distributed information storage system can be collectively managed. In the above embodiment, the correspondence between an information reception device and an information storage device is entered into the second correspondence table after the process of writing data in each information storage device. The correspondence, however, may be entered before the data write process. Moreover, in the embodiment, examples of the information storage device selecting an information reception device to be assigned based on a standby flag on the second correspondence table and selecting an information reception device to be assigned based on the costs to the end points on the second correspondence table are described. The implementation of such a selection process, however, is not limited to the situation described in the embodiment. The process of selecting an information reception device to be assigned may be performed in any situation, based on any combination of the methods described in the embodiments. 
     The types and configurations of an information storage device and setting management device, and the configurations of the first and second correspondence tables may be modified in various manners without departing from the gist of the present invention. 
     The present invention should not be limited to the above-described first embodiment as it is, but may be embodied with modifications to the components, without departing from the scope of the invention at the implementation stage. In addition, various inventions may be constituted by appropriately combining a plurality of components disclosed in the first embodiment. For example, some components may be omitted from the components shown in the first embodiment. Furthermore, the components of different embodiments may be suitably combined.