(57)【特許請求の範囲】
【請求項１】
センタサーバと複数のサブサーバとからなる複数のサーバと、クライアントとを備えたネットワークＡＶシステムであって、
前記センタサーバ及びサブサーバの各々は、
複数のコンテンツを蓄積するための蓄積手段と、
自身が起動した後に起動した前記当該他のサーバから、前記当該他のサーバが蓄積する複数のコンテンツを列挙したローカルリストを取得するローカルリスト取得手段と、
自身が蓄積するコンテンツを列挙した自身のローカルリストと、前記当該他のサーバごとのローカルリストとを記憶するためのリスト記憶手段とを備え、
前記センタサーバはさらに、
前記クライアントの要求に応じて、前記複数のローカルリストをまとめたグローバルリストを前記クライアントに送信するグローバルリスト送信手段を備え、
前記クライアントは、
前記センタサーバに前記グローバルリストを要求して取得するグローバルリスト取得手段を備え、
前記センタサーバはさらに、
自身が前記ネットワークＡＶシステムから離脱するとき、自身が起動した後に起動した前記当該他のサーバのうち、一番初めに自身に接続されたサーバに引継命令を送信する送信手段を備え、
前記サブサーバはさらに、前記引継命令を受けたとき、前記センタサーバとして動作することを特徴とするネットワークＡＶシステム。
【請求項２】
請求項１に記載のネットワークＡＶシステムであって、
前記クライアントは、
前記送信されたグローバルリストの中から選択されたコンテンツを前記センタサーバに要求するコンテンツ要求手段を備え、
前記センタサーバはさらに、
前記クライアントからの要求に応じて前記選択されたコンテンツを前記クライアントに返信するコンテンツ返信手段を備え、
前記クライアントはさらに、
前記センタサーバから返信されたコンテンツを再生する再生手段を備えることを特徴とするネットワークＡＶシステム。
【請求項３】
請求項２に記載のネットワークＡＶシステムであって、
前記センタサーバはさらに、
前記クライアントからの要求に応じて前記グローバルリストに基づいて前記選択されたコンテンツを蓄積するサーバを特定するサーバ特定手段と、
前記特定されたサーバがセンタサーバの場合、自己の前記蓄積手段から前記選択されたコンテンツを取得し、前記特定されたサーバがサブサーバの場合、そのサブサーバの蓄積手段から前記選択されたコンテンツを取得するコンテンツ取得手段とを備え、
前記コンテンツ返信手段は、前記コンテンツ取得手段により取得されたコンテンツを前記クライアントに返信することを特徴とするネットワークＡＶシステム。
【請求項４】
請求項３に記載のネットワークＡＶシステムであって、
前記グローバルリストは前記複数のコンテンツに対応して前記複数のコンテンツが蓄積された複数のサーバのアドレスを含み、
前記サーバ特定手段は、前記コンテンツ要求手段により要求されたコンテンツを蓄積した前記サーバのアドレスを特定することを特徴とするネットワークＡＶシステム。
【請求項５】
請求項１に記載のネットワークＡＶシステムであって、
前記グローバルリストは、複数のコンテンツに対応して前記コンテンツが蓄積された複数のサーバの特定情報を含み、
前記クライアントはさらに、
前記送信されたグローバルリストの中から選択されたコンテンツを、前記特定情報に基づいて、前記選択されたコンテンツを蓄積する前記センタサーバ又は前記サブサーバに要求するコンテンツ要求手段を備え、
前記センタサーバ及びサブサーバはさらに、
前記クライアントの要求に応じて、前記選択されたコンテンツを前記クライアントに返信するコンテンツ返信手段を備え、
前記クライアントはさらに、
前記返信されたコンテンツを再生する再生手段を備えることを特徴とするネットワークＡＶシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声及び／又は映像の再生が可能なネットワークＡＶ(Audio/Video)システムに関し、さらに詳しくは、複数のサーバとクライアントとを備えたネットワークＡＶシステムに関する。
【背景技術】
【０００２】
最近、クライアントサーバシステムを利用したネットワークＡＶシステムが提供されている。国際公開第０３／１０２９１９号パンフレット（先行出願１）は、多数のコンテンツを蓄積したサーバと、ＬＡＮ(Local Area Network)経由で接続されたオーディオクライアントとを備えたネットワークＡＶシステムを開示する。オーディオクライアントは所望のコンテンツをサーバに要求し、これに応じてサーバは要求されたコンテンツをオーディオクライアントに配信する。オーディオクライアントはサーバから配信されたコンテンツを再生する。
【０００３】
ネットワークＡＶシステムはサーバが複数あればそれだけ蓄積されるコンテンツを増やすことができる。しかしながら、サーバごとに蓄積されるコンテンツが異なれば、オーディオクライアントは所望のコンテンツがどのサーバに蓄積されているか探さなければならない。オーディオクライアントが所望のコンテンツを見つけるまで、ひとつひとつのサーバに接続するのは煩雑である。
【０００４】
また、サーバがコンテンツをオーディオクライアントに配信中に動作を停止すれば、オーディオクライアントの再生動作は中断してしまう。
【０００５】
また、オーディオクライアントがサーバからコンテンツの配信を受け、再生した後、別のコンテンツの再生をしたい場合、再生をしたいコンテンツを蓄積する当該他のサーバに接続し直す必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の１つの目的は、複数のサーバが複数のコンテンツを蓄積していても、クライアントが所望のコンテンツを容易に見つけることができるネットワークＡＶシステムを提供することである。
【０００７】
本発明のもう１つの目的は、コンテンツを配信中のサーバがその動作を停止しても、クライアントがそのコンテンツを最後まで再生できるネットワークＡＶシステムを提供することである。
【０００８】
本発明のもう１つの目的は、クライアントがサーバを接続し直す必要のないネットワークＡＶシステムを提供することである。
【課題を解決するための手段及び発明の効果】
【００４７】
本発明によるネットワークＡＶシステムは、センタサーバと複数のサブサーバとからなる複数のサーバと、クライアントとを備えたネットワークＡＶシステムであって、
前記センタサーバ及びサブサーバの各々は、複数のコンテンツを蓄積するための蓄積手段と、自身が起動した後に起動した当該他のサーバから、当該他のサーバが蓄積する複数のコンテンツを列挙したローカルリストを取得するローカルリスト取得手段と、自身が蓄積するコンテンツを列挙した自身のローカルリストと、当該他のサーバごとのローカルリストとを記憶するためのリスト記憶手段とを備える。センタサーバはさらに、クライアントの要求に応じて、複数のローカルリストをまとめたグローバルリストをクライアントに送信するグローバルリスト送信手段を備える。クライアントは、センタサーバに前記グローバルリストを要求して取得するグローバルリスト取得手段を備える。センタサーバはさらに、自身が前記ネットワークＡＶシステムから離脱するとき、自身が起動した後に起動した前記当該他のサーバのうち、一番初めに自身に接続されたサーバに引継命令を送信する送信手段を備える。サブサーバはさらに、前記引継命令を受けたとき、前記センタサーバとして動作する。
【００４８】
本発明によるネットワークＡＶシステムでは、センタサーバは、センタサーバ及びサブサーバが蓄積する複数のコンテンツを列挙したグローバルリストをクライアントに送信する。そのため、クライアントはコンテンツが蓄積されたサーバ（センタサーバ及びサブサーバ）ごとにコンテンツのリストを要求する必要がなく、グローバルリストに基づいて所望のコンテンツを容易に見つけることができる。
また、センタサーバはサブサーバの中からセンタサーバの動作を引き継ぐ引継サーバを選択し、引継サーバにセンタサーバの動作を引き継ぐように指令する。その結果、センタサーバが動作を終了しても、他のサーバ（サブサーバ）がセンタサーバとして機能する。
【００４９】
好ましくは、クライアントは、コンテンツ要求手段を備える。コンテンツ要求手段は送信されたグローバルリストの中から選択されたコンテンツをセンタサーバに要求する。センタサーバはさらに、コンテンツ返信手段を備える。コンテンツ返信手段はクライアントからの要求に応じて選択されたコンテンツをクライアントに返信する。クライアントはさらに再生手段を備える。再生手段はセンタサーバから返信されたコンテンツを再生する。
【００５０】
この場合、クライアントは、複数のサーバ（センタサーバ及びサブサーバ）に蓄積された複数のコンテンツの中から所望のコンテンツを容易に選択できる。選択されたコンテンツはセンタサーバからクライアントに送信され、クライアントはそのコンテンツに基づいて音声又は映像を再生できる。
【００５１】
好ましくは、コンテンツ要求手段は、選択されたコンテンツをセンタサーバに要求し、センタサーバは、コンテンツ返信手段を備え、センタサーバはさらに、サーバ特定手段と、コンテンツ取得手段とを備える。サーバ特定手段はクライアントからの要求に応じてグローバルリストに基づいて選択されたコンテンツを蓄積するサーバを特定する。コンテンツ取得手段は、特定されたサーバがセンタサーバの場合、自己の蓄積手段から選択されたコンテンツを取得し、特定されたサーバがサブサーバの場合、そのサブサーバの蓄積手段から選択されたコンテンツを取得する。コンテンツ返信手段は、コンテンツ取得手段により取得されたコンテンツをクライアントに返信する。
【００５２】
この場合、クライアントはセンタサーバに選択されたコンテンツを要求する。センタサーバはクライアントからの要求に応じて選択されたコンテンツを蓄積するサーバ（センタサーバ及びサブサーバ）をグローバルリストに基づいて特定し、特定したサーバからコンテンツを取得し、クライアントに取得したコンテンツを返信する。すなわち、センタサーバはクライアントとサブサーバとの間の中継機能を有する。この結果、クライアントはセンタサーバと接続すれば、グローバルリストもコンテンツも取得できる。
【００５３】
好ましくは、グローバルリストは複数のコンテンツに対応して複数のコンテンツが蓄積された複数のサーバのアドレスを含み、サーバ特定手段は、コンテンツ要求手段により要求されたコンテンツを蓄積したサーバのアドレスを特定する。
【００５４】
この場合、センタサーバはグローバルリストに含まれるサーバのアドレスからコンテンツを蓄積するサーバ（センタサーバ及びサブサーバ）を容易に特定できる。
【００５５】
好ましくは、グローバルリストは、複数のコンテンツに対応してコンテンツが蓄積された複数のサーバの特定情報を含む。クライアントはさらに、送信されたグローバルリストの中から選択されたコンテンツを、特定情報に基づいて、選択されたコンテンツを蓄積するセンタサーバ又はサブサーバに要求するコンテンツ要求手段を備える。センタサーバ及びサブサーバはさらに、クライアントの要求に応じて、選択されたコンテンツをクライアントに返信するコンテンツ返信手段を備える。クライアントはさらに、返信されたコンテンツを再生する再生手段を備える。
【００５６】
この場合、クライアントは選択されたコンテンツを蓄積するサーバ（センタサーバ及びサブサーバ）をグローバルリストから容易に特定できる。その結果、選択されたコンテンツを蓄積するサーバへクライアントが直接コンテンツを要求できる。
【発明を実施するための最良の形態】
【００８３】
以下、本発明の実施の形態を図面を参照して詳しく説明する。図中同一又は相当部分には同一符号を付してその説明を援用する。
【００８４】
［目次］
１．グローバルリストサーバシステム
１．１．概略
１．２．構成
１．２．１．サーバの構成
１．２．２．オーディオクライアントの構成
１．３．システム動作
１．３．１．サーバ起動処理
１．３．２．起動処理後のサーバ動作
１．３．２．１．他のサーバとの接続動作
１．３．２．２．オーディオクライアントとの接続動作
１．３．２．３．配信動作
１．３．２．４．リスト更新動作
１．３．２．４．１．自己のローカルリストが更新された場合
１．３．２．４．２．他のサーバのローカルリストが更新された場合
１．３．２．４．３．他のサーバが離脱した場合
１．３．２．５．終了動作
１．４．コントローラを含むグローバルサーバシステム
１．４．１．概略
１．４．２．構成
１．４．３．システム動作
１．４．３．１．ハンドル取得動作
１．４．３．２．グローバルリスト取得動作及び更新動作
１．４．３．３．監視動作
１．４．３．４．制御動作
２．センタサーバシステム
２．１．概略
２．２．システム動作
２．２．１．サーバ起動処理
２．２．２．起動処理後のセンタサーバ動作
２．２．２．１．配信動作
２．２．２．２．リスト更新動作
２．２．２．２．１自己のローカルリストが更新された場合
２．２．２．３．終了動作
２．２．３．起動処理後のサブサーバ動作
２．２．３．１．接続動作
２．２．３．２．リスト更新動作
２．２．３．２．１．自己のローカルリストが更新された場合
２．２．３．２．２．他のサーバのローカルリストが更新された場合
２．２．３．２．３．他のサーバが離脱した場合
２．２．３．３．終了動作
２．３．コントローラを含むセンタサーバシステム
２．３．１．システム動作
３．他の実施の形態
３．１．ファイル共有サーバシステム
３．２．ローカルリスト送信システム
１．グローバルリストサーバシステム
１．１．概略
図１を参照して、グローバルリストサーバシステム１０は、多数の曲データを蓄積するための複数のサーバＳＶ１〜ＳＶ３と、サーバＳＶ１〜ＳＶ３からの曲データに基づいて音楽を再生するための複数のオーディオクライアントＣＬ１〜ＣＬ３とを備える。
【００８５】
ここではサーバＳＶ１〜ＳＶ３は曲データを蓄積しているが、これに代えて又はこれと共に映像データを蓄積していてもよく、その他、さまざまなデジタルコンテンツを蓄積していてもよい。以下では、曲データを例に説明する。図１では、オーディオクライアントＣＬ１〜ＣＬ３を表示したが、オーディオクライアントＣＬは少なくとも１つ存在すればよい。
【００８６】
これらは、ＬＡＮ（ローカルエリアネットワーク）５０により相互に接続されるが、これに限定されることなく、ＵＳＢ、ＩＥＥＥ１３９４など、コンピュータネットワークを構築するのに適切なものを採用すればよい。ＬＡＮを採用する場合、ＰＣ（パーソナルコンピュータ）で標準的なＴＣＰ／ＩＰプロトコルを採用するのが好ましいが、ＵＤＰプロトコルなどを採用してもよく、プロトコルは特に限定されない。また、この図ではＬＡＮ５０の基幹配線から枝分かれするようにサーバＳＶやオーディオクライアントＣＬが接続されているが、たとえば１０ＢＡＳＥ−Ｔや１００ＢＡＳＥ−ＴＸの場合にはハブを中心にしてスター状に接続される。
【００８７】
サーバＳＶ１のＨＤＤ（ハードディスクドライブ）１４は、複数の曲データＭ１１〜Ｍ１ｎ（ｎは自然数）を含む。サーバＳＶ２のＨＤＤ１４は複数の曲データＭ２１〜Ｍ２ｎ、サーバＳＶ３のＨＤＤ１４は複数の曲データＭ３１〜Ｍ３ｎを含む。
【００８８】
さらに、各サーバＳＶ１〜ＳＶ３のＨＤＤ１４内にはグローバルリストＧＬが蓄積される。グローバルリストＧＬとは、各曲データの曲名、アーティスト、ジャンル等をリスト化したものである。グローバルリストＧＬはＬＡＮ５０に属する複数のサーバＳＶ１〜ＳＶ３が蓄積する曲データＭ１１〜Ｍ１ｎ，Ｍ２１〜Ｍ２ｎ，Ｍ３１〜Ｍ３ｎのリストを備える。曲データＭ１１〜Ｍ１ｎのリストをローカルリストＬＬ１、曲データＭ２１〜Ｍ２ｎのリストをローカルリストＬＬ２、曲データＭ３１〜Ｍ３ｎのリストをローカルリストＬＬ３とすると、サーバＳＶ１〜ＳＶ３のＨＤＤ１４に蓄積されるグローバルリストＧＬはローカルリストＬＬ１〜ＬＬ３を含む。
【００８９】
各サーバＳＶは自己が蓄積する曲データを更新したとき、更新後のローカルリストＬＬ１〜ＬＬ３を当該他のサーバＳＶに送信する。具体的には、サーバＳＶ１に新たな曲データが登録されたとき、サーバＳＶ１はローカルリストＬＬ１を更新する。このとき、サーバＳＶ１は更新されたローカルリストＬＬ１をサーバＳＶ２及びＳＶ３に送信する（図中（１））。サーバＳＶ２及びＳＶ３は更新されたローカルリストＬＬ１を受信し、グローバルリストＧＬ内の更新前のローカルリストＬＬ１と置き換える。同様に、サーバＳＶ２に新たな曲データが登録されたとき、サーバＳＶ２はローカルリストＬＬ２を更新し、更新されたローカルリストＬＬ２をサーバＳＶ１及びＳＶ３に送信する（図中（２））。サーバＳＶ３に新たな曲データが登録されたとき、サーバＳＶ３は更新されたローカルリストＬＬ３をサーバＳＶ１及びＳＶ２に送信する（図中（３））。以上の動作により、各サーバＳＶ内のグローバルリストＧＬは常に最新のローカルリストＬＬ１〜ＬＬ３を含む。
【００９０】
続いて、オーディオクライアントＣＬで曲を再生する場合のグローバルリストサーバシステム１０の動作の概略を説明する。図２（Ａ）を参照して、オーディオクライアントＣＬ２で曲データＭ３１を再生する場合、オーディオクライアントＣＬ２は任意のサーバＳＶに対してグローバルリストＧＬを要求する。図２（Ａ）では、オーディオクライアントＣＬ２はサーバＳＶ２にグローバルリストＧＬを要求するが（図中（４））、サーバＳＶ１に要求しても、サーバＳＶ３に要求してもよい。オーディオクライアントＣＬ２の要求に基づいて、サーバＳＶ２はグローバルリストＧＬを送信する（図中（５））。オーディオクライアントＣＬ２のユーザは送信されたグローバルリストＧＬを参照して、再生したい曲Ｍ３１を選択する。選択後、図２（Ｂ）に示すように、オーディオクライアントＣＬ２はサーバＳＶ３に対して曲データＭ３１の要求を行う（図中（６））。サーバＳＶ３はオーディオクライアントＣＬ２からの要求を受け、該当曲データＭ３１をオーディオクライアントＣＬ２に配信する（図中（７））。
【００９１】
以上の動作により、グローバルリストサーバシステム１０では、オーディオクライアントＣＬはＬＡＮ５０上のいずれかのサーバＳＶからグローバルリストＧＬを一度取得すれば、複数のサーバＳＶに蓄積されたいずれの曲でも選択できる。よって、オーディオクライアントＣＬは、ＬＡＮ上の複数のサーバＳＶに蓄積された曲データＭを選択するために、ローカルリストＬＬをサーバＳＶごとにいちいち要求する必要はない。
【００９２】
１．２．構成
１．２．１．サーバの構成
図３を参照して、サーバＳＶ１は、圧縮デジタル曲データを蓄積するためのＨＤＤ（ハードディスクドライブ）１４と、データベース管理部１６及びネットワークプロトコル処理部１８を含むＣＰＵ処理部２０と、本サーバＳＶ１とＬＡＮ５０との間で信号を送受信するＬＡＮコントローラ２２とを備える。ＨＤＤ１４は曲データＭ１１〜Ｍ１ｎを保存する。サーバＳＶ２及びサーバＳＶ３もサーバＳＶ１と同じ構造である。サーバＳＶ１〜ＳＶ３は相互に接続される。
【００９３】
ＨＤＤ１４には表１に示すサーバリストが格納される。
【表１】
0004026668.tif 000002
表１を参照して、サーバリストはサーバＩＤとサーバ情報とを含む。サーバＩＤはサーバＳＶ１と接続した他のサーバＳＶ２又はＳＶ３の識別子である。サーバＩＤはサーバＳＶ１の接続要求に応答した順番に登録される。サーバＳＶ１の接続要求に初めに応答したのがサーバＳＶ２であり、次に応答したのがサーバＳＶ３である場合、表１に示すように、サーバＩＤ＝１にはサーバＳＶ２のサーバ情報が登録され、サーバＩＤ＝２には、サーバＳＶ３のサーバ情報が登録される。
【００９４】
続いて、サーバ情報の一例としてサーバＳＶ２のサーバ情報を示す。
【表２】
0004026668.tif 000003
表２を参照して、サーバ情報はサーバ特定情報とサーバ名とローカルリストＬＬ２とを含む。サーバ特定情報は、サーバＳＶ２の場所を特定するためのサーバアドレスやポート番号等を含む。サーバアドレスとは、そのサーバＳＶのＩＰ（Internet Protocol）アドレスやＭＡＣアドレス等である。ローカルリストＬＬ２は、サーバＳＶ２に格納されている曲データＭ２１〜Ｍ２ｎのリストである。表３にローカルリストＬＬ２を示す。
【表３】
0004026668.tif 000004
表３を参照して、ローカルリストＬＬ２は、サーバＳＶ２がそのＨＤＤ１４内に蓄積する複数の曲データＭ２１〜Ｍ２ｎに関する曲情報Ｉ２１〜Ｉ２ｎを含む。表４に曲情報Ｉ２ｎの詳細を示す。
【表４】
0004026668.tif 000005
表４を参照して、曲情報Ｉ２ｎはファイル名と、曲名と、アーティスト名と、アルバム名と、ジャンル名と、曲の長さ（時間）と、ファイルフォーマットと、曲ＩＤと、サーバ特定情報とを含む。ファイル名には、当該曲データＭが格納されているＨＤＤ１４のフルパス名が記録される。
【表５】
0004026668.tif 000006
クライアントリストは、サーバＳＶ１にクライアントとして接続された機器に関する情報（クライアント情報）を含む。サーバＳＶ１にクライアントとして接続される機器は、オーディオクライアントＣＬやサーバＳＶである。クライアント情報はクライアントインデックスに対応して登録される。クライアントインデックスは、サーバＳＶ１に接続された機器ごとに付与される識別子である。
クライアント情報を表６に示す。
【表６】
0004026668.tif 000007
表６を参照して、クライアント情報中の「flag」はサーバＳＶ１との接続の有無を示す。接続がある場合、「flag」はセットされ、接続がない場合「flag」はリセットされる。  「type」はサーバＳＶ１に接続された機器のクライアントタイプを示す。サーバＳＶ１に接続された機器がオーディオクライアントＣＬであれば、クライアントタイプは「オーディオクライアント」である。接続された機器がサーバＳＶであれば、クライアントタイプは「サーバ」である。
【００９５】
「status」以降の情報は、クライアントタイプが「オーディオクライアント」である場合に記録される。「status」は、再生、停止、完了、一時停止、早送り、巻き戻し等の現在のステータス（状態）である。「volume」は現在のボリューム値（音量）を示す。「productID」はクライアントタイプごとに付与されたプロダクトＩＤ（機種情報）である。「firmwareID」はオーディオクライアントＣＬにインストールされているファームウェアのバージョンを示すファームウェアＩＤである。「hostname」はクライアント機器に付与されたクライアント名である。「songID」は、再生中の曲を識別するための曲ＩＤである。「cuｒKey」は、再生中の曲リストを作成するために必要なリスト構築キーである。
【００９６】
リスト構築キーは、フィルタの種類と、キーワードとを含む。フィルタの種類には、タイトル名、ジャンル名、アーティスト名、アルバム名、ファイル名等がある。たとえばフィルタの種類がアーティスト名の場合、キーワードには所望のアーティストの名称が記録される。リスト構築キーでグローバルリストＧＬを検索することにより所望の曲リストを作成することができる。詳細は前述した先行出願１に開示されている。
【００９７】
サーバＳＶのＨＤＤ１４はさらに、表７に示すプレゼンテーションコンテンツリストＰＬを含む。
【表７】
0004026668.tif 000008
表７を参照して、プレゼンテーションコンテンツリストＰＬは各ローカルリストＬＬ１〜ＬＬ３内の複数の曲データ（Ｍ１１〜Ｍ１ｎ，Ｍ２１〜Ｍ２ｎ，Ｍ３１〜Ｍ３ｎ）の曲情報Ｉ１１〜Ｉ１ｎ，Ｉ２１〜Ｉ２ｎ，Ｉ３１〜Ｉ３ｎの格納場所、すなわち、ＨＤＤ１４内のどの場所に格納されているかを記録する。サーバＳＶ１がオーディオクライアントＣＬからグローバルリストＧＬの要求を受けたとき、サーバＳＶ１はプレゼンテーションコンテンツリストＰＬに基づいて、表８に示すグローバルリストＧＬを更新（作成）し、オーディオクライアントＣＬに送信する。
【表８】
0004026668.tif 000009
表８を参照して、グローバルリストＧＬはローカルリストＬＬ１〜ＬＬ３の曲情報Ｉ１１〜Ｉ１ｎ，Ｉ２１〜Ｉ２ｎ，Ｉ３１〜Ｉ３ｎを含む。
【００９８】
１．２．２．オーディオクライアントの構成
図４を参照して、オーディオクライアントＣＬは、ネットワークプロトコル処理部２４及びシステム動作部２６を含むマイコン処理部２８と、フラッシュメモリ３０と、順次入力された圧縮デジタル曲データ等を一時的に記憶して順次出力するメモリ３２と、圧縮デジタル曲データをデコードして非圧縮デジタル曲データを生成する音声処理部３４と、デジタル曲データをアナログ曲データに変換するＤ／Ａ変換器（ＤＡＣ）３６と、本オーディオクライアントＣＬとＬＡＮ５０との間で信号を送受信するＬＡＮコントローラ３８とを備える。オーディオクライアントＣＬは、サーバＳＶと異なり、曲データＭを蓄積するためのＨＤＤを備えていない。
【００９９】
１．３．システム動作
１．３．１．サーバ起動処理
グローバルリストサーバシステム１０におけるサーバＳＶの起動処理について説明する。図１中のサーバＳＶ２、ＳＶ３が稼働している場合であってサーバＳＶ１が起動するとき、図５を参照して、サーバＳＶ１はＬＡＮ５０上の他のサーバＳＶ（ＳＶ２，ＳＶ３）を探索し、探索後、起動中のサーバＳＶ２及びＳＶ３からローカルリストＬＬ２、ＬＬ３を取得する。以下、詳細を説明する。なお、本項では例として図１におけるサーバＳＶ１の起動処理について説明するが、他のサーバＳＶ（ＳＶ２，ＳＶ３）の起動処理も同様である。
【０１００】
図５を参照して、サーバＳＶ１はＬＡＮ５０上で稼働している他のサーバＳＶを探索する前に、ＨＤＤ１４内のサーバリストをクリアする（Ｓ１）。続いて、サーバＳＶ１は、ＬＡＮ５０で稼働している他のサーバＳＶを探索する。具体的には、サーバＳＶ１はたとえばＵＤＰプロトコルにより、コマンドポートで予め定められたマジックワードをＬＡＮ５０にブロードキャストする（Ｓ２）。ＬＡＮ５０ではサーバＳＶ２及びサーバＳＶ３が稼働しているので、サーバＳＶ２及びサーバＳＶ３はステップＳ２でブロードキャストされたマジックワードをサーチポートで受信し、ブロードキャストしたサーバＳＶ１に同じマジックワードを返信する。このとき、サーバＳＶ２及びＳＶ３は自身を特定するためのサーバ特定情報（ＩＰアドレス）をサーバＳＶ１に送信する。
【０１０１】
続いて、サーバＳＶ１は、マジックワード送信後の経過時間を計測するためのタイマをリセットし（Ｓ３）、その後、マジックワードの返信を受けたか否かを判断する（Ｓ４）。マジックワードの返信を受けた場合（他のサーバＳＶを発見した場合）、サーバＳＶ１はそのサーバＳＶのサーバ特定情報をサーバリストに記録する（Ｓ５）。このとき、サーバＳＶ１はマジックワードを返信したサーバＳＶ順にサーバＩＤを付与し、サーバ特定情報を登録する。たとえば、サーバＳＶ２、ＳＶ３の順にマジックワードを返信してきた場合、サーバＳＶ１はサーバリストのサーバＩＤ＝１にサーバＳＶ２のサーバ特定情報を、サーバＩＤ＝２にサーバＳＶ３のサーバ特定情報を登録する。
【０１０２】
サーバ特定情報を登録後、タイマが所定時間、たとえば２秒を超えたか否かを判断し（Ｓ６）、未だ超えていない場合はステップＳ４に戻る。すなわち、サーバＳＶ１は２秒間だけ他のサーバＳＶからの応答を待つ。
【０１０３】
なお、ステップＳ４でマジックワードの返信を受けない場合（他のサーバＳＶを発見しない場合）、サーバＳＶ１は、マジックワードをブロードキャストしてから２秒を超えたか否かを判断し（Ｓ６）、未だ超えていない場合はステップＳ４に戻る。
【０１０４】
ブロードキャスト後２秒を超えた場合、サーバＳＶ１はサーバリストにサーバ特定情報が登録されているか否かを判断する（Ｓ７）。サーバリストが空の場合、つまりサーバリストにサーバ特定情報が全く記録されていない場合、サーバＳＶ１は起動処理を終了する。一方、サーバリストが空でない場合、つまりサーバリストに少なくとも１つのサーバＳＶのサーバ特定情報が記録されている場合、サーバＳＶ１はサーバリストに記録されたサーバＳＶに対して接続処理を行う（Ｓ８〜Ｓ１２）。
【０１０５】
初めに、カウント値ｎ＝１とし（Ｓ８）、サーバリストに登録されたサーバ数がｎ以上か否かを判断する（Ｓ９）。判断の結果、サーバリストに登録されたサーバ数がｎ以上である場合、サーバＳＶ１はサーバＩＤ＝１のサーバＳＶのローカルリストＬＬを取得する（Ｓ１０）。このローカルリスト取得処理については後述する。ローカルリスト取得処理を実行後、カウント値ｎをカウントアップし（Ｓ１２）、ステップＳ９に戻ってローカルリスト取得処理を継続する。すなわち、サーバリストに登録された全てのサーバＳＶ（ＳＶ２，ＳＶ３）のローカルリストＬＬ（ＬＬ２，ＬＬ３）を取得するまでローカルリスト取得処理は継続される。ここで、ステップＳ１０のローカルリスト取得処理について説明する。
【０１０６】
サーバＳＶ１がサーバＳＶ２のローカルリストＬＬ２を取得する場合、図６を参照して、サーバＳＶ１は初めにサーバＳＶ２との接続を確立し（接続処理：Ｓ１０００）、その後ローカルリストＬＬ２を取得する（リスト取得処理：Ｓ１０１０）。
【０１０７】
サーバＳＶ１が接続処理（Ｓ１０００）を実行するとき、サーバＳＶ２は接続応答処理（Ｓ１０２０）を実行する。具体的には、サーバＳＶ１は、ＴＣＰ(Transmission Control Protocol)に従い、サーバリストに登録されたサーバＳＶ２のＩＰアドレス及びコマンドポートに基づいてソケットを生成し、このソケットでサーバＳＶ２に接続を要求する（Ｓ１００１）。コマンドポートは、サーバＳＶ１からサーバＳＶ２へのコマンドを受信し、かつサーバＳＶ２からサーバＳＶ１への応答を送信するためのポートである。サーバＳＶ２はコマンドポートでの接続を受け付け（Ｓ１０２１）、これによりサーバＳＶ１はサーバＳＶ２のコマンドポートに接続を確立する。
【０１０８】
続いて、サーバＳＶ１はコマンドポートにクライアントインデックス要求コマンドを送信する（Ｓ１００２）。サーバＳＶ２はクライアントインデックス要求コマンドに応答してコマンドポートからクライアントインデックスをサーバＳＶ１に返信し（Ｓ１０２２）、サーバＳＶ１はこれを受信する（Ｓ１００３）。クライアントインデックス要求コマンドは、サーバＳＶ１がサーバＳＶ２にクライアントインデックスを要求するコマンドである。
【０１０９】
続いて、サーバＳＶ１は、ＴＣＰに従い、サーバＳＶ２のＩＰアドレス及びプッシュポートでソケットを生成し、このソケットでサーバＳＶ２に接続を要求する（Ｓ１００４）。プッシュポートは、サーバＳＶ２からサーバＳＶ１への要求を送信するためのポートである。サーバＳＶ２はプッシュポートでの接続を受け付け（Ｓ１０２３）、これによりサーバＳＶ１はサーバＳＶ２のプッシュポートに接続を確立する。ただし、この時点ではまだ、サーバＳＶ２はプッシュポートに接続されたものがどのサーバＳＶか又はどのオーディオクライアントＣＬか特定できていない。そのため、サーバＳＶ１はステップＳ１００３で受信したクライアントインデックスをサーバＳＶ２のプッシュポートに送信する（Ｓ１００５）。サーバＳＶ２はクライアントインデックスを受信し、これによりプッシュポートに接続されたのがサーバＳＶ１であると特定する（Ｓ１０２４）。プッシュポートの接続を確立後、サーバＳＶ１はサーバＳＶ２に対して自身のクライアント情報を送信する（Ｓ１００６）。サーバＳＶ２は送信されたクライアント情報を受信し、表５に示すクライアントリストに登録する。
【０１１０】
サーバＳＶ１が接続処理（Ｓ１０００）を実行し、サーバＳＶ２が接続応答処理（Ｓ１０２０）を実行した結果、サーバＳＶ１がサーバＳＶ２に接続されると、サーバＳＶ１はサーバＳＶ２のローカルリストＬＬ２を取得する（リスト取得処理：Ｓ１０１０）。このとき、サーバＳＶ２はローカルリストＬＬ２を送信する（リスト送信処理：Ｓ１０３０）。具体的には、サーバＳＶ１はコマンドポートを用いてローカルリストＬＬ２の要求コマンドをサーバＳＶ２に送信する（Ｓ１０１１）。サーバＳＶ２はサーバＳＶ１から要求コマンドを受け、サーバＳＶ２のローカルリストＬＬ２をサーバＳＶ１に送信する（Ｓ１０３１）。サーバＳＶ１はサーバＳＶ２からローカルリストＬＬ２を受信し、ＨＤＤ１４内にローカルリストＬＬ２を登録する（Ｓ１０１２）。このとき、サーバＳＶ１内のサーバリスト内に、サーバＳＶ２のサーバ情報がすべて登録される。なお、サーバＳＶ１はサーバＳＶ３に対しても同様の動作を行い、ローカルリストＬＬ３を含むサーバＳＶ３のサーバ情報をサーバリストに登録する。
【０１１１】
以上の動作により、サーバＳＶ１はサーバリストに登録された全てのサーバＳＶ２及びＳＶ３と接続を確立し、かつ、全てのローカルリストＬＬ２及びＬＬ３を取得する。
【０１１２】
図５に戻って、ＬＡＮ５０で稼働中の全てのサーバＳＶのローカルリストＬＬを取得後、カウント値ｎはサーバリスト内のサーバ数を超えるため（Ｓ９）、サーバＳＶ１はＬＡＮ５０上の他のサーバＳＶに対して自己の有するローカルリストＬＬ１を送信する（ローカルリスト送信処理：Ｓ１１）。以下、ステップＳ１１のローカルリスト送信処理の詳細を説明する。
【０１１３】
図７を参照して、サーバＳＶ１はステップＳ１０にて全てのサーバＳＶのローカルリストＬＬを取得した後、準備ＯＫコマンドをブロードキャストする（Ｓ１１０１）。ＬＡＮ５０上のサーバＳＶ２、ＳＶ３はサーバＳＶ１からブロードキャストされた準備ＯＫコマンドを受けた後、サーバＳＶ１に対し、接続処理（Ｓ１０００）を実行する。このときサーバＳＶ１は接続応答処理（Ｓ１０２０）を実行する。サーバＳＶ２、ＳＶ３はサーバＳＶ１との接続を確立後、リスト取得処理（Ｓ１０１０）を実行する。これに対しサーバＳＶ１はリスト送信処理（Ｓ１０３０）を実行し、サーバＳＶ１が有するローカルリストＬＬ１をサーバＳＶ２、ＳＶ３に送信する。
【０１１４】
以上の動作によりサーバＳＶ２、ＳＶ３はサーバＳＶ１のローカルリストＬＬ１を取得できる。よって、各サーバＳＶは、ＬＡＮ５０上の複数のサーバＳＶが有するローカルリストＬＬを全て蓄積する。
【０１１５】
なお、図７において、サーバＳＶ１は準備ＯＫコマンドをブロードキャストする前であっても、他のサーバＳＶ又はオーディオクライアントＣＬからコマンドポート接続要求を受けるが、この場合サーバＳＶ１はそのコマンドポート接続要求を受け付けない。他のサーバＳＶのローカルリストＬＬを全て取得した後でなければ、正確なグローバルリストＧＬをオーディオクライアントに送信できないからである。
【０１１６】
１．３．２．起動処理後のサーバ動作
図８を参照して、起動後のサーバＳＶは、接続動作（Ｓ１００）、配信動作（Ｓ２００）、リスト更新動作（Ｓ３００）を実行する。接続動作（Ｓ１００）では、ＬＡＮ５０上に新たに起動したサーバＳＶと接続しローカルリストＬＬの授受を実行したり、ＬＡＮ５０上のオーディオクライアントＣＬと接続してグローバルリストＧＬを送信したりする。配信動作（Ｓ２００）では、オーディオクライアントＣＬからの要求に応じて曲データを配信する。リスト更新動作（Ｓ３００）では、自身のローカルリストＬＬ又は他のサーバＳＶのローカルリストＬＬが更新されたとき、更新されたローカルリストＬＬの授受を実行する。各動作を実行後、サーバＳＶは自身の動作を終了する動作終了が選択されたか否か判断する（Ｓ１５）。動作を終了するか否かの選択は、たとえばそのサーバＳＶを管理するユーザにより行われる。動作終了が選択されなかった場合、サーバＳＶはステップＳ１００に戻って各動作を繰り返す（Ｓ１００〜Ｓ３００）。一方、ステップＳ１５で動作終了が選択された場合、サーバＳＶは終了動作を実行する（Ｓ４００）。以下、それぞれの動作について詳細を説明する。
【０１１７】
１．３．２．１．他のサーバとの接続動作
サーバＳＶ１が稼働中にＬＡＮ５０上に新たなサーバＳＶ（以下、起動サーバＳＶと称する）が起動した場合、起動サーバＳＶはサーバ探索用のマジックワードをブロードキャストする。図９を参照して、サーバＳＶ１は起動サーバＳＶによりブロードキャストされたマジックワードを受信したか否かを判断する（Ｓ１０１）。マジックワードを受けたとき、サーバＳＶ１はブロードキャストした起動サーバＳＶに対して接続応答処理（Ｓ１０２０）を実行し、起動サーバＳＶとの接続を確立する。このとき、サーバＳＶ１はクライアントリストに起動サーバＳＶのクライアント情報を登録する。
【０１１８】
接続を確立後、サーバＳＶ１は起動サーバＳＶに対してリスト送信処理を実行し（Ｓ１０３０）、ローカルリストＬＬ１を送信する。ローカルリストＬＬ１を送信後、サーバＳＶ１はステップＳ１０２０で接続された装置がサーバＳＶかクライアントＣＬかを判断する（Ｓ１０２）。このときサーバＳＶ１はクライアントリストに登録したクライアント情報内の「type」（クライアントタイプ）を参照して判断する。判断の結果、接続された装置が起動サーバＳＶであるため、サーバＳＶ１は起動サーバＳＶからローカルリストＬＬを取得し、サーバリストにサーバ情報を登録する。グローバルリストＧＬを更新するためである。よって、サーバＳＶ１は起動サーバＳＶに対して接続処理（Ｓ１０００）を実行する。接続処理実行後、サーバＳＶは接続が成功したか否かを判断する（Ｓ１０３）。起動サーバＳＶが準備ＯＫコマンドをブロードキャストする前（すなわち、起動サーバＳＶがサーバＳＶ１との接続を確立し、ローカルリストＬＬ１を取得後、他のサーバＳＶのローカルリストＬＬｎの取得処理を実行中であるとき）、サーバＳＶ１が起動サーバＳＶに接続処理（Ｓ１０００）を実行しても接続は失敗する。この場合、サーバＳＶ１は起動サーバＳＶから準備ＯＫコマンドを受けた後（Ｓ１０４）、再び接続処理を実行する（Ｓ１０００）。接続に成功した場合、サーバＳＶ１は起動サーバＳＶからローカルリストＬＬを取得すべくリスト取得処理を実行する（Ｓ１０１０）。起動サーバＳＶのローカルリストＬＬを取得した後、サーバＳＶは接続動作を終了する。
【０１１９】
以上の動作により、サーバＳＶ１は新たに起動したサーバＳＶのローカルリストＬＬも取得できる。
【０１２０】
１．３．２．２．オーディオクライアントとの接続動作
ＬＡＮ５０上のオーディオクライアントＣＬ２がグローバルリストＧＬを取得すべく、サーバＳＶ１に接続を要求する場合もある。このようなオーディオクライアントＣＬからの接続依頼処理（Ｓ１２０）に対して、サーバＳＶ１は接続動作（Ｓ１１０）を実行する。図１０を参照して、オーディオクライアントＣＬ２がサーバＳＶ１に対して接続処理を実行したとき（Ｓ１０００）、サーバＳＶ１は接続応答処理を実行する（Ｓ１０２０）。このとき、サーバＳＶ１はクライアントリストにオーディオクライアントＣＬ２のクライアント情報を登録する。
【０１２１】
サーバＳＶ１が接続応答処理を実行後（Ｓ１０２０）、オーディオクライアントＣＬ２はグローバルリストＧＬの要求コマンドをコマンドポートを用いてサーバＳＶ１に送信する（Ｓ１０５）。サーバＳＶ１はオーディオクライアントＣＬ２からのグローバルリスト要求コマンドを受け、プレゼンテーションコンテンツリストＰＬに基づいてグローバルリストＧＬを作成する（Ｓ１０６）。具体的には、プレゼンテーションコンテンツリストＰＬに登録された複数の曲情報Ｉの格納場所から曲情報Ｉを取得し、全ての曲情報Ｉをリスト化してグローバルリストＧＬを作成する。グローバルリストＧＬを作成後、サーバＳＶ１はオーディオクライアントＣＬ２にそのグローバルリストＧＬを送信する（Ｓ１０７）。オーディオクライアントＣＬ２はグローバルリストＧＬを受信し、メモリ３２に登録する（Ｓ１０８）。
【０１２２】
なお、オーディオクライアントＣＬ２はサーバＳＶ１以外のサーバＳＶ（ＳＶ２、ＳＶ３）からでもグローバルリストＧＬを取得できる。また他のオーディオクライアントＣＬも同様にグローバルリストＧＬを取得できる。
【０１２３】
以上の動作により、クライアントＣＬはＬＡＮ５０上のいずれかのサーバＳＶに接続すれば、ＬＡＮ５０上のすべての曲情報Ｉを含むグローバルリストＧＬを取得できる。
【０１２４】
１．３．２．３．配信動作
オーディオクライアントＣＬ２のユーザはサーバＳＶ１から取得したグローバルリストＧＬを参照し、聴きたい曲を選択する。グローバルリストＧＬを参照後、ユーザが曲データＭ３１を選択した場合、図１１を参照して、オーディオクライアントＣＬ２は選択された曲データＭ３１を蓄積するサーバＳＶ３に対して曲データＭ３１を要求する配信依頼処理を実行する（Ｓ２４０）。オーディオクライアントＣＬ３が要求する曲データＭ３１を蓄積するサーバＳＶ３は配信動作（Ｓ２００）を実行する。
【０１２５】
図１１を参照して、オーディオクライアントＣＬ２はサーバＳＶ３に対して接続処理を実行する（Ｓ１０００）。グローバルリストＧＬには、曲データが蓄積されるサーバＳＶを特定するためのサーバ特定情報（ＩＰアドレス及びポート番号）が記録されている。オーディオクライアントＣＬ２は選択された曲データＭ３１の曲情報Ｉ３１内に登録されたサーバ特定情報に基づいて、サーバＳＶ３に対して接続処理を実行する。サーバＳＶ３はオーディオクライアントＣＬ２に対して接続応答処理（Ｓ１０２０）を実行する。これにより、曲データＭ３１を配信するための接続が確立する。なお、このとき、サーバＳＶ１は接続動作（Ｓ１００）において確立したオーディオクライアントＣＬ２との接続を維持する。つまり、オーディオクライアントＣＬ２はサーバＳＶ１とサーバＳＶ３とに接続を確立したことになる。オーディオクライアントＣＬ２がサーバＳＶ１との接続を切断した後にサーバＳＶ３との接続を試みた結果、接続に失敗した場合、オーディオクライアントＣＬ２はＬＡＮ５０から離脱してしまう。そのような事態を防止するために、サーバＳＶ１はオーディオクライアントＣＬ２との接続を維持しておく。
【０１２６】
サーバＳＶ３とオーディオクライアントＣＬ２との接続が確立した後、オーディオクライアントＣＬ２はコマンドポートを介して表９に示す曲データ転送要求コマンドを送信する（Ｓ２２１）。
【表９】
0004026668.tif 000010
この曲データ転送要求コマンドは、転送すべき曲データＭ３１の取得開始アドレス及び取得データ長を含む。サーバＳＶ３は曲データＭ３１の転送要求コマンドに応答して、取得開始アドレスにより指定された先頭アドレスからその取得データ長分だけ曲データＭ３１のデータをオーディオクライアントＣＬ２に配信する（Ｓ２０１）。オーディオクライアントＣＬ２は配信された曲データＭ３１のデータをメモリ３２に格納する。メモリ３２は図１２に示すように複数（図１２では８つ）のバッファを含む。図１３に示すように、オーディオクライアントＣＬ２は曲データ転送要求コマンドで曲の先頭から１バッファ分（＝取得データ長）の曲データを取得して格納する（Ｓ２２２）。格納後、オーディオクライアントＣＬ２はメモリ３２のバッファが全て曲データで埋まったか判断し（Ｓ２２３）、図１４に示すようにバッファが全て埋まるまで曲データを取得して格納する。
【０１２７】
ステップＳ２２１〜Ｓ２２３を繰り返し、バッファが曲データで全て埋まったら、オーディオクライアントＣＬ２は再生を開始する（Ｓ２２４）。具体的には、図１５に示すように、先頭バッファから曲データを音声処理部３４に出力し始める。曲データを出力して再生していると、やがて図１６に示すように１バッファ分の空きが生じる。メモリ３２に空きが生じると（Ｓ２２５）、オーディオクライアントＣＬ２は再び曲データ転送要求をサーバＳＶ３に送信し（Ｓ２２６）、サーバＳＶ３は要求分の曲データを配信する（Ｓ２０２）。オーディオクライアントＣＬ２は配信された曲データをメモリ３２の空いたバッファに格納する（Ｓ２２７）。格納後、オーディオクライアントＣＬ２は曲データＭ３１を全て受信したか否か確認する（Ｓ２２８）。曲データＭ３１を全て受信していない場合、すなわち、サーバＳＶ３が曲データＭ３１の全データを未だオーディオクライアントＣＬ２に送信していない場合、オーディオクライアントＣＬ２及びサーバＳＶ３は再生によりメモリ３２に空きが生じるたびにステップＳ２２６、Ｓ２０２、Ｓ２２７を繰り返す。なお、上記では、バッファが曲データで全て埋まってから再生を開始しているが、全て埋まる前に再生し始めてもよい。
【０１２８】
オーディオクライアントＣＬ２がサーバＳＶ３から曲データＭ３１を全て受信した場合（Ｓ２２８）、オーディオクライアントＣＬ２は曲データＭ３１を全て再生するまで再生動作を継続する（Ｓ２２９）。
【０１２９】
以上のように、クライアントＣＬは選択した曲データを蓄積するサーバＳＶをグローバルリストＧＬから特定し、曲データの転送を要求できる。また、曲データを分割し、サーバＳＶからオーディオクライアントＣＬに断続的に配信するため、バッファ容量が少なくても適切に音楽を再生できる。
【０１３０】
１．３．２．４．リスト更新動作
サーバＳＶは（１）自己のローカルリストＬＬが更新された場合、（２）他のサーバＳＶのローカルリストＬＬが更新された場合、（３）他のサーバが動作を終了し、ＬＡＮ５０から離脱した場合、にそれぞれグローバルリストＧＬを更新する動作であるリスト更新動作を行う。このような場合、ＬＡＮ５０上の複数のサーバＳＶが保有する曲データ数が変更するため、オーディオクライアントＣＬが変更後の最新のグローバルリストＧＬを取得する必要があるためである。以下、（１）〜（３）のリスト更新動作についてそれぞれ説明する。
【０１３１】
１．３．２．４．１．自己のローカルリストが更新された場合
図１７を参照して、サーバＳＶ１のＨＤＤ１４に新たな曲データＭ１２が蓄積されたとき、サーバＳＶ１はローカルリストＬＬ１を更新する（Ｓ３０１）。さらに、サーバＳＶ１はローカルリストＬＬ１が更新される前のプレゼンテーションコンテンツリストＰＬを削除する（Ｓ３０２）。その後、ステップＳ３０１で更新されたローカルリストＬＬ１に対応した新たなプレゼンテーションコンテンツリストＰＬを作成する（Ｓ３０３）。
【０１３２】
新たなプレゼンテーションコンテンツリストＰＬを作成後、サーバＳＶ１に対して接続を確立している全てのサーバＳＶ及びオーディオクライアントＣＬに対し、リスト更新通知を行う（Ｓ３０４〜Ｓ３０７）。具体的には、サーバＳＶ１はカウント値ｎ＝１とし（Ｓ３０４）、ｎがクライアントリストに登録されたクライアント数よりも多いか否か判断する（Ｓ３０５）。判断の結果、クライアント数がｎ以上であった場合、サーバＳＶ１はクライアントインデックス＝ｎのサーバＳＶ又はオーディオクライアントＣＬに対してリスト更新通知を送信する（Ｓ３０６）。通知後、サーバＳＶ１はｎをカウントアップし（Ｓ３０７）、ステップＳ３０５に戻る。
【０１３３】
以上の動作を繰り返すことにより、サーバＳＶ１に対して接続を確立している全てのサーバＳＶ及びオーディオクライアントＣＬに対してリスト更新通知を送信できる。ステップＳ３０５でクライアント数よりもｎが大きい場合、サーバＳＶ１はクライアントリスト中の全てのサーバＳＶ及びオーディオクライアントＣＬに対して通知したため、その動作を終了する。
【０１３４】
［サーバからリスト更新通知を受けたオーディオクライアントの動作］
図１８を参照して、サーバＳＶ１からのリスト更新通知（Ｓ３０６）を受けたオーディオクライアントＣＬは、初めに自身がメモリ３２に登録しているグローバルリストＧＬを削除する（Ｓ３５１）。続いて、オーディオクライアントＣＬはサーバＳＶ１にグローバルリスト要求コマンドを送信する（Ｓ３５２）。サーバＳＶ１はグローバルリスト要求コマンドを受け、更新されたグローバルリストＧＬをオーディオクライアントＣＬ２に送信する（Ｓ３０８）。オーディオクライアントＣＬは送信されたグローバルリストＧＬをメモリ３２に登録する（Ｓ３５３）。
【０１３５】
ステップＳ３０６で送信されたリスト更新通知を受けた他のサーバＳＶの動作について次に説明する。
【０１３６】
１．３．２．４．２．他のサーバのローカルリストＬＬが更新された場合
図１９を参照して、ステップＳ３０６でサーバＳＶ１から送信されたリスト更新通知をサーバＳＶ２が受信したとき（Ｓ３１１）、サーバＳＶ２は既存のプレゼンテーションコンテンツリストＰＬを削除する（Ｓ３１２）。削除後、サーバＳＶ２はＨＤＤ１４に登録しているローカルリストＬＬ１を削除する（Ｓ３１３）。ローカルリストＬＬ１を削除後、サーバＳＶ２は更新されたローカルリストＬＬ１をサーバＳＶ１に要求する（Ｓ３１４）。サーバＳＶ１はサーバＳＶ２からの要求を受信し（Ｓ３３１）、更新されたローカルリストＬＬ１を送信する（Ｓ３３２）。サーバＳＶ２は送信されたローカルリストＬＬ１を受信し、ＨＤＤ１４に登録する（Ｓ３１５）。登録後、サーバＳＶ２はプレゼンテーションコンテンツリストＰＬを作成する（Ｓ３１６）。これにより、グローバルリストＧＬは更新される。
【０１３７】
プレゼンテーションコンテンツリストＰＬを作成後、サーバＳＶ２は更新されたグローバルリストＧＬをサーバＳＶ２と接続する複数のオーディオクライアントＣＬに送信するために、リスト更新通知処理（Ｓ３２０）を行う。具体的には、サーバＳＶ２はカウント値ｎ＝１とした後（Ｓ３２１）、クライアントリストに登録されたクライアント数がｎ以上であるか否か判断する（Ｓ３２２）。判断の結果、クライアント数がｎ以上である場合、サーバＳＶ２はクライアントインデックス＝ｎの機器がオーディオクライアントＣＬであるか否か判断する（Ｓ３２３）。判断はクライアントリストに登録されたクライアント情報内の「type」（クライアントタイプ）に基づいて行う。判断の結果、クライアントインデックス＝ｎの「type」が「オーディオクライアント」の場合、サーバＳＶ２はそのオーディオクライアントＣＬに対してリスト更新通知を送信する（Ｓ３２４）。送信後、カウント値ｎをカウントアップして（Ｓ３２５）、Ｓ３２５に戻る。一方、ステップＳ３２３での判断の結果、クライアントインデックス＝ｎの「type」が「サーバ」である場合はリスト更新通知を送信することなくステップＳ３２５へ進む。他のサーバＳＶに対してはサーバＳＶ１からリスト更新通知が送信されているため、サーバＳＶ２はオーディオクライアントＣＬに対してのみリスト更新通知を行えばよいためである。
【０１３８】
以上の動作を繰り返すことで、サーバＳＶ２に接続された全てのオーディオクライアントＣＬに対してリスト更新通知を送信する。リスト更新通知を受けたオーディオクライアントＣＬの動作は図１８と同じである。
【０１３９】
１．３．２．４．３．他のサーバが離脱した場合
図２０を参照して、ＬＡＮ５０で稼働中のサーバＳＶ２がその動作を停止し、ＬＡＮ５０から離脱する場合、サーバＳＶ２はＬＡＮ５０上の他のサーバＳＶ（ＳＶ１、ＳＶ３）に対して離脱通知をブロードキャストする（Ｓ３３５）。サーバＳＶ１はサーバＳＶ２からの離脱通知を受信し（Ｓ３１１）、既存のプレゼンテーションコンテンツリストＰＬを削除する（Ｓ３１２）。さらにサーバＳＶ１は、ＨＤＤ１４に登録しているローカルリストＬＬ２を削除する（Ｓ３１３）。ローカルリストＬＬ２を削除後、サーバＳＶ１はプレゼンテーションコンテンツリストＰＬを作成する（Ｓ３１６）。これにより、プレゼンテーションコンテンツリストＰＬに基づき作成されるグローバルリストＧＬは、ローカルリストＬＬ２を含まない。サーバＳＶ１はプレゼンテーションコンテンツリストＰＬを作成後、リスト更新通知処理（Ｓ３２０）を実行する。サーバＳＶ３についてもサーバＳＶ１と同じ動作を行う。
【０１４０】
以上のリスト更新動作により、オーディオクライアントＣＬは常に最新のグローバルリストＧＬを取得できる。
【０１４１】
１．３．２．５．終了動作
オーディオクライアントＣＬに接続されたサーバＳＶ１が動作を終了し、ＬＡＮ５０から離脱する場合、そのオーディオクライアントＣＬの接続先をＬＡＮ５０上の他のサーバＳＶに変更する方が好ましい。また、サーバＳＶ１がオーディオクライアントＣＬに対して曲データを配信中に離脱する場合、クライアントＣＬがその曲データの配信を継続して受けられるように対処する方が好ましい。
【０１４２】
図２１を参照して、サーバＳＶ１がその動作を終了する場合、初めにカウント値ｎ＝０とし（Ｓ４０１）、サーバＳＶ１に接続しているオーディオクライアントＣＬ数がｎより大きいか否かを判断する（Ｓ４０２）。ステップＳ４０２の判断は、クライアントリストに基づいて行われる。判断の結果、オーディオクライアントＣＬ数がｎ以下であった場合、サーバＳＶ１にはオーディオクライアントＣＬが接続されていない。よって、サーバＳＶ１は離脱通知を他のサーバＳＶに送信し（Ｓ３３５）。動作を終了する。
【０１４３】
一方、ステップＳ４０２でオーディオクライアントＣＬ数がｎよりも大きい場合（つまり、サーバＳＶ１に接続しているオーディオクライアントＣＬが存在する場合）、クライアントインデックス＝ｎのオーディオクライアントＣＬが現在再生中か否かを判断する（Ｓ４０３）。
【０１４４】
判断の結果、クライアントインデックス＝ｎのオーディオクライアントＣＬが再生中でない場合（以降、このオーディオクライアントＣＬをＣＬ２とする）、サーバＳＶ１はオーディオクライアントＣＬ２に対して引継サーバＳＶに接続を切り替えるようサーバ切換指示を送信する（Ｓ４０４）。ここで、引継サーバＳＶとは、オーディオクライアントＣＬ２との接続を引き継ぐサーバＳＶである。サーバＳＶ１は引継サーバＳＶをサーバリストに基づいて決定する。具体的には、サーバリスト中のサーバＩＤ＝１のサーバＳＶを引継サーバＳＶに決定する。たとえば、サーバＩＤ＝１にサーバＳＶ２のサーバ特定情報が登録されているとき、サーバＳＶ１は引継サーバＳＶをサーバＳＶ２に決定する。サーバＳＶ１はサーバ切換指示を送信した後、カウント値ｎをカウントアップし（Ｓ４０７）、再びステップＳ４０２に戻る。
【０１４５】
オーディオクライアントＣＬ２はサーバＳＶ１からのサーバ切換指示を受けた後（Ｓ４３１）、サーバＳＶ１との接続を切断する（Ｓ４３２）。切断後、オーディオクライアントＣＬ２は切換指示に従って、サーバＳＶ２に対して接続処理を実行する（Ｓ１０００）。このとき、サーバＳＶ２は接続応答処理を実行する（Ｓ１０２０）。オーディオクライアントＣＬ２はサーバＳＶ２と接続を確立後、リスト取得処理を実行する（Ｓ１０１０）。このとき、サーバＳＶ２はリスト送信処理を実行する（Ｓ１０３０）。以上の動作により、サーバＳＶ１が動作を終了しても、オーディオクライアントＣＬ２は接続先をサーバＳＶ２に切り替えることで、最新のグローバルリストＧＬをサーバＳＶ２から取得できる。
【０１４６】
一方、ステップＳ４０３での判断の結果、クライアントインデックス＝ｎのオーディオクライアントＣＬが曲データＭ１１を再生中である場合（以降、このオーディオクライアントＣＬをＣＬ１とする）、サーバＳＶ１が動作を終了した後も、オーディオクライアントＣＬ１は曲データＭ１１の配信の続きを受ける必要がある。曲データＭ１１の配信が途切れたら、オーディオクライアントＣＬ１は曲データＭ１１の再生を途中で終了させなければならなくなるからである。よって、サーバＳＶ１は曲データＭ１１の配信の続きを引継サーバＳＶに実行させるように対処した後、その動作を終了する。具体的には、サーバＳＶ１はサーバＳＶ２に対して曲データＭ１１の曲データ引継処理を実行する（Ｓ４０４）。このときサーバＳＶ２は曲データ引受処理を実行する（Ｓ４１４）。以下、曲データ引継処理及び曲データ引受処理について説明する。
【０１４７】
図２２を参照して、サーバＳＶ１はサーバＳＶ２に対してオーディオクライアントＣＬ１に配信中の曲データＭ１１の登録を要求する（Ｓ４０４１）。サーバＳＶ２はサーバＳＶ１からの要求を受信し（Ｓ４１１１）、曲データＭ１１を格納するためにＨＤＤ１４内に新規曲ＩＤを登録する（Ｓ４１１２）。サーバＳＶ２は新規曲ＩＤをサーバＳＶ１に送信する（Ｓ４１１３）。サーバＳＶ１は新規曲ＩＤを受信し、受信した新規曲ＩＤを付与した曲データＭ１１をサーバＳＶ２に送信する（ステップＳ４０４３）。サーバＳＶ２は曲データＭ１１を受信し、ＨＤＤ１４内の新規曲ＩＤの領域に格納する（Ｓ４１１４）。以上の動作により、曲データＭ１１はサーバＳＶ１からサーバＳＶ２に引き継がれる。
【０１４８】
図２１に戻って、引継サーバＳＶであるサーバＳＶ２がサーバＳＶ１から曲データＭ１１を引き継いだ後、オーディオクライアントＣＬ１が曲データＭ１１中のどの位置からデータ配信サーバＳＶ２に要求すれば良いかを決定する必要がある。オーディオクライアントＣＬ１はサーバＳＶ１から曲データＭ１１の途中まで配信を受けているため、サーバＳＶ２から曲データＭ１１を初めから配信してもらう必要はないからである。よって、サーバＳＶ１はオーディオクライアントＣＬ１がサーバＳＶ２から配信してもらう曲データＭ１１の取得開始アドレスを算出する（Ｓ４０５）。具体的には、サーバＳＶ１はオーディオクライアントＣＬ２に今まで配信した曲データＭ１１のデータ長を曲データＭ１１の先頭アドレスに加算した値を取得開始アドレスに決定する。取得開始アドレスを算出後、サーバＳＶ１は再生コマンドをオーディオクライアントＣＬ２に送信する（Ｓ４０６）。再生コマンドには、パラメータとしてサーバＳＶ２のサーバ特定情報とステップＳ４０５で算出した取得開始アドレスが含まれる。
【０１４９】
再生コマンドを送信後、サーバＳＶ１はカウント値ｎをカウントアップし（Ｓ４０７）、再びステップＳ４０２に戻って動作を繰り返す。これにより、サーバＳＶ１に接続されている全てのオーディオクライアントＣＬに対して終了動作を実行できる。全てのオーディオクライアントＣＬに対して終了動作を実行後、すなわち、カウント値ｎがクライアント接続数を超えたとき、（Ｓ４０２）、サーバＳＶ１は他のサーバＳＶに離脱通知を送信し（Ｓ３３５）、その動作を終了する。
【０１５０】
オーディオクライアントＣＬ１はサーバＳＶ１からの再生コマンドを受信後（Ｓ４２１）、サーバＳＶ１との接続を切断する（Ｓ４２２）。切断後、サーバＳＶ２に対してクライアント接続依頼処理（Ｓ１２０）を実行し、サーバＳＶ２は接続動作（Ｓ１１０）を実行することで、オーディオクライアントＣＬ１はサーバＳＶ２に対して接続を確立する。その後、オーディオクライアントＣＬ１は配信依頼処理（Ｓ２４０）を実行する。このとき、オーディオクライアントＣＬ２はステップＳ４２１で受信した取得開始アドレスをパラメータに曲データ転送要求を行う。サーバＳＶ２は曲データ転送要求内の取得開始アドレスに基づいて、配信動作を実行する（Ｓ２００）。以上の動作によりオーディオクライアントＣＬ２は曲データＭ１１の続きをサーバＳＶ２から取得でき、曲データＭ１１の再生を継続できる。
【０１５１】
以上に示したように、サーバＳＶがその動作を終了する場合、そのサーバＳＶから曲データが配信されている（つまり再生中の）オーディオクライアントＣＬが存在しても、引継サーバＳＶにその曲データを引き継ぐ。そのため、オーディオクライアントＣＬは再生を継続できる。
【０１５２】
１．４．コントローラを含むグローバルサーバシステム
１．４．１．概略
グローバルサーバシステム１０は、図２３に示すようにコントローラＣＮを備えてもよい。コントローラＣＮはサーバＳＶ１〜ＳＶ３と接続し、サーバＳＶ１〜ＳＶ３を介してオーディオクライアントＣＬ１〜ＣＬ３を制御する。たとえば、コントローラＣＮは所望のオーディオクライアントＣＬに所望の曲を再生させたり、再生中の曲を停止させたりする。図２３ではコントローラＣＮを１つとしたが、複数あってもよい。
【０１５３】
図２３に示すサーバＳＶ１〜ＳＶ３、オーディオクライアントＣＬ１〜ＣＬ３、及びコントローラＣＮの接続関係を図２４に示す。図２４に示すように、コントローラＣＮは全てのサーバＳＶ１〜ＳＶ３に接続する。オーディオクライアントＣＬ１〜ＣＬ３はサーバＳＶ１〜ＳＶ３の何れかに接続する。図２４では、オーディオクライアントＣＬ１はサーバＳＶ１に接続され、オーディオクライアントＣＬ２及びＣＬ３はサーバＳＶ２に接続されている。つまり、オーディオクライアントＣＬ１はサーバＳＶ１からグローバルリストＧＬを取得し、オーディオクライアントＣＬ２及びＣＬ３はサーバＳＶ２からグローバルリストＧＬを取得する。
【０１５４】
図２３に戻って、コントローラＣＮがオーディオクライアントＣＬ２に曲データＭ３１に基づく曲を再生させる場合、コントローラＣＮはオーディオクライアントＣＬ２に再生コマンドを送信する。具体的には、コントローラＣＮはオーディオクライアントＣＬ２がサーバＳＶ２と接続されているのを確認した後、サーバＳＶ２を介して（図中（１））、オーディオクライアントＣＬ２に再生コマンドを送信する（図中（２））。再生コマンドを受けたオーディオクライアントＣＬ２の動作は図２中の（Ｂ）と同じである。
【０１５５】
１．４．２．構成
コントローラＣＮは、サーバＳＶ１〜ＳＶ３に対してクライアントとして機能する。図２５を参照して、コントローラＣＮは、ＬＡＮコントローラ３８と、マイコン処理部２８と、フラッシュメモリ３０と、メモリ３２と、ＣＲＴやＬＣＤといった表示装置３７と、キーボードやマウスといった入力装置３９とを備える。コントローラＣＮがオーディオクライアントＣＬと異なる点は、オーディオクライアントＣＬは再生機能を有するのに対し、コントローラＣＮは再生機能を有さなくてもよく、主としてオーディオクライアントＣＬのモニタ機能及び制御機能を有する点である。
【０１５６】
コントローラＣＮのメモリ３２には、表１と同じ構成のコントローラ用サーバリストが登録される。コントローラ用サーバリストに登録されるサーバ情報（コントローラ用サーバ情報）を表１０に示す。
【表１０】
0004026668.tif 000011
表１０を参照して、コントローラ用サーバ情報は、表２と比較して、ローカルリストＬＬの代わりにクライアントリスト（「clientlist」）が登録される。クライアントリストには、サーバＳＶ１〜ＳＶ３が持つ全てのクライアント情報が登録される。要するに、コントローラＣＮはサーバＳＶ１〜ＳＶ３が持つ全てのクライアント情報を持つ。そのため、コントローラＣＮはグローバルサーバシステム１０で稼働するオーディオクライアントＣＬ１〜ＣＬ３の存在を把握し、かつ、各オーディオクライアントＣＬがどのサーバＳＶと接続しているかを把握する。
【０１５７】
さらに、メモリ３２にはグローバルリストＧＬも登録される。
【０１５８】
１．４．３．システム動作
１．４．３．１．ハンドル取得動作
コントローラＣＮは、グローバルサーバシステム１０の全てのサーバＳＶと接続し、各サーバＳＶに接続されたオーディオクライアントＣＬ１〜ＣＬ３を監視及び制御するための監視ハンドル及び制御ハンドルを取得する。
【０１５９】
図２６を参照して、ステップＳ１〜ステップＳ７の動作は図５と同じである。要するに、コントローラＣＮは、ＬＡＮ５０で稼働しているサーバＳＶ１〜ＳＶ３を探索し、サーバＳＶ１〜ＳＶ３のサーバ特定情報をサーバリストに登録する。
【０１６０】
ステップＳ７でサーバリストにサーバ特定情報が登録されていると判断した場合、サーバリストに登録されたサーバごとにハンドル取得処理を実行する（Ｓ７１〜Ｓ７４）。初めに、カウント値ｎ＝１とし（Ｓ７１）、サーバリストに登録されたサーバ数がｎ以上か否かを判断する（Ｓ７２）。サーバ数がｎ以上の場合、サーバＳＶ１はサーバＩＤ＝１のサーバＳＶに対して、ハンドル取得処理を実行する（Ｓ７３）。ハンドル取得処理を実行後、カウント値ｎをカウントアップし（Ｓ７４）、ステップＳ７２に戻る。要するに、コントローラＣＮは、サーバリストに登録された全てのサーバに対してハンドル取得処理を実行する。一例として、サーバＳＶ２に対するハンドル取得処理について説明する。
【０１６１】
図２７を参照して、コントローラＣＮはサーバＳＶ２に対して接続処理を実行する（Ｓ１０００）。このとき、サーバＳＶ２は接続応答処理を実行する（Ｓ１０２０）。接続処理及び接続応答処理により、コントローラＣＮはサーバＳＶ２と接続を確立する。なお、接続処理において、コントローラＣＮは、自身のクライアント情報をサーバＳＶ２に送信するが、このとき、コントローラＣＮは、クライアントタイプが「コントローラ」であることを通知する。
【０１６２】
接続を確立後、コントローラＣＮはサーバＳＶ２に対してクライアントリスト要求コマンドを送信する（Ｓ７３０１）。サーバＳＶ２はクライアントリスト要求コマンドを受け、ＨＤＤ１４内のクライアントリストをコントローラＣＮに送信する（Ｓ７３０２）。サーバＳＶ２にはオーディオクライアントＣＬ２及びＣＬ３とコントローラＣＮとが接続されているため、ステップＳ７３０２で送信されるクライアントリストには、オーディオクライアントＣＬ２及びＣＬ３のクライアント情報と、コントローラＣＮのクライアント情報とが含まれる。コントローラＣＮは、クライアントリストを受信後、メモリ３２内のコントローラ用サーバリストに登録する（Ｓ７３０３）。より具体的には、コントローラ用サーバリスト内のサーバＳＶ２のコントローラ用サーバ情報の「clientlist」に、取得したクライアントリストを登録する。
【０１６３】
クライアントリストを登録後、コントローラＣＮは、クライアントリストに基づいて、サーバＳＶ２に接続されているオーディオクライアントＣＬ２及びＣＬ３の監視ハンドル及び制御ハンドルをサーバＳＶ２に要求して取得する（Ｓ７３０５〜Ｓ７３１１）。監視ハンドルは、サーバＳＶからコントローラＣＮに与えられるオーディオクライアントＣＬを監視する権限である。また、制御ハンドルは、サーバＳＶからコントローラＣＮに与えられるオーディオクライアントＣＬを制御する権限である。
【０１６４】
コントローラＣＮは、カウント値ｎ＝１とし（Ｓ７３０４）、クライアントリスト内のクライアント数がｎ以上か否かを判断する（Ｓ７３０５）。クライアント数がｎ以上の場合、コントローラＣＮはクライアントインデックス＝１のクライアント情報が自身の情報か否かを判断する（Ｓ７３０６）。自身のクライアント情報でない場合、そのクライアントインデックス（＝１）をサーバＳＶ２に送信し、その監視ハンドル及び制御ハンドルを要求する（Ｓ７３０７）。
【０１６５】
サーバＳＶ２は、コントローラから送信されたクライアントインデックス（＝１）を、コントローラＣＮのクライアントインデックスと対応付けて記録し（Ｓ７３０８）、コントローラＣＮに対して監視ハンドル及び制御ハンドルを発行する（Ｓ７３０９）。その結果、コントローラＣＮはクライアントインデックス＝１に対応したオーディオクライアントＣＬの監視ハンドル及び制御ハンドルを取得する（Ｓ７３１０）。
【０１６６】
続いて、コントローラＣＮはカウント値ｎをカウントアップし（Ｓ７３１１）、再びステップＳ７３０５の動作に戻る。要するに、コントローラＣＮはクライアントリスト内に登録された全てのオーディオクライアントＣＬ（ここではＣＬ２及びＣＬ３）に対して監視ハンドル及び制御ハンドルを取得する。なお、ステップＳ７３０６での判断の結果、クライアントインデックス＝ｎのクライアント情報が自身のクライアント情報である場合、ステップＳ７３１１に進む。コントローラは自分自身に対して監視ハンドル及び制御ハンドルを取得する必要がないためである。
【０１６７】
ハンドル取得処理は、全てのサーバＳＶ１〜ＳＶ３に対して実行される。そのため、コントローラＣＮはグローバルサーバシステム１０で稼働する全てのオーディオクライアントＣＬ１〜ＣＬ３の監視ハンドル及び制御ハンドルを取得する。
【０１６８】
１．４．３．２．グローバルリスト取得動作及び更新動作
コントローラＣＮがサーバＳＶからグローバルリストＧＬを取得する動作は図１０のオーディオクライアントＣＬ２の動作と同じである。コントローラＣＮは任意のサーバＳＶからグローバルリストＧＬを取得する。なお、ハンドル取得動作により既に全てのサーバＳＶ１〜ＳＶ３と接続を確立している場合、コントローラＣＮは図５中の接続処理（Ｓ１０００）を実行することなく任意のサーバＳＶに対してグローバルリストを要求する（図５中のステップＳ１０５）。任意のサーバＳＶとは、たとえばコントローラ用サーバリスト中のサーバＩＤ＝１のサーバＳＶである。
【０１６９】
コントローラＣＮはオーディオクライアントＣＬと同様に、サーバＳＶからリスト更新通知を受け、グローバルリストＧＬを更新する。グローバルリストを更新する動作は図１８と同じである。
【０１７０】
以上の動作により、コントローラＣＮも常に最新のグローバルリストを取得できる。
【０１７１】
１．４．３．３．監視動作
コントローラＣＮは監視ハンドルを取得することにより、オーディオクライアントＣＬを監視できる。図２８を参照して、オーディオクライアントＣＬ２のボリューム値が変更された場合、オーディオクライアントＣＬ２はボリューム値変更通知をサーバＳＶ２に送信する（Ｓ７５０１）。ボリューム値変更通知は変更されたボリューム値の情報を含む。
【０１７２】
サーバＳＶ２はボリューム値変更通知を受信後、オーディオクライアントＣＬ２のクライアント情報を更新する（Ｓ７５０２）。具体的には、クライアント情報内の「volume」のデータを更新する。サーバＳＶ２はさらに、オーディオクライアントＣＬ２の監視ハンドルを取得しているコントローラＣＮに、更新されたクライアント情報を送信する（Ｓ７５０３）。
【０１７３】
コントローラＣＮは更新されたクライアント情報を受信し、コントローラ用サーバリスト内のオーディオクライアントＣＬ２のクライアント情報を更新する（Ｓ７５０４）。更新されたクライアント情報は、表示装置３７に表示される（Ｓ７５０５）。
【０１７４】
以上の処理は、コントローラＣＮが監視ハンドルを取得した全てのオーディオクライアントＣＬ１〜ＣＬ３のうちいずれかのクライアント情報が更新されるたびに繰り返される。
【０１７５】
以上のように、サーバＳＶがオーディオクライアントＣＬからクライアント情報を受信した際に、コントローラＣＮにクライアント情報を送信することにより、コントローラＣＮはオーディオクライアントＣＬを常に監視できる。
【０１７６】
１．４．３．４．制御動作
コントローラＣＮは制御ハンドルを取得することにより、オーディオクライアントＣＬを制御できる。制御動作の一例として、コントローラＣＮがオーディオクライアントＣＬ２に対して曲データＭ３１に基づく曲の再生を指示する処理について説明する。曲データはコントローラＣＮが持つグローバルリストＧＬに基づいて選択される。
【０１７７】
図２９を参照して、コントローラＣＮはグローバルリストＧＬに基づいて曲データＭ３１を選択する（Ｓ７６０１）。選択後、コントローラＣＮは、コントローラ用サーバリストに基づいて、オーディオクライアントＣＬ２を接続しているサーバを特定する（Ｓ７６０２）。具体的には、コントローラＣＮはコントローラ用サーバリストを参照し、オーディオクライアントＣＬ２のクライアント情報を持つサーバ情報がサーバＳＶ２のサーバ情報であると判断する。換言すれば、コントローラＣＮは、オーディオクライアントＣＬ２を接続しているサーバはサーバＳＶ２であると判断する。そのため、コントローラＣＮはサーバＳＶ２に再生コマンドを送信する（Ｓ７６０１）。再生コマンドは曲データＭ３１を特定する情報（たとえば曲ＩＤ）を含む。
【０１７８】
サーバＳＶ２はコントローラＣＮから送信された再生コマンドをオーディオクライアントＣＬ２に送信する（Ｓ７６０２）。要するに、コントローラＣＮはサーバＳＶ２を介してオーディオクライアントＣＬ２に再生コマンドを送信する。
【０１７９】
再生コマンドを受けたオーディオクライアントＣＬ２は曲データＭ３１を取得して再生するために、配信依頼処理を実行する（Ｓ２４０）。なお、このときサーバＳＶ３が配信動作を実行する（Ｓ２００）。
【０１８０】
図２９では曲の再生を指示する場合の動作を示したが、曲再生を停止する場合も同様である。コントローラＣＮが曲再生の停止コマンドをサーバＳＶ２を介してオーディオクライアントＣＬ２に送信することで、オーディオクライアントＣＬ２は曲再生を停止する。ボリュームの調整等の制御についても同様である。
【０１８１】
以上の動作により、コントローラＣＮは制御ハンドルを取得したオーディオクライアントＣＬを制御できる。
【０１８２】
なお、グローバルサーバシステム１０が複数のコントローラＣＮを備える場合、各オーディオクライアントＣＬの制御ハンドルは複数発行されない。換言すれば、各オーディオクライアントＣＬを制御できるのは１つのコントローラＣＮである。一方、各オーディオクライアントＣＬの監視ハンドルは重複して発行され、複数のコントローラＣＮが１つのオーディオクライアントＣＬを監視できる。
【０１８３】
２．センタサーバシステム
２．１．概略
図３０はセンタサーバシステムの全体構成を示す図である。図３０を参照して、センタサーバシステム７０は、センタサーバＣＳＶと複数のサブサーバＳＳＶ１，ＳＳＶ２と、複数のオーディオクライアントＣＬ１〜ＣＬ３とを備える。これらはＬＡＮ６０で互いに接続される。センタサーバＣＳＶ及びサブサーバＳＳＶの構成は図３と同じである。また、図３０ではサブサーバＳＳＶを２つ（ＳＳＶ１，ＳＳＶ２）としたが、サブサーバＳＳＶは１以上あればよい。また、クライアントＣＬも１以上あればよい。
【０１８４】
グローバルリストサーバシステム１０ではＬＡＮ５０上の全てのサーバＳＶ１〜ＳＶ３がグローバルリストＧＬを有するのに対し、センタサーバシステム７０では、センタサーバＣＳＶのみがグローバルリストＧＬを備える。センタサーバＣＳＶはさらに曲データＭ３１〜Ｍ３ｎとローカルリストＬＬ３とを備える。一方、サブサーバＳＳＶ１は曲データＭ１１〜Ｍ１ｎとローカルリストＬＬ１とを備え、サブサーバＳＳＶ２は曲データＭ２１〜Ｍ２ｎとローカルリストＬＬ２とを備える。
【０１８５】
サブサーバＳＳＶ１，ＳＳＶ２は自己が蓄積する曲データが更新されたとき、更新後のローカルリストＬＬ１、ＬＬ２をセンタサーバＣＳＶに送信する（図中（１））。センタサーバＣＳＶはローカルリストＬＬ１，ＬＬ２を受け、ローカルリストＬＬ３と合わせてグローバルリストＧＬを更新する。なお、センタサーバＣＳＶからサブサーバＳＳＶ１，ＳＳＶ２にローカルリストＬＬ３は送信されない。また、サブサーバＳＳＶ１とサブサーバＳＳＶ２との間でローカルリストＬＬ１、ＬＬ２の送受信は行われない。
【０１８６】
図３１（Ａ）を参照して、複数のオーディオクライアントＣＬ１〜ＣＬ３はグローバルリストＧＬの転送要求をセンタサーバＣＳＶに送信する（図中（２））。センタサーバＣＳＶはグローバルリストＧＬの要求を受け、各オーディオクライアントＣＬ１〜ＣＬ３にグローバルリストＧＬを送信する（図中（３））。
【０１８７】
グローバルリストＧＬを受信後、オーディオクライアントＣＬ２が曲データＭ２１を再生する場合、図３１（Ｂ）を参照して、オーディオクライアントＣＬ２は曲データＭ２１の曲データ転送要求をセンタサーバＣＳＶに送信する（図中（４））。センタサーバＣＳＶは曲データ転送要求を受け、曲データＭ２１を蓄積するサブサーバＳＳＶ２に対し曲データＭ２１をセンタサーバＣＳＶに配信するよう要求する（図中（５））。図３１（Ｃ）を参照して、サブサーバＳＳＶ２はセンタサーバＣＳＶの要求を受け、曲データＭ２１をセンタサーバＣＳＶに配信する（図中（６））。センタサーバＣＳＶはサブサーバＳＳＶ２から配信された曲データＭ２１をオーディオクライアントＣＬ２に配信する（図中（７））。
【０１８８】
以上に示すように、センタサーバシステム７０では、グローバルリストＧＬの転送要求や曲データ転送要求等のオーディオクライアントＣＬからの要求は全てセンタサーバＣＳＶに送信される。また、サブサーバＳＳＶからオーディオクライアントＣＬへの曲データＭの配信は、センタサーバＣＳＶを介して行われる。センタサーバＣＳＶはサブサーバＳＳＶとオーディオクライアントＣＬとの中継を行うとともに、自身も曲データＭを備え、オーディオクライアントＣＬに直接自身が蓄積した曲データＭの配信を行う。オーディオクライアントＣＬはセンタサーバＣＳＶに要求すれば、ＬＡＮ６０上のすべての曲データＭを再生できる。
【０１８９】
なお、オーディオクライアントＣＬから曲データＭを要求するときは、センタサーバＣＳＶサーバを介さずに所望の曲データＭを蓄積するサブサーバＳＳＶに曲データの転送要求をおこなってもよい。
【０１９０】
２．２．システム動作
２．２．１．サーバ起動処理
センタサーバシステム７０では、ＬＡＮ６０上に最初に起動したサーバＳＶがセンタサーバＣＳＶとして動作し、２番目以降に起動したサーバＳＶはサブサーバＳＳＶとして動作する。
【０１９１】
図３２を参照して、起動時のサーバＳＶ（以下、起動サーバＳＶと称する）のステップＳ１〜Ｓ６までの動作は図５中と同じである。起動サーバＳＶはマジックワードをブロードキャストしてＬＡＮ６０上の他のサーバＳＶが既に稼働しているか否かを判断する。ブロードキャストして２秒経過した後、サーバリストにサーバ特定情報がない場合（Ｓ７）、ＬＡＮ６０上に他のサーバＳＶが存在していないため、起動サーバＳＶはセンタサーバＣＳＶとして動作する（Ｓ５０）。センタサーバＣＳＶの動作については２．２．２．で説明する。
【０１９２】
一方、ステップＳ７でサーバリストにサーバ特定情報がある場合、センタサーバＣＳＶは既に稼働しているため、起動サーバＳＶはサブサーバＳＳＶとして稼働する。このとき、サブサーバＳＳＶはセンタサーバＣＳＶへの接続処理を実行する（Ｓ１０００）。このときの接続処理は図６中のステップＳ１０００の動作と同じである。またサブサーバＳＳＶが接続処理（Ｓ１０００）を実行したとき、センタサーバＣＳＶは接続応答処理（図６中のＳ１０２０と同じ処理）を行う。
【０１９３】
センタサーバＣＳＶへの接続処理（Ｓ１０００）後、サブサーバＳＳＶはセンタサーバＣＳＶに対し、ローカルリスト送信処理を実行し（Ｓ１１）、センタサーバＣＳＶに自身のローカルリストＬＬを送信する。ローカルリスト送信処理の詳細は図７と同じである。なお、グローバルリストサーバシステム１０でのサーバＳＶは他の全てのサーバＳＶに対して接続処理を実行した後に準備ＯＫコマンドをブロードキャストするが、サブサーバＳＳＶはセンタサーバＣＳＶに対して接続処理を実行後に準備ＯＫコマンドをブロードキャストする。
【０１９４】
以上の動作により、起動サーバＳＶがサブサーバＳＳＶになる場合、センタサーバＣＳＶに接続し、自身のローカルリストＬＬをセンタサーバＣＳＶに送信した後、サブサーバＳＳＶの動作を実行する（Ｓ６５）。サブサーバＳＳＶの動作については２．２．３．で説明する。
【０１９５】
２．２．２．起動処理後のセンタサーバ動作
図３３を参照して、センタサーバＣＳＶは、接続動作（Ｓ１００，Ｓ１１０）、配信動作（Ｓ５００）、リスト更新動作（Ｓ６００）を実行し、終了時（Ｓ１５）、終了動作（Ｓ７００）を実行する。接続動作（Ｓ１００，Ｓ１１０）については、グローバルリストサーバシステム１０におけるサーバの接続処理動作（１．３．２．１及び１．３．２．２）と同じである。以下、配信動作（Ｓ５００）、リスト更新動作（Ｓ６００）、終了動作（Ｓ７００）について説明する。
【０１９６】
２．２．２．１．配信動作
センタサーバＣＳＶからグローバルリストＧＬを取得したオーディオクライアントＣＬ２がそのグローバルリストＧＬからサブサーバＳＳＶ２の曲データＭ２１を選択した場合、オーディオクライアントＣＬ２はセンタサーバＣＳＶに曲データ転送要求を送信し、サブサーバＳＳＶ２からセンタサーバＣＳＶを経由して曲データＭ２１の配信を受け、再生を行う。以下、詳細を説明する。
【０１９７】
図３４を参照して、初めに、オーディオクライアントＣＬ２はセンタサーバＣＳＶに対して接続処理を実行する（Ｓ１０００）。これに対しセンタサーバＣＳＶは接続応答処理を実行する（Ｓ１０２０）。この接続処理により、曲データＭ２１を配信するための接続がセンタサーバＣＳＶとオーディオクライアントＣＬ２との間で確立する。なお、このとき、センタサーバＣＳＶは先の接続動作（Ｓ１１０）で確立したオーディオクライアントＣＬ２との接続も維持する。よって、オーディオクライアントＣＬ２はセンタサーバＣＳＶとグローバルリスト受信用の接続と曲データ受信用の接続とを確立したことになる。このように、グローバルリスト受信用のコマンドポートと曲データ転送要求用のコマンドポートとを分けることで、トラフィックの混雑を緩和できる。
【０１９８】
接続処理後のオーディオクライアントＣＬ２の動作は図１１中のオーディオクライアントＣＬ２の動作と同じである。
【０１９９】
ステップＳ２２１でオーディオクライアントＣＬがセンタサーバＣＳＶに対して曲データＭ２１の曲データ転送要求を送信したとき、センタサーバＣＳＶは曲データ配信処理を実行する（Ｓ５０１）。以下、曲データ配信処理について説明する。
【０２００】
図３５を参照して、センタサーバＣＳＶはオーディオクライアントＣＬ２から曲データ転送要求を受け（Ｓ５０１１）、要求された曲データがセンタサーバＣＳＶ内の曲データか否かを判断する（Ｓ５０１２）。センタサーバＣＳＶ内の曲データである場合、センタサーバＣＳＶはその曲データをオーディオクライアントＣＬ２に配信する（Ｓ５０１５）。
【０２０１】
今、オーディオクライアントＣＬ２は曲データＭ２１を要求しているため（Ｓ５０１２）、センタサーバＣＳＶは曲データＭ２１を蓄積するサブサーバＳＳＶ２から曲データＭ２１を取得し、オーディオクライアントＣＬ２に配信する。初めにセンタサーバＣＳＶはサブサーバＳＳＶ２に対して接続処理を実行する（Ｓ１０００）。これに対し、サブサーバＳＳＶ２は接続応答処理を実行し（Ｓ１０２０）、サーバ間で曲データ転送要求用の接続を確立する。トラフィックの混雑の緩和のためにローカルリスト取得用の接続とともに曲データ転送用の接続を確立する。接続を確立後、センタサーバＣＳＶは曲データ中継処理を実行する（Ｓ５０２）。具体的には、センタサーバＣＳＶはサブサーバＳＳＶ２に対して曲データＭ２１の曲データ転送要求を送信する（５０１３）。サブサーバＳＳＶ２は曲データ転送要求を受け、曲データ転送要求内の取得開始アドレス及びデータ長に基づいて曲データＭ２１をセンタサーバＣＳＶに配信する（Ｓ５０１４）。センタサーバＣＳＶはサブサーバＳＳＶ２から配信された曲データＭ２１をオーディオクライアントＣＬ２に配信する（Ｓ５０１５）。
【０２０２】
以上の動作によりＳ５０１においてセンタサーバＣＳＶはオーディオクライアントＣＬ２に曲データＭ２１を配信する。
【０２０３】
なお、オーディオクライアントＣＬ２がステップＳ２２４で曲再生を開始した後、ステップＳ２２６の曲データ転送要求を受けたセンタサーバＣＳＶは曲データ中継処理を実行し（Ｓ５０２）、曲データＭ２１の配信を継続する。
【０２０４】
以上の動作により、センタサーバＣＳＶがサブサーバＳＳＶ２とオーディオクライアントＣＬ２との間を中継することで、オーディオクライアントＣＬ２は曲データＭ２１を再生できる。
【０２０５】
なお、クライアントＣＬ２はグローバルリストＧＬから曲データＭ２１はサブサーバＳＳＶ２に蓄積されていることを認識できるため、クライアントＣＬ２が直接サブサーバＳＳＶ２に対して配信依頼処理を実行し（Ｓ２４０）、サブサーバＳＳＶ２が配信動作（Ｓ２００）を実行してもよい。この場合の動作は図１１と同じである。
【０２０６】
２．２．２．２．リスト更新処理
センタサーバシステム７０では、グローバルリストＧＬを作成するのはセンタサーバＣＳＶのみである。そのため、センタサーバＣＳＶが新たな曲データを登録した場合、センタサーバＣＳＶはＬＡＮ６０上の複数のサブサーバＳＳＶにリスト更新通知を送信する必要はなく、オーディオクライアントＣＬに対してのみリスト更新通知を行う。また、サブサーバＳＳＶからのリスト更新通知に対するセンタサーバＣＳＶの動作は図１９のサーバＳＶ２の動作と同じである。また、サブサーバＳＳＶの離脱時のセンタサーバＣＳＶの動作は図２０のサーバＳＶ１の動作と同じである。以下、センタサーバＣＳＶが新たな曲データＭ３１を登録した場合のセンタサーバＣＳＶのリスト更新動作について説明する。
【０２０７】
２．２．２．２．１．自己のサーバがリストを更新した場合
図３６を参照して、曲データＭ３１が更新された場合、センタサーバＣＳＶはローカルリストＬＬ３を更新し（Ｓ６０１）、既存のプレゼンテーションコンテンツリストＰＬを削除する（Ｓ６０２）。その後、新たなプレゼンテーションコンテンツリストＰＬを作成し（Ｓ６０３）、リスト更新通知処理を実行する（Ｓ３２０）。リスト更新通知処理はＬＡＮ６０上の複数のオーディオクライアントＣＬに対して行われる。
【０２０８】
２．２．２．３．終了動作
［クライアントＣＬが再生中でない場合のセンタサーバの終了動作］
図３７を参照して、ステップＳ４０１からオーディオクライアントＣＬが再生中でない場合（図３７におけるクライアントＣＬ２の場合）のセンタサーバＣＳＶの終了動作（Ｓ４０３、Ｓ４０５、Ｓ３３５、Ｓ４３１、Ｓ４３２、Ｓ１０００，Ｓ１０２０）については図２１と同じである。
【０２０９】
［サブサーバの曲データを配信中のセンタサーバの終了動作］
オーディオクライアントＣＬ１が曲データを再生中の場合（Ｓ４０３）、センタサーバＣＳＶはオーディオクライアントＣＬ１が再生中の曲データがセンタサーバＣＳＶ自身が蓄積する曲データであるか否かを判断する（Ｓ７０１）。判断の結果、センタサーバＣＳＶが蓄積する曲データでない場合、たとえば、オーディオクライアントＣＬ１が曲データＭ２１を再生していた場合、センタサーバＣＳＶは曲データＭ２１の中継処理を行っていることになる。このとき、センタサーバＣＳＶは取得開始アドレスを算出する（Ｓ４０５）。取得開始アドレスはセンタサーバＣＳＶがサブサーバＳＳＶ２から既に取得した曲データ長に基づいて算出される。算出された取得開始アドレスは再生要求コマンド内に含まれ、オーディオクライアントＣＬ１に送信される（Ｓ４０６）。なお、再生要求コマンド内には、センタサーバＣＳＶの引継サーバＳＶのサーバ特定情報も含まれる。センタサーバＣＳＶは自身が蓄積するサーバリスト内のサーバＩＤ＝１のサブサーバＳＳＶを引継サーバＳＶとする。サーバＩＤ＝１がサブサーバＳＳＶ１の場合、サブサーバＳＳＶ１はセンタサーバＣＳＶから離脱通知を受けたときに引継命令も受け、センタサーバＣＳＶとして動作する。
【０２１０】
再生コマンドを送信後、センタサーバＣＳＶはカウント値ｎをカウントアップしてステップＳ４０２に戻る。
【０２１１】
オーディオクライアントＣＬ１はセンタサーバＣＳＶから再生コマンドを受信後（Ｓ４２１）、センタサーバＣＳＶとの接続を切断する（Ｓ４２２）。切断後、引継サーバＳＶ（サブサーバＳＳＶ１）に対してクライアント接続依頼処理（Ｓ１２０）を実行し、引継サーバＳＶは接続動作（Ｓ１００）を実行することで、オーディオクライアントＣＬ１は引継サーバＳＶに対して接続を確立する。その後、オーディオクライアントＣＬ１は配信依頼動作（Ｓ２４０）を実行する。このとき、オーディオクライアントＣＬ１はステップＳ４２１で受信した取得開始アドレスをパラメータに曲データ転送要求を行う。引継サーバＳＶは曲データ転送要求内の取得開始アドレスに基づいて、配信動作を実行する（Ｓ５００）。以上の動作によりオーディオクライアントＣＬ１は曲データＭ２１の続きを引継サーバＳＶから取得でき、曲データＭ２１の再生を継続できる。
【０２１２】
［自己の曲データを配信中のセンタサーバの終了動作］
ステップＳ７０１での判断の結果、オーディオクライアントＣＬ１で曲データＭ３１が再生されている場合、センタサーバＣＳＶは自身が蓄積する曲データＭ３１を引継サーバＳＶへ送信する必要がある。そのため、センタサーバＣＳＶは曲データ引継処理を実行する（Ｓ４０４）。また、引継サーバＳＶは曲データ引受処理を実行する（Ｓ４１１）。曲データ引継処理後、センタサーバＣＳＶはステップＳ４０５へ進む。
【０２１３】
ステップＳ４０６で再生コマンドを送信後、センタサーバＣＳＶはカウント値ｎをカウントアップし（Ｓ４０７）、再びステップＳ４０２に戻って動作を繰り返す。これにより、センタサーバＣＳＶに接続されている全てのオーディオクライアントＣＬに対して終了動作を実行できる。全てのオーディオクライアントＣＬに対して終了動作を実行後、すなわち、カウント値ｎがクライアント接続数を超えたとき、（Ｓ４０２）、センタサーバＣＳＶは複数のサブサーバＳＳＶに離脱通知を送信し（Ｓ３３５）、その動作を終了する。
なお、センタサーバＣＳＶは離脱通知を他のサブサーバＳＳＶに送信するとき、引継サーバに対しては引継命令も送信する。
【０２１４】
２．２．３．起動処理後のサブサーバ動作
センタサーバシステム７０ではオーディオクライアントＣＬへのグローバルリストＧＬの送信及び曲データＭの送信はすべてセンタサーバＣＳＶが行う。そのため、センタサーバＣＳＶでは接続動作（Ｓ１００）やリスト更新動作（Ｓ５００）を行うことで、サブサーバＳＳＶから更新されたローカルリストＬＬを取得し、オーディオクライアントＣＬに最新のグローバルリストＧＬを配信する。一方、サブサーバＳＳＶも図３８に示すように、接続動作（Ｓ６５０）とリスト更新動作（Ｓ５５０）を行う。サブサーバＳＳＶはオーディオクライアントＣＬに対してグローバルリストＧＬを配信しないが、センタサーバＣＳＶが動作終了（Ｓ７００）を実行するとき、センタサーバＣＳＶに一番初めに接続したサブサーバＳＳＶがセンタサーバＣＳＶから引継命令を受ける。つまり、サブサーバＳＳＶはセンタサーバＣＳＶに変わる場合がある。そのため、サブサーバＳＳＶは自分が起動処理を行った後に起動したサブサーバＳＳＶのローカルリストＬＬを取得しておき、センタサーバＣＳＶから引継命令を受けたときセンタサーバとして機能できるように準備する。
【０２１５】
ステップＳ６５０の接続動作及びステップＳ５５０のリスト更新処理を実行後、サブサーバＳＳＶはセンタサーバＣＳＶから引継命令を受けたか否かを判断する（Ｓ２１）。引継命令を受けた場合、サブサーバＳＳＶはセンタサーバＣＳＶとしてセンタサーバの動作を実行する（Ｓ５０）。一方、引継命令を受けなくても、サブサーバＳＳＶ自身に対して接続されたサーバ（センタサーバＣＳＶ及び他のサブサーバＳＳＶ）が存在しない場合もそのサブサーバＳＳＶはセンタサーバＣＳＶとしてセンタサーバの動作を実行する。当該サブサーバＳＳＶ自身に対して接続されたサーバＳＶが存在するか否かはサーバリストに基づいて判断される。
【０２１６】
サブサーバＳＳＶが動作を終了する場合であって（Ｓ２３）、かつ、サブサーバＳＳＶがセンタサーバＣＳＶに曲データＭを配信していないときは（Ｓ２４）、離脱通知を送信した後（Ｓ３３５）、動作を終了する。一方、センタサーバＣＳＶに曲データＭを配信している場合、その曲データＭの引き継ぎをセンタサーバＣＳＶにした後（Ｓ７５０）、動作を終了する。
【０２１７】
以下、接続動作（Ｓ６５０）、リスト更新動作（Ｓ５５０）、終了動作（Ｓ７５０）について説明する。
【０２１８】
２．２．３．１．接続動作
図３９を参照して、稼働中のサブサーバＳＳＶ１がサーバ探索のマジックワードを受信したとき（Ｓ６５１）、サブサーバＳＳＶ１は応答しない、又は、自身がサブサーバＳＳＶである旨の応答を行う（Ｓ６５２）。これによりオーディオクライアントＣＬはサブサーバＳＳＶには接続できない。
【０２１９】
次に、マジックワードをブロードキャストしたのが起動サーバＳＶであるかクライアントＣＬであるか判断する（Ｓ６５３）。サブサーバＳＳＶは起動サーバＳＶ（他のサブサーバＳＳＶ）から探索用のマジックワードを受けるポートと、オーディオクライアントＣＬから探索用のマジックワードを受けるポートとを分けているため、ステップＳ６５３の判断ができる。なお、起動サーバＳＶとオーディオクライアントＣＬの探索用のマジックワードが異なっていることで、サブサーバＳＳＶがＳ６５３の判断ができるようにしてもよい。
【０２２０】
ステップＳ６５３での判断の結果、ブロードキャストしたのがオーディオクライアントＣＬである場合、サブサーバＳＳＶ１は接続動作を終了する。一方、判断の結果、ブロードキャストしたのが起動サーバＳＶ（サブサーバＳＳＶ２とする）である場合、サブサーバＳＳＶ２はサブサーバＳＳＶ１よりも後で起動したことになる。このとき、サブサーバＳＳＶ１は自分より後に起動したサブサーバＳＳＶ２のサーバ特定情報をサーバリストに登録する（Ｓ６５４）。サーバ特定情報はマジックワードとともにブロードキャストされる。
【０２２１】
続いて、サブサーバＳＳＶ１はローカルリストＬＬ２を取得するため、サブサーバＳＳＶ２に対して接続処理（Ｓ１０００）を実行する。起動サーバＳＶであるサブサーバＳＳＶ２がセンタサーバＣＳＶとの接続処理を実施中（つまり、起動処理中）の場合、サブサーバＳＳＶ１がサブサーバＳＳＶ２に接続処理（Ｓ１０００）を実行しても接続は失敗する。この場合、サブサーバＳＳＶ１はサブサーバＳＳＶ２から準備ＯＫコマンドを受けた後（Ｓ６５６）、再び接続処理を実行する（Ｓ１０００）。接続に成功した場合（Ｓ６５５）、サブサーバＳＳＶ１は接続したサブサーバＳＳＶ２からローカルリストＬＬ２を取得し、ＨＤＤ１４に格納する（Ｓ１０１０）。
【０２２２】
以上の動作により、サブサーバＳＳＶは自身が起動した後に起動したサブサーバＳＳＶのローカルリストＬＬを全て取得し、ＨＤＤ１４内に蓄積する。引継指令を受けた等によりセンタサーバＣＳＶとなったときに、取得したローカルリストＬＬからグローバルリストＧＬを作成し、複数のオーディオクライアントＣＬに送信する必要があるからである。なお、サブサーバＳＳＶは自身が起動する前に既に起動していたサーバＳＶ（センタサーバＣＳＶ又はサブサーバＳＳＶ）のローカルリストＬＬは取得しない。センタサーバシステム７０ではセンタサーバＣＳＶが引き継がれるとき、起動したサーバＳＶ順に引き継がれる。よって、あるサブサーバＳＳＶがセンタサーバＣＳＶになるときは、そのサブサーバＳＳＶ以前に起動したサーバＳＶはすべてＬＡＮ６０から離脱している。そのため、自身の起動前に既に起動しているサーバＳＶのローカルリストＬＬは取得しなくてよい。
【０２２３】
２．２．３．２．リスト更新動作
２．２．３．２．１．自己のローカルリストが更新された場合
サブサーバＳＳＶは自己の曲データを更新したとき、リスト更新通知をセンタサーバＣＳＶと自分よりも先に起動したサブサーバＳＳＶに送信する。
【０２２４】
図４０を参照して、サブサーバＳＳＶ１が自己の曲データを更新したとき、サブサーバＳＳＶ１はローカルリストＬＬ１を更新する（Ｓ５５１）。次に、サブサーバＳＳＶ１は既存のプレゼンテーションコンテンツリストＰＬを削除する（Ｓ５５２）。サブサーバＳＳＶ１のプレゼンテーションコンテンツリストＰＬには、サブサーバＳＳＶ１自身のローカルリストＬＬ１の格納場所及びサブサーバＳＳＶ１の起動後に起動した他のサブサーバＳＳＶのローカルリストＬＬの格納場所が記録される。プレゼンテーションコンテンツリストＰＬを削除後、サブサーバＳＳＶ１は更新されたローカルリストＬＬ１に基づいて、新たなプレゼンテーションコンテンツリストＰＬを作成する（Ｓ５５３）。プレゼンテーションコンテンツリストを作成するのは、自身がセンタサーバＣＳＶとなったときに必要だからである。プレゼンテーションコンテンツリストＰＬを作成後、サブサーバＳＳＶ１はリスト更新通知を送信する（Ｓ５５４）。リスト更新通知は、サブサーバＳＳＶ１内のクライアントリストに登録された複数のサーバＳＶに対して送信される。
【０２２５】
２．２．３．２．２．他のサーバのローカルリストが更新された場合
サブサーバＳＳＶ１は自分より後に起動したサブサーバＳＳＶからリスト更新通知を受ける。図４１を参照して、サブサーバＳＳＶ１、ＳＳＶ２の順に起動したセンタサーバシステム７０において、サブサーバＳＳＶ２が新たな曲データを登録したとき、サブサーバＳＳＶ２は自身より先に起動したセンタサーバＣＳＶ及びサブサーバＳＳＶ１に対してリスト更新通知を送信する（Ｓ５５５）。サブサーバＳＳＶ１はリスト更新通知を受信後（Ｓ５５６）、既存のプレゼンテーションコンテンツリストＰＬを削除する（Ｓ５５７）。続いて、サブサーバＳＳＶ１はサブサーバＳＳＶ２のローカルリストＬＬ２を削除する（Ｓ５５８）。ローカルリストＬＬ２を削除後、サブサーバＳＳＶ１はサブサーバＳＳＶ２に対して更新されたローカルリストＬＬ２の転送要求コマンドを送信する（Ｓ５５９）。サブサーバＳＳＶ２は転送要求コマンドを受信後（Ｓ５６０）、更新されたローカルリストＬＬ２をサブサーバＳＳＶ１に送信する（Ｓ５６１）。サブサーバＳＳＶ１は更新されたローカルリストＬＬ２を受信後（Ｓ５６２）、プレゼンテーションコンテンツリストＰＬを作成する（Ｓ５６３）。
【０２２６】
以上の動作により、サブサーバＳＳＶ１はセンタサーバＣＳＶから引継命令を受けて、自身がセンタサーバＣＳＶとして動作することになっても、最新のグローバルリストＧＬをクライアントＣＬに送信できる。
【０２２７】
２．２．３．２．３．他のサーバが離脱した場合
図４２を参照して、サブサーバＳＳＶ１、ＳＳＶ２の順に起動したセンタサーバシステム７０において、サブサーバＳＳＶ２が動作を終了し、ＬＡＮ６０から離脱するとき、サブサーバＳＳＶ２は自身より先に起動したサーバＳＶに対して離脱通知を送信する（Ｓ５６４）。離脱通知は、サブサーバＳＳＶ２内のクライアントリストに登録された全てのサーバＳＶに対して送信される。サブサーバＳＳＶ１は離脱通知を受けた後（Ｓ５６５）、既存のプレゼンテーションコンテンツリストＰＬを削除する（Ｓ５６６）。その後、ＨＤＤ１４に登録したローカルリストＬＬ２を削除する（Ｓ５６７）。ローカルリストＬＬ２を削除後、サブサーバＳＳＶ１はプレゼンテーションコンテンツリストＰＬを作成する（Ｓ５６８）。
【０２２８】
２．２．３．３．終了動作
図４３を参照して、サブサーバＳＳＶ１が動作を終了するとき、サブサーバＳＳＶ１はセンタサーバＣＳＶに対して自身が蓄積する曲データを配信中であるか否か判断する（Ｓ７５１）。曲データを配信していない場合、サブサーバＳＳＶ１はサブサーバＳＳＶ１より前に起動したサーバＳＶに対して離脱通知を送信後（Ｓ７５７）、動作を終了する。一方、曲データＭ１１を配信中である場合、サブサーバＳＳＶ１は曲データＭ１１の登録要求コマンドをセンタサーバＣＳＶに送信する（Ｓ７５２）。センタサーバＣＳＶは要求コマンドを受け、ＨＤＤ１４内に新規曲ＩＤを登録する（Ｓ７５３）。登録後、センタサーバＣＳＶは新規曲ＩＤをサブサーバＳＳＶ１に送信する（Ｓ７５４）。サブサーバＳＳＶ１は新規曲ＩＤを受け、曲データＭ１１に新規曲ＩＤを付与してセンタサーバＣＳＶに送信する（Ｓ７５５）。送信後、サブサーバＳＳＶ１は離脱通知を送信して（Ｓ７５７）、動作を終了する。センタサーバＣＳＶは曲データＭ１１を受信し、ＨＤＤ１４内の新規曲ＩＤが付与された曲データを格納する場所に曲データＭ１１を登録する（Ｓ７５６）。
【０２２９】
以上の動作により、サブサーバＳＳＶ１が自身の曲データＭを配信中の場合であっても、ＬＡＮ６０上から離脱できる。
【０２３０】
２．３．コントローラを含むセンタサーバシステム
上記で説明したセンタサーバシステム７０は、図４４に示すようにコントローラＣＮを備えてもよい。コントローラＣＮはセンタサーバＳＶと接続し、サーバＳＶを介してオーディオクライアントＣＬを制御する。コントローラＣＮの構成は図２５と同じである。コントローラＣＮはコントローラ用サーバリスト及びグローバルリストを持つ。なお、図４４では１つのコントローラＣＮを示したが、複数あってもよい。
【０２３１】
コントローラＣＮがオーディオクライアントＣＬ２に曲データＭ２１に基づく曲を再生させる場合、コントローラＣＮはオーディオクライアントＣＬ２に再生コマンドを送信する。具体的には、コントローラＣＮはセンタサーバＣＳＶを介してオーディオクライアントＣＬ２に再生コマンドを送信する（１）。再生コマンドを受けたオーディオクライアントＣＬ２の動作は図３１中の（Ｂ）及び（Ｃ）と同じである。
【０２３２】
２．３．１．システム動作
コントローラＣＮは、センタサーバＣＳＶと接続し、ハンドル取得処理を実行する。ハンドル取得処理は図２７と同じである。図２７におけるサーバＳＶ２の動作をセンタサーバＣＳＶが実行する。センタサーバシステム７０の全てのオーディオクライアントＣＬ１〜ＣＬ３はセンタサーバＣＳＶと接続されている。そのため、コントローラＣＮはセンタサーバＣＳＶに対してハンドル取得処理を実行すれば、オーディオクライアントＣＬ１〜ＣＬ３の監視ハンドル及び制御ハンドルを取得できる。
【０２３３】
また、グローバルリストＧＬの取得動作及び更新動作は１．４．３．２．と同じである。ただし、グローバルリストＧＬを送信するサーバはセンタサーバＣＳＶである。
【０２３４】
監視ハンドルを取得したコントローラＣＮは、オーディオクライアントＣＬを監視できる。コントローラＣＮの監視動作は図２８と同じである。センタサーバシステム７０では、図２８中のサーバＳＶ２の動作をセンタサーバＣＳＶが実行する。
【０２３５】
また、制御ハンドルを取得したコントローラＣＮは、オーディオクライアントＣＬを制御できる。図４５を参照して、コントローラＣＮは再生コマンドをセンタサーバＣＳＶに送信する（Ｓ７６０３）。サーバＳＶ２はコントローラＣＮから送信された再生コマンドをオーディオクライアントＣＬ２に送信する（Ｓ７６０４）。
【０２３６】
再生コマンドを受けたオーディオクライアントＣＬ２は曲データを取得して再生するために、配信依頼処理を実行する（Ｓ２４０）。このときセンタサーバＣＳＶは配信動作を実行する（Ｓ５００）。
【０２３７】
以上の動作により、コントローラＣＮは制御ハンドルを取得したオーディオクライアントＣＬに対して、再生や再生停止を指示できる。すなわち、オーディオクライアントを制御できる。
【０２３８】
３．他の実施の形態
３．１．ファイル共有サーバシステム
ファイル共有サーバシステムは、ＳＭＢ（Server Message Block）やＣＩＦＳ（Common Internet File System）といったファイル共有プロトコルを利用する。図４６（Ａ）を参照して、サーバＳＶ２は自身が蓄積する曲データＭ２１〜Ｍ２ｎのリストと、サーバＳＶ１及びサーバＳＶ３が蓄積する曲データＭ１１〜Ｍ１ｎ，Ｍ３１〜Ｍ３ｎのリストとを有する。つまり、サーバＳＶ２はサーバＳＶ１及びサーバＳＶ３が蓄積するファイルを共有できる。サーバＳＶ２はクライアントＣＬ２からのリスト要求に応じて、リストをクライアントＣＬ２に提供する。クライアントＣＬ２はリストに基づいて所望の曲データＭ３１を要求する。図４６（Ｂ）を参照して、サーバＳＶ２は要求を受け、サーバＳＶ３内の曲データＭ３１を取得して、クライアントＣＬ２に配信する。
【０２３９】
ファイル共有サーバシステムでは、サーバＳＶ１及びサーバＳＶ３は単なる曲データを蓄積する装置として機能する。そのため、たとえばサーバＳＶ１に新たな曲データを登録しても、サーバＳＶ１はサーバＳＶ２に更新通知を送信しない。
【０２４０】
なお、サーバＳＶ１及びＳＶ３もサーバＳＶ２と同様に当該他のサーバＳＶのファイルを共有できてもよい。
【０２４１】
３．２．ローカルリスト送信システム
ローカルリスト送信システムは、オーディオクライアントＣＬが複数のサーバＳＶから複数のローカルリストＬＬを取得することで、ＬＡＮ上に蓄積された全ての曲データＭを選択できるシステムである。
【０２４２】
図４７（Ａ）を参照して、ローカルリスト送信システム３０では、各サーバＳＶは自身が蓄積する曲データのローカルリストＬＬのみ保有する。オーディオクライアントＣＬ２がローカルリストＬＬを要求すると（図中（１））、図４７（Ｂ）に示すように、各サーバＳＶ１〜ＳＶ３はオーディオクライアントＣＬ２にローカルリストＬＬ１〜ＬＬ３を送信する（図中（２））。オーディオクライアントＣＬ２は全てのローカルリストＬＬ１〜ＬＬ３を取得後、それらのリストに基づいて曲を選択する。選択した曲が曲データＭ３１である場合、図４７（Ｃ）に示すようにオーディオクライアントＣＬ２はサーバＳＶ３に対して曲データＭ３１を要求し（図中（３））、サーバＳＶ３は要求に応じて曲データＭ３１を送信する（図中（４））。
【０２４３】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【０２４４】
例えば、センタサーバを引継ぐ際に、クライアントが再生中の曲だけでなく、クラインアントが再生予定である曲を引継サーバに送信してもよい。さらに、センタサーバシステムにおいて、クライアントがサブサーバに直接曲を要求してもよいが、その場合、クライアントはセンタサーバとプッシュポートで接続しておくことにより、センタサーバからリスト更新の通知を直ぐに受けることができる。さらに、センタサーバシステムにおいて、クライアントは起動時にセンタサーバと自動的に接続するようにしてもよい。さらに、センタサーバシステムにおいて、複数のサーバグループが存在し、その各グループにそれぞれセンタサーバが設けられていてもよい。さらに、クライアントがサーバを探索する際に、センタサーバシステムにおいては少なくともセンタサーバがクライアントに応答すればよい。しかし、クライアントがセンタサーバに対応していない場合には、マジックワードの属性（センタサーバに対応していない旨の属性）を判断することにより、サブサーバがクライアントに応答するようにしてもよい。さらに、サーバはクライアントの情報（接続情報、ステータス（再生中、停止中等）、クライアントのタイプ、ボリューム、プロダクトＩＤ、ファームウェアＩＤ、クライアント名、再生ファイル名および／またはリスト作成用のリスト構築キー）を有しており、グローバルリストサーバシステムにおいては、各サーバが他のサーバが有するクライアント情報を有し、センタサーバシステムにおいては、センタサーバが全サブサーバのクライアント情報を有することもできる。これにより、クライアントの状態を監視するためのコントローラを有するシステムにおいては、コントローラは、１つのサーバ（センタサーバシステムにおいてはセンタサーバ）に接続すれば、全てのクライアントの情報を監視することができる。なお、クライアント情報の共有、更新などの方法はコンテンツリストの共有、更新方法と同じ方法で実現することができる。さらに、コンテンツリストの中にクライアント情報が含まれていてもよい。
【図面の簡単な説明】
【０２４５】
【図１】グローバルリストサーバシステムの全体構成を示す機能ブロック図である。
【図２】図１のグローバルリストサーバシステムを説明するための概略図である。
【図３】図１中のサーバの構成を示す機能ブロック図である。
【図４】図１中のオーディオクライアントの構成を示すブロック図である。
【図５】図１中のマルチサーバシステムでサーバが起動するときの動作を示すフロー図である。
【図６】図５中のステップＳ１０の動作の詳細を示すフロー図である。
【図７】図５中のステップＳ１１の動作の詳細を示すフロー図である。
【図８】図１中のマルチサーバシステムで稼働中のサーバの動作を示すフロー図である。
【図９】図８中のステップＳ１００の動作のうち、他のサーバから接続依頼を受けたサーバの動作の詳細を示すフロー図である。
【図１０】図８中のステップＳ１００の動作のうち、オーディオクライアントから接続依頼を受けたサーバの動作の詳細を示すフロー図である。
【図１１】図８中のステップＳ２００の動作の詳細を示すフロー図である。
【図１２】図１１中のステップＳ２２２で曲データを格納するためのバッファメモリの構成を示す図である。
【図１３】図１２に示したバッファメモリにおいて、曲の先頭から１バッファ分の曲データを格納した状態を示す図である。
【図１４】図１３に続き、全バッファ分の曲データを格納した状態を示す図である。
【図１５】図１４に続き、先頭バッファから曲データを出力する状態を示す図である。
【図１６】図１５に続き、１バッファ分の空きが生じた状態を示す図である。
【図１７】図８中のステップＳ３００の動作のうち、サーバ自身の曲データが更新された場合の更新動作を示すフロー図である。
【図１８】図１７中のステップＳ３０６以降のサーバとオーディオクライアントとの動作を示すフロー図である。
【図１９】図８中のステップＳ３００の動作のうち、他のサーバの曲データが更新された場合の更新動作を示すフロー図である。
【図２０】図８中のステップＳ３００の動作のうち、他のサーバがＬＡＮから離脱する場合の更新動作を示すフロー図である。
【図２１】図８中のステップＳ４００の終了動作の詳細を示すフロー図である。
【図２２】図２１中のステップＳ４０４及びＳ４１１の動作の詳細を示すフロー図である。
【図２３】コントローラを含むグローバルサーバシステムの全体構成を示す機能ブロック図である。
【図２４】図２３中のサーバとオーディオクライアントとコントローラとの接続関係を説明するための概略図である。
【図２５】図２３中のコントローラの構成を示す機能ブロック図である。
【図２６】図２３に示したグローバルサーバシステムのハンドル取得動作を示すフロー図である。
【図２７】図２６中のステップＳ７３の動作の詳細を示すフロー図である。
【図２８】図２３に示したグローバルサーバシステムの監視動作を示すフロー図である。
【図２９】図２３に示したグローバルサーバシステムの制御動作を示すフロー図である。
【図３０】センタサーバシステムの全体構成を示す機能ブロック図である。
【図３１】図３０のセンタサーバシステムを説明するための概略図である。
【図３２】図３０に示したセンタサーバシステムでサーバが起動するときの動作を示すフロー図である。
【図３３】図３０に示したセンタサーバシステムで稼働中のセンタサーバの動作を示すフロー図である。
【図３４】図３３中のステップＳ５００の動作の詳細を示すフロー図である。
【図３５】図３４中のステップＳ５０１の動作の詳細を示すフロー図である。
【図３６】図３５中のステップＳ６００の更新動作のうち、センタサーバが自己のローカルリストを更新したときの更新動作の詳細を示すフロー図である。
【図３７】図３３中のステップＳ７００の終了動作の詳細を示すフロー図である。
【図３８】図３０に示したセンタサーバシステムで稼働中のサブサーバの動作を示すフロー図である。
【図３９】図３８中のステップＳ６５０の動作の詳細を示すフロー図である。
【図４０】図３８中のステップＳ５５０のリスト更新動作のうち、自己のローカルリストがされた場合のリスト更新動作の詳細を示すフロー図である。
【図４１】図３８中のステップＳ５５０のリスト更新動作のうち、他のサブサーバのローカルリストが更新された場合のリスト更新動作の詳細を示すフロー図である。
【図４２】図４０中のステップＳ５５０のリスト更新動作のうち、他のサブサーバがＬＡＮを離脱する場合のリスト更新動作の詳細を示すフロー図である。
【図４３】図３８中のステップＳ７５０の終了動作の詳細を示すフロー図である。
【図４４】コントローラを含むセンタサーバシステムの全体構成を示す機能ブロック図である。
【図４５】図４４に示したセンタサーバシステムの制御動作を示すフロー図である。
【図４６】ファイル共有サーバシステムを説明するための概略図である。
【図４７】ローカルリスト送信サーバシステムを説明するための概略図である。
【図１】
0004026668.tif 000012
【図２】
0004026668.tif 000013
【図３】
0004026668.tif 000014
【図４】
0004026668.tif 000015
【図５】
0004026668.tif 000016
【図６】
0004026668.tif 000017
【図７】
0004026668.tif 000018
【図８】
0004026668.tif 000019
【図９】
0004026668.tif 000020
【図１０】
0004026668.tif 000021
【図１１】
0004026668.tif 000022
【図１２】
0004026668.tif 000023
【図１３】
0004026668.tif 000024
【図１４】
0004026668.tif 000025
【図１５】
0004026668.tif 000026
【図１６】
0004026668.tif 000027
【図１７】
0004026668.tif 000028
【図１８】
0004026668.tif 000029
【図１９】
0004026668.tif 000030
【図２０】
0004026668.tif 000031
【図２１】
0004026668.tif 000032
【図２２】
0004026668.tif 000033
【図２３】
0004026668.tif 000034
【図２４】
0004026668.tif 000035
【図２５】
0004026668.tif 000036
【図２６】
0004026668.tif 000037
【図２７】
0004026668.tif 000038
【図２８】
0004026668.tif 000039
【図２９】
0004026668.tif 000040
【図３０】
0004026668.tif 000041
【図３１】
0004026668.tif 000042
【図３２】
0004026668.tif 000043
【図３３】
0004026668.tif 000044
【図３４】
0004026668.tif 000045
【図３５】
0004026668.tif 000046
【図３６】
0004026668.tif 000047
【図３７】
0004026668.tif 000048
【図３８】
0004026668.tif 000049
【図３９】
0004026668.tif 000050
【図４０】
0004026668.tif 000051
【図４１】
0004026668.tif 000052
【図４２】
0004026668.tif 000053
【図４３】
0004026668.tif 000054
【図４４】
0004026668.tif 000055
【図４５】
0004026668.tif 000056
【図４６】
0004026668.tif 000057
【図４７】
0004026668.tif 000058