(57)【要約】【課題】ネットワークにおける処理負担の増加を抑制しつつ、ノードの参加及び離脱の両方において自律的に通信経路を新たに構築し得る、ネットワークシステム、ノード、ネットワーク管理方法、及びプログラムを提供する。【解決手段】ネットワークシステム５００は、ノード１００を備えている。ノード１００は、その接続先を特定し且つ接続先の数を制限する経路テーブル情報を格納する経路テーブル格納部１１４と、経路テーブル情報の内容を書き換える、経路テーブル操作部１１３とを備える。経路テーブル操作部１１３は、ノード１００がネットワークに参加する場合、ノード１００に直接接続されるノードがネットワークに参加した場合、及びノード１００に直接接続されたノードがネットワークから離脱した場合に、経路テーブル情報を更新し、ネットワークシステムにおける新たな経路を構築する。【選択図】図６
2014175685.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを備えたネットワークを有するシステムであって、
前記複数のノードそれぞれは、
当該ノードの接続先を特定し且つ接続先の数を制限する経路テーブル情報を格納する、経路テーブル格納部と、
前記経路テーブル情報の内容を書き換える、経路テーブル操作部と、を備え、
前記複数のノードそれぞれにおいて、前記経路テーブル操作部は、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、当該ノードにおける前記経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とするネットワークシステム。
【請求項２】
前記複数のノードそれぞれにおいて、前記経路テーブル情報は、当該ノードに直接接続されているノードを特定する自ノード経路テーブルと、当該ノードに直接接続された他のノードそれぞれに接続されているノードを特定する他ノード経路テーブルとを含む、
請求項１に記載のネットワークシステム。
【請求項３】
前記複数のノードそれぞれが、更に、
前記ネットワークへの参加のために、前記経路テーブル情報に含まれる前記自ノード経路テーブルを含むノード参加イベントデータを作成する、不特定ノード向けイベントデータ作成部と、
前記ノード参加イベントデータを、当該ノード以外のノードへと送信する、不特定ノード向けイベントデータ送信部と、を備え、
前記複数のノードそれぞれにおいて、前記経路テーブル操作部は、前記ノード参加イベントデータの送信後に、当該ノードにおいて、当該ノード以外のノードから、その自ノード経路テーブルを含む候補ノードイベントデータを受信した場合に、受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと当該ノード以外のノードとの間に新たな経路を構築する、
請求項１または２に記載のネットワークシステム。
【請求項４】
前記複数のノードそれぞれが、更に、
当該ノードにおいて、当該ノード以外のノードから、前記ノード参加イベントデータを受信した場合に、受信元のノードの参加を認めるかどうかを判断する、イベントデータ解析部と、
受信元のノードの参加が認められる場合に、自ノード経路テーブルを含む前記候補ノードイベントデータを作成する、特定ノード向けイベントデータ作成部と、
前記候補ノードイベントデータを、前記受信元のノードに送信する、特定ノード向けイベントデータ送信部と、を備え、
前記複数のノードそれぞれにおいて、前記経路テーブル操作部は、前記候補ノードイベントデータの送信後に、前記受信元のノードから受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと受信元のノードとの間に新たな経路を構築する、
請求項３に記載のネットワークシステム。
【請求項５】
前記複数のノードそれぞれが、更に、
当該ノードに接続されているノードが障害によって前記ネットワークから離脱する場合に、前記経路テーブル情報に基づいて新しい接続先を特定する、障害処理部を備え、
前記複数のノードそれぞれにおいて、前記経路テーブル操作部は、前記障害処理部によって新しい接続先が特定された場合に、特定された前記新しい接続先に基づいて、前記経路テーブル情報を更新する、
請求項１〜４のいずれかに記載のネットワークシステム。
【請求項６】
複数のノードを備えたネットワークを構築するノードであって、
当該ノードは、
自身の接続先を特定し且つ接続先の数を制限する経路テーブル情報を格納する、経路テーブル格納部と、
前記経路テーブル情報の内容を書き換える、経路テーブル操作部と、を備え、
前記経路テーブル操作部は、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、前記経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とするノード。
【請求項７】
複数のノードを備えるネットワークシステムにおける、ネットワーク管理方法であって、
（ａ）前記複数のノードそれぞれにおいて、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、
当該ノードの接続先を特定し且つ接続先の数を制限する、経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ステップを有する、ことを特徴とするネットワーク管理方法。
【請求項８】
コンピュータを、複数のノードを備えたネットワークを構築するノードとして機能させるためのプログラムであって、
前記コンピュータに、
（ａ）当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、
当該ノードの接続先を特定し且つ接続先の数を制限する、経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数のノードを備えるネットワークシステム、これに用いられるノード、ネットワーク管理方法、及びこれらを実現するためのプログラムに関する。
【背景技術】
【０００２】
近年、多数のノード（コンピュータ）に並列処理を行なわせる分散コンピューティングが利用されている。分散コンピューティングによれば、各ノードの処理能力が高くなくても、分散して処理が行なわれるため、暗号解読、医療研究、気象解析といった複雑な処理を行なうことが可能となる。
【０００３】
ところで、このような分散コンピューティングでは、多数のノードによってネットワークが構築されるため、ネットワーク内においてノードの参加又は離脱が発生することがある。ノードの参加又は離脱が発生すると、ネットワークの構成が変わるため、このような場合は、ネットワークの分断をさけるため、新規の通信経路の構築等が必要となる。
【０００４】
このため、ネットワーク内でノードの参加又は離脱が発生した場合に、参加又は離脱対象となっていないノード自体が自律的に新たな通信経路を構築する技術が提案されている（例えば、特許文献１〜３参照）。
【０００５】
具体的には、特許文献１及び２は、各ノードに、隣接するノードの接続情報に基づいて、離脱した場合の通信経路を事前に作成させるシステムを開示している。特許文献１及び２に開示されたシステムでは、ノードは、離脱の際に、事前に作成した通信経路を隣接ノードに通知するため、離脱後は速やかに残りのノードによって新たな通信経路が構築される。このため、ネットワークの分断が抑制されている。
【０００６】
また、特許文献３は、ネットワーク内のノードに障害が発生した場合に、他のノードによって、障害ノードを検出させるシステムを開示している。特許文献３に開示されたシステムでは、障害ノードに接続されていたノードは、それに隣接するノードまでのメトリックス値を算出し、算出したメトリックス値が最小となるノードを新たな接続先とする。このため、障害が発生した場合であっても、ネットワークの分断が抑制される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３８４４２１５号公報
【特許文献２】特許第４８９３５３３号公報
【特許文献３】特許第４８２４９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、特許文献１及び２に開示したシステムでは、ノードに障害が発生した場合は、離脱後の通知経路が通知されないため、新たな通信経路の構築は困難であるが、特許文献３に開示されたシステムによれば、ノードに障害が発生した場合であっても対応できる。従って、特許文献１及び２に開示されたシステムに、特許文献３に開示されたシステムを組み合せれば、ノードが離脱した場合と、ノードに障害が発生した場合とのいずれにおいても、新たな通信経路を構築できると考えられる。
【０００９】
しかしながら、特許文献１及び２に開示されたシステムでは、隣接するノードの数に制限がなく、隣接するノードの数の増加に従って各ノードが保有すべき接続情報の量が増大するため、新たな通信経路の構築に時間がかかりすぎる場合がある。また、特許文献３に開示されたシステムでは、隣接するノードの数が増加する程、メトリックス値の算出回数が増加してしまうため、このシステムにおいても、新たな通信経路の構築に時間がかかりすぎる場合がある。
【００１０】
また、特許文献１〜３に開示されたいずれのシステムも、ノードがネットワークに参加する場合には対応しておらず、ノードが参加した場合に新たな通信経路を構築することは困難である。
【００１１】
本発明の目的は、上記問題を解消し、ネットワークにおける処理負担の増加を抑制しつつ、ノードの参加及び離脱の両方において自律的に通信経路を新たに構築し得る、ネットワークシステム、ノード、ネットワーク管理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明におけるネットワークシステムは、複数のノードを備えたネットワークを有するシステムであって、
前記複数のノードそれぞれは、
当該ノードの接続先を特定し且つ接続先の数を制限する経路テーブル情報を格納する、経路テーブル格納部と、
前記経路テーブル情報の内容を書き換える、経路テーブル操作部と、を備え、
前記複数のノードそれぞれにおいて、前記経路テーブル操作部は、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、当該ノードにおける前記経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とする。
【００１３】
上記目的を達成するため、本発明におけるノードは、複数のノードを備えたネットワークを構築するノードであって、
当該ノードは、
自身の接続先を特定し且つ接続先の数を制限する経路テーブル情報を格納する、経路テーブル格納部と、
前記経路テーブル情報の内容を書き換える、経路テーブル操作部と、を備え、
前記経路テーブル操作部は、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、前記経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とする。
【００１４】
また、上記目的を達成するため、本発明におけるネットワーク管理方法は、複数のノードを備えるネットワークシステムにおける、ネットワーク管理方法であって、
（ａ）前記複数のノードそれぞれにおいて、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、
当該ノードの接続先を特定し且つ接続先の数を制限する、経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ステップを有する、ことを特徴とする。
【００１５】
更に、上記目的を達成するため、本発明におけるプログラムは、コンピュータを、複数のノードを備えたネットワークを構築するノードとして機能させるためのプログラムであって、
前記コンピュータに、
（ａ）当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、
当該ノードの接続先を特定し且つ接続先の数を制限する、経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とする。
【発明の効果】
【００１６】
以上のように、本発明によれば、ネットワークにおける処理負担の増加を抑制しつつ、ノードの参加及び離脱の両方において自律的に通信経路を新たに構築することができる。
【図面の簡単な説明】
【００１７】
【図１】図１（ａ）は、本発明の実施の形態におけるネットワークシステムの一部分を概念的に示す図であり、図１（ｂ）〜（ｇ）それぞれは、タイプの異なるノードを説明するための図である。
【図２】図２（ａ）〜（ｆ）それぞれは、ノードの経路数とネットワーク構成との関係を示す図である。
【図３】図３は、従来のネットワークシステムにおけるノードの参加ルールを説明するための図である。
【図４】図４は、本発明のネットワークシステムにおけるノードの参加ルールを説明するための図である。
【図５】図５（ａ）及び（ｂ）は、それぞれ、本発明のネットワークシステムにおけるノードの参加ルールの具体的に示す図である。
【図６】図６は、本発明の実施の形態におけるネットワークシステム及びノードの構成を示す図である。
【図７】図７は、本実施の形態で用いられる経路テーブル情報の構造の一例を示す図である。
【図８】図８は、経路テーブルに格納される情報とノード間の構成との関係を示す図である。
【図９】図９（ａ）は、本発明の実施の形態で用いる経路テーブルの一般的な例を示す図であり、図９（ｂ）は、図９（ａ）に示す経路テーブルが対応するノード間の構成を示す図である。
【図１０】図１０は、本実施の形態で用いられるイベントキーの種類の一例を示す図である。
【図１１】図１１は、ノードの参加の一例を示し、図１１（ａ）は、ノードＸが参加する前のノード間の構成と各ノードの経路テーブルを示し、図１１（ｂ）は、ノードＸが参加した後のノード間の構成と各ノードの経路テーブルを示している。
【図１２】図１２は、ノードＹの参加によるノード間の構成の変化を示す図である。
【図１３】図１３は、本発明の実施の形態におけるノードの具体的構成を示すブロック図である。
【図１４】図１４は、ノードの参加があった場合のネットワークシステムにおける情報の流れを示す図である。
【図１５】図１５は、ノードの参加があった場合のシーケンスと各経路テーブルの遷移とを示す図である。
【図１６】図１６は、ノードの参加の他の例を示し、図１６（ａ）は、ノードＸが参加する前のノード間の構成と各ノードの経路テーブルとを示し、図１６（ｂ）は、ノードＸが参加した後のノード間の構成と各ノードの経路テーブルとを示している。
【図１７】図１７は、定期的な経路追加イベントによって経路が追加される例を示す図であり、図１７（ａ）は、経路の追加前のノード間の構成を示し、図１７（ｂ）は、経路の追加後のノード間の構成を示している。
【図１８】図１８は、定期的な経路追加イベントによって経路が追加される場合のネットワークシステムにおける情報の流れを示す図である。
【図１９】図１９は、定期的な経路追加イベントによって経路が追加される場合のシーケンスと各経路テーブルの遷移とを示す図である。
【図２０】図２０は、ネットワークシステムにおけるノードの死活監視を説明するための図である。
【図２１】図２１は、死活監視実行時におけるノードの動作を示すフロー図である。
【図２２】図２２は、ネットワーク中のタイプ２のノードが離脱する例を示す図であり、図２２（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図２２（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【図２３】図２３は、ネットワーク中のタイプ２のノードが離脱した後に新経路が構築される例を示す図であり、図２３（ａ）は、新経路の構築前のノード間の構成と各ノードの経路テーブルとを示し、図２３（ｂ）は、新経路の構築後のノード間の構成と各ノードの経路テーブルとを示している。
【図２４】図２４は、ネットワーク中のタイプ２のノードが離脱した後に新経路が構築される場合のネットワークシステムにおける情報の流れを示す図である。
【図２５】図２５は、ネットワーク中のタイプ２のノードが離脱した後に新経路が構築される場合のシーケンスと各経路テーブルの遷移とを示す図である。
【図２６】図２６は、ネットワーク中のタイプ３ｉのノードが離脱し、タイプ２のノードが最初に離脱を検知する例を示す図である。図２６（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図２６（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【図２７】図２７は、図２６に示したノードの離脱の検知を説明する図である。図２７（ａ）は、ノードの離脱を検知した状態を示し、図２７（ｂ）は、ノードの離脱を検知した後の状態を示している。
【図２８】図２８は、図２６に示したノードの離脱の後に行われる通知を説明する図である。図２８（ａ）は、ノードの離脱後に通知を行っている状態を示し、図２８（ｂ）は、通知後の状態を示している。
【図２９】図２９は、ネットワーク中のタイプ３ｉのノードが離脱した後に新経路が構築される場合のネットワークシステムにおける情報の流れを示す図である。
【図３０】図３０は、ネットワーク中のタイプ３ｉのノードが離脱した後に新経路が構築される場合のシーケンスと各経路テーブルの遷移とを示す図である。
【図３１】図３１は、ネットワーク中のタイプ３ｉのノードが離脱し、タイプ３のノードが最初に離脱を検知する例を示す図である。図３１（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図３１（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【図３２】図３２は、図３１に示したノードの離脱の後に行われる通知の一例を説明する図である。図３２（ａ）は、ノードの離脱後に通知を行っている状態を示し、図３２（ｂ）は、通知後の状態を示している。
【図３３】図３３は、図３１に示したノードの離脱の後に行われる通知の他の例を説明する図である。図３３（ａ）は、ノードの離脱後に通知を行っている状態を示し、図３３（ｂ）は、通知後の状態を示している。
【図３４】図３４は、ネットワーク中のタイプ３ｉのノードが離脱した後に新経路が構築される他の場合のネットワークシステムにおける情報の流れを示す図である。
【図３５】図３５は、ネットワーク中のタイプ３ｉのノードが離脱した後に新経路が構築される他の場合のシーケンスと各経路テーブルの遷移とを示す図である。
【図３６】図３６は、タイプ３ｃの２つのノードとタイプ３ｉの１つのノードとを接続先とする、タイプ３ｃのノードがネットワークから離脱する例を示す図であり、図３６（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図３６（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【図３７】図３７は、図３６に示したノードの離脱によってネットワークから切り離されたノードのネットワークへの復帰を示す図であり、図３７（ａ）は離脱の発生前の状態を示し、図３７（ｂ）は離脱発生後にノードがネットワークに復帰した状態を示している。
【図３８】図３８は、タイプ３ｃの３つのノードを接続先とする、タイプ３ｃのノードがネットワークから離脱する例を示す図であり、図３８（ａ）は、ノードの離脱前のノード間の構成を示し、図３８（ｂ）は、ノードの離脱後のノード間の構成を示している。
【図３９】図３９は、図３８に示したノードの分離が発生した場合の仮の経路の作成処理と確認処理との一例を説明する図であり、図３９（ａ）は仮の経路の作成処理を示す図であり、図３９（ｂ）は確認処理を示す図である。
【図４０】図４０は、図３８に示したノードの分離が発生した場合の仮の経路の作成処理と確認処理との他の例を説明する図である。図４０（ａ）は仮の経路の作成処理を示す図であり、図４０（ｂ）は確認処理を示す図である。
【図４１】図４１は、ネットワーク中のノードが自ら離脱処理を開始する例を示す図であり、図４１（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図４１（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【図４２】図４２は、ネットワーク中のノードが自ら離脱処理を開始する場合のネットワークシステムにおける情報の流れを示す図である。
【図４３】図４３は、ネットワーク中のノードが自ら離脱処理を開始する場合のシーケンスと各経路テーブルの遷移とを示す図である。
【図４４】図４４は、本発明の実施の形態におけるノードを実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１８】
（発明の概要）
まず、本明細書で用いる用語及び図表現の定義について図１（ａ）〜（ｇ）を用いて説明する。図１（ａ）は、本発明の実施の形態におけるネットワークシステムの一部分を概念的に示す図であり、図１（ｂ）〜（ｇ）それぞれは、タイプの異なるノードを説明するための図である。
【００１９】
図１（ａ）に示すように、ノード１は、ネットワークに接続され、且つプログラムを実行することができる計算機（ハードウェア装置）、又はそれに順ずるものである。経路２は、ノード１とノード１との間を接続する通信路である。経路２は、その両端にノード１を有し、途中にノード１を含むことはなない。また、経路２が途中で分岐することもない。
【００２０】
また、図１（ｂ）〜（ｇ）に示すようには、ノードにはタイプがある。タイプは、接続される経路２の数によって区別されるノード１の種類である。本実施の形態では、以下のタイプがある。
【００２１】
図１（ｂ）は「タイプ０」を示す。タイプ０は、経路数が０のノードである。図１（ｃ）は「タイプ１」を示す。タイプ１は、経路数が１のノードである。図１（ｄ）は「タイプ２」を示す。タイプ２は、経路数が２のノードである。図１（ｅ）は「タイプ３」を示す。タイプ３は、経路数が３のノードである。
【００２２】
また、「タイプ３」のノードは、さらに「タイプ３ｉ」と「タイプ３ｃ」との２つのタイプに細分化される。図１（ｆ）は「タイプ３ｉ」を示す。タイプ３ｉは、各経路で接続された３つのノードの中に、タイプ２のノードが含まれるタイプである。図１（ｇ）は「タイプ３ｃ」を示す。タイプ３ｃは、各経路で接続された３つのノードの中に、タイプ２のノードが含まれないタイプである。
【００２３】
続いて、ノードの経路数について図２（ａ）〜（ｆ）を用いて説明する。図２（ａ）〜（ｆ）それぞれは、ノードの経路数とネットワーク構成との関係を示す図である。
【００２４】
一般に、１つのノード１に接続される経路２の数が増えると、その分、ネットワークの管理が複雑化し、また、管理用のデータの量も増大してしまう。そこで、ネットワークにおける経路２の数を少なくすることを考える。
【００２５】
図２（ａ）は経路数が０（ゼロ）本の場合を示している。図２（ａ）に示すように、経路数が０本の場合は、ノード１は、未だネットワークに属していない状態である。
【００２６】
図２（ｂ）は、経路数が１本の場合を示している。図２（ｂ）に示すように、経路数が１本の場合は、経路２の両端にノード１が存在しており、各ノード１はネットワークの端に位置している。そのため、経路２が切断されると、ノード１はネットワークから孤立した状態になる。なお、ネットワーク上の全てのノード１の経路数が１本という状態は、ネットワーク内のノード数が２個の場合を除いてあり得ない状態である。
【００２７】
図２（ｃ）は、経路数が２本の場合を示している。図２（ｃ）に示すように、ネットワーク内の全てのノード１の接続数が２本であれば、ノード１はリング状のネットワークの一部となる。また、ネットワーク内に接続数が１本のノード１が含まれていれば、図２（ｄ）に示すように、ノード１は、ライン状のネットワークの一部となる。
【００２８】
また、図２（ｃ）に示すリング状のネットワークにおいて、どこかの経路２が切断されると、図２（ｄ）に示すライン状のネットワークになる。更に、図２（ｄ）に示すライン状のネットワークで、どこかの経路が切断されると、ネットワーク網は２つに分断される。
【００２９】
図２（ｅ）は、経路数が３本の場合を示している。図２（ｅ）に示すように、この場合、ノード１は、メッシュ型ネットワークの一部となる。ネットワーク内の全てのノード１の接続数が３本であれば、いずれの経路２が切断されても、メッシュ型ネットワークが維持される。
【００３０】
図２（ｆ）は、経路数が４本の場合を示している。図２（ｆ）に示すように、この場合も、ノード１は、経路数が３本の場合と同様に、メッシュ型ネットワークの一部となる。また、経路数が４本の場合は、経路数が３本の場合よりも、更に、経路２の数が増加することになる。
【００３１】
以上の説明から分かるように、経路数が２本の場合では、ネットワークの分断の危険性がある。一方、経路数が４本以上となると、経路数の増加により管理が複雑化してしまう。このため、本発明では、全てのノードの経路数が３本になることが基本とされ、例外的に経路数が２本の場合が許可される。また、以下の説明では、特定のノードの３つの経路それぞれは、経路（１）、経路（２）、経路（３）と表現される場合がある。
【００３２】
続いて、ノードがネットワークに参加する際のルールについて図３〜図５を用いて説明する。図３は、従来のネットワークシステムにおけるノードの参加ルールを説明するための図である。図４は、本発明のネットワークシステムにおけるノードの参加ルールを説明するための図である。図５（ａ）及び（ｂ）は、それぞれ、本発明のネットワークシステムにおけるノードの参加ルールの具体的に示す図である。なお、図３及び図４において、Ａ〜Ｋ、Ｘはそれぞれノードを示している。
【００３３】
図３に示すように、通常のＰ２Ｐ（ピアツーピア）では、ノードをネットワークに参加させる場合、Ｐ２Ｐネットワーク中の特定のノードが一意に指定される。例えば、参加者は、一般に、特定のノードのＩＰアドレスを指定して、自己のノードをＰ２Ｐネットワークに参加させる。
【００３４】
これに対して、本発明では、上述したように、基本的に全てのノードの経路数は３本に設定されているので、ノードを特定のノードに対して参加させることはできないようになっている。このため、図９に示すように、本発明では、ノードを経路として参加させるという考え方が採用されている。本発明において、参加のルールは、図５（ａ）及び（ｂ）に示すように、以下の２点である。
【００３５】
図５（ａ）に示すように、ルール１は、ノード１は１つの経路２の間に置かれていなければならない、ということを規定する。また、図５（ｂ）に示すように、ルール２は、経路２の両端に位置するノード１は、タイプ３でなければならない、ということを規定する。
【００３６】
以上の概要を踏まえ、以下に、本発明の実施の形態について説明する。
【００３７】
（実施の形態）
以下、本発明の実施の形態における、ネットワークシステム、ノード、ネットワーク管理方法、及びプログラムについて、図６〜図４３を参照しながら説明する。
【００３８】
［システム構成］
最初に、図６を用いて、本発明の実施の形態におけるネットワークシステム及びノードの構成について説明する。図６は、本発明の実施の形態におけるネットワークシステム及びノードの構成を示す図である。
【００３９】
図１に示すように、本実施の形態におけるネットワークシステム５００は、複数のノード１００〜４００を備えたネットワークを有している。図１においては、図示されているノードの数は４つであるが、本実施の形態においてノードの数は限定されるものではない。
【００４０】
また、本実施の形態では、各ノードは同様の構成を備えており、ノード１００を例に挙げて説明する。図１に示すように、ノード１００は、経路テーブル情報を格納する経路テーブル格納部１１４と、経路テーブル情報の内容を書き換え可能な経路テーブル操作部１１３とを備えている。
【００４１】
経路テーブル情報は、ノード１００の接続先を特定し、更に、その接続先の数を制限する情報である。具体的には、ノード１００において、経路テーブル情報は、まず、当該ノード１００に直接接続されているノード２００〜４００を特定する、自ノード経路テーブルを含む。また、経路テーブル情報は、当該ノード１００に直接接続された他のノード２００〜４００それぞれに接続されているノードを特定する、他ノード経路テーブルも含む。
【００４２】
また、経路テーブル操作部１１３は、当該ノード１００がネットワークに参加する場合、当該ノード１００に直接接続されるノードがネットワークに参加した場合、及び当該ノード１００に直接接続されたノードがネットワークから離脱した場合に、当該ノード１００における自ノード経路テーブル及び他ノード経路テーブルを更新する。これにより、ネットワークシステム５００における新たな経路が構築される。
【００４３】
このように、本実施の形態では、各ノードの接続先のノードの数は制限され、更に、ネットワーク内で参加又は離脱が発生した場合は、経路テーブル情報の更新だけで、新たな経路が構築される。このため、本実施の形態によれば、ネットワークにおける処理負担の増加を抑制しつつ、ノードの参加及び離脱の両方において自律的に通信経路を新たに構築することができる。
【００４４】
ここで、図７〜図１０を用いて、本実施の形態で用いられる経路テーブル情報について具体的に説明する。
【００４５】
図７は、本実施の形態で用いられる経路テーブル情報の構造の一例を示す図である。図８は、経路テーブルに格納される情報とノード間の構成との関係を示す図である。図７に示すように、経路テーブル情報１０は、自ノードＡに直接接続されているノードを特定する自ノード経路テーブル１１と、自ノードに直接接続された他のノードＢ〜Ｄそれぞれに接続されているノードを特定する他ノード経路テーブル１２〜１４とを含んでいる。
【００４６】
また、図７の中段及び図８に、自ノード経路テーブル１１の詳細構造を示す。自ノード経路テーブル１１には、自ノードＡ、及び経路（１）〜経路（３）に接続される各ノードＢ〜Ｃを、ネットワーク内で一意に識別可能な値（識別子）、例えばＩＰアドレス等が登録される。更に、図７及び図８の例では、経路（１）〜経路（３）に接続されるノードＢ〜Ｃについては、それぞれの経路（１）〜経路（３）に接続されるノードの識別子も登録されている。
【００４７】
即ち、図７及び図８において、経路（１）に接続されたノードＢに関連して登録されている、ａ、ｂ、Ａは、このノードＢの経路（１）〜経路（３）に接続された各ノードの識別子を示している。同様に、経路（２）に接続されたノードＣに関連して登録されている、ｂ、Ａ、ｃは、このノードＣの経路（１）〜経路（３）に接続された各ノードの識別子を示している。更に、経路（３）に接続されたノードＤに関連して登録されている、Ａ、ｅ、ｆは、このノードＤの経路（１）〜経路（３）に接続された各ノードの識別子を示している。
【００４８】
また、図７の下段には、ノード間のデータ送信で用いられる送信データが示されている。送信データは、自ノード経路テーブルの情報と、イベントキーと、障害情報とを含んでいる。送信データの詳細については後述する。
【００４９】
図７及び図８から分かるように、経路テーブル情報の特徴は２点である。１つは、各ノードの経路数を３本に限定しているため、テーブル長が固定であることである。２つ目は、自ノードの経路に関する情報（経路情報）だけでなく、自ノードに接続される３つの経路それぞれのノードの経路情報までをも管理できることである。
【００５０】
なお、図７及び図８において、経路の順番、つまり、経路（１）であるか、経路（２）であるか、経路（３）であるかは意味を持たない。本実施の形態では、空きデータが分散しないように、詰めてデータが格納されるのが好ましい。
【００５１】
図９（ａ）は、本発明の実施の形態で用いる経路テーブルの一般的な例を示す図であり、図９（ｂ）は、図９（ａ）に示す経路テーブルが対応するノード間の構成を示す図である。
【００５２】
図９（ｂ）に示すように、自ノードはノードＡであり、図９（ａ）に示す経路テーブルにおいては、ノードＡが管理する範囲でのノードの構成が示されている。また、図９（ａ）において、「アルファベット」はノードを識別する値（識別子）を示し、「？」は何かの値があることを示している。また、空欄は、値が存在しないことを示している。
【００５３】
また、図９（ａ）に示された経路テーブルに格納されている情報は、図７の下段に示したように、ノード間のデータ送信において、送信データに含められる。このため、経路テーブルに格納されている情報は、ノード間で共有される。なお、図７で示したように、送信データは、イベントキーと、障害情報とを含んでいる。
【００５４】
図１０に示すように、イベントキーとしては、複数の種類が設定されている。図１０は、本実施の形態で用いられるイベントキーの種類の一例を示す図である。
【００５５】
続いて、図１１及び図１２を用いて、ノードの参加が行なわれた場合の経路テーブル情報の更新について説明する。図１１は、ノードの参加の一例を示している。また、図１１（ａ）は、ノードＸが参加する前のノード間の構成と各ノードの経路テーブルを示し、図１１（ｂ）は、ノードＸが参加した後のノード間の構成と各ノードの経路テーブルを示している。
【００５６】
まず、図１１（ａ）に示すように、タイプ３ｃのノードで構成されたネットワークが存在するとする。ここにノードＸを参加させると、ネットワークの中の１つの経路にノードＸが参加することになる。
【００５７】
その場合、その経路の両端のノードにおいては、３つの経路のうち、１つが、新しく参加したノードＸに接続される経路となる。なお、ネットワーク中のその他のノードには、なんら経路の変更は発生しない。
【００５８】
具体的には、図１１（ｂ）に示すように、ノードＡの経路テーブルでは、接続先のノードＢがノードＸに変わるだけであり、ノードＢの経路テーブルでは、接続先のノードＡがノードＸに変わるだけである。また、参加したノードＸは、必ず２つの経路に接続されるので、タイプ２のノードになる。そして、ノードＸは、タイプ３ｃのノードで構成されたネットワークに参加しており、このとき、ノードＸ以外のノードに接続されている経路の数は全て３本である。従って、ノードＸは、さらに経路を増やすことはできない状態となる。
【００５９】
この図１１（ｂ）の状態で、さらにノードＹが参加する場合を、図１２を用いて検討する。図１２は、ノードＹの参加によるノード間の構成の変化を示す図である。
【００６０】
図１１（ｂ）の状態でノードＹが参加する場合、ノードＹの参加に用いられる経路の両端は、タイプ３のノードでなければならないため、タイプ２のノードの経路にノードＹを参加させることはできない。つまり、図１２の例では、タイプ２のノードＸの経路であるノードＡとノードＸとの間、およびノードＢとノードＸとの間には、ノードを参加させることはできない。よって、それ以外の経路にノードを参加させることになる。
【００６１】
ノードＹを参加させると、上記と同じように、ノードＹを参加させた経路の両端のノードにおいて、接続先の経路の１つが変更され、参加したノードＹは、経路が２つであるタイプ２のノードになる（図１２中央図参照）。
【００６２】
一方、先ほど参加したノードＸもタイプ２であるため（図１１（ｂ）参照）、ノードＸは新規に参加したノードＹとの間で経路を確立して、ノードＸ及びＹは共にタイプ３のノードになる。つまり、新規に参加したノードＹと先に参加したノードＸとの間に新経路が確立される（図１２の下図参照）。
【００６３】
以上に説明した方式でノードの参加が行なわれた場合、ネットワーク内のノードは、全てのノードがタイプ３となるか、１つのノードだけがタイプ２で、その他のノードはタイプ３となるか、のいずれかになる。このため、ネットワークの構成を単純化することが可能となる。
【００６４】
続いて、図１３を用いて、本実施の形態におけるノードの構成を更に具体的に説明する。図１３は、本発明の実施の形態におけるノードの具体的構成を示すブロック図である。図１３においては、ネットワークシステム５００（図６参照）を構成する１つのノード１００だけを例示する。ノード１００と同じ構成のノードが、ネットワーク内に複数存在するものとする。
【００６５】
図１３に示すように、ノード１００は、図６で示した、経路テーブル操作部１１３と経路テーブル格納部１１４とに加えて、以下の構成を備えている。具体的には、ノード１００は、各ノードの状態を監視するため、定期データ送信部１０１と、定期データ作成部１０２と、定期データ受信部１０３と、定期データ解析部１０４とを備えている。
【００６６】
また、ノード１００は、特定ノードへの経路情報の更新を契機付けるため、特定ノード向けイベントデータ送信部１０５と、特定ノード向けイベントデータ作成部１０６と、特定ノード向けイベントデータ受信部１０７と、特定ノード向けイベントデータ解析部１０８とを備えている。
【００６７】
また、ノード１００は、ノード参加時などに特定のノードを意識しない経路変更の更新を契機付けるため、不特定ノード向けイベントデータ送信部１０９と、不特定ノード向けイベントデータ作成部１１０と、不特定ノード向けイベントデータ受信部１１１と、不特定ノード向けイベントデータ解析部１１２とを備えている。
【００６８】
また、経路テーブル格納部１１４は、上述したように、ノード間の経路の構築が自律して行なわれるようにするために必要なデータ、即ち、経路テーブル情報（図２参照）を格納している。経路テーブル操作部１１３は、本実施の形態では、各イベント情報に基づいて、経路テーブル情報の操作を実行する。
【００６９】
また、ノード１００は、通信処理などに伴って各構成部に障害が発生した際に、その障害に対応するため、障害処理部１１５も備えている。障害処理部１１５は、定期データ送信部１０１から不特定ノード向けイベントデータ解析部１１２までの各部での障害情報に基づいて、障害処理を行う。
【００７０】
続いて、上述した各部の機能について述べる。まず、定期データ作成部１０２は、定常時は、経路テーブル操作部１１３を介して、経路テーブル格納部１１４が保持する経路テーブル情報を取得する。そして、定期データ作成部１０２は、取得した自ノードの経路テーブルを、定期データ送信部１０１によって、各経路のノードに定期的に送信する。
【００７１】
また、定期データ受信部１０３は、他ノードから、その経路テーブルを受信する。定期データ解析部１０４は、受信した他ノードの経路テーブルの内容を解析する。
【００７２】
経路テーブル操作部１１３は、経路テーブル情報の更新が必要となると、経路テーブル格納部１１４が保持している経路テーブル情報を更新する。経路テーブル情報を更新する必要がある場合は、何らかのノード状態の変化が起きている場合である。
【００７３】
このため、定期データ解析部１０４は、データ解析の結果に基づき、送信イベントを決定し、特定ノード向けイベントデータ作成部１０６又は不特定ノード向けイベントデータ作成部１１０により、自ノードの経路テーブル情報を含んだイベントデータを作成する。そして、定期データ解析部１０４は、作成したイベントデータを、特定ノード向けイベントデータ送信部１０５又は不特定ノード向けイベントデータ送信部１０９によって送信する。
【００７４】
送信されたイベントデータは、特定ノード向けイベントデータ受信部１０７又は不特定ノード向けイベントデータ受信部１１１で受信される。そして、特定ノード向けイベントデータ解析部１０８又は不特定ノード向けイベントデータ解析部１１２は、この受信されたイベントデータを解析する。
【００７５】
解析した結果、さらにイベントデータの送信が必要であれば、同様にして、イベントデータ送信が実施される。また、経路テーブルの更新が必要であれば、経路テーブル操作部１１３が、経路テーブル格納部１１４に格納されている経路テーブル情報を更新する。
【００７６】
［システム動作］
次に、本発明の実施の形態におけるネットワークシステム及びノードの動作について説明する。また、本実施の形態１では、ネットワークシステムを動作させることによって、ネットワーク管理方法が実施される。よって、本実施の形態におけるネットワーク管理方法の説明は、以下のネットワークシステムの動作説明に代える。
【００７７】
［システム動作：ノード参加］
最初に、図１４及び図１５を用いて、ネットワークシステムにおいてノードの参加があった場合の動作について説明する。図１４は、ノードの参加があった場合のネットワークシステムにおける情報の流れを示す図である。図１５は、ノードの参加があった場合のシーケンスと各経路テーブルの遷移とを示す図である。
【００７８】
図１４においては、図１３に示したノード１００の構成のうち、図１５の説明に必要な構成のみが示されている。また、ノード２００においても、図１５の説明に必要な構成のみが示されている。また、ノード１００とノード２００との各機能ブロックにおいて、符号の下２桁が同一の機能ブロックは、同一であることを意味している。更に、図１５においては、ノード１００は、ノードＸと表記し、ノード２００は、ノードＡ、ノードＢ、ノードＣと表記する。
【００７９】
まず、前提として、ネットワーク内に、ノード２００と同様の構成を備える複数のノード（ノードＡ、Ｂ、Ｃ）が存在し、各ノードは、図７に示した経路テーブル情報と同構造の情報を経路テーブル格納部２１４に保持しているとする。一方、ネットワークに参加するノード１００（ノードＸ）は、経路テーブル格納部１１４の経路テーブル情報において、自ノードの情報のみを格納し、他ノードの情報を格納していないとする。
【００８０】
図１５に示すように、上記の状況下において、ノードＸにおいて、不特定ノード向けイベントデータ作成部１１０は、経路テーブル操作部１１３を介して、経路テーブル格納部１１４にある自ノード経路テーブル（図７参照）を取得する。
【００８１】
次に、不特定ノード向けイベントデータ作成部１１０は、取得した経路テーブルを用い、イベントキーにノード参加イベントキーを格納して、ノード参加イベントデータ（送信データ：図７参照）を作成する。不特定ノード向けイベントデータ作成部１１０は、不特定ノード向けイベントデータ送信部から、ノード参加イベントデータをネットワーク内に送信する（ステップＡ１）。
【００８２】
次に、既にネットワークを構成しているノードＡ〜Ｃにおいては、不特定ノード向けイベントデータ受信部２１１が、ノード参加イベントデータを受信する（ステップＡ２）。そして、不特定ノード向けイベントデータ解析部２１２は、不特定ノード向けイベントデータ受信部２１１から受け取ったイベントデータのイベントキーを解析する。不特定ノード向けイベントデータ解析部２１２は、データ内のイベントキーから、ノード参加イベントであると判断すると、経路テーブル操作部２１３を介して、経路テーブル格納部２１４から自ノードの経路テーブルを取得する。
【００８３】
続いて、不特定ノード向けイベントデータ解析部２１２は、自ノードのタイプを判断し、タイプ３でなければ、参加を認めないと判断して、何もしないで処理を終了する（ノードＣ）。
【００８４】
一方、不特定ノード向けイベントデータ解析部２１２は、自ノードのタイプがタイプ３であれば（ノードＡ、Ｂ）、参加を認めるため、特定ノード向けイベントデータ作成部２０６に、自ノードの経路テーブルを渡す。さらに、不特定ノード向けイベントデータ解析部２１２は、ステップＡ２で受信したノード参加イベントデータに含まれるノードＸの経路テーブルも、特定ノード向けイベントデータ作成部２０６に渡す。
【００８５】
次に、特定ノード向けイベントデータ作成部２０６は、イベントキーに候補ノードイベントキーを格納するとともに、自ノード（ノードＡ、Ｂ）の経路テーブルに基づいて、候補ノードイベントデータ（送信データ）を作成する。そして、特定ノード向けイベントデータ作成部２０６は、ステップＡ２で受信したノード参加イベントデータの送信元のノードＸを送信先ノードとして、候補ノードイベントデータを、特定ノード向けイベントデータ送信部２０５から送信する（ステップＡ３）。
【００８６】
次に、システムに参加するノードＸにおいて、特定ノード向けイベントデータ受信部１０７は、候補ノードイベントデータを受信し（ステップＡ４）、受信データを、特定ノード向けイベントデータ解析部１０８に送る。
【００８７】
ノードＸにおいて、特定ノード向けイベントデータ解析部１０８は、受信データ内のイベントキーより、候補ノードイベントであると判断する。また、特定ノード向けイベントデータ解析部１０８は、異なる２つのノードＡ、Ｂから候補ノードイベントを受信しているので、ノードＡ、Ｂそれぞれの経路テーブルから、同一の経路が存在するか確認する。確認の結果、同一経路の存在が確認できない場合は、ノードＸでは、さらに候補ノードイベントを受信し、経路確認を行う。
【００８８】
図１５の例では、ノードＡの経路（１）とノードＢの経路（１）とが同一の経路となっている。従って、特定ノード向けイベントデータ解析部１０８は、複数のノードからの経路テーブルに基づいて、同一の経路を見つける。そして、特定ノード向けイベントデータ解析部１０８は、ノードＸの両端となるノードＡ、Ｂを接続先とした経路テーブルを作成し、経路テーブル操作部１１３を介して、経路テーブル格納部１１４にある自ノード経路テーブルを更新する（ステップＡ５）。
【００８９】
続いて、特定ノード向けイベントデータ解析部１０８は、特定ノード向けイベントデータ作成部１０６に更新した自ノード経路テーブルを渡す。これにより、特定ノード向けイベントデータ作成部１０６は、イベントキーに経路決定イベントを格納し、更新した経路テーブルを元に経路決定イベントデータを作成する。そして、特定ノード向けイベントデータ作成部１０６は、各接続先を経路決定イベントデータの送信先として、特定ノード向けイベントデータ送信部１０５から、経路決定イベントデータを送信する（ステップＡ６）。
【００９０】
ノードＡ、Ｂでは、特定ノード向けイベントデータ受信部２０７が、経路決定イベントデータを受信する（ステップＡ７）。そして、特定ノード向けイベントデータ解析部２０８は、受信データ内のイベントキーから、経路決定イベントであることを確認する。これにより、特定ノード向けイベントデータ解析部２０８は、受信データ内の経路テーブルを元に、経路テーブル操作部２１３を介して、経路テーブル格納部２１４の経路テーブルを更新する（ステップＡ８）。以上のステップにより、ノードＡ、Ｂの経路テーブルでは、ノード参加のルールに従い、図１１（ｂ）で示したように、太枠で囲まれた部分が、自動的に決定され、更新される。
【００９１】
ところで、上記で、ノードＸが、複数の候補イベントデータの解析によって、経路を決定するに当たって、同一経路を有する２つのノードＡ、Ｂそれぞれの他の２つの接続先（計４つのノード）のいずれかがタイプ２のノードである場合がある。この場合は、タイプ２のノードを含めた３ノードを参加ノードＸの接続先とするのが良い。なお、計４つのノードとあるのは、１ノードあたり３つの経路があり、その１つが同一であるため、それ以外のノードは２つであり、そして該当するノードが２つあることによる。
【００９２】
図１６（ａ）及び（ｂ）を用いて具体例を示す。図１６は、ノードの参加の他の例を示している。また、図１６（ａ）は、ノードＸが参加する前のノード間の構成と各ノードの経路テーブルとを示し、図１６（ｂ）は、ノードＸが参加した後のノード間の構成と各ノードの経路テーブルとを示している。
【００９３】
図１６（ａ）の例では、ノードＡとノードＢとの間の経路３は、同一経路である。また、ノードＡにおいて、経路３以外に、ノードＣとの経路４、ノードＤとの経路５がある。ノードＢにおいては、ノードＥとの経路６、ノードＦとの経路７とがある。
【００９４】
そして、各ノードのうち、ノードＣはタイプ２であるとすると、図１６（ｂ）に示すように、参加ノードＸは、その両端に位置するノードＡ及びノードＢに加えて、ノードＣにも接続される。この場合、各ノードの経路テーブルでは、ノード参加のルールに従い、図１６（ｂ）に示すように、太枠で囲まれた部分が、自動的に決定され、更新される。
【００９５】
［システム動作：定期的イベント送信］
続いて、図１７〜図１９を用いて、ネットワークシステムにおいて定期的な経路追加イベントによって経路が追加された場合の動作について説明する。図１７は、定期的な経路追加イベントによって経路が追加される例を示す図である。また、図１７（ａ）は、経路の追加前のノード間の構成を示し、図１７（ｂ）は、経路の追加後のノード間の構成を示している。
【００９６】
図１７（ａ）に示すように、ネットワーク内に、タイプ２のノードが複数存在しているとする。このような場合は、ノードの参加又は離脱によって、生じることがある。そして、タイプ２のノード数が２つ以上存在すれば、そのノード間に経路を作成することで、それぞれのノードがタイプ３のノードになる。
【００９７】
そこで、本実施の形態では、図１７（ａ）に示すように、タイプ２のノードＡは、他のノードに対して定期的に経路追加イベントを送信し、別のタイプ２のノードを探索する。そして、図１７（ｂ）に示すように、別のタイプのノードが見つかると、ノードＡは、そのノードとの間に経路を作成する。
【００９８】
図１７（ａ）及び（ｂ）の例を、図１８及び図１９を用いて説明する。図１８は、定期的な経路追加イベントによって経路が追加される場合のネットワークシステムにおける情報の流れを示す図である。図１９は、定期的な経路追加イベントによって経路が追加される場合のシーケンスと各経路テーブルの遷移とを示す図である。
【００９９】
図１８においては、図１３に示したノード１００の構成のうち、図１９の説明に必要な構成のみが示されている。また、ノード２００においても、図１９の説明に必要な構成のみが示されている。また、ノード１００とノード２００との各機能ブロックにおいて、符号の下２桁が同一の機能ブロックは、同一であることを意味している。更に、図１９においては、ノード１００は、ノードＡと表記し、ノード２００は、ノードＢ、ノードＣと表記する。
【０１００】
まず、図１９に示すように、タイプ２のノードＡの不特定ノード向けイベントデータ作成部１１０は、経路テーブル操作部１１３を介して、経路テーブル格納部１１４にある自ノードの経路テーブル（図７参照）を取得する。次に、不特定ノード向けイベントデータ作成部１１０は、取得した経路テーブルを用い、イベントキーに経路追加イベントキーを格納して、経路追加イベントデータを作成する。そして、不特定ノード向けイベントデータ作成部１１０は、作成した経路追加イベントデータを、不特定ノード向けイベントデータ送信部１０９から、ネットワーク内に定期的に送信する（ステップＢ１）。
【０１０１】
次に、ネットワーク内のノードＢ及びＣは、不特定ノード向けイベントデータ受信部２１１で経路追加イベントデータを受信する（ステップＢ２）。そして、不特定ノード向けイベントデータ解析部２１２は、不特定ノード向けイベントデータ受信部２１１からデータを受け取り、これを解析する。また、不特定ノード向けイベントデータ解析部２１２は、データ内のイベントキーに基づいて、経路追加イベントであると判断する。次に、不特定ノード向けイベントデータ解析部２１２は、経路テーブル操作部２１３を介して、経路テーブル格納部２１４から自ノードの経路テーブル（図７参照）を取得する。
【０１０２】
続いて、不特定ノード向けイベントデータ解析部２１２は、自ノードのタイプを判断し、タイプ２でなければ、何もしないで処理を終了する（ノードＣ）。
【０１０３】
一方、不特定ノード向けイベントデータ解析部２１２は、自ノードのタイプがタイプ２であれば（ノードＢ）、特定ノード向けイベントデータ作成部２０６に、自ノードの経路テーブルを渡す。さらに、不特定ノード向けイベントデータ解析部２１２は、ステップＢ２で受信した経路追加イベントデータに含まれるノードＡの経路テーブルも、特定ノード向けイベントデータ作成部２０６に渡す。
【０１０４】
次に、特定ノード向けイベントデータ作成部２０６は、イベントキーに候補ノードイベントキーを格納するとともに、自ノード（ノードＢ）の経路テーブルに基づいて、候補ノードイベントデータ（送信データ）を作成する。そして、特定ノード向けイベントデータ作成部２０６は、ステップＢ２で受信した経路追加イベントデータの送信元のノードＡを送信先として、候補ノードイベントデータを、特定ノード向けイベントデータ送信部２０５から送信する（ステップＢ３）。
【０１０５】
次に、タイプ２のノードＡにおいて、特定ノード向けイベントデータ受信部１０７は、候補ノードイベントを受信し（ステップＢ４）、受信データを、特定ノード向けイベントデータ解析部１０８に送る。
【０１０６】
ノードＡにおいて、特定ノード向けイベントデータ解析部１０８は、受信データ内のイベントキーより、候補ノードイベントであると判断する。また、特定ノード向けイベントデータ解析部１０８は、候補ノードＢの経路テーブルを受信しているので、これから、候補ノードＢがタイプ２であることを確認する。
【０１０７】
図１９の例では、候補ノードＢはタイプ２であるので、特定ノード向けイベントデータ解析部１０８は、候補ノードＢを接続先とした経路テーブルを作成し、経路テーブル操作部１１３を介して、経路テーブル格納部１１４の経路テーブルを更新する（ステップＢ５）。
【０１０８】
続いて、特定ノード向けイベントデータ解析部１０８は、特定ノード向けイベントデータ作成部１０６に更新した経路テーブルを渡す。これにより、特定ノード向けイベントデータ作成部１０６は、イベントキーに経路決定イベントを格納し、更新した経路テーブルを元に経路決定イベントデータを作成する。そして、特定ノード向けイベントデータ作成部１０６は、接続先を経路決定イベントデータの送信先として、特定ノード向けイベントデータ送信部１０５から、経路決定イベントデータを送信する（ステップＢ６）。
【０１０９】
ノードＢでは、特定ノード向けイベントデータ受信部２０７が、経路決定イベントデータを受信する（ステップＢ７）。そして、特定ノード向けイベントデータ解析部２０８は、受信データ内のイベントキーから、経路決定イベントであることを確認する。これにより、特定ノード向けイベントデータ解析部２０８は、受信データ内の経路テーブルを元に、経路テーブル操作部２１３を介して、経路テーブル格納部２１４の経路テーブルを更新する（ステップＢ８）。以上のステップにより、図１７（ｂ）に示したように、ノードＡとノードＢとの間に経路が新たに構築される。
【０１１０】
［システム動作：ノードの死活監視］
続いて、図２０及び図２１を用いて、ネットワークシステムにおけるノードの死活監視について説明する。図２０は、ネットワークシステムにおけるノードの死活監視を説明するための図である。図２１は、死活監視実行時におけるノードの動作を示すフロー図である。
【０１１１】
図２０に示すように、ノードＡは、ノードＢ、ノードＣ、及びノードＤに接続されている。この場合、例えば、ノードＡは、各経路を通じて、接続先のノードＢ〜Ｄそれぞれに定期的にデータ（定期データ）を送信することで、これら接続先のノードの死活を監視する。
【０１１２】
また、ネットワークを構成する各ノードは、経路によって直接接続されているノードのみ、つまり、隣接しているノードのみを監視する。そのため、ネットワーク中のノードが増加しても、あるノードが監視するノードは、最大３ノードまでに限定されることになる。このため、ネットワークを流れるノード監視用の定期データのデータ量は抑えられることになる。また、各ノードによる定期データの送信は、それぞれ非連動で行われる。
【０１１３】
そして、各ノードは、特定のノードへの定期データの送信に異常があった場合、及び特定のノードからの定期データの受信に遅れがあった場合は、特定のノードに異常が発生したと判断する。また、各ノードは、イベントデータを含むノード間での送信データにおいて、経路テーブルの値に異常があった場合も、該当するノードに異常があるものと判断する。
【０１１４】
図２１に示すように、ノード１００（図１３参照）において、障害処理部１１５は、まず、送信先のノードに障害が発生しているかどうかを判定する（ステップＣ１）。具体的には、障害処理部１１５は、定期データ送信部１０１で送信異常があった場合、及び特定ノード向けイベントデータ送信部１０５で送信異常があった場合は、送信先のノードに障害が発生したと判断する。
【０１１５】
障害処理部１１５は、ステップＣ１の判定の結果、送信先のノードに障害が発生していない場合は、ステップＣ２を実行し、送信先のノードに障害が発生している場合は、ステップＣ３を実行する。
【０１１６】
ステップＣ２では、障害処理部１１５は、受信先のノードに障害が発生しているかどうかを判定する。具体的には、障害処理部１１５は、定期データ解析部１０４に一定時間、定期データ受信部１０３から受信データが通知されない場合は、受信先のノードに障害が発生したと判断する。
【０１１７】
障害処理部１１５は、ステップＣ２の判定の結果、受信先のノードに障害が発生していない場合は、再度ステップＣ１を実行し、受信先のノードに障害が発生している場合は、ステップＣ３を実行する。
【０１１８】
障害が発生している各ノードにおいては、その障害処理部は、ノード離脱処理を実行する。よって、当該ノードはネットワークから離脱する。このため、ステップＣ３では、障害を検出したノード１００によって、新たな経路の生成処理が実行される。なお、あるノードで障害が発生した場合、その障害が発生したノードに隣接するノードのうち、最も早く障害を検出したノードが、障害が発生したノードの離脱後に、ステップＣ３を実行すれば良い。
【０１１９】
［システム動作：ノード離脱（１）］
続いて、図２２〜図２５を用いて、ネットワークシステムにおけるタイプ２のノードの離脱について説明する。
【０１２０】
本実施の形態において、ノードがネットワークから離脱する場合としては２つの場合がある。一つは、障害が発生したノードが、その障害により自らの離脱を他ノードに通知できず、他ノードが通信障害などに基づいて異常を検出し、ノードの離脱と判断する場合である。もう一つは、離脱するノードが、離脱前に、ネットワークの他のノードに対して、離脱を通知して離脱を行う場合である。
【０１２１】
また、本実施の形態におけるノード管理方式では、ノードのネットワークへの参加のルールが明確になっているため、ノードが離脱する場合のノード接続の組み合わせのパターンは固定化されている。そのため、ノード離脱に関する前者と後者との違いは、離脱せずにネットワーク上に残るノードが新経路を作成するか、離脱を予定しているノードが新経路を作成するかの違いしかない。以下では、前者について説明する。
【０１２２】
本例では、タイプ２のノードのネットワークからの離脱について図２２及び図２３を用いて説明する。図２２は、ネットワーク中のタイプ２のノードが離脱する例を示す図である。図２２（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図２２（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【０１２３】
図２３は、ネットワーク中のタイプ２のノードが離脱した後に新経路が構築される例を示す図である。図２３（ａ）は、新経路の構築前のノード間の構成と各ノードの経路テーブルとを示し、図２３（ｂ）は、新経路の構築後のノード間の構成と各ノードの経路テーブルとを示している。
【０１２４】
図２２（ａ）及び（ｂ）に示すように、タイプ２のノードＸが離脱すると、それに接続されている２つのノードＡとノードＢとの間に新しい経路２が作成される。また、ノードＸが離脱する際、その離脱を検知するのは、経路にあるノードＡとノードＢである。ここでは、ノードＡがノードＢより先に離脱を検出したとする。
【０１２５】
ノードＡは、ノードＸの離脱を検知すると、その経路テーブルの経路情報２１に基づいて、ノードＸがタイプ２であることと、ノードＡ以外の接続先ノードがノードＢであることを特定する。
【０１２６】
また、ノードＡは、その経路テーブルにあるノードＸの経路情報２１を、ノードＸの経路テーブルにあるノードＢの経路情報２０に移し替える（図２２（ｂ）参照）。その際、ノードＡの経路テーブルにおいて、移し替えた後のノードＢの経路情報２２には、未だ、離脱したノードＸを識別する値（識別子）が残されている。従って、ノードＡは、ノードＸの情報を自ノードであるノードＡを識別する値に更に移し替える（図２２（ｂ）参照）。これにより、ノードＡの経路テーブルは、新しい経路の情報で確立される。
【０１２７】
続いて、図２３（ａ）に示すように、ノードＡは、新しい接続先であるノードＢに対して、接続要求イベントデータを送信する。ノードＢは、接続要求イベントを受信すると、自ノードＢの経路テーブル内の各ノードの経路情報と、接続要求イベントデータに含まれる経路テーブル内の自ノードの経路情報２４とを比較する。この場合、ノードＢは、接続先にノードＸがなくなり、ノードＡに変わっている、と判断する。
【０１２８】
そこで、ノードＢは、自ノードの経路テーブルにおいて、ノードＸの経路情報２３（図２２（ａ）参照）を、ノードＡの経路情報２５に置き換える。また、このとき、ノードＢは、経路情報２５における空欄２８には、接続要求イベントデータの欄２６の値を書き込み、経路情報２５における空欄２９には、接続要求イベントデータの欄２７の値を書き込、む。
【０１２９】
図２２〜図２３の例を、図２４及び図２５を用いて説明する。図２４は、ネットワーク中のタイプ２のノードが離脱した後に新経路が構築される場合のネットワークシステムにおける情報の流れを示す図である。図２５は、ネットワーク中のタイプ２のノードが離脱した後に新経路が構築される場合のシーケンスと各経路テーブルの遷移とを示す図である。
【０１３０】
図２４においては、図１３に示したノード１００の構成のうち、図２５の説明に必要な構成のみが示されている。また、ノード２００及び３００においても、図２５の説明に必要な構成のみが示されている。また、ノード１００〜３００それぞれの各機能ブロックにおいて、符号の下２桁が同一の機能ブロックは、同一であることを意味している。更に、図２５においては、ノード１００はノードＡと表記し、ノード２００はノードＸと表記し、ノード３００はノードＢと表記する。
【０１３１】
まず、図２４及び図２５の例において、ノードＡとノードＸとの間に経路があり、そして、ノードＸに異常が生じているとする。そして、図２５に示すように、ノードＡにおいて、定期データ作成部１０２が定期データを作成し、定期データ送信部１０１が定期データをノードＸへと送信する（ステップＤ１）。
【０１３２】
ノードＸには異常が生じているため、定期データ送信部１０１は、送信エラーに基づいて障害を検出し（ステップＤ２）、検出した異常につての異常情報を、障害処理部１１５に通知する。障害処理部１１５は、経路テーブル操作部１１３を介して、経路テーブル格納部１１４にある経路テーブル情報（図７参照）からノードＸの経路テーブルを取得する。また、障害処理部１１５は、取得した経路テーブルの内容より、新しい接続先としてノードＢを特定する。
【０１３３】
そして、障害処理部１１５は、経路テーブル操作部１１３を介して、ノードＡの経路テーブルを更新し（ステップＤ３）、更新後のノードＡの経路テーブルを、特定ノード向けイベントデータ作成部１０６に渡す。特定ノード向けイベントデータ作成部１０６は、受け取った更新後のノードＡの経路テーブルを用いて、接続要求イベントデータを作成する。このとき、特定ノード向けイベントデータ作成部１０６は、イベントキー（図７参照）に接続要求イベントを格納し、更に、障害情報（図７参照）に検出した障害ノードの情報（障害ノードを識別する値）を格納する。
【０１３４】
次に、特定ノード向けイベントデータ作成部１０６は、作成した接続要求イベントデータを、特定ノード向けイベントデータ送信部１０５から、ノードＢへと送信する（ステップＤ４）。
【０１３５】
次に、ネットワーク内のノードＢにおいては、特定ノード向けイベントデータ受信部３０７が、接続要求イベントデータを受信する（ステップＤ５）。特定ノード向けイベントデータ解析部３０８は、特定ノード向けイベントデータ受信部３０７から接続要求イベントデータを受け取り、これを解析する。本例では、特定ノード向けイベントデータ解析部３０８は、データ内のイベントキーより、接続要求イベントであると判断する。よって、特定ノード向けイベントデータ解析部３０８は、経路テーブル操作部３１３を介して、経路テーブル格納部３１４に格納されている、ノードＢの経路テーブルを更新する（ステップＤ６）。
【０１３６】
また、本例では、ノードＢは、接続要求イベントデータの受信前に、ノードＸに対して定期データを送信し（ステップＤ７）、送信エラーに基づいて、ノードＸにおける障害を検出することができる（ステップＤ８）。但し、ノードＢは、ノードＡからの接続要求イベントデータの障害情報によって、ノードＸに障害が発生している旨の通知を受けている。従って、この場合、ノードＢは、障害検出に対して、何ら処理を実行しない。
【０１３７】
なお、図２５の例と異なり、ノードＢにおいて、接続要求イベントデータを受信する前（ステップＤ４の前）に、送信エラー（ステップＤ８）が発生していた場合は、ノードＢにおいても、ノードＡと同様に経路の更新処理が行われるが、更新結果は同じとなるので、特に問題となることはない。
【０１３８】
［システム動作：ノード離脱（２）］
続いて、図２６〜図３０を用いて、ネットワークシステムにおけるタイプ３ｉのノードの離脱について説明する。
【０１３９】
図１（ｆ）及び（ｇ）を用いて説明したように、タイプ３には、接続先ノードにタイプ２を含むタイプ３ｉとタイプ２を含まないタイプ３ｃがある。本例では、上述したようにタイプ３ｉのノードの離脱について説明する。
【０１４０】
図２６は、ネットワーク中のタイプ３ｉのノードが離脱し、タイプ２のノードが最初に離脱を検知する例を示す図である。図２６（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図２６（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【０１４１】
図２７は、図２６に示したノードの離脱の検知を説明する図である。図２７（ａ）は、ノードの離脱を検知した状態を示し、図２７（ｂ）は、ノードの離脱を検知した後の状態を示している。
【０１４２】
図２８は、図２６に示したノードの離脱の後に行われる通知を説明する図である。図２８（ａ）は、ノードの離脱後に通知を行っている状態を示し、図２８（ｂ）は、通知後の状態を示している。
【０１４３】
図２６（ａ）及び（ｂ）に示すように、タイプ３ｉのノードＸがネットワークから離脱すると、離脱するノードＸに接続されている３つのノードのうち、タイプ２のノードＡから、タイプ３のノードＢ及びＣへと新しい経路が作成される。
【０１４４】
また、ノードＸが離脱する際、その離脱を検知するのは、経路にあるノードＡ、ノードＢ、及びノードＣの３つのノードであるが、この３つのノードは等価ではない。即ち、離脱を検知したノードが、タイプ２の場合と、タイプ３の場合とがあるが、それぞれにおいて方式が異なる。本例では、離脱を最初に検知したノードが、タイプ２のノードＡである場合について説明する。
【０１４５】
図２７（ａ）に示すように、まず、タイプ２のノードＡは、ノードＸの離脱を検知すると、自ノードＡ内にあるノードＸの経路テーブルから、ノードＸがタイプ３ｉであることと、自ノード以外の接続先ノードが、ノードＢ、ノードＣであることを特定する。
【０１４６】
次に、図２７（ｂ）に示すように、ノードＡは、ノードＸの経路テーブル内のノードＢの経路情報３０を、自ノードＡの経路テーブルにおける、離脱するノードＸの経路情報３１の位置に移し替える。更に、ノードＡは、ノードＸの経路テーブル内のノードＣの経路情報３２を、自ノードＡの経路テーブルの空き領域３３に移し替える。
【０１４７】
また、上記の移し替えを実行しても、図２７（ｂ）に示すように、ノードＡの経路テーブルにおいては、ノードＢ及びノードＣの経路情報の欄３４及び３５には、離脱したノードＸの情報（ノードＸを識別する値）が残っている。このため、ノードＡは、欄３４及び３５にあるノードＸの情報を、自ノードであるノードＡの情報に差し替える。
【０１４８】
以上により、ノードＡの経路テーブルにおいて新経路の情報が確立される。よって、図２８（ａ）及び（ｂ）に示すように、ノードＡは、新経路での接続先となるノードＢ及びノードＣに対して、接続要求イベントデータを送信する。
【０１４９】
続いて、ノードＢおよびノードＣは、ノードＡから接続要求イベントデータを受信すると、自ノードの経路の接続先がノードＸからノードＡに変わっており、接続要求イベントデータがノードＡから送られてきているため、経路の変更を行う。
【０１５０】
例えば、図２８（ａ）及び（ｂ）に示すように、ノードＢは、接続要求イベントデータを受信すると、自ノードＢの経路テーブル内の各ノードの経路情報と、受信した接続要求イベントデータ中の経路テーブル内の自ノードの経路情報３７とを比較する。そして、ノードＢは、接続先にノードＸがなくなり、ノードＸがノードＡに変わっていると判断する。
【０１５１】
そこで、図２８（ｂ）に示すように、ノードＢは、自ノードの経路テーブルのうち、ノードＸの経路情報３６をノードＡの経路情報に置き換える。また、このとき、ノードＢは、図２８（ｂ）のノードＡの経路情報の空欄４０には、接続要求イベントデータの欄３８の値を書き込み、ノードＡの経路情報の空欄４１には、接続要求イベントデータの欄３９の値を書き込む。
【０１５２】
図２６〜図２８の例を、図２９及び図３０を用いて説明する。図２９は、ネットワーク中のタイプ３ｉのノードが離脱した後に新経路が構築される場合のネットワークシステムにおける情報の流れを示す図である。図３０は、ネットワーク中のタイプ３ｉのノードが離脱した後に新経路が構築される場合のシーケンスと各経路テーブルの遷移とを示す図である。
【０１５３】
図２９においては、図１３に示したノード１００の構成のうち、図３０の説明に必要な構成のみが示されている。また、ノード２００〜４００においても、図３０の説明に必要な構成のみが示されている。また、ノード１００〜４００それぞれの各機能ブロックにおいて、符号の下２桁が同一の機能ブロックは、同一であることを意味している。更に、図３０においては、ノード１００はノードＡと表記し、ノード２００はノードＸと表記し、ノード３００はノードＢと表記し、ノード４００はノードＣと表記する。
【０１５４】
まず、図２９及び図３０の例において、ノードＡとノードＸとの間に経路があり、ノードＸに異常が生じているとする。ノードＡは、タイプ２のノードである。そして、ノードＡは、定期データ作成部１０２で作成した定期データを定期データ送信部１０１から、ノードＸに送信する（ステップＥ１）。
【０１５５】
ノードＸには異常が生じているため、定期データ送信部１０１は、送信エラーに基づいて障害を検出し（ステップＥ２）、検出した異常についての異常情報を、障害処理部１１５に通知する。障害処理部１１５は、経路テーブル操作部１１３を介して、経路テーブル格納部１１４にある経路テーブル情報（図７参照）からノードＸの経路テーブルを取得する。また、障害処理部１１５は、取得した経路テーブルの内容より、新しい接続先をノードＢ及びノードＣと判断する。
【０１５６】
そして、障害処理部１１５は、ノードＡの経路テーブルを更新し（ステップＥ３）、更新後のノードＡの経路テーブルを、特定ノード向けイベントデータ作成部１０６に渡す。特定ノード向けイベントデータ作成部１０６は、受け取った更新後のノードＡの経路テーブルを用いて、接続要求イベントデータを作成する。このとき、特定ノード向けイベントデータ作成部１０６は、イベントキー（図７参照）に接続要求イベントを格納し、更に、障害情報（図７参照）に検出した障害ノードの情報（障害ノードを識別する値）を格納する。
【０１５７】
次に、特定ノード向けイベントデータ作成部１０６は、作成した接続要求イベントデータを、特定ノード向けイベントデータ送信部１０５から、ノードＢおよびノードＣへと送信する（ステップＥ４）。
【０１５８】
次に、ネットワーク内のノードＢにおいては、特定ノード向けイベントデータ受信部３０７が、接続要求イベントデータを受信する（ステップＥ５）。特定ノード向けイベントデータ解析部３０８は、特定ノード向けイベントデータ受信部３０７から接続要求イベントデータを受け取り、これを解析する。本例では、特定ノード向けイベントデータ解析部３０８は、データ内のイベントキーより、接続要求イベントであると判断する。よって、特定ノード向けイベントデータ解析部３０８は、経路テーブル操作部３１３を介して、経路テーブル格納部３１４に格納されている、ノードＢの経路テーブルを更新する（ステップＥ６）。
【０１５９】
また、ノードＣにおいても、ノードＢと同様に、受信処理（ステップＥ７）及び更新処理（ステップＥ８）が実行され、ノードＣの経路テーブルが更新される。結果、ノードＸの離脱後、ノードＡとノードＢとの間、ノードＡとノードＣとの間に新たな経路が構築される。
【０１６０】
［システム動作：ノード離脱処理（３）］
続いて、図３１〜図３５を用いて、ネットワークシステムにおけるタイプ３ｉのノードの離脱について説明する。本例では、ノード離脱処理（２）と異なり、ネットワークにあるノードＡ、ノードＢ、ノードＣの３つのノードのうち、タイプ３のノードＢが最初にノードＸの離脱を検出した例について説明する。
【０１６１】
図３１は、ネットワーク中のタイプ３ｉのノードが離脱し、タイプ３のノードが最初に離脱を検知する例を示す図である。図３１（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図３１（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【０１６２】
図３２は、図３１に示したノードの離脱の後に行われる通知の一例を説明する図である。図３２（ａ）は、ノードの離脱後に通知を行っている状態を示し、図３２（ｂ）は、通知後の状態を示している。
【０１６３】
図３３は、図３１に示したノードの離脱の後に行われる通知の他の例を説明する図である。図３３（ａ）は、ノードの離脱後に通知を行っている状態を示し、図３３（ｂ）は、通知後の状態を示している。
【０１６４】
図３１（ａ）に示すように、まず、タイプ３のノードＢは、ノードＸの離脱を検知すると、自ノードＢ内にあるノードＸの経路テーブルから、ノードＸがタイプ３ｉであることと、自ノード以外の接続先ノードが、ノードＡ、ノードＣであることを特定する。
【０１６５】
次に、ノードＢは、ノードＸの経路テーブル内のノードＡ（タイプ２）の経路情報５１を、自ノードの経路テーブルにおける、離脱するノードＸの経路情報５１の位置に移し替える。
【０１６６】
また、上記の移し替えを実行しても、図３１（ｂ）に示すように、ノードＢの経路テーブルにおいては、ノードＡの経路情報の欄５２には、離脱したノードＸの情報（ノードＸを識別する値）が残っている。このため、ノードＢは、欄５２にある離脱したノードＸの情報を、自ノードであるノードＢの情報に差し替える。
【０１６７】
更に、ノードＡはタイプ２であったため、経路に空きがあり、ノードＡの経路情報の欄５３は空欄となっている。このため、ノードＢは、欄５３に、ノードＸに接続されていた残りのノードであるノードＣの情報を格納する。以上により、ノードＢの経路テーブルにおいて新経路の情報が確立される。
【０１６８】
続いて、図３２（ａ）及び図３３（ａ）に示すように、ノードＢは、新しい接続先であるノードＡとノードＣとに対して、接続要求イベントデータを送信する。
【０１６９】
図３２（ａ）及び（ｂ）に示すように、ノードＡは、ノードＢから接続要求イベントデータを受信すると、自ノードＡの経路テーブル内の各ノードの経路情報と、受信した接続要求イベントデータ中の経路テーブル内の自ノードの経路情報５８とを比較する。そして、ノードＡは、接続先にノードＸがなくなり、ノードＸが、接続要求イベントデータの送信元のノードＢに変わっていると判断する。更に、このとき、ノードＢは、接続先にノードＣが追加されていることも判断する。
【０１７０】
次に、図３２（ｂ）に示すように、ノードＡは、自ノードＡの経路テーブルのうち、ノードＸの経路情報５６をノードＢの経路情報に置き換える。続いて、ノードＡは、新たな接続先となるノードＣの経路情報を、ノードＸの経路テーブル内のノードＣの経路情報５５から取得し、これを空き経路情報５７に置き換える（図３１の４）。その際、ノードＣの経路情報５５の欄５９には、離脱したノードＸの情報（ノードＸを識別する値）が残っている。このため、ノードＡは、欄５９にあるノードＸの情報を、自ノードであるノードＡの情報に差し替える。
【０１７１】
以上により、ノードＡの経路テーブルにおいて新経路の情報が確立される。
【０１７２】
また、図３３（ａ）及び（ｂ）に示すように、ノードＣは、ノードＢから接続要求イベントデータを受信すると、自ノードＣの経路テーブル内の各ノードの経路情報と、受信した接続要求イベントデータ中の経路テーブル内の自ノードの経路情報６２とを比較する。そして、ノードＣとノードＢとの間には経路が存在しないため、ノードＣは、受信した接続要求イベントデータ内にノードＣの経路情報が存在しないと判断する。
【０１７３】
更に、ノードＣは、受信した接続要求イベントデータ内に自ノードＣの情報が存在しているかどうかを確認し、ノードＡがノードＣとの間に経路を有していることを特定する（経路情報６２の欄６３）。
【０１７４】
また、ノードＢから送信されてきた接続要求イベントデータには、障害情報として、ノードＸに障害が発生したことを示す情報が格納されている。従って、ノードＣは、自ノードＣの経路テーブル内のノードＸの経路情報６１と、ノードＸの経路テーブル内のノードＡの経路情報６０とを比較する。そして、ノードＣは、ノードＡがタイプ２のノードであり、ノードＡの経路内で、ノードＸからノードＢに変わり、更にノードＣが追加されていると判断する。
【０１７５】
そこで、ノードＣは、自ノードの経路テーブル内の、ノードＸの経路情報６１を、受信した接続要求イベントデータ中のノードＡの経路情報６２に置き換える。
【０１７６】
以上により、ノードＣの経路テーブルにおいて新経路の情報が確立される。
【０１７７】
図３１〜図３３の例を、図３４及び図３５を用いて説明する。図３４は、ネットワーク中のタイプ３ｉのノードが離脱した後に新経路が構築される他の場合のネットワークシステムにおける情報の流れを示す図である。図３５は、ネットワーク中のタイプ３ｉのノードが離脱した後に新経路が構築される他の場合のシーケンスと各経路テーブルの遷移とを示す図である。
【０１７８】
図３４においては、図１３に示したノード１００の構成のうち、図３５の説明に必要な構成のみが示されている。また、ノード２００〜４００においても、図３５の説明に必要な構成のみが示されている。また、ノード１００〜４００それぞれの各機能ブロックにおいて、符号の下２桁が同一の機能ブロックは、同一であることを意味している。更に、図３５においては、ノード１００はノードＢと表記し、ノード２００はノードＸと表記し、ノード３００はノードＡと表記し、ノード４００はノードＣと表記する。
【０１７９】
まず、図３４及び図３５の例において、ノードＢとノードＸとの間に経路があり、ノードＸに異常が生じているとする。ノードＢは、タイプ３のノードである。そして、ノードＢは、定期データ作成部１０２で作成した定期データを定期データ送信部１０１から、ノードＸに送信する（ステップＦ１）。
【０１８０】
ノードＸには異常が生じているため、定期データ送信部１０１は、送信エラーに基づいて障害を検出し（ステップＦ２）、検出した異常についての異常情報を、障害処理部１１５に通知する。障害処理部１１５は、経路テーブル操作部１１３を介して、経路テーブル格納部１１４にある経路テーブル情報（図７参照）からノードＸの経路テーブルを取得する。また、障害処理部１１５は、取得した経路テーブルの内容より、新しい接続先をノードＡと判断する。ここで、ノードＡは、タイプ２のノードであり、ノードＣは、タイプ３のノードとする。
【０１８１】
そして、障害処理部１１５は、ノードＢの経路テーブルを更新し（ステップＦ３）、更新後のノードＢの経路テーブルを、特定ノード向けイベントデータ作成部１０６に渡す。特定ノード向けイベントデータ作成部１０６は、受け取った更新後のノードＢの経路テーブルを用いて、接続要求イベントデータを作成する。このとき、特定ノード向けイベントデータ作成部１０６は、イベントキー（図７参照）に接続要求イベントを格納し、更に、障害情報（図７参照）に検出した障害ノードの情報（障害ノードを識別する値）を格納する。
【０１８２】
次に、特定ノード向けデータ作成部１０６は、作成した接続要求イベントデータを、特定ノード向けイベントデータ送信部１０５から、ノードＡおよびノードＣへと送信する（ステップＦ４）。
【０１８３】
次に、ネットワーク内のノードＡにおいては、特定ノード向けイベントデータ受信部３０７が、接続要求イベントデータを受信する（ステップＦ５）。特定ノード向けイベントデータ解析部３０８は、特定ノード向けイベントデータ受信部３０７から接続要求イベントデータを受け取り、これを解析する。本例では、特定ノード向けイベントデータ解析部３０８は、データ内のイベントキーより、接続要求イベントであると判断する。よって、特定ノード向けイベントデータ解析部３０８は、経路テーブル操作部３１３を介して、経路テーブル格納部３１４に格納されている、ノードＡの経路テーブルを更新する（ステップＦ６）。
【０１８４】
また、ノードＣにおいても、ノードＡと同様に、受信処理（ステップＦ７）及び更新処理（ステップＦ８）が実行され、ノードＣの経路テーブルが更新される。結果、ノードＸの離脱後、ノードＡとノードＢとの間、ノードＡとノードＣとの間に新たな経路が構築される。
【０１８５】
［システム動作：ノード離脱処理（４）］
続いて、図３６及び図３７を用いて、ネットワークシステムにおけるタイプ３ｃのノードの離脱について説明する。
【０１８６】
具体的には、離脱するタイプ３ｃのノードの接続先の３つのノードのうち、１つがタイプ３ｉの場合について図３６及び図３７を用いて説明する。図３６は、タイプ３ｃの２つのノードとタイプ３ｉの１つのノードとを接続先とする、タイプ３ｃのノードがネットワークから離脱する例を示す図である。図３６（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図３６（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【０１８７】
図３６（ａ）に示すように、離脱するタイプ３ｃのノードＸにおいて、全ての接続先は、タイプ３のノードとなっている。具体的には、接続先となるノードＡ及びノードＣはタイプ３ｃであり、ノードＢはタイプ３ｉである。よって、このタイプ３ｃのノードＸがネットワークから離脱すると、図３６（ｂ）に示すように、ノードＡはネットワークから切り離され、残るノードＢ及びノードＣは、両者の間に新しい経路を構築する。
【０１８８】
このとき、ノードＡに接続されているノードが、いくつかのノードを経由して、ノードＢまたはノードＣに接続される可能性はあるが、ノードＡは、それを認識できなし、認識する必要もない。
【０１８９】
そこで、本例では、このような状態において、ノードＡは、ノードＢ及びノードＣのネットワークに再度接続することができる。この点について図３７を用いて以下に説明する。図３７は、図３６に示したノードの離脱によってネットワークから切り離されたノードのネットワークへの復帰を示す図である。図３７（ａ）は離脱の発生前の状態を示し、図３７（ｂ）は離脱発生後にノードがネットワークに復帰した状態を示している。
【０１９０】
まず、離脱するノードＸの接続先であるノードＡ、ノードＢ、およびノードＣについて、これらの更なる接続先ノードを検討する。例えば、図３７（ａ）および（ｂ）に示すように、ノードＢが、接続先としてタイプ２のノードを含むタイプ３ｉだとする。
【０１９１】
ノードＸが離脱した際、それを知るのは、ノードＸの接続先であるノードＡ、ノードＢ、およびノードＣであるが、この３つのノードは、自ノード以外のノードタイプはわからない。そこで、ノードＡ、ノードＢ、およびノードＣは、ノードＸの離脱を検知すると、自ノードがタイプ３ｉでない場合（ノードＡ、ノードＣ）は、すぐに新経路作成の処理を行わず、待機状態となる。一方、ノードＡ、ノードＢ、およびノードＣは、自ノードがタイプ３ｉである場合は、自ノードと残りの２つのノードのうち１つとの間に新たな経路を確立する。
【０１９２】
具体的には、図３７（ｂ）に示すように、ノードＢは、タイプ３ｉであるので、ノードＣとの間に新たな経路１５を確立する。また、ネットワークから分離されてしまったノードＡは、ノードＢに接続されているタイプ２のノードとの間に、新たな経路１６を確立する。
【０１９３】
［システム動作：ノード離脱処理（５）］
続いて、図３８〜図４０を用いて、ネットワークシステムにおけるタイプ３ｃのノードの離脱の別の例について説明する。
【０１９４】
具体的には、離脱するタイプ３ｃのノードの接続先の３つのノード全てがタイプ３ｃの場合について図３８〜図４０を用いて説明する。図３８は、タイプ３ｃの３つのノードを接続先とする、タイプ３ｃのノードがネットワークから離脱する例を示す図であり、図３８（ａ）は、ノードの離脱前のノード間の構成を示し、図３８（ｂ）は、ノードの離脱後のノード間の構成を示している。
【０１９５】
図３８（ａ）に示すように、離脱するタイプ３ｃのノードＸにおいて、全ての接続先はタイプ３ｃのノードとなっている。従って、図３８（ａ）および（ｂ）に示されるネットワークの範囲内にタイプ２のノードが存在していないので、図３８（ｂ）に示すように、ノードＸが離脱すると、タイプ２のノードが３つ作成され、ネットワークが分断されることになる。
【０１９６】
そこで、本例では、まず、ネットワークの分断を防ぐため、タイプ２となった３つのノードのうち、任意の２ノードによって仮の経路が作成される。その後、作成された仮の経路に代わる経路が存在しているかどうかが確認され、存在している場合は、仮の経路は取り除かれる。この確認処理について、図３９および図４０に基づいて以下に説明する。
【０１９７】
図３９は、図３８に示したノードの分離が発生した場合の仮の経路の作成処理と確認処理との一例を説明する図である。図３９（ａ）は仮の経路の作成処理および確認処理の実行中の状態を示す図であり、図３９（ｂ）は処理終了後を示す図である。
【０１９８】
図３９（ａ）に示すように、まず、ノードＡとノードＢとの間に仮の経路が作成される。次いで、ノードＡおよびノードＢは、それぞれの経路テーブルを用いて、共通の接続先となるノードが存在するかどうかを確認する。
【０１９９】
本例では、図３９（ａ）および（ｂ）に示すように、ノードＡおよびノードＢの共通の接続先として、ノードＤが存在している。従って、ノードＡとノードＤとの経路、ノードＢとノードＤとの経路が存在するため、ノードＡとノードＢとの間の仮の経路を取り除いても、ネットワークの分断は起きないので、仮の経路は取り除かれる。
【０２００】
図４０は、図３８に示したノードの分離が発生した場合の仮の経路の作成処理と確認処理との他の例を説明する図である。図４０（ａ）は仮の経路の作成処理および確認処理の実行中の状態を示す図であり、図４０（ｂ）は処理終了後を示す図である。
【０２０１】
図４０（ａ）に示すように、まず、ノードＡとノードＢとの間に仮の経路が作成される。次いで、ノードＡおよびノードＢは、それぞれの経路テーブルを用いて、共通の接続先となるノードが存在するかどうかを確認するが、共通の接続先となるノードが存在しないとする。
【０２０２】
この場合、ノードＡおよびノードＢは、それぞれ、接続先のノードの接続先によって、ノードＡとノードＢとを最終的に接続する経路が存在しているかどうかを確認する。具体的には、ノードＡおよびノードＢは、それぞれ、ノードＣとノードＥとの間、ノードＣとノードＦとの間、ノードＤとノードＥとの間、ノードＤとノードＦとの間のいずれか１つでも経路が存在するかどうかを確認する。そして、図４０（ｂ）に示すように、経路が存在する場合は、ノードＡとノードＢとの間の仮の経路を取り除いても、ネットワークの分断は起きないので、仮の経路は取り除かれる。
【０２０３】
具体的には、図４０（ａ）に示すように、ノードＡは、ノードＡの経路テーブルから、ノードＡ→ノードＢ→ノードＥ→ノードＣ→ノードＡの巡回経路が存在することを確認する（図４０（ａ）下段）。
【０２０４】
また、図３９および図４０に示した作成処理および確認処理は、図３８におけるノードＡとノードＢとの間、ノードＢとノードＣとの間、ノードＣとノードＡとの間のうち、いずれかについて行われる。そして、任意の２ノード間について上記の経路が確認できた場合は、確認対象となった任意の２ノードのうちの一方（タイプ２）と、残りの１ノード（タイプ２）との間には、新たな経路が作成される。
【０２０５】
また、この場合の２つのタイプ２のノードによる経路の作成は、図１７〜図１９を用いて説明したように、一方のタイプ２のノードが、定期的に経路追加イベントデータを送信して、ネットワーク中の他のタイプ２のノードを探索することによって行われる。
【０２０６】
［システム動作：ノード離脱処理（６）］
続いて、図４１〜４３を用いて、ネットワークシステムから離脱するノード自体が離脱処理を開始する場合について説明する。
【０２０７】
図４１は、ネットワーク中のノードが自ら離脱処理を開始する例を示す図である。図４１（ａ）は、ノードの離脱前のノード間の構成と各ノードの経路テーブルとを示し、図４１（ｂ）は、ノードの離脱後のノード間の構成と各ノードの経路テーブルとを示している。
【０２０８】
図４１（ａ）および（ｂ）に示すように、タイプ２のノードＸが離脱を行う場合、ノードＸと経路を持つノードＡとノードＢの間に新経路１７が作成される。
【０２０９】
図４１の例を、図４２及び図４３を用いて説明する。図４２は、ネットワーク中のノードが自ら離脱処理を開始する場合のネットワークシステムにおける情報の流れを示す図である。図４３は、ネットワーク中のノードが自ら離脱処理を開始する場合のシーケンスと各経路テーブルの遷移とを示す図である。
【０２１０】
図４２においては、図１３に示したノード１００の構成のうち、図４３の説明に必要な構成のみが示されている。また、ノード２００および３００においても、図４３の説明に必要な構成のみが示されている。また、ノード１００〜３００それぞれの各機能ブロックにおいて、符号の下２桁が同一の機能ブロックは、同一であることを意味している。更に、図４３においては、ノード１００はノードＸと表記し、ノード２００はノードＡと表記し、ノード３００はノードＢと表記する。
【０２１１】
図４２のように、まず、ノードＸは、経路テーブル操作部１１３を介して、経路テーブル格納部１１４にある経路テーブル情報から、ノードＸの経路テーブル、ノードＡの経路テーブル、ノードＢの経路テーブルを取得する。そして、経路テーブル操作部１１３は、取得した接続先ノードの経路テーブルを更新する（ステップＧ１）。
【０２１２】
次に、特定ノード向けイベントデータ作成部１０６は、イベントキーに経路決定イベントを格納し、イベントデータの送信先に合わせて、更新した経路テーブルを元に経路決定イベントデータを作成する。そして、特定ノード向けイベントデータ作成部１０６は、特定ノード向けイベントデータ送信部１０５から、送信先となるノードに向けて、経路決定イベントデータを送信する（ステップＧ２）。
【０２１３】
次に、経路決定イベントデータの受信先であるノードＡは、特定ノード向けイベントデータ受信部２０７によって、この経路決定イベントデータを受信する（ステップＧ３）。そして、ノードＡにおいて、特定ノード向けイベントデータ解析部２０８は、特定ノード向けイベントデータ受信部２０７から受け取ったデータを解析し、データ内のイベントキーより、経路決定イベントであると判断する。
【０２１４】
次いで、特定ノード向けイベントデータ解析部２０８は、経路決定イベントデータに基づいて、経路テーブル操作部２１３を介して、経路テーブル格納部２１４の経路テーブル情報を更新する（ステップＧ５）。
【０２１５】
同様に、経路決定イベントデータの受信先であるノードＢも、受信処理（ステップＧ４）および経路テーブル情報の更新処理（ステップＧ６）を実行する。
【０２１６】
以上により、ノードＸが離脱した後は、ノードＡとノードＢとの間に経路が確立される。なお、離脱するノードがタイプ３である場合も、上記と同様に、ノードが離脱した後に、経路が決定され、離脱したノードから接続先の各ノードに離脱後の経路テーブルが送信される。
【０２１７】
［実施の形態による効果］
以上のように、本実施の形態では、各ノードの経路の本数は２本または３本に制限され、ノードのネットワークへの参加について定義がなされている。これにより、各ノードで管理する隣接ノードの経路情報のデータ量が固定化され、ノードの参加時およびノードの離脱時における新経路の作成は、論理的に自動化される。
【０２１８】
また、本実施の形態では、ノード間の通信に用いられる送信データ内に、接続先のノードの経路テーブルが含められるため、ノード間において、接続先のノードの情報が常に交換され、各ノードは互いに経路の接続状況を確認し合う。このため、自律したノードの参加および離脱の制御が実現される。
【０２１９】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、上述した各ステップを実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるノードを実現することができる。
【０２２０】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、特定ノード向けイベントデータ送信部１０５と、特定ノード向けイベントデータ作成部１０６と、特定ノード向けイベントデータ受信部１０７と、特定ノード向けイベントデータ解析部１０８として機能する。また、ＣＰＵは、不特定ノード向けイベントデータ送信部１０９と、不特定ノード向けイベントデータ作成部１１０と、不特定ノード向けイベントデータ受信部１１１と、不特定ノード向けイベントデータ解析部１１２としても機能する。更に、ＣＰＵは、経路テーブル操作部１１３および障害処理部１１５としても機能する。また、コンピュータに備えられたハードディスク等の記憶装置は、経路テーブル格納部１１４として機能する。
【０２２１】
ここで、本実施の形態におけるプログラムを実行することによって、ノードを実現するコンピュータについて図４４を用いて説明する。図４４は、本発明の実施の形態におけるノードを実現するコンピュータの一例を示すブロック図である。
【０２２２】
図４４に示すように、コンピュータ５１０は、ＣＰＵ５１１と、メインメモリ５１２と、記憶装置５１３と、入力インターフェイス５１４と、表示コントローラ５１５と、データリーダ／ライタ５１６と、通信インターフェイス５１７とを備える。これらの各部は、バス５２１を介して、互いにデータ通信可能に接続される。
【０２２３】
ＣＰＵ５１１は、記憶装置５１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ５１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ５１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体５２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス５１７を介して接続されたインターネット上で流通するものであっても良い。
【０２２４】
また、記憶装置５１３の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス５１４は、ＣＰＵ５１１と、キーボード及びマウスといった入力機器５１８との間のデータ伝送を仲介する。表示コントローラ５１５は、ディスプレイ装置５１９と接続され、ディスプレイ装置５１９での表示を制御する。
【０２２５】
データリーダ／ライタ５１６は、ＣＰＵ５１１と記録媒体５２０との間のデータ伝送を仲介し、記録媒体５２０からのプログラムの読み出し、及びコンピュータ５１０における処理結果の記録媒体５２０への書き込みを実行する。通信インターフェイス５１７は、ＣＰＵ５１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０２２６】
また、記録媒体５２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【０２２７】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記２０）によって表現することができるが、以下の記載に限定されるものではない。
【０２２８】
（付記１）
複数のノードを備えたネットワークを有するシステムであって、
前記複数のノードそれぞれは、
当該ノードの接続先を特定し且つ接続先の数を制限する経路テーブル情報を格納する、経路テーブル格納部と、
前記経路テーブル情報の内容を書き換える、経路テーブル操作部と、を備え、
前記複数のノードそれぞれにおいて、前記経路テーブル操作部は、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、当該ノードにおける前記経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とするネットワークシステム。
【０２２９】
（付記２）
前記複数のノードそれぞれにおいて、前記経路テーブル情報は、当該ノードに直接接続されているノードを特定する自ノード経路テーブルと、当該ノードに直接接続された他のノードそれぞれに接続されているノードを特定する他ノード経路テーブルとを含む、
付記１に記載のネットワークシステム。
【０２３０】
（付記３）
前記ネットワークへの参加のために、前記経路テーブル情報に含まれる前記自ノード経路テーブルを含むノード参加イベントデータを作成する、不特定ノード向けイベントデータ作成部と、
前記ノード参加イベントデータを、当該ノード以外のノードへと送信する、不特定ノード向けイベントデータ送信部と、を更に備え、
前記経路テーブル操作部は、前記ノード参加イベントデータの送信後に、当該ノードにおいて、当該ノード以外のノードから、その自ノード経路テーブルを含む候補ノードイベントデータを受信した場合に、受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと当該ノード以外のノードとの間に新たな経路を構築する、
付記１または２に記載のネットワークシステム。
【０２３１】
（付記４）
前記複数のノードそれぞれが、更に、
当該ノードにおいて、当該ノード以外のノードから、前記ノード参加イベントデータを受信した場合に、受信元のノードの参加を認めるかどうかを判断する、イベントデータ解析部と、
受信元のノードの参加が認められる場合に、自ノード経路テーブルを含む前記候補ノードイベントデータを作成する、特定ノード向けイベントデータ作成部と、
前記候補ノードイベントデータを、前記受信元のノードに送信する、特定ノード向けイベントデータ送信部と、を備え、
前記複数のノードそれぞれにおいて、前記経路テーブル操作部は、前記候補ノードイベントデータの送信後に、前記受信元のノードから受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと受信元のノードとの間に新たな経路を構築する、
付記３に記載のネットワークシステム。
【０２３２】
（付記５）
前記複数のノードそれぞれが、更に、
当該ノードに接続されているノードが障害によって前記ネットワークから離脱する場合に、前記経路テーブル情報に基づいて新しい接続先を特定する、障害処理部を備え、
前記複数のノードそれぞれにおいて、前記経路テーブル操作部は、前記障害処理部によって新しい接続先が特定された場合に、特定された前記新しい接続先に基づいて、前記経路テーブル情報を更新する、
付記１〜４のいずれかに記載のネットワークシステム。
【０２３３】
（付記６）
複数のノードを備えたネットワークを構築するノードであって、
当該ノードは、
自身の接続先を特定し且つ接続先の数を制限する経路テーブル情報を格納する、経路テーブル格納部と、
前記経路テーブル情報の内容を書き換える、経路テーブル操作部と、を備え、
前記経路テーブル操作部は、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、前記経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とするノード。
【０２３４】
（付記７）
前記経路テーブル情報は、当該ノードに直接接続されているノードを特定する自ノード経路テーブルと、当該ノードに直接接続された他のノードそれぞれに接続されているノードを特定する他ノード経路テーブルとを含む、
付記６に記載のノード
【０２３５】
（付記８）
前記ネットワークへの参加のために、前記経路テーブル情報に含まれる前記自ノード経路テーブルを含むノード参加イベントデータを作成する、不特定ノード向けイベントデータ作成部と、
前記ノード参加イベントデータを、当該ノード以外のノードへと送信する、不特定ノード向けイベントデータ送信部と、を更に備え、
前記経路テーブル操作部は、前記ノード参加イベントデータの送信後に、当該ノードにおいて、当該ノード以外のノードから、その自ノード経路テーブルを含む候補ノードイベントデータを受信した場合に、受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと当該ノード以外のノードとの間に新たな経路を構築する、
付記６または７に記載のノード。
【０２３６】
（付記９）
当該ノードにおいて、当該ノード以外のノードから、前記ノード参加イベントデータを受信した場合に、受信元のノードの参加を認めるかどうかを判断する、イベントデータ解析部と、
受信元のノードの参加が認められる場合に、自ノード経路テーブルを含む前記候補ノードイベントデータを作成する、特定ノード向けイベントデータ作成部と、
前記候補ノードイベントデータを、前記受信元のノードに送信する、特定ノード向けイベントデータ送信部と、を備え、
前記経路テーブル操作部は、前記候補ノードイベントデータの送信後に、前記受信元のノードから受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと受信元のノードとの間に新たな経路を構築する、
付記８に記載のノード。
【０２３７】
（付記１０）
当該ノードに接続されているノードが障害によって前記ネットワークから離脱する場合に、前記経路テーブル情報に基づいて新しい接続先を特定する、障害処理部を更に備え、
前記経路テーブル操作部は、前記障害処理部によって新しい接続先が特定された場合に、特定された前記新しい接続先に基づいて、前記経路テーブル情報を更新する、
付記６〜９のいずれかに記載のノード。
【０２３８】
（付記１１）
複数のノードを備えるネットワークシステムにおける、ネットワーク管理方法であって、
（ａ）前記複数のノードそれぞれにおいて、当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、
当該ノードの接続先を特定し且つ接続先の数を制限する、経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ステップを有する、ことを特徴とするネットワーク管理方法。
【０２３９】
（付記１２）
前記複数のノードそれぞれにおいて、前記経路テーブル情報は、当該ノードに直接接続されているノードを特定する自ノード経路テーブルと、当該ノードに直接接続された他のノードそれぞれに接続されているノードを特定する他ノード経路テーブルとを含む、
付記１１に記載のネットワーク管理方法。
【０２４０】
（付記１３）
（ｂ）前記複数のノードそれぞれにおいて、前記ネットワークへの参加のために、前記経路テーブル情報に含まれる前記自ノード経路テーブルを含むノード参加イベントデータを作成し、前記ノード参加イベントデータを、当該ノード以外のノードへと送信する、ステップを更に有し、
前記（ａ）のステップにおいて、前記ノード参加イベントデータの送信後に、当該ノードにおいて、当該ノード以外のノードから、その自ノード経路テーブルを含む候補ノードイベントデータを受信した場合に、受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと当該ノード以外のノードとの間に新たな経路を構築する、
付記１１または１２に記載のネットワーク管理方法。
【０２４１】
（付記１４）
（ｃ）前記複数のノードそれぞれにおいて、当該ノード以外のノードから、前記ノード参加イベントデータを受信した場合に、受信元のノードの参加を認めるかどうかを判断する、ステップと、
（ｄ）前記複数のノードそれぞれにおいて、前記（ｃ）のステップで、受信元のノードの参加が認められる場合に、自ノード経路テーブルを含む前記候補ノードイベントデータを作成する、ステップと、
（ｅ）前記複数のノードそれぞれにおいて、前記（ｄ）のステップで作成された前記候補ノードイベントデータを、前記受信元のノードに送信する、ステップと、を有し、
前記（ａ）のステップにおいて、前記候補ノードイベントデータの送信後に、前記受信元のノードから受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと受信元のノードとの間に新たな経路を構築する、
付記１３に記載のネットワーク管理方法。
【０２４２】
（付記１５）
（ｆ）前記複数のノードそれぞれにおいて、当該ノードに接続されているノードが障害によって前記ネットワークから離脱する場合に、前記経路テーブル情報に基づいて新しい接続先を特定する、ステップを更に有し、
前記（ｆ）のステップによって新しい接続先が特定された場合に、前記（ａ）のステップにおいて、特定された前記新しい接続先に基づいて、前記経路テーブル情報を更新する、
付記１１〜１４のいずれかに記載のネットワーク管理方法。
【０２４３】
（付記１６）
コンピュータを、複数のノードを備えたネットワークを構築するノードとして機能させるためのプログラムであって、
前記コンピュータに、
（ａ）当該ノードが前記ネットワークに参加する場合、当該ノードに直接接続されるノードが前記ネットワークに参加した場合、及び当該ノードに直接接続されたノードが前記ネットワークから離脱した場合に、
当該ノードの接続先を特定し且つ接続先の数を制限する、経路テーブル情報を更新し、前記ネットワークシステムにおける新たな経路を構築する、ことを特徴とするプログラム。
【０２４４】
（付記１７）
前記経路テーブル情報は、当該ノードに直接接続されているノードを特定する自ノード経路テーブルと、当該ノードに直接接続された他のノードそれぞれに接続されているノードを特定する他ノード経路テーブルとを含む、
付記１６に記載のプログラム。
【０２４５】
（付記１８）
（ｂ）前記ネットワークへの参加のために、前記経路テーブル情報に含まれる前記自ノード経路テーブルを含むノード参加イベントデータを作成、前記ノード参加イベントデータを、当該ノード以外のノードへと送信する、ステップを更に、前記コンピュータに実行させ、
前記（ａ）のステップにおいて、前記ノード参加イベントデータの送信後に、当該ノードにおいて、当該ノード以外のノードから、その自ノード経路テーブルを含む候補ノードイベントデータを受信した場合に、受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと当該ノード以外のノードとの間に新たな経路を構築する、
付記１６または１７に記載のプログラム。
【０２４６】
（付記１９）
（ｃ）当該ノードにおいて、当該ノード以外のノードから、前記ノード参加イベントデータを受信した場合に、受信元のノードの参加を認めるかどうかを判断する、ステップと、
（ｄ）前記（ｃ）のステップで、受信元のノードの参加が認められる場合に、自ノード経路テーブルを含む前記候補ノードイベントデータを作成する、ステップと、
（ｅ）前記候補ノードイベントデータを、前記受信元のノードに送信する、ステップと、を更に前記コンピュータに実行させ、
前記（ａ）のステップにおいて、前記候補ノードイベントデータの送信後に、前記受信元のノードから受信した自ノード経路テーブルに基づいて、当該ノードにおける前記経路テーブル情報を更新し、当該ノードと受信元のノードとの間に新たな経路を構築する、
付記１８に記載のプログラム。
【０２４７】
（付記２０）
（ｆ）当該ノードに接続されているノードが障害によって前記ネットワークから離脱する場合に、前記経路テーブル情報に基づいて新しい接続先を特定する、ステップを更に前記コンピュータに実行させ、
前記（ｆ）のステップによって新しい接続先が特定された場合に、前記（ａ）のステップにおいて、特定された前記新しい接続先に基づいて、前記経路テーブル情報を更新する、
付記１３〜１５のいずれかに記載のプログラム。
【産業上の利用可能性】
【０２４８】
以上のように、本発明によれば、ネットワークにおける処理負担の増加を抑制しつつ、ノードの参加及び離脱の両方において自律的に通信経路を新たに構築することができる。本発明は、多数のノードを備えるネットワークに有効である。
【符号の説明】
【０２４９】
１  ノード
２  経路
３  経路
４  経路
５  経路
６  経路
７  経路
８  経路
１０  経路テーブル情報
１１  自ノード経路テーブル
１２〜１４  他ノード経路テーブル
１５  経路
１６  経路
１７  経路
２０  経路情報
２１  経路情報
２２  経路情報
２３  経路情報
２４  経路情報
２５  経路情報
２６、２７  接続要求イベントデータの欄
２８、２９  経路情報における空欄
３０  経路情報
３１  経路情報
３２  経路情報
３３  空き領域
３４、３５経路情報の欄
３６  経路情報
３７  経路情報
３８  欄
３９  欄
４０  欄
４１  欄
５０  経路情報
５１  経路情報
５２  欄
５３  欄
５４  経路情報
５５  経路情報
５６  経路情報
５９  欄
６０  経路情報
６１  経路情報
６２  経路情報
６３  欄
１００  ノード
１０１  定期データ送信部
１０２  定期データ作成部
１０３  定期データ受信部
１０４  定期データ解析部
１０５  特定ノード向けイベントデータ送信部
１０６  特定ノード向けイベントデータ作成部
１０７  特定ノード向けイベントデータ受信部
１０８  特定ノード向けイベントデータ解析部
１０９  不特定ノード向けイベントデータ送信部
１１０  不特定ノード向けイベントデータ作成部
１１１  不特定ノード向けイベントデータ受信部
１１２  不特定ノード向けイベントデータ解析部
１１３  経路テーブル操作部
１１４  経路テーブル格納部
１１５  障害処理部
２１３  経路テーブル操作部
２１４  経路テーブル格納部
２００  ノード
３００  ノード
３１３  経路テーブル操作部
３１４  経路テーブル格納部
４００  ノード
４１３  経路テーブル格納部
４１４  経路テーブル操作部
５００  ネットワークシステム
５１０  コンピュータ
５１１  ＣＰＵ
５１２  メインメモリ
５１３  記憶装置
５１４  入力インターフェイス
５１５  表示コントローラ
５１６  データリーダ／ライタ
５１７  通信インターフェイス
５１８  入力機器
５１９  ディスプレイ装置
５２０  記録媒体
５２１  バス
【図１】
2014175685.tif 000003
【図２】
2014175685.tif 000004
【図３】
2014175685.tif 000005
【図４】
2014175685.tif 000006
【図５】
2014175685.tif 000007
【図６】
2014175685.tif 000008
【図７】
2014175685.tif 000009
【図８】
2014175685.tif 000010
【図９】
2014175685.tif 000011
【図１０】
2014175685.tif 000012
【図１１】
2014175685.tif 000013
【図１２】
2014175685.tif 000014
【図１３】
2014175685.tif 000015
【図１４】
2014175685.tif 000016
【図１５】
2014175685.tif 000017
【図１６】
2014175685.tif 000018
【図１７】
2014175685.tif 000019
【図１８】
2014175685.tif 000020
【図１９】
2014175685.tif 000021
【図２０】
2014175685.tif 000022
【図２１】
2014175685.tif 000023
【図２２】
2014175685.tif 000024
【図２３】
2014175685.tif 000025
【図２４】
2014175685.tif 000026
【図２５】
2014175685.tif 000027
【図２６】
2014175685.tif 000028
【図２７】
2014175685.tif 000029
【図２８】
2014175685.tif 000030
【図２９】
2014175685.tif 000031
【図３０】
2014175685.tif 000032
【図３１】
2014175685.tif 000033
【図３２】
2014175685.tif 000034
【図３３】
2014175685.tif 000035
【図３４】
2014175685.tif 000036
【図３５】
2014175685.tif 000037
【図３６】
2014175685.tif 000038
【図３７】
2014175685.tif 000039
【図３８】
2014175685.tif 000040
【図３９】
2014175685.tif 000041
【図４０】
2014175685.tif 000042
【図４１】
2014175685.tif 000043
【図４２】
2014175685.tif 000044
【図４３】
2014175685.tif 000045
【図４４】
2014175685.tif 000046