(57)【要約】【課題】  情報提供側のノードが自ら提供する情報の変更を通知する一方で、この通知を必要とするノードのみに送信すると共に同じノードに同じ通知が繰り返し送信されるのを抑制して提供情報の種類の変化に対する処理時間を削減することができる通信システムを提供する。【解決手段】  論理的ネットワークを構成するノードが、他ノードからの情報提供に関する情報を保持する他ノード提供情報保持部１２と、他ノード提供情報保持部１２に記憶した情報に基づいて自ノードに必要な情報を提供するノードを検索する他ノード情報提供検索部１３と、他ノードに情報提供する情報提供部１０と、他ノードと自律的に情報をやり取りするネットワークを構成し、当該ネットワーク上の他ノードに対して、自ノードの情報提供部が提供する情報の変更通知を送信する自律的ネットワーク構成部１５とを備える。【選択図】        図１
2006343970.tif 000002
【特許請求の範囲】
【請求項１】
論理的ネットワーク上の複数のノードからなる通信システムにおいて、
前記ノードは、他ノードからの情報提供に関する情報を保持する手段と、その情報に基づいて自ノードに必要な情報を提供するノードを検索する手段と、自ノードが提供する情報に発生した変更を通知する手段とを備えた通信システム。
【請求項２】
他ノードからの情報提供に関する情報を保持する他ノード提供情報保持部と、
前記他ノード提供情報保持部に記憶した情報に基づいて自ノードに必要な情報を提供するノードを検索する他ノード情報提供検索部と、
他ノードに情報提供する情報提供部と、
他ノードと自律的に情報をやり取りするネットワークを構成し、当該ネットワーク上の他ノードに対して、自ノードの情報提供部が提供する情報の変更通知を送信する自律的ネットワーク構成部とを備えたノード。
【請求項３】
自ノードの情報提供部が情報提供したノード、そのノードによる前記情報提供部の利用時刻及び利用ノード数に関する情報を記憶する利用ノード記憶部を備え、
自律的ネットワーク構成部は、情報の変更時刻と他ノードによる利用時刻とに基づいて、自ノードの情報提供部が情報提供したノードのうちから当該変更に係る情報と関連性のあるノードを判定し、変更通知の通知先ノードとすることを特徴とする請求項２記載のノード。
【請求項４】
自律的ネットワーク構成部により構成されたネットワーク上のノード数を保持するノード数保持部を備え、
前記自律的ネットワーク構成部は、ノード数保持部のノード数と自ノードの利用ノード数とに基づいてネットワーク内のノードが情報のやり取りを行うノード数を示す通知ポップ数を算出し、自ノードの情報提供部が情報提供したノードとの間で前記通知ポップ数をやり取りする毎にその値を減算すると共に、自ノードに通知された通知ポップ数に応じて他ノードから受信した変更通知の通知可否を判定することを特徴とする請求項２又は請求項３記載のノード。
【請求項５】
自律的ネットワーク構成部は、情報提供部を有さず、ネットワーク内のノードを検索してその情報提供を受ける他ノード提供情報検索部を有するノードを変更通知の通知先ノードから除外することを特徴とする請求項２から請求項４のうちのいずれか１項記載のノード。
【請求項６】
自律的ネットワーク構成部は、情報提供部を有さず、他ノードからの情報提供に関する情報を保持する他ノード提供情報保持部と、前記他ノード提供情報保持部に記憶した情報に基づいて自ノードに必要な情報を提供するノードを検索する他ノード情報提供検索部を有するノードを変更通知の通知先ノードから除外することを特徴とする請求項２から請求項４のうちのいずれか１項記載のノード。
【請求項７】
論理的ネットワーク上の複数のノードでやり取りされる情報の変更通知方法において、
前記ノードが、自ノードの提供情報に変更が発生するとその変更通知と共に、前記利用ノード数及び前記ネットワーク内のノード数に基づいて前記ネットワーク内のノードが情報のやり取りを行うノード数を示す通知ポップ数を算出して送信するステップと、
前記変更通知及び前記通知ポップ数を受信したノードが、前記変更通知によって前記ノードの提供情報に変更が生じたことを認識すると共に、当該変更通知を他ノードに送信するか否かを前記通知ポップ数に応じて判定し、送信する場合には当該通知ポップ数を減算した値を新たな通知ポップ数として算出して送信するステップとを備えた変更通知方法。
【請求項８】
論理的ネットワーク上のノードを構成するコンピュータに実行させるプログラムにおいて、請求項２から請求項６のうちのいずれか１項記載のノードとして前記コンピュータを機能させるプログラム。
【請求項９】
請求項８記載のプログラムを記憶するコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ピアツーピア（Peer to Peer：ＰｔｏＰ、Ｐ２Ｐ）型ネットワークを構成する通信システム、そのノード、変更通知方法及びこの機能をコンピュータに実現させるプログラム並びにこれを記憶する記憶媒体に関するものである。
【背景技術】
【０００２】
従来のクライアントサーバ型モデルと異なり、ノード自らがサーバにもなりクライアントにもなるＰ２Ｐ型ネットワークが近年注目を集めている。これは、Ｐ２Ｐ型ネットワークシステムでは、各ノードが必要な情報（例えば、共有ファイルなど）を提供する他のノードを自らの検索機能によって見つけ出し、また他のノードからの検索要求を別のノードに転送することにより、必要な情報を提供するノードの検索範囲を広げることもできるからである。
【０００３】
Ｐ２Ｐネットワークシステムの代表的な構築技術として、ＪＸＴＡがある（非特許文献１）。このＪＸＴＡでは、例えば非特許文献２に示すように、システム内のノードは必要な情報を提供する他のノードを以下の手順で検索する。
（１）ノードが構成するネットワーク（論理ネットワーク）全体から、必要な情報を提供する対象ノードを検索する。
（２）（１）の処理で対象ノードが見つからない場合、当該ネットワークにおいて、情報提供等して他のノードから利用されているノードから対象ノードを検索する。
（３）（２）の処理でも対象ノードが見つからない場合、（２）で検索範囲としたノードを利用していたノード（前記他のノード）を検索範囲として対象ノードを検索する。
（４）必要な情報を提供する対象ノードが見つかるまで（３）を一定回数繰り返す。
【０００４】
このような検索において、上記（３）、（４）の処理の繰り返し回数が少なければ少ないほど検索時間は短くなる。すなわち、各ノードが他のノードの提供する情報を多く知っていればいるほど早く検索できることになる。
【０００５】
【非特許文献１】丸山不二夫，“連載ＰｔｏＰの本命ＪＸＴＡを追跡する第３回ＪＸＴＡのＤｉｓｃｏｖｅｒｙの働き”,http://www.atmarkit.co.jp/fjava/rensai/jxta03/jxta03.html
【非特許文献２】L.Gong, “JXTA: A Network Programming Environment”,IEEE Internet Computing, v.5,pp 88-95,June 2001
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のシステムでは、非特許文献２に開示されるように、あるノードの提供する情報について他の多くのノードが知っていれば、必要な情報を提供するノードの検索が短時間で可能になる。しかしながら、あるノードの提供する情報の種類が変化した場合、それまでの情報を知っていた他の多くのノードにその変化について通知しなければ、検索の短時間化の効果を得ることができない。このため、ノードの提供する情報の種類が変化するたびに、その変化についての通知が多くなるという課題がある。
【０００７】
また、非特許文献２に開示される上記（１）の検索処理では、必要な情報を提供するノードを検索するたびに、当該情報を提供しない関係のないノードが検索要求を処理しなくてはならない。さらに、上記（３）、（４）の検索処理では、頻繁に情報のやり取りがなさている等、ノード間で互いに密に結合をしていると、同じノードが同じ検索要求を何度も処理しなくてはならない場合が発生するという課題もある。
【０００８】
この発明は、上記のような課題を解決するためになされたもので、Ｐ２Ｐ型ネットワークにおいて情報提供側のノードが自ら提供する情報の変更を通知する一方で、この通知を必要とするノードのみに送信すると共に同じノードに同じ通知が繰り返し送信されるのを抑制して提供情報の種類の変化に対する処理時間を削減することができる通信システム、そのノード、変更通知方法及びこの機能をコンピュータに実現させるプログラム並びにこれを記憶する記憶媒体を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る通信システムは、論理的ネットワークを構成するノードが、他ノードからの情報提供に関する情報を保持する他ノード提供情報保持部と、他ノード提供情報保持部に記憶した情報に基づいて自ノードに必要な情報を提供するノードを検索する他ノード情報提供検索部と、他ノードに情報提供する情報提供部と、他ノードと自律的に情報をやり取りするネットワークを構成し、当該ネットワーク上の他ノードに対して、自ノードの情報提供部が提供する情報の変更通知を送信する自律的ネットワーク構成部とを備えるものである。
【発明の効果】
【００１０】
この発明によれば、必要な情報を提供するサービスを行っているノードを効率的に検索することができ、また無駄な通知を削減できることから、システム内のノードの処理性能を有効に活用できるという効果がある。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１は、この発明の実施の形態１による通信システムのノードの構成を示すブロック図である。実施の形態１によるノード１は、情報提供部１０、利用ノード記憶部１１、他ノード提供情報保持部１２、他ノード提供情報検索部１３、ノード数保持部１４及び自律的ネットワーク構成部１５からなり、他ノードからの情報を受け取って処理を行うアプリケーション５０を有している。
【００１２】
情報提供部１０は、他ノードへ情報提供する機能を有し、他ノードから受信した情報提供要求２０に応じた情報を送信元のノードに提供する一方で、記憶要求２１を利用ノード記憶部１１に出力して自ノード１の情報提供機能を利用した当該ノードに関する情報を記憶させる。利用ノード記憶部１１は、情報提供部１０からの記憶要求２１に応じて、自ノード１を利用するノードに関する情報を記憶する。このノードに関する情報は、当該ノードを特定するための情報であり、例えばそのＩＰアドレスなどの物理ネットワーク上における位置を特定する情報があげられる。
【００１３】
他ノード提供情報保持部１２は、自ノード１が他ノードから情報提供を受けると、当該他ノードが有する情報提供機能に関する情報を保持する。他ノードが有する情報提供機能に関する情報としては、他ノードが情報提供するにあたり特定される、他ノードの物理ネットワーク位置、情報提供に際して自ノードから他ノードに与えるパラメータの値、それに応じて提供される値や情報の個数、その種類（整数なのか、文字列なのか等）に関する情報が考えられる。他ノード提供情報検索部１３は、ネットワーク内のノードへ検索要求２２を送信し、要求２２に合致する情報を提供するノードを検索対象のノードとしてその情報の提供を受ける。
【００１４】
つまり、ノード１上のアプリケーション５０による処理において他ノードの情報を必要とする場合、他ノード提供情報検索部１３が、当該必要な情報を提供するノードを検索するための要求２２をネットワークに送信し、検索結果として抽出されたノードから提供される情報をアプリケーション５０が受け取る一方で、他ノード提供情報保持部１２には当該情報を提供したノードの提供情報に関する情報が保持される。
【００１５】
ノード数保持部１４は、自律的ネットワーク構成部１５により構成されたネットワーク内のノード数を保持する。自律的ネットワーク構成部１５は、他ノード提供情報検索部１３が他ノードに対して検索要求２２を転送できるようにするため、アプリケーション５０とは独立に他のノードとネットワークを構成するための要求又は返答に関する信号２３を随時やり取りする。これにより、アプリケーション５０とは独立に必要な情報を提供するノードを検索可能な自律的ネットワークが構成される。
【００１６】
ノード１の構成要素である情報提供部１０、利用ノード記憶部１１、他ノード提供情報保持部１２、他ノード提供情報検索部１３、ノード数保持部１４及び自律的ネットワーク構成部１５は、本発明の趣旨に従うプログラムをコンピュータに読み込ませてその動作を制御することにより、当該コンピュータ上でソフトウエアとハードウエアが協働した具体的な手段として実現することもできる。また、利用ノード記憶部１１、他ノード提供情報保持部１２、ノード数保持部１４は、当該コンピュータに搭載されたメモリ上に構成される。なお、コンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００１７】
図２は、実施の形態１による通信システムの構成を概略的に示す図であり、上述した手順でノード間で互いの提供する情報を検索又は利用することにより、各ノード間で情報の取得に関する関連付けを示す論理ネットワークが構成されている。図において、ノード１００〜１０６が論理ネットワークを構成している。図中の矢印は、ノード間での情報のやり取りを示しており、例えばノード１００がノード１０２の情報を取得していることを示している。
【００１８】
この関連付けによって構成される論理ネットワークのうち物理的に近いノードで構成されるネットワークが、本発明で対象とするネットワークである。例えば、ＩＰマルチキャストを利用して何らかのノード検索パケットを定義して検索要求２２として送出すると、当該要求２２に対応するノードが特定されるネットワークが考えられる。この他、同一のＩＰネットワークアドレスを有するノードから構成されるネットワーク（ＩＰブロードキャストである情報が全てのノードに通知されるネットワーク）なども対象とすることができる。このように、本発明は、基本的に同一の物理ネットワークに属するノードを対象としている。
【００１９】
自律的ネットワーク構成部１５では、上述のような論理ネットワークを構成し、このとき論理ネットワーク内に存在するノードの数を同時に計算し、ネットワーク内のノード数を保持するノード数保持部１４に対して通知する。ノード数保持部１４は、この通知を受けるたびに内部で保持するノード数を更新する。なお、例としてＩＰネットワークをあげたが、本発明はこれに限定されるものではなく、他のアドレス体系のネットワークであってもよい。
【００２０】
次に動作について説明する。
図２において、ノード１００が提供する情報の種類に変化が起きたものと仮定すると、ノード１００は、ノード１０１，１０２，１０４と情報をやり取りしていることから、「必要な情報が取得できない」といった変化が生じる。例えば、ノード１０２がノード１００に対して情報提供要求２０を送出したとき、上述のような変化が発生すると、それまで何らかの正規の情報が取得できたにもかかわらず、情報提供不能となりエラーが返信される場合がある。
【００２１】
このような場合、ノード１００とノード１０１，１０２，１０４との間のように情報のやり取りを直接行っているノード間ならば、情報の提供を受けようとするノードは、情報提供側のノードが他のノードとの間で何らかの通信を行っており、さらに自ノードへ情報を提供するための通信ができない状態にあると仮定される。このため、その際に情報提供側のノードが、自己の提供する情報の種類に変化が生じたことを通知すれば、情報の提供を受けようとするノード側でその変化を知ることができる。
【００２２】
これに対して、例えばノード１００と直接情報のやり取りをしていないノード１０５がノード１００の情報の種類の変化を識別する場合は、上述のようにノード１００側から直接通知することができない。つまり、ノード間で直接情報をやり取りしているならば、上述のように提供される情報の種類に変化があっても互いの通信により直ちに認識することができるが、ノード１０５のように直接のやり取りがない場合、ノード１００が提供する情報の種類にいつ変化が発生したかを認識することができない。
【００２３】
この場合、ノード１０５が、ノード１００の提供する情報の種類の変化を知るための一つの方法としては、ノード１０５が他の全てのノード（図２におけるノード１００〜１０７）に問い合わせることが考えられる。しかしながら、上述のように、ノード１０５側では、ノード１００の提供する情報の種類に変化が発生したことを直接知ることができないため、変化のあるなしにかかわらず、全てのノードに問い合わせるなどの無駄な処理が必要となる。また、ノード１０５以外にノード１００と直接情報をやり取りしておらず、その提供する情報の変化を直接知ることができない他の全てのノードが同様に問い合わせを行わなければならないことを考えると現実的ではない。
【００２４】
そこで、本実施の形態１では、自ノードの提供する情報の種類に変化があったノード１００側で当該変化があった旨を他のノードに通知する。以降では、ノード１００による当該通知の方法を通知先を制限する条件によって分類し、条件毎の方法を順に説明する。
【００２５】
先ず、ノード１００は、利用ノード記憶部１１が他のノードへ情報を提供するたびに情報提供要求２０を受信した時刻（情報提供処理の開始時刻）と当該要求２０の送信元のノードが情報を受信した時刻（情報提供処理の終了時刻）を保持する。この情報提供処理の開始時刻及び終了時刻をそれぞれＴｓ（１００，ｙ）及びＴｌ（１００，ｙ）とする。ここで、ｙは他のノードを示しており、例えばノード１００の情報提供部１０が直近で最後にノード１０１へ情報提供した場合、ノード１００の情報提供部１０における最終適用時刻はＴｌ（１００，１０１）となる。
【００２６】
さらに、ノード１００では、自律的ネットワーク構成部１５が対象ネットワーク内にあるノード数を逐次計算してノード数保持部１４に保持する。図２の例では、ノード数は７ということになる。また、当該ネットワーク内の各ノードの利用ノード記憶部１１は、自ノードの情報提供部１０が他ノードから利用された場合、当該利用したノードを特定する情報と利用されたノード数とを逐次記憶する。図２の例では、ノード１００の利用ノード記憶部１１には、自ノードの情報提供部１０を利用したノード１０１，１０２，１０４を特定する情報及び利用ノード数（３つ、ノード１０１，１０２，１０４）が記憶される。
【００２７】
ノード１００では、自ノードの提供する情報の種類が変化した時刻がＴ２である場合、当該時刻と情報提供の開始時刻との差であるＴ２−Ｔｓ（１００，ｙ）、当該時刻と情報提供の終了時刻との差であるＴ２−Ｔｌ（１００，ｙ）、利用ノード数Ｎｕ、及びネットワーク内の全てのノード数Ｎａを用いて、当該情報の種類が変化した旨の通知先を決定する。但し、ｙはノード１００から情報提供を受けた任意のノードを示している。また、図２の例では、Ｎｕが３、Ｎａが７となる。
【００２８】
また、各ノードには、変化発生時刻と情報提供の開始時刻との差に関する閾値Ｔｘｓ、変化発生時刻と情報提供の終了時刻との差に関する閾値Ｔｘｌ、利用ノード数に関する閾値Ｎｘが設定されているものとする。これらの閾値は、通知先に絞りをかけるか否かを判定するためのものであり、例えば通信先を絞らないでも許容範囲の検索効率を実現できる前記パラメータの最大値を閾値として予め決定しておく。但し、この値はネットワークの構成や利用状況に応じて変化させてもかまわないし、恣意的な固定値でもかまわない。
【００２９】
図３は、実施の形態１のノードによる変更通知処理の流れを示すフローチャートであり、図中のパラメータは上述の定義に従うものとする。
ノード１００の自律的ネットワーク構成部１５は、自ノードの情報提供部１０が提供する情報の種類に変化が生じると、先ずノード数保持部１４に保持しておいた対象ネットワーク内のノード数Ｎａを読み出す（ステップＳＴ１）。このあと、自律的ネットワーク構成部１５は、ノード数Ｎａと閾値Ｎｘを比較してＮａがＮｘを超えているか否かを判定する（ステップＳＴ２）。このとき、ＮａがＮｘを超えていれば、通知先ノードの数を絞る処理に移行する（ステップＳＴ５）。
【００３０】
一方、ＮａがＮｘを超えていなければ、自律的ネットワーク構成部１５は、利用ノード記憶部１１から各ノードについて自ノードが情報提供した開始時刻Ｔｓ（１００，ｙ）を読み出して、情報の種類に変化があった時刻Ｔ２との差Ｔ２−Ｔｓ（１００，ｙ）をそれぞれ算出する。そして、自ノードに保持されている全てのＴｓ（１００，ｙ）に対するＴ２−Ｔｓ（１００，ｙ）のうちの最大値Ｔｍを求める（ステップＳＴ３）。
【００３１】
続いて、自律的ネットワーク構成部１５は、Ｔ２−Ｔｓ（１００，ｙ）の最大値Ｔｍと閾値Ｔｘｓとを比較して、ＴｍがＴｘｓを超えているか否かを判定する（ステップＳＴ４）。ここで、ＴｍがＴｘｓを超えていれば、ステップＳＴ５の処理に移行して通知先ノードの数を制限する。また、ＴｍがＴｘｓを超えていなければ、ステップＳＴ６に進み、対象ネットワーク内の全てのノードに通知を行う処理を実行する。
【００３２】
図４は、図３中のステップＳＴ５における通知先のノードを絞る通知先制限処理の流れを示すフローチャートであり、通知を受けたノードが別のノードに当該通知をリレーする処理を示している。
先ず、ノード１００の情報提供部１０は、利用ノード記憶部１１に記憶させた情報に基づいて自己を利用したノード１０１，１０２，１０４を特定し、自己が提供する情報の種類に変化があった旨の変更通知をノード１０１，１０２，１０４に送信する。このとき、ノード１００の自律的ネットワーク構成部１５は、利用ノード記憶部１１から利用ノード数Ｎｕを読み出し、ノード数保持部１４から対象ネットワーク内のノード数Ｎａを読み出して、Ｎｕ及びＮａの値から通知ポップ数を算出し、前記変更通知と同時にノード１０１，１０２，１０４に送信する。
【００３３】
例えば、Ｎａ／Ｎｕを通知ポップ数とすることが考えられる。この通知ポップ数Ｎａ／Ｎｕ値は、対象のネットワーク内で全てのノードが均一に情報のやり取りを行っている、つまり、どのノードもＮｕ個のノードと情報のやり取りを行っていると仮定した場合の、平均ポップ数に相当する。これにより、平均してＮａ／Ｎｕ値に相当する数だけノードを中継すれば他の任意のノードに対しても変更通知を伝えることができる。
【００３４】
なお、通知ポップ数としては、例えば対象のネットワーク内で情報のやり取りが行われている全てのノードに対して通知するためにＮａ値自体を設定したり、情報のやり取りが限定した範囲のノードに限られている場合であれば、Ｎａ，Ｎｕの値に依存しない固定値を設定するようにしてもよい。
【００３５】
これらの処理により、ノード１０１，１０２，１０４は、ノード１００からの変更通知と通知ポップ数を受け取ることになる（ステップＳＴ１ａ）。この通知を受けた各ノードの自律的ネットワーク構成部１５は、他ノード提供情報保持部１２に保持した情報から、当該受信した通知が以前に受信したものと同じであるか否かを判定する（ステップＳＴ２ａ）。このとき、受信した通知が以前に受信したものと同じであり、他のノードへの通知リレー処理を既に行ったものであると判定されれば、自律的ネットワーク構成部１５は、当該受信した通知を破棄して処理を終了する（ステップＳＴ６ａ）。
【００３６】
一方、受信した通知が以前に受信したものと同一でなければ、自律的ネットワーク構成部１５は、受信した通知ポップ数が１未満であるか否かを判定する（ステップＳＴ３ａ）。ここで、通知ポップ数が１未満であるならば、当該通知を伝えるべきノードがないものと判断して他のノードに変更通知をリレーせず、ステップＳＴ６ａに進んで処理を終了する。
【００３７】
また、通知ポップ数が１以上であれば、自律的ネットワーク構成部１５は、利用ノード記憶部１１から読み出した自ノードを利用したノード数Ｎｕと、通知された通知ポップ数から１を減じた値とから新たな通知ポップ数を再計算する（ステップＳＴ４ａ）。例えば、情報の種類が変化した旨を通知したノード１００からの通知ポップ数がＮａ／Ｎｕ値で与えられている場合、当該通知を受けたノードの自律的ネットワーク構成部１５は、（受信した通知ポップ数−１）／（自ノードを利用したノード数Ｎｕ）を新たな通知ポップ数として算出し、これら自己を利用したノードの全てに対してノード１００からの変更通知と当該再計算した通知ポップ数とを送信する（ステップＳＴ５ａ）。なお、送信した変更通知は他ノード提供情報保持部１２に保持され、ステップＳＴ２ａでの一致判定に利用される。
【００３８】
これら処理を通知を受けた各ノードが逐次実行することにより、変更通知の送信元のノード（例えば、図２中のノード１００）との間で直接情報をやり取りするノード（例えば、図２中のノード１０１，１０２，１０４）が当該変更通知を受け取り、さらにこれらのノードとの間では直接情報のやり取りをするが、変更通知の送信元のノードとの間では直接情報をやり取りしない他ノード（例えば、図２中のノード１０３，１０５，１０６）に対して変更通知と通知ポップ数がリレーされることになる。
【００３９】
図２を用いて具体的に説明する。例えば、ノード１００からの変更通知は、通知先を制限する条件ではノード１０１，１０２，１０４に通知される。このとき、一緒に通知される通知ホップ数は、対象ネットワーク内の全ノード数Ｎａ／利用ノード数Ｎｕ＝７／３＝２．３３である。この通知を受けたノード１０１は、ステップＳＴ４ａの処理に従って、通知ホップ数を再計算し、ノード１０３とノード１０６にノード１００からの変更通知と共に再計算した通知ホップ数０．６７を通知する。ノード１０３は、受けた通知ホップ数が１未満であるため終了となり、ノード１０３を利用しているノード１０５には通知しない。
【００４０】
一方、ノード１０１は、ノード１００とノード１０４との２つから通知を受けるが、同一の通知であるので処理をするのは片方だけで、もう片方は受け取った直後に破棄する。つまり、ノード１０１からノード１０３へ通知されるのは１度のみである。なお、この場合、ノード１００からの変更通知がノード１０５に通知されないことになる。しかしながら、これは、ノード１０５自体がノード１００の提供する情報の変化を知る必要性が薄いということを意味するため、通知が届かないことによるデメリットは少ない。
【００４１】
上述した図３の処理においては、各ノードのうち、直近最後に情報提供を受けた時刻が最も早いノードの開始時刻Ｔｓ（１００，ｙ）が、Ｔ２−Ｔｘｓより早かったら通信先を制限する。つまり、他のノードからはじめて情報提供を要求された時刻からどのくらい時間が経過したかを通知先を制限するか否かの判定基準としている。これにより、他のノードから自ノードが利用されてある程度の時間をおくことにより、自ノードとの間での情報の流れが定まった状態となり、ネットワークの構成ノードや情報のやり取りが安定化することが期待される。このような状態になるのを待って図３中の処理を実行することにより変更通知の効率的な伝達を実現することができる。
【００４２】
このように、対象のネットワーク内における全てのノードが他のノードからの情報提供を頻繁に受ける状態（常に通信相手のノードから自ノードの提供する情報を要求されている状態）にある場合に図３の処理は適している。しかしながら、このような状態ではない場合、例えばあるノードＡが一旦あるノードＢからの情報提供を受けた後に全くノードＢからの情報提供を要求しない場合を考える。このとき、ノードＢが提供する情報の変更通知は、図３の処理に従うとノードＢからの情報提供をずっと要求していなかったノードＡに対しても通知される。
【００４３】
つまり、図３の処理だけでは、通信相手が自ノードの情報を随時必要としているのか、一時的に必要な情報を取得するために通信してきたのかを判定することができないので、あるノードから過去に情報提供を受けたが、既に当該ノードからの情報提供を必要としていない状態にあるノードに対しても変更通知がなされることになり、通知に無駄が生じてしまう。
【００４４】
図５は、実施の形態１のノードによる変更通知処理の他の例を示すフローチャートであり、既に情報のやり取りがなくその情報の変更通知を通知する必要がないノードを判定し変更通知の通知先から除外するものである。図５に示す処理と図３の処理との違いは、情報提供したノードが変更通知の通知先を個別に判別し、その判別条件を満足するノードのみを通知対象とすることである。
【００４５】
先ず、ノード１００の自律的ネットワーク構成部１５は、自ノードの情報提供部１０が提供する情報の種類に変化が発生すると、ノード数保持部１４から対象ネットワーク内のノード数Ｎａを読み出す（ステップＳＴ１ｂ）。このあと、自律的ネットワーク構成部１５は、ノード数Ｎａと閾値Ｎｘを比較してＮａがＮｘを超えているか否かを判定する（ステップＳＴ２ｂ）。このとき、ＮａがＮｘを超えていれば、通知先ノードの数を絞る処理に移行する（ステップＳＴ５ｂ）。
【００４６】
一方、ＮａがＮｘを超えていなければ、自律的ネットワーク構成部１５は、利用ノード記憶部１１に保持している全てのノードについて自ノードによる情報提供が終了した終了時刻Ｔｌ（１００，ｙ）をそれぞれ読み出して、自ノードの情報提供部１０が提供する情報の種類に変化があった時刻Ｔ２との差Ｔ２−Ｔｌ（１００，ｙ）を算出する。そして、自ノードに保持されている全てのＴｌ（１００，ｙ）についてＴ２−Ｔｌ（１００，ｙ）が閾値Ｔｘｌ未満となるノードを特定し、この条件を満たすノード数ｎを求める（ステップＳＴ３ｂ）。
【００４７】
続いて、自律的ネットワーク構成部１５は、ｎが０より大きいか否かを判定する（ステップＳＴ４ｂ）。ここで、ｎが０を超えていれば、ステップＳＴ５ｂの処理に移行して通知先ノードの数を制限する。また、ｎが０以下であれば、ステップＳＴ６ｂに進み、対象ネットワーク内の全てのノードに通知を行う処理を実行する。
【００４８】
これにより、直近で自ノードを利用したノードに対してのみ通知を行うことができ、直近に提供した情報により関連性の高いノードのみを変更通知の通知対象とすることができる。この結果、ノード１００が提供する情報の種類の変化に関して、変更通知が必要とされるノードに対してのみ順次通知され、必要のないノードには通知が届かず、余分な処理を行わないで済む。
【００４９】
ノード１００と直接情報のやり取りをしないノード１０５が当該ノード１００の提供する情報を必要とした場合、ノード１０５の他ノード提供情報検索部１３が対象ネットワーク内の全てのノードに対して一度検索を実行し、検索結果として発見したノード１００から情報を受ける。これにより、この後にノード１００の提供情報に変更があっても、ノード１０５は、その変更通知を上述のようにして受けることができる。
【００５０】
この場合、ネットワーク内のノード全てに検索要求２２を出しその返答を待つため、ネットワーク全体に対する検索には時間がかかるが、それまでノード１００とノード１０５との関連が薄く、ノード１００に関する情報をノード１０５が受けることに対する処理能力、処理時間の減少も同時に達成されている。これにより、全体としてノード１０５の処理効率の向上が見込まれることになる。
【００５１】
以上のように、この実施の形態１によれば、他ノードからの情報提供に関する情報を保持する他ノード提供情報保持部１２と、他ノード提供情報保持部１２に記憶した情報に基づいて自ノードに必要な情報を提供するノードを検索する他ノード情報提供検索部１３と、他ノードに情報提供する情報提供部１０と、他ノードと自律的に情報をやり取りするネットワークを構成し、当該ネットワーク上の他ノードに対して、自ノードの情報提供部が提供する情報の変更通知を送信する自律的ネットワーク構成部１５とを備えるので、必要な情報を提供するサービスを行っているノードを効率的に検索することができ、また無駄な通知を削減できることから、システム内のノードの処理性能を有効に活用できる。
【００５２】
なお、上記実施の形態１では、ノードの構成として図１に示すような情報提供部１０を有するものを示したが、本発明は図１のノード１のみから対象ネットワークを構成する態様に限定されるものではない。例えば、図６に示すノード構成が考えられる。図６中のノード１Ａでは、図１の構成のうち、情報提供に関する情報提供部１０及び利用ノード記憶部１１、他ノード提供情報保持部１２、ノード数保持部１４を省略している。
【００５３】
なお、図６で示されるノード１Ａは、アプリケーション５０による処理で他ノードからの情報提供が必要になった場合、その都度他ノード提供情報検索部１３がネットワーク内の全てのノードを検索して必要な情報を提供するノードを検索することになる。このように情報提供が必要なときにその都度検索するのであれば、情報の提供側でその情報に変更があったとしても、その変更後の情報を検索要求すればよいのであるから、変更通知を送信するのは無駄である。
【００５４】
そこで、ノード１Ａが他のノードから情報提供を受けた場合、この情報を提供をした側のノードでは、自己を利用したノードとしてノード１Ａに関する情報を利用ノード記憶部１１に保持しないようにする。これにより、変更通知を送る必要のないノードを通知先から除外することができ、上記実施の形態１と同様の処理を行うことができ、同様の効果が得られる。
【００５５】
また、上述した図６に示す構成の他、対象ネットワーク内に図７に示すような構成のノードが存在しても良い。図７に示す構成は、図６と同様に情報提供に関する構成要素が一切省略されているが、他ノード提供情報保持部１２を有する点で異なる。このノード１Ｂでは、アプリケーション５０による処理で他ノードからの情報提供が必要になった場合、他ノード提供情報保持部１２に保持される情報に基づいて他ノード提供情報検索部１３がネットワーク内の必要な情報を提供するノードを検索することになる。この構成であっても、情報提供が必要なときにその都度検索するので、その変更後の情報を検索要求すればよいのであるから、変更通知を送信するのは無駄である。
【００５６】
そこで、ノード１Ｂが他のノードから情報提供を受けた場合、この情報を提供をした側のノードでは、自己を利用したノードとしてノード１Ｂに関する情報を利用ノード記憶部１１に保持しないようにする。これにより、変更通知を送る必要のないノードを通知先から除外することができ、同様の効果が得られる。
【００５７】
なお、上記実施の形態１において、適用対象とするネットワークの形態等に応じて、通知ホップ数の計算式を適宜改良することで、変更通知が不必要なノードに対して当該変更が通知されることを減少させることができ、この結果として各ノードにおける無駄な通知に要する処理を減らすことができる。
【００５８】
このように、各ノードにおける不必要な処理が削減することにより、各ノードの処理性能を他に振り分けることが可能となる。つまり、本発明を適用することにより、同じ性能のノードに多くの処理を行わせることができたり、また稼働時間の減少が見込めるため、例えば、ノードがバッテリ駆動してる場合のバッテリのもちを長くするといった効果も期待できる。
【図面の簡単な説明】
【００５９】
【図１】この発明の実施の形態１による通信システムのノードの構成を示すブロック図である。
【図２】実施の形態１による通信システムの構成を概略的に示す図である。
【図３】実施の形態１のノードによる変更通知処理の流れを示すフローチャートである。
【図４】図３中のステップＳＴ５における通知先のノードを絞る通知先制限処理の流れを示すフローチャートである。
【図５】実施の形態１のノードによる変更通知処理の他の例を示すフローチャートである。
【図６】実施の形態１による通信システムのノードの他の構成例を示すブロック図である。
【図７】実施の形態１による通信システムのノードの他の構成例を示すブロック図である。
【符号の説明】
【００６０】
１，１００〜１０６  ノード、１０  情報提供部、１１  利用ノード記憶部、１２  他ノード提供情報保持部、１３  他ノード提供情報検索部、１４  ノード数保持部、１５  自律的ネットワーク構成部、２０  情報提供要求信号、２１  記憶要求信号、２２  検索要求信号、２３  ネットワーク構成に関する信号、５０  アプリケーション。
【図１】
2006343970.tif 000003
【図２】
2006343970.tif 000004
【図３】
2006343970.tif 000005
【図４】
2006343970.tif 000006
【図５】
2006343970.tif 000007
【図６】
2006343970.tif 000008
【図７】
2006343970.tif 000009