(57)【特許請求の範囲】
【請求項１】
端末へ配信する情報を分割したセグメントを分散して格納するＮ（２≦Ｎ）個の蓄積サーバモジュールと、
前記端末からの情報の読み出し要求を受け付け、前記各蓄積サーバモジュールに蓄積された前記セグメントを一括して読み出し、該セグメントから前記情報を再構成して前記端末へ転送するＭ（Ｍ≦Ｎ）個の通信サーバモジュールと、
任意の前記通信サーバモジュールと任意の前記蓄積サーバモジュール間の通信を可能とするサーバモジュール間ネットワークとを具備する分散型サーバ装置における情報アクセス方法であって、
前記Ｎ個の蓄積サーバモジュールが、前記通信サーバモジュールからの前記セグメントの読み出し要求の処理時間が前記セグメントの転送時間のＭ倍以下となるようにキューを処理し、
前記通信サーバモジュールが、Ｎ個のセグメントを格納できる容量を持つ初期バッファリング領域と、Ｎ個のセグメントを格納できる容量を持つ受信データバッファリング領域とを有し、
前記初期バッファリング領域に格納されたセグメントを前記端末へ配信しながら、同時に前記受信データバッファリング領域へ前記Ｎ個の蓄積サーバモジュールから転送されたＮ個のセグメントを格納し、前記初期バッファリング領域内に格納された全セグメントの配信を完了した時点で、前記受信データバッファリング領域に格納された全セグメントを前記端末に配信しながら、同時に前記初期バッファリング領域へ前記Ｎ個の蓄積サーバモジュールから転送されたＮ個のセグメントを格納することを繰り返すことを特徴とする分散型サーバ装置における情報アクセス方法。
【請求項２】
情報入力装置から受信した情報を分割したセグメントを分散して格納するＮ（２≦Ｎ）個の蓄積サーバモジュールと、
前記情報入力装置からの情報の書き込み要求を受け付け、前記各蓄積サーバモジュールに前記セグメントを一括して書き込むＭ（Ｍ≦Ｎ）個の通信サーバモジュールと、
任意の前記通信サーバモジュールと任意の前記蓄積サーバモジュール間の通信を可能とするサーバモジュール間ネットワークとを具備する分散型サーバ装置における情報アクセス方法であって、
前記Ｎ個の蓄積サーバモジュールが、前記通信サーバモジュールからの前記セグメントの書き込み要求の処理時間が前記セグメントの転送時間のＭ倍以下となるようにキューを処理し、
前記通信サーバモジュールが、Ｎ個のセグメントを格納できる容量を持つ受信データバッファリング領域と、Ｎ個のセグメントを格納できる容量を持つ送信データバッファリング領域とを有し、
前記情報入力装置から受信した情報をセグメントに分割して前記受信データバッファリング領域に格納しながら、同時に前記送信データバッファリング領域に格納された全セグメントを前記蓄積サーバモジュールへ転送し、前記受信データバッファリング領域へのセグメントの格納が完了した時点で、前記情報入力装置から受信した情報をセグメントに分割して前記送信データバッファリング領域に格納しながら、同時に前記受信データバッファリング領域に格納された全セグメントを前記蓄積サーバモジュールへ転送することを繰り返すことを特徴とする分散型サーバ装置における情報アクセス方法。
【請求項３】
前記情報は、１番組のマルチメディア情報であることを特徴とする請求項１または請求項２に記載の分散型サーバ装置における情報アクセス方法。
【請求項４】
端末へ配信する情報を分割したセグメントを分散して格納するＮ（２≦Ｎ）個の蓄積サーバモジュールと、
前記端末からの情報の読み出し要求を受け付け、前記各蓄積サーバモジュールに蓄積された前記セグメントを一括して読み出し、該セグメントから前記情報を再構成して前記端末へ転送するＭ（Ｍ≦Ｎ）個の通信サーバモジュールと、
任意の前記通信サーバモジュールと任意の前記蓄積サーバモジュール間の通信を可能とするサーバモジュール間ネットワークとを具備する分散型サーバ装置であって、
前記Ｎ個の蓄積サーバモジュールは、前記通信サーバモジュールからの前記セグメントの読み出し要求の処理時間が前記セグメントの転送時間のＭ倍以下となるように設定されたキューを有し、
前記通信サーバモジュールは、Ｎ個のセグメントを格納できる容量を持つ初期バッファリング領域と、Ｎ個のセグメントを格納できる容量を持つ受信データバッファリング領域とを有し、
前記初期バッファリング領域に格納されたセグメントを前記端末へ配信しながら、同時に前記受信データバッファリング領域へ前記Ｎ個の蓄積サーバモジュールから転送されたＮ個のセグメントを格納し、前記初期バッファリング領域内に格納された全セグメントの配信を完了した時点で、前記受信データバッファリング領域に格納された全セグメントを前記端末に配信しながら、同時に前記初期バッファリング領域へ前記Ｎ個の蓄積サーバモジュールから転送されたＮ個のセグメントを格納することを繰り返すことを特徴とする分散型サーバ装置。
【請求項５】
情報入力装置から受信した情報を分割したセグメントを分散して格納するＮ（２≦Ｎ）個の蓄積サーバモジュールと、
前記情報入力装置からの情報の書き込み要求を受け付け、前記各蓄積サーバモジュールに前記セグメントを一括して書き込むＭ（Ｍ≦Ｎ）個の通信サーバモジュールと、
任意の前記通信サーバモジュールと任意の前記蓄積サーバモジュール間の通信を可能とするサーバモジュール間ネットワークとを具備する分散型サーバ装置であって、
前記Ｎ個の蓄積サーバモジュールは、前記通信サーバモジュールからの前記セグメントの書き込み要求の処理時間が前記セグメントの転送時間のＭ倍以下となるように設定されたキューを有し、
前記通信サーバモジュールは、Ｎ個のセグメントを格納できる容量を持つ受信データバッファリング領域と、Ｎ個のセグメントを格納できる容量を持つ送信データバッファリング領域とを有し、
前記情報入力装置から受信した情報をセグメントに分割して前記受信データバッファリング領域に格納しながら、同時に前記送信データバッファリング領域に格納された全セグメントを前記蓄積サーバモジュールへ転送し、前記受信データバッファリング領域へのセグメントの格納が完了した時点で、前記情報入力装置から受信した情報をセグメントに分割して前記送信データバッファリング領域に格納しながら、同時に前記受信データバッファリング領域に格納された全セグメントを前記蓄積サーバモジュールへ転送することを繰り返すことを特徴とする分散型サーバ装置。
【請求項６】
前記情報は、１番組のマルチメディア情報であることを特徴とする請求項４または請求項５に記載の分散型サーバ装置。
【請求項７】
端末へ配信する情報を分割したセグメントを分散して格納し、前記セグメントの読み出し要求の処理時間が前記セグメントの転送時間のＭ倍以下となるように設定されたキューを有するＮ（２≦Ｎ）個の蓄積サーバモジュールと、
前記端末からの情報の読み出し要求を受け付け、前記各蓄積サーバモジュールに蓄積された前記セグメントを一括して読み出し、該セグメントから前記情報を再構成して前記端末へ転送するＭ（Ｍ≦Ｎ）個の通信サーバモジュールと、
任意の前記通信サーバモジュールと任意の前記蓄積サーバモジュール間の通信を可能とするサーバモジュール間ネットワークとを具備する分散型サーバ装置における通信サーバモジュールであって、
Ｎ個のセグメントを格納できる容量を持つ初期バッファリング領域と、Ｎ個のセグメントを格納できる容量を持つ受信データバッファリング領域とを有し、
前記初期バッファリング領域に格納されたセグメントを前記端末へ配信しながら、同時に前記受信データバッファリング領域へ前記Ｎ個の蓄積サーバモジュールから転送されたＮ個のセグメントを格納し、前記初期バッファリング領域内に格納された全セグメントの配信を完了した時点で、前記受信データバッファリング領域に格納された全セグメントを前記端末に配信しながら、同時に前記初期バッファリング領域へ前記Ｎ個の蓄積サーバモジュールから転送されたＮ個のセグメントを格納することを繰り返すことを特徴とする通信サーバモジュール。
【請求項８】
情報入力装置から受信した情報を分割したセグメントを分散して格納し、前記セグメントの書き込み要求の処理時間が前記セグメントの転送時間のＭ倍以下となるように設定されたキューを有するＮ（２≦Ｎ）個の蓄積サーバモジュールと、
前記情報入力装置からの情報の書き込み要求を受け付け、前記各蓄積サーバモジュールに前記セグメントを一括して書き込むＭ（Ｍ≦Ｎ）個の通信サーバモジュールと、
任意の前記通信サーバモジュールと任意の前記蓄積サーバモジュール間の通信を可能とするサーバモジュール間ネットワークとを具備する分散型サーバ装置における通信サーバモジュールであって、
Ｎ個のセグメントを格納できる容量を持つ受信データバッファリング領域と、Ｎ個のセグメントを格納できる容量を持つ送信データバッファリング領域とを有し、
前記情報入力装置から受信した情報をセグメントに分割して前記受信データバッファリング領域に格納しながら、同時に前記送信データバッファリング領域に格納された全セグメントを前記蓄積サーバモジュールへ転送し、前記受信データバッファリング領域へのセグメントの格納が完了した時点で、前記情報入力装置から受信した情報をセグメントに分割して前記送信データバッファリング領域に格納しながら、同時に前記受信データバッファリング領域に格納された全セグメントを前記蓄積サーバモジュールへ転送することを繰り返すことを特徴とする通信サーバモジュール。
【請求項９】
前記情報は、１番組のマルチメディア情報であることを特徴とする請求項７または請求項８に記載の通信サーバモジュール。
【請求項１０】
請求項７ないし請求項９のいずれか１項に記載の通信サーバモジュールにおける処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型サーバ装置における情報アクセス方法、分散型サーバ装置、通信サーバモジュール、およびプログラムに係り、特に、多数の端末からの要求に応じて、各端末に映像や音声などのマルチメディア情報を配送したり、あるいは、マルチメディア情報入力装置からマルチメディア情報を入力し記録媒体に蓄積したりする分散型マルチメディアサーバ装置に適用して有効な技術に関する。
【背景技術】
【０００２】
例えば、従来の分散型マルチメディアサーバ装置として、下記特許文献１等に記載されたものが知られている。
図１は、従来の分散型マルチメディアサーバ装置の概略システム構成を示すブロック図である。
図１に示すように、従来の分散型マルチメディアサーバ装置１は、Ｍ個の通信サーバモジュール（１１−１〜１１−Ｍ）、Ｎ個の蓄積サーバモジュール（１３−１〜１３−Ｎ、）Ｎ個の蓄積装置（１４−１〜１４−Ｎ）、および、サーバモジュール間ネットワーク１２を有している。なお、図１において、２は端末側ネットワーク、３−１，３−２は端末、４はマルチメディア情報入力装置である。
このシステムにおいて、１番組のマルチメディア情報は、図２に示すように、固定長のセグメントに分割され、マルチメディア情報の先頭データから成る最初のセグメント１が蓄積サーバモジュール１（１３−１）の蓄積装置１（１４−１）へ、２番目のデータから成るセグメント２が蓄積サーバモジュール２（１３−２）の蓄積装置２（１４−２）へ、というように蓄積装置１（１４−１１）〜蓄積装置Ｎ（１４−Ｎ）を巡回しながら分散して蓄積される。
【０００３】
図１に示す分散型マルチメディアサーバ装置１において、マルチメディア情報の蓄積は図３に示す手順で行なわれる。
通信サーバモジュールｊ（ｊ＝１〜Ｍ）（１１−ｊ）は、マルチメディア情報入力装置４からの書き込み要求を受信（図３の１０１）すると、蓄積サーバモジュール１（１３−１）に対して書き込み要求を送信（図３の１０２）する。
そして、マルチメディア情報入力装置４から１セグメント分のマルチメディア情報を受信（図３の１０３）すると、そのマルチメディア情報をセグメントの形に構成し、そのセグメントを蓄積サーバモジュール１（１３−１）に送信（図３の１０４）する。
蓄積サーバモジュール１（１３−１）は、受信したセグメントを自身の蓄積装置１（１４−１）へ格納（図３の１０５）する。
通信サーバモジュールｊ（１１−ｊ）は、次に蓄積サーバモジュール２（１３−２）に対して書き込み要求を送信（図３の１０６）し、引き続き受信した１セグメント分のマルチメディア情報（図３の１０７）から生成した２つ目のセグメントを蓄積サーバモジュール２（１３−２）へ送信（図３の１０８）する。以下、対向の蓄積サーバモジュールを１つずつ巡回しながら、同様の処理を繰り返す。
【０００４】
一方、マルチメディア情報の配信は図４に示す手順で行なわれる。
通信サーバモジュールｊ（ｊ＝１〜Ｍ）（１１−ｊ）が、端末（３−１，３−２）からマルチメディア情報の読み出し要求を受信（図４の１２１）すると、蓄積サーバモジュール１（１３−１）に対して要求されたマルチメディア情報の読み出し要求を送信（図４の１２２）する。
この読み出し要求を受信した蓄積サーバモジュール１（１３−１）は、要求されたマルチメディア情報の先頭セグメントを自身の蓄積装置１（１４−１）から読み出し（図４の１２３）、通信サーバモジュールｊ（１１−ｊ）へ送信（図４の１２４）する。
セグメントを受信した通信サーバモジュールｊ（１１−ｊ）は、そのセグメントを端末側ネットワーク上で転送できる形のマルチメディア情報に変換し、マルチメディア情報の読み出し要求を発行した端末（３−１，３−２）へ送信（図４の１２５）する。
通信サーバモジュールｊ（１１−ｊ）は、次に蓄積サーバモジュール２（１３−２）に対して読み出し要求（図４の１２６）を送信し、受信した２つ目のセグメントを同様にマルチメディア情報に変換し、端末（３−１，３−２）へと送信（図４の１２９）する。
以下、対向の蓄積サーバモジュールを１つずつ巡回しながら、同様の処理を繰り返す。
このような構成、および、動作から成る分散型マルチメディアサーバ装置１には、接続端末数または分散型マルチメディアサーバ装置１への負荷が増加した場合に、通信サーバモジュール（１１−１〜１１−Ｍ）、または蓄積サーバモジュール（１３−１〜１３−Ｎ）、あるいは、その両者を増設することで柔軟に対応できるという利点がある。
【０００５】
なお、本願発明に関連する先行技術文献としては以下のものがある。
【特許文献１】特許第３４６１２７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図１に示した従来の分散型マルチメディアサーバ装置は、下記（Ａ１）、（Ａ２）の特徴を有する。
（Ａ１）端末（３−１，３−２）、あるいは、マルチメディア情報入力装置４との間でマルチメディア情報を送受信しているそれぞれの通信サーバモジュール（１１−１〜１１−Ｍ）は、他の通信サーバモジュール（１１−１〜１１−Ｍ）と同期をとることなく、各々が全く独立したタイミングでセグメントの読み出し要求、あるいは、書き込み要求を蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して発行する。
（Ａ２）各通信サーバモジュール（１１−１〜１１−Ｍ）は、マルチメディア情報の配信時においては、ある蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して読み出し要求を発行し、分割された１つのマルチメディア情報のセグメントを、その蓄積サーバモジュール（１３−１〜１３−Ｎ）から受信した後に、次の蓄積サーバモジュール（１３−１〜１３−Ｎ）に対する読み出し要求の発行動作に移る。また、マルチメディア情報の蓄積時においては、ある蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して書き込み要求を発行し、分割された１つのマルチメディア情報のセグメントを、その蓄積サーバモジュール（１３−１〜１３−Ｎ）へ送信した後に、次の蓄積サーバモジュール（１３−１〜１３−Ｎ）に対する書き込み要求の発行動作に移る。
【０００７】
前述の（Ａ１）の動作においては、１つの蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して、複数の通信サーバモジュール（１１−１〜１１−Ｍ）からのセグメントの読み出し、あるいは、書き込み要求が、短い時間の間に重なり、これらの要求が集中して到着する可能性がある。
例えば、ある１つの蓄積サーバモジュールｉ（ｉ＝１〜Ｎ）（１３−ｉ）に対して、複数の通信サーバモジュール（１１−１〜１１−Ｍ）からセグメントの読み出し／書き込み要求が集中した例を図５に示す。
このような事象が発生した場合、この蓄積サーバモジュールｉ（１３−ｉ）に、後の方の順番で到着した読み出し／書き込み要求については、その要求を発行した通信サーバモジュール（１１−１〜１１−Ｍ）が要求を発行してからセグメントの送信／受信を完了するまでに要する時間が、蓄積サーバモジュールｉ（１３−ｉ）上での読み出し／書き込み要求の集中が発生していない場合に比べて長くなる。
これは、蓄積サーバモジュールｉ（１３−ｉ）に読み出し／書き込み要求を受け付けてもらうまでの順番待ちの時間や、この蓄積サーバモジュールｉ（１３−ｉ）とサーバモジュール間ネットワーク１２との間のセグメントデータの送受信が輻輳することによるセグメント転送所要時間の増大、などの理由による。
【０００８】
一方、前述の（Ａ２）の動作においては、マルチメディア情報を分散型マルチメディアサーバ装置１から端末（３−１，３−２）へ配信する場合、ある番組のマルチメディア情報を端末（３−１，３−２）へ配信している通信サーバモジュール（１１−１〜１１−Ｍ）が、１つのセグメントを蓄積サーバモジュール（１３−１〜１３−Ｎ）から読み出すのに要する平均的な時間は、当該マルチメディア情報のメディアの種類によって定まる一定の時間にほぼ等しくなければならない。
この時間より遅いと、端末（３−１，３−２）へのマルチメディア情報の配信がところどころ途切れてしまい、速すぎると端末（３−１，３−２）へのマルチメディア情報の配信が蓄積サーバモジュール（１３−１〜１３−Ｎ）からの読み出し速度に追い付かず、通信サーバモジュール（１１−１〜１１−Ｍ）上でデータあふれが生じてしまう。
例えば、１秒間に２９．９７個の速度で映像フレームの再生が行なわれる非圧縮ＨＤＴＶを扱う場合で、分散型マルチメディアサーバ装置１内で、１つの非圧縮ＨＤＴＶ映像フレームを１つのセグメントとして扱う場合、通信サーバモジュール（１１−１〜１１−Ｍ）は、蓄積サーバモジュール（１３−１〜１３−Ｎ）から１つのセグメントの読み出しを平均的に、１（秒）／２９．９７＝３３．３（msec）の時間で行なう必要がある。
【０００９】
ただし、セグメントの読み出しに要する１回ごとの時間については、通常多少のばらつきがある。これは、前述したように、蓄積サーバモジュール上での読み出し要求の集中の度合いによって、セグメントの受信を完了するまでに要する時間が変動するなどの理由による。
したがって、通常は図６に示すように、通信サーバモジュール（１１−１〜１１−Ｍ）の端末ネットワーク２への出口の前段に送信データバッファ２０を設け、前述の時間変動にともなう蓄積サーバモジュール（１３−１〜１３−Ｎ）からのマルチメディアデータ読み出し速度の変動を吸収する。
すなわち、メディアの種類によって定まる一定の速度で常時送信が行なわれる端末側ネットワーク２へのデータ送信に対して、蓄積サーバモジュール（１３−１〜１３−Ｎ）からのセグメントの読み出しの速度がその速度より一時的に速くなったり遅くなったりしても、端末側ネットワーク２へ送出するデータが枯渇したり、あるいは、端末側ネットワーク２へのデータ送信が追い付かなくなってしまうことはなく、送信データバッファ内に滞留するデータ量が一時的に増減するだけで、マルチメディア情報の途切れや欠落のない正常なデータ配信を継続できるようにする。
【００１０】
通常、端末側ネットワーク２へのデータ送信を開始する前に、蓄積サーバモジュール（１３−１〜１３−Ｎ）からのデータの読み出しを開始し、この送信データバッファ２０に予めある程度の量のマルチメディアデータを蓄えておく（以下、このデータ量を初期バッファリング量と呼ぶ）。
そして、その後で、端末側ネットワーク２へのデータ送信を開始する。これは、配信動作の途中で端末側ネットワーク２へ送出するデータが枯渇する事象を完全に防止するためである。
この初期バッファリング量は、それが多いほど、分散型マルチメディアサーバ装置１が端末（３−１，３−２）から読み出し要求を受信してからマルチメディア情報の配信を開始できるまでの応答時間が長くなり、少ないほどその応答時間は短くなる。
通常はこの応答時間は短いほど望ましく、したがって、この初期バッファリング量も少ないほど望ましい。したがって、配信動作の途中で端末側ネットワークへ送出するデータが枯渇しないことを保証できるだけの最小の初期バッファリング量を求めることが重要となる。
【００１１】
分散型マルチメディアサーバ装置１が、前述の（Ａ２）の動作をする場合、この初期バッファリング量の最小値は次の（ａ）、（ｂ）の値に大きく依存する。
（ａ）マルチメディア情報の１つのセグメントを蓄積サーバモジュール（１３−１〜１３−Ｎ）から読み出すのに要する時間がどの程度長くなり得るか
（ｂ）１つの通信サーバモジュール（１１−１〜１１−Ｍ）が対向の蓄積サーバモジュール（１３−１〜１３−Ｎ）を巡回しながら継続して発行する読み出し要求について、セグメントの読み出しが完了するまでに要する時間が、メディアの種類によって定まる平均的な要求時間よりも長くなっている状態がどの程度継続するか
前述の（ａ）については、蓄積サーバモジュール（１３−１〜１３−Ｎ）に読み出し要求が最大個数集中した場合を想定し、そのときの最後尾の読み出し要求に対応するセグメントの転送が完了するまでの時間を計測するか、あるいは、蓄積サーバモジュール（１１−１〜１１−Ｍ）の内部挙動を解析して所要時間を算出する、などの方法で求めることができる。
【００１２】
前述の（ｂ）は、図７の（ｉ）に示すように、通信サーバモジュールｉ（ｉ＝１〜Ｍ）（１１−ｉ）が、蓄積サーバモジュールｊ（ｊ＝１〜Ｎ）（１３−ｊ）に対して発行したセグメントの読み出し要求について、蓄積サーバモジュールｊ（１３−ｊ）上で読み出し要求が集中したためにセグメントの受信が遅れ、さらに、図７の（ｉｉ）に示すように、次の蓄積サーバモジュール（ｊ＋１）（１３−（ｊ＋１））への読み出し要求においても同様に読み出し要求の集中によるセグメントの受信遅れが生じるというように、セグメントの読み出しが完了するまでに要する時間が遅くなっている状態が継続して発生することをいう。
前述の（ａ）の値を求めるのが容易であるのに対して、各通信サーバモジュール（１１−１〜１１−Ｍ）が同期を取ることなく動作する本装置において、前述の（ｂ）の値を求めることは困難である。
したがって、配信動作の途中で端末側ネットワーク２へ送出するデータが枯渇しないことを保証できるだけの初期バッファリング量の最小値を厳密に求めることは困難であり、通常は、初期バッファリング量を多めに取るか、あるいは、配信動作の途中でネットワークへ送出するデータが枯渇することが無いことが経験的に言える量を設定せざるを得ない、という問題がある。
【００１３】
次に、端末側ネットワーク２から受信したマルチメディア情報を分散型マルチメディアサーバ装置１へ書き込む場合について述べる。
書き込み動作の場合、端末側ネットワーク２から通信サーバモジュール（１１−１〜１１−Ｍ）へ到着するマルチメディア情報の平均的な速度に対して、蓄積サーバモジュール（１３−１〜１３−Ｎ）への書き込み速度が一時的に遅くなっても、端末側ネットワーク２から受信したマルチメディア情報を受信しきれなくなり欠落してしまうことが無いよう、図８に示すような、受信データバッファ２１を設ける。
なお、書き込み動作の場合は、端末側ネットワーク２から通信サーバモジュール（１１−１〜１１−Ｍ）へ到着するマルチメディア情報の平均的な速度に対して、蓄積サーバモジュール（１３−１〜１３−Ｎ）への書き込み速度が速くなっても間題はない。
この受信データバッファ２１については、書き込み動作の途中で、端末側ネットワーク２経由の受信データの欠落が発生しないことを保証できるための最小のバッファ容量を求める必要がある。
【００１４】
そして、その値は、読み出し動作の場合と同様に次の（ａ）、（ｂ）の値に大きく依存する。
（ａ）マルチメディア情報の１つのセグメントを、蓄積サーバモジュール（１３−１〜１３−Ｎ）へ書き込むのに要する時間がどの程度長くなり得るか
（ｂ）１つの通信サーバモジュール（１１−１〜１１−Ｍ）が、対向の蓄積サーバモジュール（１３−１〜１３−Ｎ）を巡回しながら継続して発行する書き込み要求について、セグメントの書き込みが完了するまでに要する時間が、メディアの種類によって定まるネットワークからの平均的なデータ受信間隔よりも長くなっている状態がどの程度継続するか
そして、書き込みの場合についても、前述の（ｂ）の値を求めることが困難であることから、受信データバッファ２１の最小容量を求めることは困難であり、通常は、バッファ容量を多めに取る、あるいは、書き込み動作の途中で受信データの欠落が生じることが無いことが経験的に言える量を設定せざるを得ないという問題がある。
【００１５】
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、分散型サーバ装置における情報アクセス方法および分散型サーバ装置において、送信データバッファの初期バッファリング量の最小値、あるいは、受信データバッファの容量の最小値を、十分に実用性のある小さい値に抑えることが可能となる技術を提供することにある。
また、本発明の他の目的は、前述の分散型サーバ装置における通信サーバモジュールを提供することにある。
また、本発明の他の目的は、前述の通信サーバモジュールをコンピュータに実行させるためのプログラムを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかにする。
【課題を解決するための手段】
【００１６】
本発明では、図１に示した通信サーバモジュール（１１−１〜１１−Ｍ）、蓄積サーバモジュール（１３−１〜１３−Ｎ）、および、サーバモジュール間ネットワーク１２を有する分散型マルチメディアサーバ装置１において、前記課題を解決する情報へのアクセス方法、すなわち、各通信サーバモジュール（１１−１〜１１−Ｍ）が、蓄積サーバモジュール（１３−１〜１３−Ｎ）に対してマルチメディア情報のセグメントの読み出し要求や書き込み要求を発行する際の、従来とは異なる手順を提案する。
なお、本発明においては、通信サーバモジュール（１１−１〜１３−Ｍ）の台数Ｍと、蓄積サーバモジュール（１３−１〜１３−Ｎ）の台数Ｎが、Ｍ≦Ｎの条件を満たすものとする。
従来手法では、前述の［発明が解決しようとする課題］の（Ａ２）、あるいは、図３、図４に記したように、各通信サーバモジュール（１１−１〜１１−Ｍ）は、ある１つの蓄積サーバモジュール（１３−１〜１３−Ｎ）に対してマルチメディア情報セグメントの読み出し／書き込み要求を発行した後、その蓄積サーバモジュール（１３−１〜１３−Ｎ）からのセグメントの受信、あるいは、その蓄積サーバモジュール（１３−１〜１３−Ｎ）へのセグメントの送信が完了するのを待って、それが完了すると新たに別の蓄積サーバモジュール（１３−１〜１３−Ｎ）に対するセグメント読み出し／書き込み要求を発行するという動作を繰り返す。
すなわち、対向の蓄積サーバモジュール（１３−１〜１３−Ｎ）を巡回しながら、読み出し／書き込み要求の発行とセグメント情報の送受信を交互に逐次的に繰り返す。
【００１７】
一方、本発明で提案する方式を図９、および、図１０に示す。図９はマルチメディア情報の蓄積処理、図１０は配信処理における提案方式である。
本発明では、各通信サーバモジュール（１１−１〜１１−Ｍ）は、マルチメディア情報入力装置４からの書き込み要求を受信（図９の１４１）、あるいは、端末ｉ（３−ｉ）からマルチメディア情報の読み出し要求を受信（図１０の１６１）すると、まずシステム内の全ての蓄積サーバモジュール（１３−１〜１３−Ｎ）に対してマルチメディア情報セグメントの書き込み／読み出し要求を発行する（図９の１４３、図１０の１６２）。
そして、全ての蓄積サーバモジュール（１３−１〜１３−Ｎ）へのセグメントの送信（図９の１４５）、あるいは、全ての蓄積サーバモジュール（１３−１〜１３−Ｎ）からのセグメントの受信（図１０の１６４）が完了するのを待つ。
これが完了すると、再び全ての蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して読み出し／書き込み要求を発行するという動作を繰り返す。
【００１８】
本発明は、以下の点で、従来方式より優れている。
従来方式では、セグメントの読み出し／書き込み要求の処理が完了するまでに要する時間が、蓄積サーバモジュール（１３−１〜１３−Ｎ）への要求の集中が原因でメディアの種類によって定まる一定の要求時間よりも遅くなると、その時間の遅れ分がそのままそれ以降に蓄積される。
したがって、対向の蓄積サーバモジュール（１３−１〜１３−Ｎ）を巡回しながらセグメントの読み出し／書き込み処理を続けるなかで、処理時間が遅くなる事象が継続して発生すると、処理の遅れ分の蓄積が大きくなっていく。
この処理の遅れが、図６の送信データバッファ２０内のデータが枯渇したり（バッファのアンダーランと呼ぶ）、あるいは、図８の受信データバッファ２１が溢れてしまう（バッファのオーバーランと呼ぶ）状態まで蓄積されてしまうと、端末ｉ（３−ｉ）へのマルチメディア情報の途切れのない配信や、マルチメディア情報入力装置４から受信したマルチメディア情報の正しい蓄積ができなくなってしまう。
したがって、このようなバッファのアンダーランやオーバーランが発生しないことを保証できるだけの送信データバッファ２０への初期バッファリング量、あるいは、受信データバッファ２１の容量を決定する必要がある。
しかし、これらの値を正確に求めることは、前述の［発明が解決しようとする課題］で述べたように困難である。
【００１９】
これに対して、本発明は、分散型マルチメディアサーバ装置１のサーバモジュール間ネットワーク１２が、下記（条件Ａ）さえ満足すると、下記（１）、（２）の作用・効果を得ることができる。
条件Ａ；
セグメントの読み出し／書き込み要求が、蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して最大個数だけ集中した場合でも、どの要求に対する処理時間も、当該マルチメディア情報のメディアの種類によって定まる平均のセグメント転送時間の上記最大個数倍より大きくなることはない。
（１）マルチメディア情報の配信動作の場合、蓄積サーバモジュール（１３−１〜１３−Ｎ）からのセグメントの読み出しにかかる最悪の時間が明確に定まるため、送信データバッファ２０のアンダーランを防ぐことが容易になる。
（２）マルチメディア情報の蓄積動作の場合、蓄積サーバモジュール（１３−１〜１３−Ｎ）へのセグメントの書き込みにかかる最悪の時間が明確に定まる。このため、受信データバッファ２１に必要な容量を決定することが容易になる。
【００２０】
以下、この点について詳細に説明する。
図１１は、Ｍ個の通信サーバモジュール（１１−１〜１１−Ｍ）とＮ個の蓄積サーバモジュール（１３−１〜１３−Ｎ）から成る分散型マルチメディアサーバ装置１である。
図中の各点線は、各通信サーバモジュール（１１−１〜１１−Ｍ）が、蓄積サーバモジュール（１３−１〜１３−Ｎ）に対してマルチメディア情報のセグメントの読み出し／書き込み要求（以下では簡単に、セグメント要求と呼ぶ）を発行している様子を表している。
通常、各蓄積サーバモジュール（１３−１〜１３−Ｎ）は、受信したこれらのセグメント要求に対して何らかの順序付けを行ない、その順序に従ってこれらのセグメント要求を処理していく。すなわち、各蓄積サーバモジュール（１３−１〜１３−Ｎ）は、これらのセグメント要求を処理が終了するまで格納しておくキューを内部に持つと考えることができる。
図１１中の要求キュー（３０−１〜３０−Ｎ）はこのようなキューを表している。
なお、ここでは、要求キュー内に丸印によって図示された各セグメント要求は、それより右側に図示されているセグメント要求よりも先に当該セグメントの送受信を含めた処理が完了することはないことだけを表すものとする。これ以上の具体的な処理順序や方法については規定しない。
【００２１】
図１１の各要求キュー（３０−１〜３０−Ｎ）には、Ｍ個の通信サーバモジュール（１１−１〜１１−Ｍ）からの最大Ｍ個のセグメント要求が格納され得る。
前述の（条件Ａ）は、このような場合でも、その要求キュー（３０−１〜３０−Ｎ）に格納されたＭ個のどのセグメント要求の処理も、当該マルチメディア情報のメディアの種類によって定まる平均のセグメント転送時間のＭ倍以下の時間の間に完了することを表している。
例えば、１セグメントあたり約３３．３ｍｓｅｃの時間で映像フレームを再生する非圧縮ＨＤＴＶの場合、どのセグメント要求の処理も、３３．３×Ｍ（msec）以内に完了するという意味である。
ここで、要求キュー（３０−１〜３０−Ｎ）に最小の、すなわち、１個のセグメント要求だけが格納された場合、そのセグメント要求の処理が完了するまでに要する時間は最も短くなるが、この時間は当該マルチメディア情報のメディアの種類によって定まる平均のセグメント転送時間よりも長い時間であってはならない。
また、要求キュー（３０−１〜３０−Ｎ）にＭ個のセグメントが格納された場合のＭ番目のセグメント要求の処理が完了するまでに要する時間が、１個のセグメント要求だけを処理するのに要する時間のＭ倍より大きくならないことも、普遍性のある自然な条件設定である。したがって、前述の（条件Ａ）も普遍性のある自然な条件設定である。
【００２２】
ここで、通信サーバモジュール（１１−１〜１１−Ｍ）が、Ｎ個の蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して発行するセグメント要求について、全ての当該セグメントの送受信処理が完了するまでに要する時間が最も長くなるのは、図１１中の通信サーバモジュールＭ（１１−Ｍ）のように、全ての蓄積サーバモジュール内の要求キュー（３０−１〜３０−Ｎ）において、自身が発行したセグメント要求が最後尾に格納された場合である。
この場合でも、前述の（条件Ａ）によれば、それぞれの蓄積サーバモジュール（１３−１〜１３−Ｎ）へ発行された各セグメント要求は、それぞれの蓄積サーバモジュール（１３−１〜１３−Ｎ）において、当該マルチメディア情報のメディアの種類によって定まる平均のセグメント転送時間のＭ倍以内の時間に処理される。さらに、これらＮ個のセグメント要求は異なる蓄積サーバモジュール上で並列に処理される。
したがって、通信サーバモジュールＭ（１１−Ｍ）が発行した全てのセグメント要求の処理が完了するまでの所要時間は、図１１のような最も長い場合でも、必ず当該マルチメディア情報のメデイアの種類によって定まる平均のセグメント転送時間のＭ倍以内の時間に収まる。
さらに、Ｍ≦Ｎの条件により、この所要時間は必ず当該マルチメディア情報のメディアの種類によって定まる平均のセグメント転送時間のＮ倍以内の時間に収まるとも言える。
【００２３】
すなわち、本発明によれば、通信サーバモジュール（１１−１〜１１−Ｎ）は、Ｎ個の蓄積サーバモジュール（１３−１〜１３−Ｎ）からのＮ個のマルチメディア情報のセグメントの読み出し／書き込みの処理を、当該マルチメディア情報のメディアの種類によって定まる平均のセグメント転送時間のＮ倍以内の時間に必ず完了することができる。
図１２は、この様子を図示したものである。同図中の（ａ）は従来方法、（ｂ）は本発明の方法の動作を示している。
図１２の横軸は、当該マルチメディア情報のメディアの種類によって定まる平均のセグメント転送時間を単位とする時間をあらわし、縦軸は、蓄積サーバモジュール（１３−１〜１３−４）からセグメントを受信する際の受信速度をあらわしている。なお、同図では、蓄積サーバモジュールの台数Ｎを４と仮定している。
図１２（ａ）は、セグメント２、およびセグメント４の処理時間が、前述の平均のセグメント転送時間よりも多くかかっており、その影響が後続のセグメント要求の発行の遅れにつながっている例である。
本来、時刻４において、４つのセグメントの転送処理が終了し、セグメント要求５を発行しなければならないが、処理に遅れが生じている。従来方式ではこのような形で１つ１つのセグメントの転送処理の遅れが後段の処理へと蓄積していく場合がある。
これに対して、図１２（ｂ）は、Ｎ（＝４）台の蓄積サーバモジュール（１３−１〜１３−４）に対してまとめてセグメント要求を発行し、時刻Ｎ（＝４）以内に要求したＮ個のセグメントの転送処理が全て完了することを示している。１つ１つのセグメントの転送処理にかかる時間にはばらつきがあるものの、Ｎ個のセグメント要求を発行してからＮ時刻以内にはＮ個のセグメントの転送処理が必ず完了する。したがって、当該マルチメディア情報のメディアの種類が要求する転送レートに対して遅れのない処理が可能となる。
【００２４】
このような特徴をもつ本発明は、前述の［発明が解決しようとする課題］に記載した課題を以下のように解決する。
マルチメディア情報の配信時には、図１３に示すように、通信サーバモジュール内に２Ｎ個のセグメントを格納できる容量を持つ送信データバッファ２０を装備し、前述の初期バッファリング量をＮセグメントとして、送信動作を開始する。
初期バッファリングのＮ個のセグメントを格納する部分を領域Ａ、残りを領域Ｂとし、領域Ａ内のセグメントを端末側ネットワーク２へ配信しながら、同時にＮ台の蓄積サーバモジュール（１３−１〜１３−Ｎ）から受信したＮ個のセグメントを領域Ｂへ格納していく。前述の理由により、領域ＡのＮ個のセグメントの配信完了よりも領域ＢへのＮ個のセグメントの受信の完了が遅くなることはない。
したがって、領域Ａ内のセグメントの配信を完了した時点で、領域Ａと領域Ｂの役割を入れ換え、以後も同様の処理を継続することにより、端末側ネットワーク２への途切れのない配信が可能である。
このように、Ｎ台の蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して、わずかＮ個の初期バッファリングにより、端末側ネットワーク２への途切れのない配信が可能である。
【００２５】
また、マルチメディア情報の蓄積時には、図１４に示すように、通信サーバモジュール内に２Ｎ個のセグメントを格納できる容量を持つ受信データバッファ２１を装備し、端末側ネットワーク２から受信データバッファ２１の領域ＢにＮ個のセグメントを受信した時点で、蓄積サーバモジュール（１３−１〜１３−Ｎ）へのセグメント送信を開始する。
この動作の開始後は、領域Ｂ内のセグメントを蓄積サーバモジュール（１３−１〜１３−Ｎ）へ送信しながら、同時に端末側ネットワーク２から受信したセグメントを領域Ａへ格納していく。
セグメントの端末側ネットワーク２からの到着時間間隔に変動がなく、メディアの種類によって定まる一定の間隔で到着すると仮定した場合、前述の理由により、領域ＡへのＮ個のセグメントの受信完了よりも領域ＢのＮ個のセグメントの蓄積サーバモジュール（１３−１〜１３−Ｎ）への送信完了が遅くなることはない。
したがって、領域Ａへのセグメントの受信を完了した時点で、領域Ａと領域Ｂの役割を入れ換え、以後も同様の処理を継続することにより、端末側ネットワーク２からセグメントを取りこぼすことなく受信し続けることが可能である。
このように、Ｎ台の蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して、わずか２Ｎ個のセグメントに相当する受信データバッファ２１により、端末側ネットワーク２からセグメントを取りこぼすことなく受信し続けることが可能である。
なお、前述の初期バッファリング量、および、受信データバッファの容量については、必ずしも必要な量の最小値を明示するものではない。本発明の利点は、正常なシステム動作を保証できる具体的な値を明らかにすることができ、しかも、その値が十分に実用性のある小さい値に抑えられている点にある。
【発明の効果】
【００２６】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
本発明によれば、送信データバッファの初期バッファリング量、および、受信データバッファの容量の値を、十分に実用性のある小さい値に抑えることが可能となる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照して本発明の実施例を詳細に説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
図１５は、本発明の本実施例の分散型マルチメディアサーバ装置の概略システム構成を示すブロック図である。
本実施例の分散型マルチメディアサーバ装置１は、端末（３−１，３−２）との通信を行ない端末インタフェースを終端する通信サーバモジュール（１〜Ｎ）（１１−１〜１１−Ｎ）と、マルチメディア情報を蓄積し要求に応じて読み出す蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）と、通信サーバモジュール（１〜Ｎ）（１１−１〜１１−Ｎ）と蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）間の通信を行なうサーバモジュール間ネットワーク１２とで構成される。
この分散型マルチメディアサーバ装置１は、端末側ネットワーク２を介して端末（３、−１，３−２）および、マルチメディア情報入力装置４と接続されている。
端末（３−１，３−２）は、分散型マルチメディアサーバ装置１に対してマルチメディア情報の読み出し要求を発行し、分散型マルチメディアサーバ装置１から送られてきたマルチメディア情報を受信する。
マルチメディア情報入力装置４は、分散型マルチメディアサーバ装置に対してマルチメディア情報の書き込み要求を発行し、分散型マルチメディアサーバ装置１に蓄積したいマルチメディア情報を送信する。
【００２８】
端末側ネットワーク上では、トラヒックの輻輳やバーストは発生せず、マルチメディア情報は常時、メディアの種類によって定まる一定の速度で伝送されるものとする。したがって、通信サーバモジュール（１１−１〜１１−Ｎ）からのデータ送信速度、あるいは、通信サーバモジュール（１１−１〜１１−Ｎ）へのデータの到着速度も常時一定であるとする。
サーバモジュール間ネットワーク１２は、任意のサーバモジュール間で情報の高速転送を行なえればよく、高速ＬＡＮ、ＩｎｆｉｎｉＢａｎｄ等、いろいろな実現方法が考えられる。この具体的な実現方法については、既知の技術を用いることができるので、ここでの詳細な説明は省略する。
各通信サーバモジュール（１１−１〜１１−Ｎ）は、１度に１番組のマルチメディア情報を配信、あるいは、蓄積することができる。蓄積動作の場合、端末側ネットワーク２から受信したマルチメディア情報を固定長のセグメントに分割し、それらを蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）に分配する。
配信動作の場合は、蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）から読み出したセグメントを順番につなげてマルチメディア情報として再構成した後、端末側ネットワーク２へ送信する。
【００２９】
また、各通信サーバモジュール（１１−１〜１１−Ｎ）は、図１６に示すように、２Ｎ個のセグメントを格納可能な容量の送受信データバッファ２２を持つ。このバッファ２２は、マルチメディア情報の蓄積動作時には、端末側ネットワーク２からのデータ受信用に用いられ、一定の速度で端末側ネットワーク２から到着するマルチメディア情報に対する、蓄積サーバモジュール（１３−１〜１３−Ｎ）へのセグメント送信速度の変動分を吸収する役割を果たす。
また、マルチメディア情報の配信動作時には、端末側ネットワーク２へのデータ送信用に用いられ、一定の速度で端末側ネットワーク２へ送信されるマルチメディア情報に対する、蓄積サーバモジュール（１３−１〜１３−Ｎ）からのセグメント受信速度の変動分を吸収する役割を果たす。
この送受信データバッファ２２は、Ｎ個のセグメントを格納可能な２つの領域Ａ、領域Ｂに分割して使用する。使用方法の詳細は後述する。
【００３０】
一方、各蓄積サーバモジュール（１３−１〜１３−Ｎ）は、図１７に示すように、通信サーバモジュール（１１−１〜１１−Ｎ）からのセグメント送受信要求を格納する要求キュー（３０−１〜３０−Ｎ）を持つ。
この要求キュー（３０−１〜３０−Ｎ）は、Ｎ台の全ての通信サーバモジュール（１１−１〜１１−Ｎ）からのセグメント送受信要求が集中した場合を想定して、Ｎ個のセグメント送受信要求を格納可能なキュー長を持つ。
各通信サーバモジュール（１１−１〜１１−Ｎ）からのセグメント送受信要求は、当該蓄積サーバモジュール（１３−１〜１３−Ｎ）に到着した順に、この要求キュー（３０−１〜３０−Ｎ）に格納される。
そして、蓄積サーバモジュール上の処理プロセス３１によってFist Come First Served（ＦＣＦＳ）方式、すなわち、要求キューの先頭のセグメント要求から１つずつ順番に処理されていく。
【００３１】
要求キュー内のセグメント送受信要求の処理に要する時間については、下記（１）、（２）を仮定する。これらの仮定は、ＦＣＦＳの処理方式において自然なものである。
（１）先頭に格納されたセグメント送受信要求が、要求キュー（３０−１〜３０−Ｎ）に格納されてから当該セグメントの送受信処理が完了するまでに要する時間は、当該メディアの平均のセグメント転送時間以下である。
（２）要求キュー内にｋ番目（１≦ｋ≦Ｎ）に格納されたセグメント送受信要求について、要求キュー（３０−１〜３０−Ｎ）に格納されてから当該セグメントの送受信処理が完了するまでに要する時間は、先頭に格納されたセグメント送受信要求が要求キュー（３０−１〜３０−Ｎ）に格納されてからセグメントの送受信処理が完了するまでに要する時間のｋ倍である。
これらにより、本実施例のシステムは、前述の［課題を解決するための手段］に記載の（条件Ａ）を満足する。
以上が、本実施例のシステム構成である。
【００３２】
次に、本実施例の動作について説明する。まず始めに、端末（３−１，３−２）が分散型マルチメディアサーバ装置１からマルチメディア情報の読み出しを行なう場合について説明する。
端末（３−１，３−２）と分散型マルチメディアサーバ装置１との間のデータの転送方式については、データ転送前にエンド・ツー・エンドでコネクションを確立し、そのコネクション上でデータ欠落時の再送なども含めたデータ転送を行なって端末（３−１，３−２）へのデータの到着を保証するコネクション方式、あるいは、コネクションを確立せず、ベストエフォートでデータ転送し必ずしも全てのデータの到着を保証しないコネクションレス方式の２つの方式が考えられる。
本実施例の構成において、前者のコネクション方式を採用する場合は、端末（３−１，３−２）は、以下の（手順１）、（手順２）の手順により分散型マルチメディアサーバ装置１内の任意の通信サーバモジュール（１１−１〜１１−Ｎ）とコネクションを確立する。
端末（３−１，３−２）と分散型マルチメディアサーバ装置１との間でコネクションレス方式のデータ転送を採用する場合は、以下の（手順３）から動作を開始する。
【００３３】
手順１；
端末ｉ（ｉ＝１〜２）（３−ｉ）から端末側ネットワーク２を経由して、任意の通信サーバモジュールｊ（ｊ＝１〜Ｎ）（１１−ｊ）に接続要求を行なう。
手順２；
通信サーバモジュールｊ（１１−ｊ）の処理能力に余裕があり、端末ｉ（３−ｉ）からの新規処理要求に応えられる場合、通信サーバモジュールｊ（１１−ｊ）は、端末ｉ（３−ｉ）に対して接続応答を返し、これにより、端末ｉ（３−ｉ）と通信サーバモジュールｊ（１１−ｊ）との間にコネクションが設定され、以降のマルチメディア情報配送等はこのコネクションが用いられる。
処理能力に余裕がない場合には、処理能力に余裕のある通信サーバモジュール識別子を含む接続拒否応答を端末ｉ（３−ｉ）に対して返す。
接続拒否応答を受信した端末ｉ（３−ｉ）は、接続拒否応答中に含まれていた処理能力に余裕のある通信サーバモジュール識別子に相当する他の通信サーバモジュールｊ’（１１−ｊ’）に対して接続要求を行なう。
手順３；
端末ｉ（３−ｉ）から通信サーバモジュールｊ（１１−ｊ）に対して、番組識別子を含むマルチメディア情報読み出し要求が行なわれる。端末ｉ（３−ｉ）から読み出し要求を受信した分散型マルチメディアサーバ装置１は、以下の（手順４）〜（手順８）の手順で動作する。なお、これらの手順は図１０に示した読み出し動作のシーケンスと同様である。
【００３４】
手順４；
マルチメディア情報の読み出し要求を受けた通信サーバモジュールｊ（１１−ｊ）は、分散型マルチメディアサーバ装置１内の全ての蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）に対してセグメント読み出し要求を行なう。
手順５；
セグメント読み出し要求を受けた全蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）は、蓄積装置（１４−１〜１４−Ｎ）に蓄積しているセグメントを読み出し、通信サーバモジュールｊ（１１−ｊ）に転送する。このとき、各蓄積サーバモジュール（１３−１〜１３−Ｎ）は、他の蓄積サーバモジュール（１３−１〜１３−Ｎ）との同期を取る必要はない。
手順６；
通信サーバモジュールｊ（１１−ｊ）は、全ての蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）からセグメントを受信すると、再び全ての蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）に対してセグメント読み出し要求を行なう。
以下同様に、全蓄積サーバモジュール（１３−１〜１３−Ｎ）からのセグメントの読み出しを繰り返す。
【００３５】
手順７；
一方、端末ｉ（３−ｉ）に対して、通信サーバモジュールｊ（１１−ｊ）は、セグメントの再生時間を１周期として、蓄積サーバ（１〜Ｎ）（１３−１〜１３−Ｎ）から受信したセグメントを順序通りに周期的にセグメントを配送する。このとき、通信サーバモジュールｊ（１１−ｊ）は、他の通信サーバモジュール（１１−１〜１１−Ｎ）との同期を取る必要はない。
手順８；
端末ｉ（３−ｉ）から、通信サーバモジュールｊ（１１−ｊ）に対してコネクションの切断要求、あるいは、マルチメディア情報の配送終了要求があった場合、通信サーバモジュールｊ（１１−ｊ）は、端末ｉ（３−ｉ）に対して応答を返し、これにより、端末ｉ（３−ｉ）と通信サーバモジュールｊ（１１−ｊ）の間のコネクションが中断、あるいは、マルチメディア情報の配送が終了する。
本実施例では、分散型マルチメディアサーバ装置１内の全ての蓄積サーバモジュール（１３−１〜１３−Ｎ）へのセグメント読み出し要求の発行と、全ての蓄積サーバモジュール（１３−１〜１３−Ｎ）からのセグメントの受信を繰返し行なう点が特徴である。
セグメント読み出し要求の発行とセグメントの受信を蓄積サーバモジュール（１３−１〜１３−Ｎ）を１つずつ巡回しながら行なう従来技術とはこの点で異なっている。
【００３６】
図１８は、本実施例における通信サーバモジュールｊ（１１−ｊ）のマルチメディア情報の読み出し処理を表すフローチャートである。
図１８に示す（ステップＳｌ）〜（ステップＳ１２）に従って、前述の（手順１）〜（手順８）で述べた通信サーバモジュール（１１−１〜１１−Ｎ）の処理をさらに詳しく説明する。
ステップＳｌ；
端末ｉ（３−ｉ）からの読み出し要求を受信する。
ステップＳ２；
マルチメディア情報のセグメント２Ｎ個分の容量を持つ送信データバッファ２０を確保する。バッファが確保できない場合には確保できるまで待つ。
ステップＳ３；
送信データバッファ２０を、Ｎセグメント分の容量ずつＡ、Ｂの２つの領域に２等分し、領域Ａを端末ｉ（３−ｉ）へ配信するデータを格納するための配信用領域、領域Ｂを蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）から受信したセグメントを格納するためのセグメント受信用領域に設定する。
ステップＳ４；
蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）へセグメントの読み出し要求を発行する。
【００３７】
ステップＳ５；
蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）から合計Ｎ個のセグメントを受信し、それらを送信データバッファ２０の受信用領域に格納する。なお、番組の最終セグメントを含む場合、必ずしもちょうどＮ個のセグメントを受信するとは限らないが、この場合の処理方法はここでは規定しない。
ステップＳ６；
既に、後述の「セグメントの端末への配信処理」を起動したかどうかを判断する。
ステップＳ７；
ステップＳ６においてまだ「セグメントの端末への配信処理」を起動していない場合は、送信データバッファ２０の配信領域とセグメントの受信用領域を反転することで、ステップＳ５において、蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）から受信したセグメントを端末ｉ（３−ｉ）へ配信できるようにし、ステップＳ８へ進む。
ステップＳ８；
後述の「セグメントの端末への配信処理」を起動し、ステップＳｌｌへ進む。
【００３８】
ステップＳ９；
ステップＳ６において、既に「セグメントの端末への配信処理」を起動している場合は、「セグメントの端末への配信処理」が配信用領域のセグメントを全て端末に配信するまで待つ。
ステップＳ１０；
「セグメントの端末への配信処理」が配信用領域のセグメントの送信を完了した時点で、送信データバッファ２０の配信領域とセグメントの受信用領域を反転し、「セグメントの端末への配信処理」が引き続きセグメントの配信を継続できるようにする。
ステップＳｌｌ；
ステップＳ５において受信したＮ個のセグメントの中に番組の最終セグメントが含まれていれば処理を終了する。含まれていなければステップＳ１２へ進む。
ステップＳ１２；
端末ｉ（３−ｉ）からマルチメディア情報の配信終了要求が到着していれば処理を終了する。到着していなければ、ステップＳ４へ戻る。
【００３９】
次に、「セグメントの端末への配信処理」について、図１９に示すステップＳ１３〜ステップＳ１６に従って説明する。
ステップＳ１３；
送信データバッファ２０の配信用領域に１つでもセグメントが格納されていればステップＳ１４へ進む。
ステップＳ１４；
送信データバッファ２０に格納されているセグメントを１つ端末ｉ（３−ｉ）へ配信する。
ステップＳ１５；
ステップＳ１４において配信したセグメントが番組の最終セグメントであれば処理を終了する。そうでなければステップＳ１６へ進む。
ステップＳ１６；
端末ｉ（３−ｉ）からマルチメディア情報の配信終了要求が到着していれば処理を終了する。そうでなければ、ステップＳ１３へ戻る。
以上が、端末ｉ（３−ｉ）が分散型マルチメディアサーバ装置１からマルチメディア情報の読み出しを行なう場合についての説明である。
【００４０】
次に、本実施例における分散型マルチメディアサーバ装置１へマルチメディア情報の蓄積を行なう場合について述べる。図９に示した蓄積動作のシーケンスと同様に、以下の（手順１）〜（手順５）の手順で動作する。
手順１；
マルチメディア情報入力装置４は、分散型マルチメディアサーバ装置１に、ある番組のマルチメディア情報を蓄積する場合、端末側ネットワーク２を経由して書き込み要求を行なう。通信サーバモジュールｊ（１１−ｊ）は、マルチメディア情報入力装置４から、そのマルチメディア情報書き込み要求を受信する。
手順２；
通信サーバモジュールｊ（１１−ｊ）は、マルチメディア情報入力装置４から転送されてきたマルチメディア情報が、Ｎ（蓄積サーバモジュールの数）個のセグメント分の量に達すると、蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）に対して、セグメントの書き込み要求を発行する。
【００４１】
手順３；
通信サーバモジュールｊ（１１−ｊ）は、マルチメディア情報入力装置４から転送されてきたマルチメディア情報を固定長のセグメントに分割し、蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）に転送する。
手順４；
蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）は、他の蓄積サーバモジュールと通信を行なうことなく、セグメントを自身の蓄積装置（１〜Ｎ）（１４−１〜１４−Ｎ）に書き込む。
手順５；
以降、同様に、通信サーバモジュールｊ（１１−ｊ）は、セグメントＮ個分に相当するマルチメディア情報をマルチメディア情報入力装置４から受信するたびに、蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）に対して、セグメントの書き込み要求を発行し、転送されてきたマルチメディア情報を固定長のセグメントに分割して蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）に転送することを繰り返す。
【００４２】
図２０は、本実施例における通信サーバモジュール（１１−１〜１１−Ｎ）のマルチメディア情報の蓄積処理を表すフローチャートである。
図２０に示すステップＳ１７〜ステップＳ２６に従って、前述の（手順１）〜（手順５）で述べた通信サーバモジュール（１１−１〜１１−Ｎ）の処理をさらに詳しく説明する。
ステップＳ１７；
マルチメディア情報入力装置４からの書き込み要求を受信する。
ステップＳ１８；
マルチメディア情報のセグメント２Ｎ個分の容量を持つ受信データバッファ２１を確保する。バッファが確保できない場合には確保できるまで待つ。
ステップＳ１９；
受信データバッファ２１を、Ｎセグメント分の容量ずつＡ、Ｂの２つの領域に２等分し、領域Ａをマルチメディア情報入力装置４から受信するデータを格納するための受信用領域、領域Ｂを蓄積サーバモジュール（１３−１〜１３−Ｎ）へ送信するセグメントを格納するためのセグメント送信用領域に設定する。
【００４３】
ステップＳ２０；
後述の「マルチメディア情報入力装置４からの受信処理」を起動する。
ステップＳ２１；
「マルチメディア情報入力装置４からの受信処理」が、受信データバッファ２１の受信用領域にＮセグメント分のデータの受信を完了するか、または、この時点でマルチメディア情報入力装置４からの終了要求が到着すればステップＳ２２へ進む。そうでなければこの状態で待ち続ける。
ステップＳ２２；
受信データバッファ２１のマルチメディア情報入力装置４からのデータ受信用領域と、蓄積サーバモジュール（１３−１〜１３−Ｎ）へのセグメントの受信用領域を反転する。これにより、「マルチメディア情報入力装置４からの受信処理」が、引き続きマルチメディア情報入力装置４からデータを受信できるとともに、蓄積サーバモジュール（１３−１〜１３−Ｎ）へセグメントを送信できるようにする。
【００４４】
ステップＳ２３；
蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）へセグメントの書き込み要求を行なう。
ステップＳ２４；
蓄積サーバモジュール（１〜Ｎ）（１３−１〜１３−Ｎ）へ、送信用領域内の全てのセグメントを送信する。
ステップＳ２５；
マルチメディア情報入力装置４から書き込み終了要求が到着していなければステップＳ２１へ戻る。到着していればステップＳ２６へ進む。
ステップＳ２６；
受信データバッファ２１の受信用領域に、マルチメディア情報入力装置４から受信したままのデータが残っていればステップＳ２２へ戻る。残っていなければ処理を終了する。
【００４５】
以下、「マルチメディア情報の受信処理」について、図２１に示すステップＳ２７〜ステップＳ２８に従って説明する。
ステップＳ２７；
マルチメディア情報入力装置４から、１セグメント分のマルチメディア情報を受信データバッファ２１の受信用領域へ受信する。
ステップＳ２８；
マルチメディア情報入力装置４から書き込み終了要求が到着していなければステップＳ２７へ戻る。到着していれば処理を終了する。
【００４６】
以上説明したように、本実施例の分散型マルチメディアサーバ装置１は、マルチメディア情報の配信時には、Ｎ台の蓄積サーバモジュール（１３−１〜１３−Ｎ）に対して、各通信サーバモジュール（１１−１〜１１−Ｎ）にマルチメディア情報のセグメント２Ｎ個分の送信データバッファ２０を用意し、そのバッファに対してＮ個のセグメントを最初にバッファリングしてから端末へのデータ送信を開始する。
前述の［課題を解決するための手段］に記載の理由により、「セグメントの端末への配信処理」がＮ個のセグメントの端末への配信を完了する時点で、蓄積サーバモジュール（１３−１〜１３−Ｎ）から次のＮ個のセグメントを読み出す処理は必ず終了している。
これにより、本実施例に記載した送信データバッファ２０の使用方法により、端末側ネットワーク２への途切れのないマルチメディア情報の配信が可能である。
また、本実施例の分散型マルチメディアサーバ装置１は、マルチメディア情報の蓄積時には、各通信サーバモジュール（１１−１〜１１−Ｎ）にマルチメディア情報のセグメント２Ｎ個分の受信データバッファ２１を用意し、そのうちの半分の容量をマルチメディア情報入力装置４からのマルチメディア情報受信用に、残りの半分の容量を蓄積サーバモジュール（１３−１〜１３−Ｎ）への送信セグメント格納用に使用する。
【００４７】
前述の［課題を解決するための手段］に記載の理由により、「マルチメディア情報の受信処理」がＮセグメント分のマルチメディア情報をマルチメディア情報入力装置４から受信するまでに、蓄積サーバモジュール（１３−１〜１３−Ｎ）への前のＮ個のセグメントの送信処理は必ず終了している。
これにより、実施例に記載した受信データバッファ２１の使用方法により、マルチメディア情報入力装置４から送信されてくるマルチメディア情報を取りこぼすことなく受信し続けることが可能である。
よって、本実施例は、前述の［課題を解決するための手段］に記載した、配信動作の途中で端末側ネットワーク２へ送出するデータの枯渇が生じないことを保証するために必要となる送信データバッファ２０への初期バッファリング量の値、あるいは、書き込み動作の途中で端末側ネットワーク２からのデータを受信しきれなくなることによるデータの欠落が生じないことを保証するために必要な受信データバッファ２１の容量を具体的に求めることが困難で、経験則に基づく値を設定したり、大きめの値を設定せざるを得ないという、従来の分散型マルチメディアサーバ装置が持つ課題を解決する。
【００４８】
なお、前述までの説明では、マルチメディア情報の読み出し／書き込みを行う場合について説明したが、前述のマルチメディア情報は、複数のセグメントに分割した情報であってもよい。
また、本発明の通信サーバモジュール（１３−１〜１３−Ｎ）および蓄積サーバモジュール（１３−１〜１３−Ｎ）は、コンピュータとプログラムによっても実現でき、このプログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図面の簡単な説明】
【００４９】
【図１】従来の分散型マルチメディアサーバ装置の概略システム構成を示すブロック図である。
【図２】従来の分散型マルチメディアサーバ装置において、１番組のマルチメディア情報の蓄積方法を説明するための図である。
【図３】従来の分散型マルチメディアサーバ装置における、マルチメディア情報の蓄積シーケンスを示す図である。
【図４】従来の分散型マルチメディアサーバ装置における、マルチメディア情報の配信シーケンスを示す図である。
【図５】従来の分散型マルチメディアサーバ装置において、１つの蓄積サーバモジュールに対して複数の通信サーバモジュールからのセグメントの読み出し／書き込み要求が集中した例を示す図である。
【図６】従来の分散型マルチメディアサーバ装置において、セグメントデータの到着速度の変動を吸収するための送信データバッファを説明するための図である。
【図７】従来の分散型マルチメディアサーバ装置において、１つの蓄積サーバモジュールに対して複数の通信サーバモジュールからのセグメントの読み出し要求の集中が継続する例を示す図である。
【図８】従来の分散型マルチメディアサーバ装置において、セグメントデータの書き込み速度の変動を吸収するための受信データバッファを説明するための図である。
【図９】本発明の分散型マルチメディアサーバ装置における、マルチメディア情報の蓄積シーケンスを示す図である。
【図１０】本発明の分散型マルチメディアサーバ装置における、マルチメディア情報の読み出しシーケンスを示す図である。
【図１１】本発明の分散型マルチメディアサーバ装置における、セグメントの読み出し／書き込み要求のキューイングを説明するための図である。
【図１２】従来の分散型マルチメディアサーバ装置と、本発明の分散型マルチメディアサーバ装置における、セグメント処理のタイミングチャートを比較して示す図である。
【図１３】本発明の分散型マルチメディアサーバ装置における、送信データバッファの使用方法を説明するための図である。
【図１４】本発明の分散型マルチメディアサーバ装置における、受信データバッファの使用方法を説明するための図である。
【図１５】本発明の実施例の分散型マルチメディアサーバ装置の概略システム構成を示すブロック図である。
【図１６】本発明の実施例の分散型マルチメディアサーバ装置における、通信サーバモジュール内の送受信データバッファを説明するための図である。
【図１７】本発明の実施例の分散型マルチメディアサーバ装置における、蓄積サーバモジュール内の要求キューを説明するための図である。
【図１８】本発明の実施例の分散型マルチメディアサーバ装置における、マルチメディア情報の読み出し時の通信サーバモジュールの処理手順を示すフローチャートである。
【図１９】本発明の実施例の分散型マルチメディアサーバ装置における、マルチメディア情報の読み出し時の通信サーバモジュールの処理手順を示すフローチャートである。
【図２０】本発明の実施例の分散型マルチメディアサーバ装置における、マルチメディア情報の蓄積時の通信サーバモジュールの処理手順を示すフローチャートである。
【図２１】本発明の実施例の分散型マルチメディアサーバ装置における、マルチメディア情報の蓄積時の通信サーバモジュールの処理手順を示すフローチャートである。
【符号の説明】
【００５０】
１  分散型マルチメディアサーバ装置
２  端末側ネットワーク
３−１，３−２  端末
４  マルチメディア情報入力装置
１１−１，１１−２，１１−Ｍ，１１−Ｎ  通信サーバモジュール
１２  サーバモジュール間ネットワーク
１３−１，１３−２，１３−Ｎ  蓄積サーバモジュール
１４−１，１４−２，１４−Ｎ  蓄積装置
２０  送信データバッファ
２１  受信データバッファ
２２  送受信データバッファ
３０−１，３０−２，３０−Ｎ  要求キュー
３１  処理プロセス
【図１】
0004531723.tif 000002
【図２】
0004531723.tif 000003
【図３】
0004531723.tif 000004
【図４】
0004531723.tif 000005
【図５】
0004531723.tif 000006
【図６】
0004531723.tif 000007
【図７】
0004531723.tif 000008
【図８】
0004531723.tif 000009
【図９】
0004531723.tif 000010
【図１０】
0004531723.tif 000011
【図１１】
0004531723.tif 000012
【図１２】
0004531723.tif 000013
【図１３】
0004531723.tif 000014
【図１４】
0004531723.tif 000015
【図１５】
0004531723.tif 000016
【図１６】
0004531723.tif 000017
【図１７】
0004531723.tif 000018
【図１８】
0004531723.tif 000019
【図１９】
0004531723.tif 000020
【図２０】
0004531723.tif 000021
【図２１】
0004531723.tif 000022