JP2004185263A - 分散協調型コンテンツ配信システム - Google Patents
分散協調型コンテンツ配信システム Download PDFInfo
- Publication number
- JP2004185263A JP2004185263A JP2002350697A JP2002350697A JP2004185263A JP 2004185263 A JP2004185263 A JP 2004185263A JP 2002350697 A JP2002350697 A JP 2002350697A JP 2002350697 A JP2002350697 A JP 2002350697A JP 2004185263 A JP2004185263 A JP 2004185263A
- Authority
- JP
- Japan
- Prior art keywords
- content
- client device
- public key
- server
- key certificate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】コンテンツが不定期に変わる環境下であってもコンテンツ配信サーバへの負荷を軽減することができ、クライアント装置のキャッシュに格納されているコンテンツが不正に変更されていないかどうかを確認することができ、他のクライアント装置からはクライアント装置のキャッシュ記憶装置にだけしかアクセスすることができないようにする。
【解決手段】コンテンツ12及び該コンテンツ12を特定する固有情報を配信するコンテンツ配信サーバ11と、取得した前記コンテンツ12を格納するキャッシュ記憶装置21を備えるクライアント装置20と、前記コンテンツ12のそれぞれに対応する固有情報及びクライアント装置20に関するデータを格納するキャッシュインデックスデータベース19を備えたキャッシュインデックスサーバ17とを有する。
【選択図】 図1
【解決手段】コンテンツ12及び該コンテンツ12を特定する固有情報を配信するコンテンツ配信サーバ11と、取得した前記コンテンツ12を格納するキャッシュ記憶装置21を備えるクライアント装置20と、前記コンテンツ12のそれぞれに対応する固有情報及びクライアント装置20に関するデータを格納するキャッシュインデックスデータベース19を備えたキャッシュインデックスサーバ17とを有する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、分散協調型コンテンツ配信システムに関するものである。
【0002】
【従来の技術】
従来、ブラウザ(browser)機能を装備したパーソナルコンピュータ等の情報端末からインターネットに接続されたウェブ(web)サーバにアクセス(訪問)することによって、該ウェブサーバ内に開設されたウェブサイトの格納された画像、音声等の各種のコンテンツを利用することができるようになっている。そして、近年では、インターネットの利用拡大に伴い、前記コンテンツを格納しているウェブサーバとしてのコンテンツ配信サーバへのアクセスが増加している。ところが、前記コンテンツ配信サーバへのアクセスが増加すると、前記コンテンツ配信サーバがコンテンツを配信するための負荷が大きくなるので、前記コンテンツ配信サーバへのアクセスが困難になり、前記コンテンツを取得するために時間がかかったり、コンテンツの取得が不可能になったりしてしまう。
【0003】
そこで、前記コンテンツ配信サーバの負荷を軽減するために、前記コンテンツの内容を一時的に格納するキャッシュサーバを利用する技術が提供されている。
さらに、前記キャッシュサーバの負荷を軽減するために、該キャッシュサーバを更に分散させる技術も提供されている(例えば、特許文献1〜3参照。)。
【0004】
【特許文献1】特表2001−511551号公報
【0005】
【特許文献2】特開平10−222412号公報
【0006】
【特許文献3】特開平10−222449号公報
【0007】
【発明が解決しようとする課題】
しかしながら、前記従来のシステムにおいては、情報端末からのアクセスが増加するとキャッシュサーバの負荷が大きくなり、該キャッシュサーバからコンテンツを取得するために時間がかかったり、コンテンツの取得が不可能になったりしてしまう。もっとも、前記キャッシュサーバの台数を増やすことによって、各キャッシュサーバの負荷を軽減することは可能であるが、コストや管理面での負担が大きくなってしまう。
【0008】
そこで、コンテンツを一時的に保存するキャッシュ機能をクライアント装置としての情報端末に持たせ、コンテンツを配信する代わりに一時的にコンテンツを格納するキャッシュ記憶装置としてのキャッシュのありかを示すキャッシュインデックスを配信するキャッシュインデックスサーバを使用する分散協調型コンテンツ配信システムとすることが考えられる。この場合、ある情報端末からコンテンツの配信要求が送信されると、前記キャッシュインデックスサーバは前記コンテンツのキャッシュインデックスを返信する。そして、前記情報端末は、キャッシュインデックスに従って、前記コンテンツが保存されている情報端末に直接アクセスして前記コンテンツを取得する。なお、それぞれに格納されているコンテンツを情報端末同士が直接アクセスして取得する技術は、一般的にPtoP(ピアツウピア又はP2P:Peer to Peer)と呼ばれている。
【0009】
しかし、前記分散協調型コンテンツ配信システムにおいては、コンテンツの内容が不定期に変更される場合、コンテンツ配信サーバへのアクセスが増加するので前記コンテンツ配信サーバの負荷が増大してしまう。また、情報端末のキャッシュに格納されているコンテンツが不正に変更されてしまう恐れがある。さらに、情報端末同士が直接アクセスするので、情報端末に保存されているプライベートな情報が他の情報端末によって取得されてしまう恐れがある。
【0010】
本発明は、前記従来の分散協調型コンテンツ配信システムの問題点を解決して、コンテンツが不定期に変わる環境下であってもコンテンツ配信サーバへの負荷を軽減することができ、クライアント装置のキャッシュに格納されているコンテンツが不正に変更されていないかどうかを確認することができ、他のクライアント装置からはクライアント装置のキャッシュ記憶装置にだけしかアクセスすることができない分散協調型コンテンツ配信システムを提供することを目的とする。
【0011】
【課題を解決するための手段】
そのために、本発明の分散協調型コンテンツ配信システムにおいては、コンテンツ及び該コンテンツを特定する値を配信するコンテンツ配信サーバと、取得した前記コンテンツを格納するキャッシュ記憶装置を備えるクライアント装置と、前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバとを有する。
【0012】
本発明の他の分散協調型コンテンツ配信システムにおいては、さらに、一のクライアント装置は、前記コンテンツ配信サーバから所定のコンテンツに対応する固有情報を取得し、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する。
【0013】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、コンテンツ、該コンテンツを特定する固有情報、公開鍵(かぎ)暗号方式によって求めたコンテンツ署名値、及び、公開鍵を第三者が保証した公開鍵証明書を配信するコンテンツ配信サーバと、取得した前記コンテンツを格納するキャッシュ記憶装置及び取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備えるクライアント装置と、前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバと、前記公開鍵証明書の有効性の検証を行う公開鍵証明書検証サーバとを有する。
【0014】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、一のクライアント装置は、所定のコンテンツ配信サーバの公開鍵証明書を格納していない場合、該公開鍵証明書を前記コンテンツ配信サーバから取得し、前記公開鍵証明書の有効性検証の依頼を前記公開鍵証明書サーバに送信し、該公開鍵証明書サーバは前記公開鍵証明書の検証結果を前記一のクライアント装置に送信し、該一のクライアント装置は、前記公開鍵証明書が有効である場合、該公開鍵証明書を格納し、該公開鍵証明書から公開鍵を取得し、前記コンテンツ配信サーバから所定のコンテンツのコンテンツ署名値を取得し、前記公開鍵に基づいて前記コンテンツ署名値から前記所定のコンテンツの固有情報を求め、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する。
【0015】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、コンテンツ、該コンテンツを特定する固有情報、公開鍵暗号方式によって求めたコンテンツ署名値、及び、公開鍵を第三者が保証した公開鍵証明書を配信するコンテンツ配信サーバと、取得した前記コンテンツを格納するキャッシュ記憶装置及び取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備えるクライアント装置と、前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバと、取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備え、前記公開鍵証明書の取得、保管及び有効性の検証を行う公開鍵証明書検証サーバとを有する。
【0016】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、一のクライアント装置は、前記公開鍵の配信要求を公開鍵証明書管理検証サーバに送信し、該公開鍵証明書サーバは前記公開鍵の取得及び検証を行い、有効な公開鍵を前記一のクライアント装置に送信し、該一のクライアント装置は、前記コンテンツ配信サーバから所定のコンテンツのコンテンツ署名値を取得し、前記公開鍵に基づいて前記コンテンツ署名値から前記所定のコンテンツの固有情報を求め、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する。
【0017】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記クライアント装置は、取得したコンテンツが真であることが判定された後に、前記コンテンツを前記キャッシュ記憶装置に格納する。
【0018】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記クライアント装置は、前記コンテンツの名称、種類等に応じて前記コンテンツを前記キャッシュ記憶装置に格納する。
【0019】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、一のクライアント装置が要求する所定のコンテンツを格納する他のクライアント装置が複数である場合、該他のクライアント装置の一覧を所定のアルゴリズムに従って並べ替えた一覧を前記一のクライアント装置に送信し、前記一のクライアント装置は、前記並べ替えた一覧の順番にコンテンツの取得を試みる。
【0020】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、前記クライアント装置の要求に従って、キャッシュインデックスデータベースの中から所定の情報を削除する。
【0021】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記クライアント装置は、キャッシュ記憶装置が格納するコンテンツの記憶量が前記クライアント装置の管理者が定めた条件を超えた場合に要求を前記キャッシュインデックスサーバに送信する。
【0022】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記クライアント装置は、前記キャッシュインデックスサーバの要求に従って、キャッシュ記憶装置からコンテンツを削除する。
【0023】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、定期的にキャッシュインデックスデータベースの利用頻度を調べ、利用頻度が低いコンテンツを削除する要求を送信する。
【0024】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、キャッシュされたデータ量が定めた条件を超えた場合に利用頻度が低いコンテンツを削除する要求を送信する。
【0025】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、名称、種類等が同じ登録済のコンテンツのうち固有情報がより古いコンテンツを削除する要求を送信する。
【0026】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、一のクライアント装置が要求する所定のコンテンツを格納する他のクライアント装置がキャッシュインデックスデータベースに含まれていない場合、他のキャッシュインデックスサーバに問い合わせる。
【0027】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記固有情報は、ハッシュ値である。
【0028】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【0029】
図1は本発明の第1の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【0030】
図に示されるように、本実施の形態における分散協調型コンテンツ配信システム10はウェブサーバとしてのコンテンツ配信サーバ11a及びコンテンツ配信サーバ11bを有する。なお、コンテンツ配信サーバは単数であっても複数であってもよく、その数は任意であるが、本実施の形態においては、説明の都合上、コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bがすべてのコンテンツ配信サーバを代表する。なお、コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bを統合的に説明する場合には、コンテンツ配信サーバ11として説明する。ここで、該コンテンツ配信サーバ11は、CPU、MPU等の演算手段、磁気ディスク、半導体メモリ等の記憶手段、通信インターフェイス等を備えるコンピュータである。なお、前記コンテンツ配信サーバ11は、独立して存在するものであってもよいし、他の大型コンピュータ等の装置の一部であってもよいし、複数のサーバが有機的に結合した分散型サーバであってもよい。
【0031】
そして、前記コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bは、記憶手段に、それぞれ、コンテンツ12a及びコンテンツ12b、該コンテンツ12a及びコンテンツ12bを特定するハッシュ値13a及びハッシュ値13b等のデータを格納し、外部からの要求に応じて前記データを配信する。ここで、前記コンテンツ12a及びコンテンツ12bは、例えば、ウェブページ、文字データ、音楽等の音声データ、ビデオ、写真等の画像データ、ソフトウェア等であるが、いかなる種類のものであってもよい。また、前記コンテンツ12a及びコンテンツ12bは、単数であっても複数であってもよく、その数は任意である。そして、前記ハッシュ値13a及びハッシュ値13bは前記コンテンツ12a及びコンテンツ12bのそれぞれに対応する。なお、コンテンツ12a及びコンテンツ12b、並びに、ハッシュ値13a及びハッシュ値13bを統合的に説明する場合には、コンテンツ12及びハッシュ値13として説明する。
【0032】
ところで、ハッシュ値13は、入力されたデータを元にハッシュ関数によって生成される疑似乱数であり、元データに対して一意に定まる固定長データである。この場合、元データが1ビットでも改変されると、生成されるハッシュ値13は異なったものになる。そして、元データがデータ量の多いコンテンツであっても、ハッシュ値13はデータ量が少ない固定長データである。データの改ざんを防止するためのデジタル署名は、通常、公開鍵暗号技術とハッシュ関数の組合せで実現される。一般に利用されるハッシュ関数としては、MD2、MD5、SHA1等がある。
【0033】
また、14は外部ネットワークとしてのインターネットであるが、いかなる種類のネットワークであってもよく、例えば、LAN(Local Area Network)、WAN(Wide Area Network)等であってもよい。そして、前記コンテンツ配信サーバ11は、インターネット14に接続され、該インターネット14を経由して、前記コンテンツ12、ハッシュ値13等のデータを配信することができる。
【0034】
なお、16は内部ネットワークとしてのイントラネットであり、キャッシュインデックスサーバ17、クライアント装置20a、クライアント装置20b等が接続されている。そして、前記イントラネット16はルータ15を介して前記インターネット14に接続されている。ここで、前記ルータ15は、イントラネット16に接続された装置同士の通信データをインターネット14に出さず、また、イントラネット16に接続された装置とインターネット14に接続された装置との間の通信データを、適切な経路を選択して中継する役割を担う。なお、前記ルータ15は、一般的にルータ装置と呼ばれているものである。
【0035】
ここで、クライアント装置は単数であっても複数であってもよく、その数は任意であるが、本実施の形態においては、説明の都合上、クライアント装置20a及びクライアント装置20bがすべてのクライアント装置を代表する。なお、クライアント装置20a及びクライアント装置20bを統合的に説明する場合には、クライアント装置20として説明する。そして、該クライアント装置20は、CPU、MPU等の演算手段、磁気ディスク、半導体メモリ等の記憶手段、CRT、液晶ディスプレイ等の表示手段、通信インターフェイス等を備えるコンピュータであり、例えば、パーソナルコンピュータ等の情報端末であるが、いかなる種類のものであってもよい。なお、前記クライアント装置20a及びクライアント装置20bは、ダウンロードしたコンテンツ12を格納するキャッシュとして機能するものであり、キャッシュ記憶装置21a及びキャッシュ記憶装置21bをそれぞれ備える。ここで、該キャッシュ記憶装置21a及びキャッシュ記憶装置21bは、クライアント装置20a及びクライアント装置20bの記憶手段の一部であってもよいし、いわゆる外付けのハードディスク装置等の外部記憶手段の全部又は一部であってもよい。なお、キャッシュ記憶装置21a及びキャッシュ記憶装置21bを統合的に説明する場合には、キャッシュ記憶装置21として説明する。本実施の形態において、前記クライアント装置20がコンテンツ配信サーバ11にアクセスしてダウンロードしたコンテンツ12は前記キャッシュ記憶装置21に一時的に格納される。
【0036】
また、前記キャッシュインデックスサーバ17は、CPU、MPU等の演算手段、磁気ディスク、半導体メモリ等の記憶手段、通信インターフェイス等を備えるコンピュータであり、独立して存在するものであってもよいし、他の大型コンピュータ等の装置の一部であってもよいし、複数のサーバが有機的に結合した分散型サーバであってもよい。そして、前記キャッシュインデックスサーバ17は、前記コンテンツ配信サーバ11から取得したコンテンツ12のキャッシュとして機能する前記クライアント装置20の名前等のキャッシュインデックスデータを一元管理するものであり、キャッシュインデックスデータベース19を備える。ここで、該キャッシュインデックスデータベース19は、キャッシュインデックスサーバ17の記憶手段の一部であってもよいし、いわゆる外付けのハードディスク装置等の外部記憶手段の全部又は一部であってもよい。本実施の形態において、前記キャッシュインデックスサーバ17は、コンテンツ12の配信要求に応じて前記コンテンツ12のキャッシュインデックスを返信する。
【0037】
次に、前記キャッシュインデックスデータベース19の内容について説明する。
【0038】
図2は本発明の第1の実施の形態におけるキャッシュインデックスデータベースの内容を示す図である。
【0039】
図に示されるように、キャッシュインデックスデータベース19には、キャッシュインデックスデータとして、コンテンツ名(例えば、URL(Uniform Resource Locator)名)、ハッシュ関数としてのハッシュアルゴリズム、ハッシュ値13、コンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名(例えば、クライアント装置20のIPアドレスやホスト名)、コンテンツ12をキャッシュ記憶装置21に格納した日時としての登録日時、コンテンツ12の通算利用回数等の情報が格納されている。なお、前記コンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名は、複数のクライアント装置20の名称が含まれていてもよい。
【0040】
次に、前記構成の分散協調型コンテンツ配信システム10の動作について説明する。
【0041】
まず、クライアント装置20a及びクライアント装置20bがコンテンツ12を取得するまでの動作について説明する。
【0042】
図3は本発明の第1の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示す第1のフローチャート、図4は本発明の第1の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示す第2のフローチャートである。
【0043】
この場合、今からコンテンツ12を取得するクライアント装置20a、既にキャッシュを保持しているクライアント装置20b、前記クライアント装置20a及びクライアント装置20bを含むイントラネット16に接続されている各クライアント装置20のキャッシュインデックスデータを一元管理しているキャッシュインデックスサーバ17、並びに、コンテンツ12及びハッシュ値13を格納したコンテンツ配信サーバ11の間での処理の流れを示す。
【0044】
まず、クライアント装置20aは、取得したいコンテンツ12に対応するハッシュ値13の配信要求をコンテンツ配信サーバ11に送信する。
【0045】
次に、コンテンツ配信サーバ11は、クライアント装置20aにハッシュ値13及びハッシュアルゴリズムを送信する。前記ハッシュ値13をあらかじめハッシュ関数としてのハッシュアルゴリズムによって求めておくと、ハッシュ値13はデータ量が少なく送信する時間が短いので、前記コンテンツ配信サーバ11が一つのクライアント装置20aに対して応対する時間が短くなり、極めて短時間に処理を済ませることができる。すなわち、該処理でのコンテンツ配信サーバ11の負担は軽微なものになる。
【0046】
続いて、前記クライアント装置20aは、前記コンテンツ12と同じ名称、種類等のコンテンツ12で、かつ、ハッシュ値13が同じものが自身のキャッシュ記憶装置21aに格納されているか否かを確認し、該キャッシュ記憶装置21aに格納されている場合は、前記コンテンツ12をブラウザ機能によって表示手段上に表示(又は動作)させる。
【0047】
また、前記キャッシュ記憶装置21aに格納されていない場合、前記クライアント装置20aは、キャッシュインデックスサーバ17に、前記コンテンツ12と同じ名称で、かつ、ハッシュ値13が同じものが他のクライアント装置20内に登録されているか否かの確認を要求する存在確認要求をキャッシュインデックスサーバ17に送信する。
【0048】
そして、該キャッシュインデックスサーバ17は前記存在確認要求を受信すると、自身のキャッシュインデックスデータベース19に前記コンテンツ12と同じ名称で、かつ、ハッシュ値13が同じものが登録されているか否かを検索する。そして、登録されている場合、キャッシュインデックスサーバ17は、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名をクライアント装置20aに返信する。また、登録されていない場合、登録されていない旨をクライアント装置20aに返信する。なお、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置が複数ある場合は、すべてのクライアント装置名を返信してもよいが、この場合の返信の方法については後述される。このように、前記キャッシュインデックスサーバ17は、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名を返信するだけなので、クライアント装置20aに対して応対する時間が短くなり、極めて短時間に処理を済ませることができる。すなわち、該処理でのキャッシュインデックスサーバ17の負担は軽微なものになる。
【0049】
次に、クライアント装置20aは、キャッシュインデックスサーバ17から該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名を受信した場合、該クライアント装置としてのクライアント装置20bが起動しているか否かを判断する。この場合、例えば、ICMP(InternetControl Message Protocol:RFC792/RFC1812)と呼ばれるインターネットプロトコルを用いることによって、前記クライアント装置20bが起動しているか否かを判断することができる。
【0050】
そして、前記クライアント装置20bが起動している場合、クライアント装置20aは、前記クライアント装置20bに対してキャッシュ記憶装置21bに格納されている前記コンテンツ12の配信要求を送信する。続いて、前記クライアント装置20bはキャッシュ記憶装置21bに格納されている前記コンテンツ12をクライアント装置20aに配信する。
【0051】
続いて、クライアント装置20aは、クライアント装置20bから受信したコンテンツ12のハッシュ値13を求め、コンテンツ配信サーバ11から取得したハッシュ値13と比較して前記コンテンツ12の真偽判定を行う。そして、両方のハッシュ値13が一致した場合は、クライアント装置20bから受信したコンテンツは真である、すなわち、前記コンテンツ12であるので、該コンテンツ12を出力する、すなわち、ブラウザ機能によって表示手段上に表示(又は動作)させる。
【0052】
また、前記コンテンツ12と同じ名称で、かつ、ハッシュ値13が同じものが他のクライアント装置20内に登録されていない場合、前記クライアント装置20bが起動していない場合、及び、両方のハッシュ値13が一致しない場合、クライアント装置20aはコンテンツ配信サーバ11に対してコンテンツ12の配信要求を送信する。続いて、前記コンテンツ配信サーバ11はコンテンツ12をクライアント装置20aに送信する。なお、コンテンツ12の表示の処理が完全に終わってから次の処理を行う必要はないので、コンテンツ12の表示の処理とそれ以降の処理は並行して行ってもよい。
【0053】
次に、クライアント装置20aは、クライアント装置20b又はコンテンツ配信サーバ11から受信したコンテンツ12を表示すると、該コンテンツ12を自身のキャッシュ記憶装置21aに格納するか否かをあらかじめ設定された条件に従って判断する。この処理内容の詳細については後述する。
【0054】
そして、前記条件を満たしている場合、クライアント装置20aは、キャッシュインデックスサーバ17にハッシュ値13及びハッシュアルゴリズムを送信してコンテンツ12の登録申請を行う。続いて、登録申請を受けたキャッシュインデックスサーバ17は、キャッシュインデックスデータベース19に追加登録を行う。なお、既にコンテンツ12と同じ名称のコンテンツが登録されていても、それぞれのハッシュ値が異なる場合、キャッシュインデックスサーバ17は、コンテンツ12が更新されたものであると判断して、既に登録されているコンテンツに関するデータを削除することもできる。
【0055】
続いて、クライアント装置20aはコンテンツ12をキャッシュ記憶装置21aに格納し、一連の処理を終了する。
【0056】
次に、フローチャートについて説明する。
ステップS1 クライアント装置20aは、取得したいハッシュ値13の配信要求をコンテンツ配信サーバ11に送信する。
ステップS2 コンテンツ配信サーバ11は、クライアント装置20aに対してハッシュ値13及びハッシュアルゴリズムを送信する。
ステップS3 クライアント装置20aは、該当するコンテンツ12で、かつ、ハッシュ値13が同じものが自身のキャッシュ記憶装置21a内にあるか否かを判断する。キャッシュ記憶装置21a内にある場合はステップS4に進み、キャッシュ記憶装置21a内にない場合はステップS5に進む。
ステップS4 クライアント装置20aは、コンテンツ12をブラウザ等に表示(又は動作)させる。
ステップS5 クライアント装置20aは、キャッシュインデックスサーバ17に対して該当するコンテンツ12で、かつ、ハッシュ値13が同じものが他のクライアント装置20内に登録されているか否かの存在確認要求を送信する。
ステップS6 キャッシュインデックスサーバ17は、該当するコンテンツ12がキャッシュインデックスデータベース19に登録されているか否かを判断する。登録されている場合はステップS7に進み、登録されていない場合はステップS8に進む。
ステップS7 キャッシュインデックスサーバ17は、該当するコンテンツ12をキャッシュに保存しているクライアント装置名をクライアント装置20aに対して送信する。
ステップS8 キャッシュインデックスサーバ17は、登録なしをクライアント装置20aに対して送信する。
ステップS9 クライアント装置20aは、該当するコンテンツ12を保持するクライアント装置20bが起動しているか否かを判断する。該当するコンテンツ12を保持するクライアント装置20bが起動している場合はステップS10に進み、該当するコンテンツ12を保持するクライアント装置20bが起動していない場合はステップS14に進む。
ステップS10 クライアント装置20aは、キャッシュ記憶装置21bに格納されているコンテンツ12の配信要求を送信する。。
ステップS11 クライアント装置20bは、キャッシュ記憶装置21bに保持しているコンテンツ12をクライアント装置20aに対して送信する。
ステップS12 クライアント装置20aは、受信したハッシュ値13を検査する。
ステップS13 クライアント装置20aは、ハッシュ値13が一致するか否かを判断する。一致する場合はステップS16に進み、一致しない場合はステップS14に進む。
ステップS14 クライアント装置20aは、コンテンツ配信サーバ11に対してコンテンツ12の送信要求を行う。
ステップS15 コンテンツ配信サーバ11は、コンテンツ12をクライアント装置20aに対して送信する。
ステップS16 クライアント装置20aは、受信したコンテンツ12を表示(又は動作)させる。
ステップS17 クライアント装置20aは、コンテンツ12がキャッシュ記憶装置21aに保存する条件を満たしているか否かを判断する。条件を満たしている場合はステップS18に進み、条件を満たしていない場合は処理を終了する。
ステップS18 クライアント装置20aは、キャッシュインデックスサーバ17に対してコンテンツ12の登録申請を行う。
ステップS19 キャッシュインデックスサーバ17は、キャッシュインデックスデータベース19に追加登録する。
ステップS20 クライアント装置20aは、コンテンツ12をキャッシュ記憶装置21aに格納し、処理を終了する。
【0057】
次に、同じコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置20が複数ある場合について説明する。
【0058】
この場合、キャッシュインデックスサーバ17は、あるクライアント装置20が要求する所定のコンテンツ12を格納する他のクライアント装置20が複数である場合、該他のクライアント装置20の一覧を所定のアルゴリズムに従って並べ替えた一覧を前記クライアント装置20に送信し、該クライアント装置20は、前記並べ替えた一覧の順番にコンテンツ12の取得を試みるようになっている。すなわち、ステップS6において、キャッシュインデックスデータベース19に該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置20が複数登録されている場合、キャッシュインデックスサーバ17は、クライアント装置20aに送信するクライアント装置名の一覧をランダムに並べ替えたり、毎回規則的にずらした並びにしたりして、常に特定のクライアント装置20にアクセスが集中しないようにする。
【0059】
そして、クライアント装置20aはキャッシュインデックスサーバ17から受信したクライアント装置名の一覧の最初に挙げられているクライアント装置20からのコンテンツ12の取得を試み、所定の時間内に応答がない場合は、次のクライアント装置20からのコンテンツ12の取得を試みる。
【0060】
次に、コンテンツ12を自身のキャッシュ記憶装置21aに格納するか否かを判断する条件について説明する。
【0061】
この場合、コンテンツ12は他のクライアント装置20においても使い回しされるので、前記コンテンツ12に個人情報が含まれてはならない。
【0062】
そこで、例えば、コンテンツ名に個人情報(禁止ワード)が含まれていないこと、コンテンツ12を取得するまでの操作でキーボードが使われていないこと等の条件が設定される。なお、前記禁止ワードはあらかじめ登録される。
【0063】
また、最も単純な方法として、コンテンツ名に引数がないものだけを対象にする方法もある。例えば、HTTPである場合は、コンテンツ名に引数があるか否かを見分けることができる。すなわち、コンテンツ名がhttp://www.aaa.bbb.ccc.htmlである場合は引数がなく、コンテンツ名がhttp://www.aaa.bbb.ccc.html&userid=1234…である場合は引数がある。
【0064】
また、コンテンツ12の種類やデータ形式によっては保存しないように設定してもよい。
【0065】
次に、キャッシュ記憶装置21に格納されたコンテンツ12が無限に増えることを抑えるために、キャッシュ記憶装置21に格納されたコンテンツ12を削除する動作について説明する。
【0066】
この場合、キャッシュ記憶装置21に格納されたコンテンツ12を削除するには、クライアント装置20の指示で削除する方法(コンテンツが一定量以上溜(た)まってしまった場合等)と、キャッシュインデックスサーバ17の指示で削除する方法(古いコンテンツ12が存在する場合、コンテンツ12が更新された場合等)の二つの方法がある。
【0067】
なお、本実施の形態においては、前述された二つの方法を同時に行うこともできる。
【0068】
次に、クライアント装置20の指示でキャッシュ記憶装置21に格納されたコンテンツ12を削除する動作について説明する。
【0069】
図5は本発明の第1の実施の形態におけるクライアント装置の指示でキャッシュ記憶装置に格納されたコンテンツを削除する動作を示すフローチャートである。
【0070】
この場合、キャッシュインデックスサーバ17は、クライアント装置20の要求に従って、キャッシュインデックスデータベース19の中から所定の情報を削除するようになっている。なお、この処理の開始は、新たなコンテンツ12を取得した場合である。具体的には、図4におけるステップS19の処理が終わった後である。
【0071】
まず、クライアント装置20自身のキャッシュ記憶装置21に格納されているコンテンツ12の総量があらかじめ決めてある閾(しきい)値以上であるか否かを判断する。前記閾値は、クライアント装置20の管理者が自由に設定することができる。
【0072】
そして、閾値より小さい場合は処理を終了する。また、閾値以上である場合、クライアント装置20はキャッシュインデックスサーバ17に対してインデックス削除依頼を送信する。続いて、キャッシュインデックスサーバ17はインデックス削除依頼を受けると、キャッシュインデックスサーバ17から該当するコンテンツ12のキャッシュインデックスデータ(他のクライアント装置20も登録されている場合は、クライアント装置名だけ)を削除し、その後、クライアント装置20に削除した旨の結果としてのインデックス削除結果を送信する。
【0073】
次に、キャッシュインデックスサーバ17からのインデックス削除結果を受信すると、クライアント装置20は自身のキャッシュ記憶装置21に格納されていたコンテンツ12を削除し、処理を終了する。
【0074】
次に、フローチャートについて説明する。
ステップS21 クライアント装置20は、キャッシュ記憶装置21のコンテンツ12の総量が閾値以上であるか否かを判断する。閾値以上である場合はステップS22に進み、閾値より小さい場合は処理を終了する。
ステップS22 クライアント装置20は、キャッシュインデックスサーバ17に対してインデックス削除依頼を送信する。
ステップS23 キャッシュインデックスサーバ17は、キャッシュインデックスデータベース19から該当するコンテンツの情報を削除する。
ステップS24 キャッシュインデックスサーバ17は、クライアント装置20に対してインデックス削除結果を送信する。
ステップS25 クライアント装置20は、キャッシュ記憶装置21からコンテンツ12を削除し、処理を終了する。
【0075】
次に、キャッシュインデックスサーバ17の指示でキャッシュ記憶装置21に格納されたコンテンツ12を削除する動作について説明する。
【0076】
図6は本発明の第1の実施の形態におけるキャッシュインデックスサーバの指示でキャッシュ記憶装置に格納されたコンテンツを削除する動作を示すフローチャートである。
【0077】
この場合、キャッシュインデックスサーバ17は、定期的にキャッシュインデックスデータベース19の利用頻度を調べ、利用頻度が低いコンテンツ12を削除する要求を送信するようになっている。なお、この処理は、キャッシュインデックスサーバ17の管理者が決めた周期で実行される。
【0078】
まず、キャッシュインデックスサーバ17は、自身のキャッシュインデックスデータベース19内を検索し、利用頻度が一定数以下のコンテンツ12又は更新されたコンテンツ12があるか否かを判断する。
【0079】
前記利用頻度が一定数以下のコンテンツ12は、最初に登録された日時から現在までの経過時間txと、前記コンテンツ12の通算利用回数nと、利用頻度閾値ftと、削除対象外期間te[登録されてから間もないコンテンツ12は削除対象にしない期間]とから、条件は、
条件:もし、tx>te、かつ、n/tx<ft、なら削除対象
となる。
【0080】
また、更新されたコンテンツ12の判定条件は、ハッシュ値13が異なる同一コンテンツ名を検索し、登録日時の古いものを削除対象とする。
【0081】
そして、削除対象のコンテンツ12がある場合は、キャッシュインデックスサーバ17は自身のキャッシュインデックスデータベース19からキャッシュインデックスデータを削除する。
【0082】
次に、キャッシュインデックスサーバ17は削除対象のコンテンツ12を格納しているすべてのクライアント装置20に対してコンテンツ削除依頼を送信し、各クライアント装置20はコンテンツ12を自身のキャッシュ記憶装置21から削除する。例えば、クライアント装置20の電源オフなどによってコンテンツ削除依頼を受信することができなかったクライアント装置20に対しては、キャッシュインデックスサーバ17は一定時間後に再びコンテンツ削除依頼を送信する。また、登録データ数が一定数を超えた場合に利用頻度の低いものから削除するようにする。
【0083】
次に、フローチャートについて説明する。
ステップS31 キャッシュインデックスサーバ17は、利用頻度が一定数以下のコンテンツ又は更新されたコンテンツ12があるか否かを判断する。利用頻度が一定数以下のコンテンツ12又は更新されたコンテンツ12がある場合はステップS32に進み、利用頻度が一定数以下のコンテンツ12又は更新されたコンテンツ12がない場合は処理を終了する。
ステップS32 キャッシュインデックスサーバ17は、キャッシュインデックスデータベース19から登録内容を削除する。
ステップS33 キャッシュインデックスサーバ17は、クライアント装置20に対してコンテンツ削除依頼を送信する。
ステップS34 各クライアント装置20は、キャッシュ記憶装置21からコンテンツ12を削除する。
ステップS35 クライアント装置20は、キャッシュインデックスサーバ17に対して削除終了を送信する。
ステップS36 キャッシュインデックスサーバ17は、削除対象のコンテンツ12を所持しているすべてのクライアント装置20に対してコンテンツ削除依頼を送信したか否かを判断する。すべてのクライアント装置20に対してコンテンツ削除依頼を送信した場合は処理を終了し、すべてのクライアント装置20に対してコンテンツ削除依頼を送信していない場合はステップS33に戻る。
【0084】
このように、本実施の形態においては、よく利用されているコンテンツ12の取得には、多数のクライアント装置20から直接行うことができる。したがって、これまでアクセスが集中していたコンテンツ配信サーバ11への負担が軽減され、また、コンテンツ12の取得に要する時間を短縮することができる。
【0085】
また、コンテンツ12の内容が不定期に変わるような環境下においても、コンテンツ12の内容をハッシュ値13によって確認することができるので、各コンテンツ配信サーバ11との通信処理を短くすることができる。
【0086】
さらに、他のクライアント装置20から取得したコンテンツ12が正しいか否かを確認する手段を備えているので、不正なコンテンツ12の表示を防止することができる。
【0087】
次に、コンテンツ配信サーバ11自体及びハッシュ値13をより厳密に検証する機能を加えることによって、前記第1の実施の形態と比べて処理は多いが、コンテンツ本体の信頼性を高くすることができる本発明の第2の実施の形態について説明する。なお、第1の実施の形態と同じ構造を有するものについては、同じ符号を付与することによってその説明を省略する。
【0088】
図7は本発明の第2の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【0089】
図に示されるように、本実施の形態におけるコンテンツ配信サーバ11a及びコンテンツ配信サーバ11bは、記憶手段に、それぞれ、コンテンツ12a及びコンテンツ12b、公開鍵暗号方式によって求めたコンテンツ署名値33a及びコンテンツ署名値33b、前記コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bの公開鍵を第三者(CA)が証明した公開鍵証明書34a及び公開鍵証明書34b等のデータを格納する。前記コンテンツ署名値33a及びコンテンツ署名値33bとは、公知の公開鍵暗号方式(例えば、RSAやDSAなど)に基づいてコンテンツ12a及びコンテンツ12bの生データのハッシュ値(MD5やSHA1など)を元に自身の秘密鍵で作成される。なお、コンテンツ署名値33a及びコンテンツ署名値33bはあらかじめ求めておくことができる。また、本実施の形態においては、公開鍵証明書34a及び公開鍵証明書34bの具体例として、最も一般的なX.509公開鍵証明書を例に説明する。なお、コンテンツ署名値33a及びコンテンツ署名値33b並びに公開鍵証明書34a及び公開鍵証明書34bを統合的に説明する場合には、コンテンツ署名値33及び公開鍵証明書34として説明する。
【0090】
そして、クライアント装置20a及びクライアント装置20bは、キャッシュ記憶装置21a及びキャッシュ記憶装置21bをそれぞれ備えるとともに、前記公開鍵証明書34a及び公開鍵証明書34bを格納する公開鍵証明書ストア22a及び公開鍵証明書ストア22bをそれぞれ備える。前記公開鍵証明書ストア22a及び公開鍵証明書ストア22bは、コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bから公開鍵証明書34a及び公開鍵証明書34bを毎回取得しなくてもよいようにするために設けられる。なお、公開鍵証明書ストア22a及び公開鍵証明書ストア22bを統合的に説明する場合には、公開鍵証明書ストア22として説明する
また、イントラネット16には、前記公開鍵証明書34の有効性の検証を行う公開鍵証明書検証サーバ37が接続される。該公開鍵証明書検証サーバ37は前記公開鍵証明書34が有効であるかどうかの検証を代行して行う。なお、検証とは、公開鍵証明書34の有効期限、公開鍵証明書34の発信元(CA)が公開している失効リスト(CRL)に掲載されていないかどうかの判断、公開鍵証明書34に付けられている発信元(CA)の署名が正しいかどうかの判断(これは新規にコンテンツ配信サーバ11から取得した時だけ行えばよい。)等の項目に対する検証である。なお、前記公開鍵証明書検証サーバ37の公知の具体例としては、XKMS(http://www.w3.org/TR/xkms/)、OCSP(Online Certificate Status Protocol:RFC2560)、SCVP(Simple Certificate Validation Protocol)がある。
【0091】
次に、前記構成の分散協調型コンテンツ配信システムの動作について説明する。
【0092】
まず、クライアント装置20aがコンテンツ12を取得するまでの動作について説明する。
【0093】
図8は本発明の第2の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【0094】
まず、クライアント装置20aは、これからアクセスするコンテンツ配信サーバ11aの公開鍵証明書34aが自身の公開鍵証明書ストア22aに格納されているか否かを判断し、公開鍵証明書ストア22aに格納されていない場合は、前記コンテンツ配信サーバ11aに公開鍵証明書34aの配信要求を送信する。そして、コンテンツ配信サーバ11aは、公開鍵証明書34aの配信要求をクライアント装置20aから受信すると、自身の公開鍵証明書34aを前記クライアント装置20aに送信する。
【0095】
また、前記コンテンツ配信サーバ11aの公開鍵証明書34aが自身の公開鍵証明書ストア22aに格納されている場合、クライアント装置20aは対象となるコンテンツ配信サーバ11aの公開鍵証明書34aの検証依頼を公開鍵証明書検証サーバ37に対して送信する。
【0096】
次に、該公開鍵証明書検証サーバ37は公開鍵証明書34aの検証を行い、その検証結果をクライアント装置20aに返信する。続いて、公開鍵証明書34aの検証結果を受信したクライアント装置20aは、前記検証結果に基づいて公開鍵証明書34aが有効であるか否かを判断する。そして、公開鍵証明書34aが有効でない場合、前記クライアント装置20aは、前記公開鍵証明書34aを公開鍵証明書ストア22aから削除し、再び新しい公開鍵証明書34aをコンテンツ配信サーバ11aから取得する。また、公開鍵証明書34aが有効である場合、クライアント装置20aは公開鍵証明書34aを自身の公開鍵証明書ストア22aに追加する。なお、前記クライアント装置20aは公開鍵証明書34aから公開鍵を取得する。
【0097】
続いて、クライアント装置20aはコンテンツ署名値33aの配信要求をコンテンツ配信サーバ11aに対して送信する。そして、該コンテンツ配信サーバ11aは前記配信要求をが受信すると、コンテンツ署名値33aをクライアント装置20aに対して送信する。
【0098】
次に、クライアント装置20aは、公開鍵証明書34aから取得した公開鍵に基づいてコンテンツ署名値33aからコンテンツ12aのハッシュ値を求める。
なお、以降の動作については、前記第1の実施の形態と同様であるので、説明を省略する。
【0099】
次に、フローチャートについて説明する。
ステップS41 クライアント装置20aは、コンテンツ配信サーバ11aの公開鍵証明書34aを格納しているか否かを判断する。所有している場合はステップS44に進み、格納していない場合はステップS42に進む。
ステップS42 クライアント装置20aは、コンテンツ配信サーバ11aの公開鍵証明書34aの配信要求をコンテンツ配信サーバ11aに対して送信する。
ステップS43 コンテンツ配信サーバ11aは、コンテンツ配信サーバ11aの公開鍵証明書34aをクライアント装置20aに対して送信する。
ステップS44 クライアント装置20aは、公開鍵証明書34aの検証依頼を公開鍵証明書検証サーバ37に対して行う。
ステップS45 公開鍵証明書検証サーバ37は、公開鍵証明書34aの検証を行う。
ステップS46 公開鍵証明書検証サーバ37は、公開鍵証明書34aの検証結果をクライアント装置20aに対して送信する。
ステップS47 クライアント装置20aは、公開鍵証明書34aの検証結果から公開鍵証明書34aが有効であるか否かを判断する。公開鍵証明書34aが有効である場合はステップS49に進み、公開鍵証明書34aが有効でない場合はステップS48に進む。
ステップS48 クライアント装置20aは、内部に保持している公開鍵証明書34aを削除し、ステップS41に戻る。
ステップS49 クライアント装置20aは、公開鍵証明書34aを公開鍵証明書ストア22aに追加する。
ステップS50 クライアント装置20aは、コンテンツ署名値33aをコンテンツ配信サーバ11aに対して要求する。
ステップS51 コンテンツ配信サーバ11aは、コンテンツ署名値33aをクライアント装置20aに対して送信する。
ステップS52 クライアント装置20aは、コンテンツ署名値33aからハッシュ値を取得する。
【0100】
このように、本実施の形態においては、コンテンツ配信サーバ11自体及びハッシュ値をより厳密に検証することができる。ただし、コンテンツ配信サーバ11の処理量は第1の実施の形態と比較して増える。
【0101】
また、正しいコンテンツ配信サーバ11に格納されている秘密鍵だけが正しいコンテンツ署名値33aを作ることができる。そのため、他の装置が偽コンテンツを配信するサーバに成り済ましている場合であっても、偽コンテンツを配信した装置が作ったコンテンツ署名値33aから公開鍵証明書34aの公開鍵で取得したハッシュ値は、偽コンテンツのハッシュ値と一致しないので、見破ることができる。
【0102】
ところで、前記第2の実施の形態においては、コンテンツ配信サーバ11の公開鍵証明書34をクライアント装置20が取得して格納していたが、別の実施例として公開鍵証明書管理検証サーバがコンテンツ配信サーバの公開鍵証明書を取得して格納する本発明の第3の実施の形態について説明する。なお、第1及び第2の実施の形態と同じ構造を有するものについては、同じ符号を付与することによってその説明を省略する。
【0103】
図9は本発明の第3の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【0104】
本実施の形態においては、前記第2の実施の形態における公開鍵証明書検証サーバ37に代えて、公開鍵証明書管理検証サーバ47がイントラネット16に接続されている。図に示されるように、前記公開鍵証明書管理検証サーバ47は、コンテンツ配信サーバ11の公開鍵証明書34を格納する公開鍵証明書ストア48を備えている。そして、前記公開鍵証明書管理検証サーバ47は、クライアント装置20aから指定されたコンテンツ配信サーバ11の公開鍵請求があった場合に、該当する公開鍵証明書34の取得、保管、及び、公開鍵証明書34が有効であるかどうかの検証を代行して行う。そして、前記公開鍵証明書34が有効である場合は、その公開鍵をクライアント装置20aに送信する。なお、前記公開鍵証明書管理検証サーバ47の公知の具体例として、XKMS(http://www.w3.org/TR/xkms/)がある。
【0105】
次に、前記構成の分散協調型コンテンツ配信システムの動作について説明する。
【0106】
まず、クライアント装置20aがコンテンツ12を取得するまでの動作について説明する。
【0107】
図10は本発明の第3の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【0108】
まず、クライアント装置20aは、取得したいコンテンツ12aを所有しているコンテンツ配信サーバ41の公開鍵の取得を公開鍵証明書管理検証サーバ47に依頼する。そして、該公開鍵証明書管理検証サーバ47は、依頼されたコンテンツ配信サーバ41の公開鍵証明書34aが自身の公開鍵証明書ストア48にあるか否かを判断し、公開鍵証明書ストア48にない場合は、コンテンツ配信サーバ41に公開鍵証明書34aを要求し、公開鍵証明書34aを送信してもらう。
【0109】
次に、公開鍵証明書管理検証サーバ47は受信した公開鍵証明書34aの検証を行う。そして、公開鍵証明書34aの検証結果の内容から、前記公開鍵証明書34aが無効であると判断した場合、前記公開鍵証明書管理検証サーバ47は、前記公開鍵証明書34aを公開鍵証明書ストア48から削除し、再び新しい公開鍵証明書34aをコンテンツ配信サーバ41から取得する。
【0110】
また、公開鍵証明書34aが有効であると判断した場合、公開鍵証明書管理検証サーバ47は、前記公開鍵証明書34aを自身の公開鍵証明書ストア48に追加し、検証した前記公開鍵証明書34aにある公開鍵をクライアント装置20aに送信する。
【0111】
次に、クライアント装置20aは、コンテンツ署名値33aの要求をコンテンツ配信サーバ41に対して送信する。そして、該コンテンツ配信サーバ41はコンテンツ署名値33aの要求を受信すると、前記クライアント装置20aにコンテンツ署名値33aを送信する。そして、前記クライアント装置20aは、受信した公開鍵に基づいてコンテンツ署名値33aからコンテンツのハッシュ値を求める。なお、以降の動作については、前記第1の実施の形態と同様であるので、説明を省略する。
【0112】
次に、フローチャートについて説明する。
ステップS61 クライアント装置20aは、公開鍵証明書管理検証サーバ47に対してコンテンツ配信サーバ41の公開鍵を要求する。
ステップS62 公開鍵証明書管理検証サーバ47は、コンテンツ配信サーバ41の公開鍵証明書34aを所有しているか否かを判断する。所有している場合はステップS65に進み、所有していない場合はステップS63に進む。
ステップS63 公開鍵証明書管理検証サーバ47は、コンテンツ配信サーバ41の公開鍵証明書34aをコンテンツ配信サーバ41に対して要求する。
ステップS64 コンテンツ配信サーバ41は、コンテンツ配信サーバ41の公開鍵証明書34aを公開鍵証明書管理検証サーバ47に対して送信する。
ステップS65 公開鍵証明書管理検証サーバ47は、公開鍵証明書34aの検証を行う。
ステップS66 公開鍵証明書管理検証サーバ47は、公開鍵証明書34aの検証結果から公開鍵証明書34aが有効であるか否かを判断する。公開鍵証明書34aが有効である場合はステップS68に進み、公開鍵証明書34aが有効でない場合はステップS67に進む。
ステップS67 公開鍵証明書管理検証サーバ47は、内部に保持している公開鍵証明書34aを削除し、ステップS62に戻る。
ステップS68 公開鍵証明書管理検証サーバ47は、公開鍵証明書34aを公開鍵証明書ストア48に追加する。
ステップS69 公開鍵証明書管理検証サーバ47は、公開鍵をクライアント装置20aに対して送信する。
ステップS70 クライアント装置20aは、コンテンツ署名値33aをコンテンツ配信サーバ41に対して要求する。
ステップS71 コンテンツ配信サーバ41は、コンテンツ署名値33aをクライアント装置20aに対して送信する。
ステップS72 クライアント装置20aは、コンテンツ署名値33aからハッシュ値を取得する。
【0113】
このように、本実施の形態においては、クライアント装置20は公開鍵の取得及び検証を別の装置に委ねることができるので、前記第2の実施の形態と比較してクライアント装置20の処理負担を減らすことができる。
【0114】
次に、キャッシュインデックスサーバ17の管理下にあるイントラネット16のクライアント装置20の記憶手段にコンテンツ12が格納されていない場合に、他のネットワーク14のキャッシュインデックスサーバ17に問合せを行う本発明の第4の実施の形態について説明する。なお、第1の実施の形態と同じ構造を有するものについては、同じ符号を付与することによってその説明を省略する。
【0115】
図11は本発明の第4の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【0116】
図に示されるように、本実施の形態においては、二つのイントラネット16a及び16bがインターネット14に接続されている。ここで、前記イントラネット16a及びイントラネット16bは、それぞれ、前記第1の実施の形態におけるイントラネット16と同様の構成を有し同様の装置が接続されている。すなわち、前記イントラネット16aにはキャッシュインデックスサーバ17a、クライアント装置20a及びクライアント装置20bが接続され、前記イントラネット16bにはキャッシュインデックスサーバ17b、クライアント装置20c及びクライアント装置20dが接続されている。また、イントラネット16a及びイントラネット16bは、それぞれ、ルータ15a及びルータ15bを介してインターネット14に接続される。なお、付与された符号における数字が同じものは同じ構造を有するものである。
【0117】
次に、前記構成の分散協調型コンテンツ配信システムの動作について説明する。
【0118】
まず、クライアント装置20aがコンテンツを取得するまでの動作について説明する。
【0119】
図12は本発明の第4の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【0120】
ここで、クライアント装置20aが存在確認要求をキャッシュインデックスサーバ17aに送信するまでの動作は、前記第1の実施の形態と同様なので、説明を省略する。なお、前記クライアント装置20aは、同じイントラネット16aのキャッシュインデックスサーバ17aに存在確認要求を送信する。
【0121】
そして、キャッシュインデックスサーバ17aは自身のキャッシュインデックスデータベース19aを検索し、該当するコンテンツ12をキャッシュ記憶装置21に格納するクライアント装置20が登録されている場合は、そのクライアント装置名をクライアント装置20aに送信する。すると、クライアント装置20aは前記第1の実施の形態におけるステップS9以降の動作を行う。
【0122】
また、クライアント装置20が登録されていない場合、キャッシュインデックスサーバ17aは他のイントラネット16bに接続されているキャッシュインデックスサーバ17bに問い合わせを送信する。そして、キャッシュインデックスサーバ17bは自身のキャッシュインデックスデータベース19bを検索し、該当するコンテンツ12をキャッシュ記憶装置21に格納するクライアント装置20が登録されている場合は、そのクライアント装置名をキャッシュインデックスサーバ17aに送信する。また、クライアント装置が登録されていない場合、キャッシュインデックスサーバ17bはキャッシュインデックスサーバ17aにその旨の通知を送信する。
【0123】
次に、キャッシュインデックスサーバ17aはキャッシュインデックスサーバ17bから前記問い合わせの結果を受信する。そして、イントラネット16bに接続されているクライアント装置20が該当するコンテンツ12を格納している場合、そのクライアント装置名をクライアント装置20aに送信する。また、クライアント装置が登録されていない場合、登録なしという結果をキャッシュインデックスサーバ17aに送信する。なお、以降の動作については、前記第1の実施の形態と同様であるので、説明を省略する。
【0124】
次に、フローチャートについて説明する。
ステップS81 クライアント装置20aは、キャッシュインデックスサーバ17aに対して該当するコンテンツの存在確認要求を送信する。
ステップS82 キャッシュインデックスサーバ17aは、該当するコンテンツを所有しているクライアント装置20がキャッシュインデックスデータベース19aに存在するか否かを判断する。存在する場合はステップS83に進み、存在しない場合はステップS84に進む。
ステップS83 キャッシュインデックスサーバ17aは、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名をクライアント装置20aに対して送信する。
ステップS84 キャッシュインデックスサーバ17aは、他のキャッシュインデックスサーバ17bに問合せを送信する。
ステップS85 キャッシュインデックスサーバ17bは、該当するコンテンツ12を所有しているクライアント装置20がキャッシュインデックスデータベース19bに存在するか否かを判断する。存在する場合はステップS86に進み、存在しない場合はステップS87に進む。
ステップS86 キャッシュインデックスサーバ17bは、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名をキャッシュインデックスサーバ17aに対して送信する。
ステップS87 キャッシュインデックスサーバ17bは、該当するコンテンツをキャッシュ記憶装置21に保存しているクライアント装置名がないことをキャッシュインデックスサーバ17aに対して送信する。
ステップS88 キャッシュインデックスサーバ17aは、他のキャッシュインデックスサーバからの問合せ結果を受信する。
ステップS89 キャッシュインデックスサーバ17aは、該当するコンテンツを所有しているクライアント装置が他のキャッシュインデックスサーバ17に登録されているか否かを判断する。登録されている場合はステップS83に戻り、登録されていない場合はステップS90に進む。
ステップS90 キャッシュインデックスサーバ17aは、登録なしをクライアント装置20aに対して送信する。
【0125】
このように、本実施の形態においては、キャッシュインデックスデータベース19に登録されているクライアント装置20の範囲が広がるので、よりコンテンツ配信サーバ11からのコンテンツ送信の回数を減らすことができ、コンテンツ配信サーバ11の負荷を軽減することができる。
【0126】
なお、前記第1〜第4の実施の形態において、対象となるコンテンツ12は、例えば、ウェブページ、文字データ、音楽等の音声データ、ビデオ、写真等の画像データ、ソフトウェア等であるが、いかなる種類のものであってもよい。また、各装置間の通信は、SSLやIPsecなどの暗号通信を行ってもよい。さらに、キャッシュインデックスサーバ17は、キャッシュインデックスデータベース19のバックアップや、負荷分散のために、複数のサーバで構成してもよい。
【0127】
そして、前記第2の実施の形態においては、公開鍵証明書の検証を公開鍵証明書検証サーバ37が行う場合について説明したが、該公開鍵証明書検証サーバ37と同等の機能を各クライアント装置20が所持している場合は、各クライアント装置20が独自に行ってもよい。
【0128】
また、第2及び第3の実施の形態において、公開鍵証明書検証の発信元のポリシーが許せば毎回ではなく、発信元が定める周期内であれば、以前の検証結果を利用することもできる。例えば、失効リスト(CRL)の次回発信日までは前の検証結果を利用してもよい。
【0129】
図13は本発明の第4の実施の形態における分散協調型コンテンツ配信システムの他の構成を示す図である。
【0130】
さらに、前記第4の実施の形態においては、キャッシュインデックスサーバ17の連携は二台だけであったが、三台以上であってもよい。また、接続形態として図13に示されるように、イントラネット同士が直接接続していてもよい。
【0131】
なお、本発明は前記実施の形態に限定されるものではなく、本発明の趣旨に基づいて種々変形させることが可能であり、それらを本発明の範囲から排除するものではない。
【0132】
【発明の効果】
以上詳細に説明したように、本発明によれば、分散協調型コンテンツ配信システムにおいては、コンテンツが不定期に変わる環境下であってもコンテンツ配信サーバへの負荷を軽減することができ、クライアント装置のキャッシュに格納されているコンテンツが不正に変更されていないかどうかを確認することができ、他のクライアント装置からはクライアント装置のキャッシュ装置装置にだけしかアクセスすることができない。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【図2】本発明の第1の実施の形態におけるキャッシュインデックスデータベースの内容を示す図である。
【図3】本発明の第1の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示す第1のフローチャートである。
【図4】本発明の第1の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示す第2のフローチャートである。
【図5】本発明の第1の実施の形態におけるクライアント装置の指示でキャッシュ記憶装置に格納されたコンテンツを削除する動作を示すフローチャートである。
【図6】本発明の第1の実施の形態におけるキャッシュインデックスサーバの指示でキャッシュ記憶装置に格納されたコンテンツを削除する動作を示すフローチャートである。
【図7】本発明の第2の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【図8】本発明の第2の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【図9】本発明の第3の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【図10】本発明の第3の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【図11】本発明の第4の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【図12】本発明の第4の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【図13】本発明の第4の実施の形態における分散協調型コンテンツ配信システムの他の構成を示す図である。
【符号の説明】
10 分散協調型コンテンツ配信システム
11、11a、11b、41 コンテンツ配信サーバ
12、12a、12b コンテンツ
13、13a、13b ハッシュ値
17 、17a、17b キャッシュインデックスサーバ
19、19a、19b キャッシュインデックスデータベース
20、20a、20b、20c、20d クライアント装置
21、21a、21b、21c、21d キャッシュ記憶装置
22、22a、22b、48 公開鍵証明書ストア
33、33a、33b コンテンツ署名値
34、34a、34b 開鍵証明書
37 公開鍵証明書検証サーバ
47 公開鍵証明書管理検証サーバ
【発明の属する技術分野】
本発明は、分散協調型コンテンツ配信システムに関するものである。
【0002】
【従来の技術】
従来、ブラウザ(browser)機能を装備したパーソナルコンピュータ等の情報端末からインターネットに接続されたウェブ(web)サーバにアクセス(訪問)することによって、該ウェブサーバ内に開設されたウェブサイトの格納された画像、音声等の各種のコンテンツを利用することができるようになっている。そして、近年では、インターネットの利用拡大に伴い、前記コンテンツを格納しているウェブサーバとしてのコンテンツ配信サーバへのアクセスが増加している。ところが、前記コンテンツ配信サーバへのアクセスが増加すると、前記コンテンツ配信サーバがコンテンツを配信するための負荷が大きくなるので、前記コンテンツ配信サーバへのアクセスが困難になり、前記コンテンツを取得するために時間がかかったり、コンテンツの取得が不可能になったりしてしまう。
【0003】
そこで、前記コンテンツ配信サーバの負荷を軽減するために、前記コンテンツの内容を一時的に格納するキャッシュサーバを利用する技術が提供されている。
さらに、前記キャッシュサーバの負荷を軽減するために、該キャッシュサーバを更に分散させる技術も提供されている(例えば、特許文献1〜3参照。)。
【0004】
【特許文献1】特表2001−511551号公報
【0005】
【特許文献2】特開平10−222412号公報
【0006】
【特許文献3】特開平10−222449号公報
【0007】
【発明が解決しようとする課題】
しかしながら、前記従来のシステムにおいては、情報端末からのアクセスが増加するとキャッシュサーバの負荷が大きくなり、該キャッシュサーバからコンテンツを取得するために時間がかかったり、コンテンツの取得が不可能になったりしてしまう。もっとも、前記キャッシュサーバの台数を増やすことによって、各キャッシュサーバの負荷を軽減することは可能であるが、コストや管理面での負担が大きくなってしまう。
【0008】
そこで、コンテンツを一時的に保存するキャッシュ機能をクライアント装置としての情報端末に持たせ、コンテンツを配信する代わりに一時的にコンテンツを格納するキャッシュ記憶装置としてのキャッシュのありかを示すキャッシュインデックスを配信するキャッシュインデックスサーバを使用する分散協調型コンテンツ配信システムとすることが考えられる。この場合、ある情報端末からコンテンツの配信要求が送信されると、前記キャッシュインデックスサーバは前記コンテンツのキャッシュインデックスを返信する。そして、前記情報端末は、キャッシュインデックスに従って、前記コンテンツが保存されている情報端末に直接アクセスして前記コンテンツを取得する。なお、それぞれに格納されているコンテンツを情報端末同士が直接アクセスして取得する技術は、一般的にPtoP(ピアツウピア又はP2P:Peer to Peer)と呼ばれている。
【0009】
しかし、前記分散協調型コンテンツ配信システムにおいては、コンテンツの内容が不定期に変更される場合、コンテンツ配信サーバへのアクセスが増加するので前記コンテンツ配信サーバの負荷が増大してしまう。また、情報端末のキャッシュに格納されているコンテンツが不正に変更されてしまう恐れがある。さらに、情報端末同士が直接アクセスするので、情報端末に保存されているプライベートな情報が他の情報端末によって取得されてしまう恐れがある。
【0010】
本発明は、前記従来の分散協調型コンテンツ配信システムの問題点を解決して、コンテンツが不定期に変わる環境下であってもコンテンツ配信サーバへの負荷を軽減することができ、クライアント装置のキャッシュに格納されているコンテンツが不正に変更されていないかどうかを確認することができ、他のクライアント装置からはクライアント装置のキャッシュ記憶装置にだけしかアクセスすることができない分散協調型コンテンツ配信システムを提供することを目的とする。
【0011】
【課題を解決するための手段】
そのために、本発明の分散協調型コンテンツ配信システムにおいては、コンテンツ及び該コンテンツを特定する値を配信するコンテンツ配信サーバと、取得した前記コンテンツを格納するキャッシュ記憶装置を備えるクライアント装置と、前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバとを有する。
【0012】
本発明の他の分散協調型コンテンツ配信システムにおいては、さらに、一のクライアント装置は、前記コンテンツ配信サーバから所定のコンテンツに対応する固有情報を取得し、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する。
【0013】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、コンテンツ、該コンテンツを特定する固有情報、公開鍵(かぎ)暗号方式によって求めたコンテンツ署名値、及び、公開鍵を第三者が保証した公開鍵証明書を配信するコンテンツ配信サーバと、取得した前記コンテンツを格納するキャッシュ記憶装置及び取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備えるクライアント装置と、前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバと、前記公開鍵証明書の有効性の検証を行う公開鍵証明書検証サーバとを有する。
【0014】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、一のクライアント装置は、所定のコンテンツ配信サーバの公開鍵証明書を格納していない場合、該公開鍵証明書を前記コンテンツ配信サーバから取得し、前記公開鍵証明書の有効性検証の依頼を前記公開鍵証明書サーバに送信し、該公開鍵証明書サーバは前記公開鍵証明書の検証結果を前記一のクライアント装置に送信し、該一のクライアント装置は、前記公開鍵証明書が有効である場合、該公開鍵証明書を格納し、該公開鍵証明書から公開鍵を取得し、前記コンテンツ配信サーバから所定のコンテンツのコンテンツ署名値を取得し、前記公開鍵に基づいて前記コンテンツ署名値から前記所定のコンテンツの固有情報を求め、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する。
【0015】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、コンテンツ、該コンテンツを特定する固有情報、公開鍵暗号方式によって求めたコンテンツ署名値、及び、公開鍵を第三者が保証した公開鍵証明書を配信するコンテンツ配信サーバと、取得した前記コンテンツを格納するキャッシュ記憶装置及び取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備えるクライアント装置と、前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバと、取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備え、前記公開鍵証明書の取得、保管及び有効性の検証を行う公開鍵証明書検証サーバとを有する。
【0016】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、一のクライアント装置は、前記公開鍵の配信要求を公開鍵証明書管理検証サーバに送信し、該公開鍵証明書サーバは前記公開鍵の取得及び検証を行い、有効な公開鍵を前記一のクライアント装置に送信し、該一のクライアント装置は、前記コンテンツ配信サーバから所定のコンテンツのコンテンツ署名値を取得し、前記公開鍵に基づいて前記コンテンツ署名値から前記所定のコンテンツの固有情報を求め、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する。
【0017】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記クライアント装置は、取得したコンテンツが真であることが判定された後に、前記コンテンツを前記キャッシュ記憶装置に格納する。
【0018】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記クライアント装置は、前記コンテンツの名称、種類等に応じて前記コンテンツを前記キャッシュ記憶装置に格納する。
【0019】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、一のクライアント装置が要求する所定のコンテンツを格納する他のクライアント装置が複数である場合、該他のクライアント装置の一覧を所定のアルゴリズムに従って並べ替えた一覧を前記一のクライアント装置に送信し、前記一のクライアント装置は、前記並べ替えた一覧の順番にコンテンツの取得を試みる。
【0020】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、前記クライアント装置の要求に従って、キャッシュインデックスデータベースの中から所定の情報を削除する。
【0021】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記クライアント装置は、キャッシュ記憶装置が格納するコンテンツの記憶量が前記クライアント装置の管理者が定めた条件を超えた場合に要求を前記キャッシュインデックスサーバに送信する。
【0022】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記クライアント装置は、前記キャッシュインデックスサーバの要求に従って、キャッシュ記憶装置からコンテンツを削除する。
【0023】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、定期的にキャッシュインデックスデータベースの利用頻度を調べ、利用頻度が低いコンテンツを削除する要求を送信する。
【0024】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、キャッシュされたデータ量が定めた条件を超えた場合に利用頻度が低いコンテンツを削除する要求を送信する。
【0025】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、名称、種類等が同じ登録済のコンテンツのうち固有情報がより古いコンテンツを削除する要求を送信する。
【0026】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記キャッシュインデックスサーバは、一のクライアント装置が要求する所定のコンテンツを格納する他のクライアント装置がキャッシュインデックスデータベースに含まれていない場合、他のキャッシュインデックスサーバに問い合わせる。
【0027】
本発明の更に他の分散協調型コンテンツ配信システムにおいては、さらに、前記固有情報は、ハッシュ値である。
【0028】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【0029】
図1は本発明の第1の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【0030】
図に示されるように、本実施の形態における分散協調型コンテンツ配信システム10はウェブサーバとしてのコンテンツ配信サーバ11a及びコンテンツ配信サーバ11bを有する。なお、コンテンツ配信サーバは単数であっても複数であってもよく、その数は任意であるが、本実施の形態においては、説明の都合上、コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bがすべてのコンテンツ配信サーバを代表する。なお、コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bを統合的に説明する場合には、コンテンツ配信サーバ11として説明する。ここで、該コンテンツ配信サーバ11は、CPU、MPU等の演算手段、磁気ディスク、半導体メモリ等の記憶手段、通信インターフェイス等を備えるコンピュータである。なお、前記コンテンツ配信サーバ11は、独立して存在するものであってもよいし、他の大型コンピュータ等の装置の一部であってもよいし、複数のサーバが有機的に結合した分散型サーバであってもよい。
【0031】
そして、前記コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bは、記憶手段に、それぞれ、コンテンツ12a及びコンテンツ12b、該コンテンツ12a及びコンテンツ12bを特定するハッシュ値13a及びハッシュ値13b等のデータを格納し、外部からの要求に応じて前記データを配信する。ここで、前記コンテンツ12a及びコンテンツ12bは、例えば、ウェブページ、文字データ、音楽等の音声データ、ビデオ、写真等の画像データ、ソフトウェア等であるが、いかなる種類のものであってもよい。また、前記コンテンツ12a及びコンテンツ12bは、単数であっても複数であってもよく、その数は任意である。そして、前記ハッシュ値13a及びハッシュ値13bは前記コンテンツ12a及びコンテンツ12bのそれぞれに対応する。なお、コンテンツ12a及びコンテンツ12b、並びに、ハッシュ値13a及びハッシュ値13bを統合的に説明する場合には、コンテンツ12及びハッシュ値13として説明する。
【0032】
ところで、ハッシュ値13は、入力されたデータを元にハッシュ関数によって生成される疑似乱数であり、元データに対して一意に定まる固定長データである。この場合、元データが1ビットでも改変されると、生成されるハッシュ値13は異なったものになる。そして、元データがデータ量の多いコンテンツであっても、ハッシュ値13はデータ量が少ない固定長データである。データの改ざんを防止するためのデジタル署名は、通常、公開鍵暗号技術とハッシュ関数の組合せで実現される。一般に利用されるハッシュ関数としては、MD2、MD5、SHA1等がある。
【0033】
また、14は外部ネットワークとしてのインターネットであるが、いかなる種類のネットワークであってもよく、例えば、LAN(Local Area Network)、WAN(Wide Area Network)等であってもよい。そして、前記コンテンツ配信サーバ11は、インターネット14に接続され、該インターネット14を経由して、前記コンテンツ12、ハッシュ値13等のデータを配信することができる。
【0034】
なお、16は内部ネットワークとしてのイントラネットであり、キャッシュインデックスサーバ17、クライアント装置20a、クライアント装置20b等が接続されている。そして、前記イントラネット16はルータ15を介して前記インターネット14に接続されている。ここで、前記ルータ15は、イントラネット16に接続された装置同士の通信データをインターネット14に出さず、また、イントラネット16に接続された装置とインターネット14に接続された装置との間の通信データを、適切な経路を選択して中継する役割を担う。なお、前記ルータ15は、一般的にルータ装置と呼ばれているものである。
【0035】
ここで、クライアント装置は単数であっても複数であってもよく、その数は任意であるが、本実施の形態においては、説明の都合上、クライアント装置20a及びクライアント装置20bがすべてのクライアント装置を代表する。なお、クライアント装置20a及びクライアント装置20bを統合的に説明する場合には、クライアント装置20として説明する。そして、該クライアント装置20は、CPU、MPU等の演算手段、磁気ディスク、半導体メモリ等の記憶手段、CRT、液晶ディスプレイ等の表示手段、通信インターフェイス等を備えるコンピュータであり、例えば、パーソナルコンピュータ等の情報端末であるが、いかなる種類のものであってもよい。なお、前記クライアント装置20a及びクライアント装置20bは、ダウンロードしたコンテンツ12を格納するキャッシュとして機能するものであり、キャッシュ記憶装置21a及びキャッシュ記憶装置21bをそれぞれ備える。ここで、該キャッシュ記憶装置21a及びキャッシュ記憶装置21bは、クライアント装置20a及びクライアント装置20bの記憶手段の一部であってもよいし、いわゆる外付けのハードディスク装置等の外部記憶手段の全部又は一部であってもよい。なお、キャッシュ記憶装置21a及びキャッシュ記憶装置21bを統合的に説明する場合には、キャッシュ記憶装置21として説明する。本実施の形態において、前記クライアント装置20がコンテンツ配信サーバ11にアクセスしてダウンロードしたコンテンツ12は前記キャッシュ記憶装置21に一時的に格納される。
【0036】
また、前記キャッシュインデックスサーバ17は、CPU、MPU等の演算手段、磁気ディスク、半導体メモリ等の記憶手段、通信インターフェイス等を備えるコンピュータであり、独立して存在するものであってもよいし、他の大型コンピュータ等の装置の一部であってもよいし、複数のサーバが有機的に結合した分散型サーバであってもよい。そして、前記キャッシュインデックスサーバ17は、前記コンテンツ配信サーバ11から取得したコンテンツ12のキャッシュとして機能する前記クライアント装置20の名前等のキャッシュインデックスデータを一元管理するものであり、キャッシュインデックスデータベース19を備える。ここで、該キャッシュインデックスデータベース19は、キャッシュインデックスサーバ17の記憶手段の一部であってもよいし、いわゆる外付けのハードディスク装置等の外部記憶手段の全部又は一部であってもよい。本実施の形態において、前記キャッシュインデックスサーバ17は、コンテンツ12の配信要求に応じて前記コンテンツ12のキャッシュインデックスを返信する。
【0037】
次に、前記キャッシュインデックスデータベース19の内容について説明する。
【0038】
図2は本発明の第1の実施の形態におけるキャッシュインデックスデータベースの内容を示す図である。
【0039】
図に示されるように、キャッシュインデックスデータベース19には、キャッシュインデックスデータとして、コンテンツ名(例えば、URL(Uniform Resource Locator)名)、ハッシュ関数としてのハッシュアルゴリズム、ハッシュ値13、コンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名(例えば、クライアント装置20のIPアドレスやホスト名)、コンテンツ12をキャッシュ記憶装置21に格納した日時としての登録日時、コンテンツ12の通算利用回数等の情報が格納されている。なお、前記コンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名は、複数のクライアント装置20の名称が含まれていてもよい。
【0040】
次に、前記構成の分散協調型コンテンツ配信システム10の動作について説明する。
【0041】
まず、クライアント装置20a及びクライアント装置20bがコンテンツ12を取得するまでの動作について説明する。
【0042】
図3は本発明の第1の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示す第1のフローチャート、図4は本発明の第1の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示す第2のフローチャートである。
【0043】
この場合、今からコンテンツ12を取得するクライアント装置20a、既にキャッシュを保持しているクライアント装置20b、前記クライアント装置20a及びクライアント装置20bを含むイントラネット16に接続されている各クライアント装置20のキャッシュインデックスデータを一元管理しているキャッシュインデックスサーバ17、並びに、コンテンツ12及びハッシュ値13を格納したコンテンツ配信サーバ11の間での処理の流れを示す。
【0044】
まず、クライアント装置20aは、取得したいコンテンツ12に対応するハッシュ値13の配信要求をコンテンツ配信サーバ11に送信する。
【0045】
次に、コンテンツ配信サーバ11は、クライアント装置20aにハッシュ値13及びハッシュアルゴリズムを送信する。前記ハッシュ値13をあらかじめハッシュ関数としてのハッシュアルゴリズムによって求めておくと、ハッシュ値13はデータ量が少なく送信する時間が短いので、前記コンテンツ配信サーバ11が一つのクライアント装置20aに対して応対する時間が短くなり、極めて短時間に処理を済ませることができる。すなわち、該処理でのコンテンツ配信サーバ11の負担は軽微なものになる。
【0046】
続いて、前記クライアント装置20aは、前記コンテンツ12と同じ名称、種類等のコンテンツ12で、かつ、ハッシュ値13が同じものが自身のキャッシュ記憶装置21aに格納されているか否かを確認し、該キャッシュ記憶装置21aに格納されている場合は、前記コンテンツ12をブラウザ機能によって表示手段上に表示(又は動作)させる。
【0047】
また、前記キャッシュ記憶装置21aに格納されていない場合、前記クライアント装置20aは、キャッシュインデックスサーバ17に、前記コンテンツ12と同じ名称で、かつ、ハッシュ値13が同じものが他のクライアント装置20内に登録されているか否かの確認を要求する存在確認要求をキャッシュインデックスサーバ17に送信する。
【0048】
そして、該キャッシュインデックスサーバ17は前記存在確認要求を受信すると、自身のキャッシュインデックスデータベース19に前記コンテンツ12と同じ名称で、かつ、ハッシュ値13が同じものが登録されているか否かを検索する。そして、登録されている場合、キャッシュインデックスサーバ17は、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名をクライアント装置20aに返信する。また、登録されていない場合、登録されていない旨をクライアント装置20aに返信する。なお、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置が複数ある場合は、すべてのクライアント装置名を返信してもよいが、この場合の返信の方法については後述される。このように、前記キャッシュインデックスサーバ17は、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名を返信するだけなので、クライアント装置20aに対して応対する時間が短くなり、極めて短時間に処理を済ませることができる。すなわち、該処理でのキャッシュインデックスサーバ17の負担は軽微なものになる。
【0049】
次に、クライアント装置20aは、キャッシュインデックスサーバ17から該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名を受信した場合、該クライアント装置としてのクライアント装置20bが起動しているか否かを判断する。この場合、例えば、ICMP(InternetControl Message Protocol:RFC792/RFC1812)と呼ばれるインターネットプロトコルを用いることによって、前記クライアント装置20bが起動しているか否かを判断することができる。
【0050】
そして、前記クライアント装置20bが起動している場合、クライアント装置20aは、前記クライアント装置20bに対してキャッシュ記憶装置21bに格納されている前記コンテンツ12の配信要求を送信する。続いて、前記クライアント装置20bはキャッシュ記憶装置21bに格納されている前記コンテンツ12をクライアント装置20aに配信する。
【0051】
続いて、クライアント装置20aは、クライアント装置20bから受信したコンテンツ12のハッシュ値13を求め、コンテンツ配信サーバ11から取得したハッシュ値13と比較して前記コンテンツ12の真偽判定を行う。そして、両方のハッシュ値13が一致した場合は、クライアント装置20bから受信したコンテンツは真である、すなわち、前記コンテンツ12であるので、該コンテンツ12を出力する、すなわち、ブラウザ機能によって表示手段上に表示(又は動作)させる。
【0052】
また、前記コンテンツ12と同じ名称で、かつ、ハッシュ値13が同じものが他のクライアント装置20内に登録されていない場合、前記クライアント装置20bが起動していない場合、及び、両方のハッシュ値13が一致しない場合、クライアント装置20aはコンテンツ配信サーバ11に対してコンテンツ12の配信要求を送信する。続いて、前記コンテンツ配信サーバ11はコンテンツ12をクライアント装置20aに送信する。なお、コンテンツ12の表示の処理が完全に終わってから次の処理を行う必要はないので、コンテンツ12の表示の処理とそれ以降の処理は並行して行ってもよい。
【0053】
次に、クライアント装置20aは、クライアント装置20b又はコンテンツ配信サーバ11から受信したコンテンツ12を表示すると、該コンテンツ12を自身のキャッシュ記憶装置21aに格納するか否かをあらかじめ設定された条件に従って判断する。この処理内容の詳細については後述する。
【0054】
そして、前記条件を満たしている場合、クライアント装置20aは、キャッシュインデックスサーバ17にハッシュ値13及びハッシュアルゴリズムを送信してコンテンツ12の登録申請を行う。続いて、登録申請を受けたキャッシュインデックスサーバ17は、キャッシュインデックスデータベース19に追加登録を行う。なお、既にコンテンツ12と同じ名称のコンテンツが登録されていても、それぞれのハッシュ値が異なる場合、キャッシュインデックスサーバ17は、コンテンツ12が更新されたものであると判断して、既に登録されているコンテンツに関するデータを削除することもできる。
【0055】
続いて、クライアント装置20aはコンテンツ12をキャッシュ記憶装置21aに格納し、一連の処理を終了する。
【0056】
次に、フローチャートについて説明する。
ステップS1 クライアント装置20aは、取得したいハッシュ値13の配信要求をコンテンツ配信サーバ11に送信する。
ステップS2 コンテンツ配信サーバ11は、クライアント装置20aに対してハッシュ値13及びハッシュアルゴリズムを送信する。
ステップS3 クライアント装置20aは、該当するコンテンツ12で、かつ、ハッシュ値13が同じものが自身のキャッシュ記憶装置21a内にあるか否かを判断する。キャッシュ記憶装置21a内にある場合はステップS4に進み、キャッシュ記憶装置21a内にない場合はステップS5に進む。
ステップS4 クライアント装置20aは、コンテンツ12をブラウザ等に表示(又は動作)させる。
ステップS5 クライアント装置20aは、キャッシュインデックスサーバ17に対して該当するコンテンツ12で、かつ、ハッシュ値13が同じものが他のクライアント装置20内に登録されているか否かの存在確認要求を送信する。
ステップS6 キャッシュインデックスサーバ17は、該当するコンテンツ12がキャッシュインデックスデータベース19に登録されているか否かを判断する。登録されている場合はステップS7に進み、登録されていない場合はステップS8に進む。
ステップS7 キャッシュインデックスサーバ17は、該当するコンテンツ12をキャッシュに保存しているクライアント装置名をクライアント装置20aに対して送信する。
ステップS8 キャッシュインデックスサーバ17は、登録なしをクライアント装置20aに対して送信する。
ステップS9 クライアント装置20aは、該当するコンテンツ12を保持するクライアント装置20bが起動しているか否かを判断する。該当するコンテンツ12を保持するクライアント装置20bが起動している場合はステップS10に進み、該当するコンテンツ12を保持するクライアント装置20bが起動していない場合はステップS14に進む。
ステップS10 クライアント装置20aは、キャッシュ記憶装置21bに格納されているコンテンツ12の配信要求を送信する。。
ステップS11 クライアント装置20bは、キャッシュ記憶装置21bに保持しているコンテンツ12をクライアント装置20aに対して送信する。
ステップS12 クライアント装置20aは、受信したハッシュ値13を検査する。
ステップS13 クライアント装置20aは、ハッシュ値13が一致するか否かを判断する。一致する場合はステップS16に進み、一致しない場合はステップS14に進む。
ステップS14 クライアント装置20aは、コンテンツ配信サーバ11に対してコンテンツ12の送信要求を行う。
ステップS15 コンテンツ配信サーバ11は、コンテンツ12をクライアント装置20aに対して送信する。
ステップS16 クライアント装置20aは、受信したコンテンツ12を表示(又は動作)させる。
ステップS17 クライアント装置20aは、コンテンツ12がキャッシュ記憶装置21aに保存する条件を満たしているか否かを判断する。条件を満たしている場合はステップS18に進み、条件を満たしていない場合は処理を終了する。
ステップS18 クライアント装置20aは、キャッシュインデックスサーバ17に対してコンテンツ12の登録申請を行う。
ステップS19 キャッシュインデックスサーバ17は、キャッシュインデックスデータベース19に追加登録する。
ステップS20 クライアント装置20aは、コンテンツ12をキャッシュ記憶装置21aに格納し、処理を終了する。
【0057】
次に、同じコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置20が複数ある場合について説明する。
【0058】
この場合、キャッシュインデックスサーバ17は、あるクライアント装置20が要求する所定のコンテンツ12を格納する他のクライアント装置20が複数である場合、該他のクライアント装置20の一覧を所定のアルゴリズムに従って並べ替えた一覧を前記クライアント装置20に送信し、該クライアント装置20は、前記並べ替えた一覧の順番にコンテンツ12の取得を試みるようになっている。すなわち、ステップS6において、キャッシュインデックスデータベース19に該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置20が複数登録されている場合、キャッシュインデックスサーバ17は、クライアント装置20aに送信するクライアント装置名の一覧をランダムに並べ替えたり、毎回規則的にずらした並びにしたりして、常に特定のクライアント装置20にアクセスが集中しないようにする。
【0059】
そして、クライアント装置20aはキャッシュインデックスサーバ17から受信したクライアント装置名の一覧の最初に挙げられているクライアント装置20からのコンテンツ12の取得を試み、所定の時間内に応答がない場合は、次のクライアント装置20からのコンテンツ12の取得を試みる。
【0060】
次に、コンテンツ12を自身のキャッシュ記憶装置21aに格納するか否かを判断する条件について説明する。
【0061】
この場合、コンテンツ12は他のクライアント装置20においても使い回しされるので、前記コンテンツ12に個人情報が含まれてはならない。
【0062】
そこで、例えば、コンテンツ名に個人情報(禁止ワード)が含まれていないこと、コンテンツ12を取得するまでの操作でキーボードが使われていないこと等の条件が設定される。なお、前記禁止ワードはあらかじめ登録される。
【0063】
また、最も単純な方法として、コンテンツ名に引数がないものだけを対象にする方法もある。例えば、HTTPである場合は、コンテンツ名に引数があるか否かを見分けることができる。すなわち、コンテンツ名がhttp://www.aaa.bbb.ccc.htmlである場合は引数がなく、コンテンツ名がhttp://www.aaa.bbb.ccc.html&userid=1234…である場合は引数がある。
【0064】
また、コンテンツ12の種類やデータ形式によっては保存しないように設定してもよい。
【0065】
次に、キャッシュ記憶装置21に格納されたコンテンツ12が無限に増えることを抑えるために、キャッシュ記憶装置21に格納されたコンテンツ12を削除する動作について説明する。
【0066】
この場合、キャッシュ記憶装置21に格納されたコンテンツ12を削除するには、クライアント装置20の指示で削除する方法(コンテンツが一定量以上溜(た)まってしまった場合等)と、キャッシュインデックスサーバ17の指示で削除する方法(古いコンテンツ12が存在する場合、コンテンツ12が更新された場合等)の二つの方法がある。
【0067】
なお、本実施の形態においては、前述された二つの方法を同時に行うこともできる。
【0068】
次に、クライアント装置20の指示でキャッシュ記憶装置21に格納されたコンテンツ12を削除する動作について説明する。
【0069】
図5は本発明の第1の実施の形態におけるクライアント装置の指示でキャッシュ記憶装置に格納されたコンテンツを削除する動作を示すフローチャートである。
【0070】
この場合、キャッシュインデックスサーバ17は、クライアント装置20の要求に従って、キャッシュインデックスデータベース19の中から所定の情報を削除するようになっている。なお、この処理の開始は、新たなコンテンツ12を取得した場合である。具体的には、図4におけるステップS19の処理が終わった後である。
【0071】
まず、クライアント装置20自身のキャッシュ記憶装置21に格納されているコンテンツ12の総量があらかじめ決めてある閾(しきい)値以上であるか否かを判断する。前記閾値は、クライアント装置20の管理者が自由に設定することができる。
【0072】
そして、閾値より小さい場合は処理を終了する。また、閾値以上である場合、クライアント装置20はキャッシュインデックスサーバ17に対してインデックス削除依頼を送信する。続いて、キャッシュインデックスサーバ17はインデックス削除依頼を受けると、キャッシュインデックスサーバ17から該当するコンテンツ12のキャッシュインデックスデータ(他のクライアント装置20も登録されている場合は、クライアント装置名だけ)を削除し、その後、クライアント装置20に削除した旨の結果としてのインデックス削除結果を送信する。
【0073】
次に、キャッシュインデックスサーバ17からのインデックス削除結果を受信すると、クライアント装置20は自身のキャッシュ記憶装置21に格納されていたコンテンツ12を削除し、処理を終了する。
【0074】
次に、フローチャートについて説明する。
ステップS21 クライアント装置20は、キャッシュ記憶装置21のコンテンツ12の総量が閾値以上であるか否かを判断する。閾値以上である場合はステップS22に進み、閾値より小さい場合は処理を終了する。
ステップS22 クライアント装置20は、キャッシュインデックスサーバ17に対してインデックス削除依頼を送信する。
ステップS23 キャッシュインデックスサーバ17は、キャッシュインデックスデータベース19から該当するコンテンツの情報を削除する。
ステップS24 キャッシュインデックスサーバ17は、クライアント装置20に対してインデックス削除結果を送信する。
ステップS25 クライアント装置20は、キャッシュ記憶装置21からコンテンツ12を削除し、処理を終了する。
【0075】
次に、キャッシュインデックスサーバ17の指示でキャッシュ記憶装置21に格納されたコンテンツ12を削除する動作について説明する。
【0076】
図6は本発明の第1の実施の形態におけるキャッシュインデックスサーバの指示でキャッシュ記憶装置に格納されたコンテンツを削除する動作を示すフローチャートである。
【0077】
この場合、キャッシュインデックスサーバ17は、定期的にキャッシュインデックスデータベース19の利用頻度を調べ、利用頻度が低いコンテンツ12を削除する要求を送信するようになっている。なお、この処理は、キャッシュインデックスサーバ17の管理者が決めた周期で実行される。
【0078】
まず、キャッシュインデックスサーバ17は、自身のキャッシュインデックスデータベース19内を検索し、利用頻度が一定数以下のコンテンツ12又は更新されたコンテンツ12があるか否かを判断する。
【0079】
前記利用頻度が一定数以下のコンテンツ12は、最初に登録された日時から現在までの経過時間txと、前記コンテンツ12の通算利用回数nと、利用頻度閾値ftと、削除対象外期間te[登録されてから間もないコンテンツ12は削除対象にしない期間]とから、条件は、
条件:もし、tx>te、かつ、n/tx<ft、なら削除対象
となる。
【0080】
また、更新されたコンテンツ12の判定条件は、ハッシュ値13が異なる同一コンテンツ名を検索し、登録日時の古いものを削除対象とする。
【0081】
そして、削除対象のコンテンツ12がある場合は、キャッシュインデックスサーバ17は自身のキャッシュインデックスデータベース19からキャッシュインデックスデータを削除する。
【0082】
次に、キャッシュインデックスサーバ17は削除対象のコンテンツ12を格納しているすべてのクライアント装置20に対してコンテンツ削除依頼を送信し、各クライアント装置20はコンテンツ12を自身のキャッシュ記憶装置21から削除する。例えば、クライアント装置20の電源オフなどによってコンテンツ削除依頼を受信することができなかったクライアント装置20に対しては、キャッシュインデックスサーバ17は一定時間後に再びコンテンツ削除依頼を送信する。また、登録データ数が一定数を超えた場合に利用頻度の低いものから削除するようにする。
【0083】
次に、フローチャートについて説明する。
ステップS31 キャッシュインデックスサーバ17は、利用頻度が一定数以下のコンテンツ又は更新されたコンテンツ12があるか否かを判断する。利用頻度が一定数以下のコンテンツ12又は更新されたコンテンツ12がある場合はステップS32に進み、利用頻度が一定数以下のコンテンツ12又は更新されたコンテンツ12がない場合は処理を終了する。
ステップS32 キャッシュインデックスサーバ17は、キャッシュインデックスデータベース19から登録内容を削除する。
ステップS33 キャッシュインデックスサーバ17は、クライアント装置20に対してコンテンツ削除依頼を送信する。
ステップS34 各クライアント装置20は、キャッシュ記憶装置21からコンテンツ12を削除する。
ステップS35 クライアント装置20は、キャッシュインデックスサーバ17に対して削除終了を送信する。
ステップS36 キャッシュインデックスサーバ17は、削除対象のコンテンツ12を所持しているすべてのクライアント装置20に対してコンテンツ削除依頼を送信したか否かを判断する。すべてのクライアント装置20に対してコンテンツ削除依頼を送信した場合は処理を終了し、すべてのクライアント装置20に対してコンテンツ削除依頼を送信していない場合はステップS33に戻る。
【0084】
このように、本実施の形態においては、よく利用されているコンテンツ12の取得には、多数のクライアント装置20から直接行うことができる。したがって、これまでアクセスが集中していたコンテンツ配信サーバ11への負担が軽減され、また、コンテンツ12の取得に要する時間を短縮することができる。
【0085】
また、コンテンツ12の内容が不定期に変わるような環境下においても、コンテンツ12の内容をハッシュ値13によって確認することができるので、各コンテンツ配信サーバ11との通信処理を短くすることができる。
【0086】
さらに、他のクライアント装置20から取得したコンテンツ12が正しいか否かを確認する手段を備えているので、不正なコンテンツ12の表示を防止することができる。
【0087】
次に、コンテンツ配信サーバ11自体及びハッシュ値13をより厳密に検証する機能を加えることによって、前記第1の実施の形態と比べて処理は多いが、コンテンツ本体の信頼性を高くすることができる本発明の第2の実施の形態について説明する。なお、第1の実施の形態と同じ構造を有するものについては、同じ符号を付与することによってその説明を省略する。
【0088】
図7は本発明の第2の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【0089】
図に示されるように、本実施の形態におけるコンテンツ配信サーバ11a及びコンテンツ配信サーバ11bは、記憶手段に、それぞれ、コンテンツ12a及びコンテンツ12b、公開鍵暗号方式によって求めたコンテンツ署名値33a及びコンテンツ署名値33b、前記コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bの公開鍵を第三者(CA)が証明した公開鍵証明書34a及び公開鍵証明書34b等のデータを格納する。前記コンテンツ署名値33a及びコンテンツ署名値33bとは、公知の公開鍵暗号方式(例えば、RSAやDSAなど)に基づいてコンテンツ12a及びコンテンツ12bの生データのハッシュ値(MD5やSHA1など)を元に自身の秘密鍵で作成される。なお、コンテンツ署名値33a及びコンテンツ署名値33bはあらかじめ求めておくことができる。また、本実施の形態においては、公開鍵証明書34a及び公開鍵証明書34bの具体例として、最も一般的なX.509公開鍵証明書を例に説明する。なお、コンテンツ署名値33a及びコンテンツ署名値33b並びに公開鍵証明書34a及び公開鍵証明書34bを統合的に説明する場合には、コンテンツ署名値33及び公開鍵証明書34として説明する。
【0090】
そして、クライアント装置20a及びクライアント装置20bは、キャッシュ記憶装置21a及びキャッシュ記憶装置21bをそれぞれ備えるとともに、前記公開鍵証明書34a及び公開鍵証明書34bを格納する公開鍵証明書ストア22a及び公開鍵証明書ストア22bをそれぞれ備える。前記公開鍵証明書ストア22a及び公開鍵証明書ストア22bは、コンテンツ配信サーバ11a及びコンテンツ配信サーバ11bから公開鍵証明書34a及び公開鍵証明書34bを毎回取得しなくてもよいようにするために設けられる。なお、公開鍵証明書ストア22a及び公開鍵証明書ストア22bを統合的に説明する場合には、公開鍵証明書ストア22として説明する
また、イントラネット16には、前記公開鍵証明書34の有効性の検証を行う公開鍵証明書検証サーバ37が接続される。該公開鍵証明書検証サーバ37は前記公開鍵証明書34が有効であるかどうかの検証を代行して行う。なお、検証とは、公開鍵証明書34の有効期限、公開鍵証明書34の発信元(CA)が公開している失効リスト(CRL)に掲載されていないかどうかの判断、公開鍵証明書34に付けられている発信元(CA)の署名が正しいかどうかの判断(これは新規にコンテンツ配信サーバ11から取得した時だけ行えばよい。)等の項目に対する検証である。なお、前記公開鍵証明書検証サーバ37の公知の具体例としては、XKMS(http://www.w3.org/TR/xkms/)、OCSP(Online Certificate Status Protocol:RFC2560)、SCVP(Simple Certificate Validation Protocol)がある。
【0091】
次に、前記構成の分散協調型コンテンツ配信システムの動作について説明する。
【0092】
まず、クライアント装置20aがコンテンツ12を取得するまでの動作について説明する。
【0093】
図8は本発明の第2の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【0094】
まず、クライアント装置20aは、これからアクセスするコンテンツ配信サーバ11aの公開鍵証明書34aが自身の公開鍵証明書ストア22aに格納されているか否かを判断し、公開鍵証明書ストア22aに格納されていない場合は、前記コンテンツ配信サーバ11aに公開鍵証明書34aの配信要求を送信する。そして、コンテンツ配信サーバ11aは、公開鍵証明書34aの配信要求をクライアント装置20aから受信すると、自身の公開鍵証明書34aを前記クライアント装置20aに送信する。
【0095】
また、前記コンテンツ配信サーバ11aの公開鍵証明書34aが自身の公開鍵証明書ストア22aに格納されている場合、クライアント装置20aは対象となるコンテンツ配信サーバ11aの公開鍵証明書34aの検証依頼を公開鍵証明書検証サーバ37に対して送信する。
【0096】
次に、該公開鍵証明書検証サーバ37は公開鍵証明書34aの検証を行い、その検証結果をクライアント装置20aに返信する。続いて、公開鍵証明書34aの検証結果を受信したクライアント装置20aは、前記検証結果に基づいて公開鍵証明書34aが有効であるか否かを判断する。そして、公開鍵証明書34aが有効でない場合、前記クライアント装置20aは、前記公開鍵証明書34aを公開鍵証明書ストア22aから削除し、再び新しい公開鍵証明書34aをコンテンツ配信サーバ11aから取得する。また、公開鍵証明書34aが有効である場合、クライアント装置20aは公開鍵証明書34aを自身の公開鍵証明書ストア22aに追加する。なお、前記クライアント装置20aは公開鍵証明書34aから公開鍵を取得する。
【0097】
続いて、クライアント装置20aはコンテンツ署名値33aの配信要求をコンテンツ配信サーバ11aに対して送信する。そして、該コンテンツ配信サーバ11aは前記配信要求をが受信すると、コンテンツ署名値33aをクライアント装置20aに対して送信する。
【0098】
次に、クライアント装置20aは、公開鍵証明書34aから取得した公開鍵に基づいてコンテンツ署名値33aからコンテンツ12aのハッシュ値を求める。
なお、以降の動作については、前記第1の実施の形態と同様であるので、説明を省略する。
【0099】
次に、フローチャートについて説明する。
ステップS41 クライアント装置20aは、コンテンツ配信サーバ11aの公開鍵証明書34aを格納しているか否かを判断する。所有している場合はステップS44に進み、格納していない場合はステップS42に進む。
ステップS42 クライアント装置20aは、コンテンツ配信サーバ11aの公開鍵証明書34aの配信要求をコンテンツ配信サーバ11aに対して送信する。
ステップS43 コンテンツ配信サーバ11aは、コンテンツ配信サーバ11aの公開鍵証明書34aをクライアント装置20aに対して送信する。
ステップS44 クライアント装置20aは、公開鍵証明書34aの検証依頼を公開鍵証明書検証サーバ37に対して行う。
ステップS45 公開鍵証明書検証サーバ37は、公開鍵証明書34aの検証を行う。
ステップS46 公開鍵証明書検証サーバ37は、公開鍵証明書34aの検証結果をクライアント装置20aに対して送信する。
ステップS47 クライアント装置20aは、公開鍵証明書34aの検証結果から公開鍵証明書34aが有効であるか否かを判断する。公開鍵証明書34aが有効である場合はステップS49に進み、公開鍵証明書34aが有効でない場合はステップS48に進む。
ステップS48 クライアント装置20aは、内部に保持している公開鍵証明書34aを削除し、ステップS41に戻る。
ステップS49 クライアント装置20aは、公開鍵証明書34aを公開鍵証明書ストア22aに追加する。
ステップS50 クライアント装置20aは、コンテンツ署名値33aをコンテンツ配信サーバ11aに対して要求する。
ステップS51 コンテンツ配信サーバ11aは、コンテンツ署名値33aをクライアント装置20aに対して送信する。
ステップS52 クライアント装置20aは、コンテンツ署名値33aからハッシュ値を取得する。
【0100】
このように、本実施の形態においては、コンテンツ配信サーバ11自体及びハッシュ値をより厳密に検証することができる。ただし、コンテンツ配信サーバ11の処理量は第1の実施の形態と比較して増える。
【0101】
また、正しいコンテンツ配信サーバ11に格納されている秘密鍵だけが正しいコンテンツ署名値33aを作ることができる。そのため、他の装置が偽コンテンツを配信するサーバに成り済ましている場合であっても、偽コンテンツを配信した装置が作ったコンテンツ署名値33aから公開鍵証明書34aの公開鍵で取得したハッシュ値は、偽コンテンツのハッシュ値と一致しないので、見破ることができる。
【0102】
ところで、前記第2の実施の形態においては、コンテンツ配信サーバ11の公開鍵証明書34をクライアント装置20が取得して格納していたが、別の実施例として公開鍵証明書管理検証サーバがコンテンツ配信サーバの公開鍵証明書を取得して格納する本発明の第3の実施の形態について説明する。なお、第1及び第2の実施の形態と同じ構造を有するものについては、同じ符号を付与することによってその説明を省略する。
【0103】
図9は本発明の第3の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【0104】
本実施の形態においては、前記第2の実施の形態における公開鍵証明書検証サーバ37に代えて、公開鍵証明書管理検証サーバ47がイントラネット16に接続されている。図に示されるように、前記公開鍵証明書管理検証サーバ47は、コンテンツ配信サーバ11の公開鍵証明書34を格納する公開鍵証明書ストア48を備えている。そして、前記公開鍵証明書管理検証サーバ47は、クライアント装置20aから指定されたコンテンツ配信サーバ11の公開鍵請求があった場合に、該当する公開鍵証明書34の取得、保管、及び、公開鍵証明書34が有効であるかどうかの検証を代行して行う。そして、前記公開鍵証明書34が有効である場合は、その公開鍵をクライアント装置20aに送信する。なお、前記公開鍵証明書管理検証サーバ47の公知の具体例として、XKMS(http://www.w3.org/TR/xkms/)がある。
【0105】
次に、前記構成の分散協調型コンテンツ配信システムの動作について説明する。
【0106】
まず、クライアント装置20aがコンテンツ12を取得するまでの動作について説明する。
【0107】
図10は本発明の第3の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【0108】
まず、クライアント装置20aは、取得したいコンテンツ12aを所有しているコンテンツ配信サーバ41の公開鍵の取得を公開鍵証明書管理検証サーバ47に依頼する。そして、該公開鍵証明書管理検証サーバ47は、依頼されたコンテンツ配信サーバ41の公開鍵証明書34aが自身の公開鍵証明書ストア48にあるか否かを判断し、公開鍵証明書ストア48にない場合は、コンテンツ配信サーバ41に公開鍵証明書34aを要求し、公開鍵証明書34aを送信してもらう。
【0109】
次に、公開鍵証明書管理検証サーバ47は受信した公開鍵証明書34aの検証を行う。そして、公開鍵証明書34aの検証結果の内容から、前記公開鍵証明書34aが無効であると判断した場合、前記公開鍵証明書管理検証サーバ47は、前記公開鍵証明書34aを公開鍵証明書ストア48から削除し、再び新しい公開鍵証明書34aをコンテンツ配信サーバ41から取得する。
【0110】
また、公開鍵証明書34aが有効であると判断した場合、公開鍵証明書管理検証サーバ47は、前記公開鍵証明書34aを自身の公開鍵証明書ストア48に追加し、検証した前記公開鍵証明書34aにある公開鍵をクライアント装置20aに送信する。
【0111】
次に、クライアント装置20aは、コンテンツ署名値33aの要求をコンテンツ配信サーバ41に対して送信する。そして、該コンテンツ配信サーバ41はコンテンツ署名値33aの要求を受信すると、前記クライアント装置20aにコンテンツ署名値33aを送信する。そして、前記クライアント装置20aは、受信した公開鍵に基づいてコンテンツ署名値33aからコンテンツのハッシュ値を求める。なお、以降の動作については、前記第1の実施の形態と同様であるので、説明を省略する。
【0112】
次に、フローチャートについて説明する。
ステップS61 クライアント装置20aは、公開鍵証明書管理検証サーバ47に対してコンテンツ配信サーバ41の公開鍵を要求する。
ステップS62 公開鍵証明書管理検証サーバ47は、コンテンツ配信サーバ41の公開鍵証明書34aを所有しているか否かを判断する。所有している場合はステップS65に進み、所有していない場合はステップS63に進む。
ステップS63 公開鍵証明書管理検証サーバ47は、コンテンツ配信サーバ41の公開鍵証明書34aをコンテンツ配信サーバ41に対して要求する。
ステップS64 コンテンツ配信サーバ41は、コンテンツ配信サーバ41の公開鍵証明書34aを公開鍵証明書管理検証サーバ47に対して送信する。
ステップS65 公開鍵証明書管理検証サーバ47は、公開鍵証明書34aの検証を行う。
ステップS66 公開鍵証明書管理検証サーバ47は、公開鍵証明書34aの検証結果から公開鍵証明書34aが有効であるか否かを判断する。公開鍵証明書34aが有効である場合はステップS68に進み、公開鍵証明書34aが有効でない場合はステップS67に進む。
ステップS67 公開鍵証明書管理検証サーバ47は、内部に保持している公開鍵証明書34aを削除し、ステップS62に戻る。
ステップS68 公開鍵証明書管理検証サーバ47は、公開鍵証明書34aを公開鍵証明書ストア48に追加する。
ステップS69 公開鍵証明書管理検証サーバ47は、公開鍵をクライアント装置20aに対して送信する。
ステップS70 クライアント装置20aは、コンテンツ署名値33aをコンテンツ配信サーバ41に対して要求する。
ステップS71 コンテンツ配信サーバ41は、コンテンツ署名値33aをクライアント装置20aに対して送信する。
ステップS72 クライアント装置20aは、コンテンツ署名値33aからハッシュ値を取得する。
【0113】
このように、本実施の形態においては、クライアント装置20は公開鍵の取得及び検証を別の装置に委ねることができるので、前記第2の実施の形態と比較してクライアント装置20の処理負担を減らすことができる。
【0114】
次に、キャッシュインデックスサーバ17の管理下にあるイントラネット16のクライアント装置20の記憶手段にコンテンツ12が格納されていない場合に、他のネットワーク14のキャッシュインデックスサーバ17に問合せを行う本発明の第4の実施の形態について説明する。なお、第1の実施の形態と同じ構造を有するものについては、同じ符号を付与することによってその説明を省略する。
【0115】
図11は本発明の第4の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【0116】
図に示されるように、本実施の形態においては、二つのイントラネット16a及び16bがインターネット14に接続されている。ここで、前記イントラネット16a及びイントラネット16bは、それぞれ、前記第1の実施の形態におけるイントラネット16と同様の構成を有し同様の装置が接続されている。すなわち、前記イントラネット16aにはキャッシュインデックスサーバ17a、クライアント装置20a及びクライアント装置20bが接続され、前記イントラネット16bにはキャッシュインデックスサーバ17b、クライアント装置20c及びクライアント装置20dが接続されている。また、イントラネット16a及びイントラネット16bは、それぞれ、ルータ15a及びルータ15bを介してインターネット14に接続される。なお、付与された符号における数字が同じものは同じ構造を有するものである。
【0117】
次に、前記構成の分散協調型コンテンツ配信システムの動作について説明する。
【0118】
まず、クライアント装置20aがコンテンツを取得するまでの動作について説明する。
【0119】
図12は本発明の第4の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【0120】
ここで、クライアント装置20aが存在確認要求をキャッシュインデックスサーバ17aに送信するまでの動作は、前記第1の実施の形態と同様なので、説明を省略する。なお、前記クライアント装置20aは、同じイントラネット16aのキャッシュインデックスサーバ17aに存在確認要求を送信する。
【0121】
そして、キャッシュインデックスサーバ17aは自身のキャッシュインデックスデータベース19aを検索し、該当するコンテンツ12をキャッシュ記憶装置21に格納するクライアント装置20が登録されている場合は、そのクライアント装置名をクライアント装置20aに送信する。すると、クライアント装置20aは前記第1の実施の形態におけるステップS9以降の動作を行う。
【0122】
また、クライアント装置20が登録されていない場合、キャッシュインデックスサーバ17aは他のイントラネット16bに接続されているキャッシュインデックスサーバ17bに問い合わせを送信する。そして、キャッシュインデックスサーバ17bは自身のキャッシュインデックスデータベース19bを検索し、該当するコンテンツ12をキャッシュ記憶装置21に格納するクライアント装置20が登録されている場合は、そのクライアント装置名をキャッシュインデックスサーバ17aに送信する。また、クライアント装置が登録されていない場合、キャッシュインデックスサーバ17bはキャッシュインデックスサーバ17aにその旨の通知を送信する。
【0123】
次に、キャッシュインデックスサーバ17aはキャッシュインデックスサーバ17bから前記問い合わせの結果を受信する。そして、イントラネット16bに接続されているクライアント装置20が該当するコンテンツ12を格納している場合、そのクライアント装置名をクライアント装置20aに送信する。また、クライアント装置が登録されていない場合、登録なしという結果をキャッシュインデックスサーバ17aに送信する。なお、以降の動作については、前記第1の実施の形態と同様であるので、説明を省略する。
【0124】
次に、フローチャートについて説明する。
ステップS81 クライアント装置20aは、キャッシュインデックスサーバ17aに対して該当するコンテンツの存在確認要求を送信する。
ステップS82 キャッシュインデックスサーバ17aは、該当するコンテンツを所有しているクライアント装置20がキャッシュインデックスデータベース19aに存在するか否かを判断する。存在する場合はステップS83に進み、存在しない場合はステップS84に進む。
ステップS83 キャッシュインデックスサーバ17aは、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名をクライアント装置20aに対して送信する。
ステップS84 キャッシュインデックスサーバ17aは、他のキャッシュインデックスサーバ17bに問合せを送信する。
ステップS85 キャッシュインデックスサーバ17bは、該当するコンテンツ12を所有しているクライアント装置20がキャッシュインデックスデータベース19bに存在するか否かを判断する。存在する場合はステップS86に進み、存在しない場合はステップS87に進む。
ステップS86 キャッシュインデックスサーバ17bは、該当するコンテンツ12をキャッシュ記憶装置21に格納しているクライアント装置名をキャッシュインデックスサーバ17aに対して送信する。
ステップS87 キャッシュインデックスサーバ17bは、該当するコンテンツをキャッシュ記憶装置21に保存しているクライアント装置名がないことをキャッシュインデックスサーバ17aに対して送信する。
ステップS88 キャッシュインデックスサーバ17aは、他のキャッシュインデックスサーバからの問合せ結果を受信する。
ステップS89 キャッシュインデックスサーバ17aは、該当するコンテンツを所有しているクライアント装置が他のキャッシュインデックスサーバ17に登録されているか否かを判断する。登録されている場合はステップS83に戻り、登録されていない場合はステップS90に進む。
ステップS90 キャッシュインデックスサーバ17aは、登録なしをクライアント装置20aに対して送信する。
【0125】
このように、本実施の形態においては、キャッシュインデックスデータベース19に登録されているクライアント装置20の範囲が広がるので、よりコンテンツ配信サーバ11からのコンテンツ送信の回数を減らすことができ、コンテンツ配信サーバ11の負荷を軽減することができる。
【0126】
なお、前記第1〜第4の実施の形態において、対象となるコンテンツ12は、例えば、ウェブページ、文字データ、音楽等の音声データ、ビデオ、写真等の画像データ、ソフトウェア等であるが、いかなる種類のものであってもよい。また、各装置間の通信は、SSLやIPsecなどの暗号通信を行ってもよい。さらに、キャッシュインデックスサーバ17は、キャッシュインデックスデータベース19のバックアップや、負荷分散のために、複数のサーバで構成してもよい。
【0127】
そして、前記第2の実施の形態においては、公開鍵証明書の検証を公開鍵証明書検証サーバ37が行う場合について説明したが、該公開鍵証明書検証サーバ37と同等の機能を各クライアント装置20が所持している場合は、各クライアント装置20が独自に行ってもよい。
【0128】
また、第2及び第3の実施の形態において、公開鍵証明書検証の発信元のポリシーが許せば毎回ではなく、発信元が定める周期内であれば、以前の検証結果を利用することもできる。例えば、失効リスト(CRL)の次回発信日までは前の検証結果を利用してもよい。
【0129】
図13は本発明の第4の実施の形態における分散協調型コンテンツ配信システムの他の構成を示す図である。
【0130】
さらに、前記第4の実施の形態においては、キャッシュインデックスサーバ17の連携は二台だけであったが、三台以上であってもよい。また、接続形態として図13に示されるように、イントラネット同士が直接接続していてもよい。
【0131】
なお、本発明は前記実施の形態に限定されるものではなく、本発明の趣旨に基づいて種々変形させることが可能であり、それらを本発明の範囲から排除するものではない。
【0132】
【発明の効果】
以上詳細に説明したように、本発明によれば、分散協調型コンテンツ配信システムにおいては、コンテンツが不定期に変わる環境下であってもコンテンツ配信サーバへの負荷を軽減することができ、クライアント装置のキャッシュに格納されているコンテンツが不正に変更されていないかどうかを確認することができ、他のクライアント装置からはクライアント装置のキャッシュ装置装置にだけしかアクセスすることができない。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【図2】本発明の第1の実施の形態におけるキャッシュインデックスデータベースの内容を示す図である。
【図3】本発明の第1の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示す第1のフローチャートである。
【図4】本発明の第1の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示す第2のフローチャートである。
【図5】本発明の第1の実施の形態におけるクライアント装置の指示でキャッシュ記憶装置に格納されたコンテンツを削除する動作を示すフローチャートである。
【図6】本発明の第1の実施の形態におけるキャッシュインデックスサーバの指示でキャッシュ記憶装置に格納されたコンテンツを削除する動作を示すフローチャートである。
【図7】本発明の第2の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【図8】本発明の第2の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【図9】本発明の第3の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【図10】本発明の第3の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【図11】本発明の第4の実施の形態における分散協調型コンテンツ配信システムの構成を示す図である。
【図12】本発明の第4の実施の形態における分散協調型コンテンツ配信システムのクライアント装置がコンテンツを取得するまでの動作を示すフローチャートである。
【図13】本発明の第4の実施の形態における分散協調型コンテンツ配信システムの他の構成を示す図である。
【符号の説明】
10 分散協調型コンテンツ配信システム
11、11a、11b、41 コンテンツ配信サーバ
12、12a、12b コンテンツ
13、13a、13b ハッシュ値
17 、17a、17b キャッシュインデックスサーバ
19、19a、19b キャッシュインデックスデータベース
20、20a、20b、20c、20d クライアント装置
21、21a、21b、21c、21d キャッシュ記憶装置
22、22a、22b、48 公開鍵証明書ストア
33、33a、33b コンテンツ署名値
34、34a、34b 開鍵証明書
37 公開鍵証明書検証サーバ
47 公開鍵証明書管理検証サーバ
Claims (17)
- (a)コンテンツ及び該コンテンツを特定する固有情報を配信するコンテンツ配信サーバと、
(b)取得した前記コンテンツを格納するキャッシュ記憶装置を備えるクライアント装置と、
(c)前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバとを有することを特徴とする分散協調型コンテンツ配信システム。 - 一のクライアント装置は、前記コンテンツ配信サーバから所定のコンテンツに対応する固有情報を取得し、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する請求項1に記載の分散協調型コンテンツ配信システム。
- (a)コンテンツ、該コンテンツを特定する固有情報、公開鍵暗号方式によって求めたコンテンツ署名値、及び、公開鍵を第三者が保証した公開鍵証明書を配信するコンテンツ配信サーバと、
(b)取得した前記コンテンツを格納するキャッシュ記憶装置及び取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備えるクライアント装置と、
(c)前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバと、
(d)前記公開鍵証明書の有効性の検証を行う公開鍵証明書検証サーバとを有することを特徴とする分散協調型コンテンツ配信システム。 - (a)一のクライアント装置は、所定のコンテンツ配信サーバの公開鍵証明書を格納していない場合、該公開鍵証明書を前記コンテンツ配信サーバから取得し、前記公開鍵証明書の有効性検証の依頼を前記公開鍵証明書サーバに送信し、
(b)該公開鍵証明書サーバは前記公開鍵証明書の検証結果を前記一のクライアント装置に送信し、
(c)該一のクライアント装置は、前記公開鍵証明書が有効である場合、該公開鍵証明書を格納し、該公開鍵証明書から公開鍵を取得し、前記コンテンツ配信サーバから所定のコンテンツのコンテンツ署名値を取得し、前記公開鍵に基づいて前記コンテンツ署名値から前記所定のコンテンツの固有情報を求め、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する請求項3に記載の分散協調型コンテンツ配信システム。 - (a)コンテンツ、該コンテンツを特定する固有情報、公開鍵暗号方式によって求めたコンテンツ署名値、及び、公開鍵を第三者が保証した公開鍵証明書を配信するコンテンツ配信サーバと、
(b)取得した前記コンテンツを格納するキャッシュ記憶装置及び取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備えるクライアント装置と、
(c)前記コンテンツのそれぞれに対応する固有情報及びクライアント装置に関するデータを格納するキャッシュインデックスデータベースを備えたキャッシュインデックスサーバと、
(d)取得した前記公開鍵証明書を格納する公開鍵証明書ストアを備え、前記公開鍵証明書の取得、保管及び有効性の検証を行う公開鍵証明書検証サーバとを有することを特徴とする分散協調型コンテンツ配信システム。 - (a)一のクライアント装置は、前記公開鍵の配信要求を公開鍵証明書管理検証サーバに送信し、
(b)該公開鍵証明書サーバは前記公開鍵の取得及び検証を行い、有効な公開鍵を前記一のクライアント装置に送信し、
(c)該一のクライアント装置は、前記コンテンツ配信サーバから所定のコンテンツのコンテンツ署名値を取得し、前記公開鍵に基づいて前記コンテンツ署名値から前記所定のコンテンツの固有情報を求め、該固有情報に対応するコンテンツを格納する他のクライアント装置があるか否かの問合せを前記キャッシュインデックスサーバに送信し、前記他のクライアント装置がある場合、該他のクライアント装置から前記コンテンツを取得し、該コンテンツに対応する固有情報を算出し、該固有情報と前記コンテンツ配信サーバから取得した固有情報とを比較して前記コンテンツの真偽判定を行い、前記コンテンツが真である場合、該コンテンツを出力するとともにキャッシュ記憶装置に格納する請求項5に記載の分散協調型コンテンツ配信システム。 - 前記クライアント装置は、取得したコンテンツが真であることが判定された後に、前記コンテンツを前記キャッシュ記憶装置に格納する請求項1〜6のいずれか1項に記載の分散協調型コンテンツ配信システム。
- 前記クライアント装置は、前記コンテンツの名称、種類等に応じて前記コンテンツを前記キャッシュ記憶装置に格納する請求項1〜6のいずれか1項に記載の分散協調型コンテンツ配信システム。
- 前記キャッシュインデックスサーバは、一のクライアント装置が要求する所定のコンテンツを格納する他のクライアント装置が複数である場合、該他のクライアント装置の一覧を所定のアルゴリズムに従って並べ替えた一覧を前記一のクライアント装置に送信し、前記一のクライアント装置は、前記並べ替えた一覧の順番にコンテンツの取得を試みる請求項1〜6のいずれか1項に記載の分散協調型コンテンツ配信システム。
- 前記キャッシュインデックスサーバは、前記クライアント装置の要求に従って、キャッシュインデックスデータベースの中から所定の情報を削除する請求項1〜6のいずれか1項に記載の分散協調型コンテンツ配信システム。
- 前記クライアント装置は、キャッシュ記憶装置が格納するコンテンツの記憶量が前記クライアント装置の管理者が定めた条件を超えた場合に要求を前記キャッシュインデックスサーバに送信する請求項10に記載の分散協調型コンテンツ配信システム。
- 前記クライアント装置は、前記キャッシュインデックスサーバの要求に従って、キャッシュ記憶装置からコンテンツを削除する請求項1〜6のいずれか1項に記載の分散協調型コンテンツ配信システム。
- 前記キャッシュインデックスサーバは、定期的にキャッシュインデックスデータベースの利用頻度を調べ、利用頻度が低いコンテンツを削除する要求を送信する請求項12に記載の分散協調型コンテンツ配信システム。
- 前記キャッシュインデックスサーバは、キャッシュされたデータ量が定めた条件を超えた場合に利用頻度が低いコンテンツを削除する要求を送信する請求項12に記載の分散協調型コンテンツ配信システム。
- 前記キャッシュインデックスサーバは、名称、種類等が同じ登録済のコンテンツのうち固有情報がより古いコンテンツを削除する要求を送信する請求項12に記載の分散協調型コンテンツ配信システム。
- 前記キャッシュインデックスサーバは、一のクライアント装置が要求する所定のコンテンツを格納する他のクライアント装置がキャッシュインデックスデータベースに含まれていない場合、他のキャッシュインデックスサーバに問い合わせる請求項1〜6のいずれか1項に記載の分散協調型コンテンツ配信システム。
- 前記固有情報は、ハッシュ値である請求項1〜16のいずれか1項に記載の分散協調型コンテンツ配信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002350697A JP2004185263A (ja) | 2002-12-03 | 2002-12-03 | 分散協調型コンテンツ配信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002350697A JP2004185263A (ja) | 2002-12-03 | 2002-12-03 | 分散協調型コンテンツ配信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004185263A true JP2004185263A (ja) | 2004-07-02 |
Family
ID=32752834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002350697A Withdrawn JP2004185263A (ja) | 2002-12-03 | 2002-12-03 | 分散協調型コンテンツ配信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004185263A (ja) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006103800A1 (ja) | 2005-03-29 | 2006-10-05 | Brother Kogyo Kabushiki Kaisha | 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム |
JP2006277337A (ja) * | 2005-03-29 | 2006-10-12 | Brother Ind Ltd | 情報処理装置、情報処理方法及び情報処理用プログラム |
JP2007034630A (ja) * | 2005-07-26 | 2007-02-08 | Brother Ind Ltd | 情報配信システム、登録装置、情報処理装置、登録プログラム及び情報処理プログラム |
JP2007305025A (ja) * | 2006-05-15 | 2007-11-22 | Nippon Telegr & Teleph Corp <Ntt> | 生体の原理を用いたレプリカ制御法、およびそれを具備する装置、ならびにそのプログラム |
JP2008507919A (ja) * | 2004-07-21 | 2008-03-13 | クゥアルコム・インコーポレイテッド | ハイブリッドマルチメディアの提示のための方法および装置 |
WO2008107993A1 (ja) * | 2007-03-08 | 2008-09-12 | Pioneer Corporation | 映像コンテンツ再生方法及びシステム |
JP2009518995A (ja) * | 2005-12-06 | 2009-05-07 | リッパーシイ・セレッシャル・エルエルシイ | デジタル対象物タイトル認証 |
JP2009537909A (ja) * | 2006-05-16 | 2009-10-29 | アベニュー インク | パケットベースデータ転送のための規則ベースキャッシング |
JP2009259265A (ja) * | 2006-07-19 | 2009-11-05 | Panasonic Corp | 分散ファイル管理システム |
JP2010505201A (ja) * | 2006-09-29 | 2010-02-18 | マイクロソフト コーポレーション | セキュア・ピアツーピア・キャッシュ共有 |
JP2010238161A (ja) * | 2009-03-31 | 2010-10-21 | Brother Ind Ltd | ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法 |
US7870422B2 (en) | 2006-12-27 | 2011-01-11 | International Business Machines Corporation | Apparatus and method for backing up data on server using at least one cache as a client |
JP2011525278A (ja) * | 2008-06-19 | 2011-09-15 | マイクロソフト コーポレーション | ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム |
US8055780B2 (en) | 2006-09-12 | 2011-11-08 | Konica Minolta Holdings, Inc. | Method of managing information and information processing apparatus |
US8194701B2 (en) | 2005-12-06 | 2012-06-05 | Lippershy Celestial Llc | System and/or method for downstream bidding |
US8195764B2 (en) | 2005-01-13 | 2012-06-05 | Brother Kogyo Kabushiki Kaisha | Information delivery system, delivery request program, transfer program, delivery program, and the like |
JP2014035601A (ja) * | 2012-08-07 | 2014-02-24 | Kddi Corp | サーバ装置、通信装置及びプログラム |
WO2015052968A1 (ja) * | 2013-10-08 | 2015-04-16 | ソニー株式会社 | サーバ装置、クライアント装置、情報処理方法および記録媒体 |
JP2015514274A (ja) * | 2012-04-05 | 2015-05-18 | マイクロソフト コーポレーション | キャッシュ管理 |
WO2015166680A1 (ja) * | 2014-04-30 | 2015-11-05 | ソニー株式会社 | クライアント装置、サーバ、記録媒体および情報処理方法 |
JP2016116100A (ja) * | 2014-12-16 | 2016-06-23 | Kddi株式会社 | 管理サーバ、コンテンツ共有システム及びコンテンツ共有方法 |
-
2002
- 2002-12-03 JP JP2002350697A patent/JP2004185263A/ja not_active Withdrawn
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008507919A (ja) * | 2004-07-21 | 2008-03-13 | クゥアルコム・インコーポレイテッド | ハイブリッドマルチメディアの提示のための方法および装置 |
US8195764B2 (en) | 2005-01-13 | 2012-06-05 | Brother Kogyo Kabushiki Kaisha | Information delivery system, delivery request program, transfer program, delivery program, and the like |
JP4635682B2 (ja) * | 2005-03-29 | 2011-02-23 | ブラザー工業株式会社 | 情報処理装置、情報処理方法及び情報処理用プログラム |
JP2006277337A (ja) * | 2005-03-29 | 2006-10-12 | Brother Ind Ltd | 情報処理装置、情報処理方法及び情報処理用プログラム |
US8190779B2 (en) | 2005-03-29 | 2012-05-29 | Brother Kogyo Kabushiki Kaisha | Information processing apparatus and storing apparatus, information processing method and storing method, and recording medium that promptly and efficiently distributes content |
WO2006103800A1 (ja) | 2005-03-29 | 2006-10-05 | Brother Kogyo Kabushiki Kaisha | 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム |
JP2007034630A (ja) * | 2005-07-26 | 2007-02-08 | Brother Ind Ltd | 情報配信システム、登録装置、情報処理装置、登録プログラム及び情報処理プログラム |
US7886037B2 (en) | 2005-07-26 | 2011-02-08 | Brother Kogyo Kabushiki Kaisha | Information distribution system, registration apparatus, information processing apparatus, recording medium having registration program memorized in it, and storage medium having information processing program memorized in it |
JP4661429B2 (ja) * | 2005-07-26 | 2011-03-30 | ブラザー工業株式会社 | 情報配信システム、情報処理装置、情報処理プログラム及び情報処理方法 |
US8194701B2 (en) | 2005-12-06 | 2012-06-05 | Lippershy Celestial Llc | System and/or method for downstream bidding |
JP2009518995A (ja) * | 2005-12-06 | 2009-05-07 | リッパーシイ・セレッシャル・エルエルシイ | デジタル対象物タイトル認証 |
JP4590651B2 (ja) * | 2006-05-15 | 2010-12-01 | 日本電信電話株式会社 | レプリケーション制御方法とシステムおよびプログラム |
JP2007305025A (ja) * | 2006-05-15 | 2007-11-22 | Nippon Telegr & Teleph Corp <Ntt> | 生体の原理を用いたレプリカ制御法、およびそれを具備する装置、ならびにそのプログラム |
JP2009537909A (ja) * | 2006-05-16 | 2009-10-29 | アベニュー インク | パケットベースデータ転送のための規則ベースキャッシング |
JP2009259265A (ja) * | 2006-07-19 | 2009-11-05 | Panasonic Corp | 分散ファイル管理システム |
US8055780B2 (en) | 2006-09-12 | 2011-11-08 | Konica Minolta Holdings, Inc. | Method of managing information and information processing apparatus |
JP4762347B2 (ja) * | 2006-09-29 | 2011-08-31 | マイクロソフト コーポレーション | セキュア・ピアツーピア・キャッシュ共有 |
JP2010505201A (ja) * | 2006-09-29 | 2010-02-18 | マイクロソフト コーポレーション | セキュア・ピアツーピア・キャッシュ共有 |
US7870422B2 (en) | 2006-12-27 | 2011-01-11 | International Business Machines Corporation | Apparatus and method for backing up data on server using at least one cache as a client |
WO2008107993A1 (ja) * | 2007-03-08 | 2008-09-12 | Pioneer Corporation | 映像コンテンツ再生方法及びシステム |
US9747340B2 (en) | 2008-06-19 | 2017-08-29 | Microsoft Technology Licensing, Llc | Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic |
JP2011525278A (ja) * | 2008-06-19 | 2011-09-15 | マイクロソフト コーポレーション | ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム |
JP2010238161A (ja) * | 2009-03-31 | 2010-10-21 | Brother Ind Ltd | ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法 |
JP2015514274A (ja) * | 2012-04-05 | 2015-05-18 | マイクロソフト コーポレーション | キャッシュ管理 |
US10198462B2 (en) | 2012-04-05 | 2019-02-05 | Microsoft Technology Licensing, Llc | Cache management |
JP2014035601A (ja) * | 2012-08-07 | 2014-02-24 | Kddi Corp | サーバ装置、通信装置及びプログラム |
WO2015052968A1 (ja) * | 2013-10-08 | 2015-04-16 | ソニー株式会社 | サーバ装置、クライアント装置、情報処理方法および記録媒体 |
JPWO2015052968A1 (ja) * | 2013-10-08 | 2017-03-09 | ソニー株式会社 | サーバ装置、クライアント装置、情報処理方法および記録媒体 |
US10509826B2 (en) | 2013-10-08 | 2019-12-17 | Sony Corporation | Server device, client device, information processing method, and recording medium |
US10171613B2 (en) | 2014-04-30 | 2019-01-01 | Sony Corporation | Client device, server, recording medium and information processing method |
WO2015166680A1 (ja) * | 2014-04-30 | 2015-11-05 | ソニー株式会社 | クライアント装置、サーバ、記録媒体および情報処理方法 |
JP2016116100A (ja) * | 2014-12-16 | 2016-06-23 | Kddi株式会社 | 管理サーバ、コンテンツ共有システム及びコンテンツ共有方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004185263A (ja) | 分散協調型コンテンツ配信システム | |
US11281805B2 (en) | Distributed blockchain-based method for saving the location of a file | |
US7500099B1 (en) | Method for mitigating web-based “one-click” attacks | |
US8959336B1 (en) | Securing locally stored web-based database data | |
US7437551B2 (en) | Public key infrastructure scalability certificate revocation status validation | |
KR100781725B1 (ko) | 피어 투 피어 인가를 위한 방법 및 시스템 | |
CA2327078C (en) | Secure session management and authentication for web sites | |
US20180139056A1 (en) | Apparatus and method to perform secure data sharing in a distributed network by using a blockchain | |
JP2022509105A (ja) | ブロックチェーン上に格納されたデータへのアクセスを可能にするコンピュータにより実施されるシステム及び方法 | |
US20090138486A1 (en) | Secure Content Descriptions | |
US7966491B2 (en) | Protection of the distribution of digital documents in a peer to peer network | |
JP4474845B2 (ja) | Crl発行通知機能付き認証基盤システム | |
US7100045B2 (en) | System, method, and program for ensuring originality | |
US7533269B2 (en) | Digital-signed digital document exchange supporting method and information processor | |
JP2004102951A (ja) | ネットワークシステム | |
KR20090086276A (ko) | 메타데이터 브로커 | |
Lee et al. | Firmware verification of embedded devices based on a blockchain | |
JP5347429B2 (ja) | ユニフォームリソースロケータ書換方法及び装置 | |
WO2000046681A9 (en) | Content certification | |
JPWO2005004386A1 (ja) | 認証装置 | |
JP4162578B2 (ja) | 電子公告を監査する監査装置および監査方法 | |
US20060047662A1 (en) | Capability support for web transactions | |
CN113300848B (zh) | 证书状态的确定方法和装置 | |
CN107026828A (zh) | 一种基于互联网缓存的防盗链方法及互联网缓存 | |
JP2004171524A (ja) | サービス提供装置、サービス提供方法、サービス提供プログラム及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060207 |