説明

ピア及び負荷調整プログラム

【課題】コンテンツの再生中に他の複数の動作を並列に実行しても、コンテンツの再生品質を維持できるピアを提供する。
【解決手段】演算処理部11は各アプリケーション12〜14から出力される受信命令、配信命令及び再生命令をそれらの優先度に応じて並列で実行する。プロセスマネージャ15は演算処理部11が実行中の命令をプロセスリストに登録する。プロセスマネージャ15はさらに、実行中の全ての命令により演算処理部11にかかる総負荷率を管理する。総負荷率が100%を超える場合、実行中の命令のうち再生命令を除く命令、すなわち受信命令及び/又は配信命令の優先度を下げる。又は受信命令及び/又は配信命令の実行を停止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ピア及び負荷調整プログラムに関し、さらに詳しくは、1又は2以上のピアに接続可能なピア及び負荷調整プログラムに関する。
【背景技術】
【0002】
従来のクライアントサーバ型コンテンツ配信システムでは、コンテンツをサーバに保存しておき、各クライアントからの要求に応じてコンテンツを配信している。しかし、このシステムでは、クライアント数の増大に応じたサーバの強化が必須であり、運用及び管理コストの増大は避けられない。
【0003】
一方、近年隆盛を見せているピアツーピア型コンテンツ配信システムでは、コンテンツをピア間で配信するため、コンテンツの配信負荷が各ピアに分散される。そのため、このシステムでは、クライアントサーバ型コンテンツ配信システムに比べ、はるかに多くのピア(クライアント)にコンテンツを配信することができる。
【0004】
しかし、各ピアはコンテンツの配信負荷を負うため、コンテンツの再生中に他のピアへコンテンツを配信する場合がある。さらに、コンテンツの再生中に他のピアからコンテンツを受信する場合もある。このように複数の動作を並列に実行すれば、ピア内のプロセッサに過剰に負荷がかかる。そのため、コンテンツの再生にプロセッサを割り当てる時間が短くなり、コンテンツの再生品質が低下し、音切れが発生したり画面がフリーズしたりする。
【特許文献1】特開平5−101019号公報
【特許文献2】特開平6−236285号公報
【特許文献3】特開平7−73052号公報
【特許文献4】特開平9−101902号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の目的は、コンテンツの再生中に他の複数の動作を並列に実行しても、コンテンツの再生品質を維持できるピアを提供することである。
【課題を解決するための手段及び発明の効果】
【0006】
本発明によるピアは1又は2以上の他のピアに接続可能なピアであって、コンテンツ記憶手段と、受信指示手段と、配信指示手段と、演算処理手段と、管理手段とを備える。コンテンツ記憶手段はコンテンツを記憶する。受信指示手段は他のピアから配信されるコンテンツを受信するよう受信命令を出力する。配信指示手段はコンテンツ記憶手段に記憶されたコンテンツを他のピアに配信するよう配信命令を出力する。再生指示手段はコンテンツ記憶手段に記憶されたコンテンツを再生するよう再生命令を出力する。演算処理手段は受信命令と配信命令と再生命令とを受け、受けた命令を並列に実行する。管理手段は、演算処理手段の動作状況を管理する。管理手段は、プロセス記憶手段と、第1の負荷算出手段と、判断手段と、負荷調整手段とを備える。プロセス記憶手段は演算処理手段が実行中の命令を列挙したプロセスリストを記憶する。第1の負荷算出手段は、演算処理手段が再生命令を実行中、プロセスリストに基づいて演算処理手段にかかる負荷を算出する。判断手段は算出した負荷が所定の負荷よりも大きいか否か判断する。負荷調整手段は判断の結果算出した負荷が所定の負荷よりも大きいときプロセスリストに基づいて演算処理手段が実行中の受信命令及び/又は配信命令の実行を停止する。
【0007】
本発明によるピアはプロセスリストに基づいて演算処理手段にかかる負荷を管理する。再生命令を実行中に演算処理手段に過剰な負荷がかかっている場合、受信命令及び/又は
配信命令の実行を停止する。これにより、演算処理手段に過剰な負荷がかかるのを防止でき、演算処理手段が再生命令を支障なく実行できる。そのため、コンテンツの再生品質を維持でき、音切れや画像のフリーズ等の発生を防止できる。
【0008】
好ましくは、第1の負荷算出手段は、演算処理手段が再生命令を実行中、負荷を繰り返し算出する。
【0009】
これにより、算出された負荷が所定の負荷よりも低くなるまで、管理手段は受信命令及び/又は配信命令の実行を停止する。そのため、演算処理手段は再生命令を支障なく実行できる。
【0010】
好ましくは、負荷調整手段は、演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の実行を先に停止する。
【0011】
配信命令の実行を停止すれば、ピアからコンテンツをダウンロード中の他のピアに影響を与える。他のピアに影響を受けない受信命令から先に実行を停止することで、他のピアへの影響を抑える。
【0012】
本発明によるピアは1又は2以上の他のピアに接続可能なピアであって、コンテンツ記憶手段と、受信指示手段と、配信指示手段と、再生指示手段と、演算処理手段と、管理手段とを備える。コンテンツ記憶手段はコンテンツを記憶する。受信指示手段は他のピアから配信されるコンテンツを受信するよう受信命令を出力する。配信指示手段はコンテンツ記憶手段に記憶されたコンテンツを他のピアに配信するよう配信命令を出力する。再生指示手段はコンテンツ記憶手段に記憶されたコンテンツを再生するよう再生命令を出力する。演算処理手段は出力された受信命令と配信命令と再生命令とを受け、受けた命令をそれらの優先度に応じて並列で実行する。管理手段は演算処理手段の動作状況を管理する。管理手段は、プロセス記憶手段と、登録手段と、第1の負荷算出手段と、判断手段と、負荷調整手段とを備える。プロセス記憶手段は演算処理手段が実行中の命令を列挙したプロセスリストを記憶する。第1の負荷算出手段は、演算処理手段が再生命令を実行中、プロセスリストに基づいて演算処理手段にかかる負荷を算出する。判断手段は算出した負荷が所定の負荷よりも大きいか否か判断する。負荷調整手段は、判断の結果算出した負荷が所定の負荷よりも大きいとき演算処理手段が実行中の受信命令及び/又は配信命令の優先度を下げるよう演算処理手段に指示する。
【0013】
本発明によるピアはプロセスリストに基づいて演算処理手段にかかる負荷を管理する。再生命令を実行中に演算処理手段に過剰な負荷がかかっている場合、受信命令及び/又は
配信命令の優先度を下げる。受信命令及び/又は配信命令の優先度を下げることで演算処理手段に過剰な負荷がかかるのを防止する。そのため、演算処理手段が再生命令を支障なく実行でき、コンテンツの再生品質を維持でき、音切れや画像のフリーズ等の発生を防止できる。
【0014】
好ましくは、第1の負荷算出手段は、演算処理手段が再生命令を実行中、負荷を繰り返し算出する。
【0015】
これにより、算出された負荷が所定の負荷よりも低くなるまで、管理手段は受信命令及び/又は配信命令の優先度を下げる。そのため、演算処理手段は再生命令を支障なく実行できる。
【0016】
好ましくは、プロセスリストは、命令の識別情報と、命令により演算処理手段にかかる負荷情報とを含む。
【0017】
この場合、プロセスリストには各命令の識別情報及び負荷情報が含まれるため、管理手段は優先度を下げる受信命令及び/又は配信命令を特定できる。
【0018】
好ましくは、負荷調整手段は、演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の優先度を先に下げる。
【0019】
配信命令の優先度を下げれば、ピアからコンテンツをダウンロード中の他のピアに影響を与える。他のピアに影響を受けない受信命令から先に優先度を下げることで、他のピアへの影響を抑える。
【0020】
好ましくは、プロセスリストはさらに、識別情報に対応した命令の優先度情報を含み、管理手段はさらに、更新手段を含む。更新手段は、負荷調整手段が優先度を下げるよう指示するごとにプロセスリスト記憶手段に記憶された優先度情報を更新する。第1の負荷算出手段は、負荷情報と優先度情報とに基づいて負荷を算出する。
【0021】
この場合、第1の負荷算出手段は優先度を考慮して負荷を算出する。優先度を下げるごとに優先度情報も更新されるため、第1の負荷算出手段は優先度を下げた結果を反映して負荷を算出できる。
【0022】
好ましくは、判断手段はさらに、プロセスリストに基づいて優先度を下げることができる受信命令及び配信命令があるか否かを判断し、負荷調整手段はさらに、判断の結果算出された負荷が所定の負荷よりも大きく、かつ、優先度を下げることができる受信命令及び配信命令がないとき、プロセスリストに基づいて演算処理手段が実行中の受信命令及び/又は配信命令の実行を停止する。
【0023】
この場合、受信命令及び/又は配信命令の優先度を下げてもなお演算処理手段の負荷が過剰であれば、管理手段は受信命令及び/又は配信命令の実行を終了する。これにより、演算処理手段にかかる負荷を抑え、実行中の再生命令に支障がでないようにする。
【0024】
好ましくは、負荷調整手段は、演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の実行を先に停止する。
【0025】
この場合、受信命令から先に実行を停止するため、他のピアへの影響を抑えることができる。
【0026】
好ましくは、配信指示手段はさらに、取得手段と配信拒否手段とを含む。取得手段は、他のピアから配信要求を受けたときプロセスリスト記憶手段からプロセスリストを取得する。配信拒否手段は、取得したプロセスリストに登録された配信命令の数が所定数よりも多いとき他のピアへのコンテンツの配信を拒否する。
【0027】
所定の数よりも多い数の配信命令が既に実行中の場合、新たな配信命令をさらに実行すれば、演算処理手段の負荷が過剰になる。配信を拒否することにより演算処理手段に過剰な負荷がかかるのを防止できる。
【0028】
好ましくは、配信指示手段はさらに、第2の負荷算出手段を含む。負荷算出手段は取得したプロセスリストに基づいて演算処理手段にかかる負荷を算出する。配信拒否手段はさらに、算出された負荷が所定の負荷よりも大きいときコンテンツの配信を拒否する。
【0029】
この場合、配信指示手段は他のピアから配信要求を受けたとき、演算処理手段の負荷に基づいて配信を拒否できる。そのため、演算処理手段に過剰な負荷がかかるのを抑制できる。
【発明を実施するための最良の形態】
【0030】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【0031】
1.ピアの構成
図1を参照して、本発明の実施の形態によるピア1は、複数の他のピア1と接続されピアツーピア型コンテンツ配信システムを構成する。複数のコンテンツはピア1間で相互に転送され、各ピア1に配信される。
【0032】
ピア1は、コンテンツデータベース10と、演算処理部11と、受信アプリケーション12と、配信アプリケーション13と、再生アプリケーション14と、プロセスマネージャ15と、プロセスリストデータベース16とを備える。
【0033】
コンテンツデータベース10は1又は2以上のコンテンツファイルを保存する。受信アプリケーション12は他のピア1から所望のコンテンツをダウンロードしてコンテンツデータベース10に保存するよう受信命令を出力する。
【0034】
配信アプリケーション13は、他のピア1からコンテンツの配信要求を受け、コンテンツデータベース10内のコンテンツを他のピア1にアップロードするよう配信命令を出力する。
【0035】
再生アプリケーション14は、コンテンツデータベース10から所望のコンテンツをストリーミング方式で読み出し、そのコンテンツに基づいて音声や映像を再生するよう再生命令を出力する。
【0036】
演算処理部11は各アプリケーション12〜14から出力された受信命令、配信命令及び再生命令を受け、各命令を並列に実行する。演算処理部11は実行中の全ての命令を管理する。演算処理部11はさらに、受けた命令の各々に優先度を付与し、優先度の高い命令ほど実行時間を長くする。
【0037】
プロセスマネージャ15は、演算処理部11にかかる負荷を監視し、演算処理部11の負荷が過剰であれば、再生命令を除く実行中の命令の優先度を下げたり、命令の実行を停止したりする。
【0038】
プロセスマネージャ15はプロセスリストデータベース16に表1に示すプロセスリストPLを登録する。
【表1】

