(57)【要約】【課題】データの読出し処理遅延の影響が波及することを防止することを課題とする。【解決手段】ストリームサーバ１０は、各ディスクサーバ（例えば、ディスクサーバ３０〜ディスクサーバ５０）から読み出されたデータをそれぞれ個別に蓄積するように、各ディスクサーバに対応付けてバッファサーバ２０に複数のバッファ（例えば、バッファ２１〜バッファ２３）を備える。そして、バッファサーバ２０は、ディスクサーバ３０、ディスクサーバ４０およびディスクサーバ５０から転送されてきたデータをそれぞれ受け付けると、ディスクサーバ３０から受け付けたデータをバッファ２１に、ディスクサーバ４０から受け付けたデータをバッファ２２に、ディスクサーバ５０から受け付けたデータをバッファ２３にそれぞれ個別に蓄積する。【選択図】        図１
2008293198.tif 000002
【特許請求の範囲】
【請求項１】
分散させたデータをそれぞれ保存する各データ保存装置と、各データ保存装置から読み出されたデータを蓄積するデータ蓄積装置とを含んで構成され、端末装置からの要求に応じてデータ蓄積装置に蓄積されたデータを配信するデータ配信装置において、各データ保存装置からデータ蓄積装置へのデータの転送を制御するための方法をコンピュータに実行させるデータ転送制御プログラムであって、
前記各データ保存装置に対応付けて前記データ蓄積装置内に備えられた各データ蓄積部に、当該データ保存装置から読み出されたデータをそれぞれ蓄積するデータ蓄積手順をコンピュータに実行させることを特徴とするデータ転送制御プログラム。
【請求項２】
前記データ配信装置は、前記データ蓄積装置を複数含んで構成されるものであって、
前記データ蓄積手順により蓄積された各データ蓄積部におけるデータ蓄積量が所定の閾値を超えているか否かをデータ蓄積装置ごとに判断する閾値判断手順と、
前記閾値判断手順によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積部を含むデータ蓄積装置について、前記データ保存装置からのデータの読み出しを停止させる停止手順とをさらにコンピュータに実行させることを特徴とする請求項１に記載のデータ転送制御プログラム。
【請求項３】
分散させたデータをそれぞれ保存する各データ保存装置と、各データ保存装置から読み出されたデータを蓄積するデータ蓄積装置とを含んで構成され、端末装置からの要求に応じてデータ蓄積装置に蓄積されたデータを配信するデータ配信装置において、各データ保存装置からデータ蓄積装置へのデータの転送を制御するデータ転送制御方法であって、
前記各データ保存装置に対応付けて前記データ蓄積装置内に備えられた各データ蓄積部に、当該データ保存装置から読み出されたデータをそれぞれ蓄積するデータ蓄積工程を含んだことを特徴とするデータ転送制御方法。
【請求項４】
前記データ配信装置は、前記データ蓄積装置を複数含んで構成されるものであって、
前記データ蓄積工程により蓄積された各データ蓄積部におけるデータ蓄積量が所定の閾値を超えているか否かをデータ蓄積装置ごとに判断する閾値判断工程と、
前記閾値判断工程によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積部を含むデータ蓄積装置について、前記データ保存装置からのデータの読み出しを停止させる停止工程とをさらに含んだことを特徴とする請求項３に記載のデータ転送制御方法。
【請求項５】
分散させたデータをそれぞれ保存する各データ保存装置と、各データ保存装置から読み出されたデータを蓄積するデータ蓄積装置とを含んで構成され、端末装置からの要求に応じてデータ蓄積装置に蓄積されたデータを配信するデータ配信装置であって、
前記データ保存装置から読み出されたデータを当該データ保存装置ごとに蓄積するデータ蓄積手段を備えたことを特徴とするデータ配信装置。
【請求項６】
前記データ配信装置は、前記データ蓄積装置を複数含んで構成されるものであって、
前記データ蓄積手段により蓄積された各データ蓄積装置におけるデータ蓄積量が所定の閾値を超えているか否かを判断する閾値判断手段と、
前記閾値判断手段によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積装置について、前記データ保存装置からのデータの読み出しを停止させる停止手段とをさらに備えたことを特徴とする請求項５に記載のデータ配信装置。
【請求項７】
各データ保存装置に対応付けてデータ蓄積装置内に備えられた各データ蓄積部に、当該データ保存装置から読み出されたデータをそれぞれ蓄積するデータ蓄積手順に対応するプログラムを読取可能な状態に記録することを特徴とする記録媒体。
【請求項８】
データ蓄積手順により蓄積された各データ蓄積部におけるデータ蓄積量が所定の閾値を超えているか否かをデータ蓄積装置ごとに判断する閾値判断手順に対応するプログラムと、
前記閾値判断手順によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積部を含むデータ蓄積装置について、データ保存装置からのデータの読み出しを停止させる停止手順に対応するプログラムとを読取可能な状態に記録することを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、分散させたデータをそれぞれ保存する各データ保存装置と、各データ保存装置から読み出されたデータを蓄積するデータ蓄積装置とを含んで構成され、端末装置からの要求に応じてデータ蓄積装置に蓄積されたデータを配信するデータ配信装置において、各データ保存装置からデータ蓄積装置へのデータの転送を制御するための方法をコンピュータに実行させるデータ転送制御プログラム等に関する。
【背景技術】
【０００２】
従来より、マルチメディアデータなどを分散して保存しておき、各端末からの要求に応じて配信する分散型マルチメディアサーバシステムというものが存在する。例えば、図６を用いて、ストリームサーバを含んで構成される従来の分散型マルチディアサーバシステムについて簡単に説明する（非特許文献１または２参照）。
【０００３】
図６に示すように、ストリームサーバは、分割されたマルチメディアデータをそれぞれ蓄積するための複数のディスクサーバ（以下、適宜「ＤＳ」と記す）と、各ＤＳから読み出した分割マルチメディアデータを取り込んで多重化するバッファサーバ（以下、適宜「ＢＳ」と記す）とから構成される。また、例えば、ＢＳには、各ＤＳ（例えば、ＤＳ１〜ＤＳ３）から読み出した分割マルチメディアデータを取り込むためのバッファが備えられている。
【０００４】
そして、ストリームサーバは、端末からの要求に応じて、各ＤＳからＢＳに取り込んだ分割マルチメディアデータを多重化して端末に配信する。なお、ストリームサーバは、各ＤＳに蓄積されている分割マルチメディアデータを取り込む際には、各ＤＳに対して順番に（例えば、ＤＳ１からＤＳ３の順に）読み出しを行ってＢＳに取り込む。
【０００５】
【非特許文献１】「InfiniBandを用いたＰＣクラスタ型高速ストリームサーバアーキテクチャ」、信学技報、電子情報通信学会、平成１７年５月２５日、Vol.105、No.86、p.33―36
【非特許文献２】「ＰＣクラスタを用いたＩＰネットワークデータベースの非圧縮ＨＤＴＶ１０多重ストリームサーバ」、マルチメディア，分散，協調とモバイル（ＤＩＣＯＭＯ  ２００５）シンポジウム予稿集、情報処理学会、平成１７年７月８日、p.797―800
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記した従来の技術は、データの読出し処理遅延の影響が波及する場合があるという問題点があった。すなわち、上記した従来の技術は、各ＤＳからシーケンシャルにデータの読み出し処理を行っているので、ストレージサーバ内のある特定のＤＳからのマルチメディアデータの読出し処理が遅延すると、次のＤＳからのマルチメディアデータの読み出しに移ることができず、結果として、全てのＤＳからのマルチメディアデータの読出し処理が遅延する場合があるという問題点があった。
【０００７】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、データの読出し処理遅延の影響が波及することを防止することが可能なデータ転送制御プログラム、データ転送制御方法、データ配信装置および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、分散させたデータをそれぞれ保存する各データ保存装置と、各データ保存装置から読み出されたデータを蓄積するデータ蓄積装置とを含んで構成され、端末装置からの要求に応じてデータ蓄積装置に蓄積されたデータを配信するデータ配信装置において、各データ保存装置からデータ蓄積装置へのデータの転送を制御するための方法をコンピュータに実行させるデータ転送制御プログラムであって、前記各データ保存装置に対応付けて前記データ蓄積装置内に備えられた各データ蓄積部に、当該データ保存装置から読み出されたデータをそれぞれ蓄積するデータ蓄積手順をコンピュータに実行させることを特徴とする。
【０００９】
また、請求項２に係る発明は、上記の発明において、前記データ配信装置は、前記データ蓄積装置を複数含んで構成されるものであって、前記データ蓄積手順により蓄積された各データ蓄積部におけるデータ蓄積量が所定の閾値を超えているか否かをデータ蓄積装置ごとに判断する閾値判断手順と、前記閾値判断手順によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積部を含むデータ蓄積装置について、前記データ保存装置からのデータの読み出しを停止させる停止手順とをさらにコンピュータに実行させることを特徴とする。
【００１０】
また、請求項３に係る発明は、分散させたデータをそれぞれ保存する各データ保存装置と、各データ保存装置から読み出されたデータを蓄積するデータ蓄積装置とを含んで構成され、端末装置からの要求に応じてデータ蓄積装置に蓄積されたデータを配信するデータ配信装置において、各データ保存装置からデータ蓄積装置へのデータの転送を制御するデータ転送制御方法であって、前記各データ保存装置に対応付けて前記データ蓄積装置内に備えられた各データ蓄積部に、当該データ保存装置から読み出されたデータをそれぞれ蓄積するデータ蓄積工程を含んだことを特徴とする。
【００１１】
また、請求項４に係る発明は、上記の発明において、前記データ配信装置は、前記データ蓄積装置を複数含んで構成されるものであって、前記データ蓄積工程により蓄積された各データ蓄積部におけるデータ蓄積量が所定の閾値を超えているか否かをデータ蓄積装置ごとに判断する閾値判断工程と、前記閾値判断工程によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積部を含むデータ蓄積装置について、前記データ保存装置からのデータの読み出しを停止させる停止工程とをさらに含んだことを特徴とする。
【００１２】
また、請求項５に係る発明は、分散させたデータをそれぞれ保存する各データ保存装置と、各データ保存装置から読み出されたデータを蓄積するデータ蓄積装置とを含んで構成され、端末装置からの要求に応じてデータ蓄積装置に蓄積されたデータを配信するデータ配信装置であって、前記データ保存装置から読み出されたデータを当該データ保存装置ごとに蓄積するデータ蓄積手段を備えたことを特徴とする。
【００１３】
また、請求項６に係る発明は、上記の発明において、前記データ配信装置は、前記データ蓄積装置を複数含んで構成されるものであって、前記データ蓄積手段により蓄積された各データ蓄積装置におけるデータ蓄積量が所定の閾値を超えているか否かを判断する閾値判断手段と、前記閾値判断手段によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積装置について、前記データ保存装置からのデータの読み出しを停止させる停止手段とをさらに備えたことを特徴とする。
【００１４】
また、請求項７に係る発明は、各データ保存装置に対応付けてデータ蓄積装置内に備えられた各データ蓄積部に、当該データ保存装置から読み出されたデータをそれぞれ蓄積するデータ蓄積手順に対応するプログラムを読取可能な状態に記録することを特徴とする。
【００１５】
また、請求項８に係る発明は、データ蓄積手順により蓄積された各データ蓄積部のデータ蓄積量が所定の閾値を超えているか否かをデータ蓄積装置ごとに判断する閾値判断手順に対応するプログラムと、前記閾値判断手順によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積部を含むデータ蓄積装置について、データ保存装置からのデータの読み出しを停止させる停止手順に対応するプログラムとを読取可能な状態に記録することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、各データ保存装置に対応付けてデータ蓄積装置内に備えられた各データ蓄積部に、データ保存装置から読み出されたデータをそれぞれ蓄積するデータ蓄積手順をコンピュータに実行させるので、従来のように、各ディスクサーバからシーケンシャルにデータの読み出し処理を行う必要がなく、データの読出し処理遅延の影響が波及することを防止することが可能である。すなわち、各ディスクサーバから取り込まれたデータの蓄積処理をそれぞれ個別に（並列に）実行するので、ある特定のディスクサーバからのデータの読み出し処理が遅延したとしても、他のディスクサーバからのデータの読み出し処理が影響を受けることはない。
【００１７】
また、本発明によれば、データ蓄積装置を複数含んで構成されるデータ配信装置において、データ蓄積手順により蓄積された各データ蓄積部におけるデータ蓄積量が所定の閾値を超えているか否かをデータ蓄積装置ごとに判断する閾値判断手順と、閾値判断手順によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積部を含むデータ蓄積装置について、データ保存装置からのデータの読み出しを停止させる停止手順とをさらにコンピュータに実行させるので、データ蓄積量が多いデータ蓄積装置のデータの読出しを停止させるといった簡易な処理で、結果的として、データの蓄積量が少ないデータ蓄積装置に優先的にデータを蓄積させることが可能である。
【００１８】
また、本発明によれば、各データ保存装置に対応付けてデータ蓄積装置内に備えられた各データ蓄積部に、データ保存装置から読み出されたデータをそれぞれ蓄積するデータ蓄積手順に対応するプログラムを読取可能な状態に記録する記録媒体を得ることが可能である。
【００１９】
また、本発明によれば、データ蓄積手順により蓄積された各データ蓄積部のデータ蓄積量が所定の閾値を超えているか否かをデータ蓄積装置ごとに判断する閾値判断手順に対応するプログラムと、閾値判断手順によりデータ蓄積量が所定の閾値を超えているものと判断されたデータ蓄積部を含むデータ蓄積装置について、データ保存装置からのデータの読み出しを停止させる停止手順に対応するプログラムとを読取可能な状態に記録する記録媒体を得ることが可能である。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、本発明に係るデータ転送制御プログラム、データ転送制御方法、データ配信装置および記録媒体の実施例を詳細に説明する。なお、以下では、本発明に係るデータ転送プログラムを実行するデータ配信装置（ストリームサーバ）を例に挙げて実施例１として説明した後に、本発明に含まれる他の実施例を説明する。
【００２１】
以下の実施例１では、実施例１に係るストリームサーバの概要および特徴、ストリームサーバの構成を順に説明し、最後に実施例１による効果を説明する。
【実施例１】
【００２２】
［ストリームサーバの概要および特徴（実施例１）］
まず最初に、図１を用いて、実施例１に係るストリームサーバの概要および特徴を説明する。図１は、実施例１に係るストリームサーバの概要および特徴を説明するための図である。
【００２３】
同図に示すように、実施例１に係るストリームサーバ１０は、分散させたデータをそれぞれ保存する各ディスクサーバと、各ディスクサーバに保存されているデータを読み出して蓄積するバッファサーバとを含んで構成され、端末からの要求に応じてバッファサーバに蓄積されたマルチメディアデータ（例えば、映像データや音楽データなど）を配信することを概要とする。
【００２４】
このような概要を有する実施例１に係るストリームサーバ１０は、従来のように、各ディスクサーバからシーケンシャルにデータの読み出し処理を行う必要がなく、データの読出し処理遅延の影響が波及することを防止することが可能である点に主たる特徴がある。
【００２５】
この主たる特徴について具体的説明すると、実施例１に係るストリームサーバ１０は、各ディスクサーバ（例えば、ディスクサーバ３０〜ディスクサーバ５０）から読み出されたデータをそれぞれ個別に蓄積するように、各ディスクサーバに対応付けてバッファサーバ２０に複数のバッファ（例えば、バッファ２１〜バッファ２３）を備える。
【００２６】
そして、バッファサーバ２０は、ディスクサーバ３０、ディスクサーバ４０およびディスクサーバ５０から転送されてきたデータをそれぞれ受け付けると、ディスクサーバ３０から受け付けたデータをバッファ２１に、ディスクサーバ４０から受け付けたデータをバッファ２２に、ディスクサーバ５０から受け付けたデータをバッファ２３にそれぞれ個別に蓄積する。
【００２７】
このようなことから、実施例１に係るストリームサーバは、上述した主たる特徴のごとく、従来のように、各ディスクサーバからシーケンシャルにデータの読み出し処理を行う必要がなく、データの読出し処理遅延の影響が波及することを防止することが可能である。
【００２８】
［ストリームサーバの構成（実施例１）］
次に、図２を用いて、実施例１に係るストリームサーバの構成を説明する。図２は、実施例１に係るストリームサーバの構成を示すブロック図である。なお、同図には、実施例１に係るストリームサーバを実現する上で密接に関連する処理機能部のみを記載し、その他の処理機能部については記載を省略している。
【００２９】
同図に示すように、実施例１に係るストリームサーバ１０は、データ配信用ネットワークを介して端末と通信可能な状態に接続される。また、実施例１に係るストリームサーバ１０は、データ転送用ネットワークを介して、バッファサーバ２０と各ディスクサーバ（ディスクサーバ３０、ディスクサーバ４０およびディスクサーバ５０）とを通信可能な状態に接続して構成される。
【００３０】
このうち、バッファサーバ２０は、バッファ２１と、バッファ２２と、バッファ２３と、制御部内に含まれるデータ読出し要求部２４およびデータ多重化部２５とから構成される。
【００３１】
各バッファ（バッファ２１、バッファ２２およびバッファ２３）は、各ディスクサーバから読み出されたデータをそれぞれ個別に蓄積する。具体的には、バッファサーバ２０は、ディスクサーバ３０、ディスクサーバ４０およびディスクサーバ５０から転送されてきたデータをそれぞれ受け付けると、ディスクサーバ３０から受け付けたデータをバッファ２１に、ディスクサーバ４０から受け付けたデータをバッファ２２に、ディスクサーバ５０から受け付けたデータをバッファ２３にそれぞれ個別に蓄積する。
【００３２】
制御部は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行し、特に本発明に密接に関連するものとして、データ読出し要求部２４およびデータ多重化部２５とを備える。このうち、データ読出し要求部２４は、データ転送用ネットワークを介して、各ディスクサーバにデータ読出し要求を行う。また、データ多重化部２５は、各バッファに蓄積されているデータを適切な順序で読み出して多重化する。
【００３３】
各ディスクサーバ（ディスクサーバ３０、ディスクサーバ４０およびディスクサーバ５０）は、マルチメディアデータ（映像データや音楽データなど）を所定の単位で分割した分割マルチメディアデータをそれぞれ保存する。
【００３４】
そして、ストリームサーバ１０は、端末からのデータ要求に応じて、バッファサーバ２０に蓄積されたデータをデータ配信用ネットワーク１４を介して配信する。
【００３５】
なお、ストリームサーバ１０、バッファサーバ２０、ディスクサーバ３０〜ディスクサーバ５０は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した各機能を搭載することによって実現することができる。
【００３６】
［実施例１の効果］
上述してきたように、実施例１によれば、各ディスクサーバ（ディスクサーバ３０〜ディスクサーバ５０）から読み出されたデータをそれぞれ個別に蓄積する各バッファ（バッファ２１、バッファ２２およびバッファ２３）をバッファサーバ２０内に備えるので、従来のように、各ディスクサーバからシーケンシャルにデータの読み出し処理を行う必要がなく、データの読出し処理遅延の影響が波及することを防止することが可能である。すなわち、各ディスクサーバから取り込まれたデータの蓄積処理をそれぞれ個別に（並列に）実行するので、ある特定のディスクサーバからのデータの読み出し処理が遅延したとしても、他のディスクサーバからのデータの読み出し処理が影響を受けることはない。
【実施例２】
【００３７】
また、上記の実施例１において、ストリームサーバ１０内に複数のバッファサーバを設置し、各バッファにおけるデータ蓄積量が所定の閾値を超えているか否かをバッファサーバごとに判断して、ディスクサーバからバッファサーバへのデータの転送を制御するようにしてもよい。そこで、以下の実施例２では、実施例２に係るストリームサーバの構成および処理を順に説明し、最後に実施例２による効果を説明する。
【００３８】
［ストリームサーバ装置の構成（実施例２）］
まず、図３を用いて、実施例２に係るストリームサーバの構成を説明する。図３は、実施例２に係るストリームサーバの構成を示すブロック図である。同図に示すように、実施例２に係るストリームサーバ１０と実施例１に係るストリームサーバ１０とは、基本的には同様の構成であるが、以下に説明する点が異なる。
【００３９】
すなわち、実施例２に係るストリームサーバ１０は、複数のバッファサーバ（バッファサーバ２０、バッファサーバ６０およびバッファサーバ７０）を設置して構成される。そして、各バッファサーバの制御部に、データ蓄積量監視部２６を備える。
【００４０】
例えば、バッファサーバ２０のデータ蓄積量監視部２６は、ストリームサーバ１０の起動中、各バッファ（例えば、バッファ２１、バッファ２２およびバッファ２３）におけるデータ蓄積量を監視して、データ蓄積量が閾値（データ蓄積量の上限値）を超えているか否かを判断する。そして、データ蓄積量が閾値を超えていると判断したバッファが存在する場合には、データ読出し要求部２４にデータ読出し要求の停止指示を送出する。
【００４１】
このようにして、バッファサーバ２０において各ディスクサーバへのデータ読出し要求が停止されている間に、各ディスクサーバでは、他のバッファサーバ（例えば、バッファサーバ６０やバッファサーバ７０）からの読出し要求が処理され、結果的に、他のバッファサーバ内の各バッファにデータが蓄積されていく。
【００４２】
また、バッファサーバ２０のデータ蓄積量監視部２６は、データ読出し要求部２４にデータ読出し要求の停止指示を送出した後も、データ蓄積量が閾値を超えていると判断したバッファの監視を継続して、例えば、データ蓄積量が閾値の半分より少なくなった場合には、データ読出し要求部２４にデータ読出し要求の再開指示を送出する。データ読出し要求の再開指示を送出した後、データ蓄積量監視部２６は、再び、各バッファ（例えば、バッファ２１、バッファ２２およびバッファ２３）におけるデータ蓄積量の監視に戻る。
【００４３】
上述してきた処理の流れについて簡単に説明すると、データ蓄積量監視部２６は、各バッファのデータ蓄積量を監視しつつ、各バッファのデータ蓄積量が閾値を超えているか否か所定のタイミングで順に判断する。例えば、バッファ２１のデータ蓄積量が閾値を超えているか否か判断し、その結果、バッファ２１のデータ蓄積量が閾値を超えていると判断した場合には、バッファ２１へのバッファリングを停止するように、対応ディスクサーバ（例えば、ＤＳ３０）に対するデータ読出し要求の停止指示をデータ読出し要求部２４に送出する。
【００４４】
データ蓄積量監視部２６は、引き続き、バッファ２１のデータ蓄積量の監視を継続して、バッファ２１のデータ蓄積量が閾値の半分より少なくなったか否か所定のタイミングで判断する。その結果、バッファ２１のデータ蓄積量が閾値の半分より少なくなった場合には、バッファ２１へのバッファリングを再開するように、対応ディスクサーバに対するデータ読出し要求の再開指示をデータ読出し要求部２４に送出する。
【００４５】
そして、データ蓄積量監視部２６は、データ蓄積量が閾値を超えているか否か判断すべき次のバッファがあるかどうか確認する。その結果、次のバッファがある場合には、例えば、次のバッファであるバッファ２２について、まず、データ蓄積量が閾値を超えているか否か判断する等、上述したバッファ２１と同様の処理を実行する。データ蓄積量が閾値を超えているか否か判断すべき次のバッファが無い場合には、データ蓄積量監視部２６は、各バッファのデータ蓄積量の監視に戻る。
【００４６】
なお、データ蓄積量監視部２６は、ストリームサーバ１０の起動中は常時、あるいは定期的に各バッファのデータ蓄積量を監視するようにしてもよい。また、データ読出し要求部２４にデータ読出し要求の再開指示を送出するタイミングは、データ蓄積量が閾値の半分より少なくなった場合に限られるものではなく、適宜変更することができる。
【００４７】
データ読出し要求部２４は、データ蓄積量監視部２６からデータ読出し要求停止指示を受け付けると、各ディスクサーバに対するデータ読出し要求を停止する。また、データ読出し要求部２４は、データ蓄積量監視部２６からデータ読出し要求再開指示を受け付けると、各ディスクサーバに対するデータ読出し要求を再開する。
【００４８】
［ストリームサーバの処理（実施例２）］
次に、図４を用いて、実施例２に係るストリームサーバの処理を説明する。図４は、実施例２に係るストリームサーバの処理の流れを示すフローチャートである。なお、以下では、ストリームサーバ１０の起動中に、バッファサーバ２０のデータ蓄積量監視部２６において実行されるデータ転送制御処理について説明する。
【００４９】
同図に示すように、データ蓄積量監視部２６は、各バッファのデータ蓄積量を監視しつつ、各バッファのデータ蓄積量が閾値を超えているか否か順に判断する（ステップＳ４０１）。例えば、バッファ２１のデータ蓄積量が閾値を超えているか否か判断し、その結果、バッファ２１のデータ蓄積量が閾値を超えていると判断した場合には（ステップＳ４０１肯定）、バッファ２１へのバッファリングを停止するように、対応ディスクサーバ（例えば、ＤＳ３０）に対するデータ読出し要求の停止指示をデータ読出し要求部２４に送出する（ステップＳ４０２）。
【００５０】
データ蓄積量監視部２６は、引き続き、バッファ２１のデータ蓄積量の監視を継続して、バッファ２１のデータ蓄積量が閾値の半分より少なくなったか否か判断する（ステップＳ４０３）。その結果、バッファ２１のデータ蓄積量が閾値の半分より少なくなったと判断した場合には（ステップＳ４０３肯定）、バッファ２１へのバッファリングを再開するように、対応ディスクサーバに対するデータ読出し要求の再開指示をデータ読出し要求部２４に送出する（ステップＳ４０４）。
【００５１】
そして、データ蓄積量監視部２６は、データ蓄積量が閾値を超えているか否か判断すべき次のバッファがないかどうか確認する（ステップＳ４０５）。その結果、次のバッファがある場合には（ステップＳ４０５否定）、例えば、次のバッファであるバッファ２２について、まず、データ蓄積量が閾値を超えているか否か判断する等、上述したバッファ２１と同様の処理を実行する。これとは反対に、データ蓄積量が閾値を超えているか否か判断すべき次のバッファが無い場合には（ステップＳ４０５肯定）、データ蓄積量監視部２６は、各バッファのデータ蓄積量の監視に戻る。
【００５２】
ここで、ステップＳ４０１の説明に戻ると、データ蓄積量監視部２６は、例えば、バッファ２１のデータ蓄積量が閾値を超えているか否か判断し、その結果、バッファ２１のデータ蓄積量が閾値を超えていないと判断した場合には（ステップＳ４０１否定）、データ蓄積量が閾値を超えているか否か判断すべき次のバッファがないかどうか確認する（ステップＳ４０５）。
【００５３】
また、ステップＳ４０３の説明に戻ると、データ蓄積量監視部２６は、引き続き、バッファ２１のデータ蓄積量の監視を継続して、バッファ２１のデータ蓄積量が閾値の半分より少なくなったか否か所定のタイミングで判断した結果、バッファ２１のデータ蓄積量が閾値の半分より少なくなっていないと判断した場合には（ステップＳ４０３否定）、データ蓄積量が閾値を超えているか否か判断すべき次のバッファがないかどうか確認する（ステップＳ４０５）。
【００５４】
［実施例２による効果］
上述してきたように、実施例２によれば、ストリームサーバ１０内に複数のバッファサーバ（例えば、バッファサーバ２０、バッファサーバ６０およびバッファサーバ７０）を設置し、各バッファにおけるデータ蓄積量が所定の閾値を超えているか否かをバッファサーバごとに判断してデータ蓄積量を制御するので、データ蓄積量が多いバッファサーバ２０のデータの読出しを停止させるといった簡易な処理で、結果的として、データの蓄積量が少ないバッファサーバに優先的にデータを蓄積させることが可能である。
【実施例３】
【００５５】
さて、これまで本発明の実施例１または実施例２について説明してきたが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００５６】
（１）装置構成等
図２または図３に示したストリームサーバ１０を構成する各バッファサーバの各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各バッファサーバの分散・統合の具体的形態は図示のものに限られず、図２に示すバッファサーバ２０のバッファ２１と、バッファ２２と、バッファ２３とを統合し、図３に示すバッファサーバ２０のデータ読出し要求部２４とデータ蓄積量監視部２６とを統合するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、ストリームサーバ１０を構成する各バッファサーバおよび各ディスクサーバにて行なわれる各処理機能（例えば、図４等参照）は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５７】
（２）データ転送制御プログラム
ところで、上記の実施例２で説明したデータ転送制御処理方法（図４参照）は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、その一例として、図５を用いて、上記の実施例２と同様の機能を有するデータ転送制御プログラムを実行するコンピュータを説明する。図５は、データ転送制御プログラムを実行するコンピュータを示す図である。
【００５８】
まず、図５に示すように、バッファサーバとしてのコンピュータ８０は、通信制御Ｉ／Ｆ部８１、ＨＤＤ８２、ＲＡＭ８３、ＲＯＭ８４およびＣＰＵ８５をバス９０で接続して構成される。
【００５９】
そして、ＲＯＭ８４には、上記の実施例２に示したバッファサーバ２０（図３参照）と同様の機能を発揮するデータ転送制御プログラム、つまり、図５に示すように、データ読出し要求プログラム８４ａ、データ多重化プログラム８４ｂおよびデータ蓄積量監視プログラム８４ｃがあらかじめ記憶されている。なお、これらのプログラム８４ａ、８４ｂおよび８４ｃについては、図３に示したバッファサーバ２０の各構成要素と同様、適宜統合または分散してもよい。なお、ＲＯＭ８４は、不揮発性の「ＲＡＭ」でもよい。
【００６０】
そして、ＣＰＵ８５が、これらのプログラム８４ａ、８４ｂおよび８４ｃをＲＯＭ８４から読み出して実行することで、図５に示すように、各プログラム８４ａ、８４ｂおよび８４ｃは、データ読出し要求プロセス８５ａ、データ多重化プロセス８５ｂおよびデータ蓄積量監視プロセス８５ｃとして機能するようになる。なお、各プロセス８５ａ、８５ｂおよび８５ｃは、図３に示したデータ読出し要求部２４、データ多重化部２５およびデータ蓄積量監視部２６にそれぞれ対応する。
【００６１】
また、ＨＤＤ８２には、図５に示すように、データ蓄積量情報テーブル８２ａが設けられる。このデータ蓄積量情報テーブル８２ａにおいて管理される情報は、図３に示したバッファ２１、バッファ２２およびバッファ２３におけるデータ蓄積量の情報に対応する。そして、ＣＰＵ８５は、データ蓄積量情報テーブル８２ａからデータ蓄積量情報８３ａを読み出してＲＡＭ８３に格納し、ＲＡＭ８３に格納されたデータ蓄積量情報８３ａに基づいてデータ転送制御処理を実行する。
【００６２】
なお、上記した各プログラム８４ａ、８４ｂおよび８４ｃについては、必ずしも最初からＲＯＭ８４に記憶させておく必要はなく、例えば、コンピュータ８０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ８０の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ８０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ８０がこれらから各プログラムを読み出して実行するようにしてもよい。
【産業上の利用可能性】
【００６３】
以上のように、本発明に係るデータ転送制御プログラム、データ転送制御方法、データ配信装置および記録媒体は、分散させたデータをそれぞれ保存する各データ保存装置と、各データ保存装置から読み出されたデータを蓄積するデータ蓄積装置とを含んで構成され、端末装置からの要求に応じてデータ蓄積装置に蓄積されたデータを配信するデータ配信装置において、各データ保存装置からデータ蓄積装置へのデータの転送を制御する場合に有用であり、特に、データの読出し処理遅延の影響が波及することを防止することに適する。
【図面の簡単な説明】
【００６４】
【図１】実施例１に係るストリームサーバの概要および特徴を説明するための図である。
【図２】実施例１に係るストリームサーバの構成を示すブロック図である。
【図３】実施例２に係るストリームサーバの構成を示すブロック図である。
【図４】実施例２に係るストリームサーバの処理の流れを示すフローチャートである。
【図５】データ転送制御プログラムを実行するコンピュータを示す図である。
【図６】従来技術の構成例を示す図である。
【符号の説明】
【００６５】
１、２、３  ディスクサーバ
４  データ配信用ネットワーク
５  データ転送用ネットワーク
１０  ストリームサーバ
２０、６０、７０  バッファサーバ
２１、２２、２３  バッファ
２４  データ読出し要求部
２５  データ多重化部
２６  データ蓄積量監視部
３０、４０、５０  ディスクサーバ
８０  コンピュータ
８１  通信制御Ｉ／Ｆ部
８２  ＨＤＤ（Hard Disk Drive）
８２ａ  データ蓄積量情報テーブル
８３  ＲＡＭ（Random Access Memory）
８３ａ  データ蓄積量情報
８４  ＲＯＭ（Read Only Memory）
８４ａ  データ読出し要求プログラム
８４ｂ  データ多重化プログラム
８４ｃ  データ蓄積量監視プログラム
８５  ＣＰＵ（Central Processing Unit）
８５ａ  データ読出し要求プロセス
８５ｂ  データ多重化プロセス
８５ｃ  データ蓄積量監視プロセス
９０  バス
【図１】
2008293198.tif 000003
【図２】
2008293198.tif 000004
【図３】
2008293198.tif 000005
【図４】
2008293198.tif 000006
【図５】
2008293198.tif 000007
【図６】
2008293198.tif 000008