JP2008090564A - コンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラム - Google Patents
コンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラム Download PDFInfo
- Publication number
- JP2008090564A JP2008090564A JP2006270133A JP2006270133A JP2008090564A JP 2008090564 A JP2008090564 A JP 2008090564A JP 2006270133 A JP2006270133 A JP 2006270133A JP 2006270133 A JP2006270133 A JP 2006270133A JP 2008090564 A JP2008090564 A JP 2008090564A
- Authority
- JP
- Japan
- Prior art keywords
- identification information
- content
- information
- unused area
- node
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】各コンテンツデータ又は各ノード装置へ識別情報を割り当てる際の処理負荷を低減することができるコンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラムを提供する。
【解決手段】各ノード装置又は各コンテンツデータに割り当てる識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、使用していない情報が最も多く配列されている最大未使用領域を判別し、その最大未使用領域を2つの未使用領域に分割する情報を識別情報候補として選択すると共に、選択した識別情報候補を、未だ識別情報を割り当てていない割当対象に割り当てることとした。
【選択図】図3
【解決手段】各ノード装置又は各コンテンツデータに割り当てる識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、使用していない情報が最も多く配列されている最大未使用領域を判別し、その最大未使用領域を2つの未使用領域に分割する情報を識別情報候補として選択すると共に、選択した識別情報候補を、未だ識別情報を割り当てていない割当対象に割り当てることとした。
【選択図】図3
Description
本発明は、コンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラムに関するものである。
近年、インターネットを始めとする情報通信ネットワーク(以下、単に「ネットワーク」という。)にパーソナルコンピュータ等の端末装置を接続して、所望する音楽や映画等のコンテンツに相当するコンテンツデータを受信し、受信したコンテンツデータを各端末装置で視聴することができるコンテンツ配信システムが広く利用されている。
このようなコンテンツ配信システムの一例として、分散ハッシュテーブル(DHT「Distributed Hash Table」)を用いて論理的にオーバーレイネットワークを構築することにより、コンテンツデータ等の情報を効率的にそれぞれの端末装置に分散配置して負荷分散を図るシステムが提案されている(たとえば、特許文献1参照。)。
この分散ハッシュテーブルを用いたコンテンツ配信システムでは、あるコンテンツに対して、そのコンテンツのコンテンツ保持ノード装置に関する情報を管理するノード装置(以下、「ルートノード装置」という。)が決められており、コンテンツを要求するノード装置(以下、「リクエストノード装置」という。)は、所望のコンテンツに関するルートノード装置へ向けて、所望のコンテンツに対応するコンテンツ保持ノード装置に関する情報を要求するメッセージを送信して、コンテンツ保持ノード装置に関する情報を取得し、この取得した情報に基づいてコンテンツ保持ノード装置へアクセスして、コンテンツデータの配信要求を行い、コンテンツ保持ノード装置から所望のコンテンツデータの配信を受けるようにしていた。
また、このコンテンツ配信システムでは、リクエストノード装置がコンテンツデータの配信を受けるためには、所望のコンテンツデータを他のコンテンツデータから識別しなければならず、しかも、コンテンツ保持ノード装置を他の端末装置から識別しなければならないため、全てのコンテンツデータにそれぞれ固有の識別情報(以下、「コンテンツID」という。)が割り当てられ、また、コンテンツ配信システムに参加している全てのノード装置にそれぞれ固有の識別情報(以下「ノードID」という。)が割り当てられていた。
特開2006−197400号公報
従来のコンテンツ配信システムでは、当該コンテンツ配信システムを管理する装置(例えば、コンテンツ配信システムにコンテンツを投入するコンテンツ投入装置等。)が識別情報割当装置として機能して、コンテンツ配信システムに新たなコンテンツを投入するときに、そのコンテンツに相当するコンテンツデータに対してランダムに決定したコンテンツIDを割り当てていると、新たなコンテンツデータに対して、既に他のコンテンツデータに割り当てたものと同じコンテンツIDを割り当ててしまうという重複割当が生じるおそれがあった。
このようコンテンツIDの重複割当を防止するためには、既に割り当てた全てのコンテンツIDを記憶した上で、新たに割り当てるコンテンツIDと、既に割り当てたコンテンツIDとを比較する重複確認処理を行わなければならず、コンテンツIDを割り当てる際の処理負荷が増大するおそれがあった。
請求項1に係る本発明では、ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、ノード装置へコンテンツデータの配信を可能としたコンテンツ配信システムにおけるノード装置又はコンテンツデータを対象として、識別情報を割り当てる識別情報割当装置において、識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、識別情報として使用していない情報が最も多く配列されている最大未使用領域を判別する最大未使用領域判別手段と、最大未使用領域判別手段により判別した最大未使用領域の情報のうち、識別情報として使用することにより、最大未使用領域における情報の配列を2つの未使用領域に分割する情報を識別情報候補として選択する識別情報候補選択手段と、識別情報候補選択手段により選択した識別情報候補を、未だ識別情報を割り当てていない割当対象に割り当てる識別情報割当手段とを有することを特徴とする識別情報割当装置。
また、請求項2に係る本発明では、請求項1に記載の識別情報割当装置において、識別情報候補選択手段が選択する識別情報候補は、最大未使用領域判別手段により判別した最大未使用領域における情報の配列を2つの未使用領域に等分する情報であることを特徴とする。
また、請求項3に係る本発明では、請求項1又は請求項2に記載の識別情報割当装置において、識別情報候補選択手段は、情報領域の中で、識別情報として使用している情報がない場合に、情報領域の中から、識別情報候補としてランダムに1つの情報を選択することを特徴とする。
また、請求項4に係る本発明では、請求項1〜請求項3のいずれか1項に記載の識別情報割当装置において、最大未使用領域判別手段は、最大未使用領域が複数存在した場合に、複数の最大未使用領域からランダムに1つの最大未使用領域を選択することを特徴とする。
また、請求項5に係る本発明では、請求項1〜4のいずれか1項に記載の識別情報割当装置において、情報領域の中で、識別情報として既に使用した情報のリストである使用済情報リストを記憶する使用済情報リスト記憶手段を有し、最大未使用領域判別手段は、使用済情報リストを用いて、最大未使用領域を判別することを特徴とする。
また、請求項6に係る本発明では、請求項1〜4のいずれか1項に記載の識別情報割当装置において、情報領域における未使用領域を判別する未使用領域判別手段と、未使用領域判別手段により判別した未使用領域のリストである未使用領域リストを記憶する未使用領域リスト記憶手段とを有し、最大未使用領域判別手段は、未使用領域リストを用いて、最大未使用領域を判別することを特徴とする。
また、請求項7に係る本発明では、コンピュータを、請求項1〜6のいずれかに記載の識別情報割当装置における各手段として機能させるためのプログラムを提供することとした。
また、請求項8に係る本発明では、ネットワークを介してそれぞれ接続された複数のノード装置と、複数のノード装置又は複数種類のコンテンツデータを対象として、識別情報を割り当てる識別情報割当装置とを有し、複数のノード装置間で互いにコンテンツデータを送受信することにより、ノード装置にコンテンツデータが配信されるコンテンツ配信システムにおいて、識別情報割当装置は、識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、識別情報として使用していない情報が最も多く配列されている最大未使用領域を判別する最大未使用領域判別手段と、最大未使用領域判別手段により判別した最大未使用領域の情報のうち、識別情報として使用することにより、最大未使用領域における情報の配列を2つの未使用領域に分割する情報を識別情報候補として選択する識別情報候補選択手段と、識別情報候補選択手段により選択した識別情報候補を、未だ識別情報を割り当てていない割当対象に割り当てる識別情報割当手段とを有することを特徴とする。
また、請求項9に係る本発明では、ネットワークを介してそれぞれ接続された複数のノード装置と、複数のノード装置又は複数種類のコンテンツデータを対象として識別情報を割り当てる識別情報割当装置とを有し、複数のノード装置間で互いにコンテンツデータを送受信することにより、ノード装置にコンテンツデータが配信されるコンテンツ配信システムにおける識別情報の割当方法において、識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、識別情報として使用していない情報が最も多く配列されている最大未使用領域を判別するステップと、最大未使用領域の情報のうち、識別情報として使用することにより、最大未使用領域における情報の配列を2つの未使用領域に分割する情報を識別情報候補として選択するステップと、識別情報候補を、未だ識別情報を割り当てていない割当対象に割り当てるステップとを有することを特徴とする。
本発明によれば、新たに割り当てる識別情報と既に割り当てている識別情報との重複確認をすることなくコンテンツデータやノード装置に識別情報を割り当てることができ、コンテンツデータやノード装置へ識別情報を割り当てるときの処理負荷を低減することができる。
以下、本発明の一実施形態について説明する。なお、以下に説明する実施形態は、配信する情報を音楽データや映像データ等のコンテンツデータとしたコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
[1.1.コンテンツ配信システムの構成等]
本実施形態におけるコンテンツ配信システムは、インターネットを始めとする情報通信ネットワーク(以下、単に「ネットワーク」という。)を介してそれぞれ接続されたパーソナルコンピュータ等の端末装置(以下、「ノード装置」という。)間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、当該コンテンツ配信システムに参加している各ノード装置へコンテンツデータの配信を可能としたコンテンツ配信システムである。
本実施形態におけるコンテンツ配信システムは、インターネットを始めとする情報通信ネットワーク(以下、単に「ネットワーク」という。)を介してそれぞれ接続されたパーソナルコンピュータ等の端末装置(以下、「ノード装置」という。)間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、当該コンテンツ配信システムに参加している各ノード装置へコンテンツデータの配信を可能としたコンテンツ配信システムである。
また、このコンテンツ配信システムは、上記複数のノード装置の他に、当該コンテンツ配信システムに、各種コンテンツに相当するコンテンツデータを投入するコンテンツ投入装置と、新たに当該コンテンツ配信システムに参加するノード装置へ、ネットワークにおける接続先となるノード装置を紹介するコンタクト先紹介装置とを備えている。
また、このコンテンツ配信システムにおいて、あるコンテンツデータの配信を受けようとするノード装置(以下、「リクエストノード装置」という。)は、コンテンツデータを検索する際に、所望のコンテンツデータを他のコンテンツデータから識別する必要があると共に、所望のコンテンツを保持しているノード装置(以下、「コンテンツ保持ノード装置」という。)を他のノード装置から識別する必要がある。
そのため、このコンテンツ配信システムでは、上記コンテンツ投入装置が、コンテンツ配信システムに新たなコンテンツデータを投入するときに、そのコンテンツデータに対して固有の識別情報(以下、「コンテンツID」という。)を割り当てるようにしている。
すなわち、本実施形態において、コンテンツ投入装置は、複数種類のコンテンツデータのそれぞれにコンテンツIDを割り当てるコンテンツID割当装置としても機能する。
また、このコンテンツ配信システムでは、上記コンタクト先紹介装置が、当該コンテンツ配信システムに新たに参加したノード装置に対して固有の識別情報(以下、「ノードID」という。)を割り当てるようにしている。
すなわち、本実施形態において、このコンタクト先紹介装置は、複数のノード装置にノードIDを割り当てるノードID割当装置としても機能する。
また、本実施形態において、コンテンツ投入装置が各コンテンツデータにコンテンツIDを割り当てる識別情報割当方法と、コンタクト先紹介装置が各ノード装置にノードIDを割り当てる識別情報割当方法とは、同様の識別割当方法を用いるようにしている。なお、以下の説明において、コンテンツ投入装置がコンテンツデータを割り当てる場合や、コンタクト先紹介装置がノードIDを割り当てる場合には、コンテンツ投入装置とコンタクト先紹介装置とを総称して識別情報割当装置と称し、割り当てるコンテンツIDとノードIDとを総称して識別情報と称することがある。
特に、本実施形態の識別情報割当装置は、後に詳述するが、コンテンツデータやノード装置に割り当てる識別情報として使用可能な複数の情報(番号)が所定の規則に従って配設された情報領域の中で、識別情報として使用していない情報が最も多く配列されている最大未使用領域を判別する最大未使用領域判別手段と、この最大未使用領域判別手段により判別した最大未使用領域のうち、識別情報として使用することにより、最大未使用領域における情報の配列を2つの未使用領域に分割する情報を、次に割り当てる識別情報候補として選択する識別情報候補選択手段と、この識別情報候補選択手段により選択した識別情報候補を、未だ識別情報を割り当てていない割当対象であるコンテンツデータ又はノード装置へ割り当てる識別情報割当手段とを備えている。
ここで、識別情報候補選択手段が選択する識別情報候補としては、最大未使用領域判別手段により判別した最大未使用領域における情報の配列を2つの未使用領域に等分する情報であることが望ましい。
また、このコンテンツ配信システムは、特定のコンテンツデータにおけるコンテンツ保持ノード装置へリクエストノード装置からの配信要求が集中することを抑制するために、分散ストレージシステムを採用している。
この分散ストレージシステムを用いた本実施形態のコンテンツ配信システムでは、ネットワークに接続して当該コンテンツ配信システムを利用している全てのノード装置がそれぞれ備える記憶領域(ストレージ)の空き領域を、仮想的に一つの大きな記憶領域(以下、「共有ストレージ」という。)として機能させ、この共有ストレージに複数のコンテンツデータを保持させておき、リクエストノード装置は、この共有ストレージから所望のコンテンツデータの配信を受けるようにしている。
すなわち、このコンテンツ配信システムのコンテンツ投入装置は、このコンテンツ配信システムに新たなコンテンツに相当するコンテンツデータを投入する際、一つのノード装置に投入するのではなく、当該コンテンツ配信システムに係るネットワークに接続しているいくつかのノード装置に同一のコンテンツデータを分散させて保持させるようにしている。
そして、そのコンテンツデータの配信を要求するリクエストノード装置は、所望のコンテンツデータを保持している複数のコンテンツ保持ノード装置のうちのいずれかのコンテンツ保持ノード装置からコンテンツデータの配信を受けるようにしている。
このように構成することにより、このコンテンツ配信システムでは、コンテンツデータを保持している全てのノード装置を、コンテンツデータを配信するサーバーとして機能させることができると共に、当該コンテンツ配信システムに参加している全てのノード装置が、リクエストノード装置のなりうるのである。
図1は、本実施形態に係るコンテンツ配信システムSの概要構成例を示す図である。図1に示す物理接続形態のように、コンテンツ配信システムSを構成するノード装置2a1,2a2,2b1〜2b4,2c1〜2c8、コンテンツ投入装置4、コンタクト先紹介装置5は、インターネットに代表されるネットワーク6上に分散配置されている。
これらノード装置2a1,2a2,2b1〜2b4,2c1〜2c8、コンテンツ投入装置4、コンタクト先紹介装置5には、各装置を識別する固有の製造番号(たとえば、MACアドレス)及びIP(Internet Protocol)アドレス(所在情報)が割り当てられており、これら装置は、ネットワーク6にルータ10等を介して接続されている。そして、目的の接続先装置のIPアドレスを宛先IPアドレス、自装置のIPアドレスを送信元IPアドレスとしたヘッダを含むパケットを送信することによって通信接続が可能となっている。
また、各ノード装置2a1,2a2,2b1〜2b4,2c1〜2c8のそれぞれには、このコンテンツ配信システムSに参加する際に、識別情報割当装置であるコンタクト先紹介装置5により、上記製造番号及びIPアドレスとは別に、固有のノード情報が割当られている。なお、ここでコンテンツ配信システムSに直接関係ない装置もネットワーク6に接続されるが、ここでは省略している。また、ノード装置2a1,2a2,2b1〜2b4,2c1〜2c8のいずれかのノード装置又は全てのノード装置を示す場合には、便宜上、ノード装置2という場合がある。
また、本実施形態では、コンテンツ配信システムSに参加している各ノード装置2を識別するためのノードIDとして、それぞれのノード装置2毎にユニークな番号(固有番号)を割り当てるようにしている。この番号は、ノード装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2128≒340×1036台のノード装置を運用できる。
そして、このノードIDは、ノードID割当装置であるコンタクト先紹介装置5が後に詳述する識別情報割当方法に従って各ノード装置2に割り当てることにより、一つのID空間に偏りなく分散して配置されることとなる。
また、このコンテンツ配信システムSは、各ノード装置2に割り当てた固有のノードIDに基づいて、図1に示す物理接続形態の上層に当該コンテンツ配信システムSによるコンテンツデータの授受を実現するための仮想的なリンク(オーバーレイネットワーク)を構築している。
本実施形態において、このオーバーレイネットワーク上に配置されたノード装置2を、コンテンツ配信システムSに参加しているノード装置2という。
なお、図1に示す例では、コンテンツ投入装置4、コンタクト先紹介装置5は、それぞれ独立した装置としているが、一つの装置においてこれらの装置の機能を実現するようにしてもよい。この場合にはこれらの装置のIPアドレスは同一のものとなり、ポート番号などで区別されることになる。
また、この場合、コンテンツ投入装置4及びコンタクト先紹介装置5として機能する一つの装置が、各コンテンツデータにコンテンツIDを割り当てると共に、各ノード装置にノードIDを割り当てることになる。
また、コンテンツ配信システムSに参加している複数のノード装置2には、図2に示すように、一のノード装置2から他のノード装置2に配信されるコンテンツデータがコンテンツ投入装置4によって分散してノード装置2に投入される。そして、上記したように、これらのコンテンツデータにも、各コンテンツデータを識別するために、それぞれのコンテンツデータ毎に固有のコンテンツIDが割り当てられる。
そして、このコンテンツIDは、ノードIDと同様の長さ(例えば、128bit等)とし、コンテンツID割当装置であるコンテンツ投入装置4によって、後述の識別情報割当方法に従って各コンテンツデータが割り当てられる。
このコンテンツIDは、上記ノードIDと同一のID空間に配置され、そのコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード装置2が、当該コンテンツIDを割り当てたコンテンツデータにおけるコンテンツ保持ノード装置へのリンク情報、すなわちコンテンツ保持ノード装置のノードIDや所在情報であるIPアドレス等を管理する。
また、コンテンツ保持ノード装置は、コンテンツ投入装置4によってランダムに決定される。すなわち、コンテンツ投入装置4は、コンテンツデータを保持すべき1以上のノード装置2をランダムに決定し、このように決定したノード装置2にコンテンツデータを送信する。コンテンツ投入装置4からコンテンツデータを受信したノード装置2は、コンテンツデータを記憶部に保持することによってコンテンツ保持ノード装置として機能する。これにより、コンテンツデータが偏りなくコンテンツ配信システムSのオーバーレイネットワーク上に分散して配置される。
そして、次に説明する識別情報割当方法に従って、識別情報割当装置(コンタクト先紹介装置5又はコンテンツ投入装置4)が各ノード装置2及び各コンテンツデータにノードID及びコンテンツIDを割り当てることにより、ノードID及びコンテンツIDを、図2に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在させるようにしている。同図は8bit4進数で各ノードID及びコンテンツIDを図示したものである。図中丸点はノードIDを、四角形はコンテンツIDを示し、反時計回りでIDが増加するものとする。
ここで、識別情報割当装置(コンタクト先紹介装置5及びコンテンツ投入装置4)による識別情報割当方法について、図3を参照して具体的に説明する。なお、コンタクト先紹介装置5が各ノード装置2へノードIDを割り当てる際の識別情報割当方法と、コンテンツ投入装置4が各コンテンツデータにコンテンツIDを割り当てる際の識別情報割当方法とは同様であるので、ここでは、コンテンツ投入装置4が行う識別情報割当方法について説明することにより、コンタクト先紹介装置5による識別割当方法については、その説明を省略する。
コンテンツ投入装置4は、コンテンツIDとして使用可能な情報(番号)であって、コンテンツ配信システムSへ投入予定のコンテンツ数の最大数に対応できるだけの複数のコンテンツIDが所定の規則に従って配列された情報領域を備えている。
この情報領域は、図3(a)に示すように、8bit4進数の0000〜3333までのコンテンツIDが反時計回りに順に配列された領域であり、上記ID空間に対応するものである。
そして、コンテンツ投入装置4は、この情報領域の中で、コンテンツIDとして使用している情報(番号)がない場合、すなわち、初めて当該コンテンツ配信システムSへコンテンツデータを投入する際に、まず、情報領域の中からコンテンツID候補としてランダムに一つのコンテンツIDを選択して、初めて投入するコンテンツデータに対して割り当てる。なお、ここでは、図3(a)に示すように、初めて投入するコンテンツデータに割り当てる1番目のコンテンツIDとして「1132」を選択するようにしている。
次に、コンテンツ投入装置4は、情報領域の中で、コンテンツIDとして使用していない情報(番号)が最も多く配列されている最大未使用領域を判別する。ここでは、図3(a)に符号(1)で示す領域(1133〜1131)が最大未使用領域(1)として判別される。
次に、コンテンツ投入装置4は、2番目のコンテンツデータをコンテンツ配信システムSに投入する際、図3(a)に示す最大未使用領域(1)のうち、最大未使用領域(1)における未使用のコンテンツIDの配列を二つの未使用領域に等分するコンテンツIDをコンテンツID候補として選択する。
ここでコンテンツ投入装置4は、2番目のコンテンツIDとして「3132」を選択して、未だコンテンツIDを割り当てていないコンテンツIDの割当対象である2番目のコンテンツデータに割り当てることにより、図3(a)に示した最大未使用領域(1)を、図3(b)に示すように、二つの最大未使用領域(1)(2)に等分する。
次に、コンテンツ投入装置4は、3番目のコンテンツデータをコンテンツ配信システムSに投入する際、情報領域のなかの最大未使用領域を判別し、その最大未使用領域を等分するコンテンツID候補を選択する。
ただし、ここでは、図3(b)に示すように、未使用のコンテンツIDが同じ数だけ配列された二つの最大未使用領域(1),(2)が存在する。
このように、二つの最大未使用領域(1),(2)が存在すると判別した場合には、これら二つの最大未使用領域(1),(2)からランダムに一つの最大未使用領域を選択する。
ここでコンテンツ投入装置4は、最大未使用領域(1)を選択し、この最大未使用領域(1)のうちコンテンツIDとして使用することにより、最大未使用領域(1)におけるコンテンツIDの配列を二つに等分するコンテンツIDをコンテンツID候補として選択する。
そして、コンテンツ投入装置4は、3番目のコンテンツIDとして「0132」を選択して、未だコンテンツIDを割り当てていないコンテンツIDの割当対象である3番目のコンテンツデータに割り当てることにより、図3(b)に示した最大未使用領域(1)を、図3(c)に示すように、二つの最大未使用領域(0133〜1131、3133〜0131)に等分する。
次に、コンテンツ投入装置4は、4番目のコンテンツデータをコンテンツ配信システムSに投入する際、図3(c)に示したように、3番目のコンテンツID「0132」を選択したときに選択しなかった方の最大未使用領域(2)を選択して、この最大未使用領域(2)のうちコンテンツIDとして使用することにより、最大未使用領域(2)におけるコンテンツIDの配列を二つに等分するコンテンツIDをコンテンツID候補として選択する。
ここでコンテンツ投入装置4は、図3(d)に示すように、4番目のコンテンツIDとして「2132」を選択して、未だコンテンツIDを割り当てていないコンテンツIDの割り当て対象である4番目のコンテンツデータに割り当てることにより、図3(c)に示した最大未使用領域(2)を二つの未使用領域に等分して、情報領域を四つの最大未使用領域(1),(2),(3),(4)に等分する。
このように、コンテンツ投入装置4は、コンテンツ配信システムSに新たなコンテンツデータを投入する際、図3(a)〜(d)に示したように、まず、情報領域からランダムに1番目のコンテンツIDを選択して1番目にコンテンツ配信システムSへ投入するコンテンツデータに割当て、その後は、順次最大未使用領域を判別し、その最大未使用領域を順次二つに等分する位置に配列されているコンテンツIDとして使用可能な情報(番号)をコンテンツID候補として選択して、各コンテンツデータに割り当てるようにしている。
そのため、この識別情報割当方法によれば、既にコンテンツデータに割り当てたコンテンツIDと、これからコンテンツデータに割り当てるコンテンツIDとの重複確認をすることなく、各コンテンツデータ毎にユニークなコンテンツIDを割り当てることができ、しかも、リング状のID空間上に、割当済みのコンテンツIDをさほど偏ることなく、散らばらせて存在させることができる。
また、この識別情報割当方法を用いて、コンテンツ配信システムSに新たに参加してくる各ノード装置2へ順次ノードIDを割り当てることにより、リング状のID空間上にノード装置2をさほど偏ることなく、散らばらせて配置させることができる。
なお、ここでは、最大未使用領域を判別し、その最大未使用領域を順次二つに等分する位置に配置されているコンテンツIDをコンテンツID候補として選択するようにしているが、本発明におけるコンテンツID候補は、これに限定するものではなく、判別した最大未使用領域内に配列されているコンテンツIDとして使用可能な情報(番号)の中で、この最大未使用領域を二つの未使用領域に分割する情報(番号)であれば、任意の情報(番号)をコンテンツID候補として選択してもよい。
たとえば、判別した最大未使用領域を6対4や7対3に分割する位置に配列されている情報(番号)をコンテンツ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と、そのコンテンツデータを保持しているコンテンツ保持ノード装置のノードID及びIPアドレスとを関連付けたコンテンツ保持ノード情報を他のノード装置2より最も多く保持している。
そして、図2においては、ノードIDaを有するノード装置2が、コンテンツIDaを有するコンテンツデータのルートノード装置であって、ノードIDbを有するノード装置2が、コンテンツIDbを有するコンテンツデータのルートノード装置であって、ノードIDcを有するノード装置2が、コンテンツIDcを有するコンテンツデータのルートノード装置である。
ここで、コンテンツ投入装置4は、コンテンツ配信システムS内のノード装置2をコンテンツ保持ノード装置とするためにコンテンツデータをノード装置2へ配布する機能のほか、このコンテンツ配信システムSにおいて、リクエストノード装置が現在配信を受けることが可能な複数のコンテンツデータ(言い換えれば、コンテンツ保持ノード装置が保持しているコンテンツデータ)をそのコンテンツのタイトルとコンテンツIDとを関連付けたリスト情報が含まれたカタログ情報を生成してノード装置2へ提供する機能を有している。
上記したように、本実施形態では、あるコンテンツデータに関して、ルートノード装置となるノード装置2は、当該コンテンツデータに割り当てられたコンテンツIDと、ノードIDとが最も近い装置となるように定められている。
そのため、リクエストノード装置が、コンテンツ投入装置4から提供されるカタログ情報に含まれるコンテンツIDと同一のノードIDのノード装置2へ向けてメッセージを送信することにより、所望のコンテンツデータのルートノード装置へメッセージが届く。
また、上記したように、このコンテンツ配信システムSにおいては、コンタクト先紹介装置5が配置されており、このコンタクト先紹介装置5は、コンテンツ配信システムSに参加していないノード装置2からこのコンテンツ配信システムSへの参加要求があったときに、未参加のノード装置2が参加メッセージを送信する既参加のノード装置2(以下、「コンタクト先ノード装置」と呼ぶ。)の所在情報を通知する機能を有している。
また、このコンタクト先紹介装置5は、このコンテンツ配信システムSに新たに参加するノード装置2へ、上記した識別情報割当方法に従ってそれぞれ固有のノードIDを割り当てる機能を有している。
また、このコンテンツ配信システムSにおいて、新規参加ノード装置は、まず、コンタクト先紹介装置5からネットワークにおける接続先となるノード装置2のIPアドレス等が含まれたメッセージを受信し、そのIPアドレスに対応するノード装置2に接続することにより、当該コンテンツ配信システムSのオーバーレイネットワークに参加する。
その後、ノード装置2は、コンテンツ投入装置4から提供されるカタログ情報に含まれている所望のコンテンツデータに対応するコンテンツIDに基づいて、そのコンテンツIDのルートノード装置へ向けて所望のコンテンツデータの配信要求を示すメッセージを送信する。
そして、ノード装置2は、ルートノード装置から所望のコンテンツデータを保持しているコンテンツ保持ノード装置のIPアドレスを示すメッセージを受信し、受信したIPアドレスに対応するコンテンツ保持ノード装置と接続することによって、そのコンテンツ保持ノード装置から所望のコンテンツデータの配信を受けるのである。
ここで、このコンテンツ配信システムSにおいて、各ノード装置2の間で授受される上記した各種メッセージ等は、各ノード装置2がそれぞれ保持しているルーティングテーブルに基づいてメッセージ等の転送を行うことにより、ネットワーク6に接続しているいくつかのノード装置2に転送されながら、メッセージ等の送信元のノード装置2から宛先のノード装置2まで到達することとなる。
[1.2.ルーティングテーブルの作成]
ここで、図4及び図5を参照して、本実施形態のコンテンツ配信システムSに参加している各ノード装置2が各種メッセージ等を送信する際に参照するルーティングテーブルの作成方法の一例、及び、作成したルーティングテーブルの構成について説明する。
ここで、図4及び図5を参照して、本実施形態のコンテンツ配信システムSに参加している各ノード装置2が各種メッセージ等を送信する際に参照するルーティングテーブルの作成方法の一例、及び、作成したルーティングテーブルの構成について説明する。
図4は、ルーティングテーブルが作成される様子の一例を示す図であり、図5は、ルーティングテーブルの構成を示す説明図である。
本実施形態のノード装置2では、図4(a)に示す如く、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長8bitの4進数で表すことにする。そして、ここでは、ノード装置2NのノードIDを「1133」とし、このノード装置2Nのルーティングテーブルを作る例について説明する。
(レベル1のルーティング)
まず、ID空間を4分割とした場合、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」(Xは0から3の自然数、以下同様。)で分けられる。ノード装置2Nは、当該ノード装置2N自身のノードIDが「1133」であるため、図4(a)中左下「1XXX」のエリアに存在することになる。そして、ノード装置2Nは、自分の存在するエリア(すなわち、「1XXX」のエリア)以外のエリア(すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア)に存在するノード装置2のノードIDの所在情報、すなわち、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。
まず、ID空間を4分割とした場合、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」(Xは0から3の自然数、以下同様。)で分けられる。ノード装置2Nは、当該ノード装置2N自身のノードIDが「1133」であるため、図4(a)中左下「1XXX」のエリアに存在することになる。そして、ノード装置2Nは、自分の存在するエリア(すなわち、「1XXX」のエリア)以外のエリア(すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア)に存在するノード装置2のノードIDの所在情報、すなわち、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。
具体的には、図5のレベル1の欄に示すように、「0XXX」のエリアのノードIDとして「0100」、「2XXX」のエリアのノードIDとして「2133」、「3XXX」のエリアのノードIDとして「3213」がそれぞれ選択されている状態を示している。なお、当該レベル1の2列目はノード装置2N自身を示しているため、IPアドレスを記憶する必要はない。
(レベル2のルーティング)
次に、図4(b)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「1XXX」を更に4分割し、更に4つのエリア「10XX」「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア「11XX」以外のエリアに存在するノード装置2の当該ノードIDの所在情報であるIPアドレスをレベル2のテーブルに記憶する。
次に、図4(b)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「1XXX」を更に4分割し、更に4つのエリア「10XX」「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア「11XX」以外のエリアに存在するノード装置2の当該ノードIDの所在情報であるIPアドレスをレベル2のテーブルに記憶する。
具体的には、図5のレベル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分割したエリアのうち、自分の存在するエリア「11XX」を更に4分割し、更に4つのエリア「110X」「111X」、「112X」、「113X」と分ける。そして、上記と同様に自分の存在するエリア「113X」以外のエリアに存在するノード装置2の当該ノードIDの所在情報であるIPアドレスをレベル3のテーブルに記憶する。
具体的には、図5のレベル3の欄に示すように、レベル3の4列目はノード装置2Nが存在するエリアであり、後述するレベル4にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアにノード装置が存在しない場合には、ノードID及びIPアドレスの欄は空白となる。
このようにして、レベル4まで同様にルーティングテーブルを図5に示す如く作成することにより、8bitのID全てを網羅することができる。
そして、ノード装置2は、図5に示す構成のルーティングテーブルを作成する。
[1.3.コンテンツ配信システムへの参加]
次に、図6を参照して、コンテンツ配信システムSに未参加のノード装置2が当該コンテンツ配信システムSへ参加する方法の一例について説明する。図6は、コンテンツ配信システムSに未参加のノード装置2(以下、「新規参加ノード装置2M」という。)が当該コンテンツ配信システムSへ参加する様子の一例を示す図である。ここでは、新規参加ノード装置2Mがコンテンツ配信システムSに参加する手順について説明する。
次に、図6を参照して、コンテンツ配信システムSに未参加のノード装置2が当該コンテンツ配信システムSへ参加する方法の一例について説明する。図6は、コンテンツ配信システムSに未参加のノード装置2(以下、「新規参加ノード装置2M」という。)が当該コンテンツ配信システムSへ参加する様子の一例を示す図である。ここでは、新規参加ノード装置2Mがコンテンツ配信システムSに参加する手順について説明する。
まず、コンテンツ配信システムSに未参加である新規参加ノード装置2Mは、コンテンツ配信システムSに参加するために、コンタクト先紹介装置5に対して、参加メッセージを送信すべきノード装置2(以下、「コンタクト先ノード装置」という。)の所在情報を要求(以下、「コンタクト先ノード装置の問い合わせ」という。)する。
その後、新規参加ノード装置2Mは、このコンタクト先ノード装置の問い合わせの返信として、コンタクト先ノード装置の所在情報を受信することとなり、このとき同時に、コンタクト先紹介装置5からノードIDを割り当てられる。
そして、新規参加ノード装置2Mは、コンタクト先紹介装置5から参加メッセージを送信すべきコンタクト先ノード装置の所在情報を受信すると、コンタクト先ノード装置に対して参加メッセージを送信する。ここで、参加メッセージのあて先識別情報は、新規参加ノード装置2MのノードIDとなっている。すなわち、新規参加ノード装置2Mは、コンテンツ配信システムSに参加する際に、自ノード装置2のノードID「2133」を宛先識別情報とした参加メッセージを生成する。
コンタクト先ノード装置は、新規参加ノード装置2Mから送信された参加メッセージを受信すると、この参加メッセージがコンタクト先ノード装置宛のメッセージであるか否かを判定する。
ここで、コンタクト先ノード装置宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報がコンタクト先ノード装置宛の識別情報と近いか否かが判定される。即ち、宛先識別情報に対して、コンタクト先ノード装置自身が保持しているルーティングテーブルに記憶されているノード装置2のノードIDから、一番近いノード装置2のノードIDが、自身であるか他のノード装置2であるかを判定する。
そして、コンタクト先ノード装置のノードIDよりも他のノード装置のノードIDの方が宛先識別情報に近いとき、参加メッセージを受信したコンタクト先ノード装置は、コンタクト先ノード装置自身が保持しているルーティングテーブルのレベル2を参照して、「2XXX」のエリアに属すノード装置2のうち、IPアドレスを知っているノード装置2Bに対して参加メッセージを転送するとともに自ノード装置2が保持しているルーティングテーブルのレベル1のテーブルの情報を、新規参加ノード装置2Mへ送信する。
このように、コンテンツIDの桁を上から順に適合していく要領で参加メッセージの転送を行い、順次ルーティングテーブルの各レベルの情報を送信する。最終的に宛先識別情報に最も近いノード装置2に辿り着いたところで参加メッセージの転送は終了する。なお、参加メッセージなどのメッセージを目的のノード装置2へ辿り着くまでに、上述のように転送する仕組みをルーティングと呼ぶ。
こうして、新規参加ノード装置2Mは、参加メッセージを受信したノード装置2からルーティングテーブルの各レベルの情報を上位レベルの情報から順に取得するようにしている。新規参加ノード装置2Mはこのようにして、コンテンツ配信システムSに参加するために必要なルーティングテーブルを生成する。
[1.4.コンテンツデータの検索方法]
次に、図7を参照して、所望のコンテンツデータを保持しているコンテンツ保持ノード装置の検索方法の一例について説明する。図7は、上記ルーティングにより所望のコンテンツデータを保持しているコンテンツ保持ノード装置が検索される様子の一例を示す図である。
次に、図7を参照して、所望のコンテンツデータを保持しているコンテンツ保持ノード装置の検索方法の一例について説明する。図7は、上記ルーティングにより所望のコンテンツデータを保持しているコンテンツ保持ノード装置が検索される様子の一例を示す図である。
ここでは、ノードID「1133」のノード装置2N(リクエストノード装置)が、コンテンツID「3020」を有するコンテンツデータを探す際の手順について説明する。
リクエストノード装置2Nは、自己が保持しているルーティングテーブルのレベル1のテーブルを参照して、コンテンツID「3020」と同じエリアのノードIDを持つノード装置2のノードIDを宛先識別情報としてコンテンツ保持ノード情報(コンテンツ保持ノード装置の所在情報を含む情報)の送信要求(以下、「コンテンツ検索メッセージ」と呼ぶ。)を送信する。
すなわち、コンテンツID「3020」は「3XXX」のエリアであるため、当該「3XXX」のエリアに属すノード装置2のうち、IPアドレスを知っている(すなわち、自己が保持しているルーティングテーブルにIPアドレスが記憶されている)ノード装置2A(ノードID「3213」)に対してリクエストノード装置2Nは、コンテンツ検索メッセージを送信する。
このように、コンテンツ検索メッセージはコンテンツに対応する固有の識別情報であるコンテンツIDを含むものであり、このコンテンツIDはコンテンツ検索メッセージにおいて宛先識別情報として用いられる。
図7に示す例によれば、ノードIDが「3213」であるノード装置2AのIPアドレスがリクエストノード装置2Nのルーティングテーブル(図5参照。)に記憶されているので、リクエストノード装置2Nは、ノードIDが「3213」であるノード装置2Aに対してコンテンツ検索メッセージを送信する。
次に、コンテンツ検索メッセージを受信したノード装置2Aは、このコンテンツ検索メッセージが自ノード装置2A宛のメッセージであるか否かを判定する。自ノード装置2A宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。
具体的には、宛先識別情報が自ノード装置2AのノードIDと近いか否かが判定される。即ち、宛先識別情報に対して、ノード装置2A自身が保持しているルーティングテーブルに記憶されているノード装置2のノードIDから、一番近いノード装置2のノードIDが、自身であるか他のノード装置2であるかを判定する。
ここでは、自ノード装置2AのノードIDよりも他のノード装置2のノードIDの方が、宛先識別情報に近いため、ノード装置2Aは、当該ノード装置2A自身が保持しているルーティングテーブルのレベル2のテーブルを参照して、「30XX」のエリアに属すノード装置2のうち、IPアドレスを知っているノード装置2B(ノードID「3031」)に対してコンテンツ検索メッセージを転送する。
このように、コンテンツIDの桁を上から順に適合していく要領でコンテンツ検索メッセージの転送が進み、最終的に当該コンテンツデータを管理するノード装置2C(ノードID「3011」)、すなわちルートノード装置に辿り着くと、当該ルートノード装置は、コンテンツ検索メッセージに含まれるコンテンツID「3020」を、自身が管理している後述のインデックス情報の中から検索し、当該コンテンツデータを所有しているコンテンツ保持ノード装置のIPアドレス等をリクエストノード装置2Nに返信するようになっている。
こうして、リクエストノード装置2Nは、上記ルートノード装置2Cから、コンテンツ保持ノード情報(コンテンツID「3020」のコンテンツデータの所在情報、即ち、コンテンツID「3020」のコンテンツデータを保持するコンテンツ保持ノード装置のIPアドレス)を受信して知ることになり、当該コンテンツ保持ノード装置へ所望のコンテンツに関するダウンロード要求を送信することにより、このダウンロード要求を受信したコンテンツ保持ノード装置から、そのコンテンツデータをダウンロードして取得することになる。
[1.5.インデックステーブルへの登録方法]
次に、コンテンツ配信システムSの中で、新しいコンテンツデータをネットワーク6上において他のノード装置2に見えるように公開する際の手法について述べる。
次に、コンテンツ配信システムSの中で、新しいコンテンツデータをネットワーク6上において他のノード装置2に見えるように公開する際の手法について述べる。
本実施形態におけるコンテンツ配信システムSでは、図8に示すように、コンテンツ投入装置4が各コンテンツ保持ノード装置となるノード装置2に対して、各コンテンツ保持ノード装置毎の管理対象コンテンツとなるコンテンツデータを送信する。
このとき、コンテンツ投入装置4は、上記した識別情報割当方法に従って、各コンテンツデータにそれぞれコンテンツIDを割り当てて、そのコンテンツデータを各コンテンツ保持ノード装置へ送信する。
コンテンツ投入装置4から管理対象のコンテンツデータを受信したコンテンツ保持ノード装置は、自身が備えるハードディスク装置等の情報記憶手段に受信したコンテンツデータを記憶する。
当該コンテンツデータを配布されたコンテンツ保持ノード装置は、図8及び図9に示すように、当該コンテンツ保持ノード装置のIPアドレス及びノードIDを含むコンテンツ保持ノード情報の登録要求メッセージ(以下、「コンテンツ登録メッセージ」と呼ぶ。)を、コンテンツIDと同じノードIDを持つノード装置2に向けて(このノード装置2が実在するか否かはこの時点ではわからない。)送信する。
そして、このコンテンツ登録メッセージも、上記コンテンツ検索メッセージと同様にルーティングテーブルに従って、次々と転送されていき、当該コンテンツ登録メッセージに含まれるコンテンツIDに最も近いノードIDを有するノード装置2まで転送されたところで、そのノード装置2がもはや送信先のノード装置2が他にないと判断すると、当該ノード装置2自身がそのコンテンツのルートノード装置となるべきだと判断し、図9に示すように、当該コンテンツ登録メッセージに含まれるコンテンツ保持ノード情報である当該コンテンツID、コンテンツ保持ノード装置のIPアドレス等の情報を自身が備える所定の情報記憶手段内に設けたインデックステーブルに記憶する。
このようにルートノード装置のインデックステーブルにコンテンツ保持ノード装置の所在情報であるIPアドレスが登録されると、以後リクエストノード装置からのコンテンツ検索メッセージに対してインデックステーブルに登録したコンテンツ保持ノード装置の所在情報をリクエストノード装置へ返信する。このようにして本実施形態では、コンテンツ投入装置4から配布されたコンテンツデータをコンテンツ保持ノード装置に登録し、ルートノード装置を介して検索できるようにすることで、他のノード装置2にコンテンツを公開する。
また、本実施形態において、このコンテンツ保持ノード情報は、コンテンツ保持ノード装置からルートノード装置へ転送される際に、その転送経路上に存在する各ノード装置2(コンテンツ保持ノード情報を転送したノード装置2)のインデックステーブルにも記憶される。
[2.識別情報割当装置の構成等]
次に、本実施形態のコンテンツ配信システムSにおける識別情報割当装置の構成等について、図10を参照して具体的に説明する。図10は、識別情報割当装置の構成を示すブロック図である。
次に、本実施形態のコンテンツ配信システムSにおける識別情報割当装置の構成等について、図10を参照して具体的に説明する。図10は、識別情報割当装置の構成を示すブロック図である。
なお、本実施形態では、コンテンツ投入装置4がコンテンツデータへコンテンツIDを割り当てる際にコンテンツID(識別情報)割当装置として機能し、コンタクト先紹介装置5が各ノード装置2へノードIDを割り当てる際にノードID(識別情報)割当装置として機能するため、ここでは、コンテンツ投入装置4とコンタクト先紹介装置5とにおいて、識別情報割当装置として機能する共通部分に関してのみ説明することとし、他の部分に関しては、その具体的説明を省略する。
本実施形態の識別情報割当装置は、一般のパーソナルコンピュータ或いは専用端末を適用することができ、ノード装置2又はコンテンツデータを対象として、ノードID又はコンテンツIDといった識別情報を割り当てるものであり、具体的には、図10に示すように構成している。
すなわち、この識別情報割当装置は、図10に示すように、CPU(Central Processing Unit)202と、各種プログラム等を記憶(格納)する書き換え可能な主記憶装置205と、割当対象であるノード装置2又はコンテンツデータに割り当てるための複数の識別情報等の各種データ等を記憶するハードディスク装置203と、ネットワーク6を介してネットワーク上のノード装置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に相当するものである。
(主記憶装置205について) また、主記憶装置205は、識別情報割当装置のコンピュータとしての基本的な機能を提供するためのOS(オペレーティングシステム)プログラム217、内蔵ディスプレイ210を制御するための画面制御プログラム218、各ノード装置2又は各コンテンツデータに識別情報を割り当てるための識別情報割当プログラム219等が記憶されている。
また、この主記憶装置205は、制御部230が各コンテンツデータ又は各ノード装置2へ識別情報(コンテンツID又はノードID)を割り当てる処理を行う際に、ハードディスク装置203から読み出した識別情報を一時的に記憶すると共に、識別情報として使用するための情報の配列である情報領域の中で、識別情報として既に使用した情報のリストである使用済情報リストを記憶する使用済情報リスト記憶手段として機能する。
また、この主記憶装置205は、主記憶装置205に記憶している識別情報として使用するための情報の配列である情報領域のうち、識別情報として未だ使用していない情報の配列のリストである未使用領域リストを記憶する未使用領域リスト記憶手段として機能させることもできる。
ここで、OSプログラム217は、CPU202によって読み出されて実行されることにより、キーボード207やマウス208の入出力に関する機能や、主記憶装置205やハードディスク装置203などのメモリ管理などのノード装置2であるコンピュータの基本的な機能を実行可能にするものである。そして、このOSプログラム217がCPU202によって実行された状態で、上述の画面制御プログラム218、識別情報割当プログラム219等が実行される。
なお、OSプログラム217、画面制御プログラム218、識別情報割当プログラム219等は、例えば、ネットワーク6に接続されたサーバ等から主記憶装置205にダウンロードされるようにしてもよく、また、CD−ROM等の記憶媒体に記録されてから当該記憶媒体を介して、主記憶装置205に読み込まれるようにしてもよい。
(制御部230について)
制御部230は、上述のようにCPU202と主記憶装置205とから構成され、CPU202が主記憶装置205に記憶された各種プログラム217〜219を読み出して実行することにより、識別情報割当装置全体を統括制御し、かつ、後述する未使用領域判別手段、最大未使用領域判別手段、識別情報候補選択手段、識別情報割当手段等として機能する。
制御部230は、上述のようにCPU202と主記憶装置205とから構成され、CPU202が主記憶装置205に記憶された各種プログラム217〜219を読み出して実行することにより、識別情報割当装置全体を統括制御し、かつ、後述する未使用領域判別手段、最大未使用領域判別手段、識別情報候補選択手段、識別情報割当手段等として機能する。
(未使用領域判別手段について)
未使用領域判別手段は、識別情報として使用可能な情報(番号)が所定の規則に従って配列された情報領域において、識別情報として使用していない連続する情報(番号)の列を一つの未使用領域として判別し、この未使用領域を示す情報を主記憶装置205に記憶させることにより、主記憶装置205を未使用領域リスト記憶手段として機能させるものである。
未使用領域判別手段は、識別情報として使用可能な情報(番号)が所定の規則に従って配列された情報領域において、識別情報として使用していない連続する情報(番号)の列を一つの未使用領域として判別し、この未使用領域を示す情報を主記憶装置205に記憶させることにより、主記憶装置205を未使用領域リスト記憶手段として機能させるものである。
具体的に説明すると、この未使用領域判別手段は、図3(c)に示すように、ID空間の中で、「0132」、「1132」、「3132」という三つの情報(番号)が識別情報として既に使用されている場合に、「0133」〜「1131」、「1133」〜「3131」、「3133」〜「0131」という三つの未使用領域を判別して、各未使用領域毎に、その未使用領域において識別情報として使用していない情報の個数が未使用領域リストとして主記憶装置205の所定領域に記憶させる。
(最大未使用領域判別手段について)
最大未使用領域判別手段は、識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、識別情報として使用していない情報が最も多く連続して配列されている最大未使用領域を判別するものである。
最大未使用領域判別手段は、識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、識別情報として使用していない情報が最も多く連続して配列されている最大未使用領域を判別するものである。
そして、この最大未使用領域判別手段は、主記憶装置205に記憶している未使用領域リスト、又は、使用済情報リストを参照して、最大未使用領域を判別するようにしている。
すなわち、この最大未使用領域判別手段は、主記憶装置205を使用済情報リスト記憶手段として機能させている場合に、使用済情報リストを参照して最大未使用領域を判別する。
具体的に説明すると、この最大未使用領域判別手段は、使用済情報リストを参照して、識別情報として使用している情報(番号)と、その情報(番号)に最も近い識別情報として使用している他の情報(番号)とを読み出し、これら二つの情報(番号)の大きい方の情報から小さい方の情報を減算することにより、一つの未使用領域に含まれる識別情報として使用されていない連続した情報の個数を算出する。
そして、最大未使用領域判別手段は、ID空間における全ての未使用領域に関してこの演算を行い、ID空間に存在する全ての未使用領域の中で識別情報として使用していない連続した情報の個数が最も多い未使用領域を最大未使用領域として判別するのである。
また、最大未使用領域判別手段は、主記憶装置205を未使用領域リスト記憶手段として機能させている場合に、未使用領域リストを参照して最大未使用領域を判別する。
この場合、未使用領域リスト記憶手段には、上記したように、各未使用領域毎に、その未使用領域において識別情報として使用していない連続した情報の個数が未使用領域リストとして既に記憶されているので、この最大未使用領域判別手段は、この未使用領域リストを参照することによって最大未使用領域を判別することができるのである。
(識別情報候補選択手段について)
識別情報候補選択手段は、上記最大未使用領域判別手段により判別した最大未使用領域に配列されている識別情報として未だ使用していない情報配列の中で、識別情報として使用することにより、その最大未使用領域における情報の配列を略等しい個数の情報(番号)により構成された二つの未使用領域に等分する情報を識別情報候補として選択するものである。
識別情報候補選択手段は、上記最大未使用領域判別手段により判別した最大未使用領域に配列されている識別情報として未だ使用していない情報配列の中で、識別情報として使用することにより、その最大未使用領域における情報の配列を略等しい個数の情報(番号)により構成された二つの未使用領域に等分する情報を識別情報候補として選択するものである。
すなわち、この識別情報候補選択手段は、最大未使用領域を構成する情報(番号)のうち、最も小さな情報(番号)と最も大きな情報(番号)とを加算した後、この加算結果を二分の一する演算を行い、その演算結果に対応する情報(番号)を識別情報候補として選択するのである。なお、上記加算結果が偶数であり、その加算結果を完全に二分の一にすることができない場合には、上記加算結果を二分の一にする演算結果に最も近い情報(番号)を識別情報候補として選択する。
(識別情報割当手段について)
識別情報割当手段は、上記識別情報候補選択手段によって選択した情報(番号)を、割当対象となるコンテンツデータ又はノード装置2に割り当てるものである。
識別情報割当手段は、上記識別情報候補選択手段によって選択した情報(番号)を、割当対象となるコンテンツデータ又はノード装置2に割り当てるものである。
すなわち、この識別情報割当手段は、割当対象がコンテンツデータである場合、新たにコンテンツ配信システムSに投入するコンテンツデータに、識別情報候補選択手段が選択した識別情報候補をコンテンツIDとして付与して、コンテンツ保持ノード装置としてランダムに選択したノード装置2へ送信する。
また、割当対象がノード装置2である場合、この識別情報割当手段は、コンテンツ配信システムSに参加していないノード装置2からこのコンテンツ配信システムSへの参加要求があったときに、その参加要求を送信してきたノード装置2へ送信するコンタクト先ノード装置の所在情報に、上記識別情報候補選択手段が選択した識別情報をノードIDとして付与して送信する。
[3.識別情報割当装置の制御部が行う処理]
次に、識別情報割当装置の制御部230が、割当対象に対して識別情報を割り当てる際に行う識別情報決定処理について、図11〜図15を参照すると共に、図3と対応させながら具体的に説明する。
次に、識別情報割当装置の制御部230が、割当対象に対して識別情報を割り当てる際に行う識別情報決定処理について、図11〜図15を参照すると共に、図3と対応させながら具体的に説明する。
なお、以下の説明では、識別情報割当処理の一例として、識別情報割当装置として機能するコンテンツ投入装置4がコンテンツ配信システムSに新たなコンテンツデータを投入する際に、識別情報割当装置の制御部230がそのコンテンツデータに割り当てるコンテンツIDを決定するために行う処理について説明する。
ここでは、主記憶装置205を未使用領域リスト記憶手段として機能させた場合に制御部230が行う第1コンテンツID決定処理と、主記憶装置205を使用済情報リスト記憶手段として機能させた場合に制御部230が行う第2コンテンツID決定処理と、上記最大未使用領域が複数ある場合にシャッフル配列を用いて一つの最大未使用領域を選択してコンテンツデータに割り当てるコンテンツIDを決定する第3コンテンツID決定処理とについて説明する。
図11は、第1コンテンツID決定処理を示すフローチャートであり、図12は、第2コンテンツID決定処理を示すフローチャートであり、図13及び図14は、第3コンテンツID決定処理を示すフローチャートであり、図15は、シャッフル配列を示す説明図である。
(第1コンテンツID決定処理)
まず、主記憶装置205を未使用領域リスト記憶手段として機能させた場合に、制御部230が行う第1コンテンツID決定処理について説明する。
まず、主記憶装置205を未使用領域リスト記憶手段として機能させた場合に、制御部230が行う第1コンテンツID決定処理について説明する。
この第1コンテンツID決定処理において、制御部230は、図11に示すように、まず、今回コンテンツ配信システムSに投入するコンテンツが最初のコンテンツであるか否かの判断を行う(ステップS1)。
このステップS1において制御部230は、最初のコンテンツであると判断した場合に(ステップS1:Yes)、処理をステップS6へ移し、最初のコンテンツでないと判断した場合に(ステップS1:No)、処理をステップS2へ移す。
ステップS6において制御部230は、図3(a)に示すように、ID空間(ここでは、コンテンツID空間となる。)からランダムにコンテンツID「1132」を決定し、その後、処理をステップS7へ移す。
また、ステップS2において制御部230は、使用済情報リストに基づいて一番大きな空き空間である最大未使用領域を求める処理を行う。
ここで、制御部230は、最大未使用領域判別手段として機能して、使用済情報リストを参照し、コンテンツIDとして使用している情報(番号)と、その情報(番号)より大きく、その情報(番号)に最も近いコンテンツIDとして使用している他の情報(番号)とを読み出し、これら二つの情報(番号)の大きい方の情報から小さい方の情報を減算することにより、一つの未使用領域に含まれる識別情報として使用されていない連続した情報(番号)の個数を算出する。
そして、最大未使用領域判別手段は、コンテンツID空間における全ての未使用領域に関してこの演算を行い、コンテンツID空間に存在する全ての未使用領域の中で識別情報として使用していない連続した情報の個数が最も多い空き領域である最大未使用領域を求める。
次に制御部230は、ステップS2で求めた最大未使用領域が複数あるか否かの判断を行い(ステップS3)、最大未使用領域が一つしかないと判断した場合に(ステップS3:No)、処理をステップS5へ移し、最大未使用領域が複数あると判断した場合に(ステップS3:Yes)、処理をステップS4へ移す。
ステップS5において、制御部230は、ステップS2で求めた最大未使用領域を半分にする情報(番号)をコンテンツデータに割り当てるコンテンツIDとして決定する。
たとえば、図3(b)に示すように、情報「3132」をコンテンツIDとして決定することにより、図3(a)に示す一つしかない最大未使用領域(1)を図3(b)に示す大きさの等しい二つの未使用領域(1)(2)に等分する。なお、ここで、未使用領域の大きさとは、コンテンツID空間において、その未使用領域を構成するコンテンツIDとして使用していない連続する情報(番号)の個数の多さのことである。
一方、ステップS4において、制御部230は、ステップS2で求めた大きさの等しい複数の最大未使用領域の中からランダムに一つの最大未使用領域を選択する処理を行い、その後、処理をステップS5へ移し、ステップS4でランダムに選択した一つの最大未使用領域を半分にする情報(番号)をコンテンツデータに割り当てるコンテンツIDとして決定するのである。
たとえば、図3(b)に示すように、大きさの等しい二つの最大未使用領域(1)(2)がある場合に、制御部230は、図3(b)に示す二つの最大未使用領域(1)(2)の中から一つの最大未使用領域(1)をランダムに選択する。
そして、制御部230は、図3(c)に示すように、コンテンツデータに割り当てるコンテンツIDとして情報「0132」を決定することにより、図3(b)に示すランダムに選択した最大未使用領域(1)を大きさの等しい二つの未使用領域に等分する。
ステップS5又はステップS6の後、制御部230は、ステップS7において使用済情報リストの更新処理を行った後、この第1コンテンツID決定処理を終了し、次に新たなコンテンツをコンテンツ配信システムSへ投入する際に、再度ステップS1から処理を開始する。
(第2コンテンツID決定処理)
次に、主記憶装置205を使用済情報リスト記憶手段として機能させた場合に、制御部230が行う第2コンテンツID決定処理について説明する。
次に、主記憶装置205を使用済情報リスト記憶手段として機能させた場合に、制御部230が行う第2コンテンツID決定処理について説明する。
この第2コンテンツID決定処理において、制御部230は、図12に示すように、まず、今回コンテンツ配信システムSに投入するコンテンツが最初のコンテンツであるか否かの判断を行う(ステップS11)。
このステップS11において制御部230は、最初のコンテンツであると判断した場合に(ステップS11:Yes)、処理をステップS16へ移し、最初のコンテンツでないと判断した場合に(ステップS11:No)、処理をステップS12へ移す。
ステップS16において制御部230は、図3(a)に示すように、ID空間(ここでは、コンテンツID空間となる。)からランダムにコンテンツID「1132」を決定し、その後、処理をステップS17へ移す。
また、ステップS12において制御部230は、最大未使用領域判別手段として機能して未使用領域リストを参照し、未使用領域リストの中で一番大きな空き空間である最大未使用領域を判別する処理を行う。
次に制御部230は、ステップS12で判別した最大未使用領域が複数あるか否かの判断を行い(ステップS13)、最大未使用領域が一つしかないと判断した場合に(ステップS13:No)、処理をステップS15へ移し、最大未使用領域が複数あると判断した場合に(ステップS13:Yes)、処理をステップS14へ移す。
ステップS15において、制御部230は、ステップS12で判別した最大未使用領域を半分にする情報(番号)をコンテンツデータに割り当てるコンテンツIDとして決定する。
たとえば、図3(b)に示すように、情報「3132」をコンテンツIDとして決定することにより、図3(a)に示す一つしかない最大未使用領域(1)を図3(b)に示す大きさの等しい二つの未使用領域(1)(2)に等分する。
一方、ステップS14において、制御部230は、ステップS12で判別した大きさの等しい複数の最大未使用領域の中からランダムに一つの最大未使用領域を選択する処理を行い、その後、処理をステップS15へ移し、ステップS14でランダムに選択した一つの最大未使用領域を半分にする情報(番号)をコンテンツデータに割り当てるコンテンツIDとして決定するのである。
たとえば、図3(b)に示すように、大きさの等しい二つの最大未使用領域(1)(2)がある場合に、制御部230は、図3(b)に示す二つの最大未使用領域(1)(2)の中から一つの最大未使用領域(1)をランダムに選択する。
そして、制御部230は、図3(c)に示すように、コンテンツデータに割り当てるコンテンツIDとして情報「0132」を決定することにより、図3(b)に示すランダムに選択した最大未使用領域(1)を大きさの等しい二つの未使用領域に等分する。
次に、ステップS17において制御部230は、未使用領域リストを修正する処理を行う。ここで、制御部230は、既にコンテンツIDとして使用している情報(番号)の中で、ステップS15又はステップS16で決定したコンテンツIDよりも大きく、ステップS15又はステップS16で決定したコンテンツIDに最も近い情報(番号)と、ステップS15又はステップS16で決定したコンテンツIDとの間に配列されているコンテンツIDとして使用していない情報(番号)の個数を、新たに未使用領域リストに追加する処理を行う。
そして、制御部230は、ステップS17の処理を終了すると、この第2コンテンツID決定処理を終了し、次に新たなコンテンツをコンテンツ配信システムSへ投入する際に、再度ステップS11から処理を開始する。
(第3コンテンツID決定処理)
次に、制御部230が行う第3コンテンツID決定処理について、図3と対応させながら具体的に説明する。
次に、制御部230が行う第3コンテンツID決定処理について、図3と対応させながら具体的に説明する。
上記第1及び第2コンテンツID決定処理では、最大未使用領域が複数ある場合に、複数の最大未使用領域の中からランダムに一つの最大未使用領域を選択するような処理を行ったが、この第3コンテンツID決定処理では、最大未使用領域が複数ある場合に、単に一つの最大未使用領域を選択するのではなく、後述のシャッフル配列を用いて一つの最大未使用領域を選択するようにしている。
なお、この第3コンテンツID決定処理では、コンテンツ配信システムSに最初に投入するコンテンツデータに割り当てるコンテンツIDを決定するところから説明を始めることとする。
この第3コンテンツID決定処理において、制御部230は、図13に示すように、まず、主記憶装置205の所定領域に初期設定として変数N=0、変数L=0という二つの変数を設定し(ステップS21)、その後、処理をステップS22へ移す(N=0、L=0)。
ここで、変数Nは、コンテンツデータに対して割り当てたコンテンツIDの個数を示す値であり、コンテンツIDを一つ決定する毎に1インクリメントされる。また、変数Lは、コンテンツID空間を等分する際のレベルを示す値であり、変数Nが2のL乗(N=2L)となる毎に1インクリメントされる。
次に、ステップS22において、制御部230は、図3(a)に示すように、コンテンツID空間の中からランダムに一つの情報「1132」を最初のコンテンツデータに割り当てるコンテンツID(基本ID)として決定し、その後、処理をステップS23へ移す。
次に、ステップS23において、制御部230は、ステップS22で1番目のコンテンツIDを決定したので、変数Nを1インクリメント(N=N+1)する処理を行い、その後処理をステップS24へ移す(N=1、L=0)。
次に、ステップS24において、制御部230は、図14に示すレベル確認処理を行い、その後、処理をステップS25へ移す。
このレベル確認処理において、制御部230は、図14に示すように、N=2Lであるか否かの判断を行い(ステップS41)、N=2Lであると判断した場合に(ステップS41:Yes)処理をステップS42へ移し、N=2Lでないと判断した場合に(ステップS41:No)、主記憶装置205の所定領域に返り値としてF(false)を記憶させ、その後、処理を図13に示すステップS25へ移す。
ステップS42において、制御部230は、Lを1インクリメント(L=L+1)する処理を行い、その後、主記憶装置205の所定領域に返り値としてT(True)を記憶させ、その後、処理を図13に示すステップS25へ移す。
ここでは、N=1、L=0であるため、N=2Lとなり、Lが1インクリメントされた後、処理が図13に示すステップS25へ移行する(N=1、L=1)。
次に、ステップS25において、制御部230は、主記憶装置205の所定領域に変数I=0という値を設定する処理を行い、その後、処理をステップS26へ移す(N=1、L=1、I=0)。ここで、変数Iは、後述するシャッフル配列の列番を示す値である。
次に、ステップS26において、制御部230は、レベルを示す変数LからコンテンツIDの空き空間である最大未使用領域を求める処理を行い、その後、処理をステップS27へ移す。
次に、ステップS27において、制御部230は、2(L-1)個のシャッフル配列を用意すると共に、このシャッフル配列をシャッフルする処理を行い、その後、処理をステップS28へ移す。ここでは、L=1であるため、シャッフル配列の個数は1個となり、シャッフル必要がない。
次に、ステップS28において、制御部230は、電源をOFFにする操作が為されたか否かの判断を行い、電源をOFFにする操作が為されたと判断した場合に(ステップS28:Yes)、この第3コンテンツID決定処理を終了する。
一方、制御部230は、電源をOFFにする操作が為されていないと判断した場合に(ステップS28:No)、処理をステップS29へ移す。
次に、ステップS29において、制御部230は、コンテンツIDの決定依頼があるか否かの判断を行う。すなわち、ここで制御部230は、本実施形態のコンテンツ配信システムSに、新たなコンテンツデータを投入するか否かの判断を行うのである。
そして、制御部230は、コンテンツIDの決定依頼があると判断した場合に(ステップS29:Yes)、処理をステップS30へ移し、コンテンツIDの決定依頼がないと判断した場合に(ステップS29:No)、処理をステップS28へ移し、次にコンテンツIDの決定依頼があるまでの間、ステップS28とステップS29の処理を繰り返し行う。
次に、ステップS30において、制御部230は、Nを1インクリメント(N=N+1)すると共に、Iを1インクリメント(I=I+1)する処理を行い、その後、処理をステップS31へ移す(N=2、L=1、I=1)。
次に、ステップS31において、制御部230は、シャッフル配列のI番目の最大未使用領域を半分に分ける情報(番号)をコンテンツIDとして決定する処理を行い、その後、処理を図14に示すレベル確認処理へ移す。
ここでは、先に説明したようにシャッフル配列の個数が1個であり、I=1であるため、必然的に一つの最大未使用領域が決定されることになる。具体的には、図3(a)に示すように、ステップS22で1番目のコンテンツID「1132」をランダムに決定した結果、必然的に一つの最大未使用領域(1)が決定されることになる。
そして、制御部230は、決定した最大未使用領域を半分に分ける情報(番号)を、ステップS29でコンテンツIDの決定依頼のあったコンテンツデータに割り当てるコンテンツIDとして決定する。具体的には、図3(b)に示すように、2番目のコンテンツIDとして情報「3132」を決定することにより、図3(a)に示す必然的に決定された一つの最大未使用領域(1)を、図3(b)に示すように、大きさの等しい二つの未使用領域(1)(2)に等分するのである。
次に、ステップS32におけるレベル確認処理において、制御部230は、図14に示すように、N=2Lであるか否かの判断を行い(ステップS41)、N=2Lであると判断した場合に(ステップS41:Yes)、処理をステップS42へ移し、N=2Lでないと判断した場合に(ステップS41:No)、主記憶装置205の所定領域に返り値としてFを記憶させ、その後、処理を図13に示すステップS33へ移す。
ステップS42において、制御部230は、Lを1インクリメント(L=L+1)する処理を行い、その後、主記憶装置205の所定領域に返り値としてTを記憶させ、その後、処理を図13に示すステップS33へ移す。
ここでは、N=2、L=1であるため、N=2Lとなり、Lが1インクリメントされて、制御部230は、返り値としてTを記憶させた後、処理が図13に示すステップS33へ移行する(N=2、L=2、I=1)。
次に、ステップS33において、制御部230は、返り値がTであるか否かの判断を行い、返り値がTであると判断した場合に(ステップS33:Yes)、処理をステップS34へ移して、シャッフル配列を削除する処理を行い、その後、処理をステップS25へ移す。
一方、返り値がTでない(Fである)と判断した場合に(ステップS33:No)、処理をステップS28へ移す。
その後、制御部230は、識別情報割当装置に電源が投入されている間、これらステップS25〜S34の処理を繰り返し行う。
以下、識別情報割当装置の電源をOFFにする操作が為されずに、順次コンテンツIDの割当依頼があり、コンテンツデータに割り当てるコンテンツIDを順次決定していく場合に、識別情報割当装置の制御部230が行う処理を説明する。
上記したように、ステップS31において、2番目のコンテンツIDを決定した後には、ステップS32において返り値としてTが記憶されることとなるので、処理がステップS33からステップS25へ移行することとなる。
このステップS25において、制御部は、変数Iをリセット(I=0とする)処理を行い、その後、処理をステップS26へ移す(N=2、L=2、I=0)。
次に、ステップS26において、制御部230は、レベルを示す変数LからコンテンツIDの空き空間である最大未使用領域を求める処理を行い、その後、処理をステップS27へ移す。
具体的には、ここで、図3(b)に示すように、大きさの等しい二つの最大未使用領域(1)(2)が求められることとなる。
次に、ステップS27において制御部230は、2(L-1)個のシャッフル配列を用意すると共に、このシャッフル配列をシャッフルする処理を行い、その後、処理をステップS28へ移す。ここでは、L=2であるため、シャッフル配列の個数は2個となり、このシャッフル配列をシャッフルする処理を行う。
具体的には、ここでのシャッフル配列のシャッフル結果は、図15(a)に示す二通りのシャッフル結果のうちのいずれか一方となる。なお、ここでは、シャッフル結果が図15(a)の1段目の結果((1)、(2))であったものとする。
ここで、電源をOFFにする操作が為されず、コンテンツIDの決定依頼があった場合に、制御部230は、処理をステップS28からS29を経てステップS30へ移す。
ここでのステップS30において、制御部230は、Nを1インクリメント(N=N+1)すると共に、Iを1インクリメント(I=I+1)する処理を行い、その後、処理をステップS31へ移す(N=3、L=2、I=1)。
次に、ここでのステップS31において、制御部230は、シャッフル配列のI番目の最大未使用領域を半分に分ける情報(番号)をコンテンツIDとして決定する処理を行い、その後、処理を図14に示すレベル確認処理へ移す。
ここでは、I=1であるため、図15(a)の1段目のシャッフル結果における1番目の最大未使用領域(1)が選択され、この最大未使用領域(1)を半分に分ける情報(番号)をコンテンツIDとして決定する。
具体的には、図3(c)に示すように、3番目のコンテンツIDとして情報「0132」を決定することにより、図3(b)における最大未使用領域(1)を図3(c)に示すように、大きさの等しい二つの最大未使用領域に等分する。
次に、ステップS32において、制御部230は、レベル確認処理を行う。ここでのレベル確認処理では、N=3、L=3であるため、図14に示すステップS41の処理において、N=2Lとならず(ステップS41:No)、その後、返り値としてFを記憶させて処理を図13に示すS33へ移す(N=3、L=2、I=1)。
次に、ステップS33において制御部230は、返り値の判断を行うが、ここでは返り値がF(ステップS33:No)であるため、処理がステップS28へ移行することとなる。
ここで、電源をOFFにする操作が為されず、コンテンツIDの決定依頼があった場合に、制御部230は、処理をステップS28からS29を経てステップS30へ移す。
ここでのステップS30において、制御部230は、Nを1インクリメント(N=N+1)すると共に、Iを1インクリメント(I=I+1)する処理を行い、その後、処理をステップS31へ移す(N=4、L=2、I=2)。
次に、ここでのステップS31において、制御部230は、シャッフル配列のI番目の最大未使用領域を半分に分ける情報(番号)をコンテンツIDとして決定する処理を行い、その後、処理を図14に示すレベル確認処理へ移す。
ここでは、I=2であるため、図15(a)の1段目のシャッフル結果における2番目の最大未使用領域(2)が選択され、この最大未使用領域(2)を半分に分ける情報(番号)をコンテンツIDとして決定する。
具体的には、図3(d)に示すように、4番目のコンテンツIDとして、情報「2132」を決定することにより、図3(c)における最大未使用領域(2)を図3(d)に示すように、大きさの等しい二つの最大未使用領域に等分する。
その結果、図3(d)に示すように、コンテンツID空間が大きさの等しい四つの最大未使用領域(1)(2)(3)(4)に等分されることとなる。
次に、ステップS32において、制御部230は、レベル確認処理を行う。ここでのレベル確認処理では、N=4、L=2であるため、図14に示すステップ41の処理において、N=2Lとなり(ステップS41:Yes)、その後、処理をステップS42へ移し、変数Lを1インクリメント(L=L+1)する処理を行って、
返り値としてTを記憶させた後、処理を図13に示すS33へ移す(N=4、L=3、I=2)。
返り値としてTを記憶させた後、処理を図13に示すS33へ移す(N=4、L=3、I=2)。
次に、ステップS33において制御部230は、返り値の判断を行うが、ここでは返り値がT(ステップS33:Yes)であるため、処理がステップS25へ移行することとなる。
そして、このステップS25において、制御部230は、変数Iをリセット(I=0とする)処理を行い、その後、処理をステップS26へ移す(N=4、L=3、I=0)。
次に、ステップS26において、制御部230は、レベルを示す変数LからコンテンツIDの空き空間である最大未使用領域を求める処理を行い、その後、処理をステップS27へ移す。
具体的には、ここで、図3(d)に示すように、大きさの等しい四つの最大未使用領域(1)(2)(3)(4)が求められることとなる。
次に、ステップS27において制御部230は、2(L-1)個のシャッフル配列を用意すると共に、このシャッフル配列をシャッフルする処理を行い、その後、処理をステップS28へ移す。ここでは、L=3であるため、シャッフル配列の個数は4個となり、このシャッフル配列をシャッフルする処理を行う。
具体的には、ここでのシャッフル配列のシャッフル結果は、図15(b)に示す24通りのシャッフル結果のうちのいずれか一方となる。なお、ここでは、シャッフル結果が図15(a)の1段目の結果((1)、(2)、(3)、(4))であったものとする。
その後、制御部230は、このシャッフル結果を参照しながら、図3(d)に示す最大未使用領域(1)〜(4)をそれぞれ大きさの等しい二つの未使用領域にする情報をコンテンツIDとして順次決定する。
このようにして、制御部230は、第3コンテンツID割当処理を実行するので、図3に示すように、コンテンツIDを順次決定していくにつれて、コンテンツID領域が2のL乗等分されていき、コンテンツID空間にさほど偏りが生じることなくコンテンツIDを分散させることができる。
なお、本実施形態では、識別情報割当装置の制御部230が行う識別情報割当処理として、制御部230が、コンテンツデータに割り当てるコンテンツIDを決定する処理を例に挙げて説明したが、各ノード装置2に割り当てるノードIDを決定する場合も同様の処理によって決定することができる。
S コンテンツ配信システム
2 ノード装置
4 コンテンツ投入装置
5 コンタクト先紹介装置
230 制御部
205 主記憶装置
2 ノード装置
4 コンテンツ投入装置
5 コンタクト先紹介装置
230 制御部
205 主記憶装置
Claims (9)
- ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能としたコンテンツ配信システムにおける前記ノード装置又は前記コンテンツデータを対象として、識別情報を割り当てる識別情報割当装置において、
前記識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、前記識別情報として使用していない前記情報が最も多く配列されている最大未使用領域を判別する最大未使用領域判別手段と、
前記最大未使用領域判別手段により判別した前記最大未使用領域の前記情報のうち、前記識別情報として使用することにより、前記最大未使用領域における前記情報の配列を2つの未使用領域に分割する前記情報を前記識別情報候補として選択する識別情報候補選択手段と、
前記識別情報候補選択手段により選択した前記識別情報候補を、未だ前記識別情報を割り当てていない割当対象に割り当てる識別情報割当手段と、
を有することを特徴とする識別情報割当装置。 - 前記識別情報候補選択手段が選択する前記識別情報候補は、前記最大未使用領域判別手段により判別した前記最大未使用領域における前記情報の配列を2つの未使用領域に等分する情報であることを特徴とする請求項1に記載の識別情報割当装置。
- 前記識別情報候補選択手段は、
前記情報領域の中で、前記識別情報として使用している前記情報がない場合に、前記情報領域の中から、前記識別情報候補としてランダムに1つの前記情報を選択することを特徴とする請求項1又は請求項2に記載の識別情報割当装置。 - 前記最大未使用領域判別手段は、前記最大未使用領域が複数存在した場合に、複数の前記最大未使用領域からランダムに1つの最大未使用領域を選択することを特徴とする請求項1〜3のいずれか1項に記載の識別情報割当装置。
- 前記情報領域の中で、前記識別情報として既に使用した前記情報のリストである使用済情報リストを記憶する使用済情報リスト記憶手段を有し、
前記最大未使用領域判別手段は、前記使用済情報リストを用いて、前記最大未使用領域を判別することを特徴とする請求項1〜4のいずれか1項に記載の識別情報割当装置。 - 前記情報領域における未使用領域を判別する未使用領域判別手段と、
前記未使用領域判別手段により判別した前記未使用領域のリストである未使用領域リストを記憶する未使用領域リスト記憶手段とを有し、
前記最大未使用領域判別手段は、前記未使用領域リストを用いて、前記最大未使用領域を判別することを特徴とする請求項1〜4のいずれか1項に記載の識別情報割当装置。 - コンピュータを、請求項1〜6のいずれかに記載の識別情報割当装置における各手段として機能させるためのプログラム。
- ネットワークを介してそれぞれ接続された複数のノード装置と、前記複数のノード装置又は複数種類のコンテンツデータを対象として、識別情報を割り当てる識別情報割当装置とを有し、前記複数のノード装置間で互いに前記コンテンツデータを送受信することにより、前記ノード装置に前記コンテンツデータが配信されるコンテンツ配信システムにおいて、
前記識別情報割当装置は、
前記識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、前記識別情報として使用していない前記情報が最も多く配列されている最大未使用領域を判別する最大未使用領域判別手段と、
前記最大未使用領域判別手段により判別した前記最大未使用領域の前記情報のうち、前記識別情報として使用することにより、前記最大未使用領域における前記情報の配列を2つの未使用領域に分割する前記情報を前記識別情報候補として選択する識別情報候補選択手段と、
前記識別情報候補選択手段により選択した前記識別情報候補を、未だ前記識別情報を割り当てていない割当対象に割り当てる識別情報割当手段と、
を有することを特徴とするコンテンツ配信システム。 - ネットワークを介してそれぞれ接続された複数のノード装置と、前記複数のノード装置又は複数種類のコンテンツデータを対象として識別情報を割り当てる識別情報割当装置とを有し、前記複数のノード装置間で互いに前記コンテンツデータを送受信することにより、前記ノード装置に前記コンテンツデータが配信されるコンテンツ配信システムにおける前記識別情報の割当方法において、
前記識別情報として使用可能な複数の情報が所定の規則に従って配列された情報領域の中で、前記識別情報として使用していない前記情報が最も多く配列されている最大未使用領域を判別するステップと、
前記最大未使用領域の前記情報のうち、前記識別情報として使用することにより、前記最大未使用領域における前記情報の配列を2つの未使用領域に分割する前記情報を前記識別情報候補として選択するステップと、
前記識別情報候補を、未だ前記識別情報を割り当てていない割当対象に割り当てるステップと、
を有することを特徴とする識別情報割当方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006270133A JP2008090564A (ja) | 2006-09-29 | 2006-09-29 | コンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006270133A JP2008090564A (ja) | 2006-09-29 | 2006-09-29 | コンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008090564A true JP2008090564A (ja) | 2008-04-17 |
Family
ID=39374643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006270133A Pending JP2008090564A (ja) | 2006-09-29 | 2006-09-29 | コンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008090564A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012014494A (ja) * | 2010-07-01 | 2012-01-19 | Kddi Corp | ピア・ツー・ピア・ネットワークにおける負荷分散方法及び該方法で使用するノード装置 |
JP2012048424A (ja) * | 2010-08-25 | 2012-03-08 | Nippon Telegr & Teleph Corp <Ntt> | 識別子割当て方法及びプログラム |
JP2015203797A (ja) * | 2014-04-15 | 2015-11-16 | 日本電気株式会社 | オブジェクト配置装置、オブジェクト配置方法、及び、プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004266796A (ja) * | 2002-09-11 | 2004-09-24 | Microsoft Corp | 効率的な分散データ構造を備えた改良されたオーバレイネットワークを生成するシステムおよび方法 |
JP2005159516A (ja) * | 2003-11-21 | 2005-06-16 | Brother Ind Ltd | Id番号付与方法およびid番号付与装置 |
-
2006
- 2006-09-29 JP JP2006270133A patent/JP2008090564A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004266796A (ja) * | 2002-09-11 | 2004-09-24 | Microsoft Corp | 効率的な分散データ構造を備えた改良されたオーバレイネットワークを生成するシステムおよび方法 |
JP2005159516A (ja) * | 2003-11-21 | 2005-06-16 | Brother Ind Ltd | Id番号付与方法およびid番号付与装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012014494A (ja) * | 2010-07-01 | 2012-01-19 | Kddi Corp | ピア・ツー・ピア・ネットワークにおける負荷分散方法及び該方法で使用するノード装置 |
JP2012048424A (ja) * | 2010-08-25 | 2012-03-08 | Nippon Telegr & Teleph Corp <Ntt> | 識別子割当て方法及びプログラム |
JP2015203797A (ja) * | 2014-04-15 | 2015-11-16 | 日本電気株式会社 | オブジェクト配置装置、オブジェクト配置方法、及び、プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4640307B2 (ja) | コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム | |
JP4671306B2 (ja) | ピアツーピア・オーバレイ・ネットワークにおける同報通信メッセージング | |
KR101095092B1 (ko) | 피어투피어 네트워크에서 복수의 수신자로의 부하 분산된 데이터 분배 | |
US20090169021A1 (en) | Content distribution system, information processing method and terminal apparatus in content distribution system, and recording medium on which is recorded program thereof | |
JP2006252532A (ja) | 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等 | |
WO2004110020A1 (en) | System and method for notification within a decentralized network | |
WO2007119413A1 (ja) | 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等 | |
WO2007083531A1 (ja) | コンテンツ配信システム、ノード装置及びその情報処理方法並びにそのプログラムを記録した記録媒体 | |
JP2007053662A (ja) | 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム | |
JP2006191489A (ja) | ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等 | |
WO2006103800A1 (ja) | 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム | |
JP6580212B1 (ja) | 通信装置、通信方法、および、通信プログラム | |
JP2008090564A (ja) | コンテンツ配信システム及び同システムにおける識別情報割当方法及び同システムにおける識別情報割当装置及び同装置のプログラム | |
JP5370269B2 (ja) | 分散保存システム、分散保存システムの接続情報通知方法及びプログラム | |
US20090003244A1 (en) | Information communication system, information communication method, node device included in information communication system and recording medium recording information process program | |
JP4877107B2 (ja) | 情報配信システムにおける端末装置及び情報処理プログラム、並びに端末装置の情報処理方法 | |
JP4622755B2 (ja) | 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム | |
JP4797679B2 (ja) | コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム | |
JP2008294648A (ja) | 情報配信システム、同システムに用いる端末装置及びプログラム、並びに情報処理方法 | |
JP2007336396A (ja) | コンテンツ配信システム、コンテンツ配信方法、端末装置及びそのプログラム | |
JP5168055B2 (ja) | 通信システム、端末装置及びコンテンツ情報取得方法 | |
JP2008067089A (ja) | コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法 | |
JP5034822B2 (ja) | 通信時刻を決定する端末装置、通信時刻決定方法及びプログラム | |
JP6860045B2 (ja) | 通信装置、通信方法、および、通信プログラム | |
JP2009129408A (ja) | ネットワークシステム及び更新情報の共有方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090402 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110510 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110913 |