【0039】
プロセスリストPLには、命令番号i(iは自然数)と命令番号iに対応したプロセス情報PIiとが登録される。命令番i号は演算処理部11が実行中の命令に付与される番号である。また、プロセス情報PIiは命令番号iの命令(以下、命令iともいう)に関する情報である。プロセス情報PIiを表2に示す。
【表2】

【0040】
プロセス情報PIi中の「id」には、その命令iの識別情報が登録される。「type」にはその命令がどのアプリケーション12〜14のいずれに属しているかを示す属性情報が登録される。具体的には、命令iが受信命令であれば「receiver」、配信命令であれば「delivery」、再生命令であれば「play」が登録される。
【0041】
「load」には命令iにより演算処理部11にかかる予想負荷率が登録される。予想負荷率は命令ごとに予め設定されている。たとえば受信命令の予想負荷率は「10」%、配信命令の予想負荷率は「30」%である。
【0042】
「priority」には命令iの優先度情報が登録される。プロセス情報PIiがプロセスリストPLに登録された当初、優先度情報は「1」である。後述するようにプロセスマネージャ15により実行中の命令の優先度が下げられたとき、その優先度情報も下げられる。本実施の形態では、プロセスマネージャ15により優先度情報は「1」から「0.8」に下げられる。
【0043】
図2は一般的なコンピュータの構成図である。コンピュータ20は、ハードディスク21と、CPU22と、CRTやLCD等のディスプレイ23と、メモリ24と、LANコントローラ25と、マウスやキーボード等の入力装置26とを備える。これらは相互にバスで接続される。ハードディスク21にオペレーティングシステム30と、図1中の受信アプリケーション12と、配信アプリケーション13と、再生アプリケーション14と、プロセスマネージャ15とをインストールすることにより、コンピュータ20はピア1として機能する。ここで、図2中のオペレーティングシステム30とメモリ24とCPU22とは図1中の演算処理部11として機能する。Windows(登録商標)やLinux(商標)に代表されるオペレーティングシステム30は、複数の命令をCPU22に並列に実行させる機能を有する。具体的には、オペレーティングシステム30は、各アプリケーション12〜14から出力される複数の命令を管理するためのプロセススケジューラを有し、プロセススケジューラにより複数の命令をCPU22に並列実行させる。このとき、オペレーティングシステム30はCPU22が実行中の命令に優先度を付与し、優先度に応じてCPU22の実行時間を変更する。
【0044】
図1中のコンテンツデータベース10とプロセスリストデータベース16とは図2中のハードディスク21に保存される。
【0045】
2.動作
プロセスマネージャ15は演算処理部11が実行中の命令i(受信命令、配信命令及び再生命令)のプロセス情報PIiをプロセスリストPLに登録し、管理する。プロセスマネージャ15はさらに、実行中の全ての命令により演算処理部11にかかる総負荷率TL(Total Load)を管理する。総負荷率TLが100%を超える場合、実行中の命令のうち再生命令を除く命令、すなわち受信命令及び/又は配信命令の優先度を下げる。又は受信命令及び/又は配信命令の実行を停止する。これにより、演算処理部11にかかる負荷が過剰になるのを防止し、再生中のコンテンツに音切れや画面のフリーズが発生するのを防止できる。以下、プロセスマネージャ15の動作の詳細を説明する。
【0046】
2.1.プロセスマネージャの動作
プロセスマネージャ15は、演算処理部11が実行中の命令を管理するプロセス管理処理と、コンテンツの再生中に演算処理部11の総負荷率TLを調整する負荷調整処理とを並行して実行する。以下、各処理の詳細を説明する。
【0047】
2.1.1.プロセス管理処理
プロセスマネージャ15はプロセス管理処理により演算処理部11が実行中の命令のプロセス情報PIiをプロセスリストPLに登録する。
【0048】
図3のプロセス管理処理は所定期間ごとに実行される。プロセス管理処理は各アプリケーション12〜14からのステータス通知によりプロセスリストPLを更新する受動的更新処理(S100)と、プロセスマネージャ15が演算処理部11に問い合わせてプロセスリストPLを更新する能動的更新処理(S200)とを含む。
【0049】
[受動的更新処理]
アプリケーション12〜14は、命令の開始、変更、完了時にステータス通知を出力する。受動的更新処理(S100)では、プロセスマネージャ15が受けたステータス通知に基づいてプロセスリストPLを更新する。
【0050】
ステータス通知には、プロセス開始通知と、プロセス変更通知と、プロセス完了通知とがある。
【0051】
初めに、プロセスマネージャ15は各アプリケーション12〜14からステータス通知を受けたか否かを判断する(S1)。
【0052】
各アプリケーション12〜14が演算処理部11に命令を実行させるとき、たとえば、受信アプリケーション12が受信命令を出力したり、配信アプリケーション13が配信命令を出力したり、再生アプリケーション14が再生命令を出力するとき、表3に示すプロセス開始通知が出力される。
【表3】

