以下、図面に基づいて本発明の一実施形態について説明をする。図1は本発明のシステムを採用した一例を示し、ネットワーク5を介して接続され、大容量データ配信の配信スケジュールを管理するデータ送信制御サーバ1、高信頼マルチキャスト通信によって複数のユーザーへのデータ配信を一度だけ行うデータ送信サーバ2、ユーザーのデータ再送要求に基づいてデータの再送処理を行うデータ再送サーバ3、及び配信データをハードディスクに保存してユーザーに提供する複数のクライアント(4−1〜4N)によって構成されるデータ配信システムの構造図である。また、それぞれのサーバにおけるデータの配置は、例えば、図1においてデータ送信サーバ2及びデータ再送サーバ3がそれぞれデータを保持する方式や、データを配信するときにデータ送信サーバ2からデータ再送サーバ3へデータをコピーする方式など多様な方式がある。また、図2のように外部ストレージ6を使用する方式もある。
次に、各装置について詳しく説明をする。図3はデータ送信制御サーバ1の装置構造を示す。データ送信制御サーバ1は、バス18に接続されたCPU12、メモリ16、ハードディスク14、及びネットワークインターフェース10を具備し、ネットワークインターフェース10のパケット送受信部101を経由してネットワーク5と通信を行う。ハードディスク14には、データの配信開始時刻、配信終了時刻、データ配信アドレスなどに関連するデータ配信の情報を保存するデータ配信情報データベース(DB)141が保存されており、メモリ16にインストールされている配信スケジュール管理プログラム161によって読み書きを行う。
CPU12がメモリ16に保存された配信スケジュール管理プログラム161にアクセスすることで、本発明の制御機能を具備することになる。図4はデータ送信制御サーバの機能を示すブロック図である。データ送信制御サーバ1は、ネットワークインターフェース10と、データ配信情報及び配信スケジュール管理プログラムを保存するメモリと、制御部とを含む。制御部は、データの配信開始と終了のデータ配信スケジュールを管理するデータ配信スケジューラ1611と、データ配信情報を管理し、データ配信情報DB141からデータの配信開始時刻と終了時刻を取得して、データをデータ送信サーバ2とデータ再送サーバ3に通知するデータ配信情報管理部1613と、データ送信制御サーバ1とデータ送信サーバ2、データ再送サーバ3、及びクライアント4の間の通信セッションを監視し、エラーを検出する通信監視タイマ1615と、を具備する。
データ配信情報DB141はデータ配信情報テーブル1411を含み、データ配信情報テーブル1411の各記録は、データを唯一に確定するデータ識別子、データ配信開始時刻、データ配信終了時刻、及びデータ配信に使用されるマルチキャストアドレスのデータ配信アドレスとデータ要求元を保存するアドレスリスト(データ要求元アドレス1〜データ要求元アドレスM)からなる。これらの情報はデータ送信制御サーバ1がデータ送信サーバ2とデータ再送サーバ3を制御する際に使用される。
図5はデータ送信サーバ2の装置構造である。データ送信サーバ2は、バス28に接続されたCPU22、メモリ26、ハードディスク24、及びネットワークインターフェース20を具備し、ネットワークインターフェース20のパケット送受信部201を経由してネットワーク5と通信を行う。ハードディスク24には、データ送信制御サーバ1の配信スケジュールに対応して配信されたデータの情報に関連するデータ情報DB241と、データ送信制御サーバ1から通知されたデータ配信スケールを保存するデータ配信情報DB243とが保存されており、メモリ26にインストールされている配信プログラム261によって読み書きを行う。
図6はデータ送信サーバ2の機能を示すブロック図である。データ送信サーバ2は、ネットワークインターフェース20と、上記データ情報、データ配信情報及び配信スケジュール管理プログラムを保存するメモリと、制御部とを含む。制御部は、メモリ26上のデータ配信プログラム261の主な機能を有するデータ配信制御部2611と、データ情報DB241を制御するデータ管理部2613と、データ配信情報DB243を制御するデータ配信情報管理部2615と、データ送信サーバ2とデータ送信制御サーバ1、データ再送サーバ3、及びクライアント4の間の通信セッションを監視し、エラーを検出する通信監視タイマ2617と、を具備する。データ配信制御部2611はデータ管理部2613及びデータ配信情報管理部2615と連動し、マルチキャスト通信によるデータ配信処理を実行する。
次に、各データベースの管理する情報について説明をすると次の通りである。データ情報DB241はデータ情報テーブル2411を有し、データ情報テーブル2411の各記録はユーザーを唯一に確定するデータ識別子、データの種別を示すデータ種別、データの大きさを示すデータサイズ、及びデータが保存されている。データは分割された状態で管理され、それぞれのデータブロックはブロックコードによって確定される。図2において、データはデータブロック1からデータブロックNまでのN個ブロックとして管理される。データの種別は、例えば、音声、運動画像、またはプログラムのようなデータの用途に関する情報を示すことができる。
データ配信情報DB243はデータ配信情報テーブル2431を含み、データ配信情報テーブル2431の構造はデータ送信制御サーバ1のデータ配信情報DB141のデータ配信情報テーブル1411と同じであり、説明は省略する。
図7はデータ再送サーバ3の構造である。データ再送サーバ3は、バス38に接続されたCPU32、メモリ36、ハードディスク34、及びネットワークインターフェース30を具備し、ネットワークインターフェース30のパケット送受信部301を経由してネットワーク5と通信を行う。ハードディスク34には、データ送信制御サーバ1の配信スケジュールに基づいて配信されたデータに関連する情報を保存するデータ情報DB341と、データ送信制御サーバ1から通知されたデータ配信スケジュールを保存するデータ配信情報DB343とが保存されており、メモリ36にインストールされているデータ配信プログラム361によって読み書きを行う。
図8はデータ再送サーバ3の機能を示すブロック図である。データ再送サーバ3は、ネットワークインターフェース30と、上記データ情報、データ配信情報及び配信スケジュール管理プログラムを保存するメモリと、制御部とを含む。制御部は、メモリ36上のデータ配信プログラム361の主な機能を有するデータ配信制御部3611と、データ情報DB341を制御するデータ管理部3613と、データ配信情報DB343を制御するデータ配信情報管理部3615と、データ再送サーバ3とデータ送信制御サーバ1、データ再送サーバ2、及びクライアント4の間の通信セッションを監視し、エラーを検出する通信監視タイマ3617と、を具備する。データ配信制御部3611はデータ管理部3613及びデータ配信情報管理部3615と連動し、マルチキャスト通信によるデータ配信処理を実行する。
データ情報DB341はデータ情報テーブル3411を含み、データ配信情報DB343はデータ配信情報テーブル3431を含む。データ情報テーブル3411とデータ配信情報テーブル3431の構造はデータ情報DB241のデータ情報テーブル2411とデータ配信情報DB243のデータ配信情報テーブル2431と同じであり、説明は省略する。
図9はクライアント(client)4の装置構造である。クライアント4は、バス48に接続されたCPU42、メモリ46、ハードディスク44、及びネットワークインターフェース40を具備し、ネットワークインターフェース40のパケット送受信部401を経由してネットワーク5と通信を行う。
図10はクライアント4の機能を示すブロック図である。クライアント4は、ネットワークインターフェース40と、受信データ及びデータ受信プログラムを保存するメモリと、制御部とを含む。制御部は、メモリ46上のデータ受信プログラム461の主な機能を有するデータ受信制御部4611と、クライアントの要求に対応するデータ配信情報を管理するデータ配信情報管理部4613と、クライアント4とデータ送信制御サーバ1、データ再送サーバ2、データ再送サーバ3の間の通信セッションを監視し、エラーを検出する通信監視タイマ4615と、を具備する。データ受信制御部4611はデータ配信情報管理部4613と連動し、マルチキャスト通信により配信されたデータの受信処理を実行する。
続いて、時系列図を参照しながら本発明に公開されたデータ配信システムの全体の動作について説明をする。
まず、図11を用いてクライアント4のデータ送信制御サーバ1を経由してデータを受信する際の基本動作について説明をする。データ配信処理はクライアント4を介してデータ送信制御サーバ1にデータ配信スケジュール要求を送信することから始まる(S1−01)。図22にデータ配信スケジュール要求のコンテンツを示す。クライアント4から送信されたデータ配信スケジュール要求を受信したデータ送信制御サーバ1はデータ配信情報DB141を検索して、データ識別子、データ配信開始時刻、データ配信終了時刻、及びデータ配信アドレスをすべて取得することで、データ配信スケジュールを取得し、クライアント4にデータ配信スケジュールを送信する(S1−04)。
データ配信スケジュールを受信したクライアント4はデータ配信スケジュールの一覧を表示し、ユーザーに受信を希望するデータの選択を提示する。ユーザーがデータ配信スケジュールの一覧から受信するデータを選択すると、クライアント4はデータ配信要求をデータ送信制御サーバ1に送信する(S1−07)。
クライアント4からデータ配信要求を受信したデータ送信制御サーバ1はデータ配信要求からデータ識別子及びデータ要求元アドレスを取り出し、データ識別子を検索のキーワードとしてデータ配信情報テーブル1411を検索する。データ識別子に対応する記録が存在する場合、データ送信制御サーバ1は前からの順番で取り出したデータ要求元アドレスを対応する記録のデータ要求元アドレスに追加する。データ配信情報DB141の更新を終了したデータ送信制御サーバ1はクライアント4にデータ配信受付情報を送信する(S1−10)。
クライアント4へのデータ配信情報の通知を完了したデータ送信制御サーバ1はデータを配信するデータ送信サーバ2、データ再送サーバ3に配信データセッション情報を送信する(S1−13、S1−16)。
配信データセッション情報を受信したデータ送信サーバ2は、配信データセッション情報からデータ識別子、データ配信アドレス、データ配信開始時刻、データ配信終了時刻、及びデータ要求元アドレスリストを取り出し、それぞれの情報をデータ配信情報テーブル2431の対応するフィールドに保存する。データ再送サーバ3も同様な処理を行い、データ配信情報テーブル3431を更新する。しかし、配信データセッション情報に含まれたデータ配信終了時刻はデータ送信サーバ2のデータ配信を終了する時刻であるため、データ再送サーバ3は当該時刻にサーバが所定値として有する再送監視タイマの時刻を加えて、最終的なデータ配信終了時刻とし、データ配信情報テーブル3431に保存する。以上の処理を経て、データ配信処理の準備は終了する。
データ配信時刻になると(S1−19)、データ送信サーバ2はデータ配信情報テーブル2411のデータ配信アドレスを用いてデータの配信を開始し、データ再送サーバ3はクライアント4からのデータ再送要求処理の準備を開始する(S1−22)。データの配信は高信頼マルチキャスト通信によって行われ、クライアント4がデータの紛失を検出した場合、データの再送を要求する。クライアント4はステップS1−10で受信したデータ配信受付情報からデータ再送サーバ3のアドレスを取得するため、データ再送要求をデータ再送サーバ3に送信する(S1−25)。
クライアント4からデータ再送要求を受信したデータ再送サーバ3はデータ再送要求からデータ要求元アドレス及びデータブロック番号を取得し、データブロック番号に対応するデータブロックをデータ送信元に再送する。データ再送サーバ3が行われているデータ再送は、データ送信サーバ2がデータの配信を終了し、且つその後サーバが有する再送監視タイマを所定値として確定された時間が過ぎた時刻に終了する。
続いて、図12を用いてデータ送信サーバのデータ再送要求を受付する状況における動作について説明をする。ユーザーのクライアント4によるデータ配信要求処理を行うステップS2−01からステップS2−07までの手順は図7中のステップS1−01からS1−07までの処理と同様であり、説明は省略する。ユーザーからのデータ配信要求を受信したデータ送信制御サーバ1はデータ配信受付情報をクライアント4に送信する。ここで、データ配信受付情報はデータ送信サーバアドレスとデータ再送サーバアドレスの両方にデータ送信サーバ2のアドレスを保存する。この処理によって、データ再送サーバ3のアドレスはユーザーから見ると隠れてしまい、データ再送要求はクライアント4からデータ送信サーバ2に送信される(S2−25)。クライアント4からのデータ再送要求を受信したデータ送信サーバ2はデータ再送要求をデータ再送サーバ3に伝送し(S2−28)、自身はデータ再送処理を行わない。データ送信サーバ2からデータ再送要求を受信したデータ再送サーバ3は図11のステップS1−28と同様な手順を経てデータ再送処理を行う(S2−31)。図12において説明を省略したステップS2−13からステップS2−22までの手順の処理は図11のステップS1−13からステップS1−22までの手順と同様である。
また、図13に示すように、データ送信制御サーバ1のデータ再送要求を処理する状況について考える。ユーザーのクライアント4によるデータ配信要求処理を行うステップS3−01からステップS3−07までの手順は図11中のステップS1−01からS1−07までの処理と同様であり、説明は省略する。ユーザーからのデータ配信要求を受信したデータ送信制御サーバ1はデータ配信受付情報をクライアント4に送信する。ここで、データ配信受付情報はデータ送信サーバアドレスにデータ送信サーバ2のアドレスを保存し、データ再送サーバアドレスにデータ送信制御サーバ1のアドレスを保存する。この処理によって、データ再送サーバ3のアドレスはユーザーから見ると隠れてしまい、データ再送要求はクライアント4からデータ送信制御サーバ4に送信される(S3−25)。クライアント4からのデータ再送要求を受信したデータ送信制御サーバ1はデータ再送要求をデータ再送サーバ3に伝送し(S3−28)、自身はデータ再送処理を行わない。データ送信制御サーバ1からデータ再送要求を受信したデータ再送サーバ3は図11のステップS1−28と同様な手順を経てデータ再送処理を行う(S3−31)。図12において説明を省略したステップS3−13からステップS3−22までの手順の処理は図11のステップS1−13からステップS1−22までの手順と同様である。
続いて、図14を用いてデータ再送処理の終了手順について説明をする。図11のステップS1−01からステップS1−16までの手順を経てマルチキャスト通信によって指定されたデータを複数のクライアントに同時に送信し(S4−01、04)、クライアント4はデータを順次メモリに保存し、すべてのデータを受信した後、データ受信完了通知をサーバに送信する。ここで、例として、クライアント1(4−1)がデータ受信完了通知をデータ再送サーバ3に送信する処理を示す(S4−07)。
図22にデータ受信完了通知のコンテンツを示す。データ受信完了通知PF−07は送信元アドレス、宛先アドレス、パケット種別、データ識別子、及びデータ要求元アドレスから構成される。データ受信完了通知の送信は各ユーザーに対して行われ、データ受信を完了したクライアント4は完了通知を毎回データ再送サーバ3に送信する(S4−10)。データ配信情報データベース343に含まれたすべてのユーザーからデータ受信完了通知を受信した場合、データ再送サーバ3はデータ再送処理を停止する。データ受信完了通知の送信宛先は、データ送信制御サーバ1がクライアント4にデータ配信受付情報を配信する(図11のS1−10、図12のS2−10など)際に、データ再送サーバアドレスとして指定されたサーバのアドレスによって変わる。図12において、データ再送サーバアドレスにデータ送信サーバ2が指定されている。従って、クライアント4からのデータ受信完了通知はデータ送信サーバ2に送信され(S5−07、13)、データ送信サーバ2は受信されたメッセージをデータ再送サーバ3に伝送する(S5−10、16)。データ送信サーバ2によって行われるメッセージ中継処理以外の処理は図14と同様である。
図13において、データ再送サーバアドレスにデータ送信制御サーバ1が指定されているため、データ受信終了の中継処理は図16に示すようにデータ送信制御サーバによって実行される(S6−10、16)。
データ配信中にネットワークに故障が発生し、クライアントのデータ受信に障碍を与える場合がある。図17はクライアントからのデータ再送要求が集中するときの処理を示す。ここではメッセージをデータ再送サーバ3に直接送信する場合について説明をするが、データ送信サーバ2或いはデータ送信制御サーバ1がメッセージ中継処理を行う場合も、基本動作は同様である。
データの紛失を検出したクライアント4−1はデータ再送要求をデータ再送サーバ3に送信する(S7−01)。データ再送サーバ3は要求されたデータをクライアント4−1に再送する(S7−04)。ここで、仮に故障の原因で同一のデータが複数のクライアントによって受信できないとすると、そのほかのクライアント(例えばN個のクライアント)は同一データの再送を要求する(S7−07)。データ再送サーバ3は要求データを再送した後(S7−10)、データの再送を要求したクライアントの数がシステムによって定義された閾値を越えたかどうかを判断する。ここでの閾値はデータ送信を要求したユーザーの全ユーザーに占める比率に定義される。閾値を越えた場合、データ配信速度が速すぎてデータが複数のクライアントに届かなかったと判断し、データ送信サーバ2にデータ送信速度変更要求を送信する(S7−13)。図22にデータ送信速度変更要求のコンテンツを示す。データ送信速度変更要求PF−08は送信元アドレス、宛先アドレス、パケット種別、データ識別子、及び送信速度変更パラメータから構成される。送信速度変更パラメータには、例えば、通信速度を遅くする重み係数や通信速度の絶対値などのような、送信速度をどのように変更するかに関する情報が含まれている。重み係数は0〜1の間の値を取り、重み係数を受信したデータ送信サーバ2は速度調節を行い、現在の送信速度に重み係数を乗じた後の送信速度を新しい送信速度にする。絶対値を受信した場合は只送信速度を指定する。例えば、2Mpbsのような速度が指定された場合、データ送信サーバ2は送信速度を当該値に設定する。データ送信速度変更要求を受信したデータ送信サーバ2はメッセージ中の送信速度変更パラメータに基づいてデータ送信速度を調節し、データ配信終了時刻を再計算する。データ配信終了時刻の再計算は例えばデータサイズとデータ配信速度によって行う。その後、データ配信受付メッセージを利用して、再計算されたデータ配信終了時刻を含むデータ配信情報をデータ受信中のすべてのクライアントに通知する(S7−16、19)。また、配信データセッション情報をデータ再送サーバ3に送信し(S7−22)、データ再送サーバの情報を更新する。以上の処理を経て、データ送信速度の変更は終了する。
図18のフローチャートを参照しながら、データ送信制御サーバ1によって行われる制御の一例について説明をする。当該フローチャートは所定の周期で実行される。データ送信制御サーバ1は電源をオンにする(ステップF1−01)とメッセージ受信サイクルを開始し(ステップF1−04)、ネットワーク5からのメッセージを受信する。ステップF1−07において、受信メッセージがクライアントからのデータ配信スケジュール要求かどうかを判断し、データ配信スケジュール要求である場合は、ステップF1−25に進み、データ配信スケジュールをクライアント4に送信する(図11のS1−04など)。一方、受信メッセージがデータ配信スケジュール要求ではない場合は、ステップF1−10に進み、メッセージがクライアント4からのデータ配信要求かどうかを判断する。データ配信要求である場合は、ステップF1−28に進み、データ送信受付情報をクライアント4に送信し(図11のS1−10など)、ステップF1−31において配信データセッション情報をデータ送信サーバ2とデータ再送サーバ3にそれぞれ送信する(図11のS1−13など)。
受信メッセージがデータ配信要求ではない場合は、ステップF1−13に進み、メッセージがクライアントからのデータ再送要求かどうかを判断する。メッセージがデータ再送要求である場合は、ステップF1−34に進み、受信メッセージをデータ再送サーバ3に伝送する。受信したメッセージがデータ再送要求ではない場合は、ステップF1−16に進み、メッセージがクライアント4からのデータ受信完了通知かどうかを判断する。データ受信完了通知である場合は、ステップF1−37に進み、受信データをデータ再送サーバ3に伝送する。メッセージ受信サイクルはデータ送信制御サーバ1の電源をオフ(ステップF1−22)にすると終了する(ステップF1−19)。以上の処理によって、データ送信制御サーバ1はクライアント4からの要求に基づいてデータ送信サーバ2とデータ再送サーバ3の制御を行う。
続いて、図19のフローチャートを参照しながら、データ送信サーバ2によって行われる制御の一例について説明をする。当該フローチャートは所定の周期で実行される。データ送信サーバ2は電源をオンにする(ステップF2−01)とメッセージ受信サイクルを開始し(ステップF2−04)、ネットワーク5からのメッセージを受信する。ステップF2−07において、受信メッセージがデータ送信制御サーバ1からの配信データセッション情報かどうかを判断し、配信データセッション情報である場合は、ステップF2−25に進み、データ配信スケジュールを更新する(図11のS1−13など)。続いて、ステップF2−28に進み、データ再送サーバ3に配信するデータがあるかどうかを確認する。当該確認は、図1のデータ再送サーバ3が常に配信データのコピーを保有しているシステム構造、及び図2のようにデータ送信サーバ2とデータ再送サーバ3が外部ストレージを共有する構造においては必要がない。図1において、データ再送サーバ3がデータ再送処理のときのみに配信データのコピーを保有している場合、データ送信サーバ2はデータをすでにデータ再送サーバ3に送信したかどうかを判断し、配信データがない場合は、ステップF2−31に進み、データ再送サーバ3にデータを送信し、データ配信を準備する。
一方、受信メッセージが配信データセッション情報ではない場合は、ステップF2−10に進み、時刻があるデータ識別子によって確定されたデータの配信時刻になったかどうかを判断する。データの配信時刻になった場合は、ステップF2−34に進み、データ識別子によって確定されたデータの配信を開始する(図11のS1−22など)。データの配信時刻になっていない場合は、ステップF2−13に進み、受信メッセージがクライアント4からのデータ再送要求かどうかを判断する。メッセージがデータ再送要求である場合は、ステップF2−37に進み、受信データ再送要求をデータ再送サーバに伝送する(図12のS2−28)。ステップF2−13において受信メッセージがデーダ再送要求ではない場合は、ステップF2−16に進み、メッセージがクライアント4からのデータ受信完了通知かどうかを判断する。データ受信完了通知である場合は、ステップF2−40に進み、受信データ受信完了通知をデータ再送サーバに伝送する(図15のS5−16)。受信メッセージがデータ受信完了通知ではない場合は、ステップF2−18に進み、メッセージがデータ送信速度変更要求かどうかを判断する。メッセージがデータ送信速度変更要求である場合は、ステップF2−43に進み、データ配信終了時刻を再計算する。その後ステップF2−46においてクライアント4にデータ配信受付情報を送信し、再計算されたデータ配信終了時刻をクライアント4に通知する。次に、ステップF2−29に進み、配信データセッション情報をデータ再送サーバ3に送信し、再計算されたデータ配信終了時刻をデータ再送サーバ3に通知する。メッセージ受信サイクルはデータ送信サーバ2の電源をオフ(ステップF2−22)にすると終了する(ステップF2−19)。以上の処理によって、データ送信サーバ2はクライアント4からの要求及びデータ送信制御サーバ1の制御に基づいてデータの配信処理を行う。
続いて、図20のフローチャートを参照しながら、データ再送サーバ3によって行われる制御の一例について説明をする。当該フローチャートは所定の周期で実行される。データ再送サーバ3は電源をオンにする(ステップF3−01)とメッセージ受信サイクルを開始し(ステップF3−04)、ネットワーク5からのメッセージを受信する。ステップF3−07において、受信メッセージがデータ送信制御サーバ1からの配信データセッション情報かどうかを判断し、配信データセッション情報である場合は、ステップF3−25に進み、データ配信スケジュールを更新する(図11のS1−16など)。一方、受信メッセージが配信データセッション情報ではない場合は、ステップF3−10に進み、時刻があるデータ識別子によって確定されたデータの配信時刻になったかどうかを判断する。データの配信時刻になった場合は、ステップF3−28に進み、データ識別子によって確定されたデータの再送準備を開始する(図11のS1−19など)。時刻がデータの配信時刻になっていない場合は、ステップF3−13に進み、受信メッセージがデータ再送要求かどうかを判断する。メッセージがデータ再送要求である場合は、ステップF3−31に進み、指定されたデータブロックをデータ送信元に再送する(図11のS1−28など)。
次に、ステップF3−34において、データ再送要求の受信数が規定の閾値を越えたかどうかを判断する。閾値を越えた場合は、データ送信サーバ2にデータ送信速度変更要求を送信し(F3−37)、データ送信速度の調節を行う。ステップF3−13において受信メッセージがデータ再送要求ではない場合は、ステップF3−16に進み、メッセージがデータ受信完了通知かどうかを判断する。データ受信完了通知である場合は、ステップF3−40に進み、すべてのユーザーがデータ受信を完了したかどうかを判断する。すべてのユーザーがデータ受信を完了した場合は、ステップF3−43に進み、データ再送処理を終了する。メッセージ受信サイクルはデータ再送サーバ3の電源をオフ(ステップF3−22)にすると終了する(ステップF3−19)。以上の処理によって、データ再送サーバ3はクライアント4からの要求及びデータ送信制御サーバ1の制御に基づいてデータの再送処理を行う。
続いて、図21のフローチャートを参照しながら、クライアント4によって行われる制御の一例について説明をする。当該フローチャートは所定の周期で実行される。クライアント4は電源をオンにする(ステップF4−01)とイベント受信サイクルを開始し(ステップF4−04)、ネットワーク5からのメッセージ、及びユーザーの操作によって生成されたプログラム内部のイベントを受信する。ステップF4−07において、ユーザーがクライアントのデータ配信スケジュール要求ボタンをプッシュしたかどうかを判断し、データ配信スケジュール要求ボタンがプッシュされた場合は、ステップF4−34に進み、データ送信制御サーバ1にデータ配信スケジュール要求を送信する(図11のS1−01など)。一方、データ配信スケジュール要求ボタンがプッシュされていない場合は、ステップF4−10に進み、データ送信制御サーバからデータ配信スケジュールを受信したかどうかを判断する。データ配信スケジュールを受信した場合は、ステップF4−37に進み、データ配信スケジュールの一覧を画面上に表示する(図11のS1−04など)。データ配信スケジュールを受信していない場合は、ステップF4−13に進み、ユーザーが画面上に表示されたデータ配信スケジュールの一覧の中から受信したいデータを選択したかどうか判断する。ユーザーが受信したいデータを選択した場合は、ステップF4−40に進み、指定された識別子を含むデータ配信要求をデータ送信制御サーバ1に送信する(図11のS1−07など)。ユーザーが受信したいデータを選択していない場合は、ステップF4−16に進み、すでに送信されたデータ配信要求のデータに対して受信準備を開始しようとするかどうかを判断する。データの受信準備が必要な場合は、ステップF4−43に進み、マルチキャスト通信による受信などの必要な処理を行う。データの受信準備が不必要な場合は、ステップF4−19に進み、保存しようとするデータを受信したかどうかを判断する。データを受信した場合は、ステップF4−46に進み、受信データをハードディスクに保存する。保存しようとするデータが届いていない場合は、ステップF4−22に進み、未受信のデータブロックの有無を判断する。未受信のデータブロックがある場合は、ステップF4−49に進み、未受信のデータブロック番号が指定されたデータ再送要求をシステムの構造に基づいてデータ送信制御サーバ1、データ送信サーバ2、及びデータ再送サーバ3のいずれかに送信する(図11のS1−25など)。未受信のデータブロックがない場合は、ステップF4−52に進み、再送データを受信したかどうかを判断する。再送データを受信した場合は、当該再送データを当該データ識別子の確定したデータとして、ハードディスクに保存する。再送データを受信していない場合は、ステップF4−26に進み、全部のデータを受信したかどうかを判断する。データ受信終了のときステップF4−55に進む。システムの構造に基づいて、データ受信完了通知をデータ送信制御サーバ1、データ送信サーバ2、及びデータ再送サーバ3のいずれかに送信する。イベント受信サイクルはクライアント4の電源をオフする(ステップF4−31)と終了する(ステップF4−28)。以上の処理によって、クライアント4はデータ送信制御サーバ1に対して受信したいデータ識別子を通知することで、データを受信してユーザーに提供する。
図22にはデータ配信スケジュール要求PF−01のコンテンツが示されている。データ配信スケジュール要求PF−01は、送信元アドレス、宛先アドレス、及びパケット種別から構成される。
図22にはデータ配信スケジュールPF−02のコンテンツがさらに示されている。データ配信スケジュールPF−02は、送信元アドレス、宛先アドレス、パケット種別、データ識別子リスト、データ配信アドレスリスト、データ配信開始時刻リスト、及びデータ配信終了時刻リストから構成される。
図22にはデータ配信要求PF−03のコンテンツがさらに示されている。データ配信要求PF−03は、送信元アドレス、宛先アドレス、パケット種別、データ識別子、及びデータ要求元アドレスリストから構成される。
図22にはデータ配信受付情報PF−04のコンテンツがさらに示されている。データ配信受付情報PF−04は、送信元アドレス、宛先アドレス、パケット種別、データ識別子、データ送信サーバアドレス、データ再送サーバアドレス、データ配信アドレス、データ配信開始時刻、及びデータ配信終了時刻から構成される。データ送信サーバアドレス及びデータ再送サーバアドレスはデータ配信元のアドレスを示す。データ配信開始時刻及びデータ配信終了時刻は一度だけデータの配信を行うデータ送信サーバ2が行うデータ配信の開始時刻及び終了時刻をそれぞれ示す。
図22には配信データセッション情報PF−05のコンテンツがさらに示されている。配信データセッション情報PF−05は、送信元アドレス、宛先アドレス、パケット種別、データ識別子、データ配信アドレス、データ配信開始時刻、データ配信終了時刻、及びデータ要求元アドレスリストから構成される。データ要求元アドレスリストには当該データ識別子により確定されたデータの配信を要求したすべてのクライアントのアドレスが含まれている。
図22にはデータ再送要求PF−06のコンテンツがさらに示されている。データ再送要求PF−06は、送信元アドレス、宛先アドレス、パケット種別、データ識別子、データ要求元アドレス、及びデータブロック番号から構成される。データブロック番号は紛失したデータのブロック番号を示す。