(57)【特許請求の範囲】
【請求項１】
機器が接続された複数のネットワークに接続され、前記複数のネットワーク間での通信情報の中継を行う通信装置であって、
バスと、
前記複数のネットワークと接続され、前記複数のネットワークのうちのいずれかに接続された機器からの当該機器を識別する機器情報を受信する受信装置と、
前記受信装置と前記バスを介して接続され、前記受信装置で受信された機器情報を記憶する記憶装置と、
前記記憶装置と前記バスを介して接続され、前記受信装置が前記複数のネットワークのうち第１のネットワークを経由した要求であって、前記複数のネットワークのうち第２のネットワークに接続された機器への前記第２のネットワークに接続された当該機器が有する機能に対するものを受信したときに、前記記憶装置に記憶された機器情報を用いて前記要求に応じた応答を作成するプロセッサと、
前記バスを介して前記プロセッサと接続され、前記複数のネットワークに接続され、前記応答を前記第１のネットワークへ送信する送信装置とを有し、
当該通信装置は、ルータ機器であり、
前記送信装置は、前記要求された機器に対して前記要求に対応する情報を前記第２のネットワークを介して前記機器に送信する、通信装置。
【請求項２】
前記要求は、ネットワークに接続された機器の制御を行うための制御情報である、請求項１記載の通信装置。
【請求項３】
前記受信装置は、前記制御を行う機器で実行された制御の結果を当該機器から受信し、
前記送信装置は、前記機器で実行された制御の結果を、第１のネットワークに送信する、請求項２記載の通信装置。
【請求項４】
前記機器情報は、機器の機能を識別する機能情報を含む、請求項１記載の通信装置。
【請求項５】
前記機器情報は、さらに機器のネットワーク上での位置を示すアドレス情報を含む、請求項４記載の通信装置。
【請求項６】
前記機能情報は、機器の種別を示す情報および機器が有するアプリケーションプログラムの種別を示す情報のうち少なくとも一方を含む、請求項４記載の通信装置。
【請求項７】
前記記憶装置は、前記複数のネットワークに接続された他の機器の機器情報を記憶する、請求項１記載の通信装置。
【請求項８】
前記受信装置は、前記第１のネットワークに接続された機器から送信される要求を受信する、請求項１記載の通信装置。
【請求項９】
前記受信装置は、前記第１のネットワークに接続された他の通信装置から転送される要求を受信する、請求項８記載の通信装置。
【請求項１０】
前記受信装置は、前記複数のネットワークへの機器の接続状況が変更された場合、変更される機器の機器情報を受信する、請求項１記載の通信装置。
【請求項１１】
前記接続状況の変更として、機器のネットワークへの新たな接続、機器の移動および機器のネットワークからの離脱のうち少なくとも１つを含む、請求項１０記載の通信装置。
【請求項１２】
前記第２のネットワークに、第３のネットワークが接続された通信装置が接続された場合、
前記受信装置は、前記第３のネットワークに接続された通信装置からの接続通知を受信し、
前記送信装置は、前記接続通知に基づいて、当該通信装置が有する機器情報を前記第３のネットワークが接続された通信装置に送信し、
前記受信装置は、前記第３のネットワークが接続された通信装置が有する機器情報を受信する、請求項１記載の通信装置。
【請求項１３】
前記第２のネットワークが、第３のネットワークが接続された通信装置に接続された場合、
前記送信装置は、前記第３のネットワークに接続された通信装置へ接続通知を送信し、
前記受信装置は、前記接続通知に基づいて送信される、前記第３のネットワークに接続された通信装置が有する機器情報を受信し、
前記送信装置は、当該通信装置が有する機器情報を前記第３のネットワークが接続された通信装置へ送信する、請求項１記載の通信装置。
【請求項１４】
機器が接続された複数のネットワークに接続され、前記複数のネットワーク間での通信情報の経路制御を行うルータ装置であって、
複数のネットワークのうち、いずれかのネットワークを介して当該ルータ装置と接続された機器に関する機器情報であって機器を特定する機器情報を有する手段と、
前記通信情報を受信する手段と、
受信した通信情報が、前記複数のネットワークのうち第１のネットワークを経由して送信され、前記複数のネットワークのうち第２のネットワークに接続された機器への前記第２のネットワークに接続された当該機器が有する機能に対する要求であったときは、前記機器情報を用いて前記要求に応じた応答を作成する手段と、
前記応答を前記第１のネットワークへ送信する手段とを有し、
前記受信する手段は、前記要求として前記複数のネットワークのうち第２のネットワークに接続された機器の制御を示す制御情報を受信し、
前記送信手段は、前記要求された機器に対して前記制御情報に対応する対応制御情報を前記第１のネットワークを介して前記要求された機器に送信し、
前記送信する手段は、前記要求された機器で実行された制御の結果を前記第１のネットワークに送信する、ルータ装置。
【請求項１５】
前記機器情報は、機器の機能を識別する機能情報を含む、請求項１４記載のルータ装置。
【請求項１６】
前記機器情報は、さらに機器のネットワーク上での位置を示すアドレス情報を含む、請求項１５記載のルータ装置。
【請求項１７】
前記機能情報は、機器の種別を示す情報および機器が有するアプリケーションプログラムの種別を示す情報のうち少なくとも一方を含む、請求項１５記載のルータ装置。
【請求項１８】
前記機器情報を有する手段は、前記複数のネットワークに接続された他の機器の機器情報を記憶する、請求項１４記載のルータ装置。
【請求項１９】
前記受信する手段は、前記第１のネットワークに接続されたルータ装置から転送される要求を受信する、請求項１４記載のルータ装置。
【請求項２０】
前記受信する手段は、前記複数のネットワークへの機器の接続状況が変更された場合、変更される機器の機器情報を受信する、請求項１４記載のルータ装置。
【請求項２１】
前記接続状況の変更として、機器のネットワークへの新たな接続、機器の移動および機器のネットワークからの離脱のうち少なくとも１つを含む、請求項２０記載のルータ装置。
【請求項２２】
当該ルータ装置が新たなネットワークに接続された場合、接続されたことを認識する手段を有し、
前記送信する手段は、前記プロセッサでの認識を受けて、前記新たに接続されたネットワークに接続されている他のルータ装置へ前記ルータ装置が有している機器情報を送信する、請求項１４記載のルータ装置。
【請求項２３】
複数のネットワークがルータ機器を介して接続された分散システムにおける機器の遠隔制御方法であって、
前記ルータ機器が、複数のネットワークのうちのいずれかのネットワークを介して当該ルータ機器と接続された機器を特定する機器情報を有するステップと、
前記複数のネットワークのうちの第１のネットワークに接続された制御装置が、前記複数のネットワークのうちの第２のネットワークに接続された機器が有する機能に対する制御要求を送信するステップと、
前記ルータ機器が、前記制御要求を受信し、前記第２のネットワークに接続された機器に前記制御要求に対応する制御情報を送信するステップと、
前記第１のネットワークに接続された機器が、前記送信された制御情報の示す制御を行うステップと、
前記ルータ機器が、前記機器情報を用いて、前記制御を行うステップの結果である応答を作成するステップと、
前記ルータ機器が、前記応答を前記第１のネットワークに送信するステップと、
前記制御装置が、前記応答を前記第１のネットワークを介して受信するステップとを有する、遠隔制御方法。
【請求項２４】
前記機器情報は、機器の機能を識別する機能情報を含む、請求項２３記載の遠隔制御方法。
【請求項２５】
前記機器情報は、さらに機器のネットワーク上での位置を示すアドレス情報を含む、請求項２３記載の遠隔制御方法。
【請求項２６】
前記ルータ装置が、前記複数のネットワークへの機器の接続関係が変更された場合、変更される機器の機器情報を受信する、請求項２３記載の遠隔制御方法。
【請求項２７】
前記接続関係の変更として、機器のネットワークへの新たな接続、機器の移動および機器のネットワークからの離脱のうち少なくとも１つを含む、請求項２６記載の遠隔制御方法。
【請求項２８】
ルータ装置が新たなネットワークに接続されたことを認識するステップと、
前記新たに接続されたルータ装置が、前記認識するステップを受けて、前記新たに接続されたネットワークに接続されている他のルータ装置へ前記新たに接続されたルータ装置が有している機器情報を送信するステップを有する、請求項２３記載の遠隔制御方法。
【請求項２９】
前記機能情報は、機器の種別を示す情報および機器が有するアプリケーションプログラムの種別を示す情報のうち少なくとも一方を含む、請求項２４記載の遠隔制御方法。
【請求項３０】
前記機器情報を有するステップは、前記第１のネットワークに接続された機器の機器情報に加え、前記複数のネットワークに接続された他の機器の機器情報を有する、請求項２９記載の遠隔制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のネットワークが相互に接続される分散システムにおいて前記ネットワークを相互に接続し通信メッセージの経路制御を行うルータ機器に関し、また、この分散システムにおける機器のネットワークへの接続手順およびルータ機器のネットワークへの接続手順に関する。特に、本発明は、異なる複数のネットワークが統合されたホームシステムおよびビルシステムにおけるルータ機器、および機器やルータ機器のネットワークへの接続手順に関するものである。
【０００２】
【従来の技術】
従来、複数のネットワークが相互に接続される分散システムにおいて、各々のネットワークに接続される機器の種別や、その機器に搭載されるアプリケーションソフトウェアの種別は、各々の機器において管理されるか、あるいは、例えばディレクトリサーバのような機能を備えた特別な機器にて１箇所で集中管理されていた。
【０００３】
一方、複数のネットワークを相互に接続するためのネットワーク機器として、ルータやゲートウェイが既に普及しているが、このような機器は、通信メッセージの経路制御、通信メッセージのフィルタリング制御を行うものである。
【０００４】
【発明が解決しようとする課題】
家庭やビルでの設備機器をネットワークで相互に接続して制御を行うホームシステムやビルシステムにおいて、そのネットワークの媒体として無線や電灯線や赤外線を用い、また複数の媒体を組み合わせて用いる場合、以下のような問題が発生する。
【０００５】
（１） 無線や電灯線や赤外線を媒体としたネットワークは有線のネットワークと比較して伝送の信頼性が低く、また通信の信号が届かない隠れ端末の問題があり、また家庭やビルでの機器はユーザが直接スイッチをオンオフする場合が多く常時通信可能であるとは限らない。このため、例えば、システムを集中制御する機器が、ネットワークにどのような機器が接続されているか、どのようなアプリケーションソフトウェアが搭載されているのかを実際の機器に対して問い合わせても、応答が返ってくる信頼性も低く、また再送制御を行ったとしても今度は応答性能が悪くなってしまい、システム構成機器やアプリケーションソフトウェアを正確にかつ応答性能良く知ることが難しい。
【０００６】
（２） ネットワークにどのような機器が接続されているか、どのようなアプリケーションソフトウェアが搭載されているのかの情報を、１台の機器に集中管理させるアプローチを取った場合であっても、無線や電灯線や赤外線を媒体としたネットワークは有線のネットワークと比較して伝送の信頼性が低いため、このような情報を正確に、かつ性能良く集中管理機器に反映できるとは限らない。
【０００７】
また、ネットワークを増設しようとする場合に、従来の技術では、ユーザが多くの設定を行う必要があり非常に煩雑であった。具体的には、以下のような問題があり、家庭やビルの住居人が行うのは難しかった。
【０００８】
（１） ネットワークの識別子（例えばインターネットプロトコルにおけるネットワークアドレス）の一意性を保証する必要があり、ユーザが空いている識別子を管理し、ネットワークを増設する（すなわちルータ機器を接続する）場合、この空いている識別子をルータ機器に設定する必要があった。
【０００９】
（２） また、ルータ機器におけるルーティングのための情報も、ユーザが設定する必要があった。
【００１０】
また、機器がネットワーク間で移動した場合、その機器に対して通信を行う場合の作業も非常に煩雑であり、またネットワークや各々の機器の負荷に大きな影響を与えていた。すなわち、以下のような問題があった。
【００１１】
（１） アクセス元の機器は、所望の機器がシステム内のどのネットワークに接続されているかを可能性のあるすべての機器に対して所望の機器が見つかるまで１つ１つ調べなければならなかったため、ネットワークや各々の機器の負荷を増大させていた。
【００１２】
（２） アクセス元の機器は、所望の機器がいつネットワークに接続されるかわからないため、システム内のどのネットワークに接続されているかを可能性のあるすべての機器に対して所望の機器が見つかるまで周期的に調べなければならなかったため、ネットワークや各々の機器の負荷を無用に増大させていた。
【００１３】
【課題を解決するための手段】
このような問題を解決するため、本発明では解決のための代表的なアプローチとして以下の手段をとった。
【００１４】
（１）複数のネットワークが相互に接続され、同一のアドレス体系によってアドレスが付与された機器によって構成される分散システムにおいて、前記ネットワークを相互に接続し通信メッセージの経路制御を行うルータ機器に対して、このルータ機器が直接接続されるネットワークに接続された別の機器に関する情報（機器情報）あるいはこの機器に搭載されるアプリケションソフトウェアに関する情報（機器アプリケーション情報）を取得する手段と、これを保持する手段と、他の機器からの要求に応じてこれを応答する手段を持たせた。
【００１５】
（２）上記ルータ機器に、ある機器Ａから、このルータ機器に直接接続されるネットワークに接続された別の機器Ｂ宛に送られた機器情報取得要求メッセージあるいは機器アプリケーション情報取得要求メッセージを中継する際に、機器Ｂに代わって、要求された情報を含む応答メッセージを作成し、前記要求メッセージを廃棄し、応答メッセージを機器Ａに送信する手段を持たせた。
【００１６】
（３）複数のネットワークが相互に接続され、前記複数のネットワークをそれぞれ一意に識別するネットワーク識別子と各々のネットワーク内で一意となる機器識別子を構成要素とするアドレスが付与された機器によって構成され、上記ルータ機器は通信メッセージの宛先アドレスに含まれる前記ネットワーク識別子を基に通信メッセージの経路制御を行う分散システムにおいて、ネットワークに新規接続された機器は、その機器が直接接続されるネットワークに接続される他の機器から前記ネットワーク識別子を取得し自身のネットワーク識別子として記憶する手段と、自身の機器識別子をルータ機器に登録するステップと、前記の機器情報あるいは必要に応じて機器アプリケーション情報をルータ機器に登録するステップとを有する機器ネットワーク接続方法とした。
【００１７】
（４）上記ルータ機器（ルータ機器Ａ）を新規にネットワークＡに接続する際に、前記ルータ機器Ａが直接接続されるネットワークＡに接続される別の機器の機器情報あるいは機器アプリケーション情報を、前記ルータ機器が直接接続されるネットワークＡに接続される別のルータ機器Ｂから取得するステップと、ルータ機器Ｂが保持する経路制御情報から未使用のネットワーク識別子を判断するステップと、このネットワーク識別子を新規接続ルータ機器Ａが接続される別のネットワークＢのネットワーク識別子とするステップと、前記経路制御情報を取得するステップと、ネットワークＢが接続されたことを他のルータ機器に通知するステップとを有する機器ネットワーク接続方法とした。
【００１８】
（５）上記ルータ機器によって複数のネットワークが相互に接続された分散システムであって、複数のネットワークをそれぞれ一意に識別するネットワーク識別子と各々のネットワーク内で一意となる機器識別子を構成要素とするアドレスと、少なくとも分散システムの範囲内で一意となる識別子を保持している機器によって構成される分散システムにおいて、ある機器Ａが異なるネットワーク間で移動し（４）に記載の方法を用いてネットワークに接続された際に、移動前後でそれぞれ関連する複数のルータ機器が協調して、ルータ機器が保持する機器Ａの機器情報あるいは機器アプリケーション情報を追加あるいは削除する機器ネットワーク接続方法とした。
【００１９】
（６）上記ルータ機器によって複数のネットワークが相互に接続された分散システムであって、複数のネットワークをそれぞれ一意に識別するネットワーク識別子と各々のネットワーク内で一意となる機器識別子を構成要素とするアドレスと、少なくとも分散システムの範囲内で一意となる識別子を保持している機器によって構成される分散システムにおいて、ある機器Ａが異なるネットワーク間で移動した際に、機器Ａにアクセスする機器Ｂにおいて、機器Ａの移動を検出するステップと、移動前後の機器Ａの同一性を確認するステップと、移動後の機器Ａのアドレスを取得するステップと、機器Ｂの内部において機器Ａを識別する識別子と機器Ａの移動前後でのアドレスの対応付けを変更するステップとを有する機器ネットワーク接続方法とした。
【００２０】
以上説明した手段を設けることによって、本発明では、以下を達成することを目的とする。
【００２１】
（１）伝送の信頼性の低いネットワークを用い、また隠れ端末が存在しても、また機器が常時通信可能状態であるとは限らない場合であっても、どのような機器がシステムに存在するのかを把握することを、より確実に、またこのためのネットワークや機器の負荷上昇を抑えながら実現すること。
【００２２】
（２）上記（１）を達成するためであり、かつ機器をネットワークに容易に接続するため、ルーティング情報の自動設定までをも考慮した機器のプラグアンドプレイを実現すること。
【００２３】
（３）ネットワークをシステムに容易に接続するため、ルーティング情報の自動設定までをも考慮したルータ機器のプラグアンドプレイを実現すること。
【００２４】
（４）機器の移動、すなわちアドレスの変化を低負荷で検出し、この機器にアクセスするアプリケーションに対して移動前後で同一識別子でアクセスできるようにすること。
【００２５】
（５）機器の移動前後で、ルータ機器での移動前のこの機器のルーティング情報を即座に削除し、ルーティングテーブルの省容量化、正確化を図ること。
【００２６】
【発明の実施の形態】
図１は、本発明が実施される分散システムの１例を示す図である。本発明は、複数のネットワークが相互に接続されるシステムに広く適用可能であるが、ここでは、電灯線、小電力無線、赤外線をネットワークとし、家庭内の家電機器が相互に接続され、遠隔制御やセンサ情報の通知などを行なうホームネットワークシステムを例にして本発明の実施形態の一例を説明する。
【００２７】
図１において、１〜９はそれぞれ、パソコン、エアコン、電力量計、冷蔵庫、照明、給湯器、メータ、エアコン、温度センサである。図１では、これらの機器のうち、１〜２は小電力無線通信の機能、３〜５は電灯線通信の機能、６〜７は小電力無線通信の機能、８〜９は赤外線通信の機能をもつ。１１〜１３はルータ機器であり、異なる通信方式の機器と機器との間でのメッセージ通信を中継する機器であり、メッセージ転送や経路制御を行なうものである。なお、図１では、本発明が適用されるシステム構成の一例を示したが、本発明はこの構成に限ることなく、通信機能を持つ機器であればどのような種類のものであっても良いし、光ファイバーなどの別の通信媒体をベースとした別の通信方式を用いても良い。
【００２８】
図２は、図１のシステムをモデル化して記述したものである。以降の説明では、この図2を用いる。図２では、１〜９は図１の１〜９それぞれに対応しており、ここではそれぞれ機器A1、機器A2、機器B1、機器B2、機器B3、機器C1、機器C2、機器D1、機器D２と呼ぶこととする。また、１１〜１３は、図１における１１〜１３のルータ機器にそれぞれ対応している。また、小電力無線、電灯線、赤外線といった個別の通信方式で通信がなされる各々の範囲を１つのネットワークとし、２１〜２４をネットワークとして表記する。なお、小電力無線、電灯線、赤外線は本来物理的な媒体を示すものであるが、ここではそれぞれで異なる通信プロトコルで通信がなされているものとし、この通信プロトコルで通信がなされる１つの範囲を識別するものとしてここでは用いている。したがって、小電力無線であっても、これを使用した異なる通信プロトコルを用いる機器が混在するシステムであれば、システム内には別々のネットワークとして扱う。また、同一プロトコルであっても、プロトコル的に混信しない設定にしているのであれば、これも別々のネットワークとして扱う。
【００２９】
なお、本システムでは、異なる通信プロトコルを用いる複数のネットワークを統合して単一の通信プロトコルとして扱えるようにするため、図３に示すような構成をもつ上位アドレスを定義する。なお、そのための通信処理方式については、後述する。すなわち、本システムでは、異種ネットワークを統合したシステム構成となるため、アプリケーションソフトウェアに対してネットワーク毎のアドレスや通信プロトコルの違いを意識すること必要がなくなるよう、統一的なアドレス体系を提供するものである。ここで、統合されるネットワーク毎のアドレスを下位アドレス、ネットワーク毎の通信プロトコルを下位通信プロトコルとし、統合された後のアドレスを上位アドレス、統合された通信プロトコルを上位通信プロトコルと呼ぶこととする。
【００３０】
図３において、３１はネットワーク識別子部、３２は機器識別子部であり、例えばそれぞれ１バイト、３バイトのサイズとする。機器識別子部３２には、下位通信プロトコルで区切られるネットワーク（以降ではサブネットと呼ぶ）で、各機器が一意に識別できる識別子（すなわち機器識別子NodeID）が格納される。ネットワーク識別子部３１には、本システム内でユニークとなるサブネットの識別子（ネットワーク識別子NetID）が格納される。例えば、これを図１のシステムに使用した場合の例が図２である。図２では、２１〜２４のネットワークに対し、それぞれネットワーク識別子としてNetID=2,3,4,5を割り振り、またこれをもとに機器１〜９の上位アドレスとしてそれぞれ0h5002,0h5001,0h2003,0h2002,0h2001,0h3002,0h3001,0h4002,0h4001を定義する。また、ルータ機器１１〜１３のアドレスとして、ルータ機器１１のNetID=5のネットワーク側、ルータ機器１１のNetID=2のネットワーク側、ルータ機器１２のNetID=2のネットワーク側、ルータ機器１２のNetID=3のネットワーク側、ルータ機器１３のNetID=3のネットワーク側、ルータ機器１３のNetID=4のネットワーク側の上位アドレスをそれぞれ0h50AA,0h20BB,0h20AA,0h30AA,0h30BB,0h40AAと定義している。なお、ルータ機器は、それが接続されるサブネット毎に上位アドレスが定義されるものとする。
【００３１】
次に、図２に示す機器およびルータ機器の内部構成を説明する。
【００３２】
まず、機器の内部構成について、図４を用いて説明する。
【００３３】
図４において、５０は機器１〜９の構成を一般化したものである。機器５０は、アプリケーション５１、５２と、下位プロトコル処理部５３と、通信ミドルウェア６０とから構成される。アプリケーション５１、５２は、例えば、エアコンや冷蔵庫などで、実際のエアコン制御、冷蔵庫制御を行なっている制御プログラムである。また、例えば、パソコン上で、本システムでの通信機能を用いて、機器の遠隔制御や、電力量の監視制御を行なうようなプログラムもこれに相当する。図４では、アプリケーションは２つ存在しているが、1つ以上であればいくつあっても良い。下位プロトコル処理部５３は、機器が接続されるサブネット毎に異なる通信機能を実現する部分であり、下位通信プロトコル処理と実際のネットワークとの物理的な伝送処理を司る。なお、下位プロトコル処理部５３では、下位通信プロトコル毎に定められる下位アドレスを用いて通信処理がなされ、このため、例えば送信時には、通信ミドルウェア６０がこの下位プロトコル処理部５３に対して下位アドレスを用いて送信先機器を指定し送信データとともに送信要求すれば送信が実行され、受信時には、受信データとともに送信元機器の下位アドレスが通信ミドルウェア６０に渡される。
【００３４】
図４において、通信ミドルウェア６０は、送信部６１、受信部６２、ＡＰＩ変換部６３、ＡＰＩ変換テーブル１００、自機器情報テーブル１１０、ルーティングテーブル１２０、アドレス変換テーブル１３０で構成される。送信部６１は、ＡＰＩ変換部６３あるいは受信部６２からの要求に基づいて、依頼されたメッセージを送信するものである。受信部６２は、下位プロトコル処理部５３から受信したメッセージを処理するものである。ＡＰＩ変換部６３は、アプリケーション５１〜５２の要求に応じて他の機器への依頼を出し応答を受け取る機能を司り、特に、他の機器の識別子と上位アドレスとの対応付けを管理するものである。ＡＰＩ変換テーブル１００は、この対応付けを管理するための情報が格納されているものである。自機器情報テーブル１１０は、本機器５０の上位アドレスなどの、本機器の情報のうち他の機器に対して公開するものが格納されている。ルーティングテーブル１２０は、この機器から別の機器にメッセージを送信する際にこれを処理するのに適切なルータ機器のアドレスを管理するもので、送信先のNetIDとルータ機器のアドレスとの対応が管理されている。アドレス変換テーブル１３０は、通信相手の上位アドレスと下位アドレスとの対応を管理するものである。これらのテーブルの構成例については後述する。
【００３５】
次に、ルータ機器の内部構成について、図５を用いて説明する。
【００３６】
図５において、７０はルータ機器１１〜１３の構成を一般化したものである。ルータ機器７０は、下位プロトコル処理部５３と、通信ミドルウェア６０とから構成される。ただし、下位プロトコル処理部５３は、ルータ機器が接続されるサブネットの数に対応して、複数で構成される。
【００３７】
図５において、通信ミドルウェア６０は、送信部６１、受信部６２、自機器情報テーブル１１０、ルーティングテーブル１２０、アドレス変換テーブル１３０、機器情報テーブル１４０で構成される。送信部６１は、ＡＰＩ変換部６３あるいは受信部６２からの要求に基づいて、依頼されたメッセージを送信するものであり、前述した図４における送信部６１と同様のものである。受信部６２は、下位プロトコル処理部５３から受信したメッセージを処理するものであり、前述した図４における受信部６２と同様のものである。ただし、これらは同様の機能を備えてもよいが、機器あるいはルータ機器のどちらかでしか使われない機能もあり不要な機能は必ずしも備えていなくてもよい。必要最低限備えておくべき機能については、後述する。自機器情報テーブル１１０は、本ルータ機器７０の上位アドレスなどの、本機器に関する情報のうち他の機器に対して公開するものが格納されている。ルーティングテーブル１２０は、この機器から別の機器にメッセージを送信する際にこれを処理するのに適切なルータ機器のアドレスを管理するもので、送信先のNetIDとルータ機器のアドレスとの対応が管理されている。ただし、このルータ機器のアドレスは、この機器が接続されるサブネットに接続されるルータ機器のアドレスである。なお以降では、このように、ある機器から見てその機器と同一のサブネットに接続されるルータ機器を「隣接ルータ機器」と呼ぶこととする。次に、アドレス変換テーブル１３０は、そのルータ機器が直接接続されるサブネット内の機器の上位アドレスと下位アドレスとの対応を管理するものである。なお、ルータ機器は複数のサブネットに接続されるものであり、したがって、アドレス変換テーブル１３０は、このサブネット毎に保持されるものとする。機器情報テーブル１４０は、このルータ機器が接続されるサブネット内のすべての機器の情報を管理するもので、機器の種別や、機器のアプリケーション種別を管理するものである。
【００３８】
次に、前述した機器５０、ルータ機器７０にて保持される各種テーブルの各々の構成について説明する。
【００３９】
図６は、ＡＰＩ変換テーブル１００の構成例を示したものである。ＡＰＩ変換テーブルには、ＡＰＩ変換部６３にて、他の機器の識別子と上位アドレスとの変換を行う際に、この対応付けを管理するための情報が格納されている。ＡＰＩ変換テーブル１００では、機器識別子１０１、上位アドレス１０２、ベンダＩＤ１０３、製品ＩＤ１０４、シリアル番号１０５、存在フラグ１０６の組が複数管理されている。機器識別子１０１は、アプリケーション５１〜５２が他の機器を識別するための識別子であり、例えば、「エアコン１」、「エアコン２」、「冷蔵庫」、「照明１」などの文字列や、これを識別するための値などを用いる。上位アドレス１０２は、機器識別子１０１で識別される機器の上位アドレスである。ベンダＩＤ１０３、製品ＩＤ１０４、シリアル番号１０５は、機器識別子１０１で識別される機器をこの組によって全世界でユニークに（システム内でユニークに）識別するものであり、それぞれ、メーカの識別子、製品の識別子、製造シリアル番号である。なお、ベンダＩＤ１０３、製品ＩＤ１０４、シリアル番号１０５に格納される値の意味は、例えば標準規格等で予め定められた規則に沿っていることとする。これらは各々の機器の後述する自機器情報テーブル１１０にも保持されている。存在フラグ１０６は、この行にある機器が実施にシステム内で稼動しているか否かを示すフラグである。
【００４０】
図７は、自機器情報テーブル１１０の構成例を示したものである。自機器情報テーブル１１０には、自機器に関する情報が格納されており、例えば、ベンダＩＤ１１１、製品ＩＤ１１２、シリアル番号１１３、上位アドレス１１４、下位アドレス１１５、機器種別１１６、機器アプリケーション種別１１７、機器アプリケーション状態１１８から構成される。ベンダＩＤ１１１、製品ＩＤ１１２、シリアル番号１１３に格納された情報によって、その機器が全世界でユニークに（システム内でユニークに）識別できるものである。上位アドレス１１４には通信ミドルウェア６０にて用いる通信アドレス、下位アドレス１１５には下位プロトコル処理部５３にて用いる通信アドレスが格納される。機器種別１１６には、その機器の種別を一意に表すコードが格納され、例えば、冷蔵庫、エアコン、パソコン、パネルモニタといった機器のハードウェアの種別を表すコードが格納される。機器アプリケーション種別１１７には、その機器に搭載されるアプリケーション５１、５２の種別を一意に表すコードが格納される。例えば、冷蔵庫であれば冷蔵庫制御プログラム、エアコンであればエアコン制御プログラムが一般に搭載されているものであるが、パソコンには電力ＤＳＭ制御アプリケーションや、ホームセキュリティ制御アプリケーションなど様々な種類のソフトウェアが搭載され得るので、機器アプリケーション種別１１７には機器に搭載されるソフトウェアの種別を表すコードが格納される。例えば、アプリケーションをオブジェクト指向表現した場合には、オブジェクトのクラス識別子がこれに相当する。機器アプリケーション状態１１８には、その機器に搭載されるアプリケーション５１、５２の状態を示すコードが格納される。例えば、「０」は停止、「１」はイニシャル中、「２」は稼働中、「３」は障害停止中などといった意味を持たせ、このコードを格納しておく。なお、ここにはアプリケーションの実体数の分だけのコードが格納され、ある種別のアプリケーションが例えば２つ搭載されている場合には、それぞれの状態を示すコードが格納される。例えば、アプリケーションをオブジェクト指向表現した場合には、ここにはアプリケーションのクラス識別子とインスタンス識別子とインスタンス状態の組の形式で格納される。なお、ベンダＩＤ１０３、製品ＩＤ１０４、シリアル番号１０５、機器アプリケーション種別１１７、機器アプリケション状態１１８に格納される値の意味は、例えば標準規格等で予め定められた規則に沿っていることとする。
【００４１】
図８は、ルーティングテーブル１２０の構成例を示したものである。ルーティングテーブル１２０には、このテーブルを保持している機器から見て、ネットワーク識別子NetIDで指定されるサブネットに接続される機器に対してメッセージを送信する際に、経由しなければならない隣接ルータ機器の上位アドレスのが格納されている。すなわち、例えば、NetID１２１とルータアドレス１２２の組が複数記憶できる構成となっている。なお、図８では、図２に示したルータ機器１１にて保持されるルーティングテーブル１２０の内容を例示しており、NetID＝３、４のサブネットに接続された機器に送信する際には0h20AAを上位アドレスとするルータ機器を経由しなければならないこと、NetID＝２，５のサブネットは自身に直結されたサブネットであるため自機器（この場合ルータ機器１１）から直接宛先機器に送信できることを示している。
【００４２】
図９は、アドレス変換テーブル１３０の構成例を示したものである。アドレス変換テーブル１３０には、上位アドレスと下位アドレスとの対応情報が格納されており、すなわち、例えば、上位アドレス１３１と下位アドレス１３２との組が複数記憶できる構成となっている。
【００４３】
図１０は、機器情報テーブル１４０の構成例を示したものである。機器情報テーブル１４０は、ルータ機器に保持されるもので、このルータ機器が接続されるサブネット内のすべての機器の、例えば、上位アドレス１４１、機器種別１４２、機器アプリケーション種別１４３の組を複数管理する。なお、機器種別１４２、機器アプリケーション種別１４３に格納される値は、図７で示したような各機器で保持される自機器情報テーブルに格納されている値から得たものである。
【００４４】
次に、伝送されるメッセージのフォーマットについて説明する。
【００４５】
図１１は、アプリケーションあるいは通信ミドルウェアに対してオブジェクトサービスの実行を行う依頼応答通信のメッセージフォーマットの一例を示す図である。メッセージ３００は、下位プロトコル毎のヘッダが格納されるエリア３１０、上位プロトコルのヘッダが格納されるエリア３２０、データが格納されるエリア３３０から構成される。下位プロトコル毎のヘッダが格納されるエリア３１０には、サブネット内で下位プロトコルを用いて機器と機器との間の通信を行うための送信元機器の下位アドレスであるＳＡ３１１、送信先機器の下位アドレスであるＤＡ３１２が含まれる。すなわち、ルータ機器を経由する通信は、機器とルータ機器あるいはルータ機器とルータ機器との間で下位プロトコルを用いる通信を組み合わせて機器と機器との間での通信が実現されるが、その各々の通信での下位アドレスが格納される。すなわち、ある機器宛に送信する際に、ルータ機器を経由する場合には、ＤＡにはこのルータ機器の下位アドレスが格納される。また、ルータ機器からある機器に送信される場合には、ＳＡにこのルータ機器の下位アドレスが格納される。エリア３１０には、これ以外にも通信を行うための情報が含まれるが、本発明に直接関係がないのでここでは説明しない。上位プロトコルヘッダ３２０には、システム内で上位プロトコルを用いて機器と機器との間の通信を行うための送信元機器の上位アドレスであるＳ＿ＵＡ３２１、送信先機器の上位アドレスであるＤ＿ＵＡ３２２、メッセージがルータ機器を経由する場合に経由した最新のルータ機器の下位アドレスであるＬＳＴ＿ＲＵＡ３２３、宛先機器グループアドレスであるＤ＿ＧＡ３２４、将来用エリアであるＦＵ３２５および３２７、データ部３３０に格納されるデータのサイズであるＤＡＴＡ＿ＳＩＺＥ３２６が格納される。なお、宛先機器グループアドレスであるＤ＿ＧＡ３２４には、例えば、隣接ルータ機器を指定する識別子が格納される。また、データ部３３０には、アプリケーション５１、５２あるいは通信ミドルウェア６０によって処理されるデータが格納され、例えばアプリケーション５１，５２あるいは通信ミドルウェア６０がオブジェクト化されこのオブジェクトへのオブジェクトサービスを行う通信を行う際のデータが格納される。図１１に示すデータ部３３０の構成は、このときの一例を示したものであり、例えばオブジェクトサービスを識別するサービスコード３３１、送信元オブジェクト識別子３３２、要求メッセージであるか応答メッセージであるかを識別するＲ／Ｒフラグ３３３、将来用エリアＦＵ３３４、送信先オブジェクト識別子３３５、オブジェクトサービスを実行する際に必要なデータあるいはオブジェクトサービスを実行した結果であるサービス要求応答パラメータ３３６から構成される。
【００４６】
また、図１２は、機器あるいはルータ機器がネットワークに接続された際に、他の機器に対して稼動開始通知を行う稼動開始通知メッセージのフォーマットの一例を示す図である。稼動開始通知メッセージは、図１１で示したサービス要求応答パラメータ３３６以外は同様のフォーマットであるので、図１２にはサービス要求応答パラメータ３３６の構成を示している。サービス要求応答パラメータ３３６は、稼動開始した機器のベンダＩＤ３４１、製品ＩＤ３４２、シリアル番号３４３、機器状態３４４、機器種別３４５、機器アプリケーション数３４６、機器アプリケーション種別３４７、３４９、機器アプリケーション状態３４８、３５０から構成される。ベンダＩＤ３４１、製品ＩＤ３４２、シリアル番号３４３は、この組によってこの機器を全世界でユニークに（システム内でユニークに）識別するものであり、それぞれ、メーカの識別子、製品の識別子、製造シリアル番号である。機器状態３４４には、機器の稼動状態を格納し、例えば「１」は稼動開始、「２」は稼働中、「３」は障害停止中といった意味を持たせた値を格納する。機器種別３４５には、その機器の種別を一意に表すコードが格納され、例えば、冷蔵庫、エアコン、パソコン、パネルモニタといった機器のハードウェアの種別を表すコードが格納される。機器アプリケーション種別３４７、３４９には、その機器に搭載されるアプリケーションの種別を一意に表すコードが格納される。例えば、冷蔵庫であれば冷蔵庫制御プログラム、エアコンであればエアコン制御プログラムの種別を表すコードが格納される。例えば、アプリケーションをオブジェクト指向表現した場合には、オブジェクトのクラス識別子がこれに相当し、メッセージにはクラス識別子とインスタンス識別子とを格納する。機器アプリケーション状態３４８、３５０には、その機器に搭載されるアプリケーションの状態を示すコードが格納される。例えば、「０」は停止、「１」はイニシャル中、「２」は稼働中、「３」は障害停止中などといった意味を持たせ、このコードを格納しておく。なお、機器アプリケーション種別と機器アプリケーション状態とで１つの組を成し、これが機器アプリケーション数３４６で指定された組数分だけこのメッセージに格納されている。
【００４７】
次に、前述した機器５０、ルータ機器７０が具備する処理ブロックである送信部６１、受信部６２、ＡＰＩ変換部６３の処理内容について説明する。
【００４８】
まず機器５０、ルータ機器７０が具備する送信部６１について説明する。
【００４９】
送信部６１は、受信部６２あるいはＡＰＩ変換部６３から、宛先の機器を識別する上位アドレスと送信データと、場合に応じて経由先ルータ機器の下位アドレスとを含む送信要求を受け取り、これに基づいて送信メッセージを作成し、下位プロトコル処理部５３に対して送信要求を行うものである。図１３は、送信部６１の処理の流れを示す概略ＰＡＤ図である。送信部６１は、受信部６２あるいはＡＰＩ変換部６３から宛先機器の上位アドレスと送信するデータ（図１１に示すデータ部３３０）と、場合に応じて経由先ルータ機器の下位アドレスとを受け取り送信要求を受け付けると（ステップ２０１）、上位アドレスに含まれるNetID部により宛先サブネットの判定を行う（ステップ２０２）。宛先サブネット判定処理では、自サブネット宛であるか否かを判定し（ステップ２０３）、他サブネット宛である場合には転送先のルータ機器の上位アドレスをルーティングテーブル１２０を用いて取得する（ステップ２０４）。次に、アドレス変換テーブル１３０を用いて、宛先機器の上位アドレスから下位アドレスに変換する処理を行う（ステップ２０５）。ここでは、他サブネット宛の場合には、転送先ルータ機器の下位アドレスに変換する。なお、受信部６２あるいはＡＰＩ変換部６３から、経由先ルータ機器の下位アドレが与えられている場合には、ステップ２０４およびステップ２０５の処理は必要ない。次に、図１１に示した通信メッセージフォーマット３００に沿って送信メッセージを作成し（ステップ２０６）する。なお、ここでは上位プロトコルヘッダ部３２０を作成し、受け取ったデータ部３３０と接続する。また、ここでは、自機器がルータ機器である場合には、ＬＳＴ＿ＲＵＡ３２３エリアに自機器の下位アドレスをここに格納する。そして、下位プロトコル処理部５３に対して上位プロトコルヘッダ３２０とデータ３３０と、宛先の機器の下位アドレスＳＡと、送信元の自機器の下位アドレスＤＡとを渡し、送信要求を行う（ステップ２０７）。
【００５０】
次に、機器５０、ルータ機器７０が具備する受信部６２について説明する。
【００５１】
受信部６２は、下位プロトコル処理部５３から受信したメッセージ内容に基づいて受信処理を行うもので、４つの機能を備える。１つめは、例えば他の機器のオブジェクトに対してオブジェクトサービスの実行を要求する依頼応答通信のクライアント側の機能であり、送信部６１から送信した要求メッセージに対する応答のメッセージを受信する機能である。２つめは、同じく例えば他の機器のオブジェクトに対してオブジェクトサービスの実行を要求する依頼応答通信のサーバ側の機能であり、他の機器から送信された要求メッセージを受信する機能である。３つめは、ルータ機器における受信機能で、宛先機器へのメッセージの転送や、経路制御を行う機能である、４つめは、後述の稼動開始通知メッセージを受信する機能である。このうち、機器５０は、必要に応じて上記１つめの機能および2つめのおよび４つめの機能を備えているものとする。また、ルータ機器７０は、上記１つめから３つめまでの機能を備えているものとする。
【００５２】
図１４、１５、１６、１７，１８は、受信部６２の処理の流れを示す概略ＰＡＤ図である。上記４つの機能は、図１４においてそれぞれステップ２２０、ステップ２３０、ステップ２４０、ステップ２５０での処理に対応している。図１４を用いて受信部６２の処理の概要を説明する。ステップ２１１は、ラベルである。受信部６２は、ステップ２１２によりメッセージを受信すると、次に、受信したメッセージの内容に応じて上述のステップ２２０、ステップ２３０、ステップ２４０、ステップ２５０の処理を行った後、ステップ２１３によりラベルＡのステップ２１１に戻る。以下、ステップ２２０、ステップ２３０、ステップ２４０、ステップ２５０それぞれの詳細処理を説明する。
【００５３】
まず、ステップ２２０の依頼応答通信のクライアント側機能における受信処理について図１５を用いて説明する。まずステップ２２１では、メッセージが自機器宛の応答であるか否かを判定し、自機器宛であればステップ２２２に進む。ステップ２２２では、まず自機器で管理しているアプリケーション５１〜５２宛であるかあるいは通信ミドルウェア６０宛であるかを判定し、アプリケーション宛である場合には宛先アプリケーションに渡すためメッセージをＡＰＩ変換部に出力し（ステップ２２３）、通信ミドルウェア宛である場合にはメッセージに含まれる応答データを取り込み（ステップ２２４）、その後、ステップ２２５により図１４のラベルＡ（ステップ２１１）に戻る。
【００５４】
次に、ステップ２３０に関連する要求メッセージの受信処理（依頼応答通信のサーバ側処理）について図１６を用いて説明する。ステップ２３１でまずメッセージが自機器宛であるか否かを判定し、自機器宛であればステップ２３２に進む。ステップ２３２では、まず自機器で管理しているアプリケーション５１〜５２宛であるかあるいは通信ミドルウェア６０宛であるかを判定し、アプリケーション宛である場合には、ヘッダ情報を記憶するとともに、宛先アプリケーションに出力するためＡＰＩ変換部６３に引き渡し（ステップ２３２）、通信ミドルウェア宛である場合にはメッセージに要求された内容の処理を行なって（ステップ２３４）、データを取得し（ステップ２３５）、図１１のデータ部３３０のフォーマットにそって応答データを作成し（ステップ２３５）、応答先を決定し送信部６１に対して送信要求し（ステップ２３６）、図１４のラベルＡへ戻る（ステップ２３７）。なお、応答先の決定では、要求メッセージに含まれる送信元機器の上位アドレス（図１１のＳ＿ＵＡ部３２１）を応答先の機器の上位アドレスとし、またルータ機器を経由してメッセージを返す場合には、要求メッセージが経由した直近のルータ機器の下位アドレスを要求メッセージから取得し（図１１のＬＳＴ＿ＲＵＡ部）、これを送信部６１に渡すものとする。ステップ２３４およびステップ２３５において、通信ミドルウェアに対して要求される内容には、例えば、通信ミドルウェアが保持しているテーブルへのデータの書き込み要求や読み出し要求がある。その具体的な内容については、後述する。
【００５５】
次に、ステップ２４０に関連するルータ処理について図１７を用いて説明する。ステップ２４１でまずメッセージが自サブネットの機器宛であるか否かを判定し、自サブネット機器宛であればステップ２４２に進み、他サブネット機器宛であればステップ２４７に飛ぶ。ステップ２４２では宛先機器に代わって代理応答可能な問い合わせであるか否かを判定し、Ｙｅｓである場合には、要求された内容に基づき代理応答で返すデータを取得し（ステップ２４３）、図１１のデータ部３３０のフォーマットにそって応答データを作成し（ステップ２４４）、応答先を決定し送信部６１に対して送信要求を行う（ステップ２４５）。また、ステップ２４２においてＮｏと判定された場合には宛先機器に対してメッセージ転送を行うためメッセージを送信部６１に転送する（ステップ２４６）。またステップ２４１においてＮｏと判定された場合には、宛先機器に対してメッセージ転送を行うため送信部６１に対してメッセージを転送する（ステップ２４７）。そして、ステップ２４８で、図１４のラベルＡに戻る。なお、ステップ２４２における代理応答可能な問い合わせであるか否かの判定は、宛先機器に対する自機器情報テーブル１１０に格納されているデータに対する問い合わせであり、かつルータ機器においてこれらの機器の情報が機器情報テーブル１４０に格納されているものであるか否かによって判定し、ステップ２４３ではこの機器情報テーブル１４０に格納されている情報から要求されたデータを取り出す。なお、メッセージ中の宛先機器グループアドレスであるＤ＿ＧＡ３２４に、隣接ルータ機器を指定する識別子が格納されている場合には、転送処理は行わず、データ部３３０に要求されている処理を実行し、要求元に応答メッセージを返す処理を行うものとする。
【００５６】
次に、ステップ２５０に関連する稼動開始通知メッセージ受信処理について図１８を用いて説明する。まずこのメッセージを受信するか否かを判定し（ステップ２５１）、ＹｅｓであればＡＰＩ変換部６３に渡す（ステップ２５２）。
【００５７】
次に、ＡＰＩ変換部６３の処理について説明する。ＡＰＩ変換部６３は、アプリケーション５１〜５２の要求に応じて他の機器への依頼を出し応答を受け取る機能と、他機器からの要求をアプリケーション５１〜５２に引き渡しこの応答を受け取り機能と、特に、他の機器の識別子と上位アドレスとの対応付けを管理する機能と、ＡＰＩ変換テーブル１００の内容の変更を行う機能を司る。このうち、他の機器の識別子と上位アドレスとの対応付けを管理する機能に本発明の趣旨があるので、これについて説明する。すなわち、ＡＰＩ変換部は、ＡＰＩ変換テーブル１００を用いてこの機能を実現し、アプリケーション５１〜５２によってある機器に対してデータの送信要求を受け取る際に、ＡＰＩ変換テーブル１００の機器識別子部１０１に格納されている機器識別子によって宛先機器の指定を受け、ＡＰＩ変換テーブル１００を用いて宛先機器の上位アドレスを得て、これにより送信部６１に送信要求を行う。
【００５８】
次に、ＡＰＩ変換部６３が行う、ＡＰＩ変換テーブル１００の内容の変更を行う機能について説明する。図１９は、稼動開始通知メッセージを受信した際にＡＰＩ変換テーブル１００の内容を変更する際の処理を説明したＰＡＤ図である。稼動開始通知メッセージを受信すると（ステップ２６１）、設置位置変更検出処理を開始し（ステップ２６２）、稼動開始メッセージに含まれる送信元の機器の上位アドレスと、ＡＰＩ変換テーブル１００内に一致する上位アドレスが登録されているか否かを判定し（ステップ２６３）、Ｙｅｓである場合には、稼動開始メッセージに含まれる送信元の機器と、ＡＰＩ変換テーブルに登録されている機器が同一であるか否かを判定する（ステップ２６４）。ステップ２６４の判定は、稼動開始メッセージに含まれるベンダＩＤと製品ＩＤとシリアル番号の組が、ＡＰＩ変換テーブル１００に登録されているか否かによって行う。ステップ２６４の判定がＹｅｓの場合にＡＰＩ変換テーブル１００の存在フラグ１０６をオンとし（ステップ２６５）、Ｎｏの場合には存在フラグ１０６をオフとする（ステップ２６６）。また、ステップ２６３の判定でＮｏの場合には、同様に稼動開始メッセージに含まれるベンダＩＤと製品ＩＤとシリアル番号の組が、ＡＰＩ変換テーブル１００に登録されているか否かによって、稼動開始メッセージに含まれる送信元の機器と、ＡＰＩ変換テーブルに登録されている機器が同一であるか否かを判定し（ステップ２６７）、Ｙｅｓの場合には稼動開始メッセージのＳ＿ＵＡ部３２２に格納される送信元機器の上位アドレスをＡＰＩ変換テーブル１００の上位アドレス部１０２に書き込み変更し（ステップ２６８）、存在フラグ１０６をオンとする（ステップ２６９）。また、ステップ２６５およびステップ２６８では、稼動開始メッセージの送信元機器が自サブネットに接続される機器である場合には、稼動開始メッセージのＳＡ部３１１に格納される送信元機器の下位アドレスを図９のアドレス変換テーブル１３０に格納する。
【００５９】
以上、本発明による機器およびルータ機器の構成を説明した。
【００６０】
次に、図２に示すシステム構成において機器３から機器６に対して機器種別の問い合わせを行う通信を例に、本発明の機器およびルータ機器の処理の全体的な流れを説明する。図２０は、ルータ機器Ａ、ルータ機器Ｂ、ルータ機器Ｃ（それぞれルータ機器１１、１２、１３）におけるルーティングテーブルの内容をそれぞれの機器について示したものである（ルーティングテーブル１００１、１００２、１００３）。図２１は、同じくルータ機器Ａ、ルータ機器Ｂ、ルータ機器Ｃ（それぞれルータ機器１１、１２、１３）におけるアドレス変換テーブルの内容をそれぞれの機器について示したものである（アドレス変換テーブル１０１１〜１０１６）。なお、アドレス変換テーブルは、ルータ機器に接続されるサブネット毎に設けられるので、それぞれのルータ機器に２つのアドレス変換テーブルがある。図２２は、同じくルータ機器Ａ、ルータ機器Ｂ、ルータ機器Ｃ（それぞれルータ機器１１、１２、１３）における機器情報テーブルの内容をそれぞれの機器について示したものである（機器情報変換テーブル１０２１〜１０２６）。なお、機器情報変換テーブルについても、ルータ機器に接続されるサブネット毎に設けられるので、それぞれのルータ機器に２つの機器情報変換テーブルがある。いま、機器３には、図６で示す内容のＡＰＩ変換テーブル１００と、図８に示す内容のルーティングテーブル１２０と、図９に示す内容のアドレス変換テーブル１３０が保持されているものとする。また、機器６には、図７で示す内容の自機器情報テーブル１１０が保持されているものとするが、この内容の一部は既に説明した図２２のルータ機器Ｂおよびルータ機器Ｃの機器情報テーブル１０２４および１０２５にも保持されているものとする。
【００６１】
まず機器３において、アプリケーションからＡＰＩ変換部６３に対して、宛先機器として機器６の識別子である“エアコン２”と、図１１のデータ部３３０のフォーマットに沿った問い合わせデータが引き渡される。ＡＰＩ変換部６３では、引き渡された機器識別子“エアコン２”と図６に示すＡＰＩ変換テーブル１００とから、宛先機器の上位アドレス0h3002を得、送信部６１に対して送信要求が為される。送信部６１では、宛先機器の上位アドレス0h3002から宛先サブネット"3"を得、図８に示すルーティングテーブル１２０から経由先ルータ機器の上位アドレス0h20AAを得、さらに図９に示すアドレス変換テーブル１２０を用いてルータ機器の下位アドレスを得、図１１に示す上位プロトコルヘッダフォーマットにしたがってメッセージを作成し、下位プロトコル処理部５３に対して送信要求すると、ネットワーク２１には図１１に示すフォーマットのメッセージがルータ機器１２に対して伝送される。
【００６２】
次に、ルータ機器１２では、このメッセージを受信すると、受信部６２では、図１７に示すルータ処理を開始し、まずメッセージの宛先サブネットが３であることから自サブネット宛であることを確認し、次に代理応答可能であるか否かを判定する。すなわち、この場合、問い合わせ内容が機器６に対する機器種別の問い合わせであることをメッセージ内容から認識し、さらにこの内容が自身が保持する機器情報テーブル１０２４に含まれていることを認識し、代理応答可能であることから要求された機器６（機器C2）の機器種別“５”を読み出し、図１１のデータ部３３０のフォーマットに沿って応答データを作成し、送信部６１に送信要求を行う。なお、このとき、送信先は要求元の機器３とし、要求メッセージに含まれていた送信元機器上位アドレス0h2003を宛先上位アドレスとする。次に送信部６１では、宛先機器の上位アドレス0h2003から宛先サブネット"２"を得、図２０に示すルーティングテーブル１００２から自サブネット宛であることを確認し（値“０”は自サブネット宛であることを示す）、さらに図２１に示すアドレス変換テーブル１０１３を用いて送信先機器３（機器B1）の下位アドレスを得、図１１に示す上位プロトコルヘッダフォーマットにしたがってメッセージを作成し、下位プロトコル処理部５３に対して送信要求すると、応答メッセージが機器３に対して送信される。その後、機器３では図１５に示す手順にて応答メッセージの受信処理が為され、送信元のアプリケーションに応答データとして機器６の機器種別が返される。
【００６３】
以上説明した本発明によれば、例えば機器６が接続されるネットワークの伝送信頼性に左右されることなく機器６に関する情報を他の機器が取得することができる。すなわち、伝送の信頼性の低いネットワークを用い、また機器６が一時的に隠れ端末となったとしても、また機器６が常時通信可能状態であるとは限らない場合であっても、どのような機器種別の機器がシステムに存在するのかを把握することを、より確実に行うことができる。さらに要求対象機器での応答処理が不要であるのでこの機器の負荷上昇を避けることができ、また伝送失敗に伴う再送処理の必要性が低くなるのでネットワークおよびルータ機器の負荷上昇を抑えることができる。本発明が対象としている電灯線や無線を用いたホームシステムやビルシステムにおいては、隠れ端末やフェージングやノイズの影響によってネットワークの伝送信頼性が低く、さらに機器が常時通信可能であるとは限らないため、本発明は特に有功となる。
【００６４】
次に、このような機器およびルータ機器からなる分散システムにおいて、ある機器が新規に接続される際の処理内容について、図２において機器B1が新規に追加される場合を例にして具体的に説明する。
【００６５】
図２３は、ある機器が新規に追加される際の処理の流れを示したＰＡＤ図である。以下、図２３を、図２において機器３（機器B1）が追加されるのを具体例にしてその処理の流れについて説明する。まず、機器３をネットワークに接続し電源を投入する（ステップ４０１）。次に、機器３の下位アドレスを下位通信プロトコル毎に定められる方法にて設定する（ステップ４０２）。次に、機器３は、上位アドレスのNodeID部を取得する（ステップ４０３）。この取得方法には、例えば、下位アドレスをある関数によって変換して取得する方法などのがある。次に、機器３は、下位通信プロトコルの同報通信を用いて他の機器に対して自サブネットのNetIDを問い合わせ取得する（ステップ４０４）。この問い合わせは、例えば、下位通信プロトコルの同報通信を用いて隣接ルータ機器の上位アドレスを問い合わせて取得し（図２ではルータ機器１１および１２）（ステップ４０５）、この中の１つのルータ機器（例えばルータ機器１１）に対してNetIDを問い合わせる（ステップ４０６）ことによって実現できる。また、別の方法としては、図１１に示すメッセージフォーマットにしたがって、宛先下位アドレスＤＡに同報アドレスを設定し、宛先上位アドレスに隣接ルータ機器のグループアドレスを設定し、自サブネットのNetIDを問い合わせるメッセージを送信することによっても実現でき、このときの受信処理は、図２においては、ルータ機器１１および１２によって行われ、それぞれからNetID=2が返され、隣接ルータ機器のアドレスもメッセージから取得できる。次に機器３では、ステップ４０３およびステップ４０４によって取得した自機器の上位アドレスおよび下位アドレスを自機器情報テーブル１１０に設定する（ステップ４０７）。次に、機器３は、自機器上のアプリケーション５１〜５２に対してその種別およびその状態を問い合わせ、これを自機器種別とともに自機器情報テーブル１１０に設定する（ステップ４０８）。次に、機器３では、ステップ４０４で取得した隣接ルータ機器の上位アドレスを用いてすべての隣接ルータ機器に対して（ステップ４０９）、隣接ルータ機器の機器情報テーブル１４０およびアドレス変換テーブル１３０に機器３の下位アドレス、上位アドレス、機器種別、機器アプリケーション種別を、図１１のメッセージを送信することによって登録する処理を行う（ステップ４１０）。次に、機器３は、隣接ルータ機器のルーティングテーブル１２０の内容を読み出し（ステップ４１１）、すべての隣接ルータ機器からのルーティングテーブル１２０の内容を読み出しが終わると、機器３が保持するルーティングテーブル１２０の作成を行う（ステップ４１２）。すなわち、ここでは、システム内に存在するすべてのサブネットのNetIDを取得するとともに、このサブネット宛に送信するには、どの隣接ルータ機器に対して送信するべきかを判断しテーブル作成を行う。具体的には、いま、機器３にとっての隣接ルータ機器であるルータ機器１１および１２に保持されているルーティングテーブル１２０の内容は図２０に示すルーティングテーブル１００１および１００２であり、この内容からそれぞれのNetID（“２”〜“５”）に対して隣接ルータ機器の上位アドレスを、以下の規則によって取得し��例えば図８に示す内容のルーティングテーブル１２０を得る。
【００６６】
規則１：すべての隣接ルータでルータアドレスが設定されていない場合には、“０”を設定する。
【００６７】
規則２：１つの隣接ルータを除いて他のすべての隣接ルータでルータアドレスが設定されている場合には、その１つの隣接ルータの上位アドレスを設定する。
【００６８】
規則３：すべての隣接ルータでルータアドレスが設定されている場合には、その中から隣接ルータ機器アドレスを選択し、これを設定する。
【００６９】
すなわち、図２０の例では、NetID=2については規則１により“０”を図８に示すように設定し、NetID=3については規則２によりルータ機器Bすなわち上位アドレス0h20AAを図８に示すように設定し、NetID=4については規則３によりルータ機器Bすなわち上位アドレス0h20AAを図８に示すように設定し、NetID=5については規則２によりルータ機器Ａすなわち上位アドレス0h20BBを図８に示すように設定する。次に、機器３は、ネットワークへの接続処理が完了し、図１２に示すメッセージフォーマットにしたがって稼動開始通知メッセージを作成し、他の機器に対して同報送信する（ステップ４１３）。
【００７０】
以上のような処理によって、機器がネットワークに接続された際のルーティング情報の自動設定がなされ、ユーザは様々なルーティング設定を行わなくてよいプラグアンドプレイが実現できる。
【００７１】
なお、このメッセージを受信した他の機器では、新たな機器がネットワークに追加されたタイミングでその追加を検出でき、稼動開始通知メッセージの内容により、接続機器の種別やアプリケーション種別を把握することができ、これにより、追加機器の種別やアプリケーション種別を直接追加機器に対して問い合わせる必要がなくなるので、接続時の問い合わせ集中によるネットワークの負荷上昇を抑えることができる。また、稼動開始通知メッセージを受信した各々の機器では、図１３に示した処理を行い、ＡＰＩ変換テーブル１００の変更処理が行われ、例えば、機器が移動してそのアドレスが変更した場合でもアプリケーションはその違いを意識することなく以前用いていた機器識別子をその機器の識別子として継続して使用することができる。
【００７２】
次に、分散システムに新たなネットワークを接続する際の処理、すなわちあるルータ機器が新規に接続される際の処理内容について、図２においてルータ機器Cが新規に追加される場合を例にして具体的に説明する。
【００７３】
図２４は、あるルータ機器が新規に追加される際の処理の流れを示したＰＡＤ図である。以下、図２４を、図２において機器１３（機器C）が追加されるのを具体例にしてその処理の流れについて説明する。なお、ネットワーク２３には図２で示している機器８〜９の電源は投入されておらず通信不可能な状態であることを前提とする。まずルータ機器１３をネットワーク２２に接続し、電源を投入する（ステップ５０１）。次に、機器１３のネットワーク２２に接続されている側の下位アドレスを下位通信プロトコル毎に定められる方法にて設定する（ステップ５０２）。次に、ルータ機器１３は、ネットワーク２２に接続されている側の上位アドレスのNodeID部を取得する（ステップ５０３）。次に、ルータ機器１３は、下位通信プロトコルの同報通信を用いて他の機器に対してネットワーク２２に接続されている側の自サブネットのNetIDを問い合わせ取得する（この例の場合“３”）（ステップ５０４）。その後のステップ５０５〜５０６の処理は、図２３で説明したステップ４０５〜４０６の処理と同様である。次に、ルータ機器１３は、接続サブネット（この例の場合“３”）に接続されている機器の上位アドレスおよび下位アドレスのリストを取得する（ステップ５０７）。この処理は、サブネットNetID=3に他の隣接ルータ機器が接続されている場合には、この隣接ルータ機器からアドレス変換テーブルの内容を取得することによって行い、他の隣接ルータ機器が接続されていない場合には、下位通信プロトコルの同報通信を用いるなどして各々の機器に対してその上位アドレスおよび下位アドレスを問い合わせて取得する。次にルータ機器１３は、新設のネットワーク２３側のサブネットの識別子NetIDを取得する処理を開始し（ステップ５０８）、まず１つの隣接ルータ機器に対して使用中のNetIDのリストを問い合わせて取得し（ステップ５０９）、空きとなっている値を新設のネットワーク２３側のサブネットの識別子NetIDとして決定し（この例の場合“４”）、これを用いて新設のサブネット側の上位アドレスを設定する（ステップ５１０）。次に、ルータ機器１３は、すべての隣接ルータ機器に対して（ステップ５１１）、隣接ルータ機器の機器情報テーブルおよびアドレス変換テーブルに自身（ルータ機器１３）の上位アドレス、下位アドレス、機器種別を登録要求し（ステップ５１２）、さらに隣接ルータ機器のルーティングテーブル１２０の内容を読み出す（ステップ５１３）。ルータ機器１３は、すべての隣接ルータ機器からのルーティングテーブル１２０の内容を読み出しが終わると、機器３が保持するルーティングテーブル１２０の作成を行う（ステップ５１４）。なお、ステップ５１４の処理は、図２３におけるステップ４１３の処理と同様であるので詳細説明は割愛する。次に、ルータ機器１３は、すべての隣接ルータ機器に対して（ステップ５１５）、新規サブネットNetID=4へのルーティング情報を隣接ルータ機器に設定するよう要求する（ステップ５１６）。なお、ステップ５１６の要求では、隣接ルータ機器では更に下流の（新規接続ルータ機器１３から受信したサブネット側でないサブネット側の）隣接ルータ機器に対して同様の設定要求を行い、結果的にすべてのルータ機器に対して新規ルー���機器の接続が通知され、さらにそのルーティング情報も設定される。次に、ルータ機器１３は、図１２に示すメッセージフォーマットにしたがって稼動開始通知メッセージを作成し、他の機器に対して同報送信する（ステップ５１７）。
【００７４】
以上のような処理によって、ルータ機器がネットワークに接続された際のルーティング情報の自動設定がなされ、ユーザはネットワークを新規接続する際の様々なルーティング設定を行わなくてよいプラグアンドプレイが実現できる。すなわち、これまでの説明では、各々のルータ機器には図８〜１０や図２０〜２２に示したような様々なテーブルの内容が既に設定されていることを前提にルーティング動作等の処理内容を説明してきたが、以上説明した機器やルータ機器のネットワークへの接続の際の自動設定によってこれらのテーブル内容が作成されるため、ユーザが様々な設定を行う必要がないのである。
【００７５】
なお、以上説明した方法では、各々のルータ機器に保持されてる機器情報テーブルの内容を削除することは考慮されていなかった。すなわち、ある機器がサブネット間を移動した場合には、各々のルータ機器に保持されてる機器情報テーブルの内容も変更すべきであり、以降では、このための処理について説明していく。図２５は、この機能を実現する際にルータ機器に保持される機器情報テーブルの構成を示した図である。図２５において、機器情報テーブル６００は、上位アドレス６０１、機器種別６０２、機器アプリケーション種別６０３、ベンダＩＤ６０４、製品ＩＤ６０５、シリアル番号６０６、存在フラグ６０７とで構成される、機器情報テーブル６００は、上位アドレス６０１、機器種別６０２、機器アプリケーション種別６０３は、図１０で示した機器情報テーブル１４０と同様のものであり、ベンダＩＤ６０４、製品ＩＤ６０５、シリアル番号６０６、存在フラグ６０７は、図６で示したＡＰＩ変換部１００に含まれるものと同様のものである。このテーブルを持つルータ機器では、ある新規接続された機器からの稼動開始通知メッセージを受信すると、その機器がルータ機器に接続されたサブネットに接続されているものである場合には、その機器からベンダＩＤ、製品ＩＤ、シリアル番号を読み出し自身の機器情報テーブルに登録するとともに、下流の隣接ルータ機器に対してこの情報を含むメッセージを送信する。このメッセージを受信した各々の隣接ルータ機器では、メッセージに含まれるベンダＩＤ、製品ＩＤ、シリアル番号と同一の機器が自身の機器情報テーブルに登録されているか否かを判定し、登録されていればこれを削除し、登録されていなければさらにこのメッセージを下流の隣接ルータ機器に対して送信する。以上のような処理によって、ある機器がサブネット間を移動した場合にも、各々のルータ機器に保持されてる機器情報テーブルの内容も自動的に変更される。このように、機器の移動前後で、ルータ機器での移動前のこの機器のルーティング情報を即座に削除し、ルーティングテーブルの省容量化、正確化を図ることができる。
【００７６】
【発明の効果】
本発明によって得られる効果の代表的なものとしては以下のようなものがある。
【００７７】
（１）伝送の信頼性の低いネットワークを用い、また隠れ端末が存在しても、また機器が常時通信可能状態であるとは限らない場合であっても、どのような機器がシステムに存在するのかを把握することを、より確実に、またこのためのネットワークや機器の負荷上昇を抑えながら実現できる。
【００７８】
（２）機器をネットワークに接続する際のルーティング情報の自動設定によってユーザの設定の手間を無くすことができる。
【００７９】
（３）ネットワークを新規に増設する際のネットワークおよびルーティング情報の自動設定によってユーザの設定の手間を無くすことができる。
【００８０】
（４）機器の移動、すなわちアドレスの変化を低負荷で検出し、この機器にアクセスするアプリケーションに対して移動前後で同一識別子でアクセスできるようになる。
【００８１】
（５）機器の移動前後で、ルータ機器での移動前のこの機器のルーティング情報を即座に削除し、ルーティングテーブルの省容量化、正確化を図ることができる。
【図面の簡単な説明】
【図１】本発明が適用される一例であるシステム構成の一例を示す図である。
【図２】本発明が適用される一例である図１のシステム構成をモデル化した図である。
【図３】上位アドレスの構成の一例を示す図である。
【図４】機器の内部構成の一例を示す図である。
【図５】ルータ機器の内部構成の一例を示す図である。
【図６】ＡＰＩ変換テーブルの構成の一例を示し、機器Ａ１にて保持される内容の一例を示す図である。
【図７】自機器情報テーブルの構成の一例を示し、機器Ｃ１にて保持される内容の一例を示す図である。
【図８】ルーティングテーブルの構成の一例を示し、ルータ機器Ｂにて保持される内容の一例を示す図である。
【図９】アドレス変換テーブルの構成の一例を示し、機器Ｂ１にて保持される内容の一例を示す図である。
【図１０】機器情報テーブルの一例を示す図である。
【図１１】依頼応答通信の際に機器間で伝送されるメッセージのフォーマットの一例を示す図である。
【図１２】稼動開始通知メッセージのフォーマットの一例を示す図である。
【図１３】送信部６１の処理の流れの一例を示すＰＡＤ図である。
【図１４】受信部６２の処理の全体の流れを示すＰＡＤ図である。
【図１５】受信部６２の応答メッセージ受信処理の流れを示すＰＡＤ図である。
【図１６】受信部６２の要求メッセージ受信処理の流れを示すＰＡＤ図である。
【図１７】受信部６２のルータ処理の流れを示すＰＡＤ図である。
【図１８】受信部６２の稼動開始通知メッセージ受信処理の流れを示すＰＡＤ図である。
【図１９】ＡＰＩ変換部６３の稼動開始通知メッセージ受信処理の流れを示すＰＡＤ図である。
【図２０】図２のシステム構成における各ルータ機器に保持されるルーティングテーブルの内容を示す図である。
【図２１】図２のシステム構成における各ルータ機器に保持されるアドレス変換テーブルの内容を示す図である。
【図２２】図２のシステム構成における各ルータ機器に保持される機器情報テーブルの内容を示す図である。
【図２３】機器接続時における接続処理の流れを示すＰＡＤ図である。
【図２４】ルータ機器接続時における接続処理の流れを示すＰＡＤ図である。
【図２５】機器情報テーブルの別の一例を示す図である。
【符号の説明】
１〜９…機器、１１〜１３…ルータ機器、２１〜２４…ネットワーク、３１…サブネット識別子、３２…ノード識別子、５０…機器、５１〜５２…アプリケーション、５３…下位プロトコル処理部、６０…通信ミドルウェア、６２…受信部、６３…ＡＰＩ変換部、７０…ルータ機器、１００…ＡＰＩ変換テーブル、１１０…自機器情報テーブル、１２０…ルーティングテーブル、１３０…アドレス変換テーブル、１４０…機器情報テーブル、３００…メッセージフォーマット。
【図１】
0003823585.tif 000002
【図２】
0003823585.tif 000003
【図３】
0003823585.tif 000004
【図４】
0003823585.tif 000005
【図５】
0003823585.tif 000006
【図６】
0003823585.tif 000007
【図７】
0003823585.tif 000008
【図８】
0003823585.tif 000009
【図９】
0003823585.tif 000010
【図１０】
0003823585.tif 000011
【図１１】
0003823585.tif 000012
【図１２】
0003823585.tif 000013
【図１３】
0003823585.tif 000014
【図１４】
0003823585.tif 000015
【図１５】
0003823585.tif 000016
【図１６】
0003823585.tif 000017
【図１７】
0003823585.tif 000018
【図１８】
0003823585.tif 000019
【図１９】
0003823585.tif 000020
【図２０】
0003823585.tif 000021
【図２１】
0003823585.tif 000022
【図２２】
0003823585.tif 000023
【図２３】
0003823585.tif 000024
【図２４】
0003823585.tif 000025
【図２５】
0003823585.tif 000026