【0053】
プロセス開始通知は識別情報と属性情報と予想負荷率とを含む。このとき、プロセスマネージャ15はステータス通知を受けたと判断し(S1でYES)、さらに、受けたステータス通知がプロセス開始通知であると判断する(S2でYES)。
【0054】
続いて、プロセスマネージャはプロセス開始通知の識別情報を参照して、その識別情報の命令がプロセスリストに既に登録されているか否か判断する(S3)。各アプリケーション12〜14の誤動作等により既に登録されている命令iのプロセス開始通知を受けた場合(S3でNO)、受動的更新処理を終了する。通常、プロセス開始通知の命令iはプロセスリストPLに登録されていないからである。
【0055】
一方、ステップS3での判断の結果、命令iがプロセスリストPLに登録されていない場合(S3でYES)、プロセスマネージャ15は新たな命令番号iをプロセスリストPLに追加し(S4)、追加した命令番号iにプロセス情報PIiを登録する(S5)。登録後、受動的更新処理を終了する。
【0056】
再生アプリケーション14が実行中の再生命令を変更するとき、たとえば、コンテンツの再生から一時停止や早送りに変更するとき、表4に示すプロセス変更通知が出力される。
【表4】

【0057】
プロセス変更通知は識別情報と予想負荷率とを含む。プロセス変更通知の命令iはプロセスリストPLに既に登録されているため、プロセス変更通知には属性情報が含まれない。
【0058】
プロセス変更通知を受けたとき、プロセスマネージャ15は受けたステータス通知がプロセス開始通知ではないと判断する(S2でNO)。続いて、プロセスマネージャ15は受けたステータス通知の命令iがプロセスリストPLに既に登録されているか否か判断する(S6)。登録されていない場合、受動的更新処理を終了する。プロセス変更通知の命令iは通常プロセスリストPLに既に登録されているからである。
【0059】
登録されている場合(S6でNO)、受けたステータス通知がプロセス変更通知か否かを判断する(S7)。プロセスマネージャ15は受けたステータス通知がプロセス変更通知であると判断し(S7でYES)、プロセスリストPLに既に登録された命令iのプロセス情報PIiの予想負荷率をプロセス変更通知の予想負荷率に変更する(S8)。変更後、受動的更新処理を終了する。
【0060】
各アプリケーション12〜14の命令の実行が完了したとき、各アプリケーション12〜14は表5に示すプロセス完了通知を出力する。
【表5】

