(57)【要約】【課題】コンテンツの再生中に他の複数の動作を並列に実行しても、コンテンツの再生品質を維持できるピアを提供する。【解決手段】演算処理部１１は各アプリケーション１２〜１４から出力される受信命令、配信命令及び再生命令をそれらの優先度に応じて並列で実行する。プロセスマネージャ１５は演算処理部１１が実行中の命令をプロセスリストに登録する。プロセスマネージャ１５はさらに、実行中の全ての命令により演算処理部１１にかかる総負荷率を管理する。総負荷率が１００％を超える場合、実行中の命令のうち再生命令を除く命令、すなわち受信命令及び／又は配信命令の優先度を下げる。又は受信命令及び／又は配信命令の実行を停止する。【選択図】図１
2006202219.tif 000002
【特許請求の範囲】
【請求項１】
１又は２以上の他のピアに接続可能なピアであって、
コンテンツを記憶するためのコンテンツ記憶手段と、
他のピアから配信されるコンテンツを受信するよう受信命令を出力する受信指示手段と、
前記コンテンツ記憶手段に記憶されたコンテンツを他のピアに配信するよう配信命令を出力する配信指示手段と、
前記コンテンツ記憶手段に記憶されたコンテンツを再生するよう再生命令を出力する再生指示手段と、
前記受信命令と配信命令と再生命令とを受け、受けた命令を並列に実行可能な演算処理手段と、
前記演算処理手段の動作状況を管理する管理手段とを備え、
前記管理手段は、
前記演算処理手段が実行中の命令を列挙したプロセスリストを記憶するためのプロセス記憶手段と、
前記演算処理手段が前記再生命令を実行中、前記プロセスリストに基づいて前記演算処理手段にかかる負荷を算出する第１の負荷算出手段と、
前記算出した負荷が所定の負荷よりも大きいか否か判断する判断手段と、
判断の結果前記算出した負荷が所定の負荷よりも大きいとき前記プロセスリストに基づいて前記演算処理手段が実行中の受信命令及び／又は配信命令の実行を停止する負荷調整手段とを備えたことを特徴とするピア。
【請求項２】
請求項１に記載のピアであって、
前記第１の負荷算出手段は、前記演算処理手段が再生命令を実行中、前記負荷を繰り返し算出することを特徴とするピア。
【請求項３】
請求項１又は請求項２に記載のピアであって、
前記負荷調整手段は、前記演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の実行を先に停止することを特徴とするピア。
【請求項４】
１又は２以上の他のピアに接続可能なピアであって、
コンテンツを記憶するためのコンテンツ記憶手段と、
他のピアから配信されるコンテンツを受信するよう受信命令を出力する受信指示手段と、
前記コンテンツ記憶手段に記憶されたコンテンツを他のピアに配信するよう配信命令を出力する配信指示手段と、
前記コンテンツ記憶手段に記憶されたコンテンツを再生するよう再生命令を出力する再生指示手段と、
前記出力された受信命令と配信命令と再生命令とを受け、受けた命令をそれらの優先度に応じて並列で実行する演算処理手段と、
前記演算処理手段の動作状況を管理する管理手段とを備え、
前記管理手段は、
前記演算処理手段が実行中の命令を列挙したプロセスリストを記憶するためのプロセス記憶手段と、
前記プロセスリストを前記プロセス記憶手段に登録する登録手段と、
前記演算処理手段が前記再生命令を実行中、前記プロセスリストに基づいて前記演算処理手段にかかる負荷を算出する第１の負荷算出手段と、
前記算出した負荷が所定の負荷よりも大きいか否か判断する判断手段と、
判断の結果算出した負荷が所定の負荷よりも大きいとき前記演算処理手段が実行中の受信命令及び／又は配信命令の優先度を下げるよう前記演算処理手段に指示する負荷調整手段とを備えたことを特徴とするピア。
【請求項５】
請求項４に記載のピアであって、
前記第１の負荷算出手段は、前記演算処理手段が再生命令を実行中、前記負荷を繰り返し算出することを特徴とするピア。
【請求項６】
請求項４又は請求項５に記載のピアであって、
前記プロセスリストは、命令の識別情報と、前記命令により前記演算処理手段にかかる負荷情報とを含むことを特徴とするピア。
【請求項７】
請求項６に記載のピアであって、
前記負荷調整手段は、前記演算処理手段が受信命令と配信命令とを実行中のとき、前記受信命令の優先度を先に下げることを特徴とするピア。
【請求項８】
請求項６又は請求項７に記載のピアであって、
前記プロセスリストはさらに、前記識別情報に対応した前記命令の優先度情報を含み、
前記管理手段はさらに、
前記負荷調整手段が前記優先度を下げるよう指示するたびに前記プロセスリスト記憶手段に記憶された前記優先度情報を更新する更新手段を含み、
前記第１の負荷算出手段は、前記負荷情報と前記優先度情報とに基づいて前記負荷を算出することを特徴とするピア。
【請求項９】
請求項８に記載のピアであって、
前記判断手段はさらに、前記プロセスリストに基づいて優先度を下げることができる受信命令及び配信命令があるか否かを判断し、
前記負荷調整手段はさらに、判断の結果算出された負荷が所定の負荷よりも大きく、かつ、優先度を下げることができる受信命令及び配信命令がないとき、前記プロセスリストに基づいて前記演算処理手段が実行中の受信命令及び／又は配信命令の実行を停止することを特徴とするピア。
【請求項１０】
請求項９に記載のピアであって、
前記負荷調整手段は、前記演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の実行を先に停止することを特徴とするピア。
【請求項１１】
請求項１又は請求項４に記載のピアであって、
前記配信指示手段はさらに、
前記他のピアから配信要求を受けたとき前記プロセスリスト記憶手段から前記プロセスリストを取得する取得手段と、
前記取得したプロセスリストに登録された配信命令の数が所定数よりも多いとき前記他のピアへのコンテンツの配信を拒否する配信拒否手段とを備えたことを特徴とするピア。
【請求項１２】
請求項１１に記載のピアであって、
前記配信指示手段はさらに、
前記取得したプロセスリストに基づいて前記演算処理手段にかかる負荷を算出する第２の負荷算出手段を備え、
前記配信拒否手段はさらに、前記算出された負荷が所定の負荷よりも大きいとき前記コンテンツの配信を拒否することを特徴とするピア。
【請求項１３】
請求項１〜請求項１２のいずれか１項に記載の手段をコンピュータに実現させるための負荷調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピア及び負荷調整プログラムに関し、さらに詳しくは、１又は２以上のピアに接続可能なピア及び負荷調整プログラムに関する。
【背景技術】
【０００２】
従来のクライアントサーバ型コンテンツ配信システムでは、コンテンツをサーバに保存しておき、各クライアントからの要求に応じてコンテンツを配信している。しかし、このシステムでは、クライアント数の増大に応じたサーバの強化が必須であり、運用及び管理コストの増大は避けられない。
【０００３】
一方、近年隆盛を見せているピアツーピア型コンテンツ配信システムでは、コンテンツをピア間で配信するため、コンテンツの配信負荷が各ピアに分散される。そのため、このシステムでは、クライアントサーバ型コンテンツ配信システムに比べ、はるかに多くのピア（クライアント）にコンテンツを配信することができる。
【０００４】
しかし、各ピアはコンテンツの配信負荷を負うため、コンテンツの再生中に他のピアへコンテンツを配信する場合がある。さらに、コンテンツの再生中に他のピアからコンテンツを受信する場合もある。このように複数の動作を並列に実行すれば、ピア内のプロセッサに過剰に負荷がかかる。そのため、コンテンツの再生にプロセッサを割り当てる時間が短くなり、コンテンツの再生品質が低下し、音切れが発生したり画面がフリーズしたりする。
【特許文献１】特開平５−１０１０１９号公報
【特許文献２】特開平６−２３６２８５号公報
【特許文献３】特開平７−７３０５２号公報
【特許文献４】特開平９−１０１９０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、コンテンツの再生中に他の複数の動作を並列に実行しても、コンテンツの再生品質を維持できるピアを提供することである。
【課題を解決するための手段及び発明の効果】
【０００６】
本発明によるピアは１又は２以上の他のピアに接続可能なピアであって、コンテンツ記憶手段と、受信指示手段と、配信指示手段と、演算処理手段と、管理手段とを備える。コンテンツ記憶手段はコンテンツを記憶する。受信指示手段は他のピアから配信されるコンテンツを受信するよう受信命令を出力する。配信指示手段はコンテンツ記憶手段に記憶されたコンテンツを他のピアに配信するよう配信命令を出力する。再生指示手段はコンテンツ記憶手段に記憶されたコンテンツを再生するよう再生命令を出力する。演算処理手段は受信命令と配信命令と再生命令とを受け、受けた命令を並列に実行する。管理手段は、演算処理手段の動作状況を管理する。管理手段は、プロセス記憶手段と、第１の負荷算出手段と、判断手段と、負荷調整手段とを備える。プロセス記憶手段は演算処理手段が実行中の命令を列挙したプロセスリストを記憶する。第１の負荷算出手段は、演算処理手段が再生命令を実行中、プロセスリストに基づいて演算処理手段にかかる負荷を算出する。判断手段は算出した負荷が所定の負荷よりも大きいか否か判断する。負荷調整手段は判断の結果算出した負荷が所定の負荷よりも大きいときプロセスリストに基づいて演算処理手段が実行中の受信命令及び／又は配信命令の実行を停止する。
【０００７】
本発明によるピアはプロセスリストに基づいて演算処理手段にかかる負荷を管理する。再生命令を実行中に演算処理手段に過剰な負荷がかかっている場合、受信命令及び／又は
配信命令の実行を停止する。これにより、演算処理手段に過剰な負荷がかかるのを防止でき、演算処理手段が再生命令を支障なく実行できる。そのため、コンテンツの再生品質を維持でき、音切れや画像のフリーズ等の発生を防止できる。
【０００８】
好ましくは、第１の負荷算出手段は、演算処理手段が再生命令を実行中、負荷を繰り返し算出する。
【０００９】
これにより、算出された負荷が所定の負荷よりも低くなるまで、管理手段は受信命令及び／又は配信命令の実行を停止する。そのため、演算処理手段は再生命令を支障なく実行できる。
【００１０】
好ましくは、負荷調整手段は、演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の実行を先に停止する。
【００１１】
配信命令の実行を停止すれば、ピアからコンテンツをダウンロード中の他のピアに影響を与える。他のピアに影響を受けない受信命令から先に実行を停止することで、他のピアへの影響を抑える。
【００１２】
本発明によるピアは１又は２以上の他のピアに接続可能なピアであって、コンテンツ記憶手段と、受信指示手段と、配信指示手段と、再生指示手段と、演算処理手段と、管理手段とを備える。コンテンツ記憶手段はコンテンツを記憶する。受信指示手段は他のピアから配信されるコンテンツを受信するよう受信命令を出力する。配信指示手段はコンテンツ記憶手段に記憶されたコンテンツを他のピアに配信するよう配信命令を出力する。再生指示手段はコンテンツ記憶手段に記憶されたコンテンツを再生するよう再生命令を出力する。演算処理手段は出力された受信命令と配信命令と再生命令とを受け、受けた命令をそれらの優先度に応じて並列で実行する。管理手段は演算処理手段の動作状況を管理する。管理手段は、プロセス記憶手段と、登録手段と、第１の負荷算出手段と、判断手段と、負荷調整手段とを備える。プロセス記憶手段は演算処理手段が実行中の命令を列挙したプロセスリストを記憶する。第１の負荷算出手段は、演算処理手段が再生命令を実行中、プロセスリストに基づいて演算処理手段にかかる負荷を算出する。判断手段は算出した負荷が所定の負荷よりも大きいか否か判断する。負荷調整手段は、判断の結果算出した負荷が所定の負荷よりも大きいとき演算処理手段が実行中の受信命令及び／又は配信命令の優先度を下げるよう演算処理手段に指示する。
【００１３】
本発明によるピアはプロセスリストに基づいて演算処理手段にかかる負荷を管理する。再生命令を実行中に演算処理手段に過剰な負荷がかかっている場合、受信命令及び／又は
配信命令の優先度を下げる。受信命令及び／又は配信命令の優先度を下げることで演算処理手段に過剰な負荷がかかるのを防止する。そのため、演算処理手段が再生命令を支障なく実行でき、コンテンツの再生品質を維持でき、音切れや画像のフリーズ等の発生を防止できる。
【００１４】
好ましくは、第１の負荷算出手段は、演算処理手段が再生命令を実行中、負荷を繰り返し算出する。
【００１５】
これにより、算出された負荷が所定の負荷よりも低くなるまで、管理手段は受信命令及び／又は配信命令の優先度を下げる。そのため、演算処理手段は再生命令を支障なく実行できる。
【００１６】
好ましくは、プロセスリストは、命令の識別情報と、命令により演算処理手段にかかる負荷情報とを含む。
【００１７】
この場合、プロセスリストには各命令の識別情報及び負荷情報が含まれるため、管理手段は優先度を下げる受信命令及び／又は配信命令を特定できる。
【００１８】
好ましくは、負荷調整手段は、演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の優先度を先に下げる。
【００１９】
配信命令の優先度を下げれば、ピアからコンテンツをダウンロード中の他のピアに影響を与える。他のピアに影響を受けない受信命令から先に優先度を下げることで、他のピアへの影響を抑える。
【００２０】
好ましくは、プロセスリストはさらに、識別情報に対応した命令の優先度情報を含み、管理手段はさらに、更新手段を含む。更新手段は、負荷調整手段が優先度を下げるよう指示するごとにプロセスリスト記憶手段に記憶された優先度情報を更新する。第１の負荷算出手段は、負荷情報と優先度情報とに基づいて負荷を算出する。
【００２１】
この場合、第１の負荷算出手段は優先度を考慮して負荷を算出する。優先度を下げるごとに優先度情報も更新されるため、第１の負荷算出手段は優先度を下げた結果を反映して負荷を算出できる。
【００２２】
好ましくは、判断手段はさらに、プロセスリストに基づいて優先度を下げることができる受信命令及び配信命令があるか否かを判断し、負荷調整手段はさらに、判断の結果算出された負荷が所定の負荷よりも大きく、かつ、優先度を下げることができる受信命令及び配信命令がないとき、プロセスリストに基づいて演算処理手段が実行中の受信命令及び／又は配信命令の実行を停止する。
【００２３】
この場合、受信命令及び／又は配信命令の優先度を下げてもなお演算処理手段の負荷が過剰であれば、管理手段は受信命令及び／又は配信命令の実行を終了する。これにより、演算処理手段にかかる負荷を抑え、実行中の再生命令に支障がでないようにする。
【００２４】
好ましくは、負荷調整手段は、演算処理手段が受信命令と配信命令とを実行中のとき、受信命令の実行を先に停止する。
【００２５】
この場合、受信命令から先に実行を停止するため、他のピアへの影響を抑えることができる。
【００２６】
好ましくは、配信指示手段はさらに、取得手段と配信拒否手段とを含む。取得手段は、他のピアから配信要求を受けたときプロセスリスト記憶手段からプロセスリストを取得する。配信拒否手段は、取得したプロセスリストに登録された配信命令の数が所定数よりも多いとき他のピアへのコンテンツの配信を拒否する。
【００２７】
所定の数よりも多い数の配信命令が既に実行中の場合、新たな配信命令をさらに実行すれば、演算処理手段の負荷が過剰になる。配信を拒否することにより演算処理手段に過剰な負荷がかかるのを防止できる。
【００２８】
好ましくは、配信指示手段はさらに、第２の負荷算出手段を含む。負荷算出手段は取得したプロセスリストに基づいて演算処理手段にかかる負荷を算出する。配信拒否手段はさらに、算出された負荷が所定の負荷よりも大きいときコンテンツの配信を拒否する。
【００２９】
この場合、配信指示手段は他のピアから配信要求を受けたとき、演算処理手段の負荷に基づいて配信を拒否できる。そのため、演算処理手段に過剰な負荷がかかるのを抑制できる。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００３１】
１．ピアの構成
図１を参照して、本発明の実施の形態によるピア１は、複数の他のピア１と接続されピアツーピア型コンテンツ配信システムを構成する。複数のコンテンツはピア１間で相互に転送され、各ピア１に配信される。
【００３２】
ピア１は、コンテンツデータベース１０と、演算処理部１１と、受信アプリケーション１２と、配信アプリケーション１３と、再生アプリケーション１４と、プロセスマネージャ１５と、プロセスリストデータベース１６とを備える。
【００３３】
コンテンツデータベース１０は１又は２以上のコンテンツファイルを保存する。受信アプリケーション１２は他のピア１から所望のコンテンツをダウンロードしてコンテンツデータベース１０に保存するよう受信命令を出力する。
【００３４】
配信アプリケーション１３は、他のピア１からコンテンツの配信要求を受け、コンテンツデータベース１０内のコンテンツを他のピア１にアップロードするよう配信命令を出力する。
【００３５】
再生アプリケーション１４は、コンテンツデータベース１０から所望のコンテンツをストリーミング方式で読み出し、そのコンテンツに基づいて音声や映像を再生するよう再生命令を出力する。
【００３６】
演算処理部１１は各アプリケーション１２〜１４から出力された受信命令、配信命令及び再生命令を受け、各命令を並列に実行する。演算処理部１１は実行中の全ての命令を管理する。演算処理部１１はさらに、受けた命令の各々に優先度を付与し、優先度の高い命令ほど実行時間を長くする。
【００３７】
プロセスマネージャ１５は、演算処理部１１にかかる負荷を監視し、演算処理部１１の負荷が過剰であれば、再生命令を除く実行中の命令の優先度を下げたり、命令の実行を停止したりする。
【００３８】
プロセスマネージャ１５はプロセスリストデータベース１６に表１に示すプロセスリストＰＬを登録する。
【表１】
2006202219.tif 000003
【００３９】
プロセスリストＰＬには、命令番号ｉ（ｉは自然数）と命令番号ｉに対応したプロセス情報ＰＩｉとが登録される。命令番ｉ号は演算処理部１１が実行中の命令に付与される番号である。また、プロセス情報ＰＩｉは命令番号ｉの命令（以下、命令ｉともいう）に関する情報である。プロセス情報ＰＩｉを表２に示す。
【表２】
2006202219.tif 000004
【００４０】
プロセス情報ＰＩｉ中の「id」には、その命令ｉの識別情報が登録される。「type」にはその命令がどのアプリケーション１２〜１４のいずれに属しているかを示す属性情報が登録される。具体的には、命令ｉが受信命令であれば「receiver」、配信命令であれば「delivery」、再生命令であれば「play」が登録される。
【００４１】
「load」には命令ｉにより演算処理部１１にかかる予想負荷率が登録される。予想負荷率は命令ごとに予め設定されている。たとえば受信命令の予想負荷率は「１０」％、配信命令の予想負荷率は「３０」％である。
【００４２】
「priority」には命令ｉの優先度情報が登録される。プロセス情報ＰＩｉがプロセスリストＰＬに登録された当初、優先度情報は「１」である。後述するようにプロセスマネージャ１５により実行中の命令の優先度が下げられたとき、その優先度情報も下げられる。本実施の形態では、プロセスマネージャ１５により優先度情報は「１」から「０．８」に下げられる。
【００４３】
図２は一般的なコンピュータの構成図である。コンピュータ２０は、ハードディスク２１と、ＣＰＵ２２と、ＣＲＴやＬＣＤ等のディスプレイ２３と、メモリ２４と、ＬＡＮコントローラ２５と、マウスやキーボード等の入力装置２６とを備える。これらは相互にバスで接続される。ハードディスク２１にオペレーティングシステム３０と、図１中の受信アプリケーション１２と、配信アプリケーション１３と、再生アプリケーション１４と、プロセスマネージャ１５とをインストールすることにより、コンピュータ２０はピア１として機能する。ここで、図２中のオペレーティングシステム３０とメモリ２４とＣＰＵ２２とは図１中の演算処理部１１として機能する。Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（商標）に代表されるオペレーティングシステム３０は、複数の命令をＣＰＵ２２に並列に実行させる機能を有する。具体的には、オペレーティングシステム３０は、各アプリケーション１２〜１４から出力される複数の命令を管理するためのプロセススケジューラを有し、プロセススケジューラにより複数の命令をＣＰＵ２２に並列実行させる。このとき、オペレーティングシステム３０はＣＰＵ２２が実行中の命令に優先度を付与し、優先度に応じてＣＰＵ２２の実行時間を変更する。
【００４４】
図１中のコンテンツデータベース１０とプロセスリストデータベース１６とは図２中のハードディスク２１に保存される。
【００４５】
２．動作
プロセスマネージャ１５は演算処理部１１が実行中の命令ｉ（受信命令、配信命令及び再生命令）のプロセス情報ＰＩｉをプロセスリストＰＬに登録し、管理する。プロセスマネージャ１５はさらに、実行中の全ての命令により演算処理部１１にかかる総負荷率ＴＬｉ（Total Load）を管理する。総負荷率ＴＬｉが１００％を超える場合、実行中の命令のうち再生命令を除く命令、すなわち受信命令及び／又は配信命令の優先度を下げる。又は受信命令及び／又は配信命令の実行を停止する。これにより、演算処理部１１にかかる負荷が過剰になるのを防止し、再生中のコンテンツに音切れや画面のフリーズが発生するのを防止できる。以下、プロセスマネージャ１５の動作の詳細を説明する。
【００４６】
２．１．プロセスマネージャの動作
プロセスマネージャ１５は、演算処理部１１が実行中の命令を管理するプロセス管理処理と、コンテンツの再生中に演算処理部１１の総負荷率ＴＬｉを調整する負荷調整処理とを並行して実行する。以下、各処理の詳細を説明する。
【００４７】
２．１．１．プロセス管理処理
プロセスマネージャ１５はプロセス管理処理により演算処理部１１が実行中の命令のプロセス情報ＰＩｉをプロセスリストＰＬに登録する。
【００４８】
図３のプロセス管理処理は所定期間ごとに実行される。プロセス管理処理は各アプリケーション１２〜１４からのステータス通知によりプロセスリストＰＬを更新する受動的更新処理（Ｓ１００）と、プロセスマネージャ１５が演算処理部１１に問い合わせてプロセスリストＰＬを更新する能動的更新処理（Ｓ２００）とを含む。
【００４９】
［受動的更新処理］
アプリケーション１２〜１４は、命令の開始、変更、完了時にステータス通知を出力する。受動的更新処理（Ｓ１００）では、プロセスマネージャ１５が受けたステータス通知に基づいてプロセスリストＰＬを更新する。
【００５０】
ステータス通知には、プロセス開始通知と、プロセス変更通知と、プロセス完了通知とがある。
【００５１】
初めに、プロセスマネージャ１５は各アプリケーション１２〜１４からステータス通知を受けたか否かを判断する（Ｓ１）。
【００５２】
各アプリケーション１２〜１４が演算処理部１１に命令を実行させるとき、たとえば、受信アプリケーション１２が受信命令を出力したり、配信アプリケーション１３が配信命令を出力したり、再生アプリケーション１４が再生命令を出力するとき、表３に示すプロセス開始通知が出力される。
【表３】
2006202219.tif 000005
【００５３】
プロセス開始通知は識別情報と属性情報と予想負荷率とを含む。このとき、プロセスマネージャ１５はステータス通知を受けたと判断し（Ｓ１でＹＥＳ）、さらに、受けたステータス通知がプロセス開始通知であると判断する（Ｓ２でＹＥＳ）。
【００５４】
続いて、プロセスマネージャはプロセス開始通知の識別情報を参照して、その識別情報の命令がプロセスリストに既に登録されているか否か判断する（Ｓ３）。各アプリケーション１２〜１４の誤動作等により既に登録されている命令ｉのプロセス開始通知を受けた場合（Ｓ３でＮＯ）、受動的更新処理を終了する。通常、プロセス開始通知の命令ｉはプロセスリストＰＬに登録されていないからである。
【００５５】
一方、ステップＳ３での判断の結果、命令ｉがプロセスリストＰＬに登録されていない場合（Ｓ３でＹＥＳ）、プロセスマネージャ１５は新たな命令番号ｉをプロセスリストＰＬに追加し（Ｓ４）、追加した命令番号ｉにプロセス情報ＰＩｉを登録する（Ｓ５）。登録後、受動的更新処理を終了する。
【００５６】
再生アプリケーション１４が実行中の再生命令を変更するとき、たとえば、コンテンツの再生から一時停止や早送りに変更するとき、表４に示すプロセス変更通知が出力される。
【表４】
2006202219.tif 000006
【００５７】
プロセス変更通知は識別情報と予想負荷率とを含む。プロセス変更通知の命令ｉはプロセスリストＰＬに既に登録されているため、プロセス変更通知には属性情報が含まれない。
【００５８】
プロセス変更通知を受けたとき、プロセスマネージャ１５は受けたステータス通知がプロセス開始通知ではないと判断する（Ｓ２でＮＯ）。続いて、プロセスマネージャ１５は受けたステータス通知の命令ｉがプロセスリストＰＬに既に登録されているか否か判断する（Ｓ６）。登録されていない場合、受動的更新処理を終了する。プロセス変更通知の命令ｉは通常プロセスリストＰＬに既に登録されているからである。
【００５９】
登録されている場合（Ｓ６でＮＯ）、受けたステータス通知がプロセス変更通知か否かを判断する（Ｓ７）。プロセスマネージャ１５は受けたステータス通知がプロセス変更通知であると判断し（Ｓ７でＹＥＳ）、プロセスリストＰＬに既に登録された命令ｉのプロセス情報ＰＩｉの予想負荷率をプロセス変更通知の予想負荷率に変更する（Ｓ８）。変更後、受動的更新処理を終了する。
【００６０】
各アプリケーション１２〜１４の命令の実行が完了したとき、各アプリケーション１２〜１４は表５に示すプロセス完了通知を出力する。
【表５】
2006202219.tif 000007
【００６１】
プロセス完了通知は識別情報を含む。この場合、プロセスマネージャ１５はステップＳ７で受けたステータス通知がプロセス完了通知であると判断し（Ｓ７でＮＯ）、プロセス完了通知に含まれる識別情報のプロセス情報ＰＩｉを削除する。
【００６２】
以上の動作により、プロセスマネージャ１５は各アプリケーション１２〜１４から出力されたステータス通知基づいて受動的にプロセスリストＰＬを更新する。
【００６３】
［能動的更新処理］
能動的更新処理では、プロセスマネージャ１５は演算処理部１１が実行中の全ての命令を検索し、プロセスリストＰＬに登録されていない受信命令、配信命令、再生命令が実行されていないかを確認する。さらに、実際には演算処理部１１で実行されていない命令がプロセスリストＰＬに登録されていないかを確認する。
【００６４】
上述したとおり、演算処理部１１は実行中の全ての命令を管理する。プロセスマネージャ１５は実行中の全ての命令を演算処理部１１に問い合わせる（Ｓ１１）。問い合わせの結果プロセスリストＰＬに登録されていない受信命令、配信命令、再生命令を発見した場合（Ｓ１２でＹＥＳ）、プロセスマネージャ１５はプロセスリストＰＬに新たな命令番号を登録し（Ｓ１３）、発見した命令ｉのプロセス情報ＰＩｉを登録する（Ｓ１４）。また、問い合わせの結果実行されていない命令ＩｉがプロセスリストＰＬに登録されている場合（Ｓ１５）、その命令のプロセス情報ＰＬｉをプロセスリストＰＬから削除する（Ｓ１６）。
【００６５】
以上の動作により、プロセスマネージャ１５は、能動的更新処理により受動的更新処理で更新できなかったプロセス情報ＰＩｉを更新できる。
【００６６】
２．１．２．負荷調整処理
プロセスマネージャ１５は負荷調整処理を実行することにより再生中のコンテンツに音切れや画面のフリーズが発生するのを防止する。具体的には、プロセスマネージャ１５は演算処理部１１の総負荷率ＴＬｉが過剰になった場合、再生命令以外の命令、すなわち受信命令及び／又は配信命令の優先度を下げたり、実行を停止したりする。これにより、演算処理部１１の総負荷率ＴＬｉを低下させ、再生命令の実行に支障が出ないようにする。つまり、負荷調整処理は再生命令の実行中に実行される。
【００６７】
図４を参照して、プロセスマネージャ１５は、プロセスリストＰＬに基づいて総負荷率ＴＬｉを算出する（Ｓ２１〜Ｓ２５）。
【００６８】
初めに、プロセスマネージャ１５は総負荷率ＴＬをリセットする（Ｓ２１）。続いて、カウント番号i＝１にする（Ｓ２２）。続いて、プロセスマネージャ１５は式（１）に基づいて総負荷率ＴＬｉを算出する（Ｓ２４）。
【００６９】
総負荷率ＴＬｉ＝ＴＬｉ−１＋命令ｉの予想負荷率×命令ｉの優先度情報  （１）
【００７０】
算出後、カウント番号ｉをインクリメントし(Ｓ２５）、ステップＳ２３に戻る。カウント番号ｉがプロセスリストＰＬ内の命令数よりも大きくなるまで（Ｓ２３でＮＯ）、ステップＳ２４の算出を繰り返す。要するに、プロセスリストＰＬに登録された全ての命令の総負荷率ＴＬｉを算出する。
【００７１】
総負荷率ＴＬｉを算出後、総負荷率ＴＬｉが１００％を超えたか否かを判断する(Ｓ２６）。総負荷率ＬＴｉが１００％を超えていないとき（Ｓ２６でＮＯ）、負荷調整処理を終了する。演算処理部１１に過剰な負荷がかかっておらず、再生中のコンテンツに音切れや画面のフリーズが発生するおそれがないためである。
【００７２】
一方、ステップＳ２６での判断の結果総負荷率ＴＬｉが１００％を超えたとき（Ｓ２６でＹＥＳ）、プロセスマネージャ１５は受信命令の優先度を下げる（Ｓ２７〜Ｓ３０）。具体的にはカウント値ｉ＝１にし（Ｓ２７）、属性情報が「receiver」であり、かつ、優先度情報が「１」である命令を命令番号１から順に検索する（Ｓ２８〜Ｓ３０）。「receiver」の属性情報と「１」の優先度情報とを有する命令ｉを検索したとき（Ｓ２９でＹＥＳ）、プロセスマネージャ１５は演算処理部１１に命令ｉの優先度を下げるよう指示する（Ｓ３５）。演算処理部１１は指示を受け、命令ｉの優先度を下げる。その結果、演算処理部１１にかかる負荷が低下する。プロセスマネージャはさらに、プロセスリストＰＬ内の命令ｉの優先度情報を「１」から「０．８」に下げる（Ｓ３６）。
【００７３】
プロセスマネージャ１５は優先度を下げるごとに、総負荷率ＴＬｉを算出し、優先度を下げた後の総負荷率ＴＬｉが１００％を超えるか否かを判断する（Ｓ２６）。優先度を下げたにもかかわらず、総負荷率ＴＬｉが１００％を超える場合（Ｓ２６でＹＥＳ）、「receiver」の属性情報と「１」の優先度情報とを有する命令ｉを検索し、検索した命令ｉの優先度を下げる動作を総負荷率ＴＬｉが１００％未満になるまで（Ｓ２６でＮＯ）繰り返す。
【００７４】
総負荷率ＴＬｉが１００％を超えているが（Ｓ２６でＹＥＳ）、「receiver」の属性情報と「１」の優先度情報とを有する命令ｉがプロセスリストＰＬにない場合（Ｓ２８でＹＥＳ）、プロセスリストＰＬ内に優先度を下げることができる受信命令が存在しない。
【００７５】
この場合、プロセスマネージャ１５は配信命令の優先度を下げる（Ｓ３１〜Ｓ３６）。受信命令の場合と同様に、カウント値ｉ＝１にし（Ｓ３１）、属性情報が「delivery」であり、かつ、優先度情報が「１」である命令ｉを命令番号１から順に検索する（Ｓ２８〜Ｓ３０）。「delivery」の属性情報と「１」の優先度情報とを有する命令ｉを検索したとき（Ｓ３３でＹＥＳ）、プロセスマネージャ１５は演算処理部１１に命令ｉの優先度を下げるよう指示し（Ｓ３５）、プロセスリストＰＬ内の優先度を「０．８」に下げる（Ｓ３６）。総負荷率ＴＬｉが１００％未満になるまで（Ｓ２６でＮＯ）この動作を繰り返す。
【００７６】
以上のように、プロセスマネージャ１５は総負荷率ＴＬｉが１００％を超えているとき、初めに受信命令の優先度を下げる。全ての受信命令の優先度を下げてもなお総負荷率ＴＬｉが１００％を超えている場合、プロセスマネージャ１５はさらに配信命令の優先度を下げる。要するに、プロセスマネージャ１５は総負荷率ＴＬｉが１００％未満になるまで受信命令、配信命令の順に優先度を下げる。配信命令の優先度を下げれば、ピア１からコンテンツをダウンロード中の他のピアに影響を与える。ピア１自身のみが影響を受ける受信命令から先に優先度を下げることで、他のピアへの影響を抑える。
【００７７】
プロセスリストＰＬに登録された受信命令及び配信命令の優先度を全て下げたにもかかわらず、総負荷率ＴＬｉが１００％を超える場合（Ｓ３２でＹＥＳ）、プロセスマネージャ１５は強制終了処理を実行する（Ｓ３７）。強制終了処理によりプロセスマネージャ１５は受信命令及び／又は配信命令の実行を強制的に停止し、総負荷率ＴＬｉを１００％未満にする。
【００７８】
図５を参照して、強制終了処理において、総負荷率ＴＬｉを算出し（Ｓ２１〜Ｓ２５）、算出した総負荷率ＴＬｉが１００％を超えたか否かを判断する（Ｓ２６）までのステップは図４と同じである。
【００７９】
ステップＳ２６での判断の結果、総負荷率ＴＬｉが１００％を超える場合（Ｓ２６でＹＥＳ）、プロセスマネージャ１５はまず受信命令の実行を強制終了する。具体的にはカウント値ｉ＝１にし（Ｓ２７）、属性情報が「receiver」の命令ｉを命令番号１から順に検索する（Ｓ２８〜Ｓ３０）。「receiver」の属性情報を有する命令ｉを検索したとき（Ｓ２９でＹＥＳ）、プロセスマネージャ１５は演算処理部１１に命令ｉの実行を終了するよう指示する（Ｓ４１）。これにより、演算処理部１１は命令ｉの実行を強制的に終了する。指示後、プロセスマネージャ１５は命令ｉのプロセス情報ＰＩｉをプロセスリストＰＬから削除する（Ｓ４２）。プロセスマネージャ１５は命令ｉの実行を終了させるごとに総負荷率ＴＬｉを算出し（Ｓ２１〜Ｓ２５）、検索した命令ｉの実行を強制終了する動作を総負荷率ＴＬｉが１００％未満になるまで（Ｓ２６でＮＯ）繰り返す。
【００８０】
総負荷率ＴＬｉが１００％を超えており（Ｓ２６でＹＥＳ）、かつ、「receiver」の属性情報を有する命令ｉをプロセスリストＰＬから全て削除した場合（Ｓ２８でＹＥＳ）、プロセスマネージャ１５は次に配信命令の実行を停止する（Ｓ３１〜Ｓ３４、Ｓ４３）。受信命令の場合と同様に、カウント値ｉ＝１にし（Ｓ３１）、属性情報が「delivery」の命令ｉを命令番号１から順に検索する（Ｓ３２〜Ｓ３４）。「delivery」の属性情報の命令ｉを検索したとき（Ｓ３３でＹＥＳ）、プロセスマネージャ１５は配信アプリケーション１３に命令ｉの実行を終了するよう強制終了命令を出力する（Ｓ４３）。配信アプリケーション１３は強制終了命令を受け、演算処理部１１に命令ｉの実行を終了するよう指示する（図６のステップＳ６３）。演算処理部１１は配信アプリケーション１３の指示により命令ｉの実行を終了する。
【００８１】
指示後、配信アプリケーション１３はプロセス完了通知をプロセスマネージャ１５に出力する（図６のステップＳ６４）。プロセスマネージャ１５はプロセス完了通知を受け、プロセスリストＰＬから命令ｉのプロセス情報ＰＩｉを削除する（図２中のステップＳ９）。
【００８２】
以上の動作により、優先度を下げてもなお演算処理部１１の負荷が過剰である場合、プロセスマネージャ１５は受信命令及び／又は配信命令の実行を終了する。これにより、演算処理部１１にかかる負荷を抑え、実行中の再生命令に支障がでないようにする。なお、プロセスマネージャ１５は他のピアに影響を与える配信命令よりも先に受信命令の実行を終了する。
【００８３】
２．２．配信アプリケーションの動作
配信アプリケーション１３は他のピアからの配信要求に応答して、コンテンツデータベース１０内のコンテンツを配信するよう演算処理部１１に命令する。配信アプリケーション１３はさらに、配信要求を受けたときプロセスリストＰＬに基づいて配信を拒否することができる。以下、配信アプリケーション１３の動作について説明する。
【００８４】
図６を参照して、配信アプリケーション１３は他のピアから配信要求を受けたとき（Ｓ５１）、プロセスマネージャ１５にプロセスリストＰＬを要求する（Ｓ５２）。プロセスマネージャ１５は要求に応じてプロセスリストＰＬを出力する（Ｓ６５）。
【００８５】
配信アプリケーション１３はプロセスリストＰＬを取得し（Ｓ５３）、プロセスリストＰＬに登録された配信命令の数が所定の数（たとえば２つ）と同じ又はそれよりも少ないか否かを判断する（Ｓ５４）。判断の結果、配信命令の数が所定の数よりも多い場合（Ｓ５４でＮＯ）、配信アプリは配信を拒否する（Ｓ５７）。所定の数よりも多い数の配信命令が既に実行中であるため、新たな配信命令をさらに実行すれば、演算処理部１１の負荷が過剰になり、実行中の他の命令に影響を与えるからである。ステップＳ５７では配信アプリケーション１３は配信要求を送信した他のピアに対して配信拒否通知を送信する。
【００８６】
ステップＳ５４で判断の結果、配信命令の数が所定の数と同じ、又は、少ないとき（Ｓ５４でＹＥＳ）、配信アプリケーション１３はプロセスリストＰＬに基づいて総負荷率ＴＬｉを算出する（Ｓ５５）。総負荷率ＴＬｉの算出方法は図４中のステップＳ２１〜Ｓ２５と同じである。配信アプリケーション１３は算出した総負荷率ＴＬｉが１００％未満であるか否かを判断する（Ｓ５６）。判断の結果、総負荷率ＴＬｉが１００％以上である場合（Ｓ５６でＮＯ）、配信アプリケーション１３は配信を拒否する（Ｓ５７）。配信を実行すれば、実行中の他の命令に影響を与えるためである。
【００８７】
ステップＳ５６の判断の結果、総負荷率ＴＬｉが１００％未満である場合（Ｓ５６でＹＥＳ）、配信アプリケーション１３はプロセスマネージャ１５にプロセス開始通知を出力し（Ｓ５８）、コンテンツの配信を開始する（Ｓ５９）。具体的には、演算処理部１１に配信命令を出力し、演算処理部１１にコンテンツの配信を実行させる。
【００８８】
コンテンツの配信を完了したとき（Ｓ６０でＹＥＳ）、又は何らかの原因により配信を失敗したとき（Ｓ６１でＹＥＳ）、配信アプリケーション１３はプロセスマネージャ１５にプロセス完了通知を出力する（Ｓ６４）。プロセスマネージャ１５はプロセス完了通知を受け、プロセスリストＰＬから該当する配信命令を削除する（図２中のステップＳ９）。
【００８９】
配信アプリケーション１３はさらに、プロセスマネージャ１５から強制終了命令を受けたか否かを判断する（Ｓ６２）。強制終了命令を受けていない場合（Ｓ６２でＮＯ）、ステップＳ６０に戻る。一方、強制終了命令を受けた場合（Ｓ６２でＹＥＳ）、演算処理部１１に配信命令の実行を終了するよう指示する（Ｓ６３）。指示した後、配信アプリケーション１３はプロセスマネージャ１５にプロセス完了通知を出力する（Ｓ６４）。
【００９０】
以上の動作により、配信アプリケーション１３は他のピアから配信要求を受けたとき、プロセスリストＰＬに基づいて配信を拒否できる。そのため、演算処理部１１に過剰な負荷がかかるのを抑制できる。
【００９１】
２．３．再生アプリの動作
再生アプリケーション１４はコンテンツを再生するよう再生命令を演算処理部１１に出力し、かつ、プロセスマネージャ１５にプロセス開始通知を出力する。さらに、再生命令のステータスが変更されるごとに、再生命令を更新し、かつ、プロセスマネージャ１５にプロセス変更通知を出力する。ステータスとは、再生や、一時停止、早送り、巻き戻しといった動作状況のことをいい、ステータスの変更とは、たとえば、コンテンツの再生を一時停止や、早送りや、巻き戻し等に変更することをいう。以下、再生アプリケーション１４の動作について説明する。
【００９２】
図７を参照して、コンテンツを再生するとき、再生アプリケーション１４はプロセス開始通知をプロセスマネージャ１５に出力する（Ｓ７１）。このとき、再生アプリケーション１４は表６に示す予想負荷率テーブルに基づいて、再生動作に対応した予想負荷率＝４０をプロセス開始通知に含める。
【表６】
2006202219.tif 000008
【００９３】
プロセス開始通知を出力後、再生アプリケーション１４は演算処理部１１に再生命令を出力する（Ｓ７２）。演算処理部１１は再生命令を受け、コンテンツの再生を開始する。
【００９４】
コンテンツの再生を開始後、再生アプリケーション１４は再生命令のステータスが変更されたか否かを判断する（Ｓ７３）。ステータスが変更された場合、たとえば、再生から早送りに変更された場合（Ｓ７３でＹＥＳ）、再生アプリケーション１４はプロセス変更通知を出力する（Ｓ７４）。このとき、再生アプリケーション１４は表６に示す予想負荷率テーブルに基づいて、早送り動作に対応した予想負荷率＝７０をプロセス変更通知に含める。これにより、プロセスマネージャ１５はプロセスリストＰＬに登録された再生命令の予想負荷率を「４０」から「７０」に変更する（図２中のステップＳ８）。プロセス変更通知を出力後、再生アプリケーション１４は演算処理部１１にコンテンツの再生を早送りに変更するよう指示する（Ｓ７５）。すなわち、再生命令を変更する。
【００９５】
再生命令のステータスが変更されず（Ｓ７３でＮＯ）、かつ、演算処理部１１が再生命令に基づく再生を完了したとき（Ｓ７６でＹＥＳ）、再生アプリケーション１４はプロセス完了通知をプロセスマネージャ１５に出力する（Ｓ７７）。プロセスマネージャ１５はプロセス完了通知を受け、該当する再生命令をプロセスリストＰＬから削除する（図２中のステップＳ９）。
【００９６】
以上の動作により、再生アプリケーション１４は再生命令のステータスを変更するごとにプロセス変更通知を出力する。そのため、プロセスマネージャ１５は常に最新の演算処理部１１の総負荷率ＴＬｉを算出できる。
【００９７】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【産業上の利用可能性】
【００９８】
本発明によるピアは、ピアツーピア型のコンテンツ配信システムに利用可能である。
【図面の簡単な説明】
【００９９】
【図１】本発明の実施の形態によるピアの構成を示す機能ブロック図である。
【図２】一般的なコンピュータの構成を示す機能ブロック図である。
【図３】図１に示したプロセスマネージャの管理処理の動作を示すフロー図である。
【図４】図１に示したプロセスマネージャの調整処理の動作を示すフロー図である。
【図５】図４に示したステップＳ３７の詳細を示すフロー図である。
【図６】図１に示した配信アプリの動作を示すフロー図である。
【図７】図１に示した再生アプリの動作を示すフロー図である。
【符号の説明】
【０１００】
１  ピア
１０  コンテンツデータベース
１１  演算処理部
１２  受信アプリケーション
１３  配信アプリケーション
１４  再生アプリケーション
１５  プロセスマネージャ
１６  プロセスリストデータベース
ＰＬ  プロセスリスト
【図１】
2006202219.tif 000009
【図２】
2006202219.tif 000010
【図３】
2006202219.tif 000011
【図４】
2006202219.tif 000012
【図５】
2006202219.tif 000013
【図６】
2006202219.tif 000014
【図７】
2006202219.tif 000015