(57)【特許請求の範囲】
【請求項１】
分割したマルチメディア情報である分割マルチメディア情報を分割した単位で蓄積し、端末からの要求に応じて、要求されたマルチメディア情報を配信する分散型マルチメディアサーバシステムであって、
前記分散型マルチメディアサーバシステムは、第１のサーバモジュールと、第２のサーバモジュールと、前記第１のサーバモジュールと前記第２のサーバモジュールとの間に介在し遠隔ダイレクトメモリアクセス機能により前記第２のサーバモジュールおよび前記第１のサーバモジュール内のメモリの内容を相互に参照することが可能なネットワークまたはバスシステムを有し、
前記第１のサーバモジュールは、
端末からのマルチメディア情報読み出し要求を受信する手段と、
前記マルチメディア情報読み出し要求に基づいて、前記第２のサーバモジュールに対して、分割マルチメディア情報の読み出し要求を行う手段と、
前記第２のサーバモジュールから取得した前記第２のサーバモジュール内の分割マルチメディア情報が格納されたバッファメモリに関する情報であるメモリ情報を元に前記第２のサーバモジュール内のバッファメモリから前記遠隔ダイレクトメモリアクセス機能により分割マルチメディア情報を取得する手段と、
前記端末、または前記端末からの読み出し要求で指定された端末もしくは指定されたアドレスに対してマルチメディア情報を送信する手段と、
を備え、
前記第２のサーバモジュールは、前記第１のサーバモジュールから要求された分割マルチメディア情報を蓄積装置から読み出し、自モジュール内のバッファメモリに格納する手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項２】
請求項１に記載の分散型マルチメディアサーバシステムであって、
前記第２のサーバモジュールは、
前記バッファメモリに前記分割マルチメディア情報を新たに書き込んだことを示す情報である更新情報と前記バッファメモリに関する情報であるメモリ情報を、自モジュール内の新規書込情報メモリに格納する手段と、
前記新規書込情報メモリに関する情報である新規書込メモリ情報を前記第１のサーバモジュールへ通知する手段と、
を備え、
前記第１のサーバモジュールは、前記第２のサーバモジュールから、前記新規書込メモリ情報を受け取り、前記新規書込メモリ情報を元に前記第２のサーバモジュール内の新規書込情報メモリから前記遠隔ダイレクトメモリアクセス機能により前記更新情報と前記メモリ情報を取得し、新たに書込が行われている場合に分割マルチメディア情報を取得する手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項３】
請求項１または２に記載の分散型マルチメディアサーバシステムであって、
前記第２のサーバモジュールは、前記第１のサーバモジュールからのマルチメディア情報読み出し要求に対する応答として、または、予め、前記第１のサーバモジュールに対して、前記メモリ情報または前記新規書込メモリ情報を通知する手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項４】
請求項２に記載の分散型マルチメディアサーバシステムであって、
前記第２のサーバモジュールは、予め、前記第１のサーバモジュールに対して前記新規書込メモリ情報を送信する手段を備え、
前記第１のサーバモジュールは、前記マルチメディア情報読み出し要求を前記第２のサーバモジュールに対して送信した後、予め取得した前記新規書込メモリ情報を元に、前記第２のサーバモジュール内の新規書込情報メモリから前記更新情報と前記メモリ情報を取得する手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項５】
分割したマルチメディア情報である分割マルチメディア情報を分割した単位で蓄積し、端末からの要求に応じて、要求されたマルチメディア情報を配信する分散型マルチメディアサーバシステムであって、
前記分散型マルチメディアサーバシステムは、第１のサーバモジュールと、第２のサーバモジュールと、前記第１のサーバモジュールと前記第２のサーバモジュールとの間に介在し遠隔ダイレクトメモリアクセス機能により前記第２のサーバモジュールおよび前記第１のサーバモジュール内のメモリの内容を相互に参照することが可能なネットワークまたはバスシステムを有し、
前記第１のサーバモジュールは、
端末からのマルチメディア情報読み出し要求を受信する手段と、
前記マルチメディア情報読み出し要求に基づいて、前記第２のサーバモジュールに対して、自モジュール内のマルチメディア情報を格納するためのバッファメモリに関する情報であるメモリ情報を読み出し要求に付加した分割マルチメディア情報読み出し要求を行う手段と、
前記端末、または前記端末からの読み出し要求で指定された端末もしくは指定されたアドレスに対して、マルチメディア情報を送信する手段と、
を備え、
前記第２のサーバモジュールは、
前記第１のサーバモジュールから要求された分割マルチメディア情報を蓄積装置から読み出し、前記分割マルチメディア情報読み出し要求内に含まれた前記メモリ情報で指定された前記第１のサーバモジュール内のバッファメモリに、前記分割マルチメディア情報を前記遠隔ダイレクトメモリアクセス機能を用いて書き込む手段と、
前記第１のサーバモジュール内のバッファメモリに書き込んだことを前記第１のサーバモジュールに通知する手段と、
を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項６】
請求項５に記載の分散型マルチメディアサーバシステムであって、
前記第１のサーバモジュールは、前記分割マルチメディア情報読み出し要求に、分割マルチメディア情報が第２のサーバモジュールによって書かれたかどうかを示す情報を格納する前記第１のサーバモジュール内のメモリである新規書込情報メモリのアドレスを加える手段を備え、
前記第２のサーバモジュールは、分割マルチメディア情報を前記第１のサーバモジュール内のバッファメモリに書き込むとともに、前記第１のサーバモジュール内の前記新規書込情報メモリに書込が完了したことを示す情報を書き込む手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項７】
請求項１〜６のいずれか一つに記載の分散型マルチメディアサーバシステムであって、
前記第１のサーバモジュールは、分割マルチメディア情報をそれぞれ循環的に蓄積している複数の第２のサーバモジュールに対して、順次、読み出し要求を行い、前記複数の第２のサーバモジュールから分割マルチメディア情報を読み出し、配信する手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項８】
請求項１〜７のいずれか一つに記載の分散型マルチメディアサーバシステムであって、
前記第１のサーバモジュールは、
端末からのマルチメディア情報書き込み要求を受信する手段と、
前記マルチメディア情報書き込み要求に基づいて、前記第２のサーバモジュールに対して、分割マルチメディア情報書き込み要求を行う手段と、
前記第２のサーバモジュールから取得した前記第２のサーバモジュール内の分割マルチメディア情報が格納可能なバッファメモリに関する情報であるメモリ情報を元に前記第２のサーバモジュール内のバッファメモリヘ前記遠隔ダイレクトメモリアクセス機能により分割マルチメディア情報を書き込む手段と、
を備え、
前記第２のサーバモジュールは、前記第１のサーバモジュールから自モジュール内のバッファメモリに書き込まれた分割マルチメディア情報を蓄積装置に書き込む手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項９】
請求項１〜７のいずれか一つに記載の分散型マルチメディアサーバシステムであって、
前記第１のサーバモジュールは、
端末からのマルチメディア情報書き込み要求を受信する手段と、
前記マルチメディア情報書き込み要求に基づいて、前記第２のサーバモジュールに対して、自モジュール内の分割マルチメディア情報を格納したバッファメモリに関する情報であるメモリ情報を書き込み要求に付加した分割マルチメディア情報書き込み要求を行う手段と、
を備え、
前記第２のサーバモジュールは、前記分割マルチメディア情報書き込み要求に含まれたメモリ情報で指定された前記第１のサーバモジュール内のバッファメモリから前記遠隔ダイレクトメモリアクセス機能により分割マルチメディア情報を読み出し、前記分割マルチメディア情報を蓄積装置に書き込む手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項１０】
請求項８または９に記載の分散型マルチメディアサーバシステムであって、
前記第１のサーバモジュールは、複数の第２のサーバモジュールに対して、順次、分割マルチメディア情報書き込み要求を行い、前記遠隔ダイレクトメモリアクセス機能を使用して、前記複数の第２のサーバモジュールに分割マルチメディア情報を転送する手段を備え、
前記複数の第２のサーバモジュールは、受信した分割マルチメディア情報をそれぞれの蓄積装置に書き込む手段を備えることを特徴とする分散型マルチメディアサーバシステム。
【請求項１１】
分割したマルチメディア情報である分割マルチメディア情報を分割した単位で蓄積し、端末からの要求に応じて、要求されたマルチメディア情報を配信する分散型マルチメディアサーバシステムにおけるマルチメディア情報配信方法であって、
前記分散型マルチメディアサーバシステムは、第１のサーバモジュールと、第２のサーバモジュールと、前記第１のサーバモジュールと前記第２のサーバモジュールとの間に介在し遠隔ダイレクトメモリアクセス機能により前記第２のサーバモジュールおよび第１のサーバモジュール内のメモリの内容を相互に参照することが可能なネットワークまたはバスシステムを有し、
前記第１のサーバモジュールが、端末からのマルチメディア情報読み出し要求を受信する工程と、
前記第１のサーバモジュールが、前記マルチメディア情報読み出し要求に基づいて、前記第２のサーバモジュールに対して、分割マルチメディア情報の読み出し要求を行う工程と、
前記第２のサーバモジュールが、前記第１のサーバモジュールから要求された分割マルチメディア情報を蓄積装置から読み出し、自モジュール内のバッファメモリに格納する工程と、
前記第１のサーバモジュールが、前記第２のサーバモジュールから取得した前記第２のサーバモジュール内の分割マルチメディア情報が格納されたバッファメモリに関する情報であるメモリ情報を元に前記第２のサーバモジュール内のバッファメモリから前記遠隔ダイレクトメモリアクセス機能により分割マルチメディア情報を取得する工程と、
前記第１のサーバモジュールが、前記端末、または前記端末からの読み出し要求で指定された端末もしくは指定されたアドレスに対してマルチメディア情報を送信する工程と、
を含んだことを特徴とするマルチメディア情報配信方法。
【請求項１２】
分割したマルチメディア情報である分割マルチメディア情報を分割した単位で蓄積し、端末からの要求に応じて、要求されたマルチメディア情報を配信する分散型マルチメディアサーバシステムにおけるマルチメディア情報配信方法であって、
前記分散型マルチメディアサーバシステムは、第１のサーバモジュールと、第２のサーバモジュールと、前記第１のサーバモジュールと前記第２のサーバモジュールとの間に介在し遠隔ダイレクトメモリアクセス機能により前記第２のサーバモジュールおよび前記第１のサーバモジュール内のメモリの内容を相互に参照することが可能なネットワークまたはバスシステムを有し、
前記第１のサーバモジュールが、端末からのマルチメディア情報読み出し要求を受信する工程と、
前記第１のサーバモジュールが、前記マルチメディア情報読み出し要求に基づいて、前記第２のサーバモジュールに対して、自モジュール内のマルチメディア情報を格納するためのバッファメモリに関する情報であるメモリ情報を読み出し要求に付加した分割マルチメディア情報読み出し要求を行う工程と、
前記第２のサーバモジュールが、前記第１のサーバモジュールから要求された分割マルチメディア情報を蓄積装置から読み出し、前記分割マルチメディア情報読み出し要求内に含まれた前記メモリ情報で指定された前記第１のサーバモジュール内のバッファメモリに、前記分割マルチメディア情報を前記遠隔ダイレクトメモリアクセス機能を用いて書き込む工程と、
前記第２のサーバモジュールが、前記第１のサーバモジュール内のバッファメモリに書き込んだことを前記第１のサーバモジュールに通知する工程と、
前記第１のサーバモジュールが、前記端末、または前記端末からの読み出し要求で指定された端末もしくは指定されたアドレスに対して、マルチメディア情報を送信する工程と、
を含んだことを特徴とするマルチメディア情報配信方法。
【請求項１３】
請求項１〜１０のいずれか一つに記載の手段としてコンピュータを機能させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の端末からの要求に応じて、要求されたマルチメディア情報を各端末に遅滞なく配信、または、端末から送信されたマルチメディア情報を蓄積することが可能な分散型マルチメディアサーバシステムおよびマルチメディア情報配信方法ならびにそのプログラムおよび記録媒体に関するものである。
【背景技術】
【０００２】
従来の分散型マルチメディアサーバシステムの構成例として、特許文献１等に記載されたものがある。図１に、このような従来の分散型マルチメディアサーバシステムを示す。図１に示すように、分散型マルチメディアサーバシステム１は、通信サーバモジュール２、蓄積サーバモジュール３、４およびローカルエリアネットワーク５を有している。【０００３】
マルチメディア情報の蓄積は図２に示す手順で行われる。通信サーバモジュール２が、端末からの書き込み要求とマルチメディア情報を受信するとともに分割し、書き込み要求を蓄積サーバモジュール３に送信し、その応答を受け取ってから、分割したマルチメディア情報を蓄積サーバモジュール３に送信する。同様に蓄積サーバモジュール４に送信し、これを繰り返す。【０００４】
マルチメディア情報の配信は図３に示す手順で行われる。通信サーバモジュール２が端末からの読み取り要求を受信し、要求されたマルチメディア情報の読み取り要求を蓄積サーバモジュール３に対して送信する。この読み出し要求を受信した蓄積サーバモジュール３は、要求されたマルチメディア情報を通信サーバモジュール２に送信する。それを受信した通信サーバモジュール２は、マルチメディア情報をくみ上げ、配信用のネットワークを通じて端末へ送信する。同様に、通信サーバモジュール２はマルチメディア情報の読み出し要求を蓄積サーバモジュール３に対して送信し、蓄積サーバモジュール４は要求されたマルチメディア情報を通信サーバモジュール２に送信し、これを繰り返す。【０００５】
【特許文献１】特許第３４６１２７８号公報
【非特許文献１】ＩＮＦＩＮＩＢＡＮＤ（ＳＭ）  ＴＲＡＤＥ  ＡＳＳＯＣＩＡＴＩＯＮ、[online]、［平成１７年５月６日検索］、インターネット＜http://www.infinibandta.org/events/past/it_roadshow/fabric_tco_ibm.pdf＞
【非特許文献２】Ｍｙｒｉｎｅｔ  Ｏｖｅｒｖｉｅｗ、[online]、［平成１７年５月６日検索］、インターネット＜http://www.myrinet.com/myrinet/overview/＞
【非特許文献３】独立行政法人  産業技術総合研究所  先端情報計算センター、"ＡＩＳＴスーパークラスタ"、[online]、［平成１７年５月６日検索］、インターネット＜http://unit.aist.go.jp/tacc/supercluster.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ローカルエリアネットワークを使用した図１のシステムでは、ローカルネットワーク５としてEthernet（登録商標）を使うことが一般的である。その環境下においては、ネットワーク内の通信は信頼性を重きにおくため、そのプロトコルとしてＴＣＰ／ＩＰを使用する必要がある。【０００７】
ＴＣＰ／ＩＰは汎用性を高くするため、各サーバモジュール内の汎用の演算装置６、７、８がその処理を行う。接続端末数が多くなりネットワークの最大帯域に近づくと、ネットワークの空きを待つ時間が長くなり、負荷が急激に高くなることが知られている。また、この演算装置は、端末との間のメッセージの処理や、サーバモジュール間の読み取り要求、書き込み要求の処理も行わなければならないため、負荷がさらに大きくなる。その結果、処理遅延が増大し、必要な時間までにマルチメディア情報の読み出しが完了しない現象が起こるため、サーバモジュール１台あたりの処理負荷を低く抑えて使わなければならなくなり、処理能力に余裕をもたせてモジュール数を決定しなければならず、必要以上に大きな設備を用意しなければならない。さらに、ローカルエリアネットワーク内に設置されたスイッチで、各サーバからのトラヒックが衝突を起こし、その結果、ローカルエリアネットワーク内でのランダムな送信遅延が発生する。この送信遅延は、ＴＣＰ／ＩＰの輻輳検出メカニズムを起動させ、その結果、ローカルエリアネットワーク内での送信速度が低下するため、実際に使用する転送速度よりも十分に高い転送速度を持ったローカルエリアネットワークとサーバを使って分散サーバシステムを構築する必要がある。【０００８】
以上のように、従来のシステムでは、サーバ、ネットワークとも処理能力に余裕を持たせて設計する必要がある。そのため、ハイビジョンなどの高品質な映像を複数同時にネットワークで配信するサーバには最速のプロセッサを搭載したものをクラスタ化し、それらを接続する内部ネットワークは１０ギガビットイーサネット（登録商標）等のギガビット超のネットワークを使用する必要があり、非常に高価なシステムになってしまうという問題がある。【０００９】
一方、ローカルエリアネットワーク以外のネットワークとして、並列計算機を構成するためのクラスタ間接続ネットワーク（例えば非特許文献１、２、３など）がある。このネットワークは、ハードウェアで通信の信頼性の確保を実現しているため、高速低負荷、低コストである反面、サーバ間のメッセージの送受信やメモリ共有に使う目的で設計されているため、映像データのようなストリームの転送機能は持ち合わせていない。しかし、このメモリ共有機能（遠隔ダイレクトメモリアクセス機能）は、このクラスタ間接続ネットワークにより接続されたサーバのメモリを他のサーバから自由にアクセス出来るようにする機能で、ほとんどの処理をネットワークカードのハードウェアで実現しており、サーバのＣＰＵに負荷をほとんどかけずにデータの転送を行うことが出来る。さらに、この遠隔ダイレクトメモリアクセス機能では、相手側のアドレスを得てしまえば、相手側が何もしなくてもデータの転送が行えるため、例えば、ＴＣＰ／ＩＰを使った処理では相手側はsend()などのシステムコールを呼び出さなければならないが、この機能を使うことによって、余計な処理を相手側で行わずにデータの転送が実現出来る。このネットワークを使うことが出来れば、低負荷でデータの転送が出来るため、高価でハイスペックなサーバシステムを導入することなく、低コストなサーバにより高い転送能力を持つサーバシステムを構築することが出来、サーバと内部結合ネットワークのコストを削減することが出来る。本発明の目的は、例えばクラスタ間接続ネットワークのような遠隔ダイレクトメモリアクセス機能が利用できるネットワークもしくはバスシステムを使ってストリームを転送するための手段を提供し、安価で高速な、高品質映像の配信システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の分散型マルチメディアシステムを説明するためのシステム構成例を図４に示す。以下、上記課題を解決するための手段について図４を用いて説明するが、これはわかりやすく説明するためであり、本発明を限定するものではない。本発明は請求項に記載されたとおりである。【００１１】
図４に示すシステム構成例においては、分散型マルチメディアサーバシステム１０は、バッファサーバモジュール（第１のサーバモジュール）２１、２２、２３、…、ストレージサーバモジュール（第２のサーバモジュール）３１、３２、３３、…、蓄積装置４１、４２、４３、…、クラスタ間接続ネットワーク５１を有し、端末１１、１２は配信用ネットワーク６１を介して分散型マルチメディアサーバシステム１０に接続されている。バッファサーバモジュール２１、２２、２３、…とストレージサーバモジュール３１、３２、３３、…の間に介在するクラスタ間接続ネットワーク５１が遠隔ダイレクトメモリアクセス機能を提供している。クラスタ間接続ネットワーク５１の遠隔ダイレクトメモリアクセス機能により、バッファサーバモジュール２１、２２、２３、…とストレージサーバモジュール３１、３２、３３は、ストレージサーバモジュール３１、３２、３３、…およびバッファサーバモジュール２１、２２、２３、…内のメモリの内容を相互に参照することが可能となる。５２はバッファサーバモジュール２１、２２、２３、…とストレージサーバモジュール３１、３２、３３、…間でメッセージを交換するためのローカルエリアネットワークである。図４の構成例では、分散型マルチメディアサーバシステム１０は、複数個のバッファサーバモジュール、ストレージサーバモジュール、蓄積装置を有しているが、これらは１つずつでもよい。また、図４の構成例では、メッセージ交換用にローカルエリアネットワーク５２を用いているが、メッセージ交換もクラスタ間接続ネットワーク５２で行ってもよい。【００１２】
まず、再生用の端末１１からマルチメディア情報の読み出し要求をバッファサーバモジュール２１が受信する。そのバッファサーバモジュール２１は、マルチメディア情報が格納された蓄積装置４１を持つストレージサーバモジュール３１に対して、マルチメディア情報の読み出し要求を送信する。そのメッセージを受けたストレージサーバモジュール３１が、自メモリに読み出す。そして、マルチメディア情報の読み出し要求の応答として、マルチメディア情報を格納したメモリに関する情報（メモリアドレスや、その大きさ、もしくは、これらのメモリに関する情報が格納されているメモリアドレスなど）をバッファサーバモジュール２１に返す。【００１３】
マルチメディア情報の読み出し要求に対する応答を受信したバッファサーバモジュール２１は、応答に含まれているストレージサーバモジュール３１中のマルチメディア情報が格納されているメモリに関する情報を元に、遠隔ダイレクトメモリアクセス機能を使って、マルチメディア情報を取得し、それを、端末または端末からのマルチメディア情報の読み出し要求で指定された端末へパケット化して送信する。【００１４】
数多くの端末に送信したい場合は、バッファサーバモジュール２１、２２、２３、…、ストレージサーバモジュール３１、３２、３３、…を図４のように複数配置する。さらに、ストレージサーバモジュール３１、３２、３３、…にそれぞれ接続された蓄積装置４１、４２、４３、…に対して、例えばセグメントもしくはフレーム単位で、マルチメディア情報を分割して格納し、バッファサーバモジュールから、マルチメディア情報が格納された蓄積装置（ストレージ）が接続されている各ストレージサーバモジュールに対して順に読み出し要求を送信し、メモリに関する情報を各ストレージサーバモジュールから受信し、その情報を元に、順に各ストレージサーバモジュールからマルチメディア情報を読み出し、マルチメディア情報を組立てて指定された端末へ送信する。バッファサーバモジュールがマルチメディア情報の読み出し要求を送信するタイミングは、１つ前のストレージサーバモジュールに対する遠隔ダイレクトメモリアクセスによるマルチメディア情報の読み出しが完了する前であってもよい。【００１５】
複数の端末から同時に読み出す場合は、他のバッファサーバモジュールからも各ストレージサーバモジュールに対して、マルチメディア情報の読み出し要求を送信して、同様に読み出す。このように、複数が同時にストレージサーバモジュールに対してアクセスした場合、処理の競合により、ストレージサーバからの応答が遅れ、アンダーフローを起こすことが考えられる。しかし、バッファサーバモジュール内でマルチメディア情報をバッファリングし、送信開始を遅らせることにより、応答の遅れを吸収することは可能である。【００１６】
また、ストレージサーバモジュールは、マルチメディア情報の読み出し要求に対する応答にマルチメディア情報が格納されているメモリ情報を応答で返す代わりに、メモリ情報と新規に書き込まれたかどうかの情報（新規書込メモリ情報）が格納されているストレージサーバモジュール中のメモリに関する情報を返すことも可能である。バッファサーバモジュールは、新規に書き込まれたかどうかを判定するとともに、間接的にマルチメディア情報が格納されているメモリから、マルチメディア情報を読み出すことが可能である。【００１７】
応答データ量を減らすことを目的に、システム起動時にバッファサーバモジュールは前記メモリ情報や前記新規書込メモリ情報をストレージサーバモジュールから取得しておくことにより、マルチメディア情報の読み出し要求に対する応答にこれらの情報を含ませないことも可能である。さらに、この取得した前記新規書込メモリ情報を元に、マルチメディア情報の読み出し要求を最初のみ実行し、２回目以降は、新規書込情報メモリにアクセスし、新規に書込が行われたかどうかを判定することにより、オーバーヘッドの大きい通信の回数をさらに減らすことが出来る。【００１８】
以下、上記課題を解決するための別の手段について説明する。【００１９】
まず、再生用の端末１１からマルチメディア情報の読み出し要求をバッファサーバモジュール２１が受信する。そのバッファサーバモジュール２１は、マルチメディア情報が格納された蓄積装置４１を持つストレージサーバモジュール３１に対して、マルチメディア情報の読み出し要求を送信する。この要求にバッファサーバモジュール２１内に確保されたマルチメディア情報格納用のメモリに関する情報（メモリ情報）を一緒に乗せて送信する。このマルチメディア情報の読み出し要求を受信したストレージサーバモジュール３１は、蓄積装置４１から読み出したマルチメディア情報を、前記メモリ情報で指定されたメモリに対して、遠隔ダイレクトメモリアクセス機能を使用して書き込むとともに、書込が完了したことを示すための応答を、前記バッファサーバモジュール２１に対して送信する。その応答を受信したバッファサーバモジュール２１は指定された端末に対してマルチメディア情報を送信する。【００２０】
さらに負荷の高い通信回数を削減するためには、バッファサーバモジュール２１は、分割マルチメディア情報の読み出し要求の中に、メモリ情報に加えて、新規に書き込まれたかどうかを示す新規書込情報を格納するためのメモリ（新規書込情報メモリ）に関する情報（新規書込メモリ情報）を代入して送信する。この要求を受信したストレージサーバモジュール３１は、前記蓄積装置４１から読み出したマルチメディア情報を、前記メモリ情報で指定されたメモリに対して、遠隔ダイレクトメモリアクセス機能を使用して書き込むとともに、新規書込メモリ情報で指定されたメモリに、新規にマルチメディア情報が書かれたことを示す情報を書き込み、応答は送信しない。バッファサーバモジュール２１は、マルチメディア情報の読み出し要求送信後、新規書込情報メモリを参照し、新規にマルチメディア情報が書き込まれたかどうかを判定する。その結果、新規に書込が行われていれば、遠隔ダイレクトメモリアクセス機能を使って分割マルチメディア情報を取得し、端末へ送信する。【００２１】
端末１１から送られたマルチメディア情報を分散型マルチメディアサーバシステム１０内に蓄積する場合は、以下の手順で行う。まず、端末１１からマルチメディア情報書き込み要求をバッファサーバモジュール２１が受信すると、ストレージサーバモジュール３１に対して、分割マルチメディア情報書き込み要求を送信する。ストレージサーバモジュール３１はその応答として、分割マルチメディア情報が書込可能なバッファメモリに関する情報をバッファサーバモジュール２１に対して送信する。その応答を受信したバッファサーバモジュール２１は、その情報を元に端末１１から受信したマルチメディア情報を分割して、遠隔ダイレクトメモリアクセス機能を使ってそのバッファメモリに書き込む。ストレージサーバモジュール３１は、書き込まれたことを確認すると。蓄積装置４１に書き込む。【００２２】
また、次に示す別の手順で蓄積することもできる。端末１１からマルチメディア情報書き込み要求をバッファサーバモジュール２１が受信すると、ストレージサーバモジュール３１に対して、分割マルチメディア情報書き込み要求を送信する。この時、バッファサーバモジュール２１は、この要求の中にバッファサーバモジュール２１内の分割マルチメディア情報が蓄積されているバッファメモリに関する情報を含めて送信する。この要求を受信したストレージサーバモジュール３１は、この要求に含まれているバッファメモリに関する情報を元に、分割マルチメディア情報を、遠隔ダイレクトメモリアクセス機能を使って取得し、蓄積装置４１に書き込む。【００２３】
本発明を用いることによって、負荷が高い通信を出来るだけ使用せずに、バッファサーバモジュール、ストレージサーバモジュール間で、マルチメディア情報の転送が出来るため、少ないサーバで高い同時配信性能を得ることが出来る。
【発明の効果】
【００２４】
本発明により、負荷の高い通信によるマルチメディア情報の転送を、負荷の低い遠隔ダイレクトメモリアクセスに置き換えることが可能となり、その結果、低いシステムコストで高いトータルスループットを得ることが可能となる。さらに、負荷が低くなった分、例えば、マルチメディア情報のフォーマットの変換や圧縮などの高度な処理をサーバシステム内に組み込むことが可能になり、少ないサーバリソースで付加価値の高いサービスをシステムで提供することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】図１は、従来の分散型マルチメディアサーバシステムの構成例を示す図である。
【図２】図２は、従来の分散型マルチメディアサーバシステムにおける蓄積シーケンス例を示す図である。
【図３】図３は、従来の分散型マルチメディアサーバシステムにおける再生シーケンス例を示す図である。
【図４】図４は、本発明の分散型マルチメディアシステムを説明するためのシステム構成例を示す図である。
【図５】図５は、実施例の分散型マルチメディアサーバシステムの構成例（最小構成）を示す図である。
【図６】図６は、再生処理の第１の実施例を説明する概略シーケンス図である。
【図７】図７は、再生処理の第１の実施例で複数のバッファを使用する場合の概略シーケンス図である。
【図８】図８は、再生処理の第２の実施例を説明する概略シーケンス図を示す図である。
【図９】図９は、再生処理の第２の実施例のストレージサーバモジュールにおけるバッファメモリ構成を示す図である。
【図１０】図１０は、再生処理の第２の実施例で複数のバッファを使用する場合の概略シーケンス図である。
【図１１】図１１は、再生処理の第２の実施例で起動時に新規書き込みメモリ情報を得る場合の概略シーケンス図である。
【図１２】図１２は、再生処理の第３の実施例を説明する概略シーケンス図である。
【図１３】図１３は、再生処理の第４の実施例を説明する概略シーケンス図である。
【図１４】図１４は、多数の端末に送信可能な分散型マルチメディアサーバシステムにおけるマルチメディア情報の蓄積方式と送信方式を説明する図である。
【図１５】図１５は、複数ストレージサーバモジュール構成対応に再生処理の第１の実施例を拡張した概略シーケンス図である。
【図１６】図１６は、登録処理の第１の実施例を説明する概略シーケンス図である。
【図１７】図１７は、登録処理の第１の実施例で複数のバッファを使用する場合の概略シーケンス図である。
【図１８】図１８は、登録処理の第１の実施例を説明する概略シーケンス図である。
【図１９】図１９は、複数ストレージサーバモジュール構成対応に登録処理の第１の実施例を拡張した概略シーケンス図である。
【図２０】図２０は、一般的なクラスタ型並列計算方式を説明するための図である。
【図２１】図２１は、リクエストに応じたバッファメモリの確保例を示す図である。
【図２２】図２２は、データ先読みによるバッファメモリの確保例を示す図である。
【符号の説明】
【００２６】
１…分散型マルチメディアサーバシステム、２…通信サーバモジュール、３、４…蓄積サーバモジュール、５…ローカルエリアネットワーク、６、７、８…演算装置、１０，５０…分散型マルチメディアサーバシステム、１１、１２、１３…端末、２１、２２、２３…バッファサーバモジュール、３１、３２、３３…ストレージサーバモジュール、４１、４２、４３…蓄積装置、５１…クラスタ間接続ネットワーク、５２…ローカルエリアネットワーク、６１…配信用ネットワーク、６２…ロードバランサ、９１…新規書込メモリ、９２…更新情報、９３…メモリ情報、９４、９５、９６…分割マルチメディア情報用バッファメモリ
【発明を実施するための最良の形態】
【００２７】
以下、本発明を実施例を用いて詳細に説明する。【００２８】
図５に本発明における分散型マルチメディアサーバシステム５０の構成の一例（最小構成）を示す。図中の端末１１、１２はユーザが操作する端末である。バッファサーバモジュール２１は、端末１１、１２からの要求を受けて、マルチメディア情報の送信または受信を行うモジュールである。ストレージサーバモジュール３１は、マルチメディア情報を分割して格納する蓄積装置４１を持っており、この蓄積装置からのマルチメディア情報の読み出し、もしくは書き込みを行う。バッファサーバモジュール２１とストレージサーバモジュール３１との間は、遠隔ダイレクトメモリアクセス機能が利用できるネットワークもしくはバスシステムで接続されている。図５ではクラスタ間接続ネットワーク５１で接続されている。バッファサーバモジュール２１とストレージサーバモジュール３１とは、遠隔ダイレクトメモリアクセス機能を用いて、お互いのバッファメモリ中のデータを参照することが可能である。本実施例では、ネットワーク５１として並列計算機用のクラスタ間接続ネットワークを利用することを目的としているため、メッセージ通信の機能は備えているものとする。しかし、それが不可能な場合などの場合は、後述する分割マルチメディア情報読み出し要求やその応答などのメッセージの交換用に、例えば図５に示すようなローカルエリアネットワーク５２を利用することも可能である。この場合は、バッファサーバモジュール２１とストレージサーバモジュール３１は、遠隔ダイレクトメモリアクセス機能を用いることができるネットワーク５１と遠隔ダイレクトメモリアクセス機能を用いることができないローカルエリアネットワーク５２の両方で接続される。端末１１、１２と分散型マルチメディアサーバシステム５０の間はワイドエリアネットワークなどの配信用ネットワーク６１で結ばれている。【００２９】
まず、再生時つまり分散マルチメディアサーバシステムから端末へ送信する場合の処理について説明する。【００３０】
図６に読み出し処理の第１の実施例の処理シーケンスを示す。図中おけるバッファサーバモジュール２１とストレージサーバモジュール３１間の細線の矢印はＴＣＰ／ＩＰを含むメッセージ通信、太線の矢印は遠隔ダイレクトメモリアクセス機能を使ったデータの転送を示している。ユーザが端末１１から視聴したいマルチメディア情報を要求するため、バッファサーバモジュール２１に対してマルチメディア情報読み出し要求を送信する（段階６１）。その要求を受信したバッファサーバモジュール２１は、その要求に基づいて、要求されたマルチメディア情報が分割されて格納されている蓄積装置４１が接続されているストレージサーバモジュール３１に対して、分割マルチメディア情報読み出し要求を送信する（段階６２）。次に、その要求を受けたストレージサーバモジュール３１は、蓄積装置４１から該当する分割マルチメディア情報をストレージサーバモジュール３１内のバッファメモリ中に読み出し（段階６３）、そのバッファメモリのアドレスやメモリ中のデータのサイズなどこのバッファメモリに関する情報（メモリ情報）を応答として返す（段階６４）。この情報を元に、バッファサーバモジュール２１は、分割マルチメディア情報を、遠隔ダイレクトメモリアクセス機能を使用することによってストレージサーバモジュール３１内から読み出し（段階６５）、マルチメディア情報読み出し要求により指定された端末へネットワークを使用して送信する（段階６６）。送信先は、最初のマルチメディア情報読み出し要求を発した端末１１でももちろん構わない。さらに段階６２〜６６を繰り返し行うことによって、要求されたマルチメディア情報の全ての送信を実行する。また、ストレージサーバモジュール３１内に複数のバッファメモリを用意しておくことによって、図７のように、次に送信する分割マルチメディア情報を先読みし（段階７３−２）、バッファメモリに格納しておくことによって、バッファサーバモジュール２１とストレージサーバモジュール３１との間で、効率よく処理することが可能である。【００３１】
ここで、図２０を用いて、クラスタ間接続ネットワークを利用したクラスタ型計算機による一般的な並列計算方法について説明する。【００３２】
同図に示すように、クラスタ型計算機による並列計算は以下のような手順で行われる。まず最初に、マスター計算機は、メッセージ送受信機能を利用して並列計算に必要なパラメータを各スレーブ計算機へ送信する（同図の（１）参照）。パラメータを受信した各スレーブ計算機はそれぞれ並列計算を実行する（同図の（２）参照）。並列計算終了後、各スレーブ計算機は、メッセージ送受信機能を利用して計算結果をマスター計算機に送信する、もしくは、メモリ共有機能を利用して計算結果をマスター計算機内のメモリに書き込む（同図の（３）参照）。各スレーブ計算機から計算結果を受信、あるいは、書き込まれたマスター計算機は、最終結果の計算を実行し（同図の（４）参照）、最終結果を提示する（同図の（５）参照）。【００３３】
このように、クラスタ間接続ネットワークを利用したクラスタ型計算機による一般的な並列計算方法は、予め決められたメモリ領域を使用して最低限の情報をマスター計算機とスレーブ計算機との間で交換するものであるので、計算開始時に使用するメモリ領域を決定しておけば、その後は決められた領域に書き込むだけである。【００３４】
一方、従来の分散型マルチメディアサーバシステム（例えば、図１参照）においては、大量のデータを短時間で高速に送受信するために各サーバモジュールで大量のメモリを使用し、また、送受信するストリームのレート（単位時間あたりのデータ量）によって使用するメモリ量が異なる。そのため、使用しないメモリは積極的に開放して効率よく使用し、リクエスト毎に、そのリクエストに応じたメモリ領域を動的に確保する必要がある。【００３５】
これに対して、本発明に係る第一の実施例では、図２１に例示するように、ストレージサーバモジュール３１において、例えば、前回リクエストに応じて確保したバッファメモリ領域（サイズ：Ｓ）と今回リクエストに応じて確保したバッファメモリ領域（サイズ：Ｔ）とが異なる。すなわち、リクエスト毎にリクエストに応じたバッファメモリ領域を動的に確保するようにしている。【００３６】
また，従来の分散型マルチメディアサーバシステム（例えば，図１参照）において、各蓄積サーバモジュール４１に接続されているストレージに対して分割マルチメディア情報を読み書きする場合、その読み書きにかかる処理時間は一定ではなくその情報が格納されているストレージ中の物理的な位置に依存し大きく変化する。蓄積サーバモジュール４と通信サーバモジュール２との間も読み書きの完了したタイミングで通信が行われる。そのため、蓄積サーバモジュール４とストレージと間の分割マルチメディア情報の転送速度、蓄積サーバモジュール４と通信サーバモジュール２との間の転送速度、通信サーバモジュールと端末との間の転送速度は、長期間で観測すると同じになるものの、短時間で観測した場合はそれぞれ異なる。その速度差を吸収するために、各サーバモジュールに複数のメモリ領域を用意して、データの格納場所を動的に通知する必要がある。【００３７】
これに対して、本発明に係る第一の実施例では、図２２に例示するように、ストレージサーバモジュール３１は、バッファサーバモジュール２１からリクエストを受けたマルチメディアデータを、複数設けたバッファメモリ領域に蓄積装置４１から先読みして格納し、最初の分割マルチメディアデータの次に読み出される分割マルチメディアデータが格納されているメモリ情報（例えば、アドレス：Ｄ−２、サイズ：Ｗ）を動的にバッファサーバモジュール２１へ通知する。すなわち、各サーバモジュールにおいて生じうる速度差を吸収して、データの格納場所を動的に通知するようにしている。【００３８】
このようなことから、本発明では、固定的にメモリ領域を使用する一般的なクラスタ型並列計算機とは異なり、動的にメモリ領域を使用することにより、クラスタ型接続ネットワークを利用した分散型マルチメディアサーバシステムにおいて、ストリーム転送機能を実現する。【００３９】
図８に送信時の処理の第２の実施例のシーケンスを示す。図９に、第２の実施例におけるストレージサーバモジュール３１のバッファメモリ構成を示す。図９において、９１は新規書込メモリであり、新規書込メモリ９１には更新情報９２、メモリ情報９３が記憶される。９４は分割マルチメディア情報用バッファメモリであり、必要に応じて分割マルチメディア情報用バッファメモリ９５、９６、…が増設される。更新情報９２は新たに書き込まれたかどうかを示す情報であり、メモリ情報９３は分割マルチメディア情報用バッファメモリに関する情報（アドレス、サイズ等）である。【００４０】
ユーザが端末１１から視聴したいマルチメディア情報を要求するためバッファサーバモジュール２１に対してマルチメディア情報読み出し要求を送信する（段階８１）。その要求を受信したバッファサーバモジュール２１は、要求されたマルチメディア情報が分割されて格納されている蓄積装置４１が接続されているストレージサーバモジュール３１に対して、分割マルチメディア情報読み出し要求を送信する（段階８２）。次に、その要求を受けたストレージサーバモジュール３１は、蓄積装置４１から該当する分割マルチメディア情報をストレージサーバモジュール３１内の分割マルチメディア情報用バッファメモリ９４中に読み出し（段階８３）、そのバッファメモリ９４のアドレスやメモリ中のデータのサイズなどこのバッファメモリに関する情報（メモリ情報９３）を新規書込メモリ９１に格納し、応答として返す（段階８４）。この応答には、新規書込メモリ９１のアドレスなどのこのメモリに関する情報（新規書込メモリ情報）が含まれている。この応答を受け取ったバッファサーバモジュール２１は、この応答を元に、メモリ情報９３を遠隔ダイレクトメモリアクセス機能を使用することによってストレージサーバモジュール３１内から読み出し（段階８５）、そのメモリ情報９３を元に、分割マルチメディア情報を、遠隔ダイレクトメモリアクセス機能を使用することによってストレージサーバモジュール３１内の分割マルチメディア情報用バッファメモリから読み出し（段階８６）、マルチメディア情報読み出し要求により指定された端末へ配信用ネットワーク６１を使用して送信する（段階８７）。連続して分割マルチメディア情報を送信する場合、第１の実施例と同様に、段階８２〜８７を繰り返すことによって実現する。さらに、段階８４の応答に含まれる新規書込メモリ情報をバッファサーバモジュール３１内に保存しておくことにより、２回目以降の分割マルチメディア情報読み出し要求の送信（段階８２）およびその応答の返送（段階８４）を省略することが出来、その代わりに、分割マルチメディア情報が格納されていたバッファメモリを解放するためのバッファ解放要求をバッファサーバモジュール３１に対して送信する。その分も加味しても、通信処理の回数を削減することが出来る。さらに、段階８４において、新規書込メモリ９１中に含まれるメモリ情報９３が指し示すバッファメモリ（マルチメディア情報メモリ）９４に分割マルチメディア情報が新たに書き込まれたかどうかを示す情報（更新情報９２）を図９に示すように新規書込メモリ９１中に一緒に格納することにより、バッファサーバモジュール２１は、段階８５において、ストレージサーバモジュール３１が新たに分割マルチメディア情報を新たに書き込んだかどうかを知ることが出来る。この更新情報９２は１ずつインクリメントするカウンタや、０／１を交互に繰り返すカウンタによって実現することは可能である。もし、バッファサーバモジュール２１が段階８５において、この更新情報９２によって、分割マルチメディア情報用バッファメモリ中のデータが更新されていないと判定すれば、バッファサーバモジュール２１は、しかるべきリトライ時間を設けて更新情報９２が更新されるまで段階８５を繰り返すことによって、以降の処理を継続する。【００４１】
また、第１の実施例と同様に、複数のバッファメモリをストレージサーバモジュール３１内に用意する（図９に示すように分割マルチメディア情報用バッファメモリ９５、９６、…を増設する）ことによって、図１０のように、蓄積装置からの読み出し（段階１０３−２）と端末への送信（段階１０７）とを並列に動作させることが出来、ストレージサーバモジュール３１、バッファサーバモジュール２１との間でパイプライン的に処理することが出来るため、高い性能を得ることが出来る。【００４２】
また、第１の実施例（図６および図７）、第２の実施例（図８および図１０）において、図６の段階６４および図７の段階７４のメモリ情報、図８の段階８４および図１０の段階１０４の新規書込メモリ情報を、分割マルチメディア情報読み出し要求が届く前に予め（例えばシステムの起動時に）バッファサーバモジュール２１に対して、ストレージサーバモジュール３１を含む他のモジュールから通知する、もしくは、予めバッファサーバモジュール２１内に記録しておくことにより、第１の実施例では、図６段階６４のメモリ情報を送信しないようにして、バッファサーバモジュール２１とストレージサーバモジュール３１との間の送信データ量を減らすことが出来る。【００４３】
さらに、第２の実施例では、図８段階８４の新規書込メモリ情報を送信しない方法だけでなく、図１１に示すように、まず、最初の１回、分割マルチメディア情報読み出し要求を送信する（段階１１２）。引き続き、予め（例えば図１１の段階１１０に示すようにシステム起動時に）得た新規書込メモリ情報を元に、遠隔ダイレクトメモリアクセス機能を使用することによってメモリ情報９３をストレージサーバモジュール３１内から読み出し（段階１１３）、そのメモリ情報９３を元に、分割マルチメディア情報を、遠隔ダイレクトメモリアクセス機能を使用することによってストレージサーバモジュール３１内から読み出す（段階１１４）。そして、マルチメディア情報読み出し要求により指定された端末へネットワークを使用して送信し（段階１１５）、ストレージサーバモジュールに対してバッファ解放要求を送信する段階（段階１１６）以降は、これら段階１１３〜１１６を繰り返すことによって、さらに送信の回数を減らすことが出来る。【００４４】
さらに、第３の実施例の処理シーケンスを図１２に示す。まず、ユーザが端末１１から視聴したいマルチメディア情報を要求するためにバッファサーバモジュール２１に対してマルチメディア情報読み出し要求を送信する（段階１２１）と、その要求を受信したバッファサーバモジュール２１は、要求されたマルチメディア情報が分割され、格納されている蓄積装置４１が接続されているストレージサーバモジュール３１に対して、分割マルチメディア情報読み出し要求を送信する（段階１２２）。この要求には、バッファサーバモジュール２１内のバッファメモリに関する情報（メモリ情報）を一緒に格納しておく。次に、その要求を受けたストレージサーバモジュール３１は、蓄積装置４１から該当する分割マルチメディア情報を分割マルチメディア情報読み出し要求で指定されたバッファメモリ中に遠隔ダイレクトメモリアクセス機能により読み出し（段階１２３）、書き込んだことを示すため応答を返す（段階１２４）。バッファサーバモジュールは、自分のバッファメモリ内の分割マルチメディア情報を端末１１からのマルチメディア情報読み出し要求により指定された端末へネットワークを使用して送信する（段階１２５）。そして、次の分割マルチメディア情報を送信するため、前記の段階１２２〜１２５を繰り返す。【００４５】
この第３の実施例と、第１の実施例、第２の実施例との差異は、遠隔ダイレクトメモリアクセスを実行するモジュールが異なるところにある。これは、遠隔ダイレクトメモリアクセスによる負荷や性能が遠隔ダイレクトメモリアクセスで書き込む方が良い場合と悪い場合が、遠隔ダイレクトメモリアクセス機能を備える製品によって異なるため、それに合わせた方式の選択を可能にするためである。【００４６】
第３の実施例の通信回数を減らす実施例が次の第４の実施例である。この実施例の処理シーケンスを図１３に示す。まず、ユーザが端末１１から視聴したいマルチメディア情報を要求するためバッファサーバモジュール２１に対してマルチメディア情報読み出し要求を送信する（段階１３１）と、その要求を受信したバッファサーバモジュール２１は、要求されたマルチメディア情報が分割され、格納されている蓄積装置４１が接続されているストレージサーバモジュール３１に対して、分割マルチメディア情報読み出し要求を送信する（段階１３２）。この要求には、バッファサーバモジュール２１内のバッファメモリに関する情報とバッファメモリが空いているかどうか示す情報（新規書込メモリ情報）が格納されているバッファメモリに関する情報を一緒に格納しておく。次に、その要求を受けたストレージサーバモジュール３１は、分割マルチメディア情報読み出し要求で指定されたバッファメモリ中の新規書込メモリ情報を、遠隔ダイレクトメモリアクセス機能を使って読み出し（段階１３３）、その情報で指定されたバッファメモリが空いていることを確認し、蓄積装置４１から該当する分割マルチメディア情報を読み出し、遠隔ダイレクトメモリアクセス機能によりバッファサーバモジュール２１のバッファメモリに転送し（段階１３４）、書き込んだことを示すため応答を返す（段階１３５）。もしくは、応答を返す代わりに、新規書込メモリ情報が格納されているバッファメモリに対して、遠隔ダイレクトメモリアクセス機能により書き込んだことを示す情報を書き込むことも可能である。応答を受け取ったバッファサーバモジュールは、自分のバッファメモリ内のデータを、端末１１からのバッファメモリ内の分割マルチメディア情報をマルチメディア情報読み出し要求により指定された端末へネットワークを使用して送信する（段階１３６）。そして、次の分割マルチメディア情報を送信するため、前記の段階１３３〜１３６を繰り返す。通信回数を減らすために、ストレージサーバモジュール３１が分割マルチメディア情報読み出し要求中の新規書込メモリ情報を自モジュール内に保存しておくことによって、２回目以降の分割マルチメディア情報読み出し要求の送信を省略することが出来る。【００４７】
また、多くの端末に配信するシステムでは、図１４のように複数のストレージサーバモジュール３１、３２、３３、…に、マルチメディア情報を分割して蓄積し（図１４の例では映像データの蓄積をフレーム単位で行っている例である）、これらの複数のストレージサーバモジュール３１、３２、３３、…に対してアクセスする方式をとる。図１４においては、フレーム＃１が蓄積装置４１に蓄積され、フレーム＃２が蓄積装置４２に蓄積され、フレーム＃３が蓄積装置４３に蓄積されている。図１５に、複数のストレージサーバを使った構成に対応させるために、上記第１の実施例を拡張した処理シーケンスを示す。まず、ユーザが端末１１から視聴したいマルチメディア情報を要求するためにバッファサーバモジュール２１に対してマルチメディア情報読み出し要求を送信する（段階１５１）と、その要求を受信したバッファサーバモジュール２１は、要求されたマルチメディア情報の先頭（フレーム＃１）が格納されている蓄積装置４１が接続されているストレージサーバモジュール３１に対して、分割マルチメディア情報読み出し要求を送信する（段階１５２）。その要求を受けたストレージサーバモジュール３１は、蓄積装置４１から該当する分割マルチメディア情報をストレージサーバモジュール３１内のバッファメモリ中に読み出し（段階１５３）、そのバッファメモリのアドレスやメモリ中のデータのサイズなどこのバッファメモリに関する情報（メモリ情報）を応答として返す（段階１５４）。この情報を元に、バッファサーバモジュール２１は、分割マルチメディア情報を、遠隔ダイレクトメモリアクセス機能を使用することによってストレージサーバモジュール３１内から読み出し（段階１５５）、マルチメディア情報読み出し要求により指定された端末へネットワークを使用して送信する（段階１５６）。送信先は、最初の要求を発した端末でももちろん構わない。次の分割マルチメディア情報を読み出すための分割マルチメディア情報読み出し要求を次の分割マルチメディア情報（フレーム＃２）が格納されている蓄積装置４２が接続されているストレージサーバモジュール３２に対して送信する（段階１５２−２）。以降、段階１５３〜１５６と同じ処理を繰り返し、次のストレージサーバモジュール３３に対して、分割マルチメディア情報読み出し要求を送信する。以上の処理を要求されたマルチメディア情報が格納されている蓄積装置を持つ全てのストレージサーバモジュールに対して、順番に行い、再び、最初に分割マルチメディア情報読み出し要求を送信したストレージサーバモジュールに対して、分割マルチメディア情報読み出し要求を送信し、段階１５２以降を再び繰り返すことによって、送信を行う。このようにして、図１４の実線に示すように、端末１１にマルチメディア情報を配信する。同様に、端末１３からバッファサーバモジュール２３に読み出し要求があった場合は、図１４の点線に示すようにマルチメディア情報を配信する。この方法は、上記第２、第３、第４の実施例にも同様に適用が可能である。この方法によって、ストレージサーバモジュールに対する負荷はストレージサーバモジュールの数をＮとすると１／Ｎになるため、多数の端末から要求を受け付けた場合でも問題なく処理が可能である。バッファサーバモジュールに関しては図１４のように、バッファサーバモジュールも複数用意し、バッファサーバモジュール２１、２２、２３、…と端末との間にロードバランサ６２等の負荷分散装置を置くことによって負荷を分散させることが出来るため、分散サーバシステム全体で高いスループットを得ることが出来る。【００４８】
次に、端末からマルチメディア情報を分散型マルチメディアサーバシステムに登録する、つまり、端末から分散型マルチメディアサーバシステムへ送信する場合の第１の実施例を説明する。図１６にその処理シーケンスを示す。ユーザが端末１１を使って、マルチメディア情報書き込み要求をバッファサーバモジュール２１に対して送信する（段階１６１）。それを受け取ったバッファサーバモジュール２１は、分割マルチメディア情報書き込み要求をストレージサーバモジュール３１に対して送信する（段階１６２）。この要求を受け取ったストレージサーバモジュール３１は、バッファサーバモジュール２１から分割マルチメディア情報を受け取るための自モジュール内のバッファメモリに関する情報（メモリ情報）を応答として返す（段階１６３）。その応答を受信したバッファサーバモジュール２１は、マルチメディア情報を受信し、分割するとともに（段階１６４）、遠隔ダイレクトメモリアクセス機能を使って、分割マルチメディア情報書き込み要求に対する応答中に含まれているメモリ情報を元に、ストレージサーバモジュール３１内のバッファに転送する（段階１６５）。ストレージサーバモジュール３１は次の分割マルチメディア情報書き込み要求を契機に転送された分割マルチメディア情報を蓄積装置４１に蓄積する（段階１６６）。上記の段階１６２〜１６６を繰り返し実行することにより全てのマルチメディア情報を蓄積することが出来る。分割マルチメディア情報を蓄積するためのバッファメモリを複数ストレージサーバモジュール３１内に用意することによって図１７のように段階１７４−２〜１７５−２と段階１７６を並列で動作させ、パイプライン的に処理させることによって高速に動作させることが可能である。【００４９】
さらに、端末からマルチメディア情報を登録するための第２の実施例を説明する。図１８にその処理シーケンスを示す。ユーザが端末１１を使って、マルチメディア情報書き込み要求をバッファサーバモジュール２１に対して送信する（段階１８１）。それを受け取ったバッファサーバモジュール２１は、マルチメディア情報を端末１１から受信し分割する（段階１８２）と、この分割マルチメディア情報を一時的に保管しているバッファメモリに関する情報（メモリ情報）を含めて、ストレージサーバモジュール３１に対して分割マルチメディア情報書き込み要求を送信する（段階１８３）。それを受信したストレージサーバモジュールは、そのメモリ情報を元に遠隔ダイレクトメモリアクセス機能を用いて分割マルチメディア情報を読み出し（段階１８４）、蓄積装置４１に蓄積し（段階１８５）、蓄積を完了したことをバッファサーバモジュール２１に対して通知する（段階１８６）。このように段階１８２〜１８６の処理を繰り返し行うことにより、全てのマルチメディア情報を蓄積装置に格納することが出来る。さらに、バッファサーバモジュール内にバッファメモリを複数持たせることによって、段階１８２と段階１８４〜１８５を並列に動作させ、パイプライン的に処理させることによって高速に処理することが可能である。【００５０】
再生の時と同様に、多くの端末から登録する場合、図１４のように複数のストレージサーバモジュールに、マルチメディア情報を分割して蓄積し、これらの複数のストレージサーバモジュールに対してアクセスする方式をとる。図１９に、２台のストレージサーバを使った構成に対応させるために、上記第１の実施例を拡張した処理シーケンスを示す。まず、ユーザが端末１１を使って。マルチメディア情報書き込み要求をバッファサーバモジュール２１に対して送信する（段階１９１）。それを受け取ったバッファサーバモジュール２１は、分割マルチメディア情報書き込み要求をストレージサーバモジュール３１に対して送信する（段階１９２）。この要求を受け取ったストレージサーバモジュール３１は、バッファサーバモジュール２１から分割マルチメディア情報を受け取るための自モジュール内のバッファメモリに関する情報（メモリ情報）を応答として返す（段階１９３）。その応答を受信したバッファサーバモジュール２１は、マルチメディア情報を受信し、分割するとともに（段階１９４）、遠隔ダイレクトメモリアクセス機能を使って、分割マルチメディア情報書き込み要求に対する応答中に含まれているメモリ情報を元に、ストレージサーバモジュール３１内のバッファに送信する（段階１９５）。ストレージサーバモジュール３１は、次の分割マルチメディア情報書き込み要求の受信（段階１９２−３）を契機に、転送された分割マルチメディア情報を蓄積装置４１に蓄積する（段階１９６）。次に、バッファサーバモジュール２１は、分割マルチメディア情報書き込み要求をストレージサーバモジュール３２に対して送信（段階１９２−２）し、段階１９３−２〜１９６−２を繰り返し実行する。さらに、ストレージサーバモジュールを増やした場合は、上記の処理に続いてストレージサーバモジュール３３、３４、３５、…と順番に分割マルチメディア情報を蓄積し、最後のストレージサーバモジュールまで行くと、再び、最初のストレージサーバモジュール３１から蓄積を行う。このようにすることによって、多数の端末から要求を受け取っても処理が可能となる。【００５１】
以上、再生処理の複数の実施例と登録処理の複数の実施例について説明したが、対応する実施例を組み合わせて（例えば、再生処理の第１の実施例と登録処理の第１の実施例を組み合わせて）分散型マルチメディアサーバシステムを構成してもよいし、対応しない実施例を組み合わせて（例えば、再生処理の第１の実施例と登録処理の第２の実施例を組み合わせて）分散型マルチメディアサーバシステムを構成してもよい。【００５２】
以上説明した各実施例の各サーバモジュールは、それぞれの機能、動作、段階を実現するための手段を有しており、それらの手段はコンピュータとプログラムによって構成することができ、そのプログラムは記憶媒体に記憶することができる。また、プログラムを用いる代わりに、その一部または全部をハードウェアで構成することもできる。【００５３】
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図１】
0004300238.tif 000002
【図２】
0004300238.tif 000003
【図３】
0004300238.tif 000004
【図４】
0004300238.tif 000005
【図５】
0004300238.tif 000006
【図６】
0004300238.tif 000007
【図７】
0004300238.tif 000008
【図８】
0004300238.tif 000009
【図９】
0004300238.tif 000010
【図１０】
0004300238.tif 000011
【図１１】
0004300238.tif 000012
【図１２】
0004300238.tif 000013
【図１３】
0004300238.tif 000014
【図１４】
0004300238.tif 000015
【図１５】
0004300238.tif 000016
【図１６】
0004300238.tif 000017
【図１７】
0004300238.tif 000018
【図１８】
0004300238.tif 000019
【図１９】
0004300238.tif 000020
【図２０】
0004300238.tif 000021
【図２１】
0004300238.tif 000022
【図２２】
0004300238.tif 000023