Patent Publication Number: US-8527610-B2

Title: Cache server control device, content distribution system, method of distributing content, and program

Description:
This application is based on Japanese patent application No. 2010-03234039 the content of which is incorporated hereinto by reference. 
     BACKGROUND 
     1. Technical Field 
     The present invention relates to a cache server control device which controls cache servers used in a content distribution system, a content distribution system, a method of distributing content, and a program. 
     2. Background Art 
     Recently, the speed of data communication network, such as the Internet, has been upgraded. It has also become possible to transmit video contents by high-vision broadcasting with high image quality, by virtue of adoption of H.264/AVC codec. IPTV services may, therefore, be expected to be brought into full operation. 
     VOD (Video On Demand) service is one of such IPTV service. A content distribution system for realizing the service is configured by a content storage which stores video contents, and a distribution server which distributes the video contents. On the other hand, the content distribution system is required to distribute video contents in a stable manner to a large number of subscribers. A variety of technologies for fulfilling the requirement have been developed. 
     For example, Japanese Laid-Open Patent Publication No. 2009-182629 discloses a technology of preliminarily allocating to distribution servers, contents which satisfy specific conditions. Japanese Laid-Open Patent Publication No. 2009-165118 discloses a technology of placing the contents in local caches of user terminals before viewing such contents. Japanese Laid-Open Patent Publication No. 2808-072484 discloses a technology of preliminarily predicting a time zone in which loads of the instruments which hold video contents will become heavier in a home area network system, and moving the video contents to other instruments before getting into the time zone. 
     Japanese Laid-Open Patent Publication No. 2009-033760 discloses a technology of preliminary placing head chunks of the contents in local caches. Japanese Laid-Open Patent Publication No. 2007-080161 discloses a technology of separately holding the full contents and the head portions of the contents, and allowing the clients to concurrently download the full contents and the head portions of the contents. 
     Japanese Laid-Open Patent Publication No. 2009-237918 discloses a technology of supervising loads of local servers which distribute the contents, and determining the number of contents to be copied to local servers depending on the loads, thereby preparing a copy schedule. 
     SUMMARY 
     In order to distribute, contents to be reproduced to the client terminals in a stable manner, it is preferable to provide cache servers besides the distribution servers, and to allow the cache servers preliminarily to store the contents to be reproduced which are considered to heavily load the distribution servers. In this case, it is necessary to delete the contents to be reproduced whose the distribution load is reduced. However, frequent storage and deletion of the contents to be reproduced, to or from the cache servers, may heavily load the cache servers. 
     It is therefore an object of the present invention to provide a cache server control device, a content distribution system, a method of distributing content, and a program, capable of suppressing frequency of storage and deletion of the contents to be reproduced, to or from the cache servers. 
     According to the present invention, the is provided a cache server control device which is used for a content distribution system, and the content distribution system herein comprising:
         a content storage device which stores a plurality of contents to be reproduced, necessary to be distributed to client terminals;   a distribution server which reads the plurality of contents to be reproduced out from the content storage device and distributes them to the client terminals; and   a plurality of cache servers which preliminarily store at least one of the plurality of contents to be reproduced, and distribute it to the client terminals, the cache server control device which is configured to lodes which of the contents to be reproduced is stored in the cache servers, and comprising:       

     distribution load acquisition unit which acquires load information representing distribution load, for when for concurrently distributing the contents to be reproduced to the plurality of client terminals in response to a plurality of distribution requests issued for the contents to be reproduced, respectively for the plurality of contents to be reproduced; and 
     a cache control unit which updates the number of units of cache servers necessary for storing the contents to be reproduced, by comparing the load information acquired by the distribution load acquisition unit with a threshold value determined in a multi-level manner, and the cache control unit herein is configured to use: 
     uses a first value of the threshold, value when the number of units of the cache servers, for storing said content to be reproduced related to the judgment is increased; and 
     a second value of the threshold value, being smaller than the first threshold value, when the number of units of the cache servers, for storing said content to be reproduced related to the judgment is decreased. 
     According to the present invention, there is provided a content distribution system which comprises: 
     a content storage device which stores a plurality of contents to be reproduced, necessary to be distributed to client terminals; 
     a distribution server which reads a plurality of contents to be reproduced out from said content storage device, and distributes them to the client terminals; 
     a plurality of cache servers which preliminarily store at least one of the plurality of contents to be reproduced, and distribute it to the client terminals; and 
     a cache server control, device configured to judge which of the contents to be reproduced is stored in the cache servers, and wherein the cache server control device herein comprises: 
     a distribution band acquisition unit which acquires load information representing distribution load, for when for concurrently distributing the contents to be reproduced to the plurality of client terminals, in response to a plurality of distribution requests issued for the contents to be reproduced, respectively for the plurality of contents to be reproduced; and 
     a cache control unit which updates the number of units of cache servers necessary for storing the contents to be reproduced, by comparing the load information acquired by the distribution load acquisition unit with a threshold value determined in a multi-level manner, and wherein the cache control unit herein is configured to use: 
     a first value of the threshold value when the number of units of the cache servers, is configured to use: 
     a first value of said threshold value when the number of units of said cache servers, for storing the content to be reproduced related to the judgment, is increased; and 
     a second value of the threshold value, being smaller than the first threshold value, when the number of units of the cache servers, for storing the content to be reproduced related to the judgement, is decreased. 
     According to the present invention, there is provided a method of distributing content which comprises the steps of: 
     allowing a content storage device to preliminarily store a plurality of contents to be reproduced which are to be distributed to client terminals; 
     allowing a distribution server to read the plurality of contents to be reproduced out from the content storage device and to distribute them to the client terminals; 
     allowing a plurality of cache servers to preliminarily store at least one of the plurality of contents to be reproduced, and to send it to the client terminal; and 
     allowing a cache server control device, configured to judge which of the contents to be reproduced is stored in the cache servers, to acquire a distribution load, for when for concurrently distributing the contents to be reproduced to the plurality of client terminals, in response to a plurality of distribution requests issued for the contents to be reproduced, respectively for the plurality of contents to be reproduced, and to update the number of units of the cache servers necessary for storing the contents to be reproduced, by comparing the thus-acquired distribution load with a threshold value determined in a multi-level manner, and the cache server control device herein comprises: 
     a first value of the threshold value when the number of units of the cache servers, for storing the content to be reproduced related to the judgment, is increased; and 
     a second value of the threshold value, being smaller than the first threshold value, when the number of units of the cache servers, for storing said content to be reproduced related to the judgment, is decreased. 
     According to the present invention, there is provided a program for realizing a cache server control device which is used for a content distribution system, the content distribution system herein comprising:
         a content storage device which stores a plurality of contents to be reproduced, necessary to be to client terminals;   a distribution server which reads the plurality of contents to be reproduced out from the content storage device and distributes them to the client terminals; and   a plurality of cache servers which preliminarily store at least one of the plurality of contents to be reproduced, and distribute it to the client terminals, and       

     the cache server control device herein is configured to judge which of the contents to be reproduced is stored in the cache servers, and wherein the program is configured to allow a computer to realize: 
     a function of acquiring load information representing distribution load, for when for concurrently distributing the contents to be reproduced to the plurality of client terminals in response to a plurality of distribution requests issued for the contents to be reproduced, respectively for the plurality of contents to be reproduced; and 
     a function of updating the number of units of the cache servers necessary for storing the contents to be reproduced, by comparing the thus-acquired distribution load with a threshold value determined in a multi-level manner, 
     wherein the program is further configured to allow a computer to: 
     use a first value of the threshold value when the number of units of the cache servers, for storing said content to be reproduced related to the judgment, is increased; and 
     use a second value of the threshold value, smaller than the first threshold value, when the number of units of the cache servers, for storing said content to be reproduced related to the judgment, is decreased. 
     According to the present invention, the cache servers may be prevented from being so frequently accessed for storage and deletion of the contents to be reproduced. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other objects, advantages and features of the present invention will be more apparent from the following description of certain preferred embodiments taken in conjunction with the accompanying drawings, in which; 
         FIG. 1  is a block diagram illustrating a configuration of a content distribution system according to a first embodiment; 
         FIG. 2  is a drawing illustrating, in a table form, a data configuration of information stored by a content storage; 
         FIG. 3  is a drawing illustrating, in a table form, a data configuration of information stored by cache servers; 
         FIG. 4  is a drawing illustrating, in a table form, a data configuration of information stored by a database; 
         FIG. 5  is a block diagram illustrating a functional configuration of a cache server control device; 
         FIG. 6  is a drawing illustrating, in a table form, data stored by a content information storage unit; 
         FIG. 7  is a drawing illustrating, in a table form, information stored by a load information storage unit; 
         FIG. 8  is a drawing illustrating a first operation of the content distribution system illustrated in  FIG. 1 ; 
         FIG. 9  is a drawing illustrating a second operation of the content distribution system illustrated in  FIG. 1 ; 
         FIG. 10  is a flow chart illustrating details of step S 130  in  FIG. 9 ; 
         FIG. 11  is a drawing specifically explaining the flows illustrated in  FIG. 9  and  FIG. 10 ; 
         FIG. 12  is a drawing illustrating, in a table form, a data configuration of content information storage unit in a second embodiment; and 
         FIG. 13  is a drawing illustrating, in a table form, a data configuration of a load information storage unit according to a second embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     The invention will now be described herein with reference to illustrative embodiments. Those skilled in the art will recognize that many alternative embodiments can be accomplished using the teachings of the present invention and that the invention is not limited to the embodiments illustrated for explanatory purposes. 
     Embodiments of the present invention will be explained referring to the attached drawings. Note that all similar constituents in all drawings will be given similar reference numerals or symbols, so as to occasionally avoid repetitive explanations. 
     First Embodiment 
       FIG. 1  is a block diagram illustrating a configuration of a content distribution system according to a first embodiment. The content distribution system is a system configured to distribute a plurality of contents to be reproduced, such as video contents and voice contents stored in content storage device (content storage)  100 , through a communication network  10  such as the Internet, to client terminals  20 . The contents to be reproduced are assigned with content identification information. The content identification information is used for identifying a plurality of contents to be reproduced from each other. 
     The content distribution system has, besides the content storage  100 , at least one distribution server  200 , a plurality of cache servers  300 , and a cache server control device  600 . The distribution server  200  reads a plurality of contents to be reproduced out from the content storage  100 , and distributes them to the client terminals  20 . The cache server  300  preliminarily stores (caches) at least one of the plurality of contents to be reproduced, and distributes it to the client terminals  20 . 
     The cache server control device  600  judges which contents to be reproduced should be stored into which cache servers  300 . The cache server control device  600  acquires a distribution load respectively for the plurality of contents to be reproduced. The distribution load is the one used for concurrently distributing the same content to be reproduced to the plurality of client terminals  20 , when receiving the distribution requests for the same content to be reproduced, respectively from the plurality of client terminals  20 . The cache server control device  600  then determines the number of units of cache server  300  necessary for storing the contents to be reproduced, based on the thus-acquired distribution load. The cache server control device  600  selects the cache servers  300  necessary for storing the contents to be reproduced, and allows the selected cache servers  300  to store the contents to be reproduced. The cache server control device  600  herein uses a first threshold value, when the number of nits of cache server  300  for storing the content to be reproduced related to the judgment is increased, and uses a second threshold value, smaller than the first threshold value, when the number of units of cache server  300  for storing the content to be reproduced related to the judgment is decreased. 
     The content distribution system additionally has a database  400  and an access control device  500 . The database  400  stores server specification information, indicating which distribution server  200  or which cache server  300  should distribute which contents to be reproduced, while correlating it with the content identification information. The database  400  is updated by the cache server control device  600 . 
     The access control device  500  receives the distribution requests sent by the client terminals  20  to the content distribution system. The distribution requests are assigned with the content identification information. The access control device  500  reads from the database  400 , the server specification information with respect to the content identification information, and sends it to the client terminals  20  which previously sent the distribution requests. The server specification information is typically an URL. When the server specification information is given by an URL, the URL is specified to a depth of hierarchy by which the contents to be reproduced may be specified. Upon reception of the distribution requests for either one of the contents to be reproduced from the client terminals  20 , the access control device  800  sends to the cache server control device  600 , content identification information of the content to be reproduced, while correlating it with request reception information which indicates reception of the distribution request. As detailed later, the cache server control device  600  acquires the distribution load, respectively for the contents to be reproduced, by using the request reception information. 
     Note that the distribution servers  200 , the cache servers  300 , the access control device  500 , and the cache server control device  600  are connected with each other through a communication network  30  such as intranet. 
       FIG. 2  is a drawing illustrating, in a table form, a data configuration of information stored by the content storage  100 . The content storage  100  stores the contents to be reproduced while correlating them with the content identification information. The content storage  100  stores all contents to be reproduced which should be distributed by the content distribution system illustrated in  FIG. 1 . 
       FIG. 3  is a drawing illustrating, in a table form, a data configuration of information stored by the cache servers  300 . Each cache server  300  is assigned with a cache server number, as cache server identification information used for identifying a plurality of cache servers  300  from each other. The cache servers  300  store the contents to be reproduced to which a large number of distribution requests are issued, while correlating them with the content identification information. The contents to be reproduced stored by the cache servers  300  are different from cache server  300  to cache server  300 . For the case where the server specification information is given by an URL, the cache server  300  stores the contents to be reproduced while correlating them with the URL. The URL is specified with respect to each of the contents to be reproduced. 
       FIG. 4  is a drawing illustrating, in a table form a data configuration of information stored by the database  400 . 
     The database  400  stores the content identification information, while correlating it with the server specification information, indicating that from which server the contents to be reproduced are distributed, such as cache server numbers, respectively for contents to be reproduce. 
       FIG. 5  is a block diagram illustrating a functional configuration of the cache server control device  600 . The cache server control device  600  has a distribution load acquisition unit  650  and a cache control unit  660 . The distribution load acquisition unit  650  acquires a distribution load, respectively for plurality of contents to be reproduced. In this embodiment, the distribution load means distribution band. The distribution band is the one used for concurrently distributing the same content to be reproduced to the plurality of client terminals  20 , when receiving the distribution requests for the same content to be reproduced, from the plurality of client terminals  20 , respectively. The cache control unit  660  then determines the number of units of cache server  300  necessary for storing the contents to be reproduced, based on the distribution load (distribution band) acquired by the distribution load acquisition unit  650 . The number of units determined herein can be zero for some cases. 
     The cache server control device  600  additionally has a content information storage unit  610 , a content information update unit  620 , a load information storage unit  630 , a load information update unit  640 , and a threshold value storage unit  670 . 
     The content information storage unit  610  stores the cache information which indicates which contents to be reproduced are stored in which cache servers  300 , respectively for the plurality of contents to be reproduced. The content information storage unit  610  also serves as a bit rate storage unit and a distribution request storage unit. More the content information storage unit  610  stores bit rates of the contents to be reproduced and currently valid number of his requests, while correlating them with the contents identification information, respectively for the plurality of contents to be reproduced. The distribution band provided respectively for the contents to be reproduced may be calculated by multiplying the bit rate and the number of distribution requests. The distribution band is calculated typically by the content information update unit  620 . 
     Upon reception of the request reception information and the content identification information from the access control device  500 , the content information update unit  620  updates the information stored by the content information storage unit  610 . More specifically, upon reception of the request reception information and the content identification information from the access control device  500 , the content information update unit  620  increases the number of distribution requests corresponding to the received content identification information by one. 
     The content information update unit  620  also receives distribution end information, which indicates that the distribution of the contents to be reproduced ended, from the distribution servers  200  or the cache servers  300 , while correlating them with the content identification information of the contents to be reproduced. The content information update unit  620  then updates the content information storage unit  610 , and decreases the number of distribution requests corresponding to the received content identification information by one. 
     The load information storage unit  630  stores load information which indicates loads of the cache servers, respectively for the plurality of cache servers  300 . The load information update unit  640  periodically acquires information which indicates distribution loads (distribution bands, for example) of the cache servers  300 , respectively from the plurality of cache servers  300 , and periodically updates the load information storage unit  630  by using the thus-acquired information. 
     The threshold value storage unit  670  stores the first threshold value and the second threshold value of the distribution hands. The threshold values are used when the cache control unit  660  determines the number of units of cache server  300 , respectively for the contents to be reproduced. 
     Note that  FIG. 5  does not illustrate portions which are not essential to the present invention. The individual constituents of the cache server control device  600  illustrated in  FIG. 5  are expressed on the basis of functional blocks, rather than on the hardware basis. The individual constituents of the cache server control device  600  are realized by arbitrary combinations of hardware and software, represented by CPU of arbitrary computer, memory, program for realizing the constituents of the present invention loaded in the memory, storage unit such as hard disk for storing the program, and interface for networking. 
       FIG. 6  is a drawing illustrating, in a table form, data stored by the content information storage unit  610  of the cache server control device  600 . The con ent information storage unit  610  stores the content identification information, cache server numbers of the cache servers  300  which store the contents to be reproduced, distribution bands, bit rates, the number of distribution requests, and history information of the distribution loads, respectively for the contents to be reproduced. The distribution bands are given as values obtained by multiplying the bit rates and the number of distribution requests. The history information of the distribution bands is typically composed of the number of distribution requests and the distribution bands at certain date and time, while being correlated with such date-and-time information. 
     The content information storage unit  610  also stores the latest date and time at which the number of units of cache server  300  storing the contents to be reproduced were increased, respectively for the contents to be reproduced. 
       FIG. 7  is a drawing illustrating, in a table form, information stored by the load information storage unit  630 . The load information storage unit  630  stores the cache server numbers, and the distribution bands which indicate the loads of the cache servers  300  in a mutually correlated manner, respectively for the plurality of cache servers  300 . 
       FIG. 8  is a drawing illustrating a first operation of the content distribution system illustrated in  FIG. 1 . The operation represents the one to be executed upon reception of the distribution requests of contents from the client terminals  20 . 
     Each client terminal  20  sends the distribution request of the content to the access control device  500 , while correlating it with the content identification information. Upon reception of the distribution request and the content identification information (step S 10 ), the access control device  500  reads the server specification information, corresponding to the received content identification information, out from the database  400  (step S 20 ), and then sends the thus-read server specification information to the client terminal  20  (step  230 ). 
     While not illustrated in the drawing, upon reception of the server specification information from the access control device  500 , the client terminal  20  makes an access to the distribution server  200  or the cache server  300 , by using the thus-received server specification information. The accessed distribution server  200  or the cache server  300  starts distribution of the content to be reproduced to the client terminal  20 . 
     After sending the server specification information to the client terminal  20 , the access control device  500  sends the content identification information received in step S 10  to the cache server control device  600 , while correlating it with the request reception information (step S 40 ). Upon reception of the content identification information and the request reception information from the access control device  500 , the content information update unit  620  of the cache server control device  600  updates the content information storage unit  610 , and increases the number of distribution requests corresponding to the received content identification information by one (step S 50 ). 
     Upon completion of the distribution of the content to be reproduced to the client terminal  20 , the distribution server  200  or the cache server  300  sends the distribution end information to the cache server control device  600 , while correlating it with the content identification information of the content to be reproduced. Upon reception of the distribution end information from the distribution server  200  or the cache server  300 , in a form correlated with the content identification information, the content information update unit  620  of the cache server control device  600  updates the content information storage unit  610 , and decreases the number of distribution requests corresponding to the received content identification information by one. 
       FIG. 9  is a drawing illustrating a second operation of the content distribution system illustrated  FIG. 1 . The operation is the one executed by the cache server control device  600  when it modifies setting of the cache servers  300 . The processes illustrated in this drawing is periodically executed. 
     The distribution load acquisition unit  650  of the cache server control device  600  selects one content identification information (step S 110 ). The distribution load acquisition unit  650  reads, the distribution band corresponding to the selected content identification information, out from the content information storage unit  610 . The distribution load acquisition unit  650  herein reads the maximum value of the distribution band found in every check periods, each of which is defined by a predetermined length of time, based on such a predetermined check period basis (step S 122 ). This process is executed by using the history information of the distribution band. Each of the check period is typically defined by an integer multiple of 24 hours. 
     The distribution acquisition unit  650  also reads out from the content information storage unit  610 , the current number of units of cache server  300  which store the content to be reproduced corresponding to the selected content identification information (step S 125 ). The number of units is determined typically based on how many cache server numbers are stored with respect to the selected content identification information in the content information storage unit  610 . 
     Next, the distribution load acquisition unit  650  outputs the thus-read distribution band and the number of units of cache server  300  to the cache control unit  660 , while correlating it with the content identification information. The cache control unit  660  re-sets the cache servers  300  by using the information received from the distribution load acquisition unit  650  (step S 130 ). 
     The distribution load acquisition unit  650  and the cache control unit  660  repeat all processes from step S 110  to step S 130 , for all of the content identification information (step S 140 ). 
       FIG. 10  is a flow chart illustrating details of the processes in step S 130  in  FIG. 9 , that is, the re-setting processes of the cache servers  300  executed by the cache control unit  660 . The cache control unit  660  reads information which determines the first threshold value and the second threshold value out from the threshold value storage unit  670 . Each of the first threshold value and the second threshold value is set in a multi-level manner. 
     More specifically, the threshold value storage unit  670  stores a certain reference value, a first constant, and a second constant. The second constant is smaller than the reference value. Values obtained by adding the constant to each of integer multiples of the reference value, respectively, are used as the first threshold value. Values obtained by subtracting the second constant from the first threshold value, respectively, are used as the second threshold value. 
     First, the cache control unit  660  compares the maximum value of the distribution band acquired from the distribution load acquisition unit  650 , with the first threshold value read out from the threshold value storage unit  670 , and determines a necessary number of units of cache number of units of cache server, by judging which level of the threshold value the distribution band exceeds. More specifically, the cache control unit  660  calculates a necessary number of units of cache server  300 , by subtracting the first constant from the maximum value of the distribution band, dividing such a difference by the reference value, and omitting decimals from the quotient calculated therefrom (step S 202 ). 
     The cache control unit  660  judges whether the number of units of cache server  300  calculated in step S 200  exceeds the current number of units of cache server  300  acquired from the distribution band acquisition unit  650 , or not (step S 210 ). If exceeding (step S 210 : Yes), the cache control unit  660  reads, the cache server number corresponding to the content identification information acquired from the distribution band acquisition unit  650 , out from the content information storage unit  610 . The cache control unit  660  then selects the cache servers  300  assigned with numbers other than the thus-read cache server number, that is, the cache servers  300  which do not store the contents to be reproduced related to the judgment, as server candidates (step S 212 ). 
     Next, the cache control unit  660  recognizes the cache server numbers of the server candidates, and reads the load information (or distribution bands) corresponding to the recognized cache server numbers out from the load information storage unit  630  (step S 214 ). The cache control unit  660  also recognizes the difference between the number of units of cache server  300  calculated in step S 200  and the current number of units, as the number of units of cache server  300  to be added. The cache control unit  660  then recognizes loads on the individual server candidates by using the thus-read load information, and selects a necessary number of units of the server candidates in an increasing order of load. In this way, the cache servers  300 , required to cache the content to be reproduced related to the processing, are determined (step S 216 ). 
     Next, the cache control unit  660  sends the content identification information, acquired from the distribution band acquisition unit  650 , to the cache servers  300  having cache server numbers selected in step S 216 , together with a storage command which asks the cache servers  300  to read out from the content storage  10 , the contents to be reproduced corresponding to the content identification information, and to store such contents therein (step S 217 ). Upon reception of the storage command while being correlated with the content identification information, the cache servers  300  read the contents to be reproduced corresponding to the received, content identification information, out from the content storage  100 . 
     The cache control unit  660  updates the database  400 , and adds the cache server numbers of the cache servers  300  determined in step S 216 , to the cache server numbers corresponding to the content identification information acquired from the distribution load acquisition unit  650  (step S 218 ). The cache control unit  660  then updates, in the content information storage unit  610 , the latest date on which the number of the units of cache servers  300  was increased, among information corresponding to the content identification information acquired from the distribution load acquisition unit  650 , into the current date (step S 219 ). 
     For the case where the necessary number of units of cache server  300  calculated in step S 202  is smaller than the current number of units of cache server (step S 210 : No), the cache control unit  660  compares the maximum value of the distribution band acquired from the distribution load acquisition unit  650  with the second threshold, value. The cache control unit  660  then judges which level of the second threshold value does the distribution band exceeds, and thereby setting a necessary number of units of cache server  300 . Each level of the second threshold value is determined typically by subtracting a constant from the first threshold value of each level (step S 211 ). The cache control unit  660  then judges whether the necessary number of units of cache server  300  calculated in step S 211  is smaller than the current number of units of cache server  300  acquired from the distribution load acquisition unit  650  (step S 220 ). 
     If it is smaller (step S 220 : Yes), the cache control unit  660  reads out from the content information storage unit  610 , the latest date on which the number of units of cache server  300  was increased, among information corresponding to the content identification information acquired from the distribution load acquisition unit  650 . If a predetermined period has not elapsed from the thus read data (step S 221 : No), the number of units of cache server  300  is not decreased. On the other hand, if the predetermined period has elapsed from the thus-read date (step S 221 : Yes), the cache control unit  660  reads the cache server numbers, corresponding to the content identification information acquired from the distribution load acquisition unit  660 , out from the content information storage unit  610 . The cache control unit  660  then selects the cache servers  300  assigned with the thus-read cache server numbers, that is, the cache servers  300  currently storing the contents to be reproduced related to the judgment, as content storing servers (step S 222 ). 
     Next, the cache control unit  660  recognizes the cache server numbers of the content storing servers, and reads the load information (or distribution bands) corresponding to the thus-recognized cache server numbers, out from the load information storage unit  630  (step S 224 ). On the other hand, the cache control unit  660  recognizes the difference between the number of units of cache server  300  calculated in step S 200  and the current number of units, as the number of units of cache server  300  from which the contents to be reproduced are deleted. The cache control unit  650  then recognizes loads of the individual storing by using the thus-read load information, and selects a necessary number of units of the storing servers in a decreasing order of load. In this we the cache servers  300 , from which the contents to be reproduced related to the processing should be deleted, are determined (step S 226 ). 
     Next, the cache control unit  660  sends the content identification information acquired from the distribution band acquisition unit  650 , to the cache servers  300  having the cache server numbers selected in step S 226 , together with a deletion command which asks the cache servers  300  to delete the contents to be reproduced corresponding to the content identification information (step S 227 ). Door reception of the deletion command while being correlated with the content identification information, the cache servers  300  delete the contents to be reproduced corresponding to the received content identification information. 
     The cache control unit  660  then updates the database  400 , and deletes the cache server numbers of the cache servers  300  determined in step S 226 , from the cache server numbers stored in the database  400  corresponding to the content identification information acquired from the distribution load acquisition unit  650  (step S 228 ). 
     Now, there may be a case where the contents to be reproduced, in the process of distribution by the cache servers  300 , may be designated as the contents to be deleted from the cache servers  300 . In this case, the cache servers  300  execute a process of deleting the contents to be reproduced, upon completion of distribution of the contents to be reproduced. More specifically, the cache servers  300  periodically judge whether the distribution of the designated contents to be reproduced is completed or not and delete the contents to be reproduced only after the completion of the contents to be reproduced is judged. 
     There may be another case where the access control, device  500  receives the distribution request of the contents to be reproduced, having been designated as the contents to be deleted by the cache servers  300 , before the contents to be reproduced are actually deleted. In this case, the distribution servers  200  execute the processes in response to the distribution request. 
       FIG. 11  is a drawing for specifically explaining the flows illustrated in  FIG. 9  and  FIG. 10 . In the drawing, the first threshold value is set to level A, and to level B higher than level A. Level A is a threshold value for judging whether the content to be reproduced should be stored (copied) in a first cache server  300 , and level B is a threshold value for judging whether the content to be reproduced should be stored (copied) in a second cache server  300 . 
     The second threshold value is set to level A-α and level B-α. Level B-α is a threshold value for judging whether the content to be reproduced should be deleted from one of two cache servers  300 , and level A-α is a threshold value for judging whether the content to be reproduced should be deleted from the remaining one cache server  300  is judged. 
     The check period explained referring to in  FIG. 9  is given as 24 hours in  FIG. 11 . The content distribution system executes the processes shown in  FIG. 9  and  FIG. 10  at 24:00 everyday. In an exemplary case illustrated in  FIG. 11 , in a first check period, the maximum value of the distribution band of the content to be reproduced exceeds level B. Accordingly, at the time of judging the threshold value immediately after the first check period, the cache control unit  660  of the cache server control device  600  increases the number of units of cache server  300 , to which the content to be reproduced is copied (cached), by (step S 210 , and steps S 212  to S 218 ). 
     Thereafter, the distribution band of the content to be reproduced gradually decreases, and the maximum value thereof falls below level B-α in the third check period. However, in the exemplary case illustrated in this drawing, the number of units of cache server  300  is set so as not to be decreased for 48 hours once increased. Accordingly, at the third judgment time of the threshold value, the cache control unit  660  does not execute the process for decreasing the number of units of cache server  300  (step S 221 : No in  FIG. 10 ). 
     Also in the following fourth check period, the maximum value of the distribution band of the content to be reproduced still falls below level B-α. The maximum value of the distribution band falls even below level A, but remains higher than level A-α. Accordingly, in the fourth judgment time of threshold value, the cache control unit  660  executes processes of decreasing the number of units of cache server  300  to one, but not to zero (step S 222  to step S 228  in  FIG. 10 ). 
     In the following fifth check period, the maximum value of the distribution band of the content to be reproduced falls below level A-α. Accordingly, in the fifth judgment time of threshold value, the cache control unit  660  executes processes of decreasing the number of units of cache server  300  to zero (step S 221  to step S 228  in  FIG. 10 ). 
     Next, operations and effects of this embodiment will be explained. In some cases, the distribution band of the content to be reproduced may be kept at almost constant level while repeating slight increase and decrease. In such case, if the same threshold value are used for increase and decrease of the number of units of cache server  300 , the increase and decrease of the number of units of cache server  300  may otherwise be repeated again and again. In contrast, according to this embodiment, the second threshold value for judging that the number of units of cache server  300  is decreased is set to be smaller than the first threshold value for judging that the number of units of cache server  300  is decreased. Accordingly, the number of units of cache server  300  may be prevented from repetitively increasing and decreasing, even if the distribution and is kept at almost constant level while repeating slight increase and decrease. 
     The increase and decrease of the distribution band of the content to be reproduced tend to repeat every predetermined period, and typically every 24 hours. Accordingly, a possibility that the maximum value of load applied to the distribution servers  200  exceeds an allowable value may be suppressed, by calculating the maximum value of the distribution band in every predetermined period (check period), and by comparing such a maximum value with the threshold values to thereby determine the number of units of cache server  300 , just like in this embodiment. 
     The content to be reproduced, which was necessary to increase the number of units of cache server  300  in a certain check period, is very likely to keep at a high level in terms of the number of distribution requests. Nevertheless, for some reason, there may be a case where the number of distribution requests may temporarily decrease. However, in this case, a process may be executed such as decreasing the number of units or cache server  300 , upon temporary decrease in the number of distribution requests, and then increasing the number of units of cache server  300  immediately thereafter. In contrast, the cache control unit  660  in this embodiment does not execute the processes for decreasing the number of units of cache server  300 , for a predetermined period after increasing the number of units of cache server  300 . Accordingly, the number of units of cache server  300  may be prevented from being increased or decreased so often, due to execution of the above-described processes. 
     On the other hand, the cache control unit  660  of the cache server control device  600  acquires the distribution loads respectively for the contents to be reproduced, and increases the number of units of cache server  300  necessary for caching the contents to be reproduced, if the acquired distribution loads were found to exceed the reference value. As a consequence, since the content distribution system may allow the cache servers  300  to store the contents to be reproduced, causing large distribution loads, even for the case where the bit rates are different depending on the contents to be reproduced, so that the contents to be reproduced may be distributed to the client terminals  20  in a stable manner. 
     The content information storage unit  610  of the cache server control device  600  stores the bit rates of the contents to be reproduced and the number of distribution requests of the contents to be reproduced, while correlating them with the content identification information, respectively for the plurality of contents to be reproduced. According the cache server control device  600  may readily acquire the distribution bands respectively for the contents to be reproduced. Note that the cache server control device  600  preliminarily acquires the number of reproduction requests of the contents to be reproduced from the access control device  500 . The number of distribution requests and the distribution bands may therefore be kept always at latest values. 
     In the cache server control device  600 , the threshold value of the distribution band is set in a multi-level manner. Accordingly, the cache server control device  600  may readily determine the necessary number of units of cache server  300 , by judging which level of the threshold value the distribution band exceeds. 
     In the process of increasing the number of units of cache server  300  for caching certain content to be reproduced, the cache control unit  660  of the cache server control device  600  selects the cache servers  300  in increasing order of load. Such loads may therefore be prevented from concentrating on specific cache servers  300   
     On the other hand, in the process of decrement lag the number of units of cache server  300  for caching certain content to be reproduced, the cache control unit  660  of the cache server control device  600  selects the cache servers  300  in decreasing order of load. Accordingly, the loads may further be prevented from concentrating on specific cache servers  300 . 
     Second Embodiment 
     A content distribution system of this embodiment is similar to the content distribution system of the first embodiment, except that the number of issuances of distribution request is used as information representing the distribution load of the contents to be reproduced. 
       FIG. 12  is a drawing illustrating, in a table form, a data configuration of the content information storage unit  610  in this embodiment. In the example illustrated in the drawing, the content information storage unit  610  is configured similarly to the content distribution system of the first embodiment, except that it does not store the bit rates and distribution bands. 
       FIG. 13  is a drawing illustrating, in a table form, a data configuration of a load information storage unit  630  in this embodiment. In the example illustrated in this drawing, the load information storage unit  630  stores the quantity of distribution, as the load information respectively for the cache servers  300 . 
     Effects similar to those in the first embodiment may be obtained also by this embodiment. Since there is no need of calculating the distribution bands, the cache server control device  600  may be simplified in the functions thereof, and therefore, the load of the cache server control device  600  may be reduced. 
     The embodiments of the present invention have been described referring to the attached drawings merely for exemplary purposes, while allowing adoption of various configurations other than those describe in the above. 
     It is apparent that the present invention is not limited to the above embodiments, which may be modified and changed without departing from the scope and spirit of the invention.