(57)【特許請求の範囲】
【請求項１】
コンテンツデータの書込み処理が行われ得る環境に配置されるビデオ配信サーバにおいて、
ＳＳＤ（Solid State Drive）と、
前記ＳＳＤへ複数のコンテンツデータを書き込む書込み部と、
前記書込み部によりＳＳＤに書き込まれた前記複数のコンテンツデータのうちいずれかのコンテンツデータについて配信が要求されると、前記配信を要求されたコンテンツデータのカウンタ値をインクリメントするカウンタと、
前記配信を要求されたコンテンツデータがカウンタ値の高い方から順に予め設定された順位までの優先データに属するか否かを、前記コンテンツデータ毎のカウンタ値に基づいて判定する判定部と、
前記ＳＳＤから読み出されたコンテンツデータをバッファするための第１の記憶部と、
前記ＳＳＤから読み出されたコンテンツデータをキャッシュする第２の記憶部と、
前記配信を要求されたコンテンツデータが前記優先データに属する場合、前記コンテンツデータを前記ＳＳＤから読み出し、前記読み出したコンテンツデータを、前記第１の記憶部にバッファさせ、前記第２の記憶部にキャッシュさせた後、前記バッファされたコンテンツデータを前記配信要求の要求元へ配信し、前記配信を要求されたコンテンツデータを前記第２の記憶部へキャッシュさせた後に前記コンテンツデータの配信を要求された場合、前記第２の記憶部にキャッシュされる前記コンテンツデータを前記配信要求の要求元へ配信する配信制御部と
を具備することを特徴とするビデオ配信サーバ。
【請求項２】
前記配信を要求されたコンテンツデータの容量が、前記第２の記憶部の容量よりも大きいか否かを判定する容量判定部をさらに具備し、
前記配信制御部は、前記配信を要求されたコンテンツデータの容量が、前記第２の記憶部の容量よりも大きいと前記容量判定部が判定すると前記ＳＳＤから読み出した前記コンテンツデータの一部を前記第２の記憶部にキャッシュさせ、前記配信を要求されたコンテンツデータの一部を前記第２の記憶部へキャッシュさせた後に前記コンテンツデータの配信を要求された場合、前記第２の記憶部から前記コンテンツデータの一部を読み出して前記配信要求の要求元へ配信させると共に、前記ＳＳＤから前記コンテンツデータのその他を読み出して前記配信要求の要求元へ配信することを特徴とする請求項１記載のビデオ配信サーバ。
【請求項３】
コンテンツデータの書込み処理が行われ得る環境に配置されるビデオ配信サーバにおいて、
ＳＳＤ（Solid State Drive）と、
前記ＳＳＤへ複数のコンテンツデータを書き込む書込み部と、
前記書込み部によりＳＳＤに書き込まれた前記複数のコンテンツデータのうちいずれかのコンテンツデータについて配信が要求されると、前記配信を要求されたコンテンツデータのカウンタ値をインクリメントし、前記カウンタ値を所定期間が経過する度にリセットするカウンタと、
前記配信を要求されたコンテンツデータがカウンタ値及び登録カウンタ値の高い方から順に予め設定された順位までの優先データに属するか否かを、前記コンテンツデータ毎のカウンタ値と、現期間より前に登録された登録カウンタ値とに基づいて判定する判定部と、
前記優先データに属すると判定されたコンテンツデータのＩＤと、前記優先データに属すると判定された時のカウンタ値とを、登録ＩＤと登録カウンタ値として登録する登録部と、
前記ＳＳＤから読み出されたコンテンツデータをバッファするための第１の記憶部と、
前記ＳＳＤから読み出されたコンテンツデータをキャッシュする第２の記憶部と、
前記期間内に配信を要求されたコンテンツデータが前記優先データに属する場合、前記コンテンツデータにおける前記期間相当の部分データを順次前記ＳＳＤから読み出して前記第２の記憶部にキャッシュさせ、前記第２の記憶部にキャッシュされる部分データを前記配信要求の要求元へ配信する配信制御部と
を具備することを特徴とするビデオ配信サーバ。
【請求項４】
前記配信制御部は、前記期間が経過する度に、前記第２の記憶部にキャッシュされる部分データのうち最も古い部分データを前記第２の記憶部から削除することを特徴とする請求項３記載のビデオ配信サーバ。
【請求項５】
前記登録部は、前記登録ＩＤにより特定されるコンテンツデータの全ての読み出しが完了すると、前記完了するコンテンツデータの登録ＩＤ及び登録カウンタ値を削除することを特徴とする請求項３記載のビデオ配信サーバ。
【請求項６】
前記配信制御部は、前記期間内に配信を要求されたコンテンツデータが前記優先データに属する場合、前記第１の記憶部に前記ＳＳＤから読み出した部分データをバッファさせた後、前記期間中は前記第１の記憶部にバッファされている部分データを前記配信要求の要求元へ配信し、前記期間経過後には、前記第２の記憶部にキャッシュされている部分データを前記配信要求元へ配信することを特徴とする請求項３記載のビデオ配信サーバ。
【請求項７】
前記配信制御部は、前記配信要求を受信した期間とは異なる期間に、前記第２の記憶部にキャッシュされるコンテンツデータの配信が要求された場合、前記第２の記憶部にキャッシュされる部分データを前記配信要求の要求元へ配信させることを特徴とする請求項３記載のビデオ配信サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＳＳＤ（Solid State Drive）にデータを保存するビデオ配信サーバ及びこのビデオ配信サーバで用いられるビデオ配信方法に関する。
【背景技術】
【０００２】
ビデオ配信サーバは、内部のストレージに保存されたコンテンツデータを、多数のユーザへ同時に配信する機能を備えている。多数のユーザへコンテンツデータを同時に配信するため、ビデオ配信サーバでは、コンテンツデータの高速な読み出しが要求される。そこで、ビデオ配信サーバは、ストレージに複数のＳＳＤを備え、複数のＳＳＤからＲＡＩＤ方式を用いてコンテンツデータを並列して読み出すようにしている。なお、ＳＳＤは、読取装置をディスク上で移動させる時間、及び、所望のデータを記録している領域が読取装置まで回転してくるまでの時間がないため、ＨＤＤ（Hard Disc Drive）よりも高速に読み出し及び書き込みが可能である。また、多数のユーザへコンテンツデータを同時に配信するため、ビデオ配信サーバは、配信のためのネットワーク処理をＦＰＧＡ（Field Programmable Gate Array）によるハードウェアベースのプロトコル処理で実施するようにしている。
【０００３】
しかしながら、ＳＳＤに対してコンテンツデータの書き込み処理を要求した直後に、読み出し要求を行った場合、読出し処理に遅延が発生するという問題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１５３２２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上のように、ＳＳＤを備えるビデオ配信サーバに対して、書込み処理を要求した直後に読出し処理を要求すると、読出し処理に遅延が発生するという問題がある。
【０００６】
そこで目的は、書込み処理が要求され得る環境下であっても、読出し処理における遅延の発生を抑えることが可能なビデオ配信サーバと、このビデオ配信サーバに用いられるビデオ配信方法を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態によれば、ビデオ配信サーバは、ＳＳＤ、カウンタ、判定部、出力部、第１の配信制御部及び第２の配信制御部を具備する。ＳＳＤは、複数のコンテンツデータが書き込まれる。カウンタは、前記ＳＳＤに書き込まれた前記複数のコンテンツデータのうちいずれかのコンテンツデータについて配信が要求されると、配信を要求されたコンテンツデータのカウンタ値をインクリメントする。判定部は、前記コンテンツデータ毎のカウンタ値をそれぞれ比較することで、要求されたコンテンツデータが、カウンタ値の高い方から順に予め設定された順位までの優先データに属するか否かを判定する。出力部は、前記ＳＳＤから読み出されたコンテンツデータをバッファするための第１の記憶領域と、前記ＳＳＤから読み出されたコンテンツデータをキャッシュするための第２の記憶領域とを備え、前記第１の記憶領域にバッファされるコンテンツデータ又は第２の記憶領域にキャッシュされるコンテンツデータを配信する。第１の配信制御部は、受信した第１の配信要求の対象である第１の対象コンテンツデータが前記優先データに属する場合、前記第１の対象コンテンツデータを前記ＳＳＤから読み出し、前記読み出した第１の対象コンテンツデータを前記第１の記憶領域にバッファさせ、前記読み出した第１の対象コンテンツデータを前記第２の記憶領域にキャッシュさせた後、前記バッファされる第１の対象コンテンツデータを前記第１の配信要求の要求元へ配信させる。第２の配信制御部は、受信した第２の配信要求の対象である第２の対象コンテンツデータが前記優先データに属しない場合、前記第２の配信要求に応じて前記第２の対象コンテンツデータを前記ＳＳＤから読み出し、前記読み出した第２の対象コンテンツデータを前記第１の記憶領域にバッファさせた後、前記第２の配信要求の要求元へ配信させる。また、前記第１の配信制御部は、前記第１の対象コンテンツデータを前記第２の記憶領域へキャッシュさせた後に前記第１の対象コンテンツデータに対する第３の配信要求を受信した場合、前記第２の記憶領域にキャッシュされる前記第１の対象コンテンツデータを前記第３の配信要求の要求元へ配信させる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係るビデオ配信サーバが接続されるネットワークシステムの機能構成を示すブロック図である。
【図２】図１のビデオ配信サーバの機能構成を示すブロック図である。
【図３】図２に示す主制御部の機能構成を示すブロック図である。
【図４】図２に示す主制御部が通信端末へコンテンツデータを配信する際の動作を示すフローチャートである。
【図５】コンテンツＩＤ：Ｎｏ．０５のコンテンツデータが図２に示される第２の記憶領域に記憶される場合の模式図を示す図である。
【図６】コンテンツＩＤとカウンタ値との対応の例を示す図である。
【図７】第２の実施形態に係るデータ配信サーバが具備する主制御部の機能構成を示すブロック図である。
【図８】図７に示す主制御部の配信要求に応じた動作を示すフローチャートである。
【図９】所定のコンテンツデータに対する配信要求数の時間推移の例を示す図である。
【図１０】図７に示す主制御部がコンテンツ部分データを出力する記憶領域を切り替える動作を示すフローチャートである。
【図１１】図７に示す主制御部が第２の記憶領域にコンテンツ部分データをキャッシュする動作を示すフローチャートである。
【図１２】図７に示す主制御部により、第２の記憶領域にキャッシュされるコンテンツ部分データの例を示す図である。
【発明を実施するための形態】
【０００９】
以下、実施の形態について、図面を参照して説明する。
【００１０】
（第１の実施形態）  
図１は、第１の実施形態に係るビデオ配信サーバ１０が接続されるネットワークシステムの機能構成を示すブロック図である。ネットワークシステムは、ビデオ配信サーバ１０と、操作端末２０と、例えば、ＰＣ、スマートフォン、携帯電話、ＳＴＢ（Set-Top Box）及びＩＰＴＶ等の複数の通信端末３０とを具備する。ビデオ配信サーバ１０は、例えばＬＡＮケーブルを介して操作端末２０と接続する。また、ビデオ配信サーバ１０は、ネットワークを介して通信端末３０と接続する。
【００１１】
ビデオ配信サーバ１０は、通信端末３０からの配信要求に応じて、先行ダウンロード方式、又は、ストリーミング方式等により、自装置に記録されているコンテンツを通信端末３０へ配信する。なお、コンテンツの配信は、ＨＴＴＰ配信プロトコル等、様々な配信プロトコルが用いられる。
【００１２】
ビデオ配信サーバ１０は、操作端末２０からの書込み要求に応じて、操作端末２０から供給される新たなコンテンツを記録する。また、ビデオ配信サーバ１０は、操作端末２０からの書込み要求に応じて、操作端末２０から供給される新たなコンテンツを、すでに記録しているコンテンツと入れ替える。
【００１３】
図２は、第１の実施形態に係るビデオ配信サーバ１０の機能構成を示すブロック図である。図２に示すビデオ配信サーバ１０は、要求受付部１１、インタフェース部１２、ＲＡＩＤインタフェース１３、ＳＳＤ（Solid State Drive）１４−１〜１４−ｎ、ＲＡＩＤ制御部１５、出力部１６及び主制御部を具備する。要求受付部１１、インタフェース部１２、ＲＡＩＤインタフェース１３、ＲＡＩＤ制御部１５、出力部１６及び主制御部１７は、それぞれバスにより接続される。
【００１４】
要求受付部１１は、ネットワークを介して伝送される、通信端末３０からの配信要求を受け付ける。要求受付部１１は、受け付けた配信要求を主制御部１７へ出力する。
【００１５】
インタフェース部１２は、操作端末２０から供給される書込み要求と、操作端末２０から供給されるコンテンツデータを受信する。インタフェース部１２は、受信した書込み要求を主制御部１７へ出力し、コンテンツデータをＲＡＩＤ制御部１５へ出力する。
【００１６】
ＲＡＩＤインタフェース１３は、バスとＳＳＤ１４−１〜１４−ｎとのインタフェースである。バスを伝送する信号はＲＡＩＤインタフェース１３を介してＳＳＤ１４−１〜１４−ｎへ供給され、ＳＳＤ１４−１〜１４−ｎから出力される信号はＲＡＩＤインタフェース１３を介してバスへ供給される。
【００１７】
ＲＡＩＤ制御部１５は、主制御部１７からの書込み要求に応じて、ＲＡＩＤ方式を利用したデータの書き込みをＳＳＤ１４−１〜１４−ｎに対して行う。すなわち、ＲＡＩＤ制御部１５は、主制御部１７からの書込み要求に応じて、インタフェース部１２から供給されるコンテンツデータを所定の容量ずつ分割すると共に、このとき分割した分割データを復元するための冗長データを作成する。ＲＡＩＤ制御部１５は、分割データと冗長データとをＳＳＤ１４−１〜１４−ｎに記憶させる。
【００１８】
また、ＲＡＩＤ制御部１５は、主制御部１７からの読出し要求に応じて、ＲＡＩＤ方式を利用したデータの読出しをＳＳＤ１４−１〜１４−ｎに対して行う。すなわち、ＲＡＩＤ制御部１５は、主制御部１７からの読出し要求に応じて、ＳＳＤ１４−１〜１４−ｎに記録される分割データと冗長データとを読み出す。ＲＡＩＤ制御部１５は、読み出した分割データと冗長データとから異常のあるデータ又は欠落したデータを復元し、元のコンテンツデータを作成する。ＲＡＩＤ制御部１５は、作成したコンテンツデータを出力部１６へ出力する。
【００１９】
ＲＡＩＤ制御部１５は、主制御部１７から、後述する管理情報が付加された読出し要求が供給された場合、管理情報により指定される範囲のコンテンツデータを出力部１６へ出力する。
【００２０】
ＳＳＤ１４−１〜１４−ｎは、それぞれが記憶媒体を備える。ＳＳＤ１４−１〜１４−ｎは、ＲＡＩＤ制御部１５からの書込み制御に応じ、ＲＡＩＤ制御部１５から供給される分割データ及び冗長データをそれぞれの記憶媒体に並列して書き込む。ＳＳＤ１４−１〜１４−ｎに記録される分割データ及び冗長データは、ストライピング構造をとる。また、ＳＳＤ１４−１〜１４−ｎは、ＲＡＩＤ制御部１５からの読出し制御に応じ、それぞれの記憶媒体に書き込まれている分割データ及び冗長データを並列して読み出す。なお、本実施形態では、ＳＳＤ１４−１〜１４−ｎは、複数のコンテンツデータを記録している場合を例に説明する。
【００２１】
出力部１６は、ＭＡＣ（Media Access Controller）１６１、第１の記憶領域１６２及び第２の記憶領域１６３を備える。
【００２２】
第１の記憶領域１６２は、例えば、ＳＤＲＡＭから成る。第１の記憶領域１６２は、主制御部１７からのバッファ指示により、ＲＡＩＤ制御部１５から供給されるコンテンツデータを、配信要求に応じて確立されるセッション毎に、リングバッファに保持する。ここで、本実施形態におけるバッファ指示とは、第１の記憶領域１６２にコンテンツデータを保持させる指示を指す。第１の記憶領域１６２は、保持したコンテンツデータをＭＡＣ１６１の処理に合わせて出力する。
【００２３】
第２の記憶領域１６３は、例えば、ＳＤＲＡＭから成る。第２の記憶領域１６３には、主制御部１７からのキャッシュ指示に応じて、ＲＡＩＤ制御部１５から供給されるコンテンツデータがキャッシュされる。第２の記憶領域１６３は、主制御部１７からの出力指示に応じて、キャッシュしたコンテンツデータをＭＡＣ１６１へ出力する。
【００２４】
ＭＡＣ１６１は、例えば、ＦＰＧＡ（Field Programmable Gate Array）から成る。ＭＡＣ１６１は、主制御部１７からのセッション確立要求に従い、配信要求を送信した通信端末３０とのセッションを確立する。ＭＡＣ１６１は、第１又は第２の記憶領域から供給されるコンテンツデータを、確立したセッションの通信プロトコルに則った形式に変換する。ＭＡＣ１６１は、変換後の信号をネットワークへ出力する。
【００２５】
主制御部１７は、例えば、ＣＰＵ（Central Processing Unit）を備え、メモリ１７１に記録されるプログラム及びデータを用いて駆動することで、図３に示す機能を有する。すなわち、主制御部１７は、セッション確立部１７２、カウンタ１７３、判定部１７４、第１の配信制御部１７５、第２の配信制御部１７６及びデータサイズ判定部１７７を備える。
【００２６】
セッション確立部１７２は、要求受付部１１から配信要求が供給されると、出力部１６へセッション確立要求を出力する。
【００２７】
カウンタ１７３は、要求受付部１１から配信要求が供給されると、配信要求の対象となっているコンテンツデータのコンテンツＩＤを確認する。カウンタ１７３は、要求されたコンテンツＩＤに対応したカウンタ値をインクリメントする。カウンタ１７３は、コンテンツＩＤに対応したカウンタ値をメモリ１７１に記憶させる。
【００２８】
判定部１７４は、カウンタ値がインクリメントされると、メモリ１７１に記録されている全てのコンテンツＩＤに対応したカウンタ値を比較し、要求されたコンテンツデータが優先データであるか否かを判定する。ここで、優先データとは、カウンタ値の高い方から順に予め設定された順位のコンテンツデータ、つまり、カウンタ値が上位Ｎ番までのコンテンツデータのことをいう。
【００２９】
第１の配信制御部１７５は、判定部１７４により、要求されたコンテンツデータが優先データであると判定された場合に、要求されたコンテンツデータの配信処理を行う。すなわち、第１の配信制御部１７５は、判定部１７４により、要求されたコンテンツデータが優先データであると判定された場合、要求されたコンテンツデータがすでに第２の記憶領域１６３に記憶済みであるか否かを判断する。
【００３０】
要求されたコンテンツデータが記憶されていない場合、第１の配信制御部１７５は、コンテンツデータを出力するように、ＲＡＩＤ制御部１５へ読出し要求を出力する。第１の配信制御部１７５は、データサイズ判定部１７７からの通知に基づいてコンテンツデータの容量が第２の領域１６３の容量を超えるか否かを把握し、超える場合は、ＲＡＩＤ制御部１５から出力されるコンテンツデータの一部を第２の記憶領域１６３でキャッシュさせるように、出力部１６へキャッシュ指示を出力する。第１の配信制御部１７５は、ＲＡＩＤ制御部１５から出力されるコンテンツデータのその他の部分をリングバッファで保持するように、出力部１６へバッファ指示を出力する。また、コンテンツデータの容量が第２の領域１６３の容量を超えない場合は、第１の配信制御部１７５は、ＲＡＩＤ制御部１５から出力されるコンテンツデータを第２の記憶領域１６３でキャッシュさせるように、出力部１６へキャッシュ指示を出力する。第１の配信制御部１７５は、ＲＡＩＤ制御部１５から出力されるコンテンツデータを第１の記憶領域１６２のリングバッファで保持するように、出力部１６へバッファ指示を出力する。
【００３１】
要求されたコンテンツデータが記憶済みである場合、第１の配信制御部１７５は、メモリ１７１に記録されている管理情報を参照し、キャッシュされているコンテンツデータが、ＳＳＤ１４−１〜１４−ｎに記録されているコンテンツデータの一部であるか否かを判断する。ＳＳＤ１４−１〜１４−ｎに記録されているコンテンツデータの一部である場合、第１の配信制御部１７５は、第２の記憶領域１６３にキャッシュされているコンテンツデータを出力するように、出力部１６へ出力指示を出力する。第１の配信制御部１７５は、第２の記憶領域１６３にキャッシュされていない部分を出力するように、ＲＡＩＤ制御部１５へ、管理情報を付加した読出し要求を出力する。第１の配信制御部１７５は、ＲＡＩＤ制御部１５から出力されるコンテンツデータのその他の部分をリングバッファで保持するように、出力部１６へバッファ指示を出力する。
【００３２】
ＳＳＤ１４−１〜１４−ｎに記録されているコンテンツデータの全体が第２の記憶領域１６３にキャッシュされている場合、第１の配信制御部１７５は、第２の記憶領域１６３にキャッシュされているコンテンツデータを出力するように、出力部１６へ出力指示を出力する。
【００３３】
第２の配信制御部１７６は、判定部１７４により、要求されたコンテンツデータが優先データでないと判定された場合に、要求されたコンテンツデータの配信処理を行う。すなわち、第２の配信制御部１７６は、判定部１７４により、要求されたコンテンツデータが優先データでないと判定された場合、コンテンツデータを出力するように、ＲＡＩＤ制御部１５へ読出し要求を出力する。第２の配信制御部１７６は、ＲＡＩＤ制御部１５から出力されるコンテンツデータをリングバッファで保持するように、出力部１６へバッファ指示を出力する。
【００３４】
データサイズ判定部１７７は、ＳＳＤ１４−１〜１４−ｎから読み出されたコンテンツデータを第２の領域１６３にキャッシュする際、要求されたコンテンツデータの容量が、第２の記憶領域１６３において１つ分のコンテンツデータをキャッシュするように割り当てられた割当て領域より小さいか否かを判定する。小さい場合、データサイズ判定部１７７は、小さい旨を第１の配信制御部１７５へ通知する。大きい場合、大きい旨を第１の配信制御部１７５へ通知する。第１の配信制御部１７５は、小さい旨の通知を受けた場合、ＳＳＤ１４−１〜１４−ｎに記録されているコンテンツデータを第２の記憶領域１６３にキャッシュさせる。大きい旨の通知を受けた場合、第１の配信制御部１７５は、割当て領域にキャッシュ可能な範囲のコンテンツデータを割当て領域にキャッシュさせ、割当て領域に記憶させた範囲を把握することが可能な管理情報をメモリ１７１へ記録する。
【００３５】
次に、以上のように構成されたデータ配信サーバ１０による動作を詳細に説明する。
【００３６】
図４は、本実施形態に係る主制御部１７が通信端末３０へコンテンツデータを配信する際の動作を示すフローチャートである。図４では、カウンタ値が高い方からＴＯＰ３のコンテンツデータを優先データと判定する場合を例に説明する。図５は、通信端末３０のユーザからコンテンツＩＤ：Ｎｏ．０５のコンテンツデータが要求された際に、コンテンツＩＤ：Ｎｏ．０５のコンテンツデータが第２の記憶領域１６３に記憶される場合の模式図を示す図である。なお、図６は、コンテンツＩＤと、カウンタ値との対応の例を示す図である。
【００３７】
まず、主制御部１７は、要求受付部１１から配信要求が供給されると、セッション確立部１７２により、出力部１６へセッション確立要求を出力する（ステップＳ４１）。出力部１６のＭＡＣ１６１は、主制御部１７からのセッション確立要求に従い、配信要求を送信した通信端末３０とのセッションを確立する。
【００３８】
カウンタ１７３は、配信要求の対象となっているコンテンツデータのコンテンツＩＤを確認する（ステップＳ４２）。カウンタ１７３は、要求されたコンテンツＩＤに対応したカウンタ値をインクリメントする（ステップＳ４３）。図５では、要求されるコンテンツＩＤはＮｏ．０５であるため、コンテンツＩＤ：Ｎｏ．０５のカウンタ値がインクリメントされる。
【００３９】
判定部１７４は、全てのコンテンツＩＤに対応したカウンタ値を比較し、要求されたコンテンツデータが優先データであるか否かを判定する（ステップＳ４４）。図５では、カウンタ１７３のインクリメントにより、Ｎｏ．０５のカウンタ値は「１０」となり、ＴＯＰ１であるため、主制御部１７での処理は、ステップＳ４４におけるＹｅｓへ進むことになる。
【００４０】
第１の配信制御部１７５は、要求されたコンテンツデータが優先データであると判定された場合（ステップＳ４４のＹｅｓ）、要求されたコンテンツデータがすでに第２の記憶領域１６３に記憶済みであるか否かを判断する（ステップＳ４５）。要求されたコンテンツデータが優先データでないと判定された場合（ステップＳ４４のＮｏ）、第２の配信制御部１７６は、ＲＡＩＤ制御部１５へ読出し要求を出力し、出力部１６へバッファ指示を出力する（ステップＳ４６）。ＲＡＩＤ制御部１５は、主制御部１７からの読出し要求に応じて、ＳＳＤ１４−１〜１４−ｎから読み出した分割データと冗長データとに基づいてコンテンツデータを作成し、作成したコンテンツデータを出力部１６へ出力する。出力部１６の第１の記憶領域１６２は、主制御部１７からのバッファ指示に応じてＲＡＩＤ制御部１５から供給されるコンテンツデータをリングバッファに保持し、保持したコンテンツデータをＭＡＣ１６１へ出力する。
【００４１】
ステップＳ４５において、要求されたコンテンツデータがすでに第２の記憶領域１６３に記憶済みである場合（ステップＳ４５のＹｅｓ）、第１の配信制御部１７５は、メモリ１７１に記録されている管理情報を参照し、キャッシュされているコンテンツデータが、ＳＳＤ１４−１〜１４−ｎに記録されているコンテンツデータの一部であるか否かを判断する（ステップＳ４７）。記憶されていない場合（ステップＳ４５のＮｏ）、データサイズ判定部１７７は、要求されたコンテンツデータの容量が、第２の記憶領域１６３において１つ分のコンテンツデータをキャッシュするように割り当てられた割当て領域より小さいか否かを判定する（ステップＳ４８）。
【００４２】
ステップＳ４７において、キャッシュされているコンテンツデータが、ＳＳＤ１４−１〜１４−ｎに記録されているコンテンツデータの一部である場合（ステップＳ４７のＹｅｓ）、第１の配信制御部１７５は、ＲＡＩＤ制御部１５へ管理情報を付加した読出し要求を出力し、出力部１６へ出力指示を出力する。そして、ＲＡＩＤ制御部１５は、第２の記憶領域１６３のコンテンツデータの配信後、出力部１６へバッファ指示を出力する（ステップＳ４９）。ＲＡＩＤ制御部１５は、主制御部１７からの、管理情報が付加された読出し要求に応じて、管理情報により指定される範囲のコンテンツデータをＳＳＤ１４−１〜１４−ｎから読み出し、出力部１６へ出力する。出力部１６の第２の記憶領域１６３は、主制御部１７からの出力指示に応じて、キャッシュしたコンテンツデータをＭＡＣ１６１へ出力する。出力部１６の第１の記憶領域１６２は、主制御部１７からのバッファ指示に応じてＲＡＩＤ制御部１５から供給されるコンテンツデータをリングバッファに保持し、保持したコンテンツデータをＭＡＣ１６１へ出力する。
【００４３】
ステップＳ４７において、ＳＳＤ１４−１〜１４−ｎに記録されているコンテンツデータの全体である場合（ステップＳ４７のＮｏ）、第１の配信制御部１７５は、出力部１６へ出力指示を出力する（ステップＳ４１０）。出力部１６の第２の記憶領域１６３は、主制御部１７からの出力指示に応じて、キャッシュしたコンテンツデータをＭＡＣ１６１へ出力する。
【００４４】
ステップＳ４８において、要求されたコンテンツデータの容量が割当て領域より小さい場合（ステップＳ４８のＹｅｓ）、データサイズ判定部１７７は、小さい旨を第１の配信制御部１７５へ通知する。第１の配信制御部１７５は、小さい旨の通知に応じて、ＲＡＩＤ制御部１５へ読出し要求を出力し、出力部１６へバッファ指示を出力し、出力部１６へキャッシュ指示を出力する（ステップＳ４１１）。ＲＡＩＤ制御部１５は、主制御部１７からの読出し要求に応じて、ＳＳＤ１４−１〜１４−ｎから読み出した分割データと冗長データとに基づいてコンテンツデータを作成し、作成したコンテンツデータを出力部１６へ出力する。出力部１６の第２の記憶領域１６３は、主制御部１７からのキャッシュ指示に応じて、ＲＡＩＤ制御部１５から供給されるコンテンツデータをキャッシュする。出力部１６の第１の記憶領域１６２は、主制御部１７からのバッファ指示に応じてＲＡＩＤ制御部１５から供給されるコンテンツデータをリングバッファに保持し、保持したコンテンツデータをＭＡＣ１６１へ出力する。
【００４５】
要求されたコンテンツデータの容量が割当て領域より大きい場合（ステップＳ４８のＮｏ）、データサイズ判定部１７７は、大きい旨を第１の配信制御部１７５へ通知する。第１の配信制御部１７５は、大きい旨の通知に応じて、ＲＡＩＤ制御部１５へ読出し要求を出力し、出力部１６へバッファ指示を出力し、出力部１６へキャッシュ指示を出力する（ステップＳ４１２）。このとき、第１の配信制御部１７５は、割当て領域に記憶させた範囲を把握することが可能な管理情報をメモリ１７１へ記録する。ＲＡＩＤ制御部１５は、主制御部１７からの読出し要求に応じて、ＳＳＤ１４−１〜１４−ｎから読み出した分割データと冗長データとに基づいてコンテンツデータを作成し、作成したコンテンツデータを出力部１６へ出力する。出力部１６の第２の記憶領域１６３は、主制御部１７からのキャッシュ指示に応じて、ＲＡＩＤ制御部１５から供給されるコンテンツデータの一部を割当て領域にキャッシュする。出力部１６の第１の記憶領域１６２は、主制御部１７からのバッファ指示に応じてＲＡＩＤ制御部１５から供給されるコンテンツデータをリングバッファに保持し、保持したコンテンツデータをＭＡＣ１６１へ出力する。
【００４６】
以上のように、第１の実施形態では、主制御部１７は、配信要求がされた回数に基づき、要求回数の多い順にコンテンツデータの順位をつける。主制御部１７は、高順位のコンテンツデータを優先データであるとし、優先データであるコンテンツデータを第２の記憶領域１６３にキャッシュさせる。そして、優先データであるコンテンツデータに対する配信要求があった場合、主制御部１７は、キャッシュされているコンテンツデータを読み出し、要求元へ配信するようにしている。これにより、要求頻度の高いコンテンツデータは、キャッシュされている第２の記憶領域１６３から読み出され、要求元へ配信されることになる。つまり、配信要求が頻繁なコンテンツデータについては、配信要求を受ける度に、ＳＳＤ１４−１〜１４−ｎからコンテンツデータを読み出す必要がなくなる。すなわち、ＳＳＤ１４−１〜１４−ｎへ読出し指示を与える頻度を抑えることが可能となる。
【００４７】
したがって、第１の実施形態に係るビデオ配信サーバによれば、ＳＳＤに対する読出し処理の回数を抑えることが可能であるため、書込み処理が要求され得る環境下であっても、読出し処理における遅延の発生を抑えることができる。
【００４８】
また、第１の実施形態では、要求されたコンテンツデータの容量が、第２の記憶領域１６３の割当て領域の容量よりも大きい場合、割当て領域にキャッシュ可能な一部のコンテンツデータのみをキャッシュする。そして、このコンテンツデータに対する配信要求があった場合、一部を第２の記憶領域１６３から読み出し、残りをＳＳＤ１４−１〜１４−ｎから読み出すようにしている。これにより、データ配信サーバ１０は、ＳＳＤ１４−１〜１４−ｎに記録されるコンテンツデータの容量が大きい場合であっても、正常に動作することが可能となる。
【００４９】
（第２の実施形態）  
上記第１の実施形態では、優先データであるコンテンツデータを第２の記憶領域１６３へ丸ごと又は第２の記憶領域１６３に記憶可能な容量分だけ記憶させるようにしている。そのため、第２の記憶領域１６３は、ある程度大容量の記憶領域を有することが要求される。また、コンテンツデータの一部しか第２の記憶領域１６３へ記憶されない場合、残りのコンテンツデータはＳＳＤから読み出しを行うことになり、その場合はＳＳＤからの読み出し遅延が発生する惧れがある。そこで、第２の実施形態では、第２の記憶領域１６３の容量を、より小さくするとともに、ＳＳＤから読み出す際の遅延の影響をさらに抑えるように構成する。
【００５０】
図７は、第２の実施形態に係るデータ配信サーバ２０が具備する主制御部１８の機能構成を示すブロック図である。図７において図３と共通する部分には同じ符号を付して示す。
【００５１】
図２のビデオ配信サーバと比較すると、第２の実施形態では、第１の記憶領域１６２の代わりに第１の記憶領域１６４を備える。図２の第１の記憶領域１６２と対応する第１の記憶領域１６４は、例えば、ＳＤＲＡＭから成る。第１の記憶領域１６４は、主制御部１７からのバッファ指示により、ＲＡＩＤ制御部１５から供給されるコンテンツデータ又はコンテンツ部分データをリングバッファに保持する。第１の記憶領域１６４は、保持したコンテンツデータ又はコンテンツ部分データをＭＡＣ１６１の処理に合わせて出力する。本実施形態において、コンテンツ部分データとは、コンテンツデータのうち、予め設定された時間分のデータを示す。また、第１の記憶領域１６４は、主制御部１７からの第２の出力指示に応じて、保持したコンテンツ部分データをＭＡＣ１６１へ出力する。
【００５２】
図７に示す主制御部１８は、例えば、ＣＰＵを備え、メモリ１７１に記録されるプログラム及びデータを用いて駆動することで、図７に示す機能を有する。すなわち、主制御部１８は、セッション確立部１７２、カウンタ１８１、登録部１８２、判定部１８３、第１の配信制御部１８４及び第２の配信制御部１８５を備える。
【００５３】
カウンタ１８１は、要求受付部１１から配信要求が供給されると、配信要求の対象となっているコンテンツデータのコンテンツＩＤを確認する。カウンタ１８１は、要求されたコンテンツＩＤに対応したカウンタ値をインクリメントする。カウンタ１８１は、コンテンツＩＤに対応したカウンタ値をメモリ１７１に記憶させる。カウンタ１８１は、予め設定された時間の経過毎に、メモリ１７１に記憶されているカウンタ値を消去する。
【００５４】
判定部１８３は、要求されたコンテンツデータのコンテンツＩＤが、現時間帯で登録部１８２によりメモリ１７１に記憶された、後述する登録ＩＤと同一であるか否かを判定する。同一である場合、判定部１８３は、要求されたコンテンツデータのコンテンツＩＤと、要求されたコンテンツデータのカウンタ値とを登録部１８２へ通知する。
【００５５】
要求されたコンテンツデータのコンテンツＩＤが、現時間帯で登録部１８２によりメモリ１７１に記憶された登録ＩＤと同一でない場合、判定部１８３は、全てのコンテンツＩＤに対応したカウンタ値と、登録部１８２によりメモリ１７１に記憶された登録カウンタ値とを比較し、要求されたコンテンツデータが優先データであるか否かを判定する。第２の実施形態では、優先データとは、カウンタ値及び登録カウンタ値の高い方から順に予め設定された順位のコンテンツデータ、つまり、カウンタ値及び登録カウンタ値が上位Ｎ番までのコンテンツデータのことをいう。
【００５６】
登録部１８２は、判定部１８３で優先データであると判定されたコンテンツデータのコンテンツＩＤと、コンテンツデータが優先データであると判定された際のカウンタ値とを、それぞれ登録ＩＤと登録カウンタ値としてメモリ１７１に記憶させる。また、登録部１８２は、登録ＩＤと登録カウンタ値とをメモリ１７１に記憶させた時間を登録時間としてメモリ１７１に記憶させる。この登録時間とは、後述する図９における、配信要求カウントするｓ秒間のうち、どのｓ秒間の時間かを指す。
【００５７】
また、登録部１８２は、判定部１８３からコンテンツＩＤとカウンタ値とが通知された場合、通知されたコンテンツＩＤと同一の登録ＩＤの登録カウンタ値を、通知されたカウンタ値に基づいて更新する。すなわち、この処理により、第２の記憶領域１６３にキャッシュされているコンテンツデータについての登録カウンタ値がインクリメントされる。
【００５８】
また、登録部１８２は、メモリ１７１に記録されている登録ＩＤの数が予め設定したＮ個より１個多い場合、メモリ１７１に記録されている登録カウンタ値のうち、最小の登録カウンタ値と、最小の登録カウンタ値に対応する登録ＩＤとをメモリ１７１から削除する。すなわち、この処理により、コンテンツデータの配信中であっても、そのコンテンツデータは、優先データから外れることになる。
【００５９】
また、登録部１８２は、第１の配信制御部１８４から、ＳＳＤ１４−１〜１４−ｎに記録されるコンテンツデータの終端までの読み出しが完了した旨の通知を受けると、メモリ１７１に記録させた登録ＩＤ及び登録カウンタ値のうち、第１の配信制御部１８４から通知のあった登録ＩＤ及び登録カウンタ値を消去する。すなわち、この処理により、第２の記憶領域１６３にキャッシュされているコンテンツデータが終端まで達すると、そのコンテンツデータは優先データではなくなることになる。
【００６０】
第１の配信制御部１８４は、判定部１８３により、要求されたコンテンツデータのコンテンツＩＤが、現時間帯で登録された登録ＩＤと同一であると判定された場合、第１の記憶領域１６４にバッファされているコンテンツ部分データを出力するように、出力部１６へ第２の出力指示を出力する。すなわち、この処理により、同一時間帯に同一のコンテンツデータに対して複数の配信要求があった場合には、その要求に対して、バッファされているコンテンツ部分データが配信されることになる。
【００６１】
第１の配信制御部１８４は、判定部１８３により、要求されたコンテンツデータが現時間帯で登録された登録ＩＤと同一でないと判定され、かつ、優先データであると判定された場合、配信要求を受信した時点のコンテンツ部分データを出力するように、ＲＡＩＤ制御部１５へ、読出し範囲を指定した読出し要求を出力する。第１の配信制御部１８４は、ＲＡＩＤ制御部１５から出力されるコンテンツ部分データをリングバッファで保持するように、出力部１６へバッファ指示を出力する。第１の配信制御部１８４は、ＲＡＩＤ制御部１５から出力されるコンテンツ部分データを第２の記憶領域１６３でキャッシュさせるように、出力部１６へキャッシュ指示を出力する。すなわち、この処理により、同一時間帯で初めて優先データと判定されたコンテンツデータは、第１の記憶領域１６４にバッファされた後、配信されると共に、第２の記憶領域１６３にキャッシュされることになる。
【００６２】
また、第１の配信制御部１８４は、予め設定された時間が経過する度に、メモリ１７１に記憶された登録ＩＤ及び登録時間を参照し、新たに優先データとなったコンテンツデータがあるか否かを判断する。新たに優先データとなったコンテンツデータがある場合、第１の配信制御部１８４は、第１の記憶領域１６４から出力されているコンテンツ部分データを停止させ、第２の記憶領域１６３からコンテンツ部分データを出力させるように、出力部１６へ停止指示及び第１の出力指示を出力する。これにより、第１の記憶領域１６４にバッファされているコンテンツ部分データが配信されていたユーザへ、第２の記憶領域１６３にキャッシュされているコンテンツ部分データが配信されることになる。すなわち、この処理により、前の時間帯で新たに優先データとなったコンテンツデータについては、第１の記憶領域１６４にバッファされているコンテンツ部分データから、第２の記憶領域１６３にキャッシュされているコンテンツ部分データへ、コンテンツ部分データの配信元が切り替わることになる。
【００６３】
また、第１の配信制御部１８４は、予め設定された時間が経過する度に、メモリ１７１に記憶された登録ＩＤ及び登録時間を参照し、優先データから外れたコンテンツデータがあるか否かを判断する。優先データから外れたコンテンツデータがある場合、第１の配信制御部１８４は、このコンテンツデータを出力するように、ＲＡＩＤ制御部１５へ読出し要求を出力する。第１の配信制御部１８４は、ＲＡＩＤ制御部１５から出力されるコンテンツデータを第１の記憶領域１６４でバッファするように、出力部１６へバッファ指示を出力する。これにより、第２の記憶領域１６３にキャッシュされているコンテンツ部分データが配信されていたユーザへ、第２の記憶領域１６４にバッファされたコンテンツデータが配信されることになる。すなわち、この処理により、前の時間帯で優先データでないと判定されたコンテンツデータについては、第２の記憶領域１６３にキャッシュされているコンテンツ部分データから、第１の記憶領域１６４にバッファされているコンテンツ部分データへ、コンテンツ部分データの配信元が切り替わることになる。
【００６４】
また、第１の配信制御部１８４は、予め設定された時間が経過する度に、第２の記憶領域１６３にキャッシュされている複数のコンテンツ部分データのうち、最も古いコンテンツ部分データを削除するように、第２の記憶領域１６３へ削除指示を出力する。第１の配信制御部１８４は、コンテンツ部分データが予め設定された数だけ第２の記憶領域１６３でキャッシュされるように、予め設定された時間の経過毎に、メモリ１７１に記録されている登録ＩＤに係るコンテンツデータの次の時間分のコンテンツ部分データをＲＡＩＤ制御部１５に出力させる。このため、第１の配信制御部１８４は、予め設定された時間が経過する毎に、読出し範囲を指定した読出し要求をＲＡＩＤ制御部１５へ出力する。第１の配信制御部１８４は、ＲＡＩＤ制御部１５から出力されるコンテンツ部分データを第２の記憶領域１６３でキャッシュさせるように、出力部１６へキャッシュ指示を出力する。すなわち、これらの処理によって、キャッシュされるコンテンツ部分データが、時間の経過に伴って、次に配信するコンテンツ部分データに置き換わっていく。
【００６５】
また、第１の配信制御部１８４は、第２の記憶領域１６３にキャッシュさせたコンテンツ部分データで、ＳＳＤ１４−１〜１４−ｎに記録されたコンテンツデータの終端までの読み出しが完了するか否かを判断する。ＳＳＤ１４−１〜１４−ｎに記録されるコンテンツデータの終端までの読み出しが完了する場合、第１の配信制御部１８４は、登録部１８２へ読み出しが完了した旨を通知する。この通知に基づき、登録部１８２は、メモリ１７１に記録させた登録ＩＤ及び登録カウンタ値のうち、通知のあった登録ＩＤ及び登録カウンタ値を消去する。すなわち、この処理により、第２の記憶領域１６３にキャッシュされているコンテンツデータが終端まで達すると、そのコンテンツデータは優先データではなくなることになる。
【００６６】
第２の配信制御部１８５は、判定部１８３により、要求されたコンテンツデータが優先データでないと判定された場合、ＳＳＤ１４−１〜１４−ｎに記録されるコンテンツデータを出力するように、ＲＡＩＤ制御部１５へ、読出し要求を出力する。第２の配信制御部１８５は、ＲＡＩＤ制御部１５から出力されるコンテンツデータをリングバッファで保持するように、出力部１６へバッファ指示を出力する。
【００６７】
次に、以上のように構成されたデータ配信サーバ２０による動作を詳細に説明する。
【００６８】
図８は、本実施形態に係るデータ配信サーバ２０が配信要求を受けた場合に、要求されたコンテンツデータの先頭のデータを出力する際の主制御部１８の動作を示すフローチャートである。図９は、予め設定された時間をｓ秒としたときの、コンテンツＩＤ：Ｎｏ．０５のコンテンツデータに対する配信要求数の時間推移の例を示す。図８では、現時刻が０〜ｓ秒であり、コンテンツＩＤ：Ｎｏ．０５の０〜ｓ秒でのカウンタ値が「９９９」であり、このコンテンツデータに対する１０００回目の配信要求が受信される場合を例に説明する。また、図８では、カウンタ値及び登録カウンタ値が高い方からＴＯＰ３のコンテンツデータを優先データと判定し、コンテンツＩＤ：Ｎｏ．０５は、ＴＯＰ１の優先データである場合を例に説明する。このとき、メモリ１７１には、登録ＩＤ「Ｎｏ．０５」及び登録カウンタ値「９９９」が記憶されている。
【００６９】
まず、主制御部１８は、要求受付部１１からコンテンツＩＤ：Ｎｏ．０５に対して１０００回目の配信要求が供給されると、セッション確立部１７２により、出力部１６へセッション確立要求を出力する（ステップＳ８１）。出力部１６のＭＡＣ１６１は、主制御部１８からのセッション確立要求に従い、配信要求を送信した通信端末３０とのセッションを確立する。
【００７０】
カウンタ１８１は、配信要求の対象となっているコンテンツデータがＮｏ．０５であることを確認する（ステップＳ８２）。カウンタ１８１は、コンテンツＩＤ：Ｎｏ．０５に対応したカウンタ値をインクリメントし、「１０００」とする（ステップＳ８３）。
【００７１】
判定部１８３は、コンテンツＩＤ：Ｎｏ．０５が０〜ｓ秒の間に優先データであると判定されたコンテンツデータであるか否かを判定するために、メモリ１７１に記録されている登録ＩＤと登録時間とを参照し、コンテンツＩＤ：Ｎｏ．０５が、０〜ｓ秒の時間帯で登録部１８２によりメモリ１７１に記憶された登録ＩＤと同一であるか否かを判定する（ステップＳ８４）。この処理により、同一時間帯において、同一のコンテンツ部分データが第２の記憶領域１６３へキャッシュされることを避けるようにしている。コンテンツＩＤ：Ｎｏ．０５は、０〜ｓ秒の間に優先データであると判定されたコンテンツデータであるため、同一であると判断され（ステップＳ８４のＹｅｓ）、第１の配信制御部１８４は、出力部１６へ第１の記憶領域１６４にバッファされている、Ｎｏ．０５の最初のコンテンツ部分データを、出力するように第２の出力指示を出力する（ステップＳ８５）。出力部１６は、主制御部１８からの第２の出力指示を受けると、第１の記憶領域１６４にバッファされているＮｏ．０５の最初のコンテンツ部分データを出力する。また、判定部１８３は、コンテンツＩＤ：Ｎｏ．０５は、０〜ｓ秒の間に優先データであると判定されたコンテンツデータであるため、登録ＩＤ：Ｎｏ．０５と、Ｎｏ．０５のカウンタ値を登録部１８２へ通知する。登録部１８２は、判定部１８３からの通知に基づき、登録ＩＤ：Ｎｏ．０５に対応する登録カウンタ値を、Ｎｏ．０５のカウンタ値で更新する（ステップＳ８６）。
【００７２】
続いて、登録部１８２は、メモリ１７１に記録されている登録ＩＤの数が３個より１個多いか否かを判断する（ステップＳ８７）。登録ＩＤの数が４個ある場合（ステップＳ８７のＹｅｓ）、メモリ１７１に記録されている登録カウンタ値のうち、最小の登録カウンタ値と、最小の登録カウンタ値に対応する登録ＩＤとをメモリ１７１から削除する（ステップＳ８８）。登録ＩＤの数が３個以下である場合（ステップＳ８７のＮｏ）、主制御部１８は処理を終了させる。ステップＳ８６での登録カウンタ値の更新により、カウンタ値及び登録カウンタ値のＴＯＰ４のコンテンツデータが第２の記憶領域１６３にキャッシュされていることが起こり得る。ステップＳ８７〜Ｓ８８での処理により、第２の記憶領域１６３には、カウンタ値及び登録カウンタ値のＴＯＰ３のコンテンツデータがキャッシュされる状態が担保されることになる。
【００７３】
ステップＳ８４において、要求されたコンテンツデータのコンテンツＩＤが、０〜ｓ秒の時間帯で登録部１８２によりメモリ１７１に記憶された登録ＩＤと同一でない場合（ステップＳ８４のＮｏ）、判定部１８３は、全てのコンテンツＩＤに対応したカウンタ値と、メモリ１７１に記憶されている登録カウンタ値とを比較し、要求されたコンテンツデータが優先データであるか否かを判定する（ステップＳ８９）。
【００７４】
優先データであると判定した場合、すなわち、要求されたコンテンツデータについて、０〜ｓ秒の間で初めての優先データであると判定した場合（ステップＳ８９のＹｅｓ）、登録部１８２は、要求されたコンテンツデータのコンテンツＩＤとカウンタ値とを、それぞれ登録ＩＤと登録カウンタ値としてメモリ１７１に登録する（ステップＳ８１０）。
【００７５】
続いて、第１の配信制御部１８４は、ＲＡＩＤ制御部１５へ読出し範囲を指定した読出し要求を出力し、出力部１６へバッファ指示を出力し、出力部１６へキャッシュ指示を出力する（ステップＳ８１１）。ＲＡＩＤ制御部１５は、主制御部１８からの読出し要求に応じて、ＳＳＤ１４−１〜１４−ｎから読み出した分割データと冗長データとに基づいて現時点でのコンテンツ部分データを作成し、作成したコンテンツ部分データを出力部１６へ出力する。出力部１６の第２の記憶領域１６３は、主制御部１８からのキャッシュ指示に応じて、ＲＡＩＤ制御部１５から供給されるコンテンツ部分データをキャッシュする。出力部１６の第１の記憶領域１６４は、主制御部１８からのバッファ指示に応じて、ＲＡＩＤ制御部１５から供給されるコンテンツ部分データをリングバッファに保持し、保持したコンテンツ部分データをＭＡＣ１６１へ出力する。
【００７６】
ステップＳ８９において、優先データでないと判定した場合（ステップＳ８９のＮｏ）、第２の配信制御部１８５は、ＲＡＩＤ制御部１５へ読出し要求を出力し、出力部１６へバッファ指示を出力する（ステップＳ８１２）。ＲＡＩＤ制御部１５は、主制御部１８からの読出し要求に応じて、ＳＳＤ１４−１〜１４−ｎから読み出した分割データと冗長データとに基づいてコンテンツデータを作成し、作成したコンテンツデータを出力部１６へ出力する。出力部１６の第１の記憶領域１６４は、主制御部１７からのバッファ指示に応じてＲＡＩＤ制御部１５から供給されるコンテンツデータをリングバッファに保持し、保持したコンテンツデータをＭＡＣ１６１へ出力する。
【００７７】
以上が、データ配信サーバ２０が配信要求を受けた場合に、要求されたコンテンツデータの先頭のデータを出力する際の主制御部１８の動作を示すフローチャートである。先頭の次からのコンテンツデータについては、そのコンテンツデータが優先データである限り、順次第２の記憶領域１６３へキャッシュされ、先頭のコンテンツデータ以降のコンテンツデータは第２の記憶領域１６３から出力される。先頭の次からのコンテンツデータの配信については図１０で説明し、先頭の次からのコンテンツデータの第２の記憶領域１６３へのキャッシュについては図１１で説明する。
【００７８】
図１０は、先頭の次からのコンテンツデータの出力について、及び、優先データの順位入れ替えが生じた場合、その順位入れ替えに伴って、本実施形態に係る主制御部１８がコンテンツ部分データを出力する記憶領域を切り替える動作を示すフローチャートである。
【００７９】
第１の配信制御部１８４は、図８の処理の後、すなわち、コンテンツデータの先頭のデータについての出力処理の後、ｓ秒毎に図１０に示す処理を繰り返す。まず、第１の配信制御部１８４は、メモリ１７１に記録されている登録ＩＤ及び登録時間を参照し、前のｓ秒間で実施された図８に示す処理により新たに優先データとなったコンテンツデータがあるか否かを判断する（ステップＳ１０１）。前のｓ秒間で実施された図８に示す処理により新たに優先データとなったコンテンツデータがある場合（ステップＳ１０１のＹｅｓ）、第１の配信制御部１８４は、出力部１６へ停止指示及び第２の記憶領域１６３からコンテンツ部分データを出力させるための第１の出力指示を出力する（ステップＳ１０２）。出力部１６の第１の記憶領域１６４は、主制御部１８からの停止指示に応じてバッファしているコンテンツ部分データの出力を停止する。出力部１６の第２の記憶領域１６３は、主制御部１８からの第１の出力指示に応じて、バッファしているコンテンツ部分データを出力する。ステップＳ１０１，Ｓ１０２の処理により、前の時間帯で新たに優先データとなったコンテンツデータについては、第２の記憶領域１６３にキャッシュされているコンテンツ部分データが要求元へ配信されることになる。
【００８０】
カウンタ１８１は、全てのカウンタ値をクリアし（ステップＳ１０３）、ｓ秒毎の処理を終了する。
【００８１】
前のｓ秒間で実施された図８に示す処理により新たに優先データとなったコンテンツデータがない場合（ステップＳ１０１のＮｏ）、第１の配信制御部１８４は、メモリ１７１から削除された登録ＩＤを参照し、前のｓ秒間で実施された図８に示す処理により優先データから外れたコンテンツデータがあるか否かを判断する（ステップＳ１０４）。前のｓ秒間で実施された図８に示す処理により優先データから外れたコンテンツデータがある場合（ステップＳ１０４のＹｅｓ）、第１の配信制御部１８４は、ＲＡＩＤ制御部１５へ読出し要求を出力し、出力部１６へバッファ指示を出力し（ステップＳ１０５）、処理をステップＳ１０３へ移行させる。ＲＡＩＤ制御部１５は、主制御部１８からの読出し要求に応じて、ＳＳＤ１４−１〜１４−ｎからコンテンツデータを読み出し、読み出したコンテンツデータを出力部１６へ出力する。出力部１６の第１の記憶領域１６４は、主制御部１８からのバッファ指示に応じて、ＲＡＩＤ制御部１５から供給されるコンテンツ部分データをリングバッファに保持し、保持したコンテンツ部分データをＭＡＣ１６１へ出力する。前のｓ秒間で実施された図８に示す処理により優先データから外れたコンテンツデータがない場合（ステップＳ１０４のＮｏ）、第１の配信制御部１８４は、処理をステップＳ１０３へ移行させる。ステップＳ１０４，Ｓ１０５の処理により、前の時間帯で優先データでないと判定されたコンテンツデータについては、第１の記憶領域１６４にバッファされているコンテンツ部分データが要求元へ配信されることになる。
【００８２】
図１１は、本実施形態に係る主制御部１８が、先頭のコンテンツ部分データの次からのコンテンツ部分データを、第２の記憶領域１６３にキャッシュする動作を示すフローチャートである。図１２は、第２の記憶領域１６３にキャッシュされるコンテンツＩＤ：Ｎｏ．０５のコンテンツ部分データの例を示す模式図である。なお、図１２では、ｔ＝０〜ｓ秒における図８に示す処理でコンテンツＩＤ：Ｎｏ．０５に１０００回の配信要求があったことにより、コンテンツＩＤ：Ｎｏ．０５がＴＯＰ１の優先データであるとして登録され、登録後、ｎｓ秒まで、メモリ１７１にコンテンツＩＤ：Ｎｏ．０５が登録ＩＤとして記録されているとする。また、ｔ＝０〜ｓ秒における図８に示す処理により、最初のコンテンツ部分データＣ１は、第２の記憶領域１６３にキャッシュされている。
【００８３】
第１の配信制御部１８４は、図８の処理の後、すなわち、先頭のコンテンツ部分データについての出力処理の後、ｓ秒毎に図１１に示す処理を繰り返す。まず、第１の配信制御部１８４は、登録ＩＤ：Ｎｏ．０５のコンテンツデータのコンテンツ部分データが予め設定した数であるＭ個、第２の記憶領域１６３にキャッシュされているか否かを判断する、すなわち、第２の記憶領域１６３のうち、ＴＯＰ１のコンテンツ部分データをキャッシュするために割り当てられた領域に空きがあるか否かを判断する（ステップＳ１１１）。なお、図１２における説明では、予め設定した数Ｍ個を、２個であるとして説明する。
【００８４】
図１２において、ｔ＝ｓ＋１である場合、第２の記憶領域１６３には、コンテンツ部分データＣ１のみがキャッシュされている、つまり、予め設定された数である２個のコンテンツ部分データがキャッシュされていないため（ステップＳ１１１のＮｏ）、第１の配信制御部１８４は、メモリ１７１に記録されている登録ＩＤを参照し、登録ＩＤ：Ｎｏ．０５のコンテンツ部分データＣ２を読み出すように、読出し範囲を指定した読出し要求をＲＡＩＤ制御部１５へ出力し（ステップＳ１１２）、出力部１６へキャッシュ指示を出力する（ステップＳ１１３）。ＲＡＩＤ制御部制御部１５は、読出し範囲が指定された読出し要求を受けると、コンテンツ部分データＣ２を出力部１６へ出力する。出力部１６は、キャッシュ指示に応じて、ＲＡＩＤ制御部１５から出力されるコンテンツ部分データＣ２を第２の記憶領域１６３にキャッシュする。
【００８５】
図１２において、ｔ＝２ｓ＋１である場合、第２の記憶領域１６３には、コンテンツ部分データＣ１，Ｃ２がキャッシュされている、つまり、予め設定された数である２個のコンテンツ部分データがキャッシュされているため（ステップＳ１１１のＹｅｓ）、第１の配信制御部１８４は、出力部１６へ削除指示を出力すると共に（ステップＳ１１４）、コンテンツ部分データＣ３を読み出すように、処理をステップＳ１１２へ移行する。これにより、コンテンツ部分データＣ３が新たに第２の記憶領域１６３にキャッシュされる。出力部１６は、削除指示に応じて、第２の記憶領域１６３にキャッシュされている複数のコンテンツ部分データのうち、最も古いコンテンツ部分データであるコンテンツ部分データＣ１を削除する。
【００８６】
また、図１２において、ｔ＝（ｎ−１）ｓ＋１である場合、第２の記憶領域１６３には、コンテンツ部分データＣｎ−２，Ｃｎ−１がキャッシュされている、つまり、予め設定された数である２個のコンテンツ部分データがキャッシュされているため（ステップＳ１１１のＹｅｓ）、第１の配信制御部１８４は、出力部１６へ削除指示を出力すると共に（ステップＳ１１４）、コンテンツ部分データＣｎを読み出すように、処理をステップＳ１１２へ移行する。これにより、コンテンツ部分データＣｎが新たに第２の記憶領域１６３にキャッシュされる。出力部１６は、削除指示に応じて、第２の記憶領域１６３にキャッシュされている複数のコンテンツ部分データのうち、最も古いコンテンツ部分データであるコンテンツ部分データＣｎ−２を削除する。
【００８７】
コンテンツ部分データを第２の記憶領域にキャッシュさせると、第１の配信制御部１８４は、ＳＳＤ１４−１〜１４−ｎに記録されるコンテンツデータの終端までの読み出しが完了したか否かを判断する（ステップＳ１１５）。ＳＳＤ１４−１〜１４−ｎに記録されるコンテンツデータの終端までの読み出しが完了していない場合、すなわち、図１２におけるｔ＝ｓ＋１及び２ｓ＋１の場合（ステップＳ１１５のＮｏ）、第１の配信制御部１８４はｓ秒毎の処理を終了させる。ＳＳＤ１４−１〜１４−ｎに記録されるコンテンツデータの終端までの読み出しが完了した場合、すなわち、図１２におけるｔ＝（ｎ−１）ｓ＋１秒の場合（ステップＳ１１５のＹｅｓ）、第１の配信制御部１８４は、登録部１８２に、メモリ１７１に記録される登録ＩＤ及び登録カウンタ値のうち、登録ＩＤ：Ｎｏ．０５及び登録ＩＤ：Ｎｏ．０５に対応する登録カウンタ値：「１０００」を消去させる（ステップＳ１１６）。ステップＳ１１５，Ｓ１１６の処理により、コンテンツＩＤ：Ｎｏ．０５が優先データではなくなることになる。
【００８８】
以上のように、第２の実施形態では、主制御部１８は、所定期間に配信要求がされた回数に基づき、要求回数の多い順にコンテンツデータの順位をつける。主制御部１８は、高い方から予め設定された順位のコンテンツデータを優先データであるとする。主制御部１８は、優先データであるコンテンツデータの所定期間分のコンテンツ部分データを、第２の記憶領域１６３に順次キャッシュさせる。そして、主制御部１８は、キャッシュされているコンテンツ部分データを要求元へ配信するようにしている。これにより、要求頻度の高いコンテンツデータは、キャッシュされている第２の記憶領域１６３から読み出され、要求元へ配信されることになる。つまり、配信要求が頻繁なコンテンツデータについては、配信要求を受ける度に、ＳＳＤ１４−１〜１４−ｎからコンテンツデータを読み出す必要がなくなる。すなわち、ＳＳＤ１４−１〜１４−ｎへ読出し指示を与える頻度を抑えることが可能となる。
【００８９】
また、第２の記憶領域１６３へは、コンテンツデータの全てではなく、所定期間分のコンテンツ部分データが順次キャッシュされるため、第２の記憶領域１６３のために大きな容量を割り当てずとも、ＳＳＤ１４−１〜１４−ｎに対する読出し処理の頻度を抑えることが可能となる。
【００９０】
したがって、第２の実施形態に係るビデオ配信サーバによれば、ＳＳＤに対する読出し処理の回数を抑えることが可能であるため、書込み処理が要求され得る環境下であっても、読出し処理における遅延の発生を抑えることができる。さらに、第２の実施形態に係るビデオ配信サーバによれば、配信要求の多いコンテンツデータ、すなわち優先データについては、そのコンテンツデータの容量が第２の記憶領域１６３よりも大きい場合でも、そのコンテンツデータは先頭の次のコンテンツデータからは第２の記憶領域１６３にキャッシュされてから出力されるため、優先データの読み出し遅延をさらに抑制することが可能となる。
【００９１】
なお、第２の実施形態では、前の期間内に優先データであると判定されたコンテンツデータと同一のコンテンツデータが、次の期間で新たに優先データであると判定された場合、この時点でのコンテンツ部分データを第２の記憶領域１６３に新たにキャッシュするようにしているが、これに限定される訳ではない。例えば、次の期間においても同一のコンテンツデータが優先データであると判定された場合、第１の配信制御部１８４は、前の時点でキャッシュしていたコンテンツ部分データを消去せずに残すようにしても構わない。次の期間において同一のコンテンツデータの配信が要求された場合、第１の配信制御部１８４は、第２の記憶領域１６３から消去せずに残しておいたコンテンツ部分データを要求元へ配信する。これにより、同一のコンテンツデータについて複数の登録ＩＤがメモリ１７１に記録されることを避け、かつ、同一のコンテンツ部分データが第２の記憶領域１６３で別々にキャッシュされることを避けることが可能となる。
【００９２】
また、第２の実施形態では、第１の配信制御部１８４は、予め設定された時間の経過時にコンテンツ部分データを出力する記憶領域を切り替えるようにしているが、これに限定される訳ではない。例えば、第１の配信制御部１８４は、第１の記憶領域１６４にバッファしているコンテンツ部分データが終了し次第、第２の記憶領域１６３にキャッシュしているコンテンツ部分データを出力するようにしても構わない。また、第１の配信制御部１８４は、第２の記憶領域１６３にキャッシュしているコンテンツ部分データが終了し次第、第１の記憶領域１６４にコンテンツデータをバッファさせるようにしても構わない。
【００９３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００９４】
１０…ビデオ配信サーバ、１１…要求受付部、１２…インタフェース部、１３…ＲＡＩＤインタフェース、１４−１〜１４−ｎ…ＳＳＤ、１５…ＲＡＩＤ制御部、１６…出力部、１６１…ＭＡＣ、１６２，１６４…第１の記憶領域、１６３…第２の記憶領域、１７，１８…主制御部、１７１…メモリ、１７２…セッション確立部、１７３，１８１…カウンタ、１７４，１８３…判定部、１７５，１８４…第１の配信制御部、１７６，１８５…第２の配信制御部、１７７…データサイズ判定部、１８２…登録部、２０…操作端末、３０…通信端末
【図１】
0005514245.tif 000002
【図２】
0005514245.tif 000003
【図３】
0005514245.tif 000004
【図４】
0005514245.tif 000005
【図５】
0005514245.tif 000006
【図６】
0005514245.tif 000007
【図７】
0005514245.tif 000008
【図８】
0005514245.tif 000009
【図９】
0005514245.tif 000010
【図１０】
0005514245.tif 000011
【図１１】
0005514245.tif 000012
【図１２】
0005514245.tif 000013