(57)【要約】【課題】エコーネットアドレス等の特殊な識別情報を用いることなく、ノードの一意性を担保する。【解決手段】ＨＥＭＳコントローラ１００は、ノードのＭＡＣアドレスとＩＰアドレスとを関連付けたノードリストＬ５を記憶している。ＨＥＭＳコントローラ１００は、受信したパケットがブロードバンドルータ２を超えて送信されてきたものか否かを判断する。ＨＥＭＳコントローラ１００は、ブロードバンドルータ２を超えて送信されてきたものではない場合、パケットに含まれているＩＰアドレスが、ノードリストＬ５においてパケットに含まれているＭＡＣアドレスと同一のＭＡＣアドレスに関連付けられているＩＰアドレスと一致するか否かを判断し、一致しない場合には、ノードリストＬ５においてパケットに含まれているＭＡＣアドレスと同一のＭＡＣアドレスに関連付けられているＩＰアドレスを、パケットに含まれているＩＰアドレスで更新する。【選択図】図４
2015149528.tif 000002
【特許請求の範囲】
【請求項１】
ルータによって構成されたサブネットに含まれるコントローラであって、
各々が固有の識別情報と可変の識別情報とを有する複数のノードと通信するための通信手段と、
前記複数のノードのうち、前記サブネットに参加しているノードを制御するための制御手段と、
前記サブネットに参加しているノードの前記固有の識別情報と前記可変の識別情報とを関連付けた第１のデータを記憶する記憶手段とを備え、
前記サブネットに参加しているノードの可変の識別情報は、前記ルータによって割り当てられ、
前記制御手段は、
前記固有の識別情報と前記可変の識別情報とを含む第２のデータが受信された場合、前記第２のデータが、前記ルータを越えて送信されてきたものか否かを判断する第１の判断手段と、
前記第２のデータが前記ルータを越えて送信されてきたものではない場合に、前記第２のデータに含まれている可変の識別情報が、前記第１のデータにおいて前記第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報と一致するか否かを判断する第２の判断手段と、
前記可変の識別情報が一致しないと判断されたことに基づき、前記第１のデータにおいて前記第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報を、前記第２のデータに含まれている可変の識別情報で更新する更新手段とを含む、コントローラ。
【請求項２】
前記第１の判断手段は、前記第２のデータを受信した場合、予め定められた第３のデータを前記第２のデータの送信元のノードに送信することによって、前記第２のデータが前記ルータを越えて送信されてきたものか否かを判断する、請求項１に記載のコントローラ。
【請求項３】
前記制御手段は、予め定められた時間間隔で自発的にノードを探索する探索手段をさらに備え、
前記第１の判断手段は、前記自発的なノードの探索に基づくことなく前記第２のデータを受信した場合、前記第３のデータを前記第２のデータの送信元のノードに送信する、請求項２に記載のコントローラ。
【請求項４】
ルータによって構成されたサブネットであって、
コントローラとルータとを備え、
前記コントローラは、
各々が固有の識別情報と可変の識別情報とを有する複数のノードと通信するための通信手段と、
前記複数のノードのうち、前記サブネットに参加しているノードを制御するための制御手段と、
前記サブネットに参加しているノードの前記固有の識別情報と前記可変の識別情報とを関連付けた第１のデータを記憶する記憶手段とを備え、
前記サブネットに参加しているノードの可変の識別情報は、前記ルータによって割り当てられ、
前記制御手段は、
前記固有の識別情報と前記可変の識別情報とを含む第２のデータが受信された場合、前記第２のデータが、前記ルータを越えて送信されてきたものか否かを判断する第１の判断手段と、
前記第２のデータが前記ルータを越えて送信されてきたものではない場合に、前記第２のデータに含まれている可変の識別情報が、前記第１のデータにおいて前記第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報と一致するか否かを判断する第２の判断手段と、
前記可変の識別情報が一致しないと判断されたことに基づき、前記第１のデータにおいて前記第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報を、前記第２のデータに含まれている可変の識別情報で更新する更新手段とを有する、サブネット。
【請求項５】
ルータによって構成されたサブネットに含まれるコントローラにおける情報処理方法であって、
前記コントローラは、各々が固有の識別情報と可変の識別情報とを有する複数のノードと通信可能であり、
前記情報処理方法は、
前記複数のノードのうち、前記サブネットに参加しているノードを制御するステップと、
前記サブネットに参加しているノードの前記固有の識別情報と前記可変の識別情報とを関連付けた第１のデータを記憶するステップとを備え、
前記サブネットに参加しているノードの可変の識別情報は、前記ルータによって割り当てられ、
前記情報処理方法は、
前記固有の識別情報と前記可変の識別情報とを含む第２のデータが受信された場合、前記第２のデータが、前記ルータを越えて送信されてきたものか否かを判断するステップと、
前記第２のデータが前記ルータを越えて送信されてきたものではない場合に、前記第２のデータに含まれている可変の識別情報が、前記第１のデータにおいて前記第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報と一致するか否かを判断するステップと、
前記可変の識別情報が一致しないと判断されたことに基づき、前記第１のデータにおいて前記第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報を、前記第２のデータに含まれている可変の識別情報で更新するステップとをさらに備える、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラ、サブネット、および情報処理方法に関する。
【背景技術】
【０００２】
従来、家庭内の機器を制御するためのＥＣＨＯＮＥＴ（登録商標）などの通信プロトコルが知られている。ＥＣＨＯＮＥＴでは、ＮｏｄｅＩＤとして付与されるアドレス（以下、「エコーネットアドレス」と称する）を用いて、通信機器が識別される。エコーネットアドレスは、ルータによって付与される。エコーネットアドレスは１バイトであるため、１つのサブネットにおいては２５６台までの通信機器しか登録できない。２５６台以上の通信機器をネットワークに接続するためには、当該ネットワークを複数のサブネットに分割する必要がある。
【０００３】
特許文献１には、サーバに接続されるとともに、ＥＣＨＯＮＥＴに従った通信を行なう通信端末が開示されている。特許文献１は、１つのサブネットに、多数のノードを接続することを課題としている。この課題を達成するため、上記通信端末の処理部は、パケットを受信すると、受信したパケットの送信元エコーネットアドレスが、通信端末に付与された自己のエコーネットアドレスと同一の場合、受信したパケットのＩＰアドレスおよびハードウエアアドレスを対応付けて、重複アドレステーブル記憶部に記憶する。処理部は、通信端末がサーバと通信する際、重複アドレステーブル記憶部にデータが格納されていない場合、自己のエコーネットアドレスを用いてサーバと通信する。処理部は、重複アドレステーブル記憶部にデータが格納されている場合、重複アドレステーブル記憶部に記憶されたＩＰアドレスを用いてパケットを送信し、応答がなかった場合、自己のエコーネットアドレスを用いてサーバと通信し、応答があった場合、新たに自己のエコーネットアドレスを取得して、新たに取得したエコーネットアドレスを用いてサーバと通信する。
【０００４】
また、従来、非特許文献１に示すように、ＥＣＨＯＮＥＴの通信ミドルウェア部分を作り直したＥＣＨＯＮＥＴ Ｌｉｔｅ（登録商標）が知られている。ＥＣＨＯＮＥＴ Ｌｉｔｅでは、ＥＣＨＯＮＥＴにおいて規格対象になっていた物理層およびＭＡＣ層等を規格の対象外としている。
【０００５】
また、非特許文献２の「２．２ ＥＣＨＯＮＥＴ Ｌｉｔｅ ネットワーク構成」には、ＥＣＨＯＮＥＴ Ｌｉｔｅのネットワーク構成モデルが図示（図２−３）されているとともに、「サブネット内では、伝送メディアにおけるレイヤ２の通信を実現するアドレス（以下、本規格においては「ＭＡＣアドレス」と呼ぶ）、もしくはＩＰアドレスを、サブネット内でユニークに識別されるＥＣＨＯＮＥＴ Ｌｉｔｅ機器の識別子として用います。」との記載がなされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−６５１５１号公報
【非特許文献】
【０００７】
【非特許文献１】ＥＣＨＯＮＥＴ Ｌｉｔｅ ＳＰＥＣＩＦＩＣＡＴＩＯＮ  第２部  ＥＣＨＯＮＥＴ Ｌｉｔｅ  通信ミドルウェア仕様，Ｄａｔｅ：Ｍａｙ ３１,２０１３， Ｖｅｒｓｉｏｎ  １．１０，ＥＣＨＯＮＥＴ  ＣＯＮＳＯＲＴＩＵＭ
【非特許文献２】ＥＣＨＯＮＥＴ Ｌｉｔｅ ＳＰＥＣＩＦＩＣＡＴＩＯＮ  第１部  ＥＣＨＯＮＥＴ Ｌｉｔｅの概要，Ｄａｔｅ：Ｍａｙ ３１,２０１３， Ｖｅｒｓｉｏｎ  １．１０，ＥＣＨＯＮＥＴ  ＣＯＮＳＯＲＴＩＵＭ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＥＣＨＯＮＥＴに準拠した特許文献１の通信システムは、エコーネットアドレスと重複アドレステーブル（ＩＰアドレスおよびハードウエアアドレス）とによって、ノードの一意性を担保している。
【０００９】
しかしながら、ＥＣＨＯＮＥＴ Ｌｉｔｅは、エコーネットアドレスに関する仕様を有していない。したがって、ＥＣＨＯＮＥＴ Ｌｉｔｅに準拠したネットワークは、ノードの一意性を担保するために、特許文献１に示された手法を用いることはできない。
【００１０】
また、ルータは、一般的にＤＨＣＰ（Dynamic Host Configuration Protocol）機能によりＩＰアドレスを自動的に割り当てる。したがって、ノードのＩＰアドレスは変更されうる可能性がある。ルータの設定により固定ＩＰアドレスにすることもできるけれども、そのように設定されている保証はない。ＩＰアドレスは変更されうる可能性があるため、この点からも、少なくともＩＰアドレスだけを用いてノードの一意性を担保することはできない。
【００１１】
さらに、ＥＣＨＯＮＥＴ Ｌｉｔｅ規格には、ノードを一意に決定する必須プロパティがあるとは言えない。例えば、Version 1.10 以降のときは識別番号(EPC=0x83)が使えるけども、Version 1.01 以前のときは「１バイト目0x00のとき未設定可能」というのが許されており、実質使えない。異なるバージョンが混在したときに汎用的に使えない。この点からも、ＥＣＨＯＮＥＴ Ｌｉｔｅに準拠した必須プロパティの範囲内では、ノードの一意性を担保することはできない。
【００１２】
また、ＭＡＣアドレスをＥＣＨＯＮＥＴ Ｌｉｔｅ機器の識別子として使用した場合であっても、以下の問題が生じる。すなわちコントローラは、サブネットを構成するルータを越えて、ＥＣＨＯＮＥＴ Ｌｉｔｅに準拠したノードからパケットを受信することがありえる。このような場合には、ルータは、パケット内の送信元ＭＡＣアドレスを当該ルータのＭＡＣアドレスに書き換えてしまう。サブネットを越えて存在するノード（つまり、ルータを越えて通信可能なノード）のＭＡＣアドレスを調べる一般的な方法はないため、ルータを越えて受信したパケットの送信元ＭＡＣアドレスは分からない。このため、コントローラは、サブネットを越えて存在するノードを、正しくないＭＡＣアドレスでもってサブネット内のＥＣＨＯＮＥＴ Ｌｉｔｅノードとして登録してしまう虞がある。
【００１３】
その結果、サブネットにおいては、ノードの一意性が担保できなくなる。ノードの一意性を担保できるというのは、ＩＰアドレスの変化等に影響されずに、コントローラがノードを一意に識別することである。
【００１４】
本発明は、上記の問題点に鑑みなされたものであって、その目的は、エコーネットアドレス等の特殊な識別情報を用いることなく、ノードの一意性を担保することが可能なコントローラ、サブネット、および当該コントローラにおける情報処理方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明のある局面に従うと、コントローラは、ルータによって構成されたサブネットに含まれる。コントローラは、各々が固有の識別情報と可変の識別情報とを有する複数のノードと通信するための通信手段と、複数のノードのうち、サブネットに参加しているノードを制御するための制御手段と、サブネットに参加しているノードの固有の識別情報と可変の識別情報とを関連付けた第１のデータを記憶する記憶手段とを備える。サブネットに参加しているノードの可変の識別情報は、ルータによって割り当てられる。制御手段は、固有の識別情報と可変の識別情報とを含む第２のデータが受信された場合、第２のデータが、ルータを越えて送信されてきたものか否かを判断する第１の判断手段と、第２のデータがルータを越えて送信されてきたものではない場合に、第２のデータに含まれている可変の識別情報が、第１のデータにおいて第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報と一致するか否かを判断する第２の判断手段と、可変の識別情報が一致しないと判断されたことに基づき、第１のデータにおいて第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報を、第２のデータに含まれている可変の識別情報で更新する更新手段とを含む。
【００１６】
好ましくは、第１の判断手段は、第２のデータを受信した場合、予め定められた第３のデータを第２のデータの送信元のノードに送信することによって、第２のデータがルータを越えて送信されてきたものか否かを判断する。
【００１７】
好ましくは、制御手段は、予め定められた時間間隔で自発的にノードを探索する探索手段をさらに備える。第１の判断手段は、自発的なノードの探索に基づくことなく第２のデータを受信した場合、第３のデータを第２のデータの送信元のノードに送信する。
【００１８】
本発明の他の局面に従うと、ルータによって構成されたサブネットは、コントローラとルータとを備える。コントローラは、各々が固有の識別情報と可変の識別情報とを有する複数のノードと通信するための通信手段と、複数のノードのうち、サブネットに参加しているノードを制御するための制御手段と、サブネットに参加しているノードの固有の識別情報と可変の識別情報とを関連付けた第１のデータを記憶する記憶手段とを備える。サブネットに参加しているノードの可変の識別情報は、ルータによって割り当てられる。制御手段は、固有の識別情報と可変の識別情報とを含む第２のデータが受信された場合、第２のデータが、ルータを越えて送信されてきたものか否かを判断する第１の判断手段と、第２のデータがルータを越えて送信されてきたものではない場合に、第２のデータに含まれている可変の識別情報が、第１のデータにおいて第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報と一致するか否かを判断する第２の判断手段と、可変の識別情報が一致しないと判断されたことに基づき、第１のデータにおいて第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報を、第２のデータに含まれている可変の識別情報で更新する更新手段とを有する。
【００１９】
本発明のさらに他の局面に従うと、情報処理方法は、ルータによって構成されたサブネットに含まれるコントローラにおいて実行される。コントローラは、各々が固有の識別情報と可変の識別情報とを有する複数のノードと通信する。情報処理方法は、複数のノードのうち、サブネットに参加しているノードを制御するステップと、サブネットに参加しているノードの固有の識別情報と可変の識別情報とを関連付けた第１のデータを記憶するステップとを備える。サブネットに参加しているノードの可変の識別情報は、ルータによって割り当てられる。情報処理方法は、固有の識別情報と可変の識別情報とを含む第２のデータが受信された場合、第２のデータが、ルータを越えて送信されてきたものか否かを判断するステップと、第２のデータがルータを越えて送信されてきたものではない場合に、第２のデータに含まれている可変の識別情報が、第１のデータにおいて第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報と一致するか否かを判断するステップと、可変の識別情報が一致しないと判断されたことに基づき、第１のデータにおいて第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報を、第２のデータに含まれている可変の識別情報で更新するステップとをさらに備える。
【発明の効果】
【００２０】
本発明によれば、サブネットにおいてノードの一意性を担保することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】通信ネットワーク１の概略構成を説明するための図である。
【図２】ＨＥＭＳコントローラ１００の外観を表した図である。
【図３】ＨＥＭＳコントローラ１００の全体構成を説明するための図である。
【図４】ノードリストＬ５の概要を説明するための図である。
【図５】ホスト側アプリケーション１２０に記憶されているノードリストＬ５の詳細を説明するための図である。
【図６】ホスト側アプリケーション１２０が上位層１３０に通知する内容を説明するための図である。
【図７】ホスト側アプリケーション１２０がノードからパケットを受信した後におけるホスト側アプリケーション１２０の処理を説明するためのフローチャートである。
【図８】ＨＥＭＳコントローラ１００の機能的構成を説明するための機能ブロック図である。
【図９】ＨＥＭＳコントローラ１００のブロック図である。
【図１０】通信ネットワーク１Ａの概略構成を説明するための図である。
【図１１】受動的なノード探索の処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図面を参照しつつ、本発明の実施の形態に係るネットワークについて説明する。また、以下の説明では、同一の部材には同一の参照符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２３】
＜Ａ．通信ネットワーク１の概略構成＞
図１は、通信ネットワーク１の概略構成を説明するための図である。図１を参照して、通信ネットワーク１は、ブロードバンドルータ２と、サブネット１０とを備えている。ブロードバンドルータ２は、外部のネットワーク９００と接続している。
【００２４】
サブネット１０は、ＨＥＭＳ（Home Energy Management System）コントローラ１００と、複数のノード２０１，２０２，２０３，２０４，…とを備える。「ノード」とは、ＩＰアドレスを持つ通信機器（ＩＰ対応機器）である。一般的には、ノードは、パソコン、プリンタ、ＮＡＳ（ネットワークストレージ）、タブレット端末、ＡＶ（Audio Visual）機器、白物家電などが挙げられる。複数のノード２０１，２０２，２０３，２０４，…のうちいくつかが、「ＥＣＨＯＮＥＴ Ｌｉｔｅノード」である。本実施の形態では、ノード２０１，２０２，２０３，２０４がＥＣＨＯＮＥＴ Ｌｉｔｅノードであるとする。
【００２５】
ＨＥＭＳコントローラ１００は、ブロードバンドルータ２に通信可能に有線で接続されている。複数のノード２０１，２０２，２０３，２０４，…も、ブロードバンドルータ２に通信可能に有線あるいは無線で接続されている。
【００２６】
ＨＥＭＳコントローラ１００は、通信ネットワーク１において中継器として機能する。具体的には、ＨＥＭＳコントローラ１００は、複数のノード２０１，２０２，２０３，２０４，…と通信することにより、複数のノード２０１，２０２，２０３，２０４，…を制御する。
【００２７】
本実施の形態では、新規ノード２０９がサブネット１０に参加したり、サブネット１０に参加しているノード（以下、「既存ノード」とも称する）がサブネット１０から離脱することがある。なお、新規ノード２０９がネットワークに参加した場合には、新規ノード２０９は既存ノードとして扱われる。
【００２８】
ところで、図１における括弧内の数字（たとえば、192.168.0.1）は、ＩＰアドレスを表している。ブロードバンドルータ２は、ＤＨＣＰ機能によって、ＨＥＭＳコントローラ１００と、複数のノード２０１，２０２，２０３，２０４，…とに対して、ＩＰアドレスを自動的に付与する。
【００２９】
付与されたＩＰアドレスから分かるように、ＩＰアドレスのうちのネットワークアドレスとして使用される部分（たとえば、“192.168.0.1”における“192.168.0”の部分）が共通する機器が物理的なネットワーク（つまり、サブネット１０）を構成する。“192.168.0”のネットワークアドレスを有する、ブロードバンドルータ２と、ＨＥＭＳコントローラ１００と、ノード２０１，２０２，２０３，２０４，…とが、１つの物理的なネットワークを構成する。
【００３０】
図２は、ＨＥＭＳコントローラ１００の外観を表した図である。図２を参照して、ＨＥＭＳコントローラ１００は、発光素子１１０３と、アンテナ１１０７とを備える。発光素子１１０３は、ＨＥＭＳコントローラ１００の動作状態等を表示するための３つのＬＥＤ（Light Emitting Diode）１１０３ａ，１１０３ｂ，１１０３ｃにより構成される。
【００３１】
ＬＥＤ１１０３ａは、ＨＥＭＳコントローラ１００の電源がオン・オフの状態を示すための発光素子（電源ＬＥＤ）である。ＬＥＤ１１０３ｂは、ノード２０１，２０２，２０３，２０４，…との通信状態を表示するための発光素子である。ＬＥＤ１１０３ｃは、ブロードバンドルータ２との通信状態を表示するための発光素子である。
【００３２】
以下では、主として、サブネット１０に着目して説明を行なう。
＜Ｂ．ＨＥＭＳコントローラ１００の全体構成＞
図３は、ＨＥＭＳコントローラ１００の全体構成を説明するための図である。図３を参照して、ＨＥＭＳコントローラ１００は、デバイス側アプリケーション１１０と、ホスト側アプリケーション１２０と、上位層１３０とを備える。デバイス側アプリケーション１１０はＵＤＰ（User Datagram Protocol）ソケット１１１を備える。ＵＤＰソケット１１１は、送信用と受信用に共通で、ポート３６１０でバインドさせる。また、ホスト側アプリケーション１２０は、送信用のＵＤＰソケット１２１と、受信用のＲＡＷソケット１２２とを備える。また、ホスト側アプリケーション１２０は、ノードリストＬ５を記憶している。
【００３３】
デバイス側アプリケーション１１０は、ＨＥＭＳコントローラ１００自身が、ＥＣＨＯＮＥＴ Ｌｉｔｅにおけるコントローラ（EOJ=05.FF.01）として振る舞うためのアプリケーションである。デバイス側アプリケーション１１０は、ノード２０１，２０２，２０３，２０４，…からの要求を受信して、当該要求に対して応答または通知を送信する。
【００３４】
なお、“ＥＯＪ”は、ＥＣＨＯＮＥＴオブジェクトを表している（上述した非特許文献１の３．２．４参照）。具体的には、ＥＯＪは、ＥＣＨＯＮＥＴ Ｌｉｔｅの通信を行なう通信ＩＦ（図９における高速通信インターフェイス１１０４）が保持する情報のうち、ネットワークに対して公開する情報やアクセス手順をモデル化したものである。ＥＯＪには、各々のノードが持つ情報およびインスタンスがプロパティとして規定されている。また、ＥＯＪには、ノードおよびインスタンスに対する操作方法（設定、参照）がサービスとして規定されている。ＥＯＪは、詳細については後述するが、機器オブジェクト、プロファイルオブジェクトの２つに大きく分類される（図５（Ｂ））。
【００３５】
ホスト側アプリケーション１２０は、ＥＣＨＯＮＥＴ Ｌｉｔｅのノードを探索し、ノードリストＬ５を最新の状態に維持する。ホスト側アプリケーション１２０は、各ノード上の１つ以上のインスタンスを管理する。ホスト側アプリケーション１２０は、適当なタイミングで、各インスタンスの重要プロパティの状態を取得して保存する。そのために、ホスト側アプリケーション１２０は、自身が主体となって、ノードへ要求を送信する。また、ホスト側アプリケーション１２０は、通知または当該要求に対する応答を当該ノードから受信する。
【００３６】
ホスト側アプリケーション１２０は、さらに、上位層１３０（家電制御アプリケーション等）にＡＰＩ（Application Programming Interface）を提供する。ホスト側アプリケーション１２０は、上位層１３０からの指示を受けて、最新のノードリストＬ５やインスタンスリスト（図示せず）を上位層１３０に返す。また、ホスト側アプリケーション１２０は、上位層１３０からの指示を受けて、ノードへ要求を送信する。また、ホスト側アプリケーション１２０は、通知または当該要求に対する応答を当該ノードから受信し、上位層１３０へ返す。
【００３７】
なお、上位層１３０としては、家電制御アプリケーション、家電制御ＣＧＩ（Common Gateway Interface）、家電管理情報取得ＣＧＩ（図示せず）がある。これらは互いに独立である。各々が独立して、ホスト側アプリと通信する。
【００３８】
デバイス側アプリケーション１１０およびホスト側アプリケーション１２０の各々は、パケットを送信するときは送信先ＵＤＰポート番号を３６１０にする。送信元ＵＤＰポート番号は任意で良い。デバイス側アプリケーション１１０およびホスト側アプリケーション１２０の各々は、パケットを受信するときは、送信先ＵＤＰポート番号３６１０を処理する。
【００３９】
ホスト側アプリケーション１２０は、送信用にＵＤＰソケット１２１を開く。なお、上述したように、ホスト側アプリケーション１２０は、ＵＤＰソケット１２１の送信元ポート番号を任意に設定する。
【００４０】
ホスト側アプリケーション１２０は、受信用にＲＡＷソケット１２２を開く。ＲＡＷソケット１２２を開くのは、パケットを受信すると同時に送信元ＭＡＣアドレスも得るためである。ＲＡＷソケット１２２は、ネットワークインターフェイス“eth0”で受信できるデータをすべて受信する。ホスト側アプリケーション１２０は、受信した全てのデータの中から、ＵＤＰ／ＩＰかつ宛先ＵＤＰポート番号が“３６１０”であるデータを利用する。
【００４１】
なお、別途、ＡＲＰを送信してＭＡＣアドレスを得るという手法もあるが、当該方法は、余分なトラフィックが発生するため、上記のように、ＲＡＷソケットを利用することが好ましい。
【００４２】
＜Ｃ．ＨＥＭＳコントローラ１００の処理の概要＞
ＨＥＭＳコントローラ１００は、複数のノード２０１，２０２，２０３，２０４，…の各々に固有のＭＡＣアドレスと、ブロードバンドルータ２によって複数のノード２０１，２０２，２０３，２０４，…の各々に対して割り当てられるＩＰアドレスとを関連付けたノードリストＬ５を有している。ＨＥＭＳコントローラ１００は、ノードリストＬ５を用いて、ノードの一意性を担保する。つまり、ＨＥＭＳコントローラ１００は、ＭＡＣアドレスとＩＰアドレスとを、サブネット１０内でユニークに識別されるＥＣＨＯＮＥＴ Ｌｉｔｅ機器の識別子として用いる。
【００４３】
なお、ＨＥＭＳコントローラ１００は、ノード上にあるインスタンスはＥＯＪコード（３バイト）で識別できるため、これらを組み合わせて、ＭＡＣアドレス（６バイト）とＥＯＪコード（３バイト）とで、インスタンスをユニークに識別できる。
【００４４】
図４は、ノードリストＬ５の概要を説明するための図である。図４を参照して、ノードリストＬ５においては、ＭＡＣアドレスとＩＰアドレスとがノード毎に関連付けて記憶されている。ノードリストＬ５は、識別番号（Ｎｏ．１，２，３…）で特定される複数のノード情報Ｄ５で構成される。
【００４５】
ノードリストＬ５と図１に示した状態と対比すれば、ノード２０１のＭＡＣアドレスは、１番目の“08:00:1F:52:2E:57”である。また、ノード２０２およびノード２０３の各々のＭＡＣアドレスは、“08:00:1F:48:53:4C”、“08:00:1F:2D:92:6A”である。上述したように、ＭＡＣアドレスは固有（不変）であるのに対し、ノードに割り当てられたＩＰアドレスは、ブロードバンドルータ２のＤＨＣＰ機能により変化する。
【００４６】
以下では、サブネット１０にノードが参加したり、あるいはサブネット１０からノードが離脱した場合における、ＨＥＭＳコントローラ１００における代表的な処理を説明する。
【００４７】
（ｃ１．ルータを越えていないパケットを受信した場合の処理）
以下では、説明の便宜上、ＨＥＭＳコントローラ１００が受信したパケットがブロードバンドルータ２を越えていないもの（つまり、サブネット１０内のノードから送られてきたもの）である場合について、３つの処理を説明する。
【００４８】
（１）ノードリストＬ５におけるＩＰアドレスの更新
ブロードバンドルータ２のＤＨＣＰ機能によって、既存ノードのＩＰアドレスが変化した場合には、ホスト側アプリケーション１２０は、ノードリストＬ５において当該既存ノードのＭＡＣアドレスに関連付けられているＩＰアドレスを、変化後のＩＰアドレスで更新する。つまり、ホスト側アプリケーション１２０は、変化後のＩＰアドレスに書き換える。詳しく説明すると以下のとおりである。
【００４９】
ホスト側アプリケーション１２０は、ノードを自発的に探索する処理に基づいてノードからパケットを受信した場合、当該パケットにはＭＡＣアドレスが含まれているため、ノードリストＬ５を参照することにより、ノードが既存ノードであるか否かを判断できる。ホスト側アプリケーション１２０は、既存ノードからのパケットであると判断した場合、当該パケットに含まれているＩＰアドレスが、ノードリストＬ５において当該パケットに含まれているＭＡＣアドレスに関連付けられているＩＰアドレスと一致しているか否かを判断する。ホスト側アプリケーション１２０は、ＩＰアドレスが一致しないと判断した場合、ノードリストＬ５において上記パケットに含まれているＭＡＣアドレスに関連付けられているＩＰアドレスを、当該パケットに含まれていたＩＰアドレスで更新する。
【００５０】
具体例を挙げて説明すれば、以下のとおりである。ホスト側アプリケーション１２０は、“08:00:1F:48:53:4C”のＭＡＣアドレスと“192.168.0.7”のＩＰアドレスとを含むパケットを、自発的なノード探索処理によってノード２０２（図１参照）から受信した場合、ＩＰアドレスが一致していないと判断する。具体的には、ホスト側アプリケーション１２０は、ＩＰアドレスが“192.168.0.4”から“192.168.0.7”に変化したことを検知できる。この場合、ホスト側アプリケーション１２０は、ノードリストＬ５において、ＭＡＣアドレス“08:00:1F:48:53:4C”に関連付けられたＩＰアドレスを“192.168.0.4”を“192.168.0.7”で更新（上書き）する。
【００５１】
（２）ノード情報Ｄ５の消去
上記のように既存ノードのＩＰアドレスが変化した場合において、ＩＰアドレスの更新によって、ノードリストＬ５においてＩＰアドレスが重複することが起こり得る。この場合、ホスト側アプリケーションは、当該重複しているＩＰアドレスのうち当該更新されたＩＰアドレス以外のＩＰアドレスを含むノード情報Ｄ５を、ノードリストＬ５から消去する。
【００５２】
具体例を挙げて説明すれば、以下のとおりである。ホスト側アプリケーション１２０は、“08:00:1F:48:53:4C”のＭＡＣアドレスと“192.168.0.5”のＩＰアドレスとを含むパケットを、自発的なノード探索処理によってノード２０２から受信した場合、ＩＰアドレスが一致していないと判断する。なお、一致していないと判断した場合には、ホスト側アプリケーション１２０は、ノードリストＬ５において、ＭＡＣアドレス“08:00:1F:48:53:4C”に関連付けられたＩＰアドレス“192.168.0.4を“192.168.0.5”で更新（上書き）する。
【００５３】
この場合には、ＩＰアドレス“192.168.0.5”は、更新後のノードリストＬ５（図示せず）において、ノード２０２のＭＡＣアドレス“08:00:1F:48:53:4C”だけではなく、ノード２０３のＭＡＣアドレス“08:00:1F:2D:92:6A”に対しても関連付けられることになる。すなわち、ノードリストＬ５において、ＩＰアドレスの重複が発生する。
【００５４】
そこで、ホスト側アプリケーション１２０は、ノード２０３がサブネット１０から離脱したものと判断できる。それゆえ、ホスト側アプリケーション１２０は、ノード２０３のＭＡＣアドレス“08:00:1F:2D:92:6A”を含むノード情報Ｄ５を、ノードリストＬ５から消去する。
【００５５】
（３）ノードリストＬ５への新規登録等
ホスト側アプリケーション１２０は、サブネット１０に新たにノード（以下、「新規ノード」とも称する）が参加した場合、ノードリストＬ５において当該ノードのノード情報Ｄ５を作成する。詳しく説明すると以下のとおりである。
【００５６】
ホスト側アプリケーション１２０は、ノードを自発的に探索する処理に基づいてノードからパケットを受信した場合、当該パケットにはＭＡＣアドレスが含まれているため、ノードリストＬ５を参照することにより、ノードが新規ノードであるか否かを判断できる。ホスト側アプリケーション１２０は、新規ノードからのパケットであると判断した場合、新規ノードから受信したＩＰアドレスと同一のＩＰアドレスがノードリストＬ５に存在するか否かを判断する。
【００５７】
ホスト側アプリケーション１２０は、新規ノードから受信したＩＰアドレスと同一のＩＰアドレスがノードリストＬ５に存在しないと判断した場合には、ノードリストＬ５に新規ノードに関するノード情報Ｄ５を追加する。一方、ホスト側アプリケーション１２０は、新規ノードから受信したＩＰアドレスと同一のＩＰアドレスがノードリストＬ５に存在すると判断した場合には、ノードリストＬ５に新規ノードに関するノード情報Ｄ５を追加するとともに、ノードリストＬ５から当該同一のＩＰアドレスを含むノード情報Ｄ５を消去する。
【００５８】
以下、上記のように同一のＩＰアドレスがノードリストＬ５に存在すると判断した場合における処理の具体例を説明する。ホスト側アプリケーション１２０は、“08:00:1F:12:34:56”のＭＡＣアドレスと“192.168.0.5”のＩＰアドレスとを含むパケットを、自発的なノード探索処理によってノード（たとえばノード２０９（図１参照））から受信した場合、ノードリストＬ５に同じＭＡＣアドレスが存在しないため、探索されたノードが新規ノードであると判断する。
【００５９】
ＩＰアドレス“192.168.0.5”は、更新後のノードリストＬ５において、ノード２０３のＭＡＣアドレス“08:00:1F:2D:92:6A”に対して関連付けられている。すなわち、ノードリストＬ５において、ＩＰアドレスの重複が発生する。
【００６０】
この場合には、ホスト側アプリケーション１２０は、ノード２０３がサブネット１０から離脱したものと判断できる。それゆえ、ホスト側アプリケーション１２０は、ノード２０３のＭＡＣアドレス“08:00:1F:2D:92:6A”を含むノード情報Ｄ５を、ノードリストＬ５から消去する。
【００６１】
（ｃ２．ルータを越えてパケットを受信した場合の処理）
上記においては、ＨＥＭＳコントローラ１００が受信したパケットがブロードバンドルータ２を越えていないものである場合について説明した。一例として、ホスト側アプリケーション１２０が、ブロードバンドルータ２を超えない範囲で、自発的なノードの探索を行なう場合を説明した。
【００６２】
しかしながら、ホスト側アプリケーションは、ブロードバンドルータ２を越えて、ＥＣＨＯＮＥＴ Ｌｉｔｅに準拠したノードからパケットを受信することもある。たとえば、自発的なノード探索を行なっていない場合に、このようなパケットを受信することがある。このような場合には、ブロードバンドルータ２は、パケット内のＭＡＣアドレスを当該ルータのＭＡＣアドレスに書き換えてしまう。
【００６３】
それゆえ、図４に示したノードリストＬ５を用いたノードの管理は、ブロードバンドルータ２を超えない範囲（サブネット１０の範囲）において有効な手法となる。このため、ホスト側アプリケーション１２０は、ノード管理を適切に行うためには、パケットを受信した場合、ブロードバンドルータ２を介したパケットか否かを判断する。ホスト側アプリケーション１２０は、ブロードバンドルータ２を介したパケットであると判断した場合には、ノードリストＬ５の更新は行なわない。なお、ホスト側アプリケーション１２０は、ブロードバンドルータ２を介したパケットか否かの判断するために、パケットの有効期間を表すＴＴＬ（Time to Live）を用いる。当該判断手法の詳細について後述する。
【００６４】
＜Ｄ．ホスト側アプリケーションの処理の詳細＞
次に、ＨＥＭＳコントローラ１００のホスト側アプリケーション１２０における処理について説明する。
【００６５】
（ｄ１．ノード管理）
ホスト側アプリケーション１２０は、ＨＥＭＳコントローラ１００と同一のサブネットにあるノード（ＥＣＨＯＮＥＴ Ｌｉｔｅノード）を探索することにより、ノードリストＬ５を作成する。また、ホスト側アプリケーション１２０は、ノードを定期的に探索することにより、またノードからの通知により、ノードリストＬ５を最新状態に保つ。また、ホスト側アプリケーション１２０は、各ノード上にどのようなインスタンスがあるかを調べ、ノードごとにインスタンスリストを作成する。ホスト側アプリケーション１２０は、インスタンスリストを最新状態に保つ。
【００６６】
ホスト側アプリケーション１２０は、ノードリストＬ５、インスタンスの状態、監視プロパティに変化があれば上位層１３０（家電制御アプリなど）に通知を出す。上位層１３０からの指示により、ホスト側アプリケーション１２０が保持しているノードリストＬ５、およびインスタンスの状態を返す。ホスト側アプリケーション１２０は、上位層１３０からの指示により、指定されたノード（正確には、ノードのインスタンス）に対してＥＣＨＯＮＥＴ Ｌｉｔｅ電文を送信する。
【００６７】
図５は、ホスト側アプリケーション１２０に記憶されているノードリストＬ５の詳細を説明するための図である。図５（Ａ）は、ノードリストの概略構成を表した図である。図５（Ｂ）は、ノードリストに含まれるノード情報を説明するための図である。
【００６８】
図５（Ａ）を参照して、ノードリストＬ５は、複数のノード情報を含んで構成される。図５（Ｂ）を参照して、複数のノード情報の各々は、ＭＡＣアドレスと、ＩＰアドレスと、生存情報と、予約と、最後にパケットを受信した時刻と、１つのノードオブジェクトと、１つ以上の機器オブジェクトとを含んで構成される。
【００６９】
「機器オブジェクト」とは、センサ、エアコン、冷蔵庫など、設備機器または白物家電機器が保持する情報、および／またはリモート操作可能な制御項目を論理的にモデル化したものであえる。機器オブジェクトにおいては、遠隔制御のためのインターフェイス形式は統一されている。機器オブジェクトにおいては、各々のノードが持つ情報やインスタンスがプロパティとして規定されている。また、機器オブジェクトにおいては、ノードおよびインスタンスに対する操作方法（設定、参照）がサービスとして規定されている。
【００７０】
「ノードプロファイルオブジェクト」とは、ノード（ＥＣＨＯＮＥＴ Ｌｉｔｅノード）の動作状態、製造メーカ情報、機器オブジェクトリストなどといった、ＥＣＨＯＮＥＴ Ｌｉｔｅノードとしてのプロファイルの情報、制御項目、および設定項目をモデル化したものである。
【００７１】
ＨＥＭＳコントローラ１００は、通信ネットワーク１においては、ＥＣＨＯＮＥＴ Ｌｉｔｅのノードとしても機能している。ホスト側アプリケーション１２０は、自身のＥＣＨＯＮＥＴ Ｌｉｔｅノードについては、ノード管理は行なわない。つまり、ホスト側アプリケーション１２０は、ＨＥＭＳコントローラ１００以外のノードであって、サブネット１０を構成するノード（ノード２０１，２０２，２０３，２０４，…等）を管理する。この理由は、ＲＡＷソケット１２２でオープンすると、ホスト側アプリケーション１２０から送信されたノードを受信できないためである。
【００７２】
ホスト側アプリケーション１２０は、ＥＣＨＯＮＥＴ Ｌｉｔｅノードのうち、同一のサブネット（つまり、サブネット１０）上にあるノードのみを管理対象とする。ホスト側アプリケーション１２０は、ルータ（本実施の形態では、ブロードバンドルータ２）を越えた位置にあるノードについては、たとえ当該ノードとの間でパケットの送受信できたとしても、当該ノードを意図的に排除するよう設計されている。具体的には、ホスト側アプリケーション１２０は、ＴＴＬ＝１でパケットを当該ノードに対して送信し、当該送信に対する応答があれば、当該ノードが、ホスト側アプリケーション１２０が管理しているノードと同一サブネットに存在するものとみなせる。ＴＴＬ＝１で送信したパケットは、ルータを越えて転送されないからである。
【００７３】
ホスト側アプリケーション１２０は、上述したように、サブネット１０に存在するノード（ＥＣＨＯＮＥＴ Ｌｉｔｅノード）を探索することにより、ノードリストを作成する。各ノード上にどのようなインスタンスがあるかを調べる。なお、ホスト側アプリケーション１２０は、ノードごとにインスタンスリストを作成する。ホスト側アプリケーション１２０は、ノードリストＬ５を変更した場合、変更内容を上位層１３０に通知する。
【００７４】
図６は、ホスト側アプリケーション１２０が上位層１３０に通知する内容を説明するための図である。図６を参照して、ホスト側アプリケーション１２０は、新規ノードを見つけた場合には、通知“node-added”を上位層１３０に通知する。ホスト側アプリケーション１２０は、既存ノードが削除された場合には、通知“node-removed”を上位層１３０に通知する。ホスト側アプリケーション１２０は、（i）既存ノードと同じＩＰアドレスに別のＭＡＣアドレスのノードを検出した場合、（ii）既存ノードが行方不明の状態であり、当該ノードから最後にパケットを受信してから３時間以上経過した場合に、既存ノードが削除されたと判断する。
【００７５】
ホスト側アプリケーション１２０は、既存ノードのＩＰアドレスが変化した場合、通知“address-changed”を上位層１３０に通知する。
【００７６】
（ｄ２．自発的なノード探索）
次に、ホスト側アプリケーション１２０による自発的なノード探索について説明する。ホスト側アプリケーション１２０は、起動直後に自発的なノード探索を行なう。また、ホスト側アプリケーションは、起動後、一定時間（たとえば、５分）ごとに自発的なノード探索を行なう。
【００７７】
具体的には、ホスト側アプリケーション１２０は、一斉同報(マルチキャスト)で、探索用フレームを送信する。その際、ホスト側アプリケーション１２０は、ルータを越えてパケットが届かないようにするために、探索用フレームにおけるＴＴＬを“１”に設定する。なお、マルチキャストの場合は、特に設定しなければＴＴＬ＝１となる。
【００７８】
探索用フレームは、ＥＣＨＯＮＥＴ Ｌｉｔｅ規格の第５部の第４．３章（ノード検出・発見手順の指針）のとおりである。具体的には、探索用フレームの詳細は以下のとおりである。
【００７９】
・宛先アドレス：一斉同報（宛先アドレス=224.0.23.0）
・TID（16ビット）：毎回ランダムに値を変えて送信するようにする。TID=0は使わないのが望ましい。
【００８０】
・SEOJ=05.FF.01（コントローラ）
・DEOJ=0E.F0.01（ノードプロファイル）
・ESV=0x62（GET）
・OPC=1
・EPC=0xD6（自ノードインスタンスリストＳ）
上記探索用フレームに対する応答は、ユニキャストで返るはずである。したがって、ホスト側アプリケーション１２０は、ユニキャストで受信したパケットのみを対象とする。ホスト側アプリケーション１２０は、パケットを受信しないか、あるいは１以上のノードからパケットを受信する。ホスト側アプリケーション１２０は、一斉同報してから５秒間だけパケットを受け付け可能とする。または、ホスト側アプリケーション１２０は、タイムアウト期間を設けず、次回に探索用フレームを送信するまで、受け付け可能なようにしてもよい。
【００８１】
ホスト側アプリケーション１２０は、受信したパケットを確認する。具体的には、「SEOJ」、「DEOJ」、および「TID（16ビット）」の各々の値が、送信パケットにおける「SEOJ」、「DEOJ」、および「TID（16ビット）」に一致するか否かを確認する。ホスト側アプリケーション１２０は、一致しない受信パケットを無視すればよい。
【００８２】
図７は、ホスト側アプリケーション１２０がノードからパケットを受信した後におけるホスト側アプリケーション１２０の処理を説明するためのフローチャートである。図７を参照して、ステップＳ２において、ホスト側アプリケーション１２０は、受信したパケットのＭＡＣアドレスおよびＩＰアドレスを確認する。以下では、説明の便宜上、確認されたＭＡＣアドレスが“ＸＸ…”であって、確認されたＩＰアドレスが“ＹＹ…”であるとする。なお、ＸＸ…は、08:00:1F:2D:92:6A等の固定された１個のアドレスであり、ＹＹ…は、192.168.0.1等の固定された１個のアドレスである。つまり、「…」は省略記号を表す。
【００８３】
ステップＳ４において、ホスト側アプリケーション１２０は、ノードリストＬ５（図４参照）に、ＸＸ…のＭＡＣアドレスが存在するか否かを判断する。ホスト側アプリケーション１２０は、ＭＡＣアドレスが存在すると判断された場合（ステップＳ４においてＹＥＳ）、ステップＳ６において、ノードリストＬ５において、ＸＸ…のＭＡＣアドレスを有するノードのＩＰアドレスが変化したか否かを判断する。
【００８４】
ホスト側アプリケーション１２０は、ＩＰアドレスが変化したと判断された場合（ステップＳ６においてＹＥＳ）、ステップＳ８において、ホスト側アプリケーション１２０は、ノードリストＬ５において、当該ＩＰアドレスを用いて、ＸＸ…のＭＡＣアドレスを有する既存ノードのＩＰアドレスを更新する。ステップＳ１０において、ホスト側アプリケーション１２０は、ＸＸ…のＭＡＣアドレスを有する既存ノードのＩＰアドレスが変化したことを表す通知（具体的には、address-changed）を上位層１３０に送る。なお、ホスト側アプリケーション１２０は、ステップＳ１０の後は、処理をステップＳ１４に進める。ホスト側アプリケーション１２０は、ＩＰアドレスが変化していないと判断された場合（ステップＳ６においてＮＯ）一連の処理を終了する。
【００８５】
ホスト側アプリケーション１２０は、ＸＸ…のＭＡＣアドレスが存在しないと判断された場合（ステップＳ４においてＮＯ）、ステップＳ１２において、ノードリストＬ５に、ＸＸ…のＭＡＣアドレスを有し、ＹＹ…のＩＰアドレスを有する新規ノードのノード情報（ＩＰアドレス、ＭＡＣアドレス等を含む）を追記する。つまり、ホスト側アプリケーション１２０は、ノードの新規登録を行ない、通知“node-added”を上位層１３０に送る。
【００８６】
ステップＳ１４において、ホスト側アプリケーション１２０は、ノードリストＬ５に、ＹＹ…のＩＰアドレスが存在するか否かを判断する。ホスト側アプリケーション１２０は、存在すると判断された場合（ステップＳ１４においてＹＥＳ）、ステップＳ１６において、ノードリストＬ５から、ＹＹ…のＩＰアドレスを有するとともにＭＡＣアドレスがＸＸ…以外の既存ノードのノード情報を消去する。ステップＳ１８において、ホスト側アプリケーション１２０は、ＹＹ…のＩＰアドレスを有するとともにＭＡＣアドレスがＸＸ…以外の既存ノードが削除されたことを表す通知（具体的には、node-removed）を上位層１３０に送る。ホスト側アプリケーション１２０は、ＹＹ…のＩＰアドレスが存在しないと判断された場合（ステップＳ１４においてＮＯ）、一連の処理を終了する。
【００８７】
（ｄ３．受動的なノード探索）
ホスト側アプリケーション１２０は、ノード（他のＥＣＨＯＮＥＴ Ｌｉｔｅノード）からインスタンスリスト通知を受けることがある。インスタンスリスト通知とは、電源がオンされたときなどに通知されるものである。なお、インスタンスリスト通知は、自ノードインスタンスリストＳと内容は同じである。
【００８８】
インスタンスリスト通知（電文）は、
・SEOJ=0E.F0.01
・DEOJ=0E.F0.01
・ESV=0x73（INF）
・EPC=0xD5（ノードインスタンスリスト通知プロパティ）
を含んで構成される。
【００８９】
ホスト側アプリケーション１２０は、既知ノードからインスタンスリスト通知を受信したときには、上述した“自発的なノード探索”と同様の処理を行なう。一方、ホスト側アプリケーションは、未知のノードからインスタンスリスト通知を受信した場合には、既知のノードからインスタンスリスト通知を受信した場合とは異なる処理を行なう。以下、未知のノードからインスタンスリスト通知を受信した場合に行なわれるノード探索（つまり、受動的なノード探索）について説明する。
【００９０】
ホスト側アプリケーション１２０は、未知のノードからインスタンスリスト通知を受信した場合は、当該受信した時点で当該未知ノードをノードリストＬ５には登録しない。このため、ホスト側アプリケーション１２０は、上位層１３０に対して通知“"node-added”をしない。当該未知ノードが、ＨＥＭＳコントローラ１００と同一のサブネット上に存在するかどうか分からないためである。
【００９１】
そこで、このような場合には、ホスト側アプリケーション１２０は、当該未知ノードに対してユニキャストで、予め定められたパケット（以下、「パケットＰ」とも称する）を送信する。このとき、意図的にＴＴＬの値を１に設定する。当該パケットＰは、
・宛先アドレス：ユニキャスト(当該ノードのIPアドレス)
・TID(16ビット)：毎回ランダムに値を変えて送信するようにする。TID=0は使わないのが望ましい。
【００９２】
・SEOJ=05.FF.01
・DEOJ=0E.F0.01
・ESV=0x62(GET)
・EPC=0xD6(自ノードインスタンスリストＳの通知プロパティ)
を含む。
【００９３】
このように、ホスト側アプリケーション１２０は、自ノードインスタンスリストＳを取得することを試みる。上記パケットＰに対する応答はユニキャストで送られてくる。ホスト側アプリケーション１２０は、当該応答が送られてきたときにノードリストＬ５に新規ノードを登録する。また、ホスト側アプリケーション１２０は、上位層１３０に、通知“node-added”を出す。
【００９４】
図１１は、受動的なノード探索の処理を説明するためのフローチャートである。図１１を参照して、受動的なノード探索の処理は、ステップＳ４とステップＳ１２との間に、ステップＳ１０２とステップＳ１０４とが存在する点において、図７で示した自発的なノード探索と異なる。しがって、以下では、図７の処理と異なる処理について説明し、同じ処理については説明を繰り返さない。
【００９５】
ホスト側アプリケーション１２０は、ステップＳ４において、ノードリストＬ５にＸＸ…のＭＡＣアドレスが存在しないと判断すると、処理をステップＳ１０２に進める。ステップＳ１０２において、ホスト側アプリケーション１２０は、未知のノードにパケットＰをユニキャストで、かつ、ＴＴＬ＝１で送信する。ＴＴＬ＝１で送信することにより、パケットＰはルータを越えて転送されない。次いで、ステップＳ１０４において、ホスト側アプリケーション１２０は、パケットＰに対する応答があったか否かを判断する。ホスト側アプリケーション１２０は、応答があったと判断した場合（ステップＳ１０４においてＹＥＳ）、処理をステップＳ１２に進める。ホスト側アプリケーション１２０は、応答がないと判断した場合（ステップＳ１０４においてＮＯ）、未知のノードを登録しない。
【００９６】
（ｄ４．機能的構成）
図８は、ＨＥＭＳコントローラ１００の機能的構成を説明するための機能ブロック図である。図８を参照して、ＨＥＭＳコントローラ１００は、通信部１４０と、ノード制御部１５０と、記憶部１６０とを備える。ノード制御部１５０は、判断部１５１と、更新部１５２と、探索部１５３と、判断部１５４とを含む。なお、ホスト側アプリケーション１２０は、通信部１４０と、ノード制御部１５０と、記憶部１６０とを含む。なお、図８においては、デバイス側アプリケーションとノードとの間の通信を行なう機能ブロックは、説明の便宜上記載していない。以下、各ブロックの機能等を説明する。
【００９７】
（１）ＨＥＭＳコントローラ１００は、ブロードバンドルータ２によって構成されたサブネット１０に含まれる。ＨＥＭＳコントローラ１００の通信部１４０は、各々がＭＡＣアドレスとＩＰアドレスとを有する複数のノード２０１，２０２，２０３，２０４，…と通信する。また、通信部１４０は、ブロードバンドルータ２と通信する。ノード制御部１５０は、複数のノードのうち、サブネット１０に参加している複数のノード２０１，２０２，２０３，２０４，…を制御する。記憶部１６０は、ノードリストＬ５（第１のデータ）を記憶している。ノードリストＬ５においては、第１のノードのＭＡＣアドレスとＩＰアドレスとが関連付けられている。第１のノードのＩＰアドレスは、ブロードバンドルータ２によって割り当てられている。
【００９８】
ノード制御部１５０の判断部１５４は、ＭＡＣアドレスとＩＰアドレスとを含むパケット（以下、「パケットＳ」とも称する）が受信された場合、パケットＳ（第２のデータ）が、ブロードバンドルータ２を越えて送信されてきたものか否かを判断する。
【００９９】
ノード制御部１５０の判断部１５１は、パケットＳがブロードバンドルータ２を越えて送信されてきたものではない場合に、パケットＳに含まれているＩＰアドレスが、ノードリストＬ５においてパケットＳに含まれているＭＡＣアドレスと同一のＭＡＣアドレスに関連付けられているＩＰアドレスと一致するか否かを判断する。
【０１００】
ノード制御部１５０の更新部１５２は、ＩＰアドレスが一致しないと判断されたことに基づき、ノードリストＬ５において上記第２のデータに含まれているＭＡＣアドレスと同一のＭＡＣアドレスに関連付けられているＩＰアドレスを、パケットＳに含まれているＩＰアドレスで更新する。
【０１０１】
上記の構成によれば、エコーネットアドレス等の特殊な識別情報を用いることなく、ノードの一意性を担保することが可能となる。ＨＥＭＳコントローラ１００は、ＭＡＣアドレスとＩＰアドレスとの組を管理しているため、ルータによってノードのＩＰアドレスが変わったときでも、同一ノードを追いかけることができる。つまり、ホスト側アプリケーション１２０は、ＩＰアドレスが変わったということに気づける。その結果、正確なノード管理を行なうことが可能となる。
【０１０２】
（２）判断部１５４は、パケットＳを受信した場合、予め定められたパケットＴ（第３のデータ）を当該第２のデータの送信元のノードに送信することによって、当該第２のデータがブロードバンドルータ２を越えて送信されてきたものか否かを判断する。
【０１０３】
（３）上記パケットＴは、パケットＴの有効期間を示す値を含む。具体的には、パケットＴでは、ＴＴＬが“１”に設定されている。上記の構成によれば、ルータを超えてパケットＳ（この場合には、インスタンスリスト通知）を送信してきたノードがノードリストＬ５に登録されてしまうことを防止できる。
【０１０４】
（４）ノード制御部１５０の探索部１５３は、予め定められた時間間隔で自発的にノードを探索する。判断部１５４は、自発的なノードの探索に基づくことなくパケットＳを受信した場合、パケットＴを当該パケットＳ（この場合には、インスタンスリスト通知）の送信元のノードに送信する。上記の構成によれば、ＨＥＭＳコントローラ１００は、自発的なノードの探索に基づきパケットＳを受信した場合には、パケットＴを送信しなくてもすむ。
【０１０５】
（５）更新部１５２は、上記の更新によってノードリストＬ５においてＩＰアドレスが重複した場合、当該重複しているＩＰアドレスのうち当該更新されたＩＰアドレス以外のＩＰアドレスを、ノードリストＬ５から消去する。上記の構成によれば、ノードリストＬ５から不要なＩＰアドレスを消去することができる。
【０１０６】
（６）上記パケットＳをブロードバンドルータ２を介さずに受信した場合、判断部１５４は、パケットＳに含まれているＩＰアドレスと同一のＩＰアドレスがノードリストＬ５に存在するか否かを判断する。更新部１５２は、パケットＳに含まれているＩＰアドレスと同一のＩＰアドレスがノードリストＬ５に存在する場合、ノードリストＬ５から当該同一のＩＰアドレスを消去する。
【０１０７】
上記の構成によれば、たとえば新たなノードがサブネット１０に参加した結果、ＩＰアドレスが重複することになった場合、不要なＩＰアドレスを消去することができる。
【０１０８】
（７）更新部１５２は、ノードリストＬ５からＩＰアドレスを消去する際には、ノードリストＬ５から当該消去されるＩＰアドレスに関連付けられたＭＡＣアドレスをさらに消去する。上記の構成によれば、ノードリストＬ５から不要なＭＡＣアドレスを消去することができる。
【０１０９】
（８）更新部１５２は、既存ノードが行方不明の状態であり、当該ノードから最後にパケットＳを受信してから３時間以上経過した場合にも、ノードリストＬ５から、ＩＰアドレスおよびＭＡＣアドレスを消去する。具体的には、更新部１５２は、ノード情報Ｄ５（図５）を消去する。
【０１１０】
（ｄ５．ハードウェア構成）
図９は、ＨＥＭＳコントローラ１００のブロック図である。図９を参照して、ＨＥＭＳコントローラ１００は、ＣＰＵ１１０１と、発光素子１１０３と、高速通信インターフェイス１１０４と、電源１１０５と、プッシュボタン１１０８と、スライドスイッチ１１０９と、図示しないリセットスイッチとを備える。
【０１１１】
高速通信インターフェイス１１０４は、ブロードバンドルータ２との間でＥｔｈｅｒｎｅｔ（登録商標）を用いた通信を行なうためのインターフェイスである。電源１１０５は、ＣＰＵ１１０１と無線ＲＦ内蔵通信コントローラ１１０６とに電力を供給する。
【０１１２】
ＣＰＵ１１０１は、発光素子１１０３と、高速通信インターフェイス１１０４と、電源１１０５と、プッシュボタン１１０８と、スライドスイッチ１１０９とに接続されている。ＣＰＵ１１０１は、ＨＥＭＳコントローラ１００の全体的な動作を制御する。ＣＰＵ１１０１は、プッシュボタン１１０８およびスライドスイッチ１１０９からの入力を受け付ける。また、ＣＰＵ１１０１は、発光素子１１０３に出力指示を出す。
【０１１３】
＜Ｅ．変形例＞
図１０は、通信ネットワーク１Ａの概略構成を説明するための図である。図１０を参照して、通信ネットワーク１Ａは、ブロードバンドルータ２と、ＨＥＭＳコントローラ１００と、複数のノード２０１，２０２，２０３，２０４，…と、無線ＬＡＮ（Local Area Network）ルータ３と、ノード３１，３２とを備える。
【０１１４】
無線ＬＡＮルータ３は、ブロードバンドルータ２と通信可能に接続されている。無線ＬＡＮルータ３は、ブロードバンドルータによってＩＰアドレスを付与される。無線ＬＡＮ３は、無線により、ノード３１，３２と通信する。
【０１１５】
通信ネットワーク１Ａは、サブネット１０Ａと、サブネット３０とを備える。サブネット１０Ａは、ＨＥＭＳコントローラ１００と、複数のノード２０１，２０２，２０３，２０４，…と、無線ＬＡＮルータ３とを含んで構成される。また、サブネット３０は、無線ＬＡＮ３と、ノード３１，３２とを含んで構成される。通信ネットワーク１Ａにおいては、上述したサブネット１０で説明した各処理を、サブネット１０Ａで実行できる。
【０１１６】
＜Ｆ．付記＞
（１）第３のデータは、第３のデータの有効期間を示す値を含む。
【０１１７】
（２）コントローラは、エコーネットライト規格に基づき、サブネットに参加しているノードと通信する。自発的なノードの探索に基づくことなく受信する第２のデータは、インスタンスリスト通知である。
【０１１８】
（３）更新手段は、更新によって第１のデータにおいて可変の識別情報が重複した場合、重複している可変の識別情報のうち更新された可変の識別情報以外の可変の識別情報を、第１のデータから消去する。
【０１１９】
（４）第２のデータをルータを介さずに受信した場合、第２の判断手段は、第２のデータに含まれている可変の識別情報と同一の可変の識別情報が第１のデータに存在するか否かを判断する。更新手段は、第２のデータに含まれている可変の識別情報と同一の可変の識別情報が第１のデータに存在する場合、第１のデータから同一の可変の識別情報を消去する。
【０１２０】
（５）更新手段は、第１のデータから可変の識別情報を消去する際には、第１のデータから消去される可変の識別情報に関連付けられた固有の識別情報をさらに消去する。
【０１２１】
（６）固有の識別情報は、メディア・アクセス・コントロール・アドレスである。可変の識別情報は、インターネット・プロトコル・アドレスである。
【０１２２】
（７）プログラムは、ルータによって構成されたサブネットに含まれるコントローラを制御する。コントローラは、各々が固有の識別情報と可変の識別情報とを有する複数のノードと通信可能である。プログラムは、複数のノードのうち、サブネットに参加しているノードを制御するステップと、サブネットに参加しているノードの固有の識別情報と可変の識別情報とを関連付けた第１のデータを記憶するステップとを、コントローラのプロセッサに実行させる。サブネットに参加しているノードの可変の識別情報は、ルータによって割り当てられる。プログラムは、固有の識別情報と可変の識別情報とを含む第２のデータが受信された場合、第２のデータが、ルータを越えて送信されてきたものか否かを判断するステップと、第２のデータがルータを越えて送信されてきたものではない場合に、第２のデータに含まれている可変の識別情報が、第１のデータにおいて第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報と一致するか否かを判断するステップと、可変の識別情報が一致しないと判断されたことに基づき、第１のデータにおいて第２のデータに含まれている固有の識別情報と同一の固有の識別情報に関連付けられている可変の識別情報を、第２のデータに含まれている可変の識別情報で更新するステップとを、プロセッサにさらに実行させる。
【０１２３】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２４】
１，１Ａ  通信ネットワーク、２  ブロードバンドルータ、３  無線ＬＡＮルータ、１０，１０Ａ，３０  サブネット、３１，３２，２０１，２０２，２０３，２０４，２０９  ノード、１００  ＨＥＭＳコントローラ、１１０  デバイス側アプリケーション、１１１，１２１  ＵＤＰソケット、１２２  ＲＡＷソケット、１２０  ホスト側アプリケーション、１３０  上位層、１４０  通信部、１５０  ノード制御部、１５１  判断部、１５２  更新部、１５３  探索部、１５４  判断部、１６０  記憶部、１７０  第２の通信部、２０９  新規ノード、３０１，３０２  インスタンス、９００  ネットワーク、１１０１，１１６１  ＣＰＵ、１１０３  発光素子、１１０４  通信インターフェイス、１１０５  電源、１１０６  無線ＲＦ内蔵通信コントローラ、１１０７  アンテナ、１１０８  プッシュボタン、１１０９  スライドスイッチ、１１６２  ＲＯＭ、１１６３  ＲＡＭ、２１０１  ソケット、２１０２  プラグ、２１０６  設定ボタン、Ｄ５  ノード情報、Ｌ５  ノードリスト。
【図１】
2015149528.tif 000003
【図２】
2015149528.tif 000004
【図３】
2015149528.tif 000005
【図４】
2015149528.tif 000006
【図５】
2015149528.tif 000007
【図６】
2015149528.tif 000008
【図７】
2015149528.tif 000009
【図８】
2015149528.tif 000010
【図９】
2015149528.tif 000011
【図１０】
2015149528.tif 000012
【図１１】
2015149528.tif 000013