(57)【要約】【課題】特定の通信装置に過大な負荷がかかることを回避しつつ、通信装置間のデータ伝送経路を各通信装置の処理能力等に応じて柔軟に定め、複数の通信装置へ効率良く同一のデータを配信することを可能にする。【解決手段】通信システムに含まれる複数の通信装置の各々にその処理能力に応じた優先順位を付けておく。そして、各通信装置には、データ配信の開始に先立って、自装置の優先順位が最も高い場合、またはより優先順位の高い他の通信装置からの指示を受信した場合に、データ配信経路において自装置の直下に位置する下流側装置を優先順位の高い順に予め定められた数だけ選択し、上流側装置が定まっていない通信装置がある場合には、上記選択した通信装置に対して、それら上流側装置が定まっていない通信装置のうちから下流側装置を選択すべきことを指示する処理を実行させる。【選択図】図６
2011229132.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して１または複数の他の通信装置とともにツリー状のデータ配信経路を形成し、前記ツリー状のデータ配信経路の起点側に位置する上流側のものから下流側に向けて前記データ配信経路を経由して共有対象のデータを順次配信するデータ共有グループを構成する通信装置であって、
前記データ配信経路において当該通信装置の直下に位置する下流側通信装置として配置するべき１または複数の通信装置を前記１または複数の他の通信装置のうちから選択する選択手段と、
前記選択手段により選択した下流側通信装置に対して、当該下流側通信装置にとっての下流側通信装置を選択することを指示する指示手段と、
前記データ配信経路において当該通信装置の直上に位置する上流側通信装置から配信された共有対象のデータを前記選択手段にて選択した下流側通信装置に転送するデータ転送手段と、を備え、
前記選択手段乃至前記指示手段により、当該通信装置から１階層分の前記データ配信経路を形成する
ことを特徴とする通信装置。
【請求項２】
さらに、
前記データ配信経路において当該通信装置よりも下流側に配置される１または複数の通信装置を表すリストを保持するリスト保持手段と、
前記リスト保持手段に保持されているリストの表す１または複数の通信装置から前記選択手段により選択した下流側通信装置を除いたものを表す他のリストを、前記リスト保持手段に保持されているリストに基づいて生成し、前記選択手段により選択した下流側通信装置に対して、当該生成したリストを通知するリスト生成・通知手段と、
を有することを特徴とする請求項１に記載の通信装置。
【請求項３】
さらに、
前記通信ネットワークに接続し前記１または複数の他の通信装置の各々と相互に通信するための第１の通信手段と、
１または複数のネットワーク機器と通信するための第２の通信手段と、
前記データ配信経路において上流側通信装置から配信され前記第１の通信手段によって受信された共有対象のデータを記憶する共有対象データ記憶手段と、
前記第２の通信手段を介して前記ネットワーク機器から受信した要求に応じて、前記共有対象データ記憶手段に記憶させた前記共有対象のデータを当該ネットワーク機器に提供するデータ配信手段と、を備え、
前記データ配信手段は、前記第１の通信手段を介して上流側通信装置から受信した前記共有対象のデータを、前記選択手段により選択した下流側通信装置に前記第１の通信手段を介して配信する
ことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
さらに、
前記選択手段によって選択した下流側通信装置のうちの何れかが前記データ共有グループから離脱したこと、を検知する離脱検知手段を備え、
前記選択手段は、前記離脱検知手段により前記データ共有グループからの離脱が検知された下流側通信装置の下流に配置された１または複数の通信装置のうちから、当該下流側通信装置に換えて当該通信装置の直下に配置するべきものを選択する
ことを特徴とする請求項１〜３の何れか１項に記載の通信装置。
【請求項５】
さらに、
当該通信装置の上流側通信装置が前記データ共有グループから離脱したことを検知する離脱検知手段と、
前記離脱検知手段により前記データ共有グループからの離脱が検知された上流側通信装置に関する情報をさらに上流の他の通信装置に通知する手段と、
を有することを特徴とする請求項１〜３の何れか１項に記載の通信装置。
【請求項６】
さらに、
優先順位を記憶した優先順位記憶手段と、
他の通信装置の優先順位記憶手段に記憶されている優先順位を前記通信ネットワークを介して取得する優先順位取得手段と、を備え、
前記選択手段は、前記優先順位取得手段により取得された優先順位に基づいて当該通信装置の下流側通信装置を選択する
ことを特徴とする請求項１〜５の何れか１項に記載の通信装置。
【請求項７】
さらに、
前記優先順位記憶手段に記憶された優先順位と前記優先順位取得手段により取得された優先順位とに基づいて、当該通信装置の優先順位が最も高いか否かを判定する判定手段、を備え、
当該通信装置の優先順位が最も高いと前記判定手段により判定された場合に、当該通信装置が前記データ配信経路の起点となる
ことを特徴とする請求項６に記載の通信装置。
【請求項８】
前記データ共有グループに属さない他の通信装置から前記データ共有グループへの参加要求を受け取る手段を備え、
当該通信装置が前記データ共有グループの起点である場合には、前記優先順位取得手段は前記参加要求を行った通信装置の優先順位を取得し、前記参加要求を行った通信装置の優先順位が当該通信装置の優先順位よりも高いか否かを前記判定手段によって判定し、
前記参加要求を行った通信装置の優先順位が高いと前記判定手段によって判定された場合には、前記データ配信経路の新たな起点となるよう前記参加要求を行った通信装置に指示し、
当該通信装置の優先順位が高いと前記判定手段によって判定された場合には、自装置の下流側通信装置のなかに前記参加要求を行った通信装置よりも優先順位の低いものがあるか否かを判定し、該当するものがある場合には、該当する下流側通信装置に換えて前記参加要求を行った通信装置を新たな下流側通信装置として選択し直した後に、自装置の下流側通信装置のうちの１つに対して、上流側通信装置が未定の通信装置のうちから下流側通信装置を選択すべきことを指示する一方、該当する通信装置がない場合には自装置の下流側通信装置のうちの１つに対して前記参加要求を行った通信装置を下流側通信装置として選択すべきことを指示する
ことを特徴とする請求項７に記載の通信装置。
【請求項９】
コンピュータに、
通信ネットワークを介して相互に接続された他の１または複数の通信装置とともにツリー状のデータ配信経路を形成させ、前記ツリー状のデータ配信経路の起点側に位置する上流側の通信装置から下流側に向けて前記データ配信経路を経由して共有対象のデータを順次配信するデータ共有グループを構成させる処理を実行されるプログラムであって、
前記データ配信経路において当該通信装置の直下に位置する下流側通信装置として配置するべき１または複数の通信装置を前記１または複数の他の通信装置のうちから選択する選択処理と、
前記選択処理にて選択された下流側通信装置に対して、当該下流側通信装置にとっての下流側通信装置を選択することを指示する指示処理と、
前記データ配信経路において当該通信装置の直上に位置する上流側通信装置から配信された共有対象のデータを前記選択処理にて選択された下流側通信装置に転送するデータ転送処理と、を実行させ、
前記選択処理乃至前記指示処理を当該コンピュータに実行させることによって、当該コンピュータから１階層分の前記データ配信経路を形成させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ファイルなどのデータを複数のユーザに共有させる技術に関し、特に、共有対象のデータの配信によりそのデータを共有させる技術に関する。
【背景技術】
【０００２】
企業等においては、支社などの各拠点に敷設されるＬＡＮ（Local Area Network：以下、拠点内ＬＡＮ）をルータなどの中継装置を用いて一般公衆網（例えば、インターネットなど）に接続して全社的な情報システムを構築することが一般に行われている。このような情報システムにおいては、同一データを複数の拠点へ配信し、各拠点の従業者にそのデータを共有させることができると便利である。このような形態のデータ配信を行うことができると、例えば、複数の拠点を跨いで開催される遠隔プレゼンテーションにて使用する資料の電子ファイルを各参加者が勤務する拠点に事前に配布しておくことができるからである。
【０００３】
従来、複数の拠点への同一データの配信はサーバ・クライアント型のデータ通信で実現されることが多かった。ここで、サーバ・クライアント型のデータ通信とは、例えば、共有対象のデータを記憶するサーバ装置を何れかの拠点内ＬＡＮに接続しておき、各ユーザの利用する通信端末（クライアント装置）からのリクエストに応じて当該データをサーバ装置からそのクライアント装置へ送信したり、所定のタイミングでサーバ装置から全てのクライアント装置へ当該データを同報送信したりする態様のデータ通信をいう。また、近年では、所謂Ｐ２Ｐ（Point To Pointの意味）技術を用いてファイルを拡散させてゆく方法も提案されている。Ｐ２Ｐ技術においては、各通信装置の役割がサーバ（或いはクライアント）と明確に固定されているのではなく、クライアントとしてデータを受信した通信装置がそれ以降は他の通信装置へデータを配信するサーバの役割を担うといった点がサーバ・クライアント型のデータ通信と異なる。また、特許文献１には、ツリー状（木構造）のトポロジを有するデータ配信経路を回線交換方式で各通信装置に順次確立させ、そのデータ配信経路に沿ってデータを配信する技術が開示されており、特許文献２にはマルチキャストによりデータの同報送信を実現する際のマルチキャストツリーを各通信装置が利用可能な帯域幅に応じて公平に決定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−０５５２５８号公報
【特許文献２】特開２００９−２１３１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、サーバ・クライアント型のデータ通信には、アベイラビリティ（可用性）が低いといった問題がある。何故ならば、サーバ・クライアント型のデータ通信では、サーバに何らかの異常が発生するとデータの配信を全く行えなくなるからである。また、サーバに負荷が集中して輻輳を発生させる虞があり、大規模システムへの適用が難しく、スケーラビリティ（クライアント数の増加への対応余力）も低いといった問題もある。一方、Ｐ２Ｐ形式の通信態様では、サーバ・クライアント型の問題点は解消されるものの、取得するべきデータに関する情報を各拠点に事前に通知したり、全ての拠点にデータが行き渡ったか否かを確認したりするといった拠点管理を行うことが難しいといった問題がある。
【０００６】
また、特許文献１に開示された技術では、回線交換方式で各通信装置を接続するため、同時に複数の拠点へデータを配信することができず、全ての拠点へのデータ配信を完了するまでに長い時間を要するといった問題がある。加えて、特許文献１に開示された技術では無線回線交換により各通信装置を接続することを前提としているため、上述のような企業内情報システムに常に採用することができるとは限らない。そして、特許文献２に開示された技術では、データ配信経路を構築するためにフルメッシュの通信（すなわち参加する全ての装置同士が帯域情報や遅延情報をやりとりする）を行う必要があり、大量の制御メッセージの送受信やデータ配信経路構築のための計算処理によって各通信装置に大きな処理負荷がかかるといった問題がある。
本発明は、上記課題に鑑みて為されたものであり、特定の通信装置に過大な負荷がかかることを回避しつつ、共有対象のデータを短時間のうちに各通信装置へ行き渡らせることを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、通信ネットワークを介して１または複数の他の通信装置とともにツリー状のデータ配信経路を形成し、前記ツリー状のデータ配信経路の起点側に位置する上流側のものから下流側に向けて前記データ配信経路を経由して共有対象のデータを順次配信するデータ共有グループを構成する通信装置であって、前記データ配信経路において当該通信装置の直下に位置する下流側通信装置として配置するべき１または複数の通信装置を前記１または複数の他の通信装置のうちから選択する選択手段と、前記選択手段により選択した下流側通信装置に対して、当該下流側通信装置にとっての下流側通信装置を選択することを指示する指示手段と、前記データ配信経路において当該通信装置の直上に位置する上流側通信装置から配信された共有対象のデータを前記選択手段にて選択した下流側通信装置に転送するデータ転送手段と、を備え、前記選択手段乃至前記指示手段により、当該通信装置から１階層分の前記データ配信経路を形成することを特徴とする通信装置、を提供する。
【０００８】
このような通信装置によれば、ツリー状のデータ配信経路における起点（根（ルート）ノード）および中間ノード（ルートノードではなく、かつ、直下に１または複数の通信装置が配置されるノード）の役割を果たす通信装置のそれぞれが、上記ツリー状のデータ配信経路の決定に寄与するため、データ共有グループに属する通信装置のうちの特定のものに負荷が集中することはなく、輻輳も発生しにくくなる。また、本発明によれば、特定の通信装置に負荷が集中することはないため、サーバ・クライアント方式の通信システムに比較してスケーラビリティが高くなる。
【０００９】
好ましい態様においては、上記通信装置は、前記データ配信経路において当該通信装置よりも下流側に配置される１または複数の通信装置を表すリストを保持するリスト保持手段と、前記リスト保持手段に保持されているリストの表す１または複数の通信装置から前記選択手段により選択した下流側通信装置を除いたものを表す他のリストを、前記リスト保持手段に保持されているリストに基づいて生成し、前記選択手段により選択した下流側通信装置に対して、当該生成したリストを通知するリスト生成・通知手段と、を有することを特徴とする。このような態様においては、起点として動作する通信装置は、リスト保持手段に保持されているリストに基づいて下流側通信装置を選択する。
さらに好ましい態様としては、上記選択手段は、前記データ配信経路において当該通信装置よりも上流側に配置される通信装置からの指示に応じて下流側通信装置を選択する態様が考えられる。このような態様においては、中間ノードとして動作する各通信装置は、データ配信経路において当該通信装置の直上に位置する通信装置である上流側通信装置から通知されたリストに基づいて下流側通信装置を選択することが可能になる。
【００１０】
また、別の好ましい態様においては、上記通信装置は、さらに、前記通信ネットワークに接続し前記１または複数の他の通信装置の各々と相互に通信するための第１の通信手段と、１または複数のネットワーク機器と通信するための第２の通信手段と、当該通信装置の上流側通信装置から配信され前記第１の通信手段によって受信された共有対象のデータを記憶する共有対象データ記憶手段と、前記第２の通信手段を介して前記ネットワーク機器から受信した要求に応じて、前記共有対象データ記憶手段に記憶させた前記共有対象のデータを当該ネットワーク機器に提供するデータ配信手段と、を備え、前記データ配信手段は、前記第１の通信手段を介して上流側通信装置から受信した前記共有対象のデータを、前記選択手段により選択した下流側通信装置に前記第１の通信手段を介して配信することを特徴とする。
【００１１】
このような態様によれば、共有データ記憶手段に記憶されたデータは、選択手段により選択された下流側通信装置に配信（転送）される一方、第２の通信手段に接続されているネットワーク機器からのリクエストに応じてそれらネットワーク機器に提供される。各通信装置間の通信方式は回線交換方式に限定されるものではないから、例えばパケット交換方式を採用することにより、所謂オーバレイネットワークを構築して複数の宛先へのデータの同時配信を行うことができる。このため、本発明によれば、特許文献１に開示された技術やＰ２Ｐ型の通信システムに比較して、データ共有グループに属する全ての通信装置に対して短時間のうちに確実にデータを行き渡らせることができる。また、上記データ配信経路の決定の際にフルメッシュの通信を行う必要もないから、特許文献２に開示された技術に比較して各通信装置に過大な処理負荷がかかることもない。
【００１２】
好ましい態様においては、上記通信装置は、前記選択手段によって下流側通信装置として選択された１の通信装置が前記データ共有グループから離脱したこと、を検知する離脱検知手段を備え、前記選択手段は、前記離脱検知手段により前記データ共有グループからの離脱を検知された下流側通信装置のさらに下流に配置された１乃至複数の通信装置のうちから、当該通信装置に対して下流側通信装置としてデータ配信経路上に配置するべき、１乃至複数の通信装置を選択することを特徴とする。このような態様によれば、データ共有グループから離脱した下流側通信装置のさらに下流に当該データ共有グループに属する通信装置がある場合に、それら通信装置を組み込んでデータ配信経路を再構築することが可能になる。
【００１３】
他の好ましい態様においては、上記通信装置は、前記データ配信経路において当該通信装置よりも下流側に配置された通信装置が前記データ共有グループから離脱したことを検知する離脱検知手段を備え、前記指示手段は、前記離脱検知手段により前記データ共有グループからの離脱を検知された通信装置の上流に配置された通信装置に対して下流側通信装置を選択するよう指示することを特徴とする。このような態様によっても、データ共有グループから離脱した通信装置のさらに下流に当該データ共有グループに属する通信装置がある場合に、それら通信装置を組み込んでデータ配信経路を再構築することが可能になる。
【００１４】
他の好ましい態様においては、上記通信装置は、当該通信装置が前記データ配信経路の起点に位置する通信装置によって下流側通信装置として選択された場合において、当該起点に位置する通信装置が前記データ共有グループから離脱したことを検知する離脱検知手段を備え、前記選択手段は、前記データ配信経路の起点に位置する通信装置が前記データ共有グループから離脱したことを前記離脱検知手段により検知した場合には、当該通信装置が前記データ配信経路の新たな起点となって下流側通信装置を選択することを特徴とする。このような態様によれば、データ配信経路の起点となっていた通信装置がデータ共有グループから離脱した場合に、本態様の通信装置を起点とする新たなデータ配信経路を構築することができる。
【００１５】
他の好ましい態様においては、上記通信装置は、さらに、前記データ配信経路において中間ノードの役割を担っていた上流側通信装置が前記データ共有グループから離脱したことを検知する離脱検知手段と、前記離脱検知手段により前記データ共有グループからの離脱が検知された上流側通信装置に関する情報をさらに上流の他の通信装置に通知する手段とを有することを特徴とする。このような態様によれば、中間ノードの役割を担っていた通信装置がデータ共有グループから離脱した場合に、さらに上流側の通信装置に下流側通信装置を選択し直させ、データ配信経路を再構築することが可能になる。
【００１６】
ここで、データ共有グループからの通信装置の離脱を検知するための具体的な態様としては種々の態様が考えられる。第１に、上記通信装置の離脱検知手段は、前記データ共有グループから離脱しようとする通信装置から離脱要求を受け取ったことに応じて、当該要求元の通信装置の前記データ共有グループからの離脱を検知する態様が考えられる。第２に、上記離脱検知手段は、前記データ配信経路において前記データ共有グループから離脱した通信装置の下流側に配置された通信装置から離脱通知を受け取ったことに応じて、当該通知元の上流側に配置された通信装置が前記データ共有グループから離脱したことを検知する態様が考えられる。
【００１７】
他の好ましい態様においては、上記通信装置は、さらに、優先順位を記憶した優先順位記憶手段と、他の通信装置の優先順位記憶手段に記憶されている優先順位を前記通信ネットワークを介して取得する優先順位取得手段と、を備え、前記選択手段は、前記優先順位取得手段により取得された優先順位に基づいて下流側通信装置を選択することを特徴とする。例えば、処理能力の高さや通信ネットワークにて利用可能な帯域幅の広さといったデータ伝送能力を指標化して上記優先順位を定め、これに基づいて（例えば、優先順位が高い順に）下流側通信装置を選択するようにすれば、データ配信経路の上流側においてボトルネックが発生しにくくなり、簡易なアルゴリズムで通信効率の高いデータ配信経路を構築し、当該構築されたデータ配信経路にて短時間にデータ配信を完了することが可能になる。
【００１８】
他の好ましい態様においては、上記通信装置は、さらに、前記優先順位記憶手段に記憶された優先順位と前記優先順位取得手段により取得された優先順位とに基づいて、当該通信装置の優先順位が最も高いか否かを判定する判定手段、を備え、当該通信装置の優先順位が最も高いと前記判定手段により判定された場合に、当該通信装置が前記データ配信経路の起点となることを特徴とする。このような態様によれば、データ共有グループに属する通信装置のうちで最も優先順位の高いもの（前述したようにデータ伝送能力に応じて優先順位を定めれば、最もデータ伝送能力が高いもの）を起点としてデータ配信経路を構築することが可能になる。
【００１９】
他の好ましい態様においては、上記通信装置は、前記データ共有グループに属さない他の通信装置から前記データ共有グループへの参加要求を受け取る手段を備え、当該通信装置が前記データ共有グループの起点である場合には、前記優先順位取得手段は前記参加要求を行った通信装置の優先順位を取得し、前記参加要求を行った通信装置の優先順位が当該通信装置の優先順位よりも高いか否かを前記判定手段によって判定し、前記参加要求を行った通信装置の優先順位が高いと前記判定手段によって判定された場合には、前記参加要求を行った通信装置に対して前記データ配信経路の新たな起点となるよう前記参加要求を行った通信装置に指示することを特徴とする。このような態様によれば、データ共有グループに参加中の通信装置および参加要求を行った通信装置のうちで最も優先順位の高いもの（前述したようにデータ伝送能力に応じて優先順位を定めれば、最もデータ伝送能力が高いもの）を起点としてデータ配信経路を構築し直すことが可能になる。
【００２０】
他の好ましい態様においては、上記通信装置は、前記データ共有グループに属さない他の通信装置から前記データ共有グループへの参加要求を受け取る手段を備え、当該通信装置が前記データ共有グループの起点である場合には、前記優先順位取得手段は前記参加要求を行った通信装置の優先順位を取得し、前記参加要求を行った通信装置の優先順位が当該通信装置の優先順位よりも高いか否かを前記判定手段によって判定し、前記参加要求を行った通信装置の優先順位が高いと前記判定手段によって判定された場合には、前記データ配信経路の新たな起点となるよう前記参加要求を行った通信装置に指示し、当該通信装置の優先順位が高いと前記判定手段によって判定された場合には、自装置の下流側通信装置のなかに前記参加要求を行った通信装置よりも優先順位の低いものがあるか否かを判定し、該当するものがある場合には、該当する下流側通信装置に換えて前記参加要求を行った通信装置を新たな下流側通信装置として選択し直した後に、自装置の下流側通信装置のうちの１つに対して、上流側通信装置が未定の通信装置のうちから下流側通信装置を選択すべきことを指示する一方、該当する通信装置がない場合には自装置の下流側通信装置のうちの１つに対して前記参加要求を行った通信装置を下流側通信装置として選択すべきことを指示することを特徴とする。このような態様によれば、データ共有グループに参加中の通信装置および参加要求を行った通信装置のうちで最も優先順位の高いもの（前述したようにデータ伝送能力に応じて優先順位を定めれば、最もデータ伝送能力が高いもの）を起点とし、かつ、優先順位の高いものほど上流側に位置するようにデータ配信経路を再構築することが可能になる。
【００２１】
他の好ましい態様においては、上記通信装置は、前記データ共有グループへの参加を要求する手段を備え、前記データ共有グループへの参加要求に対する応答として前記データ配信経路の起点の通信装置から、起点の交代を指示する応答を受け取った場合に、前記選択手段は、当該応答の送信元の通信装置を下流側通信装置として選択し、当該通信装置が前記データ配信経路の新たな起点となることを特徴とする。このような態様によっても、データ共有グループに参加中の通信装置および参加要求を行った通信装置のうちで最も優先順位の高いもの（前述したようにデータ伝送能力に応じて優先順位を定めれば、最もデータ伝送能力が高いもの）を起点としてデータ配信経路を再構築することが可能になる。
【００２２】
他の好ましい態様においては、上記通信装置は、前記第１の通信手段または前記第２の通信手段を介して受信したデータを当該データに付加されている宛先情報に基づいて前記データ共有グループに属する他の通信装置、または前記ネットワーク機器に転送するルーティング手段をさらに備えることを特徴とする。このような態様においては上記通信装置は例えばルータなどの中継装置の役割を果たすこととなる。
【００２３】
また、上記課題を解決するために、本発明は、通信ネットワークを介して相互に接続された複数の通信装置がツリー状のデータ配信経路を形成し、前記ツリー状のデータ配信経路の起点側に位置する上流側通信装置から下流側通信装置に対して前記データ配信経路を経由して共有対象のデータを順次配信する、データ共有グループを構成する通信システムであって、各通信装置は、当該通信装置に対して前記下流側通信装置として前記データ配信経路上に配置すべき１乃至複数の通信装置を選択する選択手段と、前記選択手段により選択した下流側通信装置に対して、当該下流側通信装置がさらに下流側通信装置を選択するよう指示する指示手段と、前記データ配信経路において当該通信装置の直上に位置する他の通信装置から配信された共有対象データを前記選択手段により選択した下流側通信装置に転送するデータ配信手段と、を備え、前記データ配信経路の起点となる通信装置から順次下流側通信装置を選択することにより、通信装置毎に１階層分の前記データ配信経路が順次形成されることを特徴とする通信システム、を提供する。このような通信システムによっても、ツリー状のデータ配信経路におけるルートノード（起点）および中間ノードの役割を果たす通信装置のそれぞれが、上記ツリー状のデータ配信経路の決定に寄与するため、データ共有グループに属する通信装置のうちの特定のものに負荷が集中することはなく、輻輳も発生しにくくなる。また、当該通信システムにおいても特定の通信装置に負荷が集中することはないため、サーバ・クライアント方式の通信システムに比較してスケーラビリティが高くなる。
【００２４】
好ましい態様においては、上記通信システムの各通信装置は、前記データ配信経路において当該通信装置よりも下流側に配置される１または複数の通信装置を表すリストを保持するリスト保持手段と、前記リスト保持手段に保持されているリストの表す１または複数の通信装置から前記選択手段により選択した下流側通信装置を除いたものを表す他のリストを、前記リスト保持手段に保持されているリストに基づいて生成し、前記選択手段により選択した下流側通信装置に対して、当該生成したリストを通知するリスト生成・通知手段と、を有することを特徴とする。このような態様によっても、起点として動作する通信装置には、リスト保持手段に保持されているリストに基づいて下流側通信装置を選択させるとともに、中間ノードとして動作する各通信装置には、その上流側通信装置から通知されたリストに基づいて下流側通信装置を選択させることが可能になる。
【００２５】
他の好ましい態様においては、上記通信システムの各通信装置にはそれぞれ優先順位が割り当てられているとともに、前記複数の通信装置の内、前記優先順位に基づいて１の通信装置が前記データ配信経路の起点となり、各通信装置は、前記優先順位に基づいて各々の下流側通信装置を選択することを特徴とする。前述したように、データ伝送能力が高い通信装置ほど高い優先順位を割り当てておき、最も優先順位の高いものが起点となり、優先順位の高いものほど上流側に位置するように下流側通信装置の選択が行われるようにすれば、データ配信経路の上流側においてボトルネックが発生しにくくなり、簡易なアルゴリズムで通信効率の高いデータ配信経路を構築することが可能になる。
【００２６】
他の好ましい態様においては、上記通信システムの各通信装置は、前記通信ネットワークに接続し他の通信装置と相互に通信するための第１の通信手段と、１乃至複数のネットワーク機器と通信するための第２の通信手段と、前記第１の通信手段を介して上流側通信装置から受信した共有対象データを記憶する共有対象データ記憶手段と、前記共有対象データ記憶手段に記憶した共有対象データを前記ネットワーク機器からの要求に応じて当該ネットワーク機器に提供する手段と、を備え、前記データ配信手段は、前記第１の通信手段を介して上流側通信装置から受信した共有対象データを前記選択手段により選択した下流側通信装置に前記第１の通信手段を介して配信する手段であり、各通信装置の前記共有対象データ記憶手段に記憶された共有対象データを、前記データ共有グループに属する何れかの通信装置に接続された前記ネットワーク機器において共有することを特徴とする。このような態様によれば、上記データ配信経路経由のデータ配信を短時間に完了することが可能になる。
【００２７】
また別の好ましい態様においては、上記通信システムの各通信装置は、前記第１の通信手段乃至前記第２の通信手段を介して受信したデータを当該データに付加された宛先情報に基づいて前記他の通信装置または前記ネットワーク機器に転送するルーティング手段を備えたことを特徴とする。このような態様においては上記各通信装置は、例えばルータなどの中継装置の役割を果たすこととなる。
【００２８】
また、上記課題を解決するために本発明は、通信ネットワークを介して相互に接続された複数の通信装置が、ツリー状のデータ配信経路を形成し、前記ツリー状のデータ配信経路の起点側に位置する上流側通信装置から下流側通信装置に対して、前記データ配信経路を経由して共有対象のデータを順次配信する、データ共有グループを構成する通信方法であって、各通信装置は、制御手段と、前記通信ネットワークに接続し他の通信装置と相互に通信するための第１の通信手段と、を有しており、前記制御手段が、当該通信装置に対して前記下流側通信装置として前記データ配信経路上に配置すべき１乃至複数の通信装置を選択する選択手順と、前記選択手順にしたがって選択された下流側通信装置に対して、該下流側通信装置がさらに下流側通信装置を選択するよう指示する指示手順と、前記データ配信経路において当該通信装置の直上に位置する他の通信装置から配信された共有対象データを前記選択手順にしたがって選択した下流側通信装置に転送するデータ配信手順と、を実行し、前記選択手順乃至指示手順によって、当該通信装置から１階層分の前記データ配信経路を形成することを特徴とする通信方法、を提供する。このような通信方法によっても、ツリー状（木構造）のデータ配信経路におけるルートノード（起点）および中間ノードの役割を果たす通信装置のそれぞれが上記ツリー状のデータ配信経路の決定に寄与するため、データ共有グループに属する通信装置のうちの特定のものに負荷が集中することはなく、輻輳も発生しにくくなる。
【００２９】
他の好ましい態様においては、上記通信方法によって各々１階層分のデータ配信経路を形成する各通信装置は、前記データ配信経路において当該通信装置よりも下流側に配置される１乃至複数の通信装置を表すリストを保持するリスト保持手段を有しており、前記制御手段は、前記選択手順にしたがって選択した下流側通信装置を除く１乃至複数の通信装置のリストを前記リスト保持手段に保持されているリストに基づいて生成し、前記選択手順にしたがって選択した下流側通信装置に対して、当該生成したリストを通知する手順を実行し、前記選択手順においては、前記リスト保持手段に保持されているリストから下流側装置を選択することを特徴とする。このような態様によっても、起点として動作する通信装置には、リスト保持手段に保持されているリストに基づいて下流側通信装置を選択させるとともに、中間ノードとして動作する各通信装置には、その上流側通信装置から通知されたリストに基づいて下流側通信装置を選択させることが可能になる。
【００３０】
他の好ましい態様においては、上記通信方法によって各々１階層分のデータ配信経路を形成する各通信装置は、それぞれに割り当てられた優先順位を記憶する手段を有しており、前記制御手段は、前記通信ネットワークを介して他の通信装置の優先順位を取得する手順を実行し、前記選択手順においては、前記取得した優先順位に基づいて前記下流側通信装置を選択することを特徴とする。前述したように、データ伝送能力が高い通信装置ほど高い優先順位を割り当てておき、最も優先順位の高いものが起点となり、優先順位の高いものほど上流側に位置するように下流側通信装置の選択を行うようにすれば、データ配信経路の上流側においてボトルネックが発生しにくくなり、簡易なアルゴリズムで通信効率の高いデータ配信経路を構築することが可能になる。
【００３１】
他の好ましい態様においては、上記通信方法によって各々１階層分のデータ配信経路を形成する各通信装置は、１乃至複数のネットワーク機器と通信するための第２の通信手段を有しており、前記制御手段は、前記第１の通信手段を介して上流側の通信装置から受信した共有対象データを記憶する手順と、前記記憶した共有対象データを、前記第２の通信手段を介したネットワーク機器からの要求に応じて当該ネットワーク機器に提供する手順と、を実行することを特徴とする。このような態様によれば、上記データ配信経路経由のデータ配信を短時間に完了することが可能になる。
【００３２】
また、上記課題を解決するために本発明は、コンピュータに、通信ネットワークを介して相互に接続された他の１または複数の通信装置とともにツリー状のデータ配信経路を形成させ、前記ツリー状のデータ配信経路の起点側に位置する上流側の通信装置から下流側に向けて前記データ配信経路を経由して共有対象のデータを順次配信するデータ共有グループを構成させる処理を実行されるプログラムであって、前記データ配信経路において当該通信装置の直下に位置する下流側通信装置として配置するべき１または複数の通信装置を前記１または複数の他の通信装置のうちから選択する選択処理と、前記選択処理にて選択された下流側通信装置に対して、当該下流側通信装置の直下に位置する下流側通信装置を選択することを指示する指示処理と、前記データ配信経路において当該通信装置の直上に位置する上流側通信装置から配信された共有対象のデータを前記選択処理にて選択された下流側通信装置に転送するデータ転送処理と、を実行させ、前記選択処理乃至前記指示処理を当該コンピュータに実行させることによって、当該コンピュータから１階層分の前記データ配信経路を形成させることを特徴とするプログラムを提供する。このようなプログラムにしたがって一般的なコンピュータを作動させることで、当該コンピュータを本発明の通信装置として機能させることが可能になる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態の通信システムの構成を示す図である。
【図２】同通信システムにおけるデータ配信経路の一例を示す図である。
【図３】同通信システムに含まれる通信装置２０−ｊの構成例を示すブロック図である。
【図４】親機として動作する通信装置２０−ｊに記憶される参加装置リストの一例を示す図である。
【図５】通信装置２０−ｊが実行するデータ共有グループ形成処理を説明するための図である。
【図６】通信装置２０−ｊの制御部２１０が通信制御プログラムにしたがって実行する配信経路決定処理の流れを示すフローチャートである。
【図７】同制御部２１０が通信制御プログラムにしたがって実行する配信経路再構築処理の流れを示すフローチャートである。
【図８】配信経路決定動作を説明するための図である。
【図９】親機よりも優先順位の低い通信装置の途中参加による配信経路再構築動作を説明するための図である。
【図１０】親機よりも優先順位の高い通信装置の途中参加による配信経路再構築動作を説明するための図である。
【図１１】中間ノードの役割を担っている通信装置の中途離脱による配信経路再構築動作を説明するための図である。
【図１２】親機の役割を担っている通信装置の中途離脱による配信経路再構築動作を説明するための図である。
【図１３】本発明の概念を説明するための図である。
【図１４】本発明の概念を説明するための図である。
【図１５】本発明の概念を説明するための図である。
【発明を実施するための形態】
【００３４】
以下、図面を参照しつつ本発明の実施形態について説明する。
（Ａ：構成）
図１は、本発明の一実施形態の通信装置２０−ｊ（ｊ＝１〜８）を含む通信システムの構成を示す図である。図１では８台の通信装置２０−ｊが例示されているが、９台以上の通信装置２０−ｊが通信システムに含まれていても良く、逆に、通信システムに含まれる通信装置２０−ｊが８台未満であっても勿論良い。通信装置２０−ｊの各々は企業の各拠点に敷設される拠点内ＬＡＮ（図示略）を一般公衆網１０（データ通信網）に相互接続するルータである。通信装置２０−ｊの各々は、ＯＳＩ参照モデルの第１層（物理層）から第３層（ネットワーク層）までの接続を行い、ＩＰ（Internet Protocol）などのネットワーク層の通信プロトコルにしたがって送信されてくるパケットの転送制御を行う。各拠点内ＬＡＮには、その拠点に勤務する従業者（以下、単に「ユーザ」と呼ぶ）の使用する通信端末（例えば、パーソナルコンピュータ：図示略）が接続されている。これら通信端末は、その拠点内ＬＡＮと一般公衆網１０とを接続する通信装置２０−ｊを介して他の通信装置（例えば、他の拠点内ＬＡＮに収容されている通信端末）とデータ通信をすることができる。
【００３５】
各拠点内ＬＡＮに収容される通信端末のユーザは、その通信端末を用いて遠隔プレゼンテーションや遠隔会議に参加することができる。このような遠隔プレゼンテーション等において、資料等の電子ファイルをその参加者に共有させることができると便利であることは前述したとおりである。図１に示す通信システムでは、遠隔プレゼンテーションに参加するユーザの通信端末を配下に有する通信装置２０−ｊ（すなわち、その通信端末を収容する拠点内ＬＡＮを一般公衆網１０に接続する通信装置２０−ｊ）にデータ共有グループを形成させ、そのデータ共有グループに参加している通信装置２０−ｊの各々に共有対象のデータを配信して記憶させる。そして、各通信端末のユーザはその通信端末を配下に有する通信装置２０−ｊにアクセスして上記共有対象のデータを取得し閲覧するのである。ここで、データ共有グループに属する各通信装置２０−ｊへの同一データの配信は以下の要領で行われる。
【００３６】
本実施形態では、通信装置２０−ｊの各々に本実施形態の特徴を顕著に示す処理を実行させることにより、データ共有グループに参加している各通信装置２０−ｊにて図２に示すようなツリー形状の論理的なデータ配信経路を構築させ、親機（データ配信経路の起点に位置する通信装置）からのマルチキャストなどによって共有対象のデータを、構築したデータ配信経路に従ってデータ共有グループに参加している各通信装置２０−ｊに伝播させるのである。より詳細に説明すると、図１の通信装置２０−ｊの各々には、親機として選定される優先度を表す（あるいは通信装置２０−ｊの処理能力の高さや通信網にて利用可能な帯域幅の広さを指標化した）優先順位がその処理能力および一般公衆網１０において利用可能な帯域幅に応じてシステム管理者によって予め割り当てられており、その優先順位を表す優先順位データＰｒ−ｊ（ｊ＝１〜８）が各通信装置２０−ｊに記憶されている。具体的には、通信装置２０−ｊの各々には、その処理能力が高いほど、処理能力が同じであれば利用可能な帯域幅が広いほど高い優先順位が割り当てられている。図１の通信装置２０−ｊの各々は、システム管理者或いは配下の通信端末のユーザによってデータ共有グループへの参加を指示されると、最も優先順位が高いものが親機、すなわちデータ配信経路における起点（ルートノード）となり、親機以外の通信装置２０−ｊのうちで優先順位が高いものほど親機側に近い中間ノードとなるように、上記ツリー形状のデータ配信経路を構築する処理を実行するのである。
以下、本実施形態の特徴を顕著に示す通信装置２０−ｊを中心に説明する。
【００３７】
図３は、通信装置２０−ｊの構成例を示すブロック図である。図３に示すように通信装置２０−ｊは、制御部２１０、第１通信インタフェース（以下、Ｉ／Ｆ）部２２０、第２通信Ｉ／Ｆ部２３０、外部機器Ｉ／Ｆ部２４０、記憶部２５０、およびこれら構成要素間のデータ授受を仲介するバス２６０を含んでいる。
【００３８】
制御部２１０は、例えばＣＰＵ（Central Processing Unit）である。この制御部２１０は、記憶部２５０（より正確には、不揮発性記憶部２５４）に記憶されているプログラムを実行することにより、通信装置２０−ｊの各部の作動制御を行う制御中枢として機能する。
【００３９】
第１通信Ｉ／Ｆ部２２０と第２通信Ｉ／Ｆ部２３０は、共にＮＩＣ（Network Interface Card）であり、各々異なる通信網に接続されている。具体的には、第１通信Ｉ／Ｆ部２２０は一般公衆網１０に接続されており、第２通信Ｉ／Ｆ部２３０は拠点内ＬＡＮに接続されている。第１通信Ｉ／Ｆ部２２０と第２通信Ｉ／Ｆ部２３０は、各々の接続先の通信網から受信したパケット（通信メッセージを予め定められたデータサイズ分ずつに分割し、その各々に所定のヘッダを付与して得られるデータブロック）を制御部２１０へ引渡すとともに、制御部２１０から引渡されるパケットを各々の接続先の通信網へと送出する。
【００４０】
外部機器Ｉ／Ｆ部２４０は、ＵＳＢメモリやシリアルコンソール、あるいは内部拡張バスに接続された拡張カードなどの外部機器との間で所定のプロトコル（ＵＳＢやＲＳ−２３２Ｃ等の有線プロトコルあるいはＢｌｕｅｔｏｏｔｈ等の無線プロトコル）にしたがってデータの授受を行うインタフェースの集合体である。例えば、外部機器としてＵＳＢメモリを用いる場合には、ＵＳＢインタフェースを外部機器Ｉ／Ｆ部２４０に含めておけば良く、外部機器としてシリアルコンソールを用いる場合には、ＲＳ−２３２Ｃインタフェースなどのシリアルインタフェースを外部機器Ｉ／Ｆ部２４０に含めておけば良い。この外部機器Ｉ／Ｆ部２４０は、前述した優先順位データＰｒ−ｊなどの各種データを通信装置２０−ｊに予め記憶させる際に利用される。
【００４１】
記憶部２５０は、揮発性記憶部２５２と不揮発性記憶部２５４を含んでいる。揮発性記憶部２５２は、例えばＲＡＭ（Random Access Memory）などの揮発性メモリであり、制御部２１０が各種プログラムを実行する際のワークエリアとして利用されるとともに、第１通信Ｉ／Ｆ部２２０や第２通信Ｉ／Ｆ部２３０を介して受信したパケットを一時的に蓄積しておくバッファの役割を果たす。また、少なくとも親機または中間ノードとして機能する通信装置２０−ｊの揮発性記憶部２５２には参加装置リストが格納され、親機として機能する通信装置を除く各通信装置２０−ｊの揮発性記憶部２５２にはデータ配信経路において当該通信装置２０−ｊの直上に配置された通信装置を特定する情報（装置識別データ等）や、データ共有グループにおける親機を特定する情報（装置識別データ等）が格納される。
【００４２】
例えば、図１の８台の通信装置２０−ｊが全てデータ共有グループに参加し、図２に示すようなツリー形状の論理的なデータ配信経路が構築されている状態において、親機として動作している通信装置２０−１の揮発性記憶部２５２には、図４に示す参加装置リストが格納される。この参加装置リストには、自装置（当該参加装置リストを記憶している通信装置）についてのレコードと、データ共有グループに参加している通信装置のうちで自装置よりも優先順位が低い装置についてのレコードとが格納される。そして、参加装置リストに格納される各レコードには、図４に示すように、装置識別データ、優先順位データＰｒ−ｊが含まれている。通信装置２０−１以外の各通信装置の揮発性記憶部２５２には、親機である通信装置２０−１の装置識別データやデータ配信経路において直上に配置された他の通信装置の装置識別データ等も格納される。
【００４３】
ここで装置識別データとは、通信装置２０−ｊの各々を一意に識別するためのデータである。一例として、本実施形態ではＭＡＣ（Media Access Control）アドレスやＩＰアドレスなどの通信アドレスと通信装置２０−ｊの名称を示す文字列とが用いられている。上記通信アドレスは、データリンク層（或いはネットワーク層）の通信プロトコルにしたがって当該通信装置２０−ｊとデータ通信を行う際の宛先アドレスとして使用され、通信装置２０−ｊの名称は図１に示す通信システムにおけるオーバレイネットワークにおいて当該通信装置２０−ｊを各ユーザに一意に識別させる際に使用される。また、通信装置２０−ｊが親機または中間ノードとして機能する場合、当該通信装置２０−ｊが下流側通信装置として選択している他の通信装置に関する情報も揮発性記憶部２５２には記憶される。ここで、下流側通信装置とは、ツリー状のデータ配信経路において当該通信装置の直下に位置する通信装置のことをいう。逆に、ツリー状のデータ配信経路において当該通信装置の直上に位置する通信装置のことを上流側通信装置と呼ぶ。この情報は参加装置リストに含ませてもよく、この場合選択中の下流側通信装置を識別するためのフィールドを設けて下流側通信装置であれば“１”そうでなければ“０”といった値を記録するようにすればよい。
【００４４】
不揮発性記憶部２５４は、例えばＥＰＲＯＭ（Erasable Programmable Read Only Memory）やフラッシュメモリなどの不揮発性メモリであり、この不揮発性記憶部２５４には、各種データや各種プログラムが予め記憶されている。不揮発性記憶部２５４に記憶されているデータの一例としては、所謂ルーティングテーブルなどパケット転送制御を実行する際に必要となるデータ（図３では図示略）、優先順位データＰｒ−ｊ、自装置についての装置識別データ、初期ノードデータ、および事前共有鍵が挙げられる。初期ノードデータとは、当該通信装置２０−ｊがデータ共有グループに参加する際に最初にアクセスするべき１または複数の装置（本実施形態では、通信装置２０−ｋ（ｋ＝１〜８、ただし、ｋ≠ｊ）の７台）を示すデータである。そして、事前共有鍵とは、当該データ共有グループに参加するための認証やそのデータ共有グループにおいて送受信するデータを暗号化する際に利用される暗号キーである。なお、本実施形態ではデータ共有グループ内の各通信装置２０−ｊにおいて、共有対象とするデータ（各種ファイル）を保持するための記憶領域は不揮発性記憶部２５４に設けられるが、メモリ容量が充分であれば揮発性メモリ２５２に当該記憶領域を設けてもよいし、外部機器Ｉ／Ｆ部２４０を介して接続されたＨＤＤ等の外部記憶デバイスに記憶領域を設けてもよい。
【００４５】
また、不揮発性記憶部２５４に記憶されているプログラムの一例としては図３に示す通信制御プログラムが挙げられる。制御部２１０は、通信装置２０−ｊの電源（図示略）が投入されたことを契機として、この通信制御プログラムを不揮発性記憶部２５４から揮発性記憶部２５２に読み出してその実行を開始し、図３に示す各種機能を実現する。この通信制御プログラムにしたがって制御部２１０が実現する機能の概略は以下の通りである。
【００４６】
（ａ）パケット転送制御機能
これは、自装置以外の通信装置を宛先とするパケット（すなわち、送信先ＩＰアドレスが当該通信装置２０−ｊのものではないパケット）を第１通信Ｉ／Ｆ部２２０または第２通信Ｉ／Ｆ部２３０を介して受信した場合に、その送信先ＩＰアドレスに応じた転送制御を行う機能である。このパケット転送制御機能は、謂わばルータ本来の機能であり、一般的なルータにおけるものと特段に変るところはないため、詳細な説明を省略する。
【００４７】
（ｂ）データ共有グループ形成機能
これは、データ共有グループを形成しそのグループの親機を選定する機能である。より詳細に説明すると、制御部２１０は、例えば通信装置２０−ｊがデータ共有グループへ参加していない状態において、第２通信Ｉ／Ｆ部２３０に接続された、通信装置２０−ｊの配下の通信端末から、データ共有グループへの参加指示が与えられたことを契機として、データ共有グループへの参加を要求する旨の通信メッセージ（以下、参加要求メッセージ）に、自装置の優先順位データＰｒ−ｊと装置識別データと事前共有鍵とを書き込んで、初期ノードデータの示す通信装置２０−ｋ宛てに参加要求メッセージ送信する。なお、初期ノードデータとして複数の通信装置２０−ｋを示すものが不揮発性記憶部２５４に格納されている場合には、それら複数の通信装置２０−ｋのうちから１台を選択（例えば、通信アドレスが最も若いものを選択）して参加要求メッセージを送信する。
【００４８】
通信装置２０−ｋの制御部２１０は、参加要求メッセージを受信すると、データ共有グループへの自装置の参加状況に応じて未参加通知メッセージ、親機紹介メッセージ、受付確認メッセージ、および親機交代指示メッセージの何れかを返信する。未参加通知メッセージは、通信装置２０−ｋがデータ共有グループに参加していない場合にその旨の通知のために返信する通信メッセージである。親機紹介メッセージは、通信装置２０−ｋがデータ共有グループには参加しているものの親機として動作していない場合にその旨の通知のために返信する通信メッセージである。この親機紹介メッセージを返信する際には、通信装置２０−ｋの制御部２１０は、その時点の親機の装置識別データをペイロード部等に書き込んで返信する。受付確認メッセージと親機交代指示メッセージは、通信装置２０−ｋが親機として動作している場合に返信する通信メッセージである。
【００４９】
親機として動作している通信装置２０−ｋの制御部２１０は、参加要求メッセージを受信すると、その参加要求メッセージに書き込まれている事前共有鍵を用いてその送信元の認証を行い、認証に成功すると以下の処理を実行する。すなわち、通信装置２０−ｋの制御部２１０は、受信した参加要求メッセージに書き込まれている優先順位データＰｒ−ｊを読み出して自装置の優先順位データＰｒ−ｋと比較する。そして、自装置の優先順位が高い場合には、通信装置２０−ｋの制御部２１０は、参加要求メッセージに書き込まれている装置識別データと優先順位データＰｒ−ｊとを含むレコードを生成して参加装置リストに登録し、その後、受付確認メッセージを参加要求メッセージの送信元である通信装置２０−ｊへ返信する。逆に、自装置の優先順位が低い場合には、通信装置２０−ｋの制御部２１０は、その時点の参加装置リストを書き込んだ親機交代指示メッセージを返信して親機の交代を参加要求メッセージの送信元である通信装置２０−ｊに指示するとともに、その参加装置リストに装置識別データが登録されている各通信装置に宛てて新たな親機の装置識別データ（すなわち親機を交代する相手である通信装置２０−ｊの装置識別データ）を送信する。
【００５０】
一方、参加要求メッセージの送信元である通信装置２０−ｊの制御部２１０は上記４種類の通信メッセージの何れが返信されてきたのかによって異なる処理を実行する。未参加通知メッセージが返信されてきた場合には、通信装置２０−ｊの制御部２１０は、他に初期ノードデータの示す通信装置があればその装置へ宛てて参加要求メッセージを送信し応答を待ち受ける。これに対して、他に初期ノードデータの示す通信装置がない場合（初期ノードデータの示す全ての通信装置から未参加通知メッセージが返信されてきた場合）には、以後、この通信装置２０−ｊがデータ共有グループの親機として動作する。また、親機交代指示メッセージが返信されてきた場合も、通信装置２０−ｊの制御部２１０は、その親機交代指示メッセージに書き込まれている参加装置リストを揮発性記憶部２５２に格納し、以後、親機として動作する。
【００５１】
親機紹介メッセージが返信されてきた場合には、通信装置２０−ｊの制御部２１０は、その親機紹介メッセージに書き込まれている装置識別データの示す通信装置（例えば、通信装置２０−ｉ）に宛てて改めて参加要求メッセージを送信する。この参加要求メッセージに対して受付確認メッセージが返信されてきた場合には、通信装置２０−ｊの制御部２１０は、上記装置識別データを親機を示す情報として揮発性記憶部２５２に書き込む。なお、親機交代指示メッセージが返信されてきた場合には、以後、親機として動作する点については前述した通りである。また、通信装置２０−ｊが親機として動作していない状態において、他の通信装置から参加要求メッセージを受信すると、通信装置２０−ｊの制御部２１０は、揮発性記憶部２５２に格納した親機を示す装置識別データを書き込んだ親機紹介メッセージを、当該参加要求メッセージの送信元へ宛てて返信する。
【００５２】
以上に説明した処理が行われる結果、例えば、図１に示す８台の通信装置２０−ｊのうちのｊ＝１〜７に対してデータ共有グループへの参加指示が為されると、詳細については動作例において明らかにするが、図５に示すように、それら７台のうちで最も高い優先順位を有する通信装置２０−１が親機となり、その揮発性記憶部２５２には上記７台の通信装置各々の装置識別データ等が登録された参加装置リストが格納されるのである。
【００５３】
（ｃ）配信経路決定機能
これは、データ共有グループに参加している通信装置２０−ｊ間のデータ配信経路として、図２に示すようなツリー状のデータ配信経路を決定し構築する機能である。詳細については後述するが、本実施形態では、制御部２１０は、例えば、第２通信Ｉ／Ｆ部２３０に接続された、通信装置２０−ｊの配下の通信端末から、データ配信の開始指示等が与えられたことを契機として配信経路決定処理（図６参照）を実行して下流側通信装置を選択し、それら下流側通信装置に対してそれら下流側通信装置にとっての下流側通信装置を選択することを指示するのである。そして、制御部２１０は、自装置の下流側通信装置との間に暗号化通信路を確立して図２に示すようなツリー状のデータ配信路を構築するのである。
【００５４】
（ｄ）配信経路再構築機能
これは、上記配信経路決定機能によりデータ共有グループに参加した複数の通信装置間でのデータ配信経路が決定され、ツリー状のデータ配信経路の構築が行われた後に、このデータ共有グループへ新たに通信装置が参加する（途中参加）或いはデータ共有グループに参加しておりツリー状のデータ配信経路のノードを構成している何れかの通信装置がデータ共有グループから離脱する（中途離脱）場合にデータ配信経路を再構築する機能である。例えば、親機として動作している通信装置２０−ｊの制御部２１０は、他の通信装置から途中参加を要求されると、図７に示す配信経路再構築処理を実行してデータ配信経路の再構築を行う。この配信経路再構築処理についても重複を避けるため動作例の説明においてその詳細を明らかにする。
【００５５】
（ｅ）暗号化通信機能
これは、下流側通信装置との間に暗号化通信路を確立して暗号化通信を行う機能である。なお、暗号化通信の具体的な手法としては、例えば、ＩＰｓｅｃトンネルを下流側通信装置との間に設定する方式やＳＳＬ−ＶＰＮのようにセッション毎に暗号化を行う方式であっても良く、また、フルメッシュＶＰＮ方式であっても良い。このように、データ配信経路に沿ったデータ通信を暗号化しておくことによって共有対象のデータを安全に配信することができるのである。本実施形態では、通信装置２０−ｊ間のデータ通信を仲介する通信網が一般公衆網１０であるため、そのデータ通信を暗号化して行ったが、このような暗号化は必ずしも必須ではない。
【００５６】
（ｆ）状態通知／監視機能
これは、データ共有グループに属する通信装置２０−ｊのうち、予め指定した相手装置（本実施形態では、下流側通信装置）に対して定期的にパケットを送信し、自装置の稼動状況を通知するとともに、自装置を相手装置として指定した他の通信装置２０−ｊ（すなわち、上流側通信装置）から自装置に送信されるパケットの受信状況に基づいてその通信装置２０−ｊ（上流側通信装置）の稼動監視を行う機能である。詳細については後述するが、この機能は、電源断や回線断などにより、データ共有グループに参加しておりツリー状のデータ配信経路のノードを構成している何れかの通信装置が突然データ共有グループから離脱したことを検知することに利用される。
以上が通信装置２０−ｊの構成である。
【００５７】
（Ｂ：動作）
以下、本実施形態の特徴を顕著に示す動作例を図面を参照しつつ説明する。
（Ｂ−１：データ共有グループ形成動作）
以下、通信装置２０−ｊ（ｊ＝１〜７）の各々に対して、各々の（あるいは何れかの）配下にある通信端末等から、通信装置２０−２、通信装置２０−１、通信装置２０−３・・・通信装置２０−７の順にデータ共有グループへの参加指示が順次与えられた場合に、各通信装置２０−ｊの制御部２１０（以下、制御部２１０−ｊと表記する。記憶部２５０など他の構成要素についても同様）が実行する処理について説明する。
【００５８】
通信装置２０−２に対してデータ共有グループへの参加指示が与えられると、制御部２１０−２は不揮発性記憶部２５４−２に格納されている初期ノードデータの示す通信装置２０−ｋ（ｋ≠２）へ参加要求メッセージを送信する。なお、本動作例では各通信装置は自身を除く他の通信装置全てを初期ノードデータとして予め格納しているものとする。本動作例では、通信装置２０−２に対して上記指示が与えられた時点では他の６台の通信装置は何れもデータ共有グループには参加していない。このため、制御部２１０−２は通信装置２０−ｋ（ｋ≠２）の何れからも未参加通知メッセージを受信する。初期ノードデータの示す全ての通信装置からの未参加通知メッセージの受信を確認すると、以後、通信装置２０−２は親機として動作する。併せて通信装置２０−２の揮発性記憶部２５２−２には参加装置リストとして自身の装置識別データ等を記述したものが格納される。
【００５９】
その後、通信装置２０−１に対してデータ共有グループへの参加指示が与えられると、制御部２１０−１は不揮発性記憶部２５４−１に格納されている初期ノードデータの示す通信装置２−ｋ（ｋ≠１）へ参加要求メッセージを送信する。この時点では、通信装置２０−２を除く他の５台がデータ共有グループへ参加していないため、これら５台に対して参加要求メッセージを送信しても、これら５台は何れも未参加通知メッセージを返信する。これに対して、通信装置２０−２は既にデータ共有グループの親機として動作しており、通信端末２０−１に対して受付確認メッセージまたは親機交代指示メッセージの何れかを返信する。本動作例の場合、通信装置２０−２の制御部２１０−２は、通信装置２０−１から参加要求メッセージが送信されてくると、まず、自装置の不揮発性記憶部２５４−２に格納されている優先順位データＰｒ−２と参加要求メッセージに書き込まれている通信装置２０−１の優先順位データＰｒ−１とを比較する。図２に例示するように、本動作例では、通信装置２０−１のほうが通信装置２０−２よりも優先順位が高い（Ｐｒ−１＞Ｐｒ−２）ため、制御部２１０−２は、通信装置２０−１を示す装置識別データを揮発性記憶部２５２−２に格納するとともに、通信装置２０−１に対し揮発性記憶部２５２−２に格納していた参加装置リストを含む親機交代指示メッセージを返信し、以後、通信装置２０−２は親機以外の参加装置として動作する。一方、通信装置２０−１の制御部２１０−１は、上記親機交代指示メッセージを受信すると、その親機交代指示メッセージに書き込まれている参加装置リストを揮発性記憶部２５２−１に書き込むとともに自身の装置識別データ等を参加装置リストに追加し、以後、通信装置１０−１はデータ共有グループの親機として動作する。
【００６０】
親機交代指示メッセージを通信装置２０−１に返信した後は、通信装置２０−２の制御部２１０−２は他の通信装置から参加要求メッセージを受信した場合には、親機を示す情報として通信装置２０−１を示す装置識別データを含んだ親機紹介メッセージを返信する処理を実行する。この状態で通信装置２０−ｊ（ｊ＝３〜７）の各々に対してデータ共有グループへの参加指示が与えられ、制御部２１０−ｊが通信装置２０−２に対して参加要求メッセージを送信すると、通信装置２０−２からは親機紹介メッセージが返信されてくる。制御部２１０−ｊはその親機紹介メッセージに書き込まれている装置識別データの示す通信装置（すなわち、通信装置２０−１）に宛てて参加要求メッセージを再度送信する。通信装置２０−１の制御部２１０−１は、参加要求メッセージに書き込まれている送信元の優先順位データＰｒ−ｊと自装置（すなわち、通信装置２０−１）の不揮発性記憶部２５４−１に格納されている優先順位データＰｒ−１との比較を行うのであるが、本動作例では、通信装置２０−１の優先順位が最も高いため、親機の交代が発生することは無い。通信装置２０−１の制御部２１０−１は、参加要求メッセージの送信元の装置識別データ等を順次参加装置リストに登録する。その結果、図５に示すように、通信装置２０−１を親機とするデータ共有グループが形成され、そのデータ共有グループに参加する通信装置についての装置識別データ等を含む参加装置リストが揮発性記憶部２５２−１に格納されるのである。また、他の通信装置（図５の場合、通信装置２０−２〜７）の揮発性記憶部２５２には、参加したデータ共有グループの親機として機能する通信装置（通信装置２０−１）についての装置識別データがそれぞれ格納される。
以上がデータ共有グループの形成動作である。
【００６１】
（Ｂ−２：配信経路決定処理における動作）
次いで、図５に示すようにデータ共有グループが形成されている状況下で、そのデータ共有グループにおけるデータ配信経路を決定する際の動作について説明する。本実施形態においては、データ共有グループに参加している通信装置２０−ｊ（ｊ＝１〜７）のうち親機または中間ノードの役割を果たすものが各々の配下となるべき通信装置を優先順位に基づいて選択してゆく、といった分散モデルを採用した点に特徴がある。具体的には、以下の要領でツリー状の配信経路が決定される。
【００６２】
具体的には、親機として動作している通信装置２０−１の制御部２１０−１は所定の通信メッセージ（例えば、データの配信開始を指示する旨の配信開始指示メッセージ）を、通信装置２０−１の第２通信Ｉ／Ｆ部２３０−１に接続された通信端末から受信すると（図６：ステップＳＡ１００  Ｙｅｓ）、揮発性記憶部２５２−１に格納された参加装置リストに情報が登録されている通信装置のうち、自装置を除く通信装置の中から優先順位が高い順に予め定められた台数（例えば、２台）だけ選択する（ステップＳＡ１１０）。本動作例において、通信装置２０−１を除く他の６台の通信装置２０−ｊの優先順位はＰｒ−２＞Ｐｒ−３・・・であるから、制御部２１０−１は、図８（ａ）に示すように、下流側通信装置として通信装置２０−２と通信装置２０−３を選択する。なお、以下参照する各図面の参加装置リストにおいて、下流側通信装置として選択された通信装置に対応するレコードを網掛けにて示す。
【００６３】
次いで、制御部２１０−１は、データ共有グループに属する通信装置のなかに自装置とステップＳＡ１１０にて選択した下流側通信装置とを除いて上流側通信装置が未定のもの（以下、上流側未定装置）があるか否かを判定する（ステップＳＡ１２０）。そして、制御部２１０−１はステップＳＡ１２０の判定結果が“Ｙｅｓ”である場合にステップＳＡ１３０の処理を実行する。本動作例においては、図８（ａ）に示すように通信装置２０−１の参加装置リストには自装置を含めて７台の通信装置２０−ｊについての情報が登録されており、これら７台の通信装置２０−ｊのうち自装置（通信装置２０−１）を除いて上流側通信装置が定まっているのは通信装置２０−２および２０−３の２台だけであるからステップＳＡ１２０の判定結果は“Ｙｅｓ”になり、ステップＳＡ１３０の処理が実行される。
【００６４】
ステップＳＡ１３０の処理は、通信装置２０−１の制御部２１０−１が、ステップＳＡ１１０にて選択した各下流側通信装置に対して、各々にとっての下流側通信装置を上流側未定装置のうちから選択すべきことを指示する旨の通信メッセージ（以下、選択指示メッセージ）を送信する処理である。より詳細に説明すると、制御部２１０−１は、まず、参加装置リスト（参加装置リスト１）に格納されているレコードのうちの自装置以外のものをステップＳＡ１１０にて選択した下流側通信装置（この動作例の場合通信装置２０−２および通信装置２０−３）の数分にグループ分けし、このグループ毎に新たな参加装置リスト（参加装置リスト２、３）を生成する。そして、制御部２１０−１は、これら生成した参加装置リストの各々を含む選択指示メッセージをステップＳＡ１１０にて選択した各下流側通信装置に送信する。ここで、上記グループ分けの仕方としては種々の態様が考えられる。例えば、ステップＳＡ１１０にて選択した各下流側通信装置の優先順位が互いに大きく異ならないのであれば、各参加装置リストに含まれる上流側未定装置の数が略均等になり、かつ、各グループに属する通信装置の優先順位の分布も均等になるようにグループ分けする態様が考えられる。これに対してステップＳＡ１１０にて選択した各下流側通信装置の優先順位にばらつきがある場合には、優先順位が高い下流側通信装置に与える参加装置リストほど多くの上流側未定装置を含むものとなるようにグループ分けすれば良い。生成された参加装置リストは選択された下流側通信装置とそのさらに下流に配置されるようにグループ分けされた１乃至複数の上流側未定装置に関する情報が登録されたものとなる。
【００６５】
本動作例では、ステップＳＡ１１０にて下流側通信装置として選択される通信装置２０−２と通信装置２０−３とでは優先順位に大きな差はないため、前者の態様で参加装置リストの分割が行われる。具体的には、図８（ｂ）に示すように、通信装置２０−２に対してはその通信装置２０−２の他に通信装置２０−４および２０−６の情報が登録された参加装置リストが送信され、通信装置２０−３に対してはその通信装置２０−３の他に通信装置２０−５および２０−７の情報が登録された参加装置リストが送信される。なお、親機として動作している通信装置２０−１の制御部２１０−１は、選択指示メッセージ乃至参加装置リストの送信とは別に、自装置の下流側通信装置のうちの適当なものに揮発性記憶部２５２−１に記憶されている参加装置リスト（参加装置リスト１）を送信し、バックアップ用データとして記憶することを指示する。好適には自装置の下流側通信装置のうち最も優先順位の高いもの（処理能力や利用可能な帯域幅などのデータ伝送の能力が最も高く、親機となる順位が自装置の次位となるもの）に参加装置リスト（参加装置リスト１）が送信され、バックアップ用データとして記憶することが指示される。なお、このバックアップ用の参加装置リスト送信と指示とは任意のタイミングで実行すればよく、例えば、上記選択指示メッセージの送信に前後して行われる。このバックアップ用データがどのように使用されるのかについては後に明らかにする。
【００６６】
以降、制御部２１０−２（或いは制御部２１０−３）は、上流側通信装置である通信装置２０−１から送信された選択指示メッセージを受信すると（図６：ステップＳＡ１００  Ｙｅｓ）、その選択指示メッセージに書き込まれている参加装置リスト（参加装置リスト２、３）を揮発性記憶部２５２に格納した後に、上述した制御部２１０−１と同様にステップＳＡ１１０以降の処理を実行する。また、制御部２１０−２（或いは制御部２１０−３）は、選択指示メッセージを受信したことに応じて、選択指示メッセージの送信元の通信装置２０−１の装置識別データを、データ配信経路においてこの通信装置２０−２（或いは通信装置２０−３）の直上に配置された通信装置（すなわち、上流側通信装置）を特定する情報として揮発性記憶部２５２に格納する。なお、制御部２１０−２は、図６のステップＳＡ１１０以降の処理の他に上記バックアップ用データを揮発性記憶部２５２−２に書き込む処理も実行する。
【００６７】
例えば、制御部２１０−２は、通信装置２０−１から受信した参加装置リストを参照し、予め定められた数（例えば、２台）の下流側通信装置を優先順位の高い順に選択する（ステップＳＡ１１０）。図８（ｂ）に示すように通信装置２０−１から通信装置２０−２に送信される参加装置リストには、自装置（通信装置２０−２）、通信装置２０−４および２０−６の情報が含まれているため、制御部２１０−２は、通信装置２０−４および通信装置２０−６を下流側通信装置として選択する。これにより、通信装置２０−１から通信装置２０−２に送信される参加装置リストに登録されている情報の示す各通信装置の上流側通信装置は全て定まることになり、制御部２１０−２が実行するステップＳＡ１２０の判定処理の判定結果は“Ｎｏ”になる。このため、制御部２１０−２はステップＳＡ１３０の処理を実行することなく、配信経路決定処理を終了する。同様に、制御部２１０−３も通信装置２０−１から受信した参加装置リストを参照し、通信装置２０−５および通信装置２０−７を下流側通信装置として選択して、本配信経路決定処理を終了する。以降、親機または中間ノードの役割を担う通信装置２０−ｊの各々は、その下流側通信装置との間に暗号化通信路を確立し、これにより、図８（ｃ）に示すツリー状のデータ配信経路に従った共有対象データの伝播がなされるのである。
【００６８】
以上説明したように本実施形態においては、親機（すなわち、優先順位の最も高い通信装置２０−１）のみがデータ配信経路の決定のための処理を行うのではなく、中間ノードの役割を果たす通信装置２０−２や２０−３もデータ配信経路の決定に寄与する。このため、特定の装置に負荷が集中することはなく、輻輳も発生しにくくなる。加えて、通信装置２０−ｊ（ｊ＝１〜７）のうちで最も優先順位が高いものが親機となり、優先順位の高い通信装置ほど上流側（親機に近い側）の中間ノードとなるようにデータ配信経路が決定される。このため、途中の経路がボトルネックになることはなく、通信効率の高いデータ配信を行うことが可能になる。
【００６９】
（Ｂ−３：通信装置が途中参加する場合の動作）
次いで、データ共有グループが形成されツリー状のデータ配信経路が構築されている状態において、このデータ共有グループに新たな通信装置（途中参加装置）が途中参加する場合の動作を、データ配信経路が図８（ｃ）に示すように定まっている状況を例に説明する。
【００７０】
（Ｂ−３−１：親機よりも優先順位の低い通信装置が途中参加する場合の動作）
まず、通信装置２０−８が途中参加する場合を例にとって、親機よりも優先順位の低い通信装置が途中参加する場合の動作を説明する。通信装置２０−８の不揮発性記憶部２５４−８に格納された優先順位データＰｒ−８の表す優先順位は通信装置２０−１の優先順位データＰｒ−１の表す優先順位以下であるとする。通信装置２０−８の制御部２１０−８はデータ共有グループの形成を指示されると、不揮発性記憶部２５４−８に格納されている初期ノードデータの示す通信装置２０−ｋ（例えば、ｋ＝７）に参加要求メッセージを送信し、その時点の親機の紹介を受ける。前述したように通信装置２０−８が途中参加する時点では、図８（ｃ）に示すようにデータ配信経路が定まっており、その時点の親機は通信装置２０−１であるから、制御部２１０−８は初期ノードデータの示す通信装置２０−ｋから通信装置２０−１を親機として紹介される。このようにして親機を紹介された通信装置２０−８の制御部２１０−８は、前述した参加要求メッセージを当該親機（すなわち、通信装置２０−１）へ送信する（図９（ａ）参照）。一方、制御部２１０−１は参加要求メッセージを受信すると、その参加要求メッセージに書き込まれている事前共有鍵を参照してその送信元の認証を行い、認証を完了すると配信経路再構築処理を実行する。
【００７１】
図７は、通信装置２０−１の制御部２１０−１が実行する配信経路再構築処理の流れを示すフローチャートである。図７に示すように、制御部２１０−１は、途中参加の要求元の通信装置（すなわち、上記途中参加装置：本動作例では通信装置２０−８）が自装置の優先順位よりも高いか否かの判定を行う（ステップＳＢ１００）。この例の場合、参加要求メッセージを送信した通信装置２０−８の優先順位は通信装置２０−１の優先順位以下であるので、ステップＳＢ１００の判定結果は“Ｎｏ”となり、制御部２１０−１はステップＳＢ１２０以降の処理を実行する。
【００７２】
図７のステップＳＢ１２０では、制御部２１０−１は、自装置（通信装置２０−１）の下流側通信装置（図８（ｃ）の例では通信装置２０−２および通信装置２０−３）の中で途中参加装置よりも優先順位の低いものがあるか否かを判定する。そして、ステップＳＢ１２０の判定結果が“Ｙｅｓ”であれば、制御部２１０−１は、ステップＳＢ１３０およびステップＳＢ１４０の処理を実行し、逆にステップＳＢ１２０の判定結果が“Ｎｏ”であればステップＳＢ１４０の処理のみを実行する。
【００７３】
ステップＳＢ１３０は、該当する下流側通信装置を途中参加装置と入れ替える処理である。なお、該当する下流側通信装置が複数ある場合には制御部２１０−１は、それらのうちから１つを選択して途中参加装置との入れ替えを行う。ここで、途中参加装置よりも優先順位の低い下流側通信装置が複数ある場合に入れ替え対象の下流側通信装置を１つ選択する際の具体的な選択態様としては種々の態様が考えられる。例えば、下流側通信装置のうちで優先順位が最も低いものを選択する態様、あるいは途中参加装置よりも優先順位の低い下流側通信装置のうちで最も優先順位の高いものを選択する態様、または途中参加装置よりも優先順位の低い下流側通信装置に通し番号を付与し、その通し番号の範囲内で擬似乱数を発生させ、その擬似乱数と一致する通し番号を有するものを入れ替え対象として選択する態様などが考えられる。
【００７４】
ステップＳＢ１４０は、制御部２１０−１が、下流側通信装置のうちの１つを選択し、その時点の上流側未定装置（ステップＳＢ１３０の処理が実行されていれば、途中参加装置と入れ替えられた通信装置、同処理が実行されていなければ途中参加装置）のレコードを書き込んだ選択指示メッセージを送信して、その上流側未定装置のデータ配信経路への組み入れを指示する処理である。図９（ａ）の例では、制御部２１０−１は、この選択指示メッセージとして途中参加装置に関する情報のみを添付したものを上記選択した下流側通信装置へ送信し、データ配信経路への途中参加装置の組み入れを指示する。このようにして上流側未定装置の組み入れを指示された下流側通信装置の制御部２１０は、この下流側通信装置を起点とした配信経路再構築処理あるいは前述した配信経路決定処理（図６参照）のステップＳＡ１１０以降の処理を実行する。以降、下流側の通信装置２０−ｊにおいても上流側未定装置がなくなるまで配信経路決定処理が順次実行される。なお、途中参加装置の組み入れを指示する下流側通信装置の選択態様としては種々の態様が考えられる。本実施形態では、最も優先順位の高いものを選択する態様が採用されているが、逆に、最も優先順位の低いものを選択する態様であっても良く、また擬似乱数を用いて選択する態様であっても良い。
【００７５】
さて、本動作例においては、途中参加の要求元である通信装置２０−８は、親機である通信装置２０−１の下流側通信装置（すなわち、通信装置２０−２および通信装置２０−３）の何れよりも優先順位が低いため、制御部２１０−１が実行する配信経路再構築処理のステップＳＢ１２０の判定結果は“Ｎｏ”になり、制御部２１０−１はステップＳＢ１４０の処理のみを実行する。本動作例では、通信装置２０−１の下流側通信装置は通信装置２０−２および２０−３であり、前者のほうの優先順位が高いため通信装置２０−２に対して上流側未定装置の組み入れが指示される。
【００７６】
この組み入れ指示に応じて、通信装置２０−２の制御部２１０−２は通信装置２０−２を起点とした場合の配信経路再構築処理を実行する。この配信経路再構築処理では、制御部２１０−２は、まず、組み入れを指示された途中参加装置の優先順位と、自装置（通信装置２０−２）の下流側通信装置として選択していた各通信装置（図８（ｃ）に示す例では通信装置２０−４および通信装置２０−６）の優先順位と、を比較する。そして、制御部２１０−２は、途中参加装置よりも優先順位の低い下流側通信装置がある場合には当該装置を途中参加装置と入れ替え、他の場合には下流側通信装置のいずれかに途中参加装置の組み入れを指示する。本動作例では、優先順位に基づいて通信装置２０−８は通信装置２０−６と入れ替えられ、通信装置２０−４と通信装置２０−８とが通信装置２−２の下流側通信装置となる。さらに、通信装置２０−４と通信装置２０−８では、通信装置２０−８の方が優先順位が高いため、通信装置２０−８に対して上流側未定装置となった通信装置２０−６の組み入れが指示される。この指示に応じて通信装置２０−８の制御部２１０−８は配信経路再構築処理を実行するが、この状態では通信装置２０−８は下流側通信装置を選択していないため（再構築するべき配信経路が未構築であるため）、配信経路決定処理を実行する。制御部２０−８が実行する配信経路決定処理においては、通信装置２０−６が通信装置２０−８の下流側通信装置として選択され、その結果、図９（ｂ）に示すようにデータ配信経路が再構築される。
【００７７】
このように、本実施形態によれば、親機がデータ配信経路全体のトポロジを把握していなくとも、途中参加装置にその優先順位に応じた役割を割り振ってデータ配信経路を再構築することができるのである。加えて、図９（ａ）と図９（ｂ）とを対比すれば明らかように、通信装置２０−３より下流のデータ配信経路には全く影響が生じていない。つまり、本実施形態によれば、データ配信経路の再構築の影響範囲を小さく抑えることもできるのである。
【００７８】
（Ｂ−３−２：親機よりも優先順位の高い通信装置が途中参加する場合の動作）
これに対して、親機よりも優先順位の高い通信装置（以下、通信装置２０−ｘ）が途中参加する場合は、図７のステップＳＢ１００の判定結果は“Ｙｅｓ”になり、前述した親機の交代が発生する。具体的には、制御部２１０−１は、通信装置２０−１よりも高い優先順位を有する通信装置２０−ｘから送信された参加要求メッセージを受信すると、参加装置リスト（参加装置リスト１）とデータ配信経路の構築を指示する旨の指示子とを書き込んだ親機交代指示メッセージを返信する。この親機交代指示メッセージを受信した制御部２１０−ｘは、その親機交代指示メッセージに書き込まれている参加装置リストを揮発性記憶部２５２−ｘに書き込むとともに自身の装置識別データ等の情報を追加し、以後、親機としての処理を実行する。具体的には、制御部２１０−ｘは、その親機交代指示メッセージに書き込まれている指示子に応じてデータ配信経路を再構築する処理を実行する。
【００７９】
ここで、制御部２１０−ｘがデータ配信経路を再構築する際の具体的な態様としては種々の態様が考えられる。第１に、参加装置リストの格納内容にしたがってデータ配信経路全体を再構築する態様（通信装置２０−ｘ以外の全ての通信装置２０−ｊを上流側未定装置として図６のステップＳＡ１１０以降の処理を実行する態様）が考えられる。このような態様によれば、データ共有グループに参加している通信装置２０−ｊの各々に対してその処理能力等に応じた役割を割り振ってデータ配信経路を再構築することができるといった利点があるものの、再構築の影響範囲が大きくなるといった欠点もある。
【００８０】
そこで、上記第１の態様の他に、図１０（ａ）に示すように通信装置２０−１のみを通信装置２０−ｘの下流側通信装置としてデータ配信経路を再構築する態様（以下、第２の態様）や、図１０（ｂ）に示すように通信装置２０−１と通信装置２０−１の下流側通信装置であった通信装置（すなわち、通信装置２０−２および通信装置２０−３）とを通信装置２０−ｘの下流側通信装置とする態様（以下、第３の態様）を採用することも考えられる。これらの態様によれば、通信装置２０−ｘの途中参加が発生する以前に親機の役割を担っていた通信装置２０−１の下流側通信装置よりも下流のデータ配信経路に影響が生じることはなく、データ配信経路の再構築の影響範囲を最小限にすることができる。なお、図１０（ａ）に示す態様での再構築を実現するには、通信装置２０−１のみを上流側未定装置とした状態で図６のステップＳＡ１１０以降の処理を通信装置２０−ｘの制御部２１０に実行させるようにすれば良い。また、図１０（ｂ）に示す態様での再構築を実現するには、通信装置２０−１、２０−２および２０−３を上流側未定装置とし、かつ、通信装置２０−ｘが選択可能な下流側通信装置の数を３台とした状態で図６のステップＳＡ１１０以降の処理を通信装置２０−ｘの制御部２１０に実行させるようにすれば良い。なお、上記第２または第３の態様にて再構築処理を行う場合には、データ配信経路の起点（ルートノード）となる親機の通信装置、および末端以外（中間ノード）の通信装置は、前述の配信経路決定処理においてそれぞれ下流のブランチを構成する各グループを示す情報（すなわち、参加装置リスト）を記憶しておき、再構築に応じてその情報を更新するのである。
【００８１】
なお、上記第１〜第３の態様の何れか１つを選択するのではなく、親機の交代が発生した直後には第２または第３の態様によってデータ配信経路を再構築し、その後、一定時間経過後に第１の態様による再構築を行うようにしても勿論良い。これは、データ配信経路が構築されている状態では何らかのデータ配信が行われている可能性があるため、データ配信経路の大幅な変更によってそのデータ配信が妨げられないようにするとともに、そのデータ配信が終了するころを見計らってデータ配信経路をより効率の良いものへと再構築するためである。また、データ共有グループ内でのデータ配信が実際に行われているか否かを親機に検出させることができる場合には、親機の交代が発生した時点でデータ配信が行われているのであれば第２または第３の態様でデータ配信経路を再構築するとともにそのデータ配信の終了を検出した時点で第１の態様による再構築を行い、親機の交代が発生した時点でデータ配信が行われていないのであれば即座に第１の態様でデータ配信経路を再構築するようにしても良い。なお、親機よりも優先順位の低い通信装置が途中参加する場合において、下流側通信装置と途中参加装置とを入れ替える際に、入れ替え対象となる下流側通信装置（上述の例では、通信装置２０−６）の下流にさらに他の通信装置が下流側通信装置として配置されている場合においても、ここで説明した第１〜第３の態様またはその組み合わせによってデータ配信経路の再構築が行われる。
【００８２】
（Ｂ−４：通信装置が中途離脱する場合の動作）
次いで、データ配信経路が図９（ｂ）に示すように定まっている状況下で、親機または中間ノードの役割を担っている通信装置２０−ｊが中途離脱する場合の動作について説明する。なお、上記データ配信経路において下流側の末端ノード（例えば、図９（ｂ）の通信装置２０−４、２０−５、２０−６、および２０−７）が中途離脱したとしてもデータ配信経路の再構築を行う必要はないため、これら末端ノードが中途離脱する場合については説明を省略する。
【００８３】
（Ｂ−４−１：親機以外の通信装置が中途離脱する場合の動作）
まず、図９（ｂ）に示す状態において通信装置２０−８が中途離脱する場合を例にとって中間ノードの役割を担っている通信装置２０−ｊが中途離脱する場合の動作を図１１を参照しつつ説明する。本実施形態では、中間ノードの役割を担っている通信装置２０−ｊがデータ共有グループから中途離脱する場合、その旨を上流側通信装置へ通知する処理（以下、離脱通知処理）を行ってから離脱することを原則としている。中間ノードの役割を担っている通信装置が中途離脱すると、その中途離脱した通信装置の下流側通信装置および当該下流側通信装置よりもさらに下流側の通信装置はデータの共有を行えなくなる。このため、中途離脱の要求元の通信装置２０−ｊを除いてデータ配信経路を再構築し、その再構築が完了してから離脱させるようにしたのである。しかし、何らかのハードウェア障害や、電源の切断、或いは通信回線の切断等によって離脱通知処理が行われることなく、中間ノードの役割を担っている通信装置２０−ｊの中途離脱が生じる場合も起こり得る。以下、所定の離脱通知処理を行って通信装置２０−４が中途離脱する場合と、離脱通知処理を行わずに中途離脱する場合に分けて説明する。
【００８４】
（Ｂ−４−１−１：離脱通知を行ってから離脱する場合）
データ共有グループからの離脱を指示された通信装置２０−ｊの制御部２１０は、まず、離脱通知処理を実行する。この離脱通知処理では、制御部２１０は、離脱を要求する旨の通信メッセージ（以下、離脱要求メッセージ）に揮発性記憶部２５２に格納されている参加装置リスト（通信装置２０−ｊより下流に配置されている１乃至複数の通信装置の装置識別データおよび優先順位データ）を書き込んで上流側通信装置へ送信する。例えば、図９（ｂ）に示すようにデータ配信経路が構築されている状況下で、制御部２１０−８が第２通信Ｉ／Ｆ部２３０に接続された通信端末からデータ共有グループからの離脱を指示されると、制御部２１０−８は、揮発性記憶部２５２を参照し、通信装置２０−６についての情報を書き込んだ離脱要求メッセージを通信装置２０−８の上流側通信装置である通信装置２０−２へ送信する（図１１（ａ）参照）。
【００８５】
一方、下流側通信装置から離脱要求メッセージを受信した通信装置の制御部２１０は、その離脱要求メッセージに書き込まれている参加装置リストに登録された通信装置を上流側未定装置とし、その参加装置リストの示す通信装置のうちから優先順位の最も高いものを下流側通信装置として選択した後に図６のステップＳＡ１２０以降の処理を実行する。以後、上流側未定装置がなくなるまで、新たに下流側通信装置として選択される各通信装置２０も図６のステップＳＡ１２０以降の処理を順次実行し、データ配信経路の再構築を行う。併せて、下流側通信装置から離脱要求メッセージを受信した通信装置の制御部２１０は、さらに上流側の通信装置に対して、下流側の通信装置が離脱したことを通知し、以下、親機として動作する通信装置までこの情報が伝播される。当該通知を受信した通信装置の制御部２１０は、離脱した通信装置に対応するレコードを参加装置リストから削除する。例えば、図１１（ａ）に示すように、通信装置２０−８から送信された離脱要求メッセージを受信した制御部２１０−２は、その離脱要求メッセージに書き込まれている参加装置リストの示す通信装置（すなわち、通信装置２０−６）と、通信装置２０−４と、を新たに下流側通信装置として選択し（図１１（ｂ）参照）、データ配信経路を再構築するのである。
【００８６】
（Ｂ−４−１−２：離脱通知を行わずに離脱する場合）
これに対して、図９（ｂ）に示す状態において、通信装置２０−８が上記離脱通知処理を行うことなく突然離脱した場合には、通信装置２０−８の下流側通信装置である通信装置２０−６の制御部２１０−６は前述した状態通知／監視機能によってその離脱を検出し、通信装置２０−８が中途離脱したことを通知する旨の通信メッセージ（以下、離脱通知メッセージ）を親機（すなわち、通信装置２０−１）に送信する（図１１（ｃ）参照）。以降、制御部２１０−１は、離脱した通信装置（本動作例では、通信装置２０−８）に対応するレコードを参加装置リストから削除し、離脱通知メッセージの送信元の通信装置を途中参加と同様の手順でデータ配信経路に組み入れる処理を実行する。
【００８７】
例えば、図１１（ｃ）に示すように、通信装置２０−６から通信装置２０−８の離脱を通知された場合には、制御部２１０−１は、通信装置２０−２に対して通信装置２０−８の不在通知を行うとともに、通信装置２０−６の組み入れを指示する。これにより、通信装置２０−６は通信装置２０−２の下流側通信装置としてデータ配信経路に組み込まれるのである。なお、この場合、通信装置２０−６よりも下流に既にデータ配信経路が構築されている場合でも、それを維持したままデータ共有グループ全体のデータ配信経路を再構築することができる。つまり、本実施形態によれば、余計な再計算を行うことなくデータ配信経路の再構築を行えるのである。また、図１１（ｃ）を参照すれば明らかように、通信装置２０−３より下流のデータ配信経路は変化しないため、データ配信経路の再構築の影響範囲を最小限に抑えることができるのである。
【００８８】
（Ｂ−４−２：親機が中途離脱する場合の動作）
次いで、図９（ｂ）に示す状態から親機として動作している通信装置２０−１が中途離脱する場合について説明する。
【００８９】
親機として動作している通信装置２０−ｊが中途離脱する場合、その通信装置２０−ｊの制御部２１０は、自装置の下流側通信装置のうち参加装置リストをバックアップ用データとして格納しておくことを指示したもの（好適には、下流側通信装置のうちの優先順位の高い方、すなわち、データ共有グループ内において親機の次に優先順位が高い通信装置）に離脱要求メッセージを送信する。例えば図９（ｂ）に示す状態において通信装置２０−１が中途離脱する場合、通信装置２０−１から通信装置２０−２へ離脱要求メッセージが送信される。制御部２１０−２は上流側通信装置から離脱要求メッセージを受信した場合には、以後、親機としての処理を実行する。具体的には、制御部２１０−２は、揮発性記憶部２５２−２に記憶されているバックアップ用データに基づいて参加装置リストを生成し（具体的には通信装置２０−１に関するレコードを参加装置リストから削除し）、この生成した新たな参加装置リストに基づいてデータ配信経路の再構築を行い、次位の通信装置２０−ｊ（すなわち、通信装置２０−３）へ、生成した新たな参加装置リストを送信し、バックアップ用データとして記憶させる処理を実行する。
【００９０】
この場合の再構築の態様についても種々の態様が考えられる。具体的には、通信装置２０−２が通信装置２０−１からバックアップ用データとして受信していた参加装置リストの格納内容に基づいてデータ配信経路全体を再構築する態様であっても良く、また、図１２に示すように、通信装置２０−４、２０−８および通信装置２０−３の各々より下流側のデータ配信経路を維持したままデータ配信経路を再構築する態様や両者を併用する態様であっても良い。例えば、通信装置２０−４、２０−８および通信装置２０−３の各々より下流側のデータ配信経路を維持したままデータ配信経路を再構築する態様を実現するには、通信装置２０−３のみを上流側未定装置とし、かつ、通信装置２０−２が選択可能な下流側通信装置の数を３台として図６のステップＳＡ１１０以降の処理を制御部２１０−２に実行させるようにすれば良い。なお、通信装置２０−３のみを上流側未定装置として扱えるようにするためには、下流側通信装置を示す情報を書き込んだ離脱要求メッセージを通信装置２０−１に送信させ、その情報の示す通信装置のうちで自装置を除いたものを上流側未定装置として扱う処理を制御部２１０−２に実行させるようにすれば良い。また、親機が離脱要求メッセージを送信することなく中途離脱したことを上記状態通知／監視機能によって制御部２１０−２が検出した場合についても同様に、制御部２１０−２は、揮発性記憶部２５２−２に記憶されているバックアップ用データを参加装置リストとしてデータ配信経路の再構築を行い、次位の通信装置２０−ｊ（すなわち、通信装置２０−３）へその参加装置リストを送信し、バックアップ用データとして記憶させる処理を実行する。
以上が親機が中途離脱した場合の動作である。
【００９１】
このように親機が中途離脱する場合（或いはハードウェア障害等によって中途離脱した場合）も、データ配信経路を再構築することができ、また、その再構築の態様によっては、その影響範囲を最小限に抑えることができる。
【００９２】
以上説明したように、本実施形態によれば、特定の通信装置２０−ｊに過大な負荷がかかることを回避しつつ、通信装置２０−ｊ間のデータ配信経路を各通信装置２０−ｊの処理能力等に応じて柔軟に定め、それら通信装置２０−ｊへの同一データの配信を効率的に行うことが可能になる。加えて、本実施形態においては、通信装置２０−ｊ間の通信方式はパケット交換方式であるから、所謂オーバレイネットワークを構築することにより、接続回線を選ばず、自由に複数の宛先へデータの同時転送が可能である。このため、オーバレイネットワークにおいて柔軟なネットワークトポロジを構築することができ、また全ての通信装置２０−ｊへデータを配信するのに要する時間を短くすることもできる。
【００９３】
（Ｃ：まとめ）
以上本発明の実施形態について説明したが、この実施形態に現れた本発明の概念をまとめると以下のようになる。
図１３〜図１５は、本発明の概念を説明する図である。図１３に示すように通信装置２０−ｊは、データ共有グループ内でデータ配信経路を構築するための選択手段と指示手段とを備えている。なお、選択手段および指示手段は制御部２１０が実現する機能である。選択手段はツリー状のデータ配信経路において、通信装置２０−ｊの直下に位置すべき通信装置（すなわち、下流側通信装置）を選択する。図１３には、通信装置２０−ｊが通信装置２０−ｍおよび通信装置２０−ｎを下流側通信装置として選択した状態が例示されている。下流側通信装置として選択する数は１以上の任意の数であってよい。通信装置２０−ｊが下流側通信装置を選択すると、指示手段は、この選択した下流側通信装置に対してさらに当該下流側通信装置にとっての下流側通信装置を選択するよう指示を行う。
【００９４】
ツリー状のデータ配信経路の起点（ルートノード）となる親機（起点通信機器）から、下流側通信装置（木構造における中間ノード或いはリーフノード）の選択およびその選択した下流側通信装置に対して下流側通信装置を選択する指示（言うまでもなく、選択した下流側通信装置がリーフノードとなるのであれば、この指示は行われない、あるいは指示が行われたとしてもその下流側通信装置（リーフノード）においてさらに下流側通信装置の選択が行われることはない）を順次行い、データ共有グループを形成する各通信装置が協働することによりデータ配信経路が決定される。
【００９５】
その際、図１４に示すように各通信装置間では、下流側通信装置として選択され得る他の通信装置のリストが通知される。図１４には、通信装置２０−ｊが通信装置２０−ｍおよび通信装置２０−ｎを選択した状態で、これら選択した通信装置に通知するリスト（図１４に示す例では、リストｍおよびリストｎ）をリスト生成手段が生成し、リストｍを通信装置２０−ｍに、リストｎを通信装置２０−ｎにそれぞれ通知する様子が例示されている。通信装置２０−ｊが保持するリストは、例えば通信装置２０−ｍおよび通信装置２０−ｎを含むＮ個の通信装置が記述されたものであり、選択手段は当該リストに記述された通信装置のうちから下流側通信装置を選択する。リスト生成手段は、当該リストから選択手段によって下流側通信装置として選択された通信装置を除外して、下流側通信装置に通知する新たなリスト（図１４に示す例では、リストｍおよびリストｎ）を生成する。この際、リストｍおよびリストｎは各々に記述された通信装置が重複しないように生成される。当該リストを通知された通信装置２０−ｍおよび２０−ｎは、通信装置２０−ｊからの指示に応じて同様にリストから（すなわち、通信装置２０−ｊから通知されたリストから）、さらに下流側通信装置を選択するのである。
【００９６】
なお、好適には、各通信装置における下流側通信装置の選択は、下流側通信装置として選択され得る各通信装置の処理能力（処理速度等）あるいは利用可能なネットワーク帯域等、通信装置のデータ伝送能力を指標化した優先順位に基づいて行い、選択手段は優先順位が高いもの（データ伝送能力が高いもの）から順に下流側通信装置を選択することが好ましい。このような優先順位は上記リストとして順次下流の通信装置（中間ノード）に通知される。このように選択することで、データ伝送能力の低い通信装置が木構造の中間ノードとして配置され当該通信装置が共有データ伝播のボトルネックとなることを回避することができるとともに、簡易なアルゴリズムで通信効率の高いデータ配信経路を構築することが可能になる。
【００９７】
本発明においては、さらに、図１５に示すようにツリー状のデータ配信経路を経由して共有対象のデータが配信される。各通信装置は、通信装置相互間でデータ伝送を行うための第１の通信手段と、他のネットワーク機器（パーソナルコンピュータなどのクライアント端末）との間でデータ伝送を行うための第２の通信手段と、第１の通信手段を介して上流側の通信装置から受信した共有対象のデータを記憶して保持するための共有データ記憶手段とを備えている。共有データ記憶手段に記憶されたデータは、選択手段により選択された下流側通信装置に配信（転送）され、また、第２の通信手段に接続されているネットワーク機器からのリクエストに応じて当該ネットワーク機器に提供される。
【００９８】
このように、本発明においては、木構造におけるルートノードおよび中間ノードの役割を果たす通信装置それぞれがデータ配信経路の決定に寄与するため、特定の通信装置に負荷が集中することはなく、輻輳も発生しにくくなる。また、本発明によれば、特定の通信装置に負荷が集中することはないため、サーバ・クライアント方式の通信システムに比較してスケーラビリティが高くなる。
【００９９】
また、例えば、処理能力の高さや通信網にて利用可能な帯域幅の広さといったデータ伝送能力を指標化した優先順位を各通信装置に割り当て、これに基づいて下流側に配置される通信装置を選択するようにすれば、データ配信経路の上流側においてボトルネックが発生しにくくなり、簡易なアルゴリズムで通信効率の高いデータ配信経路を構築し、当該構築されたデータ配信経路にて短時間にデータ配信を完了することが可能になる。
【０１００】
さらに、各通信装置間の通信方式は回線交換方式に限定されるものではないから、例えばパケット交換方式を採用することにより、所謂オーバレイネットワークを構築して複数の宛先へのデータの同時配信を行うことができる。このため、本発明によれば、特許文献１に開示された技術やＰ２Ｐ型の通信システムに比較して、データ共有グループに属する全ての通信装置に対して短時間のうちに確実にデータを行き渡らせることができる。また、上記データ配信経路の決定の際にフルメッシュの通信を行う必要もないから、特許文献２に開示された技術に比較して各通信装置に過大な処理負荷がかかることもない。
【０１０１】
（Ｄ：変形）
以上本発明の一実施形態について説明したが、この実施形態に以下に述べる変形を加えても勿論良い。
（１）以上の説明では、通信装置２０−ｊの処理能力およびその通信装置２０−ｊが利用可能な帯域幅の両者に基づいてその通信装置２０−ｊの優先順位を定めたが、何れか一方に基づいて優先順位を定めても勿論良く、また、他の指標（例えば、配下の通信端末数など）に応じて優先順位を定めても良い。また、各通信装置２０−ｊの処理能力等に大差がない場合には、例えば通信アドレスの若い順に高い優先順位を割り当てるような態様であっても良い。要は、データ共有グループを形成する通信装置２０−ｊの各々に対して何らかの指標に基づいて優先順位付けがなされていれば良い。
【０１０２】
（２）以上の説明では、各通信装置２０−ｊの優先順位が予めシステム管理者等によって定められていたが、例えば利用可能な帯域幅を各通信装置２０−ｊの制御部２１０に計測させ、その計測値に応じて自装置の優先順位を算出させるようにしても良い。また、上述した実施形態では、データ共有グループへの参加指示を契機としてデータ共有グループを形成する処理（具体的には、初期ノードデータの示す他の通信装置２０−ｋに参加要求メッセージを送信する処理）を制御部２１０−ｊに実行させたが、データの配信開始を指示されたこと（すなわち、配信開始指示メッセージを配下の通信端末から受信したこと）または通信装置２０−ｊの電源が投入されたことを契機としてデータ共有グループを形成する処理を制御部２１０−ｊに実行させるようにしても良い。
【０１０３】
（３）以上の説明では、一般公衆網１０と各拠点内ＬＡＮとを接続するルータに本発明を適用した。しかし、本発明の適用対象はルータなどの中継装置に限定されるものではなく、データ通信の終端に位置する通信端末（例えば、拠点内ＬＡＮに収容され、各ユーザに使用される通信端末）に本発明を適用しても勿論良い。要は、他の通信装置とデータ通信を行う通信装置であれば、本発明を適用することができる。
【０１０４】
（４）以上の説明では、途中参加装置の組み入れを指示する際に送信される選択指示メッセージには、途中参加装置に関する情報のみを添付したが、配信経路決定時と同様、途中参加装置に関する情報を含む参加装置リストを選択指示メッセージに添付するようにしても良い。
【０１０５】
（５）以上の説明では、選択指示メッセージに参加装置リストを添付したが、選択指示メッセージと参加装置リストとを、異なるタイミングにて各々別個に下流側通信装置へ送信するようにしても良い。また、以上の説明では、送信元の参加装置リストを分割したものに相当するものを下流側に送信したが、送信元の参加装置リストの各レコードに選択した下流側通信装置のグループに属する通信装置をグループ毎に識別するフラグを付与したものを下流側に送信しても良い。この場合、各通信装置にて保持される参加装置リストのサイズ（レコード数）は同一となる。また、参加装置リストに加え、データ配信経路の起点となる親機から選択した下流側通信装置へ至るまでの経路（パス）を併せて通知するようにしても良い。
【０１０６】
（６）以上の説明では、通信装置が下流側通信装置を選択する場合、下流側通信装置を選択した後に当該選択した通信装置の下流側に配置される他の（選択されなかった）通信装置をグループ化し、当該グループに関する参加装置リストを通知するようにしたが、最初に参加装置リストを所定数（１以上）のグループに分け、各グループの中から下流側通信装置として１の通信装置を選択するようにしても良い。例えば、図８の例の場合、親機となった通信装置２０−１は参加装置リストに登録された自装置を除く通信装置を第１のグループ（通信装置２０−２、通信装置２０−４、通信装置２０−６）と第２のグループ（通信装置２０−３、通信装置２０−５、通信装置２０−７）とに分け、各グループの中からそれぞれ１の通信装置（通信装置２０−２および通信装置２０−３）を下流側通信装置として選択するようにしても良い。この場合もデータ共有グループ形成時に取得した各通信装置の優先順位（あるいは上流側の通信装置から通知された参加装置リストに記述された各通信装置の優先順位）に基づいて、例えば優先順位順にグループ毎に１つずつ通信装置を振り分け、その中から最も優先順位の高いものを下流側通信装置として選択すれば良い。
【０１０７】
（７）以上の説明では、データ共有グループから通信装置が離脱する際に、離脱する通信装置が、離脱要求メッセージをデータ配信経路において直上に配置された上流側通信装置へ送信したが、離脱要求メッセージを親機へ送信するようにしても良い。例えば、図９（ｂ）に示すようにデータ配信経路が構築されている状況下で、制御部２１０−８が第２通信Ｉ／Ｆ部２３０−８に接続された通信端末からデータ共有グループからの離脱を指示されると、制御部２１０−８は、離脱要求メッセージを親機である通信装置２０−１へ送信する。この場合、離脱要求メッセージを受信した通信装置２０−１の制御部２１０−１は、揮発性記憶部２５２−１に記憶している参加装置リストから通信装置２０−８に関するレコードを削除し、以降、上記「Ｂ−４−１−２：離脱通知を行わずに離脱する場合」にて説明した手順と同様の手順によってデータ配信経路の再構築を行う。
【０１０８】
（８）以上の説明では、離脱要求メッセージを送信することなく通信装置がデータ共有グループから離脱した場合、その離脱を検知した下流側の通信装置が親機に離脱通知を行ったが、下流側の通信装置が上流側にある通信装置に順次離脱通知メッセージの送信を行う態様を採用しても良い。この場合、データ配信経路において直上に配置された通信装置が突然離脱したことを検知した通信装置は、中途離脱装置の上流に配置された通信装置から上流に向って、応答があるまで順次離脱通知メッセージを送信する。図１１（ｃ）に示した例の場合、通信装置２０−８が離脱したことを検知した通信装置２０−６は、まず、通信装置２０−２に離脱通知メッセージを送信する。仮に離脱通知メッセージの送信先の通信装置から応答が無かった場合（所定時間経過しても応答が無かった場合等）は、通信装置２０−６は、さらに上流側の通信装置（この場合は通信装置２０−１）に離脱通知メッセージを送信する。一方、離脱通知メッセージを受信した通信装置は、離脱通知メッセージの送信元の通信装置を途中参加の場合と同様の手順でデータ配信経路に組み入れる処理を実行する。なお、このような態様でデータ配信経路の再構築処理を行う場合には、各通信装置に少なくともデータ配信経路の起点となる親機から自装置に至るまでの経路（パス等）を記憶させておく必要がある。
【０１０９】
（９）以上の説明では、離脱要求メッセージの送信を行わずに通信装置がデータ共有グループから離脱した場合、その離脱を下流側の通信装置が検知したが、上流側の装置が下流側の装置の接続状態を前述した状態通知／監視機能によって検出するようにしても良い。あるいは、親機が集中的にデータ共有グループに参加している各通信装置の接続状態を監視し、親機にて通信装置の離脱を検知するようにしても良い。
【０１１０】
（１０）以上の説明では、データ共有グループから通信装置が離脱した際、各通信装置の参加装置リストから離脱した通信装置に関するレコードを削除するものとしたが、これに代えて、参加装置リストの各レコードに参加／離脱状態を示す状態フラグを付記し、この状態フラグの値に基づいて参加／離脱を識別するようにしても良い。例えば、状態フラグとして“０”または“１”の何れかの値をとる２値データを用い、データ共有グループに参加している状態では状態フラグの値を“１”とし、データ共有グループから離脱した状態では同状態フラグの値を“０”とするのである。例えば、図５、図８に示す例の場合、データ共有グループを形成した段階にあるため、参加装置リスト中の各装置の状態フラグの値は“１”となる。図９に示す例の場合、途中参加した通信装置２０−８に関するレコードが状態フラグの値を“１”とした状態で親機である通信装置２０−１の参加装置リストに追加される。また、図１１に示す例の場合、通信装置２０−８が離脱したため、通信装置２０−１および通信装置２０−２においては、それぞれの参加装置リストに含まれている通信装置２０−８に関するレコードの状態フラグが離脱状態を示す値“０”に書き換えられ、以後、通信装置２０−１および通信装置２０−２の各々は通信装置２０−８がデータ共有グループに属さないものとして共有データの伝送を行わない。
【０１１１】
このような構成を採用した場合、各通信装置に格納される参加装置リストの内容は状態フラグの値が更新されるのみであり、一旦離脱した通信装置がデータ共有グループに復帰した際、参加装置リストに含まれている当該通信装置に関する情報を再利用することが可能になる。例えば、図１１に示す例の場合、通信装置２０−８が再びデータ共有グループに参加した場合、通信装置２０−１および通信装置２０−２は、各々の参加装置リストの通信装置２０−８に関するレコードの状態フラグを“１”に戻すとともに、通信装置２０−２が通信装置２０−８を下流側通信装置として再選択することで簡易にデータ配信経路を再構築することができる。
【０１１２】
（１１）以上の説明では、本発明の特徴を顕著に示す配信経路決定処理や配信経路再構築処理を制御部２１０に実行させる通信制御プログラムが不揮発性記憶部２５４に予め記憶されていた。しかし、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などのコンピュータ装置読み取り可能な記録媒体に上記通信制御プログラムを書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより上記通信制御プログラムを配布しても良い。このようにして配布される通信制御プログラムを一般的な通信装置にインストールしその制御部を当該通信制御プログラムにしたがって作動させることで当該通信装置に本発明に係る通信装置と同一の機能を付与することが可能になるからである。
【０１１３】
（１２）以上の説明では、配信経路決定処理および配信経路再構築処理をプログラムで実現した。しかし、通信装置２０−ｊがスクリプト実行機能を備えている場合には、これら各処理をスクリプトで実現しても勿論良い。具体的には、図６に示す配信経路決定処理を制御部２１０に実行させるためのコマンド列を所定のスクリプト言語で記述したテキストファイルである配信経路決定処理スクリプトと、図７に示す配信経路再構築処理を制御部２１０に実行させるためのコマンド列を同スクリプト言語で記述したテキストファイルである配信経路再構築処理スクリプトとを不揮発性記憶部２５４に予め記憶させておき、通信装置２０−ｊの電源投入を契機として上記各スクリプトの解釈および実行を制御部２１０に開始させるのである。なお、上記スクリプト記述言語としては種々のものを用いることが考えられるが、Ｌｕａを用いることが好ましい。Ｌｕａは、ｐｅｒｌなどの他のスクリプト言語に比較してスクリプトファイルの解釈および実行に要するメモリ量等が少なく、電子機器への組み込みに好適だからである。
【符号の説明】
【０１１４】
１０…一般公衆網、２０−ｊ（ｊ＝１〜８）…通信装置、２１０…制御部、２２０…第１通信Ｉ／Ｆ部、２３０…第２通信Ｉ／Ｆ部、２４０…外部機器Ｉ／Ｆ部、２５０…記憶部、２５２…揮発性記憶部、２５４…不揮発性記憶部、２６０…バス。
【図１】
2011229132.tif 000003
【図２】
2011229132.tif 000004
【図３】
2011229132.tif 000005
【図４】
2011229132.tif 000006
【図５】
2011229132.tif 000007
【図６】
2011229132.tif 000008
【図７】
2011229132.tif 000009
【図８】
2011229132.tif 000010
【図９】
2011229132.tif 000011
【図１０】
2011229132.tif 000012
【図１１】
2011229132.tif 000013
【図１２】
2011229132.tif 000014
【図１３】
2011229132.tif 000015
【図１４】
2011229132.tif 000016
【図１５】
2011229132.tif 000017