This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2007-199369, filed Jul. 31, 2007, the entire contents of which are incorporated herein by reference.
1. Field
One embodiment of the present invention relates to an information communication system and data sharing system, which allow a plurality of nodes to share data.
2. Description of the Related Art
Many companies and departments do not use any servers. However, most companies and departments do use personal computers in their businesses. Conventionally, there are few information communication systems which can provide high convenience suitable for businesses of work groups and allow sharing of highly confidential data for companies that use only personal computers without any servers.
Jpn. Pat. Appln. KOKAI Publication No. 2004-94681 discloses a technique in which first to n-th computers are connected via a network, a database is divided into first to n-th slots, the first to n-th slots are stored in the respective computers as master slots, and copies of the master slots are stored in a storage unit different from that which stores the master slots.
With the aforementioned technique, data can be restored if one computer has gone wrong. The aforementioned technique assumes that the first to n-th computers are servers. Therefore, it is difficult for departments which cannot use any servers to exploit the aforementioned technique.
A general architecture that implements the various feature of the invention will now be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate embodiments of the invention and not to limit the scope of the invention.
Various embodiments according to the invention will be described hereinafter with reference to the accompanying drawings. In general, according to one embodiment of the invention, an information communication system in which a plurality of nodes that belong to a self group are connected to a network, each of the plurality of nodes comprising, a node confirmation unit configured to send, via the network, a node confirmation request to remaining nodes to confirm availabilities of the remaining nodes that belong to the self group, and to receive node confirmation response messages including information indicating the availabilities from the remaining nodes, a node confirmation response message sending unit configured to send, when the node confirmation request is received from the node confirmation unit of another node, the node confirmation response message to the node that sent the node confirmation request, a distributed storage setting unit configured to set parameters N and M in accordance with contents of the node confirmation response messages, a distributed storage unit configured to divide shared data into N divided data, and to M fold distribute and store the divided data of the shared data in N nodes, a divided data collection unit configured to selectively collect N divided data from not less than (N−M+1) nodes, a divided data transfer unit configured to transfer, in response to a request from the divided data collection unit of another node, divided data to the node that issued the request, and a data restoration unit configured to restore the shared data by combining the collected N divided data.
These plurality of nodes 1 to 8 can communicate with each other via the network 9 such as an office LAN (wired or wireless LAN), the Internet, a mobile communication network, or the like.
In the information communication system according to this embodiment, N nodes 1 to 8 build up a virtual shared disk on the network by providing some or all areas of their hard disk drives, and distribute and save data, which are commonly used by the N nodes 1 to 8 in the shared disk.
Each node comprises a node confirmation unit 31, node confirmation response message sending unit 32, distributed storage setting unit 33, distributed storage unit 34, divided data collection unit 35, data restoration unit 36, authentication processing unit 37, divided data transfer unit 38, and the like.
The node confirmation unit 31 sends a node confirmation request to other nodes which belong to the self group via the network 9 so as to confirm the availability of these nodes, and receives node confirmation response messages each including information indicating the availability from these nodes. The respective nodes 1 to 8 comprise node confirmation units 31, but the node confirmation unit 31 of only a node set as a master is active. In this embodiment, assume that the node 1 is set as a master.
Upon reception of the node confirmation request from the node confirmation unit 31 of the node 1 set as a master, the node confirmation response message sending unit 32 sends a node confirmation response message including information indicating the availability of the self node to the node confirmation unit 31 of the node 1.
Upon storing data in the aforementioned virtual shared disk, the distributed storage setting unit 33 sets how to distribute and store data. The distributed storage setting unit 33 decides settings using at least the availability information included in the node confirmation response message. The distributed storage setting unit 33 sends setting information to the respective nodes, which store the setting information in the self nodes.
The distributed storage unit 34 divides shared data into N divided data on the basis of the settings decided by the distributed storage setting unit 33, and M-fold distributes and stores the N divided data in N nodes.
The divided data collection unit 35 selectively collects N N-divided data from (N−M+1) or more nodes 2 to 8. At this time, upon collecting divided data which is not stored in the self node, the divided data collection unit 35 sends a divided data transfer request to other nodes. Upon reception of the divided data transfer request, the divided data transfer units 38 of other nodes 2 to 8 send divided data requested by the divided data collection unit 35 to the node 1 which sent the divided data transfer request.
Note that prior to transfer of divided data of the divided data transfer unit 38, the authentication processing unit 37 executes authentication processing with the node which sent the divided data transfer request. When the authentication processing has succeeded, the divided data transfer unit 38 transfers divided data. Note that divided data may be transferred while skipping the authentication processing. However, the authentication processing is preferably executed in terms of security.
The data restoration unit 36 combines the N divided data selectively collected by the divided data collection unit 35 to restore original data.
In this example, node x delivers data so that the node 1 stores the data A to D, the node 2 stores the data B to E, the node 3 stores the data C to F, and the nodes 4 to 8 similarly store four divided data of different combinations.
The sequence for restoring the original data from the divided data stored in the aforementioned sequence will be described below.
As can be seen from
However, as can be seen from
the divided data C from one of the nodes 1, 2, and 8;
the divided data D from one of the nodes 1, 2, and 4;
the divided data E from one of the nodes 2 and 4;
the divided data F from the node 4;
the divided data G from one of the nodes 4 and 7;
the divided data H from one of the nodes 7 and 8;
the divided data A from one of the nodes 1, 7, and 8; and
the divided data B from one of the nodes 1, 2, and 7.
Therefore, node x can collect a total of eight divided data A to H from the remaining four nodes connected to the network.
In this manner, when original information is divided into N pieces of divided information, and M out of N pieces of divided information are stored in each of the N nodes, the original information can be restored if (N−M+1) or more nodes are available.
Exchanges among the nodes in the aforementioned information processing system will be described below. Note that such exchanges of messages among the nodes will be referred to as a WGS (Work Group Sharing) protocol hereinafter for the sake of convenience. The WGS protocol belongs to an upper layer of a TCP protocol.
The group ID 11 is an identifier used to identify a group to which the nodes in the information processing system belong, and is uniquely set in this information processing system. This group ID 11 may be set according to the affiliations of users in this information processing system or an application program may automatically assign the group ID 11 for each meeting in a work group type shared file system (to be described later). Each node can enter or secede from the group in the sequence to be described later. Each node is assigned a node ID uniquely defined in this information processing system. This node ID may be uniquely assigned in this system or an IP address may substitute the node ID.
The message ID 14 is an identifier used to identify messages (e.g., 10 different messages shown in
The encryption flag 15 indicates whether or not the content 21 of the message is encrypted. When the content 21 is encrypted, the encryption flag 15 allows to identify an encryption method such as DES or the like and its version. The HCS 16 is data used to check if data in the fields in the header have suffered errors on a transmission path. On the other hand, the content of the message may be expressed in a format in which each individual parameter may be expressed using a TLV (Type, Length, Value) format, and required parameter are coupled according to the message ID.
In
“Node Availability Info” is information used to confirm such situations of each node, and can be configured by information as a combination of sub-parameters shown in
Also, “Filename” is the file name of original data or an ID used to identify a file. “File Access Control” is permission information for read and write accesses and the like to a file. “Fragment ID” is an identifier of divided data: for example, it is numbered like 1, 2, 3, . . . in turn from a first file. “Fragment Length” is the data length of divided data. “Fragment Offset” is a parameter indicating the byte position of the first byte of divided data in original data. “Fragment Data” is actual fragment data. “Fragment CRC” is a parity check sequence for divided data. “Fragment Allocation Table” is a table indicating nodes to which divided data are assigned. “MIC” is an HMAC digest used to check completeness of a message. “Registration Request” indicates entry to a group if it is “0×01” or secession from a group if it is “0×FF”.
An overview of messages used in the WGS protocol will be described below.
[Node Confirmation Request Message]
On the other hand, in contents fields, parameters called “Node Availability Info” are described in the TLV format. This indicates which of the “Node Availability Info” parameters shown in
“0×03 0×0C 0×01 0×01 0×00 0×03 0×04 0×00 0×00 0×00 0×00 0×08 0×01 0×00”
The first byte “0×03” indicates the type of “Node Availability Info”. The second byte “0×0C” indicates that the length of a parameter that follows is 12 bytes. The third byte “0×01” indicates “Status”. The fourth byte indicates the number of bytes of a “Status” field. The fifth byte indicates a Status value=“0×00”, the sixth byte indicates a sub-type “0×03”, i.e., “Shared Disk Available Size”, the seventh byte indicates the field length=4 bytes of “Shared Disk Available Size”, the eighth to 11th bytes indicate a value=0, the 12th byte indicates a sub-type=“0×08”, i.e., “User Login Status”, and the 13th and 14th bytes indicate that the “User Login Status” field length is 1 byte, and its value is zero.
In this manner, as a characteristic feature, required parameters are designated from various parameters that can indicate the availability of each node to send an inquiry to each destination node.
As shown in
[Node Confirmation Response Message]
0×03 0×0C 0×01 0×01 0×00 0×03 0×04 0×1E 0×84 0×80 0×00 0×08 0×01 0×01
“0×01 0×0C”: “Node Availability Info”
“0×01 0×01 0×00”: “Node Status” (available)
“0×03 0×04 0×1E 0×84 0×00”: “Shared Disk Available Size” (512 Mbytes)
“0×08 0×01 0×01”: User Login Status (login)
Note that the value of the “Transaction ID” field of the node confirmation request message may be set as that of the response message. Likewise, an MIC (Message Integration Check) parameter may include a calculated value of HMAC, MD5, or the like so as to prevent falsification of a message.
[Divided Data Delivery Message]
[Divided Data Assignment List Delivery Message]
[Divided Data Assignment List Request Message]
When the source node generates a specific number upon sending a message, and receives a plurality of response messages, the generated number may be included in this request message as “Transaction ID” to determine to which request message each response message corresponds.
[Divided Data Assignment List Response Message]
[Divided Data Transfer Request Message]
[Divided Data Transfer Response Message]
Note that the “Transaction ID” of the node confirmation request message may be that given in the response message. Likewise, an MIC (Message Integration Check) parameter may include a calculated value of HMAC, MD5, or the like so as to prevent falsification of a message.
[Group Registration Request Message]
A group ID is an ID determined in advance in the system, and can be acquired from an administrator or from another member. Alternatively, this information can be automatically acquired by an application such as groupware or the like, i.e., by a method falling outside the scope of the invention. Upon entering a group, “0×FF”, “0×FF”, “0×FF”, and “0×FF” may be set in a destination node ID, and that message may be broadcast. After this message is sent, a response to this message is awaited.
[Group Registration Response Message]
Interactions among the nodes will be described below with reference to the drawings.
Upon completion of the aforementioned divided data delivery, the distributed storage unit 34 sends, to other nodes, a divided data assignment list message which is generated by the distributed storage setting unit 33 and indicates which divided data are delivered to which nodes.
In the example of
The principle of this system and exchange of messages among the nodes have been explained. A practical application example of this system will be described in detail below.
The shared file system program 122 is a program including the node confirmation unit 31, node confirmation response message sending unit 32, distributed storage setting unit 33, distributed storage unit 34, divided data collection unit 35, data restoration unit 36, authentication processing unit 37, and divided data transfer unit 38.
On the user partition 130, agent software 132A runs. The agent software 132A can check the version of the user OS 131 and information of an application (process) which is being used by the user. The agent software 132A comprises an availability information response function of responding availability information on the aforementioned user OS 131 in response to an inquiry from the shared file system program 122 which runs on the service partition 120. The shared file system program 122 generates the aforementioned node confirmation response message using this availability information response function of the agent software. In this way, a work group type file sharing system, which considers the influence on the user in accordance with the information of the application which runs on the personal computer, can be implemented.
Also, with this system, in a work group including N members, N personal computers of these members are used to M-fold distribute and store data to be shared (for example, conference minutes, digital files used in jobs, and the like) in the group, thereby sharing the data.
For example, N=8 and M=4, and each member may provide a hard disk (B=1 Gbyte) of the service partition 120 of his or her personal computer for data sharing of the group. In this way, a virtual server 200, which has a virtual shared disk 201 having a maximum capacity of N×B/M=8×¼=2 GB by collecting the hard disks provided by the respective hard disks, can be configured.
Then, as shown in
According to this embodiment, since original information cannot be restored unless (M+1) personal computers which store distributed information are connected together after distributed storage, even if one of the eight personal computer has been stolen or lost, there is a merit that leakage of the stored information will not occur. Even when a personal computer of a given user has acquired a virus while that user uses the application on the user partition, since the shared file is stored on the service partition 120, leakage of confidential information in the shared file can be prevented. Furthermore, even when information of the shared file on the service partition side has leaked, since that shared file stores only some divided data, the confidentiality can be enhanced. Note that such high confidentiality is not attained by conventional P2P (peer to peer) type file sharing software.
As described above, according to this embodiment, files can be shared using respective personal computers without requiring any special server or file server. Therefore, a work group type file sharing system which can enhance the confidentiality of digital files and data commonly used by members in a work group, and can assure high availability can be provided.
The parameters N and M may be adaptively changed according to the availabilities of nodes (personal computers) of participants and the confidentiality of original data. For example, when there are eight participants of a conference, and three out of the eight members may miss the next conference, N=8 and M=4 can be set as in the example of
In a conference with a rule that stipulates a majority of members must actually attend, a reference (data) of that conference may be quadruply distributed and delivered to eight members in advance, and when five or more members attend the conference, they can open the reference (data) of the conference delivered in advance. In this way, since the reference of the conference cannot be opened if the number of participants does not meet the condition of the rule, the reference cannot be changed against the rule.
In, e.g., regular maintenances of department servers installed in departments or bases of minor and major companies, data needs to be temporarily backed up and saved in physically different locations in some cases. However, data saving (storage) space cannot often be assured due to insufficient free space of hard disks of other servers in the departments.
This embodiment can be used to solve the aforementioned problem. As shown in
In IT centers of major companies, data centers that provide services on the Internet, and the like, a plurality of servers and a shared disk apparatus used by these servers to share data and memories are prepared, and a fail-over function (that allows another alternative server to inherit processing of services and data) is required in case of failures, regular maintenances, and the like of servers. Using this embodiment, as shown in
In this way, even when a main server 400 and arbitrary (M−2) servers have suddenly gone down at the same time, the remaining (N−M+1) servers 1 to 8 can maintain data. When any of the (N−M+1) servers 1 to 8 inherit services, the services can be prevented from being suspended. Upon substitution of the (N−M+1) servers 1 to 8 for the services of the server 400, the system performance may drop. However, a new server 401 is connected to the network, and data is stored from the (N−M+1) servers 1 to 8 in the new server 401, thus obtaining service performance equal to or higher than that of the old server 400.
Paying attention to the aforementioned principle: when original information is divided into N pieces of information, and M out of N pieces of divided information are distributed to and stored in each of N nodes, if (N−M+1) or more nodes are available, the original information can be restored, such principle can be applied to a distributed authentication system.
For example, as for specific confidential information used in an office, encryption key data used to encrypt that confidential information may be divided into N data without dividing the confidential information itself, unlike in the first embodiment, and the N data may be M-fold distributed to and stored in N information processing apparatuses (personal computers, USB memories, hard disks, and the like). A company member needs to acquire the divided data of the encryption key from (N−M+1) or more information processing apparatuses (personal computers, USB memories, hard disks, and the like.) so as to decode and read out the encrypted confidential information. In this way, the security level of the confidential information can be increased.
When the node set as a master secedes from the network in the aforementioned system, such node transfers the role of the master in accordance with, e.g., an order set in advance. Alternatively, the node set as the master before secession may search for a node with a lighter load based on “Node Availability Info”, and may transfer the role of the master to a node with the lightest load.
Note that the invention is not limited to the aforementioned embodiments intact, and can be embodied by modifying required constituent elements without departing from the scope of the invention when it is practiced. By appropriately combining a plurality of required constituent elements disclosed in the embodiments, various inventions can be formed. For example, some of all the required constituent elements disclosed in the embodiments may be deleted. Furthermore, required constituent elements in different embodiments may be appropriately combined.
While certain embodiments of the inventions have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2007-199369 | Jul 2007 | JP | national |