[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008067089A - コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法 - Google Patents

コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法 Download PDF

Info

Publication number
JP2008067089A
JP2008067089A JP2006243240A JP2006243240A JP2008067089A JP 2008067089 A JP2008067089 A JP 2008067089A JP 2006243240 A JP2006243240 A JP 2006243240A JP 2006243240 A JP2006243240 A JP 2006243240A JP 2008067089 A JP2008067089 A JP 2008067089A
Authority
JP
Japan
Prior art keywords
distribution system
information
terminal device
content
terminal
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.)
Pending
Application number
JP2006243240A
Other languages
English (en)
Inventor
Hideki Matsuo
英輝 松尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2006243240A priority Critical patent/JP2008067089A/ja
Publication of JP2008067089A publication Critical patent/JP2008067089A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第1配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第2配信システムへ参加しても、端末装置の記憶部に、第2配信システム用として十分な記憶領域を確保することができるコンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法を提供する。
【解決手段】第1配信システムに参加している状態で、第2配信システムに参加したときに、端末装置の記憶部において、第1配信システム用に確保している記憶領域の一部を第2配信システム用の記憶領域として機能させることとした。
【選択図】図15

Description

本発明は、コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法に関するものである。
近年、インターネットを始めとする情報通信ネットワーク(以下、単に「ネットワーク」という。)にパーソナルコンピュータ等の端末装置を接続して、所望する音楽や映画等のコンテンツに相当するコンテンツデータを保持しているサーバや他の端末装置からコンテンツデータを受信し、受信したコンテンツデータを各端末装置で視聴することができるコンテンツ配信システムが広く利用されている。
この種のコンテンツ配信システムには、ネットワークに接続した所望のコンテンツデータを保持している他の端末装置からダウンロード要求を送信した端末装置へコンテンツデータを配信するオンデマンド型のコンテンツ配信システム(以下、「第1配信システム」という。)と、ネットワーク上においてコンテンツ配信装置から放送形態にてストリーミング配信されているコンテンツデータを、そのネットワークに接続することによってストリーミング受信する放送型のコンテンツ配信システム(以下、「第2配信システム」という。)とがある。
この第1の配信システムとしては、たとえば、ネットワークに接続している複数の端末装置に複数種類のコンテンツデータが分散して保持され、各端末装置間で相互にコンテンツデータの授受を行うコンテンツ配信システムが知られている(たとえば、特許文献1参照)。
そして、この第1配信システムにより所望のコンテンツデータをダウンロードするためには、ネットワーク上に存在する複数種類のコンテンツデータから所望のコンテンツデータを識別すると共に、ネットワーク上において所望のコンテンツデータを保持している他の端末装置を識別する必要がある。
そこで、第1配信システムでは、DHT(Distributed Hash Table:分散ハッシュテーブル)を用いて、全てのコンテンツデータに各コンテンツデータを識別するためのコンテンツ識別情報(以下、「コンテンツID」という。)を付与すると共に、全ての端末装置に各端末装置を識別するための端末識別情報(以下、「端末ID」という。)を付与し、所定のコンテンツデータに関するコンテンツIDとそのコンテンツデータを保持している端末装置の所在情報(以下、「IPアドレス」という。)と、端末IDとを関連付けた情報(以下、「インデックスキャッシュ情報」という。)をネットワークに接続している一部の端末装置(以下、「ルート端末装置」という。)に分散して記憶させるようにしている。
このとき、あるコンテンツデータのルート端末装置となる端末装置は、あるコンテンツデータに付与されたコンテンツIDの各桁における情報と、端末IDの各桁における情報とが、上位側から連続して最も多く一致する端末ID(コンテンツIDと最も近い端末ID)が付与されている端末装置である。
このルート端末装置に記憶されるインデックスキャッシュ情報は、新たにコンテンツデータを保持した端末装置から所定の規則に従って複数の端末装置に転送されながら最終的にルート端末装置まで転送される情報であり、この転送経路にあたる各端末装置にも記憶される。なお、インデックスキャッシュ情報を転送する各端末装置は、それぞれが備える後述のルーティングテーブルに従ってインデックスキャッシュ情報を転送する。
また、各端末装置は、全端末IDのなかの一部の端末IDと、その端末IDに対応する端末装置のネットワーク上に置けるIPアドレスとを関連付けた他端末情報が記録されたルーティングテーブルを備えている。
このルーティングテーブルには、全ての端末IDが含まれる端末ID群(以下、「ID空間」という。)を段階的なレベル毎にレベル数を上げつつ細分化していき、そのレベル(段階的に細分化した領域)毎に、任意に選択した端末装置の端末IDとそのIPアドレスとを対にした他端末情報が格納されている。
つまり、このルーティングテーブルには、全端末装置のなかの一部の端末装置に関する他端末情報が格納されているのである。
そして、各端末装置は、コンテンツデータのダウンロード要求やインデックスキャッシュ情報等といった所定のコンテンツデータに関する各種情報(メッセージ)を他の端末装置へ送信する際には、このルーティングテーブルを参照して、ルーティングテーブルに格納している他端末情報のなかで、所定のコンテンツデータのコンテンツIDと最も近い端末IDが付与された端末装置に情報を送信し、この情報を受信した端末装置は、自身が備えるルーティングテーブルを参照して同様に他の端末へ受信した情報を送信(転送)して最終的にその情報がルートノードへ転送されるのである。
このように構成した第1配信システムでは、各端末装置が第1配信システムに参加するためのアプリケーションを起動して、ネットワークに接続すると共に、各端末装置が備える記憶部に第1配信システム用の記憶領域を確保し、この第1配信システム用の記憶領域に、上記したルーティングテーブルやインデックスキャッシュ情報、現在ダウンロード可能なコンテンツデータのリスト情報を含むカタログ情報等といった各種情報を記憶する。
そして、ある端末装置がコンテンツデータの配信を受けようとする場合、その端末装置は、まず、第1配信システム用の記憶領域に記憶しているルーティングテーブルを参照して、所望のコンテンツデータを保持している端末装置に関する情報を得るために、ルートノード宛に所定のメッセージを送信する。
このメッセージは、上記したように、いくつかの端末装置に転送されてルートノードに受信される。そして、このメッセージを受信したルートノードは、メッセージの送信元の端末装置へその端末装置が受信しようとしているコンテンツデータに関するインデックスキャッシュ情報を返信する。
このインデックスキャッシュ情報を受信した端末装置は、受信したインデックスキャッシュ情報を参照して、所望のコンテンツデータを保持している端末装置にコンテンツのダウンロード要求を送信することによって、所望のコンテンツデータの配信を受けるのである。
また、第2配信システムとしては、たとえば、コンテンツ配信装置を頂点として複数の端末装置がネットワーク上にツリー状の階層構造で多層に論理接続され、コンテンツ配信装置から放送形態にて配信されるコンテンツデータが、ツリー状の階層構造の上流に接続された端末装置から下流に接続された端末装置にかけて順次各端末装置の中継機能によってストリーミング配信されるコンテンツ配信システムが知られている(たとえば、特許文献2参照。)。
すなわち、この第2配信システムでは、各端末装置が第2配信システムに参加するためアプリケーションを起動して、ネットワークに接続すると共に、各端末装置が備える記憶部の第2配信システム用の記憶領域を確保する。
そして、ある端末装置がコンテンツデータの配信を受けようとする場合、その端末装置は、まず、上記階層構造における各端末装置の論理接続の状態を管理する接続管理装置へ第2配信システムへの参加要求を送信し、接続管理装置から送信される接続先となる端末装置のIPアドレスを受信する。
その後、このIPアドレスを受信した端末装置は、受信したIPアドレスに対応した端末装置の階層構造における下流側に接続して、階層構造における上流側の端末装置から所望のコンテンツデータを受信する。
このとき、この端末装置は、第2配信システム用の記憶領域をリングバッファとして機能させ、階層構造における上流側の端末装置からストリーミング受信したコンテンツデータを順次リングバッファに一時的に蓄積し、このリングバッファに蓄積したコンテンツデータを順次再生すると共に、再生の終了した部分のコンテンツデータをリングバッファから削除するようにしている。
また、階層構造において、この端末装置の階層構造における下流側に他の端末装置が接続している場合には、再生したコンテンツデータをリングバッファから削除する前に、階層構造における下流側に接続している他の端末装置へ中継(ストリーミング配信)し、その後、リングバッファから削除するようにしている。
特開2006−197400号公報 特開2006−087046号公報
ところが従来の端末装置では、上記したように、第1配信システムに参加する場合には、端末装置の記憶部に第1配信システム用の記憶領域を確保し、第2配信システムに参加する場合には、端末装置の記憶部に第2配信システム用の記憶領域を確保するため、第1配信システムに参加している状態で第2配信システムに参加した場合、第2配信システム用の記憶領域を十分に確保することができずに、第2配信システムによるコンテンツデータのストリーミング受信に支障をきたす恐れがあるという問題点があった。
すなわち、端末装置が第1配信システムに参加している状態では、インデックスキャッシュ情報や、カタログ情報、ルーティングテーブル等といった様々な情報を記憶しておく必要があるため、第1配信システム用の記憶領域として比較的大きな記憶領域を確保しておかなければならない。
そのため、このように第1配信システム用の記憶領域として、比較的大きな記憶領域を確保した状態で、第2配信システムに参加しようとすると、第2配信システムで用いるリングバッファの領域を十分に確保することができず、コンテンツデータの受信、再生、中継等を正常に行うことができないおそれがあった。
また、第2配信システムへ何時でも参加できるように、予め記憶部に第2配信システム用の記憶領域を確保しておくことも考えられるが、この場合、第2配信システムに参加していないときには、その記憶領域が無駄に確保されることとなるため、容量に制限がある記憶部を有効に利用することができないという問題点があった。
そこで、本発明は、上記各問題点に鑑みて為されたもので、その目的は、上述したごとく、第1配信システムに参加している状態で、第2配信システムに参加しても、記憶部に第2配信システムで用いるリングバッファの領域を十分に確保することができ、記憶部を有効に利用することができるコンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法を提供することにある。
請求項1に係る本発明では、複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第1配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第2配信システムへ参加可能な端末装置において、第1配信システムへ参加しているときに、第1配信システム用に確保される記憶領域と、第1配信システムに参加した状態で、前記第2配信システムに参加したとき、第1配信システム用に確保している記憶領域の一部を第2配信システム用の記憶領域として機能させる情報管理手段とを有することを特徴とする。
また、請求項2に係る本発明では、請求項1に記載の端末装置において、第2配信システムへ参加することにより必要となる記憶領域の容量を検出する記憶容量検出手段を備え、情報管理手段は、記憶容量検出手段の検出結果に応じて、第1配信システム用に確保している記憶領域の一部を第2配信システム用の記憶領域として機能させるか否かを判定することを特徴とする。
また、請求項3に係る本発明では、請求項1又は請求項2に記載の端末装置において、第1配信システムは、ネットワークを介して接続された複数の端末装置に、複数種類のコンテンツデータが分散して保持されており、ダウンロード要求に対応するコンテンツデータを保持している他の端末装置から、ダウンロード要求を送信した端末装置へコンテンツデータが配信される配信システムであり、第1配信システムに参加していて、コンテンツデータを保持している他の端末装置の所在情報と他の端末装置が保持しているコンテンツデータを識別するためのコンテンツ識別情報とを関連付けたコンテンツ保持端末情報を受信するコンテンツ保持端末情報受信手段を備え、情報管理手段は、第1配信システム用に確保した記憶領域に、コンテンツ保持端末情報受信手段により受信した前記コンテンツ保持端末情報を記憶し、第1配信システムに参加した状態で、第2配信システムに参加したとき、第1配信システム用に確保している記憶領域に記憶したコンテンツ保持端末情報を削除し、コンテンツ保持端末情報を記憶していた領域を第2配信システム用の記憶領域として機能させることを特徴とする。
また、請求項4に係る本発明では、請求項3に記載の端末装置において、削除対象の前記コンテンツ保持端末情報を管理している端末装置から、その端末装置が管理しているコンテンツ保持端末情報の情報量を取得する情報量取得手段を備え、情報管理手段は、情報量取得手段により取得した情報量が所定の閾値を超えている場合に、第1配信システム用に確保している記憶領域から前記削除対象のコンテンツ保持端末情報を削除することを特徴とする。
また、請求項5に係る本発明では、請求項4に記載の端末装置において、情報管理手段は、情報量取得手段により、複数種類のコンテンツデータに関するコンテンツ保持端末情報の情報量を取得し、取得した複数種類の情報量のうち、情報量が多いコンテンツ保持端末情報から順に削除することを特徴とする。
また、請求項6に係る本発明では、請求項1〜5のいずれか1項に記載の端末装置において、情報管理手段は、第1配信システム用に確保した記憶領域に、現在ダウンロード可能なコンテンツデータのリスト情報を記憶し、第1配信システムに参加した状態で、第2配信システムに参加したとき、第1配信システム用に確保している記憶領域からリスト情報を削除して、リスト情報を記憶していた領域を第2配信システム用の記憶領域として機能させることを特徴とする。
また、請求項7に係る本発明では、請求項1〜6のいずれか1項に記載の端末装置において、情報管理手段は、第1配信システム用に確保した記憶領域に、他の端末装置を識別するための端末識別情報と他の端末装置の所在情報とを含む他端末情報を記憶し、第1配信システムに参加した状態で、第2配信システムに参加したとき、第1配信システム用に確保している記憶領域から他端末情報の少なくとも一部を削除して、他端末情報を記憶していた領域を第2配信システム用の記憶領域として機能させることを特徴とする。
また、請求項8に係る本発明では、請求項1又は請求項2に記載の端末装置において、情報管理手段は、第1配信システム用に確保した記憶領域に、第1配信システムに参加していて、コンテンツデータを保持している他の端末装置の所在情報と他の端末装置が保持しているコンテンツデータを識別するためのコンテンツ識別情報とを関連付けたコンテンツ保持端末情報と、現在ダウンロード可能なコンテンツデータのリスト情報とを記憶すると共に、他の端末装置を識別するための端末識別情報と、他の端末装置の所在情報とを含む他端末情報とを記憶させ、第1配信システムに参加した状態で、第2配信システムに参加したとき、第1配信システム用に確保している記憶領域から、コンテンツ保持端末情報及びリスト情報を削除すると共に、他端末情報の一部を削除することを特徴とする。
また、請求項9に係る本発明では、請求項8に記載の端末装置において、第1配信システム用に確保している記憶領域に記憶した情報において、情報管理手段による削除の優先順位は、コンテンツ保持端末情報、リスト情報、他端末情報の順であることを特徴とする。
また、請求項10に係る本発明では、請求項1〜9のいずれか1項に記載の端末装置において、第1配信システムに参加している端末装置数を検出する参加端末数検出手段を有し、情報管理手段は、参加端末数検出手段により検出した端末装置数が所定の閾値を超えている場合に、第1配信システム用に確保している記憶領域の一部を第2配信システム用の記憶領域として機能させることを特徴とする。
また、請求項11に係る本発明では、請求項1〜10のいずれか1項に記載の端末装置において、第1配信システム用に確保している記憶領域から削除する情報を保存しておくための他の記憶手段を備え、第1配信システムに参加した状態で、第2配信システムに参加したとき、情報管理手段は、第1配信システムに記憶している情報の一部を他の記憶手段に保存した後、他の記憶手段に保存した情報を記憶していた領域を、第2配信システム用の記憶領域として機能させ、第2配信システムから離脱した後に、他の記憶手段に保存した情報を、再度、第1配信システム用に確保した記憶領域に記憶させることを特徴とする。
また、請求項12に係る本発明では、
前記第2配信システム用に確保する記憶領域は、前記第2配信システムによりストリーミング受信したコンテンツデータを一時的に蓄積するリングバッファを備え、
前記情報管理手段は、請求項1〜11のいずれか1項に記載の端末装置において、第1配信システムに参加した状態で、第2配信システムに参加したとき、第1配信システム用に確保している記憶領域の一部をリングバッファとして機能させることを特徴とする。
また、請求項13に係る本発明では、請求項1〜12のいずれか1項に記載の端末装置において、第2配信システムによりコンテンツデータを受信する際の受信速度を検出する受信速度検出手段を有し、情報管理手段は、第1配信システムに参加した状態で、第2配信システムに参加したとき、受信速度検出手段により取得した受信速度に応じて、第1配信システム用に確保している記憶領域のうち、第2配信システム用の記憶領域として機能させる領域を拡張又は縮小することを特徴とする。
また、請求項14に係る本発明では、複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第1配信システムと、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第2配信システムとを有するコンテンツ配信システムであって、端末装置は、第1配信システムへ参加しているときに、第1配信システム用に確保される記憶領域と、第1配信システムに参加した状態で、第2配信システムに参加したとき、第1配信システム用に確保している記憶領域の一部を第2配信システム用の記憶領域として機能させる情報管理手段とを有することを特徴とするコンテンツ配信システム。
また、請求項15に係る本発明では、コンピュータを、請求項1〜13のいずれかに記載の端末装置における各手段として機能させるためのプログラムを提供する。
また、請求項16に係る本発明では、複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいてコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第1配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第2配信システムへ参加可能な端末装置における情報管理方法であって、第1配信システムへ参加しているときに、第1配信システム用に記憶領域を確保するステップと、第1配信システムに参加した状態で、第2配信システムに参加したとき、第1配信システム用に確保した記憶領域に記憶している情報の一部を削除するステップと、削除した情報が記憶されていた第1配信システム用に確保した記憶領域を、第2配信システム用の記憶領域として機能させるステップと、を有することを特徴とする。
請求項1及び請求項14〜16に記載の本発明によれば、第1配信システムに参加している状態で、第2配信システムに参加したときに、端末装置の記憶部において、第1配信システム用に確保している記憶領域の一部を第2配信システム用の記憶領域として機能させることにより、第2配信システム用の記憶領域を十分に確保することがきるので、第2配信システムによるコンテンツデータのストリーミング受信に支障をきたすことがなく、第2配信システムに参加していないときに、予め記憶部に第2配信システム用の記憶領域を確保しておく必要もないため、端末装置の記憶部を有効に利用することができる。
請求項2に記載の本発明によれば、情報管理手段は、端末装置の記憶部に第2配信システム用の記憶領域を十分に確保できるだけの空き領域がある場合に、第1配信システム用の記憶領域を第2配信システム用の記憶領域として機能させる処理を行わなくて済むので、その分、情報管理手段の処理負担を軽減することができる。
請求項3、6〜8に記載の本発明によれば、削除しても第1配信システムによるコンテンツデータの受信に支障のない情報を削除して、この削除した情報を記憶していた記憶領域を第2配信システム用の記憶領域として機能させることができるので、第1配信システムに参加している状態で、第2配信システム用の記憶領域として十分な記憶領域を確保することができる。
請求項4及び請求項5に記載の本発明によれば、第1配信システムのデータ受信に支障をきたすことがない。
請求項9に記載の本発明によれば、第1配信システム用の記憶領域において、第1配信システムによりコンテンツデータの受信を行う際に、支障をきたすおそれの低い情報から順に削除することができる。
請求項10に記載の本発明によれば、自身が保持している情報を必要とする他の端末装置は、第1配信システムに参加している他の端末装置から取得することができるので、第1配信システム用の記憶領域に記憶している情報を削除しても、第1配信システムに参加している他の端末装置に支障をきたすことがない。
請求項11に記載の本発明によれば、第1配信システム用の記憶領域から削除した情報が再度必要になった場合に、他の記憶手段に記憶した情報を改めて第1配信システム用の記憶領域に記憶させることができるので、第1配信システムによるコンテンツの受信に支障をきたすことがない。
請求項に12記載の本発明によれば、第2配信システムで使用するリングバッファとして十分な記憶領域を確保することができるので、第1配信システムに参加している状態であっても、第2配信システムによるコンテンツデータの受信及びコンテンツデータの中継を確実に行うことができる。
以下、本発明の最良の実施形態を図面を参照して説明する。なお、以下に説明する実施形態は、配信する情報を音楽データや映像データ等のコンテンツデータとしたコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
[コンテンツ配信システムの構成等]
本実施形態におけるコンテンツ配信システムは、複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいて、そのコンテンツデータを保持する他の端末装置がコンテンツデータを配信する第1配信システムと、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にストリーミング配信する第2配信システムとを有している。
そして、本実施形態における端末装置は、上記第1配信システムに参加している状態で、上記第2配信システムへ参加可能に構成されている。
また、本実施形態では第1配信システムの一例として、複数の端末装置間でコンテンツデータを送受信するコンテンツ配信システムは種々あるが、本実施形態においては、P2Pグリッド型配信システムについて、特に、分散ハッシュテーブル(DHT(Distributed Hash Table))を利用することにより端末装置間のコンテンツデータを送受信するコンテンツ配信システムであって、Pastry型と呼ばれるコンテンツ配信システムを例に挙げて説明する。
また、第2配信システムの一例として、サーバ−クライアント型の放送形態、ツリー状の階層構造による放送形態などがあるが、本実施形態においては、コンテンツ配信装置からストリーミング配信されるコンテンツデータを、ツリー状の階層構造を構成する端末装置がP2Pによって受信し、中継する放送形態のコンテンツ配信システムを例に挙げて説明する。
図1は、本実施形態に係るコンテンツ配信システムSの概要構成例を示す図である。図1に示す物理接続形態のように、コンテンツ配信システムSを構成するコンテンツ配信装置1、端末装置2a1,2a2,2b1〜2b4,2c1〜2c8、接続管理装置3、コンテンツ投入装置4、コンタクト先紹介装置5は、インターネットに代表されるネットワーク6上に分散配置されている。
コンテンツ配信装置1、端末装置2a1,2a2,2b1〜2b4,2c1〜2c8、接続管理装置3、コンテンツ投入装置4、コンタクト先紹介装置5には、各装置を識別する端末識別情報(以下、「端末ID」という。)としての固有の製造番号(たとえば、MACアドレス)及びIP(Internet Protocol)アドレス(所在情報)が割り当てられており、これら装置は、ネットワーク6にルータ10等を介して接続されている。そして、目的の接続先装置のIPアドレスを宛先IPアドレス、自装置のIPアドレスを送信元IPアドレスとしたヘッダを含むパケットを送信することによって通信接続が可能となっている。
なお、コンテンツ配信システムSに直接関係ない装置もネットワーク6に接続されるが、ここでは省略している。また、端末装置2a1,2a2,2b1〜2b4,2c1〜2c8のいずれかの端末装置又は全ての端末装置を示す場合には、便宜上、端末装置2という場合がある。
図1に示す例では、コンテンツ配信装置1、接続管理装置3、コンテンツ投入装置4、コンタクト先紹介装置5は、それぞれ独立した装置としているが、一つの装置においてこれらの装置の機能を実現するようにしてもよい。この場合にはこれらの装置のIPアドレスは同一のものとなり、ポート番号などで区別されることになる。
[1.1.第1配信システムについて]
次に、図2を参照して、コンテンツ配信システムSにおける第1配信システムの概要構成等について説明する。図2は、本実施形態に係るコンテンツ配信システムSにおける第1配信システムを示す図である。この第1配信システムは、P2Pグリッド型配信システムであり、分散ハッシュテーブル(以下、「DHT」(Distributed Hash Table)という。)を利用することによりネットワーク6上に分散配置された複数の端末装置2間でコンテンツデータの送受信を行うコンテンツ配信システムである。
[1.1.1 DHTの概要]
まず、本実施形態に係るDHTを利用したアルゴリズムについて説明する。
コンテンツ配信システムSの第1配信システムにおいて、当該端末装置2同士が、互いに情報をやり取りする際には、お互いの所在情報としてのIPアドレスを知っていなければならない。
例えば、複数の端末装置間でコンテンツデータを互いに共有するシステムにおいては、ネットワーク6に参加している各端末装置2が互いにネットワーク6に参加している全ての端末装置2のIPアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全ての端末装置2のIPアドレスを覚えておくのは現実的ではない。また、任意の端末装置の電源が頻繁にON或いはOFFとすると、各端末装置2において記憶している当該任意の端末装置のIPアドレスの更新が頻繁になり、運用上困難となる。
そこで、1台の端末装置2では、ネットワーク6に参加している全ての端末装置2のうち、必要最低限の一部の端末装置2のIPアドレスだけを記憶しておき、IPアドレスを記憶していない端末装置2については、各端末装置2間で互いに情報を転送し合うことによりコンテンツデータを届けるシステムが考案されている。
このようなシステムの一例として、DHTを利用したアルゴリズムによって、図2に示すような、オーバーレイネットワークが構築されることになる。つまり、このオーバーレイネットワークは、既存のネットワーク6を用いて形成された仮想的なリンク(論理接続)を構成するネットワークを意味する。
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワークを前提としており、このオーバーレイネットワーク上に配置された端末装置2を、コンテンツ配信システムSの第1配信システムに参加している端末装置2という。
コンテンツ配信システムSの第1配信システムに参加している各端末装置2を識別するための端末識別情報である端末IDとして、それぞれの端末装置2毎にユニークな番号(固有番号)を付与する。この番号は、端末装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2128≒340×1036台の端末装置を運用できる。
より具体的には、各端末装置2の端末IDは、それぞれの端末装置2のIPアドレス或いは製造番号等の端末装置2毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して得たハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数によりハッシュ化されて求められた端末IDは、当該IPアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、IPアドレス(グローバルIPアドレス)を共通のハッシュ関数によりハッシュ化した値を端末IDとする。
また、コンテンツ配信システムSの第1配信システムに参加している複数の端末装置2には、図2に示すように、一の端末装置2から他の端末装置2に配信されるコンテンツデータがコンテンツ投入装置4によって分散して端末装置2に投入されるが、当該コンテンツデータにも、各コンテンツデータを識別するために、それぞれのコンテンツデータ毎の固有のコンテンツ識別情報(以下、「コンテンツID」と呼ぶ。)を付与する。
そして、当該コンテンツIDは、端末IDと同様の長さ(例えば、128bit等)とし、例えば、コンテンツの名称(コンテンツタイトル)やコンテンツの概要情報(あらすじ)等のキーワードが、上記端末IDを得るときと共通のハッシュ関数によりハッシュ化され(つまり、端末装置2のIPアドレスのハッシュ値と同一のID空間に配置)、そのハッシュ値と最も近い(例えば、上位桁がより多く一致する)端末IDを有する端末装置2が、コンテンツデータを保持する端末装置2(以下、「コンテンツ保持端末装置」と呼ぶ。)へのリンク情報、すなわちコンテンツ保持端末装置の所在情報であるIPアドレスを保持する。
コンテンツ保持端末装置は、コンテンツ投入装置4によってランダムに決定される。すなわち、コンテンツ投入装置4は、コンテンツデータを保持すべき1以上の端末装置2をランダムに決定し、このように決定した端末装置2にコンテンツデータを送信する。コンテンツ投入装置4からコンテンツデータを受信した端末装置2は、コンテンツデータを記憶部に保持することによってコンテンツ保持端末装置として機能する。これにより、コンテンツデータが偏りなくコンテンツ配信システムS上に分散して配置される。
なお、異なるコンテンツデータであっても、同一のキーワード(例えば、コンテンツの名称)になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツのタイトルと著作権情報(例えば、出演者名、監督名、原作者名、歌手名、作曲者名、又は作詞者名等)の組み合わせとすればよい。本実施形態においては、コンテンツのタイトルは重複しないものとし、コンテンツのタイトルをキーワードとするものとする。
このように、各端末装置2及び各コンテンツデータに付与された端末ID及びコンテンツIDは、共通のハッシュ関数によって生成するため、図2に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitで端末ID及びコンテンツIDを付与し、図示したものである。図中丸点は端末IDを、四角形はコンテンツIDを示し、反時計回りでIDが増加するものとする。
次に、どの端末装置2に、どのコンテンツデータが管理されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツIDを有するコンテンツデータを管理する端末装置2は、そのコンテンツIDに近い端末IDを有する端末装置2である」という規則とする。
ここで、「近い」ことの定義は、当該コンテンツIDを超えず、コンテンツIDと端末IDとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各端末装置2に割り振る際に、一貫していればよい。図2に示す例では、この定義に基づいて、コンテンツIDaは、当該コンテンツIDaに近い端末ID(以下、「端末IDa」と呼ぶ。)を有する端末装置2に管理され、コンテンツIDbは、当該コンテンツIDbに近い端末ID(以下、「端末IDb」と呼ぶ。)を有する端末装置2に管理され、コンテンツIDcは、当該コンテンツIDcに近い端末ID(以下、「端末IDc」と呼ぶ。)を有する端末装置2に管理される。
なお、ここで「管理」というのは、コンテンツデータを保持していることを意味するのではなく、「コンテンツデータがいずれの端末装置2に保持されているかを知っている」ことを意味する。すなわち、図2において、端末IDaを有する端末装置2は、コンテンツIDaを有するコンテンツデータがいずれの端末装置2に保持されているかを知っており、端末IDbを有する端末装置2及び端末IDcを有する端末装置2も同様にそれぞれコンテンツIDbを有するコンテンツデータ及びコンテンツIDcを有するコンテンツデータがいずれの端末装置2に保持されているかを知っているということになる。
このように、あるコンテンツデータがいずれの端末装置2に保持されているかを知っている端末装置2を、そのコンテンツデータのルート端末装置と呼び、このルート端末装置は、自身がルート端末装置となっているコンテンツデータのコンテンツIDと、そのコンテンツデータを保持しているコンテンツ保持端末装置のIPアドレスとを関連付けたコンテンツ保持端末情報を他の端末装置より最も多く保持している。
そして、図2においては、端末IDaを有する端末装置2が、コンテンツIDaを有するコンテンツデータのルート端末装置であって、端末IDbを有する端末装置2が、コンテンツIDbを有するコンテンツデータのルート端末装置であって、端末IDcを有する端末装置2が、コンテンツIDcを有するコンテンツデータのルート端末装置である。
ここで、コンテンツ投入装置4は、コンテンツ配信システムS内の端末装置2をコンテンツ保持端末装置とするためにコンテンツデータを端末装置2へ配布する機能のほか、端末装置2に配布した現在第1配信システムでダウンロードが可能な複数のコンテンツデータ(言い換えれば、コンテンツ保持端末装置が保持しているコンテンツデータ)をそのコンテンツのタイトルとコンテンツIDとを関連付けたリスト情報が含まれたカタログ情報を生成して端末装置2へ提供する機能を有している。
また、コンテンツ配信システムSの第1配信システムにおいては、コンタクト先紹介装置5が配置されている。このコンタクト先紹介装置5は、コンテンツ配信システムSの第1配信システムに参加していない端末装置2からこの第1配信システムへの参加要求があったときに、未参加の端末装置2が参加メッセージを送信する既参加の端末装置2(以下、「コンタクト先端末装置」と呼ぶ。)の所在情報を通知する機能を有している。
[1.1.2.ルーティングテーブルの作成]
次に、図3〜5を参照して、DHTで用いるルーティングテーブルの作成方法の一例、及び、作成したルーティングテーブルの構成について説明する。
ここで、本実施形態の端末装置2は、ルーティングテーブルとして、他の端末装置2へ情報等を送信する際に、主として用いられるメインテーブルMRと、当該メインテーブルMRの代替として順次用いられるサブテーブルR1〜R3との複数枚のテーブルから構成されるルーティングテーブルRTを備えている。
図3は、DHTによってルーティングテーブルが作成される様子の一例を示す図であり、図4は、メインテーブルMRの構成を示す説明図であり、図5は、メインテーブルMRとサブテーブルR1〜R3とにより構成されたルーティングテーブルRTの全体構成を示す説明図である。
本実施形態の端末装置2では、ルーティングテーブルRTを作成する場合に、まず、以下のようにしてメインテーブルMRを作成する。
すなわち、図3(a)に示す如く、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長8bitの4進数で表すことにする。そして、端末装置2Nの端末IDを「1133」とし、この端末装置2NのメインテーブルMRを作る例について説明する。
(レベル1のルーティング)
まず、ID空間を4分割とした場合、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」(Xは0から3の自然数、以下同様。)で分けられる。端末装置2Nは、当該端末装置2N自身の端末IDが「1133」であるため、図3(a)中左下「1XXX」のエリアに存在することになる。そして、端末装置2Nは、自分の存在するエリア(すなわち、「1XXX」のエリア)以外のエリア(すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア)に存在する端末装置2をランダムに選択し、当該端末IDの所在情報、すなわち、当該端末IDのIPアドレスをレベル1のテーブルに記憶する。図4がレベル1のテーブルの一例である。このテーブルでは、「0XXX」のエリアの端末IDとして「0100」、「2XXX」のエリアの端末IDとして「2133」、「3XXX」のエリアの端末IDとして「3213」がそれぞれ選択されている状態を示している。なお、当該レベル1の2列目は端末装置2N自身を示しているため、IPアドレスを記憶する必要はない。
(レベル2のルーティング)
次に、図3(b)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「1XXX」を更に4分割し、更に4つのエリア「10XX」「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア「11xx」以外のエリアに存在する端末装置2をランダムに選択し、当該端末IDの所在情報であるIPアドレスをレベル2のテーブルに記憶する。図4がレベル2のテーブルの一例である。このテーブルでは、「10XX」のエリアの端末IDとして「1003」、「12XX」のエリアの端末IDとして「1221」が、「13XX」のエリアの端末IDとして「1313」がそれぞれ選択されている状態を示している。なお、レベル2の2列目は端末装置2Nが存在するエリア「11XX」であり、後述するレベル3にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアに端末装置2が存在しない場合には、端末ID及びIPアドレスの欄は空白となる。
(レベル3のルーティング)
更に、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「11XX」を更に4分割し、更に4つのエリア「110X」「111X」、「112X」、「113X」と分ける。そして、上記と同様に自分の存在するエリア「113X」以外のエリアに存在する端末装置2をランダムに選択し、当該端末IDの所在情報であるIPアドレスをレベル3のテーブルに記憶する。図4がレベル3のテーブルの一例である。レベル3の4列目は端末装置2Nが存在するエリアであり、後述するレベル4にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアに端末装置が存在しない場合には、端末ID及びIPアドレスの欄は空白となる。
このようにして、レベル4まで同様にメインテーブルMRを図4に示す如く作成することにより、8bitのID全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
そして、端末装置2は、上記メインテーブルMRの作成と同様にして、サブテーブルR1〜R3を作成し、図5に示す構成のルーティングテーブルRTを作成する。
この構成において、メインテーブルMRはレベル1〜4までの4つのレベル分のエントリEを合計16個(4つのレベル×4つのエリア)含んでいる。また、サブテーブルR1は、レベル1及び2の2つのレベル分のエントリEを合計8個(2つのレベル×4つのエリア)含んでおり、更にサブテーブルR2及びR3は、各々、レベル1のみのエントリEを4個(1つのレベル×4つのエリア)夫々含んでいる。すなわち、ルーティングテーブルRTとしては、各テーブルにおけるレベル数を、メインテーブルMRからみて指数関数的に減少させている。
そして、各エントリEには、対応するレベルのルーティング先(転送先)の端末装置2を示す端末ID及びIPアドレス等を含む他端末情報に加えて、当該ルーティング先の端末装置2までメッセージ等が到達するまでに中継される端末装置2の数であるホップ数が、当該ルーティング先の端末装置2までのネットワーク上の距離(換言すれば、当該ルーティング先の端末装置2までメッセージ等を到達させる際の容易性)を示す情報として記述されている。なお、当該端末ID、IPアドレス等及びホップ数を、纏めて以下「ノード情報」と称する。
また、ルーティングテーブルRTを構成するメインテーブルMR、サブテーブルR1〜R3においては、各テーブル内の同一レベル且つ同一エリアに相当するエントリEには、当該同一エリアに属する転送先となり得る端末装置2のノード情報が、ホップ数の少ない端末装置2から順にメインテーブルMR、サブテーブルR1〜R3に夫々一端末装置2分だけ記述されている。
より具体的には、例えば図5に例示するメインテーブルMRのエントリME1に注目した場合、当該エントリME1内に記述されているノード情報により示される端末装置2と同じエリアに属する他の1つの端末装置2を示すノード情報が、当該エントリME1と同一レベル同一エリアに相当するサブテーブルR1のエントリR1E1、サブテーブルR2のエントリR2E1及びサブテーブルR3のエントリR3E1内に夫々記述されている。
そして、メインテーブルMRのエントリME1内に記述されている端末IDにより示される端末装置2までのホップ数は、サブテーブルR1のエントリR1E1内に記述されている端末IDにより示される端末装置2までのホップ数より少なく、当該エントリR1E1内に記述されている端末IDにより示される端末装置2までのホップ数は、サブテーブルR2のエントリR2E1内に記述されている端末IDにより示される端末装置2までのホップ数より少なく、更に当該エントリR2E1内に記述されている端末IDにより示される端末装置2までのホップ数は、サブテーブルR3のエントリR3E1内に記述されている端末IDにより示される端末装置2までのホップ数より少なくなっている。
なお、図5に示すルーティングテーブルRTにおいて、エントリME1、R1E1、R2E1及びR3E1内に夫々記述されている端末IDにより示される端末装置2までのホップ数を相互に等しく構成することも可能である。この場合は、他の端末装置2からメッセージを受け取った時刻が最近の端末装置2を示す端末IDがエントリME1内に記述されることになる。
このような構成を備えるルーティングテーブルRTを用いて、他の端末装置2へメッセージ等を送信(転送)する場合、例えばメインテーブルMRのエントリME1内に記述されている端末IDにより示される端末装置2が、例えば当該端末装置2自体が第1配信システムから離脱した等の理由により当該第1配信システム内に存在しなくなったことが認識された場合、他のルーティング先の端末装置2を新たに探索することなく、サブテーブルR1のエントリR1E1内に記述されているノード情報により示される(同じエリア内の)他の端末装置2を新たなルーティング先に直ちに切り換えて必要なDHTルーティング処理を継続する。
そして、当該他の端末装置2をルーティング先としたメッセージ等の送信においては、元々エントリR1E1に記述されていたノード情報をエントリME1内に書き換えると共に、元々エントリR2E1に記述されていたノード情報をエントリR1E1内に書き換え、更に元々エントリR3E1に記述されていたノード情報をエントリR2E1内に書き換えるルーティングテーブルRTの更新を行い、新たなメッセージ等の送信に備える。
更に、例えば現在エントリME1内に記述されている端末IDにより示される端末装置2よりもホップ数が少ない同一レベル同一エリア内の他の端末装置2が発見された場合には、その新たに発見された端末装置2を示すノード情報を新たにエントリME1内に記述し、元々エントリME1に記述されていたノード情報をエントリR1E1内に書き換えると共に、元々エントリR1E1に記述されていたノード情報をエントリR2E1内に書き換え、更に元々エントリR2E1に記述されていたノード情報をエントリR3E1内に書き換えるルーティングテーブルRTの更新を行い、新たなメッセージ等の送信に備える。
そして、全ての各端末装置2は、以上説明したルーティングテーブルRTを、夫々作成して保持することになる。このように、各端末装置2は、第1配信システムにおける複数の端末装置2のうち一部の端末装置2の端末ID(端末識別情報)とIPアドレス(所在情報)等とを関連付けたルーティングテーブルRTを有しており、このルーティングテーブルRTは後述の第1配信システム用記憶領域250(図14参照。)に記憶される。
ところで、本実施形態の端末装置2は、第1配信システムに未参加のときには、第1配信システムに参加している他の端末装置2の所在情報などを知らない。そのため、端末装置2は、第1配信システムに参加するときには、次の項で説明するように、ルーティングテーブルを生成する。
なお、本実施形態の端末装置2は、電源が投入されると同時に第1配信システムに参加(接続)するためのアプリケーションを起動するように構成しており、電源が投入されている間は、常時第1配信システムに参加している状態を維持するように構成している。
[1.1.3.第1配信システムへの参加]
次に、図6を参照して、コンテンツ配信システムSにおける第1配信システムに未参加の(電源が投入されていない)端末装置2に電源が投入されて、当該第1配信システムへ参加する方法の一例について説明する。図6は、第1配信システムに未参加の端末装置2(以下、「新規参加端末装置2M」と呼ぶ。)が当該第1配信システムへ参加する様子の一例を示す図である。ここでは、新規参加端末装置2Mがコンテンツ配信システムSにおける第1配信システムに参加する手順について説明する。
まず、第1配信システムに未参加である新規参加端末装置2Mは、電源が投入されると、第1配信システムに参加するためのアプリケーションを起動して、新規参加端末装置2Mが備える後述の主記憶装置205内の第1配信システム用兼第2配信システム用記憶部205b(図13、図14参照。)に、上記したルーティングテーブルRTや、後述のインデックステーブル222等といった第1配信システムで用いる各種情報を記憶する領域として、第1配信システム用の記憶領域を確保する。
その後、新規参加端末装置2Mは、コンテンツ配信システムSの第1配信システムに参加するために、コンタクト先紹介装置5に対して、参加メッセージを送信すべき端末装置2(以下、「コンタクト先端末装置」と呼ぶ。)の所在情報を要求(以下、「コンタクト先端末装置の問い合わせ」と呼ぶ。)する。
新規参加端末装置2Mは、コンタクト先紹介装置5から参加メッセージを送信すべきコンタクト先端末装置の所在情報が送られてくると、コンタクト先端末装置に対して参加メッセージを送信する。ここで、参加メッセージのあて先識別情報は、新規参加端末装置2Mの端末IDとなっている。すなわち、新規参加端末装置2Mは、第1配信システムに参加する際に、自装置2のIPアドレスのハッシュ値「2133」を宛先識別情報とした参加メッセージを生成する。
コンタクト先端末装置は、新規参加端末装置2Mから送信された参加メッセージを受信すると、この参加メッセージがコンタクト先端末装置宛のメッセージであるか否かを判定する。コンタクト先端末装置宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルRTとに基づいて行われる。具体的には、宛先識別情報がコンタクト先端末装置宛の識別情報と近いか否かが判定される。即ち、宛先識別情報に対して、コンタクト先端末装置自身が保持しているルーティングテーブルRTに記憶されている端末装置2の端末IDから、一番近い端末装置2の端末IDが、自身であるか他の端末装置2であるかを判定する。
そして、コンタクト先端末装置の端末IDよりも他の端末装置の端末IDの方が宛先識別情報に近いとき、参加メッセージを受信したコンタクト先端末装置は、コンタクト先端末装置自身が保持しているルーティングテーブルRTのレベル2を参照して、「2XXX」のエリアに属す端末装置2のうち、IPアドレスを知っている端末装置2Bに対して参加メッセージを転送するとともに自端末装置2が保持しているルーティングテーブルのレベル1のテーブルの情報を、新規参加端末装置2Mへ送信する。
このように、コンテンツIDの桁を上から順に適合していく要領で参加メッセージの転送を行い、順次ルーティングテーブルRTの各レベルの情報を送信する。最終的に宛先識別情報に最も近い端末装置2に辿り着いたところで参加メッセージの転送は終了する。なお、参加メッセージなどのメッセージを目的の端末装置2へ辿り着くまでに、上述のように転送する仕組みをDHTルーティングと呼ぶ。
こうして、新規参加端末装置2Mは、参加メッセージを受信した端末装置2からルーティングテーブルRTの各レベルの情報を上位レベルの情報から順に取得するようにしている。新規参加端末2はこのようにして、第1配信システムに参加するために必要なルーティングテーブルRTを生成する。
[1.1.4.コンテンツデータの検索方法]
次に、図7を参照して、コンテンツデータを保持している端末装置2の検索方法の一例について説明する。図7は、DHTルーティングによりコンテンツデータを保持している端末装置2が検索される様子の一例を示す図である。
ここでは、端末ID「1133」の端末装置2Nが、コンテンツID「3020」を有するコンテンツデータを探す際の手順について説明する。なお、以下このようにコンテンツデータを探し、コンテンツデータの受信を要求する端末装置を「リクエスト端末装置」と呼ぶ。
リクエスト端末装置2Nは、自己が保持しているルーティングテーブルRTのレベル1のテーブルを参照して、コンテンツID「3020」と同じエリアの端末IDを持つ端末装置の端末IDを宛先識別情報としてコンテンツ保持端末情報(コンテンツ保持端末装置の所在情報を含む情報)の送信要求(以下、「コンテンツ検索メッセージ」と呼ぶ。)を送信する。すなわち、コンテンツID「3020」は「3XXX」のエリアであるため、当該「3XXX」のエリアに属す端末装置2のうち、IPアドレスを知っている(すなわち、自己が保持しているルーティングテーブルRTにIPアドレスが記憶されている)端末装置2A(端末ID「3213」)に対してコンテンツ検索メッセージを送信する。このように、コンテンツ検索メッセージはコンテンツに対応する固有の識別情報であるコンテンツIDを含むものであり、このコンテンツIDはコンテンツ検索メッセージにおいて宛先識別情報として用いられる。
図7に示す例によれば、端末IDが「3213」である端末装置2AのIPアドレスがリクエスト端末装置2Nのルーティングテーブル(図4参照。)に記憶されているので、リクエスト端末装置2Nは、端末IDが「3213」である端末装置2Aに対してコンテンツ検索メッセージを送信する。
次に、コンテンツ検索メッセージを受信した端末装置2Aは、このコンテンツ検索メッセージが自端末装置2A宛のメッセージであるか否かを判定する。自端末装置2A宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルRTとに基づいて行われる。具体的には、宛先識別情報が自端末装置2Aの端末IDと近いか否かが判定される。即ち、宛先識別情報に対して、端末装置2A自身が保持しているルーティングテーブルRTに記憶されている端末装置2の端末IDから、一番近い端末装置2の端末IDが、自身であるか他の端末装置2であるかを判定する。ここでは、自端末装置2Aの端末IDよりも他の端末装置2の端末IDの方が、宛先識別情報に近いため、端末装置2Aは、当該端末装置2A自身が保持しているルーティングテーブルRTのレベル2のテーブルを参照して、「30XX」のエリアに属す端末装置2のうち、IPアドレスを知っている端末装置2B(端末ID「3031」)に対してコンテンツ検索メッセージを転送する。
このように、コンテンツIDの桁を上から順に適合していく要領でコンテンツ検索メッセージの転送が進み、最終的に当該コンテンツデータを管理する端末装置2C(端末ID「3011」)、すなわちルート端末装置に辿り着くと、当該ルート端末装置は、コンテンツ検索メッセージに含まれるコンテンツID「3020」を、自身が管理している後述のインデックスキャッシュ情報の中から検索し、当該コンテンツデータを所有しているコンテンツ保持端末装置のIPアドレス等をリクエスト端末装置2Nに返信するようになっている。
こうして、リクエスト端末装置2Nは、上記ルート端末装置2Cから、コンテンツ保持端末情報(コンテンツID「3020」のコンテンツデータの所在情報、即ち、コンテンツID「3020」のコンテンツデータを保持するコンテンツ保持端末装置のIPアドレス)を受信して知ることになり、当該コンテンツ保持端末装置へ所望のコンテンツに関するダウンロード要求を送信することにより、このダウンロード要求を受信したコンテンツ保持端末装置から、そのコンテンツデータをダウンロードして取得することになる。
[1.1.5.インデックステーブルへの登録方法]
コンテンツ配信システムSにおける第1配信システムの中で、新しいコンテンツデータをネットワーク6上において他の端末装置2に見えるように公開する際の手法について述べる。
本実施形態におけるコンテンツ配信システムSの第1配信システムは、図8に示すように、コンテンツ投入装置4が各コンテンツ保持端末装置となる端末装置2に対して、各コンテンツ保持端末装置毎の管理対象コンテンツとなるコンテンツデータを送信する。コンテンツ投入装置4から管理対象のコンテンツデータを受信したコンテンツ保持端末装置は、後述のハードディスク装置203(図13参照。)に受信したコンテンツデータを記憶する。
当該コンテンツデータを配布されたコンテンツ保持端末装置は、図8及び図9に示すように、当該コンテンツ保持端末装置のIPアドレス及び端末IDを含むコンテンツ保持端末情報の登録要求メッセージ(以下、「コンテンツ登録メッセージ」と呼ぶ。)を、コンテンツの名称等から求めたコンテンツIDと同じ端末IDを持つ端末装置2に向けて(この端末装置2が実在するか否かはこの時点ではわからない。)送信する。そして、このコンテンツ登録メッセージも、上記コンテンツ検索メッセージと同様にルーティングテーブルRTに従って、次々と転送されていき、当該コンテンツ登録メッセージに含まれるコンテンツIDに最も近い端末IDを有する端末装置2まで転送されたところで、その端末装置2がもはや送信先の端末装置2が他にないと判断すると、当該端末装置2自身がそのコンテンツのルート端末装置となるべきだと判断し、図9に示すように、当該コンテンツ登録メッセージに含まれるコンテンツ保持端末情報である当該コンテンツID、コンテンツ保持端末装置のIPアドレス、及び補助情報(タイトル、ジャンル、拡張情報等の属性情報や、監督名等の著作権情報やストリーミング時間等)をインデックスキャッシュ情報として後述のインデックステーブル222(図13参照。)に記憶する。
このようにルート端末装置のインデックステーブル222にコンテンツ保持端末装置の所在情報であるIPアドレスが登録されると、以後リクエスト端末装置からのコンテンツ検索メッセージに対してインデックステーブルに登録したコンテンツ保持端末装置の所在情報をリクエスト端末装置へ返信する。このようにして本実施形態では、コンテンツ投入装置4から配布されたコンテンツをコンテンツ保持端末装置に登録し、ルート端末装置を介して検索できるようにすることで、他の端末装置にコンテンツを公開する。
インデックステーブル222は、図10に示すように、コンテンツIDやコンテンツ保持端末装置の所在情報(所在情報)であるIPアドレスなどを含むコンテンツ保持端末情報を記憶するためのテーブルである。このインデックステーブル222には、コンテンツIDやコンテンツ保持端末装置のIPアドレスのほか、コンテンツ保持端末装置を紹介した時刻等がコンテンツ保持端末情報として1行(所定記憶エリア)毎に記憶される。
また、本実施形態において、このコンテンツ保持端末情報は、コンテンツ保持端末装置からルート端末装置へ転送される際に、その転送経路上に存在する各端末装置2(コンテンツ保持端末情報を転送した端末装置2)のインデックステーブル222にも、インデックスキャッシュ情報として記憶される。
[1.2.第2配信システムについて]
次に、本実施形態のコンテンツ配信システムSにおける第2配信システムについて、図1及び図11及び図12を参照して説明する。
コンテンツ配信システムSの第2配信システムは、図1に示すように、コンテンツ配信装置1を頂点として複数の端末装置2a1,2a2,2b1〜2b4,2c1〜2c8がツリー状の階層構造で多層に論理接続されており、コンテンツ配信装置1からコンテンツデータが当該ツリー状の階層構造の上流に接続されている端末装置2から下流に接続されている端末装置2にかけて順次各端末装置2の中継機能によってストリーミング配信されるように構成される。このツリー状の階層構造は、コンテンツ配信装置1が配信する放送チャンネル毎に構成される。
このコンテンツ配信システムSの第2配信システムにおいては、放送チャンネル毎にコンテンツ配信装置1を頂点(ここでは、便宜上第0階層とする。)として複数の端末装置2がツリー状の階層構造で多層に論理接続されるように接続管理装置3によって管理される。なお、本実施形態においては、ツリー状の階層構造として説明するが、これに限られず、複数の端末装置2がチェーン状の階層構造で多層に論理接続されるようにしてもよい。また、端末装置2a1,2a2は便宜上端末装置2aと、端末装置2b1〜2b4は便宜上端末装置2bと、端末装置2c1〜2c8は便宜上端末装置2cという場合がある。
ここで、第2配信システムにおけるコンテンツデータの配信動作について、図11を参照して簡単に説明する。図11はコンテンツ配信システムSにおける第2配信システムの配信動作説明図である。
図11に示すように、コンテンツ配信装置1によって第2配信システムでストリーミング配信されるコンテンツデータは、コンテンツ投入装置4によってコンテンツ配信装置1へ投入される。すなわち、コンテンツデータは、コンテンツ投入装置4からコンテンツ配信装置1へ送信され、コンテンツ配信装置1において受信して後述のハードディスク装置203(図13参照。)に保持される。
コンテンツ配信システムSにおける第2配信システムに参加していない端末装置2、言い換えれば放送チャンネルのいずれのツリー状の階層構造も構成していない端末装置2は、第2配信システムに参加する場合、まず、第2配信システムに参加するためのアプリケーションを起動し、自装置2が備える後述の主記憶装置205(図13参照。)に第2配信システム用の記憶領域を確保し、その後、接続管理装置3へ接続先紹介要求を送信する。
なお、ここで確保される第2配信システム用の記憶領域は、後述のリングバッファ220等として機能するものである。
接続管理装置3は、図11に示すように、コンテンツ配信システムSにおける第2配信システムに参加していない端末装置2から接続先紹介要求を受信すると、第2配信システムのツリー状の階層構造の状態等に基づいて、その端末装置2がストリーミング配信を受けるための上流の装置として接続する接続先候補(コンテンツ配信装置1又は端末装置2)を選択する。そして、接続管理装置3は、このように選択した接続先候補の所在情報(接続先候補のIPアドレスやポート番号など)及び通信プロトコル等を端末装置2に通知する。また、接続先紹介要求は、他のチャンネルに切り替えるときや、ツリー状の階層構造における上流に接続している端末装置2との接続が切断されたときに接続管理装置3から送信される。
なお、コンテンツ配信システムSにおいて、すでに通信プロトコルやポート番号が固定されているときには、端末装置2へのポート番号及び通信プロトコルは通知しなくてもよい。ここで、通信プロトコルとして、MMS(Microsoft Media Server)プロトコル、RTSP(Real Time Streaming Protocol)等が用いられる。また、コンテンツデータの形式として、ASF(Advanced Streaming Format)、WMA(Windows(登録商標) Media Audio)、WMV(Windows(登録商標) Media Video)等が用いられる。
端末装置2は、接続管理装置3から接続先候補の所在情報を受信すると、その所在情報を宛先として接続先候補に対し、第2配信システムへの参加(接続)を要求し、これにより端末装置2がコンテンツ配信システムSの第2配信システムにおけるツリー状の階層構造へ組み込まれる。すなわち、端末装置2はコンテンツ配信装置1から配信されるコンテンツデータを受信可能となる。
コンテンツ配信システムSにおける第2配信システムは、このように端末装置2が次々と各チャンネルに参加することによって、コンテンツ配信装置1を頂点として複数の端末装置2がツリー状の階層構造で多層に論理接続される。そして、コンテンツ配信装置1から配信されるコンテンツデータは、各端末装置2の中継機能により順次ツリー状の階層構造における下流の端末装置2へ中継されて複数の端末装置2にストリーミング配信される。
すなわち、図11に示すように、コンテンツ配信装置1から端末装置2a1,2a2(第1層の端末装置)へコンテンツデータが送信され、端末装置2a1,2a2はコンテンツデータを受信すると、下流の端末装置2b1〜2b4(第2階層の端末装置)へ受信したコンテンツデータを順次中継する。端末装置2b1〜2b4はコンテンツデータを受信すると、下流の端末装置2c1〜2c8(第3階層の端末装置)へ受信したコンテンツデータを順次中継する。なお、図11においては、理解を容易にするため、複数の放送チャンネルのうち一つの放送チャンネルの階層構造のみを表している。
なお、端末装置2は、組み込まれたツリー状の階層構造の位置の上流の端末装置2又はコンテンツ配信装置1の所在情報と、組み込まれたツリー所の階層構造の位置の下流の端末装置2の所在情報とを後述のハードディスク装置203に記憶しており、このように記憶した所在情報に基づいて、コンテンツデータの中継を行うようにしている。また、配信されるコンテンツデータは、複数のパケットに分割されて順次配信されるものであり、このようにパケットに分割されて配信されるデータをコンテンツパケットという。
このように端末装置2へ配信されるコンテンツデータは、放送チャンネル毎にそのツリー状の階層構造を構成する端末装置2へ配信される。配信されるコンテンツデータには、音楽や映画などコンテンツのデータのほか、再生時刻情報が含まれている。そして、コンテンツデータを受信した複数の端末装置2は、順次送信されるコンテンツデータの再生を再生時刻情報に基づいて行う。
ここで、端末装置2におけるリングバッファ220について説明する。図12は、端末装置2におけるリングバッファ220を用いてコンテンツデータを受信し、再生或いは下流の端末装置2へ中継する構成を概念的に表した図である。
端末装置2は、第2配信システムに参加したときに、参加した放送チャンネルにおけるツリー状の階層構造の上流の装置からストリーミング配信されるコンテンツパケットをストリーミング受信器によって順次受信し、受信したコンテンツパケットに含まれるコンテンツデータをリングバッファ220に一時的に蓄積する。リングバッファ220に一時的に蓄積されたコンテンツデータは、その再生時刻になると、端末装置2の再生手段であるプレイヤによってリングバッファ220から取り出されて再生される。
ここで、図12に示すように、リングバッファ220には時計回りの方向で新しいコンテンツデータが順次蓄積され、最も古いコンテンツデータが新しいコンテンツデータに書き換わるように構成されている。すなわち、ストリーミング受信器によってリングバッファ220に書き込まれるポイントをAとすると、このポイントAが時計回りに移動していくのである。
なお、図12におけるリングバッファ220は概念的に示したものであり、実際にリング形状をしているのではなく、端末装置2の制御手段が、記憶領域における所定アドレス領域に蓄積した最も古いコンテンツデータを順次新しいコンテンツデータに書き換えることにより実現するものである。
また、コンテンツデータには上述のように再生時刻情報が格納されており、プレイヤはリングバッファ220に蓄積したコンテンツデータのうち、現時刻と合致する再生時刻情報を有するコンテンツデータ(ここでは、図12中Bのポイントのコンテンツデータ)をリングバッファ220から取り出して順次再生する。
このようなリングバッファ220によって、再生時刻前のコンテンツデータを蓄積しながら、再生時刻までにネットワーク6の状態に依存して間欠的に発生するコンテンツパケットの損失に対処する。言い換えれば、コンテンツ配信装置1は、パケットの損失補完処理を行えるだけのマージンを確保しながらコンテンツデータを配信している。なお、パケットの損失補完処理とは、ある一定時間待っても上位装置からのパケットが届かない場合に、上位装置にパケットの再送要求を行い、上位装置から再度パケットを送信させる処理をいう。損失補完処理ではこのように一連の処理を行わなければならず、ある程度時間がかかるため、上述のようにマージンの確保が必要となる。
ここで、ツリー状の階層構造の下流に他の端末装置2が2台接続されている場合、図12に示すように、端末装置2に2つのストリーミング送信器が設けられる。このストリーミング送信器は、リングバッファ220に格納されているコンテンツデータを所定量毎にコンテンツパケットのデータ領域に格納してコンテンツパケットを生成し、それぞれ下流に接続された他の端末装置2へこのコンテンツパケットを順次送信する。
本実施形態の端末装置2では、ツリー状の上流の装置から送信されるコンテンツパケットに含まれるコンテンツデータを取り出してリングバッファ220に蓄積するようにしているが、コンテンツパケットをそのままリングバッファ220に蓄積するようにしてもよい。いずれにせよ、ストリーミング送信器は、ストリーミング受信器によって受信したコンテンツパケットの送信先及び送信元の情報を置き換えたコンテンツパケットをツリー状の階層構造における下流の端末装置2に送信することになる。なお、ストリーミング受信器は後述のストリーミング受信手段に対応し、プレイヤは後述のストリーミング再生手段に対応し、ストリーミング送信器は後述のストリーミング中継手段に対応する。
このように端末装置2は、第2配信システムに参加した際に、コンテンツデータを一時的に蓄積するリングバッファ220を確保することによって、コンテンツパケットをプリバッファリングしながらパケット損失に対する補完を行い、ネットワーク6の経路上で発生するパケット損失の影響を回避するようにしている。
以上のように、コンテンツ配信システムSの第2配信システムでは、コンテンツ配信装置1から送信されたコンテンツデータが複数の端末装置2にストリーミング配信され、複数の端末装置2において同時刻にコンテンツを再生することができる。すなわち、コンテンツ配信システムSは、P2Pを用いて複数の端末装置2への放送形式のストリーミング配信を実現している。
[3.端末装置2の構成等の説明]
次に、本実施形態に係る端末装置2の構成等について、図13〜図15を参照して具体的に説明する。
図13は、端末装置2の構成を示すブロック図であり、図14は、端末装置の主記憶装置205内における第1配信システム用兼第2配信システム用記憶部205bを示す説明図であり、図15は、情報管理手段により第1配信システム用に確保される記憶領域と第2配信システム用に確保される記憶領域とを示す説明図である。
本実施形態の端末装置2は、一般のパーソナルコンピュータ或いは専用端末を適用することができ、上記した第1配信システムに参加している状態で、上記第2配信システムにも参加することができるように構成しており、具体的には、図13に示すように構成している。
すなわち、この端末装置2は、図13に示すように、CPU(Central Processing Unit)202と、各種プログラム等を記憶(格納)する書き換え可能な主記憶装置205と、第1配信システムに参加するためのアプリケーションや第2配信システムに参加するためのアプリケーション等といった各種データ等を記憶するハードディスク装置203と、ネットワーク6を介してネットワーク上のコンテンツ配信装置1、接続管理装置3、コンテンツ投入装置4、コンタクト先紹介装置5及び他の端末装置2との間で有線通信による通信を行うためのネットワークインタフェース204と、ユーザの操作により所定の情報を入力可能なキーボード207やマウス208等の入力手段を制御する周辺機器制御チップ206と、CPU202からイメージデータを受け取り、内部のビデオメモリ(図示せず)に書き込むと共にこのビデオメモリに書き込んだデータを後述の内蔵ディスプレイ210に表示するビデオチップ209と、ビデオチップ209から送信される信号に応じた表示を行う内蔵ディスプレイ210と、FM音源(Frequency Modulation)やWave Table音源などの音源を有する音源チップ211と、音源チップ211から出力されるオーディオ信号を音波に変換する内蔵スピーカ212とを備えて構成され、これらの各種構成要素はシステムバス201を介して相互に接続されている。
なお、本実施形態においては、CPU202と主記憶装置205とで制御部230を構成している。また、ネットワークインタフェース204は、ルータ10bを介して、ネットワーク6に接続されている。このルータ10bは、図1に示すルータ10に相当するものである。
また、上述したようなキーボード207やマウス208では、コンテンツ配信システムSにおけるコンテンツの購入などの操作が可能である。
(主記憶装置205について)
また、主記憶装置205は、端末装置2のコンピュータとしての基本的な機能を提供するためのOS(オペレーティングシステム)プログラム217、内蔵ディスプレイ210を制御するための画面制御プログラム218、第1配信システム又は第2配信システムにより受信したコンテンツデータをデコードして再生するためのデコーダプログラム219等が記憶されているプログラム記憶部205aを備えている。
また、この主記憶装置205には、第1配信システムに参加しているときに、第1配信システム用に確保される記憶領域(以下、「第1配信システム用記憶領域250」という。)として機能し、第2配信システムに参加しているときに、第2配信システム用に確保される記憶領域(以下、「第2配信システム用記憶領域251」という。)として機能する第1配信システム用兼第2配信システム用記憶部205bを備えている。
この第1配信システム用兼第2配信システム用記憶部205bは、制御部230が第1配信システムに参加するためのアプリケーションを起動すると、第1配信システム用記憶領域250として機能して、以下の情報を記憶する。
すなわち、第1配信システム用記憶領域250は、図14(a)に示すように、DHTルーティングで用いるルーティングテーブルRT、コンテンツ保持端末装置のIPアドレスやコンテンツ保持端末装置が保持するコンテンツID等を含むコンテンツ保持端末情報(以下、「インデックスキャッシュ情報」ともいう。)を記載したインデックステーブル222、現在ダウンロード可能なコンテンツのタイトルや作者やジャンル等が記載されたコンテンツデータのリスト情報であるカタログ情報224、DHTルーティングの際に用いる各種メッセージ情報225、コンテンツ購入プログラム221等といった第1配信システムによりコンテンツデータを受信するための各種情報を記憶するようにしている。
一方、第1配信システム用兼第2配信システム用記憶部205bは、制御部230が第1配信システムに参加している状態で、第2配信システムに参加するためのアプリケーションを実行すると、第1配信システム用記憶領域250の一部を第2配信システム用記憶領域251として機能させて、以下の情報を記憶する。
すなわち、第2配信システム用記憶領域251は、コンテンツ配信装置1から直接又は他の端末装置2に中継されてストリーミング配信されるコンテンツデータをストリーミング受信及びツリー状の階層構造における下流の端末装置2へストリーミング送信するためのストリーム制御プログラム215、ツリー状の階層構造に接続された一層上流の端末装置2(或いはコンテンツ配信装置1)の所在情報(IPアドレスやポート番号)とツリー状の階層構造に接続された一層下流の端末装置2の所在情報の管理等を行うためのトポロジー管理プログラム216、ストリーミング受信したコンテンツデータを順次一時的に記憶するリングバッファ220等といった第2配信システムによりコンテンツデータをストリーミング受信及びストリーミング配信するための情報を記憶するようにしている。
ここで、OSプログラム217は、CPU202によって読み出されて実行されることにより、キーボード207やマウス208の入出力に関する機能や、主記憶装置205やハードディスク装置203などのメモリ管理などの端末装置2であるコンピュータの基本的な機能を実行可能にするものである。そして、このOSプログラム217がCPU202によって実行された状態で、上述のストリーム制御プログラム215、トポロジー管理プログラム216、画面制御プログラム218、デコーダプログラム219、コンテンツ購入プログラム221等が主記憶装置205から読み出されて実行される。
なお、OSプログラム217、ストリーム制御プログラム215、トポロジー管理プログラム216、画面制御プログラム218、デコーダプログラム219、コンテンツ購入プログラム221等は、例えば、ネットワーク6に接続されたサーバ等から主記憶装置205にダウンロードされるようにしてもよく、また、CD−ROM等の記憶媒体に記録されてから当該記憶媒体を介して、主記憶装置205に読み込まれるようにしてもよい。
(制御部230について)
制御部230は、上述のようにCPU202と主記憶装置205とから構成され、CPU202が主記憶装置205に記憶された各種プログラム215〜219、221、ハードディスク装置203に記憶している各種アプリケーションを読み出して実行することにより、端末装置2全体を統括制御し、かつ、後述する記憶容量検出手段、情報量取得手段、参加端末数検出手段、受信速度検出手段、情報管理手段、カタログ情報受信手段、識別情報取得手段、コンテンツデータ記憶制御手段、ダウンロード処理手段、コンテンツ保持端末情報受信手段、ダウンロード送信要求手段、ダウンロードデータ受信手段、メッセージ宛先判定手段、コンテンツ保持端末装置情報選択手段、コンテンツ保持端末装置情報返信手段、コンテンツ識別情報演算手段、コンテンツ登録メッセージ生成手段、コンテンツ登録メッセージ送信手段、メッセージ転送手段、コンテンツ再生手段、接続手段、ストリーミング受信手段、ストリーミング中継手段、ストリーミング再生手段、表示制御手段、デコード手段等として機能するようになっている。
なお、CPU202がハードディスク装置203に記憶されている第1配信システムに参加するためのアプリケーション又は第2配信システムに参加するためのアプリケーションを起動することによって、記憶容量検出手段、情報量取得手段、参加端末数検出手段、受信速度検出手段、情報管理手段として、また、CPU202がコンテンツ購入プログラム221を実行することによって、カタログ情報受信手段、識別情報取得手段、コンテンツデータ記憶制御手段、ダウンロード処理手段、コンテンツ保持端末情報受信手段、ダウンロード送信要求手段、ダウンロードデータ受信手段、メッセージ宛先判定手段、コンテンツ保持端末装置情報選択手段、コンテンツ保持端末情報返信手段、コンテンツ識別情報演算手段、コンテンツ登録メッセージ生成手段、コンテンツ登録メッセージ送信手段、メッセージ転送手段等、コンテンツ再生手段として、更にCPU202がストリーム制御プログラム215を実行することによってストリーミング受信手段、ストリーミング中継手段等として、またCPU202がトポロジー管理プログラム216を実行することによって、接続手段等として、またCPU202が画面制御プログラム218を実行することによって表示制御手段等として、更にCPU202がデコーダプログラム219を実行することによってデコード手段、ストリーミング再生手段等として、それぞれ機能するようになっている。
(記憶容量検出手段について)
記憶容量検出手段は、第2配信システムに参加することにより必要となる記憶領域の容量を検出するものである。
すなわち、この記憶容量検出手段は、第2配信システムにより受信しようとするコンテンツデータの情報量(ビットレート)から、そのコンテンツデータをストリーミング受信するために必要となるリングバッファ220の記憶容量を算出すると共に、このリングバッファ220の容量とストリーム制御プログラム215と、トポロジー管理プログラム216とを記憶可能な記憶容量との合計を算出することによって、第2配信システムに参加することにより必要となる記憶領域の容量を検出する。
また、記憶容量検出手段は、リングバッファ220として必要な記憶容量を算出する際に、後述の受信速度検出手段による検出結果に基づいて、第2配信システムにより単位時間にストリーミング受信するコンテンツデータ量を算出すると共に、この算出結果に基づいて必要となるリングバッファ220の記憶容量を算出することもできる。
(情報量取得手段について)
情報量取得手段は、自身が保持しているコンテンツ保持端末情報において、削除対象のコンテンツ保持端末情報を管理している端末装置(ルート端末装置)から、その端末装置が保持しているコンテンツ保持端末情報の情報量を取得することによって、その端末装置が保持しているノード情報の量を取得するものである。
(参加端末数検出手段について)
参加端末数検出手段は、第1配信システムに参加している端末装置2の数を検出するものである。
ここで、第1配信システムに参加している端末装置2の数を検出する方法としては、自端末装置2が記憶しているルーティングテーブルRTを参照し、ルーティングテーブルRTに記載されている端末装置2の数から第1配信システムに参加している端末装置2の数を概算することによって検出するようにしている。
また、第1配信システムに参加している端末装置2の数を検出する方法としては、第1配信システムに参加している全端末装置2の接続状態を管理しているコンタクト先紹介装置5から現在第1配信システムに参加している端末装置2の数取得するように構成することもできる。
(受信速度検出手段について)
受信速度検出手段は、端末装置2が第2配信システムに参加したときに、ツリー状の階層構造に接続された一層上流の端末装置2(或いはコンテンツ配信装置1)から、その装置が使用している通信回線の種類を取得し、その通信回線(光回線、ADSL回線、通常の電話回線等)の種類から、その装置と自端末装置2との間の通信速度(ビットレート)を間接的に検出する。
ここで受信速度検出手段は、通信回線の種類によって通信速度を検出するようにしているが、これに限定するものではなく、たとえば、ツリー状階層構造に接続された一層上流の端末装置2(或いはコンテンツ配信装置1)から、コンテンツデータを送信してもらう前に、所定のファイルサイズのデータをスピードテスト用のデータとして送信してもらい、そのデータの受信が完了するまでに要した時間から、通信速度を検出するように構成してもよい。
(情報管理手段について)
情報管理手段は、端末装置2が第1配信システムに参加するときに、主記憶装置205の第1配信システム用兼第2配信システム用記憶部205bに、第1配信システム用記憶領域250を確保し、当該端末装置2が第1配信システムに参加している状態で、第2配信システムに参加したときに、第1配信システム用記憶領域250の一部を第2配信システム用記憶領域251として機能させるものである。
すなわち、この情報管理手段は、端末装置2に電源が投入されると、まず、主記憶装置205内の第1配信システム用兼第2配信システム用記憶部205bに第1配信システム用記憶領域250を確保する。
このとき、情報管理手段は、図15(a)に示すように、第1配信システムによりコンテンツデータをダウンロードするために必要なだけの記憶領域を第1配信システム用記憶領域250として確保し、この第1配信システム用記憶領域250内に、第1配信システムによりコンテンツデータのダウンロードを行うために必要なコンテンツ購入プログラム221、ルーティングテーブルRT、インデックステーブル222、カタログ情報224、各種メッセージ情報225等(図14(a)参照。)を記憶させる。
これら第1配信システム用記憶領域250内に記憶させる各種情報は、前回端末装置2の電源を切る前に、ハードディスク装置203に保存しておいた情報である。ただし、ルーティングテーブルRTとインデックステーブル222とカタログ情報に関しては、一旦ハードディスク装置203から読み出して第1配信システム用記憶領域250に記憶した後、これらの情報が最新のものであるか否かの判断を行い、最新のものでないと判断した場合には、随時最新の情報に更新するように構成している。
こうして情報管理手段は、第1配信システム用兼第2配信システム用記憶部205bに第1配信システム用記憶領域250を確保して、第1配信システムによるコンテンツデータのダウンロードに備える。
その後、ユーザが端末装置2を第1配信システムに参加させている状態で、第2配信システムに参加させるために、キーボード207又はマウス208を操作すると、情報管理手段は、上記した記憶容量検出手段の検出結果に応じて、図15(b)に示すように第1配信システム用記憶領域250に記憶している情報のうちの一部を削除する。
すなわち情報管理手段は、記憶容量検出手段の検出結果に応じて、第1配信システム用記憶領域250の一部を第2配信システム用記憶領域251として機能させるか否かを判断する。
このとき、情報管理手段は、記憶容量検出手段により算出された、第2配信システムによりコンテンツデータをストリーミング受信するのに必要なリングバッファ220の記憶容量とストリーム制御プログラム215とトポロジー管理プログラム216とを記憶可能な記憶容量の合計と、第1配信システム用兼第2配信システム用記憶部205bにおける空き領域の記憶容量とを比較し、この空き領域の記憶容量よりも記憶容量検出手段により算出された記憶領域の方が大きいと判断した場合に、第1配信システム用記憶領域250に記憶している情報のうちの一部を削除する。
一方、情報管理手段は、記憶容量検出手段により検出された記憶容量よりも、第1配信システム用兼第2配信システム用記憶部205bの空き領域の記憶容量の方が大きいと判断した場合には、この空き領域を第2配信システム用記憶領域251として機能させる。
これにより、情報管理手段は、第1配信システム用兼第2配信システム用記憶部205bに、第2配信システム用記憶領域251を十分に確保できるだけの空き領域がある場合に、第1配信システム用記憶領域250を第2配信システム用記記憶領域として機能させるための処理を行わなくて済むので、その分、当該情報管理手段の処理負担を軽減することができる。
また、情報管理手段は、第1配信システム用記憶領域250に記憶している情報の一部を削除する場合、上記情報量取得手段により取得した情報量に応じて、第1配信システム用記憶領域250内のインデックステーブル222を構成しているコンテンツ保持端末情報を削除するか否かの判断を行う。
すなわち、情報管理手段は、情報量取得手段により削除対象のコンテンツ保持端末情報を管理しているルート端末装置から、そのルート端末装置が保持している削除対象のコンテンツ保持端末情報の情報量を取得し、取得した情報量が所定の閾値を越えている場合に、第1配信システム用記憶領域250内のインデックステーブル222から削除対象のコンテンツ保持端末情報を削除する。
このとき削除するコンテンツ保持端末情報は、仮に削除しても、再び必要になった場合には、他の端末装置2から取得することができる情報であるため、第1配信システムによるコンテンツデータの受信に支障をきたすことがない。
また、情報管理手段は、削除対象のコンテンツ保持端末情報を複数種類管理している場合には、情報量取得手段により、複数のルート端末装置から複数種類のコンテンツデータに関するコンテンツ保持端末情報の情報量を取得し、これら取得した複数種類の情報量のうち、情報量が多いコンテンツ保持端末情報から順に削除するようにしている。
そのため、削除したコンテンツ保持端末情報が再度必要になった場合であっても、そのコンテンツ情報を保持しているルート端末装置がネットワーク6上に多数存在しているため、削除したコンテンツ保持端末情報を、そのルート端末装置から容易に取得することができる。
一方、情報管理手段は、情報量取得手段により取得した情報量が所定の閾値を超えていない場合には、第1配信システム用記憶領域250に記憶しているコンテンツ保持端末情報以外の情報を削除する。
このように、第1配信システム用記憶領域250に記憶しているコンテンツ保持端末情報以外の情報を削除する場合に、情報管理手段は、第1配信システム用記憶領域250からカタログ情報若しくは、ルーティングテーブルRTを構成するノード情報の一部を削除する。
また、情報管理手段は、上記受信速度検出手段により取得した受信速度に応じて、第1配信システム用記憶領域250として確保している記憶領域のうち、第2配信システム用記憶領域251として機能させる領域を拡張又は縮小する。
すなわち、受信速度検出手段により取得した受信速度が比較的低い場合には、単位時間にリングバッファ220に蓄積されるコンテンツデータのデータ量が比較的少ないため、リングバッファ220として機能させる記憶領域を縮小させても、リングバッファ220へ第2配信システムによりストリーミング受信したコンテンツデータを確実に蓄積することができる。
そのため、情報管理手段は、受信速度検出手段により取得した受信速度が比較的低い場合には、第1配信システム用記憶領域250として確保している記憶領域のうち、第2配信システム用記憶領域251として機能させる領域を縮小させ、第1配信システム用記憶領域250から削除する情報量を低減させるようにしている。
一方、受信速度検出手段により取得した受信速度が比較的高い場合には、単位時間にリングバッファ220に蓄積されるコンテンツデータのデータ量が比較的多いため、リングバッファ220として機能させる記憶領域を拡張しなければ、第2配信システムによりストリーミング受信するコンテンツデータを確実に蓄積することができない。
そのため、情報管理手段は、受信速度検出手段により取得した受信速度が比較的高い場合には、第1配信システム用記憶領域250として確保している記憶領域のうち、第2配信システム用記憶領域251として機能させる領域を拡大し、第1配信システム用記憶領域250から削除する情報量を増大させる。
このように、第1配信システム用記憶領域250から削除する情報量が多くなった場合に、情報管理手段は、第1配信システム用記憶領域250に記憶している情報のうち、インデックステーブル222を構成しているコンテンツ保持端末情報又はカタログ情報のいずれか一方を削除する。
また、情報管理手段は、コンテンツ保持端末情報とカタログ情報とのいずれか一方を削除しても、リングバッファ220として必要となる記憶領域を十分に確保できないと判断した場合に、コンテンツ保持端末情報とカタログ情報との両方を第1配信システム用記憶領域250から削除する。
そして、情報管理手段は、コンテンツ保持端末情報とカタログ情報との両方を削除しても、リングバッファ220として必要となる記憶領域を十分に確保できないと判断した場合には、ルーティングテーブルRTを構成するノード情報の一部を削除する。
このとき、情報管理手段は、他の端末装置2の端末IDとその端末装置2のIPアドレス等、DHTルーティングを行う際に必要不可欠な情報に関しては削除せず、自端末装置2からルート端末装置へ情報を転送する際の転送経路上に存在する端末装置の数(ポップ数)を示す情報等、削除してもDHTルーティングを行う際に支障をきたさない情報を削除するようにしている。
そして、第1配信システムに記憶している情報において、情報管理手段による削除の優先順位は、コンテンツ保持端末情報、カタログ情報、ルーティングテーブルRTに記載されているノード情報の一部の順としている。
すなわち、情報管理手段は、第1配信システム用記憶領域250から情報を削除する際に、まず、コンテンツ保持端末情報を削除し、それでもリングバッファ220として十分な記憶領域を確保できなければカタログ情報を削除し、それでもリングバッファ220として十分な記憶領域を確保できなければノード情報の一部を削除するようにしている。
このように削除の優先順位を設けたことにより、情報管理手段は、第1配信システム用記憶領域250から情報を削除する際に、削除してもDHTルーティングに支障をきたすおそれの低い情報、換言すれば、第1配信システムによりコンテンツデータのダウンロードを行う際に支障をきたすおそれの低い情報から順に削除することができる。
また、情報管理手段は、上記参加端末数検出手段により検出した端末装置2の数が所定の閾値を超えている場合に、第1配信システム用記憶領域250の一部を削除する。
すなわち、情報管理手段は、第1配信システムに所定数よりも多い端末装置2が参加していれば、第1配信システム用記憶領域250に記憶している情報を削除しても、その情報が必要になった場合、第1配信システムに参加している他の端末装置2からその情報を取得することができる。
しかも、当該端末装置2が所定のコンテンツデータのルート端末装置であった場合、第1配信システム用記憶領域250に記憶している情報を削除しても、自身が保持している情報を必要とする端末装置2は、第1配信システムに参加している他の端末装置2からその情報を取得することができ、第1配信システムに参加している他の端末装置2に支障をきたすことがない。
また、情報管理手段は、第1配信システム用記憶領域250において削除対象となる情報量が多く、後にその情報が必要になった場合、その情報を他の端末装置2等から取得することが困難であると判断した場合、図15(b)に示すように、第1配信システム用記憶領域250から情報を削除する前に、削除対象の情報を一旦ハードディスク装置203へ保存しておく。
この場合、ハードディスク装置203は、第1配信システム用記憶領域250から削除する情報を保存しておくための他の記憶手段として機能する。
このようにして、情報管理手段は、第1配信システム用記憶領域250から情報を削除した後、図15(c)に示すように、第1配信システム用記憶領域250において、削除した情報若しくはハードディスク装置203に保存した情報を記憶していた領域を第2配信システム用記憶領域251として機能させ、この第2配信システム用記憶領域251内に、第2配信システムによりコンテンツデータのダウンロードを行うために必要なストリーム制御プログラム215、トポロジー管理プログラム216、リングバッファ220等(図14(b)参照。)を記憶させる。
こうして情報管理手段は、第1配信システム用兼第2配信システム用記憶部205bに第2配信システム用記憶領域251を確保して、第2配信システムによるコンテンツデータのストリーミング受信に備える。
そして、情報管理手段は、端末装置2が第2配信システムから離脱した後に、図15(d)に示すように、第2配信システム用記憶領域251に記憶している情報を削除する。
その後、情報管理手段は、ハードディスク装置203内に第1配信システム用記憶領域250から削除した情報を保存している場合、図15(d)に示すように、その情報をハードディスク装置203から読み出して、再度、第1配信システム用兼第2配信システム用記憶部205bに確保した第1配信システム用記憶領域250に記憶させ、第1配信システム用兼第2配信システム用記憶部205bを図15(a)に示す状態へ戻す。
また、情報管理手段は、ハードディスク装置203内に第1配信システム用記憶領域250から削除した情報を保存していない場合、第1配信システム用記憶領域250から削除した情報を、他の端末装置2等から取得して、再度、第1配信システム用兼第2配信システム用記憶部205bに確保した第1配信システム用記憶領域250に記憶させ、第1配信システム用兼第2配信システム用記憶部205bを図15(a)に示す状態へ戻す。
このように情報管理手段は、第1配信システムに参加した状態で、第2配信システムに参加したときに、第1配信システム用記憶領域250の一部を第2配信システム用記憶領域251として機能させることにより、第2配信システムで使用するリングバッファ220として十分な容量の記憶領域を確保することができるので、第2配信システムによるコンテンツデータのストリーミング受信に支障をきたすことがなく、第2配信システムに参加していないときには、第2配信システム用記憶領域251を確保しておく必要がないため、端末装置2の主記憶装置205を有効に利用することができる。
(カタログ情報受信手段について)
カタログ情報受信手段は、コンテンツ投入装置4から送信されるカタログ情報を受信する機能を有している。コンテンツ投入装置4から送信されるカタログ情報は、第1配信システムにおいて現在ダウンロード可能なコンテンツデータのタイトルとコンテンツIDとが関連付けられた情報であり、自端末装置2が第1配信システムに参加したときにコンテンツ投入装置4へカタログ情報の送信要求を行うことによって、コンテンツ投入装置4から送信されるものである。また、コンテンツ投入装置4は新たにコンテンツ配信装置1又は端末装置2に対して所定数のコンテンツデータを投入したときには、更新したカタログ情報を各端末装置2へ送信するようにしている。
(識別情報取得手段について)
識別情報取得手段は、ユーザにより所望のコンテンツデータに関してダウンロード要求の操作があると、ダウンロード要求されたコンテンツデータを第1配信システムで取得するために、ダウンロード要求されたコンテンツデータの識別情報であるコンテンツIDを取得する。すなわち、識別情報取得手段は、カタログ情報受信手段によって受信したカタログ情報からダウンロード要求されたコンテンツデータの識別情報であるコンテンツIDを取得する。
なお、識別情報取得手段は、ダウンロード要求されたコンテンツデータのコンテンツIDのみをコンテンツ投入装置4から取得するようにしてもよい。この場合、識別情報取得手段は、ダウンロード要求されたコンテンツデータのタイトルをコンテンツ投入装置4へ送信して、ダウンロード要求されたコンテンツデータのコンテンツIDを取得する。
また、識別情報取得手段は、後述するコンテンツ識別情報演算手段によってダウンロード要求されたコンテンツデータのコンテンツIDを求めるようにしてもよい。すなわち、ダウンロード要求されたコンテンツデータのタイトルをキーワードとして上記ハッシュ関数によりハッシュ化することによってコンテンツIDを求めるのである。このようにダウンロード要求されたコンテンツデータのタイトルをキーワードとしてコンテンツIDを求めることにより、端末装置2における第1配信システムでのダウンロード処理がし易くなる。なお、第1配信システムによってダウンロード可能なコンテンツのタイトルは、コンテンツ投入装置4から一覧表などの形式で取得し、コンテンツ識別情報演算手段は、この一覧表であるカタログ情報等からコンテンツのタイトルを取得することで、コンテンツIDを算出することができる。
(コンテンツデータ記憶制御手段について)
コンテンツデータ記憶制御手段は、第1配信システムによってダウンロードしたコンテンツデータをハードディスク装置203のコンテンツデータ記憶領域に記憶する。
(ダウンロード処理手段について)
ダウンロード処理手段は、識別情報取得手段によって取得されたコンテンツデータのコンテンツIDに基づいて、ダウンロード要求されたコンテンツデータを第1配信システムに参加しているコンテンツ保持端末装置からダウンロードする機能を有しており、コンテンツ保持端末情報受信手段、ダウンロード送信要求手段、ダウンロードデータ受信手段などから構成されている。
(コンテンツ保持端末情報受信手段について)
コンテンツ保持端末情報受信手段は、まず、識別情報取得手段によって取得されたコンテンツデータのコンテンツIDに基づいて、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置を検索する。
コンテンツ保持端末装置の検索は、識別情報取得手段によって取得されたコンテンツIDを宛先識別情報としたコンテンツ検索メッセージを生成し、そのコンテンツIDと同じエリアの端末IDを持つ端末装置2のIPアドレスをルーティングテーブルRTから取り出して、その端末装置2へコンテンツ検索メッセージを送信することによって行う。
そして、このコンテンツ保持端末情報受信手段は、コンテンツ検索メッセージに対して、識別情報取得手段によって取得されたコンテンツIDのコンテンツデータを保持するコンテンツ保持端末装置のIPアドレスをルート端末装置から受信する。
このようにして、コンテンツ保持端末情報受信手段は、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置に関するコンテンツ保持端末情報を受信するのである。
(ダウンロード送信要求手段)
ダウンロード送信要求手段は、コンテンツ保持端末情報受信手段によって受信したコンテンツ保持端末情報に対応したコンテンツ保持端末装置に、ダウンロード要求されたコンテンツデータの送信をネットワーク6を介して要求(以下、「ダウンロード送信要求」と呼ぶ。)する。このダウンロード送信要求は、コンテンツ保持端末装置のIPアドレスを宛先として、ダウンロード要求に対応するコンテンツデータのコンテンツIDを設定するものである。なお、コンテンツ保持端末情報受信手段によって検索されたコンテンツ保持端末装置が複数ある場合には、近隣のコンテンツ保持端末装置の一つに対してダウンロード送信要求が行われる。
ここで、「近隣のコンテンツ保持端末装置」とは、ダウンロード送信要求を行う端末装置2が、コンテンツ保持端末装置とDHTルーティングにおいて端末IDが近い端末装置、或いは、物理ネットワークにおいて近いコンテンツ保持端末装置を意味する。特に、ダウンロード送信要求を行うコンテンツ保持端末装置を物理ネットワークにおいて近いコンテンツ保持端末装置とする場合には、コンテンツ保持端末装置からのコンテンツデータのダウンロードを短時間で行うことができる。なお、「物理ネットワークにおいて近い」とは、ダウンロード送信要求を行う端末装置からのメッセージ到達時間が短い、或いはダウンロード送信要求を行う端末装置からのポップ数(ルータを経由する数)が少ない等を意味する。
(ダウンロードデータ受信手段について)
ダウンロードデータ受信手段は、ダウンロード要求されたコンテンツデータを保持するコンテンツ保持端末装置からダウンロード要求されたコンテンツデータをネットワーク6を介して受信する。コンテンツ保持端末装置から送信されるコンテンツデータは、第2配信システムのようなストリーミング形式ではなく、ダウンロード形式のデータである。
ダウンロード受信手段により受信したコンテンツデータは、制御部230によって、ハードディスク装置203のコンテンツデータ記憶領域(コンテンツデータ記憶手段に相当)に記憶される。
(メッセージ宛先判定手段について)
メッセージ宛先判定手段は、ネットワーク6を介して受信したメッセージの宛先識別情報とルーティングテーブルRTとに基づいて、受信したメッセージが自端末装置2宛であるか否かを判定する。このメッセージ宛先判定手段が判定するメッセージは、上述のコンテンツ検索メッセージ、コンテンツ登録メッセージなどである。
受信したメッセージが自端末装置2宛であるか否かの判定は、メッセージに含まれる宛先端末ID(宛先識別情報)を取り出し、主記憶装置205に記憶したルーティングテーブルRTに基づいて判定する。すなわち、各種のメッセージをネットワークインタフェース204を介して受信したとき、メッセージ宛先判定手段は、受信したメッセージに含まれる宛先識別情報とルーティングテーブルRTに記憶した端末IDとを比較し、メッセージに含まれる宛先識別情報と一番近いルーティングテーブルRT上の端末IDが自端末装置2の端末IDであると判定すると、自端末装置2宛のメッセージであると判定する。
(コンテンツ保持端末情報選択手段について)
コンテンツ保持端末情報選択手段は、メッセージ宛先判定手段によりネットワーク6を介して受信したメッセージが自端末装置2宛であり、かつコンテンツ検索メッセージであると判定すると、インデックステーブル222からコンテンツ検索メッセージが対象とするコンテンツIDのコンテンツデータを保持するコンテンツ保持端末装置のIPアドレスを選択する。なお、インデックステーブル222にコンテンツ保持端末装置のIPアドレスが複数ある場合には、それらを全部或いはいくつか選択する。
(コンテンツ保持端末情報返信手段について)
コンテンツ保持端末情報返信手段は、コンテンツ保持端末情報選択手段によって選択されたコンテンツ保持端末装置のIPアドレスを、リクエスト端末装置へネットワーク6を介して返信する。
(コンテンツ識別情報演算手段について)
コンテンツ識別情報演算手段は、コンテンツデータの固有情報を上記の如く所定のハッシュ関数によって演算することによってコンテンツデータの識別情報であるコンテンツIDを演算する。
(コンテンツ登録メッセージ生成手段について)
コンテンツ登録メッセージ生成手段は、コンテンツ投入装置4からコンテンツデータを受信したとき、受信したコンテンツデータをコンテンツデータ記憶手段であるハードディスク装置203に記憶する。又、コンテンツデータのコンテンツのタイトルをコンテンツ識別情報演算手段によって演算したコンテンツIDを宛先識別情報とし、自端末装置の端末ID及びIPアドレスを含むコンテンツ登録メッセージを生成する。
(コンテンツ登録メッセージ送信手段について)
コンテンツ登録メッセージ送信手段は、コンテンツ登録メッセージ生成手段によって生成したコンテンツ登録メッセージを、ハードディスク装置203に記憶したコンテンツデータのコンテンツIDに基づいて、ルーティングテーブルRTに記憶された端末装置2の端末IDから送信先端末装置を選択して送信する。例えば、図4及び図5に示すようなルーティングテーブルRTを有しており、かつハードディスク装置203に記憶したコンテンツデータのコンテンツIDが「1221」である場合、コンテンツ登録メッセージ送信手段は、ルーティングテーブルRTから端末ID「1221」を送信先端末装置として選択し、当該端末ID「1221」の端末装置のIPアドレス「21.13.21.13」を取り出す。そして、当該IPアドレス「21.13.21.13」を送信先端末装置としてコンテンツ登録メッセージを送信する。なお、このコンテンツ登録メッセージの宛先識別情報は「1221」となる。
(メッセージ転送手段について)
メッセージ転送手段は、メッセージ宛先判定手段によりネットワーク6を介して受信したメッセージが自端末装置宛ではないと判定されると、受信したメッセージの宛先識別情報に基づいて、転送先の端末装置のIPアドレスをルーティングテーブルRTから取り出し、転送先の端末装置2へ受信したメッセージを転送する。
(コンテンツ再生手段について)
コンテンツ再生手段は、ハードディスク装置203に記憶したコンテンツデータを取り出して再生するものであり、ビデオチップ209及び音源チップ211を動作させることによりコンテンツデータが再生される。
(接続手段について)
接続手段は、端末装置2をコンテンツ配信システムSの第2配信システムへ参加させるために、接続先紹介要求をネットワーク6を介して接続管理装置3へ送信し、その後、接続管理装置3からネットワーク6を開始して通知された接続先候補に接続する。
より具体的には、接続手段は、端末装置2をコンテンツ配信システムSの第2配信システムへ参加させるために、接続管理装置3へ登録要求をネットワーク6を介して送信して接続管理装置3へ登録し、更に接続先紹介要求をネットワーク6を介して送信して接続管理装置3へ接続先候補を要求する機能を有している。この登録要求や接続先紹介要求には、自端末装置2のIPアドレス等を含む。
また、接続手段は、接続管理装置3へ送信した接続先紹介要求に対して、接続管理装置3からネットワーク6を介して通知される接続先候補の情報、すなわち接続先候補の端末装置2の所在情報であるIPアドレスやポート番号などの情報(以下、接続先候補の情報を含めて、「接続先候補」と略すことがある。)を受信する機能を有する。
更に、接続手段は、受信した接続先候補の情報に基づいて、その接続先候補への論理接続を行う機能を有する。すなわち、接続手段は、接続先候補の情報に基づいて、接続先候補のIPアドレス及びポート番号等をあて先とした接続要求を行い、接続先候補との論理接続を行う。このように接続先候補と接続することによって第2配信システムに参加、すなわち自端末装置2をツリー状の階層構造の一部に組み込むことが可能となる。
(ストリーミング受信手段について)
ストリーミング受信手段は、ネットワークインタフェース204を介して第2配信システムによって上流装置、すなわちツリー状の階層構造における上流に論理接続したコンテンツ配信装置1又は上流に接続された端末装置2からコンテンツパケットとして送信されるコンテンツデータをストリーミング受信し、このようにストリーミング受信したコンテンツデータをリングバッファ220に順次記憶する。なお、コンテンツデータ受信手段や後述のコンテンツデータ中継手段は、公知のストリーミング配信用プロトコルを用いることができるほか、独自の専用プロトコルを用いるようにすることもできる。
(ストリーミング中継手段について)
ストリーミング中継手段は、第2配信システムにおける上流装置、すなわちコンテンツ配信装置1又はツリー状の階層構造における上流に接続された端末装置2からネットワーク6を介してストリーミング受信されたコンテンツデータを、下流に接続された他の端末装置2へネットワーク6を介して転送する。
(ストリーミング再生手段について)
ストリーミング再生手段は、ネットワークインタフェース204を介して第2配信システムによって上流装置からストリーミング受信してリングバッファ220に順次記憶されたコンテンツデータを順次再生する機能を有している。
このストリーミング再生手段は、音源チップ211やビデオチップ209を動作させることによってこの機能を実現しており、リングバッファ220に格納したコンテンツデータを順次取り出して、所定のコンテンツデータ形式(たとえば、Wave形式)に変換して音源チップ211やビデオチップ209へ入力し、コンテンツの再生を行う。
ストリーミング再生手段によって所定のコンテンツデータ形式に変換されたコンテンツデータは、そのコンテンツデータがオーディオ情報を含む場合には、そのオーディオ情報が音源チップ211によってオーディオ信号へ変換された後、内蔵スピーカ212から出力される。
また、ストリーミング再生手段によって所定のコンテンツデータ形式に変換されたコンテンツデータは、そのコンテンツデータに映像情報が含まれるときには、後述の表示制御手段による制御によってこの映像情報が内蔵ディスプレイ210に表示される。
また、ストリーミング再生手段は、リングバッファ220に格納されたコンテンツデータに含まれる再生開始時刻情報に基づいて、当該コンテンツデータを再生するタイミングを決定する。すなわち、再生手段は、リングバッファ220に格納されたコンテンツデータをその再生開始時刻で内蔵スピーカ212や内蔵ディスプレイ210に出力するように構成されている。
(表示制御手段について)
表示制御手段は、ビデオチップ209及び内蔵ディスプレイ210を制御して、コンテンツデータや各種情報を表示する機能を有している。すなわち、表示制御手段は、内蔵ディスプレイ210にどのようにコンテンツの映像や各種情報を表示するかを制御することができる。
(デコード手段について)
デコード手段は、他の端末装置2から送信されるコンテンツデータ等をディスプレイ210に表示し、スピーカ212から出力するためにデコードする。すなわち、他の端末装置2から送信されるコンテンツデータは、ストリーミング配信用のデータ形式、例えばASF、WMA、WMV等のデータ形式でエンコードされており、このようにエンコードされているコンテンツデータをディスプレイ210やスピーカ212から出力できるようにデコードする。
[2.接続管理装置の動作]
次に、本実施形態における接続管理装置3の動作について、図16に示すフローチャートを参照して説明する。ここで、接続管理装置3は、汎用のパーソナルコンピュータにより構成されており、図16に示すフローチャートは、接続管理装置3の制御部が行う処理を示すものである。
接続管理装置3の制御部は、電源が投入されると、図16に示すように、まず、電源OFFか否かの判断を行う。ここで接続管理装置3の制御部は、接続管理装置3の電源をOFFにする操作がなされたと判断した場合(ステップS1:Yes)に処理を終了し、電源をOFFにする操作がなされていないと判断した場合(ステップS1:No)に、処理をステップS2へ移す。
ステップS2において接続管理装置3の制御部は、第1配信システムに参加しようとする端末装置2から接続先紹介要求を受信したか否かの判断を行い、接続先紹介要求を受信したと判断した場合(ステップS2:Yes)に、処理をステップS3へ移し、接続先紹介要求を受信していないと判断した場合(ステップS2:No)に、その他の処理を行い(ステップS4)、その後処理をステップS1へ移す。
ステップS3において接続管理装置3の制御部は、接続先紹介要求を送信してきた端末装置2へ、第1配信システムに参加している現在接続可能な端末装置2のIPアドレスを送信する接続先候補紹介処理を行い、その後、処理をステップS1へ移す。
こうして接続管理装置3の制御部は、電源が投入されている間、ステップS1〜S4の処理を繰り返し、第1配信システムに参加しようとする端末装置2へ接続先候補となる端末装置を紹介する。
[3.端末装置の動作]
次に、本実施形態に係る端末装置の動作について、図17〜図33に示すフローチャートを参照して具体的に説明する。以下の各処理は、端末装置2の制御部230が上述した各手段として機能することによって実行されるものである。なお、以下の説明では、端末装置2の制御部230を単に制御部230と称する。
(メイン処理)
制御部230を構成するCPU202は、電源が投入されると、まず初期設定動作を行い、その後、ハードディスク装置203に記憶している第1配信システムに参加するためのアプリケーションを起動して、制御部230としての機能を動作させ、主記憶装置205内の第1配信システム用兼第2配信システム用記憶部205bに第1配信システム用記憶領域250を確保する。
そして、制御部230は、ハードディスク装置203から読み出したコンテンツ購入プログラムと各種メッセージ情報とを第1配信システム用記憶領域250に記憶し、その後、図17に示すメイン処理を実行する。なお、ルーティングテーブルRT、インデックステーブル222、カタログ情報224に関しては、制御部230がメイン処理を実行することによって、第1配信システム用記憶領域250に順次記憶する。
このメイン処理において制御部230は、図17に示すように、参加メッセージ送信処理を行う(ステップS11)。
ここで制御部230は、第1配信システムに参加している全ての端末装置2の接続状態を管理しているコンタクト先紹介装置5へ、コンテンツ配信システムSの第1配信システムに参加するために、参加メッセージを送信すべきコンタクト先端末装置の所在情報を要求する。
そして、制御部230は、コンタクト先紹介装置5から参加メッセージを送信すべきコンタクト先端末装置の所在情報が送られてくると、コンタクト先端末装置に対して参加メッセージを送信する。なお、このとき送信する参加メッセージの宛先識別情報は、自身の端末IDとなっている。制御部は、自装置2のIPアドレスのハッシュ値を宛先識別情報とした参加メッセージを送信するのである。
次に、制御部230は、ルーティングテーブル作成処理を行う(ステップS12)。ここで制御部230は、以下のようにしてルーティングテーブルRTを作成する。
すなわち、参加メッセージを受信したコンタクト先端末装置は、自身が保持しているルーティングテーブルRTに基づいて、この参加メッセージを他の端末装置へ転送すると共に、自身が保持しているルーティングテーブルRTのレベル1のテーブルの情報を新規参加端末装置2Mである当該端末装置へ送信する。
そして、参加メッセージが転送された他の端末装置も同様に、自身が保持しているルーティングテーブルRTに基づいて参加メッセージを転送すると共に、自身が保持しているルーティングテーブルRTのレベル2のテーブルの情報を新規参加端末装置2Mである当該端末装置へ送信する。
このようにして参加メッセージは、順次他の端末装置2へ転送されていき、最終的に宛先識別情報に最も近い端末装置2に辿り着いたところで参加メッセージの転送は終了する。
そして、制御部230は、参加メッセージの転送経路となった各端末装置2から、その端末装置2が保持しているルーティングテーブルの情報を順次受信して第1配信システム用記憶領域250に記憶することにより、自身のルーティングテーブルRTの各レベルの情報を上位レベルから順に登録して、第1配信システムに参加するために必要なルーティングテーブルRTを生成する。
次に制御部230は、カタログ情報取得処理を行う(ステップS13)。このとき制御部230は、コンタクト先端末装置等といった第1配信システムに参加している他の端末装置からカタログ情報224を受信して、第1配信システム用記憶領域250に記憶する。
次に制御部230は、ユーザにより電源をOFF状態にする操作がなされたか否かの判断を行い(ステップS14)、電源をOFF状態にする操作がなされたと判断した場合(ステップS14:Yes)に、メイン処理を終了し、電源をOFF状態にする操作がなされていないと判断した場合(ステップS14:No)に、処理をステップS15へ移す。
ステップS15において制御部230は、現在第2配信システムに参加中であるか否かの判断を行い、第2配信システムに参加中であると判断した場合(ステップS15:Yes)に、処理をステップS18へ移し、第2配信システムに参加中でないと判断した場合(ステップS15:No)に、処理をステップS16へ移す。
ステップS18において制御部230は、図31に示す後述の第2配信システム参加中処理を行った後、処理をステップS19へ移す。
次に、ステップS16において制御部230は、第2配信システムに参加するか否かの判断を行う。ここで制御部230は、ユーザにより第2配信システムに参加するための操作が為されたか否かによって、第2配信システムに参加するか否かの判断を行う。
そして制御部230は、第2配信システムに参加すると判断した場合(ステップS16:Yes)に、処理をステップS17へ移し、第2配信システムに参加しないと判断した場合(ステップS16:No)に、処理をステップS19へ移す。
また、ステップS17において制御部230は、図23に示す後述の第2配信システムへの参加処理を行った後、処理をステップS19へ移す。
ステップS19において制御部230は、第2配信システムのメッセージを受信したか否かの判断を行い、受信したと判断した場合(ステップS19:Yes)に処理をステップS20へ移し、受信していないと判断した場合(ステップS19:No)に、処理をステップS21へ移す。
ステップS20において制御部230は、図33に示す後述の第2配信システムのメッセージに対応した処理を行い、その後、処理をステップS14へ移す。
またステップS21において制御部230は、第1配信システムのメッセージを受信したか否かの判断を行い、受信したと判断した場合(ステップS21:Yes)に、処理をステップS22へ移し、受信していないと判断した場合(ステップS21:No)に、処理をステップS23へ移す。
ステップS22において制御部230は、図18に示す後述の第1配信システムのメッセージに対応した処理を行った後、処理をステップ14へ移す。なお、ステップS23において制御部230は、第1及び第2配信システムによるコンテンツデータの受信とは別のその他の処理を行い、その処理が終了すると処理をステップS14へ移す。
そして、制御部230は、端末装置2に電源が投入されている間、これらステップS11〜S23の処理を繰り返し行う。
(第1配信システムのメッセージに対応した処理)
次に、端末装置2の制御部230が、図17に示すメイン処理のステップS22で行う第1配信システムのメッセージに対応した処理について、図18を参照して説明する。
第1配信システムのメッセージに対応した処理において、制御部230は、図18に示すように、第1配信システムのメッセージを受信すると、受信したメッセージがコンテンツ登録メッセージであるか否かの判断を行い(ステップS31)、コンテンツ登録メッセージであると判断した場合(ステップS31:Yes)に処理をステップS32へ移し、コンテンツ登録メッセージでないと判断した場合(ステップS31:No)に処理をステップS33へ移す。
ステップS32において制御部230は、図19、図20に示す後述のインデックステーブルへの登録処理を行い、その後、処理をステップS36へ移す。
ステップS33において制御部230は、受信した第1配信システムのメッセージがコンテンツ検索メッセージであるか否かの判断を行い、コンテンツ検索メッセージであると判断した場合(ステップS33:Yes)に処理をステップS34へ移し、コンテンツ検索メッセージでないと判断した場合(ステップS33:No)にその他の処理(ステップS35)を行った後、処理をステップS36へ移す。
ステップS34において制御部230は、自身が保持するインデックステーブル222を参照して、受信したコンテンツ検索メッセージによる検索対象のコンテンツに対応するインデックスキャッシュ情報を検索し、そのインデックスキャッシュ情報が見つかった場合には、そのインデックスキャッシュ情報をコンテンツ検索メッセージの送信元の端末装置2へ返信し、その後、処理をステップS36へ移す。なお、制御部230は、検索対象のコンテンツに対応するインデックスキャッシュ情報が見つからない場合、このステップS34の処理をスルーして処理をステップS36へ移す。
次に、ステップS36において制御部230は、自身がコンテンツ登録メッセージにおける登録対象のコンテンツ、若しくは、コンテンツ検索メッセージにおける検索対象のコンテンツのルート端末装置であるか否かの判断を行い、ルート端末装置であると判断した場合(ステップS36:Yes)に処理をステップS37へ移し、ルート端末装置でないと判断した場合(ステップS36:No)に処理をステップS38へ移す。
ステップS37において制御部230は、自身が保持するルーティングテーブルRTに基づいて、受信した第1配信システムのメッセージを次の転送先に転送し、その後、処理をステップS38へ移す。
ステップS38において制御部230は、図21、図22に示す後述のルーティングテーブルへの登録処理を行うことによって、コンテンツ登録メッセージ及びコンテンツ検索メッセージに含まれるノード情報を、自身が保持するルーティングテーブルRTに登録して、第1配信システムのメッセージに対応した処理を終了する。
(インデックステーブルへの登録処理1)
次に、制御部230が、図18に示す第1配信システムのメッセージに対応した処理のステップS32で行うインデックステーブルへの登録処理1について、図19を参照して説明する。
インデックステーブルへの登録処理1において制御部230は、図19に示すように、現在第2配信システムに参加中であるか否かの判断を行い(ステップS41)、第2配信システムに参加中であると判断した場合(ステップS41:Yes)に、このインデックステーブルへの登録処理を終了して、処理を図18に示すステップS36へ移す。
一方、制御部230は、現在第2配信システムに参加中でないと判断した場合(ステップS41:No)に処理をステップS42へ移し、コンテンツ登録メッセージに含まれるインデックスキャッシュ情報を、自身が保持するインデックステーブル222へ登録し、その後、このインデックステーブルへの登録処理を終了して、処理を図18に示すステップS36へ移す。
(インデックステーブルへの登録処理2)
上記インデックステーブルへの登録処理1において制御部230は、第2配信システムに参加中でなければ、受信した全てのコンテンツ登録メッセージに対応したコンテンツのインデックスキャッシュ情報をインデックステーブル222に登録するようにしているが、複数種類のコンテンツデータのうちの一部のコンテンツデータに関するインデックスキャッシュ情報だけを、登録対象のインデックスキャッシュ情報としてインデックステーブル222に登録してよもよい。
この場合、たとえば、ユーザは、予め所定のジャンルに含まれるコンテンツデータに関するインデックスキャッシュ情報だけを登録対象のインデックスキャッシュ情報としてインデックステーブル222に登録するように端末装置2の設定を行っておく。
そして、制御部230は、登録対象のインデックスキャッシュ情報のみを登録する場合に、図20に示すインデックステーブルへの登録処理2を行う。
すなわち、インデックステーブルへの登録処理2において制御部230は、図20に示すように、第2配信システムに参加中であるか否かの判断を行い(ステップS51)、第2配信システムに参加中であると判断した場合(ステップS51:Yes)に処理をステップS52へ移し、第2配信システムに参加中でないと判断した場合(ステップS51:No)に処理をステップS53へ移す。
ステップS52において制御部230は、受信したコンテンツ登録メッセージに含まれているインデックスキャッシュ情報が登録対象のインデックスキャッシュ情報であるか否かの判断を行い、登録対象のインデックスキャッシュ情報であると判断した場合(ステップS52:Yes)に処理をステップS53へ移し、登録対象のインデックスキャッシュ情報でないと判断した場合(ステップS52:No)に、このインデックステーブルへの登録処理2を終了して、処理を図18に示すステップS36へ移す。
また、ステップS53において制御部230は、コンテンツ登録メッセージに含まれるインデックスキャッシュ情報を、自身が保持するインデックステーブル222へ登録した後、このインデックステーブルへの登録処理2を終了して、処理を図18に示すステップS36へ移す。
(ルーティングテーブルへの登録処理1)
次に、制御部230が、図18に示す第1配信システムのメッセージに対応した処理のステップS38で行うルーティングテーブルへの登録処理1について、図21を参照して説明する。
ルーティングテーブルへの登録処理1において制御部230は、図21に示すように、第2配信システムに参加中であるか否かの判断を行い(ステップS61)、第2配信システムに参加中であると判断した場合(ステップS61:Yes)に、このルーティングテーブルへの登録処理1を終了して、処理を図17に示すメイン処理のステップS14へ移す。
また、ステップS62において制御部230は、コンテンツ登録メッセージ及びコンテンツ検索メッセージに含まれるノード情報を、自身が保持するルーティングテーブルRTに登録した後、このルーティングテーブルへの登録処理1を終了して、処理を図17に示すメイン処理のステップS14へ移す。
(ルーティングテーブルへの登録処理2)
上記ルーティングテーブルへの登録処理1において制御部230は、第2配信システムに参加中でなければ、受信した全てのコンテンツ登録メッセージ及びコンテンツ検索メッセージに含まれるノード情報をルーティングテーブルRTに登録するようにしているが、複数種類のノード情報のうち一部のノード情報だけを、登録対象のノード情報としてルーティングテーブルRTに登録してよもよい。
この場合、たとえば、ユーザは、所定のジャンルに含まれるコンテンツに関するコンテンツ登録メッセージ及びコンテンツ検索メッセージ中のノードだけを登録対象のノード情報としてルーティングテーブルRTに登録するように端末装置2の設定を行っておく。
そして、制御部230は、登録対象のノード情報のみを登録する場合に、図22に示すルーティングテーブルへの登録処理2を行う。
すなわちルーティングテーブルへの登録処理2において制御部230は、図22に示すように、第2配信システムに参加中であるか否かの判断を行い(ステップS71)、第2配信システムに参加中であると判断した場合(ステップS71:Yes)に処理をステップS72へ移し、第2配信システムに参加中でないと判断した場合(ステップS71:No)に処理をステップS73へ移す。
ステップS72において制御部230は、受信したコンテンツ登録メッセージ又はコンテンツ検索メッセージに含まれているノード情報が登録対象のノード情報であるか否かの判断を行い、登録対象のノード情報であると判断した場合(ステップS72:Yes)に処理をステップS73へ移し、登録対象のノード情報でないと判断した場合(ステップS72:No)に、このルーティングテーブルへの登録処理2を終了して、処理を図17に示すメイン処理のステップS14へ移す。
また、ステップS73において制御部230は、ノード情報を自身が保持するルーティングテーブルRTへ登録した後、ルーティングテーブルへの登録処理2を終了して、処理を図17に示すメイン処理のステップS14へ移す。
(第2配信システムへの参加処理)
次に、制御部230が、図17に示すメイン処理のステップS17で行う第2配信システムへの参加処理について、図23を参照して説明する。
第2配信システムへの参加処理において制御部230は、図23に示すように、第2配信システムで必要となる記憶容量を検出し(ステップS81)、その後、処理をステップS82へ移す。
このとき、制御部230は、第2配信システムにより受信しようとするコンテンツデータの情報量(データサイズ)から、そのコンテンツデータをストリーミング受信するために必要となるリングバッファ220の容量を算出することによって、第2配信システムに参加することにより必要となる記憶領域の容量を検出する。
ここで制御部230は、第2配信システムにより受信するコンテンツデータの情報量に基づいて、必要となるリングバッファ220の容量を検出するようにしているが、これ以外に、自装置2へコンテンツデータをストリーミング配信する他の端末装置2の通信速度に基づいて、必要となるリングバッファ220の容量を検出してもよい。
次に、ステップS82において制御部230は、図24に示す後述の各種情報の削除処理を行った後、処理をステップS83へ移す。
ステップS83において制御部は、接続管理装置3から接続先候補のノード情報を受信し、その後、処理をステップS84へ移す。
ここで制御部230は、接続管理装置3へ接続先紹介要求を送信することにより、接続管理装置3から、第2配信システムのツリー状階層構造において接続先候補となる端末装置の所在情報(接続先候補のIPアドレスやポート番号など)及び通信プロトコル等を含むノード情報を受信するのである。
次に、ステップS84において制御部230は、接続先候補へコンテンツデータの配信要求を送信し、その後、この第2配信システムへの参加処理を終了し、処理を図17に示すメイン処理のステップS19へ移す。
(各種情報の削除処理)
次に、制御部230が、図23に示す第2配信システムへの参加処理で行う各種情報の削除処理について、図24を参照して説明する。
各種情報の削除処理において制御部230は、図24に示すように、第2配信システム用の空き領域があるか否かの判断を行う(ステップS91)。
ここで、制御部230は、第1配信システム用記憶領域250が確保されている第1配信システム用兼第2配信システム用記憶部205bに、ステップS81で検出した記憶容量を十分に確保できるだけの空き領域があるか否かの判断を行い(ステップS91)、空き領域があると判断した場合(ステップS91:Yes)に、この各種情報の削除処理を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移し、空き領域がないと判断した場合(ステップS91:No)に処理をステップS92へ移す。
ステップS92において制御部230は、優先順位に従った情報削除処理を行う。ここで制御部230は、第1配信システム用記憶領域250に記憶している各種情報の中で、削除しても第1配信システムによるコンテンツデータの受信に支障をきたさない情報から順に削除する。
具体的に説明すると、制御部230は、第2配信システム用記憶領域として十分な記憶容量を確保できるまで、インデックステーブル222内のインデックスキャッシュ情報、カタログ情報、ルーティングテーブルRT内のノード情報の一部、の順で順次情報を削除する。
そして、制御部230は、ステップS92の処理を行った後に、この優先順位に従った情報削除処理を終了し、その後、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
そして、
(インデックスキャッシュ情報の削除処理1)
次に、制御部230が、図24に示す優先順位に従った情報削除処理において、削除の優先順位が最も高いインデックスキャッシュ情報の削除処理1について、図25を参照して説明する。このインデックスキャッシュ情報の削除処理1では、制御部230は、自身が保持している全てのインデックスキャッシュ情報を削除する。
インデックスキャッシュ情報の削除処理1において制御部230は、自身が保持する第1配信システム用記憶領域250内のインデックステーブル222における全てのインデックスキャッシュ情報をハードディスク装置203の所定領域に保存し(ステップS101)その後、処理をステップS102へ移す。
ステップS102において制御部230は、第1配信システム用記憶領域250から全てのインデックスキャッシュ情報を削除し、その後、このインデックスキャッシュ情報の削除処理1を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
(インデックスキャッシュ情報の削除処理2)
また、制御部230は、全てのインデックスキャッシュ情報を削除しなくても、一部のインデックスキャッシュ情報だけを削除すれば、第2配信システム用記憶領域として十分な記憶容量を確保できる場合、図26に示すインデックスキャッシュ情報の削除処理2を行う。
このインデックスキャッシュ情報の削除処理2において、制御部230は、全インデックスキャッシュ情報のなかで、自分がルート端末装置でないコンテンツのインデックスキャッシュ情報だけを削除する。なお、ここでは、インデックステーブル222に2つのインデックスキャッシュ情報が記憶されており、自装置2は、1番目のインデックスキャッシュ情報のルート端末装置であり、2番目のインデックスキャッシュ情報のルート端末でない場合を例に挙げて説明する。
このインデックスキャッシュ情報の削除処理2において、制御部230は、まず、第1配信システム用記憶領域250内の所定の記憶領域に、変数NUM=0を記憶させ(ステップS111)、その後、処理をステップS112へ移す。
ステップS112において制御部230は、現在保持しているインデックスキャッシュ情報数が変数NUMよりも大きいか否かの判断を行い、現在保持しているインデックスキャッシュ情報数が変数NUMよりも大きいと判断した場合(ステップS112:Yes)に処理をステップS113へ移す。
一方、制御部230は、現在保持しているインデックスキャッシュ情報数が変数NUMより小さいと判断した場合に、このインデックスキャッシュ情報の削除処理2を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
ここでは、自装置2が現在保持しているインデックスキャッシュ情報の数が2であり、NUM(=0)よりも大きいため、ステップS112の判断の結果(ステップS112:Yes)、処理がステップS113へ移行する。
ステップS113において制御部230は、自装置2がNUM+1番目のインデックスキャッシュ情報のルート端末装置であるか否かの判断を行い、ルート端末装置であると判断した場合(ステップS113:Yes)に処理をステップS116へ移し、ルート端末装置でないと判断した場合(ステップS113:No)に処理をステップS114へ移す。
ここで、自装置2は、NUM+1(0+1=1)番目のインデックスキャッシュ情報のルート端末装置であるので、ステップS113の判断の結果(ステップS113:Yes)、処理がステップS116へ移行する。
ステップS116において制御部230は、変数NUMを1インクリメントする処理(NUM+1)を行い、その後、処理をステップSS112へ移す。
次に、ステップS112において制御部230は、再度、現在保持しているインデックスキャッシュ情報数が変数NUMよりも大きいか否かの判断を行う。ここでは、自装置2が現在保持しているインデックスキャッシュ情報数が2であり、NUM(=1)よりも大きいため、ステップS112の判断の結果(ステップS112:Yes)、処理がステップS113へ移行する。
次に、ステップS113において制御部230は、自装置2がNUM+1(1+1=2)番目のインデックスキャッシュ情報のルート端末装置であるか否かの判断を行う。
ここで、自装置2は、NUM+1(1+1=2)番目のインデックスキャッシュ情報のルート端末装置でないため、ステップS113の判断の結果(ステップS113:No)、処理がステップS114へ移行する。
ステップS114において制御部230は、自装置2がルート端末装置でないインデックスキャッシュ情報(2番目のインデックスキャッシュ情報)をハードディスク装置203の所定領域に保存する処理を行い、その後、処理をステップS115へ移す。
ステップS115において制御部230は、ハードディスク装置203へ保存したインデックスキャッシュ情報を第1配信システム用記憶領域から削除する処理を行い、その後、処理をステップS116へ移す。
次に、ステップS116において制御部230は、変数NUMを1インクリメント(NUM=1+1=2)する処理を行い、その後、処理をステップS112へ移す。
次に、ステップS112において制御部230は、再度、現在保持しているインデックスキャッシュ情報数が変数NUMよりも大きいか否かの判断を行う。ここでは、自装置2が現在保持しているインデックスキャッシュ情報をステップS115において1つ削除しているため、現在保持しているインデックスキャッシュ情報数が1であり、変数NUMよりも小さいため、ステップ112の判断の結果(ステップS112:No)、インデックスキャッシュ情報の削除処理3を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
(インデックスキャッシュ情報の削除処理3)
また、制御部230は、インデックスキャッシュ情報の全て、若しくは、インデックスキャッシュ情報の一部を削除する場合の変形例として、図27に示すインデックスキャッシュ情報の削除処理3を行うことができる。
このインデッククス情報の削除処理3において、制御部230は、自装置2が保持しているインデックスキャッシュ情報について、そのインデックスキャッシュ情報のルート端末装置保持しているインデックスキャッシュ情報の情報量に基づいて、インデックスキャッシュ情報を削除する。
すなわち、インデックスキャッシュ情報の削除処理3において、制御部は、図27に示すように、第1配信システム用記憶領域250内の所定の領域に、変数NUM=0を記憶させ(ステップS121)、その後、処理をステップS122へ移す。
ステップS122において制御部230は、現在保持しているインデックスキャッシュ情報数が変数NUMよりも大きいか否かの判断を行い、現在保持しているインデックスキャッシュ情報数が変数NUMよりも大きいと判断した場合(ステップS122:Yes)に処理をステップS123へ移す。
一方、制御部230は、現在保持しているインデックスキャッシュ情報数が変数NUMより小さいと判断した場合に、このインデックスキャッシュ情報の削除処理3を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
ステップS123において制御部230は、ルート端末装置から情報量取得処理を行い、その後、処理をステップS124へ移す。
ここで、制御部230は、現在保持しているインデックスキャッシュ情報の中で削除対象となっているインデックスキャッシュ情報のルート端末装置から、そのルート端末装置が保持している削除対象のインデックスキャッシュ情報と同じインデックスキャッシュ情報数を取得する。
次に、ステップS124において制御部230は、ルート端末装置から取得した情報量が、予め設定しておいた閾値よりも大きいか否かの判断を行い、取得した情報量が閾値よりも大きいと判断した場合(ステップS124:Yes)に処理をステップS125へ移し、取得した情報量が閾値よりも小さいと判断した場合(ステップS124:No)に処理をステップS127へ移す。
ステップS125において制御部230は、自身が保持している削除対象のインデックスキャッシュ情報をハードディスク装置203の所定領域に保存し、その後、処理をステップS126へ移す。
ステップS126において制御部230は、ハードディスク装置203へ保存したインデックスキャッシュ情報を第1配信システム用記憶領域250から削除するインデックする情報削除処理を行い、その後、処理をステップS127へ移す。
ステップS127において制御部230は、変数NUMを1インクリメントする処理(NUM+1)を行い、その後、処理をステップS122へ移す。
(カタログ情報削除処理)
制御部230は、上記のようにして第1配信システム用記憶領域250からインデックスキャッシュ情報を削除しても、第2配信システム用記憶領域251として十分な記憶容量を確保できない場合に、図28に示すカタログ情報削除処理を行うことにより、第1配信システム用記憶領域250からカタログ情報を削除する。
カタログ情報削除処理において制御部230は、図28に示すように、第1配信システム用記憶領域250に記憶しているカタログ情報を、ハードディスク装置203内の所定の領域に保存(ステップS131)した後、第1配信システム用記憶領域250から全カタログ情報を削除(ステップS132)し、その後、このカタログ情報削除処理を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
(ノード情報の削除処理1)
また、制御部230は、上記のようにして第1配信システム用記憶領域250からインデックスキャッシュ情報とカタログ情報とを削除しても、第2配信システム用記憶領域251として十分な記憶容量を確保できない場合に、図29に示すノード情報の削除処理1を行うことにより、第1配信システム用記憶領域250からルーティングテーブルRTの一部を削除する。
ノード情報の削除処理1において制御部230は、選択したノード情報をハードディスク装置203へ保存する処理(ステップS141)を行う。ここで制御部230は、予めルーティングテーブルRT内のノード情報のなかで削除対象のノード情報を選択しておき、第1配信システム用記憶領域250からインデックスキャッシュ情報とカタログ情報とを削除しても、第2配信システム用記憶領域251として十分な記憶容量を確保できない場合に、予め選択したノード情報をハードディスク装置203へ保存する。
次に、制御部230は、予め選択したノード情報を第1配信システム用記憶領域250から削除し(ステップS142)、その後、このノード情報の削除処理1を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
(ノード情報の削除処理2)
また、制御部230は、ルーティングテーブルRTの一部を削除する場合に、上記ノード情報の削除処理1に替えて、図30に示すノード情報の削除処理2を行うことによって、第1配信システム用記憶領域250からノード情報の一部を削除することもできる。
このノード情報の削除処理2において制御部230は、ルーティングテーブルRTを参照して、サブテーブルR1〜R3があるか否かの判断を行い(ステップS151)、サブテーブルR1〜R3があると判断した場合(ステップS151:Yes)に処理をステップS152へ移し、サブテーブルR1〜R3がないと判断した場合(ステップS151:No)に、このノード情報の削除処理2を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
また、ステップS152において制御部230は、サブテーブル削除処理を行う。ここで制御部230は、削除しても第1配信システムによるコンテンツデータの受信に支障をきたすおそれの低いサブテーブルR3から順に削除するようにしている。
そして、制御部230は、このサブテーブル削除処理を行った後に、このノード情報の削除処理2を終了して、処理を図23に示す第2配信システムへの参加処理のステップS83へ移す。
そして、制御部230は、上記したインデックスキャッシュ情報の削除処理1〜3、カタログ情報削除処理、ノード情報の削除処理1〜2等の処理により、第1配信システム用記憶領域250に記憶している情報を削除し、この削除した情報が記憶されていた領域を第2配信システム用記憶領域251として機能させるのである。
この第2配信システム用記憶領域には、上記したように、第2配信システムによりコンテンツデータを受信するために必要となる、ストリーム制御プログラム215、トポロジー管理プログラム216、リングバッファ220等が記憶(格納)される。
(第2配信システム参加中処理)
次に、制御部230が、図17に示すメイン処理のステップS18で行う第2配信システム参加中処理について、図31を参照して説明する。
この第2配信システム参加中処理において制御部230は、図31に示すように、自装置2が第2配信システムから離脱するか否かの判断を行い(ステップS161)、離脱すると判断した場合(ステップS161:Yes)に処理をステップS165へ移し、離脱しないと判断した場合(ステップS161:No)に処理をステップS162へ移す。
ステップS162において制御部230は、ツリー状の階層構造において自身の上流側に接続している端末装置2からストリーミング受信したコンテンツデータをストリーミング再生する受信コンテンツ再生処理を行い、その後、処理をステップS163へ移す。
ステップS163において制御部230は、下流の装置(ツリー状の階層構造において自身の下流の端末装置2)と接続しているか否かの判断を行い、下流の装置と接続していると判断した場合(ステップS163:Yes)に処理をステップS164へ移し、下流の装置と接続していないと判断した場合(ステップS163:No)に、この第2配信システム参加中処理を終了して、処理を図17に示すメイン処理のステップS19へ移す。
また、ステップS165において制御部230は、上流の装置へ中継停止要求メッセージ送信処理を行う。すなわち、制御部230は、ツリー状の階層構造において自装置2の上流側に接続している端末装置2に対して、自装置2へのコンテンツデータの配信停止を要求するメッセージを送信するのである。
次に、制御部230は、ステップS166において、図32に示す後述の保存情報読み込み処理を行い、その後、この第2配信システム参加中処理を終了して、処理を図17に示すメイン処理のステップS19へ移す。
なお、本実施形態の第2配信システムにおけるコンテンツ配信装置1は、放送形態によるコンテンツデータの配信を一つのチャンネルで行うようにしているため、この第2配信システム参加中処理において制御部230は、上記のように、第2配信システムから離脱すると判断した場合、上流の装置へ中継停止メッセージを送信した後、すぐに保存情報の読み込み処理を行うようにしているが、コンテンツ配信装置1が複数のチャンネルで複数種類のコンテンツデータを放送形態により配信しており、この端末装置2が現在複数のチャンネルで同時に複数のコンテンツデータの配信を受けている場合には、第2配信システムから離脱すると判断した後、以下のような処理を行う。
すなわち、制御部230は、図31に示すステップS161において第2配信システムから離脱すると判断した場合、現在配信を受けている全てのチャンネルからのコンテンツデータの受信を停止するのか、それとも、一部のチャンネルからのコンテンツデータの受信だけを停止するのかを判断する。
ここで制御部230は、一部のチャンネルからのコンテンツデータの受信だけを停止すると判断した場合に、受信を停止するチャンネル用に確保しているリングバッファ220の領域を縮小する処理を行い、その後、処理を図31に示すステップS166へ移して保存情報の読み込み処理を行う。
一方、制御部230は、現在配信を受けている全てのチャンネルからのコンテンツデータの受信を停止すると判断した場合、第2配信システム用記憶領域251に記憶している情報を削除して、第1配信システム用兼第2配信システム用記憶部205b全体を第1配信システム用記憶領域250として使用可能な状態にする処理を行い、その後、処理を図31に示すステップS166へ移して保存情報の読み込み処理を行う。
(保存情報の読み込み処理)
次に、制御部230が、図31に示す第2配信システム参加中処理のステップS168で行う保存情報の読み込み処理について、図32を参照して説明する。
この保存情報の読み込み処理において制御部230は、図32に示すように、ハードディスク装置203内にインデックスキャッシュ情報が保存されているか否かの判断を行い(ステップS171)、インデックスキャッシュ情報が保存されていると判断した場合(ステップS171:Yes)に処理をステップS172へ移し、インデックスキャッシュ情報が保存されていないと判断した場合(ステップS171:No)に処理をステップS173へ移す。
ステップ172において制御部230は、ハードディスク装置203に保存されているインデックスキャッシュ情報を読み込み、第1配信システム用記憶領域250に再度記憶する処理を行い、その後、処理をステップS173へ移す。
ステップS173において制御部230は、ハードディスク装置203内にノード情報が記憶されているか否かの判断を行い、ノード情報が記憶されていると判断した場合(ステップS173:Yes)に処理をステップS174へ移し、ノード情報が記憶されていないと判断した場合(ステップS173:No)に処理をステップS175へ移す。
ステップS174において制御部230は、ハードディスク装置203からノード情報を読み込み、第1配信システム用記憶領域250に再度記憶する処理を行い、その後、処理をステップS175へ移す。
ステップS175において制御部230は、ハードディスク装置203にカタログ情報が記憶されているか否かの判断を行い、カタログ情報が記憶されていると判断した場合(ステップS175:Yes)に処理をステップS176へ移し、カタログ情報が記憶されていないと判断した場合(ステップS175:No)に、この保存情報の読み込み処理を終了して、処理を図17に示すメイン処理のステップS19へ移す。
ステップS176において制御部230は、ハードディスク装置203からカタログ情報を読み込み、第1配信システム用記憶領域に再度記憶する処理を行い、その後、この保存情報の読み込み処理を終了して、処理を図17に示すメイン処理のステップS19へ移す。
(第2配信システムのメッセージに対応した処理)
次に、制御部230が、図17に示すメイン処理のステップS20で行う第2配信システムのメッセージに対応した処理について、図33を参照して説明する。
この第2配信システムのメッセージに対応した処理において、制御部230は、受信した第2配信システムのメッセージが、ツリー状の階層構造において下流に接続している端末装置2からのコンテンツデータの中継要求メッセージであるか否かの判断を行い(ステップS181)、中継要求メッセージであると判断した場合(ステップS181:Yes)に処理をステップS182へ移し、中継メッセージでないと判断した場合(ステップS181:No)に処理をステップS183へ移す。
ステップS182において制御部230は、ツリー状の階層構造において上流に接続している端末装置2からストリーミング受信したコンテンツデータを、ツリー状の階層構造において下流に接続している端末装置2へストリーミング配信する受信コンテンツ中継処理を行い、その後、この第2配信システムのメッセージに対応した処理を終了して、処理を図17に示すメイン処理のステップS14へ移す。
また、ステップS183において制御部230は、受信した第2配信システムのメッセージが、ツリー状の階層構造において下流に接続している端末装置2からのコンテンツデータの中継停止要求メッセージであるか否かの判断を行い、中継停止要求メッセージであると判断した場合(ステップS183:Yes)に処理をステップS184へ移し、中継停止要求でないと判断した場合(ステップS183:No)に、この第2配信システムのメッセージに対応した処理を終了して、処理を図17に示すメイン処理のステップS14へ移す。
ステップ184において制御部230は、ツリー状の階層構造において上流に接続している端末装置2からストリーミング受信したコンテンツデータのストリーミング中継を停止する受信コンテンツ中継停止処理を行い、その後、この第2配信システムのメッセージに対応した処理を終了して、処理を図17に示すメイン処理のステップS14へ移す。
また、ステップS185において制御部230は、第1及び第2配信システムによるコンテンツデータの受信とは別のその他の処理を行い、その後、この第2配信システムのメッセージに対応した処理を終了して、処理を図17に示すメイン処理のステップS14へ移す。
本実施形態に係るコンテンツ配信システムの概要構成例を示す図である。 本実施形態に係るコンテンツ配信システムの第配信システムの配信動作説明図である。 DHTによってルーティングテーブルが作成される様子の一例を示す図である。 ルーティングテーブルにおけるメインテーブルの一例を示す図である。 ルーティングテーブルを示す説明図である。 端末装置が第1配信システムへ参加する様子の一例を示す図である。 DHTルーティングによりコンテンツデータを保持している端末装置が検索される様子の一例を示す図である。 DHTルーティングによりコンテンツデータが端末装置に保持される様子の一例を示す図である。 DHTルーティングにより登録メッセージがルート端末装置に送信される一例を示す図である。 インデックステーブルの一例を示す図である。 本実施形態に係るコンテンツ配信システムの第2配信システムの配信動作説明図である。 リングバッファの機能を概念的に表した図である。 端末装置の概略構成例を示す図である。 第1配信システム用記憶領域及び第2配信システム用記憶領域を示す説明図である。 第1配信システム用記憶領域及び第2配信システム用記憶領域を示す説明図である。 接続管理装置における処理を示すフローチャートである。 端末装置におけるメイン処理を示すフローチャートである。 第1配信システムのメッセージに対応した処理を示すフローチャートである。 インデックステーブルへの登録処理1を示すフローチャートである。 インデックステーブルへの登録処理2を示すフローチャートである。 ルーティングテーブルへの登録処理1を示すフローチャートである。 ルーティングテーブルへの登録処理2を示すフローチャートである。 第2配信システムへの参加処理を示すフローチャートである。 各種情報の削除処理を示すフローチャートである。 インデックスキャッシュ情報の削除処理1を示すフローチャートである。 インデックスキャッシュ情報の削除処理2を示すフローチャートである。 インデックスキャッシュ情報の削除処理3を示すフローチャートである。 カタログ情報削除処理を示すフローチャートである。 ノード情報の削除処理1を示すフローチャートである。 ノード情報の削除処理2を示すフローチャートである。 第2配信システム参加中処理を示すフローチャートである。 情報読み込み処理を示すフローチャートである。 第2配信システムのメッセージに対応した処理を示すフローチャートである。
符号の説明
S コンテンツ配信システム
1 コンテンツ配信装置
2 端末装置
3 接続管理装置
4 コンテンツ投入装置
5 コンタクト先紹介装置
6 ネットワーク
130,230,330,430,530 制御部
230 制御部
203 ハードディスク装置
205 主記憶装置
205b 第1配信システム用兼第2配信システム用記憶部
250 第1配信システム用記憶領域
251 第2配信システム用記憶領域