【0061】
プロセス完了通知は識別情報を含む。この場合、プロセスマネージャ15はステップS7で受けたステータス通知がプロセス完了通知であると判断し(S7でNO)、プロセス完了通知に含まれる識別情報のプロセス情報PIiを削除する。
【0062】
以上の動作により、プロセスマネージャ15は各アプリケーション12〜14から出力されたステータス通知基づいて受動的にプロセスリストPLを更新する。
【0063】
[能動的更新処理]
能動的更新処理では、プロセスマネージャ15は演算処理部11が実行中の全ての命令を検索し、プロセスリストPLに登録されていない受信命令、配信命令、再生命令が実行されていないかを確認する。さらに、実際には演算処理部11で実行されていない命令がプロセスリストPLに登録されていないかを確認する。
【0064】
上述したとおり、演算処理部11は実行中の全ての命令を管理する。プロセスマネージャ15は実行中の全ての命令を演算処理部11に問い合わせる(S11)。問い合わせの結果プロセスリストPLに登録されていない受信命令、配信命令、再生命令を発見した場合(S12でYES)、プロセスマネージャ15はプロセスリストPLに新たな命令番号を登録し(S13)、発見した命令iのプロセス情報PIiを登録する(S14)。また、問い合わせの結果実行されていない命令IiがプロセスリストPLに登録されている場合(S15)、その命令のプロセス情報PLiをプロセスリストPLから削除する(S16)。
【0065】
以上の動作により、プロセスマネージャ15は、能動的更新処理により受動的更新処理で更新できなかったプロセス情報PIiを更新できる。
【0066】
2.1.2.負荷調整処理
プロセスマネージャ15は負荷調整処理を実行することにより再生中のコンテンツに音切れや画面のフリーズが発生するのを防止する。具体的には、プロセスマネージャ15は演算処理部11の総負荷率TLが過剰になった場合、再生命令以外の命令、すなわち受信命令及び/又は配信命令の優先度を下げたり、実行を停止したりする。これにより、演算処理部11の総負荷率TLを低下させ、再生命令の実行に支障が出ないようにする。つまり、負荷調整処理は再生命令の実行中に実行される。
【0067】
図4を参照して、プロセスマネージャ15は、プロセスリストPLに基づいて総負荷率TLを算出する(S21〜S25)。
【0068】
初めに、プロセスマネージャ15は総負荷率TLをリセットする(S21)。続いて、カウント番号i=1にする(S22)。続いて、プロセスマネージャ15は式(1)に基づいて総負荷率TLを算出する(S24)。
【0069】
総負荷率TL=TLi−1+命令iの予想負荷率×命令iの優先度情報 (1)
【0070】
算出後、カウント番号iをインクリメントし(S25)、ステップS23に戻る。カウント番号iがプロセスリストPL内の命令数よりも大きくなるまで(S23でNO)、ステップS24の算出を繰り返す。要するに、プロセスリストPLに登録された全ての命令の総負荷率TLを算出する。
【0071】
総負荷率TLを算出後、総負荷率TLが100%を超えたか否かを判断する(S26)。総負荷率LTiが100%を超えていないとき(S26でNO)、負荷調整処理を終了する。演算処理部11に過剰な負荷がかかっておらず、再生中のコンテンツに音切れや画面のフリーズが発生するおそれがないためである。
【0072】
一方、ステップS26での判断の結果総負荷率TLが100%を超えたとき(S26でYES)、プロセスマネージャ15は受信命令の優先度を下げる(S27〜S30)。具体的にはカウント値i=1にし(S27)、属性情報が「receiver」であり、かつ、優先度情報が「1」である命令を命令番号1から順に検索する(S28〜S30)。「receiver」の属性情報と「1」の優先度情報とを有する命令iを検索したとき(S29でYES)、プロセスマネージャ15は演算処理部11に命令iの優先度を下げるよう指示する(S35)。演算処理部11は指示を受け、命令iの優先度を下げる。その結果、演算処理部11にかかる負荷が低下する。プロセスマネージャはさらに、プロセスリストPL内の命令iの優先度情報を「1」から「0.8」に下げる(S36)。
【0073】
プロセスマネージャ15は優先度を下げるごとに、総負荷率TLiを算出し、優先度を下げた後の総負荷率TLが100%を超えるか否かを判断する(S26)。優先度を下げたにもかかわらず、総負荷率TLが100%を超える場合(S26でYES)、「receiver」の属性情報と「1」の優先度情報とを有する命令iを検索し、検索した命令iの優先度を下げる動作を総負荷率TLが100%未満になるまで(S26でNO)繰り返す。
【0074】
総負荷率TLが100%を超えているが(S26でYES)、「receiver」の属性情報と「1」の優先度情報とを有する命令iがプロセスリストPLにない場合(S28でYES)、プロセスリストPL内に優先度を下げることができる受信命令が存在しない。
【0075】
この場合、プロセスマネージャ15は配信命令の優先度を下げる(S31〜S36)。受信命令の場合と同様に、カウント値i=1にし(S31)、属性情報が「delivery」であり、かつ、優先度情報が「1」である命令iを命令番号1から順に検索する(S28〜S30)。「delivery」の属性情報と「1」の優先度情報とを有する命令iを検索したとき(S33でYES)、プロセスマネージャ15は演算処理部11に命令iの優先度を下げるよう指示し(S35)、プロセスリストPL内の優先度を「0.8」に下げる(S36)。総負荷率TLが100%未満になるまで(S26でNO)この動作を繰り返す。
【0076】
以上のように、プロセスマネージャ15は総負荷率TLが100%を超えているとき、初めに受信命令の優先度を下げる。全ての受信命令の優先度を下げてもなお総負荷率TLが100%を超えている場合、プロセスマネージャ15はさらに配信命令の優先度を下げる。要するに、プロセスマネージャ15は総負荷率TLが100%未満になるまで受信命令、配信命令の順に優先度を下げる。配信命令の優先度を下げれば、ピア1からコンテンツをダウンロード中の他のピアに影響を与える。ピア1自身のみが影響を受ける受信命令から先に優先度を下げることで、他のピアへの影響を抑える。
【0077】
プロセスリストPLに登録された受信命令及び配信命令の優先度を全て下げたにもかかわらず、総負荷率TLが100%を超える場合(S32でYES)、プロセスマネージャ15は強制終了処理を実行する(S37)。強制終了処理によりプロセスマネージャ15は受信命令及び/又は配信命令の実行を強制的に停止し、総負荷率TLを100%未満にする。
【0078】
図5を参照して、強制終了処理において、総負荷率TLを算出し(S21〜S25)、算出した総負荷率TLが100%を超えたか否かを判断する(S26)までのステップは図4と同じである。
【0079】
ステップS26での判断の結果、総負荷率TLが100%を超える場合(S26でYES)、プロセスマネージャ15はまず受信命令の実行を強制終了する。具体的にはカウント値i=1にし(S27)、属性情報が「receiver」の命令iを命令番号1から順に検索する(S28〜S30)。「receiver」の属性情報を有する命令iを検索したとき(S29でYES)、プロセスマネージャ15は演算処理部11に命令iの実行を終了するよう指示する(S41)。これにより、演算処理部11は命令iの実行を強制的に終了する。指示後、プロセスマネージャ15は命令iのプロセス情報PIiをプロセスリストPLから削除する(S42)。プロセスマネージャ15は命令iの実行を終了させるごとに総負荷率TLを算出し(S21〜S25)、検索した命令iの実行を強制終了する動作を総負荷率TLが100%未満になるまで(S26でNO)繰り返す。
【0080】
総負荷率TLが100%を超えており(S26でYES)、かつ、「receiver」の属性情報を有する命令iをプロセスリストPLから全て削除した場合(S28でYES)、プロセスマネージャ15は次に配信命令の実行を停止する(S31〜S34、S43)。受信命令の場合と同様に、カウント値i=1にし(S31)、属性情報が「delivery」の命令iを命令番号1から順に検索する(S32〜S34)。「delivery」の属性情報の命令iを検索したとき(S33でYES)、プロセスマネージャ15は配信アプリケーション13に命令iの実行を終了するよう強制終了命令を出力する(S43)。配信アプリケーション13は強制終了命令を受け、演算処理部11に命令iの実行を終了するよう指示する(図6のステップS63)。演算処理部11は配信アプリケーション13の指示により命令iの実行を終了する。
【0081】
指示後、配信アプリケーション13はプロセス完了通知をプロセスマネージャ15に出力する(図6のステップS64)。プロセスマネージャ15はプロセス完了通知を受け、プロセスリストPLから命令iのプロセス情報PIiを削除する(図2中のステップS9)。
【0082】
以上の動作により、優先度を下げてもなお演算処理部11の負荷が過剰である場合、プロセスマネージャ15は受信命令及び/又は配信命令の実行を終了する。これにより、演算処理部11にかかる負荷を抑え、実行中の再生命令に支障がでないようにする。なお、プロセスマネージャ15は他のピアに影響を与える配信命令よりも先に受信命令の実行を終了する。
【0083】
2.2.配信アプリケーションの動作
配信アプリケーション13は他のピアからの配信要求に応答して、コンテンツデータベース10内のコンテンツを配信するよう演算処理部11に命令する。配信アプリケーション13はさらに、配信要求を受けたときプロセスリストPLに基づいて配信を拒否することができる。以下、配信アプリケーション13の動作について説明する。
【0084】
図6を参照して、配信アプリケーション13は他のピアから配信要求を受けたとき(S51)、プロセスマネージャ15にプロセスリストPLを要求する(S52)。プロセスマネージャ15は要求に応じてプロセスリストPLを出力する(S65)。
【0085】
配信アプリケーション13はプロセスリストPLを取得し(S53)、プロセスリストPLに登録された配信命令の数が所定の数(たとえば2つ)と同じ又はそれよりも少ないか否かを判断する(S54)。判断の結果、配信命令の数が所定の数よりも多い場合(S54でNO)、配信アプリは配信を拒否する(S57)。所定の数よりも多い数の配信命令が既に実行中であるため、新たな配信命令をさらに実行すれば、演算処理部11の負荷が過剰になり、実行中の他の命令に影響を与えるからである。ステップS57では配信アプリケーション13は配信要求を送信した他のピアに対して配信拒否通知を送信する。
【0086】
ステップS54で判断の結果、配信命令の数が所定の数と同じ、又は、少ないとき(S54でYES)、配信アプリケーション13はプロセスリストPLに基づいて総負荷率TLを算出する(S55)。総負荷率TLの算出方法は図4中のステップS21〜S25と同じである。配信アプリケーション13は算出した総負荷率TLが100%未満であるか否かを判断する(S56)。判断の結果、総負荷率TLが100%以上である場合(S56でNO)、配信アプリケーション13は配信を拒否する(S57)。配信を実行すれば、実行中の他の命令に影響を与えるためである。
【0087】
ステップS56の判断の結果、総負荷率TLが100%未満である場合(S56でYES)、配信アプリケーション13はプロセスマネージャ15にプロセス開始通知を出力し(S58)、コンテンツの配信を開始する(S59)。具体的には、演算処理部11に配信命令を出力し、演算処理部11にコンテンツの配信を実行させる。
【0088】
コンテンツの配信を完了したとき(S60でYES)、又は何らかの原因により配信を失敗したとき(S61でYES)、配信アプリケーション13はプロセスマネージャ15にプロセス完了通知を出力する(S64)。プロセスマネージャ15はプロセス完了通知を受け、プロセスリストPLから該当する配信命令を削除する(図2中のステップS9)。
【0089】
配信アプリケーション13はさらに、プロセスマネージャ15から強制終了命令を受けたか否かを判断する(S62)。強制終了命令を受けていない場合(S62でNO)、ステップS60に戻る。一方、強制終了命令を受けた場合(S62でYES)、演算処理部11に配信命令の実行を終了するよう指示する(S63)。指示した後、配信アプリケーション13はプロセスマネージャ15にプロセス完了通知を出力する(S64)。
【0090】
以上の動作により、配信アプリケーション13は他のピアから配信要求を受けたとき、プロセスリストPLに基づいて配信を拒否できる。そのため、演算処理部11に過剰な負荷がかかるのを抑制できる。
【0091】
2.3.再生アプリの動作
再生アプリケーション14はコンテンツを再生するよう再生命令を演算処理部11に出力し、かつ、プロセスマネージャ15にプロセス開始通知を出力する。さらに、再生命令のステータスが変更されるごとに、再生命令を更新し、かつ、プロセスマネージャ15にプロセス変更通知を出力する。ステータスとは、再生や、一時停止、早送り、巻き戻しといった動作状況のことをいい、ステータスの変更とは、たとえば、コンテンツの再生を一時停止や、早送りや、巻き戻し等に変更することをいう。以下、再生アプリケーション14の動作について説明する。
【0092】
図7を参照して、コンテンツを再生するとき、再生アプリケーション14はプロセス開始通知をプロセスマネージャ15に出力する(S71)。このとき、再生アプリケーション14は表6に示す予想負荷率テーブルに基づいて、再生動作に対応した予想負荷率=40をプロセス開始通知に含める。
【表6】

