(57)【要約】【課題】  多数のノードを接続可能なノード間情報共有システム。【解決手段】  ノード１０を先頭ノードとして複数のノード１０〜１４がネットワークを介して一列に接続されたノード集団を形成するノード間情報共有システムにおいて、各ノードは、先頭ノード参照領域と、次ノード参照領域と、分散共有メモリを備える。先頭ノード参照領域には、先頭ノードへの参照３１〜３４を格納する。次ノード参照領域には、次ノードへの参照２０〜２３を格納する。分散共有メモリには、ノード間情報共有システムにおいて共有する共有情報を記憶する。ノードにおいて生成された共有情報は、先頭ノード参照領域の参照アドレスに基づいて先頭ノードへ送信する。他のノードから受信した共有情報は、分散共有メモリへ記憶させると共に、次ノード参照領域の参照アドレスに基づいて次ノードへ送信する。【選択図】    図１
2007011888.tif 000002
【特許請求の範囲】
【請求項１】
先頭ノードを先頭として複数のノードが通信路を介して一列に接続されたノード集団を形成するノード間情報共有システムにおいて、
前記各ノードは、
先頭ノードへの参照アドレスを格納する先頭ノード記憶部と、
次ノードへの参照アドレスを格納する次ノード記憶部と、
前記ノード間情報共有システムにおいて共有する共有情報を記憶する分散共有メモリと、
自ノードにおいて生成された共有情報を、前記先頭ノード記憶部内の参照アドレスに基づいて前記先頭ノードへ送信する第１の送信手段と、
他のノードから受信した共有情報を前記分散共有メモリへ記憶させると共に、該共有情報を前記次ノード記憶部内の参照アドレスに基づいて次ノードへ送信する第２の送信手段と、
を具備することを特徴とするノード間情報共有システム。
【請求項２】
前記ノードは、
自ノードが前記ノード間情報共有システムから離脱するために、自ノードの参照アドレスを第１アドレスとして、前記次ノード記憶部内の参照アドレスを第２のアドレスとして、前記先頭ノード記憶部内の参照アドレスに基づき、先頭ノードへ通知する第１の手段を具備し、
他ノードの離脱処理のために、前記第１のアドレスと前記第２のアドレスを受信した時は、前記次ノード記憶部内の次ノードアドレスと前記第１のアドレスとを比較し、両アドレスが一致した時は、前記第２のアドレスを前記次ノード記憶部に書込み、一致しない時は、前記第１のアドレスと前記第２のアドレスを、前記次ノード記憶部内の参照アドレスに基づき、次ノードへ通知する第２の手段を具備することを特徴とする請求項１に記載のノード間情報共有システム。
【請求項３】
前記ノードは、
自ノードが先頭ノードであって、前記ノード間情報共有システムから離脱するために、前記次ノード記憶部内の次ノードアドレスを第３のアドレスとして、前記次ノード記憶部内の参照アドレスに基づき、次ノードへ通知する第３の手段を具備し、
先頭ノードの離脱処理のために、前記第３のアドレスを受信した時は、前記第３のアドレスを前記先頭ノード記憶部に書込むと共に、前記次ノード記憶部内の参照アドレスに基づき、次ノードへ通知する第４の手段を具備することを特徴とする請求項１または２のいずれかの項に記載のノード間情報共有システム。
【請求項４】
前記ノードは、
自ノードを先頭ノードとして前記ノード間情報共有システムに追加するために、前記先頭ノードへの参照アドレスをユーザに指定された時は、前記次ノード記憶部に前記指定された参照アドレスを格納し、自ノードアドレスを第４のアドレスとして、前記指定された参照アドレスに基づき、前記先頭ノードへ通知する第５の手段を具備し、
他ノードの先頭ノードへの追加処理のために、前記第４のアドレスを受信した時は、前記第４のアドレスを前記先頭ノード記憶部に書込むと共に、前記次ノード記憶部内の参照アドレスに基づき、次ノードへ通知する第６の手段を具備することを特徴とする請求項１〜３のいずれかの項に記載のノード間情報共有システム。
【請求項５】
前記ノードは、
自ノードを前記ノード間情報共有システムに追加するために、追加する箇所として前記ノードをユーザに指定された時は、自ノードアドレスを第５のアドレスとして、前記指定されたノードへ通知する第７の手段を具備し、
他ノードの追加処理のために、前記第５のアドレスを受信した時は、前記次ノード記憶部内の次ノードアドレスを第６のアドレスとして、前記先頭ノード記憶部内の先頭ノードアドレスを第７のアドレスとして、前記第５のアドレスへ通知するとともに、前記次ノード記憶部に、前記第５のアドレスを書込む第８の手段を具備し、
自ノードの追加処理のために、前記第６のアドレスと第７のアドレスを受信した場合は、前記第６のアドレスを前記次ノード記憶部に書込むとともに、前記第７のアドレスを前記先頭ノード記憶部に書込む第９の手段を具備していることを特徴とする請求項１〜４のいずれかの項に記載のノード間情報共有システム。
【請求項６】
前記ノードは、
自ノードを前記ノード間情報共有システムの末尾に追加するために、追加される箇所として末尾のノードをユーザに指定された時は、自ノードアドレスを第８のアドレスとして、前記指定された末尾のノードに宛てて通知する第１０の手段を具備し、
他ノードの追加処理のために、前記第８のアドレスを受信した時は、前記先頭ノード記憶部内の先頭ノードアドレスを第９のアドレスとして、前記第８のアドレスに宛てて通知するとともに、前記次ノード記憶部に、前記第８のアドレスを書込む第１１の手段を具備し、
自ノードを前記ノード間情報共有システムの末尾に追加するために、前記第９のアドレスを受信した時は、前記第９のアドレスを前記先頭ノード記憶部に書込む第１２の手段を具備することを特徴とする請求項１〜５のいずれかの項に記載のノード間情報共有システム。
【請求項７】
前記ノードは、
１つ以上の任意個のノード集団に所属し、
前記先頭ノード記憶部は、所属する全てのノード集団の先頭ノードへの参照アドレスを格納し、
前記次ノード記憶部は、所属する全てのノード集団の次ノードへの参照アドレスを格納し、
第２の送信手段は、他のノードから受信した共有情報を前記分散共有メモリへ記憶させると共に、前記次ノード記憶部内の参照アドレスに基づいて、前記共有情報を送信したノードと同じノード集団の次ノードへ、前記共有情報を送信し、さらに、前記先頭ノード記憶部内の参照アドレスに基づいて、前記共有情報を自ノードへ送信したノードの所属するノード集団を除き、自ノードが所属する全てのノード集団の先頭ノードへ、前記共有情報を送信すること
を特徴とする請求項１〜６のいずれかの項に記載のノード間情報共有システム。
【請求項８】
前記参照アドレスは、ＩＰアドレスであることを特徴とする請求項１〜７のいずれかの項に記載のノード間情報共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで接続された分散共有メモリによりノード間でデータ共有を行い、ノード構成を容易に変更可能なノード間情報共有システムに関する。
【背景技術】
【０００２】
従来、ネットワークを接続された分散共有メモリにより、ノード間で情報の共有を行うシステムにおいては、該システムにノードが参加／離脱する際には、参加／離脱の情報を特定のノードが、全ノードに並行して通知していた。また、各ノードは、参加／離脱の情報を受けると、ノード内の専用機能を用いて処理することで、内部データを更新して、分散共有メモリの管理を行っていた(例えば、特許文献１)。
【特許文献１】特開平７−１４１３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来このようなノード間情報共有システムにおいては、次のような欠点がある。小型のデバイスをノードとして接続するときのように極めて多数のノードを接続する場合やユビキタスコンピューティング環境のように広域にわたって接続を行う場合等では、例え、現状のメモリ空間で十分余裕があり仮想番地により冗長な割り当てを回避できても、番地処理が増えてしまい、ノードの参加離脱によるノード増減を、ネットワーク上のノード識別子とメモリ番地の変換処理に反映する負荷が増加する場合があった。
本発明は、このような事情に鑑みてなされたもので、その目的は、多数のノードを接続可能なノード間情報共有システムを提供することである。また、本発明の他の目的は、新たなノードが参加したり離脱したりする際の処理が容易なノード間情報共有システムを提供することである。
【課題を解決するための手段】
【０００４】
この発明は上述した課題を解決するためになされたもので、請求項１に記載の発明は、先頭ノードを先頭として複数のノードが通信路を介して一列に接続されたノード集団を形成するノード間情報共有システムにおいて、前記各ノードは、先頭ノードへの参照アドレスを格納する先頭ノード記憶部と、次ノードへの参照アドレスを格納する次ノード記憶部と、 前記ノード間情報共有システムにおいて共有する共有情報を記憶する分散共有メモリと、自ノードにおいて生成された共有情報を、前記先頭ノード記憶部内の参照アドレスに基づいて前記先頭ノードへ送信する第１の送信手段と、他のノードから受信した共有情報を前記分散共有メモリへ記憶させると共に、該共有情報を前記次ノード記憶部内の参照アドレスに基づいて次ノードへ送信する第２の送信手段と、を具備することを特徴とするノード間情報共有システムである。
【０００５】
また、請求項２に記載の発明は、請求項１に記載の発明であって、前記ノードは、自ノードが前記ノード間情報共有システムから離脱するために、自ノードの参照アドレスを第１アドレスとして、前記次ノード記憶部内の参照アドレスを第２のアドレスとして、前記先頭ノード記憶部内の参照アドレスに基づき、先頭ノードへ通知する第１の手段を具備し、他ノードの離脱処理のために、前記第１のアドレスと前記第２のアドレスを受信した時は、前記次ノード記憶部内の次ノードアドレスと前記第１のアドレスとを比較し、両アドレスが一致した時は、前記第２のアドレスを前記次ノード記憶部に書込み、一致しない時は、前記第１のアドレスと前記第２のアドレスを、前記次ノード記憶部内の参照アドレスに基づき、次ノードへ通知する第２の手段を具備することを特徴とする。
【０００６】
また、請求項３に記載の発明は、請求項１または２のいずれかの項に記載のノード間情報共有システムであって、前記ノードは、自ノードが先頭ノードであって、前記ノード間情報共有システムから離脱するために、前記次ノード記憶部内の次ノードアドレスを第３のアドレスとして、前記次ノード記憶部内の参照アドレスに基づき、次ノードへ通知する第３の手段を具備し、先頭ノードの離脱処理のために、前記第３のアドレスを受信した時は、前記第３のアドレスを前記先頭ノード記憶部に書込むと共に、前記次ノード記憶部内の参照アドレスに基づき、次ノードへ通知する第４の手段を具備することを特徴とする。
【０００７】
また、請求項４に記載の発明は、請求項１〜３のいずれかの項に記載のノード間情報共有システムであって、前記ノードは、自ノードを先頭ノードとして前記ノード間情報共有システムに追加するために、前記先頭ノードへの参照アドレスをユーザに指定された時は、前記次ノード記憶部に前記指定された参照アドレスを格納し、自ノードアドレスを第４のアドレスとして、前記指定された参照アドレスに基づき、前記先頭ノードへ通知する第５の手段を具備し、他ノードの先頭ノードへの追加処理のために、前記第４のアドレスを受信した時は、前記第４のアドレスを前記先頭ノード記憶部に書込むと共に、前記次ノード記憶部内の参照アドレスに基づき、次ノードへ通知する第６の手段を具備することを特徴とする。
【０００８】
また、請求項５に記載の発明は、請求項１〜４のいずれかの項に記載のノード間情報共有システムであって、前記ノードは、自ノードを前記ノード間情報共有システムに追加するために、追加する箇所として前記ノードをユーザに指定された時は、自ノードアドレスを第５のアドレスとして、前記指定されたノードへ通知する第７の手段を具備し、他ノードの追加処理のために、前記第５のアドレスを受信した時は、前記次ノード記憶部内の次ノードアドレスを第６のアドレスとして、前記先頭ノード記憶部内の先頭ノードアドレスを第７のアドレスとして、前記第５のアドレスへ通知するとともに、前記次ノード記憶部に、前記第５のアドレスを書込む第８の手段を具備し、自ノードの追加処理のために、前記第６のアドレスと第７のアドレスを受信した場合は、前記第６のアドレスを前記次ノード記憶部に書込むとともに、前記第７のアドレスを前記先頭ノード記憶部に書込む第９の手段を具備していることを特徴とする。
【０００９】
また、請求項６に記載の発明は、請求項１〜５のいずれかの項に記載のノード間情報共有システムであって、前記ノードは、自ノードを前記ノード間情報共有システムの末尾に追加するために、追加される箇所として末尾のノードをユーザに指定された時は、自ノードアドレスを第８のアドレスとして、前記指定された末尾のノードに宛てて通知する第１０の手段を具備し、他ノードの追加処理のために、前記第８のアドレスを受信した時は、前記先頭ノード記憶部内の先頭ノードアドレスを第９のアドレスとして、前記第８のアドレスに宛てて通知するとともに、前記次ノード記憶部に、前記第８のアドレスを書込む第１１の手段を具備し、自ノードを前記ノード間情報共有システムの末尾に追加するために、前記第９のアドレスを受信した時は、前記第９のアドレスを前記先頭ノード記憶部に書込む第１２の手段を具備することを特徴とする。
【００１０】
また、請求項７に記載の発明は、請求項１〜６のいずれかの項に記載のノード間情報共有システムであって、前記ノードは、１つ以上の任意個のノード集団に所属し、前記先頭ノード記憶部は、所属する全てのノード集団の先頭ノードへの参照アドレスを格納し、前記次ノード記憶部は、所属する全てのノード集団の次ノードへの参照アドレスを格納し、第２の送信手段は、他のノードから受信した共有情報を前記分散共有メモリへ記憶させると共に、前記次ノード記憶部内の参照アドレスに基づいて、前記共有情報を送信したノードと同じノード集団の次ノードへ、前記共有情報を送信し、さらに、前記先頭ノード記憶部内の参照アドレスに基づいて、前記共有情報を自ノードへ送信したノードの所属するノード集団を除き、自ノードが所属する全てのノード集団の先頭ノードへ、前記共有情報を送信することを特徴とする。
また、請求項８に記載の発明は、請求項１〜７のいずれかの項に記載のノード間情報共有システムであって、前記参照アドレスは、ＩＰアドレスであることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、特定のノードに処理が集中することなく、全てのノードに情報を受け渡すことができるので、多数のノードを接続することが可能である。また、新たにノードが参加或いは離脱する場合、全てのノードに参加或いは離脱情報を送ることなく、召集のノードに情報を送るだけであり、ノード集団への参加離脱の処理を容易にすることが可能である。
【発明を実施するための最良の形態】
【００１２】
本発明の実施の形態として、第１と第２の実施形態を説明する。
【００１３】
〔実施形態１〕
以下、図面を参照して、本発明の第１の実施形態について説明する。図１は、物理的にネットワークにより接続されているノード間情報共有システムにおけるノード間の論理的な参照関係を表している。１０〜１４は、ノードであり、先頭ノードが受けた情報を、順に直列に繋がった末尾ノードまで受け渡すことで、全てのノード間で情報を共有するノード集団を形成している。これらのノード１０〜１４のうち、ノード１０は先頭ノードであり、ノード１４は末尾ノードである。
ここで、各ノードが、いずれかのノードへ情報を送信するためには、目的とするノードへの参照を保持している必要がある。２０〜２３は、各ノードの次ノードへの参照であり、矢印の始点となっているノードが、自ノードが備える次ノード参照領域に、矢印の終点となっているノードのノード番地を格納していることを表している。末尾ノードであるノード１４は、次ノードが存在しないため、次ノード参照領域にてノードを参照していない。３１〜３４は、該グループの先頭ノードへの参照であり、矢印の始点となっているノードが、自ノードが備える先頭ノード参照領域に、矢印の終点となっているノード１０のノード番地を格納していることを表している。
次に、本実施形態の動作を説明する。本実施形態の動作ケースとして、（１）データ共有、（２）ノード離脱、（３）先頭ノード離脱、（４）先頭ノード参加、（５）ノード参加、（６）末尾ノード参加の６ケースを説明する。
【００１４】
（１）データ共有
ここでは、ノード１２にてデータが生成され、該データを共有情報として、全てのノード間で共有する場合を説明する。まず、ノード１２にてデータが生成されると、ノード１２は、その先頭ノード参照領域３２を参照して、ノード１０に該データを送信する（Ｓ１０）。ノード１０は、該データを受信すると、それを自ノード内の分散共有メモリに取り込むとともに、次ノード参照領域２０を参照して、ノード１１に該データを送信する（Ｓ１１）。ノード１１は、該データを受信すると、それを自ノード内の分散共有メモリに取り込むとともに、その次ノード参照領域２１を参照して、ノード１２に該データを送信する（Ｓ１２）。ノード１２は、該データを受信すると、該データは自らが生成したデータではあるが、該データを自ノード内の分散共有メモリに取り込むとともに、次ノード参照領域２２を参照して、ノード１３に該データを送信する（Ｓ１３）。以下、同様にして、該データは、ノード１４にも送信される（Ｓ１４）。ノード１４は、該データを受信すると、該データを自ノード内の分散共有メモリに取り込むとともに、自ノード内の次ノード参照領域を参照するが、次ノードへの参照は記述されていないので、該データの送信は行わない。その他のノードにて生成されたデータについても、同様にすることで、全ノードに通知し、共有情報とすることができる。
【００１５】
（２）ノード離脱
ノード１３が、他ノードとの情報の共有を中止する、すなわち、ノード集団から離脱する場合の動作を図２の（ａ）を用いて説明する。なお、図２および図３において、点線は該動作によって無くなる部分、太線は該動作によって追加される部分を表す。
ノード１３は、ノード集団から離脱することが決まると、次ノード参照領域２３を参照してノード１４への参照を得る。次に、先頭ノード参照領域３３を参照して、ノード１０に“離脱：ノード１３”と“次ノード：ノード１４”である旨のデータを送信する（Ｓ２０）。ノード１０は、該データを受信すると、次ノード参照領域２０が参照するノードと、受信したデータのうち離脱の項目とを比較する。ここでは、次ノード参照領域２０はノード１１であり、離脱の項目はノード１３であり、一致しないので、次ノード参照領域２０から取得したノード１１へ、受信したデータをそのまま送信する（Ｓ２１）。ノード１１は、該データを受信すると、ノード１０と同様にして、次ノード参照領域２１が参照するノードと、受信したデータのうち離脱の項目とを比較する。ここでは、次ノード参照領域２１はノード１２であり、離脱の項目はノード１３であり、一致しないので、次ノード参照領域２１から取得したノード１２へ、受信したデータをそのまま送信する（Ｓ２２）。ノード１２は、該データを受信すると、ノード１０およびノード１１と同様にして、次ノード参照領域２２が参照するノードと、受信したデータのうち離脱の項目とを比較する。ここでは、次ノード参照領域２２はノード１３であり、離脱の項目もノード１３であり、一致するので、受信したデータのうち次ノードの項目を参照して、ノード１４を自身の次ノード参照領域２２に格納する。
【００１６】
（３）先頭ノード離脱
先頭ノードであるノード１０が、他ノードとの情報の共有を中止する、すなわち、ノード集団から離脱する場合の動作を図２の（ｂ）を用いて説明する。ノード１０は、ノード集団から離脱することが決まると、次ノード参照領域２０を参照してノード１１への参照を得て、そのノード１１に“先頭ノード：ノード１１”に変更である旨のデータを送信する（Ｓ３０）。さらに、ノード１０は、次ノード参照領域２０をクリアする。ノード１１は、該データを受信すると、自ノードが先頭ノードに指定されているので、自ノードの先頭ノード参照領域３１をクリアするとともに、次ノード参照領域２１を参照して、ノード１２に、受信した該データを送信する（Ｓ３１）。ノード１２は、該データを受信すると、先頭ノードの項目で指定されたノード１１を、先頭ノード参照領域３２に格納するとともに、次ノード参照領域２２を参照して、ノード１３に、受信した該データを送信する（Ｓ３２）。ノード１３、１４も同様にして、各先頭ノード参照領域３３、３４にノード１１を格納する（Ｓ３３）。
【００１７】
（４）先頭ノード追加
ノード１５が、先頭ノードとして、他ノードとの情報の共有を開始する、すなわち、先頭ノードがノード集団に加わる場合の動作を図３の（ａ）を用いて説明する。まず、現在のノード集団の先頭ノードであるノード１０のノード番地を、管理者がノード１５に通知先として、設定する。ノード１５は、ノード１０のノード番地を設定されると、これを次ノード参照領域に設定するとともに、“先頭ノード：ノード１５”に変更である旨のデータを、通知先として設定されたノード１０に送信する（Ｓ４０）。ノード１０は、該データを受信すると、先頭ノードとして指定されたノード１５を、先頭ノード参照領域３０に格納するとともに、次ノード参照領域２０を参照して、ノード１１に、受信した該データを送信する（Ｓ４１）。ノード１１は、該データを受信すると、ノード１０と同様に、先頭ノードとして指定されたノード１５を、先頭ノード参照領域３１に格納するとともに、次ノード参照領域２１を参照して、ノード１２に、受信した該データを送信する（Ｓ４２）。以下、ノード１２〜１４も同様にして、ノード１５を、各ノードの先頭ノード参照領域に格納する（Ｓ４３、Ｓ４４）。
【００１８】
（５）ノード参加
ノード１６が、通常のノードとして、他ノードとの情報の共有を開始する、すなわち、ノードがノード集団に加わる場合の動作を図３の（ｂ）を用いて説明する。まず、ノード１６の挿入ポイントとして、ノード１２を、管理者がノード１６に設定する。ノード１６は、挿入ポイントを設定されると、該ノード１２に、“追加ノード：ノード１６”である旨のデータを送信する（Ｓ５０）。ノード１２は、該データを受信すると、“先頭ノード：ノード１０”および“次ノード：ノード１３”である旨のデータを、ノード１６に送信する（Ｓ５１）とともに、次ノード参照領域２２に、ノード１６を格納する。ノード１６は、該データを受信すると、先頭ノードの項目であるノード１０を、先頭ノード参照領域３６に格納し、次ノードの項目であるノード１３を、次ノード参照領域２６に格納する。
【００１９】
（６）末尾ノード参加
ノード１７が、末尾ノードとして、他ノードとの情報の共有を開始する、すなわち、末尾ノードがノード集団に加わる場合の動作を図３の（ｃ）を用いて説明する。まず、現在の末尾ノードとして、ノード１４を、管理者がノード１７に設定する。ノード１７は、末尾ノードを設定されると、該ノード１４に、“末尾ノード：ノード１７”である旨のデータを送信する（Ｓ６０）。ノード１４は、該データを受信すると、“先頭ノード：ノード１０”である旨のデータを、ノード１７に送信する（Ｓ６１）とともに、次ノード参照領域２４に、ノード１７を格納する。ノード１７は、該データを受信すると、先頭ノードの項目であるノード１０を、先頭ノード参照領域３６に格納する。次ノード参照領域については、クリアされた状態にしておく。
【００２０】
〔実施形態２〕
以下、図面を参照して、本発明の第２の実施形態について説明する。図４は、物理的には、ネットワークにより接続されているノード間情報共有システムにおけるノード間の論理的な参照関係を表している。１１０〜１１４、２１０〜２１３、３１０〜３１５、４１０〜４１３は、ノードである。１００は、ノード１１０〜ノード１１４から構成され、先頭ノードであるノード１１０が受け取った情報を、順に一列に繋がった末尾ノードであるノード１１４まで受け渡すことで、情報共有するノード集団であり、２００、３００および４００も、同様のノード集団である。第１の実施形態と同様に、ノード集団内で情報を共有すると同時に、これらのノード集団間でも、先頭ノード集団であるノード集団１００から順に末尾ノード集団まで、情報を受け渡すことで、情報を共有するノード間情報共有システムを構成している。１２０〜１２３、２２０〜２２２、３２０〜３２４、４２０〜４２２は、各ノードの次ノードへの参照であり、矢印の始点となっているノードが、自ノードが備える次ノード参照領域に、矢印の終点となっているノードのノード番地を格納していることを表している。１３１〜１３４、２３１〜２３３、３３１〜３３５、４３１〜４３３は、各ノードの先頭ノードへの参照であり、矢印の始点となっているノードが、自ノードが備える先頭ノード参照領域に、矢印の終点となっているノードのノード番地を格納していることを表している。
【００２１】
１０１、２０１、３０１は、各ノード集団の次ノード集団への参照であり、矢印の始点となっているノードが、自ノードが備える次ノード集団参照領域に、矢印の終点となっているノードのノード番地を格納していることを表している。２０２、３０２、４０２は、各ノード集団の先頭ノード集団への参照であり、矢印の始点となっているノードが、自ノードが備える先頭ノード集団参照領域に、矢印の終点となっているノードのノード番地を格納していることを表している。
次に、本実施形態の動作を説明する。本実施形態の動作ケースとして、（１）データ共有、（２）先頭ノード離脱、（３）先頭ノード集団の先頭ノード離脱、（４）先頭ノード集団の先頭ノード参加、（５）先頭ノード参加の５ケースを説明する。
【００２２】
（１）データ共有
ここでは、ノード２１２にてデータが生成され、該データを共有情報として、全てのノード間で共有する場合を説明する。まず、ノード２１２にてデータが生成されると、ノード２１２は、その先頭ノード参照領域２３２を参照して、ノード２１０に該データを送信する（Ｓ１００）。ノード２１０は、該データを受信すると、それを自ノードに取込むとともに、先頭ノード集団参照領域２０２を参照して、ノード集団１００の先頭ノードであるノード１１０にも該データを送信し（Ｓ１０１）、さらに、次ノード参照領域２２０を参照して、ノード２１１に該データを送信する（Ｓ１１０）。ノード２１１は、該データを受信すると、それを自ノード内に取り込むとともに、その次ノード参照領域２２１を参照して、ノード２１２に該データを送信する（Ｓ１１１）。ノード２１２は、該データを受信すると、該データは自らが生成したデータではあるが、該データを自ノード内に取り込むとともに、次ノード参照領域２２２を参照して、ノード２１３に該データを送信する（Ｓ１１２）。ノード２１３は、該データを受信すると、該データを自ノード内に取り込むとともに、自ノード内の次ノード参照領域を参照するが、次ノードへの参照は記述されていないので、該データの送信は行わない。このようにして、ノード集団２００内の全てのノードに、データを受け渡し、該データを共有する。
【００２３】
一方、ステップＳ１０１にてノード２１０からデータを受信したノード１１０は、該データを自ノードに取込むとともに、次ノード集団参照領域１０１を参照して、ノード２１０に該データを送信し（Ｓ１０２）、さらに、次ノード参照領域１２０を参照して、ノード１１１に該データを送信する（Ｓ１２０）。ノード１１１は、該データを受信すると、それを自ノード内に取り込むとともに、その次ノード参照領域１２１を参照して、ノード１１２に該データを送信する（Ｓ１２１）。以下、同様にして、ノード１１３、１１４にも該データが受け渡される。このようにして、ノード集団１００内の全てのノードに、データを受け渡し、該データを共有する。
【００２４】
一方、ステップＳ１０２にてノード１１０からデータを受信したノード２１０は、所属しているノード集団２００に、該データを反映済みなので、次ノードには送信しないが、次ノード集団参照領域２０１を参照して、ノード３１０に、該データを送信する（Ｓ１０３）。ノード３１０は、該データを受信すると、それを自ノード内に取り込むとともに、その次ノード集団参照領域３０１を参照して、ノード４１０に該データを送信し（Ｓ１０４）、さらに、次ノード参照領域３２０を参照して、ノード３１１に該データを送信する（Ｓ１３０）。ノード３１１は、該データを受信すると、それを自ノード内に取り込むとともに、その次ノード参照領域３２１を参照して、ノード３１２に該データを送信する（Ｓ１３１）。以下、同様にして、ノード３１３、３１４、３１５にも該データが受け渡される。このようにして、ノード集団３００内の全てのノードに、データを受け渡し、該データを共有する。また、ステップＳ１０４にてノード３１０から該データを受信したノード４１０も同様にして、ノード集団４００内の全てのノードにデータを受け渡す。このようにして、ノード集団１００、２００、３００、４００の全てのノードにデータを受け渡し、該データを共有することができる。
【００２５】
（２）先頭ノード離脱
ノード集団３００の先頭ノードであるノード３１０が、他ノードとの情報の共有を中止する、すなわち、ノード集団から離脱する場合の動作を、図５を用いて説明する。ノード３１０は、ノード集団から離脱することが決まると、先頭ノード集団参照領域３０２を参照して、ノード１１０に、“ノード集団３００の先頭ノード：ノード３１０からノード３１１へ変更”というデータを送信するとともに（Ｓ２００）、次ノード参照領域３２０を参照して、ノード３１１に、“先頭ノード：ノード３１０からノード３１１へ変更” および“先頭ノード集団：ノード１１０、次ノード集団：ノード４１０”というデータを送信する（Ｓ２０１）。さらに、ノード３１０は、次ノード参照領域３２０、先頭ノード集団参照領域３０２、次ノード集団参照領域３０１をクリアする。ノード３１１は、該データを受信すると、自ノードが先頭ノードとなるので、先頭ノード参照領域３３１をクリアし、先頭ノード集団参照領域３０４にノード１１０を、次ノード集団参照領域３０３にノード４１０を格納するとともに、次ノード参照領域３２１を参照して、ノード３１２に該データを送信する（Ｓ２０２）。ノード３１２は、該データを受信すると、先頭ノードが変更されているので、先頭ノード参照領域３３２にノード３１１を格納するとともに、次ノード参照領域３２２を参照して、ノード３１３に該データを送信する（Ｓ２０３）。以下、ノード３１３、３１４、３１５は、同様にして、該データを受信し、先頭ノード参照領域３３３、３３４、３３５にノード３１１を格納する（Ｓ２０４、Ｓ２０５）。ノード３１５は、次ノード参照領域に次ノードへの参照が記述されていないので、該データの送信は行わない。
【００２６】
一方、ステップＳ２００にてノード３１０から“ノード集団３００の先頭ノード：ノード３１０からノード３１１へ変更”を受信したノード１１０は、次ノード集団参照領域１０１を参照して、ノード２１０に該データを送信する（Ｓ２１０）。ノード２１０は、該データを受信すると、ノード３１０を格納している次ノード集団参照領域２０１にノード３１１を格納する。
これにより、ノード３１０が離脱しても、（１）データ共有のシーケンスを同様に行い、データを共有できる構成を維持している。
【００２７】
（３）先頭ノード集団の先頭ノード離脱
先頭ノード集団の先頭ノードであるノード１１０が、他ノードとの情報の共有を中止する、すなわち、ノード集団から離脱する場合の動作を、図６を用いて説明する。ノード１１０は、ノード集団から離脱することが決まると、次ノード集団参照領域１０１を参照して、ノード２１０に、“先頭ノード集団の先頭ノード：ノード１１１”に変更である旨のデータを送信するとともに（Ｓ３００）、次ノード参照領域１２０を参照して、ノード１１１に、“先頭ノード：ノード１１１”と“次ノード集団：ノード２１０”である旨のデータを送信する（Ｓ３０１）。さらに、ノード１１０は、次ノード参照領域１２０、次ノード集団参照領域１０１をクリアする。ノード１１１は、該データを受信すると、自ノードが先頭ノードとなるので、先頭ノード参照領域１３１をクリアし、次ノード集団参照領域１０３にノード２１０を格納するとともに、次ノード参照領域１２１を参照して、ノード１１２に、該データを送信する（Ｓ３０２）。ノード１１２は、該データを受信すると、先頭ノード参照領域１３２にノード１１１を格納するとともに、次ノード参照領域１２２を参照して、ノード１１３に、該データを送信する（Ｓ３０３）。以下、同様にして、ノード１１３、１１４は、先頭ノード参照領域１３３、１３４にノード１１１を格納する（Ｓ３０４）。
【００２８】
一方、ステップＳ３００にて“先頭ノード集団の先頭ノード：ノード１１１”を受信したノード２１０は、先頭ノード集団参照領域２０２にノード１１１を格納するとともに、次ノード集団参照領域２０１を参照して、ノード３１０に該データを送信する（Ｓ３１０）。ノード３１０は、該データを受信すると、先頭ノード集団参照領域３０２にノード１１１を格納するとともに、次ノード集団参照領域３０１を参照して、ノード４１０に該データを送信する（Ｓ３２０）。ノード４１０は、該データを受信すると、先頭ノード集団参照領域４０２にノード１１１を格納する。ノード４１０は、次ノード集団参照領域に次ノード集団への参照がないので、該データの送信は行わない。
これにより、ノード１１０が離脱しても、（１）データ共有のシーケンスを同様に行い、データを共有できる構成を維持している。
【００２９】
（４）先頭ノード集団の先頭ノード参加
ノード１１５が、先頭ノード集団であるノード集団１００の先頭ノードとして、他ノードとの共有を開始する、すなわち、先頭ノード集団の先頭ノードがノード集団に加わる場合の動作を図７を用いて説明する。まず、現在の先頭ノード集団の先頭ノードであるノード１１０を、管理者がノード１１５に通知先として、設定する。ノード１１５は、ノード１１０を設定されると、これを次ノード参照領域１２５に格納するとともに、“先頭ノード集団の先頭ノード：ノード１１５”に変更である旨のデータを送信する（Ｓ４０１）。ノード１１０は、該データを受信すると、自ノードが先頭ノード集団の先頭ノードであるので、次ノード集団参照領域１０１を参照して、ノード２１０への参照を得て、“次ノード集団：ノード２１０”である旨のデータを、ノード１１５に送信する（Ｓ４００）。さらに、次ノード集団参照領域１０１をクリアし、先頭ノード参照領域１３０にノード１１５を格納するとともに、次ノード参照領域１２０を参照して、ノード１１１に、受信した該データを送信する（Ｓ４０２）。ノード１１１は、該データを受信すると、先頭ノード参照領域１３１にノード１１５を格納するとともに、次ノード参照領域１２１を参照して、ノード１１２に、該データを送信する（Ｓ４０３）。以下、同様にして、ノード１１２、１１３、１１４は、先頭ノード領域１３２、１３３、１３４に、ノード１１５を格納する（Ｓ４０４、Ｓ４０５）。
【００３０】
一方、ステップ１２５にて、“次ノード集団：ノード２１０”である旨のデータを受信したノード１１５は、次ノード集団参照領域１０５にノード２１０を格納するとともに、該ノード２１０に、“先頭ノード集団の先頭ノード：ノード１１５”に変更である旨のデータを送信する（Ｓ４１０）。ノード２１０は、該データを受信すると、先頭ノード集団参照領域２０２にノード１１５を格納するとともに、次ノード集団参照領域２０１を参照して、ノード３１０に該データを送信する（Ｓ４１１）。以下、同様にして、ノード３１０、４１０は、先頭ノード集団参照領域３０２、４０２に、ノード１１５を格納する（Ｓ４１２）。
これにより、ノード１１５が先頭ノード集団の先頭ノードとして追加されても、（１）データ共有のシーケンスを同様に行い、データを共有できる構成を維持している。
【００３１】
（５）先頭ノード参加
ノード２１４が、ノード集団２００の先頭ノードとして、他ノードとの共有を開始する、すなわち、先頭ノード集団の先頭ノードがノード集団に加わる場合の動作を図８を用いて説明する。まず、現在のノード集団２００の先頭ノードであるノード２１０を、管理者がノード２１４に通知先として、設定する。ノード２１４は、ノード２１０を設定されると、これを次ノード参照領域２２４に格納するとともに、“ノード集団２００の先頭ノード：ノード２１０からノード２１４に変更”である旨のデータを、ノード２１０に送信する（Ｓ５００）。ノード２１０は、該データを受信すると、自ノードがノード集団２００の先頭ノードであるので、次ノード集団参照領域２０１を参照してノード３１０を得て、“次ノード集団：ノード３１０”とともに、受信した“ノード集団２００の先頭ノード：ノード２１０からノード２１４に変更”を、先頭ノード集団参照領域２０２を参照して、ノード１１０に送信する（Ｓ５１０）。ノード２１０は、さらに、先頭ノード集団参照領域２０２と次ノード集団参照領域２０１をクリアし、先頭ノード参照領域２３０にノード２１４を格納するとともに、次ノード参照領域２２０を参照して、ノード２１１に、受信したデータである“ノード集団２００の先頭ノード：ノード２１０からノード２１４に変更”を送信する（Ｓ５０１）。ノード２１１は、該データを受信すると、先頭ノード参照領域２３１にノード２１４を格納するとともに、次ノード参照領域２２１を参照して、ノード２１２に該データを送信する（Ｓ５０２）。以下、同様にして、ノード２１２、２１３は、先頭ノード参照領域２３２、２３３にノード２１４を格納する。
【００３２】
一方、ステップＳ５１０にて、“次ノード集団：ノード３１０”と“ノード集団２００の先頭ノード：ノード２１０からノード２１４に変更”を受信したノード１１０は、次ノード集団参照領域１０１に格納している参照が、ノード２１０であるので、これをノード２１４に変更するとともに、ノード２１４に、これらのデータを送信する（Ｓ５２０）。ノード２１４は、これらのデータを受信すると、次ノード集団参照領域２０５にノード３１０を格納する。
これにより、ノード２１４がノード集団２００の先頭ノードとして追加されても、（１）データ共有のシーケンスを同様に行い、データを共有できる構成を維持している。
本実施形態は、第1の実施形態にて定義されたノード集団が複数あり、さらにそれらのノード集団の先頭ノードのみからなるノード集団を形成するという２階層のノード集団になっている。これは、各先頭ノードは、第1の実施形態にて定義されたノード集団と同様のノード集団と、先頭ノードのみから構成されるノード集団と、双方のノード集団に所属しているとみなすこともできる。本実施形態では、先頭ノードのみからなるノード集団を形成することで２階層目のノード集団としたが、先頭ノードではなく、末尾ノードやその他の通常のノードからなるノード集団を形成して２階層目としてもよい。
なお、例えば、本実施形態の先頭ノード集団の先頭ノードを接続して、さらにノード集団を形成することで、３階層のノード集団を形成することができる。そして、この方法により、４階層、５階層・・・というように、次々と多階層のノード集団を形成することができる。
【００３３】
なお、第１および第２の実施形態において、参照アドレスは、ＩＰアドレス、ＭＡＣアドレス等の他、各ノードが識別できる情報であれば良い。また、参照アドレスとしてＩＰアドレスを用いると、各ノードを接続するネットワークとして、一般的なＩＰネットワークを用いることができる。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００３４】
【図１】この発明の第１の実施形態による共有メモリ通信システムの構成を示す図である。
【図２】同実施形態における動作を説明する図である。
【図３】同実施形態における動作を説明する図である。
【図４】この発明の第２の実施形態による共有メモリ通信システムの構成を示す図である。
【図５】同実施形態における動作を説明する図である。
【図６】同実施形態における動作を説明する図である。
【図７】同実施形態における動作を説明する図である。
【図８】同実施形態における動作を説明する図である。
【符号の説明】
【００３５】
１０〜１７…ノード
２０〜２６…次ノードへの参照
３１〜３７…先頭ノードへの参照
１００…ノード集団
１１０〜１１４…ノード
１２０〜１２４…次ノードへの参照
１３１〜１３４…先頭ノードへの参照
１４０…次ノード集団への参照
２００…ノード集団
２１０〜２１３…ノード
２２０〜２２２…次ノードへの参照
２３１〜２３３…先頭ノードへの参照
２４０…次ノード集団への参照
２５０…先頭ノード集団への参照
３００…ノード集団
３１０…ノード
３４０…次ノード集団への参照
３５０…先頭ノード集団への参照
４００…ノード集団
４１０…ノード
４５０…先頭ノード集団への参照
【図１】
2007011888.tif 000003
【図２】
2007011888.tif 000004
【図３】
2007011888.tif 000005
【図４】
2007011888.tif 000006
【図５】
2007011888.tif 000007
【図６】
2007011888.tif 000008
【図７】
2007011888.tif 000009
【図８】
2007011888.tif 000010