(57)【要約】【課題】  サーバが複数存在する場合でも、各クライアント（端末機器）が一意に接続先サーバを決定し得るクライアント／サーバシステムを提供する。【解決手段】  クライアント１０は、ネットワークへの接続時に、ネットワーク上の各サーバの機能情報を取得し、このうち、例えば、最も機能の高いサーバを接続先として設定する。サーバ２０Ａは、ネットワークに新たにサーバ２０Ｂが接続されたとき、自身の機能と新たにネットワークに接続されたサーバ２０Ｂの機能を比較して、クライアントの接続先とされるべきサーバを決定し、これを各クライアントに通知する。これにより、マルチサーバ、マルチクライアントのネットワーク構成において、クライアントの接続先サーバが一意に決定される。【選択図】    図２
2006331370.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されるネットワーク対応機器において、
自身が前記ネットワークに接続されたことを通知するための情報を前記ネットワーク上の機器に向かって送信する接続通知送信部と、
前記ネットワーク上の他の機器から送信された情報を受信する情報受信部と、
前記情報受信部にて受信された情報が前記接続通知送信部によって送信された前記情報に対するサーバ機能を有する機器からの応答情報であるとき、受信した前記応答情報に基づいてそれぞれの機器のサーバ機能を比較し、この比較結果に基づいて接続先とされるべき前記サーバ機能を有する機器を決定し、決定した前記サーバ機能を有する機器に対して接続を行うよう制御する接続管理部と、
を有することを特徴とするネットワーク対応機器。
【請求項２】
請求項１に記載のネットワーク対応機器において、
前記接続管理部によって接続がなされた前記サーバ機能を有する機器とこの機器から前記情報受信部を介して受信した前記応答情報とを対応付けて記憶する記憶部を有する、
ことを特徴とするネットワーク対応機器。
【請求項３】
請求項１に記載のネットワーク対応機器において、
前記サーバ機能を有する機器との接続が切断されたことを検出する接続切断検出部をさらに有し、
前記接続切断検出部により、前記サーバ機能を有する機器との接続が切断されたことが検出されたとき、
前記接続通知送信部は、自身がネットワークに接続されたことを通知するための情報を前記ネットワーク上の機器に向かって再送信し、
前記接続管理部は、前記接続通知送信部から再送信された前記情報に対する前記サーバ機能を有する機器からの応答情報をもとに、新たに接続先とされるべき前記サーバ機能を有する機器を決定し、決定した前記サーバ機能を有する機器に対して接続を行うよう制御する、
ことを特徴とするネットワーク対応機器。
【請求項４】
請求項１、２または３に記載のネットワーク対応機器において、
自身が接続先として選択したサーバ機能を有する機器の情報を記憶する記憶部と、
前記情報受信部が受信した情報が前記ネットワークに新たに接続されたサーバ機能を有する機器からの情報であるとき、受信した前記情報と前記記憶部に記憶された情報に基づいて前記サーバ機能を有する各機器の機能を比較し、この比較結果に基づいて接続先とされるべき前記サーバ機能を有する機器を決定するサーバ決定部と、
を有することを特徴とするネットワーク対応機器。
【請求項５】
ネットワークに接続されるネットワーク対応機器において、
前記ネットワークに接続された機器から送信された情報を受信する情報受信部と、
自身が接続先として選択したサーバ機能を有する機器の情報を記憶する記憶部と、
前記情報受信部が受信した情報が前記ネットワークに新たに接続されたサーバ機能を有する機器からの情報であるとき、受信した前記情報と前記記憶部に記憶された情報に基づいて前記サーバ機能を有する各機器の機能を比較し、この比較結果に基づいて接続先とされるべき前記サーバ機能を有する機器を決定するサーバ決定部と、
前記サーバ決定部によって決定された前記サーバ機能を有する機器に対して接続を行うよう制御する接続管理部と、
を有することを特徴とするネットワーク対応機器。
【請求項６】
クレーム５に記載のネットワーク対応機器において、
前記接続管理部は、前記サーバ決定部によって決定されたサーバ機能を有する機器が現在接続中のサーバ機能を有する機器と異なるとき、現在接続中の機器との接続を切断し、前記サーバ決定部によって決定された機器との接続を行う、
ことを特徴とするネットワーク対応機器。
【請求項７】
サーバ機能を有するネットワーク対応機器であって、
自身が前記ネットワークに接続されたことを通知するための情報を前記ネットワーク上の機器に向かって送信する接続通知送信部と、
前記ネットワークに接続された機器から送信された情報を受信する情報受信部と、
自身の前記サーバ機能に関する情報を記憶する記憶部と、
前記情報受信部が受信した情報がネットワークに接続された他のサーバ機能を有する機器からの前記接続を通知するための情報であるとき、前記情報受信部によって受信された情報と前記記憶部に記憶された情報に基づいて、自身と前記サーバ機能を有する機器の機能を比較し、この比較結果に基づいて前記ネットワーク上の機器から接続されるべきサーバ機能を有する機器を決定する接続サーバ決定部と、
前記接続サーバ決定部によって決定された接続先を示す情報をネットワークに接続された機器に送信する接続先サーバ通知部と、
を有することを特徴とするネットワーク対応機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されるネットワーク対応機器に関し、特に、ネットワークに対してサーバ機能を有する複数のネットワーク機器が接続される場合に用いて好適なものである。
【背景技術】
【０００２】
近年のインターネットに代表されるネットワークの普及に伴い、宅内の機器をネットワークに接続し、これらを宅内および宅外からネットワークを介して制御したいと言う要望が高まってきている。
【０００３】
ホームネットワークを構築する場合、ネットワーク対応機能を搭載した端末機器（以下、クライアントと称す）と、これらクライアントを制御するサーバが必要となる。ここで、多数のクライアントとサーバをもってホームネットワークを構築する場合には、高機能サーバの導入など、ユーザに経済的な負担が課される。
【０００４】
その一方、少数のクライアントからホームネットワークを構築する場合には、高機能サーバを導入せずに、クライアントに適宜組み込まれ得る簡易的なサーバ機能を用いて、ネットワークを構築することもできる。この場合、ネットワーク上の各クライアントを制御するために、サーバ機能を有する１つのクライアントによって情報が一元管理される。しかし、この形態によると、将来ネットワークに接続されるクライアントが増加した場合に、簡易なサーバ機能では処理能力が不足するといった場面が想定される。この場合、十分な処理能力を持つ高機能サーバが追ってホームネットワークに導入されることになる。
【０００５】
このように、ネットワークの構築形態は、クライアントとサーバの組み合わせにおいて、様々な形態が想定される。ネットワークの構成に変更や追加などの拡張がなされた場合、ユーザは、例えば、接続先アドレスを自動的に切り換える等、その都度、それにあった設定をネットワークに対して行わなければならない。
【０００６】
特許文献１には、このような場合にユーザにおける設定処理の負担を軽減するための技術が記載されている。すなわち、この公報には、サーバまたは通信装置を新規に追加したときに、サーバアドレスまたは通信装置アドレスの登録を、ネットワーク管理者のマニュアルオペレーションを介さずに、自動で実行できる構成が開示されている。これによれば、サーバアドレスおよび通信装置アドレスの登録が容易となり、ネットワーク管理者の労力を軽減することができる。
【特許文献１】特開２０００−３５４０６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、この公報には、上記のようにネットワークに新規に追加されたサーバまたは通信装置のサーバアドレスまたは通信装置アドレスを、ネットワークに対して自動的に登録するとの技術思想は教示されているものの、ネットワーク上に複数のサーバが存在する場合に、各機器をどのサーバに一意的に接続するかまでは開示されていない。
【０００８】
本発明はこうした状況に鑑みてなされたものであり、その目的は、ネットワーク上に複数のサーバが存在する場合でも、全クライアントが接続先サーバを一意に決定し得るクライアント／サーバシステムを提供することにある。
【課題を解決するための手段】
【０００９】
第１の発明は、ネットワークに接続されるネットワーク対応機器（クライアント）において、自身が前記ネットワークに接続されたことを通知するための情報を前記ネットワーク上の機器に向かって送信する接続通知送信部と、前記ネットワーク上の他の機器から送信された情報を受信する情報受信部と、前記情報受信部にて受信された情報が前記接続通知送信部によって送信された前記情報に対するサーバ機能を有する機器（サーバ）からの応答情報であるとき、受信した前記応答情報に基づいてそれぞれの機器のサーバ機能を比較し、この比較結果に基づいて接続先とされるべき前記サーバ機能を有する機器を決定し、決定した前記サーバ機能を有する機器に対して接続を行うよう制御する接続管理部を有することを特徴とする。
【００１０】
この発明によれば、自身がネットワークに接続されたとき、ネットワーク上のサーバ機能を有する各ネットワーク対応機器（サーバ）の機能がクライアント自身によって比較される。そして、たとえば、最もサーバ機能が高いサーバが当該クライアントの接続先として設定される。したがって、第１の発明によれば、クライアントがネットワークへ接続された際にクライアント自身によって接続先サーバが一意に決定される。
【００１１】
第１の発明は、さらに、前記接続管理部によって接続がなされた前記サーバ機能を有する機器と、この機器から前記情報受信部を介して受信した前記応答情報とを対応付けて記憶する記憶部を有するものとすることができる。
【００１２】
また、第１の発明は、前記サーバ機能を有する機器（サーバ）との接続が切断されたことを検出する接続切断検出部をさらに有し、前記接続切断検出部により、前記サーバ機能を有する機器（サーバ）との接続が切断されたことが検出されたとき、前記接続通知送信部は、自身がネットワークに接続されたことを通知するための情報を前記ネットワーク上の機器に向かって再送信し、前記接続管理部は、前記接続通知送信部から再送信された前記情報に対する前記サーバ機能を有する機器（サーバ）からの応答情報をもとに、新たに接続先とされるべき前記サーバ機能を有する機器（サーバ）を決定し、決定した前記サーバ機能を有する機器（サーバ）に対して接続を行うよう制御するものとすることができる。
【００１３】
この発明によれば、接続先として設定されているサーバがネットワークから外されあるいは機能が停止したような場合に、再度、クライアントによってネットワーク上の各サーバの機能が比較される。そして、たとえば、最もサーバ機能が高いサーバが当該クライアントの接続先として設定される。したがって、この発明によれば、接続先サーバがネットワークから外されあるいは機能が停止したような場合にも、クライアント自身によって接続先サーバが一意に決定される。
【００１４】
さらに、第１の発明は、自身が接続先として選択したサーバ機能を有する機器（サーバ）の情報を記憶する記憶部と、前記情報受信部が受信した情報が前記ネットワークに新たに接続されたサーバ機能を有する機器（サーバ）からの情報であるとき、受信した前記情報と前記記憶部に記憶された情報に基づいて前記サーバ機能を有する各機器（サーバ）の機能を比較し、この比較結果に基づいて接続先とされるべき前記サーバ機能を有する機器（サーバ）を決定するサーバ決定部を有するものとすることができる。
【００１５】
この発明によれば、ネットワークに新たにサーバが接続された場合に、クライアントによって、現在自身の接続先とされているサーバの機能と新たにネットワークに接続されたサーバの機能が比較される。そして、たとえば、新たにネットワークに接続されたサーバの機能の方が高いような場合に、このサーバが当該クライアントの接続先として設定される。したがって、この発明によれば、ネットワークに新たにサーバが接続された場合にも、クライアント自身によって、接続先サーバが一意に決定される。
【００１６】
第２の発明は、ネットワークに接続されるネットワーク対応機器（クライアント）において、前記ネットワークに接続された機器から送信された情報を受信する情報受信部と、自身が接続先として選択したサーバ機能を有する機器の情報を記憶する記憶部と、前記情報受信部が受信した情報が前記ネットワークに新たに接続されたサーバ機能を有する機器からの情報であるとき、受信した前記情報と前記記憶部に記憶された情報に基づいて前記サーバ機能を有する各機器の機能を比較し、この比較結果に基づいて接続先とされるべき前記サーバ機能を有する機器を決定するサーバ決定部と、前記サーバ決定部によって決定された前記サーバ機能を有する機器に対して接続を行うよう制御する接続管理部を有することを特徴とする。
【００１７】
この発明によれば、ネットワークに新たにサーバ機能を有する機器（サーバ）が接続された場合に、クライアント側において、現在自身の接続先とされているサーバの機能と新たにネットワークに接続されたサーバの機能が比較される。そして、たとえば、新たにネットワークに接続されたサーバの機能の方が高いような場合に、このサーバが当該クライアントの接続先として設定される。したがって、第２の発明によれば、ネットワークに新たにサーバが接続された場合に、クライアント自身によって、接続先サーバが一意に決定される。
【００１８】
第２の発明において、前記接続管理部は、前記サーバ決定部によって決定されたサーバ機能を有する機器が現在接続中のサーバ機能を有する機器と異なるとき、現在接続中の機器との接続を切断し、前記サーバ決定部によって決定された機器との接続を行うよう構成することができる。
【００１９】
第３の発明は、サーバ機能を有するネットワーク対応機器（サーバ）において、自身が前記ネットワークに接続されたことを通知するための情報を前記ネットワーク上の機器に向かって送信する接続通知送信部と、前記ネットワークに接続された機器から送信された情報を受信する情報受信部と、自身の前記サーバ機能に関する情報を記憶する記憶部と、前記情報受信部が受信した情報がネットワークに接続された他のサーバ機能を有する機器（サーバ）からの前記接続を通知するための情報であるとき、前記情報受信部によって受信された情報と前記記憶部に記憶された情報に基づいて、自身と前記サーバ機能を有する機器（サーバ）の機能を比較し、この比較結果に基づいて前記ネットワーク上の機器から接続されるべきサーバ機能を有する機器（サーバ）を決定する接続サーバ決定部と、前記接続サーバ決定部によって決定された接続先を示す情報をネットワークに接続された機器に送信する接続先サーバ通知部とを有することを特徴とする。
【００２０】
この発明によれば、ネットワークに新たにサーバ機能を有する機器（サーバ）が接続された場合に、サーバ側において、自身の機能と新たにネットワークに接続されたサーバの機能が比較される。そして、たとえば、新たにネットワークに接続されたサーバの機能の方が高いような場合に、このサーバがネットワーク上のクライアントの接続先として設定され、これを示す情報が各クライアントに送信される。したがって、第３の発明によれば、ネットワークに新たにサーバが接続された場合に、サーバ側において、クライアントの接続先サーバが一意に決定される。
【発明の効果】
【００２１】
このように本発明によれば、サーバやクライアントがネットワークへ新たに接続されたり、あるいは、サーバの機能が停止することによってネットワークの構成が変化した場合に、ユーザに負担を課することなく、各クライアントが一意のサーバに接続を行うことができる。
【００２２】
ホームネットワークのように、ユーザが自由に機器を接続し、その内容によってネットワークシステムの構成が決まる場合には、ユーザにおいて予めシステムの構成がどのようになるのか予測が困難である。本発明によれば、ユーザが必ずしも専門的な知識を持っていなくとも、ネットワークシステムの構成の変更の際に、ユーザが特に意識することなく円滑にシステムの最適化を図ることができる。たとえば、より高機能なサーバが接続されたときには、クライアントの接続先をそのサーバに切り換えるようにすることにより、拡張性の高いシステムを構築することができる。
【００２３】
本発明の特徴は、以下に示す実施の形態の説明により更に明らかとなろう。ただし、以下の実施の形態は、あくまでも、本発明の一つの例示であって、本発明ないし各構成要件の用語の意義は、以下の実施の形態に記載されたものに制限されるものではない。
【発明を実施するための最良の形態】
【００２４】
本発明の実施の形態について、図を参照しながら以下に説明する。
【００２５】
図１は、実施の形態に係るネットワークシステムの構成例である。
【００２６】
図１（ａ）は、サーバ機能を持つクライアント10Aがネットワーク上に１つ存在する場合のネットワークシステムの構成例である。サーバ機能を持つクライアント10Aがネットワーク上に１台のみ存在する場合、クライアント10Aは、自身のサーバ部に対して接続を行う。
【００２７】
図１（ｂ）は、サーバ機能を持つクライアントが複数存在する場合のネットワークシステムの構成例である。サーバ機能を持つクライアント10Aが接続されているネットワークに、サーバ機能を持つクライアント10Bとサーバ機能を持たないクライアント10Cが新たに接続された場合、ネットワークを介したデータ（メッセージ）の授受により各サーバ部の機能性が比較され、各クライアントにてどのサーバに接続するかについての判断処理が行われる。
【００２８】
この場合、クライアント10Bに搭載されているサーバ部の機能が、クライアント10Aに搭載されているサーバ部の機能よりも高機能であれば、新たに接続されたクライアント10Bの方のサーバ部が新しい接続先サーバとして選択される。このとき、クライアント10Aは、自身のサーバ部との接続を切断し、クライアント10Bのサーバ部との接続を確立する。
【００２９】
また、新たに接続されたクライアント10Bのサーバ部の機能が、現在接続先とされているクライアント10A内のサーバ部の機能と同じであれば、接続中のクライアント数が多い方のサーバ部、すなわち、現在のクライアント10A内のサーバ部が接続先サーバとされる。この場合、新たにネットワークに接続されたクライアント10B,10Cは、現在サーバとして機能しているクライアント10A内のサーバ部との接続を確立する。
【００３０】
また、現在接続先とされているクライアント10A内のサーバ部の機能が新たに接続されたクライアント10Bのサーバ部の機能より高機能であれば、新たにネットワークに接続されたクライアント10B,10Cは、現在接続されているクライアント10A内のサーバ部に接続される。
【００３１】
このように、複数のクライアントがネットワークに接続されている場合、最も高機能なサーバ部が各クライアントの接続先サーバとして選択される。このとき、接続先サーバは一意に決定されるため、処理すべき情報を接続先サーバにて一元管理することが容易となる。
【００３２】
なお、図１（ａ）および（ｂ）には、サーバ機能を持つクライアントがネットワークに接続される場合を例示したが、サーバ機能を持つクライアントに代わってサーバがネットワークに接続される場合にも、上記と同様にして接続先サーバの選択が行われる。すなわち、ネットワークにサーバとサーバ機能を有するクライアントが接続されている場合、サーバの機能とクライアント内のサーバ部の機能が比較され、このうち最も機能性の高いサーバあるいはサーバ部がクライアントの接続先サーバとして選択される。
【００３３】
以下、本発明の実施例について詳細に説明する。
【００３４】
なお、以下では、ネットワークにおける通信プロトコルとしてTCP/IP（Transmission Control Protocol）/（Internet Protocol）およびUDP（User Datagram Protocol）が用いられている。また、クライアントとサーバの間で送受信されるメッセージは、XML（eXtensible Markup Language）によるマークアップ言語にて記載されている。さらに、クライアントおよびサーバにおいて送受信されるメッセージはIPのマルチキャスト、UDPのユニキャストまたはTCPにて送受信される。
【００３５】
以下の実施例では、クライアントあるいはサーバがネットワークに接続されたときにおけるクライアントおよびサーバにおける動作、並びに、サーバ-クライアント間における接続処理について説明を行う。サーバ-クライアント間の通信処理等は、従来と同様であるため、その説明は省略する。
【００３６】
また、以下の説明では、クライアント機能のみを備える機器をクライアントと称し、サーバ機能を備える機器（サーバ機能を有するクライアントを含む）をサーバと称す。
【実施例１】
【００３７】
図２は、実施例１に係るネットワークシステムの構成例である。本実施例では、ネットワークシステムは、クライアント10とサーバ20A,20Bとを有している。
【００３８】
まず、クライアント10がネットワークに接続されると、クライアント10は、自身がネットワークに接続されたことを示す広告メッセージをIPマルチキャストで送信する。このとき、クライアント10が送信した広告メッセージに対してサーバからの応答がないと、応答があるまで広告メッセージをIPマルチキャストで送信する。なお、本実施例１では、クライアント10はIPマルチキャストを受信するための構成を備えていない。
【００３９】
サーバ20Aは、クライアント10からの広告メッセージに応答して、自身のネットワーク上の位置と機能を示すサーバ情報通知メッセージをUDPユニキャストで送信する。クライアント10は、送信されたサーバ情報通知メッセージを受信し、受信したサーバ情報通知メッセージを用いて接続先サーバを決定する。
【００４０】
その後、ネットワークに新たにサーバ20Bが接続されると、サーバ20Bは、自身がネットワーク上に接続されたことを示す広告メッセージをIPマルチキャストで送信する。この広告メッセージは、IPマルチキャストによる受信を行わないクライアント10では受信されず、IPマルチキャストによる受信が可能なサーバ20Aによって受信される。
【００４１】
現在接続先サーバとして稼働中のサーバ20Aは、この受信した広告メッセージを用いて、新たに接続されたサーバ20Bの機能と自身（サーバ20Aがサーバ機能を有するクライアント機器である場合は、現在接続先とされている自身のサーバ部）の機能とを比較して接続先サーバを決定する。サーバ20Aは、新たに接続されたサーバ20Bを接続先サーバに決定した場合には、ネットワークに接続されている全クライアントに新たな接続先サーバ（サーバ20B）を通知するリダイレクトメッセージを送信する。
【００４２】
本実施例では、ネットワークに新たにクライアントが接続された場合には、このクライアント自身がネットワーク上に存在する各サーバの機能を比較して接続先サーバを決定する。また、ネットワークに新たにサーバが接続された場合には、そのときに接続先として稼動中のサーバが、新たに接続されたサーバとの間でサーバ機能を比較して接続先サーバを決定する。
【００４３】
図３はクライアント10の機能ブロック図である。
【００４４】
図示の如く、クライアント10は、プラグアンドプレイ処理部とアプリケーション処理部の２つの機能部を備えている。プラグアンドプレイ処理部は、起動処理部101、クライアント広告メッセージ生成部102、IPマルチキャスト送信部103、タイマー管理部104、タイマーハンドラ部105、UDP ユニキャスト受信部106、受信文処理部107、サーバ情報一時保存部108、接続先決定部109、接続サーバ情報格納部110を備える。アプリケーション処理部は、アプリケーション処理部111、接続管理部112、TCP クライアント113を備える。
【００４５】
起動処理部101は、クライアント10の電源投入時に、各種の初期処理を行う。起動処理部101は、クライアント10の起動をネットワークに接続されたサーバに知らせるため、クライアント広告メッセージ生成部102に広告メッセージの送信依頼を行う。
【００４６】
クライアント広告メッセージ生成部102は、起動処理部101からの送信依頼に基づき、広告メッセージの生成を行い、IPマルチキャスト送信部103へ広告メッセージの送信を依頼する。このとき、クライアント広告メッセージ生成部102は、広告メッセージに対する応答を一定時間内に受信するよう、一定時間を指定してタイマー管理部104にタイマー登録を依頼する。
【００４７】
IPマルチキャスト送信部103は、クライアント広告メッセージ生成部102からの依頼に基づき、広告メッセージをIPマルチキャストで送信する。
【００４８】
タイマー管理部104は、タイマーハンドラの登録および削除を行う。登録されたハンドラは、指定された時間の経過によって起動する。
【００４９】
タイマーハンドラ部105は、タイマー管理部104によって登録されるタイマーハンドラである。このハンドラが起動すると、タイマーハンドラ部105は、格納された受信メッセージがあるか否かの判定をサーバ情報一時保存部108に要求する。
【００５０】
UDP ユニキャスト受信部106は、UDPのユニキャストにて送信されるパケットデータを受信する。UDP ユニキャスト受信部106によって受信されたパケットデータは、受信文処理部107へ送られる。
【００５１】
受信文処理部107は、ネットワークに接続された機器から受信したUDPのパケットデータのうち、サーバ情報通知メッセージでないものを破棄する。受信文処理部107は、受信したサーバ情報通知メッセージをタイマーハンドラ部105が起動するまでの間、一時的にサーバ情報一時保存部108に保持させる。
【００５２】
サーバ情報一時保存部108は、UDPユニキャスト受信部106にて受信したサーバ情報通知メッセージを、タイマーハンドラ部105が起動するまで保持する。タイマーハンドラ部105が起動したときに、自身に保存メッセージがない、すなわち、UDP ユニキャスト受信部106によってサーバ情報通知メッセージが受信されていない場合、サーバ情報一時保存部108は、再度タイマー管理部104にタイマー登録を依頼し、クライアント広告メッセージ生成部102で生成された広告メッセージの送信をIPマルチキャスト送信部103に依頼する。自身に保存メッセージがある場合、サーバ情報一時保存部108は、接続先決定部109に接続先サーバの選択を依頼するとともに、タイマー管理部104へタイマーの削除を依頼する。
【００５３】
接続先決定部109は、サーバ情報一時保存部108に保存されているサーバ情報通知メッセージからサーバ情報を生成する。そして、生成したサーバ情報を比較して、
(A).より高機能を搭載したもの、すなわち、多くの機能を搭載したもの、
(B).より多くのクライアントが接続しているもの、
(C).サーバ識別子が最小のもの、すなわち、サーバ識別子を示す文字列をアスキーキャラクターの数値として比較した場合に最小となるもの、
の順に条件に合致するサーバを選択し、接続先サーバとして決定する。なお、接続先サーバの選択処理については、後に詳しく説明する。
【００５４】
接続サーバ情報保存部110は、現在接続先とされているサーバの情報を保持する。
【００５５】
アプリケーション処理部111は、クライアント10がネットワーク経由で利用する機能を処理する。アプリケーション処理部111は、接続管理部112とTCP クライアント113の制御のもとで、ネットワークからの要求に応答する。
【００５６】
接続管理部112は、接続先サーバ20から送信され、当該サーバ20との切断と新たな接続先サーバとの接続を指示するリダイレクトメッセージをTCPクライアント113が受信すると、TCPクライアント113へ接続切断要求を送り、接続の切断を行う。また、サーバ20への接続が要求されると、サーバへの接続をTCPクライアント113へ要求する。接続管理部112は、これにより接続が確立された後は、TCPクライアント113から受信した各種メッセージをアプリケーション処理部111に転送する。
【００５７】
TCP クライアント113は、TCP/IPプロトコルに基づいて、サーバ20に接続し、通信制御を行う。
【００５８】
図４はサーバ20の機能ブロック図である。
【００５９】
図示の如く、サーバ20は、プラグアンドプレイ処理部とアプリケーション処理部の２つの機能部を備える。プラグアンドプレイ処理部は、起動処理部201、サーバ広告メッセージ生成部204、IPマルチキャスト送信部205、IPマルチキャスト受信部206、受信文処理部207、サーバ情報通知メッセージ生成部208、UDP ユニキャスト送信部209、接続サーバ選択部210、リダイレクトメッセージ生成部211、接続管理部212を備える。アプリケーション処理部は、アプリケーション処理部213、ルーティング処理部214、TCP サーバ215を備える。
【００６０】
起動処理部201は、サーバ20が起動された時、各種の初期処理を行い、サーバ20の起動をネットワークに通知するため、サーバ広告メッセージ生成部204にIPマルチキャストによる広告メッセージの送信を依頼する。
【００６１】
サーバ広告メッセージ生成部204は、起動処理部201からの送信依頼に基づき、接続管理部212に保存されているサーバ情報をもとに広告メッセージの生成を行い、IPマルチキャスト送信部205へ送信を依頼する。
【００６２】
IPマルチキャスト送信部205は、サーバ広告メッセージ生成部204から送信依頼を受けた広告メッセージをIPのマルチキャストで送信する。
【００６３】
IPマルチキャスト受信部206は、IPのマルチキャストを受信する。受信したメッセージは受信文処理部207へ送られる。
【００６４】
受信文処理部207は、IPマルチキャスト受信部206が受信したメッセージの処理を行う。受信したメッセージが、クライアント１０が送信した広告メッセージである場合、送信元であるクライアント10へサーバ情報通知メッセージを返送するため、サーバ情報通知メッセージ生成部208に対して、サーバ情報通知メッセージをUDP ユニキャストによって送信するよう依頼する。
【００６５】
一方、受信メッセージが新たに接続されたサーバが送信した広告メッセージである場合には、送信元のサーバの機能と自身の機能とを比較し、接続先サーバとしてどのサーバを選択するかの決定を接続サーバ選択部210に依頼する。
【００６６】
サーバ情報通知メッセージ生成部208は、受信文処理部207からの送信依頼に基づき、接続管理部212に保存されているサーバ情報をもとにサーバ情報通知メッセージの生成を行い、UDPユニキャスト送信部209へ送信を依頼する。
【００６７】
UDP ユニキャスト送信部209は、サーバ情報通知メッセージ生成部208から送信依頼を受けたメッセージをUDPのユニキャストで送信する。
【００６８】
接続サーバ選択部210は、IPマルチキャスト受信部206で受信した広告メッセージの送信元サーバの機能と自身の機能とを比較し、サーバ選択条件に基づいて、どのサーバを稼動させるかを決定する。送信元サーバを稼動サーバとして選択した場合、リダイレクトメッセージ生成部211にリダイレクトメッセージの作成を依頼する。
【００６９】
リダイレクトメッセージ生成部211は、接続サーバ選択部210からの依頼にもとづき、接続クライアントに送信するリダイレクトメッセージの生成を行い、TCP サーバ215へ送信を依頼する。
【００７０】
接続管理部212は、自身のサーバ情報を保持する。接続や切断等、クライアント10との接続状況に変更が生じた場合、TCPサーバ215からの依頼により、サーバ情報である接続クライアント数を更新する。
【００７１】
アプリケーション処理部213は、サーバ20がネットワーク経由で提供する機能を処理する。
【００７２】
ルーティング処理部214は、ネットワークからの要求に応答する。ルーティング処理部214は、内部にルーティング用のテーブルを保持しており、複数のクライアント10や宅外のサーバと、アプリケーション処理部213との間で、シームレスにメッセージの通信を行う。
【００７３】
TCP サーバ215は、クライアント10からの接続を受付けるサーバであり、TCP/IPプロトコルに基づいて、クライアント10との通信を制御する。ここで受信したメッセージは、ルーティング処理部214へ転送される。また、リダイレクトメッセージ生成部211おいて生成されたリダイレクトメッセージを送信する。
【００７４】
次に、本実施例１に係るネットワークシステムで扱われるメッセージについて説明する。
【００７５】
図５および図６は、本実施例１に係るネットワークシステムで扱われるクライアント広告メッセージ、サーバ広告メッセージ、サーバ情報通知メッセージ、リダイレクトメッセージの一例である。これらのメッセージは、クライアントおよびサーバがネットワークに接続されたことの通知や接続サーバの変更通知等で用いられる。
【００７６】
広告メッセージとは、クライアント10またはサーバ20からマルチキャストにて送信される情報である。クライアント10またはサーバ20がネットワークに接続される際、クライアント10またはサーバ20がネットワーク上に存在することを示す広告メッセージがネットワーク上の機器に送信される。サーバ20から送信される広告メッセージには、サーバ20のネットワーク上の位置とサーバの機能を示す情報が含まれる。
【００７７】
なお、以下では、クライアント10から送信される広告メッセージをクライアント広告メッセージと称し、サーバ20から送信される広告メッセージをサーバ広告メッセージと称する。
【００７８】
図５（ａ）は、クライアント広告メッセージの一例を示すものである。クライアント広告メッセージは、図５（ａ）のように、XMLなどのマークアップ言語によって記載され、"from"で示す特定のアドレスからネットワークでつながれた全てに送信される、“advertise”と定義された情報である。
【００７９】
図５（ｂ）は、サーバ広告メッセージの一例を示すものである。サーバ広告メッセージは、図５（ｂ）のように、XMLなどのマークアップ言語で記載され、"from"で示す特定のアドレスからネットワークにつながれた全てに送信される、“subscribe”と定義された情報である。
【００８０】
サーバ情報通知メッセージとは、クライアント10が送信したクライアント広告メッセージをサーバ20が受信したときに、サーバ20からユニキャストにて送信される情報であって、サーバ20のネットワーク上の位置と機能を示す情報である。
【００８１】
図６（ａ）は、サーバ情報通知メッセージの一例を示すものである。サーバ情報通知メッセージは、図６（ａ）のように、XMLなどのマークアップ言語によって記載され、"from"で示す特定のアドレスから "to"で示す特定のアドレスへ送信される、“subscribe”と定義された情報である。
【００８２】
リダイレクトメッセージとは、クライアントが接続しているサーバから送信される情報であって、新しくネットワークに接続されたサーバ20がクライアントの接続先とされることを示す情報である。
【００８３】
図６（ｂ）は、リダイレクトメッセージの一例を示すものである。リダイレクトメッセージは、図６（ｂ）のように、XMLなどのマークアップ言語によって記載され、"from"で示す特定のアドレスから "to"で示す特定のアドレスへ送信される、“redirect”と定義された情報である。
【００８４】
図７は、サーバが管理するサーバ情報の一例である。
【００８５】
サーバ情報とは、サーバに関する情報群であり、サーバ識別子、ＩＰアドレス、機能リスト、接続クライアント数を示す情報を含む。
【００８６】
サーバ識別子は、当該サーバの名称を示す。
【００８７】
ＩＰアドレスは、当該サーバのＩＰアドレスを示す。
【００８８】
機能リストは、当該サーバが有する機能を、対応した文字列で示し、当該サーバが持つ全機能に対応する文字列を羅列したものである。この文字列の数、すなわち、機能の数が多いほど、サーバが高機能であることを示す。
【００８９】
接続クライアント数は、当該サーバに接続しているクライアントの数を示す。
【００９０】
このサーバ情報は、サーバ20において、自身に関する情報として保持され、またサーバ情報通知メッセージに組み込まれてクライアントに送られる。
【００９１】
また、クライアントにおいて、受信したサーバ情報通知メッセージから、それぞれのデータを読み出し、サーバ情報として生成あるいは更新される。
【００９２】
次に、上記構成の動作を説明する。
【００９３】
まず、クライアントがサーバに接続する際の動作について説明する。
【００９４】
図８（ａ）（ｂ）は、図２に示す構成において、サーバ20Aの起動後に、クライアント10が起動してサーバ20Aに接続するときの処理を概略的に示すフローチャートである。
【００９５】
クライアント10において、まず起動が指示されると、起動処理部101によって起動処理が行われる(s300)。
【００９６】
次に、クライアント広告メッセージ生成部102によってクライアント広告メッセージが生成される(s1000)。
【００９７】
クライアント広告メッセージ生成部102にてクライアント広告メッセージが生成されると、タイマー管理部104によって、一定時間を指定したタイマーがセットされ(s1002)、さらに、タイマー管理部104からIPマルチキャスト送信部103に対して、クライアント広告メッセージ生成部102にて生成されたクライアント広告メッセージの送信処理が要求される。
【００９８】
これを受けて、IPマルチキャスト送信部103にてクライアント広告メッセージが送信されると(s1004)、UDP ユニキャスト受信部106において、その返答としてサーバ20Aから送信されるサーバ情報通知メッセージの受信が待機される(s1006)。
【００９９】
UDP ユニキャスト受信部106においてサーバ情報通知メッセージが受信されると(s1006Y)、受信したサーバ情報通知メッセージに基づいて、受信文処理部107によって、サーバ情報が生成される(s1008)。生成されたサーバ情報はサーバ情報一時保存部108に一時的に保持される(s1010)。
【０１００】
一方、s1006において、UDP ユニキャスト受信部106によってサーバ情報通知メッセージが受信されない場合には(s1006N)、タイマーセットされた一定時間が経過したかの判断がなされ(s1012)、一定時間が経過していないときは(s1012N)、s1006へ処理を移行してサーバ20Aからのサーバ情報通知メッセージの受信が待機される。
【０１０１】
s1012において、タイマーセットされた一定時間が経過すると(s1012Y)、タイマー管理部104によってタイマーが削除され、サーバ情報一時保存部108にサーバ情報が保存されているか否かの判断がなされる(s1014)。
【０１０２】
s1014において、サーバ情報一時保存部108にサーバ情報が１つも保存されていない場合(s1014N)、タイマー管理部104は一定時間を指定して再びタイマーをセットし(s1002)、IPマルチキャスト送信部103にクライアント広告メッセージを送信させる(s1004)。
【０１０３】
s1014において、サーバ情報一時保存部108に１つ以上のサーバ情報が保存されている場合(s1014Y)、接続先決定部109にて、サーバ情報一時保存部108に保存されたサーバ情報を用いたサーバ選択処理が行われる(s1018)。サーバ選択処理の詳細は追って説明する。サーバ選択処理によって選択されたサーバのサーバ情報は、接続サーバ情報保存部110に格納され(s1020)、サーバ情報一時保存部108に一時的に保存された情報は破棄される(s1022)。
【０１０４】
次に、s1018において接続先として決定されたサーバ、すなわち図２の構成例においてはサーバ20Aに対する接続制御が接続管理部112によって行われ、TCPクライアント113によってサーバ20Aに対する接続が行われる(s1024)。
【０１０５】
s1024における接続が成功すると(s1026Y)、本処理が終了され、一方、接続に失敗した場合(s1026N)には、s1000に処理を移行する。
【０１０６】
次に、ネットワークに新たなサーバが接続されたときのクライアントの動作について説明する。
【０１０７】
図９は、図２に示す構成において、ネットワークに新たにサーバ20Bが接続されたときのクライアント10のサーバへの接続処理を概略的に示すフローチャートである。なお、以下では、ネットワークに新たに接続されたサーバ20Bが新たな接続先サーバとして選択される場合を例として説明する。
【０１０８】
ネットワークに新たにサーバ20Bが接続されると、現在クライアントが接続中であるサーバ20Aにおいて、どのサーバを接続先とすべきかの判断がなされる。
【０１０９】
この判断において新たに接続されたサーバ20Bが接続先とされると、現在接続中のサーバ20Aは、接続するサーバを変更する指示情報とその変更先のサーバを示す情報とを含むリダイレクトメッセージを全てのクライアントに対して送信する。なお、本処理に関するサーバにおける処理については後述する。
【０１１０】
このリダイレクトメッセージがクライアント１０のTCPクライアント113によって受信されると(s400Y)、受信されたリダイレクトメッセージ中の情報に基づき、受信文処理部107によってサーバ情報が生成される(s402)。
【０１１１】
次に、接続管理部112によって、現在接続中であるサーバ20Aへの接続を切断するための制御が行われ(s404)、さらに、TCPクライアント113によって、新たに接続先とされたサーバ20Bへの接続が行われる(s406)。
【０１１２】
s406における接続が成功すると(s408Y)、接続先決定部109によってサーバ情報が接続サーバ情報格納部110に格納され(s410)、本処理が終了する。一方、s406において、接続に失敗すると(s408N)、図８のs1000へ移行する。
【０１１３】
次に、図８のs1018で実行されるサーバ選択処理について説明する。本処理は、クライアント10における接続先決定部109において実行される。
【０１１４】
図１０は、このクライアントが接続を行う唯一のサーバを１以上のサーバの中から選択する処理を概略的に示すフローチャートである。
【０１１５】
まず、選択可能なサーバ20のサーバ情報（図７参照）が参照され、各サーバ情報に含まれる機能リストを示す情報が比較され、このうち最も多くの機能を有するサーバが選択される(s500)。
【０１１６】
s500の結果、選択されたサーバが１つであれば(s502Y)、選択したサーバが接続先サーバとして決定される(s510)。一方s500の結果、選択されたサーバが複数存在する場合(s502N)には、各サーバ情報に含まれる接続クライアント数が比較され、接続クライアント数が最多のサーバが選択される(s504)。
【０１１７】
s504の結果、選択されたサーバが一つであれば(s506Y)、選択されたサーバが接続先サーバとして決定され(s510)、選択されたサーバが複数存在すれば(s506N)、その中から、例えば、サーバ識別子が最小、すなわち、文字列をアスキーキャラクターの数値として比較した場合に最小となるものが選択され(s508)、そのサーバが接続先サーバとして決定される(s510)。
【０１１８】
次に、サーバの動作について説明する。
【０１１９】
図１１（ａ）および（ｂ）は、図２に示す構成において、サーバ20Aの起動後にクライアント10が起動して、クライアント10がサーバ20Aに接続するまでのサーバ20Aにおける処理を概略的に示すフローチャートである。
【０１２０】
図１１（ａ）が示すように、サーバ20Aが起動すると、起動処理部201によって起動処理が行われ(s600)、サーバ広告メッセージ生成部204によってサーバ広告メッセージが生成される(s602)。
【０１２１】
サーバ広告メッセージ生成部204においてサーバ広告メッセージが生成されると、生成されたサーバ広告メッセージがIPマルチキャスト送信部205によって送信される(s604)。
【０１２２】
IPマルチキャスト送信部205によってサーバ広告メッセージが送信されると、サーバ20Aはクライアント10からの接続要求待ち状態に移行する(s606)。
【０１２３】
図１１（ｂ）は、かかる接続待ち状態においてクライアント10から送信されたクライアント広告メッセージを受信したときのサーバ20Aにおける処理を概略的に示すフローチャートである。
【０１２４】
クライアント10における図８のs1004において、クライアント広告メッセージがマルチキャストで送信されると、このクライアント広告メッセージがサーバ20AのIPマルチキャスト受信部206によって受信され、受信されたクライアント広告メッセージが受信文処理部207に受け渡される。
【０１２５】
受け渡されたメッセージがクライアント広告メッセージであることが受信文処理部207によって確認され(s608)、このクライアント広告メッセージの送信元であるクライアント10へ送るサーバ情報通知メッセージがサーバ情報通知メッセージ生成部208によって生成される(s610)。
【０１２６】
サーバ情報通知メッセージ生成部208によってサーバ情報通知メッセージが生成されると、このサーバ情報通知メッセージをクライアント広告メッセージの送信元であるクライアント10に対して送信する要求が、UDP ユニキャスト送信部209に対して行われる。
【０１２７】
これにより、サーバ情報通知メッセージがクライアント広告メッセージの送信元クライアント10に送信され(s612)、その後、サーバ20Aは、クライアント10からの接続要求待ち状態に移行する(s606)。
【０１２８】
図１２は、前述の図１１（ａ）のs604における処理によって、既にネットワークに接続されているサーバが新たにネットワークに接続されたサーバからサーバ広告メッセージを受けたときの処理を概略的に示すフローチャートである。
【０１２９】
既にネットワークに接続されているサーバ20Aにおいて、IPマルチキャスト受信部206がサーバ広告メッセージの受信を監視しているときに(s700)、ネットワークに新規に接続されたサーバ20Bから送信されたサーバ広告メッセージを受信すると(s700Y)、サーバ20Aの接続サーバ選択部210は、接続管理部212に格納されているサーバ情報を参照し、サーバ20Aがクライアントからの接続先とされているか否を判断する(s702)。
【０１３０】
この判断において、接続先とされていないと判断された場合には(s702N)、s700へ処理が移される。
【０１３１】
一方、当該サーバ20Aが、クライアントからの接続先とされている場合には(s702Y)、接続サーバ選択部210は、受信したサーバ広告メッセージに基づいてサーバ情報を生成し、この生成したサーバ情報と接続管理部213に保存されている自身のサーバ情報とを比較してサーバ選択処理を行う(s704)。このs704でのサーバ選択処理は、前述のクライアントにおけるサーバ選択処理（図１０参照）と同様である。この場合、図１０のｓ500における選択肢は、サーバ20A自身と、新たに接続されたサーバ20Bである
サーバ選択処理の結果、選択されたサーバが自分自身であった場合には(s706Y)、s700へ処理が移される。
【０１３２】
一方、s704において、選択されたサーバが新規に接続されたサーバ20Bである場合には(s706N)、リダイレクトメッセージ生成部211によって、サーバ20Bに接続先を変更するためのリダイレクトメッセージが作成され(s708)、生成されたダイレクトメッセージが自身に対する接続先クライアントに向けてTCPサーバー215から送信される(s710)。その後、サーバ20Aは接続切断待ち状態とされる(s712)。
【０１３３】
なお、クライアント10はサーバに接続している間、常に当該サーバが稼動しているか否かを検出する。このサーバの稼動検出については、TCP処理で用いられている一般的な手法、例えば、定期的にSYNパケットを送信し、その応答であるACKがあれば接続状態であると判断し、ACKがなければ接続が切断されていると判断する方法を用いる。
【０１３４】
クライアント10において、接続先決定部109は、クライアント10が接続しているサーバ20の停止、すなわちサーバ20との接続が切断されたことを検知すると、接続サーバ情報保存部110に保持されている接続中サーバに関するサーバ情報を消去する。そして、接続管理部112によって接続中のサーバ20への接続を切断する制御が行われ、TCPクライアント113によってサーバ20との接続が終了される。
【０１３５】
その後、クライアント10において、上記図８および図１０の処理が行われ、接続先サーバが新たに選択および設定される。設定された接続先サーバの情報は、接続先サーバ情報保持部110に保持される。
【０１３６】
上記実施例１によれば、クライアントは、自身がネットワークに接続されたときには、サーバから受信したサーバ情報に基づいて、接続先とすべきサーバを一意に決定することができる。また、新たにサーバがネットワークに接続されたときには、当該サーバから他のサーバに対して自身がネットワークに接続されたことを示す通知がなされ、その通知に含まれるサーバ情報に基づいてクライアントの接続先サーバが決定される。そして、この決定がクライアントに通知されることにより、クライアントは、接続先サーバを一意に決定することができる。
【０１３７】
このように、上記実施例１によれば、ネットワークの変更時において、各クライアントの接続先サーバが自動的かつ一意に決定される。したがって、上記実施例１によれば、ネットワーク変更時におけるユーザの処理負担を著しく軽減することができる。
【実施例２】
【０１３８】
本実施例２は、サーバからマルチキャストで送信されてくるサーバ広告メッセージをクライアント側にて受信する点において、上記実施例１と異なっている。
【０１３９】
すなわち、上記実施例１においては、図１１（ａ）のs604にて送信されるサーバ広告メッセージ、すなわち、新たにサーバがネットワークに接続された際にこのサーバからマルチキャストで送信されるサーバ広告メッセージをクライアントにて受信することはできない。このため、新たにサーバがネットワークに接続されたときは、サーバ側で接続先サーバが決定され、この決定がリダイレクトメッセージを用いてクライアントに通知され、サーバに対する接続指示がなされる。
【０１４０】
これに対し、本実施例２では、上記実施例１におけるクライアントの構成に加えて、IPマルチキャスト受信部114がクライアントに配備されている。この構成の追加により、本実施例２では、上記のマルチキャストによるサーバ広告メッセージをクライアント側にて受信することができる。クライアントは、新たにサーバがネットワークに接続されたとき、このサーバからマルチキャストで送信されるサーバ広告メッセージを受信し、これをもとに、接続先サーバの選択処理を行う。本実施例２では、このようにネットワークに対するサーバの接続時に、クライアント側にて接続先サーバの選択処理が行われるため、サーバ側において、リダイレクトメッセージの生成および送信に係る処理が不要となる。
【０１４１】
以下、本実施例２について説明を行う。
【０１４２】
実施例２において、上記実施例１と同じ構成要素には同一の参照符号が付されている。なお、実施例１と同一の機能部および処理については説明を省略し、以下では、実施例１と異なる機能部および処理についてのみ説明を行う。
【０１４３】
図１３は、クライアント10の機能ブロック図である。
【０１４４】
クライアント10は、プラグアンドプレイ処理部とアプリケーション処理部の２つの機能部を備えている。プラグアンドプレイ処理部は、起動処理部101、クライアント広告メッセージ生成部102、IPマルチキャスト送信部103、タイマー管理部104、タイマーハンドラ部105、UDP ユニキャスト受信部106、受信文処理部107、サーバ情報一時保存部108、接続先決定部109、接続サーバ情報格納部110、IPマルチキャスト受信部114を備える。アプリケーション処理部は、アプリケーション処理部111、接続管理部112、TCP クライアント113を備える。
【０１４５】
IPマルチキャスト受信部114は、IPマルチキャストを受信する。受信したメッセージは、受信文処理部107へ送られる。
【０１４６】
受信文処理部107は、UDPユニキャスト受信部106またはIPマルチキャスト受信部114において受信したメッセージのうち、サーバ情報通知メッセージまたはサーバ広告メッセージでないものを破棄する。受信文処理部107は、UDPユニキャスト受信部106においてサーバ情報通知メッセージを受信したときは、受信したサーバ情報通知メッセージをタイマーハンドラ部105が起動するまでの間、サーバ情報一時保存部108に保持させる。また、受信文処理部107は、IPマルチキャスト受信部114においてサーバ広告メッセージを受信したときは、受信したサーバ広告メッセージを接続先決定部109における接続先の決定処理が終了するまでサーバ情報一時保存部108に保持させる。
【０１４７】
サブクスライブ保存部108は、UDPユニキャスト受信部106またはIPマルチキャスト受信部114で受信したメッセージを保持する。サブクスライブ保存部108は、タイマーハンドラ部105が起動した時、自身に保存メッセージがない、すなわち、UDPユニキャスト受信部106においてサーバ情報通知メッセージを受信していない場合には、再度タイマー管理部104にタイマー登録を依頼し、クライアント広告メッセージ生成部102で生成されたクライアント広告メッセージの送信をIPマルチキャスト送信部103に依頼する。また、サブクスライブ保存部108は、タイマーハンドラ起動時に自身に保存メッセージがある場合、接続先決定部109に接続先サーバの選択を依頼するとともに、タイマー管理部104へタイマーの削除を依頼する。
【０１４８】
図１４は、サーバ20の機能ブロック図である。
【０１４９】
図示の如く、サーバ20は、プラグアンドプレイ処理部とアプリケーション処理部の２つの機能部を備えている。プラグアンドプレイ処理部は、起動処理部201、サーバ広告メッセージ生成部204、IPマルチキャスト送信部205、IPマルチキャスト受信部206、受信文処理部207、サーバ情報通知メッセージ生成部208、UDP ユニキャスト送信部209、接続管理部212を備える。アプリケーション処理部は、アプリケーション処理部213、ルーティング処理部214、TCP サーバ215を備える。
【０１５０】
本実施例２のサーバ20においては、上記実施例１のサーバ20にて配備されていた接続サーバ選択部210とリダイレクトメッセージ生成部211が省略されている。
【０１５１】
また、受信文処理部207は、IPマルチキャスト受信部206が受信したメッセージのうち、クライアント広告メッセージでないものを破棄する。受信文処理部207は、受信したメッセージがクライアント広告メッセージである場合、送信元であるクライアント10へサーバ情報通知メッセージをUDP ユニキャスト送信部209を介して返送するため、サーバ情報通知メッセージ生成部208に対して、サーバ情報通知メッセージを生成するよう依頼する。
【０１５２】
図１５は、本実施例２に係るネットワークシステムで扱われるクライアント広告メッセージ、サーバ広告メッセージと、サーバ情報通知メッセージの一例である。なお、本実施例２で扱われるこれらメッセージの構成は上記実施例１で扱われるものと同一である。本実施例２では、上述の如くサーバ側において接続先サーバの変更処理は行われないため、リダイレクトメッセージは不要である。また、本実施例２で扱われるサーバ情報も、上記実施例１で扱われるサーバ情報と同一である。
【０１５３】
次に、クライアントとサーバの動作について説明する。
【０１５４】
図１６は、図２に示す構成において、クライアント10がサーバへの接続待ち状態にある状態において、サーバ20Aがネットワークに接続されたときの、クライアント10における動作処理を概略的に示すフローチャートである。なお、サーバ20Aがネットワークに接続（起動）された後に、クライアント10がネットワークに接続（起動）されたときの動作処理は、実施例１における処理（図８）と同様であるので、その説明は省略する。
【０１５５】
サーバへの接続待ち状態であるクライアント10において、IPマルチキャスト受信部114によってサーバ広告メッセージが受信されると(s310Y)、受信したサーバ広告メッセージに基づいて、接続先決定部109によってサーバ情報が生成される。生成されたサーバ情報は接続サーバ情報格納部110に格納される。次に、接続管理部112によって、サーバ広告メッセージの送信元であるサーバ20Aに対する接続制御が行われ、TCPクライアント113によってサーバ20Aへの接続が行われる(s312)。
【０１５６】
s312における接続が成功すると(s314Y)、本処理は終了される。一方、s312における接続に失敗した場合には(s314N)、s1000（図８参照）に処理が移される。
【０１５７】
図１７は、図２に示す構成において、接続先サーバの稼動が停止したときのクライアント10における処理を概略的に示すフローチャートである。
【０１５８】
クライアント10は、サーバに接続している間、常に当該サーバが稼動しているか否かを検出する。このサーバの稼動検出は、TCP処理で用いられている一般的な手法に従って行われる。例えば、クライアント10は、定期的にSYNパケットをサーバに送信し、その応答であるACKがあれば、サーバとの接続が維持されていると判断し、ACKがなければ、サーバとの接続が切断されていると判断する。
【０１５９】
クライアント10において、接続先決定部109は、クライアント10が接続しているサーバ20の停止、すなわちサーバ20との接続が切断されたことを検知すると(s420Y)、接続サーバ情報保存部110に保持されている接続中サーバに関するサーバ情報を消去する。そして、接続管理部112によって接続中のサーバ20への接続を切断するよう制御が行われ、TCPクライアント113によってサーバ20との接続が終了される(s422)。その後、s1000（図８参照）に処理が移される。
【０１６０】
次に、クライアント10が既にサーバ20Aに接続している状態において、新規にサーバ20Bがネットワークに接続されたときのクライアント10の動作処理について説明する。
【０１６１】
図１８は、図２に示す構成において、クライアント10が既にサーバ20Aに接続している状態において、新規にサーバ20Bがネットワークに接続されたときのクライアント10における動作処理を概略的に示すフローチャートである。
【０１６２】
クライアント10がサーバ広告メッセージの受信を待つ状態において(s430,s430N)、サーバ20Bから送信されるサーバ広告メッセージ、すなわち、ネットワークに新たにサーバ20Bが接続されたことを通知するサーバ広告メッセージがIPマルチキャスト受信部114によって受信されると(s430Y)、受信文処理部107によって、受信したサーバ広告メッセージ中の情報に基づいてサーバ情報が生成され(s432)、これがサーバ情報一時保存部108に保持される(s434)。
【０１６３】
そして、サーバ情報一時保存部108に保持されたサーバ情報と接続先サーバ情報格納部110に保持されたサーバ情報を用いたサーバ選択処理が接続先決定部109によって行われる（s436）。すなわち、これら２つのサーバ情報をもとに、新たにネットワークに接続されたサーバの機能と現在接続先として設定されているサーバの機能が対比され、
(A).より高機能を搭載したもの、すなわち、多くの機能を搭載したもの、
(B).より多くのクライアントが接続しているもの、
(C).サーバ識別子が最小のもの、
の順に条件に合致する方のサーバが接続先サーバとして選択される。
【０１６４】
このステップによって、新たにネットワークに接続されたサーバが接続先サーバとして選択されると（S438Y）、接続管理部１１２によって、現在接続中であるサーバ20Aへの接続を切断する制御がなされる(s440)。
【０１６５】
しかる後、接続管理部112によって、s440において接続先として決定されたサーバに対する接続制御が行われ、TCPクライアント113によって当該サーバ20Bへの接続が行われる(s442)。
【０１６６】
s442における接続が成功すると(s444Y)、接続先決定部109によってサーバ情報が接続サーバ情報格納部110に格納され(s446)、本処理が終了する。一方s444において、接続に失敗すると(s444N)、図８のs1000へ移行される。
【０１６７】
最後に、本実施例２におけるサーバの動作について説明する。
【０１６８】
サーバの起動後に、クライアントが起動して、クライアントがサーバに接続するまでのサーバにおける処理は上記実施例１における処理（図１１(a)（ｂ）参照）と同様である。
【０１６９】
また、サーバがクライアントから接続先とされている状態において新たにサーバがネットワークに接続された場合、サーバ側では、クライアントにおける接続先サーバの選択処理に応じてクライアントとの接続が解除されない限り、クライアントとの接続が維持される。クライアントにおけるサーバの選択処理によってクライアントとの接続が解除された場合、それに応じてサーバは、接続管理部２１２に格納されているサーバ情報を更新する。具体的には、接続管理部２１２にサーバ情報として格納されている接続先数をデクリメントする。
【０１７０】
本実施例２によれば、サーバがネットワークに接続されたとき、当該サーバからネットワークに接続されたことがクライアントに通知される。クライアントは、その通知に含まれるサーバ情報に基づいて接続すべきサーバを一意に決定して、決定したサーバに接続を行うことができる。
【０１７１】
以上、本発明に係る実施の形態について説明したが、本発明は、かかる実施の形態に限定されるものではなく、他に種々の変更が可能であることは言うまでもない。
【０１７２】
例えば、本発明の実施の形態では、ネットワークにおける通信のプロトコルをTCP/IPやUDPとしたが、この他の通信プロトコルを用いてもよい。
【０１７３】
また、クライアントとサーバの間で用いられるメッセージは、XMLによるマークアップ言語にて記載したが、この他のマークアップ言語を用いることもできる。
【０１７４】
また、クライアントおよびサーバにおいて、メッセージをIPのマルチキャストで送受信するようにしたが、これに代わってIPのブロードキャストで送受信するようにしてもよい。
【０１７５】
本発明の実施の形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜種々の変更が可能である。
【図面の簡単な説明】
【０１７６】
【図１】実施の形態に係るネットワークシステムの構成例を示す図
【図２】実施例１に係るネットワークシステムの構成例を示す図
【図３】実施例１に係るクライアントの機能ブロック図
【図４】実施例１に係るサーバの機能ブロック図
【図５】実施例１に係るネットワークシステムで扱われるメッセージ例を示す図
【図６】実施例１に係るネットワークシステムで扱われるメッセージ例を示す図
【図７】実施例１に係るサーバ情報の一例を示す図
【図８】実施例１に係るクライアント接続時のフローチャート
【図９】実施例１に係るサーバが切り替わるときのフローチャート
【図１０】実施例１に係るサーバ選択時のフローチャート
【図１１】実施例１に係るサーバ接続時のフローチャート
【図１２】実施例１に係るサーバがネットワークに追加されたときの処理フローチャート
【図１３】実施例２に係るクライアントの機能ブロック図
【図１４】実施例２に係るサーバの機能ブロック図
【図１５】実施例２に係るネットワークシステムで扱われるメッセージ例を示す図
【図１６】実施例２に係るクライアント接続時のフローチャート
【図１７】実施例２に係る接続先サーバが停止したときのフローチャート
【図１８】実施例２に係る新サーバがネットワークに追加されたときのフローチャート
【符号の説明】
【０１７７】
１０  クライアント
２０  サーバ
１０３  ＩＰマルチキャスト送信部
１０６  ＵＤＰユニキャスト受信部
１０９  接続先決定部
１１０  接続サーバ情報格納部
１１２  接続管理部
１１４  ＩＰマルチキャスト受信部
２０５  ＩＰマルチキャスト送信部
２０６  ＩＰマルチキャスト受信部
２１０  接続サーバ選択部
２１１  リダイレクトメッセージ生成部
【図１】
2006331370.tif 000003
【図２】
2006331370.tif 000004
【図３】
2006331370.tif 000005
【図４】
2006331370.tif 000006
【図５】
2006331370.tif 000007
【図６】
2006331370.tif 000008
【図７】
2006331370.tif 000009
【図８】
2006331370.tif 000010
【図９】
2006331370.tif 000011
【図１０】
2006331370.tif 000012
【図１１】
2006331370.tif 000013
【図１２】
2006331370.tif 000014
【図１３】
2006331370.tif 000015
【図１４】
2006331370.tif 000016
【図１５】
2006331370.tif 000017
【図１６】
2006331370.tif 000018
【図１７】
2006331370.tif 000019
【図１８】
2006331370.tif 000020