【0093】
プロセス開始通知を出力後、再生アプリケーション14は演算処理部11に再生命令を出力する(S72)。演算処理部11は再生命令を受け、コンテンツの再生を開始する。
【0094】
コンテンツの再生を開始後、再生アプリケーション14は再生命令のステータスが変更されたか否かを判断する(S73)。ステータスが変更された場合、たとえば、再生から早送りに変更された場合(S73でYES)、再生アプリケーション14はプロセス変更通知を出力する(S74)。このとき、再生アプリケーション14は表6に示す予想負荷率テーブルに基づいて、早送り動作に対応した予想負荷率=70をプロセス変更通知に含める。これにより、プロセスマネージャ15はプロセスリストPLに登録された再生命令の予想負荷率を「40」から「70」に変更する(図2中のステップS8)。プロセス変更通知を出力後、再生アプリケーション14は演算処理部11にコンテンツの再生を早送りに変更するよう指示する(S75)。すなわち、再生命令を変更する。
【0095】
再生命令のステータスが変更されず(S73でNO)、かつ、演算処理部11が再生命令に基づく再生を完了したとき(S76でYES)、再生アプリケーション14はプロセス完了通知をプロセスマネージャ15に出力する(S77)。プロセスマネージャ15はプロセス完了通知を受け、該当する再生命令をプロセスリストPLから削除する(図2中のステップS9)。
【0096】
以上の動作により、再生アプリケーション14は再生命令のステータスを変更するごとにプロセス変更通知を出力する。そのため、プロセスマネージャ15は常に最新の演算処理部11の総負荷率TLを算出できる。
【0097】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【産業上の利用可能性】
【0098】
本発明によるピアは、ピアツーピア型のコンテンツ配信システムに利用可能である。
【図面の簡単な説明】
【0099】
【図1】本発明の実施の形態によるピアの構成を示す機能ブロック図である。
【図2】一般的なコンピュータの構成を示す機能ブロック図である。
【図3】図1に示したプロセスマネージャの管理処理の動作を示すフロー図である。
【図4】図1に示したプロセスマネージャの調整処理の動作を示すフロー図である。
【図5】図4に示したステップS37の詳細を示すフロー図である。
【図6】図1に示した配信アプリの動作を示すフロー図である。
【図7】図1に示した再生アプリの動作を示すフロー図である。
【符号の説明】
【0100】
1 ピア
10 コンテンツデータベース
11 演算処理部
12 受信アプリケーション
13 配信アプリケーション
14 再生アプリケーション
15 プロセスマネージャ
16 プロセスリストデータベース
PL プロセスリスト

【特許請求の範囲】
【請求項1】
1又は2以上の他のピアに接続可能なピアであって、
コンテンツを記憶するためのコンテンツ記憶手段と、
他のピアから配信されるコンテンツを受信するよう受信命令を出力する受信指示手段と、
前記コンテンツ記憶手段に記憶されたコンテンツを他のピアに配信するよう配信命令を出力する配信指示手段と、
前記コンテンツ記憶手段に記憶されたコンテンツを再生するよう再生命令を出力する再生指示手段と、
前記受信命令と配信命令と再生命令とを受け、受けた命令を並列に実行可能な演算処理手段と、
前記演算処理手段の動作状況を管理する管理手段とを備え、
前記管理手段は、
前記演算処理手段が実行中の命令を列挙したプロセスリストを記憶するためのプロセス記憶手段と、
前記演算処理手段が前記再生命令を実行中、前記プロセスリストに基づいて前記演算処理手段にかかる負荷を算出する第1の負荷算出手段と、
前記算出した負荷が所定の負荷よりも大きいか否か判断する判断手段と、
判断の結果前記算出した負荷が所定の負荷よりも大きいとき前記プロセスリストに基づいて前記演算処理手段が実行中の受信命令及び/又は配信命令の実行を停止する負荷調整手段とを備えたことを特徴とするピア。
【請求項2】
請求項1に記載のピアであって、
前記第1の負荷算出手段は、前記演算処理手段が再生命令を実行中、前記負荷を繰り返し算出することを特徴とするピア。
【請求項3】
請求項1又は請求項2に記載のピアであって、
前記負荷調整手段は、前記演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の実行を先に停止することを特徴とするピア。
【請求項4】
1又は2以上の他のピアに接続可能なピアであって、
コンテンツを記憶するためのコンテンツ記憶手段と、
他のピアから配信されるコンテンツを受信するよう受信命令を出力する受信指示手段と、
前記コンテンツ記憶手段に記憶されたコンテンツを他のピアに配信するよう配信命令を出力する配信指示手段と、
前記コンテンツ記憶手段に記憶されたコンテンツを再生するよう再生命令を出力する再生指示手段と、
前記出力された受信命令と配信命令と再生命令とを受け、受けた命令をそれらの優先度に応じて並列で実行する演算処理手段と、
前記演算処理手段の動作状況を管理する管理手段とを備え、
前記管理手段は、
前記演算処理手段が実行中の命令を列挙したプロセスリストを記憶するためのプロセス記憶手段と、
前記プロセスリストを前記プロセス記憶手段に登録する登録手段と、
前記演算処理手段が前記再生命令を実行中、前記プロセスリストに基づいて前記演算処理手段にかかる負荷を算出する第1の負荷算出手段と、
前記算出した負荷が所定の負荷よりも大きいか否か判断する判断手段と、
判断の結果算出した負荷が所定の負荷よりも大きいとき前記演算処理手段が実行中の受信命令及び/又は配信命令の優先度を下げるよう前記演算処理手段に指示する負荷調整手段とを備えたことを特徴とするピア。
【請求項5】
請求項4に記載のピアであって、
前記第1の負荷算出手段は、前記演算処理手段が再生命令を実行中、前記負荷を繰り返し算出することを特徴とするピア。
【請求項6】
請求項4又は請求項5に記載のピアであって、
前記プロセスリストは、命令の識別情報と、前記命令により前記演算処理手段にかかる負荷情報とを含むことを特徴とするピア。
【請求項7】
請求項6に記載のピアであって、
前記負荷調整手段は、前記演算処理手段が受信命令と配信命令とを実行中のとき、前記受信命令の優先度を先に下げることを特徴とするピア。
【請求項8】
請求項6又は請求項7に記載のピアであって、
前記プロセスリストはさらに、前記識別情報に対応した前記命令の優先度情報を含み、
前記管理手段はさらに、
前記負荷調整手段が前記優先度を下げるよう指示するたびに前記プロセスリスト記憶手段に記憶された前記優先度情報を更新する更新手段を含み、
前記第1の負荷算出手段は、前記負荷情報と前記優先度情報とに基づいて前記負荷を算出することを特徴とするピア。
【請求項9】
請求項8に記載のピアであって、
前記判断手段はさらに、前記プロセスリストに基づいて優先度を下げることができる受信命令及び配信命令があるか否かを判断し、
前記負荷調整手段はさらに、判断の結果算出された負荷が所定の負荷よりも大きく、かつ、優先度を下げることができる受信命令及び配信命令がないとき、前記プロセスリストに基づいて前記演算処理手段が実行中の受信命令及び/又は配信命令の実行を停止することを特徴とするピア。
【請求項10】
請求項9に記載のピアであって、
前記負荷調整手段は、前記演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の実行を先に停止することを特徴とするピア。
【請求項11】
請求項1又は請求項4に記載のピアであって、
前記配信指示手段はさらに、
前記他のピアから配信要求を受けたとき前記プロセスリスト記憶手段から前記プロセスリストを取得する取得手段と、
前記取得したプロセスリストに登録された配信命令の数が所定数よりも多いとき前記他のピアへのコンテンツの配信を拒否する配信拒否手段とを備えたことを特徴とするピア。
【請求項12】
請求項11に記載のピアであって、
前記配信指示手段はさらに、
前記取得したプロセスリストに基づいて前記演算処理手段にかかる負荷を算出する第2の負荷算出手段を備え、
前記配信拒否手段はさらに、前記算出された負荷が所定の負荷よりも大きいとき前記コンテンツの配信を拒否することを特徴とするピア。
【請求項13】
請求項1〜請求項12のいずれか1項に記載の手段をコンピュータに実現させるための負荷調整プログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate