(57)【要約】【課題】仮想サーバにより複数の素材情報からカラオケ情報を生成する場合に、クラウドのリソースの利用効率を向上させる。【解決手段】仮想サーバへのカラオケ情報の要求を示す要求情報を端末装置から受信するステップと、楽曲情報、映像情報及び歌詞情報の識別情報を取得するステップと、楽曲情報、映像情報及び歌詞情報が、要求情報を受信した仮想サーバがアクセス可能な第１記憶領域に記憶されているかを判定するステップと、第１記憶領域に記憶されていると判定されなかった特定情報を特定するステップと、他の仮想サーバの中から、特定情報を記憶する特定の仮想サーバを検索するステップと、特定の仮想サーバから特定情報を取得するステップと、取得された特定情報を第１記憶領域に記憶させるステップと、第１記憶領域に記憶された楽曲情報、映像情報及び歌詞情報を合成することにより、カラオケ情報を生成するステップと、カラオケ情報を端末装置へ送信するステップと、をコンピュータに実行させる。【選択図】図１
2015197591.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数の情報処理装置上で稼働する仮想サーバを動作させるためのプログラムであって、
仮想サーバへのカラオケ情報の要求を示す要求情報を端末装置から受信する第１受信ステップと、
前記第１受信ステップにより受信された前記要求情報に基づいて、前記カラオケ情報の生成に用いられる楽曲情報、映像情報及び歌詞情報をそれぞれ識別可能な複数の識別情報を取得する第１取得ステップと、
前記第１取得ステップにより取得された前記複数の識別情報が示す前記楽曲情報、前記映像情報及び前記歌詞情報が、前記第１受信ステップにより前記要求情報を受信した仮想サーバがアクセス可能な第１記憶領域に記憶されているかを判定する判定ステップと、
前記楽曲情報、前記映像情報及び前記歌詞情報のうち、前記判定ステップにより前記第１記憶領域に記憶されていると判定されなかった特定情報を特定する特定ステップと、
前記１又は複数の情報処理装置上で稼働する１以上の他の仮想サーバの中から、前記特定情報を記憶する特定の仮想サーバを検索する検索ステップと、
前記検索ステップにより検索された前記特定の仮想サーバから前記特定情報を取得する第２取得ステップと、
前記第２取得ステップにより取得された前記特定情報を前記第１記憶領域に記憶させる制御ステップと、
前記第１記憶領域に記憶された前記楽曲情報、前記映像情報及び前記歌詞情報を合成することにより、前記カラオケ情報を生成する生成ステップと、
前記生成ステップにより生成された前記カラオケ情報を前記端末装置へ送信する送信ステップと、
をコンピュータに実行させることを特徴とするプログラム。
【請求項２】
前記生成ステップは、前記第１記憶領域に前記カラオケ情報を生成し、
前記送信ステップは、前記第１記憶領域に生成された前記カラオケ情報を送信し、
前記プログラムは、
前記送信ステップにより送信された前記カラオケ情報を前記第１記憶領域から削除する第１削除ステップを更に前記コンピュータに実行させることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記プログラムは、
前記第２取得ステップにより取得された前記特定情報の前記識別情報と、前記第１受信ステップにより前記要求情報を受信した仮想サーバの所在を示す所在情報とを、前記１以上の他の仮想サーバ又は前記１又は複数の情報処理装置上で稼働する仮想管理装置へ通知する通知ステップを更に前記コンピュータに実行させることを特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記プログラムは、
何れかの仮想サーバから通知された前記識別情報及び前記所在情報を対応付けて第２記憶領域に記憶させる第２制御ステップを更に前記コンピュータに実行させ、
前記検索ステップは、前記第２記憶領域の中から、前記特定情報を記憶する前記特定の仮想サーバを検索することを特徴とする請求項３に記載のプログラム。
【請求項５】
前記プログラムは、
所定の仮想サーバの停止指示を受信する第２受信ステップと、
前記第２受信ステップにより、前記所定の仮想サーバの停止指示が受信された場合、前記所定の仮想サーバの所在を示す所在情報に対応付けられた前記識別情報を前記第２記憶領域から削除する第２削除ステップと、
を更に前記コンピュータに実行させることを特徴とする請求項４に記載のプログラム。
【請求項６】
１又は複数の情報処理装置上で稼働する仮想サーバへのカラオケ情報の要求を示す要求情報を端末装置から受信する第１受信手段と、
前記第１受信手段により受信された前記要求情報に基づいて、前記カラオケ情報の生成に用いられる楽曲情報、映像情報及び歌詞情報をそれぞれ識別可能な複数の識別情報を取得する第１取得手段と、
前記第１取得手段により取得された前記複数の識別情報が示す前記楽曲情報、前記映像情報及び前記歌詞情報が、前記第１受信手段により前記要求情報を受信した仮想サーバがアクセス可能な第１記憶領域に記憶されているかを判定する判定手段と、
前記楽曲情報、前記映像情報及び前記歌詞情報のうち、前記判定手段により前記第１記憶領域に記憶されていると判定されなかった特定情報を特定する特定手段と、
前記１又は複数の情報処理装置上で稼働する１以上の他の仮想サーバの中から、前記特定情報を記憶する特定の仮想サーバを検索する検索手段と、
前記検索手段により検索された前記特定の仮想サーバから前記特定情報を取得する第２取得手段と、
前記第２取得手段により取得された前記特定情報を前記第１記憶領域に記憶させる制御手段と、
前記第１記憶領域に記憶された前記楽曲情報、前記映像情報及び前記歌詞情報を合成することにより、前記カラオケ情報を生成する生成手段と、
前記生成手段により生成された前記カラオケ情報を前記端末装置へ送信する送信手段と、
を備えることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲情報や映像情報などの情報を合成することにより、カラオケ情報を生成する技術分野に関する。
【背景技術】
【０００２】
例えば、特許文献１には、楽曲データと画像データを合成することでカラオケ用のコンテンツを生成してサーバにアップロードし、複数の出力装置が、サーバからコンテンツをダウンロードして再生する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
特開２００９−２１６８７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、クラウドシステムを利用して、カラオケ情報を生成したい場合がある。例えば、クラウド上に、カラオケ情報生成用の仮想サーバを起動させて、仮想サーバが楽曲情報、映像情報、歌詞情報などの複数の素材情報を合成し、カラオケ情報を生成する。このとき、例えばカラオケの事業者が有するセンターサーバに全ての素材情報を一元管理させることが考えられる。この場合、各仮想サーバはセンターサーバから複数の素材情報を取得する必要あるため、センターサーバとクラウドとの間の通信負荷が増大する。そこで、仮想サーバが、一度取得した素材情報を仮想サーバに割り当てられたローカルな記憶領域に記憶しておき、記憶した素材情報をカラオケ情報の生成に再利用することが考えられる。しかしながら、素材情報の再利用のために、素材情報を記憶した仮想サーバを稼働させたままにしておくと、カラオケ情報を生成しない仮想サーバが稼働したままになることがある。そのため、クラウドから提供されるリソースの利用効率が低下する。
【０００５】
本発明は、以上の点に鑑みてなされたものであり、仮想サーバにより複数の素材情報からカラオケ情報を生成する場合に、クラウドのリソースの利用効率を向上させることを可能とするプログラム及びシステムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、１又は複数の情報処理装置上で稼働する仮想サーバを動作させるためのプログラムであって、仮想サーバへのカラオケ情報の要求を示す要求情報を端末装置から受信する第１受信ステップと、前記第１受信ステップにより受信された前記要求情報に基づいて、前記カラオケ情報の生成に用いられる楽曲情報、映像情報及び歌詞情報をそれぞれ識別可能な複数の識別情報を取得する第１取得ステップと、前記第１取得ステップにより取得された前記複数の識別情報が示す前記楽曲情報、前記映像情報及び前記歌詞情報が、前記第１受信ステップにより前記要求情報を受信した仮想サーバがアクセス可能な第１記憶領域に記憶されているかを判定する判定ステップと、前記楽曲情報、前記映像情報及び前記歌詞情報のうち、前記判定ステップにより前記第１記憶領域に記憶されていると判定されなかった特定情報を特定する特定ステップと、前記１又は複数の情報処理装置上で稼働する１以上の他の仮想サーバの中から、前記特定情報を記憶する特定の仮想サーバを検索する検索ステップと、前記検索ステップにより検索された前記特定の仮想サーバから前記特定情報を取得する第２取得ステップと、前記第２取得ステップにより取得された前記特定情報を前記第１記憶領域に記憶させる制御ステップと、前記第１記憶領域に記憶された前記楽曲情報、前記映像情報及び前記歌詞情報を合成することにより、前記カラオケ情報を生成する生成ステップと、前記生成ステップにより生成された前記カラオケ情報を前記端末装置へ送信する送信ステップと、をコンピュータに実行させることを特徴とする。
【０００７】
請求項２に記載の発明は、前記生成ステップは、前記第１記憶領域に前記カラオケ情報を生成し、前記送信ステップは、前記第１記憶領域に生成された前記カラオケ情報を送信し、前記プログラムは、前記送信ステップにより送信された前記カラオケ情報を前記第１記憶領域から削除する第１削除ステップを更に前記コンピュータに実行させることを特徴とする。
【０００８】
請求項３に記載の発明は、前記プログラムは、前記第２取得ステップにより取得された前記特定情報の前記識別情報と、前記第１受信ステップにより前記要求情報を受信した仮想サーバの所在を示す所在情報とを、前記１以上の他の仮想サーバ又は前記１又は複数の情報処理装置上で稼働する仮想管理装置へ通知する通知ステップを更に前記コンピュータに実行させることを特徴とする。
【０００９】
請求項４に記載の発明は、前記プログラムは、何れかの仮想サーバから通知された前記識別情報及び前記所在情報を対応付けて第２記憶領域に記憶させる第２制御ステップを更に前記コンピュータに実行させ、前記検索ステップは、前記第２記憶領域の中から、前記特定情報を記憶する前記特定の仮想サーバを検索することを特徴とする。
【００１０】
請求項５に記載の発明は、前記プログラムは、所定の仮想サーバの停止指示を受信する第２受信ステップと、前記第２受信ステップにより、前記所定の仮想サーバの停止指示が受信された場合、前記所定の仮想サーバの所在を示す所在情報に対応付けられた前記識別情報を前記第２記憶領域から削除する第２削除ステップと、を更に前記コンピュータに実行させることを特徴とする。
【００１１】
請求項６に記載の発明は、１又は複数の情報処理装置上で稼働する仮想サーバへのカラオケ情報の要求を示す要求情報を端末装置から受信する第１受信手段と、前記第１受信手段により受信された前記要求情報に基づいて、前記カラオケ情報の生成に用いられる楽曲情報、映像情報及び歌詞情報をそれぞれ識別可能な複数の識別情報を取得する第１取得手段と、前記第１取得手段により取得された前記複数の識別情報が示す前記楽曲情報、前記映像情報及び前記歌詞情報が、前記第１受信手段により前記要求情報を受信した仮想サーバがアクセス可能な第１記憶領域に記憶されているかを判定する判定手段と、前記楽曲情報、前記映像情報及び前記歌詞情報のうち、前記判定手段により前記第１記憶領域に記憶されていると判定されなかった特定情報を特定する特定手段と、前記１又は複数の情報処理装置上で稼働する１以上の他の仮想サーバの中から、前記特定情報を記憶する特定の仮想サーバを検索する検索手段と、前記検索手段により検索された前記特定の仮想サーバから前記特定情報を取得する第２取得手段と、前記第２取得手段により取得された前記特定情報を前記第１記憶領域に記憶させる制御手段と、前記第１記憶領域に記憶された前記楽曲情報、前記映像情報及び前記歌詞情報を合成することにより、前記カラオケ情報を生成する生成手段と、前記生成手段により生成された前記カラオケ情報を前記端末装置へ送信する送信手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
請求項１又は６に記載の発明によれば、カラオケ情報の生成に必要な情報のうち何れかの特定情報が、カラオケ情報の生成する仮想サーバに記憶されていない場合、その仮想サーバは、特定情報を記憶する他の仮想サーバを検索する。そのため、特定情報を記憶している仮想サーバのうち一部の仮想サーバが停止しても、稼働している仮想サーバからその特定情報を取得することができる。そのため、クラウドのリソースの利用効率を向上させることができる。
【００１３】
請求項２に記載の発明によれば、再利用されないカラオケ情報を削除することで、記憶領域を有効に利用することができる。
【００１４】
請求項３又は６に記載の発明によれば、他の仮想サーバ又は仮想管理装置へ通知することにより、他の仮想サーバ又は仮想管理装置が、カラオケ情報の生成に用いられる情報を記憶する仮想サーバの所在を管理することができる。
【００１５】
請求項４に記載の発明によれば、仮想サーバ又は仮想管理装置が特定情報の識別情報とその特性情報を記憶する仮想サーバの所在情報を記憶することで、特性情報を記憶する仮想サーバを検索することができる。
【００１６】
請求項５に記載の発明によれば、何れかの仮想サーバが停止しても、特性情報を送信可能な他の仮想サーバを検索することができる。
【図面の簡単な説明】
【００１７】
【図１】（Ａ）は、本実施形態の通信システムＳの概要構成例を示す図であり、（Ｂ）は、クラウドＣＣにおける仮想マシンのブロック図の一例を示す図であり、（Ｃ）は、配信サーバＤの概要構成例を示すブロック図である。
【図２】配信サーバＤの制御部１１のウェブ処理の一例を示すフローチャートである。
【図３】配信サーバＤの制御部１１のファイル取得処理の一例を示すフローチャートである。
【図４】配信サーバＤの制御部１１のメッセージ受信処理の一例を示すフローチャートである。
【図５】配信サーバＤの制御部１１の仮想サーバ制御処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、通信システムに本発明を適用した場合の実施形態である。
【００１９】
［１．通信システムの構成］
始めに、図１（Ａ）及び図１（Ｂ）を参照して、本実施形態の通信システムの構成及び動作概要について説明する。図１（Ａ）は、本実施形態の通信システムＳの概要構成例を示す図である。図１（Ｂ）は、クラウドＣＣにおける仮想マシンのブロック図の一例を示す図である。図１（Ａ）に示すように、本実施形態の通信システムＳは、１以上の配信サーバＤ、センターサーバＣ及び複数のクライアント端末Ｔ等により構成されている。配信サーバＤ、センターサーバＣ及びクライアント端末ＴはネットワークＮＷに接続されている。ネットワークＮＷは、インターネット等からなる。
【００２０】
配信サーバＤは、本発明の情報処理装置の一例である。配信サーバＤは、クラウドシステムＣＣを構成するサーバ装置である。クラウドシステムＣＣは、クラウドＣＣともいう。クラウドＣＣにおいて、各配信サーバＤは、仮想マシンとして１又は複数の仮想化されたインスタンスを起動する。仮想マシンとして、例えば図１（Ｂ）に示す仮想サーバＶｎ（ｎ＝１，２，３・・・ｋ）がある。クラウドシステムＣＣを構成する配信サーバＤのうち、１又は複数の配信サーバＤ上で複数の仮想サーバＶｎが稼働する。仮想サーバＶｎとして動作する配信サーバＤは、クライアント端末Ｔにカラオケファイルを配信する。カラオケファイルは、カラオケの楽曲及び映像を再生するための動画データである。カラオケファイルは、楽曲の音声、背景、歌詞のテロップ等を含む。カラオケファイルは、本発明のカラオケ情報の一例である。
【００２１】
センターサーバＣは、仮想サーバＶｎへカラオケファイルの部品又は素材となる元データファイルを配信するサーバ装置である。元データファイルとして、例えば、楽曲ファイル、映像ファイル、テロップ情報ファイル、ピアノロール情報ファイル等がある。楽曲ファイルは、カラオケの楽曲を再生するための音声データ又は演奏データである。楽曲ファイルは、本発明の楽曲情報の一例である。映像ファイルは、カラオケの背景として表示される動画のデータである。映像ファイルは、本発明の映像情報の一例である。テロップ情報ファイルは、楽曲の歌詞のテロップを表示するためのデータである。テロップ情報ファイルは、例えば歌詞の文字を示すテキスト、歌詞が表示される再生位置等を含む。再生位置は、楽曲の再生が開始してから経過した時間である。テロップ情報ファイルは、本発明の歌詞情報の一例である。ピアノロール情報ファイルは、楽曲の音高をピアノロール表示するためのデータである。ピアノロール情報ファイルは、例えば楽曲の開始から終了まで時系列に沿った音高と音価との組み合わせを示す情報を含む。
【００２２】
クライアント端末Ｔは、カラオケファイルを再生する端末装置である。クライアント端末Ｔの利用者は、クライアント端末Ｔを用いてカラオケを楽しむことができる。クライアント端末Ｔとして、例えば、カラオケ装置、パーソナルコンピュータ、スマートフォン、タブレット型コンピュータ、携帯電話機、ＰＤＡ（Personal Digital Assistant）、テレビゲーム機、テレビ受像機、ＳＴＢ（Set Top Box）等がある。
【００２３】
［２．カラオケファイル配信の動作概要］
各仮想サーバＶｎは、クライアント端末Ｔから送信されるカラオケファイル要求に応じて、カラオケファイルを配信する。カラオケファイル要求は、カラオケファイルの要求を示すメッセージである。カラオケファイル要求は、本発明の要求情報の一例である。カラオケファイル要求は、例えば、楽曲番号、キー情報、スピード情報、端末解像度、ピアノロール有無情報を含む。楽曲番号は、楽曲を識別可能な識別情報である。例えば、楽曲番号は、楽曲を識別可能な番号と、背景を識別可能な番号とで構成されてもよい。これにより、仮想サーバＶｎは、楽曲番号に基づいて、楽曲ファイル、映像ファイル、テロップ情報ファイル及びピアノロール情報ファイルのファイル名を取得することができる。なお、カラオケファイル要求に、各元データファイルのファイル名が含まれていてもよい。キー情報は、例えば楽曲の原曲の音高と、カラオケファイルにより実際に楽曲を再生するときの音高との差をオクターブ等で表す情報である。スピード情報は、例えば、楽曲の原曲の再生速度と、カラオケファイルにより実際に楽曲を再生するときの再生速度との差を、再生速度の比率等で表す情報である。端末解像度は、カラオケファイル要求を送信したクライアント端末Ｔが背景を表示するための画面のサイズを縦方向及び横方向の画素数等で示す情報である。ピアノロール有無情報は、背景にピアノロールを表示するか否かを示す情報である。楽曲番号、キー情報、スピード情報、及びピアノロール有無情報は、例えばクライアント端末Ｔの利用者により指定される。
【００２４】
クライアント端末Ｔが再生するカラオケファイルは、クライアント端末Ｔが送信するカラオケファイル要求ごと、又はクライアント端末Ｔごとに異なる。例えば、クライアント端末Ｔの利用者は、カラオケファイルを再生させようとするたびに、楽曲、キー情報、奏スピード情報等を指定することができる。また例えば、利用者は、背景として、例えば本人映像、特別映像、一般映像等を指定することができる。本人映像は、例えば楽曲のプロモーションビデオ映像等である。特別映像は、例えば楽曲に対応した特別な映像である。一般映像は、例えば様々な楽曲の背景に利用可能な映像である。また例えば、クライアント端末Ｔによって、背景を表示するための画面のサイズが異なる。そこで、仮想サーバＶｎは、カラオケファイル要求を受信するごとにカラオケファイルを生成する。具体的に、仮想サーバＶｎは、楽曲ファイル、映像ファイル、テロップ情報ファイル等の元データファイルを合成することにより、カラオケファイルを生成する。
【００２５】
全ての元データファイルは、センターサーバＣにより記憶されている。カラオケファイルを生成する都度、仮想サーバＶｎがセンターサーバＣから必要な元データファイルを取得していたのでは、クラウドＣＣとセンターサーバＣ間の通信負荷や、センターサーバＣの負荷が増大する。そこで、仮想サーバＶｎは、取得した元データファイルをその仮想サーバＶｎのローカルストレージに記憶させる。ローカルストレージは、配信サーバＤが備える記憶部１２から仮想サーバＶｎに割り当てられた記憶領域である。ローカルストレージは、本発明の第１記憶領域及び第２記憶領域の一例である。１つの配信サーバＤ上で複数の仮想サーバＶｎが稼働している場合、仮想サーバＶｎごとに異なる記憶領域がローカルストレージに割り当てられる。仮想サーバＶｎは、カラオケファイルを生成するための元データファイルを取得するとき、その仮想サーバＶｎのローカルストレージに元データファイルが記憶されているか否かを判定する。これにより、ローカルストレージに記憶されていない元データファイルを特定する。元データファイルがローカルストレージに記憶されている場合、仮想サーバＶｎは、ローカルストレージから元データファイルを取得する。元データファイルがローカルストレージに記憶されていない場合、仮想サーバＶｎは、元データファイルを記憶する他の仮想サーバを検索する。そして、仮想サーバＶｎは、検索した仮想サーバＶｎのローカルストレージから元データファイルを取得する。元データファイルを記憶している仮想サーバＶｎのうち一部の仮想サーバＶｎが停止したとしても、他の仮想サーバＶｎから元データを取得することができる。そのため、必要に応じて仮想サーバＶｎを起動又は停止することができる。これにより、クラウドのリソースの利用効率を向上させることができる。
【００２６】
他の仮想サーバからの元データファイルの取得を可能とするため、何れか１以上の配信サーバＤ上で、仮想管理装置Ｍが稼働する。仮想管理装置Ｍは、本発明の仮想管理装置の一例である。仮想管理装置Ｍは、元データファイルを記憶する仮想サーバＶｎの所在を管理する仮想マシンである。具体的に、仮想管理装置Ｍのローカルストレージには、データ保持リストが記憶される。データ保持リストには、元データファイルを記憶した仮想サーバＶｎに割り当てられたＩＰアドレス及び記憶された元データファイルの組み合わせが１又は複数登録される。仮想サーバＶｎのＩＰアドレスは、本発明の所在情報の一例である。仮想サーバＶｎが元データファイルを取得するとき、仮想サーバＶｎはアドレス要求を仮想管理装置Ｍへ送信する。アドレス要求は、元データファイルを記憶する仮想サーバＶｎの所在の要求を示す。アドレス要求は、元データファイルのファイル名を含む。アドレス要求を送信する仮想サーバＶｎを、リクエスタという。仮想管理装置Ｍは、リクエスタから受信したアドレス要求に含まれるファイル名に対応するＩＰアドレスをデータ保持リストから取得する。そして、仮想管理装置Ｍは、取得したＩＰアドレスをリクエスタへ送信する。リクエスタが取得しようとする元データファイルを記憶する仮想サーバを、データホルダという。ファイル名に対応するＩＰアドレスがデータ保持リストに登録されていない場合、仮想管理装置Ｍは、センターサーバＣのＩＰアドレスをリクエスタへ送信する。リクエスタは、受信したＩＰアドレスに基づいて、データホルダ又はセンターサーバＣから元データファイルを取得する。元データファイルを取得した仮想サーバＶｎは、データ取得通知を仮想管理装置Ｍへ送信する。データ取得通知は、元データファイルを取得したことを通知するメッセージである。データ取得通知は、リクエスタのＩＰアドレス及び取得した元データファイルのファイル名を含む。仮想管理装置Ｍは、リクエスタから受信したデータ取得通知に含まれるＩＰアドレス及びファイル名を対応付けてデータ保持リストに登録する。なお、稼働している仮想サーバＶｎのうち、１又は複数の仮想サーバＶｎが仮想管理装置Ｍの機能を有していてもよい。すなわち、何れかの仮想サーバＶｎが、ファイル保持リストを記憶して、元データファイルを記憶する仮想サーバＶｎの所在を管理してもよい。また、複数の仮想サーバＶｎ又は複数の仮想管理装置Ｍがファイル保持リストを分散して記憶してもよい。例えば、元データファイル又は所定の規則によって区分けされた元データファイル群ごとに、対応するファイル保持リストを記憶する仮想サーバＶｎ又は仮想管理装置Ｍが定められてもよい。この場合、リクエスタは、取得しようとする元データファイルのファイル保持リストを記憶する仮想サーバＶｎ又は仮想管理装置Ｍへアドレス要求を送信する。また例えば、クラウドＣＣを構成する配信サーバＤとは異なる所定のサーバ装置が、仮想管理装置Ｍの機能を有していてもよい。この場合、リクエスタは、所定のサーバ装置へアドレス要求を送信する。
【００２７】
仮想サーバＶｎは、カラオケファイルをローカルストレージに記憶する。仮想サーバＶｎは、生成したカラオケファイルをクライアント端末Ｔへ送信すると、カラオケファイルをローカルストレージから削除する。上述したように、生成されるカラオケファイルは、カラオケファイル要求ごと、又はクライアント端末Ｔごとに異なる蓋然性が高い。そのため、生成されたカラオケファイルをローカルストレージに記憶しておいても、そのカラオケファイルを再度クライアント端末Ｔへ送信する可能性が低い。再利用される可能性が低いカラオケファイルを削除することで、ローカルストレージを効率よく利用することができる。
【００２８】
仮想サーバＶｎが他の仮想サーバＶｎから元データファイルを取得するためには、その元データファイルを記憶している仮想サーバＶｎが稼働している必要がある。また、クラウドＣＣの仕組みとして、仮想サーバＶｎを停止又は終了させると、その仮想サーバＶｎのローカルストレージに記憶されていた元データファイルが削除される場合がある。ローカルストレージに記憶されていた元データファイルを再利用するため、仮想サーバＶｎを稼働させたままにしておくと、カラオケファイル要求を受信しない仮想サーバが稼働したままになることがある。そこで、仮想管理装置Ｍが、稼働する仮想サーバＶｎの起動及び停止を制御する。具体的に、仮想管理装置Ｍは、クライアント端末Ｔから複数の仮想サーバＶｎへのアクセス数に応じて、必要稼働数を決定する。アクセス数は、仮想サーバＶｎが現在処理中であるカラオケファイル要求の数である。すなわち、アクセス数は、仮想サーバＶｎへ送信されたカラオケファイル要求のうち、カラオケファイル要求に対応するカラオケファイルが未だクライアント端末Ｔへ送信されていないカラオケファイル要求の数である。必要稼働数は、稼働させるべき仮想サーバＶｎの数である。仮想管理装置Ｍは、例えばアクセス数が多いほど、多い必要稼働数を決定する。仮想管理装置Ｍは、決定した必要稼働数に応じて、何れかの仮想サーバを停止させ、又は新規の稼働サーバを起動させる。各仮想サーバＶｎは、その仮想サーバＶｎに対するアクセス数及びその仮想サーバＶｎのＩＰアドレスを例えば定期的に仮想管理装置Ｍへ送信する。仮想管理装置Ｍは、仮想サーバＶｎから受信したアクセス数及びＩＰアドレスを対応付けて仮想管理装置Ｍのローカルストレージに記憶させる。仮想管理装置Ｍは、ローカルストレージに記憶されたアクセス数を定期的に合計することにより、全仮想サーバＶｎに対するアクセス数を計算する。
【００２９】
仮想管理装置Ｍの指示に基づき何れかの仮想サーバＶｎが停止した場合、その仮想サーバＶｎから元データファイルを取得することができない。そこで、仮想管理装置Ｍは、ファイル保持リストから、停止した仮想サーバＶｎのＩＰアドレス及びそのＩＰアドレスに対応するファイル名の組み合わせを全て削除する。なお、クラウドＣＣを構成する配信サーバＤとは異なる所定のサーバ装置が、仮想管理装置Ｍの機能を有していてもよい。すなわち、所定のサーバ装置が、仮想サーバリストを記憶して、アクセス数に基づいて仮想サーバＶｎの起動、停止を制御してもよい。
【００３０】
［３．仮想サーバ、仮想管理装置のソフトウェア構成］
次に、仮想サーバＶｎ及び仮想管理装置Ｍのソフトウェア構成について、図１（Ｂ）を用いて説明する。図１（Ｂ）に示すように、仮想サーバＶｎは、１又は複数のウェブアプリケーション１、ファイル取得プロセス２、ローカルストレージ３、及び負荷監視プロセス４等により構成されている。ウェブアプリケーション１は、クライアント端末Ｔからのカラオケファイル要求に応じて、カラオケファイルの生成及び配信を行うためのプロセスである。ファイル取得プロセス２は、ウェブアプリケーション１から要求された元データファイルをウェブアプリケーション１へ受け渡すためのプロセスである。具体的に、ファイル取得プロセス２は、元データファイルをローカルストレージ３、他の仮想サーバＶｎ又はセンターサーバＣから取得するためのプロセスである。ローカルストレージ３には、元データファイルが記憶される。また、ローカルストレージ３には、そのローカルストレージ３が割り当てられた仮想サーバＶｎのＩＰアドレスが記憶される。負荷監視プロセス４は、クライアント端末Ｔから仮想サーバＶｎへのアクセス数を仮想管理装置Ｍへ送信するためのプロセスである。具体的に、負荷監視プロセス４は、ウェブアプリケーション１がクライアント端末Ｔからカラオケファイル要求を受信するごとに、アクセス数を１増加させる。また、負荷監視プロセス４は、ウェブアプリケーション１からクライアント端末Ｔへカラオケファイルが送信されるごとに、アクセス数を１減少させる。負荷監視プロセス４は、定期的に、現在のアクセス数と仮想サーバＶｎのＩＰアドレスとを仮想管理装置Ｍへ送信する。
【００３１】
仮想管理装置Ｍは、ホルダ管理プロセス５、仮想サーバ制御プロセス６、ローカルストレージ７等により構成されている。ホルダ管理プロセス５は、仮想サーバＶｎからのアドレス要求に応じてデータホルダのＩＰアドレスを送信するためのプロセスである。また、ホルダ管理プロセス５は、データ取得通知に基づいてファイル保持リストを更新するためのプロセスである。仮想サーバ制御プロセス６は、負荷監視プロセス４から送信されたアクセス数に基づいて必要稼働数を決定し、仮想サーバの停止又は起動を指示するためのプロセスである。ローカルストレージ７には、データ保持リスト、仮想サーバリスト等が記憶される。仮想サーバリストには、現在稼働している仮想サーバＶｎのＩＰアドレスが登録される。
【００３２】
［４．仮想サーバの構成］
次に、図１（Ｃ）を参照して、配信サーバＤの構成及び機能について説明する。図１（Ｃ）は、配信サーバＤの概要構成例を示すブロック図である。配信サーバＤは、制御部１１、記憶部１２、通信部１３等を備えて構成される。制御部１１〜通信部１３はバス１４を介して相互に接続されている。記憶部１２は、例えばハードディスクドライブ等から構成される。記憶部１２には、配信サーバＤのＯＳ、仮想化環境を構築するためのプログラム、仮想マシン起動停止制御プログラム等が記憶される。仮想マシン起動停止制御プログラムは、仮想マシンを起動させたり停止させたりするためのプログラムである。また、記憶部１２には、各種のマシンイメージファイルが記憶される。マシンイメージファイルは、仮想マシンで実行されるＯＳ及びアプリケーションプログラムを含む。制御部１１は、マシンイメージファイルに基づいて、仮想マシンを起動させる。マシンイメージファイルとして、仮想サーバ用のイメージファイル、仮想管理装置用のイメージファイル等がある。仮想サーバ用のイメージファイルは、Ｗｅｂアプリケーションプロセス１、ファイル取得プロセス２、及び負荷監視プロセス４のプログラム等を含む。仮想管理装置用のイメージファイルは、ホルダ管理プロセス５、及び仮想サーバ制御プロセス６のプログラム等を含む。なお、マシンイメージファイルは、例えば、ネットワークＮＷに接続された所定のサーバからダウンロードされるようにしてもよい。また、マシンイメージファイルは、例えば、光ディスク等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。仮想サーバＶｎ又は仮想管理装置Ｍが起動する場合、記憶部１２から仮想サーバＶｎ又は仮想管理装置Ｍに対してローカルストレージが割り当てられる。
【００３３】
通信部１３は、ネットワークＮＷを通じて、他の配信サーバＤ、クライアント端末Ｔ、センターサーバＣ等との間の通信制御を行う。制御部１１は、演算機能を有するＣＰＵ、作業用ＲＡＭ、及びＲＯＭ等から構成される。また、制御部１１は、時計機能及びタイマー機能を備える。そして、制御部１１は、コンピュータとしてのＣＰＵが、仮想サーバ用のイメージファイルに含まれるプログラムを読み出して実行することにより、第１受信ステップ、第１取得ステップ、判定ステップ、特定ステップ、検索ステップ、第２取得ステップ、制御ステップ、生成ステップ、送信ステップを少なくとも実行する。
【００３４】
［５．通信システムの動作］
次に、図２から図５を参照して、本実施形態の通信システムＳの動作について説明する。図２は、配信サーバＤの制御部１１のウェブ処理の一例を示すフローチャートである。ウェブ処理は、ウェブアプリケーションプロセス１で実行される処理である。ウェブ処理は、仮想サーバが起動することにより、ウェブアプリケーションプロセス１が起動したときに開始される。図２に示すように、制御部１１は、クライアント端末Ｔからカラオケファイル要求を受信したか否かを判定する（ステップＳ１）。このとき、制御部１１は、カラオケファイル要求を受信したと判定した場合には（ステップＳ１：ＹＥＳ）、ステップＳ２に進む。
【００３５】
ステップＳ２において、制御部１１は、ファイル取得プロセス２から楽曲ファイルを取得する。具体的に制御部１１は、カラオケファイル要求に含まれる楽曲番号から楽曲を識別するための番号を取得し、取得した番号に、楽曲ファイル用の所定の文字列を付加することにより、楽曲ファイルのファイル名を生成する。次いで、制御部１１は、生成したファイル名をファイル取得プロセス２に通知する。ファイル取得プロセス２は、ファイル名に対応する楽曲ファイルをローカルストレージ３から取得する。ローカルストレージ３に楽曲ファイルが記憶されていない場合、ファイル取得プロセス２は、他の仮想サーバＶｎ又はセンターサーバＣから楽曲ファイルを取得する。
【００３６】
次いで、制御部１１は、カラオケファイル要求に含まれるキー情報及びスピード情報に基づいて、取得した楽曲ファイルを変換することにより、キー情報及びスピード情報に対応した楽曲ファイルを生成する（ステップＳ３）。例えば、制御部１１は、楽曲ファイルを解析することにより、楽曲の開始から終了まで時系列に沿ってサンプリング間隔ごとに音声周波数又は音高を特定する。サンプリング間隔は、楽曲データのサンプリング周波数の逆数である。そして、制御部１１は、キー情報に基づいて、キー変更後の音声周波数又は音高を計算する。また、制御部１１は、スピード情報に基づいて、サンプリング間隔ごとの再生位置が、再生速度の変更後にどの再生位置に変更されるかを計算する。制御部１１は、計算された再生位置に基づき、再生速度の変更後におけるサンプリング間隔ごとの音声周波数又は音高を決定する。そして、決定したサンプリング間隔ごとの音声周波数又は音高に基づき、変換された楽曲ファイルを生成する。
【００３７】
次いで、制御部１１は、ファイル取得プロセス２から映像ファイルを取得する（ステップＳ４）。具体的に、制御部１１は、楽曲番号から背景を識別するための番号を取得する。取得した番号が本人映像又は特別映像を示す場合、制御部１１は、取得した番号に、映像ファイル用の所定の文字列を付加することにより、映像ファイルのファイル名を生成する。取得した番号が一般映像を示す場合、制御部１１は、例えば、一般映像の映像ファイルのファイル名をランダムに生成する。その理由は、一般映像としての背景をカラオケファイルの生成ごとに変えるためである。次いで、制御部１１は、生成したファイル名をファイル取得プロセス２に通知することにより、ファイル取得プロセス２により映像ファイルを取得させる。
【００３８】
次いで、制御部１１は、カラオケファイル要求に含まれるスピード情報及び端末解像度に基づいて、取得した映像ファイルを変換することにより、スピード情報及び端末解像度に対応した映像ファイルを生成する（ステップＳ５）。例えば、制御部１１は、スピード情報に基づいて、フレーム間隔ごとの再生位置が、再生速度の変更後にどの再生位置に変更されるかを計算する。フレーム間隔は、映像ファイルのフレームレートの逆数である。制御部１１は、計算された再生位置と、映像ファイルに含まれるフレーム画像に基づき、再生速度の変更後において、フレーム間隔ごとのフレーム画像を生成する。また、制御部１１は、生成した各フレーム画像を、端末解像度に含まれる縦方向及び横方向の画素数が示すサイズのフレーム画像に変換する。そして、制御部１１は、変換された複数のフレーム画像を接続することにより、変換された映像ファイルを生成する。
【００３９】
次いで、制御部１１は、カラオケファイル要求に含まれるピアノロール有無情報がピアノロールありを示すか否かを判定する（ステップＳ６）。このとき、制御部１１は、ピアノロール有無情報がピアノロールありを示していないと判定した場合には（ステップＳ６：ＮＯ）、ステップＳ７に進む。ステップＳ７において、制御部１１は、ファイル取得プロセス２からテロップ情報ファイルを取得する。具体的に、制御部１１は、楽曲番号から楽曲を識別するための番号を取得する。制御部１１は、取得した番号に、テロップ情報ファイル用の所定の文字列を付加することにより、テロップ情報ファイルのファイル名を生成する。次いで、制御部１１は、生成したファイル名をファイル取得プロセス２に通知することにより、ファイル取得プロセス２によりテロップ情報ファイルを取得させる。
【００４０】
次いで、制御部１１は、制御部１１は、変換された映像ファイルとテロップ情報ファイルを合成する（ステップＳ８）。具体的に、制御部１１は、テロップ情報ファイルに含まれるテキストが示す歌詞の文字を、映像ファイルを構成するフレーム画像に合成する。このとき、制御部１１は、スピード情報と、テロップ情報ファイルにテキストと対応付けられた再生位置とに基づいて、歌詞の文字を合成するフレーム画像を特定する。次いで、制御部１１は、ステップＳ１１に進む。
【００４１】
一方、制御部１１は、ピアノロール有無情報がピアノロールありを示していると判定した場合には（ステップＳ６：ＹＥＳ）、ステップＳ９に進む。ステップＳ９において、制御部１１は、ファイル取得プロセス２から、テロップ情報ファイルとピアノロール情報ファイルを取得する。テロップ情報ファイルの取得方法はステップＳ７と同様である。また、制御部１１は、楽曲番号から楽曲を識別するための番号を取得する。制御部１１は、取得した番号にピアノロール情報ファイル用の所定の文字列を付加することにより、ピアノロール情報ファイルのファイル名を生成する。次いで、制御部１１は、生成したファイル名をファイル取得プロセス２に通知することにより、ファイル取得プロセス２によりピアノロール情報ファイルを取得させる。
【００４２】
次いで、制御部１１は、変換された映像ファイル、テロップ情報ファイル及びピアノロール情報ファイルを合成する（ステップＳ１０）。具体的に、制御部１１は、ピアノロール情報ファイルに基づいて、ピアノロールの画像を生成する。制御部１１は、生成した画像を、映像ファイルを構成するフレーム画像に合成する。また、制御部１１は、ステップＳ８と同様に、歌詞の文字を、映像ファイルを構成するフレーム画像に合成する。このとき、制御部１１は、歌詞の文字がピアノロールの画像と重ならないように、合成を行う。次いで、制御部１１は、ステップＳ１１に進む。
【００４３】
ステップＳ１１において、制御部１１は、変換した映像ファイル及び変換した楽曲ファイルを合成してカラオケファイルを生成し、生成したカラオケファイルをローカルストレージ３に記憶する。例えば、制御部１１は、MPEG-2、MPEG-4等のコンテナフォーマットの規格に従い、映像ファイルの動画と楽曲ファイルの音声とを多重化して、カラオケファイルを生成する。次いで、制御部１１は、生成したカラオケファイルをクライアント端末Ｔへ送信する（ステップＳ１２）。次いで、制御部１１は、生成したカラオケファイルをローカルストレージ３から削除する（ステップＳ１３）。次いで、制御部１１は、ステップＳ１に進む。
【００４４】
ステップＳ１において、制御部１１は、カラオケファイル要求を受信していないと判定した場合には（ステップＳ１：ＮＯ）、ステップＳ１４に進む。ステップＳ１４において、制御部１１は、仮想管理装置Ｍからの停止の指示に基づいて仮想サーバＶｎが停止するか否かを判定する。このとき、制御部１１は、仮想サーバＶｎが停止しないと判定した場合には（ステップＳ１４：ＮＯ）、ステップＳ１に進む。一方、制御部１１は、仮想サーバＶｎが停止すると判定した場合には（ステップＳ１４：ＹＥＳ）、ウェブ処理を終了させる。
【００４５】
図３は、配信サーバＤの制御部１１のファイル取得処理の一例を示すフローチャートである。ファイル取得処理は、ファイル取得プロセス２で実行される処理である。ウェブアプリケーション１からファイル取得プロセス２へ元データファイルのファイル名が通知されたとき、制御部１１はファイル取得処理を開始させる。具体的に、図２に示すウェブ処理のステップＳ２、Ｓ４、Ｓ７及びＳ９においてファイル取得プロセスが呼び出されるたびに、ファイル取得処理が実行される。図３に示すように、制御部１１は、通知されたファイル名に対応する元データファイルがローカルストレージ３に記憶されているか否かを判定する（ステップＳ２１）。このとき、制御部１１は、元データファイルが記憶されていると判定した場合には（ステップＳ２１：ＹＥＳ）、ステップＳ２２に進む。ステップＳ２２において、制御部１１は、ローカルストレージ３からファイル名に対応する元データファイルを取得して、作業ＲＡＭに記憶させる。次いで、制御部１１は、ステップＳ２８に進む。ステップＳ２８において、制御部１１は、取得した元データファイルの作業ＲＡＭ上の格納場所を示すアドレス等をウェブアプリケーション１へ通知することにより、元データファイルをウェブアプリケーション１へ受け渡す。ステップＳ２８を終えると、制御部１１は、ファイル取得処理を終了させる。
【００４６】
一方、制御部１１は、元データファイルが記憶されていないと判定した場合には（ステップＳ２１：ＮＯ）、ステップＳ２３に進む。ステップＳ２３において、制御部１１は、通知されたファイル名を含むアドレス要求を生成する。そして、制御部１１は、ホルダ管理プロセス５へアドレス要求を送信する。次いで、制御部１１は、アドレス要求に応じてホルダ管理プロセス５から送信されたＩＰアドレスを受信する（ステップＳ２４）。次いで、制御部１１は、受信したＩＰアドレスに対応する他の仮想サーバＶｎ又はセンターサーバＣから元データファイルを取得する（ステップＳ２５）。具体的に、制御部１１は、通知されたファイル名を含むファイル要求を、受信したＩＰアドレスに従って仮想サーバＶｎ又はセンターサーバＣへ送信する。ファイル要求を受信した仮想サーバＶｎ又はセンターサーバＣは、ファイル要求に含まれるファイル名に対応する元データファイルを送信する。そして、制御部１１は、送信された元データファイルを受信して、作業ＲＡＭに記憶させる。次いで、制御部１１は、取得した元データファイルをローカルストレージ３に記憶させる（ステップＳ２６）。次いで、制御部１１は、ローカルストレージ３から、そのローカルストレージ３が割り当てられた仮想サーバＶｎのＩＰアドレスを取得する。そして、制御部１１は、取得したＩＰアドレス及び通知されたファイル名を含むファイル取得通知を、ホルダ管理プロセス５へ送信する（ステップＳ２７）。次いで、制御部１１は、ステップＳ２８に進む。ステップＳ２８を終えると、制御部１１は、ファイル取得処理を終了させる。
【００４７】
図４は、配信サーバＤの制御部１１のメッセージ受信処理の一例を示すフローチャートである。メッセージ受信処理は、ホルダ管理プロセス５で実行される処理である。メッセージ受信処理は、仮想サーバが起動することにより、ホルダ管理プロセス５が起動したときに開始される。
【００４８】
メッセージ受信処理は、図２に示すウェブ処理、図３に示すファイル取得処理、及び図５に示す後述の仮想サーバ制御処理と並行して動作する。図４に示すように、制御部１１は、何れかの仮想サーバＶｎのファイル取得プロセス２からファイル取得通知を受信したか否かを判定する（ステップＳ３１）。このとき、制御部１１は、ファイル取得通知を受信したと判定した場合には（ステップＳ３１：ＹＥＳ）、ステップＳ３２に進む。ステップＳ３２において、制御部１１は、受信したファイル取得通知に含まれるファイル名及びＩＰアドレスを対応付けて、ファイル保持リストに追加する。次いで、制御部１１は、ステップＳ３７に進む。
【００４９】
一方、制御部１１は、ファイル取得通知を受信していないと判定した場合には（ステップＳ３１：ＮＯ）、ステップＳ３３に進む。ステップＳ３３において、制御部１１は、何れかの仮想サーバＶｎのファイル取得プロセス２からアドレス要求を受信したか否かを判定する（ステップＳ３３）。このとき、制御部１１は、アドレス要求を受信していないと判定した場合には（ステップＳ３３：ＮＯ）、ステップＳ３７に進む。一方、制御部１１は、アドレス要求を受信したと判定した場合には（ステップＳ３３：ＹＥＳ）、ステップＳ３４に進む。ステップＳ３４において、制御部１１は、受信したアドレス要求からファイル名を取得する。そして、制御部１１は、取得したファイル名がファイル保持リストに登録されているか否かを判定する。このとき、制御部１１は、取得したファイル名がファイル保持リストに登録されていると判定した場合には（ステップＳ３４：ＹＥＳ）、ステップＳ３５に進む。ステップＳ３５において、制御部１１は、取得したファイル名に対応するＩＰアドレスをファイル保持リストから取得する。そして、制御部１１は、取得したＩＰアドレスを、アドレス要求を送信してきた仮想サーバＶｎへ送信する。次いで、制御部１１は、ステップＳ３７に進む。一方、制御部１１は、取得したファイル名がファイル保持リストに登録されていないと判定した場合には（ステップＳ３４：ＮＯ）、ステップＳ３６に進む。ステップＳ３６において、制御部１１は、センターサーバＣのＩＰアドレスを、アドレス要求を送信してきた仮想サーバＶｎへ送信する。次いで、制御部１１は、ステップＳ３７に進む。
【００５０】
ステップＳ３７において、制御部１１は、仮想管理装置Ｍが停止するか否かを判定する。例えば、通信システムＳの管理者等がセンターサーバＣを操作すること等により、センターサーバＣが停止の指示を示すメッセージを仮想管理装置Ｍへ送信する。例えば、このメッセージを仮想管理装置Ｍが受信したとき、制御部１１は、仮想管理装置Ｍが停止すると判定する。このとき、制御部１１は、仮想管理装置Ｍが停止しないと判定した場合には（ステップＳ３７：ＮＯ）、ステップＳ３１に進む。一方、制御部１１は、仮想管理装置Ｍが停止すると判定した場合には（ステップＳ３７：ＹＥＳ）、メッセージ受信処理を終了させる。
【００５１】
図５は、配信サーバＤの制御部１１の仮想サーバ制御処理の一例を示すフローチャートである。仮想サーバ制御処理は、仮想サーバ制御プロセス６で実行される処理である。仮想サーバ制御処理は、仮想管理装置が起動することにより、仮想サーバ制御プロセス６が起動したときに開始される。図５に示すように、制御部１１は、ローカルストレージ７に記憶されている各仮想サーバＶｎのアクセス数を足し合わせることにより、全仮想サーバのアクセス数を計算する。また、制御部１１は、仮想サーバリストに登録されているＩＰアドレスをカウントすることにより、現在稼働している仮想サーバＶｎの数を計算する。各仮想サーバＶｎの負荷監視プロセス４は、その仮想サーバＶｎのアクセス数をカウントし、アクセス数及び仮想サーバＶｎのＩＰアドレスを定期的に仮想管理装置Ｍへ送信する。仮想管理装置Ｍは、アクセス数及びＩＰアドレスを受信するごとに、アクセス数及びＩＰアドレスを対応付けてローカルストレージ７に記憶させる。そして、制御部１１は、計算したアクセス数が、仮想サーバＶｎの数のＮ倍よりも多いか否かを判定する（ステップＳ４１）。Ｎは、予め設定された値である。例えば、Ｎは１０等であってもよい。制御部１１は、アクセス数が仮想サーバＶｎの数のＮ倍よりも多いと判定した場合には（ステップＳ４１：ＹＥＳ）、ステップＳ４２に進む。ステップＳ４２において、制御部１１は、新規の仮想サーバＶｎを起動させる。例えば、制御部１１は、仮想マシン起動停止制御プログラムへ仮想サーバＶｎの起動を要求する。仮想マシン起動停止制御プログラムは、仮想サーバＶｎを起動させる配信サーバＤ及び仮想サーバＶｎのＩＰアドレスを決定する。そして、仮想マシン起動停止制御プログラムは、決定した配信サーバＤへ、仮想サーバＶｎを起動させるためのメッセージを送信する。メッセージを受信した配信サーバＤは、記憶部１２に記憶されている仮想サーバ用のイメージファイルに基づいて、仮想サーバＶｎを起動させる。仮想マシン起動停止制御プログラムは、決定したＩＰアドレスを制御部１１へ通知する。次いで、制御部１１は、通知されたＩＰアドレスを仮想サーバリストに追加する（ステップＳ４３）。次いで、制御部１１は、ステップＳ４８に進む。
【００５２】
一方、制御部１１は、アクセス数が仮想サーバＶｎの数のＮ倍よりも多くはないと判定した場合には（ステップＳ４１：ＮＯ）、ステップＳ４４に進む。ステップＳ４４において、制御部１１は、計算したアクセス数が仮想サーバＶｎの数のＮ−１倍よりも少ないか否かを判定する。このとき、制御部１１は、アクセス数が仮想サーバＶｎの数のＮ−１倍よりも少なくはないと判定した場合には（ステップＳ４４：ＮＯ）、ステップＳ４８に進む。一方、制御部１１は、アクセス数が仮想サーバＶｎの数のＮ−１倍よりも少ないと判定した場合には（ステップＳ４４：ＹＥＳ）、ステップＳ４５に進む。ステップＳ４５において、制御部１１は、稼働している仮想サーバＶｎのうち何れかの仮想サーバＶｎを停止させる。例えば、制御部１１は、仮想サーバリストから、停止させる仮想サーバＶｎのＩＰアドレスを決定する。例えば、制御部１１はランダムにＩＰアドレスを決定してもよい。または、制御部１１は、ローカルストレージ７に記憶されている各仮想サーバＶｎのアクセス数を元に決定してもよい。例えば、アクセス数が０である仮想サーバＶｎのＩＰアドレスを決定してもよい。そして、制御部１１は、例えば仮想マシン起動停止制御プログラムへ仮想サーバＶｎの停止を要求する（ステップＳ４５）。仮想マシン起動停止制御プログラムは、決定されたＩＰアドレスに基づいて、停止させる仮想サーバＶｎを稼働している配信サーバＤを特定する。そして、仮想マシン起動停止制御プログラムは、特定した配信サーバＤへ、決定されたＩＰアドレスを含む停止要求を送信する。停止要求を受信した配信サーバＤは、停止要求に含まれるＩＰアドレスに対応する仮想サーバＶｎを停止させる。次いで、制御部１１は、仮想サーバリストから、停止させた仮想サーバＶｎのＩＰアドレスを削除する（ステップＳ４６）。次いで、制御部１１は、ファイル保持リストから、停止させた仮想サーバＶｎのエントリを削除させる（ステップＳ４７）。具体的に、制御部１１は、停止させた仮想サーバＶｎのＩＰアドレスを含む削除通知を、ホルダ管理プロセス５へ送信する。削除通知は、本発明の停止指示の一例である。削除通知を受信したホルダ管理プロセス５は、ファイル保持リストから、停止させた仮想サーバＶｎのＩＰアドレス、及びそのＩＰアドレスに対応付けられたファイル名を全て削除する。次いで、制御部１１は、ステップＳ４８に進む。
【００５３】
ステップＳ４８において、制御部１１は、仮想管理装置Ｍが停止するか否かを判定する。例えば、センターサーバＣから停止の指示を示すメッセージを仮想管理装置Ｍが受信したとき、制御部１１は、仮想管理装置Ｍが停止すると判定する。このとき、制御部１１は、仮想管理装置Ｍが停止しないと判定した場合には（ステップＳ４８：ＮＯ）、ステップＳ４１に進む。一方、制御部１１は、仮想管理装置Ｍが停止すると判定した場合には（ステップＳ４８：ＹＥＳ）、仮想サーバ制御処理を終了させる。
【００５４】
なお、制御部１１は、ステップＳ４１において、アクセス数と稼働している仮想サーバＶｎの数のＮ倍とを比較し、ステップＳ４４において、アクセス数と稼働している仮想サーバＶｎの数のＮ−１倍とを比較していた。しかしながら、アクセス数と比較する数は、仮想サーバＶｎの数のＮ倍又はＮ−１倍ではなくてもよい。制御部１１は、比較する数を、仮想サーバＶｎの数に応じて決定すればよい。具体的に、仮想サーバＶｎの数の値が大きいほど、比較する数の値が大きくなれるように設定されてもよい。また、ステップＳ４１でアクセス数と比較する数の値が、ステップＳ４４でアクセス数と比較する数の値よりも大きく設定されてもよい。
【００５５】
以上説明したように、制御部１１が、カラオケファイル要求に基づいて、楽曲ファイル、映像ファイル及びテロップ情報ファイルのファイル名を取得する。また、制御部１１が、楽曲ファイル、映像ファイル及びテロップ情報ファイルがローカルストレージ３に記憶されているかを判定する。また、制御部１１が、特定の元データファイルが記憶されていないと判定された場合には、元データファイルを記憶する仮想サーバを検索する。また、制御部１１が、検索された仮想サーバから元データを取得してローカルストレージ３へ記憶させる。また、制御部１１が、楽曲ファイル、映像ファイル及びテロップ情報ファイルを合成することにより、カラオケファイルを生成する。そのため、クラウドのリソースの利用効率を向上させることができる。
【符号の説明】
【００５６】
１１  制御部
１２  記憶部
１３  通信部
Ｄ  配信サーバ
Ｃ  センターサーバ
Ｔ  クライアント端末
Ｖｎ  仮想サーバ
Ｍ  仮想管理装置
ＣＣ  クラウド
ＮＷ  ネットワーク
Ｓ  通信システム
【図１】
2015197591.tif 000003
【図２】
2015197591.tif 000004
【図３】
2015197591.tif 000005
【図４】
2015197591.tif 000006
【図５】
2015197591.tif 000007