この発明は、1番組のマルチメディアデータをいくつかに分割することにより生成された各セグメントを、それぞれが備える蓄積装置に分散させて格納する複数の蓄積サーバモジュールと、当該蓄積サーバモジュールから受信したセグメントを他の外部装置に送信し、他の外部装置から受信したセグメントを当該蓄積サーバモジュールに送信する通信サーバモジュールとをネットワークで通信可能な状態に接続して構成される分散型マルチメディアサーバ装置において、マルチメディアデータの送受信および蓄積を制御するマルチメディア情報転送蓄積方法、当該方法を実現する機能を有する分散型マルチメディアサーバ装置、当該サーバ装置を含んで構成された分散型マルチメディアシステム、当該マルチメディア情報転送蓄積方法を実現するプログラムおよび当該プログラムを記録した記録媒体に関する。
従来より、音声や映像などのマルチメディア情報を蓄積および配信することを目的として、複数のハードウェアモジュールをクラスタ状に接続したシステムにおいて、各番組のマルチメディアデータを各番組内でそれぞれ分割して分散蓄積する分散RAID型マルチメディアサーバ装置というものが存在する。
以下に、従来の分散RAID型マルチメディアサーバ装置(以下、適宜「分散RAID型マルチメディアサーバ装置」と記載する)について簡単に説明する。図45に例示するように、従来の分散RAID型マルチメディアサーバ装置は、サーバモジュール間ネットワークを介して、複数の通信サーバモジュールと、それぞれが蓄積装置を備えた複数の蓄積サーバモジュールとを接続して構成される。また、同図に示すように、この分散RAID型マルチメディアサーバ装置は、端末側ネットワークを介して、端末およびマルチメディア情報入力装置と接続される。
ここで、端末は、分散RAID型マルチメディアサーバ装置にマルチメディア情報の配信要求を発行し、分散RAID型マルチメディアサーバ装置から配信されてきたマルチメディア情報を再生する。また、マルチメディア情報入力装置は、分散RAID型マルチメディアサーバ装置にマルチメディア情報の蓄積要求を発行し、分散RAID型マルチメディアサーバ装置から蓄積許可が下りると、蓄積したいマルチメディア情報を分散RAID型マルチメディアサーバ装置に送信する機能を持つ。
このような構成を有する分散RAID型マルチメディアサーバ装置は、以下に説明するようにして1番組のマルチメディア情報を蓄積する。すなわち、マルチメディア情報入力装置は、分散RAID型マルチメディアサーバ装置に発行したマルチメディア情報の蓄積要求に対する蓄積許可を受信すると、分散RAID型マルチメディアサーバ装置内の通信サーバモジュールj(なお、1≦j≦M)に、蓄積したいマルチメディア情報の送信を開始する。
マルチメディア情報入力装置からマルチメディア情報を受信した通信サーバモジュールjは、図46に示すように、受信したマルチメディア情報を順次固定長のセグメントに分割していく。そして、マルチメディア情報の先頭データからなる最初の「セグメント0」を蓄積サーバモジュール1の蓄積装置1へ蓄積し、「セグメント0」のデータの後続データからなる「セグメント1」を蓄積サーバモジュール2の蓄積装置2へ蓄積するというように、蓄積装置1〜Nを巡回しながら各セグメントを分散させて蓄積していく。通信サーバモジュールjは、番組内のマルチメディア情報の全データの受信を完了するまで上述してきた処理を継続する。
一方、分散RAID型マルチメディアサーバ装置は、以下に説明するようにして端末にマルチメディア情報を配信する。端末側ネットワークを介して、マルチメディア情報の読出し要求をいずれかの端末から受信すると、分散RAID型マルチメディアサーバ装置は、通信サーバモジュールのいずれかを使って、端末からの読出し要求に応じたマルチメディア情報を配信する。
例えば、マルチメディア情報の送信元となる通信サーバモジュールjは、図47に示すように、読出し要求に応じたマルチメディア情報の先頭データからなるセグメントを格納した蓄積サーバモジュール1に対して、セグメントの読出し要求を送信する。この読出し要求を受信した蓄積サーバモジュール1は、要求されたマルチメディア情報の先頭データからなる「セグメント0」を蓄積装置1から読出し、サーバモジュール間ネットワークを介して通信サーバモジュールjへ送信する。「セグメント0」を受信した通信サーバモジュールjは、その「セグメント0」を端末側ネットワークへ転送できる形のマルチメディア情報に変換し、マルチメディア情報の読出し要求の送信元である端末に送信する。続いて、通信サーバモジュールjは、「セグメント0」と同様に、蓄積サーバモジュール2に対して「セグメント1」の読出し要求を送信し、蓄積サーバモジュール2から受信した「セグメント1」をマルチメディア情報に変換して端末に送信する。通信サーバモジュールjは、読出し要求に応じたマルチメディア情報の全データを端末に送信完了するまで、上述してきた処理を繰り返す。
上述してきたように、従来の分散型サーバは、自らが備える通信サーバモジュールの中からマルチメディア情報の送受信を担当する通信サーバモジュールを一つ選択して、ある1番組に関するマルチメディア情報の全データの蓄積、または、ある1番組に関するマルチメディア情報の全データの配信を担当させている(例えば、図48参照)。そして、従来の分散型サーバは、接続される端末やマルチメディア情報入力装置が増加した場合であっても、通信サーバモジュールおよび蓄積サーバモジュールを増設したり、あるいは、通信サーバモジュールおよび蓄積サーバモジュールのいずれか一方を増設したりすることで、増加する処理負荷に対して柔軟に対応することができる。
ところで、上記した従来の分散RAID型マルチメディアサーバ装置は、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を外部装置(例えば、端末やマルチメディア情報入力装置)との間で送受信することができないという問題点があった。
すなわち、従来の分散RAID型マルチメディアサーバ装置は、ある1番組に関するマルチメディア情報については、その全データを1台の通信サーバモジュールに経由させて、端末側ネットワークとの間で送受信している。したがって、ある1番組に関するマルチメディア情報の全データを端末側ネットワークに対して送信できる最大の速度、または、ある1番組に関するマルチメディア情報の全データを蓄積する場合に端末側ネットワークから受信できる最大の速度は、その番組に関するマルチメディア情報の全データの送受信を担当する通信サーバモジュールが、端末側ネットワークを介してデータの送受信を行う際の最大通信速度を越えることができない。換言すれば、従来の分散RAID型マルチメディアサーバ装置は、通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を外部装置との間で送受信することができないという問題点があった。
しかしながら、従来の分散RAID型マルチメディアサーバ装置が外部装置との間でマルチメディア情報を送受信する際に要求される通信速度については、その番組の実時間の再生速度が上限というわけではなく、用途や状況によって要求速度に上限がないといっても過言ではない。例えば、地理的に離れた場所にある2つの放送局にそれぞれ設置された2つのサーバ装置間で、番組制作側の局から放送側の局へ番組素材映像やCM(Commercial Message)の素材映像を転送するような場合、転送がいち早く完了されることが望ましいのは明らかである。
このような例を鑑みても、ある1番組のマルチメディア情報を送受信する際の速度についての要求には限りがないが、従来の分散RAID型マルチメディアサーバ装置では、このような要求に応えるのは困難である。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を送受信することが可能なマルチメディア情報転送蓄積方法、分散型マルチメディアサーバ装置、分散型マルチメディアサーバシステム、マルチメディア情報転送蓄積方法を実現するプログラムおよび当該プログラムを記録した記録媒体を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、1番組のマルチメディアデータをいくつかに分割することにより生成された各セグメントを、それぞれが備える蓄積装置に分散させて格納する複数の蓄積サーバモジュールと、当該蓄積サーバモジュールから受信したセグメントを他の外部装置に送信し、他の外部装置から受信したセグメントを当該蓄積サーバモジュールに送信する通信サーバモジュールとをネットワークで通信可能な状態に接続して構成される分散型マルチメディアサーバ装置において、マルチメディアデータの送信および蓄積を制御するマルチメディア情報転送蓄積方法であって、通信速度要求値とともにマルチメディアデータ転送要求を受け付けて、前記分散型マルチメディアサーバ間で1番組のマルチメディアデータがいくつかに分割された各セグメントの転送を行う場合に、送信側として機能する分散型マルチメディアサーバが、各蓄積サーバモジュールにより各蓄積装置に分散格納された各セグメントを送信するために使用する通信サーバモジュールの台数を、データ転送要求とともに受け付けた通信速度要求値に応じて仮設定し、当該仮設定された台数の通信サーバモジュールが使用可能な状態で存在する場合には、当該仮設定された台数の通信サーバモジュールを使用して、受信側として機能する分散型マルチメディアサーバに各セグメントを並行して送信し、当該仮設定された台数の通信サーバモジュールが使用可能な状態で存在しない場合には、使用可能な範囲内で最大の台数の通信サーバモジュールを使用して、受信側として機能する分散型マルチメディアサーバに各セグメントを並行して送信する送信工程と、受信側として機能する分散型マルチメディアサーバが、送信側として機能する分散型マルチメディアサーバにおいて前記各セグメントを送信するために用いられた通信サーバモジュールと同じ台数の通信サーバモジュールを使用して当該各セグメントを受信する受信工程と、受信側として機能する分散型マルチメディアサーバが、前記受信工程により各セグメントを受信する際に使用した通信サーバモジュールの台数以上の台数の蓄積サーバモジュールにより、受信した各セグメントを各蓄積装置に分散格納する格納工程と、を含んだことを特徴とする。
また、請求項2に係る発明は、上記の発明において、前記送信側として機能する分散型マルチメディアサーバにおいて、前記各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみから、送信対象となるセグメントの読み出しを行う工程をさらに含んだことを特徴とする。
また、請求項3に係る発明は、上記の発明において、前記受信側として機能する分散型マルチメディアサーバにおいて、前記各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみに、受信したセグメントの書き込みを行う工程をさらに含んだことを特徴とする。
また、請求項4に係る発明は、上記の発明において、前記送信側として機能する分散型マルチメディアサーバにおいて、前記各セグメントを送信する通信サーバモジュールが、前記受信側として機能する分散型マルチメディアサーバの通信サーバモジュールを当該セグメントごとに変更する工程をさらに含んだことを特徴とする。
また、請求項5に係る発明は、1番組のマルチメディアデータをいくつかに分割することにより生成された各セグメントを、それぞれが備える蓄積装置に分散させて格納する複数の蓄積サーバモジュールと、当該蓄積サーバモジュールから受信したセグメントを他の外部装置に送信し、他の外部装置から受信したセグメントを当該蓄積サーバモジュールに送信する通信サーバモジュールとをネットワークで通信可能な状態に接続して構成される分散型マルチメディアサーバ装置であって、通信速度要求値とともにマルチメディアデータ転送要求を受け付けて、他の分散型マルチメディアサーバに対して、1番組のマルチメディアデータがいくつかに分割された各セグメントを転送する場合に、各蓄積サーバモジュールにより各蓄積装置に分散格納された各セグメントを送信するために使用する通信サーバモジュールの台数を、データ転送要求とともに受け付けた通信速度要求値に応じて仮設定し、当該仮設定された台数の通信サーバモジュールが使用可能な状態で存在する場合には、当該仮設定された台数の通信サーバモジュールを使用して、受信側として機能する分散型マルチメディアサーバに各セグメントを並行して送信し、当該仮設定された台数の通信サーバモジュールが使用可能な状態で存在しない場合には、使用可能な範囲内で最大の台数の通信サーバモジュールを使用して、受信側として機能する分散型マルチメディアサーバに各セグメントを並行して送信する送信手段を備えたことを特徴とする。
また、請求項6に係る発明は、1番組のマルチメディアデータをいくつかに分割することにより生成された各セグメントを、それぞれが備える蓄積装置に分散させて格納する複数の蓄積サーバモジュールと、当該蓄積サーバモジュールから受信したセグメントを他の外部装置に送信し、他の外部装置から受信したセグメントを当該蓄積サーバモジュールに送信する通信サーバモジュールとをネットワークで通信可能な状態に接続して構成される分散型マルチメディアサーバ装置であって、他の分散型マルチメディアサーバから1番組のマルチメディアデータがいくつかに分割された各セグメントを受信する場合に、当該他の分散型マルチメディアサーバにおいて各セグメントを送信するために用いられた通信サーバモジュールと同じ台数の通信サーバモジュールを使用して各セグメントを受信する受信手段と、前記受信手段により各セグメントを受信する際に使用した通信サーバモジュールの台数以上の台数の蓄積サーバモジュールにより、受信した各セグメントを各蓄積装置に分散格納する格納手段と、を備えたことを特徴とする。
また、請求項7に係る発明は、上記の発明において、前記各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみから、送信対象となるセグメントの読み出しを行う手段をさらに備えたことを特徴とする。
また、請求項8に係る発明は、上記の発明において、前記各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみに、受信したセグメントの書き込みを行う手段をさらに備えたことを特徴とする。
また、請求項9に係る発明は、上記の発明において、前記各セグメントを送信する通信サーバモジュールが、受信側として機能する他の分散型マルチメディアサーバ装置の通信サーバモジュールを当該セグメントごとに変更する手段をさらに備えたことを特徴とする。
また、請求項10に係る発明は、1番組のマルチメディアデータをいくつかに分割することにより生成された各セグメントを、それぞれが備える蓄積装置に分散させて格納する複数の蓄積サーバモジュールと、当該蓄積サーバモジュールから受信したセグメントを他の外部装置に送信し、他の外部装置から受信したセグメントを当該蓄積サーバモジュールに送信する通信サーバモジュールとをネットワークで通信可能な状態に接続して構成される分散型マルチメディアサーバ装置間において、当該1番組のマルチメディアデータがいくつかに分割された各セグメントの転送を行う分散型マルチメディアサーバシステムであって、送信側として機能する前記分散型マルチメディアサーバ装置は、通信速度要求値とともにマルチメディアデータ転送要求を受け付けた場合に、各蓄積サーバモジュールにより各蓄積装置に分散格納された各セグメントを送信するために使用する通信サーバモジュールの台数を、データ転送要求とともに受け付けた通信速度要求値に応じて仮設定し、当該仮設定された台数の通信サーバモジュールが使用可能な状態で存在する場合には、当該仮設定された台数の通信サーバモジュールを使用して、受信側として機能する分散型マルチメディアサーバに各セグメントを並行して送信し、当該仮設定された台数の通信サーバモジュールが使用可能な状態で存在しない場合には、使用可能な範囲内で最大の台数の通信サーバモジュールを使用して、受信側として機能する分散型マルチメディアサーバに各セグメントを並行して送信する送信手段と、前記各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみから、送信対象となるセグメントの読み出しを行う手段と、前記各セグメントを送信する通信サーバモジュールが、受信側として機能する他の分散型マルチメディアサーバ装置の通信サーバモジュールを当該セグメントごとに変更する手段と、を備え、受信側として機能する前記分散型マルチメディアサーバ装置は、前記送信側の分散型マルチメディアサーバから1番組のマルチメディアデータがいくつかに分割された各セグメントを受信する場合に、当該送信側の分散型マルチメディアサーバにおいて各セグメントを送信するために用いられた通信サーバモジュールと同じ台数の通信サーバモジュールを使用して各セグメントを受信する受信手段と、前記受信手段により各セグメントを受信する際に使用した通信サーバモジュールの台数以上の台数の蓄積サーバモジュールにより、受信した各セグメントを各蓄積装置に分散格納する格納手段と、前記各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみに、受信したセグメントの書き込みを行う手段と、を備えたことを特徴とする。
また、請求項11に係る発明は、請求項1、請求項2、請求項3および請求項4に記載のマルチメディア情報転送蓄積方法をコンピュータに実行させることにより実現することを特徴とするプログラムである。
また、請求項12に係る発明は、請求項1、請求項2、請求項3および請求項4に記載のマルチメディア情報転送蓄積方法をコンピュータに実行させることにより実現することを特徴とするプログラムを記録した記録媒体である。
[本発明の基本概念]
続いて、図を参照しつつ、本発明に係る、マルチメディア情報転送蓄積方法、分散型マルチメディアサーバ装置、分散型マルチメディアサーバシステム、マルチメディア情報転送蓄積方法を実現するプログラム、および当該プログラムを記録した記録媒体の基本概念について説明する。なお、以下では、いわゆる分散RAID型マルチメディアサーバ装置間でマルチメディア情報に関するデータ転送を行う場合に、分散RAID型マルチメディアサーバ装置の構成を限定した場合、および分散RAID型マルチメディアサーバ装置の構成を一般化した場合における本発明の基本概念をそれぞれ説明する。
[分散RAID型マルチメディアサーバ装置の構成を限定した場合]
最初に、図を参照しつつ、分散RAID型マルチメディアサーバ装置の構成を限定した場合における本発明の基本概念を説明する。
図1に示すように、マルチメディアデータの送信側サーバでは、1番組を構成するマルチメディア情報をサーバ内の複数の通信サーバモジュールを同時に使用して並列に送出する。一方、図2に示すように、受信側のサーバでも、送信側サーバの通信サーバモジュールから送信されてきた1番組を構成するマルチメディアデータを、サーバ内の複数の通信サーバモジュールを同時に使用して並列に受信するとともに、蓄積装置への蓄積を行う。
このようにして、本発明は、1番組のマルチメディアデータ転送を複数の通信サーバモジュールを使用して行うことにより、サーバ間でのマルチメディア情報の転送を高速化する。
図1および図2は、マルチメディアデータを2台の分散RAID型マルチメディアサーバ装置間で送受信する場合に、以下の(1)〜(4)の条件を付与したものである。すなわち、(1)送信側サーバ、および受信側サーバはともに、通信サーバモジュールおよび蓄積サーバモジュールを同じ台数備えて構成される。(2)送信側サーバと受信側サーバとの規模が等しい(両サーバの通信サーバモジュールおよび蓄積サーバモジュールはともにN台)。(3)1番組を構成するマルチメディア情報は、N台全ての蓄積サーバモジュール上の蓄積装置に分散して格納される。(4)1番組を構成するマルチメディアデータ転送に、N台全ての通信サーバモジュールを使用する。
そして、図1および図2に示すように、1番組のマルチメディア情報を構成する各セグメントの中から、「セグメント0」を蓄積装置1に、「セグメント1」を蓄積装置2にというように、セグメントごとに蓄積装置1〜Nを巡回して格納する場合に、上記した(1)〜(4)の条件を満足する構成を備えるものとすると、送信側サーバの通信サーバモジュールj(1≦j≦N)は、自身のサーバ内の蓄積装置j内に格納された該当番組のマルチメディア情報のセグメントj−1、N+j−1、2N+j−1、...を蓄積サーバモジュールjから受信し、受信側サーバの通信サーバモジュールjを送信先に指定して外部ネットワークへ送出する。一方、受信側サーバの通信サーバモジュールjは、受信したマルチメディア情報をセグメント化し、自身のサーバ内の蓄積サーバモジュールj内の蓄積装置jにセグメントを蓄積する。このように、複数の通信サーバモジュールを使用して1番組のマルチメディアデータを並列に転送することができるとともに、セグメントを正しい順序で受信側サーバに格納することができる。
[分散RAID型マルチメディアサーバ装置の構成を一般化した場合]
続いて、図を参照しつつ、分散RAID型マルチメディアサーバ装置の構成を一般化した場合における本発明の基本概念を説明する。
図3に示すように、送信側サーバは、P台の蓄積サーバモジュールおよびQ台の通信サーバモジュールから構成され、受信側サーバは、T台の蓄積サーバモジュールおよびR台の通信サーバモジュールから構成される。なお、両サーバの蓄積サーバモジュールおよび通信サーバモジュールには、1から始まる昇順の整数値の識別子が付与されているものとする。
そして、上記したサーバ構成を限定した場合とは異なり、前記の条件(1)および(2)を排除して、両サーバとも蓄積サーバモジュールおよび通信サーバモジュールの台数が異なり、両サーバの構成も互いに異なっている。さらに、前記の条件(3)を排除して、送信側サーバにおいて、送信対象となるマルチメディアデータは、蓄積サーバモジュール1〜Pの全てに分散して格納されているとは限らず、その部分集合のみに格納されている場合も対象とする。
このようなことから、送信対象のマルチメディアデータを格納している蓄積サーバモジュール群を以下の式(1)ように表すことができる。
ただし、式(1)に示すS1は以下の式(2)を見たす整数であり、集合Nの各要素は、各蓄積サーバモジュールに付与されている前述の識別子の値をとる1以上のS1以下の整数である。
このとき、1番組のマルチメディアデータは、蓄積サーバモジュールn1からnS1のS1個の蓄積サーバモジュールに跨っていて、かつ、この順序でマルチメディアデータのセグメントごとに巡回する格納されていることを前提とする。すなわち、t、wを以下に示す式(3)で表される1以上の整数とした時、シーケンス番号q(qは0以上の整数)のセグメントは、蓄積サーバモジュールntの蓄積装置内のw番目セグメントして格納されているものとする。ただし、xdivy、xmodyは、0以上の整数xを正の整数yで割った時の商、余りをそれぞれ表す。
さらに、本発明が対象とする分散RAID型マルチメディアサーバ装置間のデータ転送では、前記の条件(4)を排除して、マルチメディアデータの転送に使用する通信サーバモジュールの台数も自由に設定することができるものとする。このとき、送信側サーバにおいて、1番組のマルチメディアデータの転送に使用する通信サーバモジュールの集合N’は以下の式(4)に示すように定義することができる。
ただし、集合N’は、送信側サーバの全通信サーバモジュールの識別子を並べた集合、以下の式(5)の部分集合であり、その要素数はS2で、各要素は識別子の値を昇順に並べたものとする。すなわち、以下の式(6)および(7)に示す条件が成立する。
ただし、S2とS1との間には以下の式(8)に示す条件が成立するものとする。
これは、蓄積サーバモジュールの台数を上回る数の通信サーバモジュールを使用しても、多くの場合、蓄積サーバモジュールの転送性能を合計した速度を上回る速度でマルチメディアデータの送信を行うことはできず、意味がないためである。
次に、受信側サーバについて説明する。受信側サーバでは、送信側サーバがマルチメディアデータの送信に使用する通信サーバモジュールと同じ台数、すなわち、S2台の通信サーバモジュールを使用して、送信側サーバから送信されてきたマルチメディアデータを受信するものとする。受信側サーバにおいて、1番組のマルチメディアデータの受信に使用する通信サーバモジュールの集合M’を以下の式(9)に示すように定義する。
ただし、集合M’は、受信側サーバの全通信サーバモジュールの識別子を並べた集合、以下の式(10)の部分集合であり、その要素数はS2で、各要素は識別子の値を昇順に並べたものとする。すなわち、以下の式(11)および(12)に示す条件が成立する。
通信サーバモジュールの集合M’を使用して受信した1番組の全てのマルチメディアデータは、最終的に以下の式(13)に示す識別子の集合からなる蓄積サーバモジュール内の蓄積装置内に、この順でセグメントごとに巡回する形で格納されるものとする。
すなわち、p、yを以下に示す式(14)で表される1以上の整数とした時、シーケンス番号q(qは0以上の整数)のセグメントは、蓄積サーバモジュールmpの蓄積装置内のy番目セグメントして格納するものとする。
ただし、集合Mは、受信側サーバの全蓄積サーバモジュールの識別子を並べた集合、以下の式(15)の部分集合であり、その要素数はS3で、各要素は識別子の値を昇順に並べたものである。すなわち、以下の式(16)および(17)に示す条件が成立する。
さらに、S2トS3との間には以下の式(18)に示す条件が成立するものとする。
これは、蓄積サーバモジュールの台数を通信サーバモジュールの台数S2よりも少なくすると、マルチメディアデータの蓄積サーバモジュール側への転送速度が端末側ネットワークからの受信速度に追いつかなくなり、不具合が生じるためである。よって、上記の式(6)、(8)、(11)と、上記の式(18)とをあわせると、S2は以下にしめす式(19)を満足する値でなくてはならない。
以上をまとめると、分散RAID型マルチメディアサーバ装置の構成を一般化した場合に、本発明は、図3に示すような送信側サーバと受信側サーバにおいて、送信側サーバでは、上記の式(1)で表されるS1台の蓄積サーバモジュールに、上記の式(3)で表される順序で格納されている1番組のマルチメディアデータを、上記の式(4)で定義されるS2台の通信サーバモジュールを使って送信し、受信側サーバでは、上記の式(9)で定義されるS2台の通信サーバモジュールを使って受信し、上記の式(13)で定義されるS3台の蓄積サーバモジュールの蓄積装置上に、上記の式(14)で表される順序で格納する、という転送動作を基本概念とする。この基本概念を図4にまとめて示す。なお、以下では、この転送動作をT(S1,S3:S2)と表記する。
また、1番組を構成するマルチメディアデータの転送が、そのデータの送受信を担当する1台の通信サーバモジュールを経由して実現される従来の技術は、本発明においてS2=1とした場合に帰着される。
ここで、上記の式(3)は、以下に示す式(20)と同値であり、これを上記の式(14)に代入することにより、以下の示す式(21)のように、式(14)のp、yを式(3)のt、wで表すことができる。
ここで、上記の式(21)のp、qを表す式の右辺をそれぞれh(t,w,S1,S3)、k(t,w,S1,S3)と書くと、上記のT(S1,S3:S2)がそれぞれのセグメントについて1対1の可逆転送であることから、以下に示す(22)式が成立することは自明である。
ところで、本発明の基本概念についてこれまで説明してきた以外の部分については、以下の3つの考え方に基づいた3種類の異なる方式1〜3を提供する。
すなわち、方式1は、送信側サーバで、同一の蓄積サーバモジュールの蓄積装置内の1番組のセグメントは、全て同一の通信サーバモジュールから送信する方式である。
方式2は、受信側サーバで、同一の蓄積サーバモジュールの蓄積装置内に格納される1番組のセグメントは、全て同一の通信サーバモジュールで受信する方式である。
方式3は、上記の方式1および方式2の双方を満たす方式である。
以下に、方式1〜3のそれぞれの方式について具体的に説明する。
[方式1について]
まず、本発明の方式1について説明する。方式1は、上記のT(S1,S3:S2)の実現する場合において、同一の蓄積サーバモジュールの蓄積装置内に格納されている送信対象番組のセグメントは、全て同一の通信サーバモジュールから送信されるように、セグメントを送信する通信サーバモジュールを割り付ける方式である。
換言するならば、送信側サーバの各蓄積サーバモジュール、および各蓄積装置内の送信対象となる番組のファイルに対して、各通信サーバモジュールは排他的にアクセスを行う。また、各蓄積装置内の送信対象番組のファイルへのリードアクセスについて、必ずファイルの先頭位置から始め、リード操作の度にファイルの読出し位置を1セグメントサイズずつインクリメントする形で行うことができ、該当ファイルへのランダムアクセスを行う必要がない。このようなことから、この方式1では、送信側サーバの実装を容易にすることができる。
すなわち、集合Nの各要素を集合N’の各要素へ対応させる写像Ψとして、このときの集合N’の要素ni'(1≦i≦S2)へと写像される集合Nの要素の集合をNiとしたとき、以下に示す式(23)を満足する写像Ψを決定し、集合Niの要素を識別子に持つ蓄積サーバモジュールの蓄積装置内のマルチメディアデータを識別子ni'で表される通信サーバモジュール(以下、通信サーバモジュールni'と略記する)から送信する。
さらに、写像Ψは、上記の式(23)に加えて、以下に示す式(24)および(25)を満足するものとする。
式(24)は、集合N’に属する全ての通信サーバモジュールが、実際にマルチメディア情報の転送に使用されることを表し、式(25)は、通信サーバモジュールによって送信されない蓄積サーバモジュールの蓄積装置内のマルチメディアデータが存在してはならないことを示す。
このとき、上記の式(23)および(25)により、以下に示す式(26)が成立する。
このような写像Ψによって集合Nの要素が集合N’の要素に対応される様子を図5に示す。
次に、蓄積サーバモジュールの集合Niを割り当てられた通信サーバモジュールni'が、送信対象となる番組のマルチメディアデータのセグメントを、これらの蓄積サーバモジュールから受け取って端末側ネットワークへ送信する動作について説明する。まず、集合Niの要素を以下の式(27)のように示す。
ただし、上記の式(27)の表記は、ni_k=nu、ni_l=nvのとき、以下に示す式(28)の条件を満足するように集合Niの要素を並べたものとする。このとき、通信サーバモジュールni'は、蓄積サーバモジュールni_1からni_|Ni|をこの順に巡回しながら、各蓄積サーバモジュールからマルチメディアデータのセグメントを1つずつ受け取り、それを受信側サーバの対向の通信サーバモジュールmi'に送信する、という動作を繰り返す。この通信サーバモジュールni'の動作の様子を図6に示す。
さらに、送信側サーバの通信サーバモジュールni'は、受信側サーバが受信したセグメントを正しい順序に並べ直して蓄積装置内に格納できるように、自身が送信する送信対象の番組に関するマルチメディアデータの各セグメントに対して、番組内容を構成するデータに加えて、この番組内におけるそのセグメントの位置を表すシーケンス番号を付加情報として付与する。これについては、通信サーバモジュールni'は、蓄積サーバモジュールnt(1≦t≦S1)からw番目(1≦w)に受け取ったセグメントに対して、上記の式(20)で定まるシーケンス番号qを付与する(以下に示す式(29)にこの式を再記する)。
ここで、本方式1においては、上記の式(29)は以下に示す式(30)のように表すこともできる。
以上が送信側サーバの動作の説明である。次に、受信側サーバの動作の説明をすると、送信側サーバから送信されてきたマルチメディアデータのセグメントを通信サーバモジュールmi'を使って受信し、最終的に全てのセグメントをMの要素からなる蓄積サーバモジュール群の蓄積装置内に、図7に示すような配列で格納する。
この動作を実現するために、通信サーバモジュールmi'は、送信側サーバの対向の通信サーバモジュールni'から送信されてきたシーケンシャル番号qのセグメントを、上記の式(14)で定まる自身のサーバの蓄積サーバモジュールmpに転送する動作を繰り返す。また、これを受け取った蓄積サーバモジュールmpは、このセグメントを自身の蓄積装置内に上記の式(14)で定まるy番目のセグメントとして格納する。以上が、本発明の方式1の説明である。なお、方式1では、前記の写像Ψについて、それが満足すべき条件のみを規定し、写像Ψ自体については具体的に規定しない。
[方式2について]
次に、本発明の方式2について説明する。方式2は、上記のT(S1,S3:S2)の実現において、受信側サーバで、同一の蓄積サーバモジュールの蓄積装置内に格納されるマルチメディアデータのセグメントは、全て同一の通信サーバモジュールで受信する方式である。
換言するならば、受信側サーバの各蓄積サーバモジュール、および各蓄積装置内の対象となる番組のファイルに対して、各通信サーバモジュールは排他的にアクセスを行う。また、各蓄積装置内の対象となる番組のファイルへのライトアクセスについて、必ずファイルの先頭位置から始め、ライト操作の度にファイルの書き込み位置を1セグメントサイズずつインクリメントする形で行うことができ、該当ファイルへのランダムアクセスを行う必要がない。このようなことから、この方式2では、受信側サーバの実装を容易にすることができる。
すなわち、集合Mの各要素を集合M’の各要素へ対応させる写像をΩ、このとき集合M’の要素mi’(1≦i≦S2)へと写像される集合Mの要素の集合をMiとして、以下に示す式(31)を満足する写像Ωを決定し、集合Miの要素を識別子に持つ蓄積サーバモジュールの蓄積装置内のマルチメディアデータを識別子mi’で表される通信サーバモジュール(以下、通信サーバモジュールmi’と略記する)から受信する。
さらに、写像Ωは、上記の式(31)に加えて、以下に示す式(32)および(33)も満足するものとする。
式(32)は、集合M’に属する全ての通信サーバモジュールが実際にマルチメディア情報の受信に使用されることを表し、式(33)は、集合Mの蓄積サーバモジュールにおける蓄積装置内のマルチメディアデータが、必ず集合M’のいずれかの通信サーバモジュールによって受信されることを示す。
また、このときの集合Miの要素を、以下に示す式(34)のように表記する。
方式2では、受信側サーバの通信サーバモジュール、および蓄積サーバモジュールは、上述した方式1と全く同じ動作を行う。すなわち、受信したセグメントのシーケンス番号と上記の式(14)によって定まる場所にそのセグメントを格納する処理を繰り返す。
一方、送信側サーバの通信サーバモジュールni'の動作が方式1とは異なる。すなわち、方式2では、送信側サーバの通信サーバモジュールni'は、受信側サーバが上記の動作を行う場合に、結果として通信サーバモジュールmi’が蓄積サーバモジュールmi_1からmi_|Mi|をこの順に巡回しながらセグメントを格納するよう、然るべきセグメントを然るべき順序で送信する。
受信側サーバが上記のような巡回動作を行う場合、通信サーバモジュールmi’がx番目(0≦x)に蓄積サーバモジュール側に転送するセグメントは、蓄積サーバモジュールmi_pのy番目(1≦y)に格納される。
ただし、p、yは、以下に示す式(35)によって定まる値である。
受信側でこのようにセグメントを格納した結果、最終的に受信側サーバの蓄積装置内にセグメントがシーケンス番号の順に正しく格納されたものとすると、上記のx番目のセグメントは、送信側サーバの蓄積サーバモジュールntの蓄積装置のw番目に格納されていたセグメントである。ただし、t、wは式(22)および(35)により求まる以下の式(36)および(37)で示される値である。
よって、送信側サーバの通信サーバモジュールni'は、対向の受信側サーバの通信サーバモジュールmi’へ送信するx(0≦x)番目のセグメントとして、上記の式(36)および(37)で表される位置に格納されているセグメントを選択し、これを蓄積サーバモジュールから読み出す。そして、同セグメントに対し、上記の式(20)のtに式(36)、wに式(37)の値を代入することにより得られる以下の式(38)で定まるシーケンス番号qを付与した後、受信側サーバの通信サーバモジュールmi’へ送信する、という動作を繰り返せばよい。以上が、本発明の方式2の説明である。なお、方式2では、前記の写像Ωについて、それが満足すべき条件のみを規定し、写像Ω自体については具体的に規定しない。
[方式3について]
続いて、方式3について説明する。方式3は、上記のT(S1,S3:S2)の実現において、送信側サーバで、同一の蓄積サーバモジュールの蓄積装置内に格納されているマルチメディアデータのセグメントは全て同一の通信サーバモジュールから送信されるという方式1と、受信側サーバで、同一の蓄積サーバモジュールの蓄積装置内に格納されるマルチメディアデータのセグメントは、全て同一の通信サーバモジュールで受信する方式2の双方の条件を満足する方式である。
換言するならば、送受信サーバの各蓄積サーバモジュール、および各蓄積装置内の送受信対象となる番組ファイルに対して、それぞれのサーバの各通信サーバモジュールが排他的にアクセスを行う。また、各蓄積装置内の番組ファイルへのリード/ライトアクセスについて、必ずファイルの先頭位置から始め、リード/ライト操作の度にファイルの読出し/書き込み位置を1セグメントサイズずつインクリメントする形で行うことができ、該当ファイルへのランダムアクセスを行う必要がない。このようなことから、この方式3では、送受信側サーバの実装を容易にすることができる。
方式3では、送信側サーバにおいては方式1と同様の写像Ψを定義し、受信側サーバにおいては方式2と同様の写像Ωを定義する。
すなわち、方式3では、送信側サーバの通信サーバモジュールni'は、方式1と同様に、蓄積サーバモジュールni_1からni_|Ni|をこの順に巡回しながら、各蓄積サーバモジュールからマルチメディアデータのセグメントを1つずつ受け取り、上記の式(29)(あるいは、式(30))で定まるシーケンス番号を付与して受信側サーバへ送信するという動作を繰り返す。
また、受信側サーバの通信サーバモジュールは、方式1(あるいは、方式2)と同様に、受信したセグメントのシーケンス番号と上記の式(14)で定まる場所にセグメントを格納する処理を繰り返す。ただし、方式3の送受信側サーバの通信サーバモジュールは、以下に説明する2つの動作が方式1とは異なる。
すなわち、方式1とは異なる動作の一つ目は、送信側サーバの通信サーバモジュールni'は、受信側サーバの各通信サーバモジュールmk’が上記の動作をする場合に、結果として集合Mkの要素の蓄積サーバモジュール以外にアクセスしない形になるように、セグメントの送信先の通信サーバモジュールを変更しながら送信動作を行う点である。
具体的には、送信側サーバの通信サーバモジュールni'は、蓄積サーバモジュールni_t、すなわち、蓄積サーバモジュールnfi(t)からw番目に読み出したセグメントに対し、上記の式(21)を用いてこのセグメントの受信側サーバでの格納先となる蓄積装置の番号pを以下に示す式(39)により求める。
さらに、このpの値に対して、以下に示す式(40)を満足するjの値を求め、このセグメントの送信先を受信側サーバの通信サーバモジュールmj’に決定する(上記の式(31)および(33)により、このようなjが必ず存在し、その値が一意に定まる)。
送信側サーバの通信サーバモジュールがこのような動作を行う時、受信側サーバのある1つの通信サーバモジュールに対しては、マルチメディアデータのセグメントが送信側サーバの複数の異なる通信サーバモジュールから非同期に、順不定に送信されてくることになる。
したがって、受信側サーバの通信サーバモジュールmi’が、方式2と同様に蓄積サーバモジュールmi_1からmi_|Mi|をこの順に巡回しながらセグメントを格納し、各蓄積装置内の番組ファイルへの書き込み位置をランダムに変化させることを避けるようにするためには、同通信サーバモジュールmi’は、蓄積装置m1_p(1≦p≦|Mi|)内の番組ファイルのy(1≦y)番目の位置に格納されるべきセグメントを、セグメントの到着順序とは無関係にx(0≦x)番目に蓄積サーバモジュール側へ転送する必要がある。ただし、xは、以下に示す式(41)により定められる。以上が、方式1とは異なる動作の二つ目である。
以上が、本発明の方式3の説明である。なお、方式3では、上記の写像Ψ、Ωについて、それが満足すべき条件のみを規定し、写像Ψ、Ω自体については具体的に規定しない。
上述してきた本発明の基本概念および方式1〜3は、以下のように、従来の方式についての課題を解決する。すなわち、従来の方式では、1番組を構成する全てのマルチメディアデータが、そのデータの送受信を担当する1台の通信サーバモジュールを経由して外部装置との間で送受信されるため、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で1番組を構成する全てのマルチメディアデータを外部装置との間で送受信することはできない。これに対して、本発明の基本概念および方式1〜3では、1番組を構成する全てのマルチメディアデータを複数の通信サーバモジュールを同時に使用して送受信する。このようなことから、送受信側のサーバでそれぞれ使用される通信サーバモジュールの台数に応じて、1番組を構成するマルチメディアデータの転送速度の上限を向上させることができる。
本発明によれば、通信速度要求値とともにマルチメディアデータ転送要求を受け付けて、分散型マルチメディアサーバ間で1番組のマルチメディアデータがいくつかに分割された各セグメントの転送を行う場合に、送信側として機能する分散型マルチメディアサーバが、各蓄積サーバモジュールにより各蓄積装置に分散格納された各セグメントを送信するために使用する通信サーバモジュールの台数を、データ転送要求とともに受け付けた通信速度要求値に応じて仮設定し、仮設定された台数の通信サーバモジュールが使用可能な状態で存在する場合には、仮設定された台数の通信サーバモジュールを使用して、受信側として機能する分散型マルチメディアサーバに各セグメントを並行して送信し、仮設定された台数の通信サーバモジュールが使用可能な状態で存在しない場合には、使用可能な範囲内で最大の台数の通信サーバモジュールを使用して、受信側として機能する分散型マルチメディアサーバに各セグメントを並行して送信し、受信側として機能する分散型マルチメディアサーバが、送信側として機能する分散型マルチメディアサーバが各セグメントを送信するために用いた通信サーバモジュールと同じ台数の通信サーバモジュールを使用して各セグメントを受信し、受信側として機能する分散型マルチメディアサーバが、各セグメントを受信する際に使用した通信サーバモジュールの台数以上の台数の蓄積サーバモジュールにより、受信した各セグメントを各蓄積装置に分散格納するので、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で送受信することが可能である。
また、本発明によれば、送信側として機能する分散型マルチメディアサーバにおいて、各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみから、送信対象となるセグメントの読み出しを行うので、蓄積サーバモジュールおよび通信サーバモジュール間で排他的に読出しアクセスを行うことを保証することができ、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で高速に送受信することが可能であるとともに、送信側サーバの実装を容易にすることが可能である。
また、本発明によれば、受信側として機能する分散型マルチメディアサーバにおいて、各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみに、受信したセグメントの書き込みを行うので、蓄積サーバモジュールおよび通信サーバモジュール間で排他的に書き込みアクセスを行うことを保証することができ、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で高速に送受信することが可能であるとともに、受信側サーバの実装を容易にすることが可能である。
また、本発明によれば、送信側として機能する分散型マルチメディアサーバにおいて、各セグメントを送信する通信サーバモジュールが、受信側として機能する分散型マルチメディアサーバの通信サーバモジュールをセグメントごとに変更するので、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で高速に送受信する際に柔軟な対応を実現することが可能である。
また、本発明によれば、分散型マルチメディアサーバ間でデータの送受信を行う場合であっても、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で送受信することが可能である。
また、本発明によれば、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で送受信することが可能なプログラム、およびこのプログラムを記録した記録媒体を得ることが可能である。
以下に添付図面を参照して、この発明に係るマルチメディア情報転送蓄積方法、分散型マルチメディアサーバ装置、分散型マルチメディアサーバシステム、マルチメディア情報転送蓄積方法を実現するプログラムおよび当該プログラムを記録した記録媒体の実施例を詳細に説明する。なお、以下では、本発明に係るマルチメディア情報転送蓄積方法を適用したシステムを本発明の一実施形態である実施例1として説明した後に、本発明に含まれる他の実施例を説明する。
[システム構成(実施例1)]
まず最初に、図8を用いて、実施例1に係るシステム構成を説明する。実施例1に係るシステムは、分散RAID型マルチメディアサーバ装置1と、分散RAID型マルチメディアサーバ装置2と、制御端末と、管理DBとを端末側ネットワークを介して通信可能な状態で接続して構成される。
分散RAID型マルチメディアサーバ装置1は、通信サーバモジュール1〜8と、蓄積サーバモジュール1〜8と、蓄積装置1〜8とを含んで構成され、通信サーバモジュール1〜8と蓄積サーバモジュール1〜8とがサーバモジュール間ネットワークを介して通信可能な状態で接続される。
分散RAID型マルチメディアサーバ装置2は、通信サーバモジュール1〜5と、蓄積サーバモジュール1〜5と、蓄積装置1〜5とを含んで構成され、通信サーバモジュール1〜5と蓄積サーバモジュール1〜5とがサーバモジュール間ネットワークを介して通信可能な状態で接続される。
制御端末は、管理DBに対して、分散RAID型マルチメディアサーバ装置内に格納された所定の番組のマルチメディアデータの転送要求を発行する機能を備える。
管理DBは、分散RAID型マルチメディアサーバ装置の各種リソースに関する情報を管理するDBを有しており、そのDBにおいて管理されている情報に基づいて、制御端末からの転送要求を実現するために必要な指示を分散RAID型マルチメディアサーバ装置に発行する機能を備える。
なお、サーバモジュール間ネットワークについては、任意のサーバモジュール間で情報転送を行う機能を実現することができるものであればよく、高速LANやInfiniBandをはじめとする各種既存技術をそのまま利用することができる。また、端末側ネットワークについては、広域通信網として広く用いられているIP(Internet Protocol)ネットワークなどの既存技術をそのまま利用することができる。
分散RAID型マルチメディアサーバ装置は、従来の技術において記述した従来方式によるマルチメディア情報転送、すなわち、1番組につき1台の通信サーバモジュールを使用して端末側ネットワーク上の端末や、マルチメディア情報入力装置との間でマルチメディアデータを送受信する機能をも備える。
[各種構成要素の動作(実施例1)]
続いて、分散RAID型マルチメディアサーバ装置1を送信側サーバ、分散RAID型マルチメディアサーバ装置2を受信側サーバとして、これら2台のサーバ間で1番組を構成するマルチメディアデータの高速転送を行う場合における各構成要素の動作を説明する。
なお、各サーバ装置では、マルチメディア情報のメディアの種類ごとに定まる1つの映像フレームを1つのセグメントを単位として、マルチメディアデータを扱うものとする。また、図9に例示すように、各サーバ装置内の蓄積装置では、各マルチメディアデータは番組ごとに独立したファイルとして格納されており、それぞれの番組のファイルは複数のセグメントを連ねたものとする。
[制御端末の動作(実施例1)]
まず、図を参照しつつ、構成要素の一つである制御端末の動作を説明する。図10に示すように、分散RAID型マルチメディアサーバ装置1から分散RAID型マルチメディアサーバ装置2に対して、ある1番組のマルチメディアデータの転送要求が発生すると(ステップS1001肯定)、制御端末は、管理DBへその番組のマルチメディアデータの転送要求を発行する(ステップS1002)。
ここで、この転送要求は、図11に例示するように、転送したい番組のマルチメディアデータを格納している送信側サーバを示す識別子と、転送先の受信側サーバを示す識別子と、転送したい番組を表す番組名と、その番組を端末側ネットワーク上で転送する際の通信速度要求値とからなる。
転送要求の発行後、制御端末は、管理DBから正常な受付通知の受信を待機する(ステップS1003)。そして、管理DBから正常な受付通知を受信した場合には(ステップS1003肯定)、転送処理が完了するのを待つ(ステップS1004)。これとは反対に、管理DBから正常な受付通知を受信できなかった場合には(ステップS1003否定)、そのまま全ての処理を終了する。なお、正常な受付通知を受信できなかった場合とは、後述する転送要求受け付け不可通知を受信した場合に相当する。
ところで、図12に例示するように、分散RAID型マルチメディアサーバ装置1の蓄積装置3〜8をセグメントごとに巡回する形で格納されている所定の番組のマルチメディアデータが、上記の転送要求内の番組識別子によって転送処理の対象に指定されたものとすると、上記の式(1)および(2)によって規定される集合NとS1は、以下に示す式(42)のようになる。
[管理DBの動作(実施例1)]
次に、図を参照しつつ、構成要素の一つである管理DBの動作を説明する。
管理DBは、図15に例示するように、各分散RAID型マルチメディアサーバ装置のリソース管理のためのデータベースを有する。このデータベースは、管理対象の分散RAID型マルチメディアサーバ装置ごとの情報を格納したサーバデータを記憶して構成される。各サーバデータは、サーバの属性を記述したサーバ属性、および同サーバに格納されている番組の情報を格納したサーバ内番組データから構成される。
ここで、サーバ属性には、サーバを構成する通信サーバモジュールおよび蓄積サーバモジュールの集合の情報、通信サーバモジュールおよび蓄積サーバモジュールの各性能値、およびマルチメディアデータの転送に使用中の通信サーバモジュールの集合の情報が含まれる。なお、以下の説明において、通信/蓄積サーバモジュール集合といった場合には、それらの識別子の順序も考慮した集合を意味するものとする。
サーバ内番組データには、その番組の属性を記述した番組属性として、番組名、セグメント数で表した番組長、映像メディアの種類、1つのセグメントのサイズ、その番組のマルチメディアデータを格納している蓄積サーバモジュールの集合Nが含まれている。
図13を用いて、管理DBの動作の説明を開始する。管理DBは、制御端末から転送要求を受信すると(ステップS1301肯定)、転送要求に含まれる送信側および受信側サーバの識別子を参照して、自データベース内の参照すべきサーバデータを特定するとともに(ステップS1302)、転送要求に含まれる番組名を参照して、同サーバデータ内の参照すべきサーバ内番組データを特定する(ステップS1303)。
そして、管理DBは、転送要求内に含まれる通信速度要求値と、サーバデータ内の通信/蓄積サーバモジュールの性能値のデータとを用いて、所望の通信速度要求値を実現するために通信サーバモジュールが何台必要であるかを計算し、さらに上記の式(19)の制約を考慮して、送受信サーバ間での転送処理に使用する通信サーバモジュールの台数S2を仮設定する(ステップS1304)。
続いて、管理DBは、サーバデータ内の使用中の通信サーバモジュールの集合を参照して、仮設定したS2台に等しい台数の通信サーバモジュールが送受信側の両サーバにおいて未使用の状態で存在するか否か検査する(ステップS1305)。検査の結果、S2台に等しい台数の通信サーバモジュールが送受信側の両サーバにおいて未使用の状態で存在する場合には(ステップS1305肯定)、実際に使用する通信サーバモジュールを決定して(ステップS1306)、決定された通信サーバモジュールの要素N’およびM’を新たにサーバデータ内の使用中の通信サーバモジュールのリストに追加する(ステップS1307)。
一方、検査の結果、S2台に等しい台数の通信サーバモジュールが送受信側の両サーバにおいて未使用の状態で存在しない場合には(ステップS1305否定)、管理DBは、S2の値を1つずつ減らしていき(ステップS1308)、S2の値が“0”となっているか否か判定する(ステップS1309)。判定の結果、S2の値が“0”となっていない場合には(ステップS1309否定)、再び、ステップS1305に記載した検査を実行することにより、使用可能な範囲で最大の通信サーバモジュールの台数をS2の値として決定する。これとは反対に、判定の結果、S2の値が“0”となっている場合には(ステップS1309肯定)、番組のマルチメディアデータ転送処理が不可能であるものとして、管理DBは、制御端末に転送要求 受け付け不可通知を送信して(ステップS1310)、全ての処理を終了する。
ここでは、仮に、S2=4台の通信サーバモジュールを使用して、番組のマルチメディアデータ転送処理を実行するように最終決定され、上記の式(4)および(9)に相当する、送受信サーバで転送処理に使用される通信サーバモジュールの集合(N’、M’)が以下に示す式(43)のように決定されたものとする。
また、番組のマルチメディアデータの転送先である受信側サーバでは、転送されてきたデータは全て蓄積サーバモジュール上に蓄積装置を巡回する形で格納されるものとする。このとき、上記の式(13)で表される集合、および上記の式(16)のS3の値は、以下に示す式(44)のようになる。
上述してきた管理DBによる各種設定状態を図16に例示する。
引き続き、図14を用いて、管理DBの動作を説明する。同図に示すように、送受信サーバで転送処理に使用される通信サーバモジュールの集合(N’、M’)を決定した管理DBは、N’で示される送信側サーバの通信サーバモジュールの全てに対して新規番組送信要求を送信するとともに(ステップS1401)、M’で示される受信側サーバの通信サーバモジュールの全てに対して新規番組受信要求を送信する(ステップS1402)。
ここで、新規番組送信要求および新規番組受信要求は、それぞれ図17および図18に例示するように、転送対象となる番組のサーバ内番組データ、転送処理に使用される通信サーバモジュールの集合N’およびM’、その番組のマルチメディアデータが格納されている蓄積サーバモジュールの集合Mの情報を含んでいる。なお、転送対象となる番組のマルチメディアデータが格納されている蓄積サーバモジュールの集合Nの情報は、図15に例示したように、サーバ内番組データに格納されている。
新規番組送信要求および新規番組受信要求を送信後、管理DBは、制御端末に対して転送要求の正常受付通知を送信し(ステップS1403)、集合N’およびM’の通信サーバモジュールから番組のマルチメディアデータの転送終了通知の受付を待機する(ステップS1404)。転送終了通知を受け付けると、管理DBは、制御端末へ転送処理の終了通知を送信して(ステップS1405)、集合N’およびM’の要素をサーバデータ内の使用中の通信サーバモジュールのリストから消去する(ステップS1406)。
そして、管理DBは、番組のマルチメディアデータが受信側サーバへ転送されたことを記録するため、受信側サーバに対応するサーバデータ内に、受信側サーバへ転送された番組のマルチメディアデータをサーバ内番組データとして追加し(ステップS1407)、転送要求に対する処理を全て終了する。
[送信側サーバの通信サーバモジュールの動作(実施例1)]
続いて、図を参照しつつ、送信側サーバの通信サーバモジュールの動作を説明する。送信側サーバでは、集合N’に含まれる1つ1つの通信サーバモジュールがそれぞれ独立に動作を実行する。
すなわち、図19に示すように、通信サーバモジュールは、管理DBから新規番組送信要求を受信すると(ステップS1901肯定)、この送信要求に含まれる通信サーバモジュールの集合N’を参照し、この集合の中で自身の通信サーバモジュールの識別子が書かれている位置を検出することにより、N’における自身の位置を示す識別子iの値を判別する(ステップS1902)。
例えば、N’中の通信サーバモジュール1は、この処理により自身がn1'(i=1)に相当することを判別し、通信サーバモジュール3は、同様に、自身がn2'(i=2)に相当することを判別する。
次に、上記で判別した識別子iと、集合N’およびNとを用いて、上記で説明した写像Ψに基づく集合Niの要素、すなわち、自身が送信を担当する蓄積装置を有する蓄積サーバモジュールの集合、および上記で説明した関数fi( )を決定する(ステップS1903)。
ここで、写像Ψとしては、図21に例示するように、集合N’の各要素をn1'からnS2'へと巡回しながら、集合Nの要素をn1からnS1まで順に割り当てていく写像を用いるものとする。単純な写像ではあるが、各通信サーバモジュールが担当する蓄積サーバモジュールの数を最大限に均等化することができ、実用性が高いものである。このとき、図21から明らかなように、1≦i≦S2の条件を満足するiに対して、以下に示す式(45)〜(47)が成立する。
したがって、写像Ψでは、各通信サーバモジュールni'は自身が担当する蓄積サーバモジュールを巡回しながら1つずつセグメントを受け取り、上記の式(30)を用いて、所定の受信セグメントに対して、式(30)と式(47)とによって定義された以下の式(48)で定まるシーケンス番号qを付与して、対向の受信側サーバの通信サーバモジュールmi'に送信すればよい。
この写像Ψを実施例1に係るシステムに適用すると、図21から確認できるように、以下に示す式(49)が成り立つことを容易に確認できるが、上記の式(45)および(46)を用いてNiを求めてみると、式(46)、(50)より、以下に示す式(51)が導かれ、これを考慮すると上記の式(45)により以下に示す式(52)となり、Niが求められる。
なお、この写像Ψが上記の式(23)〜(25)を満たすことは用意に確認できる。
通信サーバモジュールは、担当する蓄積サーバモジュールの集合Niが求まると、Niの全ての蓄積サーバモジュールに対して番組ファイルをオープンするように指示を発行し(ステップS1904)、この指示に対する蓄積サーバモジュールからの応答(ファイルオープン終了通知)を待つ(ステップS1905)。
Niの全ての蓄積サーバモジュールから番組ファイルオープン終了通知が届くと、通信サーバモジュールは、受信側サーバの対向の通信サーバモジュールmi'からセグメント受信完了通知が届くのを待つ(ステップS1906)。セグメント受信完了通知により、通信サーバモジュールは、受信側サーバの受信準備が完了したと判断し、転送対象である番組のマルチメディアデータのセグメント転送処理に移行する。
次に、図20を用いて、セグメント転送処理における通信サーバモジュールの動作を説明する。ni_tの各蓄積サーバモジュールに対応する転送終了フラグを全て“0”に初期化して(ステップS2001)、集合Niの蓄積サーバモジュールを示す添え字t、および各蓄積サーバモジュールへの何回目のセグメント要求であるかを示すセグメント要求通知番号wをともに“1”に初期化する(ステップS2002)。
ここで、転送終了フラグC[t]について、その値が“1”である場合には、蓄積サーバモジュールni_tの蓄積装置内の該当番組のセグメントを全てmi’へ転送完了したことを示し、“0”である場合には、まだ転送が完了していないことを示す。
次に、tの値に対応する転送終了フラグが“1”であるか否か判定する(ステップS2003)。判定の結果、tの値に対応する転送終了フラグが“1”ではない場合(つまり、“0”である場合)には(ステップS2003否定)、通信サーバモジュールは、自身を表す送信元通信サーバモジュールの識別子、管理DBからの新規番組送信要求に含まれていた該当番組のサーバ内番組データ、およびセグメント要求通知信号wを付加情報に持つセグメント要求を作成し(ステップS2004)、蓄積サーバモジュールni_tへセグメント要求通知を発行する(ステップS2005)。
このセグメント要求通知に対して送信されてきたセグメントを蓄積サーバモジュールから受信すると(ステップS2006)、そのセグメントにサーバ内番組データとシーケンス番号を付与し(ステップS2007)、受信側サーバの対向の通信サーバモジュールmi’へ、そのセグメントを送信する(ステップS2008)。
蓄積サーバモジュールへ送信するセグメント要求通知と、そのセグメント要求通知に対して送信されてくるセグメントの形式を図22に例示するとともに、受信側サーバの対向の通信サーバモジュールへ送信されるセグメントの形式を図23に例示する。
図22に例示するように、セグメント要求通知には、送信元の通信サーバモジュール識別子、転送対象となる該当番組のサーバ内番組データ、およびセグメント要求通知番号wが含まれている。また、同図に例示するように、蓄積サーバモジュールから転送されてくる該当番組のセグメントには、番組を構成するマルチメディアデータのほかに、送信元の蓄積サーバモジュール識別子、サーバ内番組データ、セグメント要求通知信号w、およびLASTFLAGが付加情報として付与されている。LASTFLAGは、該当番組のその蓄積サーバモジュールからの最後のセグメントであることを示すフラグであり、その値が“1”である場合には最後のセグメントであることを示す。
セグメントを通信サーバモジュールmi’へ送信する際に付与するシーケンス番号は、上記の式(48)に基づいて算出する。ここで、通信サーバモジュールn1'がN1の要素の蓄積サーバモジュールから送信するセグメントのシーケンス番号について、その一部を計算してみると、以下に示す式(53)のようになり、図16の記載と一致することがわかる。
再び、転送処理の動作の説明に戻ると、通信サーバモジュールは、蓄積サーバモジュールni_tから受け取ったセグメントのLASTFLAGの値が“1”であるか否か判定する(ステップS2009)。判定の結果、LASTFLAGの値が“1”である場合には(ステップS2009肯定)、通信サーバモジュールは、転送終了フラグの値を“1”にセットし(ステップS2010)、以降、その蓄積サーバモジュールへセグメント要求通知を発行する必要がないことを認識する。
これとは反対に、LASTFLAGの値が“1”ではない場合には(ステップS2009否定)、通信サーバモジュールは、tおよびwの値をインクリメントさせながら(ステップS2012〜ステップS2015)、全てのtについて転送終了フラグの値が“1”になるまで上記の処理(ステップS2004〜S2008)を繰り返す。
ここで、上記のステップS2003の説明に戻ると、上記のステップS2010において転送終了フラグの値が“1”にセットされた場合、すなわち、判定の結果、tの値に対応する転送終了フラグが“1”である場合には(ステップS2003肯定)、全てのtの値に対応する転送終了フラグが“1”であるか否か判定する(ステップS2011)。判定の結果、全てのtの値に対応する転送終了フラグが“1”である場合には(ステップS2011肯定)、受信側サーバの対向の通信サーバモジュールmi’に対して転送終了通知を送信し(ステップS2016)、管理DBに対しても転送終了通知を送信して(ステップS2017)、すべての処理を終了する。
[送信側サーバの蓄積サーバモジュールの動作(実施例1)]
続いて、図を参照しつつ、送信側サーバの蓄積サーバモジュールの動作を説明する。図24に示すように、蓄積サーバモジュールは、通信サーバモジュール(例えば、ni')から番組ファイルのオープン指示を受信すると(ステップS2401肯定)、指示された番組ファイルのオープン処理を実行する(ステップS2402)。そして、蓄積サーバモジュールは、通信サーバモジュールni'へファイルオープン終了通知を送信し(ステップS2403)、通信サーバモジュールni'からのセグメント要求通知(図22参照)の受信待ち状態をとる(ステップS2404)。
通信サーバモジュールni'からセグメント要求通知を受信すると、蓄積サーバモジュールは、自身の蓄積装置内の該当番組ファイルから、セグメント要求で指示された同蓄積装置におけるw番目のセグメントに相当するデータを読み出す(ステップS2405)。なお、w番目のセグメントに相当するデータとは、該当番組ファイルの先頭位置からw番目のセグメント位置から始まり、1セグメントの長さに相当するマルチメディアデータである。
蓄積サーバモジュールは、セグメント要求通知内のサーバ内番組データの番組属性(図15参照)に書かれている値を参照して、セグメントサイズを認識する。そして、蓄積サーバモジュールは、w番目のセグメントに相当するデータの読み出しを完了すると、このデータが蓄積装置内の最後のセグメントに相当するデータであるか否か確認する(ステップS2406)。確認の結果、最後のセグメントに相当するデータである場合には(ステップS2406肯定)、蓄積サーバモジュールは、同蓄積装置内の該当番組ファイルにおける最後のセグメントであることを示す値“1”をLASTFLAGに挿入し(ステップS2407)、このLASTFLAG、自身を表す送信元蓄積サーバモジュール識別子、セグメント要求通知に付与されている該当番組のサーバ内番組データ、および蓄積装置内でのセグメント番号wをセグメントに付与する(ステップS2408)。そして、蓄積サーバモジュールは、セグメント要求通知の送信元である通信サーバモジュールni'にセグメントを転送し(ステップS2409)、該当番組ファイルをクローズして(ステップS2410)、全ての処理を終了する。
一方、蓄積装置から読み出したw番目のセグメントに相当するデータが最後のセグメントに相当するデータであるか否かを確認した結果、最後のセグメントに相当するデータではない場合には(ステップS2406否定)、蓄積サーバモジュールは、同蓄積装置内の該当番組ファイルにおける最後のセグメントではないことを示す値“0”をLASTFLAGに挿入し(ステップS2411)、このLASTFLAG、自身を表す送信元蓄積サーバモジュール識別子、セグメント要求通知に付与されている該当番組のサーバ内番組データ、および蓄積装置内でのセグメント番号wをセグメントに付与する(ステップS2412)。そして、蓄積サーバモジュールは、セグメント要求通知の送信元である通信サーバモジュールni'にセグメントを転送する(ステップS2412)。
以上のように、送信サーバ側の1台の蓄積装置に対してアクセスを行う通信サーバモジュールは1台だけであり(図21参照)、その蓄積装置内の番組ファイルに対して通信サーバモジュールにより行われるリードアクセスは、該当番組ファイルの先頭位置から始まって1セグメントずつシーケンシャルに位置をずらしながら行われる(つまり、アクセス位置を示すwの値を1つずつインクリメントしながら行われる、図25参照)。このため、送信側サーバにおいて、番組ファイルへのランダムアクセスは発生しない。以上が送信側サーバの動作の説明である。
[受信側サーバの通信サーバモジュールの動作(実施例1)]
続いて、図を参照しつつ、受信側サーバの通信サーバモジュールの動作を説明する。受信側サーバでは、集合M’に含まれる1つ1つの通信サーバモジュールがそれぞれ独立に動作を実行する。
すなわち、図26に示すように、受信側サーバの通信サーバモジュールは、管理DBから新規番組受信要求を受信すると(ステップS2601肯定)、番組データを格納する蓄積サーバモジュールMの集合に含まれる全ての蓄積サーバモジュールに対して、これから受信する番組のマルチメディアデータの格納用ファイルをオープンする指示を出した後(ステップS2602)、集合Mに含まれる全ての蓄積サーバモジュールからのファイルオープン終了通知を待つ(ステップS2603)。
全ての蓄積サーバモジュールからのファイルオープン終了通知を受信すると、受信側サーバの通信サーバモジュールは、送信側サーバの対向の通信サーバモジュールに対して、セグメント受信準備完了通知を送信し(ステップS2604)、マルチメディアデータのセグメント受信処理へ移行する。
次に、図27を用いて、セグメント受信処理における通信サーバモジュールの動作を説明する。同図に示すように、受信側サーバの通信サーバモジュールmi'は、送信側サーバの対向の通信サーバモジュールni'から、新規番組のマルチメディアデータのセグメント(図23参照)を受信すると(ステップS2701肯定)、上記の式(14)を用いてセグメントの転送先となる蓄積サーバモジュールを示す識別子pの値を算出するとともに(ステップS2702)、転送先の蓄積サーバモジュールmpの蓄積装置内におけるセグメントの格納位置識別子yの値を算出する(ステップS2703)。
そして、通信サーバモジュールmi'は、受信したセグメントにサーバ内番組データおよび位置識別子yを付与した後(ステップS2704)、識別子pに基づいて判明した転送先の蓄積サーバモジュールmpへセグメントを転送する(ステップS2705)。図28に、通信サーバモジュールmi'から蓄積サーバモジュールmpへ転送されるセグメント構成例を示す。
蓄積サーバモジュールmpへセグメントを転送した後、通信サーバモジュールmi'は、送信側サーバの対向の通信サーバモジュールni'から転送終了通知が既に届いているか否か検査する(ステップS2706)。検査の結果、転送終了通知が既に届いている場合には(ステップS2706肯定)、新規番組のマルチメディアデータを格納する蓄積サーバモジュールの集合Mの要素であるすべての蓄積サーバモジュールに対して、通信サーバモジュールni'のセグメントの受信処理が終了したことを示す転送終了通知を送信するとともに(ステップS2707)、管理DBに対しても同様の転送終了通知を送信する(ステップS2708)。これとは反対に、通信サーバモジュールni'から転送終了通知がまだ届いていない場合には(ステップS2706否定)、通信サーバモジュールmi'は、新しいセグメントの受信を待機する。
ここで、セグメントの転送先の蓄積サーバモジュール識別子pと、セグメントの格納位置識別子yの算出方法についての理解を助けるため、上記の式(14)を用いて、該当番組のシーケンス番号qが0〜6間でのセグメントについて、蓄積サーバモジュール識別子pおよびセグメントの格納位置識別子yを算出してみると、以下に示す式(54)のようになり、これらの算出結果は図16に示す結果と一致していることがわかる。
[受信側サーバの蓄積サーバモジュールの動作(実施例1)]
続いて、図を参照しつつ、受信側サーバの蓄積サーバモジュールの動作を説明する。集合Mに含まれる各蓄積サーバモジュールがそれぞれ独立に動作を実行する。
すなわち、図29に示すように、受信側サーバの蓄積サーバモジュールは、集合M’に含まれる各通信サーバモジュールにおいて該当番組のセグメント受信処理が完了したか否かを示す転送終了フラグを全て“0”に初期化する(ステップS2901)。
ここで、転送終了フラグC[j]の値が“0”である場合には、通信サーバモジュールmj'が、送信側サーバの対向の通信サーバモジュールnj'から送信されてくるセグメントの受信処理を完了しておらず、引き続き、通信サーバモジュールmj'から蓄積サーバモジュールへセグメントの転送が行われることを示す。一方、転送終了フラグC[j]の値が“1”である場合には、通信サーバモジュールmj'が、送信側サーバの対向の通信サーバモジュールnj'から送信されてくるセグメントの受信処理を完了しており、これ以上、通信サーバモジュールmj'から蓄積サーバモジュールへセグメントの転送が行われないことを示す。
転送終了フラグの初期化を終えると、受信側サーバの蓄積サーバモジュールは、集合M’中の任意の通信サーバモジュールからの何かしらの通知を待つ(ステップS2902)。この通知としては、番組格納用のファイルオープン指示通知、セグメントの転送終了通知、および実際のセグメントの転送といった3種類の通知が考えられ、蓄積サーバモジュールは、これらの通知の種類に応じた動作を実行する。
通信サーバモジュールから通知を受け付けると(ステップS2902肯定)、受信側サーバの蓄積サーバモジュールは、通知がファイルオープン指示通知であるか否か確認する(ステップS2903)。確認の結果、ファイルオープン指示通知である場合には(ステップS2903肯定)、蓄積サーバモジュールは、該当番組格納用のファイルをオープン済みであるか否か確認する(ステップS2904)。確認の結果、ファイルをオープンしていない場合には(ステップS2904否定)、蓄積サーバモジュールは、自身の蓄積装置内の番組ファイルをオープンして、通信サーバモジュールにファイルオープン終了通知を送信する(ステップS2906)。これとは反対に、ファイルをオープン済みである場合には(ステップS2904肯定)、蓄積サーバモジュールは、そのまま、通信サーバモジュールにファイルオープン終了通知を送信する。
このように、各蓄積サーバモジュールは、自身の蓄積装置内に該当番組格納用のファイルをオープンする処理を1度行えばよい。しかし、実際には、集合M’中の各通信サーバモジュールが動作時において、それぞれ独立にファイルのオープン指示を全ての蓄積サーバモジュールに発行するため、各蓄積サーバモジュールには全部でS2からのファイルオープン指示通知が届くことになる。そこで、最初にファイルオープン指示通知が届いた時にのみ、番組格納用のファイルをオープンする処理を行い、それ以後のファイルオープン指示通知については、そのまま、ファイルオープン終了通知を送信を送信することで対処すればよい。
ここで、ステップS2903の説明に戻ると、通信サーバモジュールから受け付けた通知の内容を確認した結果、ファイルオープン指示通知ではない場合には(ステップS2903否定)、蓄積サーバモジュールは、転送終了通知であるか否か確認する(ステップS2907)。確認の結果、転送終了通知である場合には(ステップS2907肯定)、蓄積サーバモジュールは、その通知を送信した通信サーバモジュールmi'に対応する転送終了フラグの値を“1”にセットする(ステップS2908)。このとき、蓄積サーバモジュールは、全通信サーバモジュールに対応する全転送終了フラグの値が“1”であるか否か確認する(ステップS2909)。確認の結果、全転送終了フラグの値が全て“1”である場合には(ステップS2909肯定)、これ以上、通信サーバモジュールから該当番組のセグメントが転送されてくることはないので、番組格納用ファイルをクローズして(ステップS2910)、全ての処理を終了する。
これとは反対に、全転送終了フラグの値が全て“1”ではない場合には(ステップS2909否定)、蓄積サーバモジュールは、通信サーバモジュールからの通知を待つ。
ここで、ステップS2907の説明に戻ると、通信サーバモジュールから受け付けた通知の内容を確認した結果、転送終了通知でもない場合には(ステップS2907否定)、蓄積サーバモジュールは、マルチメディアデータのセグメントが転送されてきたものと判断して、格納位置識別子yの値を参照し、転送されてきたマルチメディアデータのセグメントを自身の蓄積装置内の番組ファイルのy番目セグメント位置に格納する(ステップS2911)。図30に、この格納処理の概要を示す。格納処理を終了すると、蓄積サーバモジュールは、再び、通信サーバモジュールからの通知を待つ。以上が、受信側サーバの動作の説明である。
[実施例1による効果]
上述してきたように、実施例1では、上記した課題を解決するための手段(方式(1))を用いて、構成の異なる2台の分散RAID型マルチメディアサーバ装置間で、一方のマルチメディアサーバ装置内の蓄積装置に分散格納された1番組のマルチメディアデータのセグメントを4台の通信サーバモジュールを用いて、他方のマルチメディアサーバ装置に対して並列に転送し、転送先のマルチメディアサーバ装置では、受信したマルチメディアデータのセグメントを順序正しく並び替えて、自装置内の蓄積装置に格納する場合を説明した。このようなことから、実施例1によれば、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で送受信することが可能である。
また、実施例1によれば、送信側として機能する分散RAID型マルチメディアサーバ装置において、各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみから、送信対象となるセグメントの読み出しを行うので、蓄積サーバモジュールおよび通信サーバモジュール間で排他的に読出しアクセスを行うことを保証することができ、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で高速に送受信することが可能であるとともに、送信側サーバの実装を容易にすることが可能である。
引き続き、以下では、本発明の一実施形態である実施例2について説明する。なお、以下の実施例2では、上記の実施例1と同様のシステム構成(図8参照)を用いて、分散RAID型マルチメディアサーバ装置1内の蓄積装置3〜8を跨いで格納されたマルチメディアデータを分散RAID型マルチメディアサーバ装置2に転送し、分散RAID型マルチメディアサーバ装置2内の蓄積装置1〜5に跨って格納される実施例1と同様の動作(図16参照)について説明する。
また、実施例2では、上記の方式(2)において説明した写像Ωとして、上記の実施例1で用いて写像Ψと同様の写像、すなわち、集合M’の各要素をm1'〜mS2'へと巡回しながら、集合Mの要素をm1〜mS3まで順番に一つずつ割り当てていく写像を用いるものとする。このとき、実施例1で用いた写像Ψと同様に考えて、1≦i≦S2となるiに対して、以下に示す式(55)、(56)および(57)が成立する。
このとき、上記の方式(2)で説明した式(36)、(37)および(38)は、上記の式(57)を用いることにより、以下に示す式(58)、(59)および(60)のように具体化される。
実施例2では、図8に示す制御端末および管理DBは実施例1と同様の動作を行うので、詳細な説明は省略する。以下に、実施例2に係る送受信サーバの動作を説明する。
[送信側サーバの通信サーバモジュールの動作(実施例2)]
まず、図を参照しつつ、送信側サーバの通信サーバモジュールの動作を説明する。送信側サーバでは、上記の実施例1と同様に、集合N’に含まれる1つ1つの通信サーバモジュールがそれぞれ独立に動作を実行するが、以下に説明する点が実施例1とは異なる。
具体的には、図31に示すように、通信サーバモジュールは、集合N’に属するそれぞれの通信サーバモジュールが、集合Nの全ての要素の蓄積サーバモジュールに対して番組ファイルのオープン指示を発行する点(ステップS3104)、および受信側サーバの集合Miを求める計算を行う点(ステップS3103)が実施例1とは異なる。
すなわち、上記の方式(2)に基づいた実施例2では、蓄積サーバモジュールに対して各通信サーバモジュールが排他的にアクセスを行っていないため、番組ファイルのオープン指示の発行について排他制御の枠組を適用する必要がなく、上記の式(58)、(59)および(60)の演算を実行するためにMiの情報が必要となるからである。これらの動作以外(ステップS3101、S3102,S3105およびS3106)は上記の実施例1と同様である(図19参照)。
ここで、図31に示すステップS3103の処理において定まる集合Miを具体的に求めてみる。すなわち、以下に示す式(61)および上記の式(56)から、以下に示す式(62)が導かれる。
さらに、上記の式(62)に示される値を考慮して、上記の式(55)により、以下に示す式(63)が導かれる。なお、ここで用いた写像Ωが上記の式(31)〜(33)を満たすことは容易に確認することができる。
次に、図32を用いて、セグメント転送処理における通信サーバモジュールの動作を説明する。同図に示すように、通信サーバモジュールni'は、受信側サーバの対向の通信サーバモジュールmi'に対して転送するセグメントのカウンタxの値を“0”に初期化して(ステップS3201)、図31に示すステップS3103で求めた|Mi|およびgi()と、上記の式(58)および(59)とを用いて、現在のxの値に対応するt、wの値を求める(ステップS3202)。
t、wの値を求めた後、通信サーバモジュールni'は、自身を表す送信元通信サーバモジュール識別子、管理DBからの新規番組送信要求に含まれていた該当番組のサーバ内番組データ、および蓄積サーバモジュール内のセグメント番号wを付加情報に持つセグメント要求を作成し(ステップS3203)、蓄積サーバモジュールntへセグメント要求通知を発行する(ステップS3204)。
蓄積サーバモジュールntからセグメント要求通知に対するセグメントを受信すると(ステップS3205)、受信したセグメント内のマルチメディアデータに対してサーバ内番組データ、および上記の式(60)で定まるシーケンス番号qを付与して(ステップS3206)、受信側サーバの対向の通信サーバモジュールmi'へそのセグメントを送信する(ステップS3207)。
セグメントの送信後、通信サーバモジュールni'は、受信側サーバの対向の通信サーバモジュールmi'から転送終了通知が届いているか否か確認する(ステップS3208)。確認の結果、転送終了通知が届いていない場合には(ステップS3208否定)、通信サーバモジュールni'は、転送終了通知が届くまで、xの値をインクリメントしながら(ステップS3209)、上記のステップS3202〜ステップS3207までの処理を繰り返す。
これとは反対に、転送終了通知が届いている場合には(ステップS3208肯定)、通信サーバモジュールni'は、集合Nの全ての蓄積サーバモジュールへ転送終了通知を送信するとともに(ステップS3210)、管理DBへ転送終了通知を送信して(ステップS3211)、全ての処理を終了する。
ここで、送信側サーバの通信サーバモジュールni'が受信側サーバの通信サーバモジュールmi'に対して、セグメントを送信する場合の上記t、w、qの値の計算方法、および、それらの意味に関する理解を助けるために、通信サーバモジュールn1'(=1)が対向の通信サーバモジュールm1'(=2)に対して送信するセグメントについて、上記の式(58)、(59)および(60)を用いて、x=0〜5までのt、w、qの値を計算してみると、以下に示す式(64)、(65)、(66)、(67)、(68)および(69)のようになる(i=1、|Mi|=2、S1=6、S2=4、S3=5であることに注意)。
以上の計算結果は、通信サーバモジュールn1'(=1)が、蓄積サーバモジュールnt=n1=3のw=1番目のセグメント位置にあるマルチメディアデータに、セグメント番号q=0を付与したものを最初のセグメントとしてm1'=2へ送信し、2番目のセグメントとして蓄積サーバモジュールnt=n5=7のw=1番目のセグメント位置にあるマルチメディアデータに、セグメント番号q=4を付与したものを送信し、3番目のセグメントとして蓄積サーバモジュールnt=n6=8のw=1番目のセグメント位置にあるマルチメディアデータに、セグメント番号q=5を付与したものを送信し、4番目のセグメントとして蓄積サーバモジュールnt=n4=6のw=2番目のセグメント位置にあるマルチメディアデータに、セグメント番号q=9を付与したものを送信し、5番目のセグメントとして蓄積サーバモジュールnt=n5=7のw=2番目のセグメント位置にあるマルチメディアデータに、セグメント番号q=10を付与したものを送信し、6番目のセグメントとして蓄積サーバモジュールnt=n3=5のw=3番目のセグメント位置にあるマルチメディアデータに、セグメント番号q=14を付与したものを送信することを意味している。
上記の図16に示した分散RAID型マルチメディアサーバ装置1の蓄積サーバモジュールの蓄積装置上で、該当番組データのそれぞれのシーケンス番号のセグメントが格納されている位置とこれの計算結果とを比較することにより、上記の式(60)により送出セグメントへのシーケンス番号の付与が正しく行われていることがわかる。
また、上記の6つのセグメントのシーケンス番号の並び“0,4,5,9,10,14”に着目すれば、これらのセグメントは分散RAID型マルチメディアサーバ装置2で受信された後、同サーバ装置内の蓄積サーバモジュールm1とm5に交互に格納されていることがわかる。ここで、m1=m1_1、m5=m1_2、|M1|=2であることから、分散RAID型マルチメディアサーバ装置2の通信サーバモジュールmi'は、M1のすべての要素の蓄積サーバモジュールを巡回しながら受信したセグメントを格納するという、上記の
方式(2)で説明した所望の動作を実現できていることが確認できる。分散RAID型マルチメディアサーバ装置1および2の他の通信サーバモジュールについても、同様の方法で動作を確認することができる。
[送信側サーバの蓄積サーバモジュールの動作(実施例2)]
続いて、図を参照しつつ、送信側サーバの蓄積サーバモジュールの動作を説明する。図33に示すように、蓄積サーバモジュールは、集合N’に含まれる各通信サーバモジュールからセグメントの転送終了通知が到着したか否かを示す転送終了フラグの値を全て“0”に初期化する(ステップS3301)。
転送終了フラグC[j]の値が“0”である場合には、通信サーバモジュールnj'からのセグメント要求通知が今後も送られてくることを示し、転送終了フラグC[j]の値が“0”ではない場合(“1”である場合)には、通信サーバモジュールnj'からのセグメント要求がこれ以上送られてこないことを示す。
転送終了フラグの初期化が終了すると、蓄積サーバモジュールは、集合N’の任意の通信サーバモジュールからの通知を待つ(ステップS3302)。この通知としては、番組格納用ファイルのオープン指示、セグメント転送終了通知、およびセグメント要求通知の3種類があり、蓄積サーバモジュールは、これらの通知の種類に応じた動作を実行する。
通信サーバモジュールから通知を受け付けると(ステップS3302肯定)、受信側サーバの蓄積サーバモジュールは、通知がファイルオープン指示通知であるか否か確認する(ステップS3303)。確認の結果、ファイルオープン指示通知である場合には(ステップS3303肯定)、蓄積サーバモジュールは、該当番組格納用のファイルをオープン済みであるか否か確認する(ステップS3304)。確認の結果、ファイルをオープンしていない場合には(ステップS3304否定)、蓄積サーバモジュールは、自身の蓄積装置内の番組ファイルをオープンして、通信サーバモジュールにファイルオープン終了通知を送信する(ステップS3305)。これとは反対に、ファイルをオープン済みである場合には(ステップS3304肯定)、蓄積サーバモジュールは、そのまま、通信サーバモジュールにファイルオープン終了通知を送信する(ステップS3306)。
前述のように、集合N’中の各通信サーバモジュールが動作の開始時においてそれぞれ独立にファイルのオープン指示をすべての蓄積サーバモジュールに対して発行するため、各蓄積サーバモジュールに対して全部でS2回のファイルのオープン指示が届く。しかし、本来、各蓄積サーバモジュールは、自身の蓄積装置内に該当番組格納用のファイルをオープンする処理を1度行えばよい。そこで、最初にファイルオープン指示通知が届いた時にのみ、番組格納用のファイルをオープンする処理を行い、それ以後のファイルオープン指示通知については、そのまま、ファイルオープン終了通知を送信を送信することで対処すればよい。
ここで、ステップS3303の説明に戻ると、通信サーバモジュールから受け付けた通知の内容を確認した結果、ファイルオープン指示通知ではない場合には(ステップS3303否定)、蓄積サーバモジュールは、転送終了通知であるか否か確認する(ステップS3307)。確認の結果、転送終了通知である場合には(ステップS3307肯定)、蓄積サーバモジュールは、その通知を送信した通信サーバモジュールni'に対応する転送終了フラグの値を“1”にセットする(ステップS3308)。このとき、蓄積サーバモジュールは、全通信サーバモジュールに対応する全転送終了フラグの値が“1”であるか否か確認する(ステップS3309)。確認の結果、全転送終了フラグの値が全て“1”である場合には(ステップS3309肯定)、これ以上、通信サーバモジュールから該当番組のセグメントが転送されてくることはないので、番組格納用ファイルをクローズして(ステップS3310)、全ての処理を終了する。
これとは反対に、全転送終了フラグC[j]の値が全て“1”ではない場合には(ステップS3309否定)、蓄積サーバモジュールは、通信サーバモジュールからの通知を待つ。
ここで、ステップS3307の説明に戻ると、通信サーバモジュールから受け付けた通知の内容を確認した結果、転送終了通知でもない場合には(ステップS3307否定)、蓄積サーバモジュールは、マルチメディアデータのセグメント要求が通知されてきたものと判断して、格納位置識別子wの値を参照し、自身の蓄積装置内のすでにオープンしてある番組ファイルのw番目のセグメント位置のマルチメディアデータを読み出す(ステップS3311)。そして、このデータに、自身を表す送信元蓄積サーバモジュール識別子、サーバ内番組データ、および読み出したデータの蓄積装置内におけるセグメント位置を示す番号wを付与した後(ステップS3312)、通信サーバモジュールni'に対してセグメントを送信する(ステップS3313)。以上が、送信側サーバの動作の説明である。
[受信側サーバの通信サーバモジュールの動作(実施例2)]
続いて、図を参照しつつ、受信側サーバの通信サーバモジュールの動作を説明する。受信側サーバでは、集合M’に含まれる1つ1つの通信サーバモジュールがそれぞれ独立に動作を実行する。
すなわち、図34に示すように、受信側サーバの通信サーバモジュールは、管理DBから新規番組受信要求を受信すると(ステップS3401肯定)、この新規番組受信要求に含まれる通信サーバモジュールの集合M’を参照し、この集合の中に自身の通信サーバモジュール識別子が書かれている位置を検出することにより、この集合M’における自身の位置を示す識別子iの値を判別する(ステップS3402)。
そして、通信サーバモジュールは、この判別した識別子iと、集合M’およびMを用いて、上記の式(55)および(56)から写像Ωに基づく集合Miの要素、すなわち、自身がセグメントの転送を担当する蓄積サーバモジュールの集合を決定する(ステップS3403)。
Miを決定すると、通信サーバモジュールは、集合Miの各要素Mi_j(1≦j≦|Mi|)へ転送すべき総セグメント数Ljを計算する(ステップS3404)。このLjは、mi_j=mgi(j)を満たす上記の式(57)の関数gi()、新規番組受信要求内の番組データに含まれる番組長L、およびS3を用いて、以下に示す式(70)のように算出される。
また、このLjは、送信側サーバの対向の通信サーバモジュールni'へセグメントの格納完了通知を送信するための判断に用いられる。
このように、上記の方式(2)に基づく実施例2では、送信側サーバの集合N’に属する通信サーバモジュールは、同サーバ内の集合Nに属する全蓄積サーバモジュールからランダムに番組データのセグメントを受信するため、同通信サーバモジュールにおいて番組データの送信終了を検出することは難しい。このため、実施例2では、以下に説明するように、受信側サーバの通信サーバモジュールにおいてセグメントの受信完了を判断し、送信側サーバに通知する。
上記のステップS3404が終了すると、通信サーバモジュールは、Miの全ての要素の蓄積サーバモジュールに対して、ファイルオープン指示通知を送信することにより番組格納用ファイルのオープンを指示する(ステップS3405)。そして、通信サーバモジュールはファイルオープン終了通知の受信を待機し(ステップS3406)、Miの全ての要素の蓄積サーバモジュールからファイルオープン終了通知を受け付けると、送信側サーバの対向の通信サーバモジュールni'へセグメントの受信準備完了通知を送信し(ステップS3407)、セグメント受信処理へ移行する。
次に、図35を用いて、セグメント受信処理における通信サーバモジュールの動作を説明する。同図に示すように、受信側サーバの通信サーバモジュールは、Miの各要素に対応する格納終了フラグ、および格納セグメントカウンタを全て“0”に初期化する(ステップS3501およびステップS3502)。この格納終了フラグC1[j]は、Mi_jへのセグメント転送が完了したか否かを示すフラグであり、格納セグメントカウンタC2[j]は、Mi_jへ転送したセグメントの数を示すカウンタである。
各フラグ、各カウンタの初期化が終了すると、送信側サーバの対向の通信サーバモジュールni'からの該当番組の新しいセグメントが到着するのを待つ(ステップS3503)。そして、新しいセグメントが到着すると、通信サーバモジュールは、そのセグメントのシーケンス番号qの値および上記の式(14)を用いて、セグメントの転送先蓄積サーバモジュールを示すpの値を求めるとともに(ステップS3504)、および蓄積装置内の該当番組ファイル内におけるセグメント格納位置識別子yの値を求める(ステップS3505)。そして、通信サーバモジュールは、転送先蓄積サーバモジュールmpに対応する格納セグメントカウンタの値をインクリメントする(ステップS3506)。
そして、通信サーバモジュールは、蓄積サーバモジュールmpへ格納すべき該当番組の全てのセグメントの受信が完了したか否か判断する(格納セグメントカウンタの値がLpになっているか否か、ステップS3507)。その結果、蓄積サーバモジュールmpへ格納すべき全てのセグメントの受信が完了していない場合には(ステップS3507否定)、通信サーバモジュールmi'から蓄積サーバモジュールmpへの最後のセグメントの転送ではないことを示す値“0”LASTFLAGにセットし(ステップS3508)、送信側サーバから受信したセグメントのマルチメディアデータに対して、このLASTFLAG、サーバ内番組データ、および位置識別子yを付与するとともに(ステップS3509)、このセグメントを蓄積サーバモジュールmpへ転送して(ステップS3510)、次のセグメント到着を待つ。
一方、通信サーバモジュールは、蓄積サーバモジュールmpへ格納すべき全てのセグメントの受信が完了している場合には(ステップS3507肯定)、通信サーバモジュールmi'から蓄積サーバモジュールmpへの最後のセグメントの転送であることを示す値“1”をLASTFLAGにセットし(ステップS3511)、送信側サーバから受信したセグメントのマルチメディアデータに対して、このLASTFLAG、サーバ内番組データ、および位置識別子yを付与するとともに(ステップS3512)、このセグメントを蓄積サーバモジュールmpへ転送する(ステップS3513)。そして、蓄積サーバモジュールmpに対応する格納終了フラグの値を“1”にセットする(ステップS3514)。
このとき、通信サーバモジュールは、全ての蓄積サーバモジュールに対応する格納終了フラグの値が“1”にセットされているか否か確認する(ステップS3515)。確認の結果、全ての蓄積サーバモジュールに対応する格納終了フラグの値が“1”にセットされている場合には(ステップS3515肯定)、通信サーバモジュールは、自身が担当する全ての蓄積サーバモジュールに対するセグメントの転送が完了したことになるため、送信側サーバの対向の通信サーバモジュールni'に対して、その旨を通知するための格納完了通知を送信するとともに(ステップS3516)、管理DBにも同様の格納完了通知を送信して(ステップS3517)、全ての処理を終了する。
これとは反対に、全ての蓄積サーバモジュールに対応する格納終了フラグの値が“1”にセットされていない場合には(ステップS3515否定)、通信サーバモジュールは、次のセグメントの到着を待つ。
[受信側サーバの蓄積サーバモジュールの動作(実施例2)]
続いて、図を参照しつつ、受信側サーバの蓄積サーバモジュールの動作を説明する。集合Mに含まれる各蓄積サーバモジュールがそれぞれ独立に動作を実行する。
すなわち、図36に示すように、集合Miに含まれる蓄積サーバモジュールは、通信サーバモジュールmi'から番組格納用のファイルオープン指示があると(すなわち、ファイルオープン指示通知を受信すると、ステップS3601肯定)、自身の蓄積装置上に該当番組データの書込み用ファイルをオープンした後(ステップS3602)、通信サーバモジュールmi'へファイルオープン終了通知を送信する(ステップS3603)。
そして、蓄積サーバモジュールは、通信サーバモジュールmi'から該当番組の新しいセグメントが到着するのを待つ(ステップS3604)。新しいセグメントが到着すると、蓄積サーバモジュールは、そのセグメント内のマルチメディアデータを番組格納用ファイルに格納する(ステップS3605)。このとき、セグメント内の位置識別子yによって指定された番組ファイル内の位置にマルチメディアデータを格納する。
マルチメディアデータを格納した後、蓄積サーバモジュールは、受信したセグメント内のLASTFLAGの値が“1”であるか否か確認する(ステップS3606)。確認の結果、LASTFLAGの値が“1”である場合には(ステップS3606肯定)、これ以上、通信サーバモジュールmi'から新しい番組のセグメントが到着することはないので、番組格納用ファイルをクローズして(ステップS3607)、全ての処理を終了する。これとは反対に、LASTFLAGの値が“1”ではない場合には(ステップS3606否定)、次のセグメント到着を待つ。以上が受信側サーバの動作の説明である。
[実施例2による効果]
上述してきたように、実施例2では、上記した課題を解決するための手段(方式(2))を用いて、構成の異なる2台の分散RAID型マルチメディアサーバ装置間で、一方のマルチメディアサーバ装置内の蓄積装置に分散格納された1番組のマルチメディアデータのセグメントを4台の通信サーバモジュールを用いて、他方のマルチメディアサーバ装置に対して並列に転送し、転送先のマルチメディアサーバ装置では、受信したマルチメディアデータのセグメントを順序正しく並び替えて、自装置内の蓄積装置に格納する場合を説明した。このようなことから、実施例2によれば、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で送受信することが可能である。
また、実施例2によれば、受信側として機能する分散RAID型マルチメディアサーバ装置において、各セグメントをそれぞれが備える蓄積装置に分散格納した複数の蓄積サーバモジュールのそれぞれに対して通信サーバモジュールを一意に割り当て、各通信サーバモジュールがそれぞれに割り当てられた蓄積サーバモジュールのみに、受信したセグメントの書き込みを行うので、蓄積サーバモジュールおよび通信サーバモジュール間で排他的に書き込みアクセスを行うことを保証することができ、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で高速に送受信することが可能であるとともに、受信側サーバの実装を容易にすることが可能である。
引き続き、以下では、上記の課題を解決するための手段で説明した方式(3)に基づく本発明の一実施形態を実施例3として説明する。なお、以下の実施例2では、上記の実施例1および2と同様のシステム構成(図8参照)を用いて、分散RAID型マルチメディアサーバ装置1内の蓄積装置3〜8を跨いで格納されたマルチメディアデータを分散RAID型マルチメディアサーバ装置2に転送し、分散RAID型マルチメディアサーバ装置2内の蓄積装置1〜5に跨って格納される実施例1および2と同様の動作(図16参照)について説明する。
また、実施例3では、送信側サーバ、すなわち、図8に例示する分散RAID型マルチメディアサーバ装置1に、課題を解決するための手段の方式(1)内で説明した写像Ψとして上記の実施例1と同様の写像を用い、受信側サーバ、すなわち、分散RAID型マルチメディアサーバ装置2に、課題を解決するための手段の方式(2)内で説明した写像Ωとして上記の実施例2と同様の写像を用いるものとする。したがって、実施例3においても、実施例1において説明した上記の式(45)〜(47)、実施例2において説明した上記の式(55)〜(57)が同様に成立する。また、実施例では、上記の式(47)により、上記の方式(3)で説明した上記の式(39)は以下に示す式(71)のように具体化される。
また、実施例3では、図8に示す制御端末および管理DBは実施例1および2と同様の動作を行うので、詳細な説明は省略する。以下に、実施例3に係る送受信サーバの動作を説明する。
[送信側サーバの通信サーバモジュールの動作(実施例3)]
まず、図を参照しつつ、送信側サーバの通信サーバモジュールの動作を説明する。送信側サーバでは、上記の実施例1と同様に、集合N’に含まれる1つ1つの通信サーバモジュールがそれぞれ独立に動作を実行するが、以下に説明する点が実施例1とは異なる。
具体的には、図37に示すステップS3704の動作(Mj(1≦j≦S2)を求める計算を実行する点)が上記の実施例1とは異なり、それ以外の動作は実施例1で説明した送信側サーバの通信サーバモジュールと同様である(図19参照)。このステップS3704による計算結果は、図38に示すセグメント転送処理において、セグメントを受信側サーバへ送信する際の宛て先の通信サーバモジュールを決定するために必要となるものである。
また、図38に示すセグメント転送処理についても、ステップS3808およびステップS3809の動作が上記の実施例1とは異なり、それ以外の動作は実施例1で説明した送信側サーバの通信サーバモジュールと同様である(図20参照)。すなわち、上記の実施例1では、セグメントの送信先となる受信側サーバの通信サーバモジュールは固定(対向の通信サーバモジュールmi')であるのに対し、実施例3では、ステップS3808によって求められる宛先に対して各セグメントを送信する。これにより、受信側サーバの通信サーバモジュールmj'(1≦j≦S2)が、受信側サーバの集合Mjに含まれる蓄積サーバモジュール以外の蓄積サーバモジュールにアクセスしないという排他制御を実現している。
ここで、セグメントの送信先となる受信側サーバの通信サーバモジュールを求める計算についての理解を助けるために、送信側サーバの通信サーバモジュールn1'の動作を例に挙げて、この通信サーバモジュールn1'が送信するセグメントについて計算した結果を以下の式(72)に示す。
このように、図16に示した分散RAID型マルチメディアサーバ装置1および2の蓄積サーバモジュールの蓄積装置上で、該当番組データのシーケンス番号のそれぞれに対応するセグメントが格納された位置、および前述の各集合の各構成要素と、上記の式(72)に示す計算結果を比較することにより、上記の式(48)によって送出セグメントへのシーケンス番号の付与が正しく行われ、また、上記の式(40)および(71)によって送信先通信サーバモジュールの選定が正しく行われていることが確認できる。
[送信側サーバの蓄積サーバモジュールの動作(実施例3)]
実施例3の送信側サーバの蓄積サーバモジュールの動作は、図39に示すように、上記の実施例1で説明した蓄積サーバモジュールの動作(図24参照)と全く同様であるため説明は省略する。集合Nに含まれる各通信サーバモジュールがそれぞれ独立に図39に示す動作を実行する点も同様である。以上が、送信側サーバの動作の説明である。
[受信側サーバの通信サーバモジュールの動作(実施例3)]
続いて、図を参照しつつ、受信側サーバの通信サーバモジュールの動作を説明する。動作の説明に入る前に、図40を用いて、実施例3に係る受信側サーバの通信サーバモジュールの構成を説明する。実施例3に係る受信側サーバの通信サーバモジュールは、本体およびメッセージ受信部の2つの動作主体を備えて構成される。
メッセージ受信部は、同図に示すように、端末側ネットワークを経由して、送信側サーバの複数の通信サーバモジュールから送信されてくる、ある番組のマルチメディアデータのセグメント、あるいは、転送終了通知を到着順に1つずつ受信し、転送終了通知の場合は転送終了フラグ操作を行い、セグメントの場合はセグメントバッファに格納する処理を行う。
ここで、実施例3では、送信側サーバの通信サーバモジュール同士が相互に同期を取ることなく非同期に動作していることや、端末側ネットワークの伝送特性に遅延を一定に保つこととする等の仮定をしていないことから、端末側ネットワークを経由して送信されてくる、ある番組のマルチメディアデータのセグメントが、どのような順序で通信サーバモジュールに到着するかは不定である。そこで、受信側サーバの通信サーバモジュール本体は、セグメントバッファに一時的に到着順に格納されたマルチメディアデータのセグメントを検索し、後述するように然るべき順序で蓄積サーバモジュールに転送する処理を行う。
まず、図41を用いて、メッセージ受信部の動作を説明する。同図に示すように、メッセージ受信部は、本体によって起動されると(ステップS4101)、送信側サーバの各通信サーバモジュールに対応する転送終了フラグを全て“0”に初期化する(ステップS4102)。実施例3では、上記の実施例1と同様に、送信側サーバの各通信サーバモジュールがセグメントの転送終了を通知してくるため、本フラグを用いて各通信サーバモジュールからの転送終了通知の受信が完了したか否かを記録する。
転送終了フラグの初期化後、メッセージ受信部は、送信側サーバのいずれかの通信サーバモジュールからのメッセージを待つ(ステップS4103)。そして、メッセージ受信部は、送信側サーバのある通信サーバモジュールni'からメッセージを受信すると(ステップS4103肯定)、受信したメッセージが転送終了通知であるか否か確認する(ステップS4104)。確認の結果、転送終了通知ではない場合には(ステップS4104否定)、メッセージ受信部は、受信したメッセージがセグメントであるものと認識し、セグメントをセグメントバッファ内に格納する(ステップS4105)。そして、メッセージ受信部は、次のメッセージを待つ。
一方、転送終了通知である場合には(ステップS4104肯定)、メッセージ受信部は、通信サーバモジュールni'に対応する転送終了フラグの値を“1”にセットして(ステップS4106)、以後、通信サーバモジュールni'からメッセージが転送されてこないことを記録する。このとき、メッセージ受信部は、送信側サーバの全ての通信サーバモジュールに対応する各転送フラグが“1”にセットされているか否か確認する(ステップS4107)。確認の結果、各通信サーバモジュールに対応する転送フラグが全て“1”にセットされている場合には(ステップS4107肯定)、メッセージ受信部は、全ての処理を終了する。これとは反対に、各通信サーバモジュールに対応する転送フラグの全てが“1”にセットされてはいない場合には(ステップS4107否定)、次のメッセージを待つ。
続いて、受信側の通信サーバモジュールの本体の動作について説明する。なお、この本体の動作は、図42に示すステップS4202の動作が追加されている点と、および図31のステップS3104の動作を必要としない点が上記の実施例2と異なっている。すなわち、実施例3では、送信側サーバの通信サーバモジュールはからセグメントの転送終了が通知されるので、後者の処理を必要としない。その他の本体の動作は、図31に示す動作と同様である。
図42に示す処理を終えると、本体は、図43に示すように、セグメント転送処理に移行する。本体は、この転送処理において、課題を解決するための手段内の方式(3)で説明したように、図42に示すステップS4204で求めた集合Miの蓄積サーバモジュールに対して、mi_1からmi_|Mi|をこの順に巡回しながら、セグメントを転送し、その結果、各蓄積装置内の番組ファイルへの書き込み位置を先頭からシーケンシャルに変化させることを達成しなければならない(注:受信側サーバにおける蓄積サーバモジュールへのアクセスの通信サーバモジュール間での排他制御については、送信側サーバによるセグメントの転送先制御により達成される)。
このようなことから、この転送処理では、蓄積装置mi_p(1≦p≦|Mi|)内の番組ファイルのy(1≦y)番目の位置に格納されるべきセグメントを、セグメントの到着順序とは無関係に、上記の式(41)によって定まるx番目にセグメントバッファから抽出して転送する動作を行う。
この動作は、x番目に転送されるセグメントに、上記の実施例2で説明した式(60)によって定まるシーケンス番号qが付与されていることに着目すれば、x、p、yのそれぞれ値をインクリメントしながら、xの値に対応するシーケンス番号qを持つセグメントをセグメントバッファから検索し、そのセグメントを蓄積装置mi_pへのy番目のセグメントとして転送することで実現されることが分かる。
以下に、図43を用いて、この動作の流れを説明する。本体は、転送セグメント番号xの値を“0”に初期化するとともに(ステップS4301)、セグメントの転送先蓄積サーバモジュールを示す識別子p、および同セグメントの格納位置識別子yをそれぞれ“1”に初期化する(ステップS4302)。そして、図42に示すステップS4203で求められたiの値、同図に示すステップS4204で求められた集合Mi、および現在のxの値を用いて、次に転送すべきセグメントのシーケンス番号qの値を上記の式(60)によって算出する(ステップS4303)。
このとき、本体は、セグメントバッファ内を検索して、同バッファ内に未処理のセグメントが存在するか否か判断する(ステップS4304)。その結果、セグメントバッファ内に未処理のセグメントが存在する場合には(ステップS4304肯定)、上記のステップS4303で算出したシーケンス番号qのセグメントが存在するか否か判断する(ステップS4305)。その結果、シーケンス番号qのセグメントが存在する場合には(ステップS4305肯定)、そのセグメントのマルチメディアデータに、管理DBによって通知された番組のサーバ内番組データ、および位置識別子yを付与し(ステップS4306)、このセグメントを蓄積サーバモジュールmi_pに転送して(ステップS4307)、転送したセグメントをセグメントバッファから削除する(ステップS4308)。そして、本体は、x、p、yの値を適切にインクリメントして(ステップS4309〜ステップS4311)、再び、セグメントバッファの検索に戻る。
一方、セグメントバッファ内に存在する未処理のセグメントの中に、シーケンス番号qのセグメントが存在しない場合には(ステップS4305否定)、本体は、シーケンス番号qのセグメントがセグメントバッファ内に格納されるまで、セグメントバッファ内の検索を繰り返す。
ここで、ステップS4304の説明に戻ると、セグメントバッファ内に未処理のセグメントが存在しない場合には(ステップS4304肯定)、本体は、転送終了フラグを参照して、転送終了フラグの値が全て“1”になっているか否か確認する(ステップS4312)。確認の結果、転送終了フラグの値が全て“1”になっている場合には(ステップS4312肯定)、本体は、これ以上、送信側サーバからセグメントが送信されてくることはないため、|Mi|の全蓄積サーバモジュールに対して転送終了通知を送信するとともに(ステップS4313)、管理DBに対しても同様の転送終了通知を送信して(ステップS4314)、処理を終了する。これとは反対に、確認の結果、転送終了フラグの値が全て“1”になってはいない場合には(ステップS4312否定)、本体は、再び、セグメントバッファの検索に戻る。以上が、受信側サーバの動作の説明である。
[受信側サーバの蓄積サーバモジュールの動作(実施例3)]
実施例3の受信側サーバの蓄積サーバモジュールの動作は、図44に示すように、処理の終了判断方法(ステップS4406参照)を除いて、上記の実施例2で説明した蓄積サーバモジュールの動作(図36参照)と全く同様であるため説明は省略する。以上が、受信側サーバの動作の説明である。
[実施例3による効果]
上述してきたように、実施例3では、上記した課題を解決するための手段(方式(3))を用いて、構成の異なる2台の分散RAID型マルチメディアサーバ装置間で、一方のマルチメディアサーバ装置内の蓄積装置に分散格納された1番組のマルチメディアデータのセグメントを4台の通信サーバモジュールを用いて、他方のマルチメディアサーバ装置に対して並列に転送し、転送先のマルチメディアサーバ装置では、受信したマルチメディアデータのセグメントを順序正しく並び替えて、自装置内の蓄積装置に格納する場合を説明した。このようなことから、実施例3によれば、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で送受信することが可能である。
また、実施例3によれば、送信側として機能する分散RAID型マルチメディアサーバ装置において、各セグメントを送信する通信サーバモジュールが、受信側として機能する分散RAID型マルチメディアサーバ装置の通信サーバモジュールをセグメントごとに変更するので、ある1番組のマルチメディア情報を分散型マルチメディアサーバ間で高速に送受信する際に柔軟な対応を実現することが可能である。
以上のように、本発明に係るマルチメディア情報転送蓄積方法、分散型マルチメディアサーバ装置、分散型マルチメディアサーバシステム、マルチメディア情報転送蓄積方法を実現するプログラムおよび当該プログラムを記録した記録媒体は、1番組のマルチメディアデータをいくつかに分割することにより生成された各セグメントを、それぞれが備える蓄積装置に分散させて格納する複数の蓄積サーバモジュールと、当該蓄積サーバモジュールから受信したセグメントを他の外部装置に送信し、他の外部装置から受信したセグメントを当該蓄積サーバモジュールに送信する通信サーバモジュールとをネットワークで通信可能な状態に接続して構成される分散型マルチメディアサーバ装置において、マルチメディアデータの送受信および蓄積を制御する場合に有用であり、特に、1台の通信サーバモジュールのハードウェアの性能限界を上回る速度で、ある1番組のマルチメディア情報を送受信することに適する。
さて、これまで本発明の実施例1〜3について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
(1)システム構成等
図8に示したシステムを構成する分散RAID型マルチメディアサーバ装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、分散RAID型マルチメディアサーバ装置の分散・統合の具体的形態は図示のものに限られず、各通信サーバモジュールおよび各蓄積サーバモジュールをそれぞれ統合して、単数の通信サーバモジュールおよび単数の蓄積サーバモジュールとするなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、分散RAID型マルチメディアサーバ装置1にて行なわれる各処理機能(各通信サーバモジュールおよび各蓄積サーバモジュールの動作により実現される処理機能)は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、上記の実施例1〜3で説明した各通信サーバモジュールおよび各蓄積サーバモジュールの動作は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
サーバの構成を限定した場合の本発明の方式における送信側サーバの動作例を示す図である。
サーバの構成を限定した場合の本発明の方式における受信側サーバの動作例を示す図である。
構成が一般化された複数の分散RAID型マルチメディアサーバ装置からなるシステムの構成例を示す図である。
本発明の方式が実現する動作の概略を説明するための図である。
集合Nの要素を集合N’の要素へ対応させる写像Ψの説明図である。
蓄積サーバモジュールを割り当てられた通信サーバモジュールの動作説明図である。
写像Ψを具体的に規定した場合のセグメント格納方法を説明するための図である。
本発明の実施例1の説明に用いるシステム構成図である。
蓄積装置内の番組データファイルの説明図である。
実施例1のシステムにおける制御端末の動作を示すフローチャートである。
制御端末から管理DBへの転送要求メッセージの形式を示す図である。
実施例1の送信側サーバにおける番組データの格納方式を説明するための図である。
実施例1のシステムにおける管理DBの動作を示すフローチャートである。
実施例1のシステムにおける管理DBの動作を示すフローチャートである。
管理DBが管理するデータベースの内容を示す図である。
実施例1の送受信側サーバにおける集合N、N’、M、M’の設定の様子をまとめて示す図である。
管理DBから通信サーバモジュールへ送信される送信開始通知の形式を示す図である。
管理DBから通信サーバモジュールへ送信される蓄積開始通知の形式を示す図である。
実施例1の送信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例1の送信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例1で規定した写像Ψを具体的に示す図である。
通信サーバモジュールからのセグメント要求通知とセグメントの形式を示す図である。
送信側サーバの通信サーバモジュールから送信されるセグメントの形式を示す図である。
実施例1の送信側サーバの蓄積サーバモジュールの動作を示すフローチャートである。
送信側サーバにおける番組ファイルからのセグメント読出し処理を説明するための図である。
実施例1の受信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例1の受信側サーバの通信サーバモジュールの動作を示すフローチャートである。
受信側サーバ内部におけるセグメントの形式を示す図である。
実施例1の受信側サーバの蓄積サーバモジュールの動作を示すフローチャートである。
受信側サーバにおけるセグメントの番組ファイルへの格納処理を説明するための図である。
実施例2の送信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例2の送信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例2の送信側サーバの蓄積サーバモジュールの動作を示すフローチャートである。
実施例2の受信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例2の受信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例2の受信側サーバの蓄積サーバモジュールの動作を示すフローチャートである。
実施例3の送信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例3の送信側サーバの通信サーバモジュールの動作を示すフローチャートである。
実施例3の送信側サーバの蓄積サーバモジュールの動作を示すフローチャートである。
実施例3の受信側サーバの通信サーバモジュールの構成図である。
実施例3の受信側サーバの通信サーバモジュールにおけるメッセージ受信部の動作を示すフローチャートである。
実施例3の受信側サーバの通信サーバモジュールにおける本体の動作を示すフローチャートである。
実施例3の受信側サーバの通信サーバモジュールにおける本体の動作を示すフローチャートである。
実施例3の受信側サーバの蓄積サーバモジュールの動作を示すフローチャートである。
従来の分散RAID型マルチメディアサーバ装置の例を示す図である。
従来の分散RAID型マルチメディアサーバ装置における受信処理の概要を説明するための図である。
従来の分散RAID型マルチメディアサーバ装置における送信処理の概要を説明するための図である。
従来の分散RAID型マルチメディアサーバ装置における複数番組処理の例を示す図である。