(57)【要約】【課題】仕様に準拠していないが、ある環境下では事実上の標準となっているプロトコルを学習したノード（学習済ノード）がある環境において、そのノードが存在する環境下に新規ノードが追加された場合、該学習済ノードから該新規ノードに該学習済ノードが学習した結果を転送するようにして、該新規ノードの学習期間を削減する。【解決手段】新規ノード５は、近隣ノード通信プロトコルで通信する手段と、学習結果の有無を通知する手段と、を備え、学習済ノード２は、近隣ノード通信プロトコルで通信する手段と、学習結果を問い合わせる手段と、学習結果を転送する手段と、を備え、学習済ノード２から新規ノード５に学習結果データを転送し、新規ノード５が直接ローカルルールを監視、学習することなくローカルルールを用いることを可能にする。【選択図】図１
2008022166.tif 000002
【特許請求の範囲】
【請求項１】
ある環境におけるローカルルールを学習した学習済ノードが存在する環境におけるプロトコル差分学習結果転送システムであって、
新規ノードは、近隣ノード通信プロトコルで通信する手段と、学習結果の有無を通知する手段と、を備え、
前記学習済ノードは、近隣ノード通信プロトコルで通信する手段と、学習結果を問い合わせる手段と、学習結果を転送する手段と、を備え、
前記学習済ノードから前記新規ノードに学習結果データを転送し、前記新規ノードが直接前記ローカルルールを監視、学習することなく前記ローカルルールを用いることを可能にすることを特徴とするプロトコル差分学習結果転送システム。
【請求項２】
前記学習済ノードは、学習結果データを求めるノードに通信メッセージを通知する手段を更に有し、
前記新規ノードは、前記通信メッセージを受信し、返信する手段を更に有することを特徴とする請求項１に記載のプロトコル差分学習結果転送システム。
【請求項３】
前記学習済ノード及び前記新規ノードと通信可能なチェックツールを更に有し、
前記新規ノードは、前記学習済ノードから学習結果を問い合わせる手段によるメッセージを受信する手段と、学習結果データの有無を示す通信メッセージを前記チェックツールに通知する手段と、を更に有し、
前記チェックツールは、前記学習結果データの有無を示す通信メッセージを受信する手段と、前記学習結果データを前記新規ノードに転送する手段と、を有することを特徴とする請求項１又は２に記載のプロトコル差分学習結果転送システム。
【請求項４】
ある環境におけるローカルルールを学習した学習済ノードが存在する環境において、前記学習済ノードから新規ノードに学習結果データを転送し、前記新規ノードが直接前記ローカルルールを監視、学習することなく前記ローカルルールを用いることを可能にするためのコンピュータプログラムであって、
前記新規ノードに、近隣ノード通信プロトコルで通信させる処理と、
前記新規ノードに、学習結果の有無を通知させる処理と、
前記学習済ノードに、近隣ノード通信プロトコルで通信させる処理と、
前記学習済ノードに、学習結果を問い合わさせる処理と、
前記学習済ノードに、学習結果を転送させる処理と、をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項５】
前記学習済ノードに、学習結果データを求めるノードに通信メッセージを通知させる処理と、
前記新規ノードに、前記通信メッセージを受信させ、返信させる処理と、を更にコンピュータに実行させることを特徴とする請求項４に記載のコンピュータプログラム。
【請求項６】
前記学習済ノードおよび前記新規ノードと通信可能なチェックツールが存在し、
前記新規ノードに、前記学習済ノードから学習結果を問い合わさせる処理によるメッセージを受信させる処理と、
前記新規ノードに、学習結果データの有無を示す通信メッセージを前記チェックツールに通知させる処理と、
前記チェックツールに、前記学習結果データの有無を示す通信メッセージを受信させる処理と、
前記チェックツールに、前記学習結果データを前記新規ノードに転送させる処理と、を更にコンピュータに実行させることを特徴とする請求項４又は５に記載のコンピュータプログラム。
【請求項７】
請求項４〜６のいずれか１項に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項８】
ある環境におけるローカルルールを学習した学習済ノードが存在する環境において、前記学習済ノードから新規ノードに学習結果データを転送し、前記新規ノードが直接前記ローカルルールを監視、学習することなく前記ローカルルールを用いることを可能にするためのプロトコル差分学習結果転送方法であって、
前記新規ノードに、近隣ノード通信プロトコルで通信させる手順と、
前記新規ノードに、学習結果の有無を通知させる手順と、
前記学習済ノードに、近隣ノード通信プロトコルで通信させる手順と、
前記学習済ノードに、学習結果を問い合わさせる手順と、
前記学習済ノードに、学習結果を転送させる手順と、を有することを特徴とするプロトコル差分学習結果転送方法。
【請求項９】
前記学習済ノードに、学習結果データを求めるノードに通信メッセージを通知させる手順と、
前記新規ノードに、前記通信メッセージを受信させ、返信させる手順と、を更に有することを特徴とする請求項８に記載のプロトコル差分学習結果転送方法。
【請求項１０】
前記学習済ノードおよび前記新規ノードと通信可能なチェックツールが存在し、
前記新規ノードに、前記学習済ノードから学習結果を問い合わさせる手順によるメッセージを受信させる手順と、
前記新規ノードに、学習結果データの有無を示す通信メッセージを前記チェックツールに通知させる手順と、
前記チェックツールに、前記学習結果データの有無を示す通信メッセージを受信させる手順と、
前記チェックツールに、前記学習結果データを前記新規ノードに転送させる手順と、を更に有することを特徴とする請求項８又は９に記載のプロトコル差分学習結果転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｒｙ（相互接続性）を高めるためのプロトコル差分学習結果転送システム、プロトコル差分学習結果転送方法、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
通信に用いるプロトコルは、ノード間の相互接続性を確保するため、仕様が決められている。仕様は、さまざまな組織で策定されている。例えばＷｅｂ関連の仕様の多くはＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ（ｗ３ｃ、ｈｔｔｐ：／／ｗｗｗ．ｗ３ｃ．ｏｒｇ）で策定されている。また、インターネット関連の仕様の多くはＴｈｅ  Ｉｎｔｅｒｎｅｔ Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ、  ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ）で策定されている。
【０００３】
仕様が厳密に策定され、また仕様に完全に沿ってプロトコルが実装されていれば、該プロトコルを用いた通信は全て成功し、相互接続性は確保されるはずである。
【０００４】
しかし現実には、仕様は厳密ではないため、仕様に完全に沿ってプロトコルが実装されていても通信が失敗することがある。また、仕様に沿っていない実装も多々あり、相互接続性が保たれていない。また、仕様に沿っていないプロトコルを用いるノードや機器が事実上の標準（デファクトスタンダード）となると、仕様に沿ったプロトコルを用いるノードや機器をメーカーが作成する。しかしながらこの場合も、該事実上の標準となったプロトコルを用いるノードや機器と通信を試みても失敗することがある。
【０００５】
通信が失敗する例として、例えば、ある実装では大文字と小文字を区別していないが、別の実装では区別するため通信が失敗する。また、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ、 ｈｔｔｐ：／／ｗｗｗ．ｗ３ｃ．ｏｒｇ／ＸＭＬ／）をベースとしたプロトコルでは、ネームスペースの有無により通信が失敗する。以上のような失敗する例が挙げられる。
【０００６】
一方、相互接続性を向上させるためにメーカーはさまざまなことを行う。例えばプロトコルモニタを用いてネットワーク上を流れるプロトコルを監視して違いを把握する、複数のメーカーが製品を一箇所に持ち寄って通信実験を行う、などといったことを行う。プロトコルの違いを発見した場合、それを修正することによって相互接続性を向上させる。プロトコルの違いを発見するプロトコルモニタに関する提案の１つとして、特許文献１がある。特許文献１では、プロトコルの誤り箇所を検出し、自動的に指摘することを可能としている。
【０００７】
しかし、上述したような対応は、製品を出荷する前に行う対応であり、出荷後の対応は容易ではない。前述した通信実験にしても、市場に存在する全てのノードや機器を集めて実験することは不可能であり、検証が十分に行われることはない。そのため、製品を使用するユーザは、製品購入前に、購入対象の製品がどのような機器と通信を行えたかを調査し、インターネット上での報告を探すなどして、相互接続性が高そうな製品を選ばざるをえない。
【０００８】
また、メーカー側としては、相互接続性を確保するため、ユーザにファームウェアを更新させたり、製品を回収し、製品内のプログラムを書き換えるなどの対応を取らなければならない場合がある。
【０００９】
このような問題に対する以下のような提案がある。この提案は、まず、ある環境下において事実上の標準となっているプロトコル（これを「ローカルルール」と称することにする）と、該環境下に設置されたノードに実装されているプロトコルとの差分を測定する。そして、測定結果を用いて、該ノードに実装されているプロトコルに差分を反映させることにより、ある環境下における相互接続性を高めるというものである。
【００１０】
【特許文献１】特開平０８−８８６７２号公報
【非特許文献１】ＲＦＣ２６１６、Ｒ．Ｆｉｅｌｄｉｎｇ、Ｊ．Ｇｅｔｔｙｓ、Ｊ．Ｍｏｇｕｌ、Ｈ．Ｆｒｙｓｔｙｋ、Ｌ．Ｍａｓｉｎｔｅｒ、Ｐ．Ｌｅａｃｈ、Ｔ．Ｂｅｒｎｅｒｓ−Ｌｅｅ、「Ｈｙｐｅｒｔｅｘｔ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ ―― ＨＴＴＰ／１．１」、ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ２６１６．ｔｘｔ、Ｊｕｎｅ、１９９９
【発明の開示】
【発明が解決しようとする課題】
【００１１】
以上のように、ある環境下におけるローカルルールを学習し、学習したローカルルールを使用することで、相互接続性を高めることがなされた。しかし、ある環境下に、さらに新規ノードが追加された場合、その新規ノードはローカルルールの学習を最初から行わなければならないという問題があった。
【００１２】
本発明は係る実情に鑑みて、新規ノードにプロトコルの差分を学習した結果を転送して、新規ノードの学習期間を削減することが可能なプロトコル差分学習結果転送システムを提供する。詳細には、仕様に準拠していないが、ある環境下では事実上の標準となっているプロトコルを学習したノード（学習済ノード）がある環境において、そのノードが存在する環境下に新規ノードが追加された場合、学習済ノードから新規ノードに学習済ノードが学習した結果を転送する。これにより、該新規ノードの学習期間を削減することができる。
【課題を解決するための手段】
【００１３】
本発明のプロトコル差分学習結果転送システムは、ある環境におけるローカルルールを学習した学習済ノードが存在する環境におけるプロトコル差分学習結果転送システムであって、新規ノードは、近隣ノード通信プロトコルで通信する手段と、学習結果の有無を通知する手段と、を備え、前記学習済ノードは、近隣ノード通信プロトコルで通信する手段と、学習結果を問い合わせる手段と、学習結果を転送する手段と、を備え、前記学習済ノードから前記新規ノードに学習結果データを転送し、前記新規ノードが直接前記ローカルルールを監視、学習することなく前記ローカルルールを用いることを可能にすることを特徴とする。
また、本発明のコンピュータプログラムは、ある環境におけるローカルルールを学習した学習済ノードが存在する環境において、前記学習済ノードから新規ノードに学習結果データを転送し、前記新規ノードが直接前記ローカルルールを監視、学習することなく前記ローカルルールを用いることを可能にするためのコンピュータプログラムであって、前記新規ノードに、近隣ノード通信プロトコルで通信させる処理と、前記新規ノードに、学習結果の有無を通知させる処理と、前記学習済ノードに、近隣ノード通信プロトコルで通信させる処理と、前記学習済ノードに、学習結果を問い合わさせる処理と、前記学習済ノードに、学習結果を転送させる処理と、をコンピュータに実行させることを特徴とする。
また、本発明のコンピュータ読み取り可能な記録媒体は、上記に記載のコンピュータプログラムを記録したことを特徴とする。
また、本発明のプロトコル差分学習結果転送方法は、ある環境におけるローカルルールを学習した学習済ノードが存在する環境において、前記学習済ノードから新規ノードに学習結果データを転送し、前記新規ノードが直接前記ローカルルールを監視、学習することなく前記ローカルルールを用いることを可能にするためのプロトコル差分学習結果転送方法であって、前記新規ノードに、近隣ノード通信プロトコルで通信させる手順と、前記新規ノードに、学習結果の有無を通知させる手順と、前記学習済ノードに、近隣ノード通信プロトコルで通信させる手順と、前記学習済ノードに、学習結果を問い合わさせる手順と、前記学習済ノードに、学習結果を転送させる手順と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明のプロトコル差分学習結果転送システムによれば、新規ノードにプロトコルの差分を学習した結果を転送するため、新規ノードの学習期間を削減し、ただちにローカルルールでの通信が可能になるという効果が得られる。
【発明を実施するための最良の形態】
【００１５】
（第１の実施の形態）
（新規ノードが学習済ノードに存在を通知）
以下、本発明の実施の形態を、図面を参照しながら説明する。図１は第１の実施形態を実施する環境の例を示す図である。
【００１６】
ネットワーク１を通じて、学習済ノード２と、ローカルノード３と、ローカルノード４と、が接続されている。学習済ノード２は、プロトコルＰの標準に準拠している。ローカルノード３、ローカルノード４はプロトコルＰの標準と異なるローカルルールＰＸで相互通信を行っている。
【００１７】
学習済ノード２は、所定の方法を用い、ローカルルールＰＸとプロトコルＰの差分を学習済であり、ローカルルールＰＸを用いてローカルノード３、ローカルノード４と相互に通信可能であるとする。
【００１８】
新規ノード５は、ネットワーク１に新たに接続されるノードである。新規ノード５は、学習済ノード２と同様に、プロトコルＰの標準に準拠した通信を行えるものとする。
【００１９】
学習済ノード２および新規ノード５は、後述する近隣ノード通信プロトコルを用いることが可能であり、該近隣ノード通信プロトコルを用いてノードの発見が可能であるものとする。
【００２０】
ネットワーク１は、本発明を実施するための最良の形態の項では、インターネットプロトコルを通信可能なネットワークとする。また、使用するアドレスは、ＩＰｖ４アドレスを例として用いる。本発明では、送信元および送信先のアドレスを取得できること、近隣ノード通信プロトコルを通信可能なこと、という制限以外、ネットワーク１に対する制限は特にない。よって、前記制限を満たすのであれば、ＩＰｖ４アドレスでなくＩＰｖ６アドレスでもよいし、インターネットプロトコル以外でもよい。
【００２１】
図２に新規ノード５の構成例、図３に学習済ノード２の構成例を示す。新規ノード５と学習済ノード２の構成は基本的に同一で問題ないため、代表して新規ノード５の構成について、図２を用いて説明する。
【００２２】
ＣＰＵ１０１が新規ノード５の全体の動作を制御する。ＲＡＭ１０２は一時記憶装置（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、ＲＯＭ１０３はプログラムなど、消去不可能なデータが組み込まれている不揮発性メモリ（Ｒｅａｄ  ｏｎｌｙ  Ｍｅｍｏｒｙ）である。
【００２３】
バス１０４は、各モジュールを接続する内部バスである。ネットワークインタフェース１０５は、新規ノード５が外部機器とデータ送受信を行う際に使用するインタフェースである。記録装置１０６は、例えばハードディスクなどであり、読み書きが可能で、電源を落としても記録された内容は消えないものとする。さらに、ディスプレイやキーボード、マウス、プリントアウト部といった入出力機器用のインタフェースなどを備えていてもよい。
【００２４】
本実施形態では、プロトコルＰを「ＨＴＴＰ／１．１」（「非特許文献１」）とする。また、ローカルルールＰＸは、「ＨＴＴＰ／１．１」とは異なるプロトコルとする。そして、本実施形態では、学習済ノード２は、プロトコルＰを用いた図１６で示す通信メッセージではなく、ローカルルールＰＸを学習済なので図１８に示す通信メッセージでローカルノード３、ローカルノード４と通信可能とする。以下、学習済ノード２が、学習によりローカルノード３及びローカルノード４と通信可能となることについて図１５〜２０を用いて説明する。
【００２５】
図１５は、学習ノード１２が学習して学習済ノード２となることについて説明するための環境の例を示す図である。各ノードはネットワーク１１上に存在する。また、ローカルノード１３とローカルノード１４は相互通信が可能である。ここで、学習ノード１２のアドレスを「１９２．１６８．０．２」、ローカルノード１３のアドレスを「１９２．１６８．０．３」、ローカルノード１４のアドレスを「１９２．１６８．０．４」とする。本例ではＩＰｖ４アドレスを用いるが、ＩＰｖ６アドレスや他のアドレスでも構わない。
【００２６】
学習ノード１２は、ローカルノード１３とローカルノード１４間の通信を監視可能な場所に設置されているとする。
【００２７】
学習ノード１２は、プロトコルＰの標準に準拠していることが保証されているものとする。本例では、プロトコルＰを「ＨＴＴＰ／１．１」（「非特許文献１」）とする。ローカルノード１３とローカルノード１４は、プロトコルＰの標準と異なるローカルルールＰＸで相互通信を行っているとする。
【００２８】
学習ノード１２は、プロトコルＰを用いてローカルノード１３もしくはローカルノード１４と通信を試みるが、失敗する。例えば、学習ノード１２は、図１６に示す通信メッセージをローカルノード１４に送信したが、図１７に示す通信メッセージを受信したとする。プロトコルＰにおいて、図１７に示すメッセージの１行目の「４００」番は、要求をした通信メッセージに不正な点があることを示す。
【００２９】
学習ノード１２は、プロトコルＰによる通信の失敗を受けて、ローカルノード１３とローカルノード１４間の通信を監視する。具体的には、学習ノード１２は、学習ノード１２のネットワークインタフェースをプロミスキャスモードで動作させ、ネットワーク１１上に流れるパケット全てを受信する。受信したパケットで、送信元アドレスがローカルノード１３のアドレス、送信先アドレスがローカルノード１４のアドレスであるパケット、および送信元アドレスがローカルノード１４のアドレス、送信先アドレスがローカルノード１３のアドレスであるパケットを選択し、そのパケット内に含まれるデータを記録する。
【００３０】
学習ノード１２は、記録したデータとプロトコルＡの間の差分を得るよう動作する。本例では、記録したデータに図１８に示すデータがあったものとする。学習ノード１２は、図１６と図１８を比較し、１行目の文字列「ＧＥＴ」と「ｇｅｔ」が図１６では大文字であり、図１８では小文字であるという差分を発見する。
【００３１】
学習ノード１２は、図１８に示す通信メッセージをローカルノード１４に送信する。図１９のような返信がローカルノード１４よりあったら通信は成功であり、本例では成功したとする。その差分を図２０に示すようなテーブルに記録する。
【００３２】
以上のようにして、学習ノード１２はローカルルールを学習し、ローカルノード１４と通信可能となり、相互接続性が向上したことになる。
【００３３】
例えば以上のようにして、学習ノード１２は、学習済ノード２となる。そして、本実施形態では、学習済ノード２は、プロトコルＰを用いた図１６に示す通信メッセージではなく、ローカルルールＰＸを学習済なので、図１８に示す通信メッセージでローカルノード３、ローカルノード４と通信可能である。また、図２０に示す学習結果を図３の記録装置２０６内に記録済であるとする。
【００３４】
本発明の実施の流れを、図４を主に参照しながら説明する。図１において、ネットワーク１に新規ノード５が接続される。ここで、ネットワーク１に有線ケーブルで接続される場合は、有線ケーブルを図２のネットワークインタフェース１０５に挿入することを指す。無線を用いる場合、ネットワーク１上のノードと通信可能な状態になることを指すものとする。
【００３５】
図４において、新規ノード５で、図２のネットワークインタフェース１０５より、ネットワーク１に接続されたことを検知すると、ＣＰＵ１０１は、ＲＯＭ１０３もしくは記録装置２０６より、近隣ノード通信プロトコルに基づき、存在を通知するための通信メッセージを読み出し、ネットワークインタフェース１０５を通じて送信する。ここで、近隣ノード通信プロトコルとして、例えば、ＳＬＰ（Ｓｅｒｖｉｃｅ  Ｌｏｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ、ＲＦＣ２１６５）、ＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ、ｈｔｔｐ：／／ｗｗｗ．ｕｐｎｐ．ｏｒｇ／ｄｏｗｎｌｏａｄ／ｄｒａｆｔ＿ｃａｉ＿ｓｓｄｐ＿ｖ１＿０３.ｔｘｔ）、ＷＳ−Ｄｉｓｃｏｖｅｒｙ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｙｎａｍｉｃ  Ｄｉｓｃｏｖｅｒｙ、ｈｔｔｐ：／／ｍｓｄｎ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｌｉｂｒａｒｙ／ｅｎ−ｕｓ／ｄｎｇｌｏｂｓｐｅｃ／ｈｔｍｌ／ｗｓ−ｄｉｓｃｏｖｅｒｙ．ｐｄｆ）などの公開されている既知のプロトコルを用いてもよいし、別のプロトコルでもかまわない。
【００３６】
本実施形態では、近隣ノード通信プロトコルにＳＳＤＰを用いた例について説明する。ＳＳＤＰを用いた場合のＳ１０１における通信メッセージの例を、図５に示す。ここで、１行目の文字列は、本通信メッセージが通知を示すものであることを示す。２行目のＨｏｓｔ：以降は、通信メッセージの送信先であるマルチキャストアドレス（２３９．２５５．２５５．２５０）と、ポート番号（１９００）である。ＳＳＤＰでは、本明細書作成時において、ＩＡＮＡによってポート番号は割り当てられていないため、本実施形態では、仮に１９００番としておく。将来、ポート番号が割り当てられた場合、その番号を用いるものとする。３行目のＮＴ：以降は、サービスのタイプを示す。本実施形態では、学習結果を転送するサービスを用いたいことを示すための文字列として、「ｇａｋｕｓｈｕｕ」を用いることとする。４行目のＮＴＳ：以降は、本通信メッセージが存在を通知するものであることを示す。５行目のＵＳＮ：以降は、本通信メッセージの一意性を示すユニークなＩＤ番号である。
【００３７】
図４のＳ１０１において、新規ノード５から存在を通知する通信メッセージが送信されたのち、該通信メッセージを、学習済ノード２は図３のネットワークインタフェース２０５を通じて受信する。受信した通信メッセージはＲＡＭ２０２に一時保存される。また、通信メッセージは下位層でＩＰｖ４アドレスを用いて配送されているため、送信元のアドレス（すなわち新規ノード５のアドレス）も把握できる。
【００３８】
学習済ノード２は、送信元のアドレスをＲＡＭ２０２に一時記録する。学習済ノード２では、近隣ノード通信プロトコルを用いて発見されたノードのアドレスをＲＡＭ２０２に記録しておくものとする。学習済ノード２は、図５の１行目および４行目の文字列を取得し、図５の通信メッセージが、何らかのノードが存在を通知するための通信メッセージであることを認識する。そして、３行目の「ｇａｋｕｓｈｕｕ」を取得することにより、図５の通信メッセージが、学習結果データの転送を要求していることを認識する。学習済ノード２は、受信した通信メッセージの送信元アドレスが、ＲＡＭ２０２に記録されている、近隣ノード通信プロトコルで通信した既存のノードのアドレスと一致するか比較する。本実施形態では、新規ノード５のアドレスはＲＡＭ２０２にないので、新しいノードであるとＣＰＵ２０１は判断する。新しいノードの場合、ＲＡＭ２０２に送信元アドレスを記録する。
【００３９】
学習済ノード２は、図４のＳ１０２において、まずＲＯＭ２０３もしくは記録装置２０６より、学習結果問い合わせ用の通信メッセージを読み込む。そして、ＲＡＭ２０２内に展開したあと、Ｓ１０１において受信した通信メッセージの送信元に、該学習結果問い合わせ用の通信メッセージをネットワークインタフェース２０５を通じて送信する。送信する通信メッセージの例を、図６に示す。図６では、ローカルルールＰＸとプロトコルＰの差分を学習したことを示す「ｄｉｆｆ−Ｐ−ＰＸ」というＩＤとなる文字列を送信している。本ＩＤは、１つのプロトコルと１つのローカルルールの差分について、１つ作成されるものとする。本例では、登場するプロトコルの種類が２種類のみのため、差分を示すＩＤは１つのみであるが、例えば、ローカルルールＰＸのほかにＰＹがあり、プロトコルＰとローカルルールＰＹの差分を学習したとき、その差分について通知することは可能である。つまり、複数のローカルルールとの差分データが存在した場合、それを示すＩＤも複数送信することは可能である。
【００４０】
新規ノード５は、図６に示されるような学習結果問い合わせ用通信メッセージを、ネットワークインタフェース１０５を通じて受信する。新規ノード５の記録装置１０６には、学習結果を管理するテーブルがある。図７は、そのテーブルの一例である。新規ノード５は、記録装置１０６内の該テーブルにおいて、学習データのＩＤと、学習済ノード２から受信した通信メッセージ内のＩＤを比較する。テーブルに学習データのＩＤがない場合、学習データへのポインタを参照する。本実施形態では、両方とも存在しないため、何も学習していないことになっている。そこで、新規ノード５は、図４のＳ１０３において、学習済ノード２に、該学習データのＩＤが存在しないことを通知する。
【００４１】
学習済ノード２は、新規ノード５より、学習結果はないことを意味する通信メッセージを受信する。学習済ノード２は、Ｓ１０４において、記録装置２０６より学習結果データ、つまり図２０の内容を読み出し、前述の学習データのＩＤと学習結果データを、新規ノード５に転送する。
【００４２】
新規ノード５は、学習結果データを記録装置１０６に記録する。そして、受信した学習データのＩＤと記録装置１０６内の学習結果データへのポインタを、図７に示したような、学習結果データを管理するテーブルに書き加える。書き加えたものの例を、図８に示す。
【００４３】
新規ノード５は、学習結果データを受信したので、それをプロトコルＰに摘要し、ローカルルールＰＸ用いて通信を行うことが可能になる。本例の場合、「ＧＥＴ ／ ＨＴＴＰ／１．１」を「ｇｅｔ ／ ＨＴＴＰ／１．１」として通信を行うことになる。
【００４４】
以上のようにして、新規ノード５は、学習済ノード２より、プロトコルＰとローカルルールＰＸとの差分データを転送される。そして、新規ノード５は、差分データをプロトコルPに摘要することにより、新規ノード５が学習を行うことなく、ローカルルールＰＸを用いて通信を行い、ローカルノード３やローカルノード４と通信を行うことが可能となる。プロトコルＰ、もしくはローカルルールＰＸを用いて、学習済ノード２と新規ノード５が通信することも可能である。
【００４５】
また、本実施形態では学習結果問い合わせ用通信メッセージを用いて、新規ノード５に学習結果データを所持しているか問い合わせを行ったが、図４のＳ１０２とＳ１０３を行わず、Ｓ１０１のあとにＳ１０４を実行してもよい。その場合、新規ノード５は、学習結果データをＲＡＭ１０２もしくは記録装置１０６に一時記録し、受信した学習結果データをすでに所有していないか判別する。判別した結果、すでに所有していれば、一時記録していた学習結果データを削除する。所有していなければ、学習結果データをそのまま保存する。
【００４６】
（第２の実施形態）
（学習済ノードが新規ノードを探索）
前記第１の実施形態では、新規ノード５が存在を通知する通信メッセージを送信し、該通信メッセージを学習済ノード２が受信することをきっかけとし、学習結果データの有無を問う通信メッセージを送信していた。本実施形態では、学習済ノード２が学習結果データを要するノードがないか探索する場合について説明する。本実施形態においても、近隣ノード通信プロトコルとしてＳＳＤＰを用いた場合を例に説明する。
【００４７】
図９を主に参照して説明する。学習済ノード２は、図９のＳ２０１において、図３のＲＯＭ２０３もしくは記録装置２０６より、探索用通信メッセージを読み出し、ＲＡＭ２０２に展開後、ネットワークインタフェース２０５を通じて送信する。ここで、探索用通信メッセージの例を図１０に示す。図１０において、1行目の文字列は、本通信メッセージが探索用であることを示す。２行目のＨｏｓｔ:以降は、図５の存在を通知するための通信メッセージの場合と同様に、本通信メッセージを送信するマルチキャストアドレスおよびポート番号である。図５について説明した際と同様、ポート番号は仮のものである。３行目のＭａｎ:以降は、本メッセージがＳＳＤＰのＤｉｓｃｏｖｅｒであるということを示しているが、ＳＳＤＰの仕様上は必須ではない。４行目のＳＴ:以降は、サービスタイプを示し、ＳＳＤＰの仕様上は必須である。本実施形態において、前記第１の実施形態の場合と同様に、学習結果を転送するサービスを用いたいことを示すため、「ｇａｋｕｓｈｕｕ」としておく。
【００４８】
図９のＳ２０１において送信された探索用通信メッセージは、新規ノード５に受信される。新規ノード５は、図２のネットワークインタフェース１０５を通じて探索用メッセージを受信し、ＲＡＭ１０２に一時記録する。新規ノード５は、図１０の通信メッセージを解析し、探索用メッセージであることを確認したのち、４行目ＳＴ:以降のサービスタイプの文字列を、ＲＯＭ１０３もしくは記録装置１０６に記録してある自身のサービスタイプと比較する。本例では、一致し、同一のサービスタイプであるものとする。
【００４９】
新規ノード５は、受信した探索用通信メッセージに返信するため、ＲＯＭ１０３もしくは記録装置１０６より、返信用通信メッセージを読み出し、ＲＡＭ１０２に一時記録する。図１１に、返信用通信メッセージの例を示す。図１１において、１行目は通信が正しく行われたことを示す返信用のメッセージである。２行目は、サービスタイプを示す。３行目ＵＳＮ：以降は、本通信メッセージの一意性を示すユニークなＩＤ番号である。
【００５０】
新規ノード５は、図９のＳ２０２において、ＲＡＭ１０２に一時記録した返信用通信メッセージを、ネットワークインタフェース１０５を通じて送信する。受信した探索用通信メッセージは、下位層でインターネットプロトコルを用いているため、送信元アドレスを取得することは可能であり、該送信元アドレス（この場合、学習済ノード２のアドレス）に返信は可能である。送信後、ＲＡＭ１０２に一時記録していた返信用通信メッセージは削除される。受信した探索用通信メッセージは、返信用通信メッセージを送信する、しないに関わらず削除される。
【００５１】
学習済ノード２は、図９のＳ２０２において送信された返信用通信メッセージを受信する。該返信用通信メッセージも、下位層においてインターネットプロトコルを用いているため、送信元ノードのアドレス（この場合、新規ノード５のアドレス）を取得することは可能である。
【００５２】
Ｓ２０２以降の処理は、前記第１の実施形態において、図４のＳ１０２以降と同じ処理のため、説明を省略する。
【００５３】
上述のようにして、学習済ノード２から新規ノード５を探索し、学習結果データを新規ノード５に送信することが可能となる。
【００５４】
（第３の実施形態）
（新規ノードがチェックツールから学習結果をダウンロード）
前記第１、第２の実施形態では、学習済ノード２から学習結果データを転送する場合について説明した。本実施形態では、学習結果データがチェックツール６にあり、チェックツール６から学習結果データを新規ノード５が取得する場合について説明する。なお、新規ノード５はチェックツール６のアドレスについて既知であり、アクセス可能であることとする。チェックツールとは、学習結果を保存するサーバの役目をするものである。また、ノードが、あるプロトコルに準拠しているかチェックする機能を有してもよい。
【００５５】
本実施形態を実行する環境を、図１２に示す。図１２は、図１に、チェックツール６が追加されている。チェックツール６は、インターネット７を経由して学習済ノード２および新規ノード５と通信可能である。
【００５６】
本実施形態の動作の流れを、図１３に示す。なお、図１３では、Ｓ１０２以前の処理は図４のＳ１０１、もしくは図９のＳ２０１およびＳ２０２のどちらでもかまわないため、省略している。
【００５７】
図１３のＳ１０２までの処理は前記第１、第２の実施形態と同じであるが、Ｓ１０２における処理より説明する。Ｓ１０２において、新規ノード５は学習結果データがあるかどうかを問う、学習結果問い合わせ用通信メッセージを受信する。本実施形態においても、該学習結果問い合わせ用通信メッセージの例として、図６を用いる。新規ノード５は、学習結果問い合わせ用通信メッセージを、ネットワークインタフェース１０５を通じて受信する。新規ノード５の記録装置１０６には、学習結果を管理するテーブルがある。図７は、そのテーブルの一例である。新規ノード５は、記録装置１０６内の該テーブルにおいて、学習データのＩＤと、学習済ノード２から受信した通信メッセージ内のＩＤを比較する。テーブルに学習データのＩＤがない場合、学習データへのポインタを参照する。本実施形態では、両方とも存在しないため、何も学習していないことになっている。そこで、新規ノード５は、図１３のＳ３０１において、チェックツール６に、該学習データのＩＤが存在しないことを通知する。
【００５８】
チェックツール６は、新規ノード５より、学習結果はないことを意味する通信メッセージを受信する。チェックツール６の構成例を、図１４に示す。チェックツール６は、記録装置４０６より学習結果データ、つまり図２０の内容を読み出し、前述の学習データのＩＤと学習結果データを、新規ノード５に転送する。なお、チェックツール６の構成は図２で説明した新規ノード５の構成と同様のため説明は省略する。
【００５９】
新規ノード５は、学習結果データを記録装置１０６に記録する。そして、受信した学習データのＩＤと記録装置１０６内の学習結果データへのポインタを、図７に示したような、学習結果データを管理するテーブルに書き加える。書き加えたものの例を、図８に示す。
【００６０】
新規ノード５は、学習結果データを受信したので、それをプロトコルＰに摘要し、ローカルルールＰＸ用いて通信を行うことが可能になる。本例の場合、「ＧＥＴ ／ ＨＴＴＰ／１．１」を「ｇｅｔ ／ ＨＴＴＰ／１．１」として通信を行うことになる。
【００６１】
以上のようにして、新規ノード５は、学習済ノード２からではなく、チェックツール６から学習結果データを転送してもらい、ローカルルールＰＸを使用して通信を行うことが可能となる。
【００６２】
本実施形態では、Ｓ１０２の通信メッセージを受信後、Ｓ３０１においてチェックツール６に学習結果データがないことを通知した。これに変わる方法として、例えば、学習済ノード２に学習結果データがないことを通知し、学習済ノード２から学習結果データが転送されないことを確認したあと、チェックツール６に学習結果データがないことを通知してもよい。
【図面の簡単な説明】
【００６３】
【図１】本発明第１の実施の形態に係る環境の例を示す図である。
【図２】本発明の実施の形態に係る新規ノードの構成例を示す図である。
【図３】本発明の実施の形態に係る学習済ノードの構成例を示す図である。
【図４】本発明の実施の形態に係るシステムの実施の流れを説明する図である。
【図５】本発明の実施の形態に係る近接ノード通信プロトコルにＳＳＤＰを用いた場合の、存在を通知するための通信メッセージの例を示す図である。
【図６】本発明の実施の形態に係る学習結果問い合わせ用通信メッセージの例を示す図である。
【図７】本発明の実施の形態に係る学習結果データを管理するテーブルの例を示す図である。
【図８】本発明の実施の形態に係る学習結果データを管理するテーブルに、学習結果データを書き加えた場合の例を示す図である。
【図９】本発明の第２の実施の形態に係るシステムの実施の流れを説明する図である。
【図１０】本発明の第２の実施の形態に係る近接ノード通信プロトコルにＳＳＤＰを用いた場合の、探索用通信メッセージの例を示す図である。
【図１１】本発明の第２の実施の形態に係る探索用通信メッセージに対する返信用通信メッセージの例を示す図である。
【図１２】本発明の第３の実施の形態に係る環境の例を示す図である。
【図１３】本発明の第３の実施の形態に係るシステムの実施の流れを説明する図である。
【図１４】本発明の第３の実施の形態に係るチェックツールの構成例を示す図である。
【図１５】本発明の実施の形態に係る学習済ノードについて説明するための環境の例を示す図である。
【図１６】本発明の実施の形態に係る学習済ノードについて説明するための通信メッセージの例を示す図である。
【図１７】本発明の実施の形態に係る学習済ノードについて説明するための通信メッセージの例を示す図である。
【図１８】本発明の実施の形態に係る学習済ノードについて説明するための通信メッセージの例を示す図である。
【図１９】本発明の実施の形態に係る学習済ノードについて説明するための通信メッセージの例を示す図である。
【図２０】本発明の実施の形態に係る学習済ノードがローカルルールＰＸを学習済みの場合における学習結果データを管理するテーブルに、学習結果を記録した例を示す図である。
【符号の説明】
【００６４】
１  ネットワーク
２  学習済ノード
３、４  ローカルノード
５  新規ノード
６  チェックツール
７  インターネット
１０１、２０１、４０１  ＣＰＵ
１０２、２０２、４０２  ＲＡＭ
１０３、２０３、４０３  ＲＯＭ
１０４、２０４、４０４  内部バス
１０５、２０５、４０５  ネットワークインタフェース
１０６、２０６、４０６  記録装置
【図１】
2008022166.tif 000003
【図２】
2008022166.tif 000004
【図３】
2008022166.tif 000005
【図４】
2008022166.tif 000006
【図５】
2008022166.tif 000007
【図６】
2008022166.tif 000008
【図７】
2008022166.tif 000009
【図８】
2008022166.tif 000010
【図９】
2008022166.tif 000011
【図１０】
2008022166.tif 000012
【図１１】
2008022166.tif 000013
【図１２】
2008022166.tif 000014
【図１３】
2008022166.tif 000015
【図１４】
2008022166.tif 000016
【図１５】
2008022166.tif 000017
【図１６】
2008022166.tif 000018
【図１７】
2008022166.tif 000019
【図１８】
2008022166.tif 000020
【図１９】
2008022166.tif 000021
【図２０】
2008022166.tif 000022