(57)【要約】【課題】バックエンド側から効率的に配信対象のコンテンツをキャッシングし、多数のコンテンツ配信要求を処理することができる配信回路、配信装置、及び配信方法を提供することである。【解決手段】実施形態の配信回路は、受信時バッファ制御部と、データ配信部と、キャッシュ制御部と、ダイレクトキャッシュアクセス部とを持つ。受信時バッファ制御部は、配信対象のコンテンツのデータを受信し、バッファに書込む。データ配信部は、バッファからコンテンツのデータを読出し、エンドユーザの端末装置へ配信する。キャッシュ制御部は、バッファに記憶されている配信済みのコンテンツのデータを、コンテンツを蓄積するストレージに書込むよう指示し、ストレージに書込まれたコンテンツのデータをバッファから消去する。ダイレクトキャッシュアクセス部は、キャッシュ制御部から書込みが指示されたコンテンツのデータをバッファから読出してストレージに書込む。【選択図】図１
2015154271.tif 000002
【特許請求の範囲】
【請求項１】
配信対象のコンテンツのデータを受信し、バッファに書込む受信時バッファ制御部と、
前記バッファから前記コンテンツのデータを読出し、エンドユーザの端末装置へ配信するデータ配信部と、
前記バッファに記憶されている配信済みの前記コンテンツのデータを、コンテンツを蓄積するストレージに書込むよう指示し、前記ストレージに書込まれた前記コンテンツのデータを前記バッファから消去するキャッシュ制御部と、
前記キャッシュ制御部から書込みが指示された前記コンテンツのデータを前記バッファから読出して前記ストレージに書込むダイレクトキャッシュアクセス部と、
を備える配信回路。
【請求項２】
前記キャッシュ制御部は、前記コンテンツのデータを蓄積するか否かを前記データに付加された有効期限、前記コンテンツのデータ全体の長さ、または、キャッシュに関する情報に基づいて判断し、蓄積しないと判断した場合に、配信済みの前記コンテンツのデータを前記バッファから消去する請求項１に記載の配信回路。
【請求項３】
前記ダイレクトキャッシュアクセス部は、前記ストレージに書込んだ前記コンテンツのデータの書込み領域を管理する情報を生成し、
前記ダイレクトキャッシュアクセス部により生成された前記情報に基づいて配信対象のコンテンツのデータが前記ストレージに記憶されていると判断されたとき、前記ストレージから配信対象の前記コンテンツのデータを読出して前記バッファに書込むダイレクトストレージアクセス部をさらに備える請求項１または請求項２に記載の配信回路。
【請求項４】
コンテンツを蓄積するストレージと、
配信対象のコンテンツのデータを記憶するバッファと、
請求項１から請求項３のいずれか１項に記載の配信回路と、
を備える配信装置。
【請求項５】
前記バッファは、前記ストレージよりもデータ転送速度が速く、
前記ストレージは、前記バッファよりもデータ記憶容量が大きい請求項４に記載の配信装置。
【請求項６】
配信回路が実行する配信方法であって、
受信時バッファ制御部が、配信対象のコンテンツのデータを受信し、バッファに書込む一次キャッシュ過程と、
データ配信部が、前記バッファから前記コンテンツのデータを読出し、エンドユーザの端末装置へ配信するデータ配信過程と、
キャッシュ制御部が、前記バッファに記憶されている配信済みの前記コンテンツのデータを、コンテンツを蓄積するストレージに書込むよう指示するキャッシュ制御過程と、
ダイレクトキャッシュアクセス部が、前記キャッシュ制御過程において書込みが指示された前記コンテンツのデータを前記バッファから読出して前記ストレージに書込む二次キャッシュ過程と、
前記キャッシュ制御部が、前記二次キャッシュ過程において前記ストレージに書込まれた前記コンテンツのデータを前記バッファから消去する一次キャッシュ消去過程と、
を有する配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、配信回路、配信装置、及び配信方法に関する。
【背景技術】
【０００２】
映像素材や音声素材などのコンテンツを配信するコンテンツ配信サービスの需要が高まっている。中でも近年では、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）をベースとしたベストエフォート型のネットワーキング技術を基盤インフラとしたフィールドでの配信需要が伸びている。このフィールドにおいてコンテンツ配信サービスを提供するための実運用上、または実運用における現実的な装置の配置解の一つとして以下がある。すなわち、配信ネットワークのエッジ側に、エンドユーザの端末装置にコンテンツ配信を行う廉価的な配信装置を多数配置する。そして、配信ネットワークの中心側やバックエンド側にコンテンツの蓄積・確保を主目的として、配信装置に対してコンテンツデータを配信するコンテンツ蓄積装置を少数配置する。このような配置をとる場合、配信ネットワークのエッジ側においては圧倒的多数のコンテンツ配信要求を処理しつつ、バックエンド側から効率的にコンテンツをキャッシングすることが求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２０２３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、バックエンド側から効率的に配信対象のコンテンツをキャッシングし、多数のコンテンツ配信要求を処理することができる配信回路、配信装置、及び配信方法を提供することである。
【課題を解決するための手段】
【０００５】
実施形態の配信回路は、受信時バッファ制御部と、データ配信部と、キャッシュ制御部と、ダイレクトキャッシュアクセス部とを持つ。受信時バッファ制御部は、配信対象のコンテンツのデータを受信し、バッファに書込む。データ配信部は、バッファからコンテンツのデータを読出し、エンドユーザの端末装置へ配信する。キャッシュ制御部は、バッファに記憶されている配信済みのコンテンツのデータを、コンテンツを蓄積するストレージに書込むよう指示し、ストレージに書込まれたコンテンツのデータをバッファから消去する。ダイレクトキャッシュアクセス部は、キャッシュ制御部から書込みが指示されたコンテンツのデータをバッファから読出してストレージに書込む。
【図面の簡単な説明】
【０００６】
【図１】実施形態のコンテンツ配信システムの全体構成図。
【図２】実施形態のコンテンツ配信システムにおけるコンテンツのキャッシングの流れを示すシーケンス図。
【図３】実施形態のコンテンツ配信システムにおけるＶＯＤストリーミング配信とキャッシングの概要図。
【図４】実施形態の配信装置におけるキャッシング処理の概要を示す図。
【図５】実施形態の配信装置におけるキャッシング処理の概要を示す図。
【図６】実施形態の配信装置におけるキャッシング処理の概要を示す図。
【図７】実施形態の配信装置の構成を示すブロック図。
【図８】実施形態の配信装置の処理フローを示す図。
【図９】実施形態の配信装置の処理フローを示す図。
【図１０】実施形態の配信装置の処理フローを示す図。
【図１１】実施形態の配信装置の処理フローを示す図。
【図１２】従来の配信装置の構成と処理フローを示す図。
【発明を実施するための形態】
【０００７】
以下、実施形態の配信回路、配信装置、及び配信方法を、図面を参照して説明する。
図１は、実施形態のコンテンツ配信システムの全体構成図である。同図に示す配信システムは、配信装置１、コンテンツ蓄積装置３、及び複数のエンドユーザの端末装置５を備えて構成される。同図においては、配信装置１を複数台示しているが、コンテンツ配信システムは、配信装置１を１台のみ備えてもよい。また、同図においては、コンテンツ蓄積装置３を１台のみ示しているが、コンテンツ配信システムは、複数台のコンテンツ蓄積装置３を備えてもよい。配信装置１と端末装置５は、ＩＰ（Internet Protocol）ネットワーク７を介して接続される。端末装置５は、有線または無線によりＩＰネットワーク７にアクセスする。端末装置５は、例えば、パーソナルコンピュータ（PC）、ＩＰテレビジョン受信機（IPTV）、ＳＴＢ（セット・トップ・ボックス）、スマートフォン、タブレット端末などである。エンドユーザは、コンテンツの視聴者である。
【０００８】
コンテンツ蓄積装置３は、コンテンツを蓄積するバックエンド側のオリジンサーバである。本実施形態のコンテンツ蓄積装置３は、ＳＳＤ（Solid State Drive：ソリッドステートドライブ）をストレージに用いてコンテンツを蓄積する。配信装置１は、エッジ側のプロキシキャッシュサーバである。配信装置１は、エンドユーザへ配信するコンテンツデータをバッファリングする１以上の記憶装置（バッファ）と、コンテンツをキャッシュする１以上の記憶装置（ストレージ）とを備える。本実施形態の配信装置１は、配信するコンテンツデータをバッファリングする記憶装置として複数のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory：シンクロナスランダムアクセスメモリ）を備える。さらに、配信装置１は、コンテンツをキャッシュする記憶装置として複数のＳＳＤを備える。ストレージは、バッファよりもデータ記憶容量が大きい。一方、バッファは、ストレージよりもデータ転送速度が速い。
【０００９】
配信装置１は、エンドユーザから配信が要求されたコンテンツをキャッシュしていない場合、その要求されたコンテンツをコンテンツ蓄積装置３から取得し、エンドユーザの端末装置５へ配信する。一方、配信装置１は、要求されたコンテンツをキャッシュしている場合、キャッシュしているコンテンツをエンドユーザの端末装置５へ配信する。なお、複数の配信装置１それぞれがキャッシュしているコンテンツは異なっていてもよい。これは、端末装置５から配信装置１にアクセスするエンドユーザによって、各配信装置１においてキャッシュすることが効率的なコンテンツが異なり得るためである。
【００１０】
配信装置一台当たりの投資コスト（メリット）はコンテンツの同時配信可能数に大きく依存する。また、コンテンツを蓄積するためのストレージデバイス自体や、それらストレージデバイスの集合体に対するコストパフォーマンスが求められている。コストパフォーマンスの代表的な要素として、「容量」と「アクセス速度（read/write性能）」が挙げられる。一般的かつ代表的なストレージデバイスには、ＨＤＤ（Hard disk drive）とＳＳＤがある。ＳＳＤは、ＨＤＤと比較して「アクセス速度（read/write性能）」の性能が高いものの高価である。そこで、図１に示すようにコンテンツ配信システムを構成することで、一台当たりの配信装置１におけるＳＳＤの容量を抑えるとともに、同時配信可能数を抑えることができる。従って、コンテンツ配信システム全体として、コストを抑えながらも、配信ネットワークのエッジ側においては多数のコンテンツ配信要求を処理することが可能となる。
【００１１】
図２は、コンテンツ配信システムにおけるコンテンツのキャッシングの流れを示すシーケンス図である。同図では、２台の端末装置５をそれぞれ、端末装置５−１、端末装置５−２と記載している。
エンドユーザの端末装置５−１は、コンテンツの配信要求であるＧＥＴ要求を、ＩＰネットワーク７を介して配信装置１に送信する（ステップＳ１）。配信装置１は、ＧＥＴ要求により配信が要求されたコンテンツをキャッシュしていない場合（ステップＳ２）、キャッシュを実施するために、配信が要求されたコンテンツのＧＥＴ要求をコンテンツ蓄積装置３へ送信する（ステップＳ３）。コンテンツ蓄積装置３は、ＧＥＴ要求への応答として、配信が要求されたコンテンツを配信装置１へ配信する（ステップＳ４）。配信装置１は、コンテンツ蓄積装置３から受信したコンテンツをキャッシュする（ステップＳ５）。配信装置１は、ＧＥＴ要求への応答として、キャッシュしたコンテンツを端末装置５−１へ配信する（ステップＳ６）。
【００１２】
エンドユーザの端末装置５−２は、コンテンツの配信要求であるＧＥＴ要求を、ＩＰネットワーク７を介して配信装置１に送信する（ステップＳ７）。配信装置１は、ＧＥＴ要求により配信が要求されたコンテンツをキャッシュしていると判断する（ステップＳ８）。配信装置１は、バックエンド側にコンテンツを要求することなく、キャッシュしているコンテンツを端末装置５−２に配信する（ステップＳ９）。
【００１３】
図２に示すコンテンツデータのキャッシングの流れは、配信ネットワークのエッジ側に配信装置を配置し、配信ネットワークの中心側やバックエンド側にコンテンツ蓄積装置を配置した構成の従来のコンテンツ配信システムにおいても同様である。ここで、本実施形態の配信装置の技術的な特徴を明確にするために、従来のコンテンツ配信システムに用いられる配信装置について説明する。
【００１４】
図１２は、従来の配信装置９の構成とキャッシュ処理フローを示す図である。同図に示す配信装置９は、ＲＸ（受信機）１１と、配信部９０と、ＳＤＲＡＭ１３と、ＳＳＤ１４と、ＣＰＵ（Central Processing Unit）１５と、ＴＸ（送信機）１６とを備えて構成される。
ＲＸ１１は、例えば、１００Ｇビットのイーサネット（登録商標）により、コンテンツ蓄積装置３からデータを受信する。ＴＸ１６は、例えば、１００Ｇビットのイーサネット（登録商標）により、エンドユーザの端末装置５にデータを送信する。ＳＤＲＡＭ１３は、端末装置５へ配信するコンテンツデータをバッファリングするバッファである。ＳＳＤ１４は、コンテンツをキャッシュするストレージである。ＳＳＤ１４は、セクタ単位でデータを記憶する。ＣＰＵ１５は、アプリケーションとオペレーティング・システム（ＯＳ）を実行する。ＯＳは、各コンテンツのエクステント情報を取得する。エクステント情報は、コンテンツのファイルを構成するコンテンツデータのエクステントがストレージ（ＳＳＤ１４）のどの記憶領域に書込まれたかを示す情報である。ＯＳは、取得したエクステント情報に基づいて、コンテンツデータをストレージから読出してＳＤＲＡＭ１３へ転送するよう配信部９０に指示する。
【００１５】
配信部９０は、例えばＦＰＧＡ（field-programmable gate array）により実現される配信回路である。配信部９０は、ＣＰＵ１５を介することなく、ストレージから読み出したコンテンツデータをネットワーク処理してエンドユーザの端末装置５へ配信する。配信部９０は、受信ＭＡＣ（Medium Access Control）処理部２０と、ＴＯＥ（TCP/IP Offload Engine）９１と、受信時バッファ制御部９２と、ＳＤＲＡＭ制御部２３と、ＳＡＴＡ（Serial Advanced Technology Attachment）２５と、ＤＳＡ（Direct Storage Access）２６と、送信時バッファ制御部２７と、送信ＭＡＣ処理部２８と、ＰＣＩｅ（Peripheral Component Interconnect Express）２９とを備えて構成される。
【００１６】
受信ＭＡＣ処理部２０は、ＲＸ１１が受信したデータ信号に対してＭＡＣ処理を行い、ＴＯＥ９１に出力する。ＴＯＥ９１は、送受信信号のＴＣＰ／ＩＰの処理を実行するともに、配信部９０内の機能部間のデータ転送をおこなう。受信時バッファ制御部９２は、コンテンツ蓄積装置３から受信したデータに対する処理を行う。ＳＤＲＡＭ制御部２３は、ＳＤＲＡＭ１３に対するデータの読出しや書込みを制御する。ＳＡＴＡ２５は、ＳＳＤ１４に対するデータの読出しや書込みを制御する。ＤＳＡ２６は、ＳＡＴＡ２５がＳＳＤ１４から読出したコンテンツデータをＳＤＲＡＭ１３へ転送する。送信時バッファ制御部２７は、ＳＤＲＡＭ１３にバッファリングされているコンテンツデータの配信を制御する。送信ＭＡＣ処理部２８は、ＴＯＥ９１から出力されたデータ送信信号に対してＭＡＣ処理を行い、ＴＸ１６に出力する。ＰＣＩｅ２９は、配信部９０内の各部とＣＰＵ１５との間のシリアルインタフェースである。
【００１７】
配信装置９における処理フローを説明する。配信装置９は、エンドユーザの端末装置５に配信するコンテンツをキャッシュしていないため、コンテンツ蓄積装置３へコンテンツを要求する（図２のステップＳ２、Ｓ３に相当）。コンテンツ蓄積装置３は、要求されたコンテンツのコンテンツデータＤ１、Ｄ２、…を配信装置９へ配信する（図２のステップＳ４に相当）。
【００１８】
配信装置９は、コンテンツ蓄積装置３からコンテンツデータＤ１、Ｄ２、…が設定されたパケットをＲＸ１１により受信する。受信ＭＡＣ処理部２０は、受信したパケットにＭＡＣ処理を行ってＴＯＥ９１に出力する。ＴＯＥ９１は、ＭＡＣ処理が行われたパケットのＴＣＰ／ＩＰフレームからコンテンツデータＤ１、Ｄ２、…を読出し、受信時バッファ制御部９２に出力する。受信時バッファ制御部９２は、受信したコンテンツデータＤ１、Ｄ２、…を、ＰＣＩｅ２９を介してＣＰＵ１５に出力する（ステップＳ９１）。ＣＰＵ１５が実行するＯＳは、配信装置９が備えるシステムメモリ（図示せず）にコンテンツデータを記憶する。ＣＰＵ１５が実行するＯＳは、システムメモリに記憶したコンテンツデータＤ１、Ｄ２、…を、配信部９０に出力し、ストレージへの書込みを指示する。ＳＡＴＡ２５は、コンテンツデータＤ１、Ｄ２、…をＳＳＤ１４に書込む（ステップＳ９２）。ＣＰＵ１５が実行するＯＳは、ＳＡＴＡ２５がコンテンツデータを書込んだ各エクステントの物理アドレスと論理アドレスをと対応付けるエクステント情報を取得する。なお、１つのエクステントに含まれるデータは、パケットで受信したコンテンツデータの単位とは一致しなくてもよい。
【００１９】
ＤＳＡ２６は、ＳＡＴＡ２５にコンテンツデータの読出しを指示する。ＳＡＴＡ２５は、コンテンツデータが記憶されているＳＳＤ１４のセクタからデータを読出してＤＳＡ２６に出力する。ＤＳＡ２６は、ＳＡＴＡ２５がセクタ単位で読出したデータからコンテンツデータＤ１、Ｄ２、…を抽出してＳＤＲＡＭ制御部２３へ出力し、書込みを指示する。ＳＤＲＡＭ制御部２３は、ＤＳＡ２６から出力されたコンテンツデータＤ１、Ｄ２、…をＳＤＲＡＭ１３に書込む(ステップＳ９３）。ＴＯＥ９１は、送信時バッファ制御部２７からの指示を受け、配信するコンテンツデータＤ１、Ｄ２、…の読出しをＳＤＲＡＭ制御部２３に指示する。ＴＯＥ９１は、ＳＤＲＡＭ制御部２３が読出したコンテンツデータＤ１、Ｄ２、…をＴＣＰ／ＩＰのフレームに設定し、送信ＭＡＣ処理部２８に出力する。送信ＭＡＣ処理部２８は、コンテンツデータＤ１、Ｄ２、…が設定されたＴＣＰ／ＩＰのフレームにＭＡＣ処理を行い、ＴＸ１６からエンドユーザの端末装置５へ配信する（ステップＳ９４）。
【００２０】
同図で示した通り、配信装置９におけるコンテンツデータの受信から配信までの処理パスとしてステップＳ９１〜ステップＳ９４の大きく４ステップが必要である。つまり、配信装置９は、一旦ＣＰＵ１５およびシステムメモリへコンテンツ蓄積装置３から受信したコンテンツデータを展開する。その後、配信装置９は、キャッシングのため、ＣＰＵ１５およびシステムメモリからストレージへコンテンツデータを格納する。配信装置９は、ストレージからコンテンツデータを読出し、バッファに格納する。配信装置９は、バッファからコンテンツを読み出し、エンドユーザの端末装置５へ配信する。
【００２１】
図３は、本実施形態によるコンテンツ配信システムにおけるＶＯＤ（Video On Demand）ストリーミング配信とキャッシングの概要図である。コンテンツ蓄積装置３は、ストレージにＳＳＤを使用してコンテンツを記憶している。また、配信装置１は、配信装置９と同様に、配信するコンテンツデータをバッファリングするＳＤＲＡＭ１３と、コンテンツをキャッシュするＳＳＤ１４を備える。配信装置１がＶＯＤストリーミング配信するコンテンツをキャッシングしていない場合、コンテンツ蓄積装置３は、そのコンテンツのコンテンツデータをストレージから読出し、各配信装置１に配信する。配信装置１は、コンテンツ蓄積装置３から配信されたコンテンツデータを受信する（図２のステップＳ４に相当）。
【００２２】
配信装置１は、図３に示すように、コンテンツ蓄積装置３から配信されたコンテンツデータのキャッシュを、ＳＤＲＡＭによる一次キャッシュと、ストレージ（ＳＳＤ）による二次キャッシュとにより行う。配信装置１は、このキャッシュにより、ＴＯＥ及びＤＳＡの効果及び性能を保ちつつ、キャッシュを効率的に実施し、コンテンツデータを端末装置５へ配信する。
【００２３】
図４から図６は、配信装置１におけるキャッシング処理の概要を示す図である。コンテンツ蓄積装置３は、ＶＯＤストリーミングが終了するまで、コンテンツを構成するコンテンツデータＤ１、Ｄ２、…を配信装置１に送信する。図４において、配信装置１は、コンテンツ蓄積装置３から受信したコンテンツデータＤ１、Ｄ２、…を、ＳＤＲＡＭ１３にキャッシュデータとして蓄積し始める。これが、ＳＤＲＡＭによる一次キャッシュである。
【００２４】
図５において、配信装置１は、ＳＤＲＡＭ１３にある程度コンテンツデータを蓄積すると、ＳＤＲＡＭ１３からコンテンツデータＤ１、Ｄ２、…を順次読出してエンドユーザの端末装置５へ配信し始める。このように配信装置１は、全てのコンテンツデータをキャッシュし終えるまで待つことなく、エンドユーザ側へ速やかに配信を行うことができる。
【００２５】
図６において、配信装置１は、エンドユーザの端末装置５へ配信を終えたコンテンツデータＤ１、Ｄ２、…を、ＳＤＲＡＭ１３からＳＳＤ１４へ転送して蓄積し、保存し始める。なお、配信装置１は、ＳＤＲＡＭ１３による一次キャッシュのみでコンテンツデータを破棄し、二次キャッシュによるコンテンツデータの蓄積及び保存を行わないようにしてもよい。
【００２６】
図７は、本実施形態の配信装置１の構成を示すブロック図である。同図において、図１２に示す従来の配信装置９と同一の部分には同一の符号を付し、その説明を省略する。同図に示す配信装置１は、ＲＸ１１と、配信部１２と、ＳＤＲＡＭ１３と、ＳＳＤ１４と、ＣＰＵ１５と、ＴＸ１６とを備えて構成される。同図に示す配信装置１が、図１２に示す従来の配信装置９と異なる点は、配信部９０に代えて配信部１２を備える点である。
【００２７】
配信部１２は、例えばＦＰＧＡにより実現される配信回路である。配信部１２は、ＣＰＵ１５を介することなく、ストレージから読み出したコンテンツデータをネットワーク処理してエンドユーザの端末装置５へ配信する。配信部１２は、受信ＭＡＣ処理部２０と、ＴＯＥ２１と、受信時バッファ制御部２２と、ＳＤＲＡＭ制御部２３と、ＤＣＡ（Direct Cache Access：ダイレクトキャッシュアクセス）２４と、ＳＡＴＡ２５と、ＤＳＡ２６と、送信時バッファ制御部２７と、送信ＭＡＣ処理部２８と、ＰＣＩｅ２９とを備えて構成される。同図に示す配信部１２が、図１２に示す従来の配信装置９の配信部９０と異なる点は、ＴＯＥ９１、及び受信時バッファ制御部９２に代えてＴＯＥ２１、及び受信時バッファ制御部２２を備える点、ならびに、ＤＣＡ２４をさらに備える点である。
【００２８】
ＴＯＥ２１は、送受信信号のＴＣＰ／ＩＰの処理を実行する。ＴＯＥ２１は、コンテンツデータの一次キャッシュや二次キャッシュを制御するキャッシュ制御部２１０を備える。受信時バッファ制御部２２は、コンテンツ蓄積装置３から受信したコンテンツデータをＳＤＲＡＭ１３に格納するよう指示する。ＤＣＡ２４は、ＣＰＵ１５を介することなく、ＳＤＲＡＭ制御部２３がＳＤＲＡＭ１３から読出したコンテンツデータをＳＡＴＡ２５に転送し、ＳＡＴＡ２５により直接ＳＳＤ１４に書込ませる。ＤＣＡ２４は、ＳＳＤ１４に書込まれたコンテンツデータのエクステント情報を生成し、ＣＰＵ１５へ出力する。
【００２９】
図８から図１１は、配信装置１の処理フローを示す図である。配信装置１は、エンドユーザの端末装置５に配信するコンテンツデータをキャッシュしていないため、コンテンツ蓄積装置３へコンテンツを要求する（図２のステップＳ２、Ｓ３に相当）。コンテンツ蓄積装置３は、要求されたコンテンツのコンテンツデータＤ１、Ｄ２、…を配信装置１へ配信する（図２のステップＳ４に相当）。
【００３０】
図８において、配信装置１は、コンテンツ蓄積装置３から送信されたコンテンツデータＤ１、Ｄ２、…のパケットをＲＸ１１により受信する。受信ＭＡＣ処理部２０は、受信したパケットにＭＡＣ処理を行ってＴＯＥ２１に出力する。ＴＯＥ２１は、ＭＡＣ処理が行われたパケットのＴＣＰ／ＩＰフレームからコンテンツデータを読出し、受信時バッファ制御部２２に出力する。受信時バッファ制御部２２は、受信したコンテンツデータＤ１、Ｄ２、…を、ＴＯＥ２１のキャッシュ制御部２１０を介してＳＤＲＡＭ制御部２３に出力し、書込みを指示する。ＳＤＲＡＭ制御部２３は、コンテンツデータＤ１、Ｄ２、…をＳＤＲＡＭ１３に書込む。
【００３１】
図９において、ＴＯＥ２１のキャッシュ制御部２１０は、ＳＤＲＡＭ制御部２３にコンテンツデータＤ１、Ｄ２、…の読出しを指示する。ＳＤＲＡＭ制御部２３は、読出しが指示されたコンテンツデータＤ１、Ｄ２、…をＳＤＲＡＭ１３から読出し、ＴＯＥ２１に出力する。ＴＯＥ２１は、ＳＤＲＡＭ制御部２３により読出されたコンテンツデータＤ１、Ｄ２、…をＴＣＰ／ＩＰのフレームに設定し、送信ＭＡＣ処理部２８に出力する。送信ＭＡＣ処理部２８は、コンテンツデータＤ１、Ｄ２、…が設定されたＴＣＰ／ＩＰのフレームにＭＡＣ処理を行い、ＴＸ１６からエンドユーザの端末装置５へ配信する（ステップＳ２２）。
【００３２】
図１０において、ＴＯＥ２１のキャッシュ制御部２１０は、配信済みのコンテンツデータＤ１、Ｄ２、…をストレージに転送するようＳＤＲＡＭ制御部２３に指示する。ＳＤＲＡＭ制御部２３は、転送が指示されたコンテンツデータＤ１、Ｄ２、…をＳＤＲＡＭ１３から読出し、ＤＣＡ２４に出力する。ＤＣＡ２４は、ＳＡＴＡ２５にコンテンツデータＤ１、Ｄ２、…を出力し、ＳＳＤ１４への書込みを指示する。ＳＡＴＡ２５は、ＤＣＡ２４から受信したコンテンツデータＤ１、Ｄ２、…をＳＳＤ１４に書込む（ステップＳ２３）。
【００３３】
図１１において、ＴＯＥ２１のキャッシュ制御部２１０は、ＳＳＤ１４に書込んだコンテンツデータの破棄をＳＤＲＡＭ制御部２３に指示する。ＳＤＲＡＭ制御部２３は、ＳＤＲＡＭ１３から破棄が指示されたコンテンツデータを、ＳＤＲＡＭ１３から消去する（ステップＳ２４）。
【００３４】
なお、ＤＣＡ２４は、ステップＳ２３において、ＳＡＴＡ２５がコンテンツデータを書込んだ各エクステントの物理アドレスと論理アドレスをと対応付けるエクステント情報を生成し、ＣＰＵ１５が実行するＯＳに出力する。エクステント情報をＯＳに出力することで、ＣＰＵ１５は、エンドユーザの端末装置５からコンテンツデータの配信要求を受信したときに、そのコンテンツデータがＳＳＤ１４にキャッシングされているか否かを判断することができる。コンテンツデータがキャッシングされている場合、ＣＰＵ１５が実行するＯＳは、エクステント情報に基づいてコンテンツデータの読出し指示を配信部１２に出力する。配信部１２が、コンテンツデータが記憶されているＳＳＤ１４のセクタからデータを読出した以降の処理は、上述した従来技術の配信装置９の処理と同様である。
【００３５】
すなわち、配信部１２のＤＳＡ２６は、ＳＡＴＡ２５にコンテンツデータの読出しを指示する。ＳＡＴＡ２５は、コンテンツデータが記憶されているＳＳＤ１４のセクタからデータを読出してＤＳＡ２６に出力する。ＤＳＡ２６は、ＳＡＴＡ２５がセクタ単位で読出したデータから配信対象のコンテンツデータを抽出してＳＤＲＡＭ制御部２３へ出力し、書込みを指示する。ＳＤＲＡＭ制御部２３は、ＤＳＡ２６から出力されたコンテンツデータをＳＤＲＡＭ１３に書込む。ＴＯＥ１１は、送信時バッファ制御部２７からの指示を受け、配信するコンテンツデータの読出しをＳＤＲＡＭ制御部２３に指示する。ＴＯＥ１１は、ＳＤＲＡＭ制御部２３が読出したコンテンツデータをＴＣＰ／ＩＰのフレームに設定し、送信ＭＡＣ処理部２８に出力する。送信ＭＡＣ処理部２８は、コンテンツデータが設定されたＴＣＰ／ＩＰのフレームにＭＡＣ処理を行い、ＴＸ１６からエンドユーザの端末装置５へ配信する。
【００３６】
配信装置１が受信時バッファ制御部２２、キャッシュ制御部２１０、及びＤＣＡ２４を備えることにより、コンテンツデータの受信から配信までの処理パスがステップＳ２１からステップＳ２３の大きく３ステップとなる。よって、従来の順序のキャッシュ処理フローと比較して１ステップ分が削減される。さらに、ＰＣＩｅ２９のバスを経由してＣＰＵ１５やシステムメモリへ受信したコンテンツデータを展開する必要がなくなるため、処理負荷も低減される。
【００３７】
なお、配信装置１は、ＤＣＡ２４によるストレージ（ＳＳＤ１４）へのコンテンツデータの二次キャッシュ（蓄積・保存）を行わず、ＳＤＲＡＭ１３に一次キャッシュしたコンテンツデータをエンドユーザへ配信した後、破棄してもよい。この場合、キャッシュ制御部２１０が、コンテンツデータの二次キャッシュを行うか否かを判断する。
【００３８】
コンテンツ蓄積装置３から配信装置１へのコンテンツデータの配信には、ＨＴＴＰを用いることができる。キャッシュ制御部２１０は、コンテンツ蓄積装置３から受信したコンテンツデータのパケットに設定されているＨＴＴＰのヘッダ部に基づいて、二次キャッシュを行うか否かを判断する。なお、端末装置５へのコンテンツデータの配信にＨＴＴＰを用いる場合、キャッシュ制御部２１０は、端末装置５から受信した信号に設定されているＨＴＴＰのヘッダ部に基づいて、二次キャッシュを行うか否かを判断してもよい。ＨＴＴＰのヘッダには、「Ｅｘｐｉｒｅｄ：ＹＹＹＹ」、「Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ：ＸＸＸＸＸ」、「Ｃａｃｈｅ：ＺＺＺＺ」の情報が含まれる。「Ｅｘｐｉｒｅｄ」は、コンテンツの有効期限を示す。「Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ」は、コンテンツデータ全体の長さ（容量）を示す。「Ｃａｃｈｅ」は、キャッシュに関する情報を示す。
【００３９】
キャッシュ制御部２１０は、「Ｅｘｐｉｒｅｄ」の値「ＹＹＹＹ」が、所定の時間よりも短い場合、一次キャッシュしたコンテンツデータをエンドユーザへ配信した後、ＳＳＤ１４への二次キャッシュを行わずに破棄する。これは、ストレージに二次キャッシュとしてコンテンツを格納しておける期間が合理的ではないためである。
【００４０】
また、キャッシュ制御部２１０は、「Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ」の値「ＸＸＸＸＸ」が、データ量が小さいと判断する基準の所定バイト数よりも小さい場合、ＳＳＤ１４への二次キャッシュを行わずにコンテンツデータを破棄する。これは、ストレージに二次キャッシュとしてコンテンツを格納しておくと、細切れのデータが多く、フラグメントが多発して合理的ではないためである。加えて、データ量がある程度大きい場合はコンテンツ蓄積装置３からのコンテンツデータの読出しにかかる負荷が大きいが、データ量が小さい場合は読出しにかかる負荷が小さいためでもある。あるいは、キャッシュ制御部２１０は、「Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ」の値「ＸＸＸＸＸ」が、データ量が大きいと判断する基準の所定バイト数よりも大きい場合、ＳＳＤ１４への二次キャッシュを行わずにコンテンツデータを破棄してもよい。これは、ストレージの記憶容量を圧迫するためである。
【００４１】
また、キャッシュ制御部２１０は、「Ｃａｃｈｅ」の値「ＺＺＺＺ」が「ｎｏ−ｃａｃｈｅ」の様に、キャッシュし続ける事を許可しない旨を示している場合、ＳＳＤ１４への二次キャッシュを行わずにコンテンツデータを破棄する。これは、コンテンツ提供側の要求により、ストレージにコンテンツデータを格納し、蓄積しておくことが禁止されているためである。
【００４２】
上記においては、コンテンツが映像コンテンツである場合を例に説明したが、静止画、音声、文書、プログラムなど任意の種類のコンテンツとすることができる。
また、上記においては、配信部１２は、ＴＯＥ２１の内部にキャッシュ制御部２１０を備える構成であるが、ＴＯＥ２１の外部にキャッシュ制御部２１０を備える構成としてもよい。
また、上記実施形態の配信部１２の一部または全ての機能部を、ソフトウェア機能部により実現してもよい。配信部１２の一部または全ての機能部をソフトウェア機能部により実現する場合、その機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【００４３】
以上説明した少なくともひとつの実施形態によれば、受信時バッファ制御部２２、キャッシュ制御部２１０、及びＤＣＡ２４を持つことにより、ＴＯＥ及びＤＳＡの効果及び性能を保ちつつ、バックエンド側から効率的に配信対象のデータをキャッシングし、エンドユーザからの多数のデータ配信要求を処理することができる。
また、以上説明した少なくともひとつの実施形態によれば、キャッシュ制御部２１０を持つことにより、キャッシュすることが効率的なコンテンツのみをストレージにキャッシュすることができる。
また、以上説明した少なくともひとつの実施形態によれば、ＤＣＡ２４を持つことにより、ＣＰＵ１５を介さずにキャッシュしたコンテンツを、ストレージから読出してエンドユーザの端末装置５へ配信することができる。
【００４４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００４５】
１…配信装置、３…コンテンツ蓄積装置、５…端末装置、７…ＩＰネットワーク、１１…ＲＸ、１２…配信部（配信回路）、１３…ＳＤＲＡＭ（バッファ）、１４…ＳＳＤ（ストレージ）、１５…ＣＰＵ、１６…ＴＸ、２０…受信ＭＡＣ処理部、２１…ＴＯＥ（データ配信部）、２２…受信時バッファ制御部、２３…ＳＤＲＡＭ制御部、２４…ＤＣＡ（ダイレクトキャッシュアクセス部）、２５…ＳＡＴＡ、２６…ＤＳＡ（ダイレクトストレージアクセス部）、２７…送信時バッファ制御部、２８…送信ＭＡＣ処理部（データ配信部）、２９…ＰＣＩｅ、２１０…キャッシュ制御部
【図１】
2015154271.tif 000003
【図２】
2015154271.tif 000004
【図３】
2015154271.tif 000005
【図４】
2015154271.tif 000006
【図５】
2015154271.tif 000007
【図６】
2015154271.tif 000008
【図７】
2015154271.tif 000009
【図８】
2015154271.tif 000010
【図９】
2015154271.tif 000011
【図１０】
2015154271.tif 000012
【図１１】
2015154271.tif 000013
【図１２】
2015154271.tif 000014