説明

ネットワークAVシステム

マルチリストサーバシステム10内のサーバSV1〜SV3の各々は自己が蓄積する曲データのローカルリストLL1〜LL3と、サーバSV1〜SV3が蓄積する曲データを列挙したマルチリストMLとを備える。クライアントCLは任意のサーバSVに対してマルチリストMLを要求し、要求を受けたサーバSVはマルチリストMLをクライアントCLに送信する。クライアントCLはマルチリストMLを参照して、所望の曲データを蓄積するサーバSVに対して曲データの転送を要求する。曲データの転送要求を受けたサーバSVは曲データをクライアントに送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声及び/又は映像の再生が可能なネットワークAV(Audio/Video)システムに関し、さらに詳しくは、複数のサーバとクライアントとを備えたネットワークAVシステムに関する。
【背景技術】
【0002】
最近、クライアントサーバシステムを利用したネットワークAVシステムが提供されている。下記の先行出願1は、多数のコンテンツを蓄積したサーバと、LAN(Local Area Network)経由で接続されたオーディオクライアントとを備えたネットワークAVシステムを開示する。オーディオクライアントは所望のコンテンツをサーバに要求し、これに応じてサーバは要求されたコンテンツをオーディオクライアントに配信する。オーディオクライアントはサーバから配信されたコンテンツを再生する。
【0003】
ネットワークAVシステムはサーバが複数あればそれだけ蓄積されるコンテンツを増やすことができる。しかしながら、サーバごとに蓄積されるコンテンツが異なれば、オーディオクライアントは所望のコンテンツがどのサーバに蓄積されているか探さなければならない。オーディオクライアントが所望のコンテンツを見つけるまで、ひとつひとつのサーバに接続するのは煩雑である。
【0004】
また、サーバがコンテンツをオーディオクライアントに配信中に動作を停止すれば、オーディオクライアントの再生動作は中断してしまう。
【0005】
また、オーディオクライアントがサーバからコンテンツの配信を受け、再生した後、別のコンテンツの再生をしたい場合、再生をしたいコンテンツを蓄積する当該他のサーバに接続し直す必要がある。
【発明の開示】
【0006】
本発明の1つの目的は、複数のサーバが複数のコンテンツを蓄積していても、クライアントが所望のコンテンツを容易に見つけることができるネットワークAVシステムを提供することである。
【0007】
本発明のもう1つの目的は、コンテンツを配信中のサーバがその動作を停止しても、クライアントがそのコンテンツを最後まで再生できるネットワークAVシステムを提供することである。
【0008】
本発明のもう1つの目的は、クライアントがサーバを接続し直す必要のないネットワークAVシステムを提供することである。
【0009】
本発明によるネットワークAVシステムは、複数のサーバと、複数のサーバの少なくとも1つに接続可能な1又は複数のクライアントとを備えたネットワークAVシステムであって、サーバの各々は、複数のコンテンツを蓄積するための蓄積手段を備える。サーバのうち少なくとも1つのサーバはさらに、複数のサーバが蓄積する複数のコンテンツを列挙したグローバルリストを記憶するためのグローバルリスト記憶手段と、グローバルリスト送信手段とを備える。グローバルリスト送信手段はクライアントにグローバルリストを送信する。
【0010】
本発明によるネットワークAVシステムでは、サーバはクライアントに複数のサーバが蓄積する複数のコンテンツを列挙したグローバルリストを送信する。そのため、クライアントはコンテンツが蓄積されたサーバごとにコンテンツのリストを要求する必要がなく、グローバルリストに基づいて、所望のコンテンツを容易に見つけることができる。
【0011】
好ましくは、クライアントは、コンテンツ要求手段を備える。コンテンツ要求手段は送信されたグローバルリストの中から選択されたコンテンツをサーバに要求する。サーバのうち少なくとも1つのサーバはさらに、コンテンツ返信手段を備える。コンテンツ返信手段はクライアントからの要求に応じて選択されたコンテンツをクライアントに返信する。クライアントはさらに、再生手段を備える。再生手段はサーバから返信されたコンテンツを再生する。
【0012】
この場合、クライアントは複数のサーバに蓄積された複数のコンテンツの中から所望のコンテンツを容易に選択できる。選択されたコンテンツはサーバからクライアントに送信され、クライアントはそのコンテンツに基づいて音声又は映像を再生できる。
【0013】
好ましくは、複数のクライアントは、第1のクライアントと第2のクライアントとを含む。第1のクライアントは再生指示手段を備える。再生指示手段は、送信されたグローバルリストの中から選択されたコンテンツの再生指示をサーバを介して第2のクライアントに送信する。第2のクライアントはコンテンツ要求手段を備える。コンテンツ要求手段は、再生指示に応じて選択されたコンテンツをサーバに要求する。サーバのうち少なくとも1つのサーバはさらにコンテンツ返信手段を備える。コンテンツ返信手段は、第2のクライアントからの要求に応じて選択されたコンテンツを第2のクライアントに返信する。第2のクライアントはさらに、再生手段を備える。再生手段はサーバから返信されたコンテンツを再生する。
【0014】
この場合、第1のクライアントはグローバルリストに基づいて選択されたコンテンツを第2のクライアントに再生させることができる。要するに、第1のクライアントは第2のクライアントを制御できる。
【0015】
本発明によるネットワークAVシステムは、複数のサーバと、複数のサーバの少なくとも1つと接続可能な1又は複数のクライアントとを備えたネットワークAVシステムであって、サーバの各々は、複数のコンテンツを蓄積するための蓄積手段と、複数のサーバが蓄積する複数のコンテンツを列挙したグローバルリストを記憶するためのグローバルリスト記憶手段と、グローバルリスト送信手段とを備える。グローバルリスト送信手段はクライアントにグローバルリストを送信する。
【0016】
本発明によるネットワークAVシステムでは、クライアントは、複数のサーバに蓄積されたコンテンツを列挙したグローバルリストの中から所望のコンテンツを選択できる。また、クライアントは複数のサーバのうちどのサーバに要求しても、グローバルリストを取得できる。そのため、クライアントは容易にグローバルリストを取得でき、複数のサーバに蓄積された複数のコンテンツの中から所望のコンテンツを容易に見つけることができる。
【0017】
好ましくは、クライアントはコンテンツ要求手段を備える。コンテンツ要求手段は送信されたグローバルリストの中から選択されたコンテンツをサーバに要求する。サーバの各々はさらに、コンテンツ返信手段を備える。コンテンツ返信手段はクライアントからの要求に応じて選択されたコンテンツをクライアントに返信する。クライアントはさらに、再生手段を備える。再生手段は返信されたコンテンツを再生する。
【0018】
この場合、クライアントは複数のサーバに蓄積された複数のコンテンツの中から所望のコンテンツを容易に選択できる。選択されたコンテンツはサーバからクライアントに送信され、クライアントはそのコンテンツに基づいて音声又は映像を再生できる。
【0019】
好ましくは、グローバルリストは複数のコンテンツに対応して複数のコンテンツが蓄積された複数のサーバのアドレスを含み、コンテンツ要求手段は、サーバのアドレスに基づいて、選択されたコンテンツを要求する。
【0020】
この場合、クライアントは所望のコンテンツを蓄積したサーバをグローバルリストから特定できる。そのため、クライアントは複数のサーバの中から所望のコンテンツを蓄積したサーバを容易に特定でき、その結果、そのコンテンツを容易に取得できる。
【0021】
好ましくは、サーバの各々はさらに、自己が蓄積するコンテンツを列挙したローカルリストを記憶するためのローカルリスト記憶手段と、ローカルリスト送信手段と、グローバルリスト更新手段とを備える。ローカルリスト送信手段はローカルリストを当該他のサーバに送信する。グローバルリスト更新手段は自己のローカルリストと当該他のサーバから送信されたローカルリストとに基づいてグローバルリストを更新する。
【0022】
この場合、サーバは当該他のサーバからローカルリストを取得し、自己のローカルリスト及び当該他のサーバのローカルリストからグローバルリストを更新できる。
【0023】
好ましくは、ローカルリスト送信手段は、自己のローカルリストが更新されるごとに他のサーバに更新されたローカルリストを送信し、グローバルリスト更新手段は、自己のローカルリストが更新されるごとに、又は更新されたローカルリストを受信するごとにグローバルリストを更新する。
【0024】
この場合、サーバは当該他のサーバから最新のローカルリストを取得し、自己の最新のローカルリストと合わせてグローバルリストを最新のものに更新できる。
【0025】
好ましくは、サーバの各々はさらに離脱通知手段を備える。離脱通知手段は、サーバがネットワークAVシステムから離脱する前に、当該他のサーバに離脱通知を送信する。グローバルリスト更新手段は、離脱通知に応じて、離脱通知を送信したサーバのローカルリストを削除するようグローバルリストを更新する。
【0026】
この場合、離脱したサーバのローカルリストは、そのサーバが離脱したときにグローバルリストから削除される。
【0027】
好ましくは、グローバルリスト送信手段は、グローバルリスト更新手段がグローバルリストを更新するごとに更新されたグローバルリストをクライアントに送信する。
【0028】
この場合、サーバはグローバルリストが更新されるたびに、最新のグローバルリストをクライアントに送信する。その結果、クライアントは最新のグローバルリストに基づいて所望のコンテンツを選択できる。
【0029】
好ましくは、サーバの各々は、自己と当該他のサーバとの間でコマンドを送受信するためのコマンドポートで接続を確立する手段と、当該他のサーバからサーバに要求を強制的に送信するためのプッシュポートで接続を確立する手段とを備える。
【0030】
この場合、サーバが当該他のサーバのローカルリストを要求するとき(すなわち、サーバが当該他のサーバに対してクライアントとして接続している状態のとき)、コマンドポートでサーバ間を送受信し、ローカルリストを取得できる。また、当該他のサーバに自己のローカルリストを取得するよう等指令するとき(すなわち、サーバが当該他のサーバに対してサーバとして接続している状態のとき)、プッシュポートを通じて強制的に当該他のサーバに指令を送信できる。
【0031】
好ましくは、クライアントはサーバからグローバルリストを取得するための第1のコマンドポートで接続を確立する手段と、サーバから選択されたコンテンツを取得するための第2のコマンドポートで接続を確立する手段とを備える。
【0032】
この場合、グローバルリストを取得するための第1のコマンドポートと、コンテンツを取得するための第2のコマンドポートとの2つのコマンドポートで接続を確立することで、トラフィックの混雑を緩和できる。すなわち、グローバルリストを取得している最中にコンテンツを取得しても、グローバルリスト及びコンテンツを速やかに受信できる。また、グローバルリストを取得するためのサーバと、コンテンツを取得するためのサーバとが異なる場合であって、グローバルリストを取得するためのサーバとの接続を切断した後にコンテンツを取得するためサーバに接続したとき、コンテンツを取得するためのサーバとの接続に失敗すると、クライアントはネットワークから離脱することになる。第1及び第2のコマンドポートで接続を確立しておけば、このような事態を防ぐことができる。
【0033】
好ましくは、サーバの各々はさらに、引継通知手段を備える。サーバがコンテンツ返信手段で選択されたコンテンツを返信中にサーバ動作を終了する場合、引継通知手段は選択されたコンテンツの返信の続きを引継ぐ引継サーバに接続するようクライアントに指令する。
【0034】
この場合、クライアントは引継通知手段による指令を受け、引継サーバに速やかに接続できる。
【0035】
好ましくは、サーバの各々はさらに、引継サーバ選択手段と、コンテンツを転送する手段とを備える。引継サーバ選択手段は、引継サーバを当該他のサーバから選択する。コンテンツを送信する手段は引継サーバに選択されたコンテンツを送信する。選択されたコンテンツを再生中のクライアントのコンテンツ要求手段は、引継サーバに対して選択されたコンテンツの返信の続きを要求する。
【0036】
これにより、クライアントにコンテンツを返信中のサーバがその動作を終了する場合、サーバは当該他のサーバから引継サーバを選択して、その引継サーバに返信中のコンテンツを送信する。クライアントは引継サーバに対してそのコンテンツの返信の続きを要求すれば、コンテンツの再生を継続できる。
【0037】
好ましくは、サーバの各々はさらに、クライアントに既に返信したコンテンツのデータ長を算出する算出手段と、算出されたデータ長に基づいて、クライアントが引継サーバから取得しようとするコンテンツが格納されているアドレスを示す取得開始アドレスを決定する手段とを備え、引継通知手段は、クライアントに取得開始アドレスを通知する。
【0038】
この場合、サーバはクライアントに既に返信したコンテンツのデータ長を算出し、算出されたデータ長に基づいて、クライアントが引継サーバから取得すべきコンテンツの取得開始位置(アドレス)を特定できる。その結果、クライアントは引継サーバからコンテンツの続きを速やかに取得できる。
【0039】
好ましくは、サーバの各々は、自己と接続している当該他のサーバの情報を含むサーバリストを記憶するためのサーバリスト記憶手段を備え、引継サーバ選択手段は、サーバリストに基づいて引継サーバを選択する。
【0040】
この場合、サーバはサーバリストに記憶されたサーバから引継サーバを選択できる。
【0041】
好ましくは、引継サーバ選択手段は、サーバリストに記憶されたサーバのうち最初に自己と接続したサーバを引継サーバに選択する。
【0042】
この場合、サーバは自己と一番初めに接続したサーバを引継サーバに選択できる。
【0043】
好ましくは、複数のクライアントは第1のクライアントと第2のクライアントとを含む。第1のクライアントは再生指示手段を備える。再生指示手段は、送信されたグローバルリストの中から選択されたコンテンツの再生指示をサーバを介して第2のクライアントに送信する。第2のクライアントはコンテンツ要求手段を備える。コンテンツ要求手段は、再生指示に応じて選択されたコンテンツをサーバに要求する。サーバの各々はさらに、コンテンツ返信手段を備える。第2のクライアントからの要求に応じて選択されたコンテンツを第2のクライアントに返信する。第2のクライアントはさらに、再生手段を備える。再生手段は、サーバから返信されたコンテンツを再生する。
【0044】
この場合、第1のクライアントはグローバルリストに基づいて選択されたコンテンツを第2のクライアントに再生させることができる。要するに、第1のクライアントは第2のクライアントを制御できる。
【0045】
好ましくは、第1のクライアントは、第2のクライアントと接続しているサーバの情報を含むサーバリストを記憶するためのサーバリスト記憶手段を備え、
【0046】
再生指示手段はサーバリストに基づいて、第2のクライアントが接続しているサーバを介して第2のクライアントに再生指示を送信する。
【0047】
この場合、第1のクライアントは第2のクライアントがどのサーバに接続しているかをサーバリストで把握できる。そのため、第2のクライアントが接続しているサーバを特定でき、そのサーバを介して第2のクライアントに再生指示を送信できる。
【0048】
本発明によるネットワークAVシステムは、センタサーバと、サブサーバと、センタサーバ及び/又はサブサーバに接続可能な1又は複数のクライアントとを備えたネットワークAVシステムであって、センタサーバ及びサブサーバの各々は複数のコンテンツを蓄積するための蓄積手段を備える。センタサーバはさらに、センタサーバ及びサブサーバが蓄積する複数のコンテンツを列挙したグローバルリストを記憶するためのグローバルリスト記憶手段と、グローバルリスト送信手段とを備える。グローバルリスト送信手段はグローバルリストをクライアントに送信する。
【0049】
本発明によるネットワークAVシステムでは、センタサーバは、センタサーバ及びサブサーバが蓄積する複数のコンテンツを列挙したグローバルリストをクライアントに送信する。そのため、クライアントはコンテンツが蓄積されたサーバ(センタサーバ及びサブサーバ)ごとにコンテンツのリストを要求する必要がなく、グローバルリストに基づいて所望のコンテンツを容易に見つけることができる。
【0050】
好ましくは、クライアントは、コンテンツ要求手段を備える。コンテンツ要求手段は送信されたグローバルリストの中から選択されたコンテンツをセンタサーバ又はサブサーバに要求する。センタサーバ又はサブサーバの少なくとも1つはさらに、コンテンツ返信手段を備える。コンテンツ返信手段はクライアントからの要求に応じて選択されたコンテンツをクライアントに返信する。クライアントはさらに再生手段を備える。再生手段はセンタサーバ又はサブサーバから返信されたコンテンツを再生する。
【0051】
この場合、クライアントは、複数のサーバ(センタサーバ及びサブサーバ)に蓄積された複数のコンテンツの中から所望のコンテンツを容易に選択できる。選択されたコンテンツはサーバからクライアントに送信され、クライアントはそのコンテンツに基づいて音声又は映像を再生できる。
【0052】
好ましくは、コンテンツ要求手段は、選択されたコンテンツをセンタサーバに要求し、センタサーバは、コンテンツ返信手段を備え、センタサーバはさらに、サーバ特定手段と、コンテンツ取得手段とを備える。サーバ特定手段はクライアントからの要求に応じてグローバルリストに基づいて選択されたコンテンツを蓄積するサーバを特定する。コンテンツ取得手段は、特定されたサーバがセンタサーバの場合、自己の蓄積手段から選択されたコンテンツを取得し、特定されたサーバがサブサーバの場合、そのサブサーバの蓄積手段から選択されたコンテンツを取得する。コンテンツ返信手段は、コンテンツ取得手段により取得されたコンテンツをクライアントに返信する。
【0053】
この場合、クライアントはセンタサーバに選択されたコンテンツを要求する。センタサーバはクライアントからの要求に応じて選択されたコンテンツを蓄積するサーバ(センタサーバ及びサブサーバ)をグローバルリストに基づいて特定し、特定したサーバからコンテンツを取得し、クライアントに取得したコンテンツを返信する。すなわち、センタサーバはクライアントとサブサーバとの間の中継機能を有する。この結果、クライアントはセンタサーバと接続すれば、グローバルリストもコンテンツも取得できる。
【0054】
好ましくは、グローバルリストは複数のコンテンツに対応して複数のコンテンツが蓄積された複数のサーバのアドレスを含み、サーバ特定手段は、コンテンツ要求手段により要求されたコンテンツを蓄積したサーバのアドレスを特定する。
【0055】
この場合、センタサーバはグローバルリストに含まれるサーバのアドレスからコンテンツを蓄積するサーバ(センタサーバ及びサブサーバ)を容易に特定できる。
【0056】
好ましくは、グローバルリストは複数のコンテンツに対応してコンテンツが蓄積された複数のサーバのアドレスを含み、コンテンツ要求手段は、選択されたコンテンツを、グローバルリストに基づいて特定したサブサーバに要求する。
【0057】
この場合、クライアントは選択されたコンテンツを蓄積するサーバ(センタサーバ及びサブサーバ)をグローバルリストから容易に特定できる。その結果、選択されたコンテンツを蓄積するサーバへクライアントが直接コンテンツを要求できる。
【0058】
好ましくは、センタサーバ及びサブサーバの各々はさらに、自己が蓄積するコンテンツを列挙したローカルリストを記憶するためのローカルリスト記憶手段を備える。サブサーバはさらに、ローカルリスト送信手段を備える。ローカルリスト送信手段はローカルリストをセンタサーバに送信する。センタサーバはさらに、グローバルリスト更新手段を備える。グローバルリスト送信手段は自己のローカルリストとサブサーバから送信されたローカルリストとに基づいて、グローバルリストを更新する。
【0059】
この場合、センタサーバはサブサーバからローカルリストを取得し、自己のローカルリスト及び当該他のサーバのローカルリストからグローバルリストを更新できる。
【0060】
好ましくは、ローカルリスト送信手段は、自己のローカルリストが更新されるごとにセンタサーバに更新されたローカルリストを送信し、グローバルリスト更新手段は、自己のローカルリストが更新されるごとに、又は更新されたローカルリストを受信するごとに、グローバルリストを更新する。
【0061】
この場合、センタサーバはサブサーバから最新のローカルリストを取得し、自己の最新のローカルリストと合わせてグローバルリストを最新のものに更新できる。
【0062】
好ましくは、サブサーバはさらに離脱通知手段を備える。離脱通知手段は、サブサーバがネットワークAVシステムから離脱する前に、センタサーバに離脱通知を送信する。グローバルリスト更新手段は、離脱通知に応じて離脱通知を送信したサーバのローカルリストを削除するようグローバルリストを更新する。
【0063】
この場合、離脱したサブサーバのローカルリストは、そのサーバが離脱したときにグローバルリストから削除される。
【0064】
好ましくは、グローバルリスト送信手段は、グローバルリスト更新手段がグローバルリストを更新するごとに更新されたグローバルリストをクライアントに送信する。
【0065】
この場合、センタサーバはグローバルリストが更新されるたびに、最新のグローバルリストをクライアントに送信する。その結果、クライアントは最新のグローバルリストに基づいて所望のコンテンツを選択できる。
【0066】
好ましくは、センタサーバは、センタサーバとサブサーバとの間でコマンドを送受信するためのコマンドポートで接続を確立するための手段と、サブサーバからセンタサーバに要求を強制的に送信するためのプッシュポートで接続を確立するための手段とを備える。
【0067】
この場合、センタサーバがサブサーバのローカルリストやコンテンツを要求するとき(すなわち、センタサーバがサブサーバに対してクライアントとして接続している状態のとき)、コマンドポートでサーバ間を送受信し、ローカルリストやコンテンツを取得できる。また、センタサーバがサブサーバに対して指令や通知を送信するとき(すなわち、センタサーバがサブサーバに対してサーバとして接続している状態のとき)、プッシュポートを通じて強制的にサブサーバに指令や通知が送信される。
【0068】
好ましくは、センタサーバ及びサブサーバの各々はさらに、自己が蓄積するコンテンツを列挙したローカルリストを記憶するためのローカルリスト記憶手段を備える。センタサーバはさらに、サブサーバからローカルリストを取得するための第1のコマンドポートで接続を確立する手段と、第1のコマンドポートで接続を確立後、サブサーバのローカルリストを取得する手段と、取得したローカルリストと自己のローカルリストとに基づいてグローバルリストを更新する手段と、サーバ特定手段により特定されたサブサーバから選択されたコンテンツを取得するための第2のコマンドポートで接続を確立する手段とを備える。
【0069】
この場合、センタサーバがサブサーバからローカルリストを取得するための第1のコマンドポートと、サブサーバからコンテンツを取得するための第2のコマンドポートとの2つのコマンドポートで接続を確立することで、トラフィックの混雑を緩和できる。すなわち、ローカルリストを取得している最中にコンテンツを取得していても、ローカルリスト及びコンテンツを速やかに受信できる。
【0070】
好ましくは、クライアントは、センタサーバからグローバルリストを取得するための第1のコマンドポートで接続を確立する手段と、センタサーバから選択されたコンテンツを取得するための第2のコマンドポートで接続を確立する手段とを備える。
【0071】
この場合、クライアントがセンタサーバからグローバルリストを取得するための第1のコマンドポートと、センタサーバからコンテンツを取得するための第2のコマンドポートとの2つのコマンドポートで接続を確立することで、トラフィックの混雑を緩和できる。すなわち、グローバルリストを取得している最中にコンテンツを取得していても、グローバルリスト及びコンテンツを速やかに受信できる。
【0072】
好ましくは、センタサーバはさらに引継通知手段を備える。引継通知手段は、センタサーバがその動作を終了する場合、センタサーバの動作を引継ぐ引継サーバに接続するようクライアントに指令する。
【0073】
この場合、クライアントは引継通知手段による指令を受け、引継サーバに速やかに接続できる。
【0074】
好ましくは、センタサーバはさらに引継サーバ選択手段とセンタサーバ引継命令手段とを備える。引継サーバ選択手段は引継サーバをサブサーバから選択する。センタサーバ引継命令手段は引継サーバ選択手段により選択されたサブサーバにセンタサーバの動作を引き継ぐように指令する。
【0075】
この場合、センタサーバはサブサーバの中からセンタサーバの動作を引き継ぐ引継サーバを選択し、引継サーバにセンタサーバの動作を引き継ぐように指令する。その結果、センタサーバが動作を終了しても、他のサーバ(サブサーバ)がセンタサーバとして機能する。
【0076】
好ましくは、センタサーバはさらに、コンテンツ取得手段により取得されたコンテンツをクライアントに返信中に動作を終了する場合、クライアントに返信したコンテンツのデータ長を算出する算出手段と、算出手段により算出されたデータ長に基づいて、クライアントが引継サーバから取得しようとするコンテンツが格納されているアドレスを示す取得開始アドレスを決定する手段とを備え、引継通知手段は、クライアントに取得開始アドレスを通知する。
【0077】
この場合、サーバはクライアントに既に返信したコンテンツのデータ長を算出し、算出されたデータ長に基づいて、クライアントが引継サーバから(又は引継サーバを中継して他のサブサーバから)取得すべきコンテンツデータの取得開始位置(アドレス)を特定できる。その結果、クライアントは引継サーバからコンテンツの続きを速やかに取得できる。
【0078】
好ましくは、センタサーバはさらに、コンテンツ返信手段により自己が蓄積するコンテンツをクライアントに返信中に動作を終了する場合、引継サーバにコンテンツを送信する手段を備える。
【0079】
この場合、クライアントに自己が蓄積するコンテンツを返信中のセンタサーバがその動作を終了する場合、センタサーバは引継サーバに返信中のコンテンツを送信する。クライアントは引継サーバに対してそのコンテンツの返信の続きを要求すれば、コンテンツの再生を継続できる。
【0080】
好ましくは、センタサーバは、サブサーバの識別情報を含むサーバリストを記憶するためのサーバリスト記憶手段を備え、引継サーバ選択手段は、サーバリストに基づいて引継サーバを選択する。
【0081】
この場合、サーバはサーバリストに記憶されたサーバから引継サーバを選択できる。
【0082】
好ましくは、複数のクライアントは第1のクライアントと第2のクライアントとを含む。第1のクライアントは再生指示手段を備える。再生指示手段は、送信されたグローバルリストの中から選択されたコンテンツの再生指示をセンタサーバを介して第2のクライアントに送信する。第2のクライアントはコンテンツ要求手段を備える。コンテンツ要求手段は、再生指示に応じて選択されたコンテンツをセンタサーバ又はサブサーバに要求する。センタサーバ又はサブサーバの少なくとも1つはさらにコンテンツ返信手段を備える。コンテンツ返信手段は、第2のクライアントからの要求に応じて選択されたコンテンツを第2のクライアントに返信する。第2のクライアントはさらに再生手段を備える。再生手段はセンタサーバ又はサブサーバから返信されたコンテンツを再生する。
【0083】
この場合、第1のクライアントはグローバルリストに基づいて選択されたコンテンツを第2のクライアントに再生させることができる。要するに、第1のクライアントは第2のクライアントを制御できる。
【図面の簡単な説明】
【0084】
【図1】グローバルリストサーバシステムの全体構成を示す機能ブロック図である。
【図2】図1のグローバルリストサーバシステムを説明するための概略図である。
【図3】図1中のサーバの構成を示す機能ブロック図である。
【図4】図1中のオーディオクライアントの構成を示すブロック図である。
【図5】図1中のマルチサーバシステムでサーバが起動するときの動作を示すフロー図である。
【図6】図5中のステップS10の動作の詳細を示すフロー図である。
【図7】図5中のステップS11の動作の詳細を示すフロー図である。
【図8】図1中のマルチサーバシステムで稼働中のサーバの動作を示すフロー図である。
【図9】図8中のステップS100の動作のうち、他のサーバから接続依頼を受けたサーバの動作の詳細を示すフロー図である。
【図10】図8中のステップS100の動作のうち、オーディオクライアントから接続依頼を受けたサーバの動作の詳細を示すフロー図である。
【図11】図8中のステップS200の動作の詳細を示すフロー図である。
【図12】図11中のステップS222で曲データを格納するためのバッファメモリの構成を示す図である。
【図13】図12に示したバッファメモリにおいて、曲の先頭から1バッファ分の曲データを格納した状態を示す図である。
【図14】図13に続き、全バッファ分の曲データを格納した状態を示す図である。
【図15】図14に続き、先頭バッファから曲データを出力する状態を示す図である。
【図16】図15に続き、1バッファ分の空きが生じた状態を示す図である。
【図17】図8中のステップS300の動作のうち、サーバ自身の曲データが更新された場合の更新動作を示すフロー図である。
【図18】図17中のステップS306以降のサーバとオーディオクライアントとの動作を示すフロー図である。
【図19】図8中のステップS300の動作のうち、他のサーバの曲データが更新された場合の更新動作を示すフロー図である。
【図20】図8中のステップS300の動作のうち、他のサーバがLANから離脱する場合の更新動作を示すフロー図である。
【図21】図8中のステップS400の終了動作の詳細を示すフロー図である。
【図22】図21中のステップS404及びS411の動作の詳細を示すフロー図である。
【図23】コントローラを含むグローバルサーバシステムの全体構成を示す機能ブロック図である。
【図24】図23中のサーバとオーディオクライアントとコントローラとの接続関係を説明するための概略図である。
【図25】図23中のコントローラの構成を示す機能ブロック図である。
【図26】図23に示したグローバルサーバシステムのハンドル取得動作を示すフロー図である。
【図27】図26中のステップS73の動作の詳細を示すフロー図である。
【図28】図23に示したグローバルサーバシステムの監視動作を示すフロー図である。
【図29】図23に示したグローバルサーバシステムの制御動作を示すフロー図である。
【図30】センタサーバシステムの全体構成を示す機能ブロック図である。
【図31】図30のセンタサーバシステムを説明するための概略図である。
【図32】図30に示したセンタサーバシステムでサーバが起動するときの動作を示すフロー図である。
【図33】図30に示したセンタサーバシステムで稼働中のセンタサーバの動作を示すフロー図である。
【図34】図33中のステップS500の動作の詳細を示すフロー図である。
【図35】図34中のステップS501の動作の詳細を示すフロー図である。
【図36】図35中のステップS600の更新動作のうち、センタサーバが自己のローカルリストを更新したときの更新動作の詳細を示すフロー図である。
【図37】図33中のステップS700の終了動作の詳細を示すフロー図である。
【図38】図30に示したセンタサーバシステムで稼働中のサブサーバの動作を示すフロー図である。
【図39】図38中のステップS650の動作の詳細を示すフロー図である。
【図40】図38中のステップS550のリスト更新動作のうち、自己のローカルリストがされた場合のリスト更新動作の詳細を示すフロー図である。
【図41】図38中のステップS550のリスト更新動作のうち、他のサブサーバのローカルリストが更新された場合のリスト更新動作の詳細を示すフロー図である。
【図42】図40中のステップS550のリスト更新動作のうち、他のサブサーバがLANを離脱する場合のリスト更新動作の詳細を示すフロー図である。
【図43】図38中のステップS750の終了動作の詳細を示すフロー図である。
【図44】コントローラを含むセンタサーバシステムの全体構成を示す機能ブロック図である。
【図45】図44に示したセンタサーバシステムの制御動作を示すフロー図である。
【図46】ファイル共有サーバシステムを説明するための概略図である。
【図47】ローカルリスト送信サーバシステムを説明するための概略図である。
【発明を実施するための最良の形態】
【0085】
以下、本発明の実施の形態を図面を参照して詳しく説明する。図中同一又は相当部分には同一符号を付してその説明を援用する。
【0086】
[目次]
1.グローバルリストサーバシステム
1.1.概略
1.2.構成
1.2.1.サーバの構成
1.2.2.オーディオクライアントの構成
1.3.システム動作
1.3.1.サーバ起動処理
1.3.2.起動処理後のサーバ動作
1.3.2.1.他のサーバとの接続動作
1.3.2.2.オーディオクライアントとの接続動作
1.3.2.3.配信動作
1.3.2.4.リスト更新動作
1.3.2.4.1.自己のローカルリストが更新された場合
1.3.2.4.2.他のサーバのローカルリストが更新された場合
1.3.2.4.3.他のサーバが離脱した場合
1.3.2.5.終了動作
1.4.コントローラを含むグローバルサーバシステム
1.4.1.概略
1.4.2.構成
1.4.3.システム動作
1.4.3.1.ハンドル取得動作
1.4.3.2.グローバルリスト取得動作及び更新動作
1.4.3.3.監視動作
1.4.3.4.制御動作
2.センタサーバシステム
2.1.概略
2.2.システム動作
2.2.1.サーバ起動処理
2.2.2.起動処理後のセンタサーバ動作
2.2.2.1.配信動作
2.2.2.2.リスト更新動作
2.2.2.2.1自己のローカルリストが更新された場合
2.2.2.3.終了動作
2.2.3.起動処理後のサブサーバ動作
2.2.3.1.接続動作
2.2.3.2.リスト更新動作
2.2.3.2.1.自己のローカルリストが更新された場合
2.2.3.2.2.他のサーバのローカルリストが更新された場合
2.2.3.2.3.他のサーバが離脱した場合
2.2.3.3.終了動作
2.3.コントローラを含むセンタサーバシステム
2.3.1.システム動作
3.他の実施の形態
3.1.ファイル共有サーバシステム
3.2.ローカルリスト送信システム
1.グローバルリストサーバシステム
【0087】
1.1.概略
【0088】
図1を参照して、グローバルリストサーバシステム10は、多数の曲データを蓄積するための複数のサーバSV1〜SV3と、サーバSV1〜SV3からの曲データに基づいて音楽を再生するための複数のオーディオクライアントCL1〜CL3とを備える。
【0089】
ここではサーバSV1〜SV3は曲データを蓄積しているが、これに代えて又はこれと共に映像データを蓄積していてもよく、その他、さまざまなデジタルコンテンツを蓄積していてもよい。以下では、曲データを例に説明する。図1では、オーディオクライアントCL1〜CL3を表示したが、オーディオクライアントCLは少なくとも1つ存在すればよい。
【0090】
これらは、LAN(ローカルエリアネットワーク)50により相互に接続されるが、これに限定されることなく、USB、IEEE1394など、コンピュータネットワークを構築するのに適切なものを採用すればよい。LANを採用する場合、PC(パーソナルコンピュータ)で標準的なTCP/IPプロトコルを採用するのが好ましいが、UDPプロトコルなどを採用してもよく、プロトコルは特に限定されない。また、この図ではLAN50の基幹配線から枝分かれするようにサーバSVやオーディオクライアントCLが接続されているが、たとえば10BASE−Tや100BASE−TXの場合にはハブを中心にしてスター状に接続される。
【0091】
サーバSV1のHDD(ハードディスクドライブ)14は、複数の曲データM11〜M1n(nは自然数)を含む。サーバSV2のHDD14は複数の曲データM21〜M2n、サーバSV3のHDD14は複数の曲データM31〜M3nを含む。
【0092】
さらに、各サーバSV1〜SV3のHDD14内にはグローバルリストGLが蓄積される。グローバルリストGLとは、各曲データの曲名、アーティスト、ジャンル等をリスト化したものである。グローバルリストGLはLAN50に属する複数のサーバSV1〜SV3が蓄積する曲データM11〜M1n,M21〜M2n,M31〜M3nのリストを備える。曲データM11〜M1nのリストをローカルリストLL1、曲データM21〜M2nのリストをローカルリストLL2、曲データM31〜M3nのリストをローカルリストLL3とすると、サーバSV1〜SV3のHDD14に蓄積されるグローバルリストGLはローカルリストLL1〜LL3を含む。
【0093】
各サーバSVは自己が蓄積する曲データを更新したとき、更新後のローカルリストLL1〜LL3を当該他のサーバSVに送信する。具体的には、サーバSV1に新たな曲データが登録されたとき、サーバSV1はローカルリストLL1を更新する。このとき、サーバSV1は更新されたローカルリストLL1をサーバSV2及びSV3に送信する(図中(1))。サーバSV2及びSV3は更新されたローカルリストLL1を受信し、グローバルリストGL内の更新前のローカルリストLL1と置き換える。同様に、サーバSV2に新たな曲データが登録されたとき、サーバSV2はローカルリストLL2を更新し、更新されたローカルリストLL2をサーバSV1及びSV3に送信する(図中(2))。サーバSV3に新たな曲データが登録されたとき、サーバSV3は更新されたローカルリストLL3をサーバSV1及びSV2に送信する(図中(3))。以上の動作により、各サーバSV内のグローバルリストGLは常に最新のローカルリストLL1〜LL3を含む。
【0094】
続いて、オーディオクライアントCLで曲を再生する場合のグローバルリストサーバシステム10の動作の概略を説明する。図2(A)を参照して、オーディオクライアントCL2で曲データM31を再生する場合、オーディオクライアントCL2は任意のサーバSVに対してグローバルリストGLを要求する。図2(A)では、オーディオクライアントCL2はサーバSV2にグローバルリストGLを要求するが(図中(4))、サーバSV1に要求しても、サーバSV3に要求してもよい。オーディオクライアントCL2の要求に基づいて、サーバSV2はグローバルリストGLを送信する(図中(5))。オーディオクライアントCL2のユーザは送信されたグローバルリストGLを参照して、再生したい曲M31を選択する。選択後、図2(B)に示すように、オーディオクライアントCL2はサーバSV3に対して曲データM31の要求を行う(図中(6))。サーバSV3はオーディオクライアントCL2からの要求を受け、該当曲データM31をオーディオクライアントCL2に配信する(図中(7))。
【0095】
以上の動作により、グローバルリストサーバシステム10では、オーディオクライアントCLはLAN50上のいずれかのサーバSVからグローバルリストGLを一度取得すれば、複数のサーバSVに蓄積されたいずれの曲でも選択できる。よって、オーディオクライアントCLは、LAN上の複数のサーバSVに蓄積された曲データMを選択するために、ローカルリストLLをサーバSVごとにいちいち要求する必要はない。
【0096】
1.2.構成
【0097】
1.2.1.サーバの構成
【0098】
図3を参照して、サーバSV1は、圧縮デジタル曲データを蓄積するためのHDD(ハードディスクドライブ)14と、データベース管理部16及びネットワークプロトコル処理部18を含むCPU処理部20と、本サーバSV1とLAN50との間で信号を送受信するLANコントローラ22とを備える。HDD14は曲データM11〜M1nを保存する。サーバSV2及びサーバSV3もサーバSV1と同じ構造である。サーバSV1〜SV3は相互に接続される。
【0099】
HDD14には表1に示すサーバリストが格納される。
【0100】
【表1】

【0101】
表1を参照して、サーバリストはサーバIDとサーバ情報とを含む。サーバIDはサーバSV1と接続した他のサーバSV2又はSV3の識別子である。サーバIDはサーバSV1の接続要求に応答した順番に登録される。サーバSV1の接続要求に初めに応答したのがサーバSV2であり、次に応答したのがサーバSV3である場合、表1に示すように、サーバID=1にはサーバSV2のサーバ情報が登録され、サーバID=2には、サーバSV3のサーバ情報が登録される。
【0102】
続いて、サーバ情報の一例としてサーバSV2のサーバ情報を示す。
【0103】
【表2】

【0104】
表2を参照して、サーバ情報はサーバ特定情報とサーバ名とローカルリストLL2とを含む。サーバ特定情報は、サーバSV2の場所を特定するためのサーバアドレスやポート番号等を含む。サーバアドレスとは、そのサーバSVのIP(Internet Protocol)アドレスやMACアドレス等である。ローカルリストLL2は、サーバSV2に格納されている曲データM21〜M2nのリストである。表3にローカルリストLL2を示す。
【0105】
【表3】

【0106】
表3を参照して、ローカルリストLL2は、サーバSV2がそのHDD14内に蓄積する複数の曲データM21〜M2nに関する曲情報I21〜I2nを含む。表4に曲情報I2nの詳細を示す。
【0107】
【表4】

【0108】
表4を参照して、曲情報I2nはファイル名と、曲名と、アーティスト名と、アルバム名と、ジャンル名と、曲の長さ(時間)と、ファイルフォーマットと、曲IDと、サーバ特定情報とを含む。ファイル名には、当該曲データMが格納されているHDD14のフルパス名が記録される。
【0109】
HDD14はさらに、表5に示すクライアントリストを含む。
【0110】
【表5】

【0111】
クライアントリストは、サーバSV1にクライアントとして接続された機器に関する情報(クライアント情報)を含む。サーバSV1にクライアントとして接続される機器は、オーディオクライアントCLやサーバSVである。クライアント情報はクライアントインデックスに対応して登録される。クライアントインデックスは、サーバSV1に接続された機器ごとに付与される識別子である。
クライアント情報を表6に示す。
【0112】
【表6】

【0113】
表6を参照して、クライアント情報中の「flag」はサーバSV1との接続の有無を示す。接続がある場合、「flag」はセットされ、接続がない場合「flag」はリセットされる。「type」はサーバSV1に接続された機器のクライアントタイプを示す。サーバSV1に接続された機器がオーディオクライアントCLであれば、クライアントタイプは「オーディオクライアント」である。接続された機器がサーバSVであれば、クライアントタイプは「サーバ」である。
【0114】
「status」以降の情報は、クライアントタイプが「オーディオクライアント」である場合に記録される。「status」は、再生、停止、完了、一時停止、早送り、巻き戻し等の現在のステータス(状態)である。「volume」は現在のボリューム値(音量)を示す。「productID」はクライアントタイプごとに付与されたプロダクトID(機種情報)である。「firmwareID」はオーディオクライアントCLにインストールされているファームウェアのバージョンを示すファームウェアIDである。「hostname」はクライアント機器に付与されたクライアント名である。「songID」は、再生中の曲を識別するための曲IDである。「curKey」は、再生中の曲リストを作成するために必要なリスト構築キーである。
【0115】
リスト構築キーは、フィルタの種類と、キーワードとを含む。フィルタの種類には、タイトル名、ジャンル名、アーティスト名、アルバム名、ファイル名等がある。たとえばフィルタの種類がアーティスト名の場合、キーワードには所望のアーティストの名称が記録される。リスト構築キーでグローバルリストGLを検索することにより所望の曲リストを作成することができる。詳細は前述した先行出願1に開示されている。
【0116】
サーバSVのHDD14はさらに、表7に示すプレゼンテーションコンテンツリストPLを含む。
【0117】
【表7】

【0118】
表7を参照して、プレゼンテーションコンテンツリストPLは各ローカルリストLL1〜LL3内の複数の曲データ(M11〜M1n,M21〜M2n,M31〜M3n)の曲情報I11〜I1n,I21〜I2n,I31〜I3nの格納場所、すなわち、HDD14内のどの場所に格納されているかを記録する。サーバSV1がオーディオクライアントCLからグローバルリストGLの要求を受けたとき、サーバSV1はプレゼンテーションコンテンツリストPLに基づいて、表8に示すグローバルリストGLを更新(作成)し、オーディオクライアントCLに送信する。
【0119】
【表8】

【0120】
表8を参照して、グローバルリストGLはローカルリストLL1〜LL3の曲情報I11〜I1n,I21〜I2n,I31〜I3nを含む。
【0121】
1.2.2.オーディオクライアントの構成
【0122】
図4を参照して、オーディオクライアントCLは、ネットワークプロトコル処理部24及びシステム動作部26を含むマイコン処理部28と、フラッシュメモリ30と、順次入力された圧縮デジタル曲データ等を一時的に記憶して順次出力するメモリ32と、圧縮デジタル曲データをデコードして非圧縮デジタル曲データを生成する音声処理部34と、デジタル曲データをアナログ曲データに変換するD/A変換器(DAC)36と、本オーディオクライアントCLとLAN50との間で信号を送受信するLANコントローラ38とを備える。オーディオクライアントCLは、サーバSVと異なり、曲データMを蓄積するためのHDDを備えていない。
【0123】
1.3.システム動作
【0124】
1.3.1.サーバ起動処理
【0125】
グローバルリストサーバシステム10におけるサーバSVの起動処理について説明する。図1中のサーバSV2、SV3が稼働している場合であってサーバSV1が起動するとき、図5を参照して、サーバSV1はLAN50上の他のサーバSV(SV2,SV3)を探索し、探索後、起動中のサーバSV2及びSV3からローカルリストLL2、LL3を取得する。以下、詳細を説明する。なお、本項では例として図1におけるサーバSV1の起動処理について説明するが、他のサーバSV(SV2,SV3)の起動処理も同様である。
【0126】
図5を参照して、サーバSV1はLAN50上で稼働している他のサーバSVを探索する前に、HDD14内のサーバリストをクリアする(S1)。続いて、サーバSV1は、LAN50で稼働している他のサーバSVを探索する。具体的には、サーバSV1はたとえばUDPプロトコルにより、コマンドポートで予め定められたマジックワードをLAN50にブロードキャストする(S2)。LAN50ではサーバSV2及びサーバSV3が稼働しているので、サーバSV2及びサーバSV3はステップS2でブロードキャストされたマジックワードをサーチポートで受信し、ブロードキャストしたサーバSV1に同じマジックワードを返信する。このとき、サーバSV2及びSV3は自身を特定するためのサーバ特定情報(IPアドレス)をサーバSV1に送信する。
【0127】
続いて、サーバSV1は、マジックワード送信後の経過時間を計測するためのタイマをリセットし(S3)、その後、マジックワードの返信を受けたか否かを判断する(S4)。マジックワードの返信を受けた場合(他のサーバSVを発見した場合)、サーバSV1はそのサーバSVのサーバ特定情報をサーバリストに記録する(S5)。このとき、サーバSV1はマジックワードを返信したサーバSV順にサーバIDを付与し、サーバ特定情報を登録する。たとえば、サーバSV2、SV3の順にマジックワードを返信してきた場合、サーバSV1はサーバリストのサーバID=1にサーバSV2のサーバ特定情報を、サーバID=2にサーバSV3のサーバ特定情報を登録する。
【0128】
サーバ特定情報を登録後、タイマが所定時間、たとえば2秒を超えたか否かを判断し(S6)、未だ超えていない場合はステップS4に戻る。すなわち、サーバSV1は2秒間だけ他のサーバSVからの応答を待つ。
【0129】
なお、ステップS4でマジックワードの返信を受けない場合(他のサーバSVを発見しない場合)、サーバSV1は、マジックワードをブロードキャストしてから2秒を超えたか否かを判断し(S6)、未だ超えていない場合はステップS4に戻る。
【0130】
ブロードキャスト後2秒を超えた場合、サーバSV1はサーバリストにサーバ特定情報が登録されているか否かを判断する(S7)。サーバリストが空の場合、つまりサーバリストにサーバ特定情報が全く記録されていない場合、サーバSV1は起動処理を終了する。一方、サーバリストが空でない場合、つまりサーバリストに少なくとも1つのサーバSVのサーバ特定情報が記録されている場合、サーバSV1はサーバリストに記録されたサーバSVに対して接続処理を行う(S8〜S12)。
【0131】
初めに、カウント値n=1とし(S8)、サーバリストに登録されたサーバ数がn以上か否かを判断する(S9)。判断の結果、サーバリストに登録されたサーバ数がn以上である場合、サーバSV1はサーバID=1のサーバSVのローカルリストLLを取得する(S10)。このローカルリスト取得処理については後述する。ローカルリスト取得処理を実行後、カウント値nをカウントアップし(S12)、ステップS9に戻ってローカルリスト取得処理を継続する。すなわち、サーバリストに登録された全てのサーバSV(SV2,SV3)のローカルリストLL(LL2,LL3)を取得するまでローカルリスト取得処理は継続される。ここで、ステップS10のローカルリスト取得処理について説明する。
【0132】
サーバSV1がサーバSV2のローカルリストLL2を取得する場合、図6を参照して、サーバSV1は初めにサーバSV2との接続を確立し(接続処理:S1000)、その後ローカルリストLL2を取得する(リスト取得処理:S1010)。
【0133】
サーバSV1が接続処理(S1000)を実行するとき、サーバSV2は接続応答処理(S1020)を実行する。具体的には、サーバSV1は、TCP(Transmission Control Protocol)に従い、サーバリストに登録されたサーバSV2のIPアドレス及びコマンドポートに基づいてソケットを生成し、このソケットでサーバSV2に接続を要求する(S1001)。コマンドポートは、サーバSV1からサーバSV2へのコマンドを受信し、かつサーバSV2からサーバSV1への応答を送信するためのポートである。サーバSV2はコマンドポートでの接続を受け付け(S1021)、これによりサーバSV1はサーバSV2のコマンドポートに接続を確立する。
【0134】
続いて、サーバSV1はコマンドポートにクライアントインデックス要求コマンドを送信する(S1002)。サーバSV2はクライアントインデックス要求コマンドに応答してコマンドポートからクライアントインデックスをサーバSV1に返信し(S1022)、サーバSV1はこれを受信する(S1003)。クライアントインデックス要求コマンドは、サーバSV1がサーバSV2にクライアントインデックスを要求するコマンドである。
【0135】
続いて、サーバSV1は、TCPに従い、サーバSV2のIPアドレス及びプッシュポートでソケットを生成し、このソケットでサーバSV2に接続を要求する(S1004)。プッシュポートは、サーバSV2からサーバSV1への要求を送信するためのポートである。サーバSV2はプッシュポートでの接続を受け付け(S1023)、これによりサーバSV1はサーバSV2のプッシュポートに接続を確立する。ただし、この時点ではまだ、サーバSV2はプッシュポートに接続されたものがどのサーバSVか又はどのオーディオクライアントCLか特定できていない。そのため、サーバSV1はステップS1003で受信したクライアントインデックスをサーバSV2のプッシュポートに送信する(S1005)。サーバSV2はクライアントインデックスを受信し、これによりプッシュポートに接続されたのがサーバSV1であると特定する(S1024)。プッシュポートの接続を確立後、サーバSV1はサーバSV2に対して自身のクライアント情報を送信する(S1006)。サーバSV2は送信されたクライアント情報を受信し、表5に示すクライアントリストに登録する。
【0136】
サーバSV1が接続処理(S1000)を実行し、サーバSV2が接続応答処理(S1020)を実行した結果、サーバSV1がサーバSV2に接続されると、サーバSV1はサーバSV2のローカルリストLL2を取得する(リスト取得処理:S1010)。このとき、サーバSV2はローカルリストLL2を送信する(リスト送信処理:S1030)。具体的には、サーバSV1はコマンドポートを用いてローカルリストLL2の要求コマンドをサーバSV2に送信する(S1011)。サーバSV2はサーバSV1から要求コマンドを受け、サーバSV2のローカルリストLL2をサーバSV1に送信する(S1031)。サーバSV1はサーバSV2からローカルリストLL2を受信し、HDD14内にローカルリストLL2を登録する(S1012)。このとき、サーバSV1内のサーバリスト内に、サーバSV2のサーバ情報がすべて登録される。なお、サーバSV1はサーバSV3に対しても同様の動作を行い、ローカルリストLL3を含むサーバSV3のサーバ情報をサーバリストに登録する。
【0137】
以上の動作により、サーバSV1はサーバリストに登録された全てのサーバSV2及びSV3と接続を確立し、かつ、全てのローカルリストLL2及びLL3を取得する。
【0138】
図5に戻って、LAN50で稼働中の全てのサーバSVのローカルリストLLを取得後、カウント値nはサーバリスト内のサーバ数を超えるため(S9)、サーバSV1はLAN50上の他のサーバSVに対して自己の有するローカルリストLL1を送信する(ローカルリスト送信処理:S11)。以下、ステップS11のローカルリスト送信処理の詳細を説明する。
【0139】
図7を参照して、サーバSV1はステップS10にて全てのサーバSVのローカルリストLLを取得した後、準備OKコマンドをブロードキャストする(S1101)。LAN50上のサーバSV2、SV3はサーバSV1からブロードキャストされた準備OKコマンドを受けた後、サーバSV1に対し、接続処理(S1000)を実行する。このときサーバSV1は接続応答処理(S1020)を実行する。サーバSV2、SV3はサーバSV1との接続を確立後、リスト取得処理(S1010)を実行する。これに対しサーバSV1はリスト送信処理(S1030)を実行し、サーバSV1が有するローカルリストLL1をサーバSV2、SV3に送信する。
【0140】
以上の動作によりサーバSV2、SV3はサーバSV1のローカルリストLL1を取得できる。よって、各サーバSVは、LAN50上の複数のサーバSVが有するローカルリストLLを全て蓄積する。
【0141】
なお、図7において、サーバSV1は準備OKコマンドをブロードキャストする前であっても、他のサーバSV又はオーディオクライアントCLからコマンドポート接続要求を受けるが、この場合サーバSV1はそのコマンドポート接続要求を受け付けない。他のサーバSVのローカルリストLLを全て取得した後でなければ、正確なグローバルリストGLをオーディオクライアントに送信できないからである。
【0142】
1.3.2.起動処理後のサーバ動作
【0143】
図8を参照して、起動後のサーバSVは、接続動作(S100)、配信動作(S200)、リスト更新動作(S300)を実行する。接続動作(S100)では、LAN50上に新たに起動したサーバSVと接続しローカルリストLLの授受を実行したり、LAN50上のオーディオクライアントCLと接続してグローバルリストGLを送信したりする。配信動作(S200)では、オーディオクライアントCLからの要求に応じて曲データを配信する。リスト更新動作(S300)では、自身のローカルリストLL又は他のサーバSVのローカルリストLLが更新されたとき、更新されたローカルリストLLの授受を実行する。各動作を実行後、サーバSVは自身の動作を終了する動作終了が選択されたか否か判断する(S15)。動作を終了するか否かの選択は、たとえばそのサーバSVを管理するユーザにより行われる。動作終了が選択されなかった場合、サーバSVはステップS100に戻って各動作を繰り返す(S100〜S300)。一方、ステップS15で動作終了が選択された場合、サーバSVは終了動作を実行する(S400)。以下、それぞれの動作について詳細を説明する。
【0144】
1.3.2.1.他のサーバとの接続動作
【0145】
サーバSV1が稼働中にLAN50上に新たなサーバSV(以下、起動サーバSVと称する)が起動した場合、起動サーバSVはサーバ探索用のマジックワードをブロードキャストする。図9を参照して、サーバSV1は起動サーバSVによりブロードキャストされたマジックワードを受信したか否かを判断する(S101)。マジックワードを受けたとき、サーバSV1はブロードキャストした起動サーバSVに対して接続応答処理(S1020)を実行し、起動サーバSVとの接続を確立する。このとき、サーバSV1はクライアントリストに起動サーバSVのクライアント情報を登録する。
【0146】
接続を確立後、サーバSV1は起動サーバSVに対してリスト送信処理を実行し(S1030)、ローカルリストLL1を送信する。ローカルリストLL1を送信後、サーバSV1はステップS1020で接続された装置がサーバSVかクライアントCLかを判断する(S102)。このときサーバSV1はクライアントリストに登録したクライアント情報内の「type」(クライアントタイプ)を参照して判断する。判断の結果、接続された装置が起動サーバSVであるため、サーバSV1は起動サーバSVからローカルリストLLを取得し、サーバリストにサーバ情報を登録する。グローバルリストGLを更新するためである。よって、サーバSV1は起動サーバSVに対して接続処理(S1000)を実行する。接続処理実行後、サーバSVは接続が成功したか否かを判断する(S103)。起動サーバSVが準備OKコマンドをブロードキャストする前(すなわち、起動サーバSVがサーバSV1との接続を確立し、ローカルリストLL1を取得後、他のサーバSVのローカルリストLLnの取得処理を実行中であるとき)、サーバSV1が起動サーバSVに接続処理(S1000)を実行しても接続は失敗する。この場合、サーバSV1は起動サーバSVから準備OKコマンドを受けた後(S104)、再び接続処理を実行する(S1000)。接続に成功した場合、サーバSV1は起動サーバSVからローカルリストLLを取得すべくリスト取得処理を実行する(S1010)。起動サーバSVのローカルリストLLを取得した後、サーバSVは接続動作を終了する。
【0147】
以上の動作により、サーバSV1は新たに起動したサーバSVのローカルリストLLも取得できる。
【0148】
1.3.2.2.オーディオクライアントとの接続動作
【0149】
LAN50上のオーディオクライアントCL2がグローバルリストGLを取得すべく、サーバSV1に接続を要求する場合もある。このようなオーディオクライアントCLからの接続依頼処理(S120)に対して、サーバSV1は接続動作(S110)を実行する。図10を参照して、オーディオクライアントCL2がサーバSV1に対して接続処理を実行したとき(S1000)、サーバSV1は接続応答処理を実行する(S1020)。このとき、サーバSV1はクライアントリストにオーディオクライアントCL2のクライアント情報を登録する。
【0150】
サーバSV1が接続応答処理を実行後(S1020)、オーディオクライアントCL2はグローバルリストGLの要求コマンドをコマンドポートを用いてサーバSV1に送信する(S105)。サーバSV1はオーディオクライアントCL2からのグローバルリスト要求コマンドを受け、プレゼンテーションコンテンツリストPLに基づいてグローバルリストGLを作成する(S106)。具体的には、プレゼンテーションコンテンツリストPLに登録された複数の曲情報Iの格納場所から曲情報Iを取得し、全ての曲情報Iをリスト化してグローバルリストGLを作成する。グローバルリストGLを作成後、サーバSV1はオーディオクライアントCL2にそのグローバルリストGLを送信する(S107)。オーディオクライアントCL2はグローバルリストGLを受信し、メモリ32に登録する(S108)。
【0151】
なお、オーディオクライアントCL2はサーバSV1以外のサーバSV(SV2、SV3)からでもグローバルリストGLを取得できる。また他のオーディオクライアントCLも同様にグローバルリストGLを取得できる。
【0152】
以上の動作により、クライアントCLはLAN50上のいずれかのサーバSVに接続すれば、LAN50上のすべての曲情報Iを含むグローバルリストGLを取得できる。
【0153】
1.3.2.3.配信動作
【0154】
オーディオクライアントCL2のユーザはサーバSV1から取得したグローバルリストGLを参照し、聴きたい曲を選択する。グローバルリストGLを参照後、ユーザが曲データM31を選択した場合、図11を参照して、オーディオクライアントCL2は選択された曲データM31を蓄積するサーバSV3に対して曲データM31を要求する配信依頼処理を実行する(S240)。オーディオクライアントCL3が要求する曲データM31を蓄積するサーバSV3は配信動作(S200)を実行する。
【0155】
図11を参照して、オーディオクライアントCL2はサーバSV3に対して接続処理を実行する(S1000)。グローバルリストGLには、曲データが蓄積されるサーバSVを特定するためのサーバ特定情報(IPアドレス及びポート番号)が記録されている。オーディオクライアントCL2は選択された曲データM31の曲情報I31内に登録されたサーバ特定情報に基づいて、サーバSV3に対して接続処理を実行する。サーバSV3はオーディオクライアントCL2に対して接続応答処理(S1020)を実行する。これにより、曲データM31を配信するための接続が確立する。なお、このとき、サーバSV1は接続動作(S100)において確立したオーディオクライアントCL2との接続を維持する。つまり、オーディオクライアントCL2はサーバSV1とサーバSV3とに接続を確立したことになる。オーディオクライアントCL2がサーバSV1との接続を切断した後にサーバSV3との接続を試みた結果、接続に失敗した場合、オーディオクライアントCL2はLAN50から離脱してしまう。そのような事態を防止するために、サーバSV1はオーディオクライアントCL2との接続を維持しておく。
【0156】
サーバSV3とオーディオクライアントCL2との接続が確立した後、オーディオクライアントCL2はコマンドポートを介して表9に示す曲データ転送要求コマンドを送信する(S221)。
【0157】
【表9】

【0158】
この曲データ転送要求コマンドは、転送すべき曲データM31の取得開始アドレス及び取得データ長を含む。サーバSV3は曲データM31の転送要求コマンドに応答して、取得開始アドレスにより指定された先頭アドレスからその取得データ長分だけ曲データM31のデータをオーディオクライアントCL2に配信する(S201)。オーディオクライアントCL2は配信された曲データM31のデータをメモリ32に格納する。メモリ32は図12に示すように複数(図12では8つ)のバッファを含む。図13に示すように、オーディオクライアントCL2は曲データ転送要求コマンドで曲の先頭から1バッファ分(=取得データ長)の曲データを取得して格納する(S222)。格納後、オーディオクライアントCL2はメモリ32のバッファが全て曲データで埋まったか判断し(S223)、図14に示すようにバッファが全て埋まるまで曲データを取得して格納する。
【0159】
ステップS221〜S223を繰り返し、バッファが曲データで全て埋まったら、オーディオクライアントCL2は再生を開始する(S224)。具体的には、図15に示すように、先頭バッファから曲データを音声処理部34に出力し始める。曲データを出力して再生していると、やがて図16に示すように1バッファ分の空きが生じる。メモリ32に空きが生じると(S225)、オーディオクライアントCL2は再び曲データ転送要求をサーバSV3に送信し(S226)、サーバSV3は要求分の曲データを配信する(S202)。オーディオクライアントCL2は配信された曲データをメモリ32の空いたバッファに格納する(S227)。格納後、オーディオクライアントCL2は曲データM31を全て受信したか否か確認する(S228)。曲データM31を全て受信していない場合、すなわち、サーバSV3が曲データM31の全データを未だオーディオクライアントCL2に送信していない場合、オーディオクライアントCL2及びサーバSV3は再生によりメモリ32に空きが生じるたびにステップS226、S202、S227を繰り返す。なお、上記では、バッファが曲データで全て埋まってから再生を開始しているが、全て埋まる前に再生し始めてもよい。
【0160】
オーディオクライアントCL2がサーバSV3から曲データM31を全て受信した場合(S228)、オーディオクライアントCL2は曲データM31を全て再生するまで再生動作を継続する(S229)。
【0161】
以上のように、クライアントCLは選択した曲データを蓄積するサーバSVをグローバルリストGLから特定し、曲データの転送を要求できる。また、曲データを分割し、サーバSVからオーディオクライアントCLに断続的に配信するため、バッファ容量が少なくても適切に音楽を再生できる。
【0162】
1.3.2.4.リスト更新動作
【0163】
サーバSVは(1)自己のローカルリストLLが更新された場合、(2)他のサーバSVのローカルリストLLが更新された場合、(3)他のサーバが動作を終了し、LAN50から離脱した場合、にそれぞれグローバルリストGLを更新する動作であるリスト更新動作を行う。このような場合、LAN50上の複数のサーバSVが保有する曲データ数が変更するため、オーディオクライアントCLが変更後の最新のグローバルリストGLを取得する必要があるためである。以下、(1)〜(3)のリスト更新動作についてそれぞれ説明する。
【0164】
1.3.2.4.1.自己のローカルリストが更新された場合
【0165】
図17を参照して、サーバSV1のHDD14に新たな曲データM12が蓄積されたとき、サーバSV1はローカルリストLL1を更新する(S301)。さらに、サーバSV1はローカルリストLL1が更新される前のプレゼンテーションコンテンツリストPLを削除する(S302)。その後、ステップS301で更新されたローカルリストLL1に対応した新たなプレゼンテーションコンテンツリストPLを作成する(S303)。
【0166】
新たなプレゼンテーションコンテンツリストPLを作成後、サーバSV1に対して接続を確立している全てのサーバSV及びオーディオクライアントCLに対し、リスト更新通知を行う(S304〜S307)。具体的には、サーバSV1はカウント値n=1とし(S304)、nがクライアントリストに登録されたクライアント数よりも多いか否か判断する(S305)。判断の結果、クライアント数がn以上であった場合、サーバSV1はクライアントインデックス=nのサーバSV又はオーディオクライアントCLに対してリスト更新通知を送信する(S306)。通知後、サーバSV1はnをカウントアップし(S307)、ステップS305に戻る。
【0167】
以上の動作を繰り返すことにより、サーバSV1に対して接続を確立している全てのサーバSV及びオーディオクライアントCLに対してリスト更新通知を送信できる。ステップS305でクライアント数よりもnが大きい場合、サーバSV1はクライアントリスト中の全てのサーバSV及びオーディオクライアントCLに対して通知したため、その動作を終了する。
【0168】
[サーバからリスト更新通知を受けたオーディオクライアントの動作]
【0169】
図18を参照して、サーバSV1からのリスト更新通知(S306)を受けたオーディオクライアントCLは、初めに自身がメモリ32に登録しているグローバルリストGLを削除する(S351)。続いて、オーディオクライアントCLはサーバSV1にグローバルリスト要求コマンドを送信する(S352)。サーバSV1はグローバルリスト要求コマンドを受け、更新されたグローバルリストGLをオーディオクライアントCL2に送信する(S308)。オーディオクライアントCLは送信されたグローバルリストGLをメモリ32に登録する(S353)。
【0170】
ステップS306で送信されたリスト更新通知を受けた他のサーバSVの動作について次に説明する。
【0171】
1.3.2.4.2.他のサーバのローカルリストLLが更新された場合
【0172】
図19を参照して、ステップS306でサーバSV1から送信されたリスト更新通知をサーバSV2が受信したとき(S311)、サーバSV2は既存のプレゼンテーションコンテンツリストPLを削除する(S312)。削除後、サーバSV2はHDD14に登録しているローカルリストLL1を削除する(S313)。ローカルリストLL1を削除後、サーバSV2は更新されたローカルリストLL1をサーバSV1に要求する(S314)。サーバSV1はサーバSV2からの要求を受信し(S331)、更新されたローカルリストLL1を送信する(S332)。サーバSV2は送信されたローカルリストLL1を受信し、HDD14に登録する(S315)。登録後、サーバSV2はプレゼンテーションコンテンツリストPLを作成する(S316)。これにより、グローバルリストGLは更新される。
【0173】
プレゼンテーションコンテンツリストPLを作成後、サーバSV2は更新されたグローバルリストGLをサーバSV2と接続する複数のオーディオクライアントCLに送信するために、リスト更新通知処理(S320)を行う。具体的には、サーバSV2はカウント値n=1とした後(S321)、クライアントリストに登録されたクライアント数がn以上であるか否か判断する(S322)。判断の結果、クライアント数がn以上である場合、サーバSV2はクライアントインデックス=nの機器がオーディオクライアントCLであるか否か判断する(S323)。判断はクライアントリストに登録されたクライアント情報内の「type」(クライアントタイプ)に基づいて行う。判断の結果、クライアントインデックス=nの「type」が「オーディオクライアント」の場合、サーバSV2はそのオーディオクライアントCLに対してリスト更新通知を送信する(S324)。送信後、カウント値nをカウントアップして(S325)、S325に戻る。一方、ステップS323での判断の結果、クライアントインデックス=nの「type」が「サーバ」である場合はリスト更新通知を送信することなくステップS325へ進む。他のサーバSVに対してはサーバSV1からリスト更新通知が送信されているため、サーバSV2はオーディオクライアントCLに対してのみリスト更新通知を行えばよいためである。
【0174】
以上の動作を繰り返すことで、サーバSV2に接続された全てのオーディオクライアントCLに対してリスト更新通知を送信する。リスト更新通知を受けたオーディオクライアントCLの動作は図18と同じである。
【0175】
1.3.2.4.3.他のサーバが離脱した場合
【0176】
図20を参照して、LAN50で稼働中のサーバSV2がその動作を停止し、LAN50から離脱する場合、サーバSV2はLAN50上の他のサーバSV(SV1、SV3)に対して離脱通知をブロードキャストする(S335)。サーバSV1はサーバSV2からの離脱通知を受信し(S311)、既存のプレゼンテーションコンテンツリストPLを削除する(S312)。さらにサーバSV1は、HDD14に登録しているローカルリストLL2を削除する(S313)。ローカルリストLL2を削除後、サーバSV1はプレゼンテーションコンテンツリストPLを作成する(S316)。これにより、プレゼンテーションコンテンツリストPLに基づき作成されるグローバルリストGLは、ローカルリストLL2を含まない。サーバSV1はプレゼンテーションコンテンツリストPLを作成後、リスト更新通知処理(S320)を実行する。サーバSV3についてもサーバSV1と同じ動作を行う。
【0177】
以上のリスト更新動作により、オーディオクライアントCLは常に最新のグローバルリストGLを取得できる。
【0178】
1.3.2.5.終了動作
【0179】
オーディオクライアントCLに接続されたサーバSV1が動作を終了し、LAN50から離脱する場合、そのオーディオクライアントCLの接続先をLAN50上の他のサーバSVに変更する方が好ましい。また、サーバSV1がオーディオクライアントCLに対して曲データを配信中に離脱する場合、クライアントCLがその曲データの配信を継続して受けられるように対処する方が好ましい。
【0180】
図21を参照して、サーバSV1がその動作を終了する場合、初めにカウント値n=0とし(S401)、サーバSV1に接続しているオーディオクライアントCL数がnより大きいか否かを判断する(S402)。ステップS402の判断は、クライアントリストに基づいて行われる。判断の結果、オーディオクライアントCL数がn以下であった場合、サーバSV1にはオーディオクライアントCLが接続されていない。よって、サーバSV1は離脱通知を他のサーバSVに送信し(S335)。動作を終了する。
【0181】
一方、ステップS402でオーディオクライアントCL数がnよりも大きい場合(つまり、サーバSV1に接続しているオーディオクライアントCLが存在する場合)、クライアントインデックス=nのオーディオクライアントCLが現在再生中か否かを判断する(S403)。
【0182】
判断の結果、クライアントインデックス=nのオーディオクライアントCLが再生中でない場合(以降、このオーディオクライアントCLをCL2とする)、サーバSV1はオーディオクライアントCL2に対して引継サーバSVに接続を切り替えるようサーバ切換指示を送信する(S404)。ここで、引継サーバSVとは、オーディオクライアントCL2との接続を引き継ぐサーバSVである。サーバSV1は引継サーバSVをサーバリストに基づいて決定する。具体的には、サーバリスト中のサーバID=1のサーバSVを引継サーバSVに決定する。たとえば、サーバID=1にサーバSV2のサーバ特定情報が登録されているとき、サーバSV1は引継サーバSVをサーバSV2に決定する。サーバSV1はサーバ切換指示を送信した後、カウント値nをカウントアップし(S407)、再びステップS402に戻る。
【0183】
オーディオクライアントCL2はサーバSV1からのサーバ切換指示を受けた後(S431)、サーバSV1との接続を切断する(S432)。切断後、オーディオクライアントCL2は切換指示に従って、サーバSV2に対して接続処理を実行する(S1000)。このとき、サーバSV2は接続応答処理を実行する(S1020)。オーディオクライアントCL2はサーバSV2と接続を確立後、リスト取得処理を実行する(S1010)。このとき、サーバSV2はリスト送信処理を実行する(S1030)。以上の動作により、サーバSV1が動作を終了しても、オーディオクライアントCL2は接続先をサーバSV2に切り替えることで、最新のグローバルリストGLをサーバSV2から取得できる。
【0184】
一方、ステップS403での判断の結果、クライアントインデックス=nのオーディオクライアントCLが曲データM11を再生中である場合(以降、このオーディオクライアントCLをCL1とする)、サーバSV1が動作を終了した後も、オーディオクライアントCL1は曲データM11の配信の続きを受ける必要がある。曲データM11の配信が途切れたら、オーディオクライアントCL1は曲データM11の再生を途中で終了させなければならなくなるからである。よって、サーバSV1は曲データM11の配信の続きを引継サーバSVに実行させるように対処した後、その動作を終了する。具体的には、サーバSV1はサーバSV2に対して曲データM11の曲データ引継処理を実行する(S404)。このときサーバSV2は曲データ引受処理を実行する(S414)。以下、曲データ引継処理及び曲データ引受処理について説明する。
【0185】
図22を参照して、サーバSV1はサーバSV2に対してオーディオクライアントCL1に配信中の曲データM11の登録を要求する(S4041)。サーバSV2はサーバSV1からの要求を受信し(S4111)、曲データM11を格納するためにHDD14内に新規曲IDを登録する(S4112)。サーバSV2は新規曲IDをサーバSV1に送信する(S4113)。サーバSV1は新規曲IDを受信し、受信した新規曲IDを付与した曲データM11をサーバSV2に送信する(ステップS4043)。サーバSV2は曲データM11を受信し、HDD14内の新規曲IDの領域に格納する(S4114)。以上の動作により、曲データM11はサーバSV1からサーバSV2に引き継がれる。
【0186】
図21に戻って、引継サーバSVであるサーバSV2がサーバSV1から曲データM11を引き継いだ後、オーディオクライアントCL1が曲データM11中のどの位置からデータ配信サーバSV2に要求すれば良いかを決定する必要がある。オーディオクライアントCL1はサーバSV1から曲データM11の途中まで配信を受けているため、サーバSV2から曲データM11を初めから配信してもらう必要はないからである。よって、サーバSV1はオーディオクライアントCL1がサーバSV2から配信してもらう曲データM11の取得開始アドレスを算出する(S405)。具体的には、サーバSV1はオーディオクライアントCL2に今まで配信した曲データM11のデータ長を曲データM11の先頭アドレスに加算した値を取得開始アドレスに決定する。取得開始アドレスを算出後、サーバSV1は再生コマンドをオーディオクライアントCL2に送信する(S406)。再生コマンドには、パラメータとしてサーバSV2のサーバ特定情報とステップS405で算出した取得開始アドレスが含まれる。
【0187】
再生コマンドを送信後、サーバSV1はカウント値nをカウントアップし(S407)、再びステップS402に戻って動作を繰り返す。これにより、サーバSV1に接続されている全てのオーディオクライアントCLに対して終了動作を実行できる。全てのオーディオクライアントCLに対して終了動作を実行後、すなわち、カウント値nがクライアント接続数を超えたとき、(S402)、サーバSV1は他のサーバSVに離脱通知を送信し(S335)、その動作を終了する。
【0188】
オーディオクライアントCL1はサーバSV1からの再生コマンドを受信後(S421)、サーバSV1との接続を切断する(S422)。切断後、サーバSV2に対してクライアント接続依頼処理(S120)を実行し、サーバSV2は接続動作(S110)を実行することで、オーディオクライアントCL1はサーバSV2に対して接続を確立する。その後、オーディオクライアントCL1は配信依頼処理(S240)を実行する。このとき、オーディオクライアントCL2はステップS421で受信した取得開始アドレスをパラメータに曲データ転送要求を行う。サーバSV2は曲データ転送要求内の取得開始アドレスに基づいて、配信動作を実行する(S200)。以上の動作によりオーディオクライアントCL2は曲データM11の続きをサーバSV2から取得でき、曲データM11の再生を継続できる。
【0189】
以上に示したように、サーバSVがその動作を終了する場合、そのサーバSVから曲データが配信されている(つまり再生中の)オーディオクライアントCLが存在しても、引継サーバSVにその曲データを引き継ぐ。そのため、オーディオクライアントCLは再生を継続できる。
【0190】
1.4.コントローラを含むグローバルサーバシステム
【0191】
1.4.1.概略
【0192】
グローバルサーバシステム10は、図23に示すようにコントローラCNを備えてもよい。コントローラCNはサーバSV1〜SV3と接続し、サーバSV1〜SV3を介してオーディオクライアントCL1〜CL3を制御する。たとえば、コントローラCNは所望のオーディオクライアントCLに所望の曲を再生させたり、再生中の曲を停止させたりする。図23ではコントローラCNを1つとしたが、複数あってもよい。
【0193】
図23に示すサーバSV1〜SV3、オーディオクライアントCL1〜CL3、及びコントローラCNの接続関係を図24に示す。図24に示すように、コントローラCNは全てのサーバSV1〜SV3に接続する。オーディオクライアントCL1〜CL3はサーバSV1〜SV3の何れかに接続する。図24では、オーディオクライアントCL1はサーバSV1に接続され、オーディオクライアントCL2及びCL3はサーバSV2に接続されている。つまり、オーディオクライアントCL1はサーバSV1からグローバルリストGLを取得し、オーディオクライアントCL2及びCL3はサーバSV2からグローバルリストGLを取得する。
【0194】
図23に戻って、コントローラCNがオーディオクライアントCL2に曲データM31に基づく曲を再生させる場合、コントローラCNはオーディオクライアントCL2に再生コマンドを送信する。具体的には、コントローラCNはオーディオクライアントCL2がサーバSV2と接続されているのを確認した後、サーバSV2を介して(図中(1))、オーディオクライアントCL2に再生コマンドを送信する(図中(2))。再生コマンドを受けたオーディオクライアントCL2の動作は図2中の(B)と同じである。
【0195】
1.4.2.構成
【0196】
コントローラCNは、サーバSV1〜SV3に対してクライアントとして機能する。図25を参照して、コントローラCNは、LANコントローラ38と、マイコン処理部28と、フラッシュメモリ30と、メモリ32と、CRTやLCDといった表示装置37と、キーボードやマウスといった入力装置39とを備える。コントローラCNがオーディオクライアントCLと異なる点は、オーディオクライアントCLは再生機能を有するのに対し、コントローラCNは再生機能を有さなくてもよく、主としてオーディオクライアントCLのモニタ機能及び制御機能を有する点である。
【0197】
コントローラCNのメモリ32には、表1と同じ構成のコントローラ用サーバリストが登録される。コントローラ用サーバリストに登録されるサーバ情報(コントローラ用サーバ情報)を表10に示す。
【0198】
【表10】

【0199】
表10を参照して、コントローラ用サーバ情報は、表2と比較して、ローカルリストLLの代わりにクライアントリスト(「clientlist」)が登録される。クライアントリストには、サーバSV1〜SV3が持つ全てのクライアント情報が登録される。要するに、コントローラCNはサーバSV1〜SV3が持つ全てのクライアント情報を持つ。そのため、コントローラCNはグローバルサーバシステム10で稼働するオーディオクライアントCL1〜CL3の存在を把握し、かつ、各オーディオクライアントCLがどのサーバSVと接続しているかを把握する。
【0200】
さらに、メモリ32にはグローバルリストGLも登録される。
【0201】
1.4.3.システム動作
【0202】
1.4.3.1.ハンドル取得動作
【0203】
コントローラCNは、グローバルサーバシステム10の全てのサーバSVと接続し、各サーバSVに接続されたオーディオクライアントCL1〜CL3を監視及び制御するための監視ハンドル及び制御ハンドルを取得する。
【0204】
図26を参照して、ステップS1〜ステップS7の動作は図5と同じである。要するに、コントローラCNは、LAN50で稼働しているサーバSV1〜SV3を探索し、サーバSV1〜SV3のサーバ特定情報をサーバリストに登録する。
【0205】
ステップS7でサーバリストにサーバ特定情報が登録されていると判断した場合、サーバリストに登録されたサーバごとにハンドル取得処理を実行する(S71〜S74)。初めに、カウント値n=1とし(S71)、サーバリストに登録されたサーバ数がn以上か否かを判断する(S72)。サーバ数がn以上の場合、サーバSV1はサーバID=1のサーバSVに対して、ハンドル取得処理を実行する(S73)。ハンドル取得処理を実行後、カウント値nをカウントアップし(S74)、ステップS72に戻る。要するに、コントローラCNは、サーバリストに登録された全てのサーバに対してハンドル取得処理を実行する。一例として、サーバSV2に対するハンドル取得処理について説明する。
【0206】
図27を参照して、コントローラCNはサーバSV2に対して接続処理を実行する(S1000)。このとき、サーバSV2は接続応答処理を実行する(S1020)。接続処理及び接続応答処理により、コントローラCNはサーバSV2と接続を確立する。なお、接続処理において、コントローラCNは、自身のクライアント情報をサーバSV2に送信するが、このとき、コントローラCNは、クライアントタイプが「コントローラ」であることを通知する。
【0207】
接続を確立後、コントローラCNはサーバSV2に対してクライアントリスト要求コマンドを送信する(S7301)。サーバSV2はクライアントリスト要求コマンドを受け、HDD14内のクライアントリストをコントローラCNに送信する(S7302)。サーバSV2にはオーディオクライアントCL2及びCL3とコントローラCNとが接続されているため、ステップS7302で送信されるクライアントリストには、オーディオクライアントCL2及びCL3のクライアント情報と、コントローラCNのクライアント情報とが含まれる。コントローラCNは、クライアントリストを受信後、メモリ32内のコントローラ用サーバリストに登録する(S7303)。より具体的には、コントローラ用サーバリスト内のサーバSV2のコントローラ用サーバ情報の「clientlist」に、取得したクライアントリストを登録する。
【0208】
クライアントリストを登録後、コントローラCNは、クライアントリストに基づいて、サーバSV2に接続されているオーディオクライアントCL2及びCL3の監視ハンドル及び制御ハンドルをサーバSV2に要求して取得する(S7305〜S7311)。監視ハンドルは、サーバSVからコントローラCNに与えられるオーディオクライアントCLを監視する権限である。また、制御ハンドルは、サーバSVからコントローラCNに与えられるオーディオクライアントCLを制御する権限である。
【0209】
コントローラCNは、カウント値n=1とし(S7304)、クライアントリスト内のクライアント数がn以上か否かを判断する(S7305)。クライアント数がn以上の場合、コントローラCNはクライアントインデックス=1のクライアント情報が自身の情報か否かを判断する(S7306)。自身のクライアント情報でない場合、そのクライアントインデックス(=1)をサーバSV2に送信し、その監視ハンドル及び制御ハンドルを要求する(S7307)。
【0210】
サーバSV2は、コントローラから送信されたクライアントインデックス(=1)を、コントローラCNのクライアントインデックスと対応付けて記録し(S7308)、コントローラCNに対して監視ハンドル及び制御ハンドルを発行する(S7309)。その結果、コントローラCNはクライアントインデックス=1に対応したオーディオクライアントCLの監視ハンドル及び制御ハンドルを取得する(S7310)。
【0211】
続いて、コントローラCNはカウント値nをカウントアップし(S7311)、再びステップS7305の動作に戻る。要するに、コントローラCNはクライアントリスト内に登録された全てのオーディオクライアントCL(ここではCL2及びCL3)に対して監視ハンドル及び制御ハンドルを取得する。なお、ステップS7306での判断の結果、クライアントインデックス=nのクライアント情報が自身のクライアント情報である場合、ステップS7311に進む。コントローラは自分自身に対して監視ハンドル及び制御ハンドルを取得する必要がないためである。
【0212】
ハンドル取得処理は、全てのサーバSV1〜SV3に対して実行される。そのため、コントローラCNはグローバルサーバシステム10で稼働する全てのオーディオクライアントCL1〜CL3の監視ハンドル及び制御ハンドルを取得する。
【0213】
1.4.3.2.グローバルリスト取得動作及び更新動作
【0214】
コントローラCNがサーバSVからグローバルリストGLを取得する動作は図10のオーディオクライアントCL2の動作と同じである。コントローラCNは任意のサーバSVからグローバルリストGLを取得する。なお、ハンドル取得動作により既に全てのサーバSV1〜SV3と接続を確立している場合、コントローラCNは図5中の接続処理(S1000)を実行することなく任意のサーバSVに対してグローバルリストを要求する(図5中のステップS105)。任意のサーバSVとは、たとえばコントローラ用サーバリスト中のサーバID=1のサーバSVである。
【0215】
コントローラCNはオーディオクライアントCLと同様に、サーバSVからリスト更新通知を受け、グローバルリストGLを更新する。グローバルリストを更新する動作は図18と同じである。
【0216】
以上の動作により、コントローラCNも常に最新のグローバルリストを取得できる。
【0217】
1.4.3.3.監視動作
【0218】
コントローラCNは監視ハンドルを取得することにより、オーディオクライアントCLを監視できる。図28を参照して、オーディオクライアントCL2のボリューム値が変更された場合、オーディオクライアントCL2はボリューム値変更通知をサーバSV2に送信する(S7501)。ボリューム値変更通知は変更されたボリューム値の情報を含む。
【0219】
サーバSV2はボリューム値変更通知を受信後、オーディオクライアントCL2のクライアント情報を更新する(S7502)。具体的には、クライアント情報内の「volume」のデータを更新する。サーバSV2はさらに、オーディオクライアントCL2の監視ハンドルを取得しているコントローラCNに、更新されたクライアント情報を送信する(S7503)。
【0220】
コントローラCNは更新されたクライアント情報を受信し、コントローラ用サーバリスト内のオーディオクライアントCL2のクライアント情報を更新する(S7504)。更新されたクライアント情報は、表示装置37に表示される(S7505)。
【0221】
以上の処理は、コントローラCNが監視ハンドルを取得した全てのオーディオクライアントCL1〜CL3のうちいずれかのクライアント情報が更新されるたびに繰り返される。
【0222】
以上のように、サーバSVがオーディオクライアントCLからクライアント情報を受信した際に、コントローラCNにクライアント情報を送信することにより、コントローラCNはオーディオクライアントCLを常に監視できる。
【0223】
1.4.3.4.制御動作
【0224】
コントローラCNは制御ハンドルを取得することにより、オーディオクライアントCLを制御できる。制御動作の一例として、コントローラCNがオーディオクライアントCL2に対して曲データM31に基づく曲の再生を指示する処理について説明する。曲データはコントローラCNが持つグローバルリストGLに基づいて選択される。
【0225】
図29を参照して、コントローラCNはグローバルリストGLに基づいて曲データM31を選択する(S7601)。選択後、コントローラCNは、コントローラ用サーバリストに基づいて、オーディオクライアントCL2を接続しているサーバを特定する(S7602)。具体的には、コントローラCNはコントローラ用サーバリストを参照し、オーディオクライアントCL2のクライアント情報を持つサーバ情報がサーバSV2のサーバ情報であると判断する。換言すれば、コントローラCNは、オーディオクライアントCL2を接続しているサーバはサーバSV2であると判断する。そのため、コントローラCNはサーバSV2に再生コマンドを送信する(S7603)。再生コマンドは曲データM31を特定する情報(たとえば曲ID)を含む。
【0226】
サーバSV2はコントローラCNから送信された再生コマンドをオーディオクライアントCL2に送信する(S7604)。要するに、コントローラCNはサーバSV2を介してオーディオクライアントCL2に再生コマンドを送信する。
【0227】
再生コマンドを受けたオーディオクライアントCL2は曲データM31を取得して再生するために、配信依頼処理を実行する(S240)。なお、このときサーバSV3が配信動作を実行する(S200)。
【0228】
図29では曲の再生を指示する場合の動作を示したが、曲再生を停止する場合も同様である。コントローラCNが曲再生の停止コマンドをサーバSV2を介してオーディオクライアントCL2に送信することで、オーディオクライアントCL2は曲再生を停止する。ボリュームの調整等の制御についても同様である。
【0229】
以上の動作により、コントローラCNは制御ハンドルを取得したオーディオクライアントCLを制御できる。
【0230】
なお、グローバルサーバシステム10が複数のコントローラCNを備える場合、各オーディオクライアントCLの制御ハンドルは複数発行されない。換言すれば、各オーディオクライアントCLを制御できるのは1つのコントローラCNである。一方、各オーディオクライアントCLの監視ハンドルは重複して発行され、複数のコントローラCNが1つのオーディオクライアントCLを監視できる。
【0231】
2.センタサーバシステム
【0232】
2.1.概略
【0233】
図30はセンタサーバシステムの全体構成を示す図である。図30を参照して、センタサーバシステム70は、センタサーバCSVと複数のサブサーバSSV1,SSV2と、複数のオーディオクライアントCL1〜CL3とを備える。これらはLAN60で互いに接続される。センタサーバCSV及びサブサーバSSVの構成は図3と同じである。また、図30ではサブサーバSSVを2つ(SSV1,SSV2)としたが、サブサーバSSVは1以上あればよい。また、クライアントCLも1以上あればよい。
【0234】
グローバルリストサーバシステム10ではLAN50上の全てのサーバSV1〜SV3がグローバルリストGLを有するのに対し、センタサーバシステム70では、センタサーバCSVのみがグローバルリストGLを備える。センタサーバCSVはさらに曲データM31〜M3nとローカルリストLL3とを備える。一方、サブサーバSSV1は曲データM11〜M1nとローカルリストLL1とを備え、サブサーバSSV2は曲データM21〜M2nとローカルリストLL2とを備える。
【0235】
サブサーバSSV1,SSV2は自己が蓄積する曲データが更新されたとき、更新後のローカルリストLL1、LL2をセンタサーバCSVに送信する(図中(1))。センタサーバCSVはローカルリストLL1,LL2を受け、ローカルリストLL3と合わせてグローバルリストGLを更新する。なお、センタサーバCSVからサブサーバSSV1,SSV2にローカルリストLL3は送信されない。また、サブサーバSSV1とサブサーバSSV2との間でローカルリストLL1、LL2の送受信は行われない。
【0236】
図31(A)を参照して、複数のオーディオクライアントCL1〜CL3はグローバルリストGLの転送要求をセンタサーバCSVに送信する(図中(2))。センタサーバCSVはグローバルリストGLの要求を受け、各オーディオクライアントCL1〜CL3にグローバルリストGLを送信する(図中(3))。
【0237】
グローバルリストGLを受信後、オーディオクライアントCL2が曲データM21を再生する場合、図31(B)を参照して、オーディオクライアントCL2は曲データM21の曲データ転送要求をセンタサーバCSVに送信する(図中(4))。センタサーバCSVは曲データ転送要求を受け、曲データM21を蓄積するサブサーバSSV2に対し曲データM21をセンタサーバCSVに配信するよう要求する(図中(5))。図31(C)を参照して、サブサーバSSV2はセンタサーバCSVの要求を受け、曲データM21をセンタサーバCSVに配信する(図中(6))。センタサーバCSVはサブサーバSSV2から配信された曲データM21をオーディオクライアントCL2に配信する(図中(7))。
【0238】
以上に示すように、センタサーバシステム70では、グローバルリストGLの転送要求や曲データ転送要求等のオーディオクライアントCLからの要求は全てセンタサーバCSVに送信される。また、サブサーバSSVからオーディオクライアントCLへの曲データMの配信は、センタサーバCSVを介して行われる。センタサーバCSVはサブサーバSSVとオーディオクライアントCLとの中継を行うとともに、自身も曲データMを備え、オーディオクライアントCLに直接自身が蓄積した曲データMの配信を行う。オーディオクライアントCLはセンタサーバCSVに要求すれば、LAN60上のすべての曲データMを再生できる。
【0239】
なお、オーディオクライアントCLから曲データMを要求するときは、センタサーバCSVサーバを介さずに所望の曲データMを蓄積するサブサーバSSVに曲データの転送要求をおこなってもよい。
【0240】
2.2.システム動作
【0241】
2.2.1.サーバ起動処理
【0242】
センタサーバシステム70では、LAN60上に最初に起動したサーバSVがセンタサーバCSVとして動作し、2番目以降に起動したサーバSVはサブサーバSSVとして動作する。
【0243】
図32を参照して、起動時のサーバSV(以下、起動サーバSVと称する)のステップS1〜S6までの動作は図5中と同じである。起動サーバSVはマジックワードをブロードキャストしてLAN60上の他のサーバSVが既に稼働しているか否かを判断する。ブロードキャストして2秒経過した後、サーバリストにサーバ特定情報がない場合(S7)、LAN60上に他のサーバSVが存在していないため、起動サーバSVはセンタサーバCSVとして動作する(S50)。センタサーバCSVの動作については2.2.2.で説明する。
【0244】
一方、ステップS7でサーバリストにサーバ特定情報がある場合、センタサーバCSVは既に稼働しているため、起動サーバSVはサブサーバSSVとして稼働する。このとき、サブサーバSSVはセンタサーバCSVへの接続処理を実行する(S1000)。このときの接続処理は図6中のステップS1000の動作と同じである。またサブサーバSSVが接続処理(S1000)を実行したとき、センタサーバCSVは接続応答処理(図6中のS1020と同じ処理)を行う。
【0245】
センタサーバCSVへの接続処理(S1000)後、サブサーバSSVはセンタサーバCSVに対し、ローカルリスト送信処理を実行し(S11)、センタサーバCSVに自身のローカルリストLLを送信する。ローカルリスト送信処理の詳細は図7と同じである。なお、グローバルリストサーバシステム10でのサーバSVは他の全てのサーバSVに対して接続処理を実行した後に準備OKコマンドをブロードキャストするが、サブサーバSSVはセンタサーバCSVに対して接続処理を実行後に準備OKコマンドをブロードキャストする。
【0246】
以上の動作により、起動サーバSVがサブサーバSSVになる場合、センタサーバCSVに接続し、自身のローカルリストLLをセンタサーバCSVに送信した後、サブサーバSSVの動作を実行する(S65)。サブサーバSSVの動作については2.2.3.で説明する。
【0247】
2.2.2.起動処理後のセンタサーバ動作
【0248】
図33を参照して、センタサーバCSVは、接続動作(S100,S110)、配信動作(S500)、リスト更新動作(S600)を実行し、終了時(S15)、終了動作(S700)を実行する。接続動作(S100,S110)については、グローバルリストサーバシステム10におけるサーバの接続処理動作(1.3.2.1及び1.3.2.2)と同じである。以下、配信動作(S500)、リスト更新動作(S600)、終了動作(S700)について説明する。
【0249】
2.2.2.1.配信動作
【0250】
センタサーバCSVからグローバルリストGLを取得したオーディオクライアントCL2がそのグローバルリストGLからサブサーバSSV2の曲データM21を選択した場合、オーディオクライアントCL2はセンタサーバCSVに曲データ転送要求を送信し、サブサーバSSV2からセンタサーバCSVを経由して曲データM21の配信を受け、再生を行う。以下、詳細を説明する。
【0251】
図34を参照して、初めに、オーディオクライアントCL2はセンタサーバCSVに対して接続処理を実行する(S1000)。これに対しセンタサーバCSVは接続応答処理を実行する(S1020)。この接続処理により、曲データM21を配信するための接続がセンタサーバCSVとオーディオクライアントCL2との間で確立する。なお、このとき、センタサーバCSVは先の接続動作(S110)で確立したオーディオクライアントCL2との接続も維持する。よって、オーディオクライアントCL2はセンタサーバCSVとグローバルリスト受信用の接続と曲データ受信用の接続とを確立したことになる。このように、グローバルリスト受信用のコマンドポートと曲データ転送要求用のコマンドポートとを分けることで、トラフィックの混雑を緩和できる。
【0252】
接続処理後のオーディオクライアントCL2の動作は図11中のオーディオクライアントCL2の動作と同じである。
【0253】
ステップS221でオーディオクライアントCLがセンタサーバCSVに対して曲データM21の曲データ転送要求を送信したとき、センタサーバCSVは曲データ配信処理を実行する(S501)。以下、曲データ配信処理について説明する。
【0254】
図35を参照して、センタサーバCSVはオーディオクライアントCL2から曲データ転送要求を受け(S5011)、要求された曲データがセンタサーバCSV内の曲データか否かを判断する(S5012)。センタサーバCSV内の曲データである場合、センタサーバCSVはその曲データをオーディオクライアントCL2に配信する(S5015)。
【0255】
今、オーディオクライアントCL2は曲データM21を要求しているため(S5012)、センタサーバCSVは曲データM21を蓄積するサブサーバSSV2から曲データM21を取得し、オーディオクライアントCL2に配信する。初めにセンタサーバCSVはサブサーバSSV2に対して接続処理を実行する(S1000)。これに対し、サブサーバSSV2は接続応答処理を実行し(S1020)、サーバ間で曲データ転送要求用の接続を確立する。トラフィックの混雑の緩和のためにローカルリスト取得用の接続とともに曲データ転送用の接続を確立する。接続を確立後、センタサーバCSVは曲データ中継処理を実行する(S502)。具体的には、センタサーバCSVはサブサーバSSV2に対して曲データM21の曲データ転送要求を送信する(5013)。サブサーバSSV2は曲データ転送要求を受け、曲データ転送要求内の取得開始アドレス及びデータ長に基づいて曲データM21をセンタサーバCSVに配信する(S5014)。センタサーバCSVはサブサーバSSV2から配信された曲データM21をオーディオクライアントCL2に配信する(S5015)。
【0256】
以上の動作によりS501においてセンタサーバCSVはオーディオクライアントCL2に曲データM21を配信する。
【0257】
なお、オーディオクライアントCL2がステップS224で曲再生を開始した後、ステップS226の曲データ転送要求を受けたセンタサーバCSVは曲データ中継処理を実行し(S502)、曲データM21の配信を継続する。
【0258】
以上の動作により、センタサーバCSVがサブサーバSSV2とオーディオクライアントCL2との間を中継することで、オーディオクライアントCL2は曲データM21を再生できる。
【0259】
なお、クライアントCL2はグローバルリストGLから曲データM21はサブサーバSSV2に蓄積されていることを認識できるため、クライアントCL2が直接サブサーバSSV2に対して配信依頼処理を実行し(S240)、サブサーバSSV2が配信動作(S200)を実行してもよい。この場合の動作は図11と同じである。
【0260】
2.2.2.2.リスト更新処理
【0261】
センタサーバシステム70では、グローバルリストGLを作成するのはセンタサーバCSVのみである。そのため、センタサーバCSVが新たな曲データを登録した場合、センタサーバCSVはLAN60上の複数のサブサーバSSVにリスト更新通知を送信する必要はなく、オーディオクライアントCLに対してのみリスト更新通知を行う。また、サブサーバSSVからのリスト更新通知に対するセンタサーバCSVの動作は図19のサーバSV2の動作と同じである。また、サブサーバSSVの離脱時のセンタサーバCSVの動作は図20のサーバSV1の動作と同じである。以下、センタサーバCSVが新たな曲データM31を登録した場合のセンタサーバCSVのリスト更新動作について説明する。
【0262】
2.2.2.2.1.自己のサーバがリストを更新した場合
【0263】
図36を参照して、曲データM31が更新された場合、センタサーバCSVはローカルリストLL3を更新し(S601)、既存のプレゼンテーションコンテンツリストPLを削除する(S602)。その後、新たなプレゼンテーションコンテンツリストPLを作成し(S603)、リスト更新通知処理を実行する(S320)。リスト更新通知処理はLAN60上の複数のオーディオクライアントCLに対して行われる。
【0264】
2.2.2.3.終了動作
【0265】
[クライアントCLが再生中でない場合のセンタサーバの終了動作]
【0266】
図37を参照して、ステップS401からオーディオクライアントCLが再生中でない場合(図37におけるクライアントCL2の場合)のセンタサーバCSVの終了動作(S403、S405、S335、S431、S432、S1000,S1020)については図21と同じである。
【0267】
[サブサーバの曲データを配信中のセンタサーバの終了動作]
【0268】
オーディオクライアントCL1が曲データを再生中の場合(S403)、センタサーバCSVはオーディオクライアントCL1が再生中の曲データがセンタサーバCSV自身が蓄積する曲データであるか否かを判断する(S701)。判断の結果、センタサーバCSVが蓄積する曲データでない場合、たとえば、オーディオクライアントCL1が曲データM21を再生していた場合、センタサーバCSVは曲データM21の中継処理を行っていることになる。このとき、センタサーバCSVは取得開始アドレスを算出する(S405)。取得開始アドレスはセンタサーバCSVがサブサーバSSV2から既に取得した曲データ長に基づいて算出される。算出された取得開始アドレスは再生要求コマンド内に含まれ、オーディオクライアントCL1に送信される(S406)。なお、再生要求コマンド内には、センタサーバCSVの引継サーバSVのサーバ特定情報も含まれる。センタサーバCSVは自身が蓄積するサーバリスト内のサーバID=1のサブサーバSSVを引継サーバSVとする。サーバID=1がサブサーバSSV1の場合、サブサーバSSV1はセンタサーバCSVから離脱通知を受けたときに引継命令も受け、センタサーバCSVとして動作する。
【0269】
再生コマンドを送信後、センタサーバCSVはカウント値nをカウントアップしてステップS402に戻る。
【0270】
オーディオクライアントCL1はセンタサーバCSVから再生コマンドを受信後(S421)、センタサーバCSVとの接続を切断する(S422)。切断後、引継サーバSV(サブサーバSSV1)に対してクライアント接続依頼処理(S120)を実行し、引継サーバSVは接続動作(S100)を実行することで、オーディオクライアントCL1は引継サーバSVに対して接続を確立する。その後、オーディオクライアントCL1は配信依頼動作(S240)を実行する。このとき、オーディオクライアントCL1はステップS421で受信した取得開始アドレスをパラメータに曲データ転送要求を行う。引継サーバSVは曲データ転送要求内の取得開始アドレスに基づいて、配信動作を実行する(S500)。以上の動作によりオーディオクライアントCL1は曲データM21の続きを引継サーバSVから取得でき、曲データM21の再生を継続できる。
【0271】
[自己の曲データを配信中のセンタサーバの終了動作]
【0272】
ステップS701での判断の結果、オーディオクライアントCL1で曲データM31が再生されている場合、センタサーバCSVは自身が蓄積する曲データM31を引継サーバSVへ送信する必要がある。そのため、センタサーバCSVは曲データ引継処理を実行する(S404)。また、引継サーバSVは曲データ引受処理を実行する(S411)。曲データ引継処理後、センタサーバCSVはステップS405へ進む。
【0273】
ステップS406で再生コマンドを送信後、センタサーバCSVはカウント値nをカウントアップし(S407)、再びステップS402に戻って動作を繰り返す。これにより、センタサーバCSVに接続されている全てのオーディオクライアントCLに対して終了動作を実行できる。全てのオーディオクライアントCLに対して終了動作を実行後、すなわち、カウント値nがクライアント接続数を超えたとき、(S402)、センタサーバCSVは複数のサブサーバSSVに離脱通知を送信し(S335)、その動作を終了する。
なお、センタサーバCSVは離脱通知を他のサブサーバSSVに送信するとき、引継サーバに対しては引継命令も送信する。
【0274】
2.2.3.起動処理後のサブサーバ動作
【0275】
センタサーバシステム70ではオーディオクライアントCLへのグローバルリストGLの送信及び曲データMの送信はすべてセンタサーバCSVが行う。そのため、センタサーバCSVでは接続動作(S100)やリスト更新動作(S500)を行うことで、サブサーバSSVから更新されたローカルリストLLを取得し、オーディオクライアントCLに最新のグローバルリストGLを配信する。一方、サブサーバSSVも図38に示すように、接続動作(S650)とリスト更新動作(S550)を行う。サブサーバSSVはオーディオクライアントCLに対してグローバルリストGLを配信しないが、センタサーバCSVが動作終了(S700)を実行するとき、センタサーバCSVに一番初めに接続したサブサーバSSVがセンタサーバCSVから引継命令を受ける。つまり、サブサーバSSVはセンタサーバCSVに変わる場合がある。そのため、サブサーバSSVは自分が起動処理を行った後に起動したサブサーバSSVのローカルリストLLを取得しておき、センタサーバCSVから引継命令を受けたときセンタサーバとして機能できるように準備する。
【0276】
ステップS650の接続動作及びステップS550のリスト更新処理を実行後、サブサーバSSVはセンタサーバCSVから引継命令を受けたか否かを判断する(S21)。引継命令を受けた場合、サブサーバSSVはセンタサーバCSVとしてセンタサーバの動作を実行する(S50)。一方、引継命令を受けなくても、サブサーバSSV自身に対して接続されたサーバ(センタサーバCSV及び他のサブサーバSSV)が存在しない場合もそのサブサーバSSVはセンタサーバCSVとしてセンタサーバの動作を実行する。当該サブサーバSSV自身に対して接続されたサーバSVが存在するか否かはサーバリストに基づいて判断される。
【0277】
サブサーバSSVが動作を終了する場合であって(S23)、かつ、サブサーバSSVがセンタサーバCSVに曲データMを配信していないときは(S24)、離脱通知を送信した後(S335)、動作を終了する。一方、センタサーバCSVに曲データMを配信している場合、その曲データMの引き継ぎをセンタサーバCSVにした後(S750)、動作を終了する。
【0278】
以下、接続動作(S650)、リスト更新動作(S550)、終了動作(S750)について説明する。
【0279】
2.2.3.1.接続動作
【0280】
図39を参照して、稼働中のサブサーバSSV1がサーバ探索のマジックワードを受信したとき(S651)、サブサーバSSV1は応答しない、又は、自身がサブサーバSSVである旨の応答を行う(S652)。これによりオーディオクライアントCLはサブサーバSSVには接続できない。
【0281】
次に、マジックワードをブロードキャストしたのが起動サーバSVであるかクライアントCLであるか判断する(S653)。サブサーバSSVは起動サーバSV(他のサブサーバSSV)から探索用のマジックワードを受けるポートと、オーディオクライアントCLから探索用のマジックワードを受けるポートとを分けているため、ステップS653の判断ができる。なお、起動サーバSVとオーディオクライアントCLの探索用のマジックワードが異なっていることで、サブサーバSSVがS653の判断ができるようにしてもよい。
【0282】
ステップS653での判断の結果、ブロードキャストしたのがオーディオクライアントCLである場合、サブサーバSSV1は接続動作を終了する。一方、判断の結果、ブロードキャストしたのが起動サーバSV(サブサーバSSV2とする)である場合、サブサーバSSV2はサブサーバSSV1よりも後で起動したことになる。このとき、サブサーバSSV1は自分より後に起動したサブサーバSSV2のサーバ特定情報をサーバリストに登録する(S654)。サーバ特定情報はマジックワードとともにブロードキャストされる。
【0283】
続いて、サブサーバSSV1はローカルリストLL2を取得するため、サブサーバSSV2に対して接続処理(S1000)を実行する。起動サーバSVであるサブサーバSSV2がセンタサーバCSVとの接続処理を実施中(つまり、起動処理中)の場合、サブサーバSSV1がサブサーバSSV2に接続処理(S1000)を実行しても接続は失敗する。この場合、サブサーバSSV1はサブサーバSSV2から準備OKコマンドを受けた後(S656)、再び接続処理を実行する(S1000)。接続に成功した場合(S655)、サブサーバSSV1は接続したサブサーバSSV2からローカルリストLL2を取得し、HDD14に格納する(S1010)。
【0284】
以上の動作により、サブサーバSSVは自身が起動した後に起動したサブサーバSSVのローカルリストLLを全て取得し、HDD14内に蓄積する。引継指令を受けた等によりセンタサーバCSVとなったときに、取得したローカルリストLLからグローバルリストGLを作成し、複数のオーディオクライアントCLに送信する必要があるからである。なお、サブサーバSSVは自身が起動する前に既に起動していたサーバSV(センタサーバCSV又はサブサーバSSV)のローカルリストLLは取得しない。センタサーバシステム70ではセンタサーバCSVが引き継がれるとき、起動したサーバSV順に引き継がれる。よって、あるサブサーバSSVがセンタサーバCSVになるときは、そのサブサーバSSV以前に起動したサーバSVはすべてLAN60から離脱している。そのため、自身の起動前に既に起動しているサーバSVのローカルリストLLは取得しなくてよい。
【0285】
2.2.3.2.リスト更新動作
【0286】
2.2.3.2.1.自己のローカルリストが更新された場合
【0287】
サブサーバSSVは自己の曲データを更新したとき、リスト更新通知をセンタサーバCSVと自分よりも先に起動したサブサーバSSVに送信する。
【0288】
図40を参照して、サブサーバSSV1が自己の曲データを更新したとき、サブサーバSSV1はローカルリストLL1を更新する(S551)。次に、サブサーバSSV1は既存のプレゼンテーションコンテンツリストPLを削除する(S552)。サブサーバSSV1のプレゼンテーションコンテンツリストPLには、サブサーバSSV1自身のローカルリストLL1の格納場所及びサブサーバSSV1の起動後に起動した他のサブサーバSSVのローカルリストLLの格納場所が記録される。プレゼンテーションコンテンツリストPLを削除後、サブサーバSSV1は更新されたローカルリストLL1に基づいて、新たなプレゼンテーションコンテンツリストPLを作成する(S553)。プレゼンテーションコンテンツリストを作成するのは、自身がセンタサーバCSVとなったときに必要だからである。プレゼンテーションコンテンツリストPLを作成後、サブサーバSSV1はリスト更新通知を送信する(S554)。リスト更新通知は、サブサーバSSV1内のクライアントリストに登録された複数のサーバSVに対して送信される。サーバリストに登録されたサーバSVとは、サブサーバSSV1よりも先に起動したサーバSV(センタサーバCSV及びサブサーバSSV)である。
【0289】
2.2.3.2.2.他のサーバのローカルリストが更新された場合
【0290】
サブサーバSSV1は自分より後に起動したサブサーバSSVからリスト更新通知を受ける。図41を参照して、サブサーバSSV1、SSV2の順に起動したセンタサーバシステム70において、サブサーバSSV2が新たな曲データを登録したとき、サブサーバSSV2は自身より先に起動したセンタサーバCSV及びサブサーバSSV1に対してリスト更新通知を送信する(S555)。サブサーバSSV1はリスト更新通知を受信後(S556)、既存のプレゼンテーションコンテンツリストPLを削除する(S557)。続いて、サブサーバSSV1はサブサーバSSV2のローカルリストLL2を削除する(S558)。ローカルリストLL2を削除後、サブサーバSSV1はサブサーバSSV2に対して更新されたローカルリストLL2の転送要求コマンドを送信する(S559)。サブサーバSSV2は転送要求コマンドを受信後(S560)、更新されたローカルリストLL2をサブサーバSSV1に送信する(S561)。サブサーバSSV1は更新されたローカルリストLL2を受信後(S562)、プレゼンテーションコンテンツリストPLを作成する(S563)。
【0291】
以上の動作により、サブサーバSSV1はセンタサーバCSVから引継命令を受けて、自身がセンタサーバCSVとして動作することになっても、最新のグローバルリストGLをクライアントCLに送信できる。
【0292】
2.2.3.2.3.他のサーバが離脱した場合
【0293】
図42を参照して、サブサーバSSV1、SSV2の順に起動したセンタサーバシステム70において、サブサーバSSV2が動作を終了し、LAN60から離脱するとき、サブサーバSSV2は自身より先に起動したサーバSVに対して離脱通知を送信する(S564)。離脱通知は、サブサーバSSV2内のクライアントリストに登録された全てのサーバSVに対して送信される。サブサーバSSV1は離脱通知を受けた後(S565)、既存のプレゼンテーションコンテンツリストPLを削除する(S566)。その後、HDD14に登録したローカルリストLL2を削除する(S567)。ローカルリストLL2を削除後、サブサーバSSV1はプレゼンテーションコンテンツリストPLを作成する(S568)。
【0294】
2.2.3.3.終了動作
【0295】
図43を参照して、サブサーバSSV1が動作を終了するとき、サブサーバSSV1はセンタサーバCSVに対して自身が蓄積する曲データを配信中であるか否か判断する(S751)。曲データを配信していない場合、サブサーバSSV1はサブサーバSSV1より前に起動したサーバSVに対して離脱通知を送信後(S757)、動作を終了する。一方、曲データM11を配信中である場合、サブサーバSSV1は曲データM11の登録要求コマンドをセンタサーバCSVに送信する(S752)。センタサーバCSVは要求コマンドを受け、HDD14内に新規曲IDを登録する(S753)。登録後、センタサーバCSVは新規曲IDをサブサーバSSV1に送信する(S754)。サブサーバSSV1は新規曲IDを受け、曲データM11に新規曲IDを付与してセンタサーバCSVに送信する(S755)。送信後、サブサーバSSV1は離脱通知を送信して(S757)、動作を終了する。センタサーバCSVは曲データM11を受信し、HDD14内の新規曲IDが付与された曲データを格納する場所に曲データM11を登録する(S756)。
【0296】
以上の動作により、サブサーバSSV1が自身の曲データMを配信中の場合であっても、LAN60上から離脱できる。
【0297】
2.3.コントローラを含むセンタサーバシステム
【0298】
上記で説明したセンタサーバシステム70は、図44に示すようにコントローラCNを備えてもよい。コントローラCNはセンタサーバSVと接続し、サーバSVを介してオーディオクライアントCLを制御する。コントローラCNの構成は図25と同じである。コントローラCNはコントローラ用サーバリスト及びグローバルリストを持つ。なお、図44では1つのコントローラCNを示したが、複数あってもよい。
【0299】
コントローラCNがオーディオクライアントCL2に曲データM21に基づく曲を再生させる場合、コントローラCNはオーディオクライアントCL2に再生コマンドを送信する。具体的には、コントローラCNはセンタサーバCSVを介してオーディオクライアントCL2に再生コマンドを送信する(1)。再生コマンドを受けたオーディオクライアントCL2の動作は図31中の(B)及び(C)と同じである。
【0300】
2.3.1.システム動作
【0301】
コントローラCNは、センタサーバCSVと接続し、ハンドル取得処理を実行する。ハンドル取得処理は図27と同じである。図27におけるサーバSV2の動作をセンタサーバCSVが実行する。センタサーバシステム70の全てのオーディオクライアントCL1〜CL3はセンタサーバCSVと接続されている。そのため、コントローラCNはセンタサーバCSVに対してハンドル取得処理を実行すれば、オーディオクライアントCL1〜CL3の監視ハンドル及び制御ハンドルを取得できる。
【0302】
また、グローバルリストGLの取得動作及び更新動作は1.4.3.2.と同じである。ただし、グローバルリストGLを送信するサーバはセンタサーバCSVである。
【0303】
監視ハンドルを取得したコントローラCNは、オーディオクライアントCLを監視できる。コントローラCNの監視動作は図28と同じである。センタサーバシステム70では、図28中のサーバSV2の動作をセンタサーバCSVが実行する。
【0304】
また、制御ハンドルを取得したコントローラCNは、オーディオクライアントCLを制御できる。図45を参照して、コントローラCNは再生コマンドをセンタサーバCSVに送信する(S7603)。サーバSV2はコントローラCNから送信された再生コマンドをオーディオクライアントCL2に送信する(S7604)。
【0305】
再生コマンドを受けたオーディオクライアントCL2は曲データを取得して再生するために、配信依頼処理を実行する(S240)。このときセンタサーバCSVは配信動作を実行する(S500)。
【0306】
以上の動作により、コントローラCNは制御ハンドルを取得したオーディオクライアントCLに対して、再生や再生停止を指示できる。すなわち、オーディオクライアントを制御できる。
【0307】
3.他の実施の形態
【0308】
3.1.ファイル共有サーバシステム
【0309】
ファイル共有サーバシステムは、SMB(Server Message Block)やCIFS(Common Internet File System)といったファイル共有プロトコルを利用する。図46(A)を参照して、サーバSV2は自身が蓄積する曲データM21〜M2nのリストと、サーバSV1及びサーバSV3が蓄積する曲データM11〜M1n,M31〜M3nのリストとを有する。つまり、サーバSV2はサーバSV1及びサーバSV3が蓄積するファイルを共有できる。サーバSV2はクライアントCL2からのリスト要求に応じて、リストをクライアントCL2に提供する。クライアントCL2はリストに基づいて所望の曲データM31を要求する。図46(B)を参照して、サーバSV2は要求を受け、サーバSV3内の曲データM31を取得して、クライアントCL2に配信する。
【0310】
ファイル共有サーバシステムでは、サーバSV1及びサーバSV3は単なる曲データを蓄積する装置として機能する。そのため、たとえばサーバSV1に新たな曲データを登録しても、サーバSV1はサーバSV2に更新通知を送信しない。
【0311】
なお、サーバSV1及びSV3もサーバSV2と同様に当該他のサーバSVのファイルを共有できてもよい。
【0312】
3.2.ローカルリスト送信システム
【0313】
ローカルリスト送信システムは、オーディオクライアントCLが複数のサーバSVから複数のローカルリストLLを取得することで、LAN上に蓄積された全ての曲データMを選択できるシステムである。
【0314】
図47(A)を参照して、ローカルリスト送信システム30では、各サーバSVは自身が蓄積する曲データのローカルリストLLのみ保有する。オーディオクライアントCL2がローカルリストLLを要求すると(図中(1))、図47(B)に示すように、各サーバSV1〜SV3はオーディオクライアントCL2にローカルリストLL1〜LL3を送信する(図中(2))。オーディオクライアントCL2は全てのローカルリストLL1〜LL3を取得後、それらのリストに基づいて曲を選択する。選択した曲が曲データM31である場合、図47(C)に示すようにオーディオクライアントCL2はサーバSV3に対して曲データM31を要求し(図中(3))、サーバSV3は要求に応じて曲データM31を送信する(図中(4))。
【0315】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【0316】
例えば、センタサーバを引継ぐ際に、クライアントが再生中の曲だけでなく、クラインアントが再生予定である曲を引継サーバに送信してもよい。さらに、センタサーバシステムにおいて、クライアントがサブサーバに直接曲を要求してもよいが、その場合、クライアントはセンタサーバとプッシュポートで接続しておくことにより、センタサーバからリスト更新の通知を直ぐに受けることができる。さらに、センタサーバシステムにおいて、クライアントは起動時にセンタサーバと自動的に接続するようにしてもよい。さらに、センタサーバシステムにおいて、複数のサーバグループが存在し、その各グループにそれぞれセンタサーバが設けられていてもよい。さらに、クライアントがサーバを探索する際に、センタサーバシステムにおいては少なくともセンタサーバがクライアントに応答すればよい。しかし、クライアントがセンタサーバに対応していない場合には、マジックワードの属性(センタサーバに対応していない旨の属性)を判断することにより、サブサーバがクライアントに応答するようにしてもよい。さらに、サーバはクライアントの情報(接続情報、ステータス(再生中、停止中等)、クライアントのタイプ、ボリューム、プロダクトID、ファームウェアID、クライアント名、再生ファイル名および/またはリスト作成用のリスト構築キー)を有しており、グローバルリストサーバシステムにおいては、各サーバが他のサーバが有するクライアント情報を有し、センタサーバシステムにおいては、センタサーバが全サブサーバのクライアント情報を有することもできる。これにより、クライアントの状態を監視するためのコントローラを有するシステムにおいては、コントローラは、1つのサーバ(センタサーバシステムにおいてはセンタサーバ)に接続すれば、全てのクライアントの情報を監視することができる。なお、クライアント情報の共有、更新などの方法はコンテンツリストの共有、更新方法と同じ方法で実現することができる。さらに、コンテンツリストの中にクライアント情報が含まれていてもよい。

【特許請求の範囲】
【請求項1】
複数のサーバと、前記複数のサーバの少なくとも1つに接続可能な1又は複数のクライアントとを備えたネットワークAVシステムであって、
前記サーバの各々は、
複数のコンテンツを蓄積するための蓄積手段を備え、
前記サーバのうち少なくとも1つのサーバはさらに、
前記複数のサーバが蓄積する複数のコンテンツを列挙したグローバルリストを記憶するためのグローバルリスト記憶手段と、
前記クライアントに前記グローバルリストを送信するグローバルリスト送信手段とを備えることを特徴とするネットワークAVシステム。
【請求項2】
請求項1に記載のネットワークAVシステムであって、
前記クライアントは、
前記送信されたグローバルリストの中から選択されたコンテンツを前記サーバに要求するコンテンツ要求手段を備え、
前記サーバのうち少なくとも1つのサーバはさらに、
前記クライアントからの要求に応じて前記選択されたコンテンツを前記クライアントに返信するコンテンツ返信手段を備え、
前記クライアントはさらに、
前記サーバから返信されたコンテンツを再生する再生手段を備えることを特徴とするネットワークAVシステム。
【請求項3】
請求項1に記載のネットワークAVシステムであって、
前記複数のクライアントは、第1のクライアントと第2のクライアントとを含み、
前記第1のクライアントは、
前記送信されたグローバルリストの中から選択されたコンテンツの再生指示を前記サーバを介して前記第2のクライアントに送信する再生指示手段を備え、
前記第2のクライアントは、
前記再生指示に応じて前記選択されたコンテンツを前記サーバに要求するコンテンツ要求手段を備え、
前記サーバのうち少なくとも1つのサーバはさらに、
前記第2のクライアントからの要求に応じて前記選択されたコンテンツを前記第2のクライアントに返信するコンテンツ返信手段を備え、
前記第2のクライアントはさらに、
前記サーバから返信されたコンテンツを再生する再生手段を備えることを特徴とするネットワークAVシステム。
【請求項4】
複数のサーバと、前記複数のサーバの少なくとも1つと接続可能な1又は複数のクライアントとを備えたネットワークAVシステムであって、
前記サーバの各々は、
複数のコンテンツを蓄積するための蓄積手段と、
前記複数のサーバが蓄積する複数のコンテンツを列挙したグローバルリストを記憶するためのグローバルリスト記憶手段と、
前記クライアントに前記グローバルリストを送信するグローバルリスト送信手段とを備えることを特徴とするネットワークAVシステム。
【請求項5】
請求項4に記載のネットワークAVシステムであって、
前記クライアントは、
前記送信されたグローバルリストの中から選択されたコンテンツを前記サーバに要求するコンテンツ要求手段を備え、
前記サーバの各々はさらに、
前記クライアントからの要求に応じて前記選択されたコンテンツを前記クライアントに返信するコンテンツ返信手段を備え、
前記クライアントはさらに、
前記返信されたコンテンツを再生する再生手段を備えることを特徴とするネットワークAVシステム。
【請求項6】
請求項5に記載のネットワークAVシステムであって、
前記グローバルリストは、前記複数のコンテンツに対応して前記複数のコンテンツが蓄積された複数のサーバのアドレスを含み、
前記コンテンツ要求手段は、前記サーバのアドレスに基づいて、前記選択されたコンテンツを要求することを特徴とするネットワークAVシステム。
【請求項7】
請求項4〜請求項6のいずれか1項に記載のネットワークAVシステムであって、
前記サーバの各々はさらに、
自己が蓄積するコンテンツを列挙したローカルリストを記憶するためのローカルリスト記憶手段と、
前記ローカルリストを当該他のサーバに送信するローカルリスト送信手段と、
前記自己のローカルリストと当該他のサーバから送信されたローカルリストとに基づいて前記グローバルリストを更新するグローバルリスト更新手段とを備えることを特徴とするネットワークAVシステム。
【請求項8】
請求項7に記載のネットワークAVシステムであって、
前記ローカルリスト送信手段は、
自己のローカルリストが更新されるごとに前記他のサーバに前記更新されたローカルリストを送信し、
前記グローバルリスト更新手段は、自己のローカルリストが更新されるごとに、又は前記更新されたローカルリストを受信するごとに前記グローバルリストを更新することを特徴とするネットワークAVシステム。
【請求項9】
請求項7又は請求項8に記載のネットワークAVシステムであって、
前記サーバの各々はさらに、
自身が前記ネットワークAVシステムから離脱する前に、当該他のサーバに離脱通知を送信する離脱通知手段を備え、
前記グローバルリスト更新手段は、前記離脱通知に応じて、前記離脱通知を送信したサーバのローカルリストを削除するよう前記グローバルリストを更新することを特徴とするネットワークAVシステム。
【請求項10】
請求項7〜請求項9のいずれか1項に記載のネットワークAVシステムであって、
前記グローバルリスト送信手段は、前記グローバルリスト更新手段が前記グローバルリストを更新するごとに前記更新されたグローバルリストを前記クライアントに送信することを特徴とするネットワークAVシステム。
【請求項11】
請求項4〜請求項10のいずれか1項に記載のネットワークAVシステムであって、
前記サーバの各々は、
自己と当該他のサーバとの間でコマンドを送受信するためのコマンドポートで接続を確立する手段と、
当該他のサーバから前記サーバに要求を強制的に送信するためのプッシュポートで接続を確立する手段とを備えることを特徴とするネットワークAVシステム。
【請求項12】
請求項5〜請求項11のいずれか1項に記載のネットワークAVシステムであって、
前記クライアントは、
前記サーバから前記グローバルリストを取得するための第1のコマンドポートで接続を確立する手段と、
前記サーバから前記選択されたコンテンツを取得するための第2のコマンドポートで接続を確立する手段とを備えることをネットワークAVシステム。
【請求項13】
請求項5に記載のネットワークAVシステムであって、
前記サーバの各々はさらに、
前記コンテンツ返信手段で前記選択されたコンテンツを返信中にサーバ動作を終了する場合、前記選択されたコンテンツの返信の続きを引き継ぐ引継サーバに接続するよう前記クライアントに指令する引継通知手段を備えることを特徴とするネットワークAVシステム。
【請求項14】
請求項5に記載のネットワークAVシステムであって、
前記サーバの各々はさらに、
前記コンテンツ返信手段で前記選択されたコンテンツを返信中にサーバ動作を終了する場合、前記選択されたコンテンツの返信の続きを引き継ぐ引継サーバを当該他のサーバから選択する引継サーバ選択手段と、
前記引継サーバに前記選択されたコンテンツを送信する手段とを備え、
前記選択されたコンテンツを再生中のクライアントのコンテンツ要求手段は、前記引継サーバに対して前記選択されたコンテンツの返信の続きを要求することを特徴とするネットワークAVシステム。
【請求項15】
請求項13に記載のネットワークAVシステムであって、
前記サーバの各々はさらに、
前記クライアントに既に返信したコンテンツのデータ長を算出する算出手段と、
前記算出されたデータ長に基づいて、前記クライアントが前記引継サーバから取得しようとする前記コンテンツが格納されているアドレスを示す取得開始アドレスを決定する手段とを備え、
前記引継通知手段は、前記クライアントに前記取得開始アドレスを通知することを特徴とするネットワークAVシステム。
【請求項16】
請求項14に記載のネットワークAVシステムであって、
前記サーバの各々は、
自己と接続している当該他のサーバの情報を含むサーバリストを記憶するためのサーバリスト記憶手段を備え、
前記引継サーバ選択手段は、前記サーバリストに基づいて前記引継サーバを選択することを特徴とするネットワークAVシステム。
【請求項17】
請求項16に記載のネットワークAVシステムであって、
前記引継サーバ選択手段は、前記サーバリストに記憶されたサーバのうち最初に自己と接続したサーバを引継サーバに選択することを特徴とするネットワークAVシステム。
【請求項18】
請求項4に記載のネットワークAVシステムであって、
前記複数のクライアントは、第1のクライアントと第2のクライアントとを含み、
前記第1のクライアントは、前記送信されたグローバルリストの中から選択されたコンテンツの再生指示を前記サーバを介して前記第2のクライアントに送信する再生指示手段を備え、
前記第2のクライアントは、前記再生指示に応じて前記選択されたコンテンツを前記サーバに要求するコンテンツ要求手段を備え、
前記サーバの各々はさらに、
前記第2のクライアントからの要求に応じて前記選択されたコンテンツを前記第2のクライアントに返信するコンテンツ返信手段を備え、
前記第2のクライアントはさらに、
前記サーバから返信されたコンテンツを再生する再生手段を備えることを特徴とするネットワークAVシステム。
【請求項19】
請求項18に記載のネットワークAVシステムであって、
前記第1のクライアントは、前記第2のクライアントと接続しているサーバの情報を含むサーバリストを記憶するためのサーバリスト記憶手段を備え、
前記再生指示手段は前記サーバリストに基づいて、前記第2のクライアントが接続しているサーバを介して前記第2のクライアントに再生指示を送信することを特徴とするネットワークAVシステム。
【請求項20】
センタサーバと、サブサーバと、前記センタサーバ及び/又はサブサーバに接続可能な1又は複数のクライアントとを備えたネットワークAVシステムであって、
前記センタサーバ及びサブサーバの各々は、
複数のコンテンツを蓄積するための蓄積手段を備え、
前記センタサーバはさらに、
前記センタサーバ及び前記サブサーバが蓄積する複数のコンテンツを列挙したグローバルリストを記憶するためのグローバルリスト記憶手段と、
前記グローバルリストを前記クライアントに送信するグローバルリスト送信手段とを備えることを特徴とするネットワークAVシステム。
【請求項21】
請求項20に記載のネットワークAVシステムであって、
前記クライアントは、
前記送信されたグローバルリストの中から選択されたコンテンツを前記センタサーバ又は前記サブサーバに要求するコンテンツ要求手段を備え、
前記センタサーバ又は前記サブサーバの少なくとも1つはさらに、
前記クライアントからの要求に応じて前記選択されたコンテンツを前記クライアントに返信するコンテンツ返信手段を備え、
前記クライアントはさらに、
前記センタサーバ又は前記サブサーバから返信されたコンテンツを再生する再生手段とを備えることを特徴とするネットワークAVシステム。
【請求項22】
請求項21に記載のネットワークAVシステムであって、
前記コンテンツ要求手段は、前記選択されたコンテンツを前記センタサーバに要求し、
前記センタサーバは、前記コンテンツ返信手段を備え、
前記センタサーバはさらに、
前記クライアントからの要求に応じて前記グローバルリストに基づいて前記選択されたコンテンツを蓄積するサーバを特定するサーバ特定手段と、
前記特定されたサーバがセンタサーバの場合、自己の前記蓄積手段から前記選択されたコンテンツを取得し、前記特定されたサーバがサブサーバの場合、そのサブサーバの蓄積手段から前記選択されたコンテンツを取得するコンテンツ取得手段とを備え、
前記コンテンツ返信手段は、前記コンテンツ取得手段により取得されたコンテンツを前記クライアントに返信することを特徴とするネットワークAVシステム。
【請求項23】
請求項22に記載のネットワークAVシステムであって、
前記グローバルリストは前記複数のコンテンツに対応して前記複数のコンテンツが蓄積された複数のサーバのアドレスを含み、
前記サーバ特定手段は、前記コンテンツ要求手段により要求されたコンテンツを蓄積した前記サーバのアドレスを特定することを特徴とするネットワークAVシステム。
【請求項24】
請求項21に記載のネットワークAVシステムであって、
前記グローバルリストは複数のコンテンツに対応して前記コンテンツが蓄積された複数のサーバのアドレスを含み、
前記コンテンツ要求手段は、前記選択されたコンテンツを、前記グローバルリストに基づいて特定したサブサーバに要求することを特徴とするネットワークAVシステム。
【請求項25】
請求項20〜請求項24のいずれか1項に記載のネットワークAVシステムであって、
前記センタサーバ及びサブサーバの各々はさらに、
自己が蓄積するコンテンツを列挙したローカルリストを記憶するためのローカルリストリスト記憶手段を備え、
前記サブサーバはさらに、
前記ローカルリストを前記センタサーバに送信するローカルリスト送信手段を備え、
前記センタサーバはさらに、
前記自己のローカルリストと前記サブサーバから送信されたローカルリストとに基づいて、前記グローバルリストを更新するグローバルリスト更新手段とを備えることを特徴とするネットワークAVシステム。
【請求項26】
請求項25に記載のネットワークAVシステムであって、
前記ローカルリスト送信手段は、自己のローカルリストが更新されるごとに前記センタサーバに更新されたローカルリストを送信し、
前記グローバルリスト更新手段は、自己のローカルリストが更新されるごとに、又は前記更新されたローカルリストを受信するごとに、前記グローバルリストを更新することを特徴とするネットワークAVシステム。
【請求項27】
請求項25又は請求項26に記載のネットワークAVシステムであって、
前記サブサーバはさらに、
自身が前記ネットワークAVシステムから離脱する前に、前記センタサーバに離脱通知を送信する離脱通知手段を備え、
前記グローバルリスト更新手段は、前記離脱通知に応じて、前記離脱通知を送信したサーバのローカルリストを削除するよう前記グローバルリストを更新することを特徴とするネットワークAVシステム。
【請求項28】
請求項25〜請求項27のいずれか1項に記載のネットワーAVシステムであって、
前記グローバルリスト送信手段は、前記グローバルリスト更新手段が前記グローバルリストを更新するごとに前記更新されたグローバルリストを前記クライアントに送信することを特徴とするネットワークAVシステム。
【請求項29】
請求項20〜請求項28のいずれか1項に記載のネットワークAVシステムであって、
前記センタサーバは、
前記センタサーバと前記サブサーバとの間でコマンドを送受信するためのコマンドポートで接続を確立するための手段と、
前記サブサーバから前記センタサーバに要求を強制的に送信するためのプッシュポートで接続を確立するための手段とを備えることを特徴とするネットワークAVシステム。
【請求項30】
請求項22に記載のネットワークAVシステムであって、
前記センタサーバ及びサブサーバの各々はさらに、
自己が蓄積するコンテンツを列挙したローカルリストを記憶するためのローカルリスト記憶手段を備え、
前記センタサーバは、
前記サブサーバから前記ローカルリストを取得するための第1のコマンドポートで接続を確立する手段と、
前記第1のコマンドポートで接続を確立後、前記サブサーバのローカルリストを取得する手段と、
前記取得したローカルリストと自己のローカルリストとに基づいて前記グローバルリストを更新する手段と、
前記サーバ特定手段により特定されたサブサーバから前記選択されたコンテンツを取得するための第2のコマンドポートで接続を確立する手段とを備えることをネットワークAVシステム。
【請求項31】
請求項21〜請求項24のいずれか1項に記載のネットワークAVシステムであって、
前記クライアントは、
前記センタサーバから前記グローバルリストを取得するための第1のコマンドポートで接続を確立する手段と、
前記センタサーバから前記選択されたコンテンツを取得するための第2のコマンドポートで接続を確立する手段とを備えることを特徴とするネットワークAVシステム。
【請求項32】
請求項22〜請求項24のいずれか1項に記載のネットワークAVシステムであって、
前記センタサーバはさらに、
前記センタサーバの動作を終了する場合、前記センタサーバの動作を引継ぐ引継サーバに接続するよう前記クライアントに指令する引継通知手段を備えることを特徴とするネットワークAVシステム。
【請求項33】
請求項22〜請求項24のいずれか1項に記載のネットワークAVシステムであって、
前記センタサーバはさらに、前記引継サーバを前記サブサーバから選択する引継サーバ選択手段と、
前記引継サーバ選択手段により選択されたサブサーバにセンタサーバの動作を引き継ぐように指令するセンタサーバ引継命令手段とを備えることを特徴とするネットワークAVシステム。
【請求項34】
請求項32に記載のネットワークAVシステムであって、
前記センタサーバはさらに、
前記コンテンツ取得手段により取得されたコンテンツを前記クライアントに返信中に動作を終了する場合、前記クライアントに返信したコンテンツのデータ長を算出する算出手段と、
前記算出手段により算出されたデータ長に基づいて、前記クライアントが前記引継サーバから取得しようとする前記コンテンツが格納されているアドレスを示す取得開始アドレスを決定する手段とを備え、
前記引継通知手段は、前記クライアントに前記取得開始アドレスを通知することを特徴とするネットワークAVシステム。
【請求項35】
請求項32〜請求項34のいずれか1項に記載のネットワークAVシステムであって、
前記センタサーバはさらに、
前記コンテンツ返信手段により自己が蓄積するコンテンツを前記クライアントに返信中に動作を終了する場合、前記引継サーバに前記コンテンツを送信する手段を備えることを特徴とするネットワークAVシステム。
【請求項36】
請求項33に記載のネットワークAVシステムであって、
前記センタサーバは、前記サブサーバの識別情報を含むサーバリストを記憶するためのサーバリスト記憶手段を備え、
前記引継サーバ選択手段は、前記サーバリストに基づいて前記引継サーバを選択することを特徴とするネットワークAVシステム。
【請求項37】
請求項20に記載のネットワークAVシステムであって、
前記複数のクライアントは、第1のクライアントと第2のクライアントとを含み、
前記第1のクライアントは、前記送信されたグローバルリストの中から選択されたコンテンツの再生指示を前記センタサーバを介して前記第2のクライアントに送信する再生指示手段を備え、
前記第2のクライアントは、前記再生指示に応じて前記選択されたコンテンツを前記センタサーバ又は前記サブサーバに要求するコンテンツ要求手段を備え、
前記センタサーバ又は前記サブサーバの少なくとも1つはさらに、
前記第2のクライアントからの要求に応じて前記選択されたコンテンツを前記第2のクライアントに返信するコンテンツ返信手段を備え、
前記第2のクライアントはさらに、
前記センタサーバ又はサブサーバから返信されたコンテンツを再生する再生手段を備えることを特徴とするネットワークAVシステム。
【請求項38】
請求項1〜請求項37のいずれか1項に記載のネットワークAVシステムを動作させるネットワークAVシステムの動作方法。
【請求項39】
請求項1〜請求項37のいずれか1項に記載の手段をコンピュータに実現させるためのネットワークAVシステムの動作プログラム。
【請求項40】
請求項1〜請求項37のいずれか1項に記載のネットワークAVシステムにおけるクライアント。
【請求項41】
複数のサーバと、前記複数のサーバの少なくとも1つに接続可能なクライアントとを備えたネットワークAVシステムにおける前記サーバであって、
複数のコンテンツを蓄積するための蓄積手段と、
前記複数のサーバが蓄積する複数のコンテンツを列挙したグローバルリストを記憶するためのグローバルリスト記憶手段と、
前記クライアントに前記グローバルリストを送信するグローバルリスト送信手段と、
前記クライアントが前記グローバルリストの中から選択されたコンテンツを要求したとき前記選択されたコンテンツを前記クライアントに返信するコンテンツ返信手段とを備えることを特徴とするネットワークAVシステムにおけるサーバ。
【請求項42】
請求項41に記載のネットワークAVシステムにおけるサーバであってさらに、
自己が蓄積したコンテンツを列挙したローカルリストを記憶するためのローカルリスト記憶手段と、
自己のローカルリストを当該他のサーバに送信するローカルリスト送信手段と、
前記自己のローカルリストと当該他のサーバから送信されたローカルリストとに基づいて前記グローバルリストを更新するグローバルリスト更新手段とを備えることを特徴とするネットワークAVシステムにおけるサーバ。
【請求項43】
請求項41又は請求項42に記載のネットワークAVシステムにおけるサーバであってさらに、
前記コンテンツ返信手段で前記選択されたコンテンツを返信中にサーバ動作を終了する場合、前記選択されたコンテンツの返信の続きを引き継ぐ引継サーバを当該他のサーバから選択する引継サーバ選択手段と、
前記引継サーバに前記選択されたコンテンツを送信する手段と、
前記引継サーバに接続するように前記クライアントに指令する引継通知手段とを備えることを特徴とするネットワークAVシステムにおけるサーバ。
【請求項44】
請求項41〜請求項43のいずれか1項に記載の手段をコンピュータに実現させるためのネットワークAVシステムにおけるサーバの動作プログラム。
【請求項45】
センタサーバと、複数のコンテンツを蓄積するための蓄積手段を備えたサブサーバと、前記センタサーバ及び/又はサブサーバに接続可能なクライアントとを備えたネットワークAVシステムのセンタサーバであって、
複数のコンテンツを蓄積するための蓄積手段と、
前記センタサーバ及びサブサーバが蓄積する複数のコンテンツを列挙したグローバルリストを記憶するためのグローバルリスト記憶手段と、
前記クライアントが前記グローバルリストの中から選択されたコンテンツを要求したとき前記選択されたコンテンツを蓄積するサーバを前記グローバルリストに基づいて特定するサーバ特定手段と、
前記特定されたサーバがセンタサーバの場合、自己の蓄積手段から前記選択されたコンテンツを取得し、前記特定されたサーバがサブサーバの場合、そのサブサーバの蓄積手段から前記選択されたコンテンツを取得するコンテンツ取得手段と、
前記コンテンツ取得手段により取得されたコンテンツを前記クライアントに返信するコンテンツ返信手段とを備えることを特徴とするネットワークAVシステムにおけるサーバ。
【請求項46】
請求項45に記載のネットワークAVシステムにおけるセンタサーバであって、
前記センタサーバ及びサブサーバの各々はさらに、
自己が蓄積するコンテンツを列挙したローカルリストを記憶するためのローカルリスト記憶手段を備え、
前記センタサーバはさらに、
自己のローカルリストと前記サブサーバから送信されたローカルリストとに基づいて、前記グローバルリストを更新するグローバルリスト更新手段とを備えたことを特徴とするネットワークAVシステムにおけるセンタサーバ。
【請求項47】
請求項45又は請求項46に記載のネットワークAVシステムにおけるセンタサーバであってさらに、
前記センタサーバの動作を終了する場合、前記センタサーバの動作を引き継ぐ引継サーバを前記サブサーバから選択する引継サーバ選択手段と、
前記引継サーバ選択手段により選択されたサブサーバにセンタサーバの動作を引き継ぐように指令するセンタサーバ引継命令手段とを備えることを特徴とするネットワークAVシステムにおけるセンタサーバ。
【請求項48】
請求項45〜請求項47のいずれか1項に記載の手段をコンピュータに実現させるためのネットワークAVシステムにおけるセンタサーバの動作プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate


【国際公開番号】WO2005/015407
【国際公開日】平成17年2月17日(2005.2.17)
【発行日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願番号】特願2005−512894(P2005−512894)
【国際出願番号】PCT/JP2004/006260
【国際出願日】平成16年5月11日(2004.5.11)
【特許番号】特許第3979432号(P3979432)
【特許公報発行日】平成19年9月19日(2007.9.19)
【出願人】(000000273)オンキヨー株式会社 (502)
【Fターム(参考)】