(57)【特許請求の範囲】
【請求項１】
サーバと複数のノード機器とがそれぞれに通信可能なネットワークシステムであって、
前記サーバは、
前記各ノード機器から送られる配信要求を受信する配信要求受信部と、
当該配信要求を送った各ノード機器のうち、少なくとも１つを最上位のノード機器として選定する選定部と、
選定しなかった残りの各ノード機器に、選定した当該ノード機器を紹介する紹介部と、
選定した当該ノード機器に向けてデータを配信する配信部と、を備え、
前記各ノード機器のそれぞれは、
前記サーバに向けて配信要求を送信する配信要求送信部と、
直上となる通信相手との接続、及び、直下となる通信相手との接続を含む配信経路を決定する経路決定部と、
決定された当該配信経路に基づいて接続した直上の通信相手から配信されるデータを受信するデータ受信部と、
当該受信したデータを、決定された当該配信経路に基づいて接続した直下の通信相手に送信するデータ送信部と、を備え、
前記サーバに選定された前記ノード機器の前記経路決定部は、前記サーバを直上の通信相手とし、前記サーバの紹介により自己にアクセスしてきた前記ノード機器のうちの少なくとも１つを直下のノード機器として選定すると共に、残りのノード機器に当該直下のノード機器を紹介し、
前記サーバに選定されなかった前記ノード機器の前記経路決定部は、自己が直下のノード機器として選定された際に、自己を選定した前記ノード機器を直上の通信相手とし、前記直上のノード機器の紹介により自己にアクセスしてきた前記ノード機器のうちの少なくとも１つを直下のノード機器として選定すると共に、残りのノード機器があれば、当該残りのノード機器に当該直下のノード機器を紹介し、
前記サーバの前記選定部は、当該配信要求を最も早く送ったノード機器を最上位のノード機器として選定し、
前記サーバに選定された前記ノード機器の前記経路決定部は、前記サーバの紹介により最も早く自己にアクセスしてきた前記ノード機器を直下の通信相手として選定し、
前記サーバに選定されなかった前記ノード機器の前記経路決定部は、前記直上のノード機器の紹介により最も早く自己にアクセスしてきた前記ノード機器を直下の通信相手として選定し、アクセスが無かった場合に、直下の通信相手を選定しないものであり、
前記ノード機器は、
前記データ受信部が受信したデータに、自己のアドレスを付加するアドレス付加部と、
当該受信したデータにすでに付加されていたアドレスに基づいて、現時点における自己よりも上位のノード機器を管理する上位ノード管理部と、をさらに備え、
直下のノード機器を選定した前記ノード機器の前記データ送信部は、アドレスが付加されたデータを直下のノード機器に送信し、
直下の通信相手を選定しなかった前記ノード機器は、前記データ受信部が受信したデータに付加されていた全てのアドレスおよび自己のアドレスに基づいて、現時点における実際の配信経路を示すリストを生成し、受信通知に当該リストを付加して最上位のノード機器に返信する受信通知返信部を更に備える、
ことを特徴とするネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムであって、
前記ノード機器は、
直上のノード機器との接続断により、前記データ受信部がデータを受信できなくなった場合に、前記上位ノード管理部に管理される上位のノード機器のうち、下位から順に接続を試み、接続できたノード機器にデータの再送を要求する再送要求部をさらに備え、
前記データ受信部は、前記再送要求部が再送を要求したノード機器を新たな直上のノード機器とし、当該直上のノード機器から配信されるデータを受信する、
ことを特徴とするネットワークシステム。
【請求項３】
請求項１又は２に記載のネットワークシステムであって、
前記サーバに選定された前記ノード機器の前記経路決定部は、前記サーバの紹介により自己にアクセスしてきた新たなノードに直下のノード機器を紹介し、
前記サーバに選定されなかった前記ノード機器のうち、直下のノード機器を選定した前記ノード機器の前記経路決定部は、前記直上のノード機器の紹介により自己にアクセスしてきた新たなノード機器に、直下のノード機器を紹介し、
前記サーバに選定されなかった前記ノード機器のうち、直下のノード機器を選定しなかった前記ノード機器の前記経路決定部は、前記直上のノード機器の紹介により自己にアクセスしてきた新たなノード機器を直下の通信相手として選定する、
ことを特徴とするネットワークシステム。
【請求項４】
データの配信元となるサーバと、複数のノード機器とがそれぞれに通信可能なネットワークにおける各ノード機器であって、
前記サーバに向けて配信要求を送信する配信要求送信部と、
直上となる通信相手との接続、及び、直下となる通信相手との接続を含む配信経路を決定する経路決定部と、
決定された当該配信経路に基づいて接続した直上の通信相手から配信されるデータを受信するデータ受信部と、
当該受信したデータを、決定された当該配信経路に基づいて接続した直下の通信相手に送信するデータ送信部と、を備え、
前記サーバに選定された前記ノード機器の前記経路決定部は、前記サーバを直上の通信相手とし、前記サーバの紹介により自己にアクセスしてきた前記ノード機器のうちの少なくとも１つを直下のノード機器として選定すると共に、残りのノード機器に当該直下のノード機器を紹介し、
前記サーバに選定されなかった前記ノード機器の前記経路決定部は、自己が直下のノード機器として選定された際に、自己を選定した前記ノード機器を直上の通信相手とし、前記直上のノード機器の紹介により自己にアクセスしてきた前記ノード機器のうちの少なくとも１つを直下のノード機器として選定すると共に、残りのノード機器があれば、当該残りのノード機器に当該直下のノード機器を紹介し、
前記サーバに配信要求を最も早く送ったノード機器が最上位のノード機器として選定されるものであり、
前記サーバに選定された前記ノード機器の前記経路決定部は、前記サーバの紹介により最も早く自己にアクセスしてきた前記ノード機器を直下の通信相手として選定し、
前記サーバに選定されなかった前記ノード機器の前記経路決定部は、前記直上のノード機器の紹介により最も早く自己にアクセスしてきた前記ノード機器を直下の通信相手として選定し、アクセスが無かった場合に、直下の通信相手を選定しないものであり、
前記データ受信部が受信したデータに、自己のアドレスを付加するアドレス付加部と、
当該受信したデータにすでに付加されていたアドレスに基づいて、現時点における自己よりも上位のノード機器を管理する上位ノード管理部と、をさらに備え、
直下のノード機器を選定した前記ノード機器の前記データ送信部は、アドレスが付加されたデータを直下のノード機器に送信し、
直下の通信相手を選定しなかった前記ノード機器は、前記データ受信部が受信したデータに付加されていた全てのアドレスおよび自己のアドレスに基づいて、現時点における実際の配信経路を示すリストを生成し、受信通知に当該リストを付加して最上位のノード機器に返信する受信通知返信部を更に備える、
ことを特徴とするノード機器。
【請求項５】
請求項４に記載のノード機器であって、
直上のノード機器との接続断により、前記データ受信部がデータを受信できなくなった場合に、前記上位ノード管理部に管理される上位のノード機器のうち、下位から順に接続を試み、接続できたノード機器にデータの再送を要求する再送要求部をさらに備え、
前記データ受信部は、前記再送要求部が再送を要求したノード機器を新たな直上のノード機器とし、当該直上のノード機器から配信されるデータを受信する、
ことを特徴とするノード機器。
【請求項６】
請求項４又は５に記載のノード機器であって、
前記サーバに選定された前記ノード機器の前記経路決定部は、前記サーバの紹介により自己にアクセスしてきた新たなノードに直下のノード機器を紹介し、
前記サーバに選定されなかった前記ノード機器のうち、直下のノード機器を選定した前記ノード機器の前記経路決定部は、前記直上のノード機器の紹介によりアクセスしてきた新たなノード機器に、直下のノード機器を紹介し、
前記サーバに選定されなかった前記ノード機器のうち、直下のノード機器を選定しなかった前記ノード機器の前記経路決定部は、前記直上のノード機器の紹介によりアクセスしてきた新たなノード機器を直下の通信相手として選定する、
ことを特徴とするノード機器。
【請求項７】
サーバと複数のノード機器とがそれぞれに通信可能なネットワークシステムにおけるデータ配信方法であって、
前記サーバが行う、前記各ノード機器から送られる配信要求を受信する配信要求受信ステップと、
前記サーバが行う、当該配信要求を送った各ノード機器のうち、少なくとも１つを最上位のノード機器として選定する選定ステップと、
前記サーバが行う、選定しなかった残りの各ノード機器に、選定した当該ノード機器を紹介する紹介ステップと、
前記サーバが行う、選定した当該ノード機器に向けてデータを配信する配信ステップと、
前記各ノード機器が行う、前記サーバに向けて配信要求を送信する配信要求送信ステップと、
前記各ノード機器が行う、直上となる通信相手との接続、及び、直下となる通信相手との接続を含む配信経路を決定する経路決定ステップと、
前記各ノード機器が行う、決定された当該配信経路に基づいて接続した直上の通信相手から配信されるデータを受信するデータ受信ステップと、
前記各ノード機器が行う、当該受信したデータを、決定された当該配信経路に基づいて接続した直下の通信相手に送信するデータ送信ステップと、を備え、
前記サーバに選定された前記ノード機器が行う前記経路決定ステップは、前記サーバを直上の通信相手とし、前記サーバの紹介により自己にアクセスしてきた前記ノード機器のうちの少なくとも１つを直下のノード機器として選定すると共に、残りのノード機器に当該直下のノード機器を紹介し、
前記サーバに選定されなかった前記ノード機器が行う前記経路決定ステップは、自己が直下のノード機器として選定された際に、自己を選定した前記ノード機器を直上の通信相手とし、前記直上のノード機器の紹介により自己にアクセスしてきた前記ノード機器のうちの少なくとも１つを直下のノード機器として選定すると共に、残りのノード機器があれば、当該残りのノード機器に当該直下のノード機器を紹介し、
前記サーバが行う前記選定ステップでは、当該配信要求を最も早く送ったノード機器を最上位のノード機器として選定し、
前記サーバに選定された前記ノード機器が行う前記経路決定ステップでは、前記サーバの紹介により最も早く自己にアクセスしてきた前記ノード機器を直下の通信相手として選定し、
前記サーバに選定されなかった前記ノード機器が行う前記経路決定ステップでは、前記直上のノード機器の紹介により最も早く自己にアクセスしてきた前記ノード機器を直下の通信相手として選定し、アクセスが無かった場合に、直下の通信相手を選定しないものであり、
前記ノード機器が行う、前記データ受信部が受信したデータに、自己のアドレスを付加するアドレス付加ステップと、
前記ノード機器が行う、当該受信したデータにすでに付加されていたアドレスに基づいて、現時点における自己よりも上位のノード機器を管理する上位ノード管理ステップと、をさらに備え、
直下のノード機器を選定した前記ノード機器が行う前記データステップでは、アドレスが付加されたデータを直下のノード機器に送信し、
直下の通信相手を選定しなかった前記ノード機器が行う、前記データ受信ステップが受信したデータに付加されていた全てのアドレスおよび自己のアドレスに基づいて、現時点における実際の配信経路を示すリストを生成し、受信通知に当該リストを付加して最上位のノード機器に返信する受信通知返信ステップを更に備える、
ことを特徴とするデータ配信方法。
【請求項８】
データの配信元となるサーバと、複数のコンピュータとがそれぞれに通信可能なネットワークにおける各コンピュータを、
前記サーバに向けて配信要求を送信する配信要求送信部、
直上となる通信相手との接続、及び、直下となる通信相手との接続を含む配信経路を決定する経路決定部、
決定された当該配信経路に基づいて接続した直上の通信相手から配信されるデータを受信するデータ受信部、
当該受信したデータを、決定された当該配信経路に基づいて接続した直下の通信相手に送信するデータ送信部、として機能させ、
前記サーバに選定された前記コンピュータの前記経路決定部は、前記サーバを直上の通信相手とし、前記サーバの紹介により自己にアクセスしてきた前記コンピュータのうちの少なくとも１つを直下のコンピュータとして選定すると共に、残りのコンピュータに当該直下のコンピュータを紹介し、
前記サーバに選定されなかった前記コンピュータの前記経路決定部は、自己が直下のコンピュータとして選定された際に、自己を選定した前記コンピュータを直上の通信相手とし、前記直上のコンピュータの紹介により自己にアクセスしてきた前記コンピュータのうちの少なくとも１つを直下のコンピュータとして選定すると共に、残りのコンピュータがあれば、当該残りのコンピュータに当該直下のコンピュータを紹介し、
前記サーバに選定された前記コンピュータの前記経路決定部は、前記サーバの紹介により最も早く自己にアクセスしてきた前記コンピュータを直下の通信相手として選定し、
前記サーバに選定されなかった前記コンピュータの前記経路決定部は、前記直上のコンピュータの紹介により最も早く自己にアクセスしてきた前記コンピュータを直下の通信相手として選定し、アクセスが無かった場合に、直下の通信相手を選定しないように機能させ、
前記データ受信部が受信したデータに、自己のアドレスを付加するアドレス付加部、
当該受信したデータにすでに付加されていたアドレスに基づいて、現時点における自己よりも上位のコンピュータを管理する上位ノード管理部、としてさらに機能させ、
直下のコンピュータを選定した前記コンピュータの前記データ送信部は、アドレスが付加されたデータを直下のコンピュータに送信し、
直下の通信相手を選定しなかった前記コンピュータは、前記データ受信部が受信したデータに付加されていた全てのアドレスおよび自己のアドレスに基づいて、現時点における実際の配信経路を示すリストを生成し、受信通知に当該リストを付加して最上位のコンピュータに返信する受信通知返信部として更に機能させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ配信時の負荷を適切に低減することのできるネットワークシステム、ノード機器、データ配信方法、および、プログラムに関する。
【背景技術】
【０００２】
従来より、インターネット等のネットワークを利用して、種々のデータの提供が行われている。一例としてゲーム会社等では、ユーザに発売前等のゲームを体験してもらうために、評価版プログラム（プレイ範囲等が一部制限されたプロモーション用のプログラム）等のデータ配信を行っている。この他にも、ゲームの修正プログラムやライブラリ等のデータ配信も行われている。
具体的には、ゲーム会社のサーバに、配信対象となる評価版プログラム等を格納し、ユーザがゲーム機等を使用して自由にダウンロードできるようにしている。
【０００３】
なお、このような技術分野においては、ゲーム機の再起動やプレイの中断をせずに、修正プログラムやライブラリ等をダウンロードして利用できるようにする技術も開示されている（例えば、特許文献１参照）。
【特許文献１】特開２００４−２８７６３１（第１０−１６頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したような従来のデータ配信では、サーバに負荷が集中してしまい、効率的な配信が行われない場合があった。
例えば、評価版プログラムの配信開始がアナウンスされると、多くのユーザが同時期にダウンロードを行おうとするため、サーバに負荷が集中してしまうことになる。これにより、ダウンロードが全く開始されなかったり、また、ダウンロードが開始されても完了までに長時間を要してしまうというような状況が生じていた。
そのため、データの提供側（ゲーム会社等）は、複数のサーバを用いて負荷を分散させるといった一般的な負荷分散の技術を採用して、ユーザをそれほど待たせずにダウンロードが行えるように対処していた。
【０００５】
しかしながら、ユーザの関心が高いゲーム（評価版プログラム）を配信する場合等では、より多くのユーザが同時期にダウンロードしようとする状況が生じ易くなる。この状況では、既存の負荷分散の技術を採用していても、許容範囲を超えて負荷が高まってしまい、効率的な配信が行われないというのが実情であった。
そのため、データ配信時の負荷を低減することのできる新たな手法が求められていた。
【０００６】
本発明は、このような課題を解決するためになされたもので、データ配信時の負荷を適切に低減することのできるネットワークシステム、ノード機器、データ配信方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の観点に係るネットワークシステムは、サーバと複数のノード機器とがそれぞれに通信可能なネットワークシステムであって、サーバが、配信求受信部、選定部、紹介部、及び、配信部を含み、各ノード機器のそれぞれが、配信要求送信部、経路決定部、データ受信部、データ送信部、及び、受信通知返信部を含んで構成される。
【０００８】
まず、サーバにおいて、配信要求受信部は、各ノード機器から送られる配信要求を受信する。また、選定部は、当該配信要求を送った各ノード機器のうち、少なくとも１つを最上位のノード機器として選定する。紹介部は、選定していない残りの各ノード機器に、当該最上位のノード機器を紹介する。そして、配信部は、当該最上位のノード機器に向けてデータを配信する。
【０００９】
一方、各ノード機器において、配信要求送信部は、サーバに向けて配信要求を送信する。また、経路決定部は、サーバによって最上位のノード機器に選定された場合に、サーバから紹介された各ノード機器について、自己を起点にそれぞれ上位から下位に並べた配信経路を決定する。データ受信部は、決定された当該配信経路に基づいて接続した直上のノード機器若しくはサーバから配信されるデータを受信する。データ送信部は、当該配信経路に基づいて接続した直下のノード機器がある場合に、当該受信したデータを当該直下のノード機器に送信する。そして、受信通知返信部は、当該配信経路に基づいて直下のノード機器がなく、自己が最下位のノード機器となった場合に、データ受信部がデータを受信すると、最上位のノード機器に受信通知を返信する。
【００１０】
このように、サーバ側は、最上位のノード機器を選定し、そのノード機器に向けてデータの配信を行う。一方、ノード機器側は、最上位のノード機器を起点とした配信経路を決定すると、その経路に沿って上位のノード機器から下位のノード機器へとバケツリレーの様にデータの配信を行う。
このため、データ配信時において、従来のように負荷がサーバに集中することなく、ノード機器側で適宜分散されることになる。
この結果、データ配信時の負荷を適切に低減することができる。
【００１１】
前記サーバの前記選定部は、当該配信要求を最も早く送ったノード機器を最上位のノード機器として選定し、
前記ノード機器の前記経路決定部は、前記サーバから紹介された順番に従って、各ノード機器を上位から下位に並べた配信経路を決定してもよい。
この場合、配信経路を極めて自然に決定することができ、経路を決定するための処理も単純化できる。
【００１２】
前記ノード機器は、
前記データ受信部が受信したデータに、自己のアドレスを付加するアドレス付加部と、
当該受信したデータにすでに付加されていたアドレスに基づいて、現時点における自己よりも上位のノード機器を管理する上位ノード管理部と、をさらに備え、
前記データ送信部は、アドレスが付加されたデータを直下のノード機器に送信し、
前記受信通知返信部は、前記データ受信部が受信したデータに付加されていた全てのアドレスおよび自己のアドレスに基づいて、現時点における実際の配信経路を示すリストを生成し、受信通知に当該リストを付加して最上位のノード機器に返信してもよい。
この場合、最下位のノード機器まで配信が行われたことを把握できると共に、その時点における実際の（最新の）配信経路も把握することができる。
【００１３】
前記ノード機器は、
直上のノード機器との接続断により、前記データ受信部がデータを受信できなくなった場合に、前記上位ノード管理部に管理される上位のノード機器のうち、下位から順に接続を試み、接続できたノード機器にデータの再送を要求する再送要求部をさらに備え、
前記データ受信部は、前記再送要求部が再送を要求したノード機器を新たな直上のノード機器とし、当該直上のノード機器から配信されるデータを受信してもよい。
この場合、自律的に配信経路を再構築し、データ配信を適切に継続することができる。
【００１４】
前記ノード機器の前記経路決定部は、前記サーバから新たなノード機器が紹介された場合に、当該新たなノード機器を最下位とした配信経路を再決定してもよい。
この場合、途中参加のノード機器を含めたデータ配信を適切に行うことができる。
【００１５】
本発明の第２の観点に係るノード機器は、データの配信元となるサーバと、複数のノード機器とがそれぞれに通信可能なネットワークにおける各ノード機器であって、配信要求送信部、経路決定部、データ受信部、データ送信部、及び、受信通知返信部を含んで構成される。
【００１６】
まず、配信要求送信部は、サーバに向けて配信要求を送信する。また、経路決定部は、サーバによって自己が最上位のノード機器に選定された場合に、サーバから紹介された各ノード機器について、自己を起点にそれぞれ上位から下位に並べた配信経路を決定する。データ受信部は、決定された当該配信経路に基づいて接続した直上のノード機器若しくはサーバから配信されるデータを受信する。データ送信部は、当該配信経路に基づいて接続した直下のノード機器がある場合に、当該受信したデータを当該直下のノード機器に送信する。そして、受信通知返信部は、当該配信経路に基づいて直下のノード機器がなく、自己が最下位のノード機器となった場合に、データ受信部がデータを受信すると、最上位のノード機器に受信通知を返信する。
【００１７】
このように、各ノード機器は、最上位のノード機器を起点とした配信経路を決定すると、その経路に沿って上位のノード機器から下位のノード機器へとバケツリレーの様にデータの配信を行う。
このため、データ配信時において、従来のように負荷がサーバに集中することなく、各ノード機器で適宜分散されることになる。
この結果、データ配信時の負荷を適切に低減することができる。
【００１８】
前記サーバに配信要求を最も早く送ったノード機器が最上位のノード機器として選定されるものであり、
前記経路決定部は、前記サーバから紹介された順番に従って、各ノード機器を上位から下位に並べた配信経路を決定してもよい。
この場合、配信経路を極めて自然に決定することができ、経路を決定するための処理も単純化できる。
【００１９】
前記データ受信部が受信したデータに、自己のアドレスを付加するアドレス付加部と、
当該受信したデータにすでに付加されていたアドレスに基づいて、現時点における自己よりも上位のノード機器を管理する上位ノード管理部と、をさらに備え、
前記データ送信部は、アドレスが付加されたデータを直下のノード機器に送信し、
前記受信通知返信部は、前記データ受信部が受信したデータに付加されていた全てのアドレスおよび自己のアドレスに基づいて、現時点における実際の配信経路を示すリストを生成し、受信通知に当該リストを付加して最上位のノード機器に返信してもよい。
この場合、最下位のノード機器まで配信が行われたことを把握できると共に、その時点における実際の（最新の）配信経路も把握することができる。
【００２０】
直上のノード機器との接続断により、前記データ受信部がデータを受信できなくなった場合に、前記上位ノード管理部に管理される上位のノード機器のうち、下位から順に接続を試み、接続できたノード機器にデータの再送を要求する再送要求部をさらに備え、
前記データ受信部は、前記再送要求部が再送を要求したノード機器を新たな直上のノード機器とし、当該直上のノード機器から配信されるデータを受信してもよい。
この場合、自律的に配信経路を再構築し、データ配信を適切に継続することができる。
【００２１】
前記ノード機器の前記経路決定部は、前記サーバから新たなノード機器が紹介された場合に、当該新たなノード機器を最下位とした配信経路を再決定してもよい。
この場合、途中参加のノード機器を含めたデータ配信を適切に行うことができる。
【００２２】
本発明の第３の観点に係るデータ配信方法は、サーバと複数のノード機器とがそれぞれに通信可能なネットワークシステムにおけるデータ配信方法であって、配信求受信ステップ、選定ステップ、紹介ステップ、配信ステップ、配信要求送信ステップ、経路決定ステップ、データ受信ステップ、データ送信ステップ、及び、受信通知返信ステップを含んで構成される。
【００２３】
まず、サーバにおいて、配信要求受信ステップでは、各ノード機器から送られる配信要求を受信する。また、選定ステップでは、当該配信要求を送った各ノード機器のうち、少なくとも１つを最上位のノード機器として選定する。紹介ステップでは、選定していない残りの各ノード機器に、当該最上位のノード機器を紹介する。そして、配信ステップでは、当該最上位のノード機器に向けてデータを配信する。
【００２４】
一方、各ノード機器において、配信要求送信ステップでは、サーバに向けて配信要求を送信する。また、経路決定ステップでは、サーバによって最上位のノード機器に選定された場合に、サーバから紹介された各ノード機器について、自己を起点にそれぞれ上位から下位に並べた配信経路を決定する。データ受信ステップでは、決定された当該配信経路に基づいて接続した直上のノード機器若しくはサーバから配信されるデータを受信する。データ送信ステップでは、当該配信経路に基づいて接続した直下のノード機器がある場合に、当該受信したデータを当該直下のノード機器に送信する。そして、受信通知返信ステップでは、当該配信経路に基づいて直下のノード機器がなく、自己が最下位のノード機器となった場合に、データ受信部がデータを受信すると、最上位のノード機器に受信通知を返信する。
【００２５】
このように、サーバ側は、最上位のノード機器を選定し、そのノード機器に向けてデータの配信を行う。一方、ノード機器側は、最上位のノード機器を起点とした配信経路を決定すると、その経路に沿って上位のノード機器から下位のノード機器へとバケツリレーの様にデータの配信を行う。
このため、データ配信時において、従来のように負荷がサーバに集中することなく、ノード機器側で適宜分散されることになる。
この結果、データ配信時の負荷を適切に低減することができる。
【００２６】
本発明の第４の観点に係るプログラムは、コンピュータ（電子機器を含む。）を、上記のゲーム機として機能させるように構成する。
【００２７】
このプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
【００２８】
上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００２９】
本発明によれば、データ配信時の負荷を適切に低減することができる。
【発明を実施するための最良の形態】
【００３０】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ネットワークを介してサーバ等に接続可能なゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、ＰＤＡ、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に記載する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００３１】
（実施形態１）
図１は、本発明の実施の形態に係るネットワークシステムの概要構成を示す模式図である。以下、本図を参照して説明する。
【００３２】
本ネットワークシステム１０では、一例として、インターネット１３上にデータ配信を行うサーバ１１が配置されている。そして、本ネットワークシステム１０における各端末１２は、インターネット１３を介してサーバ１１又は他の端末１２と通信可能に接続されている。
なお、サーバ１１は、例えば、評価用プログラムを配信可能であり、各端末１２から直接的又は間接的に、ダウンロードが行えるようになっている。また、各端末１２は、いわゆるピアツーピア通信技術によって、相互に通信を行うことも可能である。
発明の理解を容易にするため、以下では、端末１２としてインターネットへの接続が可能なゲーム装置を一例にあげて、説明する。
【００３３】
図２は、本実施形態の端末１２（つまり、ノード機器）として機能するゲーム装置１００の概要構成を示す模式図である。以下、本図を参照して説明する。
【００３４】
ゲーム装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェース１０４と、コントローラ１０５と、外部メモリ１０６と、ＤＶＤ（Digital Versatile Disk）−ＲＯＭドライブ１０７と、画像処理部１０８と、音声処理部１０９と、ＮＩＣ（Network Interface Card）１１０と、を備える。
【００３５】
なお、ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０７に装着して、ゲーム装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態のノード機器が実現される。
【００３６】
ＣＰＵ  １０１は、ゲーム装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【００３７】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、ゲーム装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００３８】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【００３９】
インターフェース１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。たとえば、コントローラ１０５は、操作入力に従って、文字列（メッセージ）等の入力を受け付ける。
【００４０】
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲームの進行状態を示すデータ、チャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００４１】
ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０７は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００４２】
画像処理部１０８は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０８が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０８が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０８に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００４３】
なお、画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００４４】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ＲＯＭ  １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【００４５】
音声処理部１０９は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００４６】
ＮＩＣ  １１０は、ゲーム装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００４７】
このほか、ゲーム装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。
【００４８】
また、本実施形態のゲーム装置１００にかえて、一般的なコンピュータ（汎用のパーソナルコンピュータ等）をノード機器として利用することもできる。たとえば、一般的なコンピュータは、上記ゲーム装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、ゲーム装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。そして、ゲームプログラムをインストールした後に、そのプログラムを実行させると、ノード機器として機能する。
【００４９】
（サーバの概要構成）
図３は、本実施形態に係るサーバ１１の概要構成の一例を示す模式図である。以下、本図を参照して説明する。
【００５０】
サーバ１１は、図３に示すように、配信要求受信部２０１と、選定部２０２と、ノード情報記憶部２０３と、紹介部２０４と、配信部２０５と、配信用データ記憶部２０６とを備えている。
【００５１】
配信要求受信部２０１は、ノード機器（以下、「ノード」と略す。）となる各端末１２から送られる配信要求を受信する。
例えば、端末１２から任意の評価用プログラムが指定され、ダウンロードが要求されると、その評価用プログラムについての配信要求を受信する。
【００５２】
選定部２０２は、配信要求を送った各端末１２のうち、少なくとも１つを最上位のノードとして選定する。
例えば、同じ評価用プログラムが指定された配信要求のうち、最も早く配信要求を送った端末１２を最上位のノードとして選定する。そして、選定した端末１２の識別情報（例えば、ＭＡＣアドレス等）、及び、その端末１２にアクセス可能となるアドレス（例えば、ＩＰアドレス等）を、ノード情報記憶部２０３に格納する。
【００５３】
ノード情報記憶部２０３は、最上位のノードとして選定された端末１２の情報を記憶する。
例えば、ノード情報記憶部２０３は、選定された端末１２の識別情報（ＭＡＣアドレス等）及びアドレス（ＩＰアドレス等）を、配信要求された評価用プログラムに対応付けて記憶する。
【００５４】
紹介部２０４は、選定していない残りの端末１２から、配信要求を受信すると、各端末１２に、選定した端末１２（つまり、最上位のノード）を紹介する。
具体的に紹介部２０４は、ノード情報記憶部２０３を参照し、配信要求された評価用プログラムに対応する端末１２の情報（最上位のノード情報）が記憶されているか否かを判別する。そして、端末１２の情報が記憶されている場合には、最上位のノードが既に選定されているため、記憶された情報（アドレス等）を返答して最上位のノードを紹介する。
なお、最上位のノード情報が記憶されていない場合には、上述した選定部２０２が、最上位のノードとなる端末１２を選定することになる。
【００５５】
配信部２０５は、最上位のノードとなる端末１２（つまり、選定された端末１２）に向けてデータを配信する。
例えば、配信部２０５は、最上位のノードとの間で配信用のセッションを接続し、配信用データ記憶部２０６から対象の評価用プログラムを読み出して配信する。
なお、評価用プログラムが配信される際には、所定のブロックサイズに分割（断片化）がなされ、このブロック単位にデータ配信が行われる。
【００５６】
配信用データ記憶部２０６は、ユーザ（具体的には、端末１２）に提供可能な種々の評価用プログラム等のデータを記憶している。
【００５７】
（ノードとなる各端末の概要構成）
図４は、本実施形態に係る端末１２の概要構成の一例を示す模式図である。以下、本図を参照して説明する。
【００５８】
端末１２は、図４に示すように、配信要求送信部３０１と、経路決定部３０２と、データ受信部３０３と、配信データ記憶部３０４と、アドレス付加部３０５と、上位ノード管理部３０６と、再送要求部３０７と、データ送信部３０８と、受信通知返信部３０９とを備えている。
【００５９】
配信要求送信部３０１は、サーバ１１に向けて配信要求を送信する。
例えば、端末１２を操作するユーザによって任意の評価用プログラムが指定されると、その評価用プログラムについての配信要求をサーバ１１に送信する。
なお、上述したＮＩＣ  １１０がこのような配信要求送信部３０１として機能しうる。
【００６０】
経路決定部３０２は、自己（端末１２）が、サーバ１１によって最上位のノードとして選定された場合に機能し、各端末間１２の配信経路を決定する。
例えば、経路決定部３０２は、サーバ１１から紹介された他の各端末１２について、自己を起点にそれぞれ上位から下位に並べた配信経路を決定する。
具体的には、図５（ａ）に示すように最上位のノードＡに向けて、ノードＢ〜Ｅの順番に、サーバ１１からの紹介に基づくアクセスが行われると、ノードＡの経路決定部３０２は、図５（ｂ）に示すような配信経路を決定する。
【００６１】
つまり、ノードＡ（経路決定部３０２）は、紹介に基づき最初にアクセスしてきたノードＢを直下のノードに決める。そして、続いてアクセスしてきたノードＣ〜Ｅに対して、ノードＢをそれぞれ紹介する。そのため、ノードＣ〜Ｅは、ノードＢにアクセスすることになる。
また、ノードＢは、紹介に基づき最初にアクセスしてきたノードＣを直下のノードに決め、続いてアクセスしてきたノードＤ，Ｅに、ノードＣをそれぞれ紹介する。そのため、ノードＤ，Ｅは、ノードＣにアクセスすることになる。
そして、ノードＣは、最初にアクセスしてきたノードＤを直下のノードに決め、続いてアクセスしてきたノードＥにノードＤを紹介する。そのため、ノードＥは、ノードＤにアクセスすることになる。
最後に、ノードＤは、アクセスしてきたノードＥを直下のノードに決める。
【００６２】
このように決定される配信経路に従って、各ノードは、直上のノードとの間、そして、直下のノードとの間に、それぞれ配信用のセッションを接続する。
例えば、図５（ｂ）に示すノードＣであれば、直上のノードＢとの間、そして、直下のノードＤとの間にセッションを張ることになる。また、ノードＥは、直上のノードＤとの間にセッションを張るところまでは同様であるが、最下位のノードであるため、最上位のノードＡとの間に、後述する受信通知を行うためのセッションを張ることになる。
なお、上述したＣＰＵ  １０１等がこのような経路決定部３０２として機能しうる。
【００６３】
図４に戻って、データ受信部３０３は、経路決定部３０２によって決定された配信経路に基づいて接続した直上のノードから配信されるデータを受信する。なお、最上位のノードとなった端末１２の場合、データ受信部３０３は、サーバ１１から直接配信されるデータを受信する。
そして、データ受信部３０３は、受信したデータを配信データ記憶部３０４に順次格納する。
なお、上述したＮＩＣ  １１０がこのようなデータ受信部３０３として機能しうる。
【００６４】
配信データ記憶部３０４は、データ受信部３０３が受信したデータを記憶する。
なお、上述したように、評価用プログラムは、所定のブロックサイズに分割されて配信される。そのため、配信されるデータには、元の評価用プログラムに復元するために必要な情報も含まれている。
配信データ記憶部３０４は、このように配信されたデータを順次記憶し、全てのデータ（全ブロック）を取得した後には、復元された評価用プログラムを記憶する。
なお、上述したＲＡＭ  １０３や外部メモリ１０６がこのような配信データ記憶部３０４として機能しうる。
【００６５】
アドレス付加部３０５は、データ受信部３０３が受信したデータに自己のアドレス等を付加する。
具体的には、図６（ａ）に示すように、配信されるデータは、データ本体（データ部）の他に、ヘッダ部が設けられている。このヘッダ部は、所定数のエリア（ａｄ１〜ａｄｎ）に区分けされており、各ノードが自己のアドレス等の情報を各エリアに付加できるようになっている。
そのため、アドレス付加部３０５は、このヘッダ部の先頭エリア（ａｄ１）から末尾（ａｄｎ）に向けて空きエリアを探し、最初に見つけた空きエリアに、自己のアドレス（例えば、ＩＰアドレス等）や自己の識別情報（ＭＡＣアドレス等）をセットする。
つまり、各ノードがそれぞれに、データを受信した際に、ヘッダ部の空きエリアを探して自己のアドレス等を付加するため、例えば、図６（ｂ）に示すように、実際の配信経路の順番にヘッダ部の各エリアが先頭から埋められていくことになる。
なお、上述したＣＰＵ  １０１等がこのようなアドレス付加部３０５として機能しうる。
【００６６】
図４に戻って、上位ノード管理部３０６は、データ受信部３０３が受信したデータ（ヘッダ部）に付加されていたアドレス等に基づいて、現時点における自己よりも上位のノードとなる端末１２を管理する。
例えば、上位ノード管理部３０６は、上述した図６（ｂ）に示すようなヘッダ部に付加されているノードのアドレス等を読み出し、図７に示すような上位ノードテーブルＴを作成（更新）する。つまり、上位ノード管理部３０６は、上位ノードテーブルＴを適宜更新して、自己よりも上位の配信経路（ノードの並び）が、常に最新の状態となるように管理する。この上位ノードテーブルＴは、後述するように、直上のノードとのセッションが切断された場合等に参照される。
なお、上述したＣＰＵ  １０１及びＲＡＭ  １０３等がこのような上位ノード管理部３０６として機能しうる。
【００６７】
再送要求部３０７は、直上のノードとの接続断により、データ受信部３０３がデータを受信できなくなった場合に、他の上位のノードに接続してデータの再送を要求する。
例えば、再送要求部３０７は、上位ノード管理部３０６に管理される上位ノードテーブルを参照し、直上のノードに代えて他の上位のノードへの接続を試み、接続できた上位のノードに対してデータの再送を要求する。
具体的には、図５（ｂ）に示すような配信経路が決定されていた状態で、ノードＣが消滅すると、ノードＣとノードＤとのセッションが絶たれる（より詳細には、ノードＢとノードＣとのセッションも絶たれる）。この場合、ノードＤの再送要求部３０７は、図７に示す上位ノードテーブルＴを参照し、ノードＣの直上のノードＢに接続を試みる。そして、接続できた場合にそのノードＢにデータの再送を要求する。なお、ノードＢに接続ができなかった場合には、更に上位のノードＡに接続を試み、接続できた場合にそのノードＡにデータの再送を要求することになる。
そして、再送要求部３０７によって再送を要求したノードが、新たな直上のノードとなる。
なお、上述したＮＩＣ  １１０がこのような再送要求部３０７として機能しうる。
【００６８】
図４に戻って、データ送信部３０８は、決定された配信経路に基づいて接続した直下のノードに対して自己が受信したデータを送信する。
つまり、データ受信部３０３が受信したデータ（より詳細には、アドレス付加部３０５がアドレス等を付加したデータ）を、直下のノードとなる端末１２に配信する。
これにより、各ノードは、上位のノードから下位のノードへと、バケツリレーの様にデータを配信することになる。
なお、最下位のノードのデータ送信部３０８は、直下のノードがないため、データ送信を行わない。
そして、上述したＮＩＣ  １１０がこのようなデータ送信部３０８として機能しうる。
【００６９】
受信通知返信部３０９は、自己（端末１２）が最下位のノードとなった場合に機能し、データ受信部３０３がデータを受信すると、最上位のノードに受信通知を返信する。
例えば、受信通知返信部３０９は、現時点における全配信経路を示すリストを生成し、このリストを含む受信通知を最上位のノードとなる端末１２に返信する。
具体的に図５（ｂ）に示す配信経路の場合を一例として説明すると、最下位のノードＥの受信通知返信部３０９は、上位ノード管理部３０６に管理される上位ノードテーブルを読み出し、それに、自己のアドレス等を付加したリスト、つまり、ノードＡからノードＥに至るまでの全配信経路を示すリストを生成する。そして、生成したリストを含む受信通知を、最上位のノードＡに送信する。
なお、上述したＣＰＵ  １０１及びＮＩＣ  １１０等がこのような受信通知返信部３０９として機能しうる。
【００７０】
（サーバ及び端末の動作概要）
図８は、上述した構成のサーバ１１にて実行される配信要求受信処理の流れを示すフローチャートである。また、図９は、各端末１２にて実行される配信経路決定処理の流れを示すフローチャートである。以下、これらの図を参照してサーバ１１及び各端末１２の動作について説明する。
【００７１】
最初に、サーバ１１の動作について、図８の配信要求受信処理を参照して説明する。なお、サーバ１１の配信用データ記憶部２０６には、評価用プログラムが配信可能に格納されているものとする。
まず、サーバ１１は、端末１２から配信要求が送られるまで、後続処理の実行を待機する（ステップＳ４０１；Ｎｏ）。つまり、任意の評価用プログラムが指定された配信要求を受信するまで待機する。
【００７２】
そして、配信要求を受信すると（ステップＳ４０１；Ｙｅｓ）、サーバ１１は、配信が要求された評価用プログラムについて、ノード情報記憶部２０３を検索する（ステップＳ４０２）。
つまり、ノード情報記憶部２０３の中から、指定された評価用プログラムに対応するノード情報について検索する。
【００７３】
サーバ１１は、最上位のノードが選定済みであるか否かを判別する（ステップＳ４０３）。つまり、指定された評価用プログラムに対応するノード情報が、ノード情報記憶部２０３に格納されてるかどうかを判別する。
すなわち、評価用プログラムに対応するノード情報が格納されていた場合に、最上位ノードが選定済みであると判別し、逆に、格納されていなかった場合に、最上位ノードが未選定であると判別する。
【００７４】
サーバ１１は、最上位のノードが選定済みでないと判別すると（ステップＳ４０３；Ｎｏ）、配信を要求した端末１２を最上位のノードとして選定する（ステップＳ４０４）。
つまり、選定部２０２は、その評価用プログラムに対して、最も早く配信要求を送ってきた端末１２を最上位のノードとして選定する。そして、選定した端末１２のアドレス等をノード情報記憶部２０３に格納する。
【００７５】
一方、最上位のノードが選定済みであると判別した場合に（ステップＳ４０３；Ｙｅｓ）、サーバ１１は、配信を要求した端末１２に最上位のノードを紹介する（ステップＳ４０５）。
つまり、紹介部２０４は、要求した端末１２に対して、ノード情報記憶部２０３に記憶された端末１２のアドレス等を返信することにより、最上位のノードとなる端末１２を紹介する。
【００７６】
このような配信要求受信処理により、サーバ１１は、配信が要求された際に、最上位のノードとなる端末１２を未選定の状態であれば、要求してきた端末１２を最上位のノードとして選定する。一方、選定済みの状態であれば、その選定済みの端末１２（最上位のノード）を、要求してきた端末１２に紹介する。
そして、データを配信する際に、サーバ１１は、選定したノード機器だけに配信を行えばよいため、負荷を軽減することができる。
【００７７】
次に、各端末１２（各ノード）の動作について、図９の配信経路決定処理を参照して説明する。なお、この配信経路決定処理は、データ配信を開始する前に、所定数の端末１２が揃った状態で行ってもよく、また、一度配信経路を決定した後であっても、新たな端末を加えるために、随時行ってもよい。
【００７８】
まず、端末１２は、他の端末１２から紹介によるアクセスがあるまで、後続処理の実行を待機する（ステップＳ５０１；Ｎｏ）。つまり、経路決定部３０２は、サーバ１１による紹介や、上位の端末１２による紹介に基づいてなされる他の端末１２からのアクセスを待機する。
そして、紹介によるアクセスがあると（ステップＳ５０１；Ｙｅｓ）、端末１２は、自己の直下にノードが存在しているか否かを判別する（ステップＳ５０２）。つまり、経路決定部３０２は、直下のノードとして他の端末１２を管理している状態であるかどうかを判別する。
【００７９】
端末１２は、直下のノードが存在していないと判別すると（ステップＳ５０２；Ｎｏ）、アクセス元の端末１２を直下のノードとして管理する（ステップＳ５０３）。
つまり、経路決定部３０２は、アクセス元の端末１２との間で配信用のセッションを確立し、自己からその端末１２へ配信等が行える状態にする。
【００８０】
一方、直下のノードが存在していると判別した場合に（ステップＳ５０２；Ｙｅｓ）、端末１２は、アクセス元の端末１２に対して直下のノードを紹介する（ステップＳ５０４）。
つまり、経路決定部３０２は、自己の下位に幾つかのノードがあるため、直下のノードをアクセス元の端末１２に紹介して、再度アクセスさせる。
【００８１】
このような配信経路決定処理により、後から配信要求を行った端末１２は、最上位の端末１２、その下位（直下）の端末１２、更に下位の端末１２へと、順に紹介されることになり、最終的に最下位のノードとしてその１つ上位（直上）のノードと接続することになる。
このようにして配信経路が決定され、それぞれが通信可能になると、その経路に沿って上位のノードから下位のノードへとバケツリレーの様にデータの配信が行われることになる。
このため、データ配信時の負荷が、従来のようにサーバに集中することなく、ノード側で適宜分散されることになる。
この結果、サーバ１１に負荷が集中することを避け、データ配信時の負荷を適切に低減することができる。
【００８２】
（ノードが消滅した場合の動作）
上述した配信経路決定処理により配信経路が決定し、データ配信が行われている途中で、何らかの理由により、ノードが消滅してしまうことも生じ得る。例えば、端末１２のネットワーク接続が切断されてしまったり、端末１２の電源が切られてしまうと、そのノードが消滅してしまうことになる。
この場合、消滅したノードを外して配信経路が再構築されなければ、消滅したノードよりも下位のノードには、データ配信が行われなくなってしまう。
そのため、本願の実施形態に係る端末１２には、上述した再送要求部３０７が備えられており、ノードが消滅した際にも、データ配信が適切に継続できるようにしている。
以下、ノードが消滅した場合における端末１２の動作について、図１０を参照して説明する。
図１０は、各端末１２にて実行される再送要求処理の流れを示すフローチャートである。この再送要求処理は、例えば、データ配信と並行して実行される。
【００８３】
まず、端末１２は、直上のノードとの接続が途絶したかどうかを逐次判別する（ステップＳ６０１）。例えば、再送要求部３０７は、データ配信を行っている途中で、データ受信部３０３の受信状態を監視し、受信ができなくなると、直上のノードとの接続が途絶したと判別する。
なお、接続が途絶しなければ（ステップＳ６０１；Ｎｏ）、以降の処理は、実行されない。
一方、接続が途絶したと判別すると（ステップＳ６０１；Ｙｅｓ）、端末１２は、変数ｎに初期値の２をセットする。この変数ｎは、自己よりもどれくらい上位のノードであるかを示す値である。
つまり、変数ｎが２の場合、自己よりも２つ上位のノードを示し、また、変数ｎが３の場合、自己よりも３つ上位のノードを示すことになる。なお、変数ｎが１の場合を飛ばしているのは、自己よりも１つ上位のノード、つまり、直上のノードを示すためである。
【００８４】
端末１２は、変数ｎの値に従って、自己よりもｎだけ（ｎつ）上位のノードを、上位ノードテーブルから特定する（ステップＳ６０３）。
そして、端末１２は、特定したノードとの接続を試みる（ステップＳ６０４）。つまり、再送要求部３０７は、接続が途絶した直上のノードよりも上位のノードに対して接続を試みる。
【００８５】
端末１２は、接続可能であったかどうかを判別する（ステップＳ６０５）。つまり、再送要求部３０７は、特定した上位のノードとの間に配信用のセッションが張れたかどうかを判別する。
【００８６】
端末１２は、接続不能であったと判別すると（ステップＳ６０５；Ｎｏ）、変数ｎに１を加算して（ステップＳ６０６）、ステップＳ６０３に処理を戻す。
【００８７】
一方、接続可能であったと判別すると（ステップＳ６０５；Ｙｅｓ）、端末１２は、接続したノードに再送要求を送信する（ステップＳ６０７）。
そして、端末１２は、直上のノードを、今回新たに接続したノードに切り換えて、データ配信を継続する（ステップＳ６０８）。
すなわち、切り換えた直上のノードから再配信されるデータをデータ受信部３０３が受信すると、そのデータにアドレス等を付加した後、データ送信部３０８が直下のノードに配信する。つまり、自己及び、自己よりも下位のノードには、消滅したノードのアドレス等が省かれて（付加されずに）、データが配信される。そのため、上位ノード管理部３０６により、上位ノードテーブルが最新の状態に更新されることになる。
このような再送要求処理により、途中でノードが消滅した際に、自律的に配信経路を再構築し、データ配信を適切に継続することができる。
【００８８】
（他の実施形態）
上記の実施形態では、発明の理解を容易にするために、図５（ｂ）に示すような、各ノードが１列に並ぶ最もシンプルな配信経路を一例として説明した。
しかしながら、配信経路の並びは、このようなシンプルな経路に限られず、各端末１２の処理能力や、各端末１２間の通信容量（通信速度等）に応じて、適宜変更可能である。
例えば、図１１（ａ）に示すような枝分かれする配信経路についても、本願発明は、適宜適用することができる。以下、具体的に説明する。
【００８９】
まず、図１１（ａ）の配信経路が決定されるに先立って、同様に、最上位のノード（この場合も、ノードＡ）が、サーバ１１により選定される。そして、図１１（ｂ）に示すように最上位のノードＡに向けて、ノードＢ〜Ｇの順番に、サーバ１１からの紹介に基づくアクセスが行われるものとする。
ノードＡは、処理能力等に基づいて、直下のノード数を決めると（この場合、ノード数：２）、２番目までにアクセスしてきたノード（この場合、ノードＢ，Ｃ）を直下のノードに決める。そして、続いてアクセスしてきたノードＤ〜Ｇに対して、ノードＢ，Ｃの何れか一方を紹介する。一例として、ノードＡは、紹介先を交互に切り換えて紹介する。そのため、ノードＤ，Ｆには、ノードＢが紹介され、また、ノードＥ，Ｇには、ノードＣが紹介される。そして、ノードＤ〜Ｇは、紹介されたノードにそれぞれアクセスすることになる。
【００９０】
また、ノードＢも、処理能力等に基づいて、直下のノード数を決めると（この場合、ノード数：１）、最初にアクセスしてきたノード（この場合、ノードＤ）を直下のノードに決める。そして、続いてアクセスしてきたノードＦに対して、ノードＤを紹介する。
更に、ノードＤは、アクセスしてきたノードＦを直下のノードに決める。
【００９１】
最後に、ノードＣも、処理能力等に基づいて、直下のノード数を決めると（この場合、ノード数：２）、２番目までにアクセスしてきたノード（この場合、ノードＥ，Ｇ）を直下のノードに決める。
このようにして決定された配信経路に従って、各ノードは、直上のノードとの間、そして、直下のノードとの間に、それぞれ配信用のセッションを接続する。
なお、最下位となるノードＦ，Ｅ，Ｇは、それぞれ最上位のノードＡとの間に、受信通知を行うためのセッションを張ることになる。
【００９２】
このような枝分かれする配信経路の場合でも、それらの経路（枝分かれした各経路）に沿って上位のノードから下位のノードへとバケツリレーの様にデータの配信が行われることになる。
この結果、サーバ１１に負荷が集中することを避け、データ配信時の負荷を適切に低減することができる。
【００９３】
以上説明したように、本発明によれば、データ配信時の負荷を適切に低減することができる。
【図面の簡単な説明】
【００９４】
【図１】本実施形態のネットワークシステムの概要構成を示す模式図である。
【図２】本実施形態のゲーム装置の概要構成を示す模式図である。
【図３】サーバの概要構成の一例を示す模式図である。
【図４】端末の概要構成の一例を示す模式図である。
【図５】（ａ），（ｂ）共に、配信経路が決定される様子を説明するための模式図である。
【図６】（ａ），（ｂ）共に、配信データに含まれるヘッダ部等を説明するための模式図である。
【図７】上位ノードテーブルの一例を説明するための模式図である。
【図８】本発明の実施形態に係る配信要求受信処理の一例を示すフローチャートである。
【図９】本発明の実施形態に係る配信経路決定処理の一例を示すフローチャートである。
【図１０】本発明の実施形態に係る再送要求処理の一例を示すフローチャートである。
【図１１】枝分かれする配信経路を説明するための模式図である。
【符号の説明】
【００９５】
１０    ネットワークシステム
１１    サーバ
１２    端末
１３    インターネット
１００  ゲーム装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  ＤＶＤ−ＲＯＭドライブ
１０８  画像処理部
１０９  音声処理部
１１０  ＮＩＣ
２０１  配信要求受信部
２０２  選定部
２０３  ノード情報記憶部
２０４  紹介部
２０５  配信部
２０６  配信用データ記憶部
３０１  配信要求送信部
３０２  経路決定部
３０３  データ受信部
３０４  配信データ記憶部
３０５  アドレス付加部
３０６  上位ノード管理部
３０７  再送要求部
３０８  データ送信部
３０９  受信通知返信部
【図１】
0004637145.tif 000002
【図２】
0004637145.tif 000003
【図３】
0004637145.tif 000004
【図４】
0004637145.tif 000005
【図５】
0004637145.tif 000006
【図６】
0004637145.tif 000007
【図７】
0004637145.tif 000008
【図８】
0004637145.tif 000009
【図９】
0004637145.tif 000010
【図１０】
0004637145.tif 000011
【図１１】
0004637145.tif 000012