(57)【要約】【課題】  停止したサーバに搭載されたサービスモジュールを、新たに稼動したサーバにダウンロードすることなく、新たに稼動したサーバへ接続することによって、稼動サーバ上で仮想的に動作させることができるサーバを提供する。【解決手段】一つ以上のサーバが接続され、ただ一つのサーバが稼動するネットワークにおいて、現在稼動していないサーバは、サーバ切替の通知を受けると、自身が提供するサービスモジュールに関する情報を稼動しているサーバに送信し、これを稼動しているサーバが受信する。稼動しているサーバは、受信したサービスモジュールに関する情報と自身が備えるサービスモジュールに関する情報に基づいて、稼動していないサーバのサービスモジュールが既に提供されているかどうかを判断し、サービスモジュールが提供されていない場合には、稼動していないサーバとの間で接続を行い、稼動されていないサーバのサービスモジュールを動作させる。【選択図】 図１
2007004408.tif 000002
【特許請求の範囲】
【請求項１】
サーバにサービス機能の提供のための接続を行うサービスモジュール搭載装置であって、
自身が搭載しているサービスモジュールに関する第１サービスモジュール情報を保持する第１サービスモジュール情報記憶部と、
サーバから、このサーバが利用可能なサービスモジュールに関する第２サービスモジュール情報を受信する第２サービスモジュール情報受信部と、
前記第２サービスモジュール情報受信部において受信した前記第２サービスモジュール情報と、前記第１サービスモジュール情報記憶部が保持する第１サービスモジュール情報に基づいて、前記サーバに接続するかどうか判定する判定部とを
備えることを特徴とするサービスモジュール搭載装置。
【請求項２】
前記判定部は、第１サービスモジュール情報に含まれる各サービスモジュールの識別子と、第２サービスモジュール情報に含まれる各サービスモジュールの識別子が一致するかどうかにより、判定を行うことを特徴とする請求項１に記載のサービスモジュール搭載装置。
【請求項３】
サービスモジュール搭載装置からサービス機能の提供のための接続要求を受けるサーバであって、
ネットワーク上の利用可能なサービスモジュールに関する第１サービスモジュール情報を保持する第１サービスモジュール情報記憶部と、
第１のサーバから送信された第２サービスモジュール情報を受信する第２サービスモジュール情報受信部と
前記第２サービスモジュール情報受信部において受信した前記第２サービスモジュール情報と、前記第１サービスモジュール情報記憶部に保持される第１サービスモジュール情報に基づいて、前記第１のサーバからの接続要求を許可するかどうか判定する判定部とを
備えることを特徴とするサーバ。
【請求項４】
前記判定部は、第１サービスモジュール情報に含まれる各サービスモジュールの識別子と、第２サービスモジュール情報に含まれる各サービスモジュールの識別子が一致するかどうかにより、判定を行うことを特徴とする請求項３に記載のサーバ。
【請求項５】
ネットワークにおいて、唯一のサーバとして機能するサーバであって、
前記サーバが提供するサービスモジュールに関する情報を保持する記憶部と、
前記ネットワークに接続された機器から前記サービスモジュールが要求されたとき、前記記憶部に保持された前記サービスモジュールに関する情報を、前記サービスモジュールを要求した機器に送信するサービスモジュール情報送信部を
備えることを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上でサービス機能を実現し提供するサービスモジュール搭載装置およびサーバに関する。
【背景技術】
【０００２】
ホームネットワークは、利用者の状況に応じて様々な形態をとることが考えられ、また、利用者の状況の変化に伴い、形態を変更する必要がある。
【０００３】
例えば、宅内・宅外に設置され、監視カメラによって撮像された画像を、ネットワークを介して外部に提供する監視カメラは、クライアントとして、ホームネットワーク上のサーバに管理される。
【０００４】
このクライアントとなる監視カメラに簡易的なサーバ機能を搭載することによって、専用のサーバを設けなくても、上記ホームネットワーク機能を実現することも可能となる。
【０００５】
しかし、このような形態のホームネットワークに、様々なネットワーク機器が接続されると、上述の監視カメラに搭載された簡易的なサーバ機能では、処理能力不足等により、接続されたネットワーク機器全てを管理することが出来なくなる場合がある。
【０００６】
そこで、利用者は、監視カメラによる簡易的なサーバに代えて、新たに高機能な専用のホームサーバを導入し、ホームネットワーク上の全てのクライアント機器を管理させるようにする。これにより、監視カメラに搭載された簡易的なサーバ機能は停止することになる。
【０００７】
このとき、専用のホームサーバが、監視カメラに搭載された全ての機能を、搭載しているとは限らないため、新しいホームサーバを導入することによって、これまで監視カメラが提供していた撮像や撮像画像の送信等のサービス機能が使用できなくなることが生じる。
【０００８】
特許文献１には、機器に対し、提供できないサービス機能が要求されたとき、このサービス機能を実現するためのモジュール（以下、サービスモジュールと称す）を当該機器にダウンロードし、この機器上にて要求されたサービスを実現する技術が示されている。
【特許文献１】特開２００１−２６５６８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記方法によれば、サーバが提供できないサービス機能を要求された際、必要となる全てのサービスモジュールをダウンロードし、サーバ内部に保持し、利用しなければならない。このため、予めサーバは、その処理の為のリソースや処理性能を備える必要がある。しかしながら、サーバのリソースや処理性能は有限であり、ダウンロードするサービスモジュールを想定して予め十分なリソースや処理性能を備えることは困難であるという問題点がある。
【００１０】
本発明は、上記実情に鑑みて為されたもので、サーバにサービスモジュールをダウンロードすることなく、サービス機能を実現することができるサーバを提供することを課題とする。
【課題を解決するための手段】
【００１１】
上記課題に鑑み本発明は、以下の特徴を有する。
【００１２】
請求項１の発明は、サーバにサービス機能の提供のための接続を行うサービスモジュール搭載装置であって、自身が搭載しているサービスモジュールに関する第１サービスモジュール情報を保持する第１サービスモジュール情報記憶部と、サーバから、このサーバが利用可能なサービスモジュールに関する第２サービスモジュール情報を受信する第２サービスモジュール情報受信部と、前記第２サービスモジュール情報受信部において受信した前記第２サービスモジュール情報と、前記第１サービスモジュール情報記憶部が保持する第１サービスモジュール情報に基づいて、前記サーバに接続するかどうか判定する判定部とを備えることを特徴とする。
【００１３】
この特徴により、サーバ切り替えの際、切り替え前のサーバが備えるサービスモジュールを、切り替え後のサーバが備えるかどうか判定することができる。判定の結果、切り替え前のサーバが備えるサービスモジュールを、切り替え後のサーバが備えていない場合には、切り替え前のサーバが備えるサービスモジュールが切り替え後のサーバに接続することによって、切り替え前と同様に、このサービス機能を提供することができる。
【００１４】
請求項２の発明は、請求項１に記載のサービスモジュール搭載装置であって、前記判定部は、第１サービスモジュール情報に含まれる各サービスモジュールの識別子と、第２サービスモジュール情報に含まれる各サービスモジュールの識別子が一致するかどうかにより、判定を行うことを特徴とする。
【００１５】
この特徴により、各サービスモジュールの識別が容易となり、また、サービスモジュールが同一かどうかの判断が容易に行える。
【００１６】
請求項３の発明は、サービスモジュール搭載装置からサービス機能の提供のための接続要求を受けるサーバであって、ネットワーク上の利用可能なサービスモジュールに関する第１サービスモジュール情報を保持する第１サービスモジュール情報記憶部と、第１のサーバから送信された第２サービスモジュール情報を受信する第２サービスモジュール情報受信部と前記第２サービスモジュール情報受信部において受信した前記第２サービスモジュール情報と、前記第１サービスモジュール情報記憶部に保持される第１サービスモジュール情報に基づいて、前記第１のサーバからの接続要求を許可するかどうか判定する判定部とを備えることを特徴とする。
【００１７】
この判定結果により、同一のサービスモジュールの２重提供を防ぐことができ、よって、サーバの負担を軽減することができる。さらに、同一サービスモジュールが複数提供されることによる障害発生の可能性を抑えることができる。
【００１８】
請求項４の発明は、請求項３に記載のサーバであって、前記判定部は、第１サービスモジュール情報に含まれる各サービスモジュールの識別子と、第２サービスモジュール情報に含まれる各サービスモジュールの識別子が一致するかどうかにより、判定を行うことを特徴とする。
【００１９】
この特徴により、各サービスモジュールの識別が容易となり、また、サービスモジュールが同一かどうかの判断が容易に行える。
【００２０】
請求項５の発明は、
ネットワークにおいて、唯一のサーバとして機能するサーバであって、
前記サーバが提供するサービスモジュールに関する情報を保持する記憶部と、
前記ネットワークに接続された機器から前記サービスモジュールが要求されたとき、前記記憶部に保持された前記サービスモジュールに関する情報を、前記サービスモジュールを要求した機器に送信するサービスモジュール情報送信部を
備えることを特徴とする。
【００２１】
この特徴により、クライアントはサーバが提供するサービスモジュールを知ることができる。
【発明の効果】
【００２２】
上記のように本発明によれば、サーバは、サービスモジュールをダウンロードすることなく、ネットワークを介してサービス機能を提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態につき図面を参照して説明する。
【００２４】
まず、サービス機能とは、機器が提供しうる機能であり、例えば、監視カメラの場合、カメラによる撮像機能、および、撮像した画像をネットワークを介して他の機器に送信する機能である。
【００２５】
また、サービスモジュールとは、前記サービス機能を実現するために機器に要されるハードウェアおよびソフトウェア一式のことであり、このサービスモジュールは、このサービスモジュールが含まれるサーバやクライアントが備えるネットワーク接続機能とは独立した別個の接続機能を備える。この接続機能により、サービスモジュールはサーバやクライアントとの接続を行う。
【００２６】
図1は、本実施の形態のネットワークシステムの構成例である。
【００２７】
本実施の形態のネットワークシステムは、サーバ10A、10Bおよびクライアント30A、30Bを備える。
【００２８】
図2に示すように、サーバ10Aはその内部にサービスモジュール20a、20bを搭載しており、サーバ10Bはその内部にサービスモジュール20b、20c、20dを搭載している。ここで、サーバ10Aに搭載されているサービスモジュール20bとサーバ10Bに搭載されているサービスモジュール20bは、同一である。
【００２９】
また、サーバ10A、10Bは、ネットワーク上で各々独立して稼動可能なサーバである。ネットワーク上で複数のサーバが存在することも可能であるが、本実施の形態のネットワークでは、実際にサーバとして動作するのは一つのサーバ(以下、稼動サーバと称す)のみであり、その他のサーバは停止状態(以下、非稼動サーバと称す)となる。なお、サーバ機能を持ったクライアントの場合、このクライアントが備えるサーバ機能のみが停止し、その他の機能は動作する。
【００３０】
クライアント30A、30Bは、ネットワーク上に存在するクライアント機器であり、稼動サーバによって管理されている。これらのクライアントは、サーバ10Aあるいは10Bが搭載している様々なサービス機能を利用する。
【００３１】
本実施の形態においては、同一のサービス機能およびサービスモジュールが、ネットワーク上の複数のサーバに存在しても、ただ一つのサービス機能が実現される。このとき、サービス機能を実現するサービスモジュールを稼動サービスモジュールと称す。一方、サービス機能を実現しない他のサービスモジュールは停止状態となり、以下、これを非稼動サービスモジュールと称す。
【００３２】
図2(a)において、ネットワークには、サーバ10Aとクライアント30A、30Bが接続されており、サーバ10A上で、サーバ10Aに搭載されたサービスモジュール20a、20bが動作している。
【００３３】
図2(b)は、図2(a)が示すネットワーク上に、新たにサーバ10Bが接続された場合の構成例である。このとき、ネットワーク上に存在するサーバ10Aおよび10Bのうち、ただ一つのサーバが稼動サーバとなる。本実施の形態では、より高機能なサーバが稼動サーバとなり、この場合、サーバ10Bがサーバ10Aよりも高機能であるため、高機能であるサーバ10Bが稼動サーバとなる。これにより、これまで稼動サーバであったサーバ10Aは非稼動サーバとなり、新たに接続されたサーバ10Bが稼動サーバとして動作を開始する。
【００３４】
このとき、非稼動サーバとなったサーバ10Aに搭載されるサービスモジュール20a,20bも、同時に停止状態となり、非稼動サービスモジュールとなる。
【００３５】
本発明は、このような非稼動サービスモジュールとなったサービスモジュール20a,20bをネットワークを介して利用するものである。
【００３６】
すなわち、稼動サーバがサーバ10Aからサーバ10Bに切り替わることを、サーバ10Aが自身が有すサービスモジュール20a、20bに通知し、これらのサービスモジュールはサーバ10Bに接続を試みる。
【００３７】
この接続では、サービスモジュール20a、20bは、サーバ10Bに自身と同一のサービスモジュールがないかどうかを確認し、この結果に基づきサーバ10Bに接続するかどうか判断を行う。これは、自身と同一のサービスモジュールがある場合、サーバ10Bとの接続によりサービスモジュールを稼動させることによって、同一サービスモジュールが複数稼動されることを防ぐ。
【００３８】
本実施の形態では、サーバ10Bは、サーバ10Aが備えるサービスモジュール20aが搭載されていないため、サービスモジュール20aはサーバ10Bに接続を行う。一方、サービスモジュール20bは、サーバ10Bに同一のサービスモジュール20bが搭載されているため、サービスモジュール20bはサービスモジュール10Bへの接続を行わない。
【００３９】
このようにして、ネットワーク上で、サービスモジュール20a、20b、20c、20dが各々一つずつ稼動することが可能となる。実際には、サービスモジュール20aはサーバ10A上で稼動し、サーバ10Bとの接続によって、サービスモジュール20b、20c、20dと同じようにして、あたかもサーバ10Bにおいて稼動しているように見える。
【００４０】
なお、本実施の形態では、図2Bで示すように、サーバ10Bが新たにネットワークに接続されたとき、稼動サーバがサーバ10Aからサーバ10Bに切り替わる。これらのサーバ10Aおよびサーバ10Bの機能および構成等は同一である。
【００４１】
図3は、サーバ10Aの機能ブロック図である。
【００４２】
サーバ10Aは、サービスモジュール20a,20b、サーバ情報記憶部101、サーバ広告メッセージ生成部102、サーバ広告メッセージ送信部103、接続処理部104、接続可否判定部105、起動処理部106、接続通知メッセージ生成部107、接続通知メッセージ送信部108、接続通知メッセージ受信部109、サーバ選択部110、リダイレクトメッセージ生成部111、リダイレクトメッセージ送信部112、サービスモジュールリスト要求受信部113、サーバリスト生成部114、サービスモジュールリスト送信部115を備えている。
【００４３】
サーバ情報記憶部101は、サーバ10Aに関し、サーバ識別子やアドレス、稼動しているサービスモジュールに関するサーバ情報を保持する。
【００４４】
サーバ広告メッセージ生成部102は、自身が稼動サーバである場合に、ネットワーク上に存在するサービスモジュール（自身であるサーバ10Aが搭載するサービスモジュールも含む）が自身との接続を試みるように、これらのサービスモジュールに指示を与えるためのサーバ広告メッセージを生成する。このサーバ広告メッセージには、サーバ情報記憶部101から取得したサーバ情報が含まれる。サーバ広告メッセージ生成部102にて生成されたサーバ広告メッセージは、サーバ広告メッセージ送信部103に送られる。
【００４５】
サーバ広告メッセージ送信部103は、サーバ広告メッセージ生成部102で生成されたサーバ広告メッセージをマルチキャストで送信する。
【００４６】
接続処理部104は、ネットワーク上に存在するサービスモジュールとの接続を管理する。接続の要求があった場合には、その接続を許可してよいかどうかの判断を接続可否判定部105に依頼する。接続可否判断部105が接続を可能と判断した場合には、ネットワーク上のサービスモジュールとの接続を確立する。
【００４７】
接続可否判定部105は、接続処理部104からの依頼に基づき、自身であるサーバ10Aとの接続を要求してきたネットワーク上のサービスモジュールとの接続を許可するかどうかの判断を行う。
【００４８】
即ち、接続可否判定部105は、サーバ情報記憶部101が保持しているサーバ情報に含まれる、稼動サービスモジュールリスト情報(全ての稼動サービスモジュールに関する情報)が示す稼働中のサービスモジュールの中に、接続を要求してきたネットワーク上のサービスモジュールのサービス識別子と同一のサービス識別子がないかどうかを判断する。
【００４９】
ここで、同一のサービス識別子がある場合、接続を要求してきたネットワーク上のサービスモジュールと同一のサービスモジュールが既に稼動していると判断し、接続の要求を拒否する。一方、同一のサービス識別子が無い場合、接続を要求してきたネットワーク上のサービスモジュールと同一のサービスモジュールが稼動していないと判断し、接続を許可する。
【００５０】
このように接続を許可した場合には、接続処理部104に接続の確立を依頼するとともに、サーバ情報記憶部101に、サーバ情報に含まれている稼動サービスモジュールリスト情報に、接続を許可したネットワーク上のサービスモジュールのサービス情報を追加する。
【００５１】
起動処理部106は、サーバ10Aが起動した際に各種の起動処理を行う。起動処理終了後は、ネットワークに接続されたことを通知する接続通知メッセージの生成を接続通知メッセージ生成部107に依頼する。
【００５２】
接続通知メッセージ生成部107は、起動処理部106からの依頼に基づき、接続通知メッセージを生成し、その送信を接続通知メッセージ送信部108に依頼する。
【００５３】
接続通知メッセージ送信部108は、接続通知メッセージ生成部107からの依頼に基づき、接続通知メッセージをマルチキャストで送信する。
【００５４】
接続通知メッセージ受信部109は、新たにネットワークに接続されたサーバから送信される接続通知メッセージを受信する。本実施の形態において、サーバ10Bが新たに接続されると、サーバ10Bの接続通知メッセージ送信部108から送信された接続通知メッセージは、既に稼動中のサーバ10Aの接続通知メッセージ受信部109において受信される。受信された接続通知メッセージは、サーバ選択部110に送られ、ここで、稼動サーバを、接続通知メッセージの発信元であるサーバ10Bに切り替えるかどうか判断を行う。
【００５５】
サーバ選択部110は、接続通知メッセージ受信部109から受信した接続通知メッセージに含まれるサーバ情報、つまり、接続通知メッセージ発信元の新規サーバ10Bのサーバ情報と、サーバ記憶情報部101から取得した自身であるサーバ10Aのサーバ情報とを比較し、新規のサーバ10Bと自身であるサーバ10Aとのどちらが稼動サーバとなるべきかの判断を行う。この判断により、稼動サーバが新たに接続されたサーバ10Bに切り替る場合には、リダイレクトメッセージの生成をリダイレクトメッセージ生成部111に依頼する。
【００５６】
リダイレクトメッセージ生成部111は、サーバ選択部110が稼動サーバの切り替えを判断した際、サーバ選択部110からの依頼に基づき、リダイレクトメッセージを生成し、生成されたリダイレクトメッセージの送信を、リダイレクトメッセージ送信部112に依頼する。このリダイレクトメッセージは、自身に接続しているサービスモジュールやクライアント30A,30Bに、新たな稼動サーバ（本実施の形態ではサーバ10B）との接続を確立するように通知するメッセージである。
【００５７】
リダイレクトメッセージ送信部112は、リダイレクトメッセージ生成部111で生成されたリダイレクトメッセージを、リダイレクトメッセージ生成部111からの依頼に基づき、ネットワーク上のクライアント30A,30Bやサービスモジュールに通知する。
【００５８】
サービスモジュールリスト要求受信部113は、クライアント30A,30Bから送信されるサービスモジュールリスト要求を受信する。受信したサービスモジュールリスト要求は、サービスモジュールリスト生成部114に送られ、サービスモジュールリスト要求に対応したサービスモジュールリストが生成される。
【００５９】
サービスモジュールリスト生成部114は、サービスモジュールリスト要求受信部113で受信されたサービスモジュールリスト要求で示されるクラス識別子を持つサービスモジュールを、サーバ情報記憶部10１に含まれる稼動サーバリスト情報に記載されたサービスモジュールから抽出し、それに基づいてサービスモジュールリストを生成する。生成されたサービスモジュールリストは、サービスモジュールリスト送信部115に送信され、クライアント30A,30Bに送信される。
【００６０】
サービスモジュールリスト送信部115は、サービスモジュールリスト生成部114で生成されたサービスモジュールリストをクライアント30A,30Bに送信する。
【００６１】
次にサービスモジュールについて説明する。以下の説明では、サーバ10Aに搭載されるサービスモジュール20bおよび、サーバ10Bに搭載されるサービスモジュール20b,20c,20dなどのネットワーク上のサービスモジュールを総じてサービスモジュール20とする。
【００６２】
図4は、サービスモジュール20の機能ブロック図である。図示のごとく、サービスモジュール20は、サーバ広告メッセージ受信部201、接続可否判定部202、サービス情報記憶部203、接続処理部204、リダイレクトメッセージ受信部205、サーバ選択部206、稼動サーバ情報記憶部207を備える。
【００６３】
サーバ広告メッセージ受信部201は、サーバ10A,10Bが送信するサーバ広告メッセージを受信する。受信したサーバ広告メッセージは、サーバ選択部206に送られ、サーバ広告メッセージの送信元であるサーバが稼動サーバとなるかの判断が行われる。
【００６４】
サーバ選択部206は、サーバ広告メッセージ受信部201からの依頼に基づき、サーバ広告メッセージ受信部201で受信したサーバ広告メッセージの送信元のサーバを稼動サーバとするかの判断を行う。具体的には、サーバ10Aのサーバ選択部110が行う処理と同様である。ただし、この場合は、自身と新サーバの比較ではなく、稼動サーバ情報記憶部207に保持しているサーバ情報と、サーバ広告メッセージ送信元のサーバ情報を比較することによって稼動サーバを判断する。サーバ広告メッセージ送信元のサーバが稼動サーバと判断された場合には、受信したサーバ広告メッセージは、接続可否判定部202に送られ、サーバ広告メッセージを送信してきたサーバとの接続を行うべきかどうか判断する。また、サーバ広告メッセージに含まれる送信元のサーバ情報を稼動サーバ情報記憶部207に保存する。
【００６５】
稼動サーバ情報記憶部207は、稼動サーバのサーバ情報が保持されている。サーバ情報は、サーバ選択部207によって、稼動サーバ情報記憶部207に格納され、参照される。
【００６６】
接続可否判定部202は、サーバ広告メッセージ受信部201で受信したサーバ広告メッセージに基づき、サーバ広告メッセージを送信したサーバとの接続を確立するべきかの判断を行う。また、リダイレクトメッセージ受信部205がリダイレクトメッセージを受信した際にも、リダイレクトメッセージに基づき、リダイレクトメッセージが指示する新たに稼動するサーバとの接続を確立するべきかどうかの判断を行う。この判断は、サーバ広告メッセージに含まれる稼動サービスモジュールリスト情報と、サービス情報記憶部203から取得する自身のサービス情報を比較することによって、自身のサービスモジュールと同一のサービス識別子を持つサービスモジュールが稼動中でないかどうかを判断し、稼動中でない場合、新しく稼動するサーバへの接続を接続処理部204に依頼する。
【００６７】
サービス情報記憶部203は、サービスモジュールに関するサービス情報を保持する。このサービス情報は、サーバ広告メッセージ受信部201で受信したサーバ広告メッセージの発信元のサーバへの接続を行うべきかどうかを判断するために接続可否判定部202によって参照される。
【００６８】
接続処理部204は、接続可否判定部202からの依頼に基づき、サーバに対して接続を要求し、許可されれば接続を確立する。
【００６９】
リダイレクトメッセージ受信部205は、接続しているサーバから送信されるリダイレクトメッセージを受信する。この受信したリダイレクトメッセージに基づいて、新たに稼動サーバとなるサーバへ接続するべきかの判断を接続可否判定部202に依頼する。
【００７０】
本実施の形態では、サーバ10Aが起動すると、サービスモジュールは、サーバ10Aから送信されるサーバ広告メッセージを受信し、サーバ10Aとの接続を確立するべきかの判断を行ったのち、サーバ10Aとの接続を行う。その後、サーバ10Bがネットワークに接続され、サーバ10Bへの切り替えがリダイレクトメッセージによって通知されると、サーバ10Bとの接続を確立するべきかどうかの判断の後、サーバ10Bとの接続を確立する。
【００７１】
次にクライアント30Aについて説明する。図5はクライアント30Aの機能ブロック図である。図示のごとく、クライアント30Aは、ネットワークに存在する機器であり、様々なサービスモジュールを利用する。なお、図1に示すクライアント30Bは、クライアント30Aと同一の機能および構成等を備える。
【００７２】
クライアント30Aは、サービスモジュールリスト要求送信部301、サービスモジュールリスト受信部302、サービスモジュール選択部303、サービス機能実行部304を備える。
【００７３】
サービスモジュールリスト要求送信部301は、クライアント30Aが必要とするサービスモジュールのクラス識別子を指定し、そのクラス識別子を持ったサービスモジュールに関するサービス情報の送信をサーバ10に要求するサービスモジュールリスト要求をサーバ10に送信する。
【００７４】
サービスモジュールリスト受信部302は、サービスモジュールリスト要求送信部301に対応してサーバが送信するサービスモジュールリストを受信する。受信したサービスモジュールリストは、サービスモジュール選択部303に送られる。
【００７５】
サービスモジュール選択部303は、サービスモジュールリスト受信部302において受信したサービスモジュールリストに含まれるサービス情報に対応するサービスモジュールの中から、どのサービスモジュールを使用するかの判断を行う。
【００７６】
サービス機能実行部304は、サービスモジュール選択部303によって選択されたサービス機能モジュールを利用する。
【００７７】
次に、本実施の形態のネットワークシステムで扱われる情報およびメッセージについて説明する。
【００７８】
ここでは、サーバ10Aおよびサーバ10Bを総じてサーバ10と称す。また、サーバ10Aに搭載されるサービスモジュール20a,20bおよび、サーバ10Bに搭載されるサービスモジュール20b,20c,20dなどのネットワーク上のサービスモジュールを総じてサービスモジュール20と称す。また、クライアント30Aおよびクライアント30Bを総じてクライアント30と称す。
【００７９】
サーバ情報は、サーバ10に関する情報であり、サーバの識別子、アドレスに関する情報および稼動サービスモジュールリスト情報を含む。このサーバ情報は、サーバ10のサーバ情報記憶部101に保持されており、また、このサーバ情報は、サーバ広告メッセージ、接続通知メッセージ、リダイレクトメッセージに含まれる。
【００８０】
サービス情報は、サービスモジュール20に関する情報であり、サービス識別子、クラス識別子、アドレスに関する情報を含む。サービス情報は、サービスモジュール20のサービス情報記憶部203に保持されている。また、サーバ10のサーバ情報記憶部101が保持する稼動サービスモジュールリスト情報には、複数のサービスモジュール20のサービス情報が含まれている。
【００８１】
稼動サービスモジュールリスト情報は、サーバ情報に含まれる情報のひとつで、複数のサービス情報をリスト化したものである。稼動サーバに関するサーバ情報に含まれる稼動サービスモジュールリスト情報は、稼動しているすべてのサービスモジュールのサービス情報を含んでいる。また、停止中のサーバに関するサーバ情報に含まれている稼動サービスモジュールリスト情報は、そのサーバが搭載している全てのサービスモジュールに関するサービス情報が含まれる。この情報は、サービスモジュールがサーバに接続を行うかどうかを判断する場合、サーバがサービスモジュールからの接続要求を許可するかの判断を行う場合に用いられる。
【００８２】
サーバ広告メッセージは、サーバが稼動サーバになった時、および、その後、非稼動になるまで(稼動サーバでなくなるまで)、定期的に送信される情報であり、送信元のサーバのサーバ情報が含まれている。このサーバ広告メッセージは、マルチキャストでネットワーク全体に送信され、サービスモジュール20によって受信される。サービスモジュール20は、この情報に含まれる稼動サーバリスト情報に基づいて、サーバ10との間で接続を行うかどうかを判断し、接続を行う際には、サーバ広告メッセージに含まれるサーバ情報に基づいて接続を行う。
【００８３】
接続通知メッセージは、サーバが新たにネットワークに接続された際に送信される情報であり、送信元のサーバのサーバ情報が含まれている。この接続通知メッセージは、稼動サーバによって受信され、稼動サーバを切り替えるかどうかの判断に使用される。切り替えると判断された場合には、接続通知メッセージに基づいて、リダイレクトメッセージが生成され送信される。
【００８４】
リダイレクトメッセージは、稼動サーバが切り替る際に、切り替え前に稼動しているサーバによって、そのサーバに接続しているクライアント、サービスモジュールおよびサーバが搭載しているサービスモジュール20に送信される。
【００８５】
続いて、本実施の形態における動作について説明する。以下の説明では、上記のサーバ10A、サーバ10Bを各々簡易なサーバを持つ監視カメラと高機能サーバとする。なお、監視カメラ10Aは、監視カメラネットサービスモジュール10aを、高機能サーバは、データベースサービスモジュール20b、ウェブインターフェース（WIS）20c、連携制御提供サービスモジュール20dを、それぞれ内部に搭載している。
【００８６】
監視カメラネットサービスモジュール20aは、監視カメラを宅外から操作するために用いられる監視カメラ専用の宅外サーバを中継し、宅外制御を行うためのサービスを提供するサービスモジュールである。データベースサービスモジュール20bは、各種データベースを扱うためのサービスモジュールである。ウェブインターフェース20cは、ウェブブラウザを介して制御を行うことを可能にするサービスモジュールである。連携制御提供サービスモジュール20dは、複数の機器間の連携制御を実現するためのサービスモジュールである。
【００８７】
本実施の形態では、これらのサービスモジュールを備える監視カメラ10Aと高機能サーバ10Bは、高機能サーバ10Bの方が稼動サーバとしてより適切な機能を持つものとする。
【００８８】
図6は、監視カメラ10Aがサーバとして機能しているネットワークに、新たに高機能サーバ10Bが接続された場合の動作を概略的に示したものである。
【００８９】
監視カメラ10Aが稼動サーバとして機能している(S400)ネットワークでは、監視カメラに搭載された監視カメラネットサービスモジュール20aは、監視カメラ10A上で動作し、そのサービス機能は、監視カメラ10Aによって提供される。
【００９０】
このネットワークに、新たに高機能サーバ10Bが接続されると(S401)、まず、高機能サーバ10Bは、起動処理を実行し、この起動処理が終了すると、マルチキャストでネットワーク全体に接続通知メッセージを送信する(S402)。
【００９１】
高機能サーバ10Bが送信した接続通知メッセージは、稼動サーバである監視カメラ10Aによって受信される。監視カメラ10Aは、高機能サーバ10Bと自身(監視カメラ10A)の機能を比較し、どちらが稼動サーバとして適切であるかを判断し、稼動サーバを高機能サーバ10Bに切り替えるか否かの判断を行う。(S403)。
【００９２】
切り替えを行わないと判断すると(S403 No)、このまま監視カメラ10Aが稼動サーバとして稼動し続ける(S400)。
【００９３】
本実施の形態では、監視カメラ10Aと高機能サーバ10Bでは、高機能サーバ10Bの方が稼動サーバとして適切な機能を持つため、稼動サーバを切り替えると判断され(S403 Yes)、監視カメラ10Aは、現在接続しているクライアントに対して、リダイレクトメッセージを送信する(S404)。また、このサーバ通知は、自身の監視カメラ10Aに搭載されているサービスモジュール、すなわち、監視カメラネットサービスモジュール20aに対しても送信される(S405)。
【００９４】
クライアント30は、監視カメラ10Aから接続切替通知を受信すると、高機能サーバ10Bとの接続を確立する(S406)。高機能サーバ10Bは、クライアント30との接続が確立すると、稼動サーバとしての動作を開始する(S407)。
【００９５】
また、監視カメラ10A内部に搭載されている監視カメラネットサービスモジュール20aは、高機能サーバ10Bへ、接続するか否かの判断を行う(S408)。具体的には、リダイレクトメッセージに含まれる稼動サービスモジュールリスト情報が示すサービス識別子の中に、サービス情報記憶部203が保持している自身(監視カメラネットサービスモジュール20a)のサービス情報に記載されたサービス識別子と同じものがないかの判断を行い、同じサービスモジュールが稼動していないかの判断を行う。同じサービスモジュールが稼動していないと判断した場合に、接続すると判断する。
【００９６】
監視カメラ10A内部の監視カメラネットサービスモジュール20aが、高機能サーバ10Bに接続すると判断すると(S408 Yes)、高機能サーバ10Bに対して、接続の確立を要求する(S409)。
【００９７】
接続要求を受けた高機能サーバは、監視カメラネットサービスモジュール20aとの接続を許可するか否かの判断を行う(S410)。具体的には、接続を要求している監視カメラネットサービスモジュール20aのサービス識別子と、サーバ情報記憶部101に保持している稼動サービスモジュールリスト情報が示すサービス識別子を比較し、監視カメラネットサービスモジュール20aと同じサービス識別子を持つサービスモジュールが稼動していないかを判断し、同じサービス識別子を持つサービスモジュールが稼動していなければ接続を許可するとし(S410 Yes)、一方、同じサービス識別子を持つサービスモジュールが稼動している場合には接続を拒否すると判断する(S410 No)。
【００９８】
高機能サーバ10Bが監視カメラネットサービスモジュール20aとの接続を拒否すると判断した場合(s410 No)、接続を拒否する（S411）。一方、接続を許可すると判断した場合(S410 Yes)、監視カメラネットサービスモジュール20aとの接続を確立する(S412)。
【００９９】
この時、高機能サーバ10Bは、監視カメラネットサービスモジュール20a、データベースサービスモジュール20b、ウェブインターフェースサービスモジュール20c、連携制御提供サービスモジュール20dが提供するサービスをクライアントに提供することができるが、そのうち、監視カメラネットサービスモジュール20aは監視カメラ10Aの内部で動作し、その他のサービスモジュールは高機能サーバ10Bの内部で動作している。
【０１００】
尚、上記では、監視カメラネットサービスモジュール20aは、監視カメラ10Aからのリダイレクトメッセージの受信をトリガとして高機能サーバ10Bへの接続を要求したが、サービスモジュール20aは、マルチキャストの受信が可能であれば、高機能サーバ20Bが送信する接続通知メッセージを受信し、この接続通知メッセージを受信し、これをもとに、接続通知メッセージが稼動サーバとなるべきかの判断を行うこともできる。
【０１０１】
また、上記では、監視カメラ10Aと高機能サーバ10Bとでは、高機能サーバ10Bの方が稼動サーバとなるとしたが、監視カメラ10Aが稼動サーバとなる場合においても、同様のサービスモジュールが稼動していなければ、高機能サーバ10Bが搭載したサービスモジュール20が、監視カメラ10Aへ接続を要求することも可能である。
【０１０２】
この場合、次の図7におけるS506からの処理において、高機能サーバ10Bおよび監視カメラ10Aを、各々、監視カメラ10A、高機能サーバ10Bと読み替えることで、説明することができる。
【０１０３】
図7は、高機能サーバ10Bがサーバとして機能しているネットワークに、新たに監視カメラ10Aが接続された場合の動作を概略的に示したものである。
【０１０４】
高機能サーバ10Bがサーバとして機能している(S500)ネットワークでは、高機能サーバ10Bは、データベースサービスモジュール20b、ウェブインターフェースサービスモジュール20c、連携制御提供サービスモジュール20dが提供するサービスをクライアントに提供することができ、それらのサービスモジュール20b,20c,20dは、高機能サーバ10Bの内部で動作している。
【０１０５】
このネットワークに新たに、簡易的なサーバ機能を搭載した監視カメラ10Aが接続されると(S501)、監視カメラ10Aは、起動処理を実行し、この起動処理が終了すると、マルチキャストでネットワーク全体に接続通知メッセージを送信する(S502)。
【０１０６】
監視カメラ10Aが送信した接続通知メッセージは、稼動サーバである高機能サーバ10Bによって受信される。高機能サーバ10Bは、監視カメラ10Aと自身(高機能サーバ10B)の機能を比較し、どちらが稼動サーバとして適切であるかを判断し、稼動サーバを監視カメラ10Aに切り替えるかの判断を行う(S503)。
【０１０７】
稼動サーバを切り替えると判断した際には(S503 Yes)、図6に示すS404の処理に移行する(S504)。なお、本実施の形態では、監視カメラ10Aと高機能サーバ10Bでは、高機能サーバ10Bの方が稼動サーバとして適切な機能を持つため、稼動サーバを切り替えないと判断し(S503 No)、高機能サーバ10Bは引き続き稼動サーバとして機能する(S505)。
【０１０８】
稼動サーバである高機能サーバ10Bは、定期的(例えば、30秒に1回)にサーバ広告メッセージをマルチキャストでネットワーク全体に送信する(S506)。
【０１０９】
監視カメラ10A内部の監視カメラネットサービスモジュール10aが、高機能サーバ10Bが送信したサーバ広告メッセージを受信すると、監視カメラネットサービスモジュール10aは、高機能サーバ10Bに接続するか否かの判断を行う(S507)。具体的には、サーバ広告メッセージに含まれる稼動サービスモジュールリスト情報が示すサービス識別子の中に、サービス情報記憶部203が保持している自身(監視カメラネットサービスモジュール20a)のサービス情報に記載されたサービス識別子と同じものがないかの判断を行い、同じサービスモジュールが稼動しているか否かの判断を行う。同じサービスモジュールが稼動していないと判断した場合、接続すると判断し（S507 Yes）、監視カメラネットサービスモジュール10aは、高機能サーバ10Bとの接続を要求する(S508)。
【０１１０】
接続要求を受けた高機能サーバは、監視カメラネットサービスモジュール20aとの接続を許可するか否かの判断を行う(S509)。具体的には、接続を要求している監視カメラネットサービスモジュール20aのサービス識別子と、サーバ情報記憶部101に保持している稼動サービスモジュールリスト情報が示すサービス識別子を比較し、監視カメラネットサービスモジュール20aと同じサービス識別子を持つサービスモジュールが稼動していないかを判断し、同じサービス識別子を持つサービスモジュールが稼動していなければ接続を許可するとし(S509 Yes)、一方、同じサービス識別子を持つサービスモジュールが稼動している場合には接続を拒否すると判断する(S509 No)。
【０１１１】
高機能サーバ10Bが監視カメラネットサービスモジュール20aとの接続を拒否すると判断した場合(s509 No)、接続を拒否する（S510）。一方、接続を許可すると判断した場合(S509 Yes)、監視カメラネットサービスモジュール20aとの接続を確立する(S511)。
【０１１２】
この時、高機能サーバ10Bは、監視カメラネットサービスモジュール20a、データベースサービスモジュール20b、ウェブインターフェースサービスモジュール20c、連携制御提供サービスモジュール20dが提供するサービスをクライアントに提供することができるが、そのうち監視カメラネットサービスモジュール20aは、監視カメラ10Aの内部で動作し、その他のサービスモジュールは高機能サーバ10Bの内部で動作している。
【０１１３】
次に、クライアント30aからサーバ10Aに対し、サービスモジュールリストが要求された際のクライアント30aの動作について、図8のフローチャートを用いて説明する。
【０１１４】
クライアント30aは、必要としているサービスモジュール20aのクラス識別子を指定し、稼動しているサービスモジュールの中で、そのクラス識別子を持ったサービスモジュールに関するサービス情報の送信を、サーバ10Aに要求するサービスモジュールリスト要求を生成すると（S601）、クライアント30aのサービスモジュールリスト要求送信部301は、生成したサービスモジュールリスト要求送信部301に送信する(S602)。
【０１１５】
サービスモジュールリスト要求受信部113においてサービスモジュールリスト要求を受信したサーバ10Bは(S603)、サービスモジュールリスト生成部114においてサービスモジュールリストを生成する(S604)。具体的には、サービスモジュールリスト生成部114は、サービスモジュールリスト要求受信部113において受信したサービスモジュールリスト要求に含まれるサービスモジュールのクラス識別子と、同じ識別子を持つサービスモジュールのサービス情報を、サーバ情報記憶部101が保持しているサーバ情報に含まれる稼動サービスモジュールリスト情報から抽出する。
【０１１６】
生成したサービスモジュールリストは、サーバ10Bのサービスモジュールリスト送信部115から送信される(S604)。
【０１１７】
クライアント30aでは、サービスモジュールリスト受信部302においてサービスモジュールリストが受信され(S605)、クライアント30aによって、利用されるサービスモジュール20aが選択される(S607)。そして、選択されたサービスモジュール20が利用される(S608)。
【０１１８】
以上、本実施の形態によれば、サーバが切り替えられることによって停止したサーバであっても、その内部のサービスモジュールを利用し実行させ、稼動サーバを介してクライアントに対してサービスを提供することができるため、ネットワーク上のリソースの有効活用を図ることができる。
【０１１９】
また、各サービスモジュールは、稼動サーバが利用できるるサービスモジュールと比較され、稼動サーバ上で利用できないサービスモジュールであった場合、新たに利用することができるため、サーバが切り替えられても、切り替え前と同様のサービスが提供され、ユーザの利便性を損なうことを防ぐことができる。
【０１２０】
以上、本発明に係る実施の形態について説明したが、本発明は、斯かる実施の形態に限定されるものではなく、他に種々の変更が可能であることは言うまでもない。
【０１２１】
例えば、本実施の形態では、ネットワーク上で、複数の同一のサービスモジュールに関しては、そのうちの一つのみを稼動させる形態としたが、複数のサービスモジュールを稼動しても支障がない場合には、複数のサービスモジュールを稼動させるようにしてもよい。このような場合、同一のサービスモジュールでも、見かけ上、異なるサービスであるようにすることで、複数の同一のサービスモジュールを稼動させることができる。
【０１２２】
本実施の形態は、あくまでも、本発明の一つの実施形態であって、本発明ないし各構成要件の用語の意義等は、本実施の形態に記載されたものに制限されるものではない。
【図面の簡単な説明】
【０１２３】
【図１】実施例に係るネットワークシステムの構成例を示す図
【図２】実施例に係るサーバおよびサービスモジュールの構成例を示す図
【図３】実施例に係るサーバの構成を示す図
【図４】実施例に係るサービスモジュールの構成を示す図
【図５】実施例に係るクライアントの構成を示す図
【図６】高機能なサーバが後から接続される場合の動作を説明するフローチャート
【図７】高機能なサーバが先に稼動している場合の動作を説明するフローチャート
【図８】サービスモジュールリスト要求時の動作を説明するフローチャート
【符号の説明】
【０１２４】
10A,10B      サーバ
20a,20b,20c  サービスモジュール
30A,30B      クライアント
【図１】
2007004408.tif 000003
【図２】
2007004408.tif 000004
【図３】
2007004408.tif 000005
【図４】
2007004408.tif 000006
【図５】
2007004408.tif 000007
【図６】
2007004408.tif 000008
【図７】
2007004408.tif 000009
【図８】
2007004408.tif 000010