(57)【特許請求の範囲】
【請求項１】
ネットワークを介して１又は複数のクライアントにビデオ信号を送信するビデオストリーム送信プロセスを実行するコンピュータを複数備えるビデオサーバシステムの負荷分散装置において、
前記各ビデオストリーム送信プロセスから、少なくとも、前記各ビデオストリーム送信プロセスを実行している前記コンピュータのアドレス情報、前記コンピュータのＣＰＵ負荷値、ネットワーク負荷値、ディスクアクセス負荷値、前記各ビデオストリーム送信プロセスの接続ユーザ数を含む送信プロセス情報を周期的に受け取り、前記各送信プロセス情報の登録・更新を行う送信プロセス情報管理手段と、
前記クライアントから接続要求されると、前記送信プロセス情報管理手段に管理される前記各送信プロセス情報に基づき所定の負荷比較条件に従って、負荷状態が最軽量である前記ビデオストリーム送信プロセスを決定するプロセス決定手段と、
前記プロセス決定手段により決定された当該ビデオストリーム送信プロセスを実行している前記コンピュータのアドレス情報を前記クライアントに通知するアクセス情報通知手段と
を備え、
前記送信プロセス情報管理手段が、
前記各ビデオストリーム送信プロセスから前記送信プロセス情報を受信すると、受信した前記送信プロセス情報と、前記送信プロセス情報管理手段が管理する当該ビデオストリーム送信プロセスの前記送信プロセス情報とに基づき、前記接続ユーザ数の増減を確認し、
前記接続ユーザ数の増加がなく、かつ、前記ＣＰＵ負荷値、前記ネットワーク負荷値、前記ディスクアクセス負荷値が増加している場合、前記ＣＰＵ負荷値、前記ネットワーク負荷値、前記ディスクアクセス負荷値を、前記受信した送信プロセス情報と、前記送信プロセス情報管理手段が管理する前記送信プロセス情報との中間値となるように更新し、
前記接続ユーザ数の増加がなく、かつ、前記ＣＰＵ負荷値、前記ネットワーク負荷値、前記ディスクアクセス負荷値が減少している場合、前記送信プロセス情報管理手段が管理している前記送信プロセス情報の更新を行わない
ことを特徴とする負荷分散装置。
【請求項２】
前記送信プロセス情報が、さらに、前記ビデオストリーム送信プロセスが現在送出しているビットレート容量の合計値を最大容量で割った値に１００を掛けたビットレートの容量使用率を含むものであり、
前記プロセス決定手段が、前記各送信プロセス情報に含まれる、前記ＣＰＵ負荷値、前記ネットワーク負荷値、前記ディスクアクセス負荷値、前記容量使用率に基づく負荷値合計の比較により、最軽量の前記ビデオストリーム送信プロセスを決定する
ことを特徴とする請求項１に記載の負荷分散装置。
【請求項３】
ネットワークを介して１又は複数のクライアントにビデオ信号を送信するビデオストリーム送信プロセスを実行するコンピュータを複数備えるビデオサーバシステムの負荷分散方法において、
送信プロセス情報管理手段が、前記各ビデオストリーム送信プロセスから、少なくとも、前記各ビデオストリーム送信プロセスを実行している前記コンピュータのアドレス情報、前記コンピュータのＣＰＵ負荷値、ネットワーク負荷値、ディスクアクセス負荷値、前記各ビデオストリーム送信プロセスの接続ユーザ数を含む送信プロセス情報を周期的に受け取り、前記各送信プロセス情報の登録・更新を行う送信プロセス情報管理工程と、
プロセス決定手段が、前記クライアントから接続要求されると、前記送信プロセス情報管理手段に管理される前記各送信プロセス情報に基づき所定の負荷比較条件に従って、負荷状態が最軽量である前記ビデオストリーム送信プロセスを決定するプロセス決定工程と、
アクセス情報通知手段が、前記プロセス決定手段により決定された当該ビデオストリーム送信プロセスを実行している前記コンピュータのアドレス情報を前記クライアントに通知するアクセス情報通知工程と
を有し、
前記送信プロセス情報管理手段が、
前記各ビデオストリーム送信プロセスから前記送信プロセス情報を受信すると、受信した前記送信プロセス情報と、前記送信プロセス情報管理手段が管理する当該ビデオストリーム送信プロセスの前記送信プロセス情報とに基づき、前記接続ユーザ数の増減を確認し、
前記接続ユーザ数の増加がなく、かつ、前記ＣＰＵ負荷値、前記ネットワーク負荷値、前記ディスクアクセス負荷値が増加している場合、前記ＣＰＵ負荷値、前記ネットワーク負荷値、前記ディスクアクセス負荷値を、前記受信した送信プロセス情報と、前記送信プロセス情報管理手段が管理する前記送信プロセス情報との中間値となるように更新し、
前記接続ユーザ数の増加がなく、かつ、前記ＣＰＵ負荷値、前記ネットワーク負荷値、前記ディスクアクセス負荷値が減少している場合、前記送信プロセス情報管理手段が管理している前記送信プロセス情報の更新を行わない
ことを特徴とする負荷分散方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、負荷分散方法及び負荷分散装置に関し、特にビデオ配信サービスにおけるビデオサーバシステムに適用して好適なものである。
【０００２】
【従来の技術】
従来、ビデオ配信サービスやビデオサーバシステムにおけるビデオストリーム送信プロセスの負荷分散方式にあっては、
（１）ラウンドロビン方式によりクライアントからの要求がある毎にコンピュータにビデオストリーム送信プロセスを順次割り当てていく方法、
（２）コンピュータ毎のＣＰＵ負荷を比較して、負荷値が最小であるプロセッサを選択し、そのプロセッサ上のビデオストリーム送信プロセスにおいてクライアントにビデオストリーム信号を送出する方法、
が一般的であった。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述した（１）および（２）に示す方法では、下記に示すような問題が生じる可能性がある。
【０００４】
まず、（１）の方法では、ビデオ配信サービスを終了しないでいる複数のクライアントが存在する場合、ビデオストリーム送信プロセスが起動されるある特定のコンピュータにクライアントのアクセスが偏在することになり、そのプロセスが起動されているプロセッサのＣＰＵ負荷が過剰に増加する可能性がある。
【０００５】
また、（２）の方法ではコンピュータ毎のＣＰＵ負荷を比較することから、
（１）の方法の問題点として挙げられたＣＰＵ負荷の過剰な増加については回避することは可能ではあるものの、ＣＰＵの負荷値が同値の場合、選択したＣＰＵによっては、ネットワーク負荷やディスクアクセス負荷、送信ビットレートの使用率が高くなる場合がある可能性がある。
【０００６】
さらに（２）の方法の場合、予め設定された所定の期間内に取得した数回の負荷の平均をとって負荷値とするのが一般的であるが、この場合、負荷計測中にユーザが偶然ビデオ操作を一時中止していたり、負荷の重いと推測される早送りなどの特殊操作を行っていたりすると、負荷値が一時的に小さい値や大きな値をとることになり、実際の負荷状況とは異なるコンピュータが割り当てられる可能性がある。
【０００７】
本発明は、以上の点を考慮してなされたものであり、特定のプロセスへの負荷の集中を防ぐことができる負荷分散方法及び負荷分散装置を提供しようとするものである。
【０００８】
【課題を解決するための手段】
かかる課題を解決するため、第１の本発明の負荷分散装置は、ネットワークを介して１又は複数のクライアントにビデオ信号を送信するビデオストリーム送信プロセスを実行するコンピュータを複数備えるビデオサーバシステムの負荷分散装置において、各ビデオストリーム送信プロセスから、少なくとも、各ビデオストリーム送信プロセスを実行しているコンピュータのアドレス情報、コンピュータのＣＰＵ負荷値、ネットワーク負荷値、ディスクアクセス負荷値、各ビデオストリーム送信プロセスの接続ユーザ数を含む送信プロセス情報を周期的に受け取り、各送信プロセス情報の登録・更新を行う送信プロセス情報管理手段と、クライアントから接続要求されると、送信プロセス情報管理手段に管理される各送信プロセス情報に基づき所定の負荷比較条件に従って、負荷状態が最軽量であるビデオストリーム送信プロセスを決定するプロセス決定手段と、負荷分散手段により決定された当該ビデオストリーム送信プロセスを起動するコンピュータのアドレス情報をクライアントに通知するアクセス情報通知手段とを備え、送信プロセス情報管理手段が、各ビデオストリーム送信プロセスから送信プロセス情報を受信すると、受信した送信プロセス情報と、送信プロセス管理手段が管理する当該ビデオストリーム送信プロセスの送信プロセス情報とに基づき、接続ユーザ数の増減を確認し、接続ユーザ数の増加がなく、かつ、ＣＰＵ負荷値、ネットワーク負荷値、ディスクアクセス負荷値が増減している場合には、当該受信した送信プロセス情報への更新を行わないことを特徴とする。
【０００９】
第２の本発明の負荷分散方法は、ネットワークを介して１又は複数のクライアントにビデオ信号を送信するビデオストリーム送信プロセスを実行するコンピュータを複数備えるビデオサーバシステムの負荷分散方法において、送信プロセス情報管理手段が、各ビデオストリーム送信プロセスから、少なくとも、各ビデオストリーム送信プロセスを実行しているコンピュータのアドレス情報、コンピュータのＣＰＵ負荷値、ネットワーク負荷値、ディスクアクセス負荷値、各ビデオストリーム送信プロセスの接続ユーザ数を含む送信プロセス情報を周期的に受け取り、各送信プロセス情報の登録・更新を行う送信プロセス情報管理工程と、プロセス決定手段が、クライアントから接続要求されると、送信プロセス情報管理手段に管理される各送信プロセス情報に基づき所定の負荷比較条件に従って、負荷状態が最軽量であるビデオストリーム送信プロセスを決定するプロセス決定工程と、アクセス情報通知手段が、負荷分散手段により決定された当該ビデオストリーム送信プロセスを起動するコンピュータのアドレス情報をクライアントに通知するアクセス情報通知手段とを有し、送信プロセス情報管理手段が、各ビデオストリーム送信プロセスから送信プロセス情報を受信すると、受信した送信プロセス情報と、送信プロセス管理手段が管理する当該ビデオストリーム送信プロセスの送信プロセス情報とに基づき、接続ユーザ数の増減を確認し、接続ユーザ数の増加がなく、かつ、ＣＰＵ負荷値、ネットワーク負荷値、ディスクアクセス負荷値が増減している場合には、当該受信した送信プロセス情報への更新を行わないことを特徴とする。
【００２１】
【発明の実施の形態】
（Ａ）第１の実施形態
以下、本発明によるビデオストリーム送信プロセスの負荷分散方法が適用される装置の第１の実施形態を図面を参照しながら詳述する。
【００２２】
（Ａ−１）第１の実施形態の構成
図１は、第１の実施形態のビデオストリーム送信プロセスの負荷分散装置の構成を示すブロック図である。図１に示す第１の実施形態おいては、ビデオサーバシステム１１を例にとり、構成および動作について説明する。
【００２３】
なお、本第１の実施形態はビデオサーバシステム１１のみに適用される訳ではなく、例えば、複数のコンピュータから構成される任意のビデオサーバシステムに適用され得るものである。
【００２４】
また、ここで言うコンピュータには、クライアント（ユーザ）にビデオ信号を送出する「ビデオストリーム送信プロセス」が起動されているものが１つ以上と、クライアント（ユーザ）からの要求を受け付けクライアントに割り当てるビデオストリーム送信プロセスを選択・決定する「ユーザ要求受信・負荷分散プロセス」が起動されているものが１つ、存在する。また前記コンピュータはストレージエリアネットワークを介してビデオデータが格納されているディスク装置と接続される。
【００２５】
なお、これら「ビデオストリーム送信プロセス」と「ユーザ要求受信・負荷分散プロセス」は、それぞれ複数のコンピュータ上に存在するように構成しても良く、あるいは任意のプロセスを単一のコンピュータ上に存在させて構成しても良い。ここでは「ビデオストリーム送信プロセス」と「ユーザ要求受信・負荷分散プロセス」は、それぞれが異なるコンピュータ上で起動されるものとして説明する。
【００２６】
ビデオサーバシステム１１は、ネットワーク２１を介してクライアント３１乃至３４のそれぞれと接続されている。また、ビデオサーバシステム１１は、コンピュータ４１乃至４４とディスク５１、５２を含み構成され、さらに、これらコンピュータ４１乃至４４とディスク装置としてのディスク５１、５２はストレージエリアネットワーク６１により相互に接続されている。
【００２７】
またコンピュータ４１、４２、４３は、それぞれビデオストリーム送信プロセス７１、７２、７３がそれぞれ起動され、並列プロセス構成を採っている。コンピュータ４４はユーザ要求受信・負荷分散プロセス８１が起動される。
【００２８】
ビデオストリーム送信プロセス７１、７２、７３は、ネットワーク２１を介してビデオサーバシステム１１に接続されるクライアント３１乃至３４に対してビデオストリームを送信する。
【００２９】
図２は、コンピュータ４４で起動されるユーザ要求受信・負荷分散プロセス８１の機能内容を示す機能ブロック構成図である。ユーザ要求受信・負荷分散プロセス８１は、クライアント（またはユーザ）からの要求を受け付けるユーザ要求受信処理部８１１と、ビデオストリーム送信プロセスからのプロセス情報通知を受け付ける並列プロセス情報管理部８１２とを含む。
【００３０】
次に図３を参照して、この並列プロセス情報管理部８１２について説明する。並列プロセス情報管理部８１２は、ビデオサーバシステム上に存在する全てのビデオストリーム送信プロセス７１、７２、７３からのプロセス情報通知をストレージエリアネットワーク６１または図示しないネットワークを介して定期的に受け付け、それぞれ送信プロセス情報８１２２１、８１２２２、８１２２３により管理する。これら送信プロセス情報はビデオストリーム送信プロセス１つにつき１つの情報が存在し、すべての情報は送信プロセス情報リスト８１２１により管理される。
【００３１】
図４は、送信プロセス情報リスト８１２１により管理される送信プロセス情報８１２２１のデータ構成図である。また送信プロセス情報８１２２２、８１２２３も同様のデータ構成を採っている。
【００３２】
図４に示す送信プロセス情報８１２２１は、送信プロセス識別子、送信プロセスアクセス情報、プロセス状態、接続ユーザ数、ＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷、帯域能力（最大容量）及び帯域能力（使用容量）から構成される。
【００３３】
これらの情報のうち、プロセス状態、接続ユーザ数、ＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷、帯域能力（最大容量）、帯域能力（使用容量）については、ビデオストリーム送信プロセスから情報通知を受け付けることにより、常に最新の情報に更新される。これらのデータのそれぞれについて、詳細な説明を表形式にまとめて図６に示す。
【００３４】
ここで再び、図２を参照するに、ユーザ要求受信処理部８１１はネットワーク２１を介してクライアント（ユーザ）からの要求があった際に、並列プロセス情報管理部８１２に対して、ビデオストリーム送信プロセスの割当てを要求する。並列プロセス情報管理部８１２では、図３に示す送信プロセス情報リスト８１２１の各送信プロセス情報８１２２１、８１２２２、８１２２３の中から最適なビデオストリーム送信プロセスを決定し、ユーザ要求受信処理部８１１に返却する。ユーザ要求受信処理部８１１は、この決定されたビデオストリーム送信プロセスにアクセスするための情報をクライアントに通知する。
【００３５】
図５は、ビデオストリーム送信プロセス７１の機能を示す機能ブロック構成図である。なおビデオストリーム送信プロセス７２、７３の構成、作用も同様であるので、ここではビデオストリーム送信プロセス７１について説明する。
【００３６】
図５において、ビデオストリーム送信プロセス７１は、ビデオ操作要求受信処理部７１１と、ビデオストリーム送信処理部７１２と、自プロセス情報通知部７１３と、ビデオデータ読み取り部７１４とを含む。
【００３７】
まず、ビデオ操作要求受信処理部７１１は、クライアント（ユーザ）からのビデオ操作要求を受け付けると、この操作要求に従い、ビデオデータ読み取り部７１４でディスク５１，５２よりビデオデータを読み取って、ビデオストリーム送信処理部７１２でクライアントに対してビデオストリームを送出する。
【００３８】
このとき自プロセス情報通知部７１３では、コンピュータに掛かっているＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷をそれぞれ計測するとともに、自身に接続されているユーザ数、および送信しているビデオストリームの使用容量を算出し、プロセス情報としてユーザ要求受信・負荷分散プロセスに対して通知する。この自プロセス情報通知部７１３における処理は所定の時間間隔（例えば１０秒間隔）で行われる。
【００３９】
（Ａ−２）第１の実施形態の動作
次に、この第１の実施形態のビデオストリーム送信プロセスの負荷分散装置の動作を説明する。
【００４０】
以下、図７に示すフローチャートを用いてビデオサーバシステム１１の動作を処理手順に従って説明する。
【００４１】
まず、ビデオサーバシステム上のビデオストリーム送信プロセス７１，７２，７３は、定期的に、例えば所定の時間間隔（例えば１０秒間隔）で自身の負荷情報を計測し、ユーザ要求受信・負荷分散プロセス８１に通知する（ステップＳ１１）。
【００４２】
通知を受け付けたユーザ要求受信・負荷分散プロセス８１は、通知元のビデオストリーム送信プロセスに対応する送信プロセス情報のデータを通知された負荷情報に基づいて更新する（ステップＳ１３）。
【００４３】
例えば図３を参照するに、ビデオストリーム送信プロセス７１が負荷情報を通知すると、ユーザ要求受信・負荷分散プロセス８１の並列プロセス情報管理部８１２においてこれを受信し、並列プロセス情報管理部８１２は通知元のビデオストリーム送信プロセス７１に対応する送信プロセス情報８１２２１上のデータを通知された情報に基づいて更新する。
【００４４】
この一連の動作により、ユーザ要求受信・負荷分散プロセス８１の並列プロセス情報管理部８１２では各ビデオストリーム送信プロセスについて常に最新の送信プロセス情報を管理することができる。
【００４５】
このときの並列プロセス情報管理部８１２の動作フローを図８に示す。まず、ステップＳ３１でプロセス情報通知を受信すると、ステップＳ３３に進み、ユーザ要求受信・負荷分散プロセス８１の並列プロセス情報管理部８１２では、通知された情報に含まれる値により、通知元のビデオストリーム送信プロセスに対応する送信プロセス情報上のデータを更新する。
【００４６】
次に、図７を参照して、ユーザがクライアントを通じてビデオサービスを利用する際のビデオサーバシステム１１の動作例を説明する。
【００４７】
まず、ユーザは各クライアントを通じてビデオサーバシステム１１に対して、サーバへのアクセスを要求すると（ステップＳ１５）、まずユーザ要求受信・負荷分散プロセス８１が、ビデオストリーム送信プロセス７１，７２，７３の中から負荷の最も軽いプロセスを決定し（ステップＳ１７）、このプロセスのアクセス情報をアクセス要求元のクライアントに返却する（ステップＳ１９）。次にクライアントはこのアクセス情報に基づいてビデオストリーム送信プロセスに接続し、ビデオ操作要求し（ステップＳ２１）、ディスクよりビデオデータを読み取り（ステップＳ２３）、送信されたビデオストリームを受信し（ステップＳ２５）、ビデオサービスを利用する。
【００４８】
図７を参照するに、例えば図１，２に示すクライアント３１がビデオサーバシステム１１に対してネットワーク２１を介してサーバアクセス要求を行う（ステップＳ１５）と、この要求をコンピュータ４４上のユーザ要求受信・負荷分散プロセス８１のユーザ要求受信処理部８１１において受け付ける。要求を受け付けたユーザ要求受信処理部８１１は、並列プロセス情報管理部８１２に対してビデオストリーム送信プロセスの割当てを要求する。
【００４９】
並列プロセス情報管理部８１２は、自身の持つ各ビデオストリーム送信プロセス７１，７２，７３の各送信プロセス情報を比較し、負荷の最も軽いビデオストリーム送信プロセスを決定する（ステップＳ１７）。決定されたビデオストリーム送信プロセスのアクセス情報が並列プロセス情報管理部８１２を通じて、ユーザ要求受信処理部８１１に返却され、ユーザ要求受信処理部８１１はクライアント３１に対して、このアクセス情報を通知する（ステップＳ１９）。
【００５０】
例えば並列プロセス情報管理部８１２がビデオストリーム送信プロセス７２を決定した場合、このビデオストリーム送信プロセス７２へのアクセス情報がユーザ要求受信処理部８１１からクライアント３１に返却され、クライアント３１はこのアクセス情報に基づいてコンピュータ４２上のビデオストリーム送信プロセス７２に接続を行い、ビデオ操作を行う（ステップＳ２１，２３，２５）。
【００５１】
次に、図９を参照してビデオストリーム送信プロセス割当の処理手順について説明する。
【００５２】
クライアント３１がビデオサーバシステム１１に対してサーバアクセス要求を行うと、要求を受け付けたユーザ要求受信処理部８１１は、並列プロセス情報管理部８１２に対してビデオストリーム送信プロセスの割当てを要求する（ステップＳ４１）。
【００５３】
ステップＳ４３において、正常状態のプロセスが存在すると判断されたときには、ステップＳ４５に進む。
【００５４】
並列プロセス情報管理部８１２のビデオストリーム送信プロセスの割当ては、図３に示す送信プロセス情報リスト８１２１をコピーし（ステップＳ４５）、コピーしたリストについて各送信プロセス情報８１２２１〜８１２２３のデータを負荷比較条件に基づいてソートを施し（ステップＳ４７）、その中で負荷が最軽量のプロセスが決定されることで行われる。
【００５５】
続いて、ステップＳ４９で割当て正常として、ソート後のリストの先頭にある送信プロセス情報のアクセス情報をユーザ要求受信処理部８１１に通知し、処理を終了する。
【００５６】
また、上記ステップＳ４３において、正常状態のプロセスが存在しないと判断されたときには、ステップＳ５１に進み、割当て異常として、割当て可能なプロセスが存在しない旨をユーザ要求受信処理部８１１に通知して処理を終了する。
【００５７】
また、並列プロセス情報管理部８１２はパターンの負荷比較条件を持つ。すなわち、負荷比較条件１は、ビデオストリーム送信プロセスのＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷、および容量使用率のいずれかの値が突出したもの抽出し、これを負荷が大きいプロセスとみなすものである。
【００５８】
また、負荷比較条件２は、「ＣＰＵ負荷＞ネットワーク負荷＞ディスクアクセス負荷＞容量使用率」の順に負荷値の比較を行い、負荷値の高い方を負荷が大きいプロセスとみなすものである。
【００５９】
次に、図１０を参照して負荷比較条件１について詳細に説明する。
【００６０】
まず、ステップＳ６１において、比較を行う２つのプロセス情報について、リストの先方にあるものをＡ、リストの後方にあるものをＢとする。次にステップＳ６３では、接続ユーザ数以外の項目について、大きい値のものほど負荷が高いと見做すため、以下に示す計算値で負荷値合計を算出する。
【００６１】
負荷値合計＝｛Ｌ１｝＋｛Ｌ２｝＋｛Ｌ３｝＋｛Ｌ４｝
但し、
｛Ｌ１｝；｛ＣＰＵ負荷の３乗｝
｛Ｌ２｝；｛ネットワーク負荷の３乗｝
｛Ｌ３｝；｛ディスクアクセス負荷の３乗｝
｛Ｌ４｝；｛容量使用率の３乗｝
とする。
【００６２】
次に、ステップＳ６５に進み、負荷値合計を比較し、Ａ＞ＢならばステップＳ６９に進みリスト上でＡとＢとの位置を置き換えた後に終了する。またＡ＜Ｂならば、そのまま処理を終了する。さらにＡ＝Ｂならば、ステップＳ６７に進み、さらに接続ユーザ数を比較する。Ａ＞ＢならばステップＳ６９に進みリスト上でＡとＢとの位置を置き換えた後に終了する。またＡ＝ＢまたはＡ＜Ｂならば、そのまま処理を終了する。
【００６３】
次に、図１１を参照して負荷比較条件２について、詳細に説明する。
【００６４】
まずステップＳ７１において、ＣＰＵ負荷を比較し、Ａ＞ＢならばステップＳ８１に進みリスト上でＡとＢとの位置を置き換えた後に終了する。またＡ＜Ｂならば、そのまま処理を終了し、Ａ＝Ｂならば、ステップＳ７３に進む。
【００６５】
続いてステップＳ７３において、ネットワーク負荷を比較し、Ａ＞ＢならばステップＳ８１に進みリスト上でＡとＢとの位置を置き換えた後に終了する。またＡ＜Ｂならば、そのまま処理を終了し、Ａ＝Ｂならば、ステップＳ７５に進む。
【００６６】
続いてステップＳ７５において、ディスクアクセス負荷を比較し、Ａ＞ＢならばステップＳ８１に進みリスト上でＡとＢとの位置を置き換えた後に終了する。またＡ＜Ｂならば、そのまま処理を終了し、Ａ＝Ｂならば、ステップＳ７７に進む。
【００６７】
続いてステップＳ７７において、容量使用率を比較し、Ａ＞ＢならばステップＳ８１に進みリスト上でＡとＢとの位置を置き換えた後に終了する。またＡ＜Ｂならば、そのまま処理を終了し、Ａ＝Ｂならば、ステップＳ７９に進む。
【００６８】
続いてステップＳ７９において、接続ユーザ数を比較し、Ａ＞ＢならばステップＳ８１に進みリスト上でＡとＢとの位置を置き換えた後に終了する。またＡ＝ＢまたはＡ＜Ｂならば、そのまま処理を終了する。
【００６９】
このようにして、並列プロセス情報管理部８１２は、ビデオサーバシステムの設定により負荷比較条件１もしくは負荷比較条件２によって、送信プロセス情報リストのコピーをソーティングする。この設定は、ビデオサーバシステムの管理者がシステムの負荷特性を判断し、どちらかの条件を設定することができる。
【００７０】
（Ａ−３）第１の実施形態の効果
本第１の実施形態によると、クライアントの要求に対して全ビデオストリーム送信プロセスの中から負荷が最軽量のプロセスを割り当てることにより、１つのプロセスへの負荷の集中を防ぐことはもちろんのこと、ＣＰＵ負荷以外の負荷項目として、ネットワーク負荷、ディスクアクセス負荷、送信ビットレートの最大容量に対する使用率についても分散が可能となる。
【００７１】
また、各ビデオストリーム送信プロセスから定期的に負荷情報を通知する仕組みを採っており、このユーザ要求受信・負荷分散プロセスに届かないことにより、ビデオストリーム送信プロセスの異常を早期に発見することができる。これにより、正常に動作していないビデオストリーム送信プロセスをクライアントに割り当てないことが可能になるため、ビデオサーバシステムの信頼性が向上する。
【００７２】
また、複数の負荷比較条件を配備することによって、ビデオサーバシステム毎の負荷特性に応じた負荷分散の実現が可能となる。
【００７３】
（Ｂ）第２の実施形態
次に、本発明によるビデオストリーム送信プロセスの負荷分散方法及び装置の第２の実施形態を図面を参照しながら詳述する。
【００７４】
（Ｂ−１）第２の実施形態の構成
第２の実施形態の構成は、第１の実施形態と同じ構成であるため、第１の実施形態の図１乃至６を用いる。
【００７５】
（Ｂ−２）第２の実施形態の動作
以下、第２の実施形態の動作例は、図７に示した第１の実施形態の動作例と略同様である。
【００７６】
ここで、例えば図３および図４で、ビデオストリーム送信プロセス７１が負荷情報を通知すると、ユーザ要求受信・負荷分散プロセス８１の並列プロセス情報管理部８１２においてこれを受信し、並列プロセス情報管理部８１２は通知元のビデオストリーム送信プロセス７１に対応する送信プロセス情報８１２２１上の各データ情報と通知された情報の比較を行う。
【００７７】
以下、図１２を参照して、並列プロセス情報管理部８１２の動作について説明する。
【００７８】
まず、プロセス情報通知を受信する（ステップＳ９１）。次に送信プロセス情報８１２２１上とビデオストリーム送信プロセスから通知された情報上の接続ユーザ数を比較して、接続ユーザ数の増加の有無について確認する（ステップＳ９３）。接続ユーザ数の増加が無い場合にはステップＳ９５に進み、ＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷の値の変化の有無について確認する。これらの値が変化していた場合、ユーザがビデオ操作を停止しているか、特殊操作を行っているものとみなす。
【００７９】
例えば、負荷が下がっている場合には送信プロセス情報８１２２１上のＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷の値を更新すること無く、処理を終了する（ステップＳ９９）。また、負荷が上がっている場合には、送信プロセス情報８１２２１上のＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷の値を、通知された情報上のそれらとの中間値を算出して、更新して処理を終了する（ステップＳ９７）。
【００８０】
また、ステップＳ９３で接続ユーザ数が増加していることが確認された場合と、ステップＳ９５で送信プロセス情報８１２２１上のＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷の値に変化が無い場合に、ステップＳ１０１に進み送信プロセス情報上の値を、通知された情報に設定された値により更新して処理を終了する。
【００８１】
（Ｂ−３）第２の実施形態の効果
第２の実施形態では、ユーザが偶然ビデオ操作を一時中止していたり、負荷の重いと推測される早送りなどの特殊操作を行っていたりして負荷が一時的に変化しても、以前の負荷情報を用いて最適なコンピュータを割り当てることができる。
【００８２】
（Ｃ）第３の実施形態
次に、本発明によるビデオストリーム送信プロセスの負荷分散方法及び装置の第３の実施形態を図面を参照しながら詳述する。
【００８３】
（Ｃ−１）第３の実施形態の構成
第３の実施形態の構成は、第１、第２の実施形態と同じ構成であるため、第１の実施形態の図１乃至６を用いる。
【００８４】
（Ｃ−２）第３の実施形態の動作
以下、第３の実施形態の動作例は、図７に示した第１、第２の実施形態の動作例と同じである。
【００８５】
ここで、例えば図３および図４で、ビデオストリーム送信プロセス７１が負荷情報を通知すると、ユーザ要求受信・負荷分散プロセス８１の並列プロセス情報管理部８１２においてこれを受信し、並列プロセス情報管理部８１２は通知元のビデオストリーム送信プロセス７１に対応する送信プロセス情報８１２２１上の各データ情報と通知された情報の比較を行う。
【００８６】
図１３を参照するに、比較はまず、送信プロセス情報８１２２１上とビデオストリーム送信プロセスから通知された情報上の接続ユーザ数を比較して（ステップＳ１１３）、接続ユーザ数の増加の有無を確認する。接続ユーザ数の増加が無い場合の動作フローは第２の実施形態に示した図１２と同じとなる。
【００８７】
第２の実施形態では、接続ユーザ数の増加があった場合、並列プロセス情報管理部８１２は、通知された情報の値をそのまま送信プロセス情報８１２２１上のデータに更新する。このとき、ユーザがビデオ操作を開始していない場合などで、実際のコンピュータの状況と通知された負荷情報の値に差異が生じる可能性があり得る。
【００８８】
そこで第３の実施形態においては、接続ユーザ数の増加があった場合、負荷がどのように変化するかを統計的に計算しておき、該当コンピュータの処理能力を判断する。
【００８９】
例えば、ステップＳ１１３において接続ユーザ数が増えたことが判断された場合には、送信プロセス情報８１２２１上のＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷の補正値を再計算し（ステップＳ１１５）、この再計算して得られた補正値により、ＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷に対して増加分の補正を行う（ステップＳ１１７）。
【００９０】
次に、通知された情報に設定されているこれらの負荷情報の値と比較を行い、例えば、負荷が下がっている場合には送信プロセス情報８１２２１上のＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷の更新はしない（ステップＳ１２３）。また負荷が上がっている場合には、送信プロセス情報８１２２１上とＣＰＵ負荷、ネットワーク負荷、ディスクアクセス負荷を、通知された情報に設定されているこれらの情報との中間値を採って、更新する（ステップＳ１２１）。また、変化が無い場合には、送信プロセス情報上の値を通知された情報に、設定された値により更新する（ステップＳ１２５）。
【００９１】
（Ｃ−３）第３の実施形態の効果
第３の実施形態では、統計的に負荷情報を操作することでより効果的にコンピュータを割り当てることができる。
【００９２】
尚、上記の第１の実施形態では、ビデオストリーム送信プロセスが起動されているコンピュータを３台実装しているビデオサーバシステムを用いた例を説明したが、本発明はこれに限定されること無く、例えば２台以上のビデオストリーム送信プロセスが起動されているコンピュータが実装されていれば、本発明のビデオストリーム送信プロセスの負荷分散方法及び装置に適用することができる。
【００９３】
また、上述してきたビデオストリーム送信プロセスの負荷分散プログラムは、無線回線、電話回線、インターネット等を含む任意の通信媒体およびこの負荷分散プログラムを記録した記録媒体により、その流通性を高めることができる。
【００９４】
【発明の効果】
以上のように、本発明のビデオストリーム送信プロセスの負荷分散方法及び装置と負荷分散プログラムと該プログラムを記録した記録媒体によれば、各種負荷を計測し、この計測結果を自身の負荷情報としてユーザ要求受信・負荷分散プロセスに通知するようにしたので、負荷の偏りを管理しやすくなり、負荷の集中を未然に防止するのに役立つという効果を奏する。
【００９５】
また、クライアントの要求に対して全てのビデオストリーム送信プロセスの中から負荷が最軽量のプロセスを割り当てるようにしたので、１つのプロセスへの負荷の集中を防ぐことを可能とすることができる。
【００９６】
さらに、負荷としては、ＣＰＵ負荷以外に、ネットワーク負荷、ディスクアクセス負荷、送信ビットレートの最大容量に対する使用率についても分散を可能としていることから、負荷の一時的に変動に対しても最適なコンピュータを割り当てることができる。
【図面の簡単な説明】
【図１】第１の実施形態に係るビデオサーバシステムの概略構成を示すブロック図である。
【図２】ユーザ要求受信及び負荷分散プロセスの機能ブロック図である。
【図３】並列プロセス情報管理部におけるデータ相関を示す図である。
【図４】送信プロセス情報のデータ構成を示す図である。
【図５】ビデオストリーム送信プロセスの機能ブロック図である。
【図６】送信プロセス情報のデータ内容を説明する図である。
【図７】ビデオサーバシステムの動作とサービス利用手順を説明するためのフローチャートである。
【図８】ビデオストリーム送信プロセスからの情報通知受信の処理手順を示すフローチャートである。
【図９】ビデオストリーム送信プロセス割当ての際の処理手順を示すフローチャートである。
【図１０】送信プロセス情報の負荷比較の際における比較処理手順を示すフローチャートである。
【図１１】送信プロセス情報の負荷比較の際における比較処理手順を示すフローチャートである。
【図１２】第２の実施形態に係るビデオストリーム送信プロセスからの情報通知受信の処理手順を示すフローチャートである。
【図１３】第３の実施形態に係るビデオストリーム送信プロセスからの情報通知受信の処理手順を示すフローチャートである。
【符号の説明】
１１…ビデオサーバシステム、２１…ネットワーク、
３１、３２、３３、３４…クライアント、
４１、４２、４３、４４…コンピュータ、５１、５２…ディスク、
６１…ストレージエリアネットワーク、
７１、７２、７３…ビデオストリーム送信プロセス、
８１…ユーザ要求受信・負荷分散プロセス。
【図１】
0004595274.tif 000002
【図２】
0004595274.tif 000003
【図３】
0004595274.tif 000004
【図４】
0004595274.tif 000005
【図５】
0004595274.tif 000006
【図６】
0004595274.tif 000007
【図７】
0004595274.tif 000008
【図８】
0004595274.tif 000009
【図９】
0004595274.tif 000010
【図１０】
0004595274.tif 000011
【図１１】
0004595274.tif 000012
【図１２】
0004595274.tif 000013
【図１３】
0004595274.tif 000014