1. Field of the Invention
The present invention relates to a peer-to-peer (P2P) type content distribution system having a plurality of node apparatuses connected to each other via a network and, more particularly, to a technical field of a content distribution system and method and the like in which content data to be distributed from one node apparatus to another node apparatus is distributed and stored in a plurality of node apparatuses.
2. Discussion of the Related Art
In a content distribution system of this kind, each of node apparatuses has a list describing information related to content data distributed and stored in a plurality of node apparatuses (for example, attribute information of content data (name of content or the like) and IP addresses of node apparatuses storing content data) and, on the basis of the information described in the list, the user can download desired content data. Such a list is shared information to be commonly used by a plurality of node apparatuses and generally managed by a management server for managing all of content data stored in a content distribution system. The list is distributed from the management server to each of the node apparatuses.
For example, Japanese Patent Laid-Open No. 2002-318720 discloses an index server existing at the top level as a management server of this kind and managing all of content information in a content distribution management system.
In a peer-to-peer type content distribution system, the frequency of withdrawal (due to power disconnection or failure of a node apparatus, partial disconnection of a network, or the like) and participation of node apparatuses is high. Moreover, the frequency of newly storing or erasing content data to/from a node apparatus is high. Consequently, the updating of the list as described above has to be performed frequently. It is therefore considered that the management server as described above is necessary to always maintain the list in the latest state.
However, in a content distribution system in which the management server manages the list, a problem undesirably occurs such that the more the number of node apparatuses increases, the more the server load increases and the more the network load is concentrated in one place, and distributable lists are limited at the time when updating the list, for example. Another problem is that the list cannot be updated when the management server goes down (for example, due to a failure or the like). Still another problem is management cost for the management of lists by the management server.
As methods using no management server, pure P2P type distribution systems such as Gnutella, Freenet, Winny, and the like have been also devised. In a system working in such a manner, a content is to be searched, a location of which is identified, and accessed by specifying a title of content or a keyword of the content. In this method, there is no way of obtaining a list of all of titles of contents. Consequently, the user cannot scan the title list to choose and access a desired content from the title list. Therefore, a method of efficiently managing and updating shared information such as a title list and a keyword list has been demand.
The present invention has been achieved in consideration of the problems and an object of the invention is to provide a node apparatus, a shared information updating method, a shared information storing method, a shared information updating process program, and a shared information storing process program capable of efficiently obtaining shared information in the latest state at any time without providing a management server as described above.
To solve that problems, the present invention provides a node apparatus in an information distribution system having a plurality of node apparatuses connected to each other via a network, comprising: a shared information memory means for memorizing first shared information to be commonly used by the plurality of node apparatuses; an identification information generating means for generating unique identification information corresponding to the first shared information on the basis of the first shared information; a node apparatus identifying means for identifying a node apparatus as a management source of the first shared information on the basis of the generated first identification information; an update information obtaining means for obtaining update information corresponding to the first shared information from the identified node apparatus; and a shared information updating means for updating the first shared information memorized in the shared information memory means to second shared information on the basis of the obtained update information.
Preferred embodiments of the present invention will be described hereinbelow with reference to the drawings. In the following embodiment, the present invention is applied to a content distribution system.
[1. Configuration and the Like of Content Distribution System]
First, referring to
As shown in a lower frame 101 in
The content distribution system S is configured with a plurality of node apparatuses 1a, 1b, 1c, . . . , 1x, 1y, 1z, . . . connected to each other via such the network 8, and is a peer-to-peer network system. To each of the node apparatuses 1a, 1b, 1c, . . . , 1x, 1y, 1z, . . . , unique serial number and IP (Internet Protocol) address as information indicative of the node apparatus are assigned. The serial number and IP address are unique among the plurality of node apparatuses 1. In the following description, in the case of referring to any of the node apparatuses 1a, 1b, 1c, . . . , 1x, 1y, 1z, . . . , it may be called as a node apparatus 1 for convenience.
In the content distribution system S, an overlay network 9 as shown in an upper frame 100 in
The embodiment is carried out on the precondition that the overlay network 9 constructed by the algorithm using the DHT is employed. The node apparatus 1 disposed on the overlay network 9 is called a node apparatus 1 participating in the content distribution system S (in other words, participating in the overlay network 9). A node apparatus, which is not participated in the content distribution system S, participates in the system by sending a participation request to an arbitrary node apparatus 1 which is already participated in the system.
A node ID of each of the node apparatuses 1 participated in the content distribution system S is, for example, a value obtained by hashing the IP address or serial number with a common hash function. The node IDs are disposed so as to be evenly distributed in one ID space. The probability that the node IDs obtained with the common hash function (hashed node ID) become the same value is extremely low when the IP addresses or serial numbers are different. Since the hash function is known, its detailed description will not be given. In the embodiment, a value obtained by hashing an IP address (global IP address) with a common hash function is used as a node ID.
In the plurality of node apparatuses 1 participated in the content distribution system S, contents (for example, movies, music, and the like) data as distribution information, to be distributed from one node apparatus 1 to another node apparatus 1, is distributed and stored. For example, content data of a movie whose title is XXX is stored in the node apparatus 1a and content data of a movie whose title is YYY is stored in the node apparatus 1b. In such a manner, content data different from each other is distributed and stored in the plurality of node apparatuses 1 (there is also a case that the same content data is distributed and stored in the plurality of node apparatuses 1).
Any content data may be stored in any node apparatus 1. For example, a keyword (such as a name of content (content title) or outline information (synopsis) of content) as an example of information of content data is hashed with the same hash function as that used when obtaining the node ID (that is, keywords are disposed in the same ID space as that of the hash values of the IP addresses of the node apparatuses 1). The content data is stored in the node apparatus 1 having the node ID closest to the hash value (for example, the digits in upper-order match the most). In such a manner, content data can be evenly distributed in the content distribution system S. There may be a case that different content data have the same keyword (for example, the same contents title) and in this case, these contents have the same hash values. To avoid the situation, a keyword to be hashed may be formed with, for example, combination of a content title and copyright information (such as performer name, director name, original writer name, singer name, composer name, lyric writer name, or the like).
The location of content data distributed and stored is stored partly in each of the node apparatuses 1 using DHTs. By using these DHTs, the location of the content data, that is, the node apparatus 1 as a storage source can be searched (found). In a DHT, for example, a plurality of pieces of path information to another node apparatus, that is, node ID (hash value) and IP address of another node apparatus properly apart in the node ID space are registered.
An example of a method of searching a node apparatus 1 as a storage source of content data will be described with reference to
For example, as shown in
Next, the node apparatus 1a obtains the IP address of the node apparatus 1b associated with the value “1” of the first digit in upper-order of the hash value “123” of the keyword with reference to a DHT (in other words, a network path table) 51 held by itself (
If the IP address of the node apparatus 1a is associated with the hash value “123” of the keyword in the DHT 51 held in the node apparatus 1a, the node apparatus 1a is the storage source of the content data.
The node apparatus 1b receives the inquiry information, obtains the IP address of the node apparatus 1f associated with the numerical value “2” of the second digit in upper-order of the hash value “123” of the keyword with reference to a DHT 52 held by itself (
The node apparatus if receives the inquiry information, obtains the IP address of the node apparatus 1j associated with the numerical value “3” of the third digit in upper-order of the hash value “123” of the keyword with reference to a DHT 53 held by itself as the IP address of a node apparatus 1 storing the content data X of the keyword “XXX” (
The node apparatus 1a thus receives the IP address of the node apparatus 1j, then searches the node 1j as the location of the content data X of the keyword “XXX”, that is, the storage source, and obtains (downloads) the content data X from the node apparatus 1j.
In the keyword list L, keywords of a plurality of content data distributed and stored in the content distribution system S are described. With the keyword list L, the user of each of the node apparatuses 1 can grasp content data stored, in other words, content data to be viewed.
Therefore, the keyword list L can be also said as shared information that is commonly used by all of the node apparatuses 1 and has to be always in the latest state.
In the embodiment, by searching the update information of the keyword list L by using the keyword list L before update, without providing a server for managing the keyword list L in an centralized manner, each of the node apparatuses 1 can efficiently obtain the keyword list L in the latest state any time. The details of this method will be described later.
[2. Configuration of Node Device and the Like]
Referring now to
As shown in
The CPU in the controller 11 executes various programs memorized in the memory 12 or the like, thereby controlling the whole node apparatus 1 in a centralized manner and performs a keyword list storing (registering) process, a keyword list updating process, and the like in response to the instruction signal from the input unit 21. The keyword list storing (registering) process and the keyword list updating process will be described later.
[3. Operation of Content Distribution System]
Next, the operation of the content distribution system S will be described.
(Keyword List Storing Process)
First, the keyword list storing process will be described with reference to FIGS. 4 to 7.
The processes shown in FIGS. 4 to 6 are performed when a shared information storing process program memorized in the memory 12 or the like is executed by the controller 11.
In the processes shown in
In the obtaining process, for example, the controller 11 may obtain a keyword from data added to the content data X or may obtain a keyword entered by an operation on the input unit 21 of the user.
Subsequently, the controller 11 performs a process of searching the node apparatus 1 to be a storage source of the content data X (step S2).
Specifically, first, the controller 11 generates a hash value by processing the obtained keyword with the same hash function as that used for obtaining the node ID as shown in
After that, the controller 11 refers to a DHT (step S22) and determines whether the apparatus itself is a node apparatus 1 to be a storage source of the content data X or not (step S23). When the controller 11 determines that the apparatus itself is not the node apparatus 1 as the storage source (for example, when the IP address of the apparatus itself is not associated with the hash value of the keyword in the DHT) (N in step S23), the controller 11 transmits the inquiry information including the hash value of the keyword and the IP address of the apparatus itself to another node apparatus 1 (step S24). When the controller 11 receives the IP address of a node apparatus 1j to be a storage source, which is sent in response to the inquiry information (Y in step S25), the controller 11 identifies the node apparatus 1j to be a storage source on the basis of the IP address (step S26).
When the inquiry information is transmitted to another node apparatus 1 in step S24, the processes are performed in the same flow as that in the searching method described above with reference to
On the other hand, when the controller 11 determines in step S23 that the apparatus itself is a node apparatus to be the storage source (Y in step S23), identifies the node apparatus 1a itself as the node apparatus to be the storage source (step S26).
Next, returning to the processes shown in
Subsequently, the controller 11 performs the process of searching the node apparatus 1 as the management source of the keyword list L1 (step S4).
Specifically, the controller 11 as an identification information generating means, first, as shown in
After that, the controller 11 as a node apparatus identifying means identifies the node apparatus 1 as the management source of the keyword list L1 on the basis of the generated hash value. For example, the controller 11 refers to a DHT (step S52) and determines whether the apparatus itself is a node apparatus 1 as the management source or not (step S53). When the controller 11 determines that the apparatus itself is not the node apparatus 1 as the management source (for example, when the IP address of the apparatus itself is not associated with the hash value in the keyword list L1) (N in step S53), the controller 11 transmits the inquiry information including the hash value of the keyword list L1 and the IP address of the apparatus itself to another node apparatus 1 (step S54). When the controller 11 receives the IP address of a node apparatus 1x as the management source of the keyword list L1 sent in response to the inquiry information (Y in step S55), the controller 11 identifies the node apparatus 1x as the management source on the basis of the IP address (step S56).
When the inquiry information is transmitted to another node apparatus 1 also in step S54, like in the step S24, the processes are performed in the same flow as that in the searching method described above with reference to
On the other hand, when the controller 11 determines in step S53 that the apparatus itself is the node apparatus 1 as the management source (Y in step S53), the node apparatus 1a of itself is identified as the node apparatus 1 as the management source (step S56).
Next, returning to the processes shown in
The controller 11 of the node apparatus 1a receives the information (information whether the updating process inhibiting instruction is accepted or not) sent from the node apparatus 1 as the management source, and determines whether the write inhibition could be set or not (step S6). In the case where the write inhibition could not be set (that is, the information, indicating that the updating process inhibiting instruction was not accepted, is received) (N in step S6), the controller 11 finishes the process. On the other hand, in the case where the write inhibition could be set (that is, the information, indicating that acceptance of the updating process inhibiting instruction is received) (Y in step S6), the controller 11 goes to step S7.
In step S7, the controller 11 performs an updating process of updating the keyword list L1 memorized in the memory 12 to a keyword list L2. More specifically, the controller 11 reads the keyword list L1 from the memory 12, generates a new keyword list L2 by adding the keyword “XXX” of the obtained content data X to the keyword list L1 as shown in
Next, the controller 11 as a shared information storing means performs a storing process of making the node apparatus 1, as the management source of the specified keyword list L1, store update information corresponding to the keyword list L1 before update (step S8).
More specifically, in the case where the node apparatus 1 identified in the step S56 is not the apparatus itself, on the basis of the IP address received in step S55, the controller 11 transmits the update information corresponding to the keyword list L2 in the step S 1 to the node apparatus 1x as the management source via the communication unit 20 and the network 8 as shown in
The update information corresponding to the keyword list L2 may be the whole keyword list L2 or partial information corresponding to an update part of the keyword list L1 before update (for example, a keyword added to the keyword list L1). In the case where the update information corresponding to the keyword list L2 is the whole keyword list L2, the keyword list L1 may be rewritten (overwritten) to the keyword list L2.
In the case where the keyword list storing process is performed, the keyword list L1 is updated to the keyword list L2, and a new content data storing request is made again in the node apparatus 1a for registering content data, a process similar to the above is performed. In this case, by adding a keyword of new content data to the keyword list L2, the keyword list L2 is updated to a keyword list L3, and update information corresponding to the keyword list L3 is stored in the node apparatus 1y as the management source of the keyword list L2.
In such a manner, the keyword list is updated from an old version to a new version. In association with the updating, update information is stored in the node apparatuses 1x, 1y, and 1z, for example, as the management sources of the keyword lists of updating stages L1, L2, and L3, respectively. The hash values of the keyword lists of updating stages L1, L2, and L3, For example, are different from each other (because the character strings described in the keyword lists are different from each other), so that the node apparatuses 1x, 1y, and 1z as the management sources of them are also different from each other.
Although any node apparatus 1 may be used as the management source of the keyword list of each of updating stages, it is more desirable to determine the node apparatus 1 from the relation between the hash values of the node ID and the keyword list. Specifically, a method of using a node apparatus 1 having the node ID of the hash value closest to the hash value of the keyword list (for example, the digits in upper-order match the most), as the management source of the keyword list, can be mentioned.
The objects to be hashed with respect to the keyword lists L1, L2, and L3 are not limited to character strings described in the keyword lists but may be any of information capable of distinguishing the keyword lists L1, L2, and L3 from each other (for example, list names (preferably, names including the update date and time or the like) added to each of the lists).
As described above, after the update information storing process is finished, the controller 11 transmits an updating process inhibition canceling instruction to the node apparatus 1x as the management source via the communication unit 20 and the network 8 (step S9), and finishes the process. Thus, in the node apparatus 1x as the management source, the write inhibition flag is reset.
(Keyword List Updating Process)
Next, with reference to
In the following description, the case where the management sources of the keyword lists L1, L2, and L3 are the node apparatuses 1x, 1y, and 1z, respectively in the processes of FIGS. 4 to 6 is assumed.
In the processes shown in
When the node apparatus 1x as the management source of the keyword list L1, for example, is identified by the searching process in the step S11, the controller 11 as an update information obtaining means performs an obtaining process for obtaining update information corresponding to the keyword list L1 from the identified node apparatus 1x (step S12).
More specifically, on the basis of the IP address received in the process shown in
The controller 11 as a shared information updating means determines whether the keyword list L1 has been updated or not in the node apparatus 1x as the management source of the keyword list L1 on the basis of the obtained update information (step S13). In the case where the keyword list L1 has been updated (Y in step S13), the controller 11 performs an updating process of updating the keyword list (an example of first shared information) memorized in the memory 12 to the keyword list L1 (an example of second shared information (step S14). More specifically, in the case where the update information includes partial information (for example, the keyword “XXX” to be added) corresponding to the update part in the keyword list L1 before update, as shown in
After the keyword list updating process is performed, returning to the step S11, the keyword list L2 after update is read from the memory 12, the node apparatus 1 as the management source of the keyword list L2 is searched and the node apparatus 1y as the management source of the keyword list L2, for example, is identified. As shown in
Such an updating process is performed until it is determined that the keyword list is not updated in the step S13. For example, as shown in
After the keyword list in the latest state is determined as described above, the controller 11 displays the keyword list on the display unit 16 via the video processor 15. When the user operates the input unit 21 to select, for example, a desired keyword “YYY, from keywords described in the displayed keyword list in such a display state, the location of the content data Y corresponding to the selected keyword “YYY” is searched as described with reference to
According to the embodiment as described above, the node apparatuses as management sources of the respective keyword lists L1, L2, and L3 at update stages are distributed, and update information corresponding to a keyword list is stored in each of the node apparatuses 1, and each of the node apparatuses 1 accesses the node apparatus of the management source according to the keyword list stored in the apparatus itself to obtain the update information and updates the keyword list. Consequently, the node apparatus can efficiently update the keyword list stored in the apparatus itself without providing the management server, and concentration of the network load in one place at the time of updating the keyword list can be avoided. Since it is unnecessary to provide a management server, the management cost for the management server can be reduced.
Since the keyword lists L1, L2, and L3 are sequentially updated from the old one to become the latest state in the node apparatuses, without providing the management server, the keyword list in the latest state can be efficiently obtained at any time.
By using the hash value of the keyword list and the DHT, each of the node apparatuses as the management sources of the keyword lists at each of the update stages can be identified more efficiently.
In the foregoing embodiment, from the keyword list L1, the keyword list L3 in the latest state is obtained via the keyword list L2 by the processes shown in
Although an example of the searching method using the DHT in each of the node apparatuses 1 shown in
In the foregoing embodiment, on the precondition that the overlay network 9 constructed by an algorithm using the DHT is employed, a keyword or a keyword list is hashed and, on the basis of a hash value and the DHT, a node apparatus as the storage source of content data or a node apparatus as the management source of the keyword list is identified (found). Alternatively, for example, a node apparatus as the storage source of content data or a node apparatus as the management source of the keyword list may be identified (found) by an algorithm or a function (function find(a numerical value corresponding to a keyword list, for example)=the IP address of the node apparatus 1 as the management source of the keyword list) for performing a predetermined computation by using a keyword or a keyword list (or information accompanying the keyword list).
In the foregoing embodiment, the controller 11 generates a hash value of a keyword list by using a predetermined hash function. The invention however is not limited to the configuration. It is also possible to generate a keyword list ID (which can be discriminated from other keyword list IDs) corresponding to the keyword list on the basis of the keyword list and, on the basis of the keyword list ID, it is possible to identify the node apparatus 1 as the management source of the keyword list.
Although the embodiment has been described by using, for example, a keyword list as shared information to be commonly used by a plurality of node apparatuses 1, the invention is not limited to the embodiment. The invention may be applied to shared data which has to be held commonly by a plurality of users such as a source program to be commonly used by the plurality of node apparatuses 1. In this case as well, a plurality of node apparatuses 1 as management sources of shared data at update stages (versions) exist. By the process (of replacing a keyword list with shared data) shown in
The present invention is not confined to the configuration listed in the foregoing embodiments, but it is easily understood that the person skilled in the art can modify such configurations into various other modes, within the scope of the present invention described in the claims.
The entire disclosures of Japanese Patent Applications No. 2004-285895 filed on Sep. 30, 2004 including the specification, claims, drawings and summary are incorporated herein by reference in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2004-285895 | Sep 2004 | JP | national |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP05/16740 | Sep 2005 | US |
Child | 11727832 | Mar 2007 | US |