(57)【要約】【課題】それぞれの通信装置２０の処理負荷を低く抑えながら、任意のネットワーク構成においてコミュニティネットワーク１０内の複数の通信装置２０の作業権を排他制御することができる通信装置２０を提供する。【解決手段】本発明は、複数の通信装置２０によって形成され、トークンを保持する通信装置が複数の通信装置２０で共有されている共有データの更新を許可されるコミュニティネットワーク１０において、それぞれの通信装置２０はトークンの送信先を記憶し、他の通信装置２０からトークンを受信した場合、必要に応じて共有データを更新した後に、記憶した送信先へトークンを送信する。【選択図】図１
2008250397.tif 000002
【特許請求の範囲】
【請求項１】
トークンを保持する通信装置に対して、当該通信装置が他の通信装置と共有している共有データの変更を許可するコミュニティネットワークに用いられる通信装置であって、
前記コミュニティネットワーク内の全ての通信装置の識別情報を格納する識別情報格納手段と、
前記共有データを格納する共有データ格納手段と、
他の通信装置からトークンを受信した場合に、前記共有データ格納手段に格納されている共有データを変更する必要があるか否かを判定し、当該共有データを変更する必要がある場合には当該共有データを変更すると共に、前記識別情報格納手段を参照して、当該変更分を示す差分データを前記コミュニティネットワーク内の他の全ての通信装置へ送信する共有データ変更手段と、
前記共有データの変更分を示す差分データを他の通信装置から受信した場合に、受信した差分データに基づいて前記共有データ格納手段に格納されている共有データを変更する共有データ更新手段と、
トークンの送信先の他の通信装置であって、トークンの周回ルートにおける自通信装置の下流に割り当てられる第一の下流装置の識別情報を格納する周回ルート情報格納手段と、
前記周回ルート情報格納手段を参照して、前記共有データ変更手段が受信したトークンを前記第一の下流装置へ送信するトークン送信手段と
を備えることを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記共有データ更新手段は、
前記共有データ変更手段がトークンを受信してから前記トークン送信手段が当該トークンを送信するまでの間に他の通信装置から差分データを受信した場合に、トークンを持たない通信装置が共有データを変更した旨を示すエラーを前記コミュニティネットワーク内の全ての他の通信装置へ送信することを特徴とする通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記周回ルート情報格納手段は、
トークンの送信元の他の通信装置であって、トークンの周回ルートにおける自通信装置の上流に割り当てられる上流装置の識別情報をさらに格納し、
前記トークン送信手段は、
前記周回ルート情報格納手段に格納されている第一の下流装置へトークンを送信した場合に、前記周回ルート情報格納手段を参照して、トークンを送信した旨を示す送信報告を前記上流装置へさらに送信し、
前記共有データ更新手段は、
前記トークン送信手段がトークンを他の通信装置へ送信してから、当該他の通信装置から送信報告を受信するまでの間に、当該他の通信装置以外の通信装置から差分データを受信した場合に、トークンを持たない通信装置が共有データを変更した旨を示すエラーを、前記ネットワークシステム内の全ての他の通信装置へ送信することを特徴とする通信装置。
【請求項４】
請求項３に記載の通信装置であって、
前記周回ルート情報格納手段は、
トークンの周回ルートにおける前記第一の下流装置のさらに下流に割り当てられる第二の下流装置の識別情報をさらに格納し、
前記通信装置は、
前記トークン送信手段がトークンを他の通信装置へ送信してから予め定められた第一の時間以内に当該他の通信装置から送信報告を受信しなかった場合に、当該他の通信装置の起動確認を行い、当該他の通信装置の起動が確認できない場合に、トークンを新たに生成するトークン生成手段をさらに備え、
前記トークン送信手段は、
前記トークン生成手段によってトークンが新たに生成された場合に、前記周回ルート情報格納手段を参照して、新たに生成されたトークンを前記第二の下流装置へ送信することを特徴とする通信装置。
【請求項５】
請求項１に記載の通信装置であって、
前記共有データ変更手段は、
前記共有データ格納手段内の共有データを変更した後、または、当該共有データを変更する必要がないと判定した場合に、前記トークン送信手段にトークンの送信を指示し、
前記トークン送信手段は、
前回トークンを送信してから予め定められた第二の時間以内に前記共有データ変更手段よりトークンの送信を指示され、かつ、前回トークンを送信してから前記共有データ変更手段よりトークンの送信を指示されるまでの間に前記共有データ格納手段内の共有データが変更されなかった場合に、トークンの送信を予め定められた第三の時間待つことを特徴とする通信装置。
【請求項６】
請求項１に記載の通信装置であって、
自通信装置の識別情報を含む参加要求を他の通信装置へ送信する参加要求送信手段と、
他の通信装置から参加要求を受信した場合に、前記周回ルート情報格納手段に格納されている第一の下流装置の識別情報を含む参加応答を生成し、生成した参加応答を当該参加要求の送信元の他の通信装置へ送信する参加応答送信手段と、
他の通信装置から参加応答を受信した場合に、当該参加応答に含まれている通信装置の識別情報を第一の下流情報として前記周回ルート情報格納手段に格納すると共に、自通信装置の識別情報を含む周回ルート情報更新要求を、前記参加応答の送信元の通信装置へ送信する周回ルート情報更新要求手段と、
前記周回ルート情報更新要求を受信した場合に、当該周回ルート情報更新要求に含まれる識別情報で、前記周回ルート情報格納手段内の第一の下流装置の識別情報を更新する周回ルート情報更新手段と
をさらに備えることを特徴とする通信装置。
【請求項７】
請求項６に記載の通信装置であって、
前記識別情報格納手段は、
前記識別情報毎に、当該識別情報に対応する通信装置が配置されているエリアを特定可能なエリア情報をさらに格納し、
前記通信装置は、
自通信装置のエリア情報を含む問合せ先要求を、他の通信装置へ送信する問合せ先要求手段と、
他の通信装置から問合せ先要求を受信した場合に、当該問合せ先要求に含まれているエリア情報に基づき前記識別情報格納手段を参照して、当該問合せ先要求の送信元の通信装置が配置されているエリアと同一のエリアまたは最も近いエリアに配置されている通信装置を特定し、特定した通信装置の識別情報を含む問合せ先応答を、当該問合せ先要求の送信元の通信装置へ送信する問合せ先応答手段と
をさらに備え、
前記参加要求送信手段は、
前記問合せ先応答に含まれる識別情報に対応する通信装置へ前記参加要求を送信することを特徴とする通信装置。
【請求項８】
請求項１に記載の通信装置であって、
前記周回ルート情報格納手段は、
トークンの送信元の他の通信装置であって、トークンの周回ルートにおける自通信装置の上流に割り当てられる上流装置の識別情報をさらに格納し、
前記通信装置は、
前記周回ルート情報格納手段に格納されている上流装置の識別情報および第一の下流装置の識別情報を含む離脱要求を、前記周回ルート情報格納手段に格納されている上流装置および第一の下流装置のそれぞれへ送信する離脱要求送信手段と、
他の通信装置から離脱要求を受信した場合に、当該他の通信装置の識別情報が前記周回ルート情報格納手段内に第一の下流装置の識別情報として格納されているならば、受信した離脱要求に含まれる第一の下流装置の識別情報で、前記周回ルート情報格納手段に格納されている第一の下流装置の識別情報を更新し、当該他の通信装置の識別情報が前記周回ルート情報格納手段内に上流装置の識別情報として格納されているならば、受信した離脱要求に含まれる上流装置の識別情報で、前記周回ルート情報格納手段に格納されている上流装置の識別情報を更新する離脱要求処理手段と
をさらに備えることを特徴とする通信装置。
【請求項９】
トークンを保持する通信装置に対して、当該通信装置が他の通信装置と共有している共有データの変更を許可するコミュニティネットワークであって、
複数の通信装置を備え、
前記複数の通信装置のそれぞれは、
前記コミュニティネットワーク内の全ての通信装置の識別情報を格納する識別情報格納手段と、
前記共有データを格納する共有データ格納手段と、
他の通信装置からトークンを受信した場合に、前記共有データ格納手段に格納されている共有データを変更する必要があるか否かを判定し、当該共有データを変更する必要がある場合には当該共有データを変更すると共に、前記識別情報格納手段を参照して、当該変更分を示す差分データを前記コミュニティネットワーク内の他の全ての通信装置へ送信する共有データ変更手段と、
前記共有データの変更分を示す差分データを他の通信装置から受信した場合に、受信した差分データに基づいて前記共有データ格納手段に格納されている共有データを変更する共有データ更新手段と、
トークンの送信先の他の通信装置であって、トークンの周回ルートにおける自通信装置の下流に割り当てられる第一の下流装置の識別情報を格納する周回ルート情報格納手段と、
前記周回ルート情報格納手段を参照して、前記共有データ変更手段が受信したトークンを前記第一の下流装置へ送信するトークン送信手段と
を有することを特徴とするコミュニティネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トークンを保持する通信装置に対して、当該通信装置が他の通信装置と共有している共有データの変更を許可するコミュニティネットワークおよび当該コミュニティネットワークに用いられる通信装置に関する。
【背景技術】
【０００２】
インターネットの普及や回線速度の高速化に伴い、ネットワークに接続された複数のコンピュータによってコミュニティネットワークが形成され、複数のユーザがこれらのコンピュータを用いて共同で作業を行う機会が増加している。このようなコミュニティネットワーク内の複数のコンピュータが共同作業を行うためには、複数のコンピュータで共有されている共有データに変更を加えることができる権利（作業権）を排他制御する必要がある。
【０００３】
また、作業権の排他制御方法としては、トークンリング方式を用いることができる。この方式は、通信を行うコンピュータを物理的に環状のネットワークに接続し、トークンと呼ばれるデータがそれぞれのコンピュータを周回し、トークンを保持するコンピュータのみが作業権を行使することにより、作業権の排他制御を実現することができる。
【０００４】
また、特許文献１には、作業権であるトークンを必要とするコンピュータが、現在トークンを所有している他のコンピュータに対してトークンを要求し、トークンを保持している他のコンピュータからトークンを取得することにより、作業権を移動させる技術が開示されている。
【０００５】
【特許文献１】特許文献２００５−３１０１５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、インターネット等の物理的に環状ではないネットワークに接続しているコンピュータによりコミュニティネットワークが形成されている場合には、トークンリング方式を用いて作業権の排他制御を実現することはできない。
【０００７】
また、上記特許文献１に開示されている技術では、トークンを必要とするコンピュータが、トークンを保持している他のコンピュータをどのようにして特定するのかについての開示は無い。そのため、トークンを必要とするコンピュータが、例えば、コミュニティネットワークを形成する全てのコンピュータに対して個別にトークンを要求するとすれば、トークンを必要とするコンピュータの処理負荷が高くなる場合がある。
【０００８】
本発明は上記事情を鑑みてなされたものであり、本発明の目的は、コミュニティネットワーク内のそれぞれのコンピュータの処理負荷を低く抑えながら、任意のネットワーク構成において複数のコンピュータの作業権の排他制御を実現することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は複数の通信装置によって形成され、トークンを保持する通信装置が複数の通信装置間で共有されている共有データの更新を許可されるコミュニティネットワークにおいて、それぞれの通信装置はトークンの送信先を記憶し、他の通信装置からトークンを受信した場合、必要に応じて共有データを更新した後に、記憶した送信先へトークンを送信する。
【００１０】
例えば、本発明の第１の態様は、トークンを保持する通信装置に対して、当該通信装置が他の通信装置と共有している共有データの変更を許可するコミュニティネットワークに用いられる通信装置であって、コミュニティネットワーク内の全ての通信装置の識別情報を格納する識別情報格納手段と、共有データを格納する共有データ格納手段と、他の通信装置からトークンを受信した場合に、共有データ格納手段に格納されている共有データを変更する必要があるか否かを判定し、当該共有データを変更する必要がある場合には当該共有データを変更すると共に、識別情報格納手段を参照して、当該変更分を示す差分データをコミュニティネットワーク内の他の全ての通信装置へ送信する共有データ変更手段と、共有データの変更分を示す差分データを他の通信装置から受信した場合に、受信した差分データに基づいて共有データ格納手段に格納されている共有データを変更する共有データ更新手段と、トークンの送信先の他の通信装置であって、トークンの周回ルートにおける自通信装置の下流に割り当てられる第一の下流装置の識別情報を格納する周回ルート情報格納手段と、周回ルート情報格納手段を参照して、共有データ変更手段が受信したトークンを第一の下流装置へ送信するトークン送信手段とを備えることを特徴とする通信装置を提供する。
【００１１】
また、本発明の第２の態様は、トークンを保持する通信装置に対して、当該通信装置が他の通信装置と共有している共有データの変更を許可するコミュニティネットワークであって、複数の通信装置を備え、複数の通信装置のそれぞれは、コミュニティネットワーク内の全ての通信装置の識別情報を格納する識別情報格納手段と、共有データを格納する共有データ格納手段と、他の通信装置からトークンを受信した場合に、共有データ格納手段に格納されている共有データを変更する必要があるか否かを判定し、当該共有データを変更する必要がある場合には当該共有データを変更すると共に、識別情報格納手段を参照して、当該変更分を示す差分データをコミュニティネットワーク内の他の全ての通信装置へ送信する共有データ変更手段と、共有データの変更分を示す差分データを他の通信装置から受信した場合に、受信した差分データに基づいて共有データ格納手段に格納されている共有データを変更する共有データ更新手段と、トークンの送信先の他の通信装置であって、トークンの周回ルートにおける自通信装置の下流に割り当てられる第一の下流装置の識別情報を格納する周回ルート情報格納手段と、周回ルート情報格納手段を参照して、共有データ変更手段が受信したトークンを第一の下流装置へ送信するトークン送信手段とを有することを特徴とするコミュニティネットワークを提供する。
【発明の効果】
【００１２】
本発明の通信装置によれば、コミュニティネットワーク内のそれぞれの通信装置の処理負荷を低く抑えながら、任意のネットワーク構成において複数の通信装置の作業権を排他制御することができる。
【発明を実施するための最良の形態】
【００１３】
ます、本発明の第１の実施形態について説明する。
【００１４】
図１は、本発明の一実施形態に係るコミュニティネットワーク１０の構成を示すシステム構成図である。コミュニティネットワーク１０は、ある目的の作業を共同で行う複数の通信装置２０によって形成される。それぞれの通信装置２０は、インターネット等の通信網１１に接続されている。
【００１５】
それぞれの通信装置２０は、他の通信装置２０との間でデータを共有しており、共有データに変更を加えることにより、複数の通信装置２０は共同作業を実現する。それぞれの通信装置２０は、トークン１２を受信することにより共有データを変更する権利（作業権）を得る。
【００１６】
トークン１２を有する通信装置２０は、自通信装置２０が保持する共有データに変更を加えた場合に、コミュニティネットワーク１０内の他の通信装置２０へ変更内容（差分データ）を送信することにより、コミュニティネットワーク１０内のそれぞれの通信装置２０が保持する共有データの同期をとる。トークン１２を保持する通信装置２０にのみ共有データへの変更を許可することにより、コミュニティネットワーク１０は、複数の通信装置２０が共有しているデータの排他制御を実現する。
【００１７】
それぞれの通信装置２０は、トークン１２の送信先となる他の通信装置２０の識別情報を少なくとも１つ記憶しており、他の通信装置２０からトークンを受信して共有データを変更し、他の通信装置２０へ差分データを送信した後に、受信したトークンを他の通信装置２０へ送信する。これにより、複数の通信装置２０はトークン１２を周回させる。他の通信装置２０からトークンを受信した場合に、共有データを変更しない場合は、通信装置２０は、共有データを変更することなく、受信したトークンを他の通信装置２０へ送信する。
【００１８】
図１に示す例において、通信装置２０−２は、トークン１２の周回ルート１３における通信装置２０−１の下流に割り当てられており、通信装置２０−１が次にトークン１２を渡すべき通信装置２０である。本実施形態において、通信装置２０−２は、通信装置２０−１における第一の下流装置と呼ぶ。また、通信装置２０−２は、周回ルート１３における通信装置２０−ｎの２つ下流に割り当てられている。本実施形態において、通信装置２０−２は、通信装置２０−ｎにおける第二の下流装置と呼ぶ。また、通信装置２０−１は、周回ルート１３における通信装置２０−２の上流に割り当てられており、通信装置２０−２が受け取るトークン１２の送信元の通信装置２０である。本実施形態において、通信装置２０−１は、通信装置２０−２における上流装置と呼ぶ。
【００１９】
図２は、第１の実施形態における通信装置２０の機能構成を例示するブロック図である。通信装置２０は、ネットワークＩ／Ｆ（インターフェイス）２００、共有データ更新部２０１、識別情報更新部２０２、問合せ先要求部２０３、問合せ先応答部２０４、識別情報格納部２０５、参加要求送信部２０６、参加応答送信部２０７、周回ルート情報更新要求部２０８、周回ルート情報更新部２０９、周回ルート情報格納部２１０、離脱要求送信部２１１、離脱要求処理部２１２、トークン生成部２１３、トークン送信部２１４、共有データ変更部２１５、および共有データ格納部２１６を備える。
【００２０】
ネットワークＩ／Ｆ２００は、イーサネット（登録商標）等の規格に基づく通信により、通信網１１を介して他の通信装置２０と通信を行う。共有データ更新部２０１、識別情報更新部２０２、問合せ先要求部２０３、問合せ先応答部２０４、参加要求送信部２０６、参加応答送信部２０７、周回ルート情報更新要求部２０８、周回ルート情報更新部２０９、離脱要求送信部２１１、離脱要求処理部２１２、トークン生成部２１３、トークン送信部２１４、および共有データ変更部２１５は、ネットワークＩ／Ｆ２００を介して他の通信装置２０と通信を行う。
【００２１】
識別情報格納部２０５は、コミュニティネットワーク１０内の全ての通信装置２０の識別情報が記載された識別情報テーブルを格納する。識別情報テーブル２０５０には、例えば図３に示すように、コミュニティネットワーク１０内の通信装置２０の識別情報の一例であるＩＰアドレス２０５１毎に、当該ＩＰアドレス２０５１に対応する通信装置２０が配置されている位置を示す位置情報２０５２、当該ＩＰアドレス２０５１に対応する通信装置２０と通信を行うために必要な情報である通信情報の一例であるポート番号２０５３等が格納される。
【００２２】
ＩＰアドレス２０５１にはグローバルＩＰアドレスが格納される。位置情報２０５２としては、ＩＰアドレス２０５１に対応する通信装置２０が配置されている地点を示す情報が格納されるが、当該通信装置２０が配置されているエリアを特定可能な情報（例えば国名、県名、または市町村名等）が格納されてもよい。通信情報としては、ポート番号２０５３の他に、例えば、暗号通信を行う場合の通信相手の公開鍵、暗号アルゴリズム、および当該暗号アルゴリズムのバージョン等がある。
【００２３】
図２に戻って説明を続ける。問合せ先要求部２０３は、自通信装置２０のＩＰアドレスおよび位置情報を含む問合せ先要求を、ユーザによって指定された通信装置２０へ送信する。問合せ先応答部２０４は、他の通信装置２０から問合せ先要求を受信した場合に、識別情報格納部２０５を参照して、受信した問合せ先要求に含まれる位置情報に近い位置に配置されている通信装置２０のＩＰアドレスおよび通信情報を抽出する。そして、問合せ先応答部２０４は、抽出したＩＰアドレスおよび通信情報を含む問合せ先応答を、問合せ先要求の送信元の通信装置２０へ送信する。
【００２４】
参加要求送信部２０６は、他の通信装置２０から問合せ先応答を受信した場合に、自通信装置２０のＩＰアドレスを含む参加要求を、当該問合せ先応答に含まれる通信情報を用いて、当該問合せ先応答に含まれるＩＰアドレスに対応する通信装置２０へ送信する。
【００２５】
ここで、説明を簡単にするために、図４（ａ）に示すように、新規にコミュニティネットワーク１０に参加する通信装置２０−１１が、コミュニティネットワーク１０に含まれる通信装置２０−５へ参加要求を送信することにより、図４（ｂ）に示すように、通信装置２０−１１がコミュニティネットワーク１０に参加する場合を想定する。
【００２６】
図４に示す例において、通信装置２０−１から通信装置２０−１０は、コミュニティネットワーク１０の一部を形成しており、通信装置２０−１から通信装置２０−１０のＩＰアドレスは、それぞれ「ａ」から「ｊ」である。通信装置２０−１１のＩＰアドレスは「ｘ」である。通信装置２０−１１は、図４（ｂ）に示すように、通信装置２０−５と通信装置２０−６との間に組み込まれる。
【００２７】
図２に戻って説明を続ける。周回ルート情報格納部２１０は、自通信装置２０における周回ルート情報を格納する。周回ルート情報２１００には、例えば図５に示すように、１つ以上の他の通信装置２０のＩＰアドレス２１０２が、トークン１２の周回ルート１３における順番２１０１に対応付けられて格納される。本実施形態において、周回ルート情報２１００には、トークンの周回ルートにおいて、自通信装置２０の上流に割り当てられる３台の通信装置２０のＩＰアドレス、および、自通信装置２０の下流に割り当てられる３台の通信装置２０のＩＰアドレスが格納される。
【００２８】
図５には、図４に示した通信装置２０−５内の周回ルート情報格納部２１０に格納される周回ルート情報２１００が示されている。図５に示す例において、順番２１０１として「３」が対応付けられている、ＩＰアドレス２１０２が「ｄ」の通信装置２０−４は、通信装置２０−５における上流装置である。また、順番２１０１として「４」が対応付けられている、ＩＰアドレス２１０２が「ｆ」の通信装置２０−６は、通信装置２０−５における第一の下流装置である。また、順番２１０１として「５」が対応付けられている、ＩＰアドレス２１０２が「ｇ」の通信装置２０−７は、通信装置２０−５における第二の下流装置である。
【００２９】
図２に戻って説明を続ける。参加応答送信部２０７は、他の通信装置２０から参加要求を受信した場合に、周回ルート情報格納部２１０から周回ルート情報を読み出す。そして、参加応答送信部２０７は、参加要求の送信元の通信装置２０を、自通信装置２０と自通信装置２０における第一の下流装置との間に割り当てた場合に、当該参加要求の送信元の通信装置２０が保持すべき周回ルート情報を生成する。そして、参加応答送信部２０７は、生成した周回ルート情報、および、識別情報格納部２０５から読み出した識別情報テーブを含む参加応答を、参加要求の送信元の通信装置２０へ送信する。
【００３０】
図４に示した例において、図５に示す周回ルート情報を有する通信装置２０−５は、通信装置２０−１１から参加要求を受信した場合に、例えば図６に示す周回ルート情報３０を生成する。図６から明らかなように、通信装置２０−５の上流装置のＩＰアドレスである「ｄ」が２番に対応付けられ、通信装置２０−５のＩＰアドレスである「ｅ」が、参加要求の送信元の通信装置２０−１１の上流装置として３番に対応付けられる。４番から６番までのＩＰアドレスは、通信装置２０−５が格納する周回ルート情報と同一である。
【００３１】
図２に戻って説明を続ける。周回ルート情報更新要求部２０８は、他の通信装置２０から参加応答を受信した場合に、受信した参加応答に含まれる識別情報テーブルおよび周回ルート情報を、識別情報格納部２０５および周回ルート情報格納部２１０にそれぞれ格納する。そして、周回ルート情報更新要求部２０８は、周回ルート情報格納部２１０に格納した周回ルート情報および自通信装置２０のＩＰアドレスを含む周回ルート情報更新要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０へ送信する。
【００３２】
また、周回ルート情報更新要求部２０８は、自通信装置２０のＩＰアドレス、位置情報、および通信情報を含む参加通知を、識別情報格納部２０５を参照して、コミュニティネットワーク１０内の全ての通信装置２０へ送信する。
【００３３】
図４に示した例では、通信装置２０−１１内の周回ルート情報更新要求部２０８は、図６に示した周回ルート情報を含む周回ルート情報更新要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０（すなわち、通信装置２０−３から通信装置２０−８）へ送信する。
【００３４】
周回ルート情報更新部２０９は、他の通信装置２０から周回ルート情報更新要求を受信した場合に、受信した周回ルート情報更新要求に含まれる周回ルート情報およびＩＰアドレスに基づいて、周回ルート情報格納部２１０内の周回ルート情報を更新する。
【００３５】
図４に示した例において、図６に示す周回ルート情報および通信装置２０−１１のＩＰアドレス「ｘ」を含む周回ルート情報更新要求を受信した場合、通信装置２０−５の周回ルート情報更新部２０９は、これらの情報から、ＩＰアドレスが「ｘ」の通信装置２０が、ＩＰアドレスが「ｅ」の通信装置２０とＩＰアドレスが「ｆ」の通信装置２０との間に割り当てられていることを認識する。
【００３６】
図４に示した例において、周回ルート情報更新要求を受信する前は、通信装置２０−５の周回ルート情報格納部２１０には図７（ａ）に示す周回ルート情報が格納されており、通信装置２０−５の周回ルート情報更新部２０９は、ＩＰアドレスが「ｘ」の通信装置２０を、ＩＰアドレスが「ｅ」の通信装置２０（自通信装置２０）と、ＩＰアドレスが「ｆ」の通信装置２０との間に割り当てることにより、通信装置２０−５の周回ルート情報格納部２１０内の周回ルート情報を例えば図７（ｂ）に示すように修正する。
【００３７】
同様に、図４に示した例において、周回ルート情報更新要求を受信する前は、通信装置２０−６の周回ルート情報格納部２１０には例えば図８（ａ）に示す周回ルート情報が格納されており、通信装置２０−６の周回ルート情報更新部２０９が、通信装置２０−１１から周回ルート情報更新要求を受信した場合、ＩＰアドレスが「ｘ」の通信装置２０を、ＩＰアドレスが「ｅ」の通信装置２０と、ＩＰアドレスが「ｆ」の通信装置２０（自通信装置２０）との間に割り当てることにより、通信装置２０−６の周回ルート情報格納部２１０内の周回ルート情報を例えば図８（ｂ）に示すように修正する。
【００３８】
図２に戻って説明を続ける。識別情報更新部２０２は、他の通信装置２０から参加通知を受信した場合に、受信した参加通知に含まれるＩＰアドレス、位置情報、および通信情報を識別情報格納部２０５に格納する。また、識別情報更新部２０２は、他の通信装置２０から離脱通知を受信した場合に、受信した離脱通知に含まれるＩＰアドレス、ならびに、当該ＩＰアドレスに対応付けられている位置情報および通信情報を、識別情報格納部２０５から削除する。
【００３９】
離脱要求送信部２１１は、ユーザよりコミュニティネットワーク１０からの離脱を指示された場合に、周回ルート情報格納部２１０内の周回ルート情報および自通信装置２０のＩＰアドレスを含む離脱要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０へ送信する。また、離脱要求送信部２１１は、自通信装置２０のＩＰアドレスを含む離脱通知を、識別情報格納部２０５を参照して、コミュニティネットワーク１０内の全ての通信装置２０へ送信する。
【００４０】
ここで、説明を簡単にするために、図９（ａ）に示すように、通信装置２０−５がコミュニティネットワーク１０から離脱し、他の通信装置２０が図９（ｂ）に示すようにコミュニティネットワーク１０を再形成する場合を想定する。
【００４１】
図９（ａ）に示す例において、コミュニティネットワーク１０から離脱する前は、通信装置２０−５の周回ルート情報格納部２１０には、図５に示すような周回ルート情報が格納されており、通信装置２０−５の離脱要求送信部２１１は、当該周回ルート情報およびＩＰアドレス「ｅ」を含む離脱要求を、通信装置２０−２から通信装置２０−４および通信装置２０−６から通信装置２０−８へ送信する。
【００４２】
図２に戻って説明を続ける。離脱要求処理部２１２は、他の通信装置２０から離脱要求を受信した場合に、受信した離脱要求に含まれる周回ルート情報およびＩＰアドレスに基づいて、周回ルート情報格納部２１０内の周回ルート情報を更新する。
【００４３】
図９に示した例において、図５に示す周回ルート情報および通信装置２０−５のＩＰアドレス「ｅ」を含む離脱要求を受信した場合、通信装置２０−４の離脱要求処理部２１２は、ＩＰアドレスが「ｅ」の通信装置２０がコミュニティネットワーク１０から離脱することにより、ＩＰアドレスが「ｄ」の通信装置２０（自通信装置２０）が、ＩＰアドレスが「ｆ」の通信装置２０の上流装置に割り当てられることを認識する。
【００４４】
図９に示した例において、通信装置２０−５がコミュニティネットワーク１０から離脱する前は、通信装置２０−４の周回ルート情報格納部２１０には図１０（ａ）に示す周回ルート情報が格納されており、通信装置２０−４の離脱要求処理部２１２は、ＩＰアドレスが「ｅ」の通信装置２０を削除して、下流の通信装置２０のＩＰアドレスを１つずつ上流へ移動させることにより、通信装置２０−４の周回ルート情報格納部２１０内の周回ルート情報を例えば図１０（ｂ）に示すように修正する。
【００４５】
同様に、図９に示した例において、通信装置２０−５がコミュニティネットワーク１０から離脱する前は、通信装置２０−７の周回ルート情報格納部２１０には例えば図１１（ａ）に示す周回ルート情報が格納されており、通信装置２０−７の離脱要求処理部２１２が、通信装置２０−５から離脱要求を受信した場合、ＩＰアドレスが「ｅ」の通信装置２０を削除して、上流の通信装置２０のＩＰアドレスを１つずつ下流へ移動させることにより、通信装置２０−７の周回ルート情報格納部２１０内の周回ルート情報を例えば図１１（ｂ）に示すように修正する。
【００４６】
図２に戻って説明を続ける。共有データ格納部２１６は、コミュニティネットワーク１０内の共有データを格納する。共有データ変更部２１５は、他の通信装置２０からトークン１２を受信した場合に、トークンを受信したことを示すＡＣＫ（ACKnowledgement）をトークンの送信元の通信装置２０へ送信する。そして、共有データ変更部２１５は、共有データ格納部２１６に格納されている共有データを変更する必要があるか否かをユーザからの指示に基づいて判定し、当該共有データを変更する必要がある場合には、当該共有データを変更する。
【００４７】
共有データ格納部２１６内の共有データを変更した場合、共有データ変更部２１５は、識別情報格納部２０５を参照して、当該変更分を示す差分データを、コミュニティネットワーク１０内の他の全ての通信装置２０へ送信する。そして、全ての通信装置２０から正常受信を示すＡＣＫを受信した場合に、トークンの送信をトークン送信部２１４に指示する。
【００４８】
また、共有データ変更部２１５は、他の通信装置２０からトークン１２を受信した場合に、ユーザからの指示に基づいて、共有データ格納部２１６に格納されている共有データを変更する必要がないと判定した場合には、共有データ格納部２１６内の共有データを変更することなく、トークンの送信をトークン送信部２１４に指示する。
【００４９】
トークン送信部２１４は、共有データ変更部２１５からトークンの送信を指示された場合に、周回ルート情報格納部２１０を参照して、トークンを、自通信装置２０の第一の下流装置へ送信すると共に、トークンを送信した旨をトークン生成部２１３に通知する。そして、トークンの送信先からトークンを受信したことを示すＡＣＫを受信した場合、トークン送信部２１４は、トークンの送信が完了した旨を示す送信報告を、周回ルート情報格納部２１０を参照して、自通信装置２０の上流装置へ送信する。なお、トークン送信部２１４は、送信報告を、自通信装置２０の上流の通信装置２０であって、周回ルート情報格納部２１０内の周回ルート情報に格納されているＩＰアドレスに対応する全ての通信装置２０へ送信するようにしてもよい。
【００５０】
また、トークン送信部２１４は、トークン生成部２１３からトークンを受信した場合に、受信したトークンを、周回ルート情報格納部２１０を参照して、自通信装置２０の第二の下流装置へ送信する。また、トークン送信部２１４は、前回トークンを送信してから、所定時間以内（例えば１０分以内）に共有データ変更部２１５より再びトークンの送信を指示され、かつ、前回トークンを送信してから、共有データ変更部２１５より再びトークンの送信を指示されるまでの間に共有データ格納部２１６内の共有データが変更されなかった場合に、今回のトークンの送信を所定時間（例えば１時間）待つ。
【００５１】
トークン生成部２１３は、トークンを送信した旨をトークン送信部２１４から通知された場合に、トークンを送信してから所定時間以内（例えば３０分以内）に、トークンの送信先の通信装置２０から送信報告を受信したか否かを判定する。トークンを送信してから所定時間以内に、トークンの送信先の通信装置２０から送信報告を受信しなかった場合、トークン生成部２１３は、トークンの送信先の通信装置２０の起動状況を問い合わせるメッセージを送信することにより、当該通信装置２０の起動確認を行う。
【００５２】
トークンの送信先の通信装置２０の起動状況が確認できない場合、トークン生成部２１３は、トークンを新たに生成し、生成したトークンをトークン送信部２１４へ送ると共に、起動確認ができなかった通信装置２０の情報（ＩＰアドレス等）を、エラー情報として自通信装置２０の出力装置を介して出力する。
【００５３】
共有データ更新部２０１は、他の通信装置２０から差分データを受信した場合に、受信した差分データに基づいて共有データ格納部２１６内の共有データを変更すると共に、差分データの正常受信を示すＡＣＫを、当該差分データの送信元の通信装置２０へ送信する。
【００５４】
また、共有データ更新部２０１は、共有データ変更部２１５がトークンを受信してからトークン送信部２１４にトークンの送信を指示するまでの間に他の通信装置２０から差分データを受信した場合に、トークンを持たない通信装置２０が共有データを変更した旨を示すエラー情報を、自通信装置２０の出力装置を介して出力すると共に、当該エラー情報をコミュニティネットワーク１０内の他の全ての通信装置２０へ送信する。
【００５５】
また、共有データ更新部２０１は、トークン送信部２１４がトークンを他の通信装置２０へ送信してから、当該他の通信装置２０から送信報告を受信するまでの間に、当該他の通信装置２０以外の通信装置２０から差分データを受信した場合に、トークンを持たない通信装置２０が共有データを変更した旨を示すエラー情報を、自通信装置２０の出力装置を介して出力すると共に、当該エラー情報をコミュニティネットワーク１０内の他の全ての通信装置２０へ送信する。
【００５６】
図１２は、通信装置２０の処理を例示するフローチャートである。ユーザからコミュニティネットワーク１０内の通信装置２０のＩＰアドレスを指示されることにより、通信装置２０は、本フローチャートに示す処理を開始する。
【００５７】
まず、問合せ先要求部２０３は、自通信装置２０のＩＰアドレスおよび位置情報を含む問合せ先要求を、ユーザによって指定された通信装置２０へ送信する（Ｓ１００）。次に、参加要求送信部２０６は、他の通信装置２０から問合せ先応答を受信する。そして、参加要求送信部２０６は、自通信装置２０のＩＰアドレスを含む参加要求を、受信した問合せ先応答に含まれる通信情報を用いて、当該問合せ先応答に含まれるＩＰアドレスに対応する通信装置２０へ送信する（Ｓ１０１）。
【００５８】
次に、周回ルート情報更新要求部２０８は、他の通信装置２０から参加応答を受信し、受信した参加応答に含まれる識別情報テーブルおよび周回ルート情報を、識別情報格納部２０５および周回ルート情報格納部２１０にそれぞれ格納する（Ｓ１０２）。そして、周回ルート情報更新要求部２０８は、周回ルート情報格納部２１０に格納した周回ルート情報および自通信装置２０のＩＰアドレスを含む周回ルート情報更新要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０へ送信する（Ｓ１０３）。
【００５９】
次に、周回ルート情報更新要求部２０８は、自通信装置２０のＩＰアドレス、位置情報、および通信情報を含む参加通知を、識別情報格納部２０５を参照して、コミュニティネットワーク１０内の全ての通信装置２０へ送信し（Ｓ１０４）、通信装置２０は、コミュニティネットワーク１０に参加する。そして、通信装置２０は、コミュニティネットワーク１０参加中の処理を実行する（Ｓ２００）。
【００６０】
次に、コミュニティネットワーク１０からの離脱をユーザから指示された場合、離脱要求送信部２１１は、周回ルート情報格納部２１０内の周回ルート情報および自通信装置２０のＩＰアドレスを含む離脱要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０へ送信する（Ｓ１０５）。そして、離脱要求送信部２１１は、自通信装置２０のＩＰアドレスを含む離脱通知を、識別情報格納部２０５を参照して、コミュニティネットワーク１０内の全ての通信装置２０へ送信し（Ｓ１０６）、通信装置２０は、本フローチャートに示す処理を終了する。
【００６１】
図１３は、コミュニティネットワーク１０に参加中の通信装置２０の処理（Ｓ２００）を例示するフローチャートである。
【００６２】
まず、共有データ変更部２１５は、他の通信装置２０からトークンを受信したか否かを判定する（Ｓ２０１）。トークンを受信した場合（Ｓ２０１：Ｙｅｓ）、通信装置２０は後述するトークン保持中の処理を実行し（Ｓ３００）、共有データ変更部２１５は、再びステップＳ２０１に示す処理を実行する。一方、トークンを受信していない場合（Ｓ２０１：Ｎｏ）、問合せ先応答部２０４は、他の通信装置２０から問合せ先要求を受信したか否かを判定する（Ｓ２０２）。
【００６３】
問合せ先要求を受信した場合（Ｓ２０２：Ｙｅｓ）、問合せ先応答部２０４は、識別情報格納部２０５を参照して、受信した問合せ先要求に含まれる位置情報に近い位置に配置されている通信装置２０のＩＰアドレスおよび通信情報を抽出する。そして、問合せ先応答部２０４は、抽出したＩＰアドレスおよび通信情報を含む問合せ先応答を、問合せ先要求の送信元の通信装置２０へ送信し（Ｓ２０３）、共有データ変更部２１５は、再びステップＳ２０１に示す処理を実行する。
【００６４】
問合せ先要求を受信していない場合（Ｓ２０２：Ｎｏ）、参加応答送信部２０７は、他の通信装置２０から参加要求を受信したか否かを判定する（Ｓ２０４）。参加要求を受信した場合（Ｓ２０４：Ｙｅｓ）、参加応答送信部２０７は、周回ルート情報格納部２１０から周回ルート情報を読み出す。
【００６５】
そして、参加応答送信部２０７は、参加要求の送信元の通信装置２０を、自通信装置２０と自通信装置２０における第一の下流装置との間に割り当てた場合に、当該参加要求の送信元の通信装置２０が保持すべき周回ルート情報を生成する。そして、参加応答送信部２０７は、生成した周回ルート情報、および、識別情報格納部２０５から読み出した識別情報テーブを含む参加応答を、参加要求の送信元の通信装置２０へ送信し（Ｓ２０５）、共有データ変更部２１５は、再びステップＳ２０１に示す処理を実行する。
【００６６】
参加要求を受信していない場合（Ｓ２０４：Ｎｏ）、周回ルート情報更新部２０９は、他の通信装置２０から周回ルート情報更新要求を受信したか否かを判定する（Ｓ２０６）。周回ルート情報更新要求を受信した場合（Ｓ２０６：Ｙｅｓ）、周回ルート情報更新部２０９は、受信した周回ルート情報更新要求に含まれる周回ルート情報およびＩＰアドレスに基づいて、周回ルート情報格納部２１０内の周回ルート情報を更新し（Ｓ２０７）、共有データ変更部２１５は、再びステップＳ２０１に示す処理を実行する。
【００６７】
周回ルート情報更新要求を受信していない場合（Ｓ２０６：Ｎｏ）、識別情報更新部２０２は、他の通信装置２０から参加通知を受信したか否かを判定する（Ｓ２０８）。参加通知を受信した場合（Ｓ２０８：Ｙｅｓ）、識別情報更新部２０２は、受信した参加通知に含まれるＩＰアドレス、位置情報、および通信情報を識別情報格納部２０５に格納し（Ｓ２０９）、共有データ変更部２１５は、再びステップＳ２０１に示す処理を実行する。
【００６８】
参加通知を受信していない場合（Ｓ２０８：Ｎｏ）、離脱要求処理部２１２は、他の通信装置２０から離脱要求を受信したか否かを判定する（Ｓ２１０）。離脱要求を受信した場合（Ｓ２１０：Ｙｅｓ）、離脱要求処理部２１２は、受信した離脱要求に含まれる周回ルート情報およびＩＰアドレスに基づいて、周回ルート情報格納部２１０内の周回ルート情報を更新し（Ｓ２１１）、共有データ変更部２１５は、再びステップＳ２０１に示す処理を実行する。
【００６９】
離脱要求を受信していない場合（Ｓ２１０：Ｎｏ）、識別情報更新部２０２は、他の通信装置２０から離脱通知を受信したか否かを判定する（Ｓ２１２）。離脱通知を受信した場合（Ｓ２１２：Ｙｅｓ）、識別情報更新部２０２は、受信した離脱通知に含まれるＩＰアドレス、ならびに、当該ＩＰアドレスに対応付けられている位置情報および通信情報を、識別情報格納部２０５から削除し（Ｓ２１３）、共有データ変更部２１５は、再びステップＳ２０１に示す処理を実行する。
【００７０】
離脱通知を受信していない場合（Ｓ２１２：Ｎｏ）、離脱要求送信部２１１は、ユーザから離脱指示を受け付けたか否かを判定することにより、自通信装置２０がコミュニティネットワーク１０から離脱するか否かを判定する（Ｓ２１４）。自通信装置２０がコミュニティネットワーク１０から離脱しない場合（Ｓ２１４：Ｎｏ）、共有データ変更部２１５は、再びステップＳ２０１に示す処理を実行する。一方、自通信装置２０がコミュニティネットワーク１０から離脱する場合（Ｓ２１４：Ｙｅｓ）、通信装置２０は、本フローチャートに示した処理を終了する。
【００７１】
図１４は、トークンを保持している場合の通信装置２０の処理（Ｓ３００）を例示するフローチャートである。
【００７２】
まず、共有データ変更部２１５は、トークンを受信したことを示すＡＣＫを、当該トークンの送信元へ送信し、共有データ格納部２１６に格納されている共有データを変更する必要があるか否かをユーザからの指示に基づいて判定する（Ｓ３０１）。
【００７３】
共有データ格納部２１６内の共有データを変更する必要がない場合（Ｓ３０１：Ｎｏ）、共有データ変更部２１５は、トークン送信部２１４にトークンの送信を指示する。そして、トークン送信部２１４は、前回トークンを送信してから所定時間以内に共有データ変更部２１５より再びトークンの送信を指示され、かつ、前回トークンを送信してから、共有データ変更部２１５より再びトークンの送信を指示されるまでの間に共有データ格納部２１６内の共有データが変更されなかったか否かを判定する（Ｓ３０６）。
【００７４】
共有データ変更部２１５より再びトークンの送信を指示された時刻が、前回トークンを送信してから所定時間以上経過した後である場合、または、前回トークンを送信してから、共有データ変更部２１５より再びトークンの送信を指示されるまでの間に共有データ格納部２１６内の共有データが変更された場合（Ｓ３０６：Ｎｏ）、共有データ更新部２０１は、ステップＳ３０８に示す処理を実行する。
【００７５】
前回トークンを送信してから所定時間以内に共有データ変更部２１５より再びトークンの送信を指示され、かつ、前回トークンを送信してから、共有データ変更部２１５より再びトークンの送信を指示されるまでの間に共有データ格納部２１６内の共有データが変更されなかった場合（Ｓ３０６：Ｙｅｓ）、トークン送信部２１４は、所定時間待ち（Ｓ３０７）、その後、共有データ更新部２０１は、ステップＳ３０８に示す処理を実行する。
【００７６】
ステップＳ３０１において、共有データ格納部２１６内の共有データを変更する必要がある場合（Ｓ３０１：Ｙｅｓ）、共有データ変更部２１５は、共有データ格納部２１６内の共有データを変更し（Ｓ３０２）、識別情報格納部２０５を参照して、当該変更分を示す差分データを、コミュニティネットワーク１０内の他の全ての通信装置２０へ送信する（Ｓ３０３）。
【００７７】
そして、共有データ変更部２１５は、コミュニティネットワーク１０内の全ての通信装置２０から正常受信を示すＡＣＫを受信したか否かを判定する（Ｓ３０４）。ＡＣＫを返さない通信装置２０が存在する場合（Ｓ３０４：Ｎｏ）、共有データ変更部２１５は、差分データを再送し（Ｓ３０５）、再びステップＳ３０４に示した処理を実行する。
【００７８】
なお、差分データを複数回再送してもＡＣＫを返さない通信装置２０については、共有データ変更部２１５は、自通信装置２０が有する出力装置を介して、ＡＣＫを返さない通信装置２０の情報（ＩＰアドレス等）をエラー情報として出力し、当該通信装置２０からはＡＣＫが返ってきたものとして以降の処理を進める。
【００７９】
コミュニティネットワーク１０内の全ての通信装置２０から正常受信を示すＡＣＫを受信した場合（Ｓ３０４：Ｙｅｓ）、共有データ変更部２１５は、トークンの送信をトークン送信部２１４に指示する。次に、共有データ更新部２０１は、共有データ変更部２１５がトークンを受信してからトークン送信部２１４にトークンの送信を指示するまでの間に他の通信装置２０から差分データを受信したか否かを判定する（Ｓ３０８）。
【００８０】
共有データ変更部２１５がトークンを受信してからトークン送信部２１４にトークンの送信を指示するまでの間に他の通信装置２０から差分データを受信していない場合（Ｓ３０８：Ｎｏ）、トークン送信部２１４は、ステップＳ３１０に示す処理を実行する。
【００８１】
共有データ変更部２１５がトークンを受信してからトークン送信部２１４にトークンの送信を指示するまでの間に他の通信装置２０から差分データを受信した場合（Ｓ３０８：Ｙｅｓ）、共有データ更新部２０１は、トークンを持たない通信装置２０が共有データを変更した旨を示すエラー情報を、自通信装置２０の出力装置を介して出力すると共に、当該エラー情報をコミュニティネットワーク１０内の他の全ての通信装置２０へ送信する（Ｓ３０９）。
【００８２】
次に、トークン送信部２１４は、周回ルート情報格納部２１０を参照して、自通信装置２０の第一の下流装置へトークンを送信し（Ｓ３１０）、トークンを送信した旨をトークン生成部２１３に通知する。トークン生成部２１３は、タイマをスタートさせる。そして、トークン送信部２１４は、トークンを受信した旨を示すＡＣＫを受信したか否かを判定する（Ｓ３１１）。ＡＣＫ受信していない場合（Ｓ３１１：Ｎｏ）、トークン送信部２１４は、トークンを再送し（Ｓ３１２）、再びステップＳ３１１に示した処理を実行する。
【００８３】
なお、トークンを複数回再送してもＡＣＫを受信しなかった場合、トークン送信部２１４は、ＡＣＫを返さない通信装置２０の情報（ＩＰアドレス等）を、エラー情報として、自通信装置２０の出力装置を介して出力し、周回ルート情報格納部２１０を参照して、自通信装置２０の第二の下流装置へトークンを送信する。
【００８４】
トークンの送信先の通信装置２０からＡＣＫ受信した場合（Ｓ３１１：Ｙｅｓ）、トークン生成部２１３は、トークンの送信先の通信装置２０から送信報告を受信したか否かを判定する（Ｓ３１３）。トークンの送信先の通信装置２０から送信報告を受信した場合（Ｓ３１３：Ｙｅｓ）、トークン生成部２１３は、タイマを停止させ、通信装置２０は、本フローチャートに示す処理を終了する。
【００８５】
トークンの送信先の通信装置２０から送信報告を受信していない場合（Ｓ３１３：Ｎｏ）、トークン生成部２１３は、タイマの値を参照して、トークン送信部２１４によってトークンが送信されてから所定時間が経過したか否かを判定する（Ｓ３１４）。トークン送信部２１４によってトークンが送信されてから所定時間が経過した場合（Ｓ３１４：Ｙｅｓ）、トークン生成部２１３は、トークンの送信先の通信装置２０の起動状況を問い合わせる起動確認メッセージを送信し（Ｓ３１５）、当該通信装置２０から起動中であることを示す正常応答を受信したか否かを判定する（Ｓ３１６）。
【００８６】
トークンの送信先の通信装置２０から正常応答を受信した場合（Ｓ３１６：Ｙｅｓ）、トークン生成部２１３は、タイマをリセットスタートさせ、再びステップＳ３１３に示した処理を実行する。一方、トークンの送信先の通信装置２０から正常応答を受信しなかった場合（Ｓ３１６：Ｎｏ）、トークン生成部２１３は、起動確認ができなかった通信装置２０の情報（ＩＰアドレス等）を、エラー情報として自通信装置２０の出力装置を介して出力する（Ｓ３１７）。
【００８７】
そして、トークン生成部２１３は、トークンを新たに生成し、生成したトークンをトークン送信部２１４へ送ると共に、タイマをリセットスタートさせる。トークン送信部２１４は、周回ルート情報格納部２１０を参照して、トークン生成部２１３から受け取ったトークンを、自通信装置２０にとっての第二の下流装置へ送信し（Ｓ３１８）、トークン生成部２１３は、再びステップＳ３１３に示した処理を実行する。
【００８８】
ステップＳ３１４において、トークン送信部２１４によってトークンが送信されてから所定時間が経過していない場合（Ｓ３１４：Ｎｏ）、共有データ更新部２０１は、トークン送信部２１４がトークンを他の通信装置２０へ送信してから、当該他の通信装置２０から送信報告を受信するまでの間に、当該他の通信装置２０以外の通信装置２０から差分データを受信したか否かを判定する（Ｓ３１９）。トークン送信部２１４がトークンを他の通信装置２０へ送信してから、当該他の通信装置２０から送信報告を受信するまでの間に、当該他の通信装置２０以外の通信装置２０から差分データを受信しなかった場合（Ｓ３１９：Ｎｏ）、トークン生成部２１３は、再びステップＳ３１３に示した処理を実行する。
【００８９】
トークン送信部２１４がトークンを他の通信装置２０へ送信してから、当該他の通信装置２０から送信報告を受信するまでの間に、当該他の通信装置２０以外の通信装置２０から差分データを受信した場合（Ｓ３１９：Ｙｅｓ）、共有データ更新部２０１は、トークンを持たない通信装置２０が共有データを変更した旨を示すエラー情報を、自通信装置２０の出力装置を介して出力すると共に、当該エラー情報をコミュニティネットワーク１０内の他の全ての通信装置２０へ送信し（Ｓ３２０）、トークン生成部２１３は、再びステップＳ３１３に示した処理を実行する。
【００９０】
次に、ある通信装置２０がコミュニティネットワーク１０に参加する場合の各通信装置２０の動作について説明する。図１５は、通信装置２０−１１がコミュニティネットワーク１０に参加する場合の各通信装置２０の処理を例示するシーケンス図である。なお、図１５は、図４に示した複数の通信装置２０の中の一部の通信装置２０の動作について示している。また、通信装置２０−１１が配置される位置は、通信装置２０−５が配置される位置に近いものとする。
【００９１】
まず、コミュニティネットワーク１０に新規に参加する通信装置２０−１１は、ユーザからの指示により通信装置２０−２へ問合せ先要求を送信する（Ｓ４００）。通信装置２０−２は、通信装置２０−１１から受信した問合せ先要求に含まれる位置情報に基づいて自通信装置２０内の識別情報格納部２０５を参照し、通信装置２０−５が通信装置２０−１１に近いことを検出する。そして、通信装置２０−２は、通信装置２０−５のＩＰアドレスおよび通信情報を含む問合せ先応答を通信装置２０−１１へ送信する（Ｓ４０１）。
【００９２】
次に、通信装置２０−１１は、自通信装置２０のＩＰアドレスを含む参加要求を通信装置２０−５へ送信する（Ｓ４０２）。通信装置２０−５は、保持している周回ルート情報を参照して、通信装置２０−１１を、自通信装置２０と自通信装置２０の第一の下流装置との間に割り当てた場合に、通信装置２０−１１が保持すべき周回ルート情報を生成する。そして、通信装置２０−５は、生成した周回ルート情報、および、保持している識別情報テーブルを含む参加応答を、通信装置２０−１１へ送信する（Ｓ４０３）。
【００９３】
通信装置２０−１１は、受信した参加応答に含まれる周回ルート情報および識別情報テーブルを自通信装置２０内の識別情報格納部２０５および周回ルート情報格納部２１０にそれぞれ格納する（Ｓ４０４）。そして、通信装置２０−１１は、自通信装置２０のＩＰアドレスおよび周回ルート情報を含む周回ルート情報更新要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０へ送信する（Ｓ４０５からＳ４０７）。
【００９４】
周回ルート情報更新要求を受信した通信装置２０は、受信した周回ルート情報更新要求に含まれる周回ルート情報およびＩＰアドレスに基づいて、自通信装置２０内の周回ルート情報格納部２１０に格納されている周回ルート情報を更新し（Ｓ４０８）、周回ルート情報の更新完了を示すＡＣＫを通信装置２０−１１へ送信する（Ｓ４０９からＳ４１１）。
【００９５】
次に、通信装置２０−１１は、自通信装置２０のＩＰアドレス、位置情報、および通信情報を含む参加通知を、コミュニティネットワーク１０内の全ての通信装置２０へ送信する（Ｓ４１２からＳ４１５）。そして、参加通知を受信した通信装置２０は、受信した参加通知に含まれるＩＰアドレス、位置情報、および通信情報を自通信装置２０内の識別情報格納部２０５に格納する（Ｓ４１６）。
【００９６】
次に、ある通信装置２０がコミュニティネットワーク１０から離脱する場合の各通信装置２０の動作について説明する。図１６は、通信装置２０−５がコミュニティネットワーク１０から離脱する場合の各通信装置２０の処理を例示するシーケンス図である。なお、図１６は、図９に示した複数の通信装置２０の中の一部の通信装置２０の動作について示している。
【００９７】
まず、通信装置２０−５は、自通信装置２０が有する周回ルート情報および自通信装置２０のＩＰアドレスを含む離脱要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０へ送信する（Ｓ５００からＳ５０２）。そして、離脱要求を受信した通信装置２０は、受信した離脱要求に含まれる周回ルート情報およびＩＰアドレスに基づいて、自通信装置２０内の周回ルート情報格納部２１０に格納されている周回ルート情報を更新し（Ｓ５０３）、周回ルート情報の更新完了を示すＡＣＫを通信装置２０−５へ送信する（Ｓ５０４からＳ５０６）。
【００９８】
次に、通信装置２０−５は、自通信装置２０のＩＰアドレスを含む離脱通知を、コミュニティネットワーク１０内の全ての通信装置２０へ送信する（Ｓ５０７からＳ５１０）。そして、離脱通知を受信した通信装置２０は、受信した離脱通知に含まれるＩＰアドレス、ならびに、当該ＩＰアドレスに対応付けられている位置情報および通信情報を、自通信装置２０内の識別情報格納部２０５から削除する（Ｓ５１１）。
【００９９】
次に、ある通信装置２０がトークンを受信した場合の各通信装置２０の動作について説明する。図１７は、通信装置２０−５がトークンを受信した場合の各通信装置２０の処理を例示するシーケンス図である。なお、図１７は、図９（ａ）に示した複数の通信装置２０の中の一部の通信装置２０の動作について示している。
【０１００】
まず、通信装置２０−４は、通信装置２０−４の下流装置である通信装置２０−５へトークンを送信し（Ｓ６００）、通信装置２０−５は、トークンを受信したことを示すＡＣＫを通信装置２０−４へ送信する（Ｓ６０１）。通信装置２０−４は、通信装置２０−４の上流装置である通信装置２０−３へ送信報告を送信する（Ｓ６０２）。
【０１０１】
次に、通信装置２０−５は、自通信装置２０が保持している共有データを必要に応じて変更し（Ｓ６０３）、当該変更分を示す差分データを、コミュニティネットワーク１０内の全ての通信装置２０へ送信する（Ｓ６０４からＳ６０８）。そして、差分データを受信した通信装置２０は、受信した差分データに基づいて共有データ格納部２１６内の共有データを変更し（Ｓ６０９、Ｓ６１０）、差分データの正常受信を示すＡＣＫを、通信装置２０−５へ送信する（Ｓ６１１からＳ６１５）。そして、通信装置２０−５は、通信装置２０−５の下流装置である通信装置２０−６へトークンを送信する（Ｓ６１６）。
【０１０２】
図１８は、通信装置２０の機能を実現するコンピュータ５０のハードウェア構成を例示する。コンピュータ５０は、ＣＰＵ（Central Processing Unit）５１、ＲＡＭ（Random Access Memory）５２、ＲＯＭ（Read Only Memory）５３、ＨＤＤ（Hard Disk Drive）５４、通信インターフェイス（Ｉ／Ｆ）５５、入出力インターフェイス（Ｉ／Ｆ）５６、およびメディアインターフェイス（Ｉ／Ｆ）５７を備える。
【０１０３】
ＣＰＵ５１は、ＲＯＭ５３またはＨＤＤ５４に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ５３は、コンピュータ５０の起動時にＣＰＵ５１が実行するブートプログラムや、コンピュータ５０のハードウェアに依存するプログラム等を格納する。
【０１０４】
ＨＤＤ５４は、ＣＰＵ５１によって実行されるプログラム、ならびに、識別情報格納部２０５、周回ルート情報格納部２１０、および共有データ格納部２１６内の各データを格納する。通信Ｉ／Ｆ５５は、通信網１１を介して他の機器からデータを受信してＣＰＵ５１へ送ると共に、ＣＰＵ５１が生成したデータを、通信網１１を介して他の機器へ送信する。
【０１０５】
ＣＰＵ５１は、入出力Ｉ／Ｆ５６を介して、キーボードまたはマウス等の入力装置、および、ディスプレイ等の出力装置を制御する。ＣＰＵ５１は、入出力Ｉ／Ｆ５６を介して、入力装置からデータを取得する。また、ＣＰＵ５１は、生成したデータを、入出力Ｉ／Ｆ５６を介して出力装置へ出力する。
【０１０６】
メディアＩ／Ｆ５７は、記録媒体５８に格納されたプログラムまたはデータを読み取り、ＲＡＭ５２に提供する。ＲＡＭ５２を介してＣＰＵ５１に提供されるプログラムは、記録媒体５８に格納されている。当該プログラムは、記録媒体５８から読み出されて、ＲＡＭ５２を介してコンピュータ５０にインストールされ、ＣＰＵ５１によって実行される。記録媒体５８は、例えばＤＶＤ（Digital Versatile Disk）、ＰＤ（Phase change rewritable Disk）等の光学記録媒体、ＭＯ（Magneto-Optical disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１０７】
コンピュータ５０にインストールされて実行されるプログラムは、コンピュータ５０を、ネットワークＩ／Ｆ２００、共有データ更新部２０１、識別情報更新部２０２、問合せ先要求部２０３、問合せ先応答部２０４、識別情報格納部２０５、参加要求送信部２０６、参加応答送信部２０７、周回ルート情報更新要求部２０８、周回ルート情報更新部２０９、周回ルート情報格納部２１０、離脱要求送信部２１１、離脱要求処理部２１２、トークン生成部２１３、トークン送信部２１４、共有データ変更部２１５、および共有データ格納部２１６として機能させる。
【０１０８】
コンピュータ５０は、これらのプログラムを、記録媒体７８から読み取って実行するが、他の例として、他の装置から、通信媒体を介してこれらのプログラムを取得してもよい。通信媒体とは、通信網１１、または、当該通信網１１を伝搬するディジタル信号もしくは搬送波を指す。
【０１０９】
以上、本発明の実施の形態について説明した。
【０１１０】
上記説明から明らかなように、本実施形態の通信装置２０によれば、コミュニティネットワーク１０内のそれぞれの通信装置２０の処理負荷を低く抑えながら、任意のネットワーク構成においてコミュニティネットワーク１０内の複数の通信装置２０の作業権を排他制御することができる。
【０１１１】
また、本実施形態の通信装置２０によれば、トークンを保持していない通信装置２０による共有データの更新をエラーとして検出することができる。また、本実施形態の通信装置２０によれば、トークンを送信した後に、トークンの送信先からの送信報告を監視することにより、トークンを受信したものの、その後、トークンを他の通信装置２０へ送信しないまま故障した通信装置２０があっても、トークンの周回を継続させることができる。
【０１１２】
また、本実施形態の通信装置２０によれば、前回トークンを送信してから、所定時間以内に再びトークンを受信し、かつ、前回トークンを送信してから再びトークンを受信するまでの間に共有データが変更されなかった場合に、今回のトークンの送信を所定時間遅らせることにより、トークンがコミュニティネットワーク１０内を無駄に周回することによるトラフィックを低く抑えることができる。
【０１１３】
また、本実施形態の通信装置２０によれば、新規にコミュニティネットワーク１０に参加する通信装置２０が、当該通信装置２０に近い位置に配置されている通信装置２０の下流に割り当てられるため、コミュニティネットワーク１０内のデータの伝送遅延が大きくなることを防止することができる。本実施形態の通信装置２０は、地理的に離れた場所に存在する多数（例えば数百台）の通信装置２０によって形成されるコミュニティネットワーク１０において特に有効である。
【０１１４】
次に、本発明の第２の実施形態について説明する。
【０１１５】
図１９は、第２の実施形態における通信装置２０の機能構成を例示するブロック図である。通信装置２０は、ネットワークＩ／Ｆ（インターフェイス）２００、共有データ更新部２０１、参加要求送信部２０６、参加応答送信部２０７、周回ルート情報更新要求部２０８、周回ルート情報更新部２０９、周回ルート情報格納部２１０、離脱要求送信部２１１、離脱要求処理部２１２、トークン生成部２１３、トークン送信部２１４、共有データ変更部２１５、および共有データ格納部２１６を備える。なお、以下に説明する点を除き、図１９において、図２と同じ符号を付した構成は、図２における構成と同一または同様の機能を有するため説明を省略する。
【０１１６】
参加要求送信部２０６は、自通信装置２０のＩＰアドレスを含む参加要求を、ユーザによって指定された通信装置２０へ送信する。参加応答送信部２０７は、他の通信装置２０から参加要求を受信した場合に、周回ルート情報格納部２１０から周回ルート情報を読み出し、参加要求の送信元の通信装置２０を、自通信装置２０と自通信装置２０における第一の下流装置との間に割り当てた場合に、当該参加要求の送信元の通信装置２０が保持すべき周回ルート情報を生成する。そして、参加応答送信部２０７は、生成した周回ルート情報を共有データ変更部２１５へ送り、参加要求を受信した旨を示すＡＣＫを参加要求の送信元の通信装置２０へ送信する。
【０１１７】
周回ルート情報更新要求部２０８は、共有データ変更部２１５から周回ルート情報更新要求の送信を指示された場合に、周回ルート情報格納部２１０に格納されている周回ルート情報および自通信装置２０のＩＰアドレスを含む周回ルート情報更新要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０へ送信する。
【０１１８】
共有データ格納部２１６は、コミュニティネットワーク１０内の全ての通信装置２０の識別情報が記載された共有データを格納する。共有データ２１６０には、例えば図２０に示すように、コミュニティネットワーク１０内の通信装置２０の識別情報の一例であるＩＰアドレス２１６１毎に、当該ＩＰアドレス２０５１に対応する通信装置２０と通信を行うために必要な情報である通信情報の一例であるポート番号２０５３等が格納される。
【０１１９】
共有データ変更部２１５は、他の通信装置２０からトークン１２を受信した場合に、トークンを受信したことを示すＡＣＫをトークンの送信元の通信装置２０へ送信する。そして、共有データ変更部２１５は、参加応答送信部２０７から周回ルート情報を受け付けていた場合に、参加応答送信部２０７から受け付けた周回ルート情報、および、共有データ格納部２１６から読み出した共有データを、トークンの送信指示と共にトークン送信部２１４へ送る。
【０１２０】
また、共有データ変更部２１５は、トークンと共に、周回ルート情報および共有データを他の通信装置２０から受信した場合に、受信した周回ルート情報および共有データを周回ルート情報格納部２１０および共有データ格納部２１６にそれぞれ格納する。そして、共有データ変更部２１５は、周回ルート情報更新要求の送信を周回ルート情報更新要求部２０８に指示する。また、共有データ変更部２１５は、自通信装置２０のＩＰアドレスおよび通信情報を含む参加通知を、共有データ格納部２１６を参照して、コミュニティネットワーク１０内の全ての通信装置２０へ送信する。
【０１２１】
また、共有データ変更部２１５は、他の通信装置２０からトークンを受信した場合に、共有データ格納部２１６に格納されている共有データを変更する必要があるか否かをユーザからの指示に基づいて判定する。当該共有データを変更する必要がある場合、共有データ変更部２１５は、当該共有データを変更し、共有データ格納部２１６を参照して、当該変更分を示す差分データを、コミュニティネットワーク１０内の他の全ての通信装置２０へ送信する。そして、全ての通信装置２０から正常受信を示すＡＣＫを受信した場合に、トークンの送信をトークン送信部２１４に指示する。
【０１２２】
また、共有データ変更部２１５は、他の通信装置２０からトークン１２を受信した場合に、ユーザからの指示に基づいて、共有データ格納部２１６に格納されている共有データを変更する必要がないと判定した場合には、共有データ格納部２１６内の共有データを変更することなく、トークンの送信をトークン送信部２１４に指示する。
【０１２３】
共有データ更新部２０１は、他の通信装置２０から参加通知を受信した場合に、受信した参加通知に含まれるＩＰアドレス、位置情報、および通信情報を共有データ格納部２１６に格納する。また、共有データ更新部２０１は、他の通信装置２０から離脱通知を受信した場合に、受信した離脱通知に含まれるＩＰアドレス、ならびに、当該ＩＰアドレスに対応付けられている位置情報および通信情報を、共有データ格納部２１６から削除する。
【０１２４】
また、共有データ更新部２０１は、他の通信装置２０から差分データを受信した場合に、受信した差分データに基づいて共有データ格納部２１６内の共有データを変更すると共に、差分データの正常受信を示すＡＣＫを、当該差分データの送信元の通信装置２０へ送信する。
【０１２５】
また、共有データ更新部２０１は、共有データ変更部２１５がトークンを受信してからトークン送信部２１４にトークンの送信を指示するまでの間に他の通信装置２０から差分データを受信した場合に、トークンを持たない通信装置２０が共有データを変更した旨を示すエラー情報を、自通信装置２０の出力装置を介して出力すると共に、当該エラー情報をコミュニティネットワーク１０内の他の全ての通信装置２０へ送信する。
【０１２６】
また、共有データ更新部２０１は、トークン送信部２１４がトークンを他の通信装置２０へ送信してから、当該他の通信装置２０から送信報告を受信するまでの間に、当該他の通信装置２０以外の通信装置２０から差分データを受信した場合に、トークンを持たない通信装置２０が共有データを変更した旨を示すエラー情報を、自通信装置２０の出力装置を介して出力すると共に、当該エラー情報をコミュニティネットワーク１０内の他の全ての通信装置２０へ送信する。
【０１２７】
次に、ある通信装置２０がコミュニティネットワーク１０に参加する場合の各通信装置２０の動作について説明する。図２１は、第２の実施形態において通信装置２０−１１がコミュニティネットワーク１０に参加する場合の各通信装置２０の処理を例示するシーケンス図である。なお、図２１は、図４に示した複数の通信装置２０の中の一部の通信装置２０の動作について示している。
【０１２８】
まず、コミュニティネットワーク１０へ新規に参加する通信装置２０−１１は、自通信装置２０のＩＰアドレスを含む参加要求を通信装置２０−５へ送信する（Ｓ７００）。通信装置２０−５は、保持している周回ルート情報を参照して、通信装置２０−１１を、自通信装置２０と自通信装置２０における第一の下流装置との間に割り当てた場合に、通信装置２０−１１が保持すべき周回ルート情報を生成する（Ｓ７０１）。そして、通信装置２０−５は、参加要求を受信した旨を示すＡＣＫを通信装置２０−１１へ送信する（Ｓ７０２）。
【０１２９】
次に、通信装置２０−５は、通信装置２０−４からトークンを受信し（Ｓ７０３）、通信装置２０−４へＡＣＫを返す（Ｓ７０４）。通信装置２０−４は、通信装置２０−３へ送信報告を送信する（Ｓ７０５）。そして、通信装置２０−５は、ステップＳ７０１において生成した周回ルート情報および自通信装置２０が有する共有データを、トークンと共に通信装置２０−１１へ送信する（Ｓ７０６）。通信装置２０−１１は、通信装置２０−５へＡＣＫを返し（Ｓ７０７）、通信装置２０−５は、通信装置２０−４へ送信報告を送信する（Ｓ７０８）。
【０１３０】
次に、通信装置２０−１１は、トークンと共に受信した周回ルート情報および共有データを、自通信装置２０内の周回ルート情報格納部２１０および共有データ格納部２１６にそれぞれ格納する。そして、通信装置２０−１１は、自通信装置２０のＩＰアドレスおよび自通信装置２０内の周回ルート情報格納部２１０に格納された周回ルート情報を含む周回ルート情報更新要求を、当該周回ルート情報に含まれるＩＰアドレスに対応する全ての通信装置２０へ送信する（Ｓ７１０からＳ７１３）。
【０１３１】
周回ルート情報更新要求を受信した通信装置２０は、受信した周回ルート情報更新要求に含まれる周回ルート情報およびＩＰアドレスに基づいて、自通信装置２０内の周回ルート情報格納部２１０に格納されている周回ルート情報を更新し（Ｓ７１４、Ｓ７１５）、周回ルート情報の更新完了を示すＡＣＫを通信装置２０−１１へ送信する（Ｓ７１６からＳ７１９）。
【０１３２】
次に、通信装置２０−１１は、自通信装置２０のＩＰアドレスおよび通信情報を含む参加通知をコミュニティネットワーク１０内の全ての通信装置２０へ送信する（Ｓ７２０からＳ７２４）。そして、参加通知を受信した通信装置２０は、受信した参加通知に含まれるＩＰアドレスおよび通信情報を自通信装置２０内の識別情報格納部２０５に格納し（Ｓ７２５、Ｓ７２６）、差分データの正常受信を示すＡＣＫを通信装置２０−１１へ送信する（Ｓ７２７からＳ７３１）。そして、通信装置２０−１１は、トークンを通信装置２０−１１の下流装置となった通信装置２０−６へ送信する（Ｓ７３２）。
【０１３３】
なお、通信装置２０がコミュニティネットワーク１０から離脱する処理およびトークンを受信した場合の通信装置２０の処理については、第２の実施形態の通信装置２０は、第１の実施形態の通信装置２０と同様の処理を行うため、説明を省略する。
【０１３４】
なお、本発明は、上記の各実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【０１３５】
例えば、上記した実施形態において、通信装置２０は、コミュニティネットワーク１０に参加する場合に、周回ルート情報更新要求と参加通知とを別々に送信したが、他の形態として、通信装置２０は、周回ルート情報更新要求を送信するタイミングで、コミュニティネットワーク１０内の全ての通信装置２０へ周回ルート情報更新要求を送信し、参加通知は送信しないようにしてもよい。この場合、周回ルート情報更新要求を受信した通信装置２０が、自通信装置２０が有する周回ルート情報を更新すべきか否かを判断する。
【０１３６】
また、上記した第１の実施形態において、通信装置２０は、識別情報格納部２０５および周回ルート情報格納部２１０を有するが、コミュニティネットワーク１０内の全ての通信装置２０についての周回ルート情報が、位置情報および通信情報と共に周回ルート情報格納部２１０に格納されていれば、識別情報格納部２０５を設ける必要はない。
【０１３７】
また、上記した実施形態において、参加要求を受信した通信装置２０は、参加要求の送信元の通信装置２０を、自通信装置２０の下流に割り当てるが、他の形態として上流に割り当てるようにしてもよい。また、上記した実施形態において、各通信装置２０は、ＳＳＬ（Secure Socket Layer）等を用いて通信データの暗号化を行うことにより、コミュニティネットワーク１０内の通信を高いセキュリティで行うようにしてもよい。
【図面の簡単な説明】
【０１３８】
【図１】本発明の一実施形態に係るコミュニティネットワーク１０の構成を示すシステム構成図である。
【図２】第１の実施形態における通信装置２０の機能構成を例示するブロック図である。
【図３】識別情報格納部２０５に格納されるデータ構造を例示する図である。
【図４】通信装置２０−１１がコミュニティネットワーク１０に参加する過程を説明するための説明図である。
【図５】周回ルート情報格納部２１０に格納されるデータ構造を例示する図である。
【図６】コミュニティネットワーク１０に参加する通信装置２０−１１へ送信される周回ルート情報３０のデータ構造を例示する図である。
【図７】通信装置２０−５内の周回ルート情報格納部２１０に格納される周回ルート情報の変化を説明するための説明図である。
【図８】通信装置２０−６内の周回ルート情報格納部２１０に格納される周回ルート情報の変化を説明するための説明図である。
【図９】通信装置２０−５がコミュニティネットワーク１０から離脱する過程を説明するための説明図である。
【図１０】通信装置２０−４内の周回ルート情報格納部２１０に格納される周回ルート情報の変化を説明するための説明図である。
【図１１】通信装置２０−７内の周回ルート情報格納部２１０に格納される周回ルート情報の変化を説明するための説明図である。
【図１２】通信装置２０の処理を例示するフローチャートである。
【図１３】コミュニティネットワーク１０に参加中の通信装置２０の処理（Ｓ２００）を例示するフローチャートである。
【図１４】トークンを保持している通信装置２０の処理（Ｓ３００）を例示するフローチャートである。
【図１５】通信装置２０−１１がコミュニティネットワーク１０に参加する場合の各通信装置２０の処理を例示するシーケンス図である。
【図１６】通信装置２０−５がコミュニティネットワーク１０から離脱する場合の各通信装置２０の処理を例示するシーケンス図である。
【図１７】通信装置２０−５がトークンを受信した場合の各通信装置２０の処理を例示するシーケンス図である。
【図１８】通信装置２０の機能を実現するコンピュータ５０のハードウェア構成を例示する図である。
【図１９】第２の実施形態における通信装置２０の機能構成を例示するブロック図である。
【図２０】第２の実施形態において共有データ格納部２１６に格納されるデータ構造を例示する図である。
【図２１】第２の実施形態において通信装置２０−１１がコミュニティネットワーク１０に参加する場合の各通信装置２０の処理を例示するシーケンス図である。
【符号の説明】
【０１３９】
１０・・・コミュニティネットワーク、１１・・・通信網、１２・・・トークン、１３・・・周回ルート、２０・・・通信装置、２００・・・ネットワークＩ／Ｆ、２０１・・・共有データ更新部、２０２・・・識別情報更新部、２０３・・・問合せ先要求部、２０４・・・問合せ先応答部、２０５・・・識別情報格納部、２０６・・・参加要求送信部、２０７・・・参加応答送信部、２０８・・・周回ルート情報更新要求部、２０９・・・周回ルート情報更新部、２１０・・・周回ルート情報格納部、２１１・・・離脱要求送信部、２１２・・・離脱要求処理部、２１３・・・トークン生成部、２１４・・・トークン送信部、２１５・・・共有データ変更部、２１６・・・共有データ格納部、３０・・・周回ルート情報、３１・・・順番、３２・・・ＩＰアドレス、５０・・・コンピュータ、５１・・・ＣＰＵ、５２・・・ＲＡＭ、５３・・・ＲＯＭ、５４・・・ＨＤＤ、５５・・・通信Ｉ／Ｆ、５６・・・入出力Ｉ／Ｆ、５７・・・メディアＩ／Ｆ、５８・・・記録媒体
【図１】
2008250397.tif 000003
【図２】
2008250397.tif 000004
【図３】
2008250397.tif 000005
【図４】
2008250397.tif 000006
【図５】
2008250397.tif 000007
【図６】
2008250397.tif 000008
【図７】
2008250397.tif 000009
【図８】
2008250397.tif 000010
【図９】
2008250397.tif 000011
【図１０】
2008250397.tif 000012
【図１１】
2008250397.tif 000013
【図１２】
2008250397.tif 000014
【図１３】
2008250397.tif 000015
【図１４】
2008250397.tif 000016
【図１５】
2008250397.tif 000017
【図１６】
2008250397.tif 000018
【図１７】
2008250397.tif 000019
【図１８】
2008250397.tif 000020
【図１９】
2008250397.tif 000021
【図２０】
2008250397.tif 000022
【図２１】
2008250397.tif 000023