JP2009044661A - ノード装置、ネットワークシステム及びプログラム - Google Patents
ノード装置、ネットワークシステム及びプログラム Download PDFInfo
- Publication number
- JP2009044661A JP2009044661A JP2007209974A JP2007209974A JP2009044661A JP 2009044661 A JP2009044661 A JP 2009044661A JP 2007209974 A JP2007209974 A JP 2007209974A JP 2007209974 A JP2007209974 A JP 2007209974A JP 2009044661 A JP2009044661 A JP 2009044661A
- Authority
- JP
- Japan
- Prior art keywords
- node device
- node
- hierarchy
- information
- index value
- 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
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】階層構造をなすネットワークシステムにおいて情報を配信する際に、各ノード装置における情報の再生を途切れさせることなく、そのノード装置が属する階層を入れ替える。
【解決手段】ノード装置の情報配信能力は様々な要因により時々刻々と変化するので、その変化する情報配信能力に応じて、ノード装置2が属する階層を動的に入れ替える。この場合、それぞれのノード装置2は、ストリーミング配信されるデータをリアルタイム再生しているから、階層の入替処理に時間がかかると、一部のノード装置2においてはデータの再生が途切れてしまう。そこで、入替対象となるノード装置群に含まれる全てのノード装置2が、十分な量のコンテンツデータをバッファリングしている場合に限って、その入替処理を実行する。この「十分な量のコンテンツデータ」とは、階層の入替処理に要する期間にわたって再生されるコンテンツデータのデータ量のことである。
【選択図】図1
【解決手段】ノード装置の情報配信能力は様々な要因により時々刻々と変化するので、その変化する情報配信能力に応じて、ノード装置2が属する階層を動的に入れ替える。この場合、それぞれのノード装置2は、ストリーミング配信されるデータをリアルタイム再生しているから、階層の入替処理に時間がかかると、一部のノード装置2においてはデータの再生が途切れてしまう。そこで、入替対象となるノード装置群に含まれる全てのノード装置2が、十分な量のコンテンツデータをバッファリングしている場合に限って、その入替処理を実行する。この「十分な量のコンテンツデータ」とは、階層の入替処理に要する期間にわたって再生されるコンテンツデータのデータ量のことである。
【選択図】図1
Description
本発明は、階層構造のネットワークシステムにおいて、各々のノード装置が属する階層を変更する技術に関する。
複数のノード装置によって構成される階層構造のネットワークにおいて、その最上位層の階層に位置するサーバ装置からストリーミング配信された情報を、下流側のノード装置へと順次転送する仕組みが知られている。上位層にある1つのノード装置の配下には複数のノード装置が接続されているから、上位層のノード装置に対しては、その配下の下位層のノード装置よりも高い情報配信能力が必要とされる。そこで特許文献1には、各ノード装置の情報配信能力に応じてノード装置が属する階層を決定する技術が開示されている。
特開2006−319466号公報
特許文献1では、ネットワークに新たなノード装置を組み入れるときに、そのノード装置が本来有している情報配信能力に基づいて、所属する階層を決定している。ただし、ノード装置の情報配信能力は例えばネットワークの輻輳などの要因により時々刻々と変化するものであるから、その変化する情報配信能力に応じて、ノード装置が属する階層を動的に入れ替えることが望ましい。ところが、ストリーミング配信の場合、それぞれのノード装置は上位層から送信されている情報を受信すると、それを直ちに再生しているから、階層の入替処理に時間がかかると、一部のノード装置においては再生すべき情報を受信できずに、その再生が途切れてしまうという問題が発生する。
本発明は、上述した背景に鑑みてなされたものであり、階層構造をなすネットワークシステムにおいて情報を配信する際に、各ノード装置における情報の再生を途切れさせることなく、そのノード装置が属する階層を入れ替えることを目的とする。
本発明は、上述した背景に鑑みてなされたものであり、階層構造をなすネットワークシステムにおいて情報を配信する際に、各ノード装置における情報の再生を途切れさせることなく、そのノード装置が属する階層を入れ替えることを目的とする。
上記課題を解決するために、本発明は、ネットワークシステムを介して通信を行う通信手段と、情報を記憶する記憶手段と、前記ネットワークにおいて自ノード装置が属する階層の上位層から配信されてくる情報を、前記通信手段によって受信すると、当該情報を前記記憶手段にバッファリングしてから当該記憶手段より読み出して再生する再生手段と、前記記憶手段における情報のバッファリング量を特定する特定手段と、自ノード装置の情報配信能力を表す指標値を算出する算出手段と、自ノード装置の上位層又は下位層に属する他ノード装置の前記指標値及び前記バッファリング量を取得する取得手段と、前記取得手段によって取得された他ノード装置の指標値が、前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記他ノード装置が属する階層とを入れ替える処理を行う入替手段とを備えることを特徴とするノード装置を提供する。
本発明によれば、自ノード装置及び他ノード装置のバッファリング量が閾値を超えているかどうかを確認してから階層の入れ替えを行うので、その入れ替えの前後で各ノード装置における情報の再生が途切れることがない。
本発明によれば、自ノード装置及び他ノード装置のバッファリング量が閾値を超えているかどうかを確認してから階層の入れ替えを行うので、その入れ替えの前後で各ノード装置における情報の再生が途切れることがない。
本発明の好ましい態様において、前記算出手段は、自ノード装置が有するハードウェア資源のうち、情報の配信処理に割り当てられるハードウェア資源の量乃至割合を測定する第1の測定手段と、自ノード装置が属する階層が入れ替わったときに通信相手となる他ノード装置と、自ノード装置との間の情報転送速度を測定する第2の測定手段と、前記第1の測定手段による測定結果と、前記第2の測定手段による測定結果とに基づいて、自ノード装置の情報配信能力を表す指標値を計算する計算手段とを有する。
この態様によれば、情報の配信処理に割り当てられるハードウェア資源の量乃至割合と、自ノード装置が属する階層が入れ替わったときに通信相手となる他ノード装置と自ノード装置との間の情報転送速度とに基づくことで、情報配信能力を表す指標値として、より正確な値を算出することが可能となる。
この態様によれば、情報の配信処理に割り当てられるハードウェア資源の量乃至割合と、自ノード装置が属する階層が入れ替わったときに通信相手となる他ノード装置と自ノード装置との間の情報転送速度とに基づくことで、情報配信能力を表す指標値として、より正確な値を算出することが可能となる。
前記算出手段は、自ノード装置においてプログラムが新たに起動させられた場合、又は、自ノード装置において実行されているプログラムが終了した場合に、前記指標値を算出するようにしてもよいし、前記算出手段は、自ノード装置の上位層又は下位層に属する他ノード装置から要求があった場合に前記指標値を算出するようにしてもよいし、前記算出手段は、所定期間が経過するたびに前記指標値を算出するようにしてもよい。
これにより、適切なタイミングで指標値を算出することが可能となる。
これにより、適切なタイミングで指標値を算出することが可能となる。
また、本発明の別の好ましい態様においては、自ノード装置の下位層に属する他ノード装置が複数あり、そのうちいずれか1つの他ノード装置が自ノード装置との階層の入替候補であるときに、前記取得手段は、前記階層の入替候補となる他ノード装置の前記指標値及び前記バッファリング量を取得する第1の取得手段と、自ノード装置の下位層に属する他ノード装置のうち、前記階層の入替候補となる他ノード装置以外の他ノード装置の前記バッファリング量を取得する第2の取得手段とを有し、前記入替手段は、前記第1の取得手段によって取得された他ノード装置の指標値が、前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記第1の取得手段及び前記第2の取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記階層の入替候補となる他ノード装置が属する階層とを入れ替える処理を行う。
この態様によれば、自ノード装置の下位層に属する他ノード装置が複数ある場合にも、各ノード装置における情報の再生を途切れさせることなく、自ノード装置が属する階層と、階層の入替候補となる他ノード装置が属する階層とを入れ替えることが可能となる。
この態様によれば、自ノード装置の下位層に属する他ノード装置が複数ある場合にも、各ノード装置における情報の再生を途切れさせることなく、自ノード装置が属する階層と、階層の入替候補となる他ノード装置が属する階層とを入れ替えることが可能となる。
また、本発明の別の好ましい態様においては、自ノード装置の下位層に属する他ノード装置が複数あるときに、前記取得手段は、自ノード装置の下位層に属する複数の他ノード装置の前記指標値及び前記バッファリング量を取得し、前記入替手段は、前記取得手段によって取得された複数の他ノード装置の指標値のうち、少なくともいずれか1つが前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記取得手段によって取得された複数の指標値のうち最大値の指標値を持つ他ノード装置が属する階層とを入れ替える処理を行う。
この態様によれば、自ノード装置の下位層に属する他ノード装置が複数ある場合に、自ノード装置が属する階層と、最も情報配信能力が高い他ノード装置が属する階層とを入れ替えることが可能となる。
この態様によれば、自ノード装置の下位層に属する他ノード装置が複数ある場合に、自ノード装置が属する階層と、最も情報配信能力が高い他ノード装置が属する階層とを入れ替えることが可能となる。
また、本発明の別の好ましい態様において、前記取得手段は、自ノード装置の階層を含む3つの階層にそれぞれ属する他ノード装置の前記指標値及び前記バッファリング量を取得し、前記入替手段は、他ノード装置が属する前記3つの階層のいずれかの階層と、自ノード装置が属する階層とを入れ替える処理を行う。
この態様によれば、自ノード装置の階層を含む3つの階層にわたって階層の入れ替えを行うことが可能となる。
この態様によれば、自ノード装置の階層を含む3つの階層にわたって階層の入れ替えを行うことが可能となる。
また、本発明は、情報を配信する情報配信装置と、前記情報配信装置の配下に階層的に接続された複数のノード装置とを備え、前記複数のノード装置の各々が、通信を行う通信手段と、情報を記憶する記憶手段と、自ノード装置が属する階層の上位層から配信されてくる情報を、前記通信手段によって受信すると、当該情報を前記記憶手段にバッファリングしてから当該記憶手段より読み出して再生する再生手段と、前記記憶手段における情報のバッファリング量を特定する特定手段と、自ノード装置の情報配信能力を表す指標値を算出する算出手段と、自ノード装置の上位層又は下位層に属する他ノード装置の前記指標値及び前記バッファリング量を取得する取得手段と、前記取得手段によって取得された他ノード装置の指標値が、前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記他ノード装置が属する階層とを入れ替える処理を行う入替手段とを備えることを特徴とするネットワークシステムを提供する。
本発明によれば、自ノード装置及び他ノード装置のバッファリング量が閾値を超えているかどうかを確認してから階層の入れ替えを行うので、その入れ替えの前後で各ノード装置における情報の再生が途切れることがない。
本発明によれば、自ノード装置及び他ノード装置のバッファリング量が閾値を超えているかどうかを確認してから階層の入れ替えを行うので、その入れ替えの前後で各ノード装置における情報の再生が途切れることがない。
また、本発明は、ネットワークを介して通信を行う通信手段と、情報を記憶する記憶手段とを備えたコンピュータを、前記ネットワークにおいて自ノード装置が属する階層の上位層から配信されてくる情報を、前記通信手段によって受信すると、当該情報を前記記憶手段にバッファリングしてから当該記憶手段より読み出して再生する再生手段と、前記記憶手段における情報のバッファリング量を特定する特定手段と、自ノード装置の情報配信能力を表す指標値を算出する算出手段と、自ノード装置の上位層又は下位層に属する他ノード装置の前記指標値及び前記バッファリング量を取得する取得手段と、前記取得手段によって取得された他ノード装置の指標値が、前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記他ノード装置が属する階層とを入れ替える処理を行う入替手段として機能させるためのプログラムを提供する。
本発明によれば、自ノード装置及び他ノード装置のバッファリング量が閾値を超えているかどうかを確認してから階層の入れ替えを行うので、その入れ替えの前後で各ノード装置における情報の再生が途切れることがない。
本発明によれば、自ノード装置及び他ノード装置のバッファリング量が閾値を超えているかどうかを確認してから階層の入れ替えを行うので、その入れ替えの前後で各ノード装置における情報の再生が途切れることがない。
以下、本発明の最良の実施形態を説明する。
[構成]
図1は、本実施形態に係るネットワークシステム100の構成を示すブロック図である。
このネットワークシステム100は、自身が格納しているコンテンツデータをネットワーク経由で配信する情報配信装置としてのサーバ装置1と、そのサーバ装置1から配信されたコンテンツデータを再生する複数のノード装置2a、2b、2c、・・・、2xとを備えている。図1に示すように、サーバ装置1の配下に複数のノード装置2a、2b、2c、・・・、2xが階層的に接続されることで、ネットワーク全体で複数階層のツリー構造を成している。サーバ装置1が配信するコンテンツデータは、音声や画像などのように、再生の対象となる情報であればどのようなものでもよく、ここでは、音声情報付きの動画像情報をコンテンツデータとして用いる。サーバ装置1及び各ノード装置2a〜2xには、それぞれ固有の装置ID及びIP(Internet Protocol)アドレスが割り当てられている。サーバ装置1及びノード装置2a〜2xはその全てが通信線によって相互に接続されているが、図1では、サーバ装置1及び各ノード装置2a〜2xをIPアドレスに基づいて論理的に接続した場合の通信経路3のみを図示している。なお、以下の説明では、ノード装置2a〜2xのうち、いずれかのノード装置を示す場合には、「ノード装置2」という場合がある。
[構成]
図1は、本実施形態に係るネットワークシステム100の構成を示すブロック図である。
このネットワークシステム100は、自身が格納しているコンテンツデータをネットワーク経由で配信する情報配信装置としてのサーバ装置1と、そのサーバ装置1から配信されたコンテンツデータを再生する複数のノード装置2a、2b、2c、・・・、2xとを備えている。図1に示すように、サーバ装置1の配下に複数のノード装置2a、2b、2c、・・・、2xが階層的に接続されることで、ネットワーク全体で複数階層のツリー構造を成している。サーバ装置1が配信するコンテンツデータは、音声や画像などのように、再生の対象となる情報であればどのようなものでもよく、ここでは、音声情報付きの動画像情報をコンテンツデータとして用いる。サーバ装置1及び各ノード装置2a〜2xには、それぞれ固有の装置ID及びIP(Internet Protocol)アドレスが割り当てられている。サーバ装置1及びノード装置2a〜2xはその全てが通信線によって相互に接続されているが、図1では、サーバ装置1及び各ノード装置2a〜2xをIPアドレスに基づいて論理的に接続した場合の通信経路3のみを図示している。なお、以下の説明では、ノード装置2a〜2xのうち、いずれかのノード装置を示す場合には、「ノード装置2」という場合がある。
図1の例では、ノード装置2a〜2xが属する階層は3階層であり、サーバ装置1の階層まで入れると全部で4階層である。サーバ装置1が属する階層を第0階層とすると、そのサーバ装置1の1つ下の階層に属するノード装置2は、「第1階層のノード装置」である。また、その第1階層のノード装置2の1つ下の階層に属するノード装置2は、「第2階層のノード装置」である。同様に、第2階層のノード装置2の1つ下の階層に属するノード装置2は、「第3階層のノード装置」である。サーバ装置1により配信されるコンテンツデータは、より上位の階層に属するノード装置2から、より下位の階層に属するノード装置2へと、順次、転送される。例えばノード装置2aは、サーバ装置1から配信されているコンテンツデータを、自身の配下にあるノード装置2c,2dに転送する。そして、これを受信したノード装置2cは、自身の配下にあるノード装置2g,2h,2iに転送する。このように、ネットワークシステム100においては、サーバ装置1によって配信されたコンテンツデータが、少なくともの1以上のノード装置2を経由して最下位層のノード装置まで、順次、転送されるようになっている。なお、或る装置に通信経路3を介して直接接続された下位層の装置のことを、以下では、“或る装置の配下にある装置”と表現する。例えば、サーバ装置1の配下にある装置は、ノード装置2a,2bである。また、ノード装置2aの配下にある装置は、ノード装置2c,2dである。
全てのノード装置2a〜2xはそれぞれ、上位層から配信されてくるコンテンツデータを自身のバッファメモリに一時的に記憶しつつ(つまりバッファリングしつつ)、再生タイミングに合わせてそのコンテンツデータをバッファメモリから順次読み出して再生する。このような再生形式を、リアルタイム再生という。一方、最下位層にある第3階層のノード装置2以外のノード装置2、つまり第1階層及び第2階層のノード装置2はそれぞれ、上記再生処理と並行して、バッファメモリから読み出したコンテンツデータを、自身の配下にあるノード装置2へと転送する。
ノード装置2a〜2xは、ピアツーピア方式のネットワークを構成しており、各ノード装置が属する階層は自由に変更し得るようになっている。上位層に属するノード装置2は複数のノード装置2を配下に持つことが多いため、上位層に属するノード装置2に対しては、その配下にあるノード装置2よりも高い情報配信能力が必要とされる。そこで、各ノード装置2の情報配信能力に応じて各々のノード装置2が属する階層を決める。ただし、ノード装置2の情報配信能力は様々な要因により時々刻々と変化するものであるから、その変化する情報配信能力に応じて、ノード装置2が属する階層を動的に入れ替える。この場合、それぞれのノード装置2は、ストリーミング配信されるデータをリアルタイム再生しているから、階層の入替処理に時間がかかると、一部のノード装置2においてはデータの再生が途切れてしまう。
そこで、入替対象となるノード装置群(以下、入替対象ノード装置群という)に含まれる全てのノード装置2が、十分な量のコンテンツデータをバッファリングしている場合に限って、その入替処理を実行する。この「十分な量のコンテンツデータ」とは、階層の入替処理に要する期間にわたって再生されるコンテンツデータのデータ量のことであり、実験或いは計算により予め決められている。例えば、コンテンツデータの再生速度が3000(kbit/sec)で、階層の入れ替えに要する時間がおおよそ2.5(sec)だとした場合、上記の「十分な量」とは少なくとも、3000(kbit/sec)×2.5(sec)=7500(kbit)以上の値となる。各ノード装置2にはこの値が閾値として予め記憶されている。
図2は、入替対象ノード装置群を例示する図である。
この入替対象ノード装置群には、入替対象の候補となる上位層のノード装置2及び下位層のノード装置2が含まれるほか、さらに、その上位層のノード装置2の配下のノード装置2であって、入替対象の候補となるノード装置2以外のノード装置2が含まれる。図2において、入替対象ノード装置群G1には、入替対象の候補となる上位層のノード装置2a及び下位層のノード装置2(例えばノード装置2c)のほか、その上位層のノード装置2aの配下のノード装置2であって、入替対象の候補となるノード装置2c以外のノード装置2dが含まれている。また、入替対象ノード装置群G2には、入替対象の候補となる上位層のノード装置2c及び下位層のノード装置2(例えばノード装置2g)のほか、その上位層のノード装置2cの配下のノード装置2であって、入替対象となるノード装置2g以外のノード装置2h,2iが含まれている。
この入替対象ノード装置群には、入替対象の候補となる上位層のノード装置2及び下位層のノード装置2が含まれるほか、さらに、その上位層のノード装置2の配下のノード装置2であって、入替対象の候補となるノード装置2以外のノード装置2が含まれる。図2において、入替対象ノード装置群G1には、入替対象の候補となる上位層のノード装置2a及び下位層のノード装置2(例えばノード装置2c)のほか、その上位層のノード装置2aの配下のノード装置2であって、入替対象の候補となるノード装置2c以外のノード装置2dが含まれている。また、入替対象ノード装置群G2には、入替対象の候補となる上位層のノード装置2c及び下位層のノード装置2(例えばノード装置2g)のほか、その上位層のノード装置2cの配下のノード装置2であって、入替対象となるノード装置2g以外のノード装置2h,2iが含まれている。
図3は、ノード装置2の構成を示すブロック図である。
図3に示すように、ノード装置2は、制御部11と、記憶部12と、バッファメモリ13と、デコーダ部14と、画像処理部15と、表示部16と、音声処理部17と、スピーカ18と、通信部19と、操作部20とを備えている。これらはバス21を介して相互に接続されている。制御部11は、CPUと、RAM(Random Access Memory)と、ROM(Read Only Memory)とを備えている。RAMには、CPUが実行するプログラムやその実行に要するデータが展開される。また、このRAMには、自ノード装置を含む入替対象ノード装置群の各ノード装置2のIPアドレスが記憶されている。図2の例で言えば、ノード装置2cのRAMには、入替対象ノード装置群G1の各ノード装置2a,2dのIPアドレスが記憶されているとともに、入替対象ノード装置群G2の各ノード装置2g,2h,2iのIPアドレスが記憶されている。これらのIPアドレスは、入替対象ノード装置群が新たに形成されたり、その入替対象ノード装置群に所属するノード装置2が変更された場合に、更新される。
図3に示すように、ノード装置2は、制御部11と、記憶部12と、バッファメモリ13と、デコーダ部14と、画像処理部15と、表示部16と、音声処理部17と、スピーカ18と、通信部19と、操作部20とを備えている。これらはバス21を介して相互に接続されている。制御部11は、CPUと、RAM(Random Access Memory)と、ROM(Read Only Memory)とを備えている。RAMには、CPUが実行するプログラムやその実行に要するデータが展開される。また、このRAMには、自ノード装置を含む入替対象ノード装置群の各ノード装置2のIPアドレスが記憶されている。図2の例で言えば、ノード装置2cのRAMには、入替対象ノード装置群G1の各ノード装置2a,2dのIPアドレスが記憶されているとともに、入替対象ノード装置群G2の各ノード装置2g,2h,2iのIPアドレスが記憶されている。これらのIPアドレスは、入替対象ノード装置群が新たに形成されたり、その入替対象ノード装置群に所属するノード装置2が変更された場合に、更新される。
記憶部12は、例えばハードディスクであり、前述した“十分な量のコンテンツデータ”の閾値や、各種のプログラムを記憶している。このプログラムには、コンテンツデータの配信及び再生に関する処理の手順が記述された配信プログラムのほか、ノード装置2のユーザがこのノード装置2にインストールした任意のプログラムが含まれる。例えば、ユーザのスケジュール管理を行うスケジューラプログラムや、文書作成を行うための文書作成プログラムなどである。バッファメモリ13は、通信部19が上位層の装置から受信したコンテンツデータを、その再生タイミングまで一時的に記憶する。再生時にバッファメモリ13から読み出されたコンテンツデータは、そのバッファメモリ13から消去される。
デコーダ部14は、コンテンツデータ中のエンコードされたビデオデータ(画像情報)及びオーディオデータ(音声情報)をデコードする。画像処理部15は、デコードされたビデオデータに対して画像処理を施し、ビデオ信号として出力する。表示部16は、例えば液晶ディスプレイであり、画像処理部15から出力されたビデオ信号に基づき画像を表示する。音声処理部17は、デコードされたオーディオデータをアナログオーディオ信号へとD/A変換し、これに音声処理を施して出力する。スピーカ18は、音声処理部17から出力されたオーディオ信号の強度に応じて放音する。通信部19は、通信経路3を介して他のノード装置2やサーバ装置1と通信を行なう。操作部20は、例えばマウスやキーボードであり、ユーザの操作を受け付け、当該操作に応じた操作信号を制御部11に供給する。
[動作]
次に、ネットワークシステム100の動作を説明する。
図4は、ノード装置2の制御部11が実行するメインルーチンを表すフローチャートである。制御部11は、ユーザの操作に応じて配信プログラムを起動すると、この図4に示した処理を開始する。まず、制御部11は、自ノード装置の情報配信能力の指標値である配信能力値を算出する時期が到来したか否かを判定する(ステップSA1)。
次に、ネットワークシステム100の動作を説明する。
図4は、ノード装置2の制御部11が実行するメインルーチンを表すフローチャートである。制御部11は、ユーザの操作に応じて配信プログラムを起動すると、この図4に示した処理を開始する。まず、制御部11は、自ノード装置の情報配信能力の指標値である配信能力値を算出する時期が到来したか否かを判定する(ステップSA1)。
ここで、配信能力値の算出時期の条件には、4通りの条件がある。
まず1つ目の条件は、制御部11のCPUが実行中のプログラムのうち、配信プログラム以外のプログラムが終了したことである。例えばCPUが、配信プログラムと並列して、スケジューラプログラムや文書作成プログラムなどを実行していることがある。このうち、例えばスケジューラプログラムが終了した場合、そのスケジューラプログラムの実行に要していたハードウェア資源、例えばCPUの演算能力やRAMの記憶領域が余ることになる。これらの余剰能力は、配信プログラムの実行処理に新たに投入することが可能となる。このため、それまでは下位層のノード装置2であったとしても、配信プログラムに投入できる情報配信能力が上位層のノード装置2のそれを上回ることで、その上位層のノード装置2に代わって自らが上位層のノード装置2になり得る可能性がある。そこで、CPUが実行中のプログラムが終了した場合を、配信能力値の算出時期の条件としている。ただし、この条件は、下位層のノード装置2が上位層のノード装置2に入れ替わる場合の条件である。よって、自身が属している階層よりも上位層の階層に入れ替わることがないノード装置2、つまり第1階層のノード装置2は、この1つ目の条件に合致したとしても、配信能力値の算出時期が到来したとは判断しない。
まず1つ目の条件は、制御部11のCPUが実行中のプログラムのうち、配信プログラム以外のプログラムが終了したことである。例えばCPUが、配信プログラムと並列して、スケジューラプログラムや文書作成プログラムなどを実行していることがある。このうち、例えばスケジューラプログラムが終了した場合、そのスケジューラプログラムの実行に要していたハードウェア資源、例えばCPUの演算能力やRAMの記憶領域が余ることになる。これらの余剰能力は、配信プログラムの実行処理に新たに投入することが可能となる。このため、それまでは下位層のノード装置2であったとしても、配信プログラムに投入できる情報配信能力が上位層のノード装置2のそれを上回ることで、その上位層のノード装置2に代わって自らが上位層のノード装置2になり得る可能性がある。そこで、CPUが実行中のプログラムが終了した場合を、配信能力値の算出時期の条件としている。ただし、この条件は、下位層のノード装置2が上位層のノード装置2に入れ替わる場合の条件である。よって、自身が属している階層よりも上位層の階層に入れ替わることがないノード装置2、つまり第1階層のノード装置2は、この1つ目の条件に合致したとしても、配信能力値の算出時期が到来したとは判断しない。
次に、2つ目の条件は、制御部11のCPUが配信プログラムのほかに新たなプログラムを起動したことである。CPUが配信プログラムのほかに、例えばスケジューラプログラムなどの新たなプログラムを起動した場合、起動したプログラムに対してCPUやRAMなどのハードウェア資源を新たに割り当てる必要があるので、それまでに配信プログラムに充てていたハードウェア資源が逼迫することになる。このため、それまでは上位層のノード装置2であったとしても、配信プログラムに投入できるハードウェア資源が下位層のノード装置2のそれを下回り、そのノード装置2に上位層のノード装置2に代わってもらって、自らが下位層のノード装置2になったほうがよい可能性がある。そこで、CPUが新たなプログラムが起動した場合を、配信能力値の算出時期の条件としている。ただし、この条件は、上位層のノード装置2から下位層のノード装置2へと入れ替わる場合の条件であるので、自身が属している階層よりも下位層の階層に入れ替わることがないノード装置2、つまり最下位層(第3階層)のノード装置2は、この2つ目の条件に合致したとしても、配信能力値の算出時期が到来したとは判断しない。
次に、3つ目の条件は、ノード装置2が、自身よりも下位層のノード装置2から、階層を入れ替えるかどうかを判定することを要求する入替判定要求を受け取った場合である。この入替判定要求は、下位層のノード装置2が上述した1つ目の条件を満たしたときに、上位層のノード装置2に対して送信するものである。この場合、入替判定要求を受け取ったノード装置2が入替対象の候補になるから、配信能力値の算出時期の条件としている。ただし、この条件は、上位層のノード装置2から下位層のノード装置2へと入れ替わる場合の条件であるので、自身が属している階層よりも下位層の階層に入れ替わることがないノード装置2、つまり最下位層(第3階層)のノード装置2は、この3つ目の条件に合致することはない。
そして、4つ目の条件は、ノード装置2が、自身よりも上位層のノード装置2から、配信能力値を要求する配信能力値要求を受け取った場合である。この配信能力値要求は、上位層のノード装置2が上述した2つ目の条件を満たしたときに、下位層のノード装置2に対して送信するものである。この場合、配信能力値要求を受け取ったノード装置2が入替対象の候補になるから、配信能力値の算出時期の条件としている。ただし、この条件は、下位層のノード装置2から上位層のノード装置2に入れ替わる場合の条件であるので、自身が属している階層よりも上位層の階層に入れ替わることがないノード装置2、つまり第1階層のノード装置2は、この1つ目の条件に合致することはない。
さて、図4のステップSA1において、制御部11は、配信能力値を算出する時期が到来したと判断すると(ステップSA1;YES)、その到来理由を判定する(ステップSA2)。そして、その理由が、CPUが実行中のプログラムを終了したことである場合には(ステップSA2;プログラム終了)、制御部11は、後述する配信能力値算出処理を行う(ステップSA3)。次に、制御部11は、上位層のノード装置2に対して入替判定要求を送信する(ステップSA4)。そして、制御部11は、その入替判定要求に応答する許諾応答を上位層のノード装置2から受信すると(ステップSA5;YES)、上位層のノード装置2に対して、ステップSA3にて算出した配信能力値を送信する(ステップSA6)。
また、ステップSA2において、制御部11は、CPUが新たなプログラムを起動したことが理由であると判定した場合には(ステップSA2;プログラム起動)、配信能力値算出処理を行う(ステップSA7)。次に、制御部11は、下位層のノード装置2に対して配信能力値要求を送信し(ステップSA8)、その要求に応じて下位層のノード装置2から送信されてくる配信能力値を受信し、RAMに記憶する(ステップSA9)。
また、ステップSA2において、制御部11は、下位層のノード装置2から入替判定要求を受信したことが理由であると判定した場合には(ステップSA2;入替判定要求の受信)、下位層のノード装置2に対し、その入替判定要求を受け入れたことを意味する許諾応答を送信する(ステップSA10)そして、制御部11は、その許諾応答に応じて下位層のノード装置2から送信されてくる配信能力値を受信すると(ステップSA11;YES)、これをRAMに記憶してから、自身の配信能力値算出処理を行う(ステップSA12)。
また、ステップSA2において、制御部11は、上位層のノード装置2から配信能力値要求を受信したことが理由であると判定した場合には(ステップSA2;配信能力値要求の受信)、配信能力値算出処理を行い(ステップSA13)、算出した配信能力値を上位層のノード装置2へ送信する(ステップSA14)。
制御部11は、以上のステップSA1〜SA14の処理を繰り返し実行する。
制御部11は、以上のステップSA1〜SA14の処理を繰り返し実行する。
次に、図5は、上述した配信能力値算出処理を表すフローチャートである。
図5において、ノード装置2の制御部11は、まず、CPUにおける配信プログラム及びアイドリングプロセスの占有率を特定する(ステップSB1)。ここで、“CPUにおける配信プログラムの占有率”とは、配信プログラムの実行に要するCPUの処理能力がそのCPUの全処理能力に占める割合のことである。また、“CPUにおけるアイドリングプロセスの占有率”とは、CPUの全処理能力のうち使用していない処理能力が占める割合のことである。例えば、配信プログラムの実行に要しているCPUの占有率が20%であり、その他のプログラムの実行に要しているCPUの占有率が30%である場合、アイドリングプロセスの占有率は100−20−30=50%となる。この場合、配信プログラム及びアイドリングプロセスの占有率は20+50=70%となる。これは、CPUの処理能力の70%を配信プログラムに充当可能、ということを意味している。
図5において、ノード装置2の制御部11は、まず、CPUにおける配信プログラム及びアイドリングプロセスの占有率を特定する(ステップSB1)。ここで、“CPUにおける配信プログラムの占有率”とは、配信プログラムの実行に要するCPUの処理能力がそのCPUの全処理能力に占める割合のことである。また、“CPUにおけるアイドリングプロセスの占有率”とは、CPUの全処理能力のうち使用していない処理能力が占める割合のことである。例えば、配信プログラムの実行に要しているCPUの占有率が20%であり、その他のプログラムの実行に要しているCPUの占有率が30%である場合、アイドリングプロセスの占有率は100−20−30=50%となる。この場合、配信プログラム及びアイドリングプロセスの占有率は20+50=70%となる。これは、CPUの処理能力の70%を配信プログラムに充当可能、ということを意味している。
次に、制御部11は、RAMにおいて、配信プログラム及びアイドリングプロセスに割り当て可能な記憶領域のサイズを算出する(ステップSB2)。例えば、RAMにおいて配信プログラム及びその実行に使用するデータが記憶されている領域が全体の35%であり、その他のプログラム及びその実行に使用するデータが記憶されている領域が全体の30%である場合、アイドリングプロセスの占有率は100−35−30=35%となる。この場合、配信プログラム及びアイドリングプロセスに割り当て可能な記憶領域のサイズは、RAM全体の35+35=70%となる。これは、RAMの記憶領域の70%を配信プログラムに充当可能、ということを意味する。
次に、制御部11は、入替対象ノード装置群に含まれるノード装置2のIPアドレス(自ノード装置のIPアドレスは除く)をRAMから読み出す(ステップSB3)。このときの読み出し対象となるIPアドレスは、自ノード装置が上位層のノード装置2と入れ替えられる場合と、下位層のノード装置2と入れ替えられる場合とで異なる。例えば自ノード装置を図2のノード装置2cとすると、自ノード装置が上位層のノード装置2と入れ替えられる場合は、図2の入替対象ノード装置群G1に含まれるノード装置(ノード装置2a)のIPアドレスが読み出し対象となる。一方、自ノード装置が下位層のノード装置2と入れ替えられる場合は、図2の入替対象ノード装置群G2に含まれるノード装置(ノード装置2g,2h,2i)のIPアドレスが読み出し対象となる。
次に、制御部11は、転送速度測定用のパケットをそれらのIPアドレスに向けて送信すると共に、その送信時刻を記憶する(ステップSB4)。そして、各IPアドレスが割り当てられた全てのノード装置2から応答パケットを受信すると(ステップSB5;YES)、各々の受信時刻から送信時刻を差し引いて転送所要時間を算出する。制御部11は、転送速度測定用のパケットの送信先となる全てのノード装置2から応答パケットを受信し、各々の転送所要時間を算出すると、ステップSB1,SB2,SB5にて算出した占有率、記憶領域のサイズ及び転送所要時間を、以下の式Aに代入して、配信能力値を算出する(ステップSB6)。
配信能力値=k1×f1(α)+k2×f2(β)+k3×f3(γ)・・・(A)
ここで、
α=配信プログラムに充当可能なCPUの占有率×CPUのクロック数
β=配信プログラムに充当可能なRAMの記憶領域のサイズ
γ=入替対象ノード装置群との間の転送所要時間の平均値
k1,k2,k3=重み係数
である。
ここで、
α=配信プログラムに充当可能なCPUの占有率×CPUのクロック数
β=配信プログラムに充当可能なRAMの記憶領域のサイズ
γ=入替対象ノード装置群との間の転送所要時間の平均値
k1,k2,k3=重み係数
である。
上記A式において、f1(α)、f2(β)、f3(γ)はそれぞれ、α、β、γが入力されると、そのα、β、γに応じて、配信能力値として適切な指標値を出力する関数である。最も簡易な関数の例としては、入力されたα、β、γをそのまま出力するような関数が考えられるが、より望ましくは、これらα、β、γから、配信能力値の比較が容易になるように正規化された値が出力されるような関数であるとよい。つまり、f1(α)は、配信プログラムに充当可能なCPUの占有率×CPUのクロック数を正規化する関数であり、f2(β)は、配信プログラムに充当可能なRAMの記憶領域のサイズを正規化する関数であり、f3(γ)は、入替対象ノード装置群との間の転送所要時間の平均値を正規化する関数であるとよい。これらの正規化関数を用いることにより、制御部11は、自ノード装置を含む各ノード装置2の配信能力値をより公平に比較することができる。
そして、制御部11は算出した配信能力値をRAMに記憶する。そして、自ノード装置が、入替対象ノード装置群のうち下位層のノード装置2である場合には、制御部11は、上位層のノード装置2に対して、配信能力値を送信する。
次に、図6は、ノード装置2の制御部11が実行する入替判定処理を表すフローチャートである。
この入替判定処理は、入替対象ノード装置群のうちの上位層のノード装置2が実行する処理である。図6において、ノード装置2の制御部11は、自身が算出した“自ノード装置の配信能力値”と、下位層のノード装置2から取得した“他ノード装置の配信能力値”とを比較する(ステップSC1)。この比較の結果、自ノード装置の配信能力値よりも他ノード装置の配信能力値が上回っている場合には(ステップSC2;YES)、制御部11は、自身のバッファメモリ13を参照して、コンテンツデータの書き込みメモリアドレスと読み出しメモリアドレスとの差分から、コンテンツデータのバッファリング量を特定する(ステップSC3)。なお、このとき、下位層の複数のノード装置2から配信能力値を取得した場合には、下位層の複数のノード装置2から取得した配信能力値のうち少なくともいずれか1つが、自ノード装置の指標値を上回ると、ステップSC2の判定結果はYESとなる。この場合、制御部11は、自ノード装置の配信能力値を上回り、かつ、それらのうちで最大値となる配信能力値を特定し、その配信能力値を有する他ノード装置を、階層の入替候補となるノード装置2として、以下の処理を実行する。
この入替判定処理は、入替対象ノード装置群のうちの上位層のノード装置2が実行する処理である。図6において、ノード装置2の制御部11は、自身が算出した“自ノード装置の配信能力値”と、下位層のノード装置2から取得した“他ノード装置の配信能力値”とを比較する(ステップSC1)。この比較の結果、自ノード装置の配信能力値よりも他ノード装置の配信能力値が上回っている場合には(ステップSC2;YES)、制御部11は、自身のバッファメモリ13を参照して、コンテンツデータの書き込みメモリアドレスと読み出しメモリアドレスとの差分から、コンテンツデータのバッファリング量を特定する(ステップSC3)。なお、このとき、下位層の複数のノード装置2から配信能力値を取得した場合には、下位層の複数のノード装置2から取得した配信能力値のうち少なくともいずれか1つが、自ノード装置の指標値を上回ると、ステップSC2の判定結果はYESとなる。この場合、制御部11は、自ノード装置の配信能力値を上回り、かつ、それらのうちで最大値となる配信能力値を特定し、その配信能力値を有する他ノード装置を、階層の入替候補となるノード装置2として、以下の処理を実行する。
次に、制御部11は、入替対象ノード装置群に含まれるノード装置2(自ノード装置は除く)に対してバッファリング量を要求する。その要求を受け取った他ノード装置の制御部11は、それぞれ自身のバッファメモリ13を参照し、書き込みメモリアドレスと読み出しメモリアドレスとの差分から、コンテンツデータのバッファリング量を特定する。そして、他ノード装置の制御部11は、その要求元である上位層のノード装置2に対して、特定したバッファリング量を送信する。
上位層のノード装置2の制御部11は、入替対象ノード装置群の下位のノード装置2の全てからバッファリング量を受信すると(ステップSC4)、自ノード装置のバッファリング量及び下位層のノード装置2から取得したバッファリング量と、閾値とを比較する(ステップSC5)。そして、制御部11は、それらのバッファリング量の全てが閾値を超えているか否かを判断する(ステップSC6)。この閾値は、前述のとおり、少なくとも、階層の入替処理に要する期間にわたって再生されるコンテンツデータのデータ量以上の値であり、実験或いは計算により予め決められたものである。
そして、制御部11は、自装置のバッファリング量及び下位層のノード装置2から取得したバッファリング量の全てが閾値を超えている場合には(ステップSC6;YES)、自ノード装置が属する階層と、入替対象の候補となるノード装置2が属する階層とを入れ替えることを決定する(ステップSC7)。ここでいう「入替対象の候補となるノード装置」とは、入替判定要求を受け取った場合には、その入替判定要求の送信元のノード装置2である。また、下位層の複数のノード装置2から配信能力値を取得した場合には、ステップSC2において特定した、自ノード装置の配信能力値を上回り、かつ、最大値の配信能力値を持つノード装置2のことである。
なお、ステップSC2において、自ノード装置の配信能力値よりも他ノード装置の配信能力値が上回っていない場合には(ステップSC2;NO)、階層を入れ替える必要がないので、制御部11の処理は終了する。また、ステップSC6において、自ノード装置のバッファリング量及び下位層のノード装置2から取得したバッファリング量のうちいずれか1つでも閾値を超えていない場合には(ステップSC6;NO)、その閾値が超えていないノード装置2において、コンテンツデータの再生が途切れる虞があることを意味する。よって、この場合は階層を入れ替えるべきではないということで、制御部11の処理は終了する。
このようにして階層の入れ替えを決定すると、制御部11は、自ノード装置と他ノード装置の階層を入れ替えるための処理を行う。具体的には、制御部11は、入替対象の候補となるノード装置2に対して、自ノード装置の上位層にあるノード装置2又はサーバ装置1のIPアドレスを通知する。これにより、入替対象の候補となるノード装置2は、自身が受け取るコンテンツデータの配信元のノード装置2又はサーバ装置1のIPアドレスを知ることができる。また、制御部11は、入替対象の候補となるノード装置2に対して、自ノード装置の配下にあるノード装置2のIPアドレスを通知する。これにより、入替対象の候補となるノード装置2は、自身が転送するコンテンツデータの転送先のノード装置2のIPアドレスを知ることができる。この後、入替対象の候補となるノード装置2は、コンテンツデータの配信元のノード装置2又はサーバ装置1のIPアドレスに基づいて、そのノード装置2又はサーバ装置1と決められた手順でシェイクハンドを行う。これとともに、入替対象の候補となるノード装置2は、転送先のノード装置2のIPアドレスに基づいてそれらのノード装置2と決められた手順でシェイクハンドを行う。これ以降、ノード装置2(入替対象の候補であったノード装置2)の制御部11は、これらのシェイクハンドによって確立した通信路を用いて、コンテンツデータの送受信を行う。つまり、上位層のノード装置として機能するわけである。
次に、図7は、ネットワークシステム100の一動作例を示すシーケンス図であり、特にサーバ装置1及びノード装置2a,2c,2dの動作を表したものである。
図7において、サーバ装置1はノード装置2aにコンテンツデータを送信している(ステップSD1)。ノード装置2aはそのコンテンツデータを受信すると、それを再生しつつ、ノード装置2c,2dに転送している(ステップSD2,SD3)。ノード装置2c,2dは、そのコンテンツデータを受信すると、それを再生しつつ、さらに配下のノード装置に転送している。
図7において、サーバ装置1はノード装置2aにコンテンツデータを送信している(ステップSD1)。ノード装置2aはそのコンテンツデータを受信すると、それを再生しつつ、ノード装置2c,2dに転送している(ステップSD2,SD3)。ノード装置2c,2dは、そのコンテンツデータを受信すると、それを再生しつつ、さらに配下のノード装置に転送している。
ここで、ノード装置2aにおいて、配信プログラム以外の新たなプログラムが起動された場合(ステップSD4)、ノード装置2aは、図4で説明したとおり、図5の手順で自身の配信能力値を算出する(ステップSD5)。次に、ノード装置2aは、配下のノード装置2c,2dに対して、配信能力値を要求する配信能力値要求を送信する(ステップSD6,SD7)。ノード装置2c,2dは、この要求に応じて、図5の手順で自身の配信能力値を算出し(ステップSD8,SD9)、ノード装置2aに送信する(ステップSD10,SD11)。
ノード装置2aは、配信能力値を受信すると、図6の手順で入替判定処理を行う(ステップSD12)。このとき、ノード装置2aは、ノード装置2c,2dに対してバッファリング量を要求する(ステップSD13,SD14)。その要求を受け取ったノード装置2c,2dは、それぞれのバッファリング量を特定してノード装置2aに送信する(ステップSD15,SD16)。ここで、例えばノード装置2c,2dの配信能力値がいずれもノード装置2aの配信能力値を上回り、且つ、ノード装置2cの配信能力値がノード装置2dの配信能力値よりも大きい場合には、ノード装置2cが階層の入替候補となる。よって、ノード装置2aは、自身が属する階層と、ノード装置2cが属する階層とを入れ替えることを決定する。
そして、ノード装置2aは、入替対象の候補となるノード装置2cに対して、サーバ装置1のIPアドレスを含む入替通知を送信する(ステップSD17)。ノード装置2cは、これを受信すると、入れ替えを許諾する入替許諾応答をノード装置2aに送信する(ステップSD18)。この入替許諾応答には、ノード装置2cの配下にあるノード装置2(図1のノード装置2g,2h,2i)のIPアドレスが含まれている。また、ノード装置2aは、自身の上位の装置であるサーバ装置1に対して、ノード装置2cのIPアドレスを含む転送先変更通知を送信する(ステップSD19)。サーバ装置1は、これを受信すると、転送先を変更することを許諾する許諾応答をノード装置2aに送信する(ステップSD20)。
一方、ノード装置2cは、通知されたノード装置2dのIPアドレスに基づいて、ノード装置2dと決められた手順でシェイクハンドを行う(ステップSD21)。また、ノード装置2cは、通知されたサーバ装置1のIPアドレスに基づいて、サーバ装置1と決められた手順でシェイクハンドを行う(ステップSD22)。これ以降、サーバ装置1はノード装置2cに対してコンテンツデータを送信する(ステップSD23)。ノード装置2cはそのコンテンツデータを受信すると、それを再生しつつ、ノード装置2a,2dに転送する(ステップSD24,SD25)。ノード装置2dは、そのコンテンツデータを受信すると、それを再生しつつ、それまでと同じように、自身の配下のノード装置に転送する。また、ノード装置2aは、ノード装置2cから受け取った入替許諾応答に含まれていたIPアドレスに基づいて、それまではノード装置2cの配下にいたノード装置(図1のノード装置2g,2h,2i)とシェイクハンドを行ってから、ノード装置2cから受信したコンテンツデータを再生しつつ、それをノード装置2g,2h,2iへ転送する。
このようにして、ノード装置2aが属する階層と、ノード装置2cが属する階層とが入れ替えられることになる。
このようにして、ノード装置2aが属する階層と、ノード装置2cが属する階層とが入れ替えられることになる。
次に、図8は、ネットワークシステム100の別の動作例を示すシーケンス図であり、特にノード装置2a,2c,2g,2h,2iの動作を表したものである。
図8において、ノード装置2aはノード装置2cにコンテンツデータを送信している(ステップSE1)。ノード装置2cはそのコンテンツデータを受信すると、それを再生しつつ、ノード装置2g,2h,2iに転送している(ステップSE2,SE3,SE4)。
図8において、ノード装置2aはノード装置2cにコンテンツデータを送信している(ステップSE1)。ノード装置2cはそのコンテンツデータを受信すると、それを再生しつつ、ノード装置2g,2h,2iに転送している(ステップSE2,SE3,SE4)。
ここで、ノード装置2gにおいて、配信プログラム以外のプログラムが終了した場合(ステップSE5)、ノード装置2gは、図4で説明したとおり、図5の手順に従って自身の配信能力値を算出する(ステップSE6)。次に、ノード装置2gは、入れ替え判定を要求する入替判定要求をノード装置2cに送信する(ステップSE7)。ノード装置2cはこれを受信すると、その要求を受け入れる許諾応答をノード装置2gに送信する(ステップSE8)。これに応じて、ノード装置2gは、算出しておいた配信能力値をノード装置2cに送信する(ステップSE9)。一方、ノード装置2cも図5の手順に従って自身の配信能力値を算出する(ステップSE10)。
次に、ノード装置2cは、図6の手順に従って入替判定処理を行う(ステップSE11)。このとき、ノード装置2cは、制御部11は、ノード装置2g,2h,2iに対してバッファリング量を要求する(ステップSE12,SE13,SE14)。その要求を受け取ったノード装置2g,2h,2iは、それぞれのバッファリング量を特定してノード装置2cに送信する(ステップSE15,SE16,SE17)。ここで、ノード装置2cは、入替判定処理の結果、自身が属する階層と、ノード装置2gが属する階層とを入れ替えることを決定した場合、入替対象の候補となるノード装置2gに対して、ノード装置2aのIPアドレスを含む入替通知を送信する(ステップSE18)。ノード装置2gは、これを受信すると、入れ替えを許諾する入替許諾応答をノード装置2cに送信する(ステップSE20)。また、ノード装置2cは、自身の上位の装置であるノード装置2aに対して、ノード装置2gのIPアドレスを含む転送先変更通知を送信する(ステップSE19)。ノード装置2aは、これを受信すると、転送先を変更することを許諾する許諾応答をノード装置2cに送信する(ステップSE21)。
そして、ノード装置2gは、ノード装置2h,2iのIPアドレスに基づいて、ノード装置2h,2iと決められた手順でシェイクハンドを行う(ステップSE22,SE23)。また、ノード装置2gは、ノード装置2aのIPアドレスに基づいて、ノード装置2aと決められた手順でシェイクハンドを行う(ステップSE24)。これ以降、ノード装置2aはノード装置2gにコンテンツデータを送信する(ステップSE25)。ノード装置2gはそのコンテンツデータを受信すると、それを再生しつつ、ノード装置2c,2h,2iに転送する(ステップSE26,SE27,SE28)。
このようにして、ノード装置2cが属する階層と、ノード装置2gが属する階層とが入れ替えられることになる。
このようにして、ノード装置2cが属する階層と、ノード装置2gが属する階層とが入れ替えられることになる。
以上に説明した実施形態によれば、入替対象となるノード装置群に含まれる全てのノード装置2が、十分な量のコンテンツデータをバッファリングしている場合に限って、階層の入替処理を実行する。よって、各ノード装置2においてコンテンツデータの再生が途切れることがない。このように、ネットワークシステム100を構成するノード装置2は、情報配信能力に応じた階層の入れ替えを自律的且つ動的に行うことで、情報配信能力が相対的に低いノード装置2がボトルネックになってしまうような事態を防止し、ネットワーク内の配信効率を向上させることができる。
[変形例]
上記実施形態を次のように変形してもよい。
配信能力値の算出時には、自ノード装置が有するハードウェア資源のうち、情報の配信処理に割り当てられるハードウェア資源の割合を測定する以外にも、その割り当て可能なハードウェア資源の量そのものを用いてもよい。つまり、制御部11は、自ノード装置が有するハードウェア資源のうち、情報の配信処理に割り当てられるハードウェア資源の量乃至割合に基づいて配信能力値を算出すればよい。また、制御部11は、上述した配信能力値の算出タイミングに限らず、例えば所定期間が経過するたびに配信能力値を算出してもよい。なお、各ノード装置2の配信能力値を算出・比較する方法については、上記の方法以外にも、例えば「Standard Performance Evalution Corporation(SPEC)[http://www.spec.org/]」など、様々な周知技術があるので、それらのうち適切なものを用いればよい。
実施形態では、入替判定処理を、入替対象ノード装置群のうちの上位層のノード装置2が実行していたが、これに限らず、入替対象ノード装置群のうちの下位層のノード装置2が実行してもよい。
また、実施形態では、入替対象ノード装置群を2つの階層に跨るノード装置群としていたが、これをさらに3つの階層(又はそれ以上の数の階層)に跨るノード装置群としてもよい。この場合、この入替対象ノード装置群に属する各ノード装置2が、上述した手順と同様に、お互いの配信能力値やバッファリング量を遣り取りして階層を入れ替えるべきかどうかを判断する。つまり、自ノード装置の階層を含む3つの階層にそれぞれ属する他ノード装置の指標値及びバッファリング量を取得し、他ノード装置が属する3つの階層のいずれかの階層と、自ノード装置が属する階層とを入れ替える処理を行うのである。
実施形態の例では、上位層のノード装置2の配下には必ず複数のノード装置2があったが、必ずしもそうである必要はなく、上位層のノード装置2と下位層のノード装置2とが1対1であってもよい。この場合であっても、上位層のノード装置2は、再生処理と並行して転送処理を行うので、上位層のノード装置2には、転送処理の必要がない下位層のノード装置2よりは高い情報配信能力が必要とされる。
上述した制御部11が実行するプログラムは、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、CD(Compact Disk)、DVD(Digital Versatile Disk)、RAMなどの記録媒体に記録した状態で提供し得る。即ち、本発明をプログラムとして実現することもできる。
上記実施形態を次のように変形してもよい。
配信能力値の算出時には、自ノード装置が有するハードウェア資源のうち、情報の配信処理に割り当てられるハードウェア資源の割合を測定する以外にも、その割り当て可能なハードウェア資源の量そのものを用いてもよい。つまり、制御部11は、自ノード装置が有するハードウェア資源のうち、情報の配信処理に割り当てられるハードウェア資源の量乃至割合に基づいて配信能力値を算出すればよい。また、制御部11は、上述した配信能力値の算出タイミングに限らず、例えば所定期間が経過するたびに配信能力値を算出してもよい。なお、各ノード装置2の配信能力値を算出・比較する方法については、上記の方法以外にも、例えば「Standard Performance Evalution Corporation(SPEC)[http://www.spec.org/]」など、様々な周知技術があるので、それらのうち適切なものを用いればよい。
実施形態では、入替判定処理を、入替対象ノード装置群のうちの上位層のノード装置2が実行していたが、これに限らず、入替対象ノード装置群のうちの下位層のノード装置2が実行してもよい。
また、実施形態では、入替対象ノード装置群を2つの階層に跨るノード装置群としていたが、これをさらに3つの階層(又はそれ以上の数の階層)に跨るノード装置群としてもよい。この場合、この入替対象ノード装置群に属する各ノード装置2が、上述した手順と同様に、お互いの配信能力値やバッファリング量を遣り取りして階層を入れ替えるべきかどうかを判断する。つまり、自ノード装置の階層を含む3つの階層にそれぞれ属する他ノード装置の指標値及びバッファリング量を取得し、他ノード装置が属する3つの階層のいずれかの階層と、自ノード装置が属する階層とを入れ替える処理を行うのである。
実施形態の例では、上位層のノード装置2の配下には必ず複数のノード装置2があったが、必ずしもそうである必要はなく、上位層のノード装置2と下位層のノード装置2とが1対1であってもよい。この場合であっても、上位層のノード装置2は、再生処理と並行して転送処理を行うので、上位層のノード装置2には、転送処理の必要がない下位層のノード装置2よりは高い情報配信能力が必要とされる。
上述した制御部11が実行するプログラムは、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、CD(Compact Disk)、DVD(Digital Versatile Disk)、RAMなどの記録媒体に記録した状態で提供し得る。即ち、本発明をプログラムとして実現することもできる。
100・・・ネットワークシステム、1・・・サーバ装置、2a〜2x・・・ノード装置、11・・・制御部、12・・・記憶部、13・・・バッファメモリ、19・・・通信部。
Claims (10)
- ネットワークを介して通信を行う通信手段と、
情報を記憶する記憶手段と、
前記ネットワークにおいて自ノード装置が属する階層の上位層から配信されてくる情報を、前記通信手段によって受信すると、当該情報を前記記憶手段にバッファリングしてから当該記憶手段より読み出して再生する再生手段と、
前記記憶手段における情報のバッファリング量を特定する特定手段と、
自ノード装置の情報配信能力を表す指標値を算出する算出手段と、
自ノード装置の上位層又は下位層に属する他ノード装置の前記指標値及び前記バッファリング量を取得する取得手段と、
前記取得手段によって取得された他ノード装置の指標値が、前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記他ノード装置が属する階層とを入れ替える処理を行う入替手段と
を備えることを特徴とするノード装置。 - 前記算出手段は、
自ノード装置が有するハードウェア資源のうち、情報の配信処理に割り当てられるハードウェア資源の量乃至割合を測定する第1の測定手段と、
自ノード装置が属する階層が入れ替わったときに通信相手となる他ノード装置と、自ノード装置との間の情報転送速度を測定する第2の測定手段と、
前記第1の測定手段による測定結果と、前記第2の測定手段による測定結果とに基づいて、自ノード装置の情報配信能力を表す指標値を計算する計算手段とを有する
ことを特徴とする請求項1記載のノード装置。 - 前記算出手段は、自ノード装置においてプログラムが新たに起動させられた場合、又は、自ノード装置において実行されているプログラムが終了した場合に、前記指標値を算出する
ことを特徴とする請求項1記載のノード装置。 - 前記算出手段は、自ノード装置の上位層又は下位層に属する他ノード装置から要求があった場合に前記指標値を算出する
ことを特徴とする請求項1記載のノード装置。 - 前記算出手段は、所定期間が経過するたびに前記指標値を算出する
ことを特徴とする請求項1記載のノード装置。 - 自ノード装置の下位層に属する他ノード装置が複数あり、そのうちいずれか1つの他ノード装置が自ノード装置との階層の入替候補であるときに、
前記取得手段は、
前記階層の入替候補となる他ノード装置の前記指標値及び前記バッファリング量を取得する第1の取得手段と、
自ノード装置の下位層に属する他ノード装置のうち、前記階層の入替候補となる他ノード装置以外の他ノード装置の前記バッファリング量を取得する第2の取得手段とを有し、
前記入替手段は、前記第1の取得手段によって取得された他ノード装置の指標値が、前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記第1の取得手段及び前記第2の取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記階層の入替候補となる他ノード装置が属する階層とを入れ替える処理を行う
ことを特徴とする請求項1記載のノード装置。 - 自ノード装置の下位層に属する他ノード装置が複数あるときに、
前記取得手段は、自ノード装置の下位層に属する複数の他ノード装置の前記指標値及び前記バッファリング量を取得し、
前記入替手段は、前記取得手段によって取得された複数の他ノード装置の指標値のうち、少なくともいずれか1つが前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記取得手段によって取得された複数の指標値のうち最大値の指標値を持つ他ノード装置が属する階層とを入れ替える処理を行う
ことを特徴とする請求項1記載のノード装置。 - 前記取得手段は、自ノード装置の階層を含む3つの階層にそれぞれ属する他ノード装置の前記指標値及び前記バッファリング量を取得し、
前記入替手段は、他ノード装置が属する前記3つの階層のいずれかの階層と、自ノード装置が属する階層とを入れ替える処理を行う
ことを特徴とする請求項1記載のノード装置。 - 情報を配信する情報配信装置と、
前記情報配信装置の配下に階層的に接続された複数のノード装置とを備え、
前記複数のノード装置の各々が、
通信を行う通信手段と、
情報を記憶する記憶手段と、
自ノード装置が属する階層の上位層から配信されてくる情報を、前記通信手段によって受信すると、当該情報を前記記憶手段にバッファリングしてから当該記憶手段より読み出して再生する再生手段と、
前記記憶手段における情報のバッファリング量を特定する特定手段と、
自ノード装置の情報配信能力を表す指標値を算出する算出手段と、
自ノード装置の上位層又は下位層に属する他ノード装置の前記指標値及び前記バッファリング量を取得する取得手段と、
前記取得手段によって取得された他ノード装置の指標値が、前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記他ノード装置が属する階層とを入れ替える処理を行う入替手段と
を備えることを特徴とするネットワークシステム。 - ネットワークを介して通信を行う通信手段と、情報を記憶する記憶手段とを備えたコンピュータを、
前記ネットワークにおいて自ノード装置が属する階層の上位層から配信されてくる情報を、前記通信手段によって受信すると、当該情報を前記記憶手段にバッファリングしてから当該記憶手段より読み出して再生する再生手段と、
前記記憶手段における情報のバッファリング量を特定する特定手段と、
自ノード装置の情報配信能力を表す指標値を算出する算出手段と、
自ノード装置の上位層又は下位層に属する他ノード装置の前記指標値及び前記バッファリング量を取得する取得手段と、
前記取得手段によって取得された他ノード装置の指標値が、前記算出手段によって算出された自ノード装置の指標値を上回り、且つ、前記取得手段によって取得された他ノード装置のバッファリング量及び前記特定手段によって特定された自ノード装置のバッファリング量がそれぞれ閾値を超えた場合には、自ノード装置が属する階層と、前記他ノード装置が属する階層とを入れ替える処理を行う入替手段と
して機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007209974A JP2009044661A (ja) | 2007-08-10 | 2007-08-10 | ノード装置、ネットワークシステム及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007209974A JP2009044661A (ja) | 2007-08-10 | 2007-08-10 | ノード装置、ネットワークシステム及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009044661A true JP2009044661A (ja) | 2009-02-26 |
Family
ID=40444865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007209974A Pending JP2009044661A (ja) | 2007-08-10 | 2007-08-10 | ノード装置、ネットワークシステム及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009044661A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014194782A (ja) * | 2009-06-30 | 2014-10-09 | Nec Europe Ltd | 警報メッセージの配信をサポートする方法 |
US10171258B2 (en) | 2009-12-07 | 2019-01-01 | International Business Machines Corporation | Data collection method and system |
JPWO2020026361A1 (ja) * | 2018-07-31 | 2021-05-13 | 富士通株式会社 | 制御装置、通信装置及び通信システム |
-
2007
- 2007-08-10 JP JP2007209974A patent/JP2009044661A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014194782A (ja) * | 2009-06-30 | 2014-10-09 | Nec Europe Ltd | 警報メッセージの配信をサポートする方法 |
US10171258B2 (en) | 2009-12-07 | 2019-01-01 | International Business Machines Corporation | Data collection method and system |
JPWO2020026361A1 (ja) * | 2018-07-31 | 2021-05-13 | 富士通株式会社 | 制御装置、通信装置及び通信システム |
JP7131613B2 (ja) | 2018-07-31 | 2022-09-06 | 富士通株式会社 | 制御装置、通信装置及び通信システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5122025B2 (ja) | 中継器およびチップ回路 | |
JP4421156B2 (ja) | 画像再生装置および画像記録再生装置 | |
EP1492295B1 (en) | Stream data processing device, stream data processing method, program, and medium | |
CN100370450C (zh) | 网络系统、分布式处理方法和信息处理装置 | |
JP2010157943A (ja) | テレビ会議システム、帯域制御方法、会議制御装置、テレビ会議端末装置及びプログラム | |
JP2006526850A (ja) | ピアツーピアネットワークのためのコンテンツ分散型オーバーレイネットワーク | |
RU2466451C2 (ru) | Управление цифровыми данными с помощью пула совместно используемой памяти | |
JP2009044661A (ja) | ノード装置、ネットワークシステム及びプログラム | |
US20080071933A1 (en) | Processor | |
CN100428128C (zh) | 多系统网络和对数据存储器进行存取的设备及方法 | |
JP5232104B2 (ja) | マルチメディア処理制御装置 | |
KR20090083067A (ko) | 데이터 전송 방법 및 장치와 작업 수행 방법 및 장치 | |
JP2008020934A (ja) | カラオケ装置 | |
JP4728083B2 (ja) | メディア処理装置 | |
JP4952348B2 (ja) | コンテンツ推薦装置及びコンテンツ推薦プログラム | |
JP2007052668A (ja) | 情報処理システム及び情報処理方法 | |
JP2006033396A (ja) | 送信装置、受信装置、通信システム、送信方法、受信方法、送信プログラム、受信プログラム及びサーバ装置 | |
JP2022014662A (ja) | 通信制御装置、通信制御方法および通信制御プログラム | |
CN103220481A (zh) | 图像显示装置以及图像显示方法 | |
JP2008234423A (ja) | シナリオ実行方法、及び、シナリオサーバ装置 | |
JP2006277530A (ja) | 割当システム、割当装置、割当方法及びそのプログラム | |
JP2005531186A5 (ja) | ||
CN100511191C (zh) | 便携式记录和/或播放设备及其操作方法 | |
JP4538161B2 (ja) | 映像音声処理装置 | |
KR100628319B1 (ko) | 블루투스 AV 기기와 UPnP AV 기기를 제어하는통합 AV 제어 방법 및 장치 |