JP2009230686A - コンテンツ管理サーバ及びコンテンツ管理プログラム - Google Patents
コンテンツ管理サーバ及びコンテンツ管理プログラム Download PDFInfo
- Publication number
- JP2009230686A JP2009230686A JP2008078345A JP2008078345A JP2009230686A JP 2009230686 A JP2009230686 A JP 2009230686A JP 2008078345 A JP2008078345 A JP 2008078345A JP 2008078345 A JP2008078345 A JP 2008078345A JP 2009230686 A JP2009230686 A JP 2009230686A
- Authority
- JP
- Japan
- Prior art keywords
- host
- content management
- content
- server
- management server
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】DHTを使用したP2Pのコンテンツ共有システムにおいて、オーバーレイネットワーク上で管理するコンテンツの管理割当の不公平を是正することができるコンテンツ管理サーバ及びコンテンツ管理プログラムを提供する。
【解決手段】コンテンツ管理サーバ1は、ホストIDによってコンテンツ管理サーバ1同士を識別するオーバーレイネットワークにおいて、少なくとも1以上の他のコンテンツ管理サーバ1と協同して、複数のコンテンツを管理するものにおいて、ホストID生成手段15と、ホスト参加処理手段11と、検索用ホストリスト記憶手段19と、を備える。
【選択図】図1
【解決手段】コンテンツ管理サーバ1は、ホストIDによってコンテンツ管理サーバ1同士を識別するオーバーレイネットワークにおいて、少なくとも1以上の他のコンテンツ管理サーバ1と協同して、複数のコンテンツを管理するものにおいて、ホストID生成手段15と、ホスト参加処理手段11と、検索用ホストリスト記憶手段19と、を備える。
【選択図】図1
Description
本発明は、ネットワーク上の複数のサーバによって、コンテンツを分散して管理するコンテンツ管理サーバ及びコンテンツ管理プログラムに関する。
従来、コンテンツをネットワーク上の複数のサーバによって管理するコンテンツ分散共有技術では、ネットワークで接続された各サーバが保有する映像、音声、データ等のファイルであるコンテンツを、当該ネットワーク上において、ユーザが使用するユーザ端末で利用できるようになっている。このため、コンテンツ分散共有技術では、ユーザ端末により、ユーザの所望のコンテンツがどのサーバに保存されているのかを高速に発見する方法が必要となる。
そして、コンテンツ分散共有技術は、中央集権型と分散型とに大別される。
中央集権型は、各サーバが保有するコンテンツの情報と、当該サーバのアドレスとをメタデータサーバと呼ばれる特定のコンテンツ管理用サーバに登録しておき、ユーザはユーザ端末によりメタデータサーバに問い合わせることによって、所望のコンテンツを発見できるようにしたものである。
中央集権型は、各サーバが保有するコンテンツの情報と、当該サーバのアドレスとをメタデータサーバと呼ばれる特定のコンテンツ管理用サーバに登録しておき、ユーザはユーザ端末によりメタデータサーバに問い合わせることによって、所望のコンテンツを発見できるようにしたものである。
分散型は、中央集権型のメタデータサーバに相当するものが存在せず、ネットワークに接続されるサーバにより構成されるオーバーレイネットワーク上で、各サーバが分散してコンテンツを管理するようにしたものである。
そして、中央集権型は、コンテンツ管理用サーバに登録されるサーバの数や、共有するコンテンツの数や、利用するユーザの数の増大により、当該コンテンツ管理用サーバの負荷が大きくなるため、小規模な広域分散共有に適しており、逆に、分散型は不特定多数の大規模な広域分散共有に適している。
分散型のコンテンツ共有方法として、P2P(Peer−to−Peer)型のコンテンツ共有方法がある。
P2P型のコンテンツ共有方法は、非構造型と構造型とに分類されるが、ここでは、本発明に関係するDHT(Distributed Hash Table)を使用した構造型P2Pによるコンテンツ共有方法について説明する。
P2P型のコンテンツ共有方法は、非構造型と構造型とに分類されるが、ここでは、本発明に関係するDHT(Distributed Hash Table)を使用した構造型P2Pによるコンテンツ共有方法について説明する。
DHTを使用したP2Pでは、ネットワークに接続されるサーバによりオーバーレイネットワークが構成される。ネットワーク接続されるサーバは、当該サーバのアドレスから、予め決められた、あるハッシュ関数(例えば、SHA−1、MD−5)により、ホストIDを生成し、このホストIDによりオーバーレイネットワーク内では各サーバを識別している。
そして、DHTを使用したP2Pでは、各サーバが保有するコンテンツについて、例えば、当該コンテンツのファイル名から、同様のハッシュ関数を使用してコンテンツIDを生成している。そして、オーバーレイネットワーク内では、コンテンツIDに近い値のホストIDを持つサーバが当該コンテンツを管理している。
ここで、コンテンツの管理とは、コンテンツIDと当該コンテンツを保有するサーバの情報(アドレスやポート番号)を保存することである。そして、コンテンツを利用したいユーザは、ユーザ端末によって、利用したいコンテンツのコンテンツIDから当該コンテンツIDに近い値のホストIDを持つサーバを、オーバーレイネットワーク上で発見し、当該コンテンツを保有しているサーバのアドレスを得ることができる。
DHTを使用したP2Pのコンテンツ共有方法の代表的な方法として、Chord(非特許文献1を参照)がある。このChordについて、図10を参照して説明する。Chordでは、図10に示したように、node ID(「A」、「B」、「C」、「D」:各サーバのホストID)を2次元の円周上に時計回りに並べて、オーバーレイネットワークを構成している。ここで、Chordにおいて、自ホストIDの時計回りに隣接するサーバをsuccessorと呼称し、逆方向に隣接するサーバをpredecessorと呼称する。
また、図10に示したように、Chordにおいて、ファイルidがida、idb、idc、iddのそれぞれのファイルの時計回りに近いnode ID「A」、「B」、「C」、「D」のサーバによって管理されている。なお、「a」、「b」、「c」、「d」は各サーバで保持しているファイル名を示している。
つまり、このChordでは、それぞれのファイルidに時計回りに近いnode ID(ホストID)が当該ファイルid(コンテンツID)の付けられたファイルを管理している。
そして、Chordでは、ユーザ端末に公開するコンテンツは、当該コンテンツIDに近い値(時計回りに近い)のホストIDを持つサーバにより管理され、実際に公開しているコンテンツを保持しているサーバは、オーバーレイネットワーク上で当該コンテンツを管理するサーバとは無関係である。また、各サーバは、successor及びpredecessorのホストIDを保持すると共に、フィンガー・テーブルと呼ばれる、他のサーバに検索要求を転送する際に用いる検索用テーブルを保持している。このフィンガー・テーブルは、ホストIDのビット長をmとした場合、m個のテーブルを保持することとしている。自サーバのホストIDをkとした場合、フィンガー・テーブルのi番目のテーブルには、次の数式(1)で示すホストIDが保存されている。
table[i]=successor((k+2i)(modulo2m))
・・・数式(1)
・・・数式(1)
この数式(1)において、“modulo”とは、合同式を表しており、ここでは、successorのホストIDが、k+2iを2mで割ったときの剰余に等しいことを示している。この数式(1)では、他のサーバを検索する際の範囲が、2mの空間で、1/2の距離、1/4の距離、1/8の距離、・・・という範囲で検索することに相当している。
そして、検索要求を受けたサーバは、各サーバが保存するフィンガー・テーブルから、検索要求のコンテンツIDに近い値のホストIDを持つサーバに検索要求を転送する。これによって、オーバーレイネットワークに接続されているサーバ数をNとすると、検索要求を行ったサーバのホストIDに近い値のホストIDを持つサーバを発見するまでの転送回数は平均log2Nとなる。
また、P2Pのコンテンツ共有方法の他の方法として、Pastry(非特許文献2を参照)やTapestry(非特許文献3を参照)がある。検索用テーブルとして、Chordでは2i単位の距離を、これらPastryやTapestryでは、bi単位(例えば、b=16)にすることで、Chordに比較して、当該検索用テーブルを小さくすることができると共に、高速に他のサーバを検索できるようにしたものである。
これらPastryやTapestryにおける転送回数は平均logbNとなる。また、Pastryでは、ホストIDを保持する隣接サーバの範囲を広げることで、近隣のサーバを検索する検索効率の改善を行っている。
さらに、オーバーレイネットワークにおいて、オーダー(1)、すなわち、転送回数1回で他のサーバの検索を可能にする方法として、OneHop(非特許文献4を参照)がある。このOneHopでは、オーバーレイネットワークに接続するすべてのサーバのホストIDを、すべてのサーバが保持しており、各サーバが保持する検索用テーブルのサイズが大きくなるが、オーダー(1)での検索が可能となっている。
また、OneHopでは、サーバの接続(参加)や離脱を、オーバーレイネットワークのすべてのサーバに通知する必要があるため、図11に示すように、オーバーレイネットワークを均等にk個(ここでは、円を4等分した4個)の領域(90度の扇形)に分割し、各領域に存在するサーバの中で、Slice Leaderを決定している。さらに、k個に分割された領域内をs個(ここでは、90度の扇形を3等分した3個)の領域(30度の扇形)に分割し、各領域に存在するサーバの中で、Unit Leaderを決定している。
そして、OneHopでは、サーバの接続(参加)や離脱を検知したサーバ(通知元:△)は、Slice Leader(同一領域内の○)に通知し(矢印1)、通知を受けたSlice Leaderは、他のSlice Leader(他の領域の○)に通知する(矢印2)。そして、Slice Leaderは、自領域内のUnit Leader(Slice Leaderが属する自領域内の□)に通知されたことを通知する(矢印3)。このように、OneHopでは、Slice LeaderからUnit Leaderへと通知する階層的構造により、サーバの接続や離脱等の情報をオーバーレイネットワーク内のすべてのサーバに通知する。
以上説明したように、DHTを使用したP2Pのコンテンツ共有方法では、サーバの接続(参加)や離脱があっても、オーバーレイネットワークの階層的な構造を保つ必要がある。このため、各サーバはStabilizationと呼ばれる処理を行っている。このStabilizationでは、successor、predecessor、各サーバが保持する検索用テーブル等に記録されたサーバに対して、生存確認用のパケットを定期的に送信することで、サーバの接続や離脱を検知して、各サーバが保持する検索用テーブルのメンテナンス(更新)を行っている。
また、DHTを使用したP2Pのコンテンツ共有方法で構築されるオーバーレイネットワークは、サーバが接続される物理ネットワークとは無関係に構築される。このため、オーバーレイネットワーク上では隣接しているサーバであっても、物理ネットワーク上では、遠距離に位置している場合があり、遠距離に位置するサーバの場合、多くの検索用パケットやネットワーク維持用パケットが、物理ネットワーク上で送信されてしまうという問題がある。また、物理ネットワーク上では遠距離に位置しているため、パケットの到着遅延や消失の割合が大きくなるという問題がある。
I.Stoica et al,"Chord:A Scalable Peer−to−peer Look up Service for Internet Applications" A.Rowstron et al,"Pasrty:Scalable,decentralized object location and routing for large−scale peer−to−peer systems" B.Y.Zhao et al,"Tapestry:An Infrastructure for Fault−tolerant Wide−area Location and Routing" A.Gupta,et al、"One Hop Lookups for Peer−to−Peer Overlays"
I.Stoica et al,"Chord:A Scalable Peer−to−peer Look up Service for Internet Applications" A.Rowstron et al,"Pasrty:Scalable,decentralized object location and routing for large−scale peer−to−peer systems" B.Y.Zhao et al,"Tapestry:An Infrastructure for Fault−tolerant Wide−area Location and Routing" A.Gupta,et al、"One Hop Lookups for Peer−to−Peer Overlays"
しかしながら、DHTを使用したP2Pのコンテンツ共有方法で用いられるハッシュ関数により出力されるホストID又はコンテンツIDは、一般にハッシュ空間上で均等となる値が生成される。このため、オーバーレイネットワークに多数のコンテンツを蓄積するサーバと、少数のコンテンツを蓄積するサーバとが接続された(参加した)場合、それぞれのサーバが管理するコンテンツの数は、参加しているサーバの数により均等に分割したものとなる。つまり、各サーバが蓄積しているコンテンツ数の多寡に拘わらず、各サーバが管理するコンテンツ数は、コンテンツ数の合計をサーバ数で除算した数(平均値)となる。
この結果、図12に示すように、多数のコンテンツを公開するサーバでは、管理するコンテンツの数が公開(蓄積)しているコンテンツの数に比べて少なくなる。逆に、少数のコンテンツを公開するサーバでは、管理するコンテンツの数が公開(蓄積)しているコンテンツの数に比べて多くなる。この結果、各サーバにおいて、コンテンツの管理割当が不公平になるという問題がある。
一般に、多数のコンテンツを公開(蓄積)しているサーバはCPU性能が高く、少数のコンテンツを公開(蓄積)しているサーバはCPU性能が低い場合が多いため、コンテンツの管理割当が不公平な場合、コンテンツをサーバ間で共有して管理するシステムにおいて、各サーバの性能差により、サーバ間で均等にユーザ端末からの要求を処理することができず、安定性が低下するおそれがある。例えば、多数のコンテンツを公開しているサーバに、ユーザ端末からの要求が集中した場合、実際にコンテンツを管理しているのは、少数のコンテンツを公開しているサーバであるので、処理がさばききれないと言う事態が生じる。
さらに、従来のホストIDの付与方法の問題点について、図13を参照して説明する。この図13において、「○」がホストIDを示し、「●」がコンテンツIDを示し、図中、右側の3つのホストIDをまとめてαとし、左側の1つのホストIDをまとめてβとする。そして、この図13に示すように、物理ネットワーク上で近距離のサーバ、すなわち、αの3つのホストIDは、オーバーレイネットワーク上でもそれぞれ近距離になるように配置され、βの1つのホストIDは、オーバーレイネットワーク上ではαからすると遠距離に配置される。この結果、特定の地域に多くのサーバが集中している場合には、特定の地域から多くのコンテンツが公開されることになる。そして、公開されたコンテンツIDはハッシュ関数により、オーバーレイネットワーク上に均等に配置されるため、公開されたコンテンツは、大局的に見ると、サーバが参加している地域ごとに均等に管理することになる。すなわち、α、βで公開しているのはそれぞれ8個のコンテンツ(コンテンツID)であり、αからすれば、3つのホストID(3台のサーバ)によって8個のコンテンツを管理しているが、βからすれば、1つのホストID(1台のサーバ)によって8個のコンテンツを管理していることになる。このため、従来のホストIDの付与方法では、コンテンツの管理割当の不公平性はさらに増加することになる。
従来のホストIDの付与方法を、例えば、放送局において、コンテンツの共有に利用した場合では、一般に都心のセンター局に多数のサーバが配置され、そこから多数のコンテンツが公開されており、地方のローカル局に少数のサーバが配置され、そこから少数のコンテンツが公開されている。しかし、この場合、センター局のコンテンツの多くを、ローカル局のサーバが管理する状態になってしまう。すなわち、図13を参照して説明したように、多数のサーバが管理するコンテンツ数(センター局で管理するコンテンツ数)と、少数のサーバが管理するコンテンツ数(ローカル局で管理するコンテンツ数)とが均等に割り当てられてしまうため、少数のサーバが管理するコンテンツ数は、1台当たりのサーバに換算すると、多数のサーバが管理するコンテンツ数よりも多くなってしまう。
そこで、本発明では、前記した問題を解決し、DHTを使用したP2Pのコンテンツ共有システムにおいて、オーバーレイネットワーク上において、管理するコンテンツの管理割当の不公平を是正することができるコンテンツ管理サーバ及びコンテンツ管理プログラムを提供することを目的とする。
前記課題を解決するため、請求項1に記載のコンテンツ管理サーバは、ホストIDによってコンテンツ管理サーバ同士を識別するオーバーレイネットワークであって、少なくとも1以上の他のコンテンツ管理サーバと協同して、複数のコンテンツを管理するコンテンツ管理サーバにおいて、ホストID生成手段と、ホスト参加処理手段と、検索用ホストリスト記憶手段と、を備え、前記ホストID生成手段は、前記オーバーレイネットワークにおいて公開するコンテンツのうちの所定数のコンテンツごとに、前記ホストIDとは特定のビットが異なるビット列を有する仮想ホストIDを生成し、前記検索用ホストリスト記憶手段は、前記仮想ホストIDと前記サーバアドレスとを対応付けた前記検索用ホストリストを記憶すること、を特徴とする。
かかる構成によれば、コンテンツ管理サーバは、ホストID生成手段によって、各コンテンツ管理サーバのオーバーレイネットワークにおけるサーバアドレスと予め設定したハッシュ関数とに基づいて、ホストIDを生成する。そして、コンテンツ管理サーバは、ホスト参加処理手段によって、ホストID生成手段で生成されたホストIDとサーバアドレスとを、他のコンテンツ管理サーバに通知することで、オーバーレイネットワークに、該当する当該コンテンツ管理サーバの登録を行う。また、コンテンツ管理サーバは、検索用ホストリスト記憶手段に、ホストID生成手段で生成された仮想ホストIDとサーバアドレスとを対応付けた検索用ホストリストを記憶する。このようにコンテンツ管理サーバでは、公開するコンテンツ数が増加しても、ホストID生成手段によって、仮想ホストIDを生成することで、当該コンテンツを管理するサーバを仮想的に設定することができる。
請求項2に記載のコンテンツ管理サーバは、請求項1に記載のコンテンツ管理サーバにおいて、ホストID生成手段が、物理ネットワーク上で所定距離内にあるコンテンツ管理サーバ同士に同一のIDを割り当てた位置識別IDを、前記ホストIDの特定のビットに割り当てることで、物理ネットワーク上におけるコンテンツ管理サーバ間の距離を前記オーバーレイネットワーク上におけるコンテンツ管理サーバ間の距離に反映させ、管理用ホストリスト記憶手段と、スタビライゼーション処理手段と、を備えることを特徴とする。
かかる構成によれば、コンテンツ管理サーバは、管理用ホストリスト記憶手段に、ホストID生成手段で生成したホストIDに位置識別IDを特定のビットに割り当てたホストIDとサーバアドレスとを対応付けた管理用ホストリストを記憶し、スタビライゼーション処理手段によって、オーバーレイネットワークにおいて、管理用ホストリスト記憶手段に記憶されている管理用ホストリストに存在するホストIDのコンテンツ管理サーバ宛に送信したパケットの返信の有無によって、各コンテンツ管理サーバが現在接続されているかどうかの確認を行う。このように、位置識別IDによって、所定距離内にあるコンテンツ管理サーバが判明することになり、同一の位置識別IDであれば、所定距離内、例えば、同一の建物内や地域内にコンテンツ管理サーバが存在していることになる。
請求項3に記載のコンテンツ管理プログラムは、ホストIDによってコンテンツ管理サーバ同士を識別するオーバーレイネットワークにおいて、少なくとも1以上の他のコンテンツ管理サーバと協同して、複数のコンテンツを管理するために、検索用ホストリスト記憶手段を備えたコンピュータを、ホストID生成手段、ホスト参加処理手段、として機能させ、前記ホストID生成手段が、前記オーバーレイネットワークにおいて公開するコンテンツのうちの所定数のコンテンツごとに、前記ホストIDとは特定のビットが異なるビット列を有する仮想ホストIDを生成し、前記検索用ホストリスト記憶手段は、前記ホストIDと前記サーバアドレスと対応付けたと共に前記仮想ホストIDと前記サーバアドレスとを対応付けた前記検索用ホストリストを記憶することを特徴とする。
かかる構成によれば、コンテンツ管理プログラムは、ホストID生成手段によって、各コンテンツ管理サーバのオーバーレイネットワークにおけるサーバアドレスと予め設定したハッシュ関数とに基づいて、ホストIDを生成する。そして、コンテンツ管理プログラムは、ホスト参加処理手段によって、ホストID生成手段で生成されたホストIDとサーバアドレスとを、他のコンテンツ管理サーバに通知することで、オーバーレイネットワークに、当該コンテンツ管理サーバの登録を行う。
請求項1、3に記載の発明によれば、コンテンツ管理サーバが管理するコンテンツの所定数ごとに、仮想ホストIDを生成することで、実際に公開しているコンテンツ数が増加するほど、当該仮想ホストIDにより管理するコンテンツ数も増加させることができるので、オーバーレイネットワーク上において、管理するコンテンツの管理割当の不公平を是正することができる。
請求項2に記載の発明によれば、オーバーレイネットワークにおいて、コンテンツ管理サーバが現在接続されているかどうかの確認を行う際に、管理用ホストリスト記憶手段に記憶されているホストIDのコンテンツ管理サーバ宛にパケットを送信しているので、物理的に所定距離内にあるコンテンツ管理サーバに対して行うことができ、送受信するパケット数を減少させることができる。
次に、本発明の実施形態について、適宜、図面を参照しながら詳細に説明する。
(コンテンツ管理サーバの構成)
図1はコンテンツ管理サーバのブロック図である。図1に示すように、コンテンツ管理サーバ1は、ネットワークを介し他のコンテンツ管理サーバ1と協同して複数のコンテンツを管理すると共に、ユーザが使用するユーザ端末2からの要求に従って管理しているコンテンツを送信するもので、パケット送受信手段3と、スタビライゼーション処理手段5と、ネットワーク管理用パケット処理手段7と、検索用パケット処理手段9と、ホスト参加処理手段11と、コンテンツ登録処理手段13と、ホストID生成手段15と、管理用ホストリスト記憶手段17と、検索用ホストリスト記憶手段19と、コンテンツ管理情報記憶手段21と、コンテンツ蓄積手段23と、を備えている。
(コンテンツ管理サーバの構成)
図1はコンテンツ管理サーバのブロック図である。図1に示すように、コンテンツ管理サーバ1は、ネットワークを介し他のコンテンツ管理サーバ1と協同して複数のコンテンツを管理すると共に、ユーザが使用するユーザ端末2からの要求に従って管理しているコンテンツを送信するもので、パケット送受信手段3と、スタビライゼーション処理手段5と、ネットワーク管理用パケット処理手段7と、検索用パケット処理手段9と、ホスト参加処理手段11と、コンテンツ登録処理手段13と、ホストID生成手段15と、管理用ホストリスト記憶手段17と、検索用ホストリスト記憶手段19と、コンテンツ管理情報記憶手段21と、コンテンツ蓄積手段23と、を備えている。
このコンテンツ管理サーバ1は、複数の他のコンテンツ管理サーバ1(図1では単にサーバ1と示している)とオーバーレイネットワークを構成しており、P2Pのコンテンツ共有方法を実現している。そして、このコンテンツ管理サーバ1は、OneHopによるファイル共有に適応して、他のコンテンツ管理サーバ1の接続(参加)及び離脱を行うと共に、複数のコンテンツのオーバーレイネットワークへの登録等を行っている。
ユーザ端末2は、ユーザが使用するPC等の端末であり、ネットワークを介して、コンテンツ管理サーバ1に対し、コンテンツの利用を要求するものである。なお、この図1では、1台しか図示していないが、実際には、複数台存在している。
パケット送受信手段3は、ユーザ端末2や他のコンテンツ管理サーバ1(双方を合わせて、単に外部ともいう)からの要求パケットの受信と、当該コンテンツ管理サーバ1から外部に対し要求パケットの送信を行うものである。また、このパケット送受信手段3は、送信した要求パケットに対応する外部からの応答パケットを受信するものである。
要求パケットは、外部に対し何らかの処理を要求するコマンドを含んだものであり、各コマンドに対応した固有データを含んだものである。この実施形態では、JOINコマンド、PUTコマンド、GETコマンド、PINGコマンド、NOTIFYコマンド(以下、JOIN、PUT、GET、PING、NOTIFYと略す場合もある)を用いている。
応答パケットは、要求パケットに対応する応答(OK又はNG)を含んだものであり、要求コマンドがJOINコマンド又はGETコマンドの場合には、それぞれに対応した固有データを含んだものである。
ここで、図2、図3を参照して、まず、パケットの構造と、要求パケット及び応答パケットの固有データとについて説明する。
図2に示すように、パケットは、「コマンド種別/応答種別」、「送信先アドレス」、「送信元アドレス」、「固有データ」を含む構造となっている。「コマンド種別/応答種別」は、要求パケットの場合にはコマンド種別を、応答パケットの場合には応答種別を示すものであり、コマンド種別がJOIN、PUT、GET、PING、NOTIFYのいずれかであり、応答種別がOK、NGのいずれかである。
図2に示すように、パケットは、「コマンド種別/応答種別」、「送信先アドレス」、「送信元アドレス」、「固有データ」を含む構造となっている。「コマンド種別/応答種別」は、要求パケットの場合にはコマンド種別を、応答パケットの場合には応答種別を示すものであり、コマンド種別がJOIN、PUT、GET、PING、NOTIFYのいずれかであり、応答種別がOK、NGのいずれかである。
「送信先アドレス」はパケットの送信先のアドレスを示すものであり、「送信元アドレス」はパケットの送信元のアドレスを示すものである。
「固有データ」は、コマンド種別によって異なるデータであり、図3に示すように、JOINの要求パケットの固有データは、ホストID、位置識別ID、サーバアドレスからなり、JOINの応答パケットの固有データは、ホストリストである。
「固有データ」は、コマンド種別によって異なるデータであり、図3に示すように、JOINの要求パケットの固有データは、ホストID、位置識別ID、サーバアドレスからなり、JOINの応答パケットの固有データは、ホストリストである。
また、PUTの要求パケットの固有データは、コンテンツID、サーバアドレスからなる。PUTの応答パケットの固有データは無い。
GETの要求パケットの固有データは、コンテンツIDからなり、GETの応答パケットの固有データはサーバアドレスからなる。
GETの要求パケットの固有データは、コンテンツIDからなり、GETの応答パケットの固有データはサーバアドレスからなる。
PINGの要求パケットの固有データ及び応答パケットの固有データは無い。
NOTIFYの要求パケットの固有データは、ホストID、位置識別ID、サーバアドレス、動作種別、通知モードからなり、NOTIFYの応答パケットの固有データは無い。
NOTIFYの要求パケットの固有データは、ホストID、位置識別ID、サーバアドレス、動作種別、通知モードからなり、NOTIFYの応答パケットの固有データは無い。
次に、各種コマンド(JOINコマンド、PUTコマンド、GETコマンド、PINGコマンド、NOTIFYコマンド)の内容について説明する。
JOINコマンドは、コンテンツ管理サーバ1がオーバーレイネットワークに接続(参加)する場合に用いるものである。JOINコマンドの要求パケット(以下、要求パケット(JOIN)とする)には、前記したように、参加するコンテンツ管理サーバ1(以下、新規のコンテンツ管理サーバ1という)のホストID、位置識別ID、サーバアドレスが固有データとして含まれている。以下、JOINコマンドの応答パケットを応答パケット(JOIN)とする。
JOINコマンドは、コンテンツ管理サーバ1がオーバーレイネットワークに接続(参加)する場合に用いるものである。JOINコマンドの要求パケット(以下、要求パケット(JOIN)とする)には、前記したように、参加するコンテンツ管理サーバ1(以下、新規のコンテンツ管理サーバ1という)のホストID、位置識別ID、サーバアドレスが固有データとして含まれている。以下、JOINコマンドの応答パケットを応答パケット(JOIN)とする。
ホストIDは、予め決められたハッシュ関数により生成されたものである。この実施形態では、ホストIDのビット長を160ビットとしている。
位置識別IDは、物理ネットワーク上のコンテンツ管理サーバ1間の距離を、オーバーレイネットワーク上のコンテンツ管理サーバ1間の距離に反映させたものであり、物理ネットワーク上のコンテンツ管理サーバ1間の距離が近ければ(例えば、同じ建物内、同じ都道府県内等)、同一のIDを使用するとしたものである。そして、この位置識別IDは、コンテンツ管理サーバ1のIPアドレスの上位アドレスを、ハッシュ関数を使って自動生成したり、予め地域ごとに固有のIDを用いたりするなどして決定する。この実施形態では、位置識別IDのビット長を16ビットとしている。
そして、JOINコマンドがオーバーレイネットワークに既に接続(参加)しているコンテンツ管理サーバ1(以下、既存のコンテンツ管理サーバ1という)に送信される。そして、JOINコマンドが成功すると、新規のコンテンツ管理サーバ1は、既存のコンテンツ管理サーバ1から応答パケットとして、既存のコンテンツ管理サーバ1の管理用ホストリスト記憶手段17及び検索用ホストリスト記憶手段19に記憶されているホストリストを受信する。各ホストリストの詳細については後記する。
PUTコマンドは、コンテンツをオーバーレイネットワーク上に登録する際に用いるものである。PUTコマンドの要求パケット(以下、要求パケット(PUT)とする)には、登録するコンテンツIDとこのコンテンツを蓄積しているコンテンツ管理サーバ1のサーバアドレスが含まれている。そして、コンテンツIDは、ホストIDと同じハッシュ関数によって生成されたものである。以下、PUTコマンドの応答パケットを応答パケット(PUT)とする。
GETコマンドは、コンテンツのコンテンツIDから当該コンテンツを蓄積しているコンテンツ管理サーバ1のサーバアドレスを取得する際に用いるものである。GETコマンドの要求パケット(以下、要求パケット(GET)とする)には、コンテンツIDが含まれている。そして、GETコマンドの応答パケット(以下、応答パケット(GET)とする)という)には、要求パケット(GET)に含まれたコンテンツIDと一致するコンテンツIDのコンテンツを蓄積しているコンテンツ管理サーバ1のサーバアドレスが含まれている。
PINGコマンドは、コンテンツ管理サーバ1の生存確認(オーバーレイネットワークに接続(参加)しているのか、離脱してしまったのかの確認)を行う際に用いるものである。コンテンツ管理サーバ1は、PINGコマンドの要求パケット(以下、要求パケット(PING)とする)を送信し、PINGコマンドの応答パケット(以下、応答パケット(PING)とする)を受信することで、他のコンテンツ管理サーバ1の存在を随時確認している。
NOTIFYコマンドは、コンテンツ管理サーバ1の接続(参加)、離脱をオーバーレイネットワーク上のすべてのコンテンツ管理サーバ1に通知する際に用いるものである。NOTIFYコマンドの要求パケット(以下、要求パケット(NOTIFY)とする)には、前記したように接続(参加)又は離脱したコンテンツ管理サーバ1のホストID、位置識別ID、サーバアドレス、動作種別、通知モードが含まれている。以下、NOTIFYコマンドの応答パケットを応答パケット(NOTIFY)とする。
動作種別は、コンテンツ管理サーバ1の接続(参加(JOIN))又は離脱(LEAVE)を示すものである。
通知モードは、OneHopにおける通知の段階を示すものであり、前記した図11における通報元からSlice Leaderへの第1段階(図11の“1”)の通知と、Slice Leaderから他のSlice Leaderへの第2段階(図11の“2”)の通知と、Slice LeaderからUnit Leaderへの第3段階(図11“3”)の通知と、Unit Leaderから領域内のコンテンツ管理サーバ1への第4段階の通知とがある。
なお、各コマンドによるコンテンツ管理サーバ1の動作については、後記する。図1に戻る。
通知モードは、OneHopにおける通知の段階を示すものであり、前記した図11における通報元からSlice Leaderへの第1段階(図11の“1”)の通知と、Slice Leaderから他のSlice Leaderへの第2段階(図11の“2”)の通知と、Slice LeaderからUnit Leaderへの第3段階(図11“3”)の通知と、Unit Leaderから領域内のコンテンツ管理サーバ1への第4段階の通知とがある。
なお、各コマンドによるコンテンツ管理サーバ1の動作については、後記する。図1に戻る。
スタビライゼーション処理手段5は、パケット送受信手段3を介して、要求パケット(PING)を隣接するコンテンツ管理サーバ1に送信し、応答パケット(PING)を受信することで、当該コンテンツ管理サーバ1の生存確認を行って、オーバーレイネットワークの構造を維持するものである。
ネットワーク管理用パケット処理手段7は、パケット送受信手段3を介して、受信した要求パケットが要求パケット(JOIN)又は要求パケット(NOTIFY)であるかを判別し、他のコンテンツ管理サーバ1のオーバーレイネットワークへの接続(参加)及び離脱の管理を行うものである。
そして、このネットワーク管理用パケット処理手段7は、受信した要求パケットが、要求パケット(JOIN)の場合、要求パケット(JOIN)の固有データであるホストID、位置識別ID、サーバアドレスに従って、管理用ホストリスト記憶手段17の管理用ホストリスト及び検索用ホストリスト記憶手段19の検索用ホストリストを更新するものである。なお、管理用ホストリスト及び検索用ホストリストは、OneHopにおける2次元の円周上に並べられたオーバーレイネットワークにおけるそれぞれのサーバの位置やアドレスを示すものである。
管理用ホストリストは、当初のホストIDの上位ビットを位置識別IDに置き換えたものをホストIDとして登録したものである。この実施形態では、位置識別IDを16ビット長としており、ホストIDを160ビットとしているので、このホストIDの160ビットの上位16ビットを位置識別IDに置き換えたものが、管理用ホストリストに登録されることになる。なお、この管理用ホストリストは、ホストIDの値により、当該ホストIDの値が大きい順又は小さい順にソートされているものとする。これにより、この管理用ホストリストを、各コンテンツ管理サーバ1の管理に用いたオーバーレイネットワークは、物理的なネットワーク上での各コンテンツ管理サーバ1の距離を反映させた構造となる。また、ネットワーク管理用パケット処理手段7では、登録しようとするホストID(上位ビットを位置識別IDに置き換えたホストID)がすでに登録されている場合には、当該ホストIDを追加登録しない。
検索用ホストリストは、要求パケット(JOIN)の固有データであるホストID、位置識別ID、サーバアドレスに従って、当該ホストIDをそのまま登録したものである。この検索用ホストリストも、ホストIDの値により、当該ホストIDの値が大きい順又は小さい順にソートされているものとする。
また、このネットワーク管理用パケット処理手段7は、受信した要求パケットが、要求パケット(NOTIFY)の場合、要求パケット(NOTIFY)の固有データである動作種別が参加(JOIN)又は離脱(LEAVE)に従って、要求パケット(NOTIFY)の固有データであるホストID、位置識別ID、サーバアドレスを、管理用ホストリスト記憶手段17の管理用ホストリスト及び検索用ホストリスト記憶手段19の検索用ホストリストに書き込む(記憶させる)ものである。なお、管理用ホストリストには、当初のホストIDの上位ビットを位置識別IDに置き換えたものが書き込まれ、検索用ホストリストには、当初のホストIDがそのまま書き込まれる。
さらに、このネットワーク管理用パケット処理手段7は、要求パケット(NOTIFY)の場合、要求パケット(NOTIFY)の固有データである通信モード(mode=1、mode=2、mode=3、mode=4のいずれか)に従って、パケット送受信手段3を介して、要求パケット(NOTIFY)を他のコンテンツ管理サーバ1に送信するものである。
通信モード1(mode=1:通知元からSlice Leaderに向けた通信)は、通信モードを2に変更(通信モード2を発行)し、オーバーレイネットワーク上の自体を除く、すべてのSlice Leaderに要求パケット(NOTIFY)を送信するものである。
通信モード2(mode=2:Slice LeaderからUnit Leaderに向けた通信)は、通信モード3に変更(通信モード3を発行)し、自体(Slice Leader)が所属するすべてのUnit Leaderに要求パケット(NOTIFY)を送信するものである。
通信モード2(mode=2:Slice LeaderからUnit Leaderに向けた通信)は、通信モード3に変更(通信モード3を発行)し、自体(Slice Leader)が所属するすべてのUnit Leaderに要求パケット(NOTIFY)を送信するものである。
通信モード3(mode=3:Unit Leaderから所属しているコンテンツ管理サーバ1に向けた通信)は、通信モード4に変更(通信モード4を発行)し、自体(Unit Leader)が所属するすべてのコンテンツ管理サーバ1に要求パケット(NOTIFY)を送信するものである。
通信モード4(mode=4)は、要求パケット(NOTIFY)の送信が完了したことを示すものである。
通信モード4(mode=4)は、要求パケット(NOTIFY)の送信が完了したことを示すものである。
検索用パケット処理手段9は、パケット送受信手段3を介して、他のコンテンツ管理サーバ1から送信された要求パケット(PUT)を受信することで、当該要求パケット(PUT)の固有データであるコンテンツID、サーバアドレスをコンテンツ管理情報として、コンテンツ管理情報記憶手段21に書き込む(記憶させる)ものである。
また、検索用パケット処理手段9は、パケット送受信手段3を介して、ユーザ端末2から送信された要求パケット(GET)を受信することで、当該要求パケットの固有データであるコンテンツIDと一致するコンテンツ管理情報を、まず、コンテンツ管理情報記憶手段21に書き込まれたコンテンツ管理情報の中から検索し、該当するものがあった場合には通知し、該当するものが無かった場合には検索用ホストリスト記憶手段19に記憶されている検索用ホストリストのホストID、サーバアドレスを通知する。
ホスト参加処理手段11は、コンテンツ管理サーバ1がオーバーレイネットワークに接続(参加)する際に、ホストID生成手段15からホストIDを取得し、このホストIDを固有データとする要求パケット(JOIN)を生成するものである。そして、このホスト参加処理手段11は、生成した要求パケット(JOIN)を、パケット送受信手段3を介して、既にオーバーレイネットワークに接続している他のコンテンツ管理サーバ1に送信するものである。
なお、このホスト参加処理手段11で生成した要求パケット(JOIN)の送信先は、既に参加している他のコンテンツ管理サーバ1のアドレスを、外部から予め指定しているものである。
そして、ホスト参加処理手段11は、応答パケット(JOIN)が、送信先の他のコンテンツ管理サーバ1から送信されると、この応答パケット(JOIN)の固有データであるホストリストを、管理用ホストリスト記憶手段17及び検索用ホストリスト記憶手段19にそれぞれ新規に作成するものである。なお、その後のホストリストの更新は、ネットワーク管理用パケット処理手段7によって行われる。
また、ホスト参加処理手段11は、自体がオーバーレイネットワークに接続したことを他のコンテンツ管理サーバ1に通知するために、動作種別を参加、通知モードを1(通知元からSlice Leader)とした要求パケット(NOTIFY)を生成し、パケット送受信手段3を介して、既にオーバーレイネットワークに接続している他のコンテンツ管理サーバ1に送信するものである。
なお、ホスト参加処理手段11で生成した要求パケット(NOTIFY)の送信先は、自コンテンツ管理サーバ1が所属しているSlice Leaderである。Slice Leaderの決定方法については後記する。また、ホスト参加処理手段11は、後記するコンテンツ登録処理手段13からの「仮想ホストIDのJOIN処理の要求」に従って、仮想ホストIDを設定する(詳細は、コンテンツ登録処理手段13にて行う)。
コンテンツ登録処理手段13は、パケット送受信手段3を介して、要求パケット(PUT)を送信することで、コンテンツ蓄積手段23に蓄積されているコンテンツを、オーバーレイネットワーク上に登録するものである。
このコンテンツ登録処理手段13は、まず、コンテンツのオーバーレイネットワーク上への登録数をカウントするための変数n(コンテンツ登録カウンタ)を0とし、コンテンツ蓄積手段23に蓄積されているコンテンツを読み出して、コンテンツIDが生成されているか否かに基づいて、未登録か否かを判定し、未登録の場合(コンテンツIDが生成されていない)、コンテンツIDを生成する。このコンテンツIDの生成は、コンテンツのファイル名と、当該コンテンツが蓄積されているコンテンツ管理サーバ1のホストIDを生成した際に用いたハッシュ関数とによって行われる。
そして、コンテンツ登録処理手段13は、要求パケット(PUT)を生成し、パケット送受信手段3を介して、他のコンテンツ管理サーバ1に送信する。この要求パケット(PUT)の送信先は、検索用ホストリスト記憶手段19に記憶されている検索用ホストリストからコンテンツIDに近いコンテンツ管理サーバ1となる。
そして、コンテンツ登録処理手段13は、コンテンツ登録カウンタnに1を加算し、nが予め設定する数N(このNがコンテンツの公開数であり、各コンテンツ管理サーバ1が管理する管理数)よりも小さい場合、コンテンツ蓄積手段23に蓄積されている他のコンテンツを読み出して、登録処理を継続して行う。
ここで、コンテンツ登録処理手段13は、コンテンツ登録カウンタnがNより大きい場合、仮想ホストIDのJOIN処理の要求を、ホスト参加処理手段11に行う。そして、コンテンツ登録処理手段13は、仮想ホストIDのJOIN処理後、コンテンツ登録カウンタnをリセットし、他のコンテンツを読み出して登録処理を継続して行う。
この仮想ホストIDのJOIN処理は、コンテンツ管理サーバ1がオーバーレイネットワーク上に公開したコンテンツの数と、各コンテンツ管理サーバ1が管理する管理数とが同じになるように公開したコンテンツ数Nごとに、ホストIDが異なるIDを生成し、この生成したIDを新たにオーバーレイネットワークに参加させる。これによって、公開したコンテンツ数が多いコンテンツ管理サーバ1ほど、管理するコンテンツ数が多くなる。ここで、新たに生成したホストIDを仮想ホストIDと呼称する。
ホストID生成手段15は、ホストID参加処理手段11にホストIDを提供すると共に、コンテンツ登録処理手段13から仮想ホストIDのJOIN処理の要求を受けた場合、仮想ホストIDを生成するものである。なお、前記したように、ホストIDは、予め決められたハッシュ関数により生成されたもので、この実施形態では、ホストIDのビット長を160ビットとしている。
ホストID生成手段15による仮想ホストIDの生成は、i番目の仮想ホストIDとして、元のホストIDの上位mビットを以下の数式(1)により計算することで生成する。
仮想ホストIDの上位mビット=(a・f〜+a〜・f) ・・・数式(1)
a=ホストIDの上位mビット
f=din<i>
なお、din<i>はビットリバース、f〜はfのビット反転、a〜はaのビット反転を表している。
仮想ホストIDの上位mビット=(a・f〜+a〜・f) ・・・数式(1)
a=ホストIDの上位mビット
f=din<i>
なお、din<i>はビットリバース、f〜はfのビット反転、a〜はaのビット反転を表している。
ここで、図8を参照して、仮想ホストIDの割り当ての順について説明する。この図8では、m=3の場合において、仮想ホストIDのオーバーレイネットワーク上の位置を示している。この図8に示したように、実線の「元のホストID」から、最も離れているコンテンツ管理サーバ1(点線の「1」)、このコンテンツ管理サーバ1(点線の「1」)と実線の「元のホストID」との中間のコンテンツ管理サーバ1(点線「2」、点線「3」)といったように、均等に仮想ホストIDが割り当てられている。
aは3ビットであるので、a=「000」、「001」、「010」、「011」、「100」、「101」、「110」、「111」のいずれかであり、例えば、「000」とすると、i=1の場合(1番目の仮想ホストID)は、数式(1)より、(000・011+111・100)=100となり、i=2の場合(2番目の仮想ホストID)は、数式(1)により、(000・101+111・010)=010となる。
なお、この実施形態では、ビット長mを位置識別IDのビット長と同じ長さとしている。これにより、ホストID生成手段15では、コンテンツ登録処理手段13から仮想ホストIDのJOIN処理の要求を受けた場合、仮想ホストIDが管理用ホストリスト記憶手段17に記憶されている管理ホストリストにおけるホストIDとなるため、当該仮想ホストIDは管理用ホストリストには登録されず、検索用ホストリスト記憶手段19のみに記憶されることになる。このため、仮想ホストIDを、検索用ホストリスト記憶手段19に記憶しても、ネットワーク管理用のパケット(要求パケット(NOTIFY))は、仮想ホストIDに対しては送信されてないため、オーバーレイネットワークにおいて、送受信されるパケットの増加が起きない。
なお、仮想ホストIDの生成の仕方は、前記した方法に限定されるものではなく、他の生成の仕方を用いてもよい。例えば、単純に元のホストIDの上位ビットaをカウントアップするという生成の仕方がある。
また、この実施形態では、コンテンツの登録数がN個ごとに線形に仮想ホストIDの登録を行っているが、この方法に限定されるものではなく、例えば、コンテンツの登録数が2i個ごとなど、非線形な関数を用いる等して、仮想ホストIDの登録を行ってもよい。
また、この実施形態では、コンテンツの登録数がN個ごとに線形に仮想ホストIDの登録を行っているが、この方法に限定されるものではなく、例えば、コンテンツの登録数が2i個ごとなど、非線形な関数を用いる等して、仮想ホストIDの登録を行ってもよい。
管理用ホストリスト記憶手段17は、管理用ホストリストを記憶しているもので、一般的なハードディスクやメモリ等によって構成されている。
検索用ホストリスト記憶手段19は、検索用ホストリストを記憶しているもので、一般的なハードディスクやメモリ等によって構成されている。
検索用ホストリスト記憶手段19は、検索用ホストリストを記憶しているもので、一般的なハードディスクやメモリ等によって構成されている。
コンテンツ管理情報記憶手段21は、コンテンツ管理情報を記憶しているもので、一般的なハードディスクやメモリ等によって構成されている。
コンテンツ蓄積手段23は、コンテンツを蓄積しているもので、一般的なハードディスクやメモリ等によって構成されている。
コンテンツ蓄積手段23は、コンテンツを蓄積しているもので、一般的なハードディスクやメモリ等によって構成されている。
(Slice Leader、Unit Leaderの決定方法)
ここで、Slice Leader、Unit Leaderの決定方法について説明する。
Slice Leaderは、管理用ホストリスト記憶手段17に記憶されている管理用ホストリストによって関連付けられているオーバーレイネットワークをk個に分割して、それぞれの分割領域内のコンテンツ管理サーバ1の1台を予め選択することで、決定される。
ここで、Slice Leader、Unit Leaderの決定方法について説明する。
Slice Leaderは、管理用ホストリスト記憶手段17に記憶されている管理用ホストリストによって関連付けられているオーバーレイネットワークをk個に分割して、それぞれの分割領域内のコンテンツ管理サーバ1の1台を予め選択することで、決定される。
Unit Leaderは、k個に分割された領域をさらにs個に分割して、それぞれの分割領域内のコンテンツ管理サーバの1台を予め選択することで、決定される。この実施形態では、位置識別IDの上位8ビットを、Slice Leader用の分割に、下位8ビットを、Unit Leader用の分割に使用している。すなわち、k=256、s=256である。そして、各領域内でのSlice Leader、Unit Leaderの選択方法は任意であるが、この実施形態では、各領域内でホストIDが最小なものを、Slice Leader、Unit Leaderとしている。
そして、コンテンツ管理サーバ1では、このようなSlice Leader、Unit Leaderの決定方法により、位置識別IDを用いて構築された管理用ホストリストを、ネットワーク管理用パケット処理手段7によって、要求パケット(NOTIFY)を受信した際に利用することで、Slice LeaderからUnit Leaderへ、Unit Leaderから各コンテンツ管理サーバ1に要求パケット(NOTIFY)が送信される。
そして、コンテンツ管理サーバ1において、要求パケット(NOTIFY)の送信は、物理ネットワーク上の距離が近いコンテンツ管理サーバ1間で行われることになり、遠距離間でのパケットの通信量を少なくすることができる。なお、各領域内でのSlice Leader、Unit Leaderの選択方法として、どのようなものを選択しても、本願の効果には影響を及ぼさない。また、この実施形態では、Slice Leader、Unit Leaderという2段階における要求パケット(NOTIFY)の送信について説明しているが、さらに多段階層の送信であってもよい。
次に、コンテンツ管理サーバ1における動作を、各手段、コマンド別に説明する。
(コンテンツ管理サーバにおける動作、ホスト参加処理手段 JOINコマンド)
図4に示すフローチャートを参照して、ホスト参加処理手段11の動作について説明する(適宜、図1参照)。
ホスト参加処理手段11は、自体がオーバーレイネットワークに接続する際に、パケット送受信手段3を介して、要求パケット(JOIN)を送信する際に、まず、ホストID生成手段15で生成されたホストIDを取得する(ステップS1)。
(コンテンツ管理サーバにおける動作、ホスト参加処理手段 JOINコマンド)
図4に示すフローチャートを参照して、ホスト参加処理手段11の動作について説明する(適宜、図1参照)。
ホスト参加処理手段11は、自体がオーバーレイネットワークに接続する際に、パケット送受信手段3を介して、要求パケット(JOIN)を送信する際に、まず、ホストID生成手段15で生成されたホストIDを取得する(ステップS1)。
続いて、ホスト参加処理手段11は、ホストID、位置識別ID、サーバアドレスを固有データとしたJOINコマンドを生成し、パケット送受信手段3を介して、要求パケット(JOIN)として送信する(ステップS2)。
そして、ホスト参加処理手段11は、既にオーバーレイネットワークに接続している他のコンテンツ管理サーバ1から応答パケット(JOIN)を、パケット送受信手段3を介して受信し、管理用ホストリスト記憶手段17及び検索用ホストリスト記憶手段19に新規にホストリストを作成して、応答パケットの固有データであるホストリストをコピーする(ステップS3、ステップS4)。
そして、ホスト参加処理手段11は、自体コンテンツ管理サーバ1がオーバーレイネットワークに接続したことを他のコンテンツ管理サーバ1に通知するため、動作種別を参加(JOIN)、通知モードを1(通知元からSlice Leader)とした要求パケット(NOTIFY)(NOTIFY(JOIN))を、パケット送受信手段3を介して送信する(ステップS5)。
(コンテンツ管理サーバにおける動作、ネットワーク管理用パケット処理手段)
図5に示すフローチャートを参照して、ネットワーク管理用パケット処理手段7の動作について説明する(適宜、図1参照)。
ネットワーク管理用パケット処理手段7は、まず、パケット送受信手段3を介して受信した要求パケットの種別が要求パケット(JOIN)であるか否かを判別する(ステップS11)。
図5に示すフローチャートを参照して、ネットワーク管理用パケット処理手段7の動作について説明する(適宜、図1参照)。
ネットワーク管理用パケット処理手段7は、まず、パケット送受信手段3を介して受信した要求パケットの種別が要求パケット(JOIN)であるか否かを判別する(ステップS11)。
ネットワーク管理用パケット処理手段7は、要求パケット(JOIN)でないと判別した場合(ステップS11、No)、要求パケット(NOTIFY)であるか否かを判別する(ステップS12)。ネットワーク管理用パケット処理手段7は、ステップS12にて要求パケット(NOTIFY)であると判別された場合(ステップS12、Yes)、当該要求パケット(NOTIFY)を処理する(ステップS15)、要求パケット(NOTIFY)でないと判別された場合(ステップS12、No)、処理を終了する。
また、ネットワーク管理用パケット処理手段7は、ステップS11にて、要求パケット(JOIN)であると判定した場合(ステップS11、Yes)、管理用ホストリスト記憶手段17に記憶されている管理用ホストリストの更新を行う(ステップS13)。同様に、ネットワーク管理用パケット処理手段7は、検索用ホストリスト記憶手段19に記憶されている検索用ホストリストの更新を行う(ステップS14)。
(コンテンツ管理サーバにおける動作、NOTIFYコマンド)
図6に示すフローチャートを参照して、ネットワーク管理用パケット処理手段7がパケット送受信手段3を介して、要求パケット(NOTIFY)を受信した場合の処理について説明する(適宜、図1参照)。
まず、ネットワーク管理用パケット処理手段7は、要求パケット(NOTIFY)の固有データである動作種別(参加(JOIN)又は離脱(Leave))に従って、管理用ホストリスト記憶手段17に記憶されている管理用ホストリスト及び検索用ホストリスト記憶手段19に記憶されている検索用ホストリストに対し、参加の場合、指定されたホストリスト(要求パケット(NOTIFY)の固有データであるホストID、位置識別ID、サーバアドレス)の追加を、離脱の場合、ホストリストの削除を行う(ステップS21、ステップS22)。
図6に示すフローチャートを参照して、ネットワーク管理用パケット処理手段7がパケット送受信手段3を介して、要求パケット(NOTIFY)を受信した場合の処理について説明する(適宜、図1参照)。
まず、ネットワーク管理用パケット処理手段7は、要求パケット(NOTIFY)の固有データである動作種別(参加(JOIN)又は離脱(Leave))に従って、管理用ホストリスト記憶手段17に記憶されている管理用ホストリスト及び検索用ホストリスト記憶手段19に記憶されている検索用ホストリストに対し、参加の場合、指定されたホストリスト(要求パケット(NOTIFY)の固有データであるホストID、位置識別ID、サーバアドレス)の追加を、離脱の場合、ホストリストの削除を行う(ステップS21、ステップS22)。
続いて、ネットワーク管理用パケット処理手段7は、要求パケット(NOTIFY)の固有データである通知モードが1(mode=1)であるか否かを判定し(ステップS23)、1であると判定した場合(ステップS23、Yes)、すべてのSlice Leaderに要求パケット(NOTIFY、通知モード2(mode=2))を発行し、パケット送受信手段3を介して送信する(ステップS24)。
そして、ネットワーク管理用パケット処理手段7は、要求パケット(NOTIFY)の固有データである通知モードが1(mode=1)であると判定しなかった場合(ステップS23、No)、通知モードが2(mode=2)であるか否かを判定し(ステップS25)、2であると判定した場合(ステップS25、Yes)、所属するUnit Leaderに要求パケット(NOTIFY、通知モード3(mode=3))を発行し、パケット送受信手段3を介して送信する(ステップS26)。
そしてまた、ネットワーク管理用パケット処理手段7は、要求パケット(NOTIFY)の固有データである通知モードが2(mode=2)であると判定しなかった場合(ステップS25、No)、通知モードが3(mode=3)であるか否かを判定し(ステップS27)、3であると判定した場合(ステップS27、Yes)、所属する各コンテンツ管理サーバ1に要求パケット(NOTIFY、通知モード4(mode=4))を発行し、パケット送受信手段3を介して送信する(ステップS28)。
(コンテンツ管理サーバにおける動作、コンテンツ登録処理手段)
図7に示すフローチャートを参照して、コンテンツ登録処理手段13の動作について説明する(適宜、図1参照)。
まず、コンテンツ登録処理手段13は、コンテンツ登録カウンタを0とし(ステップS31)、コンテンツ蓄積手段23から読み出したコンテンツが未登録のコンテンツであるか否かを判定し(ステップS32)、未登録のコンテンツでないと判定した場合(ステップS32、No)、動作を終了する。
図7に示すフローチャートを参照して、コンテンツ登録処理手段13の動作について説明する(適宜、図1参照)。
まず、コンテンツ登録処理手段13は、コンテンツ登録カウンタを0とし(ステップS31)、コンテンツ蓄積手段23から読み出したコンテンツが未登録のコンテンツであるか否かを判定し(ステップS32)、未登録のコンテンツでないと判定した場合(ステップS32、No)、動作を終了する。
続いて、コンテンツ登録処理手段13は、未登録のコンテンツであると判定した場合(ステップS32、Yes)、コンテンツIDを生成する(ステップS33)。そして、コンテンツ登録処理手段13は、パケット送受信手段3を介して、要求パケット(PUT)を送信する(ステップS34)(PUTコマンド送信)。また、コンテンツ登録処理手段13は、コンテンツ登録カウンタの数に1を加算する(ステップS35)(n=n+1)。
そして、コンテンツ登録処理手段13は、コンテンツ登録カウンタの数nが予め設定した数Nよりも大きくなった否かを判定し(ステップS36)、コンテンツ登録カウンタの数nがNよりも大きくなっていない場合(ステップS36、No)、ステップS32に戻り、コンテンツ登録カウンタの数nがNよりも大きくなった場合(ステップS36、Yes)、仮想ホストIDのJOIN処理をホストID生成手段15に要求し(ステップS37)、コンテンツ登録カウンタを0とする(ステップS38)。
(コンテンツ管理サーバにおける動作、スタビライゼーション処理手段)
図9に示すフローチャートを参照して、スタビライゼーション処理手段5の動作について説明する(適宜、図1参照)。
まず、スタビライゼーション処理手段5は、管理用ホストリスト記憶手段17に記憶されている管理用ホストリストから自体(コンテンツ管理サーバ1)に隣接するコンテンツ管理サーバ1のサーバアドレスを取得する(ステップS41)。
図9に示すフローチャートを参照して、スタビライゼーション処理手段5の動作について説明する(適宜、図1参照)。
まず、スタビライゼーション処理手段5は、管理用ホストリスト記憶手段17に記憶されている管理用ホストリストから自体(コンテンツ管理サーバ1)に隣接するコンテンツ管理サーバ1のサーバアドレスを取得する(ステップS41)。
続いて、スタビライゼーション処理手段5は、パケット送受信手段3を介して、要求パケット(PING)(PINGコマンド送信)を隣接するコンテンツ管理サーバ1に送信する(ステップS42)。そして、スタビライゼーション処理手段5は、パケット送受信手段3を介して、応答パケット(PING)を受信したか否かを判定し(ステップS43)(応答あり?)、あった場合(ステップS43、Yes)にはステップS41に戻り、無かった場合(ステップS43、No)には、要求パケット(NOTIFY)を送信する(ステップS44)(NOTIFYコマンド送信)。このスタビライゼーション処理手段5の動作において、仮想ホストIDが登録されていない管理用ホストリストのみを参照しているので、要求パケット(PING)は、物理的に近距離の他のコンテンツ管理サーバ1にだけ送信していることになる。
以上、本発明の実施形態について説明したが、本発明は前記実施形態には限定されない。例えば、本実施形態では、OneHopに対応して説明したが、従来のP2P型のコンテンツ管理システムにも適応することが可能である。また、実際の物理ネットワーク上での距離を考慮する必要が無い場合には、オーバーレイネットワークにおいて、仮想ホストIDによるコンテンツ管理の公平性を図ることのみを実現すればよい。
また、この実施形態では、コンテンツ管理サーバ1を1つのサーバとして構成しているが、各手段がそれぞれの装置として、独立させて構成してもよい。
1 コンテンツ管理サーバ
3 パケット送受信手段
5 スタビライゼーション処理手段
7 ネットワーク管理用パケット処理手段
9 検索用パケット処理手段
11 ホスト参加処理手段
13 コンテンツ登録処理手段
15 ホストID生成手段
17 管理用ホストリスト記憶手段
19 検索用ホストリスト記憶手段
21 コンテンツ管理情報記憶手段
23 コンテンツ蓄積手段
3 パケット送受信手段
5 スタビライゼーション処理手段
7 ネットワーク管理用パケット処理手段
9 検索用パケット処理手段
11 ホスト参加処理手段
13 コンテンツ登録処理手段
15 ホストID生成手段
17 管理用ホストリスト記憶手段
19 検索用ホストリスト記憶手段
21 コンテンツ管理情報記憶手段
23 コンテンツ蓄積手段
Claims (3)
- ホストIDによってコンテンツ管理サーバ同士を識別するオーバーレイネットワークであって、
少なくとも1以上の他のコンテンツ管理サーバと協同して、複数のコンテンツを管理するコンテンツ管理サーバにおいて、
各コンテンツ管理サーバのオーバーレイネットワークにおけるサーバアドレスと予め設定したハッシュ関数とに基づいて、前記ホストIDを生成するホストID生成手段と、
前記ホストID生成手段で生成されたホストIDと前記サーバアドレスとを、他のコンテンツ管理サーバに通知することで、前記オーバーレイネットワークに、当該コンテンツ管理サーバの登録を行うホスト参加処理手段と、
前記ホストID生成手段で生成されたホストIDと前記サーバアドレスとを対応付けた検索用ホストリストを記憶する検索用ホストリスト記憶手段と、を備え、
前記ホストID生成手段は、前記オーバーレイネットワークにおいて当該コンテンツ管理サーバが公開するコンテンツのうちの所定数のコンテンツごとに、前記ホストIDとは特定のビットが異なるビット列を有する仮想ホストIDを生成し、前記検索用ホストリスト記憶手段は、前記仮想ホストIDと前記サーバアドレスとを対応付けた検索用ホストリストをさらに記憶することを特徴とするコンテンツ管理サーバ。 - 前記ホストID生成手段は、物理ネットワーク上で所定距離内にあるコンテンツ管理サーバ同士に同一のIDを割り当てた位置識別IDを、前記ホストIDの特定のビットに割り当てることで、物理ネットワーク上におけるコンテンツ管理サーバ間の距離を前記オーバーレイネットワーク上におけるコンテンツ管理サーバ間の距離に反映させ、
前記ホストID生成手段で生成されたホストIDに前記位置識別IDを特定のビットに割り当てたホストIDと前記サーバアドレスとを対応付けた管理用ホストリストを記憶する管理用ホストリスト記憶手段と、
前記オーバーレイネットワークにおいて、前記管理用ホストリスト記憶手段に記憶されている管理用ホストリストに存在するホストIDのコンテンツ管理サーバ宛に送信したパケットの返信の有無によって、各コンテンツ管理サーバが現在接続されているかどうかの確認を行うスタビライゼーション処理手段と、
を備えることを特徴とする請求項1に記載のコンテンツ管理サーバ。 - ホストIDによってコンテンツ管理サーバ同士を識別するオーバーレイネットワークにおいて、少なくとも1以上の他のコンテンツ管理サーバと協同して、複数のコンテンツを管理するために、記憶手段を備えたコンピュータを、
各コンテンツ管理サーバのオーバーレイネットワークにおけるサーバアドレスと予め設定したハッシュ関数とに基づいて、前記ホストIDを生成するホストID生成手段、
前記ホストID生成手段で生成されたホストIDと前記サーバアドレスとを、他のコンテンツ管理サーバに通知することで、前記オーバーレイネットワークに、当該コンテンツ管理サーバの登録を行うホスト参加処理手段、として機能させ、
前記ホストID生成手段は、前記オーバーレイネットワークにおいて公開するコンテンツのうちの所定数のコンテンツごとに、前記ホストIDとは特定のビットが異なるビット列を有する仮想ホストIDを生成し、前記記憶手段は、前記ホストIDと前記サーバアドレスと対応付けたと共に前記仮想ホストIDと前記サーバアドレスとを対応付けた前記検索用ホストリストを記憶することを特徴とするコンテンツ管理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008078345A JP2009230686A (ja) | 2008-03-25 | 2008-03-25 | コンテンツ管理サーバ及びコンテンツ管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008078345A JP2009230686A (ja) | 2008-03-25 | 2008-03-25 | コンテンツ管理サーバ及びコンテンツ管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009230686A true JP2009230686A (ja) | 2009-10-08 |
Family
ID=41245949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008078345A Pending JP2009230686A (ja) | 2008-03-25 | 2008-03-25 | コンテンツ管理サーバ及びコンテンツ管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009230686A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011227712A (ja) * | 2010-04-20 | 2011-11-10 | Nippon Hoso Kyokai <Nhk> | ノード装置及びコンピュータプログラム |
JP2012014494A (ja) * | 2010-07-01 | 2012-01-19 | Kddi Corp | ピア・ツー・ピア・ネットワークにおける負荷分散方法及び該方法で使用するノード装置 |
JP2012123544A (ja) * | 2010-12-07 | 2012-06-28 | Nippon Hoso Kyokai <Nhk> | 負荷分散装置及びプログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007272467A (ja) * | 2006-03-30 | 2007-10-18 | Brother Ind Ltd | 配信システム、制御装置及び制御装置用プログラム、管理装置及び管理装置用プログラム、補助装置及び補助装置用プログラム並びに配信システム制御方法 |
-
2008
- 2008-03-25 JP JP2008078345A patent/JP2009230686A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007272467A (ja) * | 2006-03-30 | 2007-10-18 | Brother Ind Ltd | 配信システム、制御装置及び制御装置用プログラム、管理装置及び管理装置用プログラム、補助装置及び補助装置用プログラム並びに配信システム制御方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011227712A (ja) * | 2010-04-20 | 2011-11-10 | Nippon Hoso Kyokai <Nhk> | ノード装置及びコンピュータプログラム |
JP2012014494A (ja) * | 2010-07-01 | 2012-01-19 | Kddi Corp | ピア・ツー・ピア・ネットワークにおける負荷分散方法及び該方法で使用するノード装置 |
JP2012123544A (ja) * | 2010-12-07 | 2012-06-28 | Nippon Hoso Kyokai <Nhk> | 負荷分散装置及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4806203B2 (ja) | ピアツーピアネットワークにおけるルーティング | |
US7782866B1 (en) | Virtual peer in a peer-to-peer network | |
EP2171607B1 (en) | Load balancing distribution of data to multiple recipients on a peer-to-peer network | |
US11102290B2 (en) | Peer-to-peer network prioritizing propagation of objects through the network | |
US8554827B2 (en) | Virtual peer for a content sharing system | |
JP3944168B2 (ja) | ネットワーク環境におけるピアツーピア通信のための方法およびシステム | |
KR101211923B1 (ko) | 서비스 제공 엔티티를 선택하기 위한 방법, 시스템, 서비스 선택 엔티티, 및 서비스 관리 엔티티 | |
US20150215405A1 (en) | Methods of managing and storing distributed files based on information-centric network | |
US20080270421A1 (en) | Information distribution system, information processing device and memory medium | |
US20090177772A1 (en) | Method, system and device for establishing a peer to peer connection in a p2p network | |
WO2010127618A1 (zh) | 一种实现流媒体内容服务的系统和方法 | |
JP2009534939A (ja) | アクティブなデバイスのリストなど動的データの発見および取出しのためのアドホックプロキシ | |
JP2007148545A (ja) | 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム | |
JP2013514591A (ja) | ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置 | |
US8249638B2 (en) | Device and method for participating in a peer-to-peer network | |
CN111046065B (zh) | 可扩展的高性能分布式查询处理方法及装置 | |
JP4459999B2 (ja) | 投票を活用した無停止サービスシステム及びそのシステムにおける情報更新及び提供方法 | |
JP2009230686A (ja) | コンテンツ管理サーバ及びコンテンツ管理プログラム | |
JP5212292B2 (ja) | 情報通信システム、ノード装置、ノード装置確認方法及びプログラム | |
US9942311B2 (en) | Method and apparatus for transferring content among large clusters of storage devices to achieve a target replication distribution | |
JP2009070172A (ja) | コンテンツ分散保存システム、提供元サーバ装置登録方法、ノード装置、及びノード処理プログラム | |
JP2008005449A (ja) | 分散データの管理方法および管理システム | |
JP5434268B2 (ja) | 分散保存システム、データファイル分散保存方法及びプログラム | |
Deltouzos et al. | SeekStream: adapting to dynamic user behavior in P2P video‐on‐demand | |
JP2012078903A (ja) | ノード装置、ノード装置用プログラムおよび情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120424 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120904 |