以下、本発明の実施形態を図面に基づいて説明する。
[1.カラオケシステムの構成及び動作の概要]
始めに、図1を参照して、本発明の一実施形態に係るカラオケシステムの構成及び動作の概要について説明する。
図1は、本実施形態に係るカラオケシステムSの概要構成例を示す図である。
本実施形態に係るカラオケシステムSにおいて利用されるカラオケデータは、図1に示す配信センタCにより管理される。
配信センタCには、ディストリビュータDT、サポータSP、センターサーバCS、及びファイアーウォールFWが設置される。そして、ディストリビュータDT、サポータSP、及びセンターサーバCSは、ファイアーウォールFWを介してネットワークNWに接続されている。ネットワークNWは、外部ネットワークの一例である。また、ネットワークNWは、例えば、インターネットやWAN(Wide Area Network)等のパブリックネットワークである。
ディストリビュータDTは、新規のカラオケデータをカラオケシステムS内に配信するための装置である。サポータSPは、後述するオーバーレイネットワークONにノード装置が参加する場合に、ノード装置から送信された参加リクエストを処理する装置である。ノード装置とは、オーバーレイネットワークONを介して他のノード装置との間で各種情報の送受信を行う装置である。以下、ノード装置を、「ノード」という。センターサーバCSは、コンテンツリスト一覧を管理する装置である。コンテンツリスト一覧は、コンテンツリストの一覧表である。また、コンテンツリストは、カラオケシステムSにおいて利用可能なカラオケデータのコンテンツの一覧表である。なお、センターサーバCSは設けず、コンテンツリスト一覧の管理は各ノードが行うようにしても良い。
図2(A)は、コンテンツリスト一覧の一例を示す図である。また、図2(B)は、コンテンツリストの一例を示す図である。
コンテンツリスト一覧には、図2(A)に示すように、コンテンツリストのコンテンツリストリビジョンとコンテンツリストIDの組が複数記述される。コンテンツリストリビジョンは、例えばコンテンツリスト毎に付与されるシリアル番号である。また、コンテンツリストリビジョンは、例えば、コンテンツリストの発行時に付与される。また、コンテンツリストリビジョンは、例えば、コンテンツリストが発行される度に大きくなっていく。例えば、図2(A)に示すコンテンツリスト一覧には、コンテンツリストリビジョンとして、「1」,「2」,「3」,「4」,「5」というシリアル番号が記述されている。この中で数値の最も大きいコンテンツリストリビジョン「5」が最新のコンテンツリストリビジョンである。そして、最新のコンテンツリストリビジョンが付与されたコンテンツリストが最新のコンテンツリストである。従って、コンテンツリストの新旧は、コンテンツリストリビジョンにより判断することができる。コンテンツリストIDは、コンテンツリスト毎に割り当てられる識別情報である。また、コンテンツリストIDは、例えば、コンテンツリストに係るデータを、所定のハッシュ関数によりハッシュ化した値である。ハッシュ関数としては、例えば、SHA−1等が用いられる。或いは、例えば、システム管理者により、コンテンツリスト毎に一意のコンテンツリストIDが割り当てられるようにしても良い。
なお、コンテンツリストの発行は、新規のカラオケデータの配信時等の所定のタイミングで配信センタCにより行われる。センターサーバCS又はディストリビュータDTは、配信センタCにより発行されたコンテンツリストをカラオケシステムS内に配信する。
コンテンツリストには、図2(B)に示すように、コンテンツのローカルファイル名とコンテンツIDの組が複数記述される。図2(B)に示すコンテンツリストには、コンテンツリストリビジョンとして「1」が付与されている。ローカルファイル名は、例えば、カラオケデータのコンテンツ毎に付与される曲番に相当する。コンテンツIDは、コンテンツ毎に割り当てられる識別情報である。また、コンテンツIDは、例えば、コンテンツ名+任意の数値が、コンテンツリストIDを得るときと共通のハッシュ関数によりハッシュ化した値である。或いは、例えば、システム管理者により、コンテンツ毎に一意のコンテンツIDが割り当てられるようにしても良い。
また、カラオケシステムSにおいては、図1に示すように、複数の店舗Pm(m=1,2,3・・・の何れか)毎に店舗ネットワークNLmが構築されている。店舗Pmは、拠点の一例である。店舗ネットワークNLmは、内部ネットワークの一例である。また、店舗ネットワークNLmは、例えば、LAN(Local Area Network)等のプライベートネットワークである。なお、店舗ネットワークNLmは、複数のLANが相互接続して構築されたCAN(Campus Area Network)等のネットワークであっても良い。
各店舗ネットワークNLmには、複数のコマンダCm−n(n=1,2,3・・・の何れか)とルータRmとが接続されている。このように、カラオケシステムSは、複数のコマンダCm−nとルータRmとを店舗ネットワークNLm毎に備える。なお、本実施形態におけるコマンダは、カラオケ装置の一例である。コマンダCm−nは、カラオケデータを再生する装置である。例えば、店舗Pm内の各部屋には1台のコマンダCm−nが設置される。また、ルータRmは、複数のネットワーク間でIP(Internet Protocol)パケットを中継する中継機器である。さらに、本実施形態において、ルータRmはノードの機能を備える。店舗ネットワークNLmとネットワークNWとを繋ぐルータRmにノードの機能を搭載することで、機器設置スペースを節約することができ、なおかつ、オーバーレイネットワークONによる通信処理の効率化を図ることができる。
そして、各店舗Pmにおいて、複数のコマンダCm−nの中からは、代表コマンダMCmと、スレーブコマンダ(図示せず)と、が少なくとも1つ決定される。代表コマンダMCmは、複数のコマンダCm−nを代表して、店舗ネットワークNLmを介してルータRmとの間で情報の送受信を行う。一方、スレーブコマンダは、代表コマンダMCmが動作不能になったとき代表コマンダMCmの動作を行う。これにより、代表コマンダMCmが故障等により機能しなくなったときでも、スレーブコマンダにより代表コマンダの機能を維持することができる。
ここで、代表コマンダMCmの処理概要について説明する。代表コマンダMCmは、センターサーバCSにより管理されるコンテンツリスト一覧を取得する。次に、代表コマンダMCmは、取得したコンテンツリスト一覧に記述されているコンテンツリストリビジョンが付与されたコンテンツリストをルータRmから取得する。次に、代表コマンダMCmは、取得したコンテンツリストに記述されているローカルファイル名が付与されたカラオケデータのコンテンツをルータRmから取得する。このようにコンテンツの取得が行われたコンテンツリストのコンテンツリストリビジョンを、処理済コンテンツリビジョンという。なお、非代表のコマンダCm−nは、代表コマンダMCmと同様の流れでカラオケデータのコンテンツを取得することになる。しかし、非代表のコマンダCm−nによる、コンテンツリスト一覧、コンテンツリスト、及びカラオケデータのコンテンツの取得先は、同じ店舗ネットワークNLmに接続された代表コマンダMCmになる。
また、各店舗ネットワークNLmは、各ルータRm及び各店舗の通信回線Kmを介してネットワークNWに接続されている。各店舗PmのルータRmは、他の店舗Pmの複数のルータRmとの間で、ネットワークNWを介して形成されるオーバーレイネットワークONによる通信を行う。つまり、オーバーレイネットワークONを介して複数のルータRm間でピアツーピア通信が行われる。オーバーレイネットワークONとは、ネットワークNWを用いて形成される仮想的なリンクを構成する論理的なネットワークである。また、オーバーレイネットワークONは、特定のアルゴリズム、例えば、DHT(Distributed Hash Table)を利用したアルゴリズムにより実現される。
また、カラオケシステムSにおいては、例えばディストリビュータDTにより配信された複数のカラオケデータが所定のファイル形式で複数のルータRmに分散されて保存されている。例えば、ルータR1には、コンテンツ名が「AAA」の演奏曲のカラオケデータが保存されている。また、ルータR2には、コンテンツ名が「BBB」の演奏曲のカラオケデータが保存されている。なお、ディストリビュータDTは、新規のカラオケデータをカラオケシステムSに投入する場合、例えば1又は複数のルータRmを選択する。そして、ディストリビュータDTは、選択したルータRmにカラオケデータを配信する。これにより、ルータRmにはカラオケデータが保存されることになる。
さらに、例えばディストリビュータDTにより配信された複数のコンテンツリストが複数のルータRmに分散されて保存されている。例えば、ルータR3には、コンテンツリストリビジョンが「1」のコンテンツリストが保存されている。また、ルータR4には、コンテンツリストリビジョンが「2」のコンテンツリストが保存されている。
各ルータRmは、オーバーレイネットワークONに参加することにより、他のルータRmからカラオケデータ及びコンテンツリストを取得可能になっている。
ここで、オーバーレイネットワークONについて説明する。このオーバーレイネットワークONの説明においては、オーバーレイネットワークONにおけるルータRmを、適宜、「ノード」という。また、他のルータRmから取得可能なカラオケデータとコンテンツリストを総称して「保存コンテンツ」という。また、コンテンツIDとコンテンツリストIDを総称して「保存コンテンツID」という。
各ノードは、サポータSPに参加リクエストを送信することによりオーバーレイネットワークONへ参加することができる。オーバーレイネットワークONに参加している各ノードには、固有の識別情報であるノードIDが割り当てられている。ノードIDは、例えば、各ノードに個別に割り当てられたIP(Internet Protocol)アドレス、製造番号、或いはMACアドレス(Media Access Control address)等を、保存コンテンツIDを得るときと共通のハッシュ関数によりハッシュ化した値である。或いは、例えば、システム管理者により、ノード毎に一意のノードIDが割り当てられるようにしても良い。なお、ノードIDと保存コンテンツIDは、ハッシュ関数の特性により、同一の桁数を有しており、同一のID空間にさほど偏りなく分散して配置される。
また、各ノードは、例えば、オーバーレイネットワークONへの参加時に、DHTを用いたルーティングテーブルを生成する。このルーティングテーブルには、ノード情報が複数登録されている。ノード情報とは、ノードID、IPアドレス及びポート番号を含む情報である。なお、DHTを用いたルーティングテーブルについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
また、オーバーレイネットワークONを介して取得可能な保存コンテンツの所在を示す情報は、インデックス情報として、保存コンテンツの所在を管理しているノードに記憶される。インデックス情報には、保存コンテンツを保存しているノードのノード情報と、保存コンテンツの保存コンテンツIDとの組が含まれる。以下、保存コンテンツの所在を管理しているノードを「ルートノード」又は「保存コンテンツのルートノード」という。また、保存コンテンツを保存しているノードを「コンテンツ保持ノード」という。ルートノードは、例えば、保存コンテンツIDと最も近いノードIDが割り当てられたノードであるように定められる。保存コンテンツIDと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。
ところで、あるノードが保存コンテンツを取得する場合、このノードは保存コンテンツの所在をルートノードに問い合わせる。以下、保存コンテンツの所在を問い合わせるノードを「ユーザノード」という。具体的に、保存コンテンツの所在の問い合わせにおいては、ユーザノードは、先ず、コンテンツ所在問合せメッセージを生成する。コンテンツ所在問合せメッセージには、問い合わせ対象の保存コンテンツのコンテンツID、ユーザノードのIPアドレス及びポート番号等が含まれる。このように生成されたコンテンツ所在問合せメッセージは、ユーザノードが記憶しているDHTを用いたルーティングテーブルに従って、ユーザノードから他のノードに送信される。これにより、コンテンツ所在問合せメッセージは、保存コンテンツIDをキーとするDHTルーティングによって1又は複数のノードにより転送され、最終的にルートノードにより受信される。なお、DHTルーティングについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
コンテンツ所在問合せメッセージを受信したルートノードは、コンテンツ所在問合せメッセージに含まれる保存コンテンツIDに対応するインデックス情報をインデックス情報キャッシュから取得する。そして、ルートノードは、取得したインデックス情報を、例えば、コンテンツ所在問合せメッセージの送信元であるユーザノードに返信する。こうして、インデックス情報を取得したユーザノードは、インデックス情報に含まれるコンテンツ保持ノードのIPアドレス及びポート番号に基づいて、コンテンツ保持ノードにアクセスする。そして、ユーザノードは、アクセスしたコンテンツ保持ノードから、保存コンテンツを取得することができる。なお、コンテンツ保持ノードにおいて例えばアクセス集中が発生していると、ユーザノードがコンテンツ保持ノードにアクセスしてもコンテンツ保持ノードから応答が帰って来ず、タイムアウトとなってしまう。従って、このような場合、ユーザノードは、ディストリビュータDTから保存コンテンツを取得することになる。
なお、ディストリビュータDTは、オーバーレイネットワークONを介して送受信可能な各保存コンテンツのオリジナルを保持している。
こうして、ユーザノードは、コンテンツ保持ノード又はディストリビュータDTから保存コンテンツを取得して保存すると、パブリッシュメッセージを生成する。このパブリッシュメッセージは、保存コンテンツを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージには、保存コンテンツID及びユーザノード自身のノード情報を含む。このように生成されたパブリッシュメッセージは、ユーザノードが記憶しているDHTを用いたルーティングテーブルに従って、ユーザノードから他のノードに送信される。これにより、パブリッシュメッセージは、コンテンツ所在問合せメッセージと同じように、保存コンテンツIDをキーとするDHTルーティングによって1又は複数のノードにより転送され、最終的にルートノードにより受信される。そして、ルートノードは、パブリッシュメッセージに含まれるノード情報及び保存コンテンツIDの組を含むインデックス情報をインデックス情報キャッシュ領域に記憶する。こうして、ユーザノードは、取得した保存コンテンツを保存するコンテンツ保持ノードとなる。
なお、ルータRmとノードを別体として構成しても良い。この場合、ルータRmが、例えばUPnP(Universal Plug and Play)機能等を利用してポートフォワーディングの設定をする。そして、ポートフォワーディングの設定により、ルータに接続されるノードがオーバーレイネットワークONを介して他のノードとの間で各種情報の送受信を行うことになる。
[2.コマンダCm−nの構成及び機能等]
次に、図3を参照して、コマンダCm−nの構成及び機能について説明する。
図3は、コマンダCm−nの概要構成例を示す図である。
コマンダCm−nは、図3に示すように、制御部1と、記憶部2と、通信部3と、入力部4と、バッファメモリ5と、デコーダ部6と、映像処理部7と、表示部8と、音声処理部9と、スピーカ9aとを備えて構成される。制御部1、記憶部2、通信部3、入力部4、バッファメモリ5、及びデコーダ部6はバス9bを介して相互に接続されている。
なお、各コマンダCm−nには、各店舗ネットワークNLmにおいて固有のコマンダ番号が割り当てられている。コマンダ番号は、コマンダ情報の一例である。また、コマンダ番号は、例えばシリアル番号で構成される。また、各コマンダCm−nには、IPアドレスが割り当てられている。
制御部1は、演算機能を有するCPU,作業用RAM,各種設定データ及びプログラムを記憶するフラッシュメモリ等から構成される。制御部1は、第1乃至第3送信手段、第1乃至第3受信手段、判定手段、及び決定手段等の一例である。CPUは、コンピュータの一例である。プログラムには、CPUにコマンダとしての処理を実行させるためのカラオケプログラムが含まれる。なお、カラオケプログラムは、例えば、ネットワークNWに接続された所定のサーバからダウンロードされるようにしても良い。或いは、カラオケプログラムは、例えば、記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
制御部1は、CPUがプログラムを読み出して実行することにより、カラオケデータの取得、保存、及び演奏等の制御を行う。なお、制御部1におけるフラッシュメモリには、この制御部1を備えるコマンダCm−n自身に割り当てられたコマンダ番号及びIPアドレス等が記憶される。
また、制御部1は、タイマ機能及び時計機能を有する。例えば、CPUが、計時機能を用いてタイマのカウントを行う。
記憶部2は、コンテンツリスト、及びカラオケデータ等を記憶するためのハードディスクドライブ等から構成される。カラオケデータは、曲番に相当するローカルファイル名が付与されたファイルとして記憶される。また、カラオケデータには、音声データ、字幕データ、及び映像データが含まれる。音声データは、演奏曲を音声出力するための例えばMIDI(Musical Instrument Digital Interface)等のデータである。字幕データは、演奏曲の演奏中に歌詞を表示するためのデータである。映像データは、演奏曲の演奏中に背景映像を表示するためのデータである。
通信部3は、例えば固有のMACアドレスが割り当てられたイーサネット(登録商標)カード等から構成され、店舗ネットワークNLmに接続されている。各コマンダCm−nの通信部3は、店舗ネットワークNLmを介した代表コマンダMCmとの間の通信の制御を行う。また、代表コマンダMCmの通信部3は、店舗ネットワークNLmを介したルータRmとの間の通信の制御を行う。
入力部4は、例えば、ユーザが演奏曲を検索するための検索端末と無線通信により接続可能になっている。入力部4は、検索端末から演奏曲の再生指令を入力すると、この再生指令を制御部1に出力する。なお、再生指令には、例えば演奏曲の曲番が含まれる。
バッファメモリ5は、通信部3を介して受信されたカラオケデータ等を一時蓄積する。バッファメモリ5に蓄積されたカラオケデータは記憶部2に出力され、記憶保存される。
デコーダ部6、映像処理部7、表示部8、音声処理部9、及びスピーカ9aは、制御部1による演奏制御の下、記憶部2に保存されたカラオケデータを再生出力するためのものである。なお、音声処理部9は、図示しない音源を有する。
デコーダ部6は、カラオケデータに含まれる音声データ、字幕データ、及び映像データの復号化等のデコード処理を行う。映像処理部7は、デコーダ部6によりデコードされた字幕データ及び映像データを映像信号として再生する。そして、表示部8は、映像処理部7により再生された映像信号に基づきディスプレイに字幕及び背景映像を表示する。一方、音声処理部9は、デコーダ部6によりデコードされた音声データを、音源により音声信号として再生する。そして、スピーカ9aは、音声処理部9により再生された音声信号を音波として出力する。
なお、表示部8及びスピーカ9aは、別装置に設けられるものであってもよい。この場合は、コマンダCm−nは、再生した映像信号及び音声信号を別装置に供給することになる。
[3.ルータRmの構成及び機能等]
次に、図4を参照して、ルータRmの構成及び機能について説明する。
図4は、ルータRmの概要構成例を示す図である。
ルータRmは、図4に示すように、IPパケット中継処理部11と、ノード処理部12と、記憶部13と、通信部14と、バッファメモリ15と、を備えて構成される。IPパケット中継処理部11、ノード処理部12、記憶部13、通信部14、及びバッファメモリ15はバス16を介して相互に接続されている。
なお、各ルータRmには、IPアドレスが割り当てられている。
IPパケット中継処理部11は、OSI(Open Systems Interconnection)参照モデルの第3層であるネットワーク層において、他のルータ又はホストからのIPパケットを中継する処理を行う。IPパケット中継処理部11は、IPパケットを中継するために用いるルーティングテーブルを有する。なお、IPパケット中継処理部11の機能は、公知のルータ又はL3スイッチングハブと同様であるので、詳しい説明を省略する。
ノード処理部12は、演算機能を有するCPU,作業用RAM,各種設定データ及びプログラムを記憶するフラッシュメモリ等から構成される。ノード処理部12は、通信制御手段、受信手段、取得手段、及び送信手段等の一例である。プログラムには、CPUにノードとしての処理を実行させるためのノードプログラムが含まれる。そして、ノード処理部12は、CPUがプログラムを読み出して実行することにより、代表コマンダMCmからの要求に応じてカラオケデータの送信処理を行う。また、ノード処理部12は、通信制御手段として、オーバーレイネットワークONによる通信を制御する。そして、ノード処理部12は、オーバーレイネットワークONにおいて、ユーザノード、ルートノード、及びコンテンツ保持ノード等の少なくとも何れか一つのノードとしての処理を行う。
記憶部13は、各種データ等を記憶するためのハードディスクドライブ等から構成される。具体的には、記憶部13には、カラオケデータ、コンテンツリスト、及びインデックス情報が記憶されている。また、記憶部13には、オーバーレイネットワークONで使用されるDHTを用いたルーティングテーブルが記憶されている。さらに、記憶部13には、ディストリビュータDTのIPアドレスと、サポータSPのIPアドレスと、センターサーバCSのIPアドレス等とが記憶されている。
通信部14は、例えば固有のMACアドレスが割り当てられたイーサネット(登録商標)カード等から構成され、店舗ネットワークNLm及びネットワークNWに接続されている。そして、通信部14は、店舗ネットワークNLmを介した代表コマンダMCmとの間の通信の制御を行う。また、通信部14は、ネットワークNWを介した他のルータRm、ディストリビュータDT、サポータSP、又はセンターサーバCSとの間の通信の制御を行う。
バッファメモリ15は、通信部14を介して受信されたカラオケデータを一時蓄積する。バッファメモリ15に蓄積されたカラオケデータは記憶部13に出力され、記憶保存される。
[4.カラオケシステムSの動作]
次に、図5乃至図10を参照して、カラオケシステムSの動作について説明する。
図5は、コマンダCm−nの制御部1におけるメイン処理を示すフローチャートである。なお、以下の説明においては、店舗P1を一例として挙げ、店舗P1における店舗ネットワークNL1に接続されたコマンダC1−1を例にとって説明する。
図5に示す処理は、例えばコマンダC1−1の起動により開始される。コマンダC1−1の制御部1は、先ず、代表コマンダの通知要求を示す代表コマンダ通知要求メッセージを店舗ネットワークNL1内にマルチキャスト又はブロードキャストする(ステップS1)。つまり、代表コマンダ通知要求メッセージは、マルチキャスト又はブロードキャストにより、店舗ネットワークNL1を介して複数のコマンダC1−2,3,4に送信される。代表コマンダ通知要求メッセージは、代表コマンダに対して、代表コマンダであること示す通知を要求するメッセージである。制御部1は、代表コマンダ通知要求メッセージを送信すると、代表コマンダ通知応答メッセージの受信を待機するための待機時間判定用のタイマのカウントを開始する。なお、代表コマンダ通知要求メッセージは、代表カラオケ装置通知要求情報の一例である。
次いで、コマンダC1−1の制御部1は、代表コマンダ通知応答メッセージを受信したか否かを判定する(ステップS2)。代表コマンダ通知応答メッセージは、代表コマンダの通知要求に応えるメッセージである。そして、制御部1は、代表コマンダ通知応答メッセージを受信していないと判定した場合には(ステップS2:NO)、ステップS3に進む。一方、制御部1は、代表コマンダ通知応答メッセージを受信したと判定した場合には(ステップS2:YES)、ステップS4に進む。なお、代表コマンダ通知応答メッセージには、代表コマンダMC1のコマンダ番号が含まれている。
ステップS3では、コマンダC1−1の制御部1は、予め設定された待機時間が経過したか否かを、待機時間判定用のタイマがカウントアップしたかどうかより判定する。
そして、制御部1は、予め設定された待機時間が経過していないと判定した場合には(ステップS3:NO)、ステップS2に戻る。一方、制御部1は、予め設定された待機時間が経過したと判定した場合には(ステップS3:YES)、ステップS10に進む。この場合、待機時間経過しても代表コマンダMC1からの通知応答がないので、コマンダC1−1は、代表コマンダMC1が動作不能になったと判断し、スレーブコマンダとして、代表コマンダ動作を行うことになる。
ステップS4では、コマンダC1−1の制御部1は、代表コマンダ通知応答メッセージに含まれるコマンダ番号と、代表コマンダ通知応答メッセージを受信したコマンダC1−1自身のコマンダ番号とに基づいて、代表コマンダを交代するための所定の条件を満たすか否かを判定する。
なお、代表コマンダ通知応答メッセージに含まれるコマンダ番号は、代表コマンダMC1のコマンダ番号である。代表コマンダMC1のコマンダ番号は、代表カラオケ装置情報の一例である。例えば、コマンダC1−1の制御部1は、代表コマンダMC1のコマンダ番号と、コマンダC1−1自身のコマンダ番号との大小を比較する。この比較結果、制御部1は、コマンダC1−1自身のコマンダ番号より、代表コマンダMC1のコマンダ番号の方が大きいか否かを判定する。ここでは、コマンダ番号が最も小さいコマンダが代表コマンダになるものとする。例えば店舗P1に新しく設置されるコマンダC1−mほど、コマンダ番号が大きい。これにより、最も古くから設置されているコマンダC1−mが代表コマンダになる。なお、コマンダ番号が最も大きいコマンダが代表コマンダになるように構成してもよい。この場合、最新のコマンダC1−mが代表コマンダになる。
そして、コマンダC1−1自身のコマンダ番号より、代表コマンダMC1のコマンダ番号の方が小さい場合、コマンダC1−1の制御部1は、代表コマンダを交代するための所定の条件を満たさないと判定し(ステップS4:NO)、ステップS5に進む。一方、コマンダC1−1自身のコマンダ番号より、代表コマンダMC1のコマンダ番号の方が大きい場合、制御部1は、代表コマンダを交代するための所定の条件を満たすと判定する(ステップS4:YES)。これにより、次の代表コマンダMC1がコマンダC1−1に決定される。そして、処理はステップS9に進む。このように、コマンダ番号の大きさによって、代表コマンダMC1が決定されるように構成すれば、代表コマンダを動的に変更することを、より迅速に行うことができる。
なお、コマンダC1−nが店舗P1内の部屋毎に設置されている場合、部屋の使用/非使用によって、代表コマンダMC1が決定されるように構成しても良い。この場合、使用/非使用の状態は、例えば、店舗P1に設置された管理用コンピュータにより管理される。管理コンピュータは、店舗P1に例えば1台設けられており、全部屋の空き状況等を管理する。また、管理用コンピュータは、店舗ネットワークNL1に接続される。各コマンダC1−mは、夫々が設置された部屋の使用/非使用の状態を示す情報を、管理用コンピュータから店舗ネットワークNL1を介して受信する。そして、例えば、コマンダC1−1は、上記ステップS4において、コマンダC1−1が設置された部屋が使用であるか否かを判定する。コマンダC1−1が設置された部屋が使用である場合、コマンダC1−1の制御部1は、代表コマンダを交代するための所定の条件を満たさないと判定し(ステップS4:NO)、ステップS5に進む。一方、コマンダC1−1が設置された部屋が不使用である場合、制御部1は、代表コマンダを交代するための所定の条件を満たすと判定し(ステップS4:YES)、ステップS9に進む。このように、部屋の使用/非使用によって、代表コマンダMC1が決定されるように構成すれば、カラオケ利用者に利用されていないコマンダを代表コマンダとすることができる。従って、代表コマンダの動作を円滑に実行することができる。 ステップS5では、コマンダC1−1の制御部1は、現在時刻が、カラオケデータのコンテンツ取得時刻になったか否かを判定する。コンテンツ取得時刻は、カラオケデータの取得を開始するために設定された時刻である。コンテンツ取得時刻は、例えば、コマンダC1−n毎に時間をずらすように設定される。そして、制御部1は、コンテンツ取得時刻になったと判定した場合には(ステップS5:YES)、ステップS6に進む。一方、制御部1は、コンテンツ取得時刻がなっていないと判定した場合には(ステップS5:NO)、ステップS7に進む。
ステップS6では、コマンダC1−1の制御部1は、非代表コマンダのコンテンツ取得処理を実行する。
図6は、図5に示すステップS6における非代表コマンダのコンテンツ取得処理の詳細を示すフローチャートである。
図6に示すステップS61では、コマンダC1−1の制御部1は、例えば記憶部2に記憶されている処理済コンテンツリストリビジョンを、店舗ネットワークNL1を介して代表コマンダMC1に送信する。このとき送信される処理済コンテンツリストリビジョンは、記憶されている処理済コンテンツリストリビジョンのうち、最新の処理済コンテンツリストリビジョンである。最新の処理済コンテンツリストリビジョンとは、番号が最も大きい処理済コンテンツリストリビジョンである。
なお、このとき、コマンダC1−1の制御部1は、代表コマンダMC1を特定するために、ステップS1と同様、代表コマンダ通知要求メッセージを店舗ネットワークNL1内にマルチキャスト又はブロードキャストしてもよい。これは、ステップS1で代表コマンダ通知応答メッセージが受信された後、代表コマンダが変わる場合があるためである。
ステップS61で送信された処理済コンテンツリストリビジョンは、後述するステップS106で代表コマンダMC1により受信される。そして、処理済コンテンツリストリビジョンの送信に対する応答としてコンテンツリスト一覧が、代表コマンダMC1から送信されてくる。コマンダC1−1の制御部1は、代表コマンダMC1から送信されたコンテンツリスト一覧を受信する(ステップS62)。受信されたコンテンツリスト一覧は、制御部1のRAMに記憶される。
次いで、コマンダC1−1の制御部1は、コンテンツリスト一覧に記述されたコンテンツリストリビジョンを一つ選択する(ステップS63)。なお、ステップS63の処理は、コンテンツリスト一覧に記述された全てのコンテンツリストリビションが選択されるまで繰り返される。また、例えば、番号が小さいコンテンツリストリビジョンから選択される。
次いで、コマンダC1−1の制御部1は、選択したコンテンツリストリビションに対応するコンテンツリストの要求を示すリスト要求メッセージを、店舗ネットワークNL1を介して代表コマンダMC1に送信する(ステップS64)。リスト要求メッセージは、コンテンツリストを要求するメッセージである。次いで、コマンダC1−1の制御部1は、代表コマンダMC1から送信されたコンテンツリストを受信する(ステップS65)。受信されたコンテンツリストは、制御部1のRAMに記憶される。なお、コンテンツリストには、コマンダC1−1の記憶部2に記憶されていないカラオケデータのコンテンツのローカルファイル名等が記述されている。
次いで、コマンダC1−1の制御部1は、コンテンツリスト一覧に記述された全てのコンテンツリストリビジョンを選択したか否かを判定する(ステップS66)。そして、制御部1は、全てのコンテンツリストリビジョンを選択していないと判定した場合には(ステップS66:NO)、ステップS63に戻る。一方、制御部1は、全てのコンテンツリストリビジョンを選択したと判定した場合には(ステップS66:YES)、ステップS67に進む。
ステップS67では、コマンダC1−1の制御部1は、ステップS65で受信され、記憶されたコンテンツリストを一つ選択する。
次いで、コマンダC1−1の制御部1は、選択したコンテンツリストに記述されたローカルファイル名を一つ選択する(ステップS68)。つまり、コマンダC1−1の記憶部2に記憶されていないカラオケデータが決定される。
次いで、コマンダC1−1の制御部1は、決定したカラオケデータのコンテンツの要求を示すコンテンツ要求メッセージを、店舗ネットワークNL1を介して代表コマンダMC1に送信する(ステップS69)。コンテンツ要求メッセージは、カラオケデータのコンテンツを要求するメッセージである。なお、コンテンツ要求メッセージは、カラオケデータの要求を示す要求情報の一例である。また、コンテンツ要求メッセージには、ステップS68で選択されたローカルファイル名が含まれる。
次いで、コマンダC1−1の制御部1は、代表コマンダMC1から送信されたカラオケデータを受信する(ステップS70)。こうして、コマンダC1−1は、未だ取得していない新たなカラオケデータを、動的に取得することができる。受信されたカラオケデータは、バッファメモリ5に蓄積された後、ローカルファイル名が付与されたファイルとして記憶部2に記憶される。
次いで、コマンダC1−1の制御部1は、ステップS67で選択されたコンテンツリストに記述された全てのローカルファイル名を選択したか否かを判定する(ステップS71)。そして、制御部1は、全てのローカルファイル名を選択していないと判定した場合には(ステップS71:NO)、ステップS68に戻る。ステップS68に戻ると、制御部1は、コンテンツリストに記述されたローカルファイル名のうち未だ選択していないローカルファイル名を一つ選択することになる。一方、制御部1は、全てのローカルファイル名を選択したと判定した場合には(ステップS71:YES)、ステップS72に進む。
ステップS72では、コマンダC1−1の制御部1は、ステップS68〜ステップS70で処理されたコンテンツリストのコンテンツリストリビジョンを処理済として記録する。例えば、このように処理済となったコンテンツリストリビジョンは、上述した処理済コンテンツリストリビジョンとして記憶部2に記憶される。
次いで、コマンダC1−1の制御部1は、ステップS65で受信され、記憶された全てのコンテンツリストを選択したか否かを判定する(ステップS73)。そして、制御部1は、全てのコンテンツリストを選択していないと判定した場合には(ステップS73:NO)、ステップS67に戻る。ステップS67に戻ると、制御部1は、上記記憶されたコンテンツリストのうち未だ選択していないコンテンツリストを一つ選択することになる。一方、制御部1は、全てのコンテンツリストを選択したと判定した場合には(ステップS73:YES)、図5に示す処理に戻る。
次いで、図5に示すステップS7では、コマンダC1−1の制御部1は、現在時刻が、代表コマンダの通知要求時刻になったか否かを判定する。この通知要求時刻は、代表コマンダへ通知を要求するために設定された時刻である。通知要求時刻は、例えば所定時間間隔で到来するように設定される。そして、制御部1は、代表コマンダの通知要求時刻になったと判定した場合には(ステップS7:YES)、ステップS1に移行する。ステップS1に戻ると、制御部1は、代表コマンダ通知要求メッセージを店舗ネットワークNL1内にマルチキャスト又はブロードキャストする。このように、代表コマンダ通知要求メッセージの送信は、定期的に行われる。従って、代表コマンダMC1の交代が頻繁にあっても、各コマンダC1−nは迅速に代表コマンダMC1を認識することができる。そのため、各コマンダC1−nと代表コマンダMC1との通信の効率を向上させることができる。
一方、コマンダC1−1の制御部1は、代表コマンダの通知要求時刻になっていないと判定した場合には(ステップS7:NO)、ステップS8に進む。
ステップS8に示すその他の処理では、例えば再生指令に応じてカラオケデータの再生処理等が行われ、ステップS5に戻る。
一方、ステップS9では、コマンダC1−1の制御部1は、代表コマンダの交代を要求する代表コマンダ交代要求メッセージを、店舗ネットワークNL1を介して代表コマンダMC1に送信する。代表コマンダ交代要求メッセージは、代表コマンダに交代を要求するメッセージである。なお、代表コマンダ交代要求メッセージは、交代要求情報の一例である。こうして、次の代表コマンダMC1がコマンダC1−1に交代される。従って、動的に代表コマンダMC1を変更することができる。そのため、カラオケシステムSにおいて安定してカラオケデータをコマンダに供給することができる。
次いで、コマンダC1−1の制御部1は、代表コマンダ動作を実行する(ステップS10)。
図7は、図5に示すステップS10における代表コマンダ動作の詳細を示すフローチャートである。
代表コマンダ動作では、制御部1により、代表コマンダであることを示すフラグが“1”にセットされる。次いで、代表コマンダMC1の制御部1は、代表コマンダ通知要求メッセージを受信したか否かを判定する(ステップS101)。そして、制御部1は、代表コマンダ通知要求メッセージを受信していないと判定した場合には(ステップS101:NO)、ステップS103に進む。一方、制御部1は、代表コマンダ通知要求メッセージを受信したと判定した場合には(ステップS101:YES)、ステップS102に進む。
ステップS102では、代表コマンダMC1の制御部1は、代表コマンダ通知要求メッセージを送信したコマンダC1−nに、店舗ネットワークNL1を介して代表コマンダ通知応答メッセージを返信する。
次いで、代表コマンダMC1の制御部1は、代表コマンダ交代要求メッセージを受信したか否かを判定する(ステップS103)。そして、制御部1は、代表コマンダ交代要求メッセージを受信していないと判定した場合には(ステップS103:NO)、ステップS104に進む。一方、制御部1は、代表コマンダ交代要求メッセージを受信したと判定した場合には(ステップS103:YES)、代表コマンダであることを示すフラグを“0”にセットする。こうして、代表コマンダ動作が終了し、図5に示す処理に戻る。
ステップS104では、代表コマンダMC1の制御部1は、現在時刻が、カラオケデータのコンテンツ取得時刻になったか否かを判定する。そして、制御部1は、コンテンツ取得時刻になったと判定した場合には(ステップS104:YES)、ステップS105に進む。なお、ステップS105に示す代表コマンダのコンテンツ取得処理については後述する。
一方、代表コマンダMC1の制御部1は、コンテンツ取得時刻になっていないと判定した場合には(ステップS104:NO)、ステップS106に進む。
ステップS106では、代表コマンダMC1の制御部1は、処理済コンテンツリストリビジョンを受信したか否かを判定する。そして、制御部1は、処理済コンテンツリストリビジョンを受信していないと判定した場合には(ステップS106:NO)、ステップS112に進む。一方、制御部1は、処理済コンテンツリストリビジョンを受信したと判定した場合には(ステップS106:YES)、ステップS107に進む。
ステップS107では、代表コマンダMC1の制御部1は、記憶部2に記憶されているコンテンツリストを一つ選択する。
次いで、代表コマンダMC1の制御部1は、選択したコンテンツリストのコンテンツリストリビジョンが、ステップS106で受信された処理済コンテンツリストリビジョンより新しいか否かを判定する(ステップS108)。そして、制御部1は、処理済コンテンツリストリビジョンより新しい、言い換えれば、番号が大きいと判定した場合には(ステップS108:YES)、ステップS109に進む。一方、制御部1は、処理済コンテンツリストリビジョンより新しくないと判定した場合には(ステップS108:NO)、ステップS110に進む。
ステップS109では、代表コマンダMC1の制御部1は、コンテンツリスト一覧に、新しいと判定したコンテンツリストのコンテンツリストリビジョン及びコンテンツリストIDを記述する。
ステップS110では、代表コマンダMC1の制御部1は、記憶部2に記憶された全てのコンテンツリストを選択したか否かを判定する。そして、制御部1は、全てのコンテンツリストを選択していないと判定した場合には(ステップS110:NO)、ステップS107に戻る。ステップS107に戻ると、制御部1は、上記記憶されたコンテンツリストのうち未だ選択していないコンテンツリストを一つ選択することになる。一方、制御部1は、全てのコンテンツリストを選択したと判定した場合には(ステップS110:YES)、ステップS111に進む。
ステップS111では、代表コマンダMC1の制御部1は、処理済コンテンツリストリビジョンを送信したコマンダC1−nに、店舗ネットワークNL1を介してコンテンツリスト一覧を返信する。このコンテンツリスト一覧には、ステップS109で記述されたコンテンツリストリビジョン及びコンテンツリストIDが記述されている。
ステップS112では、代表コマンダMC1の制御部1は、リスト要求メッセージを受信したか否かを判定する。そして、制御部1は、リスト要求メッセージを受信していないと判定した場合には(ステップS112:NO)、ステップS115に進む。一方、制御部1は、リスト要求メッセージを受信したと判定した場合には(ステップS112:YES)、ステップS113に進む。
ステップS113では、代表コマンダMC1の制御部1は、リスト要求メッセージに含まれるコンテンツリストリビションに対応するコンテンツリストを記憶部2から取得する。
次いで、代表コマンダMC1の制御部1は、取得したコンテンツリストを、リスト要求メッセージを送信したコマンダC1−nに返信する(ステップS114)。
ステップS115では、代表コマンダMC1の制御部1は、コンテンツ要求メッセージを受信したか否かを判定する。そして、制御部1は、コンテンツ要求メッセージを受信していないと判定した場合には(ステップS115:NO)、ステップS118に進む。一方、制御部1は、コンテンツ要求メッセージを受信したと判定した場合には(ステップS115:YES)、ステップS116に進む。
ステップS116では、代表コマンダMC1の制御部1は、コンテンツ要求メッセージに含まれるローカルファイル名に対応するカラオケデータを記憶部2から取得する。
次いで、代表コマンダMC1の制御部1は、取得したカラオケデータを、コンテンツ要求メッセージを送信したコマンダC1−nに返信する(ステップS117)。
ステップS118に示すその他の処理では、例えば再生指令に応じてカラオケデータの再生処理等が行われ、ステップS101に戻る。
一方、ステップS105では、代表コマンダのコンテンツ取得処理が実行される。
図8(A)は、図7に示すステップS105における代表コマンダのコンテンツ取得処理の詳細を示すフローチャートである。図8(B)は、ルータRmのノード処理部12におけるコンテンツ送信処理を示すフローチャートである。
図8(A)に示すステップS151におけるコンテンツリスト取得処理は、センターサーバCSを利用する場合と、センターサーバCSを利用しない場合とがある。図9(A)は、センターサーバCSを利用する場合におけるコンテンツリスト取得処理の詳細を示すフローチャートである。図10(A)は、センターサーバCSを利用しない場合におけるコンテンツリスト取得処理の詳細を示すフローチャートである。
先ず、図9(A)乃至(C)を参照して、センターサーバCSを利用する場合について説明する。図9(B)は、センターサーバCSにおけるコンテンツリスト一覧送信処理を示すフローチャートである。図9(C)は、ルータRmのノード処理部12におけるコンテンツリスト送信処理を示すフローチャートである。
なお、この場合、代表コマンダMC1には、センターサーバCSのIPアドレス等が記憶されている。これにより、代表コマンダMC1は、店舗ネットワークNL1及びネットワークNWを介してセンターサーバCSにアクセス可能になっている。
図9(A)に示すステップS161では、代表コマンダMC1の制御部1は、例えば記憶部2に記憶されている処理済コンテンツリストリビジョンを、店舗ネットワークNL1及びネットワークNWを介してセンターサーバCSに送信する。
センターサーバCSは、図9(B)に示すように、代表コマンダMC1から送信された処理済コンテンツリストリビジョンを受信する(ステップS201)。
なお、ステップS202〜S205の処理は、図7に示すステップS107〜S110の処理と同様であるので、重複する説明を省略する。
図9(B)に示すステップS206では、センターサーバCSは、コンテンツリスト一覧を、ネットワークNW及び店舗ネットワークNL1を介して代表コマンダMC1に返信する。
代表コマンダMC1の制御部1は、図9(A)に示すように、センターサーバCSから送信されたコンテンツリスト一覧を受信する(ステップS162)。受信されたコンテンツリスト一覧は、制御部1のRAMに記憶される。
次いで、代表コマンダMC1の制御部1は、コンテンツリスト一覧に記述されたコンテンツリストIDを一つ選択する(ステップS163)。
次いで、代表コマンダMC1の制御部1は、選択したコンテンツリストIDに対応するコンテンツリストの要求を示すリスト要求メッセージを、店舗ネットワークNL1を介してルータR1に送信する(ステップS164)。なお、リスト要求メッセージには、要求するコンテンツリストのコンテンツリストIDが含まれる。
ルータR1は、図9(C)に示すように、代表コマンダMC1から送信されたリスト要求メッセージを受信する(ステップS301)。
次いで、ルータR1のノード処理部12は、受信されたリスト要求メッセージからコンテンツリストIDを取得する(ステップS302)。
次いで、ルータR1のノード処理部12は、取得したコンテンツリストIDに対応するコンテンツリストを、オーバーレイネットワークONによる通信により他のルータRmから取得する(ステップS303)。つまり、上述したように、ノード処理部12は、取得したコンテンツリストIDに対応するコンテンツリストの所在をルートノードに問い合わせる。これにより、ノード処理部12は、ルートノードからインデックス情報を取得する。そして、ノード処理部12は、取得したインデックス情報に基づき、コンテンツ保持ノードにアクセスしてコンテンツリストを取得する。
次いで、ルータR1のノード処理部12は、取得したコンテンツリストを、店舗ネットワークNL1を介して代表コマンダMC1に返信する(ステップS304)。
代表コマンダMC1の制御部1は、図9(A)に示すように、ルータR1から送信されたコンテンツリストを受信する(ステップS165)。受信されたコンテンツリストは、制御部1のRAMに記憶される。
次いで、代表コマンダMC1の制御部1は、コンテンツリスト一覧に記述された全てのコンテンツリストIDを選択したか否かを判定する(ステップS166)。そして、制御部1は、全てのコンテンツリストIDを選択していないと判定した場合には(ステップS166:NO)、ステップS163に戻る。一方、制御部1は、全てのコンテンツリストIDを選択したと判定した場合には(ステップS166:YES)、図8に示す処理に戻る。
次に、図10(A)乃至(C)を参照して、センターサーバCSを利用しない場合について説明する。図10(B)は、ルータRmのノード処理部12におけるコンテンツリスト一覧送信処理を示すフローチャートである。図10(C)は、ルータRmのノード処理部12におけるコンテンツリスト送信処理を示すフローチャートである。
なお、この場合、各ルータRmには、例えば配信センタC内の所定のサーバから定期的に配信されるコンテンツリスト一覧が記憶されている。
図10(A)に示すステップS171では、代表コマンダMC1の制御部1は、コンテンツリスト一覧要求メッセージを、店舗ネットワークNL1を介してルータR1に送信する。コンテンツリスト一覧要求メッセージは、コンテンツリスト一覧を要求するメッセージである。
ルータR1のノード処理部12は、図10(B)に示すように、代表コマンダMC1から送信されたコンテンツリスト一覧要求メッセージを受信する(ステップS401)。
次いで、ルータR1のノード処理部12は、記憶部13からコンテンツリスト一覧を取得する(ステップS402)。
次いで、ルータR1のノード処理部12は、取得したコンテンツリスト一覧を、店舗ネットワークNL1を介して代表コマンダMC1に返信する(ステップS403)。
代表コマンダMC1の制御部1は、図10(A)に示すように、ルータR1から送信されたコンテンツリスト一覧を受信する(ステップS172)。受信されたコンテンツリスト一覧は、制御部1のRAMに記憶される。
次いで、代表コマンダMC1の制御部1は、コンテンツリスト一覧に記述されたコンテンツリビジョンを一つ選択する(ステップS173)。
次いで、代表コマンダMC1の制御部1は、選択したコンテンツリストリビジョンが、記憶部2に記憶されている処理済コンテンツリストリビジョンより新しいか否かを判定する(ステップS174)。そして、制御部1は、処理済コンテンツリストリビジョンより新しいと判定した場合には(ステップS174:YES)、ステップS175に進む。一方、制御部1は、処理済コンテンツリストリビジョンより新しくないと判定した場合には(ステップS174:NO)、ステップS178に進む。
ステップS175では、代表コマンダMC1の制御部1は、選択したコンテンツリストリビジョンに対応するコンテンツリストの要求を示すリスト要求メッセージを、店舗ネットワークNL1を介してルータR1に送信する。リスト要求メッセージには、要求するコンテンツリストのコンテンツリストIDが含まれる。
代表コマンダMC1の制御部1は、図10(A)に示すように、ルータR1から送信されたコンテンツリストを受信する(ステップS176)。
次いで、代表コマンダMC1の制御部1は、コンテンツリスト一覧に記述された全てのコンテンツリストリビジョンを選択したか否かを判定する(ステップS177)。そして、制御部1は、全てのコンテンツリストリビジョンを選択していないと判定した場合には(ステップS177:NO)、ステップS173に戻る。一方、制御部1は、全てのコンテンツリストリビジョンを選択したと判定した場合には(ステップS177:YES)、図8に示す処理に戻る。
なお、図10(C)に示すステップS501〜S504の処理は、図9(C)に示すステップS301〜S304の処理と同様であるので、重複する説明を省略する。
図8(A)に戻り、代表コマンダMC1の制御部1は、ステップS151で取得され、記憶されたコンテンツリストを一つ選択する(ステップS152)。
次いで、代表コマンダMC1の制御部1は、選択したコンテンツリストに記述されたコンテンツIDを一つ選択する(ステップS153)。
次いで、コマンダC1−1の制御部1は、カラオケデータのコンテンツの要求を示すコンテンツ要求メッセージを、店舗ネットワークNL1を介してルータR1に送信する(ステップS154)。このコンテンツ要求メッセージには、ステップS153で選択されたコンテンツIDが含まれる。
ルータR1は、図8(B)に示すように、代表コマンダMC1から送信されたコンテンツ要求メッセージを受信する(ステップS601)。
次いで、ルータR1のノード処理部12は、受信されたコンテンツ要求メッセージからコンテンツIDを取得する(ステップS602)。
次いで、ルータR1のノード処理部12は、取得したコンテンツIDに対応するカラオケデータを、オーバーレイネットワークONによる通信により他のルータRmから取得する(ステップS603)。なお、ステップS603の具体的な処理の流れは、上述したステップS303と同様である。
次いで、ルータR1のノード処理部12は、取得したカラオケデータを、店舗ネットワークNL1を介して代表コマンダMC1に返信する(ステップS604)。
代表コマンダMC1の制御部1は、図8(A)に示すように、ルータR1から送信されたカラオケデータを受信する(ステップS155)。受信されたカラオケデータは、バッファメモリ5に蓄積された後、ローカルファイル名が付与されたファイルとして記憶部2に記憶される。
次いで、代表コマンダMC1の制御部1は、ステップS152で選択されたコンテンツリストに記述された全てのコンテンツIDを選択したか否かを判定する(ステップS156)。そして、制御部1は、全てのコンテンツIDを選択していないと判定した場合には(ステップS156:NO)、ステップS153に戻る。ステップS153に戻ると、制御部1は、コンテンツリストに記述されたコンテンツIDのうち未だ選択していないコンテンツIDを一つ選択することになる。一方、制御部1は、全てのコンテンツIDを選択したと判定した場合には(ステップS156:YES)、ステップS157に進む。
ステップS157では、代表コマンダMC1の制御部1は、ステップS153〜ステップS156で処理されたコンテンツリストのコンテンツリストリビジョンを処理済として記録する。
次いで、代表コマンダMC1の制御部1は、ステップS151で取得され、記憶された全てのコンテンツリストを選択したか否かを判定する(ステップS158)。そして、制御部1は、全てのコンテンツリストを選択していないと判定した場合には(ステップS158:NO)、ステップS152に戻る。一方、制御部1は、全てのコンテンツリストを選択したと判定した場合には(ステップS158:YES)、図5に示す処理に戻る。
以上説明したように、上記実施形態によれば、複数のコマンダCm−nの中から選択された代表コマンダMCmが代表してルータRmにカラオケデータを要求する。ルータRmは、要求に応じて、オーバーレイネットワークONによる通信を利用して複数のルータRmの中の何れかのルータRmからカラオケデータを取得し、代表コマンダMCmに送信する。そして、代表コマンダMCmは、受信したカラオケデータを各コマンダCm−nに送信する。従って、ある店舗P1に設置された複数のコマンダC1−nが、一斉に、別の店舗2に設置されたコマンダC2−nに対してカラオケデータの要求を行うことを防止でき、ネットワークNWに接続される各店舗Pmの通信回線Kmへの負荷を抑制し、カラオケデータの取得の遅延を回避することができる。
なお、上記実施形態においては、各コマンダCm−nは、取得したコンテンツリストに基づき、未だ取得していないカラオケデータの要求を動的に代表コマンダMCmに行うようにした。別の例として、代表コマンダMCmが、取得したカラオケデータを各コマンダCm−nにPUSH配信するように構成してもよい。この場合、例えば、図8(A)に示すステップS155において、代表コマンダMC1は、受信したカラオケデータを各コマンダC1−nに配信する。この構成によれば、各コマンダC1−nがコンテンツリストに基づきカラオケデータを代表コマンダMC1に要求する処理を削減することができる。
また、上記実施形態において、オーバーレイネットワークONは、DHTを利用したアルゴリズムにより形成されるように構成した。しかし、これに限定されるものではなく、その他のアルゴリズムによりオーバーレイネットワークONが形成されるものであっても良い。つまり、DHT以外のルーティングテーブルがノードに用いられるシステムであっても良い。
また、上記実施形態において、代表コマンダMCmは、図7に示すステップS104においてコンテンツ取得時刻となった場合に、処理済として記録されていない新たなコンテンツリビジョンに対応するカラオケデータのコンテンツだけをルータRmに要求して取得するように構成した。別の例として、代表コマンダMCmは、各コマンダCm−nからコンテンツの要求を受け付けた場合に、この要求に対応するカラオケデータのコンテンツをルータRmに要求して取得するように構成しても良い。この場合、ルータRmは、代表コマンダMCmから要求されたカラオケデータのコンテンツを、オーバーレイネットワークONによる通信により他のルータRmから取得する。そして、ルータRmは、取得したカラオケデータのコンテンツを代表コマンダMCmに送信することになる。
なお、本発明は、上述したコマンダに限定されるものではなく、カラオケ装置として機能するものであればその他の装置であっても適用可能である。