説明

データ配信方法、データ配信システム及びノード装置

【課題】中継ノードに障害が発生したときにも、データの漏れ、重複をなくし確実に配信先ノードにデータを配信することができるように、マルチキャスト通信を実現する。
【解決手段】配信元ノード及び中継ノードが、1段下の中継ノードの障害を検知すると2段下である中継ノードを1段下の中継ノードとして木構造を構成変更する。障害を検知した中継ノードは、構成変更で下位ノードとなった中継ノードの最終受信データの通番を取得し、データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとし、また、下位ノードでの最終受信データの通番から障害を検知したノードの最終受信データの通番までのデータのうちデータ蓄積キューに存在しないデータがある場合、上位ノードに対して該当する通番のデータの配信を要求する。この時、既に上位ノードに配信要求をしている通番のデータの配信は要求しない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ配信方法、データ配信システム及びノード装置に係り、特に、多数のサーバに大量のデータを、データの漏れや重複なく、高い信頼性を持って配信することができるようにしたデータ配信方法、データ配信システム及びノード装置に関する。
【背景技術】
【0002】
一般に、同一のデータを複数の宛先に転送する1対多通信はマルチキャスト通信と呼ばれている。このような通信で転送されるデータであるアプリケーションとして、例えば、ソフトウェア配信、ビデオストリーミング等がある。また、これら以外に企業内ネットワークにおいて文書、ファイル等のデータを多数のサーバに配信して業務を行う形態が考えられる。この場合、ソフウェア配信と異なり連続してデータが発生するが、ビデオのデータ配信と異なりデータ欠損は許されない。
【0003】
マルチキャスト通信は、宛先の数が数千、数万と増加するに従って配信元のノードが所属するネットワーク負荷が増大するため、中継ノードを設置してネットワークを木構造とすることにより配信元ノードの負荷を軽減する方法が、例えば、特許文献1等に記載されて提案されている。
【0004】
一方、データの漏れや重複が生じることなく確実にデータの転送を可能としたデータ配信方法として、送信ノードから受信ノードにデータを送信する際に、送信すべきデータを送信ノードの記憶装置に一旦格納した上で、データの転送を行うストア&フォワード方式と呼ばれる方法が知られている。この方法において、送信ノードは、受信応答が返ってきた時点で一時的に格納しておいたデータを消去し、応答が返ってこない場合、データの再送を行っている。また、受信ノードは、どのデータを受信したのを示す受信状態を記憶しておくことにより、2重に送信された受信データを破棄してデータの重複を防止している。ストア&フォワード方式による方法は、前述のような動作を行うことにより、サーバやネットワークに障害が発生した場合等にも、重複のない確実なデータ配信を行うことが可能である。また、この方法は、記憶装置への一時的なデータの格納を先入れ先出しとすることにより、データ配信の順序性を保証することができる。
【0005】
前述した木構造のネットワークにおける各ノード間、具体的には、配信元ノードと中継ノードとの間、中継ノードと次段の中継ノードとの間、及び、中継ノードと配信宛先ノードとの間の通信に、ストア&フォワード方式の方法を使用することにより、多数の配信先に確実なデータ転送を実現することができる。
【特許文献1】特開2005−25622号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
前述で説明した木構造のネットワークにストア&フォワード方式の方法を適用してデータの配信を行うようにした従来技術は、中継ノードに障害が発生した場合、障害ノードの下位ノードにデータが配信されなくなってしまうという問題点を有している。このような問題点を解決するために、ノード障害の発生時にネットワークの木構造を再形成することにより全ノードにデータを配信することができるようにした方法も考えられるが、この方法は、障害が発生した中継ノードにデータが滞留している場合、そのデータが消失してしまうという問題点を生じさせてしまう。
【0007】
本発明の目的は、前述した従来技術の問題点を解決し、マルチキャスト通信を実現するにあたり、中継ノードに障害が発生したときにも、データの漏れ、重複をなくし確実に配信先ノードにデータを配信することができ、かつ、データ再送のトラフィック量を低減することができるデータ配信方法、データ配信システム及びノード装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明によれば前記目的は、配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおけるデータ配信方法において、前記データ配信システムは、前記配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが1段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成されており、前記配信元ノード及び中継ノードは、1段下の下位ノードと2段下の下位ノードとの情報を記憶手段内に保持しており、1段下の中継ノードの障害を検知すると2段下である中継ノードを1段下の中継ノードとする木構造の構成変更を行い、前記記憶手段内の1段下の下位ノードと2段下の下位ノードとの情報を更新することにより達成される。
【0009】
また、前記目的は、配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが1段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成され、前記配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおける中継ノードであって、中継ノードは、1段下の下位ノードと2段下の下位ノードとの情報を記憶手段内に保持する保持手段と、1段下の中継ノードの障害を検知する手段と、1段下の中継ノードの障害を検知したとき、2段下である中継ノードを1段下の中継ノードとする木構造の構成変更を行う手段と、上位ノードからのデータを受信する手段と、受信データを蓄積保存するデータ蓄積キューと、各下位ノードに前記データ蓄積キュー内のどのデータを送信済みかを前記記憶手段に記録する記録手段と、構成変更により下位ノードとなった中継ノードの最終受信データの通番を取得する手段と、前記データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとする手段とを有することにより達成される。
【発明の効果】
【0010】
本発明によれば、中継ノードに障害が発生したときにも、データの漏れ、重複をなくし確実に配信先ノードにデータを配信することができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明によるデータ配信方法、データ配信システム及びノード装置(以下、単に、ノードという)の実施形態を図面により詳細に説明する。
【0012】
図1は本発明の一実施形態による配信システムを構成する木構造の配信ネットワークの構成例を示すブロック図である。
【0013】
本発明の実施形態による配信システムは、配信元ノード100、1段目の中継ノード101、2段目の中継ノード111、112、3段目の中継ノード121〜124、最終的な宛先である配信先ノード131〜138から構成される。配信元ノード100は、下位ノードである1段目の中継ノード101にデータを配信する。中継ノード101は、下位ノードである2段目の中継ノード111、112に同一のデータを配信する。中継ノード111は、下位ノードである3段目の中継ノード121、122に上位ノードである1段目の中継ノード101から受信したデータを配信する。同様に、中継ノード112は、下位ノードである3段目の中継ノード123、124に上位ノードである1段目の中継ノード101から受信したデータを配信する。3段目の中継ノード121〜124は、それぞれ下位ノードである配信先ノード131〜138に受信したデータを配信する。
【0014】
図1に示す例は、中継ノードの下位に接続する下位ノードの数を2つとして示しているが、各段における中継ノードの下位に接続される下位ノードの数は、実際には数10以上であることを想定している。また、図1に示す例は、配信元ノードと配信先ノードとの間に、3段の中継ノードを接続して木構造のネットワークを構成しているが、中継ノードの段数は、1段であってもよく、あるいは、3段以上であってもよく、任意の段数としてよい。
【0015】
なお、図1に示す配信システムを構成するネットワークは、正常時に配信データ等をノード間で送信することかできるネットワークを示しており、実際のネットワークは、中継ノード等の障害に対処するため、少なくとも、あるノードから2段下位のノードに接続することができる通信路が備えられて構成されている。
【0016】
本発明の実施形態によるデータ配信システムは、図1に示すように、中継ノードを配置したネットワークを木構造とすることにより配信元ノードから直接配信先ノードにデータの配信を行う場合に比べて、配信元ノードの負荷を大きく軽減することができる。例えば、配信先サーバが1000台ある場合、配信元サーバの下位に10台の1段目の中継ノードを配置し、1段目の中継ノードのそれぞれの下位ノードとして10台の2段目の中継ノードを配置し、2段目の中継ノードのそれぞれの下位に10台の配信先ノードを配置する木構造のネットワークとすることにより、配信元ノードは、10台のノードへのデータの配信だけで、1000台の配信先ノードにデータを配信することができることになり、配信元サーバのに通信負荷を極めて少ないものとすることができる。
【0017】
図23は中継ノードの構成を示すブロック図である。図示中継ノード20は、ハードウェアとして、記憶手段であるメモリ21とCPU22とを備えて構成される。なお、図23に示す中継ノード20の構成は、中継ノードの構成であるとして説明するが、配信元ノードも同一の構成であってよい。
【0018】
中継ノード20のメモリ21には、データ蓄積キュー210、配信管理テーブル220、再配信管理テーブル240、木構造管理テーブル270により構成されるテーブル群23と、通常のデータ受信を処理するデータ受信手段2301、再配信データの受信を処理する再配信データ受信手段2302、通常のデータ送信を処理するデータ送信手段2303、再配信データの送信を処理する再配信データ送信手段2304、下位ノードに再配信するデータの配信を上位ノードに依頼する再配信依頼手段2305、下位ノードから再配信を依頼されたときの処理をする再配信依頼受信手段2306、中継ノード障害時に木構造再構成の指示を行う木構造再構成指示手段2307、木構造再構成の指示に応答する木構造再構成応答手段2308、新たに中継ノードとして接続する中継ノード接続手段2309による機能部群とが格納されている。
【0019】
前述の機能部群を構成する各手段は、プログラムとして構成され、各手段を構成するプログラムは、CPU21により実行されることにより各手段が必要とするそれぞれの機能が構築される。
【0020】
図2はテーブル群23内の詳細な構成を説明する図であり、次に、これについて説明する。テーブル群23として、データ蓄積キュー210、配信管理テーブル220、再配信管理テーブル240、木構造管理テーブル270が備えられている。
【0021】
データ蓄積キュー210には、上位ノードから受信した配信データa211、配信データb212、……、配信データN213が全ての下位ノードに配信完了するまで格納される。
【0022】
配信管理テーブル230は、受信通番管理テーブル221と送信管理テーブル231とにより構成される。受信通番管理テーブル221には、上位ノードから最後に受信した配信データの通番である最終受信通番222が設定される。送信管理テーブル231は、データ蓄積キュー210に格納された配信データを下位ノード毎に管理する送信管理エントリa232、送信管理エントリb233、……、送信管理エントリN234により構成される。
【0023】
再配信管理テーブル240は、再配信通番管理テーブル241と再送管理テーブル251とにより構成される。再配信通番管理テーブル241には、再配信要求エントリポインタ242が設定され、上位ノードにデータの再配信を要求する単位毎に再配信要求エントリa243、再配信要求エントリb244、再配信要求エントリc245がチェーンされている。再送管理テーブル251は、データ蓄積キュー210に格納された再配信データを下位ノード毎に管理する再送管理エントリa252、再送管理エントリb253、……、再送管理エントリN254により構成される。そして、各再送管理エントリからは、下位ノードから通知を受けた再送要求を管理する再送要求エントリa261、再送要求エントリb262、再送要求エントリc263がチェーンされている。
【0024】
木構造管理テーブル270は、上位ノードを管理する上位ノードテーブル271、下位ノードを管理する下位ノードテーブル272、下位ノードとそのまた下位のノードの組合せを管理する下位ノード接続テーブル273により構成されている。
【0025】
図3は木構造管理テーブル270を構成する各テーブルの構成を説明する図である。図3に示す各テーブルの構成は、図1に示すシステムにおける中継ノード101が備える木構造管理テーブル270の内容として示しているが、各テーブルの内容は、中継ノード毎に異なるものとなる。
【0026】
上位ノードテーブル271は、図3(a)に示すように、上位ノード名称301と上位ノードアドレス302との項目により構成され、図示例では、上位ノード名称301の項目にノード101、上位ノードアドレス302の項目にIP_101が設定されている。
【0027】
下位ノードテーブル272は、図3(b)に示すように、下位ノード名称310と下位ノードアドレス320との項目を持つレコードが、接続されている下位ノードの数だけ設けられて構成される。図示例では、下位ノード名称310、下位ノードアドレス320の組として、ノード121、IP_121のレコードと、ノード122、IP_122のレコードとが設定されている。
【0028】
下位ノード接続テーブル273は、下位ノード名称330、その下のノード名称である2段下位ノード名称340及びそのアドレスである2段下位ノードアドレス350の各項目で構成されたレコードが複数設けられて構成される。図示例では、下位ノード名称330、2段下位ノード名称340、2段下位ノードアドレス350の組として、ノード121、ノード131、IP_131のレコード、ノード121、ノード132、IP_132のレコード、ノード122、ノード133、IP_133のレコード、ノード122、ノード134、IP_134のレコードの4つのレコードが設定されている。
【0029】
図4は配信データの構成と配信管理テーブル230の構成とを説明する図であり、次に、これについて説明する。
【0030】
配信データは、ノードポインタ部410、配信元が配信データに一意に付与した連続した番号である通番411、配信データの実体をあらわすデータ実体412により構成されている。
【0031】
送信管理テーブル231の送信管理エントリa232には、データ蓄積キュー210に格納されている各配信データの送信状態を管理する送信管理レコードaa421、送信管理レコードab422が各配信データの通番411順にチェーンされている。同様に、送信管理エントリb233には、送信管理レコードba423、送信管理レコードbb424が各配信データの通番411順にチェーンされ、送信管理エントリN234には、送信管理レコードNa425、送信管理レコードNb426が各配信データの通番411順にチェーンされている。
【0032】
送信管理テーブル231の各送信管理エントリにチェーンされている送信管理レコードのそれぞれは、送信先の下位ノード名称451、送信状態を表す状態452及び配信データのデータ蓄積キュー210内での位置を示す配信データポインタ455により構成される。配信データポンタ455で示される配信データの通番411を参照することにより送信データの通番を確認することができる。また、状態452には、未送信を示す「未」461、送信完了を示す「済」462、再送信待ちを示す「再」463の3つの状態があり、配信データの状態に応じて、1つの状態が設定される。また、各送信管理レコードは、配信データのノードポインタ部410から対応する送信管理レコードaa421がポイントされ、順に送信管理レコードba423、送信管理レコードNa425というように、同じ通番を管理する送信管理レコードがチェーンされている。
【0033】
送信管理エントリのそれぞれは、送信管理レコードチェーンの先頭を指す先頭ポインタ431、最終を指す最終ポインタ432、送信管理レコードの状態452が「未」の状態で対応する通番の一番上位(若い)の送信管理レコードを指す送信先頭ポインタ433、送信先ノードを示す下位ノード名称434から構成される。
【0034】
図5は再配信管理テーブル240内の再送管理テーブル251の構成を説明する図である。
【0035】
再送管理テーブル251の送信管理エントリa252には、データ蓄積キューに格納されている各配信データの送信状態を管理する再送管理レコードaa521、再送管理レコードab522が各配信データの通番411順にチェーンされている。同様に、再送管理エントリb253には、再送管理レコードba523、再送管理レコードbb524が各配信データの通番411順にチェーンされ、送信管理エントリN254には、再送管理レコードNa525、再送管理レコードNb26)がチェーンされている。
【0036】
各再送管理レコードは、送信先の下位ノード名称551、再送状態を表す状態552及び配信データのデータ蓄積キュー210内での位置を示す配信データポインタ553により構成される。配信データポインタ553で示される配信データの通番411を参照することにより再送データの通番を確認することができる。また、状態552には、送信完了を示す「済」561、再送信待ちを示す「再」562の2つの状態があり、再送データの状態に応じて、1つの状態が設定される。また、配信データのノードポインタ部410から対応する再送管理レコードab522がポイントされ順に再送管理レコードbb524、送信管理レコードNb526というように、同じ通番を管理する再送管理レコードがチェーンされている。
【0037】
再送管理エントリのそれぞれは、再送管理レコードチェーンの先頭を指す先頭ポインタ531、最終を指す最終ポインタ532、再送管理レコードの状態552が「再」状態で対応する通番の一番上位(若い)の再送管理レコードを指す再送先頭ポインタ533、再送先ノードを示す下位ノード名称534、再送要求エントリを指す再送要求部ポインタ535により構成される。
【0038】
再送要求エントリのそれぞれは、再送要求のあった範囲の最も上位(若い)の通番である再送要求上位通番541、再送要求のあった範囲の最も下位の通番である再送要求下位通番542により構成される。
【0039】
図6は再配信管理テーブル240内の再配信管理テーブル241の再配信要求エントリの構成を説明する図である。再配信要求エントリのそれぞれは、上位ノードに通知した再配信要求範囲の最も上位(若い)の通番である再配信要求上位通番601、最も下位の通番である再配信要求下位通番602により構成される。
【0040】
図7はノード相互間で授受される電文形式を説明する図であり、次に、これについて説明する。
【0041】
接続電文a710は、図7(a)に示すように、上位ノードに新たに下位ノードとして加わることを通知する電文であり、自ノードのノード名称711、自ノードのノードアドレス712により構成される。
【0042】
接続電文b720は、図7(b)に示すように、自ノードの下位にどのようなノードが接続されているかを上位ノードに通知する電文であり、自ノードのノード名称721、下位ノードの下位ノード名称722、下位ノードの下位ノードアドレス723により構成される。
【0043】
配信電文730は、図7(c)に示すように、配信ノードから配信されるデータの電文であり、配信元ノ−ドで昇順に付与される通番731、データの実体である配信データ733により構成される。
【0044】
上位ノード変更電文740は、図7(d)に示すように、下位ノードに対して上位ノードの変更を指示する電文であり、上位ノードのノード名称741、上位ノードの上位ノードアドレス742により構成される。
【0045】
上位ノード変更応答電文750は、図7(e)に示すように、上位ノード変更電文740に対する応答電文であり、自ノードのノード名称751、自ノードでの受信通番管理テーブル221の最終受信通番222の値を設定した最終受信通番752により構成される。
【0046】
再配信要求電文760は、図7(f)に示すように、下位ノードから上位ノード変更応答電文750または再配信要求電文760を受信して再配信するデータ通番を通知されたが、自ノードに該当する通番の配信データがない場合に、さらに上位ノードに再配信を要求するための電文であり、自ノードのノード名称761、再配信を要求する最も上位(若い)の通番である再配信要求上位通番762、最も下位の通番である再配信要求下位通番763により構成される。
【0047】
図8は木構造のネットワーク内に新たな中継ノードが接続されたときの関係するノードでの処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する例は、ノード111が新たに中継ノード101の下位ノードとして接続され、ノード121が新たに中継ノード111の下位ノードとして接続され、配信先としてのノード131が新たにノード121の下位ノードとして接続される場合の例である。
【0048】
(1)ノード111は、中継ノードとしてネットワークへの接続を開始すると、上位ノードであるノード101の情報を上位ノードテーブル271に設定し、受信通番管理テーブル221の最終受信通番222に−1を設定し、接続電文a710を作成してノード101に、自ノードの接続を通知する。最終受信通番222に−1を設定したのは、自ノード配信データを全く保持していないことを示すためである(ステップ810〜813)。
【0049】
(2)ノード101は、ノード111から接続電文a710を受信すると、新たに接続されたノード111の情報を下位ノードテーブル272に追加する(ステップ814)。
【0050】
(3)一方、新たな中継ノード111の下位ノードとして接続するノード121は、中継ノードとしてネットワークへの接続を開始すると、接続電文a710を作成してノード111に自ノードの接続を通知する(ステップ820、821)。
【0051】
(4)ノード111は、ノード121からの接続電文a710を受信すると、接続電文a710に含まれるノード121の情報を下位ノードテーブル272に追加し、送信管理デーブル231に送信管理エントリを追加し、再送管理デーブル251に再送管理エントリを追加すると共に、接続電文b720をノード101に送信する(ステップ822〜825)。
【0052】
(5)ノード101は、中継ノード111からの接続電文b720を受信すると、ノード111、121の組のレコードを下位ノード接続デーブル273に追加する(ステップ826)。
【0053】
(6)また、ノード121の下位の配信先ノード131として接続するノード131は、配信先ノードとしてネットワークへの接続を開始すると、接続電文a710を作成してノード121に自ノードの接続を通知する(ステップ830、831)。
【0054】
(7)ノード121は、ノード131からの接続電文a710を受信すると、接続電文a710に含まれるノード131の情報を下位ノードテーブル272に追加し、接続電文bを作成してノード111に送信する(ステップ832、833)。
【0055】
(8)ノード111は、中継ノード121からの接続電文b720を受信すると、ノード121、131の組のレコードを下位ノード接続テーブル273に追加する(ステップ834)。
【0056】
図9は配信データを上位ノードから受信したときの中継ノードでの受信処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0057】
(1)受信データがあったことを検知すると受信処理を開始し、まず、受信した配信電文730の通番731が受信通番管理テーブル221の最終受信通番222+1の値と等しいか、または、最終受信通番の値が−1となっているか否かを判定(ステップ900、901)。
【0058】
(2)ステップ901の判定で、受信した配信電文730の通番731が最終受信通番222+1の値と等しいか、または、最終受信通番の値が−1となっていた場合、受信データをデータ蓄積キュー210に格納する(ステップ902)。
【0059】
(3)その後、データ受信時の送信管理テーブルの更新処理(この処理の詳細については、図10により後述する)を行い、最終受信通番222に受信したデータの通番731を設定すると共に、上位ノードにデータを正常に受信したという正常応答を返却して、ここでの処理を終了する(ステップ903〜905、910)。
【0060】
(4)ステップ901での判定の結果、受信した配信電文730の通番731が最終受信通番222+1の値と等しくなかった場合で、かつ、最終受信通番の値が−1でなかった場合、再配信データ受信処理(この処理の詳細については、図19により後述する)を行った後、配信電文730の通番731が最終受信通番222の値以下か否かを判定する(ステップ906、907)。
【0061】
(5)ステップ907での判定で、配信電文730の通番731が最終受信通番222の値以下であった場合、上位ノードにデータを正常に受信したという正常応答を返却し、また、ステップ907での判定で、配信電文730の通番731が最終受信通番222の値以下でなかった場合、上位ノードに異常応答を返却して、ここでの処理を終了する(ステップ905、908、910)。
【0062】
図10は図9に示すフローのステップ903でのデータ受信時の送信管理テーブルの更新の処理動作を説明するフローチャートであり、次に、これについて説明する。
【0063】
(1)この処理を開始すると、まず、送信管理テーブル231の先頭の送信管理エントリを更新対象として、その送信管理エントリからチェーンされている送信管理レコードの最終に新たな送信管理レコードを追加し、追加した送信管理レコードの状態452に「未」461を設定する(ステップ1000〜1003)。
【0064】
(2)次に、対象とした送信管理エントリの送信先頭ポンタ433の値がNULL(データ蓄積キューに配信データが存在しない)となっているか否かを判定し、NULLであった場合、送信先頭ポインタ433が追加した送信管理レコードを指すよう設定する(ステップ1004、1005)。
【0065】
(3)ステップ1005の処理の後、または、ステップ1004での判定で、対象とした送信管理エントリの送信先頭ポンタ433の値がNULLでなかった場合、ポイントしている送信管理レコードが送信管理テーブル231の最終エントリか否かを判定し、ポイントしている送信管理レコードが送信管理テーブル231の最終エントリであった場合、ここでの処理を終了する(ステップ1006、1010)。
【0066】
(4)ステップ1006での判定で、ポイントしている送信管理レコードが送信管理テーブル231の最終エントリであった場合、送信管理テーブル231からチェーンされる送信管理レコードの次エントリをポイントした後、ステップ1002からの処理に戻って、送信管理エントリからチェーンされている送信管理レコードの最終に新たな送信管理レコードを追加して処理を続ける(ステップ1007)。
【0067】
図11は配信データを下位ノードに送信するときの中継ノードでの送信処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0068】
(1)処理の開始後、まず、データ再配信処理を実行する。このデータ再配信処理の詳細については、図21に示すフローを参照して後述する(ステップ1100、1101)。
【0069】
(2)データ再配信処理の実行後、送信管理テーブル231の送信管理エントリの送信先頭ポインタ433の値がNULLとなっているか否かを判定し、送信先頭ポインタ433の値がNULLとなっていた場合、送信すべきデータがデータ蓄積キュー210に存在しないため、一定時間sleep した後、ステップ1101のデータ再配信処理に戻って、処理を繰り返す(ステップ1102、1114)。
【0070】
(3)ステップ1102での判定で、送信先頭ポインタ433の値がNULLでなかった場合、送信先頭ポインタ433が指す送信管理レコードに対応する配信データを、データ蓄積キュー210から下位ノードに送信し、下位ノードから正常応答を受信したか否かを判定する(ステップ1103、1104)。
【0071】
(4)ステップ1104での判定で、下位ノードから正常応答を受信した場合、送信管理レコードの次の送信管理レコードが存在するか否かを判定し、存在した場合、送信管理エントリの送信先頭ポインタ433に次の送信管理レコードを設定し、存在しなかった場合、送信先頭ポインタ433にNULLを設定1107する(ステップ1105、1106、1107)。
【0072】
(5)ステップ1106、1107の処理の後、送信管理レコードの状態452を「済」462に設定し、配信データに対応する全ての送信管理レコードの状態452が「済」462となっているか否かを判定し、全ての送信管理レコードの状態452が「済」462となっていた場合、配信データに対応する全ての送信管理レコードを解放し、配信データをデータ蓄積キュー210から削除する(ステップ1108〜1111)。
【0073】
(6)ステップ1111の処理の後、あるいは、ステップ1109での判定で、送信管理レコードの状態452が「済」462となっていないものがあった場合、ステップ1101からのデータ再送処理に戻って処理を繰り返す。
【0074】
(7)ステップ1104での判定で、下位ノードから正常応答を受信しなかった場合、下位ノードから異常応答を受信したか否かを判定し、下位ノードから異常応答を受信しなかった場合、下位ノードの確認がとれないため再送信する必要があり、ステップ1101からのデータ再送処理に戻って処理を繰り返す(ステップ1112)。
【0075】
(8)ステップ1112での判定で、下位ノードから異常応答を受信していた場合、データの抜けが発生したと判断して異常終了する。これは、運用による回復が必要なためである(ステップ1113)。
【0076】
図12は中継ノード障害時にネットワークの木構造を再構成する例を説明する図である。ここで示す例は、図1に示すシステムにおける中継ノード121が障害1201となった場合の例である、中継ノード121に障害が発生した場合、下位ノードである中継ノード131、132(説明している本発明の実施形態では配信先ノード)にデータが配信されなくなる。このため、中継ノード121の上位の中継ノード111は、新たにノード131、132を下位ノードとする木構造再形成1211、1212を実施することにより、データ配信を継続することができるようにする。
【0077】
図13は木構造のネットワークの木構造を再構成する場合の関係するノードでの処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する例は、ノード121で障害1301が発生し、ノード111がその障害を検知した場合の処理である。
【0078】
(1)ノード111は、ノード121での障害1301の発生を検知すると、木構造管理テーブル270の1つである下位ノードテーブル272から障害ノード121の情報を削除した後、下位ノード接続テーブル273から下位ノード名称330が障害ノードであるレコードの2段下位ノード名称340に該当するノードを構成変更を指示するノードとして選択する(ステップ1302〜1304)
(2)説明している例では、障害ノードであるレコードの2段下位ノード名称340として、ノード131、132の情報を得ることができるので、ノード111は、上位ノード変更電文740を作成し、この電文をこれらのノードに送信(ステップ1305)。
【0079】
(3)上位ノード変更電文740を受信したノード131、132は、自ノード内の上位ノードテーブル271にノード111の情報を設定し、上位ノード変更応答電文750を作成して、ノード111に送信する(ステップ1306、1307)。
【0080】
(4)ノード111は、ノード131、132から上位ノード変更応答電文750を受信すると、下位ノード接続テーブル273から2段下位ノード名称340が応答電文750のノード名称751と一致するレコードを削除し、受信したノードの情報を下位ノードテーブル272に追加した後、接続電文b720を作成して、この接続電文b720を上位ノード101に送信する(ステップ1308〜1310)。
【0081】
(5)一方、ノード131、132は、上位ノード変更応答電文750をノード111に送信した後に、接続電文b720を作成し、その電文をノードに送信してくるので、ノード111は、ノード131、132からの接続電文b720を受信し、受信したノードの組を下位ノード接続テーブル273に追加すると共に、送信管理テーブル231に送信管理エントリを追加する(ステップ1311〜1313)。
【0082】
(6)そして、ノード111は、送信管理レコードを作成し、各レコードの状態452に障害発生ノード(ノード121)と同じ値を設定し、また、再送管理テーブル251に再送管理エントリを追加1315して再送管理レコードを作成し、各レコードの状態552に「済」561を設定する(ステップ1314〜1316)。
【0083】
(7)さらに、ノード111は、再送要求エントリを作成し、再送要求上位通番541に上位ノード変更応答電文750の最終受信通番752を設定し、再送要求下位通番542には0を設定して、再送管理テーブル251の該当エントリから再送要求エントリをポイント1318する(ステップ1317、1318)。
【0084】
(8)その後、ノード111は、ノード131、132の全てから上位ノード変更応答電文750を受信したか否かを判定し、まだ、応答電文750を全て受け取っていなかった場合、他ノードからの上位ノード変更応答電文750の受信を待ち、ステップ1308からの処理を繰り返す(ステップ1319)。
【0085】
(9)ステップ1319での判定で、応答電文750の全てを受け取っていた場合、蓄積データ削除処理(この処理の詳細については、図14により後述する)を実行した後、再配信依頼処理(この処理の詳細については、図15により後述する)を実行する(ステップ1320、1321)。
【0086】
図14は図13に示すフローのステップ1320での蓄積データ削除処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0087】
(1)蓄積データ削除の処理が開始されると、ノード111は、送信管理テーブル231の障害発生ノード(ここではノード121)を指す送信管理エントリをポイントし、また、先頭の送信管理レコードをポイントする(ステップ1400〜1402)。
【0088】
(2)送信管理レコードが存在するか否かを判定し、存在しなかった場合、ここでの処理を終了し、存在した場合、その送信管理レコードを削除する(ステップ1403、1410、1405)。
【0089】
(3)次に、該当する配信データの通番411に対応する全送信管理レコードの状態452が「済」462になっているか否かを判定し、「済」462になっていた場合、該当配信データに対応する全送信管理レコードを削除すると共に、データ蓄積キュー210から配信データを削除する(ステップ1406〜1408)。
【0090】
(4)ステップ1408の処理の後、または、ステップ1406での判定で、状態452が「済」462になっていない送信管理レコードがあった場合、次の送信管理レコードをポイントし、ステップ1403からの処理に戻って処理を繰り返す(ステップ1409)。
【0091】
図15は図13に示すフローのステップ1321での再配信依頼を上位ノードに通知する再配信依頼処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0092】
(1)再配信依頼の処理が開始されると、ノード111は、再送管理テーブル251の構成変更したノードに対応する再送管理エントリの最上位エントリをポイントし、再送要求エントリの再送要求上位通番541が、送信管理エントリの送信先頭ポインタ433の指す送信管理レコードに対応する配信データの通番411より値が小さいか否かを判定する(ステップ1500〜1502)。
【0093】
(2)ステップ1502での判定で、再送要求エントリの再送要求上位通番541が、送信管理レコードに対応する配信データの通番411より値が小さかった場合、再送要求エントリの再送要求下位通番542に送信先頭ポインタ433の指す送信管理レコードに対応する配信データの通番411+1を設定する(ステップ1503)。
【0094】
(3)次に、送信管理レコードに再送要求上位通番541以下で、状態452が「未」461のレコードが存在する場合、その状態452を「再」463に設定し、再送管理レコードに再送要求上位通番541以下で状態552が「済」561のレコードが存在する場合、その状態552を「再」562に設定する(ステップ1504、1505)。
【0095】
(4)ステップ1502での判定で、再送要求エントリの再送要求上位通番541が、送信管理レコードに対応する配信データの通番411より値が大きかった場合、対応する配信データが自ノードのデータ蓄積キュー210に存在しているため、再送要求エントリを削除する(ステップ1530)。
【0096】
(5)ステップ1505の処理の後、または、ステップ1530の処理の後、構成変更したノードの再送管理エントリがまだあるかいなかを判定し、再送管理エントリがまだある場合、再送管理テーブル251の構成変更したノードの再送管理エントリの次のエントリをポイントし、ステップ1502の処理に戻って処理を繰り返す(ステップ1506、1507)。
【0097】
(6)ステップ1506での判定で、構成変更したノードの再送管理エントリがなかった場合、再配信要求エントリを作成し、再送要求上位通番541の中で一番上位の番号を、再配信通番管理テーブル241の再配信要求エントリポインタ242の再配信要求エントリの再配信要求上位通番601に設定し、再送要求下位通番542の中で一番下位の番号を再配信要求下位通番602に設定した後、再配信要求電文760を上位ノードに送信して、ここでの処理を終了する(ステップ1508〜1511、1520)。
【0098】
図16は再配信依頼を下位ノードから通知されたノードによる再配信依頼の受信処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0099】
(1)再配信依頼を下位ノードから通知されたノードは、処理が開始されると、再送要求エントリを作成し、再配信要求エントリの再送要求上位通番601に再配信要求電文760の再配信要求上位通番762を設定し、また、再送要求下位通番542に再配信要求電文の再配信要求下位通番763を設定する(ステップ1600〜1603)。
【0100】
(2)次に、再配信を依頼したノード名称に対応する再送管理エントリに再送要求エントリを繋ぎ、送信管理レコードに送信要求範囲の通番であって状態452が「済」462のレコードが存在する場合、その状態452を「再」463に設定すると共に、再送管理レコードに送信要求範囲の通番であって状態552が「済」561のレコードが存在する場合、その状態552を「再」562に設定する(ステップ1604〜1606)。
【0101】
(3)再送要求範囲の全通番に該当する送信管理エントリまたは再送管理エントリがあるか否かを判定し、該当する送信管理エントリまたは再送管理エントリがあった場合、自ノードのデータ蓄積キュー210に配信データが存在しているので、ここでの処理を終了する(ステップ1607、1620)。
【0102】
(4)ステップ1607での判定で、該当する送信管理エントリまたは再送管理エントリがなかった場合、自ノードのデータ蓄積キュー210に配信データが存在していないので、再送管理レコードを作成して再送管理エントリに繋げ、状態552を「再」562に設定し、その後、再送管理レコードを作成して他の再送管理エントリにも繋げ、状態552を「済」561に設定する(ステップ1608、1609)。
【0103】
(5)そして、再配信要求電文作成処理を行って、ここでの処理を終了する。なお、再配信要求電文の作成処理については、図17を参照して後述する(ステップ1610、1620)。
【0104】
図17は図16に示すフローのステップ1610での上位ノードにデータ配信を要求する再配信要求電文の作成処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0105】
(1)再配信要求電文の作成の処理が開始されると、電文作成を行うノードは、再送要求エントリから再配信要求エントリを作成し、要求範囲の全通番が既に他の再配信要求エントリに設定されているか否かを判定し、要求範囲の全通番が既に他の再配信要求エントリに設定されていた場合、再配信要求電文の作成が不要であるので、何もせずに、ここでの処理を終了する(ステップ1700〜1702、1710)。
【0106】
(2)ステップ1702での判定で、要求範囲の全通番が他の再配信要求エントリに設定されていなかった場合、要求範囲の一部の通番が既に他の再配信要求エントリに設定されているか否かを判定し、要求範囲の一部の通番が既に他の再配信要求エントリに設定されていた場合、通番が重ならないように再配信要求エントリの再配信要求上位通番601と再配信要求下位通番602とを変更する。なお、この再配信要求上位通番601と再配信要求下位通番602とについては、図18により後述する(ステップ1703、1704)。
【0107】
(3)ステップ1704の処理の後、あるいは、ステップ1703での判定で、要求範囲の一部の通番が他の再配信要求エントリに設定されていなかった場合、再配信要求エントリを再配信通番管理テーブル241に繋ぎ、その後、再配信要求電文760を作成して上位ノードに送信した後、ここでの処理を終了する(ステップ1705、1706、1710)。
【0108】
図18は再配信要求エントリの通番変更の例を説明する図であり、次に、これについて説明する。ここで説明する例は、既に再配信要求エントリa1800及び再配信要求エントリb1803が存在する時に、前述した図17のフローのステップ1701での処理で新たに再配信要求エントリc1810が作成された場合の例である。
【0109】
既に存在している再配信要求エントリa1800は、再配信を要求する上位通番1801の値が10、下位通番1802の値が13を有し、既に存在している再配信要求エントリb1803は、再配信を要求する上位通番1804の値が19、下位通番1805の値が23を有しているものとしている。そして、図17のフローのステップ1701での処理で新たに作成した再配信要求エントリc1810は、再配信を要求する上位通番1811の値が12、下位通番1812の値が15を有しているものとしている。
【0110】
この場合、既に存在している再配信要求エントリa1800により、通番12、13は、再配信の要求が通知済みであることが判るため、再配信要求エントリc1810は、通番12、13を除いて変更した再配信要求エントリc1820に変更される。すなわち、変更した再配信要求エントリc1820は、再配信要求上位通番の値が14に変更された再配信要求上位通番1821とされ、再配信要求下位通番の値は15のままの再配信要求下位通番1822とされる。
【0111】
この後、再配信を要求する上位通番1831値が18、下位通番1822の値が25を有する再配信要求エントリd1830が追加されたものとする。この場合、既に存在している再配信要求エントリb1803により、通番19〜23は、再配信の要求が通知済みであることが判るため、再配信要求エントリd1830は、通番19〜23を除いたものに変更される。すなわち、再配信要求エントリd1830は、再配信要求エントリda1840と再配信要求エントリdb1850とに変更される。この変更により作成される再配信要求エントリda1840は、再配信要求上位通番1841の値が18に、再配信要求下位通番1842の値が18に設定され、再配信要求エントリdb1850は、再配信要求上位通番1851の値が24に、再配信要求下位通番1852の値が25に設定される。
【0112】
図19は上位ノードに通知した再配信要求の結果である再配信データ受信処理(図9に示すフローのステップ906)の動作を説明するフローチャートであり、次に、これについて説明する。
【0113】
(1)再配信データ受信処理が開始されると、再配信データを受信したノードは、配信電文730の通番731が自ノード内のどれかの再配信要求エントリの再配信要求上位通番601と同じ値か否かを判定する(ステップ1900、1901)。
【0114】
(2)ステップ1901での判定で、配信電文730の通番731がどれかの再配信要求エントリの再配信要求上位通番601と同じ値であった場合、データ蓄積キュー210に存在する配信データの通番411に一致するものがあるか否かを判定し、データ蓄積キュー210内の配信データの通番411に一致するものがなかった場合、受信した再配信データをデータ蓄積キュー210に格納する(ステップ1902、1903)。
【0115】
(3)その後、再配信データ受信時の再送管理テーブル更新処理を行い、再配信要求上位通番601の値に1を加算する。なお、再送管理テーブル更新処理については、図20に示すフローにより後述する(ステップ1904、1905)。
【0116】
(4)次に、再配信要求上位通番601が再配信要求下位通番602より大きいか否かを判定し、再配信要求上位通番601が再配信要求下位通番602より大きかった場合、再配信要求エントリを解放1907して処理を終了する(ステップ1906、1907、1910)。
【0117】
(5)ステップ1901での判定で、配信電文730の通番731が、どれかの再配信要求エントリの再配信要求上位通番601に同じ値のものがなかった場合、ステップ1902での判定で、データ蓄積キュー210内の配信データの通番411に一致するものがあった場合、あるいは、ステップ1906での判定で、再配信要求上位通番601が再配信要求下位通番602より大きくなかった場合、次の再配信データの受信を待つこととして、ここでの処理を終了する(ステップ1910)。
【0118】
図20は図19に示すフローのステップ1904での再配信データ受信時の再送管理テーブル更新処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0119】
(1)再送管理テーブル更新の処理が開始されると、再配信データを受信したノードは、再送管理テーブル251の先頭エントリをポイントし、再送管理エントリに、配信データの通番411が昇順になるよう新たな再送管理レコードを挿入する(ステップ2000〜2002)。
【0120】
(2)既に存在する再送要求エントリの再配信要求上位通番601と再配信要求下位通番602との範囲に再配信データの通番が含まれているか否かを判定し、含まれていた場合、追加した再送管理レコードの状態552に「再」562を設定し、含まれていなかった場合、追加した再送管理レコードの状態552に「済」561を設定する(ステップ2003〜2005)。
【0121】
(3)ステップ2004またはステップ2005の処理の後、再送先頭ポインタ533の値がNULLとなっているか否かを判定し、NULLとなっていた場合、再送先頭ポインタ533が追加した再送管理レコードを指すように再送先頭ポインタ533の値を設定する(ステップ2006、2007)。
【0122】
(4)ステップ2007の処理の後、または、ステップ2006での判定で、再送先頭ポインタ533の値がNULLでなかった場合、更新しているエントリが再送管理テーブルの最終エントリであるか否かを判定し、最終エントリでなかった場合、再送管理テーブルの次エントリをポイントし、ステップ2002〜の処理に戻って処理を繰り返し、最終エントリでなかった場合、ここでの処理を終了する(ステップ2008〜2010)。
【0123】
図21は図11に示すフローのステップ1101でのデータ再配信処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0124】
(1)データ再配信の処理が開始されると、データの再配信を行うノードは、再層管理テーブル251の再送管理エントリの再送先頭ポインタ533の値がNULLとなっているか否かを判定し、NULLとなっていた場合、再配信するデータがないので、ここでの処理を終了する(ステップ2101、2130)。
【0125】
(2)ステップ2101での判定で、再送管理エントリの再送先頭ポインタ533の値がNULLでなかった場合、再送先頭ポインタ533の値が指す再送管理レコードに対応する配信データを、データ蓄積キュー210から下位ノードに送信する(ステップ2102)。
【0126】
(3)その後、下位ノードから正常応答を受信したか否かを判定し、正常応答が受信できた場合、図22に示すフローにより後述する再送要求エントリ更新処理を行い、該当する再送管理レコードの次以降に位置する再送管理レコードの中に状態552が「再」562となっている再送管理レコードが存在するか否かを判定する(ステップ2103〜2105)。
【0127】
(4)ステップ2105での判定で、状態552が「再」562となっている再送管理レコードが存在した場合、再送先頭ポインタ533に次再送管理レコードを設定し、存在しなかった場合、再送先頭ポインタ533にNULLを設定する(ステップ2106、2107)。
【0128】
(5)ステップ2106、または、ステップ2107の処理の後、再送管理レコードの状態552を「済」561に設定し、配信データに対応する全再送管理レコードの状態552が「済」561となっているか否かを判定し、配信データに対応する全再送管理レコードの状態552が「済」561となっていなかった場合、ステップ2101からの処理に戻って処理を繰り返す(ステップ2108、2109)。
【0129】
(6)ステップ2109での判定で、配信データに対応する全再送管理レコードの状態552が「済」561となっていた場合、配信データに対応する全再送管理レコードを解放すると共に、配信データをデータ蓄積キューから削除して、ステップ2101からの処理に戻って処理を繰り返す(ステップ2110、2111)。
【0130】
(7)ステップ2103での判定で、下位ノードからの正常応答が受信できなかった場合、下位ノードから異常応答を受信したか否かを判定し、下位ノードからの異常応答を受信できなかった場合、ステップ2101からの処理に戻って処理を繰り返し、異常応答を受信した場合、データ抜けが発生したと判断して異常終了する。この異常終了は、運用による回復が必要なためである(ステップ2112)。
【0131】
図22は図11に示すフローのステップ2104での再送要求エントリ更新処理の動作を説明するフローチャートであり、次に、これについて説明する。
【0132】
(1)再送要求エントリ更新の処理が開始されると、再送要求上位通番541に1を加算し、再送要求上位通番541が再送要求下位通番542より大きいか否かを判定する(ステップ2200〜2202)。
【0133】
(2)ステップ2202での判定で、再送要求上位通番541が再送要求下位通番542より大きかった場合、再送信要求エントリを解放して、ここでの処理を終了し、再送要求上位通番541が再送要求下位通番542より大きくなかった場合、何もせずにここでの処理を終了する(ステップ2203、2204)。
【0134】
前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
【図面の簡単な説明】
【0135】
【図1】本発明の一実施形態による配信システムを構成する木構造の配信ネットワークの構成例を示すブロック図である。
【図2】テーブル群内の詳細な構成を説明する図である。
【図3】木構造管理テーブルを構成する各テーブルの構成を説明する図である。
【図4】配信データの構成と配信管理テーブルの構成とを説明する図である。
【図5】再配信管理テーブル内の再送管理テーブルの構成を説明する図である。
【図6】再配信管理テーブル内の再配信管理テーブルの再配信要求エントリの構成を説明する図である。
【図7】ノード相互間で授受される電文形式を説明する図である。
【図8】木構造のネットワーク内に新たな中継ノードが接続されたときの関係するノードでの処理動作を説明するフローチャートである。
【図9】配信データを上位ノードから受信したときの中継ノードでの受信処理の動作を説明するフローチャートである。
【図10】図9に示すフローのステップ903でのデータ受信時の送信管理テーブルの更新の処理動作を説明するフローチャートである。
【図11】配信データを下位ノードに送信するときの中継ノードでの送信処理の動作を説明するフローチャートである。
【図12】中継ノード障害時にネットワークの木構造を再構成する例を説明する図である。
【図13】木構造のネットワークの木構造を再構成する場合の関係するノードでの処理動作を説明するフローチャートである。
【図14】図13に示すフローのステップ1320での蓄積データ削除処理の動作を説明するフローチャートである。
【図15】図13に示すフローのステップ1321での再配信依頼を上位ノードに通知する再配信依頼処理の動作を説明するフローチャートである。
【図16】再配信依頼を下位ノードから通知されたノードによる再配信依頼の受信処理の動作を説明するフローチャートである。
【図17】図16に示すフローのステップ1610での上位ノードにデータ配信を要求する再配信要求電文の作成処理の動作を説明するフローチャートである。
【図18】再配信要求エントリの通番変更の例を説明する図である。
【図19】図9に示すフローのステップ906での再配信データ受信処理の動作を説明するフローチャートである。
【図20】図19に示すフローのステップ1904での再配信データ受信時の再送管理テーブル更新処理の動作を説明するフローチャートである。
【図21】図11に示すフローのステップ1101でのデータ再配信処理の動作を説明するフローチャートである。
【図22】図11に示すフローのステップ2104での再送要求エントリ更新処理の動作を説明するフローチャートである。
【図23】中継ノードの構成を示すブロック図である。
【符号の説明】
【0136】
21 CPU
22 メモリ
23 テーブル群
100 配信ノード
20、101、111、112、121〜124 中継ノード
131〜138 配信先ノード
2301 データ受信手段
2302 再配信データ受信手段
2303 データ送信手段
2304 再配信データ送信手段
2305 再配信依頼手段
2306 再配信依頼受信手段
2307 木構造再構成指示手段
2308 木構造再構成応答手段
2309 中継ノード接続手段
210 データ蓄積キュー
211、212、213 配信データ
221 受信通番管理テーブル
230 配信管理テーブル
231 送信管理テーブル
240 再配信管理テーブル
241 再配信通番管理テーブル
251 再送管理テーブル
270 木構造管理テーブル
271 上位ノードテーブル
272 下位ノードテーブル
273 下位ノード接続テーブル