Claims (16)

  1. 複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいて前記コンテンツデータを保持する他の端末装置が前記コンテンツデータを配信する第1配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第2配信システムへ参加可能な端末装置において、
    前記第1配信システムへ参加しているときに、前記第1配信システム用に確保される記憶領域と、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、前記第1配信システム用に確保している記憶領域の一部を前記第2配信システム用の記憶領域として機能させる情報管理手段と、
    を有することを特徴とする端末装置。
  2. 前記第2配信システムへ参加することにより必要となる記憶領域の容量を検出する記憶容量検出手段を備え、
    前記情報管理手段は、前記記憶容量検出手段の検出結果に応じて、前記第1配信システム用に確保している記憶領域の一部を前記第2配信システム用の記憶領域として機能させるか否かを判定することを特徴とする請求項1に記載の端末装置。
  3. 前記第1配信システムは、ネットワークを介して接続された複数の端末装置に、複数種類のコンテンツデータが分散して保持されており、前記ダウンロード要求に対応するコンテンツデータを保持している他の端末装置から、前記ダウンロード要求を送信した端末装置へ前記コンテンツデータが配信される配信システムであり、
    前記第1配信システムに参加していて、前記コンテンツデータを保持している他の端末装置の所在情報と前記他の端末装置が保持しているコンテンツデータを識別するためのコンテンツ識別情報とを関連付けたコンテンツ保持端末情報を受信するコンテンツ保持端末情報受信手段を備え、
    前記情報管理手段は、
    前記第1配信システム用に確保した記憶領域に、前記コンテンツ保持端末情報受信手段により受信した前記コンテンツ保持端末情報を記憶し、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、前記第1配信システム用に確保している記憶領域に記憶した前記コンテンツ保持端末情報を削除し、前記コンテンツ保持端末情報を記憶していた領域を前記第2配信システム用の記憶領域として機能させることを特徴とする請求項1又は請求項2に記載の端末装置。
  4. 削除対象の前記コンテンツ保持端末情報を管理している端末装置から、その端末装置が管理している前記コンテンツ保持端末情報の情報量を取得する情報量取得手段を備え、
    前記情報管理手段は、前記情報量取得手段により取得した情報量が所定の閾値を超えている場合に、前記第1配信システム用に確保している記憶領域から前記削除対象のコンテンツ保持端末情報を削除することを特徴とする請求項3に記載の端末装置。
  5. 前記情報管理手段は、
    前記情報量取得手段により、複数種類のコンテンツデータに関する前記コンテンツ保持端末情報の情報量を取得し、前記取得した複数種類の情報量のうち、情報量が多い前記コンテンツ保持端末情報から順に削除することを特徴とする請求項4に記載の端末装置。
  6. 前記情報管理手段は、
    前記第1配信システム用に確保した記憶領域に、現在ダウンロード可能なコンテンツデータのリスト情報を記憶し、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、前記第1配信システム用に確保している記憶領域から前記リスト情報を削除して、前記リスト情報を記憶していた領域を前記第2配信システム用の記憶領域として機能させることを特徴とする請求項1〜5のいずれか1項に記載の端末装置。
  7. 前記情報管理手段は、
    前記第1配信システム用に確保した記憶領域に、他の端末装置を識別するための端末識別情報と、前記他の端末装置の所在情報とを含む他端末情報を記憶し、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、前記第1配信システム用に確保している記憶領域から前記他端末情報の少なくとも一部を削除して、前記他端末情報を記憶していた領域を前記第2配信システム用の記憶領域として機能させることを特徴とする請求項1〜6のいずれか1項に記載の端末装置。
  8. 前記情報管理手段は、
    前記第1配信システム用に確保した記憶領域に、
    前記第1配信システムに参加していて、前記コンテンツデータを保持している他の端末装置の所在情報と前記他の端末装置が保持しているコンテンツデータを識別するためのコンテンツ識別情報とを関連付けたコンテンツ保持端末情報と、現在ダウンロード可能なコンテンツデータのリスト情報とを記憶すると共に、
    他の端末装置を識別するための端末識別情報と、前記他の端末装置の所在情報とを含む他端末情報とを記憶させ、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、前記第1配信システム用に確保している記憶領域から、前記コンテンツ保持端末情報及び前記リスト情報を削除すると共に、前記他端末情報の一部を削除することを特徴とする請求項1又は請求項2に記載の端末装置。
  9. 前記第1配信システム用に確保している記憶領域に記憶した情報において、
    前記情報管理手段による削除の優先順位は、
    前記コンテンツ保持端末情報、前記リスト情報、前記他端末情報の順であることを特徴とする請求項8に記載の端末装置。
  10. 前記第1配信システムに参加している端末装置数を検出する参加端末数検出手段を有し、
    前記情報管理手段は、前記参加端末数検出手段により検出した端末装置数が所定の閾値を超えている場合に、前記第1配信システム用に確保している記憶領域の一部を前記第2配信システム用の記憶領域として機能させることを特徴とする請求項1〜9のいずれか1項に記載の端末装置。
  11. 前記第1配信システム用に確保している記憶領域から削除する情報を保存しておくための他の記憶手段を備え、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、
    前記情報管理手段は、
    前記第1配信システムに記憶している情報の一部を前記他の記憶手段に保存した後、前記他の記憶手段に保存した情報を記憶していた領域を、前記第2配信システム用の記憶領域として機能させ、
    前記第2配信システムから離脱した後に、前記他の記憶手段に保存した前記情報を、再度、前記第1配信システム用に確保した記憶領域に記憶させることを特徴とする請求項1〜10のいずれか1項に記載の端末装置。
  12. 前記第2配信システム用に確保する記憶領域は、前記第2配信システムによりストリーミング受信したコンテンツデータを一時的に蓄積するリングバッファを備え、
    前記情報管理手段は、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、
    前記第1配信システム用に確保している記憶領域の一部を前記リングバッファとして機能させることを特徴とする請求項1〜11のいずれか1項に記載の端末装置。
  13. 前記第2配信システムによりコンテンツデータを受信する際の受信速度を検出する受信速度検出手段を有し、
    前記情報管理手段は、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、前記受信速度検出手段により取得した前記受信速度に応じて、前記第1配信システム用に確保している記憶領域のうち、前記第2配信システム用の記憶領域として機能させる領域を拡張又は縮小することを特徴とする請求項1〜12のいずれか1項に記載の端末装置。
  14. 複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいて前記コンテンツデータを保持する他の端末装置が前記コンテンツデータを配信する第1配信システムと、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第2配信システムとを有するコンテンツ配信システムであって、
    前記端末装置は、
    前記第1配信システムへ参加しているときに、前記第1配信システム用に確保される記憶領域と、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、前記第1配信システム用に確保している記憶領域の一部を前記第2配信システム用の記憶領域として機能させる情報管理手段と、
    を有することを特徴とするコンテンツ配信システム。
  15. コンピュータを、請求項1〜13のいずれかに記載の端末装置における各手段として機能させるためのプログラム。
  16. 複数の端末装置間において、一つの端末装置からのコンテンツデータのダウンロード要求に基づいて前記コンテンツデータを保持する他の端末装置が前記コンテンツデータを配信する第1配信システムに参加している状態で、コンテンツ配信装置から端末装置にコンテンツデータを放送形態にてストリーミング配信する第2配信システムへ参加可能な端末装置における情報管理方法であって、
    前記第1配信システムへ参加しているときに、前記第1配信システム用に記憶領域を確保するステップと、
    前記第1配信システムに参加した状態で、前記第2配信システムに参加したとき、前記第1配信システム用に確保した記憶領域に記憶している情報の一部を削除するステップと、
    前記削除した情報が記憶されていた前記第1配信システム用に確保した記憶領域を、前記第2配信システム用の記憶領域として機能させるステップと、
    を有することを特徴とする情報管理方法。
