JP3797344B2 - サーバクライアントシステム - Google Patents

サーバクライアントシステム Download PDF

Info

Publication number
JP3797344B2
JP3797344B2 JP2003172410A JP2003172410A JP3797344B2 JP 3797344 B2 JP3797344 B2 JP 3797344B2 JP 2003172410 A JP2003172410 A JP 2003172410A JP 2003172410 A JP2003172410 A JP 2003172410A JP 3797344 B2 JP3797344 B2 JP 3797344B2
Authority
JP
Japan
Prior art keywords
server
port number
client
guidance
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003172410A
Other languages
English (en)
Other versions
JP2004187263A (ja
Inventor
進 竹村
泰 池田
浩一 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Onkyo Corp
Original Assignee
Onkyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Onkyo Corp filed Critical Onkyo Corp
Priority to JP2003172410A priority Critical patent/JP3797344B2/ja
Priority to EP20030022805 priority patent/EP1408671B1/en
Priority to DE2003610845 priority patent/DE60310845T2/de
Priority to US10/682,074 priority patent/US7418473B2/en
Publication of JP2004187263A publication Critical patent/JP2004187263A/ja
Application granted granted Critical
Publication of JP3797344B2 publication Critical patent/JP3797344B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、サーバクライアントシステムに関し、さらに詳しくは、サーバクライアント環境で動作するネットワークオーディオシステムにおけるポート設定の改良に関する。
【0002】
【従来の技術】
現在、サーバクライアント環境で動作するネットワークオーディオシステムが提供されている。ネットワークオーディオシステムは、音楽コンテンツを蓄積するコンテンツサーバと、音楽を再生するオーディオクライアントとを備える。コンテンツサーバ及びオーディオクライアントは特定の通信プロトコルに従って相互に通信を行う。
【0003】
たとえばTCP/IP(Transmission Control Protocol/Internet Protocol)を通信プロトコルに採用した場合、コンテンツサーバ及びオーディオクライアントの各々にはネットワーク内で一意のIPアドレスが付与される。コンテンツサーバ及びオーディオクライアントはこのIPアドレスで互いを識別する。また、コンテンツサーバ及びオーディオクライアントはデータを送受信するためのポートを複数有する。TCP/IPでは、これらのポートに0〜65535のポート番号が割り当てられる。
【0004】
オーディオクライアントがコンテンツサーバに何かを要求する場合、オーディオクライアントはコンテンツサーバのIPアドレス及びポート番号を特定することにより特定のコンテンツサーバに特定のポートでデータを送信する。逆に、コンテンツサーバがオーディオクライアントの要求に応答する場合、コンテンツサーバはオーディオクライアントのIPアドレス及びポート番号を特定することにより特定のオーディオクライアントに特定のポートでデータを送信する。
【0005】
上記のようなデータの送受信を可能とするためには、通常はコンテンツサーバ及びオーディオクライアント間でポートを1つ確保すれば足りるが、アプリケーションプログラムによっては複数のポートを確保しなければならない場合もある。この場合、ユーザはコンテンツサーバだけでなくオーディオクライアントごとに複数のポート番号を設定する必要がある。しかしながら、ネットワーク上に多数存在するオーディオクライアント1台ずつに複数のポート番号を設定するのは非常に手間のかかる作業であり、誤ったポート番号を設定してしまう可能性も高い。
【0006】
また、アプリケーションプログラムのバージョンアップ等の理由により、使用するポート番号を変更しなければならない場合がある。この場合も同様に、各オーディオクライアントに設定されたポート番号を変更するのは非常に手間のかかる作業である。
【0007】
また、コンテンツサーバに本来のアプリケーションプログラム以外に別のアプリケーションプログラムがインストールされていると、本来のアプリケーションプログラムが使用する予定のポート番号を別のアプリケーションプログラムが先に使用してしまっている場合もある。この場合も同様に、各オーディオクライアントに設定されたポート番号を変更するのは非常に手間のかかる作業である。
【0008】
【特許文献1】
特開2001−308934
【0009】
【発明が解決しようとする課題】
本発明の目的は、ポート番号等の設定にかかる手間を軽減したサーバクライアントシステムを提供することである。
【0010】
【課題を解決するための手段】
本発明によるサーバクライアントシステムは、サーバとサーバに接続されたクライアントとを備える。サーバは、第1のポート番号を使用して第2のポート番号と第1又は第2の値を有する識別情報とクライアントに送信するポート番号送信手段を含む。クライアントは、サーバから送信された識別情報が第1の値を有するときサーバから送信された第2のポート番号を使用してサーバと通信し、識別情報が第2の値を有するとき予め定められた第3のポート番号を使用してサーバと通信する通信手段を含む。
【0011】
このサーバクライアントシステムでは、サーバからクライアントに第1のポート番号を使用して第2のポート番号が通知されるので、第2のポート番号はクライアントに設定する必要がない。その結果、ポート番号の設定にかかる手間を軽減することができる。
【0013】
また、識別情報が第1の値を有するときクライアントはサーバから通知された第2のポート番号を使用するが、識別情報が第2の値を有するときクライアントは予め定められた第3のポート番号を使用する。したがって、本発明に係る機能を有していない旧版のサーバである場合には、クライアントは従来通り第3のポート番号を使用することができる。よって、本システムは上位互換性を有する。
【0014】
本発明によるもう1つのサーバクライアントシステムは、サーバとサーバに接続されたクライアントとを備える。サーバは、現在使用しているポート番号及び過去に使用していたポート番号を使用してクライアントからの通信を待ち受ける手段を含む。クライアントは、ポート番号を記憶するためのポート番号記憶手段に記憶されたポート番号を使用してサーバと通信する手段を含む。サーバはさらに、クライアントからの通信を受けると、現在使用しているポート番号をクライアントに送信する手段を含む。クライアントはさらに、ポート番号記憶手段に記憶されたポート番号をサーバから送信されたポート番号に書き換える手段を含む。
【0015】
このサーバクライアントシステムでは、サーバは現在使用しているポート番号だけでなく過去に使用していたポート番号でもクライアントからの通信を待ち受けているので、使用するポート番号が変更され、過去に使用されていた古いポート番号しか知らないクライアントであってもサーバと通信することができる。しかも、サーバからクライアントに現在使用されている新しいポート番号が通知され、クライアントに記憶されているポート番号が書き換えられるので、次回、クライアントは新しいポート番号を使用してサーバと通信することができる。その結果、この場合もポート番号の設定にかかる手間を軽減することができる。
【0016】
本発明によるさらにもう1つのサーバクライアントシステムは、サーバとサーバに接続されたクライアントとを備える。サーバは、複数のポート番号の中から使用可能なポート番号を選択し、その選択したポート番号を使用してクライアントからの通信を待ち受ける手段を含む。クライアントは、複数のポート番号の中から使用すべきポート番号を選択し、その選択したポート番号を使用してサーバと通信する手段を含む。サーバはさらに、クライアントからの通信を受けると、クライアントに応答する手段を含む。クライアントはさらに、サーバからの応答がない場合、使用すべきポート番号を変更する手段を含む。
【0017】
このサーバクライアントシステムでは、サーバは複数のポート番号のうち使用可能なポート番号を使用してクライアントからの通信を待ち受ける一方、クライアントは複数のポート番号を順に使用してサーバと通信するので、複数のポート番号のうちいくつかを他のアプリケーションプログラムが既に使用していたとしても、クライアントはサーバと確実に通信することができる。その結果、この場合もポート番号の設定にかかる手間を軽減することができる。
【0018】
本発明によるさらにもう1つのサーバクライアントシステムは、所定のサービスを提供するためのサーバアプリケーションプログラムがインストールされたサーバと、サーバに接続され、サービスを提供するためのクライアントアプリケーションプログラムがインストールされたクライアントとを備える。サーバクライアントシステムはさらに、サービスに関する設定情報及びその設定情報の更新時期を管理するガイダンスマスタアプリケーションプログラム及びガイダンスサーバアプリケーションプログラムとを備える。ガイダンスマスタアプリケーションプログラムは、ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含む。クライアントアプリケーションプログラムは、ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含む。ガイダンスサーバアプリケーションプログラムは、問い合わせに応じてその設定情報及び更新時期を回答するステップを含む。ガイダンスマスタアプリケーションプログラムはさらに、回答された更新時期を自身が管理している更新時期と比較し、回答された更新時期が自身が管理している更新時期よりも古い場合、自身が管理している設定情報でガイダンスサーバアプリケーションプログラムが管理している設定情報を更新させるステップを含む。クライアントアプリケーションプログラムはさらに、回答された更新時期を自身が管理している更新時期と比較し、回答された更新時期が自身が管理している更新時期よりも新しい場合、回答された設定情報で自身が管理している設定情報を更新するステップを含む。
【0019】
このサーバクライアントシステムでは、ガイダンスマスタアプリケーションプログラムがガイダンスサーバアプリケーションプログラムに設定情報及び更新時期を問い合わせ、ガイダンスサーバアプリケーションプログラムの更新時期の方がガイダンスマスタアプリケーションプログラムの更新時期よりも古い場合、ガイダンスサーバアプリケーションプログラムの設定情報がガイダンスマスタアプリケーションプログラムの設定情報で書き換えられる。また、クライアントアプリケーションプログラムがガイダンスサーバアプリケーションプログラムに設定情報及び更新時期を問い合わせ、ガイダンスサーバアプリケーションプログラムの更新時期の方がクライアントアプリケーションプログラムの更新時期よりも新しい場合、クライアントアプリケーションプログラムの設定情報がガイダンスサーバアプリケーションプログラムの設定情報で書き換えられる。したがって、ガイダンスマスタアプリケーションプログラムにおける最新の設定情報がガイダンスサーバアプリケーションプログラムにアップロードされ、さらにクライアントアプリケーションプログラムにダウンロードされる。その結果、設定情報の設定にかかる手間を軽減することができる。
【0020】
好ましくは、設定情報はポート番号を含む。ガイダンスサーバアプリケーションプログラムはクライアントにインストールされる。
【0021】
クライアントが専用機の場合、ガイダンスサーバアプリケーションプログラムは予め定められたポート番号を使用してもポート番号の競合は起こらない。
【0022】
さらに好ましくは、クライアントは複数設けられる。
【0023】
この場合、少なくとも1つのクライアントが起動していれば、ガイダンスマスタアプリケーションプログラムはポート番号をガイダンスサーバアプリケーションプログラムにアップロードし、クライアントアプリケーションプログラムはそのポート番号をダウンロードすることができる。
【0024】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して詳しく説明する。図中同一又は相当部分には同一符号を付してその説明を援用する。
【0025】
[第1の実施の形態]
図1を参照して、本発明の第1の実施の形態によるネットワークオーディオシステム10は、コンテンツサーバSVと、複数のオーディオクライアントCLとを備える。コンテンツサーバSV及びオーディオクライアントCLはLAN(ローカルエリアネットワーク)12により相互に接続される。コンテンツサーバSVは、多数の音楽コンテンツを蓄積しており、それらを各オーディオクライアントCLに配信する。各オーディオクライアントCLは、コンテンツサーバSVから配信された音楽コンテンツに基づいて音楽を再生する。
【0026】
図1に示した例では、オーディオクライアントCLは複数存在するが、少なくとも1つ存在すればよい。コンテンツサーバSVは1つしか存在しないが、複数存在してもよい。また、コンピュータネットワークとしてLAN12を採用しているが、これに限定されることなく、たとえばUSBやIEEE1394などを採用してもよい。LANを採用する場合、通信プロトコルとしてPC(パーソナルコンピュータ)で標準的なTCP/IPを採用するのが好ましいが、これに限定されることなく、たとえばUDP(User Datagram Protocol)などを採用してもよい。また、図1ではLAN12の基幹配線から枝分かれするようにコンテンツサーバSVやオーディオクライアントCLが接続されているが、たとえば10BASE−Tや100BASE−TXの場合にはハブを中心にしてスター状に接続されていてもよい。
【0027】
図2を参照して、コンテンツサーバSVは、圧縮デジタル音楽データを蓄積するためのHDD(ハードディスクドライブ)14と、データベース管理部16及びネットワークプロトコル処理部18を含むCPU処理部20と、本コンテンツサーバSVとLAN12との間でデータを送受信するLANコントローラ22とを備える。
【0028】
図3を参照して、各オーディオクライアントCLは、ネットワークプロトコル処理部24及びシステム動作部26を含むマイコン処理部28と、不揮発性半導体記憶装置の典型例であるフラッシュメモリ30と、順次入力された圧縮デジタル音楽データ等を一時的に記憶して順次出力するメモリ32と、圧縮デジタル音楽データをデコードして非圧縮デジタル音楽データを生成する音声処理部34と、デジタル音楽データをアナログ音楽データに変換するD/A変換器(DAC)36と、本オーディオクライアントCLとLAN12との間でデータを送受信するLANコントローラ38とを備える。
【0029】
次に、以上のように構成されたネットワークオーディオシステム10の動作を説明する。
【0030】
オーディオクライアントCLがコンテンツサーバSVに所望の音楽コンテンツを要求し、コンテンツサーバSVがその要求された音楽コンテンツをオーディオクライアントCLに配信し、オーディオクライアントCLがその配信された音楽コンテンツに基づいて音楽を再生するという一連の動作を可能とするためには、まずコンテンツサーバSVと各オーディオクライアントCLとの間で接続を確立する必要がある。本実施の形態では、コマンドポート及びプッシュポートで2つの接続を確立する。コマンドポートは、オーディオクライアントCLが要求をコンテンツサーバSVに送出し、かつコンテンツサーバSVがその要求に対する応答をオーディオクライアントCLに返送するためのポートである。プッシュポートは、コンテンツサーバSVが自発的な要求をオーディオクライアントCLに送出するためのポートである。
【0031】
オーディオクライアントCLは、コンテンツサーバSVとの間で接続を確立する前に、まずLAN12に接続されているコンテンツサーバSVを探索する。以下、この探索から接続までの動作を図4に示したフロー図を参照して説明する。
【0032】
コンテンツサーバSVにおいて、ユーザは使用する複数のポート番号を全て設定する(S101)。設定するポート番号及びその数は特に限定されないが、本例では、コマンドポート用のポート番号として「60000」、プッシュポート用のポート番号として「40000」をそれぞれ設定するものとする。ユーザがプッシュポート用のポート番号を設定しない場合は、プッシュポート用のポート番号として「60001」がデフォルトで設定されているものとする。
【0033】
一方、各オーディオクライアントCLにおいて、ユーザはサーバSVに設定した複数のポート番号のうち1つだけを探索用に設定する(S201)。本例では、コマンドポート用のポート番号「60000」だけを探索用に設定し、プッシュポート用のポート番号は設定しない。
【0034】
上記のような初期設定を終えると、オーディオクライアントCLはマジックワードを含む探索パケットを作成し、上記探索用に設定されたポート番号を使用してLAN12上に探索パケットをブロードキャストする(S202)。本例では、たとえばUDPに従い、コマンドポート用のポート番号「60000」を探索用に使用してマジックワードをブロードキャストする。マジックワードは、特定のサーバ及びクライアント間で通信を可能とするために、サーバ及びクライアントの各々に予め設定される任意の情報である。オーディオクライアントCLはこのようにしてマジックワードを探索用ポート番号でブロードキャストした後、同じ探索用ポート番号でコンテンツサーバSVからの応答を待ち受ける(S203)。
【0035】
一方、コンテンツサーバSVは探索用ポート番号で各オーディオクライアントCLからの探索を待ち受けているので、ブロードキャストされた探索パケットをその探索用ポート番号で受信する。コンテンツサーバSVはその受信した探索パケットに含まれるマジックワードを検証し、その探索パケットをブロードキャストしたオーディオクライアントCLに応答する(S102)。より具体的には、コンテンツサーバSVは、その受信したマジックワードを予め設定されているマジックワードと比較し、一致した場合は応答し、一致しない場合は応答しない。応答する場合、コンテンツサーバSVはたとえばUDPに従って所定の探索応答パケットをオーディオクライアントCLに返信する。
【0036】
コンテンツサーバSVは、従来は表1に示した旧フォーマットの探索応答パケットを送信していたのに対し、本実施の形態では表2に示した新フォーマットの探索応答パケットを送信する。
【表1】
Figure 0003797344
【表2】
Figure 0003797344
【0037】
表1に示した旧フォーマットの探索応答パケットには、マジックワードと、サーバネームと、最大クライアント数と、ベンダIDと、リザーブとが含まれる。マジックワードは、オーディオクライアントCLから送信されたマジックワードと同じである。サーバネームは、コンテンツサーバSVに任意に付与された名称である。最大クライアント数は、コンテンツサーバSVに接続可能なオーディオクライアントの数である。ベンダIDは、コンテンツサーバSVのベンダを特定するための識別情報である。リザーブは、今後の拡張のために確保された予備の領域である。
【0038】
これに対し、表2に示した新フォーマットの探索応答パケットにはさらに、属性IDと、ポート番号とが含まれる。属性ID及びポート番号は、旧フォーマットのリザーブを利用して設定される。
【0039】
属性IDは、予め定められたデフォルトのポート番号を使用するか、その次の領域に記録されたポート番号を使用するかを特定するための識別情報である。属性IDは、特に限定されないが、本例では「0x0000」と「0x0001」という2通りの値を取るものとする。これら以外の値は今後の拡張のためのリザーブとする。ポート番号は上記ステップS101でユーザにより任意に設定され得る。プッシュポート用にデフォルトのポート番号(本例では「60001」)を使用する場合、ユーザは特にこのポート番号を設定しない。一方、プッシュポート用に特定のポート番号(本例では「40000」)を使用する場合、ユーザはこのポート番号を設定する。
【0040】
オーディオクライアントCLは上記のような探索応答パケットを受信すると、その探索応答パケットから属性IDを読み出し(S204)、その属性IDが「0x0000」か「0x0001」かを判別する(S205)。属性IDが「0x0000」の場合、オーディオクライアントCLはプッシュポートをデフォルトのポート番号「60001」に設定する(S206)。一方、属性IDが「0x0001」の場合、オーディオクライアントCLはプッシュポートを次の領域に記録されたポート番号「40000」に設定する(S207)。
【0041】
続いて、オーディオクライアントCLは、たとえばTCPに従って、上記ステップS201で予め設定されたコマンドポート用のポート番号「60000」を使用し、コンテンツサーバSVに接続を要求する(S208)。コンテンツサーバSVはこの接続要求を受け入れると、その旨をオーディオクライアントCLに応答する(S103)。これにより、コマンドポート(ポート番号「60000」)で接続が確立する。
【0042】
また、オーディオクライアントCLは、上記ステップS206又はS207で設定されたプッシュポート用のポート番号「60001」又は「40000」を使用し、コンテンツサーバSVに接続を要求する(S208)。コンテンツサーバSVはこの接続要求を受け入れると、その旨をオーディオクライアントCLに応答する(S103)。これにより、プッシュポート(ポート番号「60001」又は「40000」)で接続が確立する。より具体的には、属性IDが「0x0000」の場合、デフォルトのポート番号「60001」で接続が確立する。一方、属性IDが「0x0001」の場合、コンテンツサーバSVから通知されたポート番号「40000」で接続が確立する。
【0043】
上記ステップS101〜S103をコンテンツサーバSVに実行させるためのサーバ用アプリケーションプログラムがコンテンツサーバSVにインストールされている。また、上記ステップS201〜S208をオーディオクライアントCLに実行させるためのクライアント用アプリケーションプログラムがオーディオクライアントCLにインストールされている。
【0044】
以上のように第1の実施の形態によれば、コンテンツサーバSVがプッシュポート用のポート番号をオーディオクライアントCLに通知し、オーディオクライアントCLはその通知されたポート番号を使用してコンテンツサーバSVに接続を要求しているため、ユーザはコマンドポート用のポート番号をオーディオクライアントCLに設定しさえすれば、プッシュポート用のポート番号を設定しなくても、コンテンツサーバSV及びオーディオクライアントCLはプッシュポートで接続を確立することができる。したがって、プッシュポート用のポート番号を各オーディオクライアントCLに設定する手間をなくすことができる。また、コンテンツサーバSVにインストールされている他のアプリケーションプログラムが先にプッシュポート用のデフォルトのポート番号「60001」を使用してしまっている場合であっても、コンテンツサーバSV側に別のポート番号「40000」を設定するだけでプッシュポートで接続を確立することができる。
【0045】
また、コンテンツサーバSVはオーディオクライアントCLに属性IDを送信し、その属性IDが「0x0000」の場合、オーディオクライアントCLはプッシュポートをデフォルトのポート番号「60001」に設定する。したがって、仮に旧版のアプリケーションプログラムしかコンテンツサーバSVにインストールされていない場合、オーディオクライアントCLは表1に示す旧フォーマットのリザーブ領域の始まりから2バイト分(新フォーマットの属性IDに対応する箇所)を認識することになるので、「0x0000」(リザーブ領域は「0x0000」とされている)を認識することになり、プッシュポートをデフォルトのポート番号「60001」に設定することができる。よって、このアプリケーションプログラムは上位互換性を備えている。また、仮に属性IDを設けなければ、旧フォーマットのリザーブ領域(新フォーマットのポート番号に対応する箇所)の「0x0000」をポート番号と誤って判断してしまうが、属性ID(又はそれに対応するリザーブ領域)を判断して「0x0000」であればデフォルトのポート番号を設定することにより、旧フォーマットのリザーブ領域の値をポート番号に誤って設定するのを防止することができる。
【0046】
上記実施の形態ではコンテンツサーバSVにポート番号を2つ設定しているが、3つ以上設定してもよい。3つ以上設定する場合もそのうちの1つだけをオーディオクライアントCLにも設定し、その最初のポート番号を使用して残りの複数のポート番号をコンテンツサーバSVからオーディオクライアントCLに通知するようにすればよい。
【0047】
[第2の実施の形態]
上記第1の実施の形態では、探索用ポート番号は1つしか設定されていない。しかし、探索用ポート番号は本システムの仕様変更などに応じて変更される場合がある。この場合、探索用ポート番号をコンテンツサーバSV側だけ変更し、オーディオクライアントCL側で変更しなければ、オーディオクライアントCLはコンテンツサーバSVの探索に失敗してしまう。したがって、オーディオクライアントCL側でも探索用ポート番号を変更する必要があるが、このような変更作業をユーザに課すのは煩雑になるため、好ましくない。
【0048】
このような問題を解決するために、第2の実施の形態では、コンテンツサーバSV側に複数のポート番号を探索用に予め設定しておき、オーディオクライアントCLは探索用ポート番号を自動的に更新するようにする。以下、この詳細を図5に示したフロー図を参照して説明する。
【0049】
コンテンツサーバSVは、探索ポート番号変更履歴テーブルを参照し、そのテーブルに存在する複数の探索用ポート番号全てでオーディオクライアントからの探索を待ち受ける(S111)。探索ポート番号変更履歴テーブルには、表3に示すように、複数の探索用ポート番号及びその個数が含まれる。これらは特に限定されないが、本例では、5つの探索用ポート番号「45000」、「50000」、「44450」、「44490」、及び「45080」を使用するものとする。また、本ネットワークオーディオシステム10は、過去において探索用ポート番号「45000」、「50000」、「44450」、及び「44490」を使用していたものとし、現在は最新の探索用ポート番号「45080」を使用しているものとする。
【表3】
Figure 0003797344
【0050】
一方、オーディオクライアントCLは、フラッシュメモリ30に記憶されている探索用ポート番号を読み出す(S211)。続いて、オーディオクライアントCLはマジックワードを含む探索パケットを作成し、上記読み出した探索用ポート番号を使用して探索パケットをブロードキャストする(S202)。たとえば上記5つの探索用ポート番号のうち3番目の古い探索用ポート番号「44450」がフラッシュメモリ30に記憶されていたとすると、オーディオクライアントCLはその探索用ポート番号「44450」を使用してマジックワードをブロードキャストする。その後、オーディオクライアントCLはその探索用ポート番号「44450」でコンテンツサーバSVからの応答を待ち受ける(S203)。
【0051】
上述したようにコンテンツサーバSVはこのポート番号「44450」を含む5つのポート番号で待ち受けているため、オーディオクライアントCLからブロードキャストされた探索パケットをポート番号「44450」で受信する。コンテンツサーバSVは受信した探索パケットに含まれるマジックワードを検証し、マジックワードが正しければ、最新の探索用ポート番号及び接続用ポート番号を含む探索応答パケットを作成し、同じポート番号「44450」を使用してその探索応答パケットをオーディオクライアントCLに返信する(S112)。本例では最新の探索用ポート番号が「45080」であるから、コンテンツサーバSVは、その最新の探索用ポート番号「45080」と、接続用ポート番号「45080」、「45081」及び「45082」とをオーディオクライアントCLに送信する。これらの接続用ポート番号は予めコンテンツサーバSVに設定されている。本例では探索用及び接続用に同じポート番号「45080」を送信しているが、異なるポート番号を送信してもよい。
【0052】
続いて、オーディオクライアントCLは、探索用ポート番号「44450」を使用してコンテンツサーバSVから返信された探索応答パケットを受信し、その探索応答パケットから最新の探索用ポート番号と接続用ポート番号とを読み出す(S212)。
【0053】
続いて、オーディオクライアントCLはその読み出した探索用ポート番号をフラッシュメモリ30に記憶されている探索用ポート番号と比較し、それらが異なっている場合はその探索用ポート番号を最新のものに書き換える(S213)。すなわち、探索応答パケットから読み出した最新の探索用ポート番号でフラッシュメモリ30を上書きする。本例では、フラッシュメモリ30に記憶されている探索用ポート番号は「44450」から「45080」に更新される。したがって、次回、オーディオクライアントCLがコンテンツサーバSVを探索するときには、この最新の探索用ポート番号「45080」を使用してマジックワードをブロードキャストすることになる。
【0054】
以降、上記第1の実施の形態と同様に、コンテンツサーバSV及びオーディオクライアントCLは各接続用ポート番号で接続を確立する(S208,S103)。
【0055】
以上のように第2の実施の形態によれば、コンテンツサーバSVは現在使用している探索用ポート番号及び過去に使用していた探索用ポート番号を含む複数の探索用ポート番号で待ち受けを行うようにしているため、古い探索用ポート番号しか知らないオーディオクライアントCLであってもコンテンツサーバSVを探索することができる。また、コンテンツサーバSVから最新の探索用ポート番号をオーディオクライアントCLに通知し、オーディオクライアントCLに設定されている探索用ポート番号を更新するようにしているため、オーディオクライアントCLが再びコンテンツサーバSVを探索するときには最新の探索用ポート番号を使用することができる。
【0056】
[第3の実施の形態]
上記第1の実施の形態によると、2番目以降のポート番号はコンテンツサーバSV側だけで任意に設定可能であるが、最初のポート番号はコンテンツサーバSV及びオーディオクライアントCLの両側に同じポート番号を設定しなければならない。したがって、コンテンツサーバSVにインストールされている他のアプリケーションプログラムが先にこの最初のポート番号を使用してしまうと、コンテンツサーバSV及びオーディオクライアントCLの両側でポート番号を変更しなければならない。
【0057】
また、上記第2の実施の形態によると、古い探索用ポート番号しか知らないオーディオクライアントCLであってもコンテンツサーバSVの探索が可能であるが、コンテンツサーバSVにインストールされている他のアプリケーションプログラムが先にこの古い探索用ポート番号を使用してしまうと、オーディオクライアントCLはコンテンツサーバSVを探索することができない。したがって、この場合もやはり、コンテンツサーバSV及びオーディオクライアントCLの両側で探索用ポート番号を変更しなければならない。
【0058】
このような問題を解決するために、第3の実施の形態では、オーディオクライアントCLが探索ポート用ポート番号を順次自動的に変更するようにする。以下、この詳細を図6に示したフロー図を参照して説明する。
【0059】
コンテンツサーバSVは、探索ポート番号テーブルを参照し、そのテーブルに存在する複数の探索用ポート番号の中で使用可能な1つの探索用ポート番号でオーディオクライアントCLからの探索を待ち受ける(S121)。探索ポート番号テーブルには、表4に示すように、複数の探索用ポート番号及びその個数が含まれる。これらは特に限定されないが、本例では、3つの探索用ポート番号「45080」、「46000」、及び「46080」を使用するものとする。この探索ポート番号テーブルはコンテンツサーバSV側だけでなくオーディオクライアントCL側にも存在する。
【表4】
Figure 0003797344
【0060】
以下、この処理(S121)の詳細を図7に示したフロー図を参照して説明する。
【0061】
コンテンツサーバSVは探索ポート番号テーブルからポート番号の個数を読み出す(S1211)。表4に示した例では、コンテンツサーバSVはポート番号数「3」を読み出す。
【0062】
続いて、コンテンツサーバSVは読出カウンタを「0」にリセットする(S1212)。読出カウンタは、探索ポート番号テーブルから読み出すべき探索用ポート番号を示すものである。
【0063】
続いて、コンテンツサーバSVは読出カウンタの値を上記読み出したポート番号の個数と比較する(S1213)。読出カウンタの値がポート番号の個数と等しい場合は使用可能なポート番号は存在しないとしてこの処理は失敗となり、そうでない場合は次のステップS1214に進む。
【0064】
コンテンツサーバSVは探索ポート番号テーブルから読出カウンタが示すポート番号を読み出す(S1214)。
【0065】
続いて、コンテンツサーバSVは読み出したポート番号で使用可能か否かを判断する(S1215)。読み出されたポート番号が既に他のプリケーションプログラムによって使用されている場合はそのポート番号は使用不可能となり、そうでない場合は使用可能となる。
【0066】
使用不可能な場合、コンテンツサーバSVは読出カウンタの値を1増やし(S1216)、上記ステップS1213に戻る。一方、使用可能な場合、コンテンツサーバSVは読み出したポート番号を使用して待ち受けを開始する(S1217)。これにより、この処理は完了する。
【0067】
たとえば表4に示した3つのポート番号のうち最初のポート番号「45080」が既に他のアプリケーションによって使用されていたとすると、コンテンツサーバSVは最初に読み出したポート番号「45080」を使用不可能と判断し、その次に読み出したポート番号「46000」を使用可能と判断し、このポート番号「46000」を使用して待ち受けを開始する。
【0068】
再び図6を参照して、オーディオクライアントCLは、表4に示した探索ポート番号テーブルから探索用ポート番号を順に読み出し(S221)、その読み出した探索用ポート番号でマジックワードをブロードキャストし(S202)、その探索用ポート番号でコンテンツサーバSVからの応答を待ち受ける(S203)。
【0069】
以下、この処理(S221,S202,S203)の詳細を図8に示したフロー図を参照して説明する。
【0070】
オーディオクライアントCLは、探索ポート番号テーブルからポート番号の個数を読み出す(S2211)。表4に示した例では、オーディオクライアントCLはポート番号数「3」を読み出す。
【0071】
続いて、オーディオクライアントCLは読出カウンタを「0」にリセットする(S2212)。
【0072】
続いて、オーディオクライアントCLは読出カウンタの値を上記読み出したポート番号の個数と比較する(S2213)。読出カウンタの値がポート番号の個数と等しい場合はコンテンツサーバSVから応答があるポート番号は存在しないとしてこの処理は失敗となり、そうでない場合は次のステップS2214に進む。
【0073】
オーディオクライアントCLは探索ポート番号テーブルから読出カウンタが示すポート番号を読み出す(S2214)。
【0074】
続いて、オーディオクライアントCLは、マジックワードを含む探索パケットを作成し、読み出した探索用ポート番号を使用して探索パケットをブロードキャストする(S202)。
【0075】
続いて、オーディオクライアントCLはその探索用ポート番号で待ち受けを開始する(S2031)。
【0076】
続いて、オーディオクライアントCLは待ち受け開始から所定時間が経過したか否かを判断する(S2032)。所定時間内にコンテンツサーバSVから応答がなく所定時間が経過した場合、オーディオクライアントCLは探索用ポート番号を変更するために読出カウンタを1増やし(S2215)、上記ステップS2213に戻る。一方、オーディオクライアントCLは、所定時間内にコンテンツサーバSVから探索応答パケットを受信すると(S2033)、その探索応答パケットに含まれるマジックワードが正しいか否かを判断する(S2034)。マジックワードが正しい場合、この処理は完了する。
【0077】
たとえば上述したようにコンテンツサーバSVがポート番号「46000」でオーディオクライアントCLからの探索を待ち受けている場合、オーディオクライアントCLが最初に読み出したポート番号「45080」でマジックワードをブロードキャストしてもコンテンツサーバSVから応答はないが、その次に読み出したポート番号「46000」でマジックワードをブロードキャストしたときはコンテンツサーバSVから応答がある。
【0078】
再び図6を参照して、コンテンツサーバSVはオーディオクライアントCLからの探索パケットを受信し、その受信した探索パケットに含まれるマジックワードを検証し、マジックワードが正しければ、接続用ポート番号を含む探索応答パケットをオーディオクライアントCLに返信する(S112)。オーディオクライアントCLは、受信した探索応答パケットから接続用ポート番号を読み出す(S222)。
【0079】
以降、上記第1の実施の形態と同様に、コンテンツサーバSV及びオーディオクライアントCLは各接続用ポート番号で接続を確立する(S208,S103)。
【0080】
以上のように第3の実施の形態によれば、コンテンツサーバSVは予め定められた複数のポート番号の中から使用可能なポート番号を選択し、その選択したポート番号でオーディオクライアントCLからの探索を待ち受ける一方、オーディオクライアントCLはその予め定められた複数のポート番号を順に変更してコンテンツサーバSVを探索するようにしているため、その予め定められた複数のポート番号の中のいくつかが他のアプリケーションプログラムによって既に使用されていたとしても、オーディオクライアントCLはコンテンツサーバSVを探索することができる。
【0081】
[第4の実施の形態]
第4の実施の形態では、図9に示すように、コンテンツサーバSVには、サーバアプリケーションプログラム(以下、単に「サーバアプリ」という)40のほか、ガイダンスマスタアプリケーションプログラム(以下、単に「ガイダンスマスタアプリ」という)41がインストールされる。サーバアプリ40は、オーディオクライアントCLからの要求に応じてコンテンツを配信するなど、基本的なサービスを提供するためのコンピュータプログラムである。ガイダンスマスタアプリ41は、本ネットワーク上で通信に使用されるポート番号を管理するためのコンピュータプログラムである。
【0082】
コンテンツサーバSVは、HDDのような不揮発性メモリ42を備える。不揮発性メモリ42には、ポート番号とその更新日時とが記録される。ガイダンスマスタアプリ41は、本ネットワーク上で通信に使用すべきポート番号を不揮発性メモリ42に設定し、さらにそのポート番号を設定した日時も不揮発性メモリ42に設定する。サーバアプリ40は、不揮発性メモリ42に設定されたポート番号を使用して通信を行う。サーバアプリ40及びガイダンスマスタアプリ41は、同一のネットワークインターフェース43を共用する。
【0083】
一方、図10に示すように、オーディオクライアントCLには、クライアントアプリケーションプログラム(以下、単に「クライアントアプリ」という)44のほか、ガイダンスサーバアプリケーションプログラム(以下、単に「ガイダンスサーバアプリ」という)45がインストールされる。クライアントアプリ44は、コンテンツサーバSVにコンテンツを要求し、その要求に応じて配信されたコンテンツを再生するなど、基本的なサービスを提供するためのコンピュータプログラムである。ガイダンスサーバアプリ45もまた、本ネットワーク上で通信に使用されるポート番号を管理するためのコンピュータプログラムである。
【0084】
オーディオクライアントCLは、フラッシュメモリのような不揮発性メモリ46,47及びRAM49を備える。不揮発性メモリ46,47の各々には、ポート番号とその更新日時とが記録される。ガイダンスサーバアプリ45は、ガイダンスマスタアプリ41から送信されたポート番号及びその更新日時を不揮発性メモリ47に設定する。クライアントアプリ44は、ガイダンスサーバアプリ45から送信されたポート番号及びその更新日時を不揮発性メモリ46に設定し、その設定されたポート番号を使用して通信を行う。クライアントアプリ44及びガイダンスサーバアプリ45は、同一のネットワークインターフェース48を共用する。
【0085】
ガイダンスマスタアプリ41は本ネットワーク上に1つしか存在しない。ガイダンスサーバアプリ45は本ネットワーク上に少なくとも1つ存在すればよいが、2つ以上存在しても構わない。本実施の形態では、図11及び図12に示すように、ガイダンスマスタアプリ41は唯一のコンテンツサーバSVにインストールされている。一方、ガイダンスサーバアプリ45はオーディオクライアントCL1及びCL2にはインストールされているが、オーディオクライアントCL3にはインストールされていない。
【0086】
ガイダンスマスタアプリ41は、ガイダンスサーバアプリ45にポート番号を問い合わせ、自身の不揮発性メモリ42に設定されている更新日時よりも問い合わせ先の不揮発性メモリ47に設定されている更新日時の方が古い場合、図11に示すように、自身の不揮発性メモリ42に設定されているポート番号で問い合わせ先の不揮発性メモリ47に設定されているポート番号を書き換える。すなわち、ガイダンスマスタアプリ41用の不揮発性メモリ42にはポート番号及びその更新日時の原本が保存されているが、ガイダンスサーバアプリ45用の不揮発性メモリ47にはそのコピーが保存される。このように、ガイダンスマスタアプリ41はコンテンツサーバSVにインストールされているが、ガイダンスサーバアプリ45に対してクライアント的に動作する。要するにこの動作により、最新のポート番号がガイダンスマスタアプリ41からガイダンスサーバアプリ45にアップロードされる。
【0087】
また、クライアントアプリ44は、ガイダンスサーバアプリ45にポート番号を問い合わせ、自身の不揮発性メモリ46に設定されている更新日時よりも問い合わせ先の不揮発性メモリ47に設定されている更新日時の方が新しい場合、図12に示すように、問い合わせ先の不揮発性メモリ47に設定されているポート番号で自身の不揮発性メモリ46に設定されているポート番号を書き換える。すなわち、ガイダンスサーバアプリ45用の不揮発性メモリ47にはポート番号及びその更新日時のコピーが保存されているが、クライアントアプリ44用の不揮発性メモリ46にはさらにそのコピーが保存される。このように、ガイダンスサーバアプリ45はオーディオクライアントCL1,CL2にインストールされているが、ガイダンスマスタアプリ41に対してサーバ的に動作する。要するにこの動作により、最新のポート番号がガイダンスサーバアプリ45からクライアントアプリ44にダウンロードされる。
【0088】
次に、図13に示したフロー図を参照し、このネットワークオーディオシステムの動作を説明する。
【0089】
以下、ポート番号を設定するためのポートを「設定ポート」という。また、ガイダンスサーバアプリ45を探索するためのポートを「ガイダンスサーバ探索ポート」という。
【0090】
本例では、ガイダンスマスタアプリ41用の不揮発性メモリ42にはポート番号「70192」及びその更新日時「2003年4月10日13時20分」が記録され、ガイダンスサーバアプリ45用の不揮発性メモリ47にはポート番号「70099」及びその更新日時「2003年3月31日11時40分」が記録され、クライアントアプリ44用の不揮発性メモリ46にはポート番号「70092」及びその更新日時「2003年3月10日8時20分」が記録されていると仮定する。
【0091】
(1)ガイダンスマスタアプリ41からガイダンスサーバアプリ45へのアップロード(図11)
【0092】
ガイダンスサーバアプリ45は、設定ポートでガイダンスマスタアプリ41からの接続パケットを待つ(S231)。具体的には、設定ポートのポート番号には予め定められた「70000」を使用し、通信プロトコルにはTCPを使用する。
【0093】
ガイダンスサーバアプリ45はまた、ガイダンスサーバ探索ポートでガイダンスマスタアプリ41からの探索パケットを待つ(S232)。具体的には、ガイダンスサーバ探索ポートのポート番号にも予め定められた「70000」を使用し、通信プロトコルにはUDPを使用する。
【0094】
続いて、ガイダンスマスタアプリ41は、ネットワーク上に存在するガイダンスサーバアプリ45を探索する(S131〜S133,S233,S234)。詳細は次の通り。
【0095】
ガイダンスマスタアプリ41は、UDPに従って探索パケットを作成し、ネットワーク上にブロードキャスト(同報送信)する(S131)。探索パケットは、予め定められたマジックワードと、送信先のポート番号「70000」と、コンテンツサーバSV(送信元)のIPアドレスと、コンテンツサーバSVで未使用のポート番号(たとえば「1025」)とを含む。ガイダンスマスタアプリ41は探索パケットをブロードキャストした後、ガイダンスサーバアプリ45からの応答パケットを待つ(S132)。
【0096】
ガイダンスサーバアプリ45は、ガイダンスマスタアプリ41から探索パケットを受信すると(S233)、応答パケットを作成し、その探索パケットを送信したガイダンスマスタアプリ41に返信する(S234)。応答パケットは、返信先(コンテンツサーバSV)のIPアドレスと、返信先のポート番号「1025」と、不揮発性メモリ47から読み出されたポート番号と、そのポート番号の更新日時とを含む。
【0097】
ガイダンスマスタアプリ41は、ガイダンスサーバアプリ45から応答パケットを受信すると(S133)、その応答パケットに含まれるポート番号の更新日時を不揮発性メモリ42から読み出したポート番号の更新日時と比較する(S134)。応答パケットの更新日時の方が不揮発性メモリ42の更新日時よりも古い場合はステップS136に進み、新しい場合はステップS139に進む(S135)。
【0098】
本例では、ガイダンスマスタアプリ41用の不揮発性メモリ42には更新日時「2003年4月10日13時20分」が記録され、ガイダンスサーバアプリ45用の不揮発性メモリ47には更新日時「2003年3月31日11時40分」が記録されているので、ガイダンスマスタアプリ41はガイダンスサーバアプリ45のポート番号の方が古いと判断し、ステップS136に進んでポート番号の更新を開始する。
【0099】
ガイダンスマスタアプリ41は、ポート番号を更新するためにまず、設定ポートを使用して接続パケットをガイダンスサーバアプリ45に送信する(S136)。接続パケットは、送信先(オーディオクライアントCL)のIPアドレスと、送信先のポート番号「70000」とを含む。
【0100】
ガイダンスサーバアプリ45は、設定ポートで未だ接続が確立していない場合において(S235)、ガイダンスマスタアプリ41から接続パケットを受信すると(S236)、ガイダンスマスタアプリ41との接続処理を行う(S237)。ガイダンスサーバアプリ45は設定ポートで接続を確立した後、ガイダンスマスタアプリ41からの設定パケットを待つ(S238)。
【0101】
ガイダンスマスタアプリ41は、設定パケットを作成し、ガイダンスサーバアプリ45に送信する(S137)。設定パケットは、送信先(オーディオクライアントCL)のIPアドレスと、送信先のポート番号「70000」と、不揮発性メモリ42から読み出されたポート番号と、そのポート番号の更新日時とを含む。
【0102】
ガイダンスサーバアプリ45は、ガイダンスマスタアプリ41から設定パケットを受信すると(S239)、その設定パケットに含まれるポート番号及びその更新日時で不揮発性メモリ47を書き換える(S240)。これにより、ガイダンスサーバアプリ45のポート番号が更新される。
【0103】
次に、ガイダンスマスタアプリ41は、切断パケットをガイダンスサーバアプリ45に送信する(S138)。ガイダンスサーバアプリ45は、ガイダンスマスタアプリ41から切断パケットを受信すると(S241)、ガイダンスマスタアプリ41との切断処理を行う(S242)。
【0104】
ガイダンスマスタアプリ41が探索パケットを送信してから予め定められた期間(たとえば10秒)以上経過した場合、ステップS131に戻って探索パケットを再びブロードキャストする。すなわち、ガイダンスマスタアプリ41は、予め定められた期間ごとにガイダンスサーバアプリ45にポート番号及びその更新日時を問い合わせる。
【0105】
ガイダンスマスタアプリ41は、コンテンツサーバSVの起動時及び設定更新時にも上記動作を実行し、ガイダンスサーバアプリ45に新しいポート番号及びその更新日時をアップロードする。
【0106】
ネットワーク上で複数のガイダンスサーバアプリ45が起動している場合、ガイダンスマスタアプリ41は複数の応答パケットを受信する。この場合、古いポート番号を管理しているガイダンスサーバアプリ45の全てにガイダンスマスタアプリ41から新しいポート番号が送信され、書き換えられる。
【0107】
(2)ガイダンスサーバアプリ45からクライアントアプリ44へのダウンロード(図12)
【0108】
クライアントアプリ44によるステップS252〜S256は、ガイダンスマスタアプリ41によるステップS131〜S135とほぼ同じである。クライアントアプリ44に対するガイダンスサーバアプリ45の応答動作(S233,S234)は、上記ガイダンスマスタアプリ41に対するガイダンスサーバアプリ45の応答動作(S233,S234)と全く同じである。ガイダンスサーバアプリ45によるステップS235〜S242はクライアントアプリ44に対しては動作しない。
【0109】
クライアントアプリ44はまず、不揮発性メモリ46からポート番号及びその更新日時を読み出し、RAM49に格納する(S251)。
【0110】
クライアントアプリ44は、ガイダンスサーバ探索ポートで探索パケットをブロードキャストし(S252)、応答パケットを待つ(S253)。
【0111】
ガイダンスサーバアプリ45は、クライアントアプリ44から探索パケットを受信すると(S233)、その探索パケットを送信したクライアントアプリ44に応答パケットを返信する(S234)。
【0112】
クライアントアプリ44は、ガイダンスサーバアプリ45から応答パケットを受信すると(S254)、その応答パケットに含まれるポート番号の更新日時をRAM49から読み出したポート番号の更新日時と比較する(S255)。応答パケットの更新日時の方がRAM49の更新日時よりも新しい場合はステップS257に進み、古い場合はステップS258に進む(S256)。
【0113】
本例では、クライアントアプリ44用の不揮発性メモリ46には更新日時「2003年3月10日8時20分」が記録され、ガイダンスサーバアプリ45用の不揮発性メモリ47には更新日時「2003年3月31日11時40分」が記録されているので、クライアントアプリ44はガイダンスサーバアプリ45のポート番号の方が新しいと判断し、ステップS257に進んでポート番号の更新を開始する。
【0114】
クライアントアプリ44は、ポート番号を更新するためにまず、その応答パケットに含まれるポート番号及びその更新日時をRAM49に格納する(S257)。
【0115】
探索パケットを送信してから2秒以上経過した場合(S258)、クライアントアプリ44は、RAM49に含まれるポート番号及びその更新日時で不揮発性メモリ46を書き換える(S259)。経過していない場合、クライアントアプリ44はステップS253に戻って応答パケットを待つ(S253)。
【0116】
クライアントアプリ44は、オーディオクライアントCLの起動時及び所定期間(たとえば30秒)ごとに上記動作を実行し、ガイダンスサーバアプリ45から新しいポート番号及びその更新日時をダウンロードする。
【0117】
ネットワーク上で複数のガイダンスサーバアプリ45が起動している場合、クライアントアプリ44は複数の応答パケットを受信する。各応答パケットの更新日時の方がRAM49の更新日時よりも新しい場合、その応答パケットに含まれる新しいポート番号及びその更新日時がRAM49に格納される。したがって、複数のガイダンスサーバアプリ45の中で最も新しいポート番号及びその更新日時が最終的にRAM49に格納され、それらが不揮発性メモリ46に格納される。
【0118】
以上のように第4の実施の形態によれば、ガイダンスマスタアプリ41がポート番号をガイダンスサーバアプリ45にアップロードし、そのアップロードされたポート番号をクライアントアプリ44がダウンロードしているため、コンテンツサーバSVにポート番号を設定しさえすれば、全てのオーディオクライアントCLにもそのポート番号が自動的に設定される。その結果、ポート番号の設定にかかる手間を軽減することができる。
【0119】
加えて、ガイダンスマスタアプリ41はネットワーク上に1つしか存在しないため、全てのオーディオクライアントCLに同じポート番号が設定される。また、ガイダンスマスタアプリ41のポート番号さえ変更すれば、全てのオーディオクライアントCLのポート番号が自動的に変更される。また、ガイダンスマスタアプリ41が定期的にポート番号をガイダンスサーバアプリ45にアップロードし、そのアップロードされたポート番号をクライアントアプリ44が定期的にダウンロードしているため、全てのオーディオクライアントCLに最新のポート番号が設定される。
【0120】
また、クライアントアプリ44はオーディオクライアントCLの起動時にガイダンスサーバアプリ45を探索し、新しいポート番号をダウンロードするため、古いポート番号が設定されたままになっているオーディオクライアントCLがネットワークに接続されても、直ちに新しいポート番号が設定される。
【0121】
また、ガイダンスサーバアプリ45はオーディオクライアントCLにインストールされ、予め定めされたポート番号「70000」を使用して接続パケット及び探索パケットを待つ。一方、ガイダンスマスタアプリ41はコンテンツサーバSVにインストールされ、未使用のポート番号を使用して接続パケット及び探索パケットを送信する。オーディオクライアントCLは専用機であり、他のアプリケーションプログラムはインストールされない。そのため、ガイダンスサーバアプリ45がポート番号「70000」を使用する前に他のアプリケーションプログラムが使用してしまったり、あるいはガイダンスサーバアプリ45がポート番号「70000」を使用している最中に他のアプリケーションプログラムが使用しようとしたりするなど、オーディオクライアントCLでポート番号の競合は起こらない。一方、コンテンツサーバSVは汎用機であり、他のアプリケーションプログラムがインストールされることがある。しかし、ガイダンスマスタアプリ41は予め定められたポート番号を使用してパケットを待つことはない。そのため、コンテンツサーバSVでもポート番号の競合は起こらない。
【0122】
また、複数のオーディオクライアントCLにガイダンスサーバアプリ45がそれぞれインストールされているため、そのうち少なくとも1つのオーディオクライアントCLが起動していれば、全てのオーディオクライアントCLにポート番号が設定される。また、常時起動しているコンテンツサーバSVにガイダンスマスタアプリ41がインストールされているため、常に新しいポート番号がガイダンスサーバアプリ45にアップロードされる。
【0123】
[第4の実施の形態の変形例]
上記第4の実施の形態ではガイダンスマスタアプリ41はコンテンツサーバSVにインストールされているが、図14に示すように、いずれか1つのオーディオクライアント(図14の例ではCL3)にインストールされていてもよい。この場合、ガイダンスマスタアプリ41用にポート番号及びその更新日時を保存するための不揮発性メモリ50を設ける。また、ステップS251〜S259の機能のみを有するクライアントアプリ51がコンテンツサーバSVにインストールされる。クライアントアプリ51はガイダンスサーバアプリ45からポート番号及びその更新日時をダウンロードして不揮発性メモリ42を書き換える。サーバアプリ40は不揮発性メモリ42にダウンロードされたポート番号を使用する。
【0124】
また、ネットワーク上に複数のコンテンツサーバSVが存在する場合は、1つのコンテンツサーバSVにガイダンスマスタアプリ41をインストールし、その他のコンテンツサーバSVにステップS251〜S259の機能のみを有するクライアントアプリ51をインストールするか、あるいは1つのオーディオクライアントCLにガイダンスマスタアプリ41をインストールし、全てのコンテンツサーバSVにステップS251〜S259の機能のみを有するクライアントアプリ51をインストールしてもよい。
【0125】
また、ガイダンスマスタアプリ41は上記のようにサーバアプリ40又はクライアントアプリ44と一緒にインストールするのではなく、ガイダンスマスタアプリ41のみをインストールした専用機をネットワーク上に配置してもよい。
【0126】
また、ポート番号の競合を回避するためには上記のようにガイダンスサーバアプリ45は専用機であるオーディオクライアントCLにインストールするのが好ましいが、コンテンツサーバSVにインストールしてもよい。このようにガイダンスマスタアプリ41及びガイダンスサーバアプリ45をネットワーク上のどの機器にインストールしてもよいので、柔軟なネットワーク構築が可能である。
【0127】
また、コンテンツサーバSVに汎用PCを用いる場合、サーバアプリ40及びガイダンスマスタアプリ41に加え、ポート番号の設定を変更するためのアプリケーションプログラム(以下、「設定変更用アプリ」という)をインストールしてもよい。設定変更用アプリはGUI(Graphical User Interface)を利用してポート番号を変更するようにしてもよく、あるいはインターネット経由で外部サーバにアクセスしてポート番号をダウンロードするようにしてもよい。ポート番号を変更したときには、その日時も併せて設定する。なお、サーバアプリ40又はガイダンスサーバアプリ45が設定変更用アプリの機能を兼ね備えていてもよい。
【0128】
また、ポート番号に代えて又はそれとともに、本ネットワークオーディオシステムが提供する基本的なサービス(音楽の配信及び再生)に関する情報を設定してもよい。この設定情報としては、ネットワークプロトコルに関する設定事項(たとえば探索パケットに含まれるマジックワード)、オーディオクライアントCL上で動作するファームウェアやJAVA(登録商標)等のコンピュータプログラムそのものなどがある。ただし、プログラムのように大量の設定情報をUDPで送信するには限界があるので、この場合、ガイダンスサーバアプリ45からの応答パケットには、設定情報そのものを含めるのではなく、設定項目名と更新日時とを含める。この応答パケットを受信したクライアントアプリ44は、更新が必要と判断した場合だけTCPでガイダンスサーバアプリ45との接続を確立し、その後、必要な設定情報を全て取得し、自身の設定情報を更新する。以下、設定情報として、ファームウェアを管理する場合及びポート番号を管理する場合における応答パケットの例を挙げる。
【0129】
ファームウェアを管理する場合、UDPによる応答パケットはたとえば次のようにファームウェアの種別及び更新日時を含むが、ファームウェアを含まない。ファームウェアはTCPで送信される。
CLIENT_TYPE1_FIRMWEAR:2002.12.22.15.30
CLIENT_TYPE2_FIRMWEAR:2002.12.20.10.10
【0130】
ポート番号を管理する場合、応答パケットはたとえば次のようにポート番号の種別及び更新日時を含むが、ポート番号を含まない。ポート番号はTCPで送信される。
SERVICE_TYPE1_PORTNO:2002.08.01.20.11
SERVICE_TYPE2_PORTNO: 2002.08.01.20.11
【0131】
[他の実施の形態]
なお、上記第1〜第4の実施の形態ではコンテンツサーバSVは音楽コンテンツを蓄積しているが、これに代えて又はこれと一緒に映像コンテンツを蓄積していてもよい。よって、本発明は、上記で例示したネットワークオーディオシステムだけでなく、映像コンテンツを配信して映像を再生するネットワークAVシステムはもちろんのこと、一般的なサーバクライアントシステムにも適用可能である。
【0132】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【図1】本発明の実施の形態によるネットワークオーディオシステムの全体構成を示す機能ブロック図である。
【図2】図1中のコンテンツサーバの構成を示す機能ブロック図である。
【図3】図1中のオーディオクライアントの構成を示す機能ブロック図である。
【図4】本発明の第1の実施の形態によるネットワークオーディオシステムの動作を示すフロー図である。
【図5】本発明の第2の実施の形態によるネットワークオーディオシステムの動作を示すフロー図である。
【図6】本発明の第3の実施の形態によるネットワークオーディオシステムの動作を示すフロー図である。
【図7】図6中のコンテンツサーバによる探索待受処理の詳細を示すフロー図である。
【図8】図6中のオーディオクライアントによる探索処理の詳細を示すフロー図である。
【図9】本発明の第4の実施の形態におけるコンテンツサーバのアプリケーション構成を示す機能ブロック図である。
【図10】本発明の第4の実施の形態におけるオーディオクライアントのアプリケーション構成を示す機能ブロック図である。
【図11】本発明の第4の実施の形態によるポート番号等のアップロード動作を示す機能ブロック図である。
【図12】本発明の第4の実施の形態によるポート番号等のダウンロード動作を示す機能ブロック図である。
【図13】図11及び図12に示したアップロード動作及びダウンロード動作を示すフロー図である。
【図14】図9〜図13に示した第4の実施の形態の変形例を示す機能ブロック図である。
【符号の説明】
10 ネットワークオーディオシステム
12 LAN
30 フラッシュメモリ
SV コンテンツサーバ
CL,CL1,CL2,CL3 オーディオクライアント
40 サーバアプリ
41 ガイダンスマスタアプリ
42,46,47,50 不揮発性メモリ
44,51 クライアントアプリ
45 ガイダンスサーバアプリ

Claims (9)

  1. サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
    前記サーバは、
    第1のポート番号を使用して第2のポート番号と第1又は第2の値を有する識別情報と前記クライアントに送信するポート番号送信手段を含み、
    前記クライアントは、
    前記サーバから送信された前記識別情報が第1の値を有するとき前記サーバから送信された前記第2のポート番号を使用して前記サーバと通信し、前記識別情報が第2の値を有するとき予め定められた第3のポート番号を使用して前記サーバと通信する通信手段を含むことを特徴とするサーバクライアントシステム。
  2. サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
    前記サーバは、
    現在使用しているポート番号及び過去に使用していたポート番号を使用して前記クライアントからの通信を待ち受ける手段を含み、
    前記クライアントは、
    ポート番号を記憶するためのポート番号記憶手段に記憶されたポート番号を使用して前記サーバと通信する手段を含み、
    前記サーバはさらに、
    前記クライアントからの通信を受けると、前記現在使用しているポート番号を前記クライアントに送信する手段を含み、
    前記クライアントはさらに、
    前記ポート番号記憶手段に記憶されたポート番号を前記サーバから送信されたポート番号に書き換える手段を含むことを特徴とするサーバクライアントシステム。
  3. サーバと前記サーバに接続されたクライアントとを備えたサーバクライアントシステムであって、
    前記サーバは、
    複数のポート番号の中から使用可能なポート番号を選択し、その選択したポート番号を使用して前記クライアントからの通信を待ち受ける手段を含み、
    前記クライアントは、
    前記複数のポート番号の中から使用すべきポート番号を選択し、その選択したポート番号を使用して前記サーバと通信する手段を含み、
    前記サーバはさらに、
    前記クライアントからの通信を受けると、前記クライアントに応答する手段を含み、
    前記クライアントはさらに、
    前記サーバからの応答がない場合、前記使用すべきポート番号を変更する手段を含むことを特徴とするサーバクライアントシステム。
  4. 請求項又は請求項に記載のサーバクライアントシステムであって、
    前記サーバはさらに、
    前記ポート番号を使用して別のポート番号を送信する手段を含み、
    前記クライアントはさらに、
    前記サーバから送信された前記別のポート番号を使用して前記サーバと通信する手段を含むことを特徴とするサーバクライアントシステム。
  5. 所定のサービスを提供するためのサーバアプリケーションプログラムがインストールされたサーバと、前記サーバに接続され、前記サービスを提供するためのクライアントアプリケーションプログラムがインストールされたクライアントとを備えたサーバクライアントシステムであって、
    前記サーバクライアントシステムはさらに、
    前記サービスに関する設定情報及びその設定情報の更新時期を管理するガイダンスマスタアプリケーションプログラム及びガイダンスサーバアプリケーションプログラムとを備え、
    前記ガイダンスマスタアプリケーションプログラムは、
    前記ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含み、
    前記クライアントアプリケーションプログラムは、
    前記ガイダンスサーバアプリケーションプログラムにその設定情報及び更新時期を問い合わせるステップを含み、
    前記ガイダンスサーバアプリケーションプログラムは、
    前記問い合わせに応じてその設定情報及び更新時期を回答するステップを含み、
    前記ガイダンスマスタアプリケーションプログラムはさらに、
    前記回答された更新時期を自身が管理している更新時期と比較し、前記回答された更新時期が自身が管理している更新時期よりも古い場合、前記回答された設定情報で自身が管理している設定情報を更新するステップを含み、
    前記クライアントアプリケーションプログラムはさらに、
    前記回答された前記更新時期を自身が管理している更新時期と比較し、前記回答された更新時期が自身が管理している更新時期よりも新しい場合、前記回答された設定情報で自身が管理している設定情報を更新するステップを含むことを特徴とするサーバクライアントシステム。
  6. 請求項に記載のサーバクライアントシステムであって、
    前記設定情報はポート番号を含み、
    前記ガイダンスサーバアプリケーションプログラムは前記クライアントにインストールされたことを特徴とするサーバクライアントシステム。
  7. 請求項に記載のサーバクライアントシステムであって、
    前記クライアントは複数設けられたことを特徴とするサーバクライアントシステム。
  8. 請求項1〜請求項のいずれか1項に記載のサーバクライアントシステムに使用されるサーバ。
  9. 請求項1〜請求項のいずれか1項に記載のサーバクライアントシステムに使用されるクライアント。
JP2003172410A 2002-10-11 2003-06-17 サーバクライアントシステム Expired - Fee Related JP3797344B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2003172410A JP3797344B2 (ja) 2002-10-11 2003-06-17 サーバクライアントシステム
EP20030022805 EP1408671B1 (en) 2002-10-11 2003-10-07 Server client system for automatically setting port numbers used to initiate or continue a data communication
DE2003610845 DE60310845T2 (de) 2002-10-11 2003-10-07 Server Client System zum automatischen Setzen von Portnummern zum Einleiten oder Fortsetzen einer Datenkommunikation
US10/682,074 US7418473B2 (en) 2002-10-11 2003-10-10 Server client system for automatically setting port number

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002298300 2002-10-11
JP2003172410A JP3797344B2 (ja) 2002-10-11 2003-06-17 サーバクライアントシステム

Publications (2)

Publication Number Publication Date
JP2004187263A JP2004187263A (ja) 2004-07-02
JP3797344B2 true JP3797344B2 (ja) 2006-07-19

Family

ID=32032959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003172410A Expired - Fee Related JP3797344B2 (ja) 2002-10-11 2003-06-17 サーバクライアントシステム

Country Status (4)

Country Link
US (1) US7418473B2 (ja)
EP (1) EP1408671B1 (ja)
JP (1) JP3797344B2 (ja)
DE (1) DE60310845T2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181009B2 (en) * 2009-03-03 2012-05-15 Harris Corporation VLAN tagging over IPSec tunnels
JP6061480B2 (ja) * 2012-03-16 2017-01-18 キヤノン株式会社 通信装置の制御方法及び通信装置
FR2988952A1 (fr) * 2012-03-30 2013-10-04 France Telecom Changement de port tcp d'une connexion client/serveur.
US8677510B2 (en) 2012-04-06 2014-03-18 Wayne Odom System, method, and device for communicating and storing and delivering data
US8448236B1 (en) 2012-12-07 2013-05-21 Wayne Odom System, method, and device for storing and delivering data
US8844054B2 (en) 2012-04-06 2014-09-23 Wayne Odom System, method, and device for communicating and storing and delivering data
US9378339B2 (en) 2012-04-06 2016-06-28 Wayne Odom System, method, and device for delivering communications and storing and delivering data
CN106487864B (zh) * 2015-09-02 2019-09-27 华为终端有限公司 数据连接的建立方法、服务端及移动终端
JP6874386B2 (ja) * 2017-01-23 2021-05-19 カシオ計算機株式会社 通信機器、通信システム及び通信方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2890471B2 (ja) 1989-05-26 1999-05-17 スズキ株式会社 船外機のリモートコントロール装置
JP2964963B2 (ja) 1996-09-20 1999-10-18 日本電気株式会社 ネットワーク自動設定システム
JP2817738B2 (ja) 1998-02-03 1998-10-30 スズキ株式会社 船外機のリモートコントロール装置
US6449251B1 (en) * 1999-04-02 2002-09-10 Nortel Networks Limited Packet mapper for dynamic data packet prioritization
JP3509848B2 (ja) 2000-04-27 2004-03-22 日本電気株式会社 通信制御装置および記録媒体
FI20002822A (fi) * 2000-12-21 2002-06-22 Nokia Corp Osoitteen jakaminen
JP2003078544A (ja) * 2001-08-31 2003-03-14 Allied Tereshisu Kk アドレス変換装置、監視装置、及びプログラム

Also Published As

Publication number Publication date
DE60310845D1 (de) 2007-02-15
EP1408671A3 (en) 2004-06-02
EP1408671B1 (en) 2007-01-03
JP2004187263A (ja) 2004-07-02
DE60310845T2 (de) 2007-10-11
US20040131077A1 (en) 2004-07-08
EP1408671A2 (en) 2004-04-14
US7418473B2 (en) 2008-08-26

Similar Documents

Publication Publication Date Title
US10122785B2 (en) Method of synchronizing a plurality of content directory device (CDS) devices, CDS device, and system
JP5425070B2 (ja) メタデータ用のネットワークレポジトリー
JP4245670B2 (ja) 消費者電子システムの機能の管理
US7269721B2 (en) Method, system, and apparatus for booting with remote configuration data
US20020191637A1 (en) Home appliance protocol upgrading system and method
KR20030097011A (ko) 디바이스의 자동설정을 위한 게이트웨이, 원격 서버 및이들 장치에서의 자동설정방법
US20070283043A1 (en) Information delivery system, delivery request program, transfer program, delivery program, and the like
EP0992153B1 (en) Management of functionality in a consumer electronics system
US8219618B2 (en) Information communication system, information communication method, and recording medium having information communication program stored thereon
JP3797344B2 (ja) サーバクライアントシステム
US20040221007A1 (en) Smart control points
US8654678B2 (en) Node device, recording medium where storage control program is recorded, and information storing method
JP4741666B2 (ja) コンテンツ配信システム、コンテンツ取得処理装置、代替配信装置、コンテンツ配信方法、コンテンツ取得処理方法、代替配信方法、コンテンツ配信プログラム、コンテンツ取得処理プログラム、および、代替配信プログラム
JP2006107349A (ja) データ取得提供プログラム
CN111585795B (zh) 一种通信设备的软件存储、加载与升级方法及系统
CN1972207A (zh) 管理通用即插即用装置的信息的方法和设备
JP2010128512A (ja) 情報通信システム、及びソフトウェア更新方法
JP4349189B2 (ja) ネットワークシステム、番組録画予約方法および情報処理装置
JP2002513192A (ja) 通信ネットワーク内でオブジェクトを管理する処理及び装置
JP2001223730A (ja) ゲートウェイ装置および記録媒体
JP2001092641A (ja) ソフトウェアインストールシステム
JPH10289142A (ja) ネットワークのファイル更新システム
EP2034420A1 (en) A method and an apparatus for operating right
JP2007505547A (ja) ホームネットワークにおける設定配信
JP2006099380A (ja) 更新版ソフトウェア配布方法及びシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060410

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120428

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150428

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150428

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees