(57)【要約】【課題】  複数のデバイスが分散して配置された場合に、その複数のデバイスによって構成される通信ネットワークシステムの通信トポロジ（接続形態）を事後的に導出する。【解決手段】  通信トポロジ導出処理において、ホストデバイス１０は、すべての入出力制御デバイス（ノード１〜７）に制御ルールＡを送入する。次いで、データを送信する際に必要なホップ数がＫ回である入出力制御デバイスのデバイスＩＤを取得する。ＩＤ要求用のメッセージを受信した各入出力制御デバイスは、それぞれ、制御ルールＡに従って、自己のデバイスＩＤを含む応答メッセージを送信する。デバイスＩＤを取得すると、ホストデバイス１０は、取得したデバイスＩＤが付与されている入出力制御デバイスを追加したトポロジツリーを生成する。ホストデバイス１０は、終了条件が成立するまで、各ホップ数のデバイスＩＤを取得してトポロジツリーを生成する処理を実行する。【選択図】  図４
2006005753.tif 000002
【特許請求の範囲】
【請求項１】
無線通信ネットワークを介してデータ通信を行う無線通信機能を有する複数のデバイスの前記無線通信ネットワークの接続状態を示す通信トポロジを導出する通信トポロジ導出方法であって、
前記複数のデバイスは、ホストデバイスと複数の入出力制御デバイスとを含み、それぞれ、少なくとも１の他のデバイスと前記データ通信が可能な無線通信可能範囲に設置され、
前記ホストデバイスは、
前記複数の入出力制御デバイスそれぞれに個々の接続状態を応答させるための応答処理を実行させるための応答処理手順データを前記無線通信ネットワークに向けて送信することで、当該無線通信ネットワークを介して、または、前記ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の前記入出力制御デバイスを経由して、前記応答処理手順データを前記複数の入出力制御デバイスそれぞれに送入し、
前記応答処理手順データに従った応答処理の実行を前記入出力制御デバイスに要求するための実行要求データを前記無線通信ネットワークに向けて送信し、
前記実行要求データの受信に応じて前記複数の入出力制御デバイスそれぞれで前記応答処理手順データに従って前記応答処理が実行されたことにより、前記無線通信ネットワークに向けて送信された当該複数の入出力制御デバイス個々の接続状態を示すそれぞれの応答情報を、前記無線通信ネットワークを介して、または、前記ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の前記入出力制御デバイスを経由して受信し、
受信した応答情報にもとづいて前記通信トポロジを導出する
ことを特徴とする通信トポロジ導出方法。
【請求項２】
ホストデバイスは、入出力制御デバイスからの応答情報を受信したあとに、当該入出力制御デバイスに送入した応答処理手順データの削除を指示する削除指示データを、無線通信ネットワークに向けて送信する
請求項１記載の通信トポロジ導出方法。
【請求項３】
ホストデバイスは、入出力制御デバイスからの応答情報を受信する毎に、受信した応答情報が示す当該入出力制御デバイスの接続状態を追加登録していくことで通信トポロジを導出する
請求項１または請求項２記載の通信トポロジ導出方法。
【請求項４】
応答処理手順データは、宣言的に記述された制御ルールの集合によって構成される
請求項１から請求項３のうちいずれかに記載の通信トポロジ導出方法。
【請求項５】
宣言的に記述された制御ルールは、
イベントデータ、コンディションデータ、アクションデータのうち、少なくともアクションデータを含む２つ以上のデータによって記述され、
前記イベントデータが示すイベントが発生したときに、前記コンディションデータが示すコンディションを評価し、前記アクションデータが示すアクションを実行することを示すルール、あるいは、前記イベントデータが示すイベントが発生したとき、または前記コンディションデータが示すコンディションの評価結果に応じて、前記アクションデータが示すアクションを実行することを示すルールとされる
請求項４記載の通信トポロジ導出方法。
【請求項６】
ホストデバイスは、応答処理手順データを入出力制御デバイスに送入するための応答処理手順データ送入手段を有するサーバコンピュータである
請求項１から請求項５のうちいずれかに記載の通信トポロジ導出方法。
【請求項７】
ホストデバイスは、削除指示データを送信する削除指示データ送信手段を有するサーバコンピュータである
請求項２記載の通信トポロジ導出方法。
【請求項８】
入出力制御デバイスは、
所定の情報を感知する情報感知装置からの感知信号を入力する信号入力手段と、所定の外部装置を制御するための制御信号を出力する信号出力手段とを含む入出力信号制御用シーケンサであって、
複数のデバイスを含む無線通信ネットワークシステム内で前記入出力制御デバイスを識別するためのデバイスＩＤを格納するデバイスＩＤ格納手段と、
無線通信ネットワークを介してデータの送受信を行う無線通信手段と、
応答処理手順データを構成する制御ルールを格納する制御ルール格納手段と、
前記制御ルールに従って処理を実行する制御ルール処理手段と、
ホストデバイスからの指示に応じて制御ルールを管理する制御ルール管理手段と、を有する
請求項１から請求項７のうちいずれかに記載の通信トポロジ導出方法。
【請求項９】
無線通信ネットワークを介してデータ通信を行う無線通信機能を有する複数のデバイスを備え、該複数のデバイスの前記無線通信ネットワークの接続状態を示す通信トポロジを導出する通信トポロジ導出システムであって、
前記複数のデバイスは、ホストデバイスと複数の入出力制御デバイスとを含み、それぞれ、少なくとも１の他のデバイスと前記データ通信が可能な無線通信可能範囲に設置され、
前記ホストデバイスは、
前記複数の入出力制御デバイスそれぞれに個々の接続状態を応答させるための応答処理を実行させるための応答処理手順データを前記無線通信ネットワークに向けて送信することで、当該無線通信ネットワークを介して、または、前記ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の前記入出力制御デバイスを経由して、前記応答処理手順データを前記複数の入出力制御デバイスそれぞれに送入する応答処理手順データ送入手段と、
前記応答処理手順データに従った応答処理の実行を前記入出力制御デバイスに要求するための実行要求データを前記無線通信ネットワークに向けて送信する実行要求データ送信手段と、
前記実行要求データの受信に応じて前記複数の入出力制御デバイスそれぞれで前記応答処理手順データに従って前記応答処理が実行されたことにより、前記無線通信ネットワークに向けて送信された当該複数の入出力制御デバイス個々の接続状態を示すそれぞれの応答情報を、前記無線通信ネットワークを介して、または、前記ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の前記入出力制御デバイスを経由して受信する応答情報受信手段と、
受信した応答情報にもとづいて前記通信トポロジを導出する通信トポロジ導出手段と、を含む
ことを特徴とする通信トポロジ導出システム。
【請求項１０】
無線通信ネットワークを介してデータ通信を行う無線通信機能を有する複数のデバイスの前記無線通信ネットワークの接続状態を示す通信トポロジを導出する通信トポロジ導出サーバであって、
前記複数のデバイスは、通信トポロジ導出サーバと複数の入出力制御デバイスとを含み、それぞれ、少なくとも１の他のデバイスと前記データ通信が可能な無線通信可能範囲に設置され、
前記複数の入出力制御デバイスそれぞれに個々の接続状態を応答させるための応答処理を実行させるための応答処理手順データを前記無線通信ネットワークに向けて送信することで、当該無線通信ネットワークを介して、または、前記ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の前記入出力制御デバイスを経由して、前記応答処理手順データを前記複数の入出力制御デバイスそれぞれに送入する応答処理手順データ送入手段と、
前記応答処理手順データに従った応答処理の実行を前記入出力制御デバイスに要求するための実行要求データを前記無線通信ネットワークに向けて送信する実行要求データ送信手段と、
前記実行要求データの受信に応じて前記複数の入出力制御デバイスそれぞれで前記応答処理手順データに従って前記応答処理が実行されたことにより、前記無線通信ネットワークに向けて送信された当該複数の入出力制御デバイス個々の接続状態を示すそれぞれの応答情報を、前記無線通信ネットワークを介して、または、前記ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の前記入出力制御デバイスを経由して受信する応答情報受信手段と、
受信した応答情報にもとづいて前記通信トポロジを導出する通信トポロジ導出手段と、を含む
ことを特徴とする通信トポロジ導出サーバ。
【請求項１１】
無線通信ネットワークを介してデータ通信を行う無線通信機能を有する複数のデバイスの前記無線通信ネットワークの接続状態を示す通信トポロジを導出させるための通信トポロジ導出プログラムであって、
前記複数のデバイスは、ホストデバイスと複数の入出力制御デバイスとを含み、それぞれ、少なくとも１の他のデバイスと前記データ通信が可能な無線通信可能範囲に設置され、
前記ホストデバイスに、
前記複数の入出力制御デバイスそれぞれに個々の接続状態を応答させるための応答処理を実行させるための応答処理手順データを前記無線通信ネットワークに向けて送信することで、当該無線通信ネットワークを介して、または、前記ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の前記入出力制御デバイスを経由して、前記応答処理手順データを前記複数の入出力制御デバイスそれぞれに送入するステップと、
前記応答処理手順データに従った応答処理の実行を前記入出力制御デバイスに要求するための実行要求データを前記無線通信ネットワークに向けて送信するステップと、
前記実行要求データの受信に応じて前記複数の入出力制御デバイスそれぞれで前記応答処理手順データに従って前記応答処理が実行されたことにより、前記無線通信ネットワークに向けて送信された当該複数の入出力制御デバイス個々の接続状態を示すそれぞれの応答情報を、前記無線通信ネットワークを介して、または、前記ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の前記入出力制御デバイスを経由して受信するステップと、
受信した応答情報にもとづいて前記通信トポロジを導出するステップとを
実行させるための通信トポロジ導出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信ネットワークを介してデータ通信を行う分散して配置された無線通信機能を有する複数の入出力制御デバイス（シーケンサ）についての無線通信ネットワークにおける接続状態を示す通信トポロジを導出する通信トポロジ導出方法、通信トポロジ導出システム、通信トポロジ導出サーバ、および通信トポロジ導出プログラムに関する。
【背景技術】
【０００２】
従来、工場やビルなどに構築した機械システムの稼動状況の監視やセキュリティ管理を行うために、機械システムの状態を把握するための各種のセンサからの入力信号にもとづいて、機械システムの状態を修正するためにアクチュエータに対して制御信号を出力する入出力制御デバイス（シーケンサ）が広く利用されている。
【０００３】
また、従来から、シーケンサ群をコンピュータで一元的に管理することによって、工場やビルのような特定の空間に設置された大規模な機械システムの運用を自動化するための管理システムに適用されるシーケンス制御技術が広く知られている。
【０００４】
上記のような工場やビルの管理システムでは、各用途向けにあらかじめプログラムされた動作を行うシーケンサが特定の空間に固定して設置されることが一般的であり、有線通信網を用いて各シーケンサの動作が一元的に管理される。
【０００５】
一方、近年の無線技術の発達により、無線通信機能を有するシーケンサが提案されている。このため、シーケンサの設置場所の自由度が増してきており、シーケンス制御技術は、農地土壌品質管理や森林生育管理のように、比較的大規模な空間を監視するセンサネットワーク技術としての応用も期待されている。
【０００６】
無線通信機能を有するシーケンサに関する技術には、無線通信機能を有する複数の通信デバイス（シーケンサ）が、一時的なネットワーク（アドホックネットワーク）を構築して相互に通信を行うものがある（例えば特許文献１参照）。
【０００７】
特許文献１には、アドホックネットワークを自律的に構築する手法が示されており、アドホックネットワークを構成している通信デバイス（ソースノード）から、直接には通信信号が届かない任意の通信デバイス（宛先ノード）とデータを送受信するため、他の通信デバイス（中継ノード）を経由して通信を行う機能、すなわちマルチホップ通信機能を実現する方法が開示されている。
【０００８】
なお、アドホックネットワークにおいては、リアクティブ型のルーティングプロトコルとして代表的な非特許文献１に開示されているＤＳＲ（Ｄｙｎａｍｉｃ  Ｓｏｕｒｃｅ  Ｒｏｕｔｉｎｇ）や、非特許文献２に開示されているＡＯＤＶ（Ａｄ−Ｈｏｃ  Ｏｎ−Ｄｅｍａｎｄ  Ｄｉｓｔａｎｃｅ  Ｖｅｃｔｏｒ  Ｒｏｕｔｉｎｇ）が知られている。
【０００９】
無線通信が可能なシーケンサ群がアドホックネットワークを構築するためには、ＤＳＲやＡＯＤＶに従ってルーティング処理を行うルーティング処理機能があらかじめシーケンサに実装されていることが必要である。
【００１０】
シーケンサの制御動作に関する特定の処理回路をあらかじめ実装することなく、シーケンサの制御動作の追加、削除および変更が可能なシーケンス制御技術にて、イベント（Ｅｖｅｎｔ）とコンディション（Ｃｏｎｄｉｔｉｏｎ）とアクション（Ａｃｔｉｏｎ）とで記述された制御ルールに従って逐次処理が繰り返し実行されるようにしたものがある（例えば特許文献２参照）。
【００１１】
【特許文献１】特表２００３−５１６０３１号公報（段落０００８―００１２）
【特許文献２】特開２００４−７８５１７号公報（段落００１０―００１７）
【非特許文献１】“ダイナミック・ソース・ルーティング・プロトコル・フォー・モバイル・アドホック・ネットワークス（The Dynamic Source Routing Protocol for Mobile Ad Hoc Networks）”、［ｏｎｌｉｎｅ］、IETF MANET Working Group，INTERNET‐DRAFT、ｐ．３−７、［平成１６年６月１７日検索］、インターネット＜ＵＲＬ：http://www.ietf.org/internet-drafts/draft-ietf-manet-dsr-09.txt＞
【非特許文献２】“アドホック・オンデマンド・ディスタンス・ベクター・ルーティング（Ad hoc On‐Demand Distance Vector Routing）”、［ｏｎｌｉｎｅ］、IETF Network Working Group，Request for Comments、ｐ．２−３、［平成１６年６月１７日検索］、インターネット＜ＵＲＬ：http://www.moment.cs.ucsb.edu/pub/rfc3561.txt＞
【発明の開示】
【発明が解決しようとする課題】
【００１２】
大規模な空間を監視するためには、大量のシーケンサが必要であり、電力は電池などの有限リソースに頼らざるを得ないため、無線通信機能を有するシーケンサを用いて比較的大規模な空間を監視するようなセンサネットワークを形成するためには、各シーケンサは、十分小型で、低消費電力を実現したハードウェアを用いる必要がある。
【００１３】
このため、非力な処理能力しか持たないシーケンサ、具体的には、例えば１６ビット以下のマイクロプロセッサに数キロバイト程度のメモリ容量を備えた程度の規模のシーケンサを使用せざるを得ない。
【００１４】
特許文献２には、非力な処理能力のシーケンサを用いて効率的に制御ルールを処理するシーケンスデータ処理装置が開示されている。しかし、無線通信機能やアドホックルーティング機能が存在しないため、比較的大規模な空間を監視するようなセンサネットワークシステムに適用することはできない。
【００１５】
また、特許文献１、非特許文献１、および非特許文献２には、それぞれ、アドホックルーティング方法について記されているが、これらの方法は、各通信ノードにあらかじめアドホックルーティング処理機能が実装され、その機能に従って動作することが前提とされている。しかし、小容量のメモリしか持つことができないため、非力な処理能力のシーケンサにアドホックルーティング処理機能をあらかじめ組み込むことは困難である。
【００１６】
具体的には、ＡＯＤＶでは各通信ノードがルーティングテーブルを保持する必要があるが、非力な処理能力のシーケンサでは、ルーティングテーブルを記憶するメモリの確保が困難となる場合が考えられる。
【００１７】
また、ＤＳＲでは、ルーティングにおけるルート情報のメンテナンスなどの複雑な処理が必要であり、この処理機能を非力なシーケンサに実装することは現実的でない。
【００１８】
よって、比較的大規模な空間を監視するようなセンサネットワークシステムに、特許文献１、非特許文献１、および非特許文献２に開示されているシーケンス制御技術を適用することができない。
【００１９】
上記のようなことから、従来の技術では、比較的大規模な空間を監視するようなセンサネットワークシステムを構成する各シーケンサの接続状態を解析することができないという問題があった。
【００２０】
本発明は、上述した問題を解消し、通信ネットワークにおける接続関係を事前に考慮することなく比較的大規模な空間に分散して複数のデバイス（シーケンサ）が配置された場合であっても、その複数のデバイスによって構成される通信ネットワークシステムの通信トポロジ（接続形態）を事後的に導出することができるようにすることを目的とする。
【課題を解決するための手段】
【００２１】
本発明による通信トポロジ導出方法は、無線通信ネットワークを介してデータ通信を行う無線通信機能を有する複数のデバイスの無線通信ネットワークの接続状態を示す通信トポロジを導出する通信トポロジ導出方法であって、複数のデバイスは、ホストデバイス（例えばホストデバイス１０）と複数の入出力制御デバイス（例えば入出力制御デバイス１１０〜１４０）とを含み、それぞれ、少なくとも１の他のデバイスとデータ通信が可能な無線通信可能範囲（例えば電波到達範囲）に設置され（例えば図１、図７参照）、ホストデバイスは、複数の入出力制御デバイスそれぞれに個々の接続状態を応答させるための応答処理を実行させるための応答処理手順データ（例えば制御データ２０２）を無線通信ネットワークに向けて送信することで、当該無線通信ネットワークを介して、または、ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の入出力制御デバイスを経由して、応答処理手順データを複数の入出力制御デバイスそれぞれに送入し（例えばステップＳ２０２，Ｓ２０７，Ｓ２１４）、応答処理手順データに従った応答処理の実行を入出力制御デバイスに要求するための実行要求データ（例えばＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージ）を無線通信ネットワークに向けて送信し（例えばステップＳ２０３，Ｓ２０８，Ｓ２１５）、実行要求データの受信に応じて複数の入出力制御デバイスそれぞれで応答処理手順データに従って応答処理が実行されたことにより、無線通信ネットワークに向けて送信された当該複数の入出力制御デバイス個々の接続状態を示すそれぞれの応答情報（例えばＲＥＰＬＹ＿ＵＣＩＤメッセージ）を、無線通信ネットワークを介して、または、ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の入出力制御デバイスを経由して受信し（例えばステップＳ２０４，Ｓ２０９，Ｓ２１６）、受信した応答情報にもとづいて通信トポロジを導出する（例えばステップＳ２０５，Ｓ２１０，Ｓ２１７）ことを特徴とする。
【００２２】
上記のように構成したことで、通信ネットワークにおける接続関係を事前に考慮することなく分散して複数のデバイスが配置された場合であっても、複数のデバイスによって構成される通信ネットワークシステムの通信トポロジを事後的に導出することができる。また、通信トポロジの導出に必要な応答情報を送信させるためのシーケンス制御機能を各入出力制御デバイスに一時的に持たせることができるため、非力な処理能力しかもたない複数の入出力制御デバイスから応答情報を収集することができ、通信ネットワークシステムを構成する各デバイス間の通信トポロジを導出することができる。
【００２３】
ホストデバイスが、入出力制御デバイスからの応答情報を受信したあとに、当該入出力制御デバイスに送入した応答処理手順データの削除を指示する削除指示データを、無線通信ネットワークに向けて送信する（例えばステップＳ２１１，Ｓ２１８）ようにしてもよい。
【００２４】
上記のように構成したことで、同じ入出力制御デバイスから重複して応答情報が送られてくることを防止することができ、処理の効率化を図ることができる。
【００２５】
ホストデバイスが、入出力制御デバイスからの応答情報を受信する毎に、受信した応答情報が示す当該入出力制御デバイスの接続状態を追加登録していくことで通信トポロジを導出する（例えばステップＳ２０５，Ｓ２１０，Ｓ２１７）ようにしてもよい。
【００２６】
応答処理手順データは、例えば、宣言的に記述された制御ルール（例えば図６に示す各制御ルール）の集合によって構成される。
【００２７】
宣言的に記述された制御ルールは、例えば、イベントデータ、コンディションデータ、アクションデータのうち、少なくともアクションデータを含む２つ以上のデータによって記述され、イベントデータが示すイベントが発生したときに、コンディションデータが示すコンディションを評価し、アクションデータが示すアクションを実行することを示すルール、あるいは、イベントデータが示すイベントが発生したとき、またはコンディションデータが示すコンディションの評価結果に応じて、アクションデータが示すアクションを実行することを示すルールとされる。
【００２８】
ホストデバイスが、応答処理手順データを入出力制御デバイスに送入するための応答処理手順データ送入手段（例えばホストデバイス１０におけるステップＳ２０２，Ｓ２０７，Ｓ２１４を実行する部分。例えばトポロジ発見ルール送入部３１）を有するサーバコンピュータであるように構成されていてもよい。
【００２９】
ホストデバイスが、削除指示データを送信する削除指示データ送信手段（例えばホストデバイス１０におけるステップＳ２１１，Ｓ２１８を実行する部分。例えばトポロジ発見ルール削除部３２）を有するサーバコンピュータであるように構成されていてもよい。
【００３０】
入出力制御デバイスは、所定の情報を感知する情報感知装置（例えばセンサ）からの感知信号を入力する信号入力手段（例えば信号入力装置９０）と、所定の外部装置（例えばアクチュエータ）を制御するための制御信号を出力する信号出力手段（例えば信号出力装置９１）とを含む入出力信号制御用シーケンサであって、複数のデバイスを含む無線通信ネットワークシステム内で入出力制御デバイスを識別するためのデバイスＩＤを格納するデバイスＩＤ格納手段（例えばデバイスＩＤ格納部）と、無線通信ネットワークを介してデータの送受信を行う無線通信手段（例えば無線通信装置８０）と、応答処理手順データを構成する制御ルールを格納する制御ルール格納手段（例えば制御ルール格納部７１）と、制御ルールに従って処理を実行する制御ルール処理手段（例えば制御ルール処理部６１）と、ホストデバイスからの指示に応じて制御ルールを管理する制御ルール管理手段（例えばコマンド管理部６４）と、を有していてもよい。
【００３１】
本発明による通信トポロジ導出システムは、無線通信ネットワークを介してデータ通信を行う無線通信機能を有する複数のデバイスを備え、該複数のデバイスの無線通信ネットワークの接続状態を示す通信トポロジを導出する通信トポロジ導出システムであって、複数のデバイスは、ホストデバイスと複数の入出力制御デバイスとを含み、それぞれ、少なくとも１の他のデバイスとデータ通信が可能な無線通信可能範囲に設置され、ホストデバイスは、複数の入出力制御デバイスそれぞれに個々の接続状態を応答させるための応答処理を実行させるための応答処理手順データを無線通信ネットワークに向けて送信することで、当該無線通信ネットワークを介して、または、ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の入出力制御デバイスを経由して、応答処理手順データを複数の入出力制御デバイスそれぞれに送入する応答処理手順データ送入手段（例えばトポロジ発見ルール送入部３１）と、応答処理手順データに従った応答処理の実行を入出力制御デバイスに要求するための実行要求データを無線通信ネットワークに向けて送信する実行要求データ送信手段（例えばトポロジ発見用メッセージ送信・受信部３３）と、実行要求データの受信に応じて複数の入出力制御デバイスそれぞれで応答処理手順データに従って応答処理が実行されたことにより、無線通信ネットワークに向けて送信された当該複数の入出力制御デバイス個々の接続状態を示すそれぞれの応答情報を、無線通信ネットワークを介して、または、ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の入出力制御デバイスを経由して受信する応答情報受信手段（例えばトポロジ発見用メッセージ送信・受信部３３）と、受信した応答情報にもとづいて通信トポロジを導出する通信トポロジ導出手段（例えばトポロジ発見用受信メッセージ解析部３４）と、を含むことを特徴とする。
【００３２】
上記のように構成したことで、通信ネットワークにおける接続関係を事前に考慮することなく分散して複数のデバイスが配置された場合であっても、複数のデバイスによって構成される通信ネットワークシステムの通信トポロジを事後的に導出することができる。また、通信トポロジの導出に必要な応答情報を送信させるためのシーケンス制御機能を各入出力制御デバイスに一時的に持たせることができるため、非力な処理能力しかもたない複数の入出力制御デバイスから応答情報を収集することができ、通信ネットワークシステムを構成する各デバイス間の通信トポロジを導出することができる。
【００３３】
本発明による通信トポロジ導出サーバは、無線通信ネットワークを介してデータ通信を行う無線通信機能を有する複数のデバイスの無線通信ネットワークの接続状態を示す通信トポロジを導出する通信トポロジ導出サーバ（例えばホストデバイス１０）であって、複数のデバイスは、通信トポロジ導出サーバと複数の入出力制御デバイスとを含み、それぞれ、少なくとも１の他のデバイスとデータ通信が可能な無線通信可能範囲に設置され、複数の入出力制御デバイスそれぞれに個々の接続状態を応答させるための応答処理を実行させるための応答処理手順データを無線通信ネットワークに向けて送信することで、当該無線通信ネットワークを介して、または、ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の入出力制御デバイスを経由して、応答処理手順データを複数の入出力制御デバイスそれぞれに送入する応答処理手順データ送入手段と、応答処理手順データに従った応答処理の実行を入出力制御デバイスに要求するための実行要求データを無線通信ネットワークに向けて送信する実行要求データ送信手段と、実行要求データの受信に応じて複数の入出力制御デバイスそれぞれで応答処理手順データに従って応答処理が実行されたことにより、無線通信ネットワークに向けて送信された当該複数の入出力制御デバイス個々の接続状態を示すそれぞれの応答情報を、無線通信ネットワークを介して、または、ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の入出力制御デバイスを経由して受信する応答情報受信手段と、受信した応答情報にもとづいて通信トポロジを導出する通信トポロジ導出手段と、を含むことを特徴とする。
【００３４】
上記のように構成したことで、通信ネットワークにおける接続関係を事前に考慮することなく分散して複数のデバイスが配置された場合であっても、複数のデバイスによって構成される通信ネットワークシステムの通信トポロジを事後的に導出することができる。また、通信トポロジの導出に必要な応答情報を送信させるためのシーケンス制御機能を各入出力制御デバイスに一時的に持たせることができるため、非力な処理能力しかもたない複数の入出力制御デバイスから応答情報を収集することができ、通信ネットワークシステムを構成する各デバイス間の通信トポロジを導出することができる。
【００３５】
本発明による通信トポロジ導出プログラムは、無線通信ネットワークを介してデータ通信を行う無線通信機能を有する複数のデバイスの無線通信ネットワークの接続状態を示す通信トポロジを導出させるための通信トポロジ導出プログラムであって、複数のデバイスは、ホストデバイスと複数の入出力制御デバイスとを含み、それぞれ、少なくとも１の他のデバイスとデータ通信が可能な無線通信可能範囲に設置され、ホストデバイスに、複数の入出力制御デバイスそれぞれに個々の接続状態を応答させるための応答処理を実行させるための応答処理手順データを無線通信ネットワークに向けて送信することで、当該無線通信ネットワークを介して、または、ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の入出力制御デバイスを経由して、応答処理手順データを複数の入出力制御デバイスそれぞれに送入するステップと、応答処理手順データに従った応答処理の実行を入出力制御デバイスに要求するための実行要求データを無線通信ネットワークに向けて送信するステップと、実行要求データの受信に応じて複数の入出力制御デバイスそれぞれで応答処理手順データに従って応答処理が実行されたことにより、無線通信ネットワークに向けて送信された当該複数の入出力制御デバイス個々の接続状態を示すそれぞれの応答情報を、無線通信ネットワークを介して、または、ホストデバイスの無線通信可能範囲内に設置されている入出力制御デバイスを含む１または２以上の入出力制御デバイスを経由して受信するステップと、受信した応答情報にもとづいて通信トポロジを導出するステップとを実行させるためのものである。
【００３６】
上記のように構成したことで、通信ネットワークにおける接続関係を事前に考慮することなく分散して複数のデバイスが配置された場合であっても、ホストデバイスに、複数のデバイスによって構成される通信ネットワークシステムの通信トポロジを事後的に導出させることができる。また、ホストデバイスに、通信トポロジの導出に必要な応答情報を送信させるためのシーケンス制御機能を各入出力制御デバイスに一時的に持たせるための処理を実行させることができる。このため、ホストデバイスに、非力な処理能力しかもたない複数の入出力制御デバイスから応答情報を収集させることができ、通信ネットワークシステムを構成する各デバイス間の通信トポロジを導出させることができる。
【発明の効果】
【００３７】
本発明によれば、通信トポロジの導出に必要な応答情報を送信させるためのシーケンス制御機能を各入出力制御デバイスに一時的に持たせ、各入出力制御デバイスからの応答情報をホストデバイスが取得する構成としたので、通信ネットワークにおける接続関係を事前に考慮することなく分散して複数のデバイス（シーケンサ）が配置された場合であっても、複数のデバイスによって構成される通信ネットワークシステムの通信トポロジ（接続形態）を事後的に導出することができる。
【００３８】
また、本発明によれば、通信トポロジの導出に必要な応答情報を送信させるためのシーケンス制御機能を各入出力制御デバイスに一時的に持たせる構成としたので、小規模のコンピュータリソースしかもたない多数の入出力制御デバイスと、一般に使用されているパーソナルコンピュータと同程度の規模のコンピュータリソースをもつサーバとによって通信ネットワークシステムが構成されている場合であっても、その通信ネットワークシステムを構成する各デバイス間の通信トポロジを導出することができる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施の形態について図面を参照して説明する。
図１は、本発明の一実施の形態における通信ネットワークシステムの概略を示す説明図である。
【００４０】
図１に示す通信ネットワークシステムは、ホストノード（ホストデバイス）１０と、複数のノード（入出力制御デバイス）１〜７，ｎ（ｎは任意の自然数）とを含む。ノード１〜７，ｎは、それぞれ同様の構成とされる。なお、入出力制御デバイスは、いくつ設けられていてもよい。
【００４１】
図１に示すように、ホストノード１０および複数のノード１〜７，ｎは、それぞれ、無線通信機能を有しており、１つ以上の他のノードと互いに無線通信が可能な電波到達範囲内に設置される。
【００４２】
すなわち、ホストノード１０および複数のノード１〜７，ｎは、それぞれ、少なくとも１の他のノードが互いに電波到達範囲内となる任意の位置に設置され、電波到達範囲内に設置されている１以上の他のノードと無線通信を行うことが可能な状態とされる。
【００４３】
以下に示す一実施の形態では、ほぼ無作為に各ノード１０，１〜７，ｎが配置された図１に示すような通信ネットワークシステムにおいて、ホストノード１０が、各ノード１〜７，ｎを識別するＩＤを取得することができるとともに、各ノード１〜７，ｎが互いに電波到達範囲内にあるか否かを把握することができ、通信ネットワークの接続状態（通信トポロジ）を導出することが実現されている。
【００４４】
図２は、ホストデバイス（ホストノード）１０の構成例を示すブロック図である。また、図３は、入出力制御デバイス（ノード１〜７，ｎ）２０の構成例を示すブロック図である。本例の通信ネットワークシステムは、ホストデバイス１０と、複数の入出力制御デバイス１１とが、図１に示したように配置されたシステムであるものとする。
【００４５】
図２に示すように、ホストデバイス１０は、記憶装置２０と、演算装置３０と、無線通信装置４０とを含む。
【００４６】
記憶装置２０は、例えばＲＡＭなどの記憶媒体によって構成され、トポロジ発見ルール格納部２１と、発見トポロジ格納部２２と、デバイスＩＤ格納部２３とを有する。
【００４７】
トポロジ発見ルール格納部２１は、通信トポロジ発見（通信ネットワークの接続状態の導出）のための制御ルールを格納する記憶媒体である。なお、「制御ルール」については、後で詳しく説明する。
【００４８】
発見トポロジ格納部２２は、後述するトポロジ発見用受信メッセージ解析部３４によって生成された通信トポロジを格納する記憶媒体である。
【００４９】
デバイスＩＤ格納部２３は、ホストデバイス１０を識別するための「デバイスＩＤ」を格納する。「デバイスＩＤ」は、各入出力制御デバイスおよびホストデバイスから構成される通信ネットワーク上で、それぞれのデバイスを一意に特定するためのＩＤを意味する。
【００５０】
演算装置３０は、例えばＣＰＵなどの制御処理装置によって構成され、トポロジ発見ルール送入部３１と、トポロジ発見ルール削除部３２と、トポロジ発見用メッセージ送信・受信部３３と、トポロジ発見用受信メッセージ解析部３４とを有する。
【００５１】
トポロジ発見ルール送入部３１は、トポロジ発見ルール格納部２１に格納されている制御ルールを、通信ネットワークを構成する各入出力制御デバイスに送入するためのコマンドを生成する処理や、生成したコマンドを送信する処理等を実行する。
【００５２】
トポロジ発見ルール削除部３２は、通信ネットワークを構成する各入出力デバイスに格納されている制御ルールを削除するためのコマンドを生成する処理や、生成したコマンドを送信する処理等を実行する。
【００５３】
トポロジ発見用メッセージ送信・受信部３３は、トポロジ発見のための要求メッセージを生成する処理や、生成した要求メッセージを送信する処理を実行する。また、送信した要求メッセージに対する応答メッセージを受信する処理なども行う。
【００５４】
トポロジ発見用受信メッセージ解析部３４は、トポロジ発見用メッセージ送信・受信部３３で受信した応答メッセージを解析し、解析結果にもとづいて通信トポロジを生成する処理等を実行する。また、トポロジ発見用受信メッセージ解析部３４は、生成した通信トポロジを発見トポロジ格納部２２に格納するための処理も行う。
【００５５】
無線通信装置４０は、例えば、本例の通信ネットワークを介して通信データを送信・受信する機能を有する。具体的には、無線通信装置４０は、例えば、トポロジ発見ルール送入部３１やトポロジ発見ルール削除部３２からのコマンド送信指示に従ってコマンドを送信する処理や、トポロジ発見用メッセージ送信・受信部３３からのメッセージの送信指示に従ってメッセージを送信する処理や、トポロジ発見用メッセージ送信・受信部３３が受け取るメッセージを受信する処理などを行う。
【００５６】
なお、本例のホストデバイス２０は、一般に、ＣＰＵおよびＲＡＭ、ＲＯＭ、各種Ｉ／Ｏ装置等を含む構成とされたコンピュータ装置により実現することができる。また、ホストデバイス２０が有する各種の機能は、例えば、ホストデバイス２０に所定の制御プログラム（通信トポロジ導出プログラム）を搭載し、ホストデバイス２０を構成するＣＰＵに、制御プラグラムに従った所定の演算処理や各部の制御を実行させることで実現される。
【００５７】
ここで、制御ルールについて説明する。「制御ルール」は、あるイベントが発生した時に、ある内部状態を評価し、あるアクションを実行することを示すルール（ＥＣＡルール）である。なお、本例では、「制御ルール」には、あるイベントが発生した時に、あるアクションを実行することを示すルールや、ある内部状態を評価し、あるアクションを実行することを示すルールも含まれる。
【００５８】
具体的には、制御ルールは、例えば以下の（１）〜（４）のような内容に設定される。以下の（１）〜（４）には、あるイベントが発生した時に、あるアクションを実行することを示す制御ルールが示されている。
（１） 信号入力状態（Ｅｖｅｎｔ＿ＩＮＰＵＴ）に応じて特定の動作を実行する。
（２） 内部状態（Ｅｖｅｎｔ＿ＳＴＡＴＥ）に応じて特定の動作を実行する。
（３） あらかじめ設定した時間が経過したとき（Ｅｖｅｎｔ＿ＴＩＭＥＲ）に特定の動作を実行する。
（４） 特定のメッセージを受信したとき（Ｅｖｅｎｔ＿ＭＳＧ）に特定の動作を実行する。
【００５９】
なお、制御ルールにおける「特定の動作」は、例えば以下の（１）〜（４）のような内容に設定される。以下の（１）〜（４）に示す「特定の動作」は、例えば上記の（１）〜（４）に示した任意の制御ルールにて用いられる。
（１） 信号出力動作（Ａｃｔｉｏｎ＿ＯＵＴＰＵＴ）
（２） 内部状態の値の更新（Ａｃｔｉｏｎ＿ＳＴＡＴＥ）
（３） タイマの時間設定（Ａｃｔｉｏｎ＿ＴＩＭＥＲ）
（４） 特定のメッセージの送信（Ａｃｔｉｏｎ＿ＭＳＧ）
【００６０】
図３に示すように、入出力制御デバイス１１は、演算装置６０と、記憶装置７０と、無線通信装置８０と、信号入力装置９０と、信号出力装置９１とを含む。
【００６１】
演算装置６０は、例えばＣＰＵなどの制御処理装置によって構成され、制御ルール処理部６１と、タイマ管理部６２と、内部状態管理部６３と、コマンド管理部６４とを有する。
【００６２】
制御ルール処理部６１は、後述する制御ルール格納部７１に格納されている制御ルールを参照し、制御ルールに従って特定の動作を実行する。すなわち、制御ルール処理部６１は、制御ルールに設定されているあるイベントが発生したときに、制御ルールに設定されている特定の動作を実行する。
【００６３】
「イベントが発生したとき」は、例えば、信号入力状態（Ｅｖｅｎｔ＿ＩＮＰＵＴ）が所定の状態となったとき、内部状態（Ｅｖｅｎｔ＿ＳＴＡＴＥ）が所定の状態となったとき、あらかじめ設定した時間が経過したとき（Ｅｖｅｎｔ＿ＴＩＭＥＲ）、特定のメッセージを受信したとき（Ｅｖｅｎｔ＿ＭＳＧ）などが考えられる。
【００６４】
また、「特定の動作」は、例えば、信号出力動作（Ａｃｔｉｏｎ＿ＯＵＴＰＵＴ）、内部状態の値の更新（Ａｃｔｉｏｎ＿ＳＴＡＴＥ）、タイマの時間設定（Ａｃｔｉｏｎ＿ＴＩＭＥＲ）、特定のメッセージの送信（Ａｃｔｉｏｎ＿ＭＳＧ）などの動作が考えられる。
【００６５】
制御ルール処理部６１は、本例では、制御ルールにもとづく特定の動作を、逐次的に繰り返す。なお、一般に、制御ルールにもとづく逐次処理は、逐次的でない手続的な処理に比べて低負荷の簡単な処理とすることができる。このため、１６ビット以下のマイクロプロセッサに数キロバイトのメモリ容量を持つ程度のデバイス（シーケンサ）であっても、本実施の形態に示されている各種の機能を搭載することができる。
【００６６】
タイマ管理部６２は、制御ルール処理部６１によってタイマの時間設定（Ａｃｔｉｏｎ＿ＴＩＭＥＲ）が行われたことに応じてタイマを起動し、設定された時間が経過したときにタイマ発火イベント（Ｅｖｅｎｔ＿ＴＩＭＥＲ）を発生する処理を行う。
【００６７】
内部状態管理部６３は、制御ルール処理部６１によって、内部状態を更新するアクション（Ａｃｔｉｏｎ＿ＳＴＡＴＥ）が行われたことに応じて内部状態の値を変更し、また、内部状態が変化すると内部状態変化イベント（Ｅｖｅｎｔ＿ＳＴＡＴＥ）を発生する処理を行う。
【００６８】
コマンド管理部６４は、無線通信装置８０で受信したコマンドに応じて、制御ルール格納部７１に制御ルールを追加する処理、制御ルール格納部７１に格納されている制御ルールを削除する処理、あるいは、制御ルールの逐次実行を一時的に停止させる処理や、一時的に停止した逐次実行を再開させる処理などを行う。
【００６９】
記憶装置７０は、例えばＲＡＭなどの記憶媒体によって構成され、制御ルール格納部７１と、デバイスＩＤ格納部７２とを有する。
【００７０】
制御ルール格納部７１は、ホストデバイス１０から送入された０以上の制御ルールを格納する記憶媒体である。なお、制御ルール格納部７１は、本例では、通信トポロジの導出処理が実行されるときなどの制御ルールが使用されるとき以外は、当該制御ルールが格納されていない状態となり得る。制御ルール格納部７１に格納された制御ルールは、演算装置６０に読み込まれ、入出力制御デバイス１１の動作を決定するために使用される。
【００７１】
デバイスＩＤ格納部７２は、自己（入出力制御デバイス１１）を一意に識別するためのデバイスＩＤを格納する。格納されているデバイスＩＤは、他の入出力制御デバイスやホストデバイス１０への通信、すなわち、メッセージの送信の際に用いられる。
【００７２】
無線通信装置８０は、例えば無線通信ネットワークを介して通信データを送信・受信する機能を有する。すなわち、無線通信装置８０は、他の入出力制御デバイスやホストデバイス１０との間で、メッセージ及びコマンドの送受信を行う機能を有する。
【００７３】
ここで、「メッセージ」とは、メッセージを識別するためのメッセージ固有のＩＤ（メッセージＩＤ）が割り当てられた通信信号である。
【００７４】
また、「コマンド」とは、入出力制御デバイス１１の動作を外部から制御するための信号である。具体的には、コマンドとして、入出力制御デバイスに制御ルールを追加するコマンド（ＡＤＤ＿ＥＣＡ）、制御ルールを削除するコマンド（ＣＬＲ＿ＥＣＡ）、制御ルールを有効にするコマンド（ＡＢＬＥ＿ＥＣＡ）、制御ルールを無効にするコマンド（ＥＮＡＢＬＥ＿ＥＣＡ）などが用いられる。
【００７５】
無線通信装置８０は、受信したメッセージ及びコマンドを、必要に応じて、他の入出力制御デバイスやホストデバイス１０へ送信する機能を有する。この機能は、一般に「マルチホップ通信機能」と呼ばれる。なお、マルチホップ通信機能は、無線通信装置４０にも備えられている。
【００７６】
ホストデバイス１０や入出力制御デバイス１１がメッセージやコマンドを送信する際には、送信相手（最終的にメッセージやコマンドの受信をしてもらいたい入出力制御デバイス）のデバイスＩＤを指定して送信する。この時、送信相手に到達するまでの間で信号を中継する入出力制御デバイスのデバイスＩＤを指定して、メッセージまたはコマンドを送信することが可能である。
【００７７】
例えば、図１に示すノード１〜７のデバイスＩＤがＩＤ１番〜ＩＤ７番であるとすると、ホストデバイス１０がノード５にメッセージを送信する場合に、送信相手としてＩＤ５番を指定するとともに、最初の経由デバイスとしてＩＤ１番を指定し、さらに次の経由デバイスとしてＩＤ３番を指定することで、ノード１とノード３を順番に通過させてノード５にメッセージを送信することができる。
【００７８】
なお、図１に示すように、ホストデバイス１０とノード１、ノード１とノード３、ノード３とノード５は、それぞれ、互いに電波到達範囲内にある。
【００７９】
また、無線通信装置８０は、宛先を指定しない通信、いわゆる放送（ブロードキャスト）を実行する機能も有している。この機能は、無線通信装置４０にも備えられている。
【００８０】
例えば、ホストデバイス１０が、ＩＤ１番、ＩＤ３番、放送、という手順でマルチホップさせると、ＩＤ３番のデバイス（ノード３）と互いに電波到達範囲内にあるすべてのデバイス（図１ではノード５のみ）に対して、メッセージやコマンドを送信することができる。
【００８１】
無線通信装置８０は、受信したメッセージの宛先のデバイスＩＤが、デバイスＩＤ格納部７２に格納されたデバイスＩＤと一致する場合（自分宛のメッセージである場合）に、メッセージ受信イベント（Ｅｖｅｎｔ＿ＭＳＧ）を発生する。
【００８２】
また、無線通信装置８０は、上記のように受信したコマンドが自分宛である場合には、受信したコマンドをコマンド管理部６４に送信し、受信したコマンドの内容をコマンド管理部６４に伝達する処理を行う。
【００８３】
なお、メッセージやコマンドには、送信相手のデバイスＩＤ、中継するデバイスＩＤの他、送信者のデバイスＩＤが含まれる。よって、メッセージやコマンドを受信したデバイスにて、メッセージやコマンドの送信デバイスを認識することができる。
【００８４】
信号入力装置９０は、例えばセンサなどの情報取得装置からの入力信号を受信して、入力イベント（Ｅｖｅｎｔ＿ＩＮＰＵＴ）を発生する。
【００８５】
信号出力装置９１は、制御ルール処理部６１の処理結果にもとづいて、アクチュエータなどの外部装置を制御するための出力信号を出力する。
【００８６】
なお、本例の入出力制御デバイス１１は、一般に、ＣＰＵおよびＲＡＭ、ＲＯＭ、各種Ｉ／Ｏ装置等を含む構成とされたコンピュータ装置により実現することができる。また、入出力制御デバイス１１が有する各種の機能は、例えば、入出力制御デバイス１１に所定の制御プログラムを搭載し、入出力制御デバイス１１を構成するＣＰＵに、制御プラグラムに従った所定の演算処理や各部の制御を実行させることで実現される。
【００８７】
次に、本例の通信ネットワークシステムの動作について説明する。
図４は、本例の通信ネットワークシステムを構成するホストデバイス（ホストノード）１０が実行する通信トポロジ導出処理の例を示すフローチャートである。
【００８８】
なお、ここでは、図１に示した各デバイスのうち、ホストノード１０とノード１〜７とによって通信ネットワークシステムが構成されているものとして説明する。
【００８９】
通信トポロジ導出処理の前処理において、すべての入出力制御デバイス（ノード１〜７）には、制御ルールＡが送入されているものとする。
【００９０】
すなわち、ノード１〜７の制御ルール格納部（制御ルール格納部７１参照）に制御ルールＡが格納されている。なお、制御ルールＡは、所定のイベントが発生したときに所定の処理を実行させるための制御ルールであり、例えば後述する制御ルール２０１（図６参照）のような制御ルールが用いられる。
【００９１】
次いで、ホストデバイス１０は、ホップ回数カウンタＫに「１」を設定する（ステップＳ１０１）。ホップ回数カウンタＫは、例えば記憶装置２０内に記憶されており、注目する入出力制御デバイスにデータを送信する際に必要なホップ数が設定されるカウンタである。例えば、ホップ回数カウンタＫのカウント値が「２」であれば、２回のホップ数でデータを送信することが可能な入出力制御デバイスに注目することを示している。
【００９２】
次いで、ホストデバイス１０は、データを送信する際に必要なホップ数がＫ回である入出力制御デバイスのデバイスＩＤを取得する（ステップＳ１０２〜ステップＳ１０４）。
【００９３】
この場合、ホップ回数カウンタＫが「１」であれば、放送機能を用いて、トポロジ発見（導出）処理のための制御ルールＢ、例えば後述する制御ルール２０２（図６参照）を入出力デバイスに送入し（ステップＳ１０２）、次に、放送機能を用いて、ＩＤ要求用のメッセージを送信し（ステップＳ１０３）、そのメッセージに対する応答メッセージが送信されてくるのを待ち（ステップＳ１０４）、その応答メッセージを取得する（ステップＳ１０５）ことで、１回のホップでデータ通信が可能な全ての入出力制御デバイス（本例ではノード１のみ）のデバイスＩＤを取得する。
【００９４】
また、ホップ回数カウンタＫが２以上であれば、「Ｋ−１」回以下のホップでデータ通信が可能な各入出力制御デバイスに対してはマルチホップ通信機能を用いてＩＤ要求用のメッセージを経由させ、最後の経由デバイスから最終的な送信相手に対しては放送機能を用いてＩＤ要求用のメッセージを送信させることで、そのメッセージに対する応答メッセージを取得し、Ｋ回のホップでデータ通信が可能な全ての入出力制御デバイスのデバイスＩＤを取得する。
【００９５】
なお、ＩＤ要求用のメッセージを受信した各入出力制御デバイスは、それぞれ、制御ルール格納部（制御ルール格納部７１参照）に格納されている制御ルールＡおよび制御ルールＢに従って、自己のデバイスＩＤを含む応答メッセージを送信する。
【００９６】
ステップＳ１０５にてデバイスＩＤを取得すると、ホストデバイス１０は、取得したデバイスＩＤが付与されている入出力制御デバイスを追加したトポロジツリーを生成し、発見トポロジ格納部２２に格納する（ステップＳ１０６）。なお、「トポロジツリー」は、メッシュ構造となるものを含む概念であるものとする。
【００９７】
なお、トポロジツリーは、通信ネットワークシステムを構成する各デバイスの接続状態を示す通信トポロジを木構造で表したデータである。
【００９８】
次いで、ホストデバイス１０は、あらかじめ定められている終了条件が成立していなければ（ステップＳ１０７のＮ）、ホップ回数カウンタＫのカウント値を１加算して（ステップＳ１０８）、ステップＳ１０２の処理に戻る。その後、ステップＳ１０２〜Ｓ１０８が繰り返し実行されることで、トポロジツリーに各入出力制御デバイスが追加されていく。
【００９９】
終了条件は、例えば、ホップ数がマルチホップで送信できるコマンドの制限を越えたときや、すべての入出力制御デバイスを発見し終わったときなどとして、あらかじめ定められている。
【０１００】
一方、終了条件が成立していれば（ステップＳ１０７のＹ）、ホストデバイス１０は、通信トポロジ導出処理を終了する。そして、通信トポロジ導出処理が終了した時点で発見トポロジ格納部２２に格納されているトポロジツリーが通信トポロジの導出結果となる。
【０１０１】
図５は、通信トポロジ導出処理によって生成されるトポロジツリーの例を示す説明図である。図５には、図１に示した各デバイスのうちのホストノード１０とノード１〜７とによって通信ネットワークシステムが構成されているとした場合に、通信トポロジ導出処理によって生成されるトポロジツリーの例が示されている。
【０１０２】
図５に示すトポロジツリーは、ホップ回数カウンタＫが「１」のときのステップＳ１０５にてノード１のデバイスＩＤが取得され、ホップ回数カウンタＫが「２」のときのステップＳ１０５にてノード２およびノード３のデバイスＩＤが取得され、ホップ回数カウンタＫが「３」のときのステップＳ１０５にてノード４およびノード５のデバイスＩＤが取得され、ホップ回数カウンタＫが「４」のときのステップＳ１０５にてノード６およびノード６のデバイスＩＤが取得されたことにより、発見されたノードが各段階のステップＳ１０６にてツリー構造に追加されていくことで生成されたものである。
【０１０３】
なお、ホップ回数カウンタＫが「３」のときのステップＳ１０５では、ノード２経由でノード４のデバイスＩＤが取得され、ノード３経由でノード５のデバイスＩＤが取得される。同様に、ホップ回数カウンタＫが「４」のときのステップＳ１０５では、ノード４経由でノード６およびノード６のデバイスＩＤが取得され、ノード５経由ではデバイスＩＤが取得されない。このため、図５に示すようなトポロジツリーとなる。
【０１０４】
以上に説明したように、上述した実施の形態では、デバイス（シーケンサ）を適当に配置した通信ネットワークシステムにおいて、サーバ（ホストデバイス１０）から通信トポロジの導出（発見）のための制御ルールを各デバイスに送入し、メッセージを送受信することによって各デバイスの設置状態を認識する構成としたので、分散して配置される複数のデバイス（シーケンサ）の通信ネットワークにおける接続関係を事前に考慮しておく必要がなく、各デバイスが配置されたあとに事後的に通信ネットワークシステムにおける通信トポロジを導出することができる。
【０１０５】
また、上述した実施の形態では、各デバイスに制御ルールを送入し、その制御ルールに従って処理を実行させることで、直接または他のデバイスを経由して、各デバイスのデバイスＩＤと、デバイスＩＤの送信経路（経由デバイスや経由順序）とを含む応答メッセージを取得する構成としたので、少ないコンピュータリソースしかもたない多数の入出力制御デバイスと、一般に使用されているパーソナルコンピュータと同程度のコンピュータリソースをもつサーバとによって通信ネットワークシステムが構成されている場合であっても、その通信ネットワークシステムを構成する各デバイス間の通信トポロジ（接続形態）を導出することができるようになる。
【０１０６】
すなわち、各デバイスに制御ルールを送入し、その制御ルールに従って処理を実行させる構成としたので、メッセージ通信のような基本的な通信機能を備えているが、メモリ容量の限界によって通信トポロジを導出するための機能を常時備えておくことができないデバイス（例えばシーケンサ）に対し、一時的に、通信トポロジ導出機能を持たせることができる。すなわち、メモリ容量の限界によって制御ルールをあらかじめ格納しておくことができないデバイスによって通信ネットワークシステムが構成されていたとしても、その通信ネットワークシステムを構成する各デバイス間の通信トポロジを導出することができる。
【０１０７】
そして、通信トポロジを導出（発見）することができるため、その後は、一般的なソースルーティング（始点経路制御）によって、目的の入出力制御デバイスまで送信メッセージを確実に届けることができるようになる。すなわち、通信トポロジが導出されているので、送信するメッセージのヘッダに経由するルートの入出力制御デバイスのデバイスＩＤをすべて記述することができ、送信メッセージが通信ネットワーク上でループしてしまうことを防止することができるため、送信メッセージを確実に届けることができる。
【０１０８】
なお、上述した実施の形態では、通信トポロジの導出のために制御ルールを送入する構成としていたが、通信トポロジの導出処理中、あるいは導出後に、各デバイスの制御ルールの追加や変更を行うようにしてもよい。このように構成することで、各デバイスが実装するセンサのデータをサーバで収集したり、アクチュエータをサーバから遠隔で操作することができるようになる。よって、通信ネットワークの構築や設営工事の専門知識がなくても、デバイスを容易に設置することができるようになり、システム構築から実運用までのシステム管理者の負荷を軽減することができる。
【０１０９】
また、上述した実施の形態においては、ステップＳ１０３にてＩＤ要求用のメッセージを送信したあと、ステップＳ１０４にてそのメッセージに対する応答メッセージが送信されてくるのを所定期間待つ。この所定期間は、例えば、挿入した制御ルール等（例えばＩＤ要求用のメッセージの受信によって設定されるタイマの計測時間）によって特定され得る応答メッセージが送信されてくる可能性のある最長の時間よりも長い期間とされる。
【０１１０】
また、上述した実施の形態では特に言及していないが、入出力制御デバイス１１には、例えば、シーケンサ等の組込型デバイス、携帯電話機、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ  Ｐｈｏｎｅ  Ｓｙｓｔｅｍ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｃｅ／Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ：個人向け携帯型情報通信機器）等の無線通信機能を有する小型の情報端末装置であって、センサ等の情報取得装置からの入力信号およびアクチュエータ等の外部装置を制御するための出力信号を処理する機能を備えた入出力制御装置が適用される。
【実施例１】
【０１１１】
次に、本発明の第１の具体的実施例について説明する。
本実施例では、具体的な制御ルールを例示し、その制御ルールに従って実行される通信トポロジ導出処理について説明する。
【０１１２】
図６は、本実施例で用いる制御ルール２０１，２０２を示す説明図である。制御ルール２０１は、内部状態として「所定のフラグ」を評価し、そのフラグがオン状態となったことに応じて、アクションとして「デバイスＩＤに比例した時間のタイマの設定」を行うことを示すルールである。
【０１１３】
図６に示すように、制御ルール２０２には、イベントとして「ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージの受信」が発生したときに、アクションとして「所定のフラグをオン状態とする」処理を行うことを示す制御ルールと、イベントとして「タイマの発火（タイマで計測していた時間が経過）」が発生したときに、アクションとして「ＲＥＰＬＹ＿ＵＣＩＤメッセージを送信する」処理を行うことを示す制御ルールとが設定されている。
【０１１４】
図７は、本実施例における通信ネットワークシステムの概略を示す説明図である。図７に示すように、本実施例における通信ネットワークシステムは、通信トポロジ導出処理を実行するホストデバイス１００と、４つの入出力制御デバイス１１０〜１４０とを含む。
【０１１５】
図７には、ホストデバイス１００の電波到達範囲１０１、入出力制御デバイス１１０の電波到達範囲１１１、入出力デバイス１２０の電波到達範囲１２１、入出力制御デバイス１３０の電波到達範囲１３１、および入出力デバイス１４０の電波到達範囲１４１が示されている。
【０１１６】
なお、ホストデバイス１００は、上述したホストデバイス１０と同様に構成される。また、各入出力制御デバイス１１０〜１４０は、それぞれ、上述した入出力制御デバイス１１と同様に構成される。
【０１１７】
図８は、本実施例におけるホストデバイス１００が実行する通信トポロジ導出処理を示すフローチャートである。この例では、ホストデバイス１００は、図６に示す制御ルール２０２を用いて以下の通信トポロジ導出処理を実行し、メッシュ構造の通信トポロジを導出する。
【０１１８】
通信トポロジ導出処理の前処理において、すべての入出力制御デバイス１１０〜１４０に制御ルール（ＷＡＩＴ＿ＵＣＩＤルール）２０１が格納されているものとする。
【０１１９】
制御ルール（ＷＡＩＴ＿ＵＣＩＤルール）２０１の格納には、図７に示す本例の通信ネットワークシステムには含まれない装置と例えば有線で接続して、送入することが可能である。
【０１２０】
また、すべての入出力制御デバイス１１０〜１４０を、ホストデバイス１００の電波到達範囲１０１内に設置すれば、無線通信を利用して、制御ルール（ＷＡＩＴ＿ＵＣＩＤルール）２０１を送入することが可能である。
【０１２１】
次いで、ホストデバイス１００は、１回のホップ数でデータ通信が可能な未知の入出力制御デバイスに、制御ルール（ＲＥＰＬＹ  ＭＥＳＳＡＧＥルール）２０２を追加送入するために、ＡＤＤ＿ＥＣＡコマンドを生成し、放送によって送信する（ステップＳ２０２）。
【０１２２】
制御ルール２０２を受信した入出力制御デバイスは、自己の制御ルール格納部（例えば制御ルール格納部７１参照）に、制御ルール２０２を追加して格納する。この例では、ホストデバイス１００と互いに電波到達範囲に設置されている２つの入出力制御デバイス１１０，１２０によって制御ルール２０２が受信され格納される。
【０１２３】
その後、ホストデバイス１００は、１回のホップ数でデータ通信が可能な未知の入出力制御デバイスに、デバイスＩＤの要求を行うために、ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを放送により送信する（ステップＳ２０３）。
【０１２４】
この例では、ホストデバイス１００と互いに電波到達範囲に設置されている２つの入出力制御デバイス１１０，１２０によってＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージが受信される。
【０１２５】
ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを受信した入出力制御デバイス１１０，１２０は、それぞれ、制御ルール２０２に従って所定のフラグをオン状態とし、制御ルール２０１に従ってタイマを設定する。
【０１２６】
そして、タイマが発火すると、入出力制御デバイス１１０，１２０は、制御ルール２０２に従って、自己のデバイスＩＤと通信ネットワーク上の接続状態とを応答するために、自己のデバイスＩＤとデータ通信経路を示す情報（経由デバイスを示す情報：ここでは経由デバイスは存在しない）とを含むＲＥＰＬＹ＿ＵＣＩＤメッセージをホストデバイス１００に送信する。
【０１２７】
ホストデバイス１００は、ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを受信した入出力制御デバイス１１０，１２０からの返信であるＲＥＰＬＹ＿ＵＣＩＤメッセージを受信する（ステップＳ２０４）。
【０１２８】
そして、ホストデバイス１００は、受信したＲＥＰＬＹ＿ＵＣＩＤメッセージに含まれている送信元のデバイスＩＤなどをデバイスＩＤ格納部２３に格納し、トポロジツリーに入出力制御デバイス１１０，１２０を追加する（ステップＳ２０５）。
【０１２９】
上記の処理によって、ホストデバイス１００により、１ホップでデータ通信を行うことが可能な入出力制御デバイス１１０，１２０が発見され、その入出力制御デバイス１１０，１２０を追加した通信トポロジが導出（生成）される。
【０１３０】
次いで、ホストデバイス１００は、２ホップでデータ通信を行うことが可能な入出力制御デバイスを発見するための処理に移行する。
【０１３１】
ホストデバイス１００は、１ホップでデータ通信を行うことが可能な入出力制御デバイスのうち、未だ選択されていない入出力制御デバイスを選択する（ステップＳ２０６）。本例では、デバイスＩＤを選択することによって入出力制御デバイスを選択する。また、本例では、未選択のデバイスＩＤが複数ある場合には、最小値のデバイスＩＤを選択する。そして、選択したデバイスＩＤをもつ入出力制御デバイスに注目する。
【０１３２】
ホストデバイス１００は、現在注目している入出力制御デバイスを経由して２回のホップ数でデータ通信が可能な未知の入出力制御デバイスに、制御ルール（ＲＥＰＬＹ  ＭＥＳＳＡＧＥルール）２０２を追加送入するために、ＡＤＤ＿ＥＣＡコマンドを生成して送信する（ステップＳ２０７）。
【０１３３】
ステップＳ２０７では、ホストデバイス１００は、１ホップ目に注目している入出力制御デバイスのＩＤを設定し、２ホップ目に放送を設定したマルチホップ指定によりＡＤＤ＿ＥＣＡコマンドを送信する。
【０１３４】
制御ルール２０２を受信した入出力制御デバイスは、自己の制御ルール格納部（例えば制御ルール格納部７１参照）に、制御ルール２０２を追加して格納する。この例では、現在注目している入出力制御デバイスが入出力制御デバイス１１０であれば、入出力制御デバイス１１０と互いに電波到達範囲に設置されている２つの入出力制御デバイス１３０，１４０によって制御ルール２０２が受信され格納される。また、現在注目している入出力制御デバイスが入出力制御デバイス１２０であれば、入出力制御デバイス１２０と互いに電波到達範囲に設置されている入出力制御デバイスが存在しないため、何れの入出力制御デバイスにも制御ルール２０２は受信されない。
【０１３５】
その後、ホストデバイス１００は、ステップＳ２０３と同様に、２回のホップ数でデータ通信が可能な未知の入出力制御デバイスに、デバイスＩＤの要求を行うために、ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを、ステップＳ２０７と同様のマルチホップ指定により送信する（ステップＳ２０８）。
【０１３６】
この例では、現在注目している入出力制御デバイスが入出力制御デバイス１１０であれば、入出力制御デバイス１１０と互いに電波到達範囲に設置されている２つの入出力制御デバイス１３０，１４０によってＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージが受信され格納される。一方、現在注目している入出力制御デバイスが入出力制御デバイス１２０であれば、入出力制御デバイス１２０と互いに電波到達範囲に設置されている入出力制御デバイスが存在しないため、何れの入出力制御デバイスにもＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージは受信されない。
【０１３７】
現在注目している入出力制御デバイスが入出力制御デバイス１１０であれば、ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを受信した入出力制御デバイス１３０，１４０は、それぞれ、制御ルール２０２に従って所定のフラグをオン状態とし、制御ルール２０１に従ってタイマを設定する。
【０１３８】
そして、タイマが発火すると、入出力制御デバイス１３０，１４０は、制御ルール２０２に従って、自己のデバイスＩＤと通信ネットワーク上の接続状態とを応答するために、自己のデバイスＩＤとデータ通信経路を示す情報（経由デバイスを示す情報：ここでは経由デバイスは入出力制御デバイス１１０）とを含むＲＥＰＬＹ＿ＵＣＩＤメッセージをホストデバイス１００に送信する。
【０１３９】
なお、ＲＥＰＬＹ＿ＵＣＩＤメッセージは、１ホップ目に注目している入出力制御デバイスのＩＤを設定し、２ホップ目にホストデバイスのＩＤを設定したマルチホップ指定により送信される。
【０１４０】
ホストデバイス１００は、ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを受信した入出力制御デバイスからの返信であるＲＥＰＬＹ＿ＵＣＩＤメッセージを受信する（ステップＳ２０９）。
【０１４１】
そして、ホストデバイス１００は、受信したＲＥＰＬＹ＿ＵＣＩＤメッセージに含まれている送信元のデバイスＩＤなどをデバイスＩＤ格納部２３に格納し、格納したデバイスＩＤを持つ入出力制御デバイスをトポロジツリーに追加する（ステップＳ２１０）。
【０１４２】
なお、ステップＳ２１０では、トポロジツリーへの追加対象の入出力制御デバイスが持つデバイスＩＤが、すでに受信したことのあるデバイスＩＤであった場合（すでに入出力制御デバイスの子として登録されていた場合）には、ホストデバイス１００は、注目している入出力制御デバイスと通信可能な入出力制御デバイスであるとしてトポロジツリーに登録する。一方、トポロジツリーへの追加対象の入出力制御デバイスが持つデバイスＩＤが、初めて受信したデバイスＩＤであった場合には、ホストデバイス１００は、注目している入出力制御デバイスの子としてトポロジツリーに追加登録する。
【０１４３】
次いで、ホストデバイス１００は、ＲＥＰＬＹ＿ＵＣＩＤメッセージの重複した受信を避けるため、現在注目している入出力制御デバイスの親デバイス（注目している入出力制御デバイスがホストデバイス１００にデータ送信するときに、１ホップ目に設定する入出力制御デバイスであって、上位層の入出力制御デバイス）と、親デバイスが発見される以前に発見された入出力制御デバイスから制御ルール２０１,２０２を消去する（ステップＳ２１１）。
【０１４４】
ホストデバイス１００は、１ホップでデータ通信を行うことが可能な入出力制御デバイスのうちまだ注目されていないものがあれば（ステップＳ２１２のＹ）、ステップＳ２０６に戻る。
【０１４５】
１ホップでデータ通信を行うことが可能なすべての入出力制御デバイスを順次注目し、上記のステップＳ２０６〜Ｓ２１２の処理を繰り返し行うことによって、ホストデバイス１００により、２ホップでデータ通信を行うことが可能な入出力制御デバイス１３０，１４０が発見され、その入出力制御デバイス１３０，１４０を追加した通信トポロジが導出（生成）される。
【０１４６】
１ホップでデータ通信を行うことが可能な入出力制御デバイスのすべてを注目し終えていれば（ステップＳ２１２のＮ）、ホストデバイス１００は、終了条件を確認する。ここでは、上記のステップＳ２０６〜Ｓ２１２の処理によって新たな入出力制御デバイス（２ホップでデータ通信を行うことが可能な入出力制御デバイス）が発見されており、未だすべての入出力制御デバイスを発見し終えていない可能性がある（３ホップ以上のホップ数でデータ通信を行うことが可能な入出力制御デバイスが存在している可能性がある）ため、ホストデバイス１００は、終了条件は成立していないと判定し、３ホップでデータ通信を行うことが可能な入出力制御デバイスの発見などを行うための処理に移行する。
【０１４７】
ホストデバイス１００は、２ホップでデータ通信を行うことが可能な入出力制御デバイスのうち、未だ選択されていない入出力制御デバイスを選択する（ステップＳ２１３）。本例では、デバイスＩＤを選択することによって入出力制御デバイスを選択する。また、本例では、未選択のデバイスＩＤが複数ある場合には、最小値のデバイスＩＤを選択する。そして、選択したデバイスＩＤをもつ入出力制御デバイスに注目する。
【０１４８】
ホストデバイス１００は、現在注目している入出力制御デバイスを最後に経由して３回のホップ数でデータ通信が可能な未知の入出力制御デバイスに、制御ルール（ＲＥＰＬＹ  ＭＥＳＳＡＧＥルール）２０２を追加送入するために、ＡＤＤ＿ＥＣＡコマンドを生成して送信する（ステップＳ２１４）。
【０１４９】
ステップＳ２１４では、ホストデバイス１００は、注目している入出力制御デバイスの親デバイスのＩＤを１ホップ目に設定し、注目している入出力制御デバイスのＩＤを２ホップ目に設定し、３ホップ目に放送を設定したマルチホップ指定によりＡＤＤ＿ＥＣＡコマンドを送信する。
【０１５０】
制御ルール２０２を受信した入出力制御デバイスは、自己の制御ルール格納部（例えば制御ルール格納部７１参照）に、制御ルール２０２を追加して格納する。この例では、現在注目している入出力制御デバイスが入出力制御デバイス１３０であれば、入出力制御デバイス１３０と互いに電波到達範囲に設置されている親デバイス以外の入出力制御デバイス（具体的には、同位層のデバイスとして既に発見済みの入出力制御デバイス１４０）によって制御ルール２０２が受信され格納される。
【０１５１】
その後、ホストデバイス１００は、ステップＳ２０３と同様に、３回のホップ数でデータ通信が可能な未知の入出力制御デバイスに、デバイスＩＤの要求を行うために、ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを、ステップＳ２１４と同様のマルチホップ指定により送信する（ステップＳ２１５）。
【０１５２】
この例では、現在注目している入出力制御デバイスが入出力制御デバイス１３０であれば、入出力制御デバイス１３０と互いに電波到達範囲に設置されている親デバイス以外のデバイスである入出力制御デバイス１４０によってＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージが受信され格納される。
【０１５３】
現在注目している入出力制御デバイスが入出力制御デバイス１３０であれば、ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを受信した入出力制御デバイス１４０は、それぞれ、制御ルール２０２に従って所定のフラグをオン状態とし、制御ルール２０１に従ってタイマを設定する。
【０１５４】
そして、タイマが発火すると、入出力制御デバイス１４０は、制御ルール２０２に従って、自己のデバイスＩＤと通信ネットワーク上の接続状態とを応答するために、自己のデバイスＩＤとデータ通信経路を示す情報（経由デバイスを示す情報：ここでは経由デバイスは入出力制御デバイス１３０と入出力制御デバイス１１０）とを含むＲＥＰＬＹ＿ＵＣＩＤメッセージをホストデバイス１００に送信する。
【０１５５】
ホストデバイス１００は、ＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを受信した入出力制御デバイスからの返信であるＲＥＰＬＹ＿ＵＣＩＤメッセージを受信する（ステップＳ２１６）。
【０１５６】
そして、ホストデバイス１００は、受信したＲＥＰＬＹ＿ＵＣＩＤメッセージに含まれている送信元のデバイスＩＤなどをデバイスＩＤ格納部２３に格納し、格納したデバイスＩＤを持つ入出力制御デバイスをトポロジツリーに追加する（ステップＳ２１７）。
【０１５７】
なお、ステップＳ２１７では、トポロジツリーへの追加対象の入出力制御デバイスが持つデバイスＩＤが、すでに受信したことのあるデバイスＩＤであった場合（すでに入出力制御デバイスの子として登録されていた場合）には、ホストデバイス１００は、注目している入出力制御デバイスと通信可能な入出力制御デバイスであるとしてトポロジツリーに登録する。すなわち、入出力制御デバイス１４０からのＲＥＰＬＹ＿ＵＣＩＤメッセージを受信した場合には、ホストデバイス１００は、入出力制御デバイス１４０が既にトポロジツリーに登録されているため、入出力制御デバイス１４０が入出力制御デバイス１３０と通信可能である旨の登録（記述）を行う。
【０１５８】
次いで、ホストデバイス１００は、ＲＥＰＬＹ＿ＵＣＩＤメッセージの重複した受信を避けるため、現在注目している入出力制御デバイスの親デバイス（注目している入出力制御デバイスがホストデバイス１００にデータ送信するときに、１ホップ目に設定する入出力制御デバイスであって、上位層の入出力制御デバイス）と、親デバイスが発見される以前に発見された入出力制御デバイスから制御ルール２０１，２０２を消去する（ステップＳ２１８）。
【０１５９】
ホストデバイス１００は、１ホップでデータ通信を行うことが可能な入出力制御デバイスのうちまだ注目されていないものがあれば（ステップＳ２１９のＹ）、ステップＳ２１３に戻る。
【０１６０】
２ホップでデータ通信を行うことが可能なすべての入出力制御デバイスを順次注目し、上記のステップＳ２１３〜Ｓ２１９の処理を繰り返し行うことによって、ホストデバイス１００により、３ホップでデータ通信を行うことが可能な入出力制御デバイスが探索され、既に発見済の入出力制御デバイス１３０，１４０が３ホップでデータ通信を行うことも可能であることが把握され、その旨を示す情報が追加した通信トポロジが導出（生成）される。
【０１６１】
２ホップでデータ通信を行うことが可能な入出力制御デバイスのすべてを注目し終えていれば（ステップＳ２１９のＮ）、ホストデバイス１００は、終了条件を確認する。ここでは、上記のステップＳ２１３〜Ｓ２１９の処理によって新たな入出力制御デバイス（２ホップ以下ではデータ通信を行うことができず、３ホップでデータ通信を行うことが可能な入出力制御デバイス）が発見されておらず、すべての入出力制御デバイスを発見し終えている（最短ホップ数が３ホップ以上でデータ通信を行う入出力制御デバイスは存在していない）ため、ホストデバイス１００は、終了条件が成立した判定し、通信トポロジ導出処理を終了する。
【０１６２】
本実施例では、メッシュ構造のトポロジを発見する方法について示したが、ツリー構造を発見する場合も同じ制御ルールを使用することができる。この場合、制御ルールの無効化と削除のタイミングを、メッシュ構造の場合と異ならせるようにすればよい。具体的には、注目している入出力制御デバイスを変更するとき（ステップＳ２１２のＹ、ステップＳ２１９のＹ）に、ホストデバイス１００が、それまでに発見したすべての入出力制御デバイスに対して、制御ルール２０１を無効化するコマンドと、制御ルール２０２を削除するコマンドとを生成して送信するようにすればよい。
【０１６３】
図９は、図７に示した通信ネットワークシステムにおいてトポロジ導出処理を本実施例にて行った場合に、順次更新（ステップＳ２０５，Ｓ２１０，Ｓ２１７）される通信トポロジの発見トポロジ格納部２２における格納状態を模式的に示した説明図である。
【０１６４】
状態３０１は、トポロジ導出処理の開始時における通信トポロジの状態である。すなわち、トポロジ導出処理の開始時には、起点となるホストデバイス１００のみが登録された状態となっている。
【０１６５】
また、状態３０２は、ステップＳ２０３においてＲＥＱＵＥＳＴ＿ＵＣＩＤメッセージを送信したあと、ステップＳ２０４で入出力制御デバイス１１０からＲＥＰＬＹ＿ＵＣＩＤメッセージを受信したことに応じて、発見した入出力デバイス１１０をステップＳ２０５にて追加登録したあとの通信トポロジの状態である。
【０１６６】
状態３０３は、同様に、発見した入出力デバイス１２０をステップＳ２０５にて追加登録したあとの通信トポロジの状態である。
【０１６７】
状態３０４は、ステップＳ２０６にて入出力制御デバイス１１０に注目し、ステップＳ２０９で入出力制御デバイス１３０からＲＥＰＬＹ＿ＵＣＩＤメッセージを受信したことに応じて、発見した入出力制御デバイス１３０をステップＳ２１０にて追加登録したあとの通信トポロジの状態である。
【０１６８】
状態３０５は、同様に、発見した入出力デバイス１４０をステップＳ２１０にて追加登録したあとの通信トポロジの状態である。
【０１６９】
状態３０６は、ステップＳ２０６にて入出力制御デバイス１２０に注目したときの通信トポロジの状態である。なお、入出力制御デバイス１２０は、ホストデバイス１００以外のデバイスが電波到達範囲１２１に存在しないので、新たな入出力制御デバイスの発見はなく、通信トポロジへの入出力制御デバイスの追加登録は行われない。
【０１７０】
状態３０７は、ステップＳ２１３にて入出力制御デバイス１３０に注目し、ステップＳ２１６にて入出力制御デバイス１４０からＲＥＰＬＹ＿ＵＣＩＤメッセージを受信したことに応じて、ステップＳ２１７にて入出力制御デバイス１３０と通信可能な入出力制御デバイスとして入出力制御デバイス１４０を登録したあとの通信トポロジの状態である。
【０１７１】
状態３０８は、ステップＳ２１３にて入出力制御デバイス１４０に注目したときの通信トポロジの状態である。なお、ステップＳ２１６にて入出力制御デバイス１３０からＲＥＰＬＹ＿ＵＣＩＤメッセージを受信したあとのステップＳ２１７では、入出力制御デバイス１４０と通信可能な入出力制御デバイスとして入出力制御デバイス１３０が既に登録された状態となっているので、通信トポロジの状態は変更されない。
【０１７２】
状態３０８に示す通信トポロジの状態が、トポロジ導出処理を終了したときの状態、すなわち導出結果となる。
【０１７３】
よって、例えば、状態３０８に示すような通信トポロジの導出結果を示す画面が、例えばホストデバイス１００が備える画像表示装置に表示される。この表示画面を見ることによって、システム管理者が、通信ネットワークシステムを構成する各デバイスの接続状態である通信トポロジを、容易に認識することができるようになる。
【実施例２】
【０１７４】
次に、本発明の第２の具体的実施例について説明する。
本実施例では、上述した第１の実施例とは異なる具体的な制御ルールを用いて、上述した第１の実施例と同様に通信トポロジ導出処理が実行される場合について説明する。
【０１７５】
図１０は、本実施例で用いる制御ルール４０１，４０２，４０３を示す説明図である。制御ルール４０１は、内部状態として「所定のフラグ」を評価し、そのフラグがオン状態となったことに応じて、アクションとして「デバイスＩＤに比例した時間待った後に、ＲＥＰＬＹ＿ＵＣＩＤ＿Ｍメッセージを送信」を行うことを示すルールである。
【０１７６】
また、制御ルール４０２は、イベントとして「ＲＥＱＵＥＳＴ＿ＵＣＩＤ＿Ｍメッセージの受信」が発生したときに、アクションとして「所定のフラグをオン状態とする」処理を行うことを示すルールである。
【０１７７】
さらに、制御ルール４０３は、イベントとして「ＲＥＰＬＹ＿ＵＣＩＤ＿Ｍメッセージの受信」が発生したときに、アクションとして「ＲＥＰＬＹ＿ＵＣＩＤ＿Ｍメッセージの送信」処理を行うことを示すルールである。
【０１７８】
本例では、各入出力制御デバイス１１０〜１４０が、複数のメッセージを送信して自己のデバイスＩＤをホストデバイス１００に通知するものとする。例えば、入出力制御デバイス１１０のデバイスＩＤが５７Ｈ（０１０１０１１１）であるとすると、このデバイスＩＤを「０１」、「０１」、「０１」、および「１１」の４つのＩＤのメッセージに分割して送信することで、自己のデバイスＩＤをホストデバイス１００に通知する。
【０１７９】
ホストデバイス１００は、受信した複数のメッセージを再構築することで入出力制御デバイスのデバイスＩＤを認識する。このため、ホストデバイス１００は、マルチホップヘッダから送信元ＩＤを利用してデバイスＩＤを認識する上述した第１実施例と比較して、例えば、より多くの入出力デバイスを発見したり、より多くのホップ数でデータ通信を行う必要がある遠隔地に設置された入出力制御デバイスを発見したりすることができる。
【０１８０】
ここで、本実施例におけるホストデバイス１００が実行する通信トポロジ導出処理について説明する。この例では、ホストデバイス１００は、図１０に示す制御ルールを用いて、上述した第１の実施例と同様に通信トポロジ導出処理を実行し、メッシュ構造の通信トポロジを導出する。以下、上述した第１の実施例における通信トポロジ導出処理と異なる部分について説明する。
【０１８１】
本例では、前処理にて制御ルール（ＳＥＮＤ＿ＭＥＳＳＡＧＥＳルール）４０１が各入出力制御デバイス１１０〜１４０に送入され、ステップＳ２０２，Ｓ２０７，Ｓ２１４にて制御ルール（ＲＥＰＬＹ＿ＭＥＳＳＡＧＥＳルール）４０２が対象となるホップ数の各入出力制御デバイス１１０〜１４０に送入される点で、第１の実施例と異なる。
【０１８２】
また、この例では、入出力制御デバイスを注目したとき（ステップＳ２０６，Ｓ２１３）に、制御ルール（ＲＥＬＡＹ＿ＭＥＳＳＡＧＥＳルール）４０３が注目した入出力制御デバイスに送入される点で、第１の実施例と異なる。
【０１８３】
制御ルール４０３は、ＲＥＰＬＹ＿ＵＣＩＤ＿Ｍメッセージを中継するために使用される。前処理にて事前に制御ルール４０１が各入出力制御デバイスに送入された時点では、各入出力制御デバイスは、周囲の他の入出力制御デバイスのデバイスＩＤを把握していない。
【０１８４】
このため、各入出力制御デバイスは、制御ルール４０１，４０２に従ってＲＥＰＬＹ＿ＵＣＩＤ＿Ｍメッセージを送信するときは、マルチホップでないＳＥＮＤ＿ＭＥＳＳＡＧＥＳアクションによって送信する。
【０１８５】
なお、ＲＥＰＬＹ＿ＵＣＩＤ＿Ｍメッセージが注目されている入出力制御デバイスに受信されると、ＲＥＰＬＹ＿ＵＣＩＤ＿Ｍメッセージが制御ルール４０３に従って送信され、ホストデバイス１００まで転送される。
【０１８６】
制御ルール４０３は、ＲＥＰＬＹ＿ＵＣＩＤ＿Ｍメッセージの重複受信を避けるため、次の入出力制御デバイスが注目されたときに無効化され、自分が親デバイスとなる関係の子デバイスが最初に注目されたときに再び有効化される。
【０１８７】
すなわち、ホストデバイス１００は、制御ルール４０３を無効化させるための無効化コマンドや、制御ルール４０３を有効化させるための有効化コマンドを、所望の時期に生成して送信する。
【０１８８】
本実施例では、メッシュ構造のトポロジを発見する方法について示したが、ツリー構造を発見する場合も同じ制御ルールを使用することができる。この場合、制御ルールの無効化のタイミングを、メッシュ構造の場合と異ならせるようにすればよい。具体的には、注目している入出力制御デバイスを変更するとき（ステップＳ２１２のＹ、ステップＳ２１９のＹ）に、ホストデバイス１００が、それまでに発見したすべての入出力制御デバイスに対して、制御ルール４０１を無効化するコマンドを生成して送信するようにすればよい。
【０１８９】
上記のようにして通信トポロジ導出処理が実行され、メッシュ構造の通信トポロジが導出される。
【産業上の利用可能性】
【０１９０】
本発明によれば、例えば、農地土壌品質管理や森林生育管理を行うために比較的大規模な空間を監視するセンサネットワークシステムなどのシーケンス制御システムに適用するのに有用である。
【図面の簡単な説明】
【０１９１】
【図１】本発明を適用する通信ネットワークシステムの概略を示す説明図である。
【図２】本発明の一実施の形態におけるホストデバイスの構成例を示すブロック図である。
【図３】本発明の一実施の形態における入出力制御デバイスの構成例を示すブロック図である。
【図４】本発明の一実施の形態におけるホストデバイスによって実行される通信トポロジ導出処理の例を示すフローチャートである。
【図５】通信トポロジ導出処理によって生成される通信トポロジの例を示す説明図である。
【図６】第１実施例にて用いられる制御ルールを示す説明図である。
【図７】第１実施例における通信ネットワークシステムを示す説明図である。
【図８】第１実施例における通信トポロジ導出処理を示すフローチャートである。
【図９】第１実施例における通信トポロジ導出処理によって順次生成される通信トポロジを模式的に示す説明図である。
【図１０】第２実施例にて用いられる制御ルールを示す説明図である。
【符号の説明】
【０１９２】
１，２，３，４，５，６，７，ｎ        ノード（入出力制御デバイス）
１０，１００                          ホストノード
１１，１１０，１２０，１３０，１４０  入出力制御デバイス
２０                                  記憶装置
２１                                  トポロジ発見ルール格納部
２２                                  発見トポロジ格納部
２３                                  デバイスＩＤ格納部
３０                                  演算装置
３１                                  トポロジ発見ルール送入部
３２                                  トポロジ発見ルール削除部
３３                                  トポロジ発見用メッセージ送信・受信部
４０                                  無線通信装置
６０                                  演算装置
６１                                  制御ルール処理部
６２                                  タイマ管理部
６３                                  内部状態管理部
６４                                  コマンド管理部
７０                                  記憶装置
７１                                  制御ルール格納部
７２                                  デバイスＩＤ格納部
８０                                  無線通信装置
【図１】
2006005753.tif 000003
【図２】
2006005753.tif 000004
【図３】
2006005753.tif 000005
【図４】
2006005753.tif 000006
【図５】
2006005753.tif 000007
【図６】
2006005753.tif 000008
【図７】
2006005753.tif 000009
【図８】
2006005753.tif 000010
【図９】
2006005753.tif 000011
【図１０】
2006005753.tif 000012