JP2006243240A 2006-09-07 2006-09-07 コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法 Pending JP2008067089A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006243240A JP2008067089A (ja) 2006-09-07 2006-09-07 コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006243240A JP2008067089A (ja) 2006-09-07 2006-09-07 コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法

Publications (1)

Publication Number Publication Date
JP2008067089A true JP2008067089A (ja) 2008-03-21

Family

ID=39289388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006243240A Pending JP2008067089A (ja) 2006-09-07 2006-09-07 コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法

Country Status (1)

Country Link
JP (1) JP2008067089A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086271A (ja) * 2008-09-30 2010-04-15 Fujitsu Ltd 情報処理装置、情報処理システム、方法、およびプログラム
JP2010238143A (ja) * 2009-03-31 2010-10-21 Brother Ind Ltd ノード装置、ノード処理プログラム及び検索方法
JP2011008707A (ja) * 2009-06-29 2011-01-13 Brother Industries Ltd 分散保存システム、ノード装置、並びにその処理方法及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086271A (ja) * 2008-09-30 2010-04-15 Fujitsu Ltd 情報処理装置、情報処理システム、方法、およびプログラム
JP2010238143A (ja) * 2009-03-31 2010-10-21 Brother Ind Ltd ノード装置、ノード処理プログラム及び検索方法
JP2011008707A (ja) * 2009-06-29 2011-01-13 Brother Industries Ltd 分散保存システム、ノード装置、並びにその処理方法及びプログラム

Similar Documents

Publication Publication Date Title
JP4640307B2 (ja) コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム
US7882168B2 (en) Contents distribution system, node apparatus and information processing method thereof, as well as recording medium on which program thereof is recorded
JP4862463B2 (ja) 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP4830889B2 (ja) 情報配信システム、情報配信方法及びノード装置等
WO2007119413A1 (ja) 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP2008123233A (ja) ソーシャルネットワーキングシステム及びその制御プログラム
JP2008059399A (ja) コンテンツ配信システム、コンテンツ配信システムにおける情報処理方法、端末装置及びそのプログラム
JP2008129694A (ja) 情報配信システム、情報配信方法、配信装置及びノード装置等
JP4998197B2 (ja) コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム
JP2008067089A (ja) コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法
WO2006103800A1 (ja) 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム
WO2007074873A1 (ja) コンテンツ配信システム、端末装置及びその情報処理方法並びにそのプログラムを記録した記録媒体
JP2007336396A (ja) コンテンツ配信システム、コンテンツ配信方法、端末装置及びそのプログラム
JP2010113573A (ja) コンテンツ分散保存システム、コンテンツ保存方法、サーバ装置、ノード装置、サーバ処理プログラム、及びノード処理プログラム
JP2010231576A (ja) ノード装置、ノード処理プログラム及びコンテンツ保存方法
JP4797679B2 (ja) コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム
US8312068B2 (en) Node device, information communication system, method for managing content data, and computer readable medium
JP2008035337A (ja) ノード装置、配信装置、管理装置、情報処理プログラム、コンテンツ配信方法及びコンテンツ配信システム
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP4635966B2 (ja) コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム
JP2010066930A (ja) コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム
JP4983183B2 (ja) ノード装置、情報分割保存システム、情報処理プログラム及び情報利用方法
US20100250594A1 (en) Node device, information communication system, method for retrieving content data, and computer readable medium
JP5287059B2 (ja) ノード装置、ノード処理プログラム及び保存指示方法
JP5157770B2 (ja) ノード装置、プログラム及び保存指示方法