(57)【要約】【課題】  一元的管理下で大容量データを多数ユーザに迅速かつ効率的に配信できるようにする。【解決手段】  管理サーバ１０は，配信スケジュール，配信制御情報，供給者情報，クライアント２０のアドレス情報を保持する。クライアント２０Ａは，管理サーバ１０から得たフィード情報をもとに，配信対象のコンテンツデータを特定し，管理サーバ１０からコンテンツデータの配信制御情報，供給者情報を得て，要求先を特定したコンテンツデータのダウンロード開始を管理サーバ１０へ通知する。管理サーバ１０は，要求先のクライアント２０Ｂにクライアント２０Ａとのピア間通信情報（アドレス情報）を通知する。クライアント２０Ｂは，ピア間通信情報をもとにクライアント２０Ａへコンテンツデータを断片化して送信する。クライアント２０Ａは，受信データをチェックし，不完全であれば再送信を要求し，完全であれば保存する。【選択図】  図１
2009031894.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータの配信を管理する管理サーバと，前記管理サーバまたは他のクライアントからコンテンツデータの配信を受け，他のクライアントへコンテンツデータを配信する複数のピアとによって構成されたコンテンツ配信システムであって，
前記管理サーバは，
コンテンツデータを管理するコンテンツ管理部と，
クライアントの識別情報とＩＰアドレスとポート番号とを含むクライアント情報，クライアントに配信されるコンテンツデータが設定された配信スケジュール情報，コンテンツデータが格納されているクライアントを示す供給者情報，およびコンテンツデータの配信用に分割された断片データ各々の特定情報が設定された配信制御情報を管理する管理情報管理部と，
クライアントからフィード情報要求を受け，前記配信スケジュール情報をもとに前記フィード情報要求を行ったクライアントへ配信されるコンテンツデータが設定されたフィード情報を生成し，送信するフィード情報管理部と，
前記フィード情報要求を行ったクライアントへ当該コンテンツデータの配信制御情報および供給者情報を返信する配信管理部と，
クライアントから，外部ＩＰアドレスおよびアップロード時の外部ポート番号を含むアップロード側アドレス情報を受けて保持し，要求先のクライアントが特定されたコンテンツデータのダウンロード開始通知を受け，当該ダウンロード開始通知から要求元のクライアントの外部ＩＰアドレスおよびダウンロード時の外部ポート番号を取得してダウンロード側アドレス情報として保持し，前記要求先のクライアントへ，前記要求元のクライアントのクライアント情報およびダウンロード側アドレス情報を通知するピア間通信管理部とを備え，
前記クライアントは，
前記管理サーバへフィード情報要求を行い，前記フィード情報を取得するフィード情報取得部と，
前記フィード情報をもとに，配信を要求するコンテンツデータを特定し，前記管理サーバから，当該コンテンツの配信制御情報および供給者情報を取得する配信情報取得部と，
前記供給者情報をもとに，前記コンテンツデータの要求先となるクライアントを特定し，要求先のクライアントを特定した前記コンテンツデータのダウンロード開始通知を前記管理サーバへ送信し，前記要求先のクライアントから前記コンテンツデータを断片データ単位で受信するダウンロード処理部と，
前記配信制御情報をもとに受信された断片データの完全性をチェックし，受信した断片データが不完全であれば前記要求先のクライアントへ当該断片データの再送信を要求する受信データチェック部と，
前記受信した完全な断片データをコンテンツ記憶部に保存する受信コンテンツ管理部と，
外部ＩＰアドレスとアップロード時の外部ポート番号とを含むアップロード側アドレス情報を前記管理サーバへ通知し，前記管理サーバから，前記コンテンツデータを要求するクライアントのクライアント情報およびダウンロード側アドレス情報を受信するピア間通信設定部と，
前記ダウンロード開始通知を行った要求元のクライアントからダウンロード要求を受け，前記配信制御情報にもとづく前記コンテンツデータの断片データをコネクションレスで送信するアップロード処理部とを備える
ことを特徴とするコンテンツ配信システム。
【請求項２】
前記管理サーバの管理情報管理部は，コンテンツデータの配信期間が設定された前記配信スケジュール情報を管理し，
前記フィード情報管理部は，前記フィード情報要求の日時が配信期間内となる配信スケジュール情報のみにもとづいて前記フィード情報を生成し，前記クライアントへ返信する
ことを特徴とする請求項１に記載のコンテンツ配信システム。
【請求項３】
前記管理サーバの管理情報管理部は，同一のコンテンツデータの配信を受けるクライアントのグループが設定された配信グループ情報を管理し，
前記配信管理部は，前記配信グループ情報をもとに，前記フィード情報要求を行ったクライアントと同一グループに属するクライアントのみが供給者として設定された供給者情報を送信する
ことを特徴とする請求項１または請求項２のいずれかに記載のコンテンツ配信システム。
【請求項４】
前記管理サーバの管理情報管理部は，前記管理サーバがコンテンツデータを供給するクライアントの数および当該クライアントと当該コンテンツデータの配信を受ける他のクライアント数の関係が設定された配信経路情報を管理し，
前記配信管理部は，前記配信経路情報をもとに，前記フィード情報要求を行ったクライアントに対する供給者として特定されたクライアントのみが設定された供給者情報を送信する
ことを特徴とする請求項１ないし請求項３のいずれか一項に記載のコンテンツ配信システム。
【請求項５】
コンテンツデータの配信を管理する管理サーバと，前記管理サーバまたは他のクライアントからコンテンツデータの配信を受け，他のクライアントへコンテンツデータを配信する複数のクライアントとによって構成されたコンテンツ配信システムの前記管理サーバで動作するプログラムであって，
コンテンツデータを管理するコンテンツ管理部と，
クライアントの識別情報とＩＰアドレスとポート番号とを含むクライアント情報，クライアントに配信されるコンテンツデータが設定された配信スケジュール情報，コンテンツデータが格納されているクライアントを示す供給者情報，およびコンテンツデータの配信用に分割された断片データ各々の特定情報が設定された配信制御情報を管理する管理情報管理部と，
クライアントからフィード情報要求を受け，前記配信スケジュール情報をもとに前記フィード情報要求を行ったクライアントへ配信されるコンテンツデータが設定されたフィード情報を生成し，送信するフィード情報管理部と，
前記フィード情報要求を行ったクライアントへ当該コンテンツデータの配信制御情報および供給者情報を返信する配信管理部と，
クライアントから，外部ＩＰアドレスおよびアップロード時の外部ポート番号を含むアップロード側アドレス情報を受けて保持し，要求先のクライアントが特定されたコンテンツデータのダウンロード開始通知を受け，当該ダウンロード開始通知から要求元のクライアントの外部ＩＰアドレスおよびダウンロード時の外部ポート番号を取得してダウンロード側アドレス情報として保持し，前記要求先のクライアントへ，前記要求元のクライアントのクライアント情報およびダウンロード側アドレス情報を通知するピア間通信管理部とを備える
前記管理サーバとして，
コンピュータを機能させるための管理サーバ用コンテンツ配信プログラム。
【請求項６】
コンテンツデータの配信を管理する管理サーバと，前記管理サーバまたは他のクライアントからコンテンツデータの配信を受け，他のクライアントへコンテンツデータを配信する複数のクライアントとによって構成されたコンテンツ配信システムの前記クライアントで動作するプログラムであって，
前記管理サーバへフィード情報要求を行い，前記フィード情報を取得するフィード情報取得部と，
前記フィード情報をもとに，配信を要求するコンテンツデータを特定し，前記管理サーバから，当該コンテンツの配信制御情報および供給者情報を取得する配信情報取得部と，
前記供給者情報をもとに，前記コンテンツデータの要求先となるクライアントを特定し，要求先のクライアントを特定した前記コンテンツデータのダウンロード開始通知を前記管理サーバへ送信し，前記要求先のクライアントから前記コンテンツデータを断片データ単位で受信するダウンロード処理部と，
前記配信制御情報をもとに受信された断片データの完全性をチェックし，受信した断片データが不完全であれば前記要求先のクライアントへ当該断片データの再送信を要求する受信データチェック部と，
前記受信した完全な断片データをコンテンツ記憶部に保存する受信コンテンツ管理部と，
外部ＩＰアドレスとアップロード時の外部ポート番号とを含むアップロード側アドレス情報を前記管理サーバへ通知し，前記管理サーバから，前記コンテンツデータを要求するクライアントのクライアント情報およびダウンロード側アドレス情報を受信するピア間通信設定部と，
前記ダウンロード開始通知を行った要求元のクライアントからダウンロード要求を受け，前記配信制御情報にもとづく前記コンテンツデータの断片データをコネクションレスで送信するアップロード処理部とを備える
前記クライアントとして，
コンピュータを機能させるためのクライアント用コンテンツ配信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，サーバで管理されているファイルやコンテンツなどのデータを，ネットワークを介して配信するデータ配信技術に関する。より詳しくは，管理サーバがデータの配信を管理し，当該管理サーバからクライアントへまたはクライアント間でデータを配信するハイブリッド型ピアツーピアによるコンテンツ配信システム，管理サーバ用／クライアント用コンテンツ配信プログラムに関する。
【背景技術】
【０００２】
ネットワークに接続するユーザに，データを効率的に配信する仕組みとして，ピアツーピア型ネットワークによるデータ配信システムが知られている。ピアツーピア型ネットワークでは，ネットワークに接続するユーザがクライアントとしてもサーバとしても機能する。例えば，特許文献１に示されているように，ピアツーピアのデータ配信システムでは，ユーザが，クライアントとして他のユーザにファイル要求を行い，またあるときは，他のユーザからファイル要求を受けてサーバとして振る舞う。これにより，特定のサーバを設けることなくデータ配信が実現される。
【特許文献１】特表２００２−５２２９５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ピアツーピアのデータ配信システムは，多数ユーザへデータを効率的に配信することができるため，Ｂ２Ｂ（ビーツービー）と呼ばれる企業(business)間サービス分野へ適用することが期待されている。しかし，一方で，高度なセキュリティの維持，確実な配信管理を実現する仕組みが必要である。
【０００４】
しかし，従来のピアツーピアのデータ配信システム，特にピュア型ピアツーピアと呼ばれるデータ配信システムでは，データ配信の制御主体がクライアント側であるため，データ配信のサーバ側からみて，クライアント側のデータ配信状況やエラー状況の把握が困難であり，確実な配信管理が行えないという問題があった。
【０００５】
また，従来のピアツーピアのデータ配信システムでは，ＮＡＴ（Network Address Translation）機能やファイアウォール（Firewall）機能を持つルータの内側のネットワークに接続するユーザ（コンピュータ）とのデータ配信を可能にするために，ルータに対するポートフォワーディングの設定が必要であった。しかし，ルータのポートフォワーディング設定は，セキュリティ上の問題を生じさせるおそれがあり，ビジネス分野でのサービスとしてのデータ配信システムでは，高いセキュリティを維持しつつ，ローカルなネットワークに接続するユーザ間でのピアツーピアのデータ通信を解決する必要があった。
【０００６】
本発明は，上記の問題に鑑みてなされたものであり，ローカルなネットワークに接続するユーザ間でのピアツーピアによるデータ通信を可能にし，確実な管理の下で，セキュリティレベルを損なうことなく，大容量データやストリーミングデータを多数ユーザに迅速かつ効率的に配信するシステムを実現することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は，コンテンツデータの配信を管理する管理サーバと，前記管理サーバまたは他のクライアントからコンテンツデータの配信を受け，他のクライアントへコンテンツデータを配信する複数のピアとによって構成されたコンテンツ配信システムである。
【０００８】
前記管理サーバは，１）コンテンツデータを管理するコンテンツ管理部と，２）クライアントの識別情報とＩＰアドレスとポート番号とを含むクライアント情報，クライアントに配信されるコンテンツデータが設定された配信スケジュール情報，コンテンツデータが格納されているクライアントを示す供給者情報，およびコンテンツデータの配信用に分割された断片データ各々の特定情報が設定された配信制御情報を管理する管理情報管理部と，３）クライアントからフィード情報要求を受け，前記配信スケジュール情報をもとに前記フィード情報要求を行ったクライアントへ配信されるコンテンツデータが設定されたフィード情報を生成し，送信するフィード情報管理部と，４）前記フィード情報要求を行ったクライアントへ当該コンテンツデータの配信制御情報および供給者情報を返信する配信管理部と，５）クライアントから，外部ＩＰアドレスおよびアップロード時の外部ポート番号を含むアップロード時アドレス情報を受けて保持し，クライアントから，要求先のクライアントが特定されたコンテンツデータのダウンロード開始通知を受け，当該ダウンロード開始通知から要求元のクライアントの外部ＩＰアドレスおよびダウンロード時の外部ポート番号を取得してダウンロード時アドレス情報として保持し，前記要求先のクライアントへ，前記要求元のクライアントのクライアント情報およびダウンロード時アドレス情報を通知するピア間通信管理部とを備えることを特徴とする。
【０００９】
前記クライアントは，１）前記管理サーバへフィード情報要求を行い，前記フィード情報を取得するフィード情報取得部と，２）前記フィード情報をもとに，配信を要求するコンテンツデータを特定し，前記管理サーバから，当該コンテンツの配信制御情報および供給者情報を取得する配信情報取得部と，３）前記供給者情報をもとに，前記コンテンツデータの要求先となるクライアントを特定し，要求先のクライアントを特定した前記コンテンツデータのダウンロード開始通知を前記管理サーバへ送信し，前記要求先のクライアントから前記コンテンツデータを断片データ単位で受信するダウンロード処理部と，４）前記配信制御情報をもとに受信された断片データの完全性をチェックし，受信した断片データが不完全であれば前記要求先のクライアントへ当該断片データの再送信を要求する受信データチェック部と，５）前記受信した完全な断片データをコンテンツ記憶部に保存する受信コンテンツ管理部と，６）外部ＩＰアドレスとアップロード時の外部ポート番号とを含むアップロード時アドレス情報を前記管理サーバへ通知し，前記管理サーバから，前記コンテンツデータを要求するクライアントのクライアント情報およびダウンロード時アドレス情報を受信するピア間通信設定部と，７）前記ダウンロード開始通知を行った要求元のクライアントからダウンロード要求を受け，前記配信制御情報にもとづく前記コンテンツデータの断片データをコネクションレスで送信するアップロード処理部とを備えることを特徴とする。
【００１０】
本発明は，以下のように作用する。
【００１１】
管理サーバは，コンテンツ管理部により，配信対象となるコンテンツデータを管理する。また，管理情報管理部により，クライアント情報，配信スケジュール情報，供給者情報，および配信制御情報を管理する。
【００１２】
また，管理サーバのピア間通信管理部は，クライアントのピア間通信設定部から，一定間隔で，外部ＩＰアドレスとアップロード時の外部ポート番号とを含むアップロード時アドレス情報が通知されると，このアップロード時アドレス情報を保持しておく。
【００１３】
クライアントのフィード情報取得部が管理サーバへフィード情報の要求を行うと，管理サーバのフィード情報管理部は，配信スケジュール情報をもとに，クライアントへ配信されるコンテンツデータが設定されたフィード情報を生成し，クライアントへ送信する。
【００１４】
フィード情報要求を行ったクライアントの配信情報取得部は，フィード情報取得部が管理サーバから取得したフィード情報をもとに，配信を要求するコンテンツデータを特定し，管理サーバへ当該コンテンツデータの配信に関する情報を要求する。管理サーバの配信管理部は，このコンテンツデータの配信制御情報および供給者情報をクライアントへ返信する。さらに，クライアントのダウンロード処理部は，供給者情報をもとにコンテンツデータの要求先となるクライアントを特定し，コンテンツデータの要求先のクライアントを特定したダウンロード開始通知を管理サーバへ送信する。
【００１５】
管理サーバのピア間通信管理部は，要求元のクライアントのダウンロード開始通知から，要求元のクライアントの外部ＩＰアドレスおよびダウンロード処理時の外部ポート番号を取得してダウンロード時アドレス情報として保持する。さらに，要求先のクライアントへ，要求元のクライアントのクライアント情報およびダウンロード時アドレス情報を通知する。
【００１６】
要求先のクライアントのピア間通信設定部は，要求元のクライアントのクライアント情報とダウンロード時アドレス情報とを受信し，ダウンロード処理部は，ダウンロード要求を受けると，要求元のクライアントへコンテンツデータの断片データをコネクションレスで送信する。このデータ送信は，ＵＤＰ（User Datagram Protocol）により行われる。
【００１７】
すると，要求元のクライアントのダウンロード処理部は，要求先のクライアントからコンテンツデータを断片データ単位で受信する。続いて，受信データチェック部は，コンテンツデータの配信制御情報をもとに受信された断片データの完全性をチェックし，受信した断片データが不完全であれば要求先のクライアントへ当該断片データの再送信を要求する。一方，受信した断片データが完全であれば，受信コンテンツ管理部が，コンテンツ記憶部に保存する。
【００１８】
また，本発明が上記構成をとる場合に，管理サーバは，クライアントから，要求先として管理サーバ自身が設定されたダウンロード開始通知を受け，要求されたコンテンツデータを送信するコンテンツ送信部を備えることができる。
【００１９】
さらに，管理サーバの管理情報管理部は，コンテンツデータの配信期間が設定された前記配信スケジュール情報を管理することができる。この場合に，管理サーバのフィード情報管理部は，要求の日時が配信期間内となる配信スケジュール情報のみにもとづいてフィード情報を生成し，クライアントへ返信する。
【００２０】
さらに，管理サーバの管理情報管理部は，同一のコンテンツデータの配信を受けるクライアントのグループが設定された配信グループ情報を管理することができる。この場合に，管理サーバの配信管理部は，配信グループ情報をもとに，確認要求を行ったクライアントと同一グループに属するクライアントのみが供給者として設定された供給者情報を送信する。
【００２１】
また，本発明は，前記コンテンツ配信システムの管理サーバで動作する管理サーバ用コンテンツ配信プログラム，およびクライアントで動作するクライアント用コンテンツ配信プログラムである。
【００２２】
本発明にかかるプログラムは，コンピュータが読み取り可能な可搬媒体メモリ，半導体メモリ，ハードディスクなどの適当な記録媒体に格納することができ，これらの記録媒体に記録して提供され，または，通信インタフェースを介して種々の通信網を利用した送受信により提供される。
【発明の効果】
【００２３】
本発明によれば，管理サーバが，配信スケジュール情報，さらに配信処理に必要な供給者情報，配信制御情報などを保持し，クライアントに配信スケジュール情報にもとづいて生成されたフィード情報を通知し，特定されたコンテンツデータの配信を行う。また，クライアントは，管理サーバから得る配信に関する情報をもとに他のクライアントにダウンロード要求を行い，ピアツーピアのデータ通信によってコンテンツデータを取得する。よって，管理サーバは，コンテンツデータ配信の制御主体となって，配信スケジュール，配信対象のコンテンツデータ，配信を受けるクライアントなど，データ配信を完全に管理することができ，さらに，クライアント間のピアツーピアによるコンテンツデータ配信をも管理することができる。
【００２４】
また，管理サーバが，ピアツーピアのデータ通信に必要なクライアントのアドレス情報を管理し，ピアツーピアのデータ通信を行うクライアントに通知する。そのため，ＮＡＴ機能を持つルータの内部ネットワークに接続するクライアント同士でもデータ通信が可能となり，セキュリティ上の問題を生じやすいルータのポートフォワーディング設定を不要にすることができる。
【００２５】
また，本発明では，クライアントのアップロード処理部は，コンテンツデータを断片データ単位で送信するため，効率的なデータ配信を実現できる。さらに，アップロード処理部は，断片データをコネクションレスで送信するため，データ配信処理自体を高速化することができる。
【００２６】
また，クライアントの受信データチェック部は，受信した断片データの完全性をチェックするため，チェック処理のウィンドウサイズを任意に設定でき，ＴＣＰ（Transmission Control Protocol）に比べて高速にチェックを行えるため，データ配信処理自体を高速化することができる。
【００２７】
このように，本発明は，セキュリティ性が重視されているビジネス分野でのデータ配信サービスに適用することができ，多数のユーザに対して，大容量データやストリーミングデータを，高セキュリティ，高速かつ効率的に配信できるシステムを実現することができる。
【発明を実施するための最良の形態】
【００２８】
以下，本発明の最良の実施形態を説明する。
【００２９】
図１は，本発明にかかるコンテンツ配信システムの構成例を示す図である。
【００３０】
本発明にかかるコンテンツ配信システム１は，管理サーバ１０，および複数クライアント２０（２０Ａ，２０Ｂ，…）で構成され，管理サーバ１０が管理するコンテンツデータ（例えば，動画像データ）を，所定のクライアント２０（２０Ａ，２０Ｂ）へ配信する。
【００３１】
管理サーバ１０，クライアント２０（２０Ａ，２０Ｂ）は，それぞれ，ローカルネットワーク内に設置されるコンピュータであり，ルータ１１，２１（２１Ａ，２１Ｂ）を介してインターネット３へ接続する。
【００３２】
クライアント２０（２０Ａ，２０Ｂ）には，一または複数のＤＭＳ（Digital Media Server）２２（２２Ａ，２２Ｂ）が接続し，さらにＤＭＳ（Digital Media Server）２２には一または複数のＤＭＡ（Digital Media Adaptor）２３（２３Ａ，２３Ｂ）が接続される。
【００３３】
ＤＭＳ２２（２２Ａ，２２Ｂ）およびＤＭＡ２３（２３Ａ，２３Ｂ）は，ＤＬＮＡ（Digital Living Network Alliance）に準拠した装置である。なお，クライアント２０およびＤＭＳ２２は，１台の装置として実装することも可能である。
【００３４】
クライアントＡでは，クライアント２０Ａが管理サーバ１０の管理下でコンテンツデータの配信を受けると，ＤＭＳ２２Ａへコンテンツデータを転送し，ＤＭＳ２２Ａは，さらにＤＭＡ２３Ａへ転送する。ＤＭＡ２３Ａからコンテンツデータを取得した所定の再生装置（図示しない）が再生処理を行うことによって，ユーザはコンテンツデータを視聴することができる。
【００３５】
図２は，コンテンツ配信システム１のコンテンツデータの配信例を示す図である。
【００３６】
図２のコンテンツ配信システム１では，管理サーバ（コンダクタ）１０は，拠点として他のクライアントへコンテンツを配信するクライアント（サテライト）２０に対し，コンテンツデータを配信する。コンテンツデータの配信を受けたクライアント（サテライト）２０は，他のクライアント２０（ユーザ）に対しピアツーピアによるコンテンツデータの送信を行う。クライアント２０は，サテライト同士，サテライトとユーザ，ユーザ同士の間で，ピアツーピアによるコンテンツデータの配信を行う。
【００３７】
また，管理サーバ１０は，コンテンツの配信が可能な期間（配信期間）を設定し，配信期間内の配信要求のみを許可することができる。さらに，コンテンツデータの配信が可能な配信グループを設定し，配信グループ内のクライアント（破線で囲まれた範囲内のクライアント）間でのみコンテンツデータの配信を行うように管理することができる。
【００３８】
図３は，コンテンツ配信システム１におけるコンテンツデータの断片データ単位による配信処理を説明するための図である。
【００３９】
コンテンツ配信システム１では，コンテンツデータは，所定のサイズ（例えば，２０Ｋバイト）に分割された断片データを単位として配信される。管理サーバ１０は，コンテンツの分割情報，各断片データの完全性をチェックするためのハッシュ値，断片データの順序などを示す配信制御情報を用意し，コンテンツデータの配信に先立って，フィード情報要求を行ったクライアント２０へ送信する。クライアント２０は，受信した断片データを配信制御情報でチェックし，断片データが完全であれば，他のクライアント（サテライトまたはユーザ）２０に対し，当該断片データを送信する。
【００４０】
例えば，管理サーバ１０からコンテンツデータの「断片データ１」の配信を受けたクライアント（サテライト）２０Ａは，完全性をチェックした後，他のクライアント２０（サテライト２０Ｂ，ユーザ２０Ｐ，２０Ｑ，２０Ｒ）ヘ「断片データ１」を送信する。一方，管理サーバ１０からコンテンツデータの「断片データ２」の配信を受けたクライアント（サテライト）２０Ｂは，完全性をチェックした後，同様に，他のクライアント２０（サテライト２０Ａ，ユーザ２０Ｐ，２０Ｑ，２０Ｒ）ヘ「断片データ２」を送信する。これにより，多数のクライアント２０に対し，コンテンツデータを効率よく配信することができる。
【００４１】
図４は，管理サーバ１０の内部構成例を示す図である。
【００４２】
管理サーバ１０は，ソフトウェアプログラムなどによって構成されるコンテンツ管理部１０１，クライアント管理部１０３，配信スケジュール情報管理部１０４，配信グループ情報管理部１０５，供給者情報管理部１０６，配信制御情報管理部１０７，フィード情報管理部１１０，配信管理部１１１，ピア間通信管理部１１２，コンテンツ送信部１１３を備える。
【００４３】
コンテンツ管理部１０１は，コンテンツ記憶部１２０に記憶された配信対象となるコンテンツデータをコンテンツ管理情報（コンテンツ管理テーブル）によって管理する処理部である。
【００４４】
図５は，コンテンツ管理テーブルのデータ構造例を示す図である。コンテンツ管理テーブルには，コンテンツデータごとに，コンテンツＩＤ（識別情報），コンテンツ名称，コンテンツパス，コンテンツのハッシュ値などの情報が格納される。
【００４５】
クライアント管理部１０３は，コンテンツ配信システム１を構成するクライアント２０をクライアント情報（クライアントテーブル）によって管理する処理部である。
【００４６】
図６は，クライアントテーブルのデータ構造例を示す図である。クライアントテーブルには，クライアントごとに，クライアントＩＤ，クライアント名称，ＩＰアドレス，ポート番号，外部ＩＰアドレス，外部ポート番号などの情報が格納される。外部ＩＰアドレスおよび外部ポート番号は，クライアント２０が接続されるルータ２１の外側のＩＰアドレスおよびアップロード時のポート番号である。
【００４７】
なお，クライアントテーブルには，さらに，ＭＡＣアドレスなどの情報が格納されてもよい。
【００４８】
配信スケジュール情報管理部１０４は，配信スケジュール情報（配信スケジュールテーブル）を管理する処理部である。
【００４９】
図７は，配信スケジュールテーブルのデータ構造例を示す図である。配信スケジュールテーブルには，コンテンツデータごとに，コンテンツＩＤ，配信グループＩＤ，配信開始時間，配信終了時間などの情報が格納される。配信開始時間および配信終了時間は，管理サーバ１０が当該コンテンツデータの配信を行う期間の開始日時および終了日時である。
【００５０】
配信グループ情報管理部１０５は，配信グループ情報によって，同一コンテンツデータが配信されるクライアント２０の範囲を示す配信グループを管理する処理部である。
【００５１】
図８は，配信グループ情報を構成する配信グループテーブルおよびグループ構成テーブルのデータ構造例を示す図である。
【００５２】
図８（Ａ）の配信グループテーブルには，配信グループごとに，配信グループＩＤ，配信グループ名称，初期供給者数，子比率などの情報が格納される。初期供給者数は，配信グループ内で初期時にコンテンツデータを保持し配信するクライアント（供給者）の数である。
【００５３】
子比率は，供給者となるクライアント（例えば，図３のサテライト）２０と，共有者から配信を受けるクライアント（例えば図３のユーザ）２０との比率である。
【００５４】
コンテンツ配信システム１は，配信グループ内で供給者となるクライアント２０（初期供給者）数，当該供給者（サテライト）からコンテンツデータの配信を受けることができるクライアント（子）２０との比率を設定することによって，コンテンツデータの配信の経路制御を行うことができる。
【００５５】
例えば，「初期供給者数＝２，子比率＝１」の場合に，管理サーバ１０から配信を受ける初期供給者のクライアント（サテライト）数＝２台，サテライト２０各々から配信を受けるクライアント（子ユーザ）数＝２台，子ユーザ２０各々から配信を受けるクライアント（孫ユーザ）数＝２，…と制御される。
【００５６】
また，「初期供給者数＝２，子比率＝２」の場合に，管理サーバ１０から配信を受ける初期供給者のクライアント（サテライト）数＝２台，サテライト２０各々から配信を受けるクライアント（子ユーザ）数＝４台，子ユーザ２０各々から配信を受けるクライアント（孫ユーザ）数＝８，…と制御される。
【００５７】
図８（Ｂ）のグループ構成テーブルには，配信グループごとに，配信グループＩＤ，クライアントＩＤ（構成員であるクライアント），初期供給者フラグなどの情報が格納される。初期供給者フラグは，当該クライアントが初期供給者であるかを示すフラグである。
【００５８】
供給者情報管理部１０６は，供給者情報（供給者テーブル）によって，コンテンツデータの供給者となったクライアント２０を管理する処理部である。
【００５９】
図９は，供給者テーブルのデータ構造例を示す図である。供給者テーブルには，供給者であるクライアントごとに，クライアントＩＤ，コンテンツＩＤ（配信できるコンテンツデータ）などの情報が格納される。コンテンツ配信システム１のクライアント２０が階層関係を持ち，自己の上位層のクライアント２０を供給者とする構成の場合には，供給者テーブルに，階層（クライアントが属する階層），階層内インデックス（階層における識別情報）などの情報が格納されてもよい。
【００６０】
配信制御情報管理部１０７は，コンテンツデータの配信制御情報（配信制御ファイル）を管理する処理部である。
【００６１】
図１０は，配信制御ファイルのデータ構造例を示す図である。配信制御ファイルは，コンテンツデータごとに，格納場所（ＵＲＬ），コンテンツ名称，コンテンツサイズ，断片データのサイズ，各断片データのハッシュ値などの情報が格納される。
【００６２】
フィード情報管理部１１０は，クライアント２０からフィード情報の要求を受けると，配信スケジュールをもとに，要求を行ったクライアント２０に配信されるコンテンツデータを設定したフィード情報を生成し，返信する処理部である。
【００６３】
図１１は，フィード情報のデータ構造例を示す図である。フィード情報は，要求を行ったクライアントに対して配信を行えるクライアントごとに，クライアントＩＤ，コンテンツＩＤリスト（配信対象としてクライアントが保持しているコンテンツの一覧），ポート番号（アップロード時のポート番号），配信時間（フィード情報の返信の最新日時）などの情報が格納されている。
【００６４】
配信管理部１１１は，フィード情報要求を行ったクライアント２０からコンテンツデータの配信要求を受けると，コンテンツデータの配信制御情報および供給者情報を返信する処理部である。配信管理部１１１は，配信制御ファイル（図１０）を送信する。また，供給者テーブル（図９）をもとに供給者となるクライアント２０のリストを生成して送信する。
【００６５】
また，配信管理部１１１は，クライアント２０の状態，配信状況，およびクライアント２０で発生した例外を管理する。
【００６６】
図１２は，クライアント２０の状態を管理するためのクライアント状態テーブルのデータ構造例を示す図である。クライアント状態テーブルには，クライアントごとに，クライアントＩＤ，状態ステータス，確認時間（状態確認を行った最新日時）などの情報が格納される。状態ステータスは，クライアントの状態を示す所定のステータスであり，例えば，“１＝停止中，２＝起動中，３＝再起動中，４＝再起動要求中”が設定される。
【００６７】
図１３は，クライアント２０の配信状況を管理するための配信状況テーブルのデータ構造例を示す図である。配信状況テーブルには，クライアントごとに，クライアントＩＤ，コンテンツＩＤ（配信中のコンテンツデータ），配信状況ステータス，ダウンロード完了バイト数，ダウンロード残りバイト数，アップロード済みバイト数，ダウンロード開始時間，更新時間などの情報が格納される。配信状況ステータスは，クライアント２０の配信状況（ダウンロード処理の状況）を示す所定のステータスであり，例えば，“１＝開始中，２＝ダウンロード処理中，３＝完了，４＝停止中，５＝再送要求中”が設定される。
【００６８】
図１４は，クライアント２０から通知された例外処理などを記録する例外テーブルのデータ構造例を示す図である。例外テーブルには，クライアントごとに，クライアントＩＤ，サービスＩＤ（例外が発生したサービス（処理）），発生時間，例外ＩＤ，詳細（例外の具体的内容）などの情報が格納される。
【００６９】
ピア間通信管理部１１２は，クライアント２０から，外部ＩＰアドレスとアップロード時の外部ポート番号（アップロード時アドレス情報）を受けてクライアントテーブルに書き込み，フィード情報要求を行ったクライアント２０から，コンテンツデータの要求先のクライアントが特定されたダウンロード開始通知を受け，ダウンロード開始通知から要求元のクライアント２０の外部ＩＰアドレスおよびダウンロード処理時の外部ポート番号（ダウンロード時アドレス情報）を，要求先のクライアントへダウンロード開始通知とともに要求元のクライアント２０のアドレス情報を通知する処理部である。
【００７０】
ピア間通信管理部１１２は，クライアント２０が行っているピアツーピアのデータ通信の設定を，ピア間通信情報テーブルを用いて管理し，クライアントからの取得要求に対し返信する。
【００７１】
図１５は，ピア間通信情報テーブルのデータ構造例を示す図である。ピア間通信情報テーブルには，ピアツーピアのデータ通信を行っているクライアントごとに，接続元（自）クライアントのクライアントＩＤ，外部ＩＰアドレス，外部ポート番号，接続先（相手）クライアントのクライアントＩＤなどの情報が格納される。
【００７２】
コンテンツ送信部１１３は，他のクライアント２０から，要求先として管理サーバ１０が設定されたダウンロード開始通知を受けた場合に，要求されたコンテンツデータを送信する処理部である。
【００７３】
図１６は，クライアント２０の内部構成例を示す図である。
【００７４】
クライアント２０は，ソフトウェアプログラムなどによって構成されるフィード情報取得部２０１，配信情報取得部２０２，ダウンロード処理部２０３，受信データチェック部２０４，ピア間通信設定部２０５，アップロード処理部２０６，受信コンテンツ管理部２０７，コンテンツ記憶部２１０，クライアント自動登録部２２１，例外通知部２２２を備える。
【００７５】
フィード情報取得部２０１は，管理サーバ１０へ要求したフィード情報を取得する処理部である。
【００７６】
配信情報取得部２０２は，フィード情報をもとに配信を要求するコンテンツデータを特定し，管理サーバ１０からコンテンツデータの配信制御情報および供給者情報を取得する処理部である。
【００７７】
ダウンロード処理部２０３は，供給者情報をもとにコンテンツデータの要求先となるクライアント２０を特定し，要求先のクライアント２０を特定したダウンロード開始通知を管理サーバ１０へ送信し，要求先のクライアント２０からコンテンツデータを断片データ単位で受信する処理部である。
【００７８】
受信データチェック部２０４は，配信制御情報をもとに，ダウンロード処理部２０３が受信した断片データの完全性をチェックし，受信した断片データが不完全であれば要求先のクライアント２０へ当該断片データの再送信を要求する処理部である。
【００７９】
ピア間通信設定部２０５は，自クライアント２０の外部ＩＰアドレスとアップロード時の外部ポート番号とを含むアップロード時アドレス情報を管理サーバ１０へ通知し，管理サーバ１０から，要求元のクライアント２０のクライアント情報およびダウンロード時アドレス情報を受信する処理部である。
【００８０】
アップロード処理部２０６は，ダウンロード要求を受け，要求元のクライアント２０へコンテンツデータの断片データをコネクションレスで送信する処理部である。アップロード処理部２０６は，コネクションレス型のデータ通信として，ＵＤＰ／ＩＰのデータパケット送信を行う。
【００８１】
図１７は，アップロード処理部２０６により送信されるデータパケットの構造例を示す図である。アップロード処理部２０６は，コンテンツパケットをボディ部に内包するＵＤＰパケットを生成する。コンテンツパケットは，コンテンツデータの各断片データのフラグメントであり，ヘッダ部に分割した断片データの識別情報（識別子），パケットの識別情報（パケットＩＤ），断片データを構成する全パケット数（トータルパケット数），パケットの並び順序を示す（パケットインデックス）が設定される。ボディ部は，断片データ本体（データ）である。
【００８２】
受信コンテンツ管理部２０７は，受信した完全な断片データをコンテンツ記憶部２１０に書き込みまたは読み出す処理部である。
【００８３】
クライアント自動登録部２２１は，所定の情報を管理サーバ１０へ送信し，コンテンツ配信システム１のクライアント２０となる登録要求を行う処理部である。
【００８４】
例外通知部２２２は，クライアント２０で発生した例外を記録した例外通知を管理サーバ１０へ送信する処理部である。
【００８５】
図１８および図１９は，コンテンツ配信システム１の処理の流れおよび各処理部の関連を説明するための図である。
【００８６】
ここで，クライアント２０Ａは，配信確認を行ってコンテンツデータの配信を要求するクライアントであり，クライアント２０Ｂは，クライアント２０Ａが要求したコンテンツデータを保持し，供給者となるクライアントである。
【００８７】
ステップＳ１：  クライアント２０Ａのフィード情報取得部２０１は，一定の間隔で管理サーバ１０へポーリングを行って，フィード情報を要求する。
【００８８】
ステップＳ２：  管理サーバ１０のフィード情報管理部１１０は，フィード情報要求を受けると，管理情報記憶部１３０の配信スケジュール情報を確認する。
【００８９】
ステップＳ３：  フィード情報管理部１１０は，配信スケジュール情報が変更されていれば，変更された配信スケジュール情報をもとに，クライアント２０Ａのフィード情報を作成し送信する。 
【００９０】
ステップＳ４：  フィード情報取得部２０１は，配信情報取得部２０２を起動する。
【００９１】
ステップＳ５：  配信情報取得部２０２は，フィード情報から要求対象としてコンテンツデータＤを特定し，管理サーバ１０へコンテンツデータＤの配信制御情報を要求する。
【００９２】
ステップＳ６：  配信管理部１１１は，管理情報記憶部１３０からコンテンツデータＤの配信制御ファイルを取得する。
【００９３】
ステップＳ７：  配信管理部１１１は，コンテンツデータＤの配信制御ファイルをクライアント２０Ａへ送信する。
【００９４】
ステップＳ８：  配信情報取得部２０２は，ダウンロード処理部２０３を起動する。
【００９５】
ステップＳ９：  ダウンロード処理部２０３は，コンテンツデータＤのダウンロード開始を管理サーバ１０へ通知し，コンテンツデータＤの供給者リストを要求する。
【００９６】
ステップＳ１０：  配信管理部１１１は，管理情報記憶部１３０の供給者テーブルを参照し，コンテンツデータＤの供給者リスト（供給者となるクライアント２０のリスト）をクライアント２０Ａへ送信する。ここで，クライアント２０Ａは，取得したコンテンツデータＤの供給者情報から，コンテンツデータＤの要求先としてクライアント２０Ｂを特定する。
【００９７】
以下のステップＳ１１〜Ｓ２０の処理は，クライアント２０Ａ，２０Ｂ間でピアツーピアによるデータ通信を行うための処理である。図２０は，図１９のステップＳ１１〜Ｓ２０の処理における管理サーバ１０，クライアント２０Ａ，２０Ｂの関係を示す図である。
【００９８】
ステップＳ１１：  クライアント２０Ｂのピア間通信設定部２０５は，一定間隔で，管理サーバ１０へアップロード時アドレス情報（アップロード処理時の外部ＩＰアドレス，外部ポート番号）を通知する。例えば，アップロード処理部２０６が用いるポートからデータパケットを送信することにより通知する。
【００９９】
ステップＳ１２：  管理サーバ１０のピア間通信管理部１１２は，クライアント２０Ｂのアップロード時アドレス情報をクライアント管理部１０１に通知する。クライアント管理部１０１は，管理情報記憶部１３０のクライアントテーブルを更新する。
【０１００】
ステップＳ１３：  クライアント２０Ａのダウンロード処理部２０３は，管理サーバ１０へ，要求先を特定したダウンロード開始を要求する。
【０１０１】
ステップＳ１４：  ピア間通信管理部１１２は，ダウンロード開始要求からダウンロード時アドレス情報（ダウンロード時の外部ＩＰアドレス，外部ポート番号）を抽出し，ダウンロード時アドレス情報と要求先のクライアントＩＤ（クライアント２０Ｂ）をピア間通信情報テーブルに書き込む。
【０１０２】
ステップＳ１５：  クライアント２０Ａのダウンロード処理部２０３は，クライアント２０Ｂへアップロード時の外部ポートに対してパケットを送信する。これにより，クライアント２０Ｂとのピアツーピアによるデータ通信の要求が行われる。
【０１０３】
ステップＳ１６：  クライアント２０Ｂのピア間通信設定部２０５は，管理サーバ１０へ一定間隔でポーリングし，ピア間通信情報を要求する。
【０１０４】
ステップＳ１７：  管理サーバ１０のピア間通信管理部１１２は，ピア間通信情報テーブルを取得する。
【０１０５】
ステップＳ１８：  ピア間通信管理部１１２は，取得したピア間通信情報テーブルの情報をクライアント２０Ｂへ返信する。
【０１０６】
ステップＳ１９：  クライアント２０Ｂのピア間通信設定部２０５は，アップロード処理部２０６を起動する。
【０１０７】
ステップＳ２０：  クライアント２０Ｂのアップロード処理部２０６は，クライアント２０Ａのダウンロード処理部２０３の外部ポートに対してパケットを送信する。これにより，クライアント２０Ａは，クライアント２０Ｂのパケットを受信できるようになる。
【０１０８】
ステップＳ２１：  クライアント２０Ａのダウンロード処理部２０３は，クライアント２０Ｂのアップロード処理部２０６に対して，コンテンツデータＤのダウンロードを要求する。
【０１０９】
ステップＳ２２：  クライアント２０Ｂのアップロード処理部２０６は，コンテンツデータＤの断片データをクライアント２０Ａのダウンロード処理部２０３へ送信する。
【０１１０】
ステップＳ２３：  クライアント２０Ａの受信データチェック部２０４は，配信制御情報（断片データのハッシュ値）をもとに受信した断片データの完全性をチェックする。断片データが完全でなければ，ダウンロード処理部２０３へ通知する。ダウンロード処理部２０３は，不完全な断片データの再送を要求する。
【０１１１】
さらに，受信コンテンツ管理部２０７は，コンテンツデータＤの断片データをコンテンツ記憶部２１０に格納する。
【０１１２】
これにより，管理サーバ１０の配信管理のもと，クライアント２０Ａはクライアント２０ＢからコンテンツデータＤの配信を受けることができる。
【０１１３】
その後，クライアント２０Ａが他のクライアント２０ＣからコンテンツデータＤのダウンロード要求を受けた場合には，ダウンロード処理部２０６は，上記のクライアント２０Ｂと同様に，要求元のクライアント２０ＣへコンテンツデータＤの送信を行う。
【０１１４】
なお，管理サーバ１０の配信管理部１１１は，所定の間隔または契機で，クライアント２０Ａ，２０Ｂから，クライアントの状態，配信状況を取得し，クライアント状態テーブル，配信状況テーブルを更新する。これによって，クライアント２０の状態，配信状況を常に把握することができる。
【０１１５】
以上，本発明をその実施の形態により説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。例えば，本発明の実施の形態では，管理サーバ１０は，コンテンツ記憶部１２０を備え，コンテンツデータを保持するものとして説明した。しかし，コンテンツ配信システム１は，配信対象となるコンテンツデータを保持管理する処理手段が管理サーバ１０の外部に設けられ，相互に協調動作するように構成されてもよい。
【図面の簡単な説明】
【０１１６】
【図１】本発明にかかるコンテンツ配信システムの構成例を示す図である。
【図２】コンテンツ配信システムのコンテンツデータの配信例を示す図である。
【図３】コンテンツデータの断片データ単位による配信処理を説明するための図である。
【図４】管理サーバの内部構成例を示す図である。
【図５】コンテンツ管理テーブルのデータ構造例を示す図である。
【図６】クライアントテーブルのデータ構造例を示す図である。
【図７】配信スケジュールテーブルのデータ構造例を示す図である。
【図８】配信グループ情報を構成する配信グループテーブルおよび配信グループ構成テーブルのデータ構造例を示す図である。
【図９】供給者テーブルのデータ構造例を示す図である。
【図１０】配信制御ファイルのデータ構造例を示す図である。
【図１１】フィード情報のデータ構造例を示す図である。
【図１２】クライアント状態テーブルのデータ構造例を示す図である。
【図１３】配信状況テーブルのデータ構造例を示す図である。
【図１４】例外テーブルのデータ構造例を示す図である。
【図１５】ピア間通信情報テーブルのデータ構造例を示す図である。
【図１６】クライアントの内部構成例を示す図である。
【図１７】アップロード処理部により送信されるデータパケットの構造例を示す図である。
【図１８】コンテンツ配信システムの処理の流れおよび各処理部の関連を説明するための図（その１）である。
【図１９】コンテンツ配信システムの処理の流れおよび各処理部の関連を説明するための図（その２）である。
【図２０】図１９のステップＳ１１〜Ｓ２０の処理における管理サーバ，クライアントの関係を示す図である。
【符号の説明】
【０１１７】
１  コンテンツ配信システム
３  インターネット
１０  管理サーバ
１１，２１  ルータ
２０  クライアント
２２  ＤＭＳ
２３  ＤＭＡ
１０１  コンテンツ管理部
１０３  クライアント管理部
１０４  配信スケジュール情報管理部
１０５  配信グループ情報管理部
１０６  供給者情報管理部
１０７  配信制御情報管理部
１１０  フィード情報管理部
１１１  配信管理部
１１２  ピア間通信管理部
１１３  コンテンツ送信部
１２０  コンテンツ記憶部
１３０  管理情報記憶部
２０１  フィード情報取得部
２０２  配信情報取得部
２０３  ダウンロード処理部
２０４  受信データチェック部
２０５  ピア間通信設定部
２０６  アップロード処理部
２０７  受信コンテンツ管理部
２１０  コンテンツ記憶部
２２１  クライアント自動登録部
２２２  例外通知部
【図１】
2009031894.tif 000003
【図２】
2009031894.tif 000004
【図３】
2009031894.tif 000005
【図４】
2009031894.tif 000006
【図５】
2009031894.tif 000007
【図６】
2009031894.tif 000008
【図７】
2009031894.tif 000009
【図８】
2009031894.tif 000010
【図９】
2009031894.tif 000011
【図１０】
2009031894.tif 000012
【図１１】
2009031894.tif 000013
【図１２】
2009031894.tif 000014
【図１３】
2009031894.tif 000015
【図１４】
2009031894.tif 000016
【図１５】
2009031894.tif 000017
【図１６】
2009031894.tif 000018
【図１７】
2009031894.tif 000019
【図１８】
2009031894.tif 000020
【図１９】
2009031894.tif 000021
【図２０】
2009031894.tif 000022