(57)【要約】【課題】中継ノードに障害が発生したときにも、データの漏れ、重複をなくし確実に配信先ノードにデータを配信することができるように、マルチキャスト通信を実現する。【解決手段】配信元ノード及び中継ノードが、１段下の中継ノードの障害を検知すると２段下である中継ノードを１段下の中継ノードとして木構造を構成変更する。障害を検知した中継ノードは、構成変更で下位ノードとなった中継ノードの最終受信データの通番を取得し、データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとし、また、下位ノードでの最終受信データの通番から障害を検知したノードの最終受信データの通番までのデータのうちデータ蓄積キューに存在しないデータがある場合、上位ノードに対して該当する通番のデータの配信を要求する。この時、既に上位ノードに配信要求をしている通番のデータの配信は要求しない。【選択図】図１２
2008141361.tif 000002
【特許請求の範囲】
【請求項１】
配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおけるデータ配信方法において、
前記データ配信システムは、前記配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが１段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成されており、
前記配信元ノード及び中継ノードは、１段下の下位ノードと２段下の下位ノードとの情報を記憶手段内に保持しており、１段下の中継ノードの障害を検知すると２段下である中継ノードを１段下の中継ノードとする木構造の構成変更を行い、前記記憶手段内の１段下の下位ノードと２段下の下位ノードとの情報を更新することを特徴とするデータ配信方法。
【請求項２】
前記中継ノードは、上位ノードからのデータを受信して、受信データをデータ蓄積キュー蓄積保存し、各下位ノードに前記データ蓄積キューのどのデータを送信済みかを前記記憶手段内に記録しておき、構成変更により下位ノードとなった中継ノードの最終受信データの通番を取得し、前記データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとすることを特徴とする請求項１記載のデータ配信方法。
【請求項３】
前記中継ノードは、前記下位ノードの最終受信データの通番から障害を検知したノードの最終受信データの通番までのデータのうち前記データ蓄積キューに存在しないデータがある場合、上位ノードに対して該当する通番のデータを配信要求することを特徴とする請求項２記載のデータ配信方法。
【請求項４】
前記中継ノードは、既に他の下位ノード障害により上位ノードに配信要求をしているデータの通番と重複しない通番の配信要求を上位ノードに通知することを特徴とする請求項３記載のデータ配信方法。
【請求項５】
配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおいて、
前記データ配信システムは、前記配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが１段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成されており、
前記配信元ノード及び中継ノードは、１段下の下位ノードと２段下の下位ノードとの情報を記憶手段内に保持する保持手段と、１段下の中継ノードの障害を検知する手段と、１段下の中継ノードの障害を検知したとき、２段下である中継ノードを１段下の中継ノードとする木構造の構成変更を行う手段と、前記保持手段内の１段下の下位ノードと２段下の下位ノードとの情報を更新する手段とを有して構成されることを特徴とするデータ配信システム。
【請求項６】
配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが１段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成され、前記配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおける中継ノードであって、
中継ノードは、１段下の下位ノードと２段下の下位ノードとの情報を記憶手段内に保持する保持手段と、１段下の中継ノードの障害を検知する手段と、１段下の中継ノードの障害を検知したとき、２段下である中継ノードを１段下の中継ノードとする木構造の構成変更を行う手段と、上位ノードからのデータを受信する手段と、受信データを蓄積保存するデータ蓄積キューと、各下位ノードに前記データ蓄積キュー内のどのデータを送信済みかを前記記憶手段に記録する記録手段と、構成変更により下位ノードとなった中継ノードの最終受信データの通番を取得する手段と、前記データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとする手段とを有することを特徴とする中継ノード装置。
【請求項７】
配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが１段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成され、前記配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおける中継ノードでのデータ中継処理プログラムにおいて、
１段下の下位ノードと２段下の下位ノードとの情報を記憶手段内に保持するステップと、１段下の中継ノードの障害を検知するステップと、１段下の中継ノードの障害を検知したとき、２段下である中継ノードを１段下の中継ノードとする木構造の構成変更を行うステップと、前記記憶手段内の１段下の下位ノードと２段下の下位ノードとの情報を更新するステップと、上位ノードからのデータを受信するステップと、受信データをデータ蓄積キューに蓄積保存するステップと、各下位ノードに前記データ蓄積キュー内のどのデータを送信済みかを記録するステップと、構成変更により下位ノードとなった中継ノードの最終受信データの通番を取得するステップと、前記データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとするステップとを有し、前記各ステップを前記中継ノードのＣＰＵに実行させることを特徴とするデータ中継処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ配信方法、データ配信システム及びノード装置に係り、特に、多数のサーバに大量のデータを、データの漏れや重複なく、高い信頼性を持って配信することができるようにしたデータ配信方法、データ配信システム及びノード装置に関する。
【背景技術】
【０００２】
一般に、同一のデータを複数の宛先に転送する１対多通信はマルチキャスト通信と呼ばれている。このような通信で転送されるデータであるアプリケーションとして、例えば、ソフトウェア配信、ビデオストリーミング等がある。また、これら以外に企業内ネットワークにおいて文書、ファイル等のデータを多数のサーバに配信して業務を行う形態が考えられる。この場合、ソフウェア配信と異なり連続してデータが発生するが、ビデオのデータ配信と異なりデータ欠損は許されない。
【０００３】
マルチキャスト通信は、宛先の数が数千、数万と増加するに従って配信元のノードが所属するネットワーク負荷が増大するため、中継ノードを設置してネットワークを木構造とすることにより配信元ノードの負荷を軽減する方法が、例えば、特許文献１等に記載されて提案されている。
【０００４】
一方、データの漏れや重複が生じることなく確実にデータの転送を可能としたデータ配信方法として、送信ノードから受信ノードにデータを送信する際に、送信すべきデータを送信ノードの記憶装置に一旦格納した上で、データの転送を行うストア＆フォワード方式と呼ばれる方法が知られている。この方法において、送信ノードは、受信応答が返ってきた時点で一時的に格納しておいたデータを消去し、応答が返ってこない場合、データの再送を行っている。また、受信ノードは、どのデータを受信したのを示す受信状態を記憶しておくことにより、２重に送信された受信データを破棄してデータの重複を防止している。ストア＆フォワード方式による方法は、前述のような動作を行うことにより、サーバやネットワークに障害が発生した場合等にも、重複のない確実なデータ配信を行うことが可能である。また、この方法は、記憶装置への一時的なデータの格納を先入れ先出しとすることにより、データ配信の順序性を保証することができる。
【０００５】
前述した木構造のネットワークにおける各ノード間、具体的には、配信元ノードと中継ノードとの間、中継ノードと次段の中継ノードとの間、及び、中継ノードと配信宛先ノードとの間の通信に、ストア＆フォワード方式の方法を使用することにより、多数の配信先に確実なデータ転送を実現することができる。
【特許文献１】特開２００５−２５６２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述で説明した木構造のネットワークにストア＆フォワード方式の方法を適用してデータの配信を行うようにした従来技術は、中継ノードに障害が発生した場合、障害ノードの下位ノードにデータが配信されなくなってしまうという問題点を有している。このような問題点を解決するために、ノード障害の発生時にネットワークの木構造を再形成することにより全ノードにデータを配信することができるようにした方法も考えられるが、この方法は、障害が発生した中継ノードにデータが滞留している場合、そのデータが消失してしまうという問題点を生じさせてしまう。
【０００７】
本発明の目的は、前述した従来技術の問題点を解決し、マルチキャスト通信を実現するにあたり、中継ノードに障害が発生したときにも、データの漏れ、重複をなくし確実に配信先ノードにデータを配信することができ、かつ、データ再送のトラフィック量を低減することができるデータ配信方法、データ配信システム及びノード装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明によれば前記目的は、配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおけるデータ配信方法において、前記データ配信システムは、前記配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが１段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成されており、前記配信元ノード及び中継ノードは、１段下の下位ノードと２段下の下位ノードとの情報を記憶手段内に保持しており、１段下の中継ノードの障害を検知すると２段下である中継ノードを１段下の中継ノードとする木構造の構成変更を行い、前記記憶手段内の１段下の下位ノードと２段下の下位ノードとの情報を更新することにより達成される。
【０００９】
また、前記目的は、配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが１段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成され、前記配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおける中継ノードであって、中継ノードは、１段下の下位ノードと２段下の下位ノードとの情報を記憶手段内に保持する保持手段と、１段下の中継ノードの障害を検知する手段と、１段下の中継ノードの障害を検知したとき、２段下である中継ノードを１段下の中継ノードとする木構造の構成変更を行う手段と、上位ノードからのデータを受信する手段と、受信データを蓄積保存するデータ蓄積キューと、各下位ノードに前記データ蓄積キュー内のどのデータを送信済みかを前記記憶手段に記録する記録手段と、構成変更により下位ノードとなった中継ノードの最終受信データの通番を取得する手段と、前記データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとする手段とを有することにより達成される。
【発明の効果】
【００１０】
本発明によれば、中継ノードに障害が発生したときにも、データの漏れ、重複をなくし確実に配信先ノードにデータを配信することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明によるデータ配信方法、データ配信システム及びノード装置（以下、単に、ノードという）の実施形態を図面により詳細に説明する。
【００１２】
図１は本発明の一実施形態による配信システムを構成する木構造の配信ネットワークの構成例を示すブロック図である。
【００１３】
本発明の実施形態による配信システムは、配信元ノード１００、１段目の中継ノード１０１、２段目の中継ノード１１１、１１２、３段目の中継ノード１２１〜１２４、最終的な宛先である配信先ノード１３１〜１３８から構成される。配信元ノード１００は、下位ノードである１段目の中継ノード１０１にデータを配信する。中継ノード１０１は、下位ノードである２段目の中継ノード１１１、１１２に同一のデータを配信する。中継ノード１１１は、下位ノードである３段目の中継ノード１２１、１２２に上位ノードである１段目の中継ノード１０１から受信したデータを配信する。同様に、中継ノード１１２は、下位ノードである３段目の中継ノード１２３、１２４に上位ノードである１段目の中継ノード１０１から受信したデータを配信する。３段目の中継ノード１２１〜１２４は、それぞれ下位ノードである配信先ノード１３１〜１３８に受信したデータを配信する。
【００１４】
図１に示す例は、中継ノードの下位に接続する下位ノードの数を２つとして示しているが、各段における中継ノードの下位に接続される下位ノードの数は、実際には数１０以上であることを想定している。また、図１に示す例は、配信元ノードと配信先ノードとの間に、３段の中継ノードを接続して木構造のネットワークを構成しているが、中継ノードの段数は、１段であってもよく、あるいは、３段以上であってもよく、任意の段数としてよい。
【００１５】
なお、図１に示す配信システムを構成するネットワークは、正常時に配信データ等をノード間で送信することかできるネットワークを示しており、実際のネットワークは、中継ノード等の障害に対処するため、少なくとも、あるノードから２段下位のノードに接続することができる通信路が備えられて構成されている。
【００１６】
本発明の実施形態によるデータ配信システムは、図１に示すように、中継ノードを配置したネットワークを木構造とすることにより配信元ノードから直接配信先ノードにデータの配信を行う場合に比べて、配信元ノードの負荷を大きく軽減することができる。例えば、配信先サーバが１０００台ある場合、配信元サーバの下位に１０台の１段目の中継ノードを配置し、１段目の中継ノードのそれぞれの下位ノードとして１０台の２段目の中継ノードを配置し、２段目の中継ノードのそれぞれの下位に１０台の配信先ノードを配置する木構造のネットワークとすることにより、配信元ノードは、１０台のノードへのデータの配信だけで、１０００台の配信先ノードにデータを配信することができることになり、配信元サーバのに通信負荷を極めて少ないものとすることができる。
【００１７】
図２３は中継ノードの構成を示すブロック図である。図示中継ノード２０は、ハードウェアとして、記憶手段であるメモリ２１とＣＰＵ２２とを備えて構成される。なお、図２３に示す中継ノード２０の構成は、中継ノードの構成であるとして説明するが、配信元ノードも同一の構成であってよい。
【００１８】
中継ノード２０のメモリ２１には、データ蓄積キュー２１０、配信管理テーブル２２０、再配信管理テーブル２４０、木構造管理テーブル２７０により構成されるテーブル群２３と、通常のデータ受信を処理するデータ受信手段２３０１、再配信データの受信を処理する再配信データ受信手段２３０２、通常のデータ送信を処理するデータ送信手段２３０３、再配信データの送信を処理する再配信データ送信手段２３０４、下位ノードに再配信するデータの配信を上位ノードに依頼する再配信依頼手段２３０５、下位ノードから再配信を依頼されたときの処理をする再配信依頼受信手段２３０６、中継ノード障害時に木構造再構成の指示を行う木構造再構成指示手段２３０７、木構造再構成の指示に応答する木構造再構成応答手段２３０８、新たに中継ノードとして接続する中継ノード接続手段２３０９による機能部群とが格納されている。
【００１９】
前述の機能部群を構成する各手段は、プログラムとして構成され、各手段を構成するプログラムは、ＣＰＵ２１により実行されることにより各手段が必要とするそれぞれの機能が構築される。
【００２０】
図２はテーブル群２３内の詳細な構成を説明する図であり、次に、これについて説明する。テーブル群２３として、データ蓄積キュー２１０、配信管理テーブル２２０、再配信管理テーブル２４０、木構造管理テーブル２７０が備えられている。
【００２１】
データ蓄積キュー２１０には、上位ノードから受信した配信データａ２１１、配信データｂ２１２、……、配信データＮ２１３が全ての下位ノードに配信完了するまで格納される。
【００２２】
配信管理テーブル２３０は、受信通番管理テーブル２２１と送信管理テーブル２３１とにより構成される。受信通番管理テーブル２２１には、上位ノードから最後に受信した配信データの通番である最終受信通番２２２が設定される。送信管理テーブル２３１は、データ蓄積キュー２１０に格納された配信データを下位ノード毎に管理する送信管理エントリａ２３２、送信管理エントリｂ２３３、……、送信管理エントリＮ２３４により構成される。
【００２３】
再配信管理テーブル２４０は、再配信通番管理テーブル２４１と再送管理テーブル２５１とにより構成される。再配信通番管理テーブル２４１には、再配信要求エントリポインタ２４２が設定され、上位ノードにデータの再配信を要求する単位毎に再配信要求エントリａ２４３、再配信要求エントリｂ２４４、再配信要求エントリｃ２４５がチェーンされている。再送管理テーブル２５１は、データ蓄積キュー２１０に格納された再配信データを下位ノード毎に管理する再送管理エントリａ２５２、再送管理エントリｂ２５３、……、再送管理エントリＮ２５４により構成される。そして、各再送管理エントリからは、下位ノードから通知を受けた再送要求を管理する再送要求エントリａ２６１、再送要求エントリｂ２６２、再送要求エントリｃ２６３がチェーンされている。
【００２４】
木構造管理テーブル２７０は、上位ノードを管理する上位ノードテーブル２７１、下位ノードを管理する下位ノードテーブル２７２、下位ノードとそのまた下位のノードの組合せを管理する下位ノード接続テーブル２７３により構成されている。
【００２５】
図３は木構造管理テーブル２７０を構成する各テーブルの構成を説明する図である。図３に示す各テーブルの構成は、図１に示すシステムにおける中継ノード１０１が備える木構造管理テーブル２７０の内容として示しているが、各テーブルの内容は、中継ノード毎に異なるものとなる。
【００２６】
上位ノードテーブル２７１は、図３（ａ）に示すように、上位ノード名称３０１と上位ノードアドレス３０２との項目により構成され、図示例では、上位ノード名称３０１の項目にノード１０１、上位ノードアドレス３０２の項目にＩＰ＿１０１が設定されている。
【００２７】
下位ノードテーブル２７２は、図３（ｂ）に示すように、下位ノード名称３１０と下位ノードアドレス３２０との項目を持つレコードが、接続されている下位ノードの数だけ設けられて構成される。図示例では、下位ノード名称３１０、下位ノードアドレス３２０の組として、ノード１２１、ＩＰ＿１２１のレコードと、ノード１２２、ＩＰ＿１２２のレコードとが設定されている。
【００２８】
下位ノード接続テーブル２７３は、下位ノード名称３３０、その下のノード名称である２段下位ノード名称３４０及びそのアドレスである２段下位ノードアドレス３５０の各項目で構成されたレコードが複数設けられて構成される。図示例では、下位ノード名称３３０、２段下位ノード名称３４０、２段下位ノードアドレス３５０の組として、ノード１２１、ノード１３１、ＩＰ＿１３１のレコード、ノード１２１、ノード１３２、ＩＰ＿１３２のレコード、ノード１２２、ノード１３３、ＩＰ＿１３３のレコード、ノード１２２、ノード１３４、ＩＰ＿１３４のレコードの４つのレコードが設定されている。
【００２９】
図４は配信データの構成と配信管理テーブル２３０の構成とを説明する図であり、次に、これについて説明する。
【００３０】
配信データは、ノードポインタ部４１０、配信元が配信データに一意に付与した連続した番号である通番４１１、配信データの実体をあらわすデータ実体４１２により構成されている。
【００３１】
送信管理テーブル２３１の送信管理エントリａ２３２には、データ蓄積キュー２１０に格納されている各配信データの送信状態を管理する送信管理レコードａａ４２１、送信管理レコードａｂ４２２が各配信データの通番４１１順にチェーンされている。同様に、送信管理エントリｂ２３３には、送信管理レコードｂａ４２３、送信管理レコードｂｂ４２４が各配信データの通番４１１順にチェーンされ、送信管理エントリＮ２３４には、送信管理レコードＮａ４２５、送信管理レコードＮｂ４２６が各配信データの通番４１１順にチェーンされている。
【００３２】
送信管理テーブル２３１の各送信管理エントリにチェーンされている送信管理レコードのそれぞれは、送信先の下位ノード名称４５１、送信状態を表す状態４５２及び配信データのデータ蓄積キュー２１０内での位置を示す配信データポインタ４５５により構成される。配信データポンタ４５５で示される配信データの通番４１１を参照することにより送信データの通番を確認することができる。また、状態４５２には、未送信を示す「未」４６１、送信完了を示す「済」４６２、再送信待ちを示す「再」４６３の３つの状態があり、配信データの状態に応じて、１つの状態が設定される。また、各送信管理レコードは、配信データのノードポインタ部４１０から対応する送信管理レコードａａ４２１がポイントされ、順に送信管理レコードｂａ４２３、送信管理レコードＮａ４２５というように、同じ通番を管理する送信管理レコードがチェーンされている。
【００３３】
送信管理エントリのそれぞれは、送信管理レコードチェーンの先頭を指す先頭ポインタ４３１、最終を指す最終ポインタ４３２、送信管理レコードの状態４５２が「未」の状態で対応する通番の一番上位（若い）の送信管理レコードを指す送信先頭ポインタ４３３、送信先ノードを示す下位ノード名称４３４から構成される。
【００３４】
図５は再配信管理テーブル２４０内の再送管理テーブル２５１の構成を説明する図である。
【００３５】
再送管理テーブル２５１の送信管理エントリａ２５２には、データ蓄積キューに格納されている各配信データの送信状態を管理する再送管理レコードａａ５２１、再送管理レコードａｂ５２２が各配信データの通番４１１順にチェーンされている。同様に、再送管理エントリｂ２５３には、再送管理レコードｂａ５２３、再送管理レコードｂｂ５２４が各配信データの通番４１１順にチェーンされ、送信管理エントリＮ２５４には、再送管理レコードＮａ５２５、再送管理レコードＮｂ２６）がチェーンされている。
【００３６】
各再送管理レコードは、送信先の下位ノード名称５５１、再送状態を表す状態５５２及び配信データのデータ蓄積キュー２１０内での位置を示す配信データポインタ５５３により構成される。配信データポインタ５５３で示される配信データの通番４１１を参照することにより再送データの通番を確認することができる。また、状態５５２には、送信完了を示す「済」５６１、再送信待ちを示す「再」５６２の２つの状態があり、再送データの状態に応じて、１つの状態が設定される。また、配信データのノードポインタ部４１０から対応する再送管理レコードａｂ５２２がポイントされ順に再送管理レコードｂｂ５２４、送信管理レコードＮｂ５２６というように、同じ通番を管理する再送管理レコードがチェーンされている。
【００３７】
再送管理エントリのそれぞれは、再送管理レコードチェーンの先頭を指す先頭ポインタ５３１、最終を指す最終ポインタ５３２、再送管理レコードの状態５５２が「再」状態で対応する通番の一番上位（若い）の再送管理レコードを指す再送先頭ポインタ５３３、再送先ノードを示す下位ノード名称５３４、再送要求エントリを指す再送要求部ポインタ５３５により構成される。
【００３８】
再送要求エントリのそれぞれは、再送要求のあった範囲の最も上位（若い）の通番である再送要求上位通番５４１、再送要求のあった範囲の最も下位の通番である再送要求下位通番５４２により構成される。
【００３９】
図６は再配信管理テーブル２４０内の再配信管理テーブル２４１の再配信要求エントリの構成を説明する図である。再配信要求エントリのそれぞれは、上位ノードに通知した再配信要求範囲の最も上位（若い）の通番である再配信要求上位通番６０１、最も下位の通番である再配信要求下位通番６０２により構成される。
【００４０】
図７はノード相互間で授受される電文形式を説明する図であり、次に、これについて説明する。
【００４１】
接続電文ａ７１０は、図７（ａ）に示すように、上位ノードに新たに下位ノードとして加わることを通知する電文であり、自ノードのノード名称７１１、自ノードのノードアドレス７１２により構成される。
【００４２】
接続電文ｂ７２０は、図７（ｂ）に示すように、自ノードの下位にどのようなノードが接続されているかを上位ノードに通知する電文であり、自ノードのノード名称７２１、下位ノードの下位ノード名称７２２、下位ノードの下位ノードアドレス７２３により構成される。
【００４３】
配信電文７３０は、図７（ｃ）に示すように、配信ノードから配信されるデータの電文であり、配信元ノ−ドで昇順に付与される通番７３１、データの実体である配信データ７３３により構成される。
【００４４】
上位ノード変更電文７４０は、図７（ｄ）に示すように、下位ノードに対して上位ノードの変更を指示する電文であり、上位ノードのノード名称７４１、上位ノードの上位ノードアドレス７４２により構成される。
【００４５】
上位ノード変更応答電文７５０は、図７（ｅ）に示すように、上位ノード変更電文７４０に対する応答電文であり、自ノードのノード名称７５１、自ノードでの受信通番管理テーブル２２１の最終受信通番２２２の値を設定した最終受信通番７５２により構成される。
【００４６】
再配信要求電文７６０は、図７（ｆ）に示すように、下位ノードから上位ノード変更応答電文７５０または再配信要求電文７６０を受信して再配信するデータ通番を通知されたが、自ノードに該当する通番の配信データがない場合に、さらに上位ノードに再配信を要求するための電文であり、自ノードのノード名称７６１、再配信を要求する最も上位（若い）の通番である再配信要求上位通番７６２、最も下位の通番である再配信要求下位通番７６３により構成される。
【００４７】
図８は木構造のネットワーク内に新たな中継ノードが接続されたときの関係するノードでの処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する例は、ノード１１１が新たに中継ノード１０１の下位ノードとして接続され、ノード１２１が新たに中継ノード１１１の下位ノードとして接続され、配信先としてのノード１３１が新たにノード１２１の下位ノードとして接続される場合の例である。
【００４８】
（１）ノード１１１は、中継ノードとしてネットワークへの接続を開始すると、上位ノードであるノード１０１の情報を上位ノードテーブル２７１に設定し、受信通番管理テーブル２２１の最終受信通番２２２に−１を設定し、接続電文ａ７１０を作成してノード１０１に、自ノードの接続を通知する。最終受信通番２２２に−１を設定したのは、自ノード配信データを全く保持していないことを示すためである（ステップ８１０〜８１３）。
【００４９】
（２）ノード１０１は、ノード１１１から接続電文ａ７１０を受信すると、新たに接続されたノード１１１の情報を下位ノードテーブル２７２に追加する（ステップ８１４）。
【００５０】
（３）一方、新たな中継ノード１１１の下位ノードとして接続するノード１２１は、中継ノードとしてネットワークへの接続を開始すると、接続電文ａ７１０を作成してノード１１１に自ノードの接続を通知する（ステップ８２０、８２１）。
【００５１】
（４）ノード１１１は、ノード１２１からの接続電文ａ７１０を受信すると、接続電文ａ７１０に含まれるノード１２１の情報を下位ノードテーブル２７２に追加し、送信管理デーブル２３１に送信管理エントリを追加し、再送管理デーブル２５１に再送管理エントリを追加すると共に、接続電文ｂ７２０をノード１０１に送信する（ステップ８２２〜８２５）。
【００５２】
（５）ノード１０１は、中継ノード１１１からの接続電文ｂ７２０を受信すると、ノード１１１、１２１の組のレコードを下位ノード接続デーブル２７３に追加する（ステップ８２６）。
【００５３】
（６）また、ノード１２１の下位の配信先ノード１３１として接続するノード１３１は、配信先ノードとしてネットワークへの接続を開始すると、接続電文ａ７１０を作成してノード１２１に自ノードの接続を通知する（ステップ８３０、８３１）。
【００５４】
（７）ノード１２１は、ノード１３１からの接続電文ａ７１０を受信すると、接続電文ａ７１０に含まれるノード１３１の情報を下位ノードテーブル２７２に追加し、接続電文ｂを作成してノード１１１に送信する（ステップ８３２、８３３）。
【００５５】
（８）ノード１１１は、中継ノード１２１からの接続電文ｂ７２０を受信すると、ノード１２１、１３１の組のレコードを下位ノード接続テーブル２７３に追加する（ステップ８３４）。
【００５６】
図９は配信データを上位ノードから受信したときの中継ノードでの受信処理の動作を説明するフローチャートであり、次に、これについて説明する。
【００５７】
（１）受信データがあったことを検知すると受信処理を開始し、まず、受信した配信電文７３０の通番７３１が受信通番管理テーブル２２１の最終受信通番２２２＋１の値と等しいか、または、最終受信通番の値が−１となっているか否かを判定（ステップ９００、９０１）。
【００５８】
（２）ステップ９０１の判定で、受信した配信電文７３０の通番７３１が最終受信通番２２２＋１の値と等しいか、または、最終受信通番の値が−１となっていた場合、受信データをデータ蓄積キュー２１０に格納する（ステップ９０２）。
【００５９】
（３）その後、データ受信時の送信管理テーブルの更新処理（この処理の詳細については、図１０により後述する）を行い、最終受信通番２２２に受信したデータの通番７３１を設定すると共に、上位ノードにデータを正常に受信したという正常応答を返却して、ここでの処理を終了する（ステップ９０３〜９０５、９１０）。
【００６０】
（４）ステップ９０１での判定の結果、受信した配信電文７３０の通番７３１が最終受信通番２２２＋１の値と等しくなかった場合で、かつ、最終受信通番の値が−１でなかった場合、再配信データ受信処理（この処理の詳細については、図１９により後述する）を行った後、配信電文７３０の通番７３１が最終受信通番２２２の値以下か否かを判定する（ステップ９０６、９０７）。
【００６１】
（５）ステップ９０７での判定で、配信電文７３０の通番７３１が最終受信通番２２２の値以下であった場合、上位ノードにデータを正常に受信したという正常応答を返却し、また、ステップ９０７での判定で、配信電文７３０の通番７３１が最終受信通番２２２の値以下でなかった場合、上位ノードに異常応答を返却して、ここでの処理を終了する（ステップ９０５、９０８、９１０）。
【００６２】
図１０は図９に示すフローのステップ９０３でのデータ受信時の送信管理テーブルの更新の処理動作を説明するフローチャートであり、次に、これについて説明する。
【００６３】
（１）この処理を開始すると、まず、送信管理テーブル２３１の先頭の送信管理エントリを更新対象として、その送信管理エントリからチェーンされている送信管理レコードの最終に新たな送信管理レコードを追加し、追加した送信管理レコードの状態４５２に「未」４６１を設定する（ステップ１０００〜１００３）。
【００６４】
（２）次に、対象とした送信管理エントリの送信先頭ポンタ４３３の値がＮＵＬＬ（データ蓄積キューに配信データが存在しない）となっているか否かを判定し、ＮＵＬＬであった場合、送信先頭ポインタ４３３が追加した送信管理レコードを指すよう設定する（ステップ１００４、１００５）。
【００６５】
（３）ステップ１００５の処理の後、または、ステップ１００４での判定で、対象とした送信管理エントリの送信先頭ポンタ４３３の値がＮＵＬＬでなかった場合、ポイントしている送信管理レコードが送信管理テーブル２３１の最終エントリか否かを判定し、ポイントしている送信管理レコードが送信管理テーブル２３１の最終エントリであった場合、ここでの処理を終了する（ステップ１００６、１０１０）。
【００６６】
（４）ステップ１００６での判定で、ポイントしている送信管理レコードが送信管理テーブル２３１の最終エントリであった場合、送信管理テーブル２３１からチェーンされる送信管理レコードの次エントリをポイントした後、ステップ１００２からの処理に戻って、送信管理エントリからチェーンされている送信管理レコードの最終に新たな送信管理レコードを追加して処理を続ける（ステップ１００７）。
【００６７】
図１１は配信データを下位ノードに送信するときの中継ノードでの送信処理の動作を説明するフローチャートであり、次に、これについて説明する。
【００６８】
（１）処理の開始後、まず、データ再配信処理を実行する。このデータ再配信処理の詳細については、図２１に示すフローを参照して後述する（ステップ１１００、１１０１）。
【００６９】
（２）データ再配信処理の実行後、送信管理テーブル２３１の送信管理エントリの送信先頭ポインタ４３３の値がＮＵＬＬとなっているか否かを判定し、送信先頭ポインタ４３３の値がＮＵＬＬとなっていた場合、送信すべきデータがデータ蓄積キュー２１０に存在しないため、一定時間sleep した後、ステップ１１０１のデータ再配信処理に戻って、処理を繰り返す（ステップ１１０２、１１１４）。
【００７０】
（３）ステップ１１０２での判定で、送信先頭ポインタ４３３の値がＮＵＬＬでなかった場合、送信先頭ポインタ４３３が指す送信管理レコードに対応する配信データを、データ蓄積キュー２１０から下位ノードに送信し、下位ノードから正常応答を受信したか否かを判定する（ステップ１１０３、１１０４）。
【００７１】
（４）ステップ１１０４での判定で、下位ノードから正常応答を受信した場合、送信管理レコードの次の送信管理レコードが存在するか否かを判定し、存在した場合、送信管理エントリの送信先頭ポインタ４３３に次の送信管理レコードを設定し、存在しなかった場合、送信先頭ポインタ４３３にＮＵＬＬを設定１１０７する（ステップ１１０５、１１０６、１１０７）。
【００７２】
（５）ステップ１１０６、１１０７の処理の後、送信管理レコードの状態４５２を「済」４６２に設定し、配信データに対応する全ての送信管理レコードの状態４５２が「済」４６２となっているか否かを判定し、全ての送信管理レコードの状態４５２が「済」４６２となっていた場合、配信データに対応する全ての送信管理レコードを解放し、配信データをデータ蓄積キュー２１０から削除する（ステップ１１０８〜１１１１）。
【００７３】
（６）ステップ１１１１の処理の後、あるいは、ステップ１１０９での判定で、送信管理レコードの状態４５２が「済」４６２となっていないものがあった場合、ステップ１１０１からのデータ再送処理に戻って処理を繰り返す。
【００７４】
（７）ステップ１１０４での判定で、下位ノードから正常応答を受信しなかった場合、下位ノードから異常応答を受信したか否かを判定し、下位ノードから異常応答を受信しなかった場合、下位ノードの確認がとれないため再送信する必要があり、ステップ１１０１からのデータ再送処理に戻って処理を繰り返す（ステップ１１１２）。
【００７５】
（８）ステップ１１１２での判定で、下位ノードから異常応答を受信していた場合、データの抜けが発生したと判断して異常終了する。これは、運用による回復が必要なためである（ステップ１１１３）。
【００７６】
図１２は中継ノード障害時にネットワークの木構造を再構成する例を説明する図である。ここで示す例は、図１に示すシステムにおける中継ノード１２１が障害１２０１となった場合の例である、中継ノード１２１に障害が発生した場合、下位ノードである中継ノード１３１、１３２（説明している本発明の実施形態では配信先ノード）にデータが配信されなくなる。このため、中継ノード１２１の上位の中継ノード１１１は、新たにノード１３１、１３２を下位ノードとする木構造再形成１２１１、１２１２を実施することにより、データ配信を継続することができるようにする。
【００７７】
図１３は木構造のネットワークの木構造を再構成する場合の関係するノードでの処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する例は、ノード１２１で障害１３０１が発生し、ノード１１１がその障害を検知した場合の処理である。
【００７８】
（１）ノード１１１は、ノード１２１での障害１３０１の発生を検知すると、木構造管理テーブル２７０の１つである下位ノードテーブル２７２から障害ノード１２１の情報を削除した後、下位ノード接続テーブル２７３から下位ノード名称３３０が障害ノードであるレコードの２段下位ノード名称３４０に該当するノードを構成変更を指示するノードとして選択する（ステップ１３０２〜１３０４）
（２）説明している例では、障害ノードであるレコードの２段下位ノード名称３４０として、ノード１３１、１３２の情報を得ることができるので、ノード１１１は、上位ノード変更電文７４０を作成し、この電文をこれらのノードに送信（ステップ１３０５）。
【００７９】
（３）上位ノード変更電文７４０を受信したノード１３１、１３２は、自ノード内の上位ノードテーブル２７１にノード１１１の情報を設定し、上位ノード変更応答電文７５０を作成して、ノード１１１に送信する（ステップ１３０６、１３０７）。
【００８０】
（４）ノード１１１は、ノード１３１、１３２から上位ノード変更応答電文７５０を受信すると、下位ノード接続テーブル２７３から２段下位ノード名称３４０が応答電文７５０のノード名称７５１と一致するレコードを削除し、受信したノードの情報を下位ノードテーブル２７２に追加した後、接続電文ｂ７２０を作成して、この接続電文ｂ７２０を上位ノード１０１に送信する（ステップ１３０８〜１３１０）。
【００８１】
（５）一方、ノード１３１、１３２は、上位ノード変更応答電文７５０をノード１１１に送信した後に、接続電文ｂ７２０を作成し、その電文をノードに送信してくるので、ノード１１１は、ノード１３１、１３２からの接続電文ｂ７２０を受信し、受信したノードの組を下位ノード接続テーブル２７３に追加すると共に、送信管理テーブル２３１に送信管理エントリを追加する（ステップ１３１１〜１３１３）。
【００８２】
（６）そして、ノード１１１は、送信管理レコードを作成し、各レコードの状態４５２に障害発生ノード（ノード１２１）と同じ値を設定し、また、再送管理テーブル２５１に再送管理エントリを追加１３１５して再送管理レコードを作成し、各レコードの状態５５２に「済」５６１を設定する（ステップ１３１４〜１３１６）。
【００８３】
（７）さらに、ノード１１１は、再送要求エントリを作成し、再送要求上位通番５４１に上位ノード変更応答電文７５０の最終受信通番７５２を設定し、再送要求下位通番５４２には０を設定して、再送管理テーブル２５１の該当エントリから再送要求エントリをポイント１３１８する（ステップ１３１７、１３１８）。
【００８４】
（８）その後、ノード１１１は、ノード１３１、１３２の全てから上位ノード変更応答電文７５０を受信したか否かを判定し、まだ、応答電文７５０を全て受け取っていなかった場合、他ノードからの上位ノード変更応答電文７５０の受信を待ち、ステップ１３０８からの処理を繰り返す（ステップ１３１９）。
【００８５】
（９）ステップ１３１９での判定で、応答電文７５０の全てを受け取っていた場合、蓄積データ削除処理（この処理の詳細については、図１４により後述する）を実行した後、再配信依頼処理（この処理の詳細については、図１５により後述する）を実行する（ステップ１３２０、１３２１）。
【００８６】
図１４は図１３に示すフローのステップ１３２０での蓄積データ削除処理の動作を説明するフローチャートであり、次に、これについて説明する。
【００８７】
（１）蓄積データ削除の処理が開始されると、ノード１１１は、送信管理テーブル２３１の障害発生ノード（ここではノード１２１）を指す送信管理エントリをポイントし、また、先頭の送信管理レコードをポイントする（ステップ１４００〜１４０２）。
【００８８】
（２）送信管理レコードが存在するか否かを判定し、存在しなかった場合、ここでの処理を終了し、存在した場合、その送信管理レコードを削除する（ステップ１４０３、１４１０、１４０５）。
【００８９】
（３）次に、該当する配信データの通番４１１に対応する全送信管理レコードの状態４５２が「済」４６２になっているか否かを判定し、「済」４６２になっていた場合、該当配信データに対応する全送信管理レコードを削除すると共に、データ蓄積キュー２１０から配信データを削除する（ステップ１４０６〜１４０８）。
【００９０】
（４）ステップ１４０８の処理の後、または、ステップ１４０６での判定で、状態４５２が「済」４６２になっていない送信管理レコードがあった場合、次の送信管理レコードをポイントし、ステップ１４０３からの処理に戻って処理を繰り返す（ステップ１４０９）。
【００９１】
図１５は図１３に示すフローのステップ１３２１での再配信依頼を上位ノードに通知する再配信依頼処理の動作を説明するフローチャートであり、次に、これについて説明する。
【００９２】
（１）再配信依頼の処理が開始されると、ノード１１１は、再送管理テーブル２５１の構成変更したノードに対応する再送管理エントリの最上位エントリをポイントし、再送要求エントリの再送要求上位通番５４１が、送信管理エントリの送信先頭ポインタ４３３の指す送信管理レコードに対応する配信データの通番４１１より値が小さいか否かを判定する（ステップ１５００〜１５０２）。
【００９３】
（２）ステップ１５０２での判定で、再送要求エントリの再送要求上位通番５４１が、送信管理レコードに対応する配信データの通番４１１より値が小さかった場合、再送要求エントリの再送要求下位通番５４２に送信先頭ポインタ４３３の指す送信管理レコードに対応する配信データの通番４１１＋１を設定する（ステップ１５０３）。
【００９４】
（３）次に、送信管理レコードに再送要求上位通番５４１以下で、状態４５２が「未」４６１のレコードが存在する場合、その状態４５２を「再」４６３に設定し、再送管理レコードに再送要求上位通番５４１以下で状態５５２が「済」５６１のレコードが存在する場合、その状態５５２を「再」５６２に設定する（ステップ１５０４、１５０５）。
【００９５】
（４）ステップ１５０２での判定で、再送要求エントリの再送要求上位通番５４１が、送信管理レコードに対応する配信データの通番４１１より値が大きかった場合、対応する配信データが自ノードのデータ蓄積キュー２１０に存在しているため、再送要求エントリを削除する（ステップ１５３０）。
【００９６】
（５）ステップ１５０５の処理の後、または、ステップ１５３０の処理の後、構成変更したノードの再送管理エントリがまだあるかいなかを判定し、再送管理エントリがまだある場合、再送管理テーブル２５１の構成変更したノードの再送管理エントリの次のエントリをポイントし、ステップ１５０２の処理に戻って処理を繰り返す（ステップ１５０６、１５０７）。
【００９７】
（６）ステップ１５０６での判定で、構成変更したノードの再送管理エントリがなかった場合、再配信要求エントリを作成し、再送要求上位通番５４１の中で一番上位の番号を、再配信通番管理テーブル２４１の再配信要求エントリポインタ２４２の再配信要求エントリの再配信要求上位通番６０１に設定し、再送要求下位通番５４２の中で一番下位の番号を再配信要求下位通番６０２に設定した後、再配信要求電文７６０を上位ノードに送信して、ここでの処理を終了する（ステップ１５０８〜１５１１、１５２０）。
【００９８】
図１６は再配信依頼を下位ノードから通知されたノードによる再配信依頼の受信処理の動作を説明するフローチャートであり、次に、これについて説明する。
【００９９】
（１）再配信依頼を下位ノードから通知されたノードは、処理が開始されると、再送要求エントリを作成し、再配信要求エントリの再送要求上位通番６０１に再配信要求電文７６０の再配信要求上位通番７６２を設定し、また、再送要求下位通番５４２に再配信要求電文の再配信要求下位通番７６３を設定する（ステップ１６００〜１６０３）。
【０１００】
（２）次に、再配信を依頼したノード名称に対応する再送管理エントリに再送要求エントリを繋ぎ、送信管理レコードに送信要求範囲の通番であって状態４５２が「済」４６２のレコードが存在する場合、その状態４５２を「再」４６３に設定すると共に、再送管理レコードに送信要求範囲の通番であって状態５５２が「済」５６１のレコードが存在する場合、その状態５５２を「再」５６２に設定する（ステップ１６０４〜１６０６）。
【０１０１】
（３）再送要求範囲の全通番に該当する送信管理エントリまたは再送管理エントリがあるか否かを判定し、該当する送信管理エントリまたは再送管理エントリがあった場合、自ノードのデータ蓄積キュー２１０に配信データが存在しているので、ここでの処理を終了する（ステップ１６０７、１６２０）。
【０１０２】
（４）ステップ１６０７での判定で、該当する送信管理エントリまたは再送管理エントリがなかった場合、自ノードのデータ蓄積キュー２１０に配信データが存在していないので、再送管理レコードを作成して再送管理エントリに繋げ、状態５５２を「再」５６２に設定し、その後、再送管理レコードを作成して他の再送管理エントリにも繋げ、状態５５２を「済」５６１に設定する（ステップ１６０８、１６０９）。
【０１０３】
（５）そして、再配信要求電文作成処理を行って、ここでの処理を終了する。なお、再配信要求電文の作成処理については、図１７を参照して後述する（ステップ１６１０、１６２０）。
【０１０４】
図１７は図１６に示すフローのステップ１６１０での上位ノードにデータ配信を要求する再配信要求電文の作成処理の動作を説明するフローチャートであり、次に、これについて説明する。
【０１０５】
（１）再配信要求電文の作成の処理が開始されると、電文作成を行うノードは、再送要求エントリから再配信要求エントリを作成し、要求範囲の全通番が既に他の再配信要求エントリに設定されているか否かを判定し、要求範囲の全通番が既に他の再配信要求エントリに設定されていた場合、再配信要求電文の作成が不要であるので、何もせずに、ここでの処理を終了する（ステップ１７００〜１７０２、１７１０）。
【０１０６】
（２）ステップ１７０２での判定で、要求範囲の全通番が他の再配信要求エントリに設定されていなかった場合、要求範囲の一部の通番が既に他の再配信要求エントリに設定されているか否かを判定し、要求範囲の一部の通番が既に他の再配信要求エントリに設定されていた場合、通番が重ならないように再配信要求エントリの再配信要求上位通番６０１と再配信要求下位通番６０２とを変更する。なお、この再配信要求上位通番６０１と再配信要求下位通番６０２とについては、図１８により後述する（ステップ１７０３、１７０４）。
【０１０７】
（３）ステップ１７０４の処理の後、あるいは、ステップ１７０３での判定で、要求範囲の一部の通番が他の再配信要求エントリに設定されていなかった場合、再配信要求エントリを再配信通番管理テーブル２４１に繋ぎ、その後、再配信要求電文７６０を作成して上位ノードに送信した後、ここでの処理を終了する（ステップ１７０５、１７０６、１７１０）。
【０１０８】
図１８は再配信要求エントリの通番変更の例を説明する図であり、次に、これについて説明する。ここで説明する例は、既に再配信要求エントリａ１８００及び再配信要求エントリｂ１８０３が存在する時に、前述した図１７のフローのステップ１７０１での処理で新たに再配信要求エントリｃ１８１０が作成された場合の例である。
【０１０９】
既に存在している再配信要求エントリａ１８００は、再配信を要求する上位通番１８０１の値が１０、下位通番１８０２の値が１３を有し、既に存在している再配信要求エントリｂ１８０３は、再配信を要求する上位通番１８０４の値が１９、下位通番１８０５の値が２３を有しているものとしている。そして、図１７のフローのステップ１７０１での処理で新たに作成した再配信要求エントリｃ１８１０は、再配信を要求する上位通番１８１１の値が１２、下位通番１８１２の値が１５を有しているものとしている。
【０１１０】
この場合、既に存在している再配信要求エントリａ１８００により、通番１２、１３は、再配信の要求が通知済みであることが判るため、再配信要求エントリｃ１８１０は、通番１２、１３を除いて変更した再配信要求エントリｃ１８２０に変更される。すなわち、変更した再配信要求エントリｃ１８２０は、再配信要求上位通番の値が１４に変更された再配信要求上位通番１８２１とされ、再配信要求下位通番の値は１５のままの再配信要求下位通番１８２２とされる。
【０１１１】
この後、再配信を要求する上位通番１８３１値が１８、下位通番１８２２の値が２５を有する再配信要求エントリｄ１８３０が追加されたものとする。この場合、既に存在している再配信要求エントリｂ１８０３により、通番１９〜２３は、再配信の要求が通知済みであることが判るため、再配信要求エントリｄ１８３０は、通番１９〜２３を除いたものに変更される。すなわち、再配信要求エントリｄ１８３０は、再配信要求エントリｄａ１８４０と再配信要求エントリｄｂ１８５０とに変更される。この変更により作成される再配信要求エントリｄａ１８４０は、再配信要求上位通番１８４１の値が１８に、再配信要求下位通番１８４２の値が１８に設定され、再配信要求エントリｄｂ１８５０は、再配信要求上位通番１８５１の値が２４に、再配信要求下位通番１８５２の値が２５に設定される。
【０１１２】
図１９は上位ノードに通知した再配信要求の結果である再配信データ受信処理（図９に示すフローのステップ９０６）の動作を説明するフローチャートであり、次に、これについて説明する。
【０１１３】
（１）再配信データ受信処理が開始されると、再配信データを受信したノードは、配信電文７３０の通番７３１が自ノード内のどれかの再配信要求エントリの再配信要求上位通番６０１と同じ値か否かを判定する（ステップ１９００、１９０１）。
【０１１４】
（２）ステップ１９０１での判定で、配信電文７３０の通番７３１がどれかの再配信要求エントリの再配信要求上位通番６０１と同じ値であった場合、データ蓄積キュー２１０に存在する配信データの通番４１１に一致するものがあるか否かを判定し、データ蓄積キュー２１０内の配信データの通番４１１に一致するものがなかった場合、受信した再配信データをデータ蓄積キュー２１０に格納する（ステップ１９０２、１９０３）。
【０１１５】
（３）その後、再配信データ受信時の再送管理テーブル更新処理を行い、再配信要求上位通番６０１の値に１を加算する。なお、再送管理テーブル更新処理については、図２０に示すフローにより後述する（ステップ１９０４、１９０５）。
【０１１６】
（４）次に、再配信要求上位通番６０１が再配信要求下位通番６０２より大きいか否かを判定し、再配信要求上位通番６０１が再配信要求下位通番６０２より大きかった場合、再配信要求エントリを解放１９０７して処理を終了する（ステップ１９０６、１９０７、１９１０）。
【０１１７】
（５）ステップ１９０１での判定で、配信電文７３０の通番７３１が、どれかの再配信要求エントリの再配信要求上位通番６０１に同じ値のものがなかった場合、ステップ１９０２での判定で、データ蓄積キュー２１０内の配信データの通番４１１に一致するものがあった場合、あるいは、ステップ１９０６での判定で、再配信要求上位通番６０１が再配信要求下位通番６０２より大きくなかった場合、次の再配信データの受信を待つこととして、ここでの処理を終了する（ステップ１９１０）。
【０１１８】
図２０は図１９に示すフローのステップ１９０４での再配信データ受信時の再送管理テーブル更新処理の動作を説明するフローチャートであり、次に、これについて説明する。
【０１１９】
（１）再送管理テーブル更新の処理が開始されると、再配信データを受信したノードは、再送管理テーブル２５１の先頭エントリをポイントし、再送管理エントリに、配信データの通番４１１が昇順になるよう新たな再送管理レコードを挿入する（ステップ２０００〜２００２）。
【０１２０】
（２）既に存在する再送要求エントリの再配信要求上位通番６０１と再配信要求下位通番６０２との範囲に再配信データの通番が含まれているか否かを判定し、含まれていた場合、追加した再送管理レコードの状態５５２に「再」５６２を設定し、含まれていなかった場合、追加した再送管理レコードの状態５５２に「済」５６１を設定する（ステップ２００３〜２００５）。
【０１２１】
（３）ステップ２００４またはステップ２００５の処理の後、再送先頭ポインタ５３３の値がＮＵＬＬとなっているか否かを判定し、ＮＵＬＬとなっていた場合、再送先頭ポインタ５３３が追加した再送管理レコードを指すように再送先頭ポインタ５３３の値を設定する（ステップ２００６、２００７）。
【０１２２】
（４）ステップ２００７の処理の後、または、ステップ２００６での判定で、再送先頭ポインタ５３３の値がＮＵＬＬでなかった場合、更新しているエントリが再送管理テーブルの最終エントリであるか否かを判定し、最終エントリでなかった場合、再送管理テーブルの次エントリをポイントし、ステップ２００２〜の処理に戻って処理を繰り返し、最終エントリでなかった場合、ここでの処理を終了する（ステップ２００８〜２０１０）。
【０１２３】
図２１は図１１に示すフローのステップ１１０１でのデータ再配信処理の動作を説明するフローチャートであり、次に、これについて説明する。
【０１２４】
（１）データ再配信の処理が開始されると、データの再配信を行うノードは、再層管理テーブル２５１の再送管理エントリの再送先頭ポインタ５３３の値がＮＵＬＬとなっているか否かを判定し、ＮＵＬＬとなっていた場合、再配信するデータがないので、ここでの処理を終了する（ステップ２１０１、２１３０）。
【０１２５】
（２）ステップ２１０１での判定で、再送管理エントリの再送先頭ポインタ５３３の値がＮＵＬＬでなかった場合、再送先頭ポインタ５３３の値が指す再送管理レコードに対応する配信データを、データ蓄積キュー２１０から下位ノードに送信する（ステップ２１０２）。
【０１２６】
（３）その後、下位ノードから正常応答を受信したか否かを判定し、正常応答が受信できた場合、図２２に示すフローにより後述する再送要求エントリ更新処理を行い、該当する再送管理レコードの次以降に位置する再送管理レコードの中に状態５５２が「再」５６２となっている再送管理レコードが存在するか否かを判定する（ステップ２１０３〜２１０５）。
【０１２７】
（４）ステップ２１０５での判定で、状態５５２が「再」５６２となっている再送管理レコードが存在した場合、再送先頭ポインタ５３３に次再送管理レコードを設定し、存在しなかった場合、再送先頭ポインタ５３３にＮＵＬＬを設定する（ステップ２１０６、２１０７）。
【０１２８】
（５）ステップ２１０６、または、ステップ２１０７の処理の後、再送管理レコードの状態５５２を「済」５６１に設定し、配信データに対応する全再送管理レコードの状態５５２が「済」５６１となっているか否かを判定し、配信データに対応する全再送管理レコードの状態５５２が「済」５６１となっていなかった場合、ステップ２１０１からの処理に戻って処理を繰り返す（ステップ２１０８、２１０９）。
【０１２９】
（６）ステップ２１０９での判定で、配信データに対応する全再送管理レコードの状態５５２が「済」５６１となっていた場合、配信データに対応する全再送管理レコードを解放すると共に、配信データをデータ蓄積キューから削除して、ステップ２１０１からの処理に戻って処理を繰り返す（ステップ２１１０、２１１１）。
【０１３０】
（７）ステップ２１０３での判定で、下位ノードからの正常応答が受信できなかった場合、下位ノードから異常応答を受信したか否かを判定し、下位ノードからの異常応答を受信できなかった場合、ステップ２１０１からの処理に戻って処理を繰り返し、異常応答を受信した場合、データ抜けが発生したと判断して異常終了する。この異常終了は、運用による回復が必要なためである（ステップ２１１２）。
【０１３１】
図２２は図１１に示すフローのステップ２１０４での再送要求エントリ更新処理の動作を説明するフローチャートであり、次に、これについて説明する。
【０１３２】
（１）再送要求エントリ更新の処理が開始されると、再送要求上位通番５４１に１を加算し、再送要求上位通番５４１が再送要求下位通番５４２より大きいか否かを判定する（ステップ２２００〜２２０２）。
【０１３３】
（２）ステップ２２０２での判定で、再送要求上位通番５４１が再送要求下位通番５４２より大きかった場合、再送信要求エントリを解放して、ここでの処理を終了し、再送要求上位通番５４１が再送要求下位通番５４２より大きくなかった場合、何もせずにここでの処理を終了する（ステップ２２０３、２２０４）。
【０１３４】
前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるＣＰＵに実行させることができ、また、それらのプログラムは、ＦＤ、ＣＤＲＯＭ、ＤＶＤ等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
【図面の簡単な説明】
【０１３５】
【図１】本発明の一実施形態による配信システムを構成する木構造の配信ネットワークの構成例を示すブロック図である。
【図２】テーブル群内の詳細な構成を説明する図である。
【図３】木構造管理テーブルを構成する各テーブルの構成を説明する図である。
【図４】配信データの構成と配信管理テーブルの構成とを説明する図である。
【図５】再配信管理テーブル内の再送管理テーブルの構成を説明する図である。
【図６】再配信管理テーブル内の再配信管理テーブルの再配信要求エントリの構成を説明する図である。
【図７】ノード相互間で授受される電文形式を説明する図である。
【図８】木構造のネットワーク内に新たな中継ノードが接続されたときの関係するノードでの処理動作を説明するフローチャートである。
【図９】配信データを上位ノードから受信したときの中継ノードでの受信処理の動作を説明するフローチャートである。
【図１０】図９に示すフローのステップ９０３でのデータ受信時の送信管理テーブルの更新の処理動作を説明するフローチャートである。
【図１１】配信データを下位ノードに送信するときの中継ノードでの送信処理の動作を説明するフローチャートである。
【図１２】中継ノード障害時にネットワークの木構造を再構成する例を説明する図である。
【図１３】木構造のネットワークの木構造を再構成する場合の関係するノードでの処理動作を説明するフローチャートである。
【図１４】図１３に示すフローのステップ１３２０での蓄積データ削除処理の動作を説明するフローチャートである。
【図１５】図１３に示すフローのステップ１３２１での再配信依頼を上位ノードに通知する再配信依頼処理の動作を説明するフローチャートである。
【図１６】再配信依頼を下位ノードから通知されたノードによる再配信依頼の受信処理の動作を説明するフローチャートである。
【図１７】図１６に示すフローのステップ１６１０での上位ノードにデータ配信を要求する再配信要求電文の作成処理の動作を説明するフローチャートである。
【図１８】再配信要求エントリの通番変更の例を説明する図である。
【図１９】図９に示すフローのステップ９０６での再配信データ受信処理の動作を説明するフローチャートである。
【図２０】図１９に示すフローのステップ１９０４での再配信データ受信時の再送管理テーブル更新処理の動作を説明するフローチャートである。
【図２１】図１１に示すフローのステップ１１０１でのデータ再配信処理の動作を説明するフローチャートである。
【図２２】図１１に示すフローのステップ２１０４での再送要求エントリ更新処理の動作を説明するフローチャートである。
【図２３】中継ノードの構成を示すブロック図である。
【符号の説明】
【０１３６】
２１  ＣＰＵ
２２  メモリ
２３  テーブル群
１００  配信ノード
２０、１０１、１１１、１１２、１２１〜１２４  中継ノード
１３１〜１３８  配信先ノード
２３０１  データ受信手段
２３０２  再配信データ受信手段
２３０３  データ送信手段
２３０４  再配信データ送信手段
２３０５  再配信依頼手段
２３０６  再配信依頼受信手段
２３０７  木構造再構成指示手段
２３０８  木構造再構成応答手段
２３０９  中継ノード接続手段
２１０  データ蓄積キュー
２１１、２１２、２１３  配信データ
２２１  受信通番管理テーブル
２３０  配信管理テーブル
２３１  送信管理テーブル
２４０  再配信管理テーブル
２４１  再配信通番管理テーブル
２５１  再送管理テーブル
２７０  木構造管理テーブル
２７１  上位ノードテーブル
２７２  下位ノードテーブル
２７３  下位ノード接続テーブル
【図１】
2008141361.tif 000003
【図２】
2008141361.tif 000004
【図３】
2008141361.tif 000005
【図４】
2008141361.tif 000006
【図５】
2008141361.tif 000007
【図６】
2008141361.tif 000008
【図７】
2008141361.tif 000009
【図８】
2008141361.tif 000010
【図９】
2008141361.tif 000011
【図１０】
2008141361.tif 000012
【図１１】
2008141361.tif 000013
【図１２】
2008141361.tif 000014
【図１３】
2008141361.tif 000015
【図１４】
2008141361.tif 000016
【図１５】
2008141361.tif 000017
【図１６】
2008141361.tif 000018
【図１７】
2008141361.tif 000019
【図１８】
2008141361.tif 000020
【図１９】
2008141361.tif 000021
【図２０】
2008141361.tif 000022
【図２１】
2008141361.tif 000023
【図２２】
2008141361.tif 000024
【図２３】
2008141361.tif 000025