(57)【要約】【課題】ポート番号の設定にかかる手間を軽減したサーバクライアントシステムを提供する。【解決手段】サーバ側には全てのポート番号を設定するが（Ｓ１０１）、クライアント側には１つだけポート番号を設定する（Ｓ２０１）。クライアントはこのポート番号を使用してサーバを探索する（Ｓ２０２）。サーバはこの探索に応答し、クライアント側に設定されていない残りのポート番号をクライアントに通知する（Ｓ１０２）。クライアントはこの通知されたポート番号を使用してサーバとの間で接続を確立する（Ｓ２０８）。これにより、クライアント側に全てのポート番号を設定する必要がなくなる。【選択図】        図４
2004187263.tif 000002
【特許請求の範囲】
【請求項１】
サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
前記サーバは、
第１のポート番号を使用して第２のポート番号を送信するポート番号送信手段を含み、
前記クライアントは、
前記サーバから送信された前記第２のポート番号を使用して前記サーバと通信する通信手段を含むことを特徴とするサーバクライアントシステム。
【請求項２】
請求項１に記載のサーバクライアントシステムであって、
前記ポート番号送信手段は、第１又は第２の値を有する識別情報を前記クライアントに送信し、
前記通信手段は、前記サーバから送信された前記識別情報が第１の値を有するとき前記第２のポート番号を使用して前記サーバと通信し、前記識別情報が第２の値を有するとき予め定められた第３のポート番号を使用して前記サーバと通信することを特徴とするサーバクライアントシステム。
【請求項３】
サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
前記サーバは、
現在使用しているポート番号及び過去に使用していたポート番号を使用して前記クライアントからの通信を待ち受ける手段を含み、
前記クライアントは、
ポート番号を記憶するためのポート番号記憶手段に記憶されたポート番号を使用して前記サーバと通信する手段を含み、
前記サーバはさらに、
前記クライアントからの通信を受けると、前記現在使用しているポート番号を前記クライアントに送信する手段を含み、
前記クライアントはさらに、
前記ポート番号記憶手段に記憶されたポート番号を前記サーバから送信されたポート番号に書き換える手段を含むことを特徴とするサーバクライアントシステム。
【請求項４】
サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
前記サーバは、
複数のポート番号の中から使用可能なポート番号を選択し、その選択したポート番号を使用して前記クライアントからの通信を待ち受ける手段を含み、
前記クライアントは、
前記複数のポート番号の中から使用すべきポート番号を選択し、その選択したポート番号を使用して前記サーバと通信する手段を含み、
前記サーバはさらに、
前記クライアントからの通信を受けると、前記クライアントに応答する手段を含み、
前記クライアントはさらに、
前記サーバからの応答がない場合、前記使用すべきポート番号を変更する手段を含むことを特徴とするサーバクライアントシステム。
【請求項５】
請求項３又は請求項４に記載のサーバクライアントシステムであって、
前記サーバはさらに、
前記ポート番号を使用して別のポート番号を送信する手段を含み、
前記クライアントはさらに、
前記サーバから送信された前記別のポート番号を使用して前記サーバと通信する手段を含むことを特徴とするサーバクライアントシステム。
【請求項６】
所定のサービスを提供するためのサーバアプリケーションプログラムがインストールされたサーバと、前記サーバに接続され、前記サービスを提供するためのクライアントアプリケーションプログラムがインストールされたクライアントとを備えたサーバクライアントシステムであって、
前記サーバクライアントシステムはさらに、
前記サービスに関する設定情報及びその設定情報の更新時期を管理するガイダンスマスタアプリケーションプログラム及びガイダンスサーバアプリケーションプログラムとを備え、
前記ガイダンスマスタアプリケーションプログラムは、
前記ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含み、
前記クライアントアプリケーションプログラムは、
前記ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含み、
前記ガイダンスサーバアプリケーションプログラムは、
前記問い合わせに応じてその設定情報及び更新時期を回答するステップを含み、
前記ガイダンスマスタアプリケーションプログラムはさらに、
前記回答された更新時期を自身が管理している更新時期と比較し、前記回答された更新時期が自身が管理している更新時期よりも古い場合、自身が管理している設定情報で前記ガイダンスサーバアプリケーションプログラムが管理している設定情報を更新させるステップを含み、
前記クライアントアプリケーションプログラムはさらに、
前記回答された前記更新時期を自身が管理している更新時期と比較し、前記回答された更新時期が自身が管理している更新時期よりも新しい場合、前記回答された設定情報で自身が管理している設定情報を更新するステップを含むことを特徴とするサーバクライアントシステム。
【請求項７】
請求項６に記載のサーバクライアントシステムであって、
前記設定情報はポート番号を含み、
前記ガイダンスサーバアプリケーションプログラムは前記クライアントにインストールされたことを特徴とするサーバクライアントシステム。
【請求項８】
請求項７に記載のサーバクライアントシステムであって、
前記クライアントは複数設けられたことを特徴とするサーバクライアントシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバクライアントシステムに関し、さらに詳しくは、サーバクライアント環境で動作するネットワークオーディオシステムにおけるポート設定の改良に関する。
【０００２】
【従来の技術】
現在、サーバクライアント環境で動作するネットワークオーディオシステムが提供されている。ネットワークオーディオシステムは、音楽コンテンツを蓄積するコンテンツサーバと、音楽を再生するオーディオクライアントとを備える。コンテンツサーバ及びオーディオクライアントは特定の通信プロトコルに従って相互に通信を行う。
【０００３】
たとえばＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を通信プロトコルに採用した場合、コンテンツサーバ及びオーディオクライアントの各々にはネットワーク内で一意のＩＰアドレスが付与される。コンテンツサーバ及びオーディオクライアントはこのＩＰアドレスで互いを識別する。また、コンテンツサーバ及びオーディオクライアントはデータを送受信するためのポートを複数有する。ＴＣＰ／ＩＰでは、これらのポートに０〜６５５３５のポート番号が割り当てられる。
【０００４】
オーディオクライアントがコンテンツサーバに何かを要求する場合、オーディオクライアントはコンテンツサーバのＩＰアドレス及びポート番号を特定することにより特定のコンテンツサーバに特定のポートでデータを送信する。逆に、コンテンツサーバがオーディオクライアントの要求に応答する場合、コンテンツサーバはオーディオクライアントのＩＰアドレス及びポート番号を特定することにより特定のオーディオクライアントに特定のポートでデータを送信する。
【０００５】
上記のようなデータの送受信を可能とするためには、通常はコンテンツサーバ及びオーディオクライアント間でポートを１つ確保すれば足りるが、アプリケーションプログラムによっては複数のポートを確保しなければならない場合もある。この場合、ユーザはコンテンツサーバだけでなくオーディオクライアントごとに複数のポート番号を設定する必要がある。しかしながら、ネットワーク上に多数存在するオーディオクライアント１台ずつに複数のポート番号を設定するのは非常に手間のかかる作業であり、誤ったポート番号を設定してしまう可能性も高い。
【０００６】
また、アプリケーションプログラムのバージョンアップ等の理由により、使用するポート番号を変更しなければならない場合がある。この場合も同様に、各オーディオクライアントに設定されたポート番号を変更するのは非常に手間のかかる作業である。
【０００７】
また、コンテンツサーバに本来のアプリケーションプログラム以外に別のアプリケーションプログラムがインストールされていると、本来のアプリケーションプログラムが使用する予定のポート番号を別のアプリケーションプログラムが先に使用してしまっている場合もある。この場合も同様に、各オーディオクライアントに設定されたポート番号を変更するのは非常に手間のかかる作業である。
【０００８】
【特許文献１】
特開２００１−３０８９３４
【０００９】
【発明が解決しようとする課題】
本発明の目的は、ポート番号等の設定にかかる手間を軽減したサーバクライアントシステムを提供することである。
【００１０】
【課題を解決するための手段】
本発明によるサーバクライアントシステムは、サーバとサーバに接続されたクライアントとを備える。サーバは、第１のポート番号を使用して第２のポート番号を送信するポート番号送信手段を含む。クライアントは、サーバから送信された第２のポート番号を使用してサーバと通信する通信手段を含む。
【００１１】
このサーバクライアントシステムでは、サーバからクライアントに第１のポート番号を使用して第２のポート番号が通知されるので、第２のポート番号はクライアントに設定する必要がない。その結果、ポート番号の設定にかかる手間を軽減することができる。
【００１２】
好ましくは、ポート番号送信手段は、第１又は第２の値を有する識別情報をクライアントに送信する。通信手段は、サーバから送信された識別情報が第１の値を有するとき第２のポート番号を使用してサーバと通信し、識別情報が第２の値を有するとき予め定められた第３のポート番号を使用してサーバと通信する。
【００１３】
この場合、識別情報が第１の値を有するときクライアントはサーバから通知された第２のポート番号を使用するが、識別情報が第２の値を有するときクライアントは予め定められた第３のポート番号を使用する。したがって、本発明に係る機能を有していない旧版のサーバである場合には、クライアントは従来通り第３のポート番号を使用することができる。よって、本システムは上位互換性を有する。
【００１４】
本発明によるもう１つのサーバクライアントシステムは、サーバとサーバに接続されたクライアントとを備える。サーバは、現在使用しているポート番号及び過去に使用していたポート番号を使用してクライアントからの通信を待ち受ける手段を含む。クライアントは、ポート番号を記憶するためのポート番号記憶手段に記憶されたポート番号を使用してサーバと通信する手段を含む。サーバはさらに、クライアントからの通信を受けると、現在使用しているポート番号をクライアントに送信する手段を含む。クライアントはさらに、ポート番号記憶手段に記憶されたポート番号をサーバから送信されたポート番号に書き換える手段を含む。
【００１５】
このサーバクライアントシステムでは、サーバは現在使用しているポート番号だけでなく過去に使用していたポート番号でもクライアントからの通信を待ち受けているので、使用するポート番号が変更され、過去に使用されていた古いポート番号しか知らないクライアントであってもサーバと通信することができる。しかも、サーバからクライアントに現在使用されている新しいポート番号が通知され、クライアントに記憶されているポート番号が書き換えられるので、次回、クライアントは新しいポート番号を使用してサーバと通信することができる。その結果、この場合もポート番号の設定にかかる手間を軽減することができる。
【００１６】
本発明によるさらにもう１つのサーバクライアントシステムは、サーバとサーバに接続されたクライアントとを備える。サーバは、複数のポート番号の中から使用可能なポート番号を選択し、その選択したポート番号を使用してクライアントからの通信を待ち受ける手段を含む。クライアントは、複数のポート番号の中から使用すべきポート番号を選択し、その選択したポート番号を使用してサーバと通信する手段を含む。サーバはさらに、クライアントからの通信を受けると、クライアントに応答する手段を含む。クライアントはさらに、サーバからの応答がない場合、使用すべきポート番号を変更する手段を含む。
【００１７】
このサーバクライアントシステムでは、サーバは複数のポート番号のうち使用可能なポート番号を使用してクライアントからの通信を待ち受ける一方、クライアントは複数のポート番号を順に使用してサーバと通信するので、複数のポート番号のうちいくつかを他のアプリケーションプログラムが既に使用していたとしても、クライアントはサーバと確実に通信することができる。その結果、この場合もポート番号の設定にかかる手間を軽減することができる。
【００１８】
本発明によるさらにもう１つのサーバクライアントシステムは、所定のサービスを提供するためのサーバアプリケーションプログラムがインストールされたサーバと、サーバに接続され、サービスを提供するためのクライアントアプリケーションプログラムがインストールされたクライアントとを備える。サーバクライアントシステムはさらに、サービスに関する設定情報及びその設定情報の更新時期を管理するガイダンスマスタアプリケーションプログラム及びガイダンスサーバアプリケーションプログラムとを備える。ガイダンスマスタアプリケーションプログラムは、ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含む。クライアントアプリケーションプログラムは、ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含む。ガイダンスサーバアプリケーションプログラムは、問い合わせに応じてその設定情報及び更新時期を回答するステップを含む。ガイダンスマスタアプリケーションプログラムはさらに、回答された更新時期を自身が管理している更新時期と比較し、回答された更新時期が自身が管理している更新時期よりも古い場合、自身が管理している設定情報でガイダンスサーバアプリケーションプログラムが管理している設定情報を更新させるステップを含む。クライアントアプリケーションプログラムはさらに、回答された更新時期を自身が管理している更新時期と比較し、回答された更新時期が自身が管理している更新時期よりも新しい場合、回答された設定情報で自身が管理している設定情報を更新するステップを含む。
【００１９】
このサーバクライアントシステムでは、ガイダンスマスタアプリケーションプログラムがガイダンスサーバアプリケーションプログラムに設定情報及び更新時期を問い合わせ、ガイダンスサーバアプリケーションプログラムの更新時期の方がガイダンスマスタアプリケーションプログラムの更新時期よりも古い場合、ガイダンスサーバアプリケーションプログラムの設定情報がガイダンスマスタアプリケーションプログラムの設定情報で書き換えられる。また、クライアントアプリケーションプログラムがガイダンスサーバアプリケーションプログラムに設定情報及び更新時期を問い合わせ、ガイダンスサーバアプリケーションプログラムの更新時期の方がクライアントアプリケーションプログラムの更新時期よりも新しい場合、クライアントアプリケーションプログラムの設定情報がガイダンスサーバアプリケーションプログラムの設定情報で書き換えられる。したがって、ガイダンスマスタアプリケーションプログラムにおける最新の設定情報がガイダンスサーバアプリケーションプログラムにアップロードされ、さらにクライアントアプリケーションプログラムにダウンロードされる。その結果、設定情報の設定にかかる手間を軽減することができる。
【００２０】
好ましくは、設定情報はポート番号を含む。ガイダンスサーバアプリケーションプログラムはクライアントにインストールされる。
【００２１】
クライアントが専用機の場合、ガイダンスサーバアプリケーションプログラムは予め定められたポート番号を使用してもポート番号の競合は起こらない。
【００２２】
さらに好ましくは、クライアントは複数設けられる。
【００２３】
この場合、少なくとも１つのクライアントが起動していれば、ガイダンスマスタアプリケーションプログラムはポート番号をガイダンスサーバアプリケーションプログラムにアップロードし、クライアントアプリケーションプログラムはそのポート番号をダウンロードすることができる。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して詳しく説明する。図中同一又は相当部分には同一符号を付してその説明を援用する。
【００２５】
［第１の実施の形態］
図１を参照して、本発明の第１の実施の形態によるネットワークオーディオシステム１０は、コンテンツサーバＳＶと、複数のオーディオクライアントＣＬとを備える。コンテンツサーバＳＶ及びオーディオクライアントＣＬはＬＡＮ（ローカルエリアネットワーク）１２により相互に接続される。コンテンツサーバＳＶは、多数の音楽コンテンツを蓄積しており、それらを各オーディオクライアントＣＬに配信する。各オーディオクライアントＣＬは、コンテンツサーバＳＶから配信された音楽コンテンツに基づいて音楽を再生する。
【００２６】
図１に示した例では、オーディオクライアントＣＬは複数存在するが、少なくとも１つ存在すればよい。コンテンツサーバＳＶは１つしか存在しないが、複数存在してもよい。また、コンピュータネットワークとしてＬＡＮ１２を採用しているが、これに限定されることなく、たとえばＵＳＢやＩＥＥＥ１３９４などを採用してもよい。ＬＡＮを採用する場合、通信プロトコルとしてＰＣ（パーソナルコンピュータ）で標準的なＴＣＰ／ＩＰを採用するのが好ましいが、これに限定されることなく、たとえばＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などを採用してもよい。また、図１ではＬＡＮ１２の基幹配線から枝分かれするようにコンテンツサーバＳＶやオーディオクライアントＣＬが接続されているが、たとえば１０ＢＡＳＥ−Ｔや１００ＢＡＳＥ−ＴＸの場合にはハブを中心にしてスター状に接続されていてもよい。
【００２７】
図２を参照して、コンテンツサーバＳＶは、圧縮デジタル音楽データを蓄積するためのＨＤＤ（ハードディスクドライブ）１４と、データベース管理部１６及びネットワークプロトコル処理部１８を含むＣＰＵ処理部２０と、本コンテンツサーバＳＶとＬＡＮ１２との間でデータを送受信するＬＡＮコントローラ２２とを備える。
【００２８】
図３を参照して、各オーディオクライアントＣＬは、ネットワークプロトコル処理部２４及びシステム動作部２６を含むマイコン処理部２８と、不揮発性半導体記憶装置の典型例であるフラッシュメモリ３０と、順次入力された圧縮デジタル音楽データ等を一時的に記憶して順次出力するメモリ３２と、圧縮デジタル音楽データをデコードして非圧縮デジタル音楽データを生成する音声処理部３４と、デジタル音楽データをアナログ音楽データに変換するＤ／Ａ変換器（ＤＡＣ）３６と、本オーディオクライアントＣＬとＬＡＮ１２との間でデータを送受信するＬＡＮコントローラ３８とを備える。
【００２９】
次に、以上のように構成されたネットワークオーディオシステム１０の動作を説明する。
【００３０】
オーディオクライアントＣＬがコンテンツサーバＳＶに所望の音楽コンテンツを要求し、コンテンツサーバＳＶがその要求された音楽コンテンツをオーディオクライアントＣＬに配信し、オーディオクライアントＣＬがその配信された音楽コンテンツに基づいて音楽を再生するという一連の動作を可能とするためには、まずコンテンツサーバＳＶと各オーディオクライアントＣＬとの間で接続を確立する必要がある。本実施の形態では、コマンドポート及びプッシュポートで２つの接続を確立する。コマンドポートは、オーディオクライアントＣＬが要求をコンテンツサーバＳＶに送出し、かつコンテンツサーバＳＶがその要求に対する応答をオーディオクライアントＣＬに返送するためのポートである。プッシュポートは、コンテンツサーバＳＶが自発的な要求をオーディオクライアントＣＬに送出するためのポートである。
【００３１】
オーディオクライアントＣＬは、コンテンツサーバＳＶとの間で接続を確立する前に、まずＬＡＮ１２に接続されているコンテンツサーバＳＶを探索する。以下、この探索から接続までの動作を図４に示したフロー図を参照して説明する。
【００３２】
コンテンツサーバＳＶにおいて、ユーザは使用する複数のポート番号を全て設定する（Ｓ１０１）。設定するポート番号及びその数は特に限定されないが、本例では、コマンドポート用のポート番号として「６００００」、プッシュポート用のポート番号として「４００００」をそれぞれ設定するものとする。ユーザがプッシュポート用のポート番号を設定しない場合は、プッシュポート用のポート番号として「６０００１」がデフォルトで設定されているものとする。
【００３３】
一方、各オーディオクライアントＣＬにおいて、ユーザはサーバＳＶに設定した複数のポート番号のうち１つだけを探索用に設定する（Ｓ２０１）。本例では、コマンドポート用のポート番号「６００００」だけを探索用に設定し、プッシュポート用のポート番号は設定しない。
【００３４】
上記のような初期設定を終えると、オーディオクライアントＣＬはマジックワードを含む探索パケットを作成し、上記探索用に設定されたポート番号を使用してＬＡＮ１２上に探索パケットをブロードキャストする（Ｓ２０２）。本例では、たとえばＵＤＰに従い、コマンドポート用のポート番号「６００００」を探索用に使用してマジックワードをブロードキャストする。マジックワードは、特定のサーバ及びクライアント間で通信を可能とするために、サーバ及びクライアントの各々に予め設定される任意の情報である。オーディオクライアントＣＬはこのようにしてマジックワードを探索用ポート番号でブロードキャストした後、同じ探索用ポート番号でコンテンツサーバＳＶからの応答を待ち受ける（Ｓ２０３）。
【００３５】
一方、コンテンツサーバＳＶは探索用ポート番号で各オーディオクライアントＣＬからの探索を待ち受けているので、ブロードキャストされた探索パケットをその探索用ポート番号で受信する。コンテンツサーバＳＶはその受信した探索パケットに含まれるマジックワードを検証し、その探索パケットをブロードキャストしたオーディオクライアントＣＬに応答する（Ｓ１０２）。より具体的には、コンテンツサーバＳＶは、その受信したマジックワードを予め設定されているマジックワードと比較し、一致した場合は応答し、一致しない場合は応答しない。応答する場合、コンテンツサーバＳＶはたとえばＵＤＰに従って所定の探索応答パケットをオーディオクライアントＣＬに返信する。
【００３６】
コンテンツサーバＳＶは、従来は表１に示した旧フォーマットの探索応答パケットを送信していたのに対し、本実施の形態では表２に示した新フォーマットの探索応答パケットを送信する。
【表１】
2004187263.tif 000003
【表２】
2004187263.tif 000004
【００３７】
表１に示した旧フォーマットの探索応答パケットには、マジックワードと、サーバネームと、最大クライアント数と、ベンダＩＤと、リザーブとが含まれる。マジックワードは、オーディオクライアントＣＬから送信されたマジックワードと同じである。サーバネームは、コンテンツサーバＳＶに任意に付与された名称である。最大クライアント数は、コンテンツサーバＳＶに接続可能なオーディオクライアントの数である。ベンダＩＤは、コンテンツサーバＳＶのベンダを特定するための識別情報である。リザーブは、今後の拡張のために確保された予備の領域である。
【００３８】
これに対し、表２に示した新フォーマットの探索応答パケットにはさらに、属性ＩＤと、ポート番号とが含まれる。属性ＩＤ及びポート番号は、旧フォーマットのリザーブを利用して設定される。
【００３９】
属性ＩＤは、予め定められたデフォルトのポート番号を使用するか、その次の領域に記録されたポート番号を使用するかを特定するための識別情報である。属性ＩＤは、特に限定されないが、本例では「０ｘ００００」と「０ｘ０００１」という２通りの値を取るものとする。これら以外の値は今後の拡張のためのリザーブとする。ポート番号は上記ステップＳ１０１でユーザにより任意に設定され得る。プッシュポート用にデフォルトのポート番号（本例では「６０００１」）を使用する場合、ユーザは特にこのポート番号を設定しない。一方、プッシュポート用に特定のポート番号（本例では「４００００」）を使用する場合、ユーザはこのポート番号を設定する。
【００４０】
オーディオクライアントＣＬは上記のような探索応答パケットを受信すると、その探索応答パケットから属性ＩＤを読み出し（Ｓ２０４）、その属性ＩＤが「０ｘ００００」か「０ｘ０００１」かを判別する（Ｓ２０５）。属性ＩＤが「０ｘ００００」の場合、オーディオクライアントＣＬはプッシュポートをデフォルトのポート番号「６０００１」に設定する（Ｓ２０６）。一方、属性ＩＤが「０ｘ０００１」の場合、オーディオクライアントＣＬはプッシュポートを次の領域に記録されたポート番号「４００００」に設定する（Ｓ２０７）。
【００４１】
続いて、オーディオクライアントＣＬは、たとえばＴＣＰに従って、上記ステップＳ２０１で予め設定されたコマンドポート用のポート番号「６００００」を使用し、コンテンツサーバＳＶに接続を要求する（Ｓ２０８）。コンテンツサーバＳＶはこの接続要求を受け入れると、その旨をオーディオクライアントＣＬに応答する（Ｓ１０３）。これにより、コマンドポート（ポート番号「６００００」）で接続が確立する。
【００４２】
また、オーディオクライアントＣＬは、上記ステップＳ２０６又はＳ２０７で設定されたプッシュポート用のポート番号「６０００１」又は「４００００」を使用し、コンテンツサーバＳＶに接続を要求する（Ｓ２０８）。コンテンツサーバＳＶはこの接続要求を受け入れると、その旨をオーディオクライアントＣＬに応答する（Ｓ１０３）。これにより、プッシュポート（ポート番号「６０００１」又は「４００００」）で接続が確立する。より具体的には、属性ＩＤが「０ｘ００００」の場合、デフォルトのポート番号「６０００１」で接続が確立する。一方、属性ＩＤが「０ｘ０００１」の場合、コンテンツサーバＳＶから通知されたポート番号「４００００」で接続が確立する。
【００４３】
上記ステップＳ１０１〜Ｓ１０３をコンテンツサーバＳＶに実行させるためのサーバ用アプリケーションプログラムがコンテンツサーバＳＶにインストールされている。また、上記ステップＳ２０１〜Ｓ２０８をオーディオクライアントＣＬに実行させるためのクライアント用アプリケーションプログラムがオーディオクライアントＣＬにインストールされている。
【００４４】
以上のように第１の実施の形態によれば、コンテンツサーバＳＶがプッシュポート用のポート番号をオーディオクライアントＣＬに通知し、オーディオクライアントＣＬはその通知されたポート番号を使用してコンテンツサーバＳＶに接続を要求しているため、ユーザはコマンドポート用のポート番号をオーディオクライアントＣＬに設定しさえすれば、プッシュポート用のポート番号を設定しなくても、コンテンツサーバＳＶ及びオーディオクライアントＣＬはプッシュポートで接続を確立することができる。したがって、プッシュポート用のポート番号を各オーディオクライアントＣＬに設定する手間をなくすことができる。また、コンテンツサーバＳＶにインストールされている他のアプリケーションプログラムが先にプッシュポート用のデフォルトのポート番号「６０００１」を使用してしまっている場合であっても、コンテンツサーバＳＶ側に別のポート番号「４００００」を設定するだけでプッシュポートで接続を確立することができる。
【００４５】
また、コンテンツサーバＳＶはオーディオクライアントＣＬに属性ＩＤを送信し、その属性ＩＤが「０ｘ００００」の場合、オーディオクライアントＣＬはプッシュポートをデフォルトのポート番号「６０００１」に設定する。したがって、仮に旧版のアプリケーションプログラムしかコンテンツサーバＳＶにインストールされていない場合、オーディオクライアントＣＬは表１に示す旧フォーマットのリザーブ領域の始まりから２バイト分（新フォーマットの属性ＩＤに対応する箇所）を認識することになるので、「０ｘ００００」（リザーブ領域は「０ｘ００００」とされている）を認識することになり、プッシュポートをデフォルトのポート番号「６０００１」に設定することができる。よって、このアプリケーションプログラムは上位互換性を備えている。また、仮に属性ＩＤを設けなければ、旧フォーマットのリザーブ領域（新フォーマットのポート番号に対応する箇所）の「０ｘ００００」をポート番号と誤って判断してしまうが、属性ＩＤ（又はそれに対応するリザーブ領域）を判断して「０ｘ００００」であればデフォルトのポート番号を設定することにより、旧フォーマットのリザーブ領域の値をポート番号に誤って設定するのを防止することができる。
【００４６】
上記実施の形態ではコンテンツサーバＳＶにポート番号を２つ設定しているが、３つ以上設定してもよい。３つ以上設定する場合もそのうちの１つだけをオーディオクライアントＣＬにも設定し、その最初のポート番号を使用して残りの複数のポート番号をコンテンツサーバＳＶからオーディオクライアントＣＬに通知するようにすればよい。
【００４７】
［第２の実施の形態］
上記第１の実施の形態では、探索用ポート番号は１つしか設定されていない。しかし、探索用ポート番号は本システムの仕様変更などに応じて変更される場合がある。この場合、探索用ポート番号をコンテンツサーバＳＶ側だけ変更し、オーディオクライアントＣＬ側で変更しなければ、オーディオクライアントＣＬはコンテンツサーバＳＶの探索に失敗してしまう。したがって、オーディオクライアントＣＬ側でも探索用ポート番号を変更する必要があるが、このような変更作業をユーザに課すのは煩雑になるため、好ましくない。
【００４８】
このような問題を解決するために、第２の実施の形態では、コンテンツサーバＳＶ側に複数のポート番号を探索用に予め設定しておき、オーディオクライアントＣＬは探索用ポート番号を自動的に更新するようにする。以下、この詳細を図５に示したフロー図を参照して説明する。
【００４９】
コンテンツサーバＳＶは、探索ポート番号変更履歴テーブルを参照し、そのテーブルに存在する複数の探索用ポート番号全てでオーディオクライアントからの探索を待ち受ける（Ｓ１１１）。探索ポート番号変更履歴テーブルには、表３に示すように、複数の探索用ポート番号及びその個数が含まれる。これらは特に限定されないが、本例では、５つの探索用ポート番号「４５０００」、「５００００」、「４４４５０」、「４４４９０」、及び「４５０８０」を使用するものとする。また、本ネットワークオーディオシステム１０は、過去において探索用ポート番号「４５０００」、「５００００」、「４４４５０」、及び「４４４９０」を使用していたものとし、現在は最新の探索用ポート番号「４５０８０」を使用しているものとする。
【表３】
2004187263.tif 000005
【００５０】
一方、オーディオクライアントＣＬは、フラッシュメモリ３０に記憶されている探索用ポート番号を読み出す（Ｓ２１１）。続いて、オーディオクライアントＣＬはマジックワードを含む探索パケットを作成し、上記読み出した探索用ポート番号を使用して探索パケットをブロードキャストする（Ｓ２０２）。たとえば上記５つの探索用ポート番号のうち３番目の古い探索用ポート番号「４４４５０」がフラッシュメモリ３０に記憶されていたとすると、オーディオクライアントＣＬはその探索用ポート番号「４４４５０」を使用してマジックワードをブロードキャストする。その後、オーディオクライアントＣＬはその探索用ポート番号「４４４５０」でコンテンツサーバＳＶからの応答を待ち受ける（Ｓ２０３）。
【００５１】
上述したようにコンテンツサーバＳＶはこのポート番号「４４４５０」を含む５つのポート番号で待ち受けているため、オーディオクライアントＣＬからブロードキャストされた探索パケットをポート番号「４４４５０」で受信する。コンテンツサーバＳＶは受信した探索パケットに含まれるマジックワードを検証し、マジックワードが正しければ、最新の探索用ポート番号及び接続用ポート番号を含む探索応答パケットを作成し、同じポート番号「４４４５０」を使用してその探索応答パケットをオーディオクライアントＣＬに返信する（Ｓ１１２）。本例では最新の探索用ポート番号が「４５０８０」であるから、コンテンツサーバＳＶは、その最新の探索用ポート番号「４５０８０」と、接続用ポート番号「４５０８０」、「４５０８１」及び「４５０８２」とをオーディオクライアントＣＬに送信する。これらの接続用ポート番号は予めコンテンツサーバＳＶに設定されている。本例では探索用及び接続用に同じポート番号「４５０８０」を送信しているが、異なるポート番号を送信してもよい。
【００５２】
続いて、オーディオクライアントＣＬは、探索用ポート番号「４４４５０」を使用してコンテンツサーバＳＶから返信された探索応答パケットを受信し、その探索応答パケットから最新の探索用ポート番号と接続用ポート番号とを読み出す（Ｓ２１２）。
【００５３】
続いて、オーディオクライアントＣＬはその読み出した探索用ポート番号をフラッシュメモリ３０に記憶されている探索用ポート番号と比較し、それらが異なっている場合はその探索用ポート番号を最新のものに書き換える（Ｓ２１３）。すなわち、探索応答パケットから読み出した最新の探索用ポート番号でフラッシュメモリ３０を上書きする。本例では、フラッシュメモリ３０に記憶されている探索用ポート番号は「４４４５０」から「４５０８０」に更新される。したがって、次回、オーディオクライアントＣＬがコンテンツサーバＳＶを探索するときには、この最新の探索用ポート番号「４５０８０」を使用してマジックワードをブロードキャストすることになる。
【００５４】
以降、上記第１の実施の形態と同様に、コンテンツサーバＳＶ及びオーディオクライアントＣＬは各接続用ポート番号で接続を確立する（Ｓ２０８，Ｓ１０３）。
【００５５】
以上のように第２の実施の形態によれば、コンテンツサーバＳＶは現在使用している探索用ポート番号及び過去に使用していた探索用ポート番号を含む複数の探索用ポート番号で待ち受けを行うようにしているため、古い探索用ポート番号しか知らないオーディオクライアントＣＬであってもコンテンツサーバＳＶを探索することができる。また、コンテンツサーバＳＶから最新の探索用ポート番号をオーディオクライアントＣＬに通知し、オーディオクライアントＣＬに設定されている探索用ポート番号を更新するようにしているため、オーディオクライアントＣＬが再びコンテンツサーバＳＶを探索するときには最新の探索用ポート番号を使用することができる。
【００５６】
［第３の実施の形態］
上記第１の実施の形態によると、２番目以降のポート番号はコンテンツサーバＳＶ側だけで任意に設定可能であるが、最初のポート番号はコンテンツサーバＳＶ及びオーディオクライアントＣＬの両側に同じポート番号を設定しなければならない。したがって、コンテンツサーバＳＶにインストールされている他のアプリケーションプログラムが先にこの最初のポート番号を使用してしまうと、コンテンツサーバＳＶ及びオーディオクライアントＣＬの両側でポート番号を変更しなければならない。
【００５７】
また、上記第２の実施の形態によると、古い探索用ポート番号しか知らないオーディオクライアントＣＬであってもコンテンツサーバＳＶの探索が可能であるが、コンテンツサーバＳＶにインストールされている他のアプリケーションプログラムが先にこの古い探索用ポート番号を使用してしまうと、オーディオクライアントＣＬはコンテンツサーバＳＶを探索することができない。したがって、この場合もやはり、コンテンツサーバＳＶ及びオーディオクライアントＣＬの両側で探索用ポート番号を変更しなければならない。
【００５８】
このような問題を解決するために、第３の実施の形態では、オーディオクライアントＣＬが探索ポート用ポート番号を順次自動的に変更するようにする。以下、この詳細を図６に示したフロー図を参照して説明する。
【００５９】
コンテンツサーバＳＶは、探索ポート番号テーブルを参照し、そのテーブルに存在する複数の探索用ポート番号の中で使用可能な１つの探索用ポート番号でオーディオクライアントＣＬからの探索を待ち受ける（Ｓ１２１）。探索ポート番号テーブルには、表４に示すように、複数の探索用ポート番号及びその個数が含まれる。これらは特に限定されないが、本例では、３つの探索用ポート番号「４５０８０」、「４６０００」、及び「４６０８０」を使用するものとする。この探索ポート番号テーブルはコンテンツサーバＳＶ側だけでなくオーディオクライアントＣＬ側にも存在する。
【表４】
2004187263.tif 000006
【００６０】
以下、この処理（Ｓ１２１）の詳細を図７に示したフロー図を参照して説明する。
【００６１】
コンテンツサーバＳＶは探索ポート番号テーブルからポート番号の個数を読み出す（Ｓ１２１１）。表４に示した例では、コンテンツサーバＳＶはポート番号数「３」を読み出す。
【００６２】
続いて、コンテンツサーバＳＶは読出カウンタを「０」にリセットする（Ｓ１２１２）。読出カウンタは、探索ポート番号テーブルから読み出すべき探索用ポート番号を示すものである。
【００６３】
続いて、コンテンツサーバＳＶは読出カウンタの値を上記読み出したポート番号の個数と比較する（Ｓ１２１３）。読出カウンタの値がポート番号の個数と等しい場合は使用可能なポート番号は存在しないとしてこの処理は失敗となり、そうでない場合は次のステップＳ１２１４に進む。
【００６４】
コンテンツサーバＳＶは探索ポート番号テーブルから読出カウンタが示すポート番号を読み出す（Ｓ１２１４）。
【００６５】
続いて、コンテンツサーバＳＶは読み出したポート番号で使用可能か否かを判断する（Ｓ１２１５）。読み出されたポート番号が既に他のプリケーションプログラムによって使用されている場合はそのポート番号は使用不可能となり、そうでない場合は使用可能となる。
【００６６】
使用不可能な場合、コンテンツサーバＳＶは読出カウンタの値を１増やし（Ｓ１２１６）、上記ステップＳ１２１３に戻る。一方、使用可能な場合、コンテンツサーバＳＶは読み出したポート番号を使用して待ち受けを開始する（Ｓ１２１７）。これにより、この処理は完了する。
【００６７】
たとえば表４に示した３つのポート番号のうち最初のポート番号「４５０８０」が既に他のアプリケーションによって使用されていたとすると、コンテンツサーバＳＶは最初に読み出したポート番号「４５０８０」を使用不可能と判断し、その次に読み出したポート番号「４６０００」を使用可能と判断し、このポート番号「４６０００」を使用して待ち受けを開始する。
【００６８】
再び図６を参照して、オーディオクライアントＣＬは、表４に示した探索ポート番号テーブルから探索用ポート番号を順に読み出し（Ｓ２２１）、その読み出した探索用ポート番号でマジックワードをブロードキャストし（Ｓ２０２）、その探索用ポート番号でコンテンツサーバＳＶからの応答を待ち受ける（Ｓ２０３）。
【００６９】
以下、この処理（Ｓ２２１，Ｓ２０２，Ｓ２０３）の詳細を図８に示したフロー図を参照して説明する。
【００７０】
オーディオクライアントＣＬは、探索ポート番号テーブルからポート番号の個数を読み出す（Ｓ２２１１）。表４に示した例では、オーディオクライアントＣＬはポート番号数「３」を読み出す。
【００７１】
続いて、オーディオクライアントＣＬは読出カウンタを「０」にリセットする（Ｓ２２１２）。
【００７２】
続いて、オーディオクライアントＣＬは読出カウンタの値を上記読み出したポート番号の個数と比較する（Ｓ２２１３）。読出カウンタの値がポート番号の個数と等しい場合はコンテンツサーバＳＶから応答があるポート番号は存在しないとしてこの処理は失敗となり、そうでない場合は次のステップＳ２２１４に進む。
【００７３】
オーディオクライアントＣＬは探索ポート番号テーブルから読出カウンタが示すポート番号を読み出す（Ｓ２２１４）。
【００７４】
続いて、オーディオクライアントＣＬは、マジックワードを含む探索パケットを作成し、読み出した探索用ポート番号を使用して探索パケットをブロードキャストする（Ｓ２０２）。
【００７５】
続いて、オーディオクライアントＣＬはその探索用ポート番号で待ち受けを開始する（Ｓ２０３１）。
【００７６】
続いて、オーディオクライアントＣＬは待ち受け開始から所定時間が経過したか否かを判断する（Ｓ２０３２）。所定時間内にコンテンツサーバＳＶから応答がなく所定時間が経過した場合、オーディオクライアントＣＬは探索用ポート番号を変更するために読出カウンタを１増やし（Ｓ２２１５）、上記ステップＳ２２１３に戻る。一方、オーディオクライアントＣＬは、所定時間内にコンテンツサーバＳＶから探索応答パケットを受信すると（Ｓ２０３３）、その探索応答パケットに含まれるマジックワードが正しいか否かを判断する（Ｓ２０３４）。マジックワードが正しい場合、この処理は完了する。
【００７７】
たとえば上述したようにコンテンツサーバＳＶがポート番号「４６０００」でオーディオクライアントＣＬからの探索を待ち受けている場合、オーディオクライアントＣＬが最初に読み出したポート番号「４５０８０」でマジックワードをブロードキャストしてもコンテンツサーバＳＶから応答はないが、その次に読み出したポート番号「４６０００」でマジックワードをブロードキャストしたときはコンテンツサーバＳＶから応答がある。
【００７８】
再び図６を参照して、コンテンツサーバＳＶはオーディオクライアントＣＬからの探索パケットを受信し、その受信した探索パケットに含まれるマジックワードを検証し、マジックワードが正しければ、接続用ポート番号を含む探索応答パケットをオーディオクライアントＣＬに返信する（Ｓ１１２）。オーディオクライアントＣＬは、受信した探索応答パケットから接続用ポート番号を読み出す（Ｓ２２２）。
【００７９】
以降、上記第１の実施の形態と同様に、コンテンツサーバＳＶ及びオーディオクライアントＣＬは各接続用ポート番号で接続を確立する（Ｓ２０８，Ｓ１０３）。
【００８０】
以上のように第３の実施の形態によれば、コンテンツサーバＳＶは予め定められた複数のポート番号の中から使用可能なポート番号を選択し、その選択したポート番号でオーディオクライアントＣＬからの探索を待ち受ける一方、オーディオクライアントＣＬはその予め定められた複数のポート番号を順に変更してコンテンツサーバＳＶを探索するようにしているため、その予め定められた複数のポート番号の中のいくつかが他のアプリケーションプログラムによって既に使用されていたとしても、オーディオクライアントＣＬはコンテンツサーバＳＶを探索することができる。
【００８１】
［第４の実施の形態］
第４の実施の形態では、図９に示すように、コンテンツサーバＳＶには、サーバアプリケーションプログラム（以下、単に「サーバアプリ」という）４０のほか、ガイダンスマスタアプリケーションプログラム（以下、単に「ガイダンスマスタアプリ」という）４１がインストールされる。サーバアプリ４０は、オーディオクライアントＣＬからの要求に応じてコンテンツを配信するなど、基本的なサービスを提供するためのコンピュータプログラムである。ガイダンスマスタアプリ４１は、本ネットワーク上で通信に使用されるポート番号を管理するためのコンピュータプログラムである。
【００８２】
コンテンツサーバＳＶは、ＨＤＤのような不揮発性メモリ４２を備える。不揮発性メモリ４２には、ポート番号とその更新日時とが記録される。ガイダンスマスタアプリ４１は、本ネットワーク上で通信に使用すべきポート番号を不揮発性メモリ４２に設定し、さらにそのポート番号を設定した日時も不揮発性メモリ４２に設定する。サーバアプリ４０は、不揮発性メモリ４２に設定されたポート番号を使用して通信を行う。サーバアプリ４０及びガイダンスマスタアプリ４１は、同一のネットワークインターフェース４３を共用する。
【００８３】
一方、図１０に示すように、オーディオクライアントＣＬには、クライアントアプリケーションプログラム（以下、単に「クライアントアプリ」という）４４のほか、ガイダンスサーバアプリケーションプログラム（以下、単に「ガイダンスサーバアプリ」という）４５がインストールされる。クライアントアプリ４４は、コンテンツサーバＳＶにコンテンツを要求し、その要求に応じて配信されたコンテンツを再生するなど、基本的なサービスを提供するためのコンピュータプログラムである。ガイダンスサーバアプリ４５もまた、本ネットワーク上で通信に使用されるポート番号を管理するためのコンピュータプログラムである。
【００８４】
オーディオクライアントＣＬは、フラッシュメモリのような不揮発性メモリ４６，４７及びＲＡＭ４９を備える。不揮発性メモリ４６，４７の各々には、ポート番号とその更新日時とが記録される。ガイダンスサーバアプリ４５は、ガイダンスマスタアプリ４１から送信されたポート番号及びその更新日時を不揮発性メモリ４７に設定する。クライアントアプリ４４は、ガイダンスサーバアプリ４５から送信されたポート番号及びその更新日時を不揮発性メモリ４６に設定し、その設定されたポート番号を使用して通信を行う。クライアントアプリ４４及びガイダンスサーバアプリ４５は、同一のネットワークインターフェース４８を共用する。
【００８５】
ガイダンスマスタアプリ４１は本ネットワーク上に１つしか存在しない。ガイダンスサーバアプリ４５は本ネットワーク上に少なくとも１つ存在すればよいが、２つ以上存在しても構わない。本実施の形態では、図１１及び図１２に示すように、ガイダンスマスタアプリ４１は唯一のコンテンツサーバＳＶにインストールされている。一方、ガイダンスサーバアプリ４５はオーディオクライアントＣＬ１及びＣＬ２にはインストールされているが、オーディオクライアントＣＬ３にはインストールされていない。
【００８６】
ガイダンスマスタアプリ４１は、ガイダンスサーバアプリ４５にポート番号を問い合わせ、自身の不揮発性メモリ４２に設定されている更新日時よりも問い合わせ先の不揮発性メモリ４７に設定されている更新日時の方が古い場合、図１１に示すように、自身の不揮発性メモリ４２に設定されているポート番号で問い合わせ先の不揮発性メモリ４７に設定されているポート番号を書き換える。すなわち、ガイダンスマスタアプリ４１用の不揮発性メモリ４２にはポート番号及びその更新日時の原本が保存されているが、ガイダンスサーバアプリ４５用の不揮発性メモリ４７にはそのコピーが保存される。このように、ガイダンスマスタアプリ４１はコンテンツサーバＳＶにインストールされているが、ガイダンスサーバアプリ４５に対してクライアント的に動作する。要するにこの動作により、最新のポート番号がガイダンスマスタアプリ４１からガイダンスサーバアプリ４５にアップロードされる。
【００８７】
また、クライアントアプリ４４は、ガイダンスサーバアプリ４５にポート番号を問い合わせ、自身の不揮発性メモリ４６に設定されている更新日時よりも問い合わせ先の不揮発性メモリ４７に設定されている更新日時の方が新しい場合、図１２に示すように、問い合わせ先の不揮発性メモリ４７に設定されているポート番号で自身の不揮発性メモリ４６に設定されているポート番号を書き換える。すなわち、ガイダンスサーバアプリ４５用の不揮発性メモリ４７にはポート番号及びその更新日時のコピーが保存されているが、クライアントアプリ４４用の不揮発性メモリ４６にはさらにそのコピーが保存される。このように、ガイダンスサーバアプリ４５はオーディオクライアントＣＬ１，ＣＬ２にインストールされているが、ガイダンスマスタアプリ４１に対してサーバ的に動作する。要するにこの動作により、最新のポート番号がガイダンスサーバアプリ４５からクライアントアプリ４４にダウンロードされる。
【００８８】
次に、図１３に示したフロー図を参照し、このネットワークオーディオシステムの動作を説明する。
【００８９】
以下、ポート番号を設定するためのポートを「設定ポート」という。また、ガイダンスサーバアプリ４５を探索するためのポートを「ガイダンスサーバ探索ポート」という。
【００９０】
本例では、ガイダンスマスタアプリ４１用の不揮発性メモリ４２にはポート番号「７０１９２」及びその更新日時「２００３年４月１０日１３時２０分」が記録され、ガイダンスサーバアプリ４５用の不揮発性メモリ４７にはポート番号「７００９９」及びその更新日時「２００３年３月３１日１１時４０分」が記録され、クライアントアプリ４４用の不揮発性メモリ４６にはポート番号「７００９２」及びその更新日時「２００３年３月１０日８時２０分」が記録されていると仮定する。
【００９１】
（１）ガイダンスマスタアプリ４１からガイダンスサーバアプリ４５へのアップロード（図１１）
【００９２】
ガイダンスサーバアプリ４５は、設定ポートでガイダンスマスタアプリ４１からの接続パケットを待つ（Ｓ２３１）。具体的には、設定ポートのポート番号には予め定められた「７００００」を使用し、通信プロトコルにはＴＣＰを使用する。
【００９３】
ガイダンスサーバアプリ４５はまた、ガイダンスサーバ探索ポートでガイダンスマスタアプリ４１からの探索パケットを待つ（Ｓ２３２）。具体的には、ガイダンスサーバ探索ポートのポート番号にも予め定められた「７００００」を使用し、通信プロトコルにはＵＤＰを使用する。
【００９４】
続いて、ガイダンスマスタアプリ４１は、ネットワーク上に存在するガイダンスサーバアプリ４５を探索する（Ｓ１３１〜Ｓ１３３，Ｓ２３３，Ｓ２３４）。詳細は次の通り。
【００９５】
ガイダンスマスタアプリ４１は、ＵＤＰに従って探索パケットを作成し、ネットワーク上にブロードキャスト（同報送信）する（Ｓ１３１）。探索パケットは、予め定められたマジックワードと、送信先のポート番号「７００００」と、コンテンツサーバＳＶ（送信元）のＩＰアドレスと、コンテンツサーバＳＶで未使用のポート番号（たとえば「１０２５」）とを含む。ガイダンスマスタアプリ４１は探索パケットをブロードキャストした後、ガイダンスサーバアプリ４５からの応答パケットを待つ（Ｓ１３２）。
【００９６】
ガイダンスサーバアプリ４５は、ガイダンスマスタアプリ４１から探索パケットを受信すると（Ｓ２３３）、応答パケットを作成し、その探索パケットを送信したガイダンスマスタアプリ４１に返信する（Ｓ２３４）。応答パケットは、返信先（コンテンツサーバＳＶ）のＩＰアドレスと、返信先のポート番号「１０２５」と、不揮発性メモリ４７から読み出されたポート番号と、そのポート番号の更新日時とを含む。
【００９７】
ガイダンスマスタアプリ４１は、ガイダンスサーバアプリ４５から応答パケットを受信すると（Ｓ１３３）、その応答パケットに含まれるポート番号の更新日時を不揮発性メモリ４２から読み出したポート番号の更新日時と比較する（Ｓ１３４）。応答パケットの更新日時の方が不揮発性メモリ４２の更新日時よりも古い場合はステップＳ１３６に進み、新しい場合はステップＳ１３９に進む（Ｓ１３５）。
【００９８】
本例では、ガイダンスマスタアプリ４１用の不揮発性メモリ４２には更新日時「２００３年４月１０日１３時２０分」が記録され、ガイダンスサーバアプリ４５用の不揮発性メモリ４７には更新日時「２００３年３月３１日１１時４０分」が記録されているので、ガイダンスマスタアプリ４１はガイダンスサーバアプリ４５のポート番号の方が古いと判断し、ステップＳ１３６に進んでポート番号の更新を開始する。
【００９９】
ガイダンスマスタアプリ４１は、ポート番号を更新するためにまず、設定ポートを使用して接続パケットをガイダンスサーバアプリ４５に送信する（Ｓ１３６）。接続パケットは、送信先（オーディオクライアントＣＬ）のＩＰアドレスと、送信先のポート番号「７００００」とを含む。
【０１００】
ガイダンスサーバアプリ４５は、設定ポートで未だ接続が確立していない場合において（Ｓ２３５）、ガイダンスマスタアプリ４１から接続パケットを受信すると（Ｓ２３６）、ガイダンスマスタアプリ４１との接続処理を行う（Ｓ２３７）。ガイダンスサーバアプリ４５は設定ポートで接続を確立した後、ガイダンスマスタアプリ４１からの設定パケットを待つ（Ｓ２３８）。
【０１０１】
ガイダンスマスタアプリ４１は、設定パケットを作成し、ガイダンスサーバアプリ４５に送信する（Ｓ１３７）。設定パケットは、送信先（オーディオクライアントＣＬ）のＩＰアドレスと、送信先のポート番号「７００００」と、不揮発性メモリ４２から読み出されたポート番号と、そのポート番号の更新日時とを含む。
【０１０２】
ガイダンスサーバアプリ４５は、ガイダンスマスタアプリ４１から設定パケットを受信すると（Ｓ２３９）、その設定パケットに含まれるポート番号及びその更新日時で不揮発性メモリ４７を書き換える（Ｓ２４０）。これにより、ガイダンスサーバアプリ４５のポート番号が更新される。
【０１０３】
次に、ガイダンスマスタアプリ４１は、切断パケットをガイダンスサーバアプリ４５に送信する（Ｓ１３８）。ガイダンスサーバアプリ４５は、ガイダンスマスタアプリ４１から切断パケットを受信すると（Ｓ２４１）、ガイダンスマスタアプリ４１との切断処理を行う（Ｓ２４２）。
【０１０４】
ガイダンスマスタアプリ４１が探索パケットを送信してから予め定められた期間（たとえば１０秒）以上経過した場合、ステップＳ１３１に戻って探索パケットを再びブロードキャストする。すなわち、ガイダンスマスタアプリ４１は、予め定められた期間ごとにガイダンスサーバアプリ４５にポート番号及びその更新日時を問い合わせる。
【０１０５】
ガイダンスマスタアプリ４１は、コンテンツサーバＳＶの起動時及び設定更新時にも上記動作を実行し、ガイダンスサーバアプリ４５に新しいポート番号及びその更新日時をアップロードする。
【０１０６】
ネットワーク上で複数のガイダンスサーバアプリ４５が起動している場合、ガイダンスマスタアプリ４１は複数の応答パケットを受信する。この場合、古いポート番号を管理しているガイダンスサーバアプリ４５の全てにガイダンスマスタアプリ４１から新しいポート番号が送信され、書き換えられる。
【０１０７】
（２）ガイダンスサーバアプリ４５からクライアントアプリ４４へのダウンロード（図１２）
【０１０８】
クライアントアプリ４４によるステップＳ２５２〜Ｓ２５６は、ガイダンスマスタアプリ４１によるステップＳ１３１〜Ｓ１３５とほぼ同じである。クライアントアプリ４４に対するガイダンスサーバアプリ４５の応答動作（Ｓ２３３，Ｓ２３４）は、上記ガイダンスマスタアプリ４１に対するガイダンスサーバアプリ４５の応答動作（Ｓ２３３，Ｓ２３４）と全く同じである。ガイダンスサーバアプリ４５によるステップＳ２３５〜Ｓ２４２はクライアントアプリ４４に対しては動作しない。
【０１０９】
クライアントアプリ４４はまず、不揮発性メモリ４６からポート番号及びその更新日時を読み出し、ＲＡＭ４９に格納する（Ｓ２５１）。
【０１１０】
クライアントアプリ４４は、ガイダンスサーバ探索ポートで探索パケットをブロードキャストし（Ｓ２５２）、応答パケットを待つ（Ｓ２５３）。
【０１１１】
ガイダンスサーバアプリ４５は、クライアントアプリ４４から探索パケットを受信すると（Ｓ２３３）、その探索パケットを送信したクライアントアプリ４４に応答パケットを返信する（Ｓ２３４）。
【０１１２】
クライアントアプリ４４は、ガイダンスサーバアプリ４５から応答パケットを受信すると（Ｓ２５４）、その応答パケットに含まれるポート番号の更新日時をＲＡＭ４９から読み出したポート番号の更新日時と比較する（Ｓ２５５）。応答パケットの更新日時の方がＲＡＭ４９の更新日時よりも新しい場合はステップＳ２５７に進み、古い場合はステップＳ２５８に進む（Ｓ２５６）。
【０１１３】
本例では、クライアントアプリ４４用の不揮発性メモリ４６には更新日時「２００３年３月１０日８時２０分」が記録され、ガイダンスサーバアプリ４５用の不揮発性メモリ４７には更新日時「２００３年３月３１日１１時４０分」が記録されているので、クライアントアプリ４４はガイダンスサーバアプリ４５のポート番号の方が新しいと判断し、ステップＳ２５７に進んでポート番号の更新を開始する。
【０１１４】
クライアントアプリ４４は、ポート番号を更新するためにまず、その応答パケットに含まれるポート番号及びその更新日時をＲＡＭ４９に格納する（Ｓ２５７）。
【０１１５】
探索パケットを送信してから２秒以上経過した場合（Ｓ２５８）、クライアントアプリ４４は、ＲＡＭ４９に含まれるポート番号及びその更新日時で不揮発性メモリ４６を書き換える（Ｓ２５９）。経過していない場合、クライアントアプリ４４はステップＳ２５３に戻って応答パケットを待つ（Ｓ２５３）。
【０１１６】
クライアントアプリ４４は、オーディオクライアントＣＬの起動時及び所定期間（たとえば３０秒）ごとに上記動作を実行し、ガイダンスサーバアプリ４５から新しいポート番号及びその更新日時をダウンロードする。
【０１１７】
ネットワーク上で複数のガイダンスサーバアプリ４５が起動している場合、クライアントアプリ４４は複数の応答パケットを受信する。各応答パケットの更新日時の方がＲＡＭ４９の更新日時よりも新しい場合、その応答パケットに含まれる新しいポート番号及びその更新日時がＲＡＭ４９に格納される。したがって、複数のガイダンスサーバアプリ４５の中で最も新しいポート番号及びその更新日時が最終的にＲＡＭ４９に格納され、それらが不揮発性メモリ４６に格納される。
【０１１８】
以上のように第４の実施の形態によれば、ガイダンスマスタアプリ４１がポート番号をガイダンスサーバアプリ４５にアップロードし、そのアップロードされたポート番号をクライアントアプリ４４がダウンロードしているため、コンテンツサーバＳＶにポート番号を設定しさえすれば、全てのオーディオクライアントＣＬにもそのポート番号が自動的に設定される。その結果、ポート番号の設定にかかる手間を軽減することができる。
【０１１９】
加えて、ガイダンスマスタアプリ４１はネットワーク上に１つしか存在しないため、全てのオーディオクライアントＣＬに同じポート番号が設定される。また、ガイダンスマスタアプリ４１のポート番号さえ変更すれば、全てのオーディオクライアントＣＬのポート番号が自動的に変更される。また、ガイダンスマスタアプリ４１が定期的にポート番号をガイダンスサーバアプリ４５にアップロードし、そのアップロードされたポート番号をクライアントアプリ４４が定期的にダウンロードしているため、全てのオーディオクライアントＣＬに最新のポート番号が設定される。
【０１２０】
また、クライアントアプリ４４はオーディオクライアントＣＬの起動時にガイダンスサーバアプリ４５を探索し、新しいポート番号をダウンロードするため、古いポート番号が設定されたままになっているオーディオクライアントＣＬがネットワークに接続されても、直ちに新しいポート番号が設定される。
【０１２１】
また、ガイダンスサーバアプリ４５はオーディオクライアントＣＬにインストールされ、予め定めされたポート番号「７００００」を使用して接続パケット及び探索パケットを待つ。一方、ガイダンスマスタアプリ４１はコンテンツサーバＳＶにインストールされ、未使用のポート番号を使用して接続パケット及び探索パケットを送信する。オーディオクライアントＣＬは専用機であり、他のアプリケーションプログラムはインストールされない。そのため、ガイダンスサーバアプリ４５がポート番号「７００００」を使用する前に他のアプリケーションプログラムが使用してしまったり、あるいはガイダンスサーバアプリ４５がポート番号「７００００」を使用している最中に他のアプリケーションプログラムが使用しようとしたりするなど、オーディオクライアントＣＬでポート番号の競合は起こらない。一方、コンテンツサーバＳＶは汎用機であり、他のアプリケーションプログラムがインストールされることがある。しかし、ガイダンスマスタアプリ４１は予め定められたポート番号を使用してパケットを待つことはない。そのため、コンテンツサーバＳＶでもポート番号の競合は起こらない。
【０１２２】
また、複数のオーディオクライアントＣＬにガイダンスサーバアプリ４５がそれぞれインストールされているため、そのうち少なくとも１つのオーディオクライアントＣＬが起動していれば、全てのオーディオクライアントＣＬにポート番号が設定される。また、常時起動しているコンテンツサーバＳＶにガイダンスマスタアプリ４１がインストールされているため、常に新しいポート番号がガイダンスサーバアプリ４５にアップロードされる。
【０１２３】
［第４の実施の形態の変形例］
上記第４の実施の形態ではガイダンスマスタアプリ４１はコンテンツサーバＳＶにインストールされているが、図１４に示すように、いずれか１つのオーディオクライアント（図１４の例ではＣＬ３）にインストールされていてもよい。この場合、ガイダンスマスタアプリ４１用にポート番号及びその更新日時を保存するための不揮発性メモリ５０を設ける。また、ステップＳ２５１〜Ｓ２５９の機能のみを有するクライアントアプリ５１がコンテンツサーバＳＶにインストールされる。クライアントアプリ５１はガイダンスサーバアプリ４５からポート番号及びその更新日時をダウンロードして不揮発性メモリ４２を書き換える。サーバアプリ４０は不揮発性メモリ４２にダウンロードされたポート番号を使用する。
【０１２４】
また、ネットワーク上に複数のコンテンツサーバＳＶが存在する場合は、１つのコンテンツサーバＳＶにガイダンスマスタアプリ４１をインストールし、その他のコンテンツサーバＳＶにステップＳ２５１〜Ｓ２５９の機能のみを有するクライアントアプリ５１をインストールするか、あるいは１つのオーディオクライアントＣＬにガイダンスマスタアプリ４１をインストールし、全てのコンテンツサーバＳＶにステップＳ２５１〜Ｓ２５９の機能のみを有するクライアントアプリ５１をインストールしてもよい。
【０１２５】
また、ガイダンスマスタアプリ４１は上記のようにサーバアプリ４０又はクライアントアプリ４４と一緒にインストールするのではなく、ガイダンスマスタアプリ４１のみをインストールした専用機をネットワーク上に配置してもよい。
【０１２６】
また、ポート番号の競合を回避するためには上記のようにガイダンスサーバアプリ４５は専用機であるオーディオクライアントＣＬにインストールするのが好ましいが、コンテンツサーバＳＶにインストールしてもよい。このようにガイダンスマスタアプリ４１及びガイダンスサーバアプリ４５をネットワーク上のどの機器にインストールしてもよいので、柔軟なネットワーク構築が可能である。
【０１２７】
また、コンテンツサーバＳＶに汎用ＰＣを用いる場合、サーバアプリ４０及びガイダンスマスタアプリ４１に加え、ポート番号の設定を変更するためのアプリケーションプログラム（以下、「設定変更用アプリ」という）をインストールしてもよい。設定変更用アプリはＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を利用してポート番号を変更するようにしてもよく、あるいはインターネット経由で外部サーバにアクセスしてポート番号をダウンロードするようにしてもよい。ポート番号を変更したときには、その日時も併せて設定する。なお、サーバアプリ４０又はガイダンスサーバアプリ４５が設定変更用アプリの機能を兼ね備えていてもよい。
【０１２８】
また、ポート番号に代えて又はそれとともに、本ネットワークオーディオシステムが提供する基本的なサービス（音楽の配信及び再生）に関する情報を設定してもよい。この設定情報としては、ネットワークプロトコルに関する設定事項（たとえば探索パケットに含まれるマジックワード）、オーディオクライアントＣＬ上で動作するファームウェアやＪＡＶＡ（登録商標）等のコンピュータプログラムそのものなどがある。ただし、プログラムのように大量の設定情報をＵＤＰで送信するには限界があるので、この場合、ガイダンスサーバアプリ４５からの応答パケットには、設定情報そのものを含めるのではなく、設定項目名と更新日時とを含める。この応答パケットを受信したクライアントアプリ４４は、更新が必要と判断した場合だけＴＣＰでガイダンスサーバアプリ４５との接続を確立し、その後、必要な設定情報を全て取得し、自身の設定情報を更新する。以下、設定情報として、ファームウェアを管理する場合及びポート番号を管理する場合における応答パケットの例を挙げる。
【０１２９】
ファームウェアを管理する場合、ＵＤＰによる応答パケットはたとえば次のようにファームウェアの種別及び更新日時を含むが、ファームウェアを含まない。ファームウェアはＴＣＰで送信される。
ＣＬＩＥＮＴ＿ＴＹＰＥ１＿ＦＩＲＭＷＥＡＲ：２００２．１２．２２．１５．３０
ＣＬＩＥＮＴ＿ＴＹＰＥ２＿ＦＩＲＭＷＥＡＲ：２００２．１２．２０．１０．１０
【０１３０】
ポート番号を管理する場合、応答パケットはたとえば次のようにポート番号の種別及び更新日時を含むが、ポート番号を含まない。ポート番号はＴＣＰで送信される。
ＳＥＲＶＩＣＥ＿ＴＹＰＥ１＿ＰＯＲＴＮＯ：２００２．０８．０１．２０．１１
ＳＥＲＶＩＣＥ＿ＴＹＰＥ２＿ＰＯＲＴＮＯ：  ２００２．０８．０１．２０．１１
【０１３１】
［他の実施の形態］
なお、上記第１〜第４の実施の形態ではコンテンツサーバＳＶは音楽コンテンツを蓄積しているが、これに代えて又はこれと一緒に映像コンテンツを蓄積していてもよい。よって、本発明は、上記で例示したネットワークオーディオシステムだけでなく、映像コンテンツを配信して映像を再生するネットワークＡＶシステムはもちろんのこと、一般的なサーバクライアントシステムにも適用可能である。
【０１３２】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【図１】本発明の実施の形態によるネットワークオーディオシステムの全体構成を示す機能ブロック図である。
【図２】図１中のコンテンツサーバの構成を示す機能ブロック図である。
【図３】図１中のオーディオクライアントの構成を示す機能ブロック図である。
【図４】本発明の第１の実施の形態によるネットワークオーディオシステムの動作を示すフロー図である。
【図５】本発明の第２の実施の形態によるネットワークオーディオシステムの動作を示すフロー図である。
【図６】本発明の第３の実施の形態によるネットワークオーディオシステムの動作を示すフロー図である。
【図７】図６中のコンテンツサーバによる探索待受処理の詳細を示すフロー図である。
【図８】図６中のオーディオクライアントによる探索処理の詳細を示すフロー図である。
【図９】本発明の第４の実施の形態におけるコンテンツサーバのアプリケーション構成を示す機能ブロック図である。
【図１０】本発明の第４の実施の形態におけるオーディオクライアントのアプリケーション構成を示す機能ブロック図である。
【図１１】本発明の第４の実施の形態によるポート番号等のアップロード動作を示す機能ブロック図である。
【図１２】本発明の第４の実施の形態によるポート番号等のダウンロード動作を示す機能ブロック図である。
【図１３】図１１及び図１２に示したアップロード動作及びダウンロード動作を示すフロー図である。
【図１４】図９〜図１３に示した第４の実施の形態の変形例を示す機能ブロック図である。
【符号の説明】
１０  ネットワークオーディオシステム
１２  ＬＡＮ
３０  フラッシュメモリ
ＳＶ  コンテンツサーバ
ＣＬ，ＣＬ１，ＣＬ２，ＣＬ３  オーディオクライアント
４０  サーバアプリ
４１  ガイダンスマスタアプリ
４２，４６，４７，５０  不揮発性メモリ
４４，５１  クライアントアプリ
４５  ガイダンスサーバアプリ
【図１】
2004187263.tif 000007
【図２】
2004187263.tif 000008
【図３】
2004187263.tif 000009
【図４】
2004187263.tif 000010
【図５】
2004187263.tif 000011
【図６】
2004187263.tif 000012
【図７】
2004187263.tif 000013
【図８】
2004187263.tif 000014
【図９】
2004187263.tif 000015
【図１０】
2004187263.tif 000016
【図１１】
2004187263.tif 000017
【図１２】
2004187263.tif 000018
【図１３】
2004187263.tif 000019
【図１４】
2004187263.tif 000020
【手続補正書】
【提出日】平成15年10月1日(2003.10.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
前記サーバは、
第１のポート番号を使用して第２のポート番号を送信するポート番号送信手段を含み、
前記クライアントは、
前記サーバから送信された前記第２のポート番号を使用して前記サーバと通信する通信手段を含むことを特徴とするサーバクライアントシステム。
【請求項２】
請求項１に記載のサーバクライアントシステムであって、
前記ポート番号送信手段は、第１又は第２の値を有する識別情報を前記クライアントに送信し、
前記通信手段は、前記サーバから送信された前記識別情報が第１の値を有するとき前記第２のポート番号を使用して前記サーバと通信し、前記識別情報が第２の値を有するとき予め定められた第３のポート番号を使用して前記サーバと通信することを特徴とするサーバクライアントシステム。
【請求項３】
サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
前記サーバは、
現在使用しているポート番号及び過去に使用していたポート番号を使用して前記クライアントからの通信を待ち受ける手段を含み、
前記クライアントは、
ポート番号を記憶するためのポート番号記憶手段に記憶されたポート番号を使用して前記サーバと通信する手段を含み、
前記サーバはさらに、
前記クライアントからの通信を受けると、前記現在使用しているポート番号を前記クライアントに送信する手段を含み、
前記クライアントはさらに、
前記ポート番号記憶手段に記憶されたポート番号を前記サーバから送信されたポート番号に書き換える手段を含むことを特徴とするサーバクライアントシステム。
【請求項４】
サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
前記サーバは、
複数のポート番号の中から使用可能なポート番号を選択し、その選択したポート番号を使用して前記クライアントからの通信を待ち受ける手段を含み、
前記クライアントは、
前記複数のポート番号の中から使用すべきポート番号を選択し、その選択したポート番号を使用して前記サーバと通信する手段を含み、
前記サーバはさらに、
前記クライアントからの通信を受けると、前記クライアントに応答する手段を含み、
前記クライアントはさらに、
前記サーバからの応答がない場合、前記使用すべきポート番号を変更する手段を含むことを特徴とするサーバクライアントシステム。
【請求項５】
請求項３又は請求項４に記載のサーバクライアントシステムであって、
前記サーバはさらに、
前記ポート番号を使用して別のポート番号を送信する手段を含み、
前記クライアントはさらに、
前記サーバから送信された前記別のポート番号を使用して前記サーバと通信する手段を含むことを特徴とするサーバクライアントシステム。
【請求項６】
所定のサービスを提供するためのサーバアプリケーションプログラムがインストールされたサーバと、前記サーバに接続され、前記サービスを提供するためのクライアントアプリケーションプログラムがインストールされたクライアントとを備えたサーバクライアントシステムであって、
前記サーバクライアントシステムはさらに、
前記サービスに関する設定情報及びその設定情報の更新時期を管理するガイダンスマスタアプリケーションプログラム及びガイダンスサーバアプリケーションプログラムとを備え、
前記ガイダンスマスタアプリケーションプログラムは、
前記ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含み、
前記クライアントアプリケーションプログラムは、
前記ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含み、
前記ガイダンスサーバアプリケーションプログラムは、
前記問い合わせに応じてその設定情報及び更新時期を回答するステップを含み、
前記ガイダンスマスタアプリケーションプログラムはさらに、
前記回答された更新時期を自身が管理している更新時期と比較し、前記回答された更新時期が自身が管理している更新時期よりも古い場合、前記回答された設定情報で自身が管理している設定情報を更新するステップを含み、
前記クライアントアプリケーションプログラムはさらに、
前記回答された前記更新時期を自身が管理している更新時期と比較し、前記回答された更新時期が自身が管理している更新時期よりも新しい場合、前記回答された設定情報で自身が管理している設定情報を更新するステップを含むことを特徴とするサーバクライアントシステム。
【請求項７】
請求項６に記載のサーバクライアントシステムであって、
前記設定情報はポート番号を含み、
前記ガイダンスサーバアプリケーションプログラムは前記クライアントにインストールされたことを特徴とするサーバクライアントシステム。
【請求項８】
請求項７に記載のサーバクライアントシステムであって、
前記クライアントは複数設けられたことを特徴とするサーバクライアントシステム。
【請求項９】
請求項１〜請求項８のいずれか１項に記載のサーバクライアントシステムに使用されるサーバ。
【請求項１０】
請求項１〜請求項８のいずれか１項に記載のサーバクライアントシステムに使用されるクライアント。