【特許請求の範囲】
【請求項1】
配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおけるデータ配信方法において、
前記データ配信システムは、前記配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが1段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成されており、
前記配信元ノード及び中継ノードは、1段下の下位ノードと2段下の下位ノードとの情報を記憶手段内に保持しており、1段下の中継ノードの障害を検知すると2段下である中継ノードを1段下の中継ノードとする木構造の構成変更を行い、前記記憶手段内の1段下の下位ノードと2段下の下位ノードとの情報を更新することを特徴とするデータ配信方法。
【請求項2】
前記中継ノードは、上位ノードからのデータを受信して、受信データをデータ蓄積キュー蓄積保存し、各下位ノードに前記データ蓄積キューのどのデータを送信済みかを前記記憶手段内に記録しておき、構成変更により下位ノードとなった中継ノードの最終受信データの通番を取得し、前記データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとすることを特徴とする請求項1記載のデータ配信方法。
【請求項3】
前記中継ノードは、前記下位ノードの最終受信データの通番から障害を検知したノードの最終受信データの通番までのデータのうち前記データ蓄積キューに存在しないデータがある場合、上位ノードに対して該当する通番のデータを配信要求することを特徴とする請求項2記載のデータ配信方法。
【請求項4】
前記中継ノードは、既に他の下位ノード障害により上位ノードに配信要求をしているデータの通番と重複しない通番の配信要求を上位ノードに通知することを特徴とする請求項3記載のデータ配信方法。
【請求項5】
配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおいて、
前記データ配信システムは、前記配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが1段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成されており、
前記配信元ノード及び中継ノードは、1段下の下位ノードと2段下の下位ノードとの情報を記憶手段内に保持する保持手段と、1段下の中継ノードの障害を検知する手段と、1段下の中継ノードの障害を検知したとき、2段下である中継ノードを1段下の中継ノードとする木構造の構成変更を行う手段と、前記保持手段内の1段下の下位ノードと2段下の下位ノードとの情報を更新する手段とを有して構成されることを特徴とするデータ配信システム。
【請求項6】
配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが1段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成され、前記配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおける中継ノードであって、
中継ノードは、1段下の下位ノードと2段下の下位ノードとの情報を記憶手段内に保持する保持手段と、1段下の中継ノードの障害を検知する手段と、1段下の中継ノードの障害を検知したとき、2段下である中継ノードを1段下の中継ノードとする木構造の構成変更を行う手段と、上位ノードからのデータを受信する手段と、受信データを蓄積保存するデータ蓄積キューと、各下位ノードに前記データ蓄積キュー内のどのデータを送信済みかを前記記憶手段に記録する記録手段と、構成変更により下位ノードとなった中継ノードの最終受信データの通番を取得する手段と、前記データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとする手段とを有することを特徴とする中継ノード装置。
【請求項7】
配信元ノードと、中継ノードと、複数の配信先ノードとが、前記中継ノードが1段または複数段備えられる木構造のネットワークを構成するように相互に接続されて構成され、前記配信元ノードから複数の配信先ノードに中継ノードを介してデータを配信するデータ配信システムにおける中継ノードでのデータ中継処理プログラムにおいて、
1段下の下位ノードと2段下の下位ノードとの情報を記憶手段内に保持するステップと、1段下の中継ノードの障害を検知するステップと、1段下の中継ノードの障害を検知したとき、2段下である中継ノードを1段下の中継ノードとする木構造の構成変更を行うステップと、前記記憶手段内の1段下の下位ノードと2段下の下位ノードとの情報を更新するステップと、上位ノードからのデータを受信するステップと、受信データをデータ蓄積キューに蓄積保存するステップと、各下位ノードに前記データ蓄積キュー内のどのデータを送信済みかを記録するステップと、構成変更により下位ノードとなった中継ノードの最終受信データの通番を取得するステップと、前記データ蓄積キューに存在するその最終受信データの通番以降のデータを下位ノードへの送信データとするステップとを有し、前記各ステップを前記中継ノードのCPUに実行させることを特徴とするデータ中継処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate