(57)【要約】【課題】従来のＣＤＮファイル配信技術の問題を改善してなるファイル配信システムを提供すること。【解決手段】マスターサーバ１及びエッジサーバ２を含む従来のＣＤＮファイル配信技術に対して、スーパーノード４を用いることにより、Ｐ２Ｐファイル配信技術を融合させる。特に、エッジサーバ２と対をなすスーパーノード４は、当該エッジサーバ２と外部記憶装置５を共有している。従って、設備投資の重複を抑制することができる。スーパーノード４は、ユーザからのファイルのダウンロード要求に応じて、該ファイルが外部記憶装置５内に存在するかどうか確認し、ファイルが外部記憶装置５に存在しない場合には従来のＣＤＮ技術を利用したファイル取得を行うようにユーザに通知し、ファイルが外部記憶装置５に存在する場合は、Ｐ２Ｐ技術を利用したファイル取得をユーザに行わせる。【選択図】図１
2009042944.tif 000002
【特許請求の範囲】
【請求項１】
マスターサーバ、エッジサーバ及びスーパーノードを備えるファイル配信システムであって、
前記エッジサーバと前記スーパーノードは、記憶装置を共有しており、
前記スーパーノードは、
ファイル要求ユーザからのファイルのダウンロード要求に応じて、該ファイルが前記記憶装置内に存在するかどうか確認し、
前記ファイルが前記記憶装置に存在する場合は、当該スーパーノードのアドレス情報及び既に前記ファイルを取得しているものとして登録されている既登録ユーザのアドレス情報が記載されたアドレスリストを前記ファイル要求ユーザに対して送信して、前記アドレスリストに記載された前記アドレス情報を用いた前記ファイルのダウンロードを前記ファイル要求ユーザに対して行わせる一方、前記アドレスリストに対して当該ファイル要求ユーザのアドレス情報を追加し、
前記ファイルが前記記憶装置に存在しない場合は、前記エッジサーバのアドレス情報を前記ファイル要求ユーザに対して送信して、前記エッジサーバを経由した前記ファイルのダウンロードを前記ファイル要求ユーザに対して行わせる一方、前記アドレスリストに対して当該ファイル要求ユーザのアドレス情報を追加するものであり、
前記エッジサーバは、前記ファイル要求ユーザからの要求に応じて、前記マスターサーバから前記ファイルをダウンロードし、前記ファイルを前記ファイル要求ユーザへ送信すると共に前記記憶装置に格納する、
ファイル配信システム。
【請求項２】
プロセッサ及び記憶装置を備えたシステムにおいて前記プロセッサに対して所定の処理を実行させるためのプログラムであって、
前記所定の処理は、
ファイル要求ユーザからのファイルのダウンロード要求に応じて、該ファイルが前記記憶装置内に存在するかどうか確認するステップと、
前記ファイルが前記記憶装置に存在する場合は、自己のアドレス情報及び既に前記ファイルを取得しているものとして登録されている既登録ユーザのアドレス情報が記載されたアドレスリストを前記ファイル要求ユーザに対して送信して、前記アドレスリストに記載された前記アドレス情報を用いた前記ファイル要求ユーザに対して行わせる一方、前記アドレスリストに対して当該ファイル要求ユーザのアドレス情報を追加するステップと、
前記ファイルが前記記憶装置に存在しない場合は、前記ファイル要求ユーザと関連付けられたエッジサーバのアドレス情報を前記ファイル要求ユーザに対して送信して、当該エッジサーバを経由した前記ファイルのダウンロードを前記ファイル要求ユーザに対して行わせる一方、前記アドレスリストに対して当該ダウンロード要求をしてきた前記ファイル要求ユーザのアドレス情報を追加するステップと
を備えるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットにおけるファイル配信技術に関する。
【背景技術】
【０００２】
インターネットにおけるファイル配信技術の一つとして、ＣＤＮ（Ｃｏｎｔｅｎｔｓ  Ｄｅｌｉｖｅｒｙ  Ｎｅｔｗｏｒｋ）という技術が提案されている（非特許文献１及び２参照）。これは、マスターサーバとクライアントとの間にキャッシュ的な役割を果たすエッジサーバ（キャッシュサーバ又はリバースプロキシサーバともいう）を設けることにより、クライアントサーバ方式のファイル配信技術におけるマスターサーバの負荷を低減するものである。
【０００３】
【非特許文献１】http://www.soi.wide.ad.jp/class/20020004/slides/06/
【非特許文献２】「ＣＤＮプロトコル入門  アクセス集中からＷｅｂを守る」  Scot Hull著，トップスタジオ訳，日経ＢＰ社発行
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のＣＤＮ技術によれば、専用に構成されたエッジサーバをユーザにとって物理的距離が近いネットワークに多数設置する必要があることから、エッジサーバが最寄りのネットワーク（プロバイダ）に設置されていないユーザは、ＣＤＮの効果が得られないという問題がある。
【０００５】
また、ＣＤＮではマスターサーバの負荷は軽減するものの、ＣＤＮ全体でみたユーザ端末からの総リクエスト数は従来と変わらないため、人気の高いファイルにアクセスが集中するとエッジサーバが高負荷になるという問題がある。即ち、エッジサーバとユーザ端末が属している小規模なネットワークにおいては、従来のクライアントサーバ方式の場合の問題と同種の問題が発生していることになる。
【０００６】
そこで、本発明は、上記の問題を改善してなるファイル配信システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上述した課題を解決する手段として、従来のＣＤＮ配信技術に対してＰ２Ｐ（ＰｅａｒＴｏＰｅａｒ）配信技術を組み合わせてなる新たな配信技術を提供する。
【０００８】
即ち、本発明によれば、マスターサーバ、エッジサーバ及びスーパーノードを備えるファイル配信システムであって、前記エッジサーバと前記スーパーノードは、記憶装置を共有しており、前記スーパーノードは、ファイル要求ユーザからのファイルのダウンロード要求に応じて、該ファイルが前記記憶装置内に存在するかどうか確認し、前記ファイルが前記記憶装置に存在する場合は、当該スーパーノードのアドレス情報及び既に前記ファイルを取得しているものとして登録されている既登録ユーザのアドレス情報が記載されたアドレスリストを前記ファイル要求ユーザに対して送信して、前記アドレスリストに記載された前記アドレス情報を用いた前記ファイルのダウンロードを前記ファイル要求ユーザに対して行わせる一方、前記アドレスリストに対して当該ファイル要求ユーザのアドレス情報を追加し、前記ファイルが前記記憶装置に存在しない場合は、前記エッジサーバのアドレス情報を前記ファイル要求ユーザに対して送信して、前記エッジサーバを経由した前記ファイルのダウンロードを前記ファイル要求ユーザに対して行わせる一方、前記アドレスリストに対して当該ファイル要求ユーザのアドレス情報を追加するものであり、前記エッジサーバは、前記ファイル要求ユーザからの要求に応じて、前記マスターサーバから前記ファイルをダウンロードし、前記ファイルを前記ファイル要求ユーザへ送信すると共に前記記憶装置に格納する、ファイル配信システムが得られる。
【０００９】
更に、本発明によれば、プロセッサ及び記憶装置を備えたシステムにおいて前記プロセッサに対して所定の処理を実行させるためのプログラムであって、前記所定の処理は、ファイル要求ユーザからのファイルのダウンロード要求に応じて、該ファイルが前記記憶装置内に存在するかどうか確認するステップと、前記ファイルが前記記憶装置に存在する場合は、自己のアドレス情報及び既に前記ファイルを取得しているものとして登録されている既登録ユーザのアドレス情報が記載されたアドレスリストを前記ファイル要求ユーザに対して送信して、前記アドレスリストに記載された前記アドレス情報を用いた前記ファイル要求ユーザに対して行わせる一方、前記アドレスリストに対して当該ファイル要求ユーザのアドレス情報を追加するステップと、前記ファイルが前記記憶装置に存在しない場合は、前記ファイル要求ユーザと関連付けられたエッジサーバのアドレス情報を前記ファイル要求ユーザに対して送信して、当該エッジサーバを経由した前記ファイルのダウンロードを前記ファイル要求ユーザに対して行わせる一方、前記アドレスリストに対して当該ダウンロード要求をしてきた前記ファイル要求ユーザのアドレス情報を追加するステップとを備えるプログラムが得られる。
【００１０】
更に、本発明において、例えば、前記エッジサーバを経由したファイルのダウンロードは、ＣＤＮ技術を利用するものとしても良い。
【００１１】
更に、本発明において、例えば、前記アドレスリストに記載されたアドレス情報を用いた前記ファイルのダウンロードは、Ｐ２Ｐ技術を利用するものとしても良い。
【発明の効果】
【００１２】
本発明によれば、ファイルを所有しているユーザが増えれば増えるほど、エッジサーバおよびスーパーノードの負荷は下がることになる。
【００１３】
また、ファイル提供者は、マスターサーバに対して１回のみファイルをアップロードするだけで済むので、ＣＤＮとＰ２Ｐを併用していることによるファイル提供者の手数・負担はＣＤＮだけを利用しているときと変わらない。
【００１４】
更に、外部記憶装置又は記憶装置をエッジサーバとＰ２Ｐ配信サーバ（スーパーノード）で共有することにより、外部記憶装置又は記憶装置に関して設備を二重に投資するといった無駄を避けることができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しつつ本発明による実施の形態について説明する。本実施の形態におけるファイル配信システムは、図１に示されるように、マスターサーバ１、エッジサーバ２並びにユーザ端末３，３ａ，３ｂ上でＣＤＮクライアントとして機能するＷｅｂブラウザ３１，３１ａ，３１ｂからなる従来のＣＤＮ配信技術を利用した構成（図１において点線で囲まれている）に加えて、スーパーノード４及び各ユーザ端末３，３ａ，３ｂ上に設けられたＰ２Ｐソフトウェア３２，３２ａ，Ｐ２Ｐソフトウェア３２ｂを備えている。本実施の形態において、各Ｐ２Ｐソフトウェア３２，３２ａ，３２ｂは、対応するＷｅｂブラウザ３１，３１ａ，３１ｂと連携可能なように構成されている。
【００１６】
スーパーノード４は、例えば図２に示されるようなスーパーノード端末１０上に具現化される。具体的には、スーパーノード端末１０は、互いにバス接続されたＣＰＵ１１、主記憶１２、補助記憶１３及び送受信部１４を備えている。このうち主記憶１２は例えばＤＲＡＭなどで構成されており、補助記憶１３は例えばＨＤＤなどで構成されている。補助記憶１３には、スーパーノード用プログラムが格納されている。スーパーノード用プログラムは、主記憶１２上に展開されＣＰＵ１１によって実行されることにより、スーパーノード端末１０を後述するスーパーノード４として機能させる。なお、主記憶１２上には、ＣＰＵ１１がプログラムに従って動作している間に生成したデータやＣＰＵ１１によって利用されるデータ（アドレスリスト４ａ等：後述）も一時的に格納される。送受信部１４はＣＰＵ１１の制御によりスーパーノード４とネットワークとの接続を確立する。
【００１７】
図１に示されるように、本実施の形態によるスーパーノード４はエッジサーバ２と外部記憶装置５を共有している。外部記憶装置を共有する方法しては、例えば、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）プロトコル等によるネットワークファイル共有や、ファイバーチャネル装置によるディスクアレイ装置の共有等が考えられる。なお、スーパーノード４とエッジサーバ２を同一のコンピュータシステム上に構築し、当該コンピュータシステムの記憶装置（ＨＤＤ装置など）を共有するものとしてもよい。
【００１８】
図３に示されるように、各ユーザ端末３，３ａ，３ｂは、ＣＰＵ２１、主記憶２２、補助記憶２３、送受信部２４、入出力（Ｉ／Ｏ）制御部２５及び表示部２６を備えている。補助記憶２３には、Ｗｅｂブラウザ３１，３１ａ，３１ｂ及びＰ２Ｐソフトウェア３２，３２ａ，３２ｂとして動作するプログラムが格納されている。これらのプログラムは、主記憶２２上に展開されＣＰＵ２１によって実行され、ＣＰＵ２１の制御の下、送受信部２４を介して、エッジサーバ２やスーパーノード４と通信を行う。また、各ユーザ端末３，３ａ，３ｂ上においては、前述したように、Ｗｅｂブラウザ３１，３１ａ，３１ｂとＰ２Ｐソフトウェア３２，３２ａ，３２ｂとの間でも通信が行われる。加えて、各ユーザ端末３，３ａ，３ｂ上においては、Ｗｅｂブラウザ３１，３１ａ，３１ｂとＰ２Ｐソフトウェア３２，３２ａ，３２ｂの動作状況等が、ＣＰＵ２１の制御の下、Ｉ／Ｏ制御部２５を介して、液晶ディスプレイ等の表示部２６上に表示される。
【００１９】
以下、本実施の形態によるファイル配信システム上の動作について、スーパーノード４の動作を中心に説明する。
【００２０】
図４に示されるように、スーパーノード４は、起動されるとユーザ端末３，３ａ，３ｂからファイルのダウンロード要求があるまで待機する（ステップＳ１）。ユーザ端末３，３ａ，３ｂからのダウンロード要求を受信すると（ステップＳ２）、当該ファイルが外部記憶装置５に格納されているかどうかを確認する（ステップＳ３）。当該ファイルが外部記憶装置５に格納されていない場合は、Ｐ２Ｐソフトウェア３，３ａ，３ｂに対しエッジサーバ２を経由した当該ファイルのダウンロードをするように指示を出す（ステップＳ４）。更に、アドレスリストへＰ２Ｐソフトウェア３，３ａ，３ｂのアドレス情報（例えば、ＩＰアドレスとポート番号のセット）を登録する（ステップＳ５）。なお、アドレスリストは、ダウンロード要求されるファイル毎に作成されるものであり、各アドレスリストには、当該ファイルを有している又は有しているものと推定される端末等のアドレス情報が登録される。
【００２１】
ここで、ステップＳ３においてダウンロード要求を受けたファイルが外部記憶装置５に存在していないと判断された場合におけるシステム全体の流れについて、ユーザ端末３のＰ２Ｐソフトウェア３２からダウンロード要求があったものとして、図５及び図６を用いて更に詳細に説明する。
【００２２】
図５及び図６に示されるように、Ｐ２Ｐソフトウェア３２がスーパーノード４に対してファイルのダウンロードを要求すると（シーケンスＳＱ１０）、ダウンロード要求を受けたスーパーノード４は、そのファイルが外部記憶装置５に格納されているかどうか確認する（ステップＳ３）。この例においては当該ファイルが外部記憶装置５に格納されていないため、スーパーノード４は、Ｐ２Ｐソフトウェア３２に対して、例えば、エッジサーバ２のアドレスを通知するなどして当該ファイルをエッジサーバ２からダウンロードせよとの指示を出す（シーケンスＳＱ１１）。
【００２３】
ここで、シーケンスＳＱ１１以降の処理が行われたとすると、スーパーノード４の管轄する外部記憶装置５及びユーザ端末３の記憶装置に当該ファイルが格納されることとなる。そこで、スーパーノード４は、Ｐ２Ｐソフトウェア３２に対してダウンロード要求を出す一方で、当該ファイルに関するアドレスリストを作成し、そのアドレスリストにスーパーノード４のアドレス情報（例えば、スーパーノード端末１０のＩＰアドレスとスーパーノード用プログラムに割り当てられたポート番号のセット）とＰ２Ｐソフトウェア３２のアドレス情報（例えば、ユーザ端末３のＩＰアドレスとＰ２Ｐソフトウェア３２に割り当てられたポート番号とのセット）を登録する。
【００２４】
スーパーノード４からの指示を受けたＰ２Ｐソフトウェア３２は、例えば、エッジサーバ２のアドレスを元に当該ファイルのＵＲＬをＷｅｂブラウザに通知するなどして、Ｗｅｂブラウザ３１に対して当該ファイルのダウンロード指示を行う（シーケンスＳＱ１２）。当該指示を受けたＷｅｂブラウザ３１は、エッジサーバ２に対して、ファイル取得リクエストを送信する（シーケンスＳＱ１３）。リクエストを受けたエッジサーバ２は、マスターサーバ１に対してファイル取得リクエストを送信し、マスターサーバ１から当該ファイルを取得する（シーケンスＳＱ１４、ＳＱ１５）。エッジサーバ２は、マスターサーバ１から当該ファイルを取得すると、外部記憶装置５にそのファイルを格納する（ステップＳ１１）と共にＷｅｂブラウザ３１に対して、当該ファイルを送信する（シーケンスＳＱ１６）。このようにして、ユーザ端末３によるファイル取得が行われる。
【００２５】
一方、図４のステップＳ３において当該ファイルが外部記憶装置５に格納されていると判断された場合、スーパーノード４は、Ｐ２Ｐソフトウェア３，３ａ，３ｂに対して、アドレスレスリストを送信し（ステップＳ６）、そのＰ２Ｐソフトウェア３，３ａ，３ｂのアドレス情報をアドレスリストへ登録する（ステップ７）。このスーパーノード４からＰ２Ｐソフトウェア３，３ａ，３ｂへのアドレスリストの送信により、Ｐ２Ｐソフトウェア３，３ａ，３ｂはアドレスリストに記載されたアドレス情報に基づいたファイル取得を行う。即ち、エッジサーバ２へのアクセスは生じない。従って、本実施の形態によれば、エッジサーバ２への負荷は著しく軽減される。
【００２６】
以下、ステップＳ３においてダウンロード要求を受けたファイルが外部記憶装置５に存在していた場合におけるシステム全体の流れについて、ユーザ端末３ａのＰ２Ｐソフトウェア３２ａからダウンロード要求があったものとして、図７及び図８を用いて更に詳細に説明する。なお、この例においては、ユーザ端末３ａのＰ２Ｐソフトウェア３２ａからのダウンロード要求の前に、ユーザ端末３のＰ２Ｐソフトウェア３２によるダウンロード要求が行われており、それによって、Ｐ２Ｐソフトウェア３２のアドレス情報を含むアドレスリストが作成されているものとする。
【００２７】
図７及び図８に示されるように、Ｐ２Ｐソフトウェア３２ａがスーパーノード４に対してファイルのダウンロードを要求すると（シーケンスＳＱ２０）、ダウンロード要求を受けたスーパーノード４は、そのファイルが外部記憶装置５に格納されているかどうか確認する（ステップＳ３）。この例においては当該ファイルが既に外部記憶装置５に格納されているため、スーパーノード４は、Ｐ２Ｐソフトウェア３２ａに対してアドレスリスト４ａを送信する（シーケンスＳＱ２１）。その後、スーパーノード４は、当該ファイルに関するアドレスリスト４ａに対して、Ｐ２Ｐソフトウェア３２ａのアドレス情報を追加登録する。このようにして、スーパーノード４に対するファイルダウンロード要求がなされる度に、ダウンロード要求をしてきたＰ２Ｐソフトウェアのアドレス情報が関連するアドレスリストに随時追加されていくことから、人気の高いファイルのように頻繁にダウンロード要求がなされるようなファイルに関しては、多くのアドレス情報が登録されることとなる。従って、スーパーノード４の負荷も分散されることとなる。
【００２８】
シーケンスＳＱ２１においてＰ２Ｐソフトウェア３２ｂに対して送られたアドレスリスト４ａには、前述したように、少なくともスーパーノード４のアドレス情報とＰ２Ｐソフトウェア３２のアドレス情報とが登録されている。従って、Ｐ２Ｐソフトウェア３２ａは、受信したアドレスリスト４ａに記載されたアドレス情報に従ってスーパーノード１及びＰ２Ｐソフトウェア３２に対して、ダウンロード要求を送信し（シーケンスＳＱ２２及びＳＱ２２′）、スーパーノード１及びＰ２Ｐソフトウェア３２から当該ファイルを取得する（シーケンスＳＱ２３及びＳＱ２３′）。仮に、Ｐ２Ｐソフトウェア３２ａからスーパーノード４に対するダウンロード要求の前に、ユーザ端末３ｂのＰ２Ｐソフトウェア３２ｂからのダウンロード要求がなされていたとすると、Ｐ２Ｐソフトウェア３２ａがスーパーノード４にダウンロード要求したことによりＰ２Ｐソフトウェア３２ａに対して送られてくるアドレスリストには、Ｐ２Ｐソフトウェア３２ｂのアドレス情報も登録されていることになる。そのような場合、Ｐ２Ｐソフトウェア３２ａは、スーパーノード４及びＰ２Ｐソフトウェア３２に対してダウンロード要求をする（シーケンスＳＱ２２及びＳＱ２２′）と共に、Ｐ２Ｐソフトウェア３２ｂに対してもダウンロード要求を送信し（シーケンスＳＱ２２″）、Ｐ２Ｐソフトウェア３２ｂからも当該ファイルの取得を行う（シーケンスＳＱ２３″）。
【００２９】
以上説明したことから明らかなように、ダウンロード要求のあったファイルを所有しているユーザが増えれば増えるほど、当該ファイルを新たに取得しようとするユーザにとってファイル取得可能な相手が増えることとなることから、スーパーノード４の負荷は下がることになる。
【００３０】
なお、Ｐ２Ｐソフトウェア３２，３２ａ，３２ｂからスーパーノード４へのアクセスは、ユーザの明示指定により開始されるものとしてもよいし、Ｐ２Ｐソフトウェア３２，３２ａ，３２ｂをＷｅｂブラウザ３１，３１ａ，３１ｂのプラグインとし、Ｗｅｂブラウザ３１，３１ａ，３１ｂを用いてファイルを取得しようとする過程で自動的に行われるものとしてもよい。後者の場合、Ｗｅｂブラウザ３１，３１ａ，３１ｂにより例えばコンテンツカタログサイトなどをアクセスした際に、当該サイトから図９に示されるようなスクリプトを含むｈｔｍｌファイルをＷｅｂブラウザ３１，３１ａ，３１ｂに送信して、ユーザ端末３，３ａ，３ｂにＰ２Ｐソフトウェアがインストールされているかを判別し、Ｐ２Ｐソフトウェアのインストール状況によって適切なサイトに導くこととすればよい。
【００３１】
以上、具体的な実施の形態を掲げて本発明によるファイル配信システムについて説明してきたが、本発明は上述した実施の形態に限定されるものではない。例えば、図１においてはエッジサーバ２とスーパーノード４のペアを一つのみ示してあるが、当然のことながら、エッジサーバ２とスーパーノード４のペアが複数あってもよい。また、従来のＣＤＮ技術との併存併用という観点から、スーパーノードとペアをなさないエッジサーバがマスターサーバ１に接続されていてもよい。加えて、それらエッジサーバやスーパーノードにそれぞれ接続されるユーザ端末が更に存在していてもよい。更に、上述した実施の形態においては、ＣＤＮクライアントとしてＷｅｂブラウザを用いた例について説明したが、本発明を実現する上では、他のソフトウェアをＣＤＮクライアントとしてもよいし、Ｐ２ＰソフトウェアにＣＤＮクライアントの機能を組み込んでもよい。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施の形態によるファイル配信システムを示す図である。
【図２】本発明の実施の形態によるスーパーノード端末の構成を示す図である。
【図３】本発明の実施の形態によるユーザ端末の構成を示す図である。
【図４】本発明の実施の形態によるスーパーノードの動作を示すフローチャートである。
【図５】本発明の実施の形態によるファイル取得の手順を示す図である。
【図６】図５に示されるファイル手順の説明を補足するための図である。
【図７】本発明の実施の形態によるファイル取得の他の手順を示す図である。
【図８】図７に示されるファイル手順の説明を補足するための図である。
【図９】Ｐ２Ｐソフトウェアのインストール状況に応じた連携をＷｅｂブラウザに行わせるためのスクリプトの一例を示す図である。
【符号の説明】
【００３３】
１        マスターサーバ
２        エッジサーバ
３，３ａ，３ｂ        ユーザ端末
３１，３１ａ，３１ｂ        Ｗｅｂブラウザ
３２，３２ａ，３２ｂ        Ｐ２Ｐソフトウェア
４        スーパーノード
５        外部記憶装置
【図１】
2009042944.tif 000003
【図２】
2009042944.tif 000004
【図３】
2009042944.tif 000005
【図４】
2009042944.tif 000006
【図５】
2009042944.tif 000007
【図６】
2009042944.tif 000008
【図７】
2009042944.tif 000009
【図８】
2009042944.tif 000010
【図９】
2009042944.tif 000011