(57)【特許請求の範囲】
【請求項１】
複数の配信先に対して情報を同報的に配信するマルチキャスト処理をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成するグループ生成手段、
前記グループ生成手段によって生成された各グループを配信する回数を決定する配信回数決定手段、
前記グループ生成手段によって生成された各グループを、前記配信回数決定手段によって決定された回数だけ繰り返し配信する配信手段、
記憶装置へのアクセス時間と、プロセッサの負荷状況とから、システムの混雑状態を測定する混雑状態測定手段、
データの配信先の個数を特定する配信先個数特定手段、
前記混雑状態および配信先の個数を参照し、配信先から応答があった場合に対応する処理に要する時間を算定する処理時間算定手段、
前記配信手段によってデータを配信する前に、配信しようとするデータを受信する際の制御に必要な制御情報に、前記処理時間算定手段によって算定された処理時間を含めて配信し、配信先が応答する迄の待ち時間を決定する際の一助とさせる制御情報配信手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２】
前記グループ生成手段は、通信路または配信先の状況に応じて、グループを構成するデータパケットの個数を決定することを特徴とする請求項１記載の記録媒体。
【請求項３】
前記グループ生成手段は、通信路または配信先の状況に応じて、グループを構成するデータパケットのトータルのデータ量を決定することを特徴とする請求項１記載の記録媒体。
【請求項４】
複数の配信先に対して情報を同報的に配信するマルチキャスト配信方法において、
配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成するグループ生成ステップと、
前記グループ生成ステップによって生成された各グループを配信する回数を決定する配信回数決定ステップと、
前記グループ生成ステップによって生成された各グループを、前記配信回数決定ステップによって決定された回数だけ繰り返し配信する配信ステップと、
記憶装置へのアクセス時間と、プロセッサの負荷状況とから、システムの混雑状態を測定する混雑状態測定ステップと、
データの配信先の個数を特定する配信先個数特定ステップと、
前記混雑状態および配信先の個数を参照し、配信先から応答があった場合に対応する処理に要する時間を算定する処理時間算定ステップと、
前記配信ステップによってデータを配信する前に、配信しようとするデータを受信する際の制御に必要な制御情報に、前記処理時間算定ステップによって算定された処理時間を含めて配信し、配信先が応答する迄の待ち時間を決定する際の一助とさせる制御情報配信ステップと、
を有することを特徴とするマルチキャスト配信方法。
【請求項５】
複数の配信先に対して情報を同報的に配信するマルチキャスト処理をコンピュータに実行させるプログラムにおいて、
コンピュータを、
配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成するグループ生成手段、
前記グループ生成手段によって生成された各グループを配信する回数を決定する配信回数決定手段、
前記グループ生成手段によって生成された各グループを、前記配信回数決定手段によって決定された回数だけ繰り返し配信する配信手段、
記憶装置へのアクセス時間と、プロセッサの負荷状況とから、システムの混雑状態を測定する混雑状態測定手段、
データの配信先の個数を特定する配信先個数特定手段、
前記混雑状態および配信先の個数を参照し、配信先から応答があった場合に対応する処理に要する時間を算定する処理時間算定手段、
前記配信手段によってデータを配信する前に、配信しようとするデータを受信する際の制御に必要な制御情報に、前記処理時間算定手段によって算定された処理時間を含めて配信し、配信先が応答する迄の待ち時間を決定する際の一助とさせる制御情報配信手段、
として機能させることを特徴とするプログラム。
【請求項６】
配信元からマルチキャスト配信されたデータパケットを受信する処理をコンピュータに機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
配信元の記憶装置へのアクセス時間とプロセッサの負荷状況とから得られるシステムの混雑状態および配信先の個数により算出された、全ての配信先からの応答を処理するために必要な処理時間を含み、配信元からデータパケットに先立って配信された制御情報を受信する制御情報受信手段、
前記制御情報に応じてデータパケットの受信の準備を行う受信準備手段、
配信元から前記制御情報に続いて配信されたデータパケットを受信するデータパケット受信手段、
前記制御情報に含まれている前記処理時間を抽出する処理時間抽出手段、
前記処理時間に対して乱数を乗算することにより、待ち時間を算出する待ち時間算出手段、
前記待ち時間だけ待機した後、配信結果通知を配信元に向けて送信する判定結果返答手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
配信元からマルチキャスト配信されたデータパケットを受信するマルチキャスト受信方法において、
配信元の記憶装置へのアクセス時間とプロセッサの負荷状況とから得られるシステムの混雑状態および配信先の個数により算出された、全ての配信先からの応答を処理するために必要な処理時間を含み、配信元からデータパケットに先立って配信された制御情報を受信する制御情報受信ステップと、
前記制御情報に応じてデータパケットの受信の準備を行う受信準備ステップと、
配信元から前記制御情報に続いて配信されたデータパケットを受信するデータパケット受信ステップと、
前記制御情報に含まれている前記処理時間を抽出する処理時間抽出ステップと、
前記処理時間に対して乱数を乗算することにより、待ち時間を算出する待ち時間算出ステップと、
前記待ち時間だけ待機した後、配信結果通知を配信元に向けて送信する判定結果返答ステップと、
を有することを特徴とするマルチキャスト受信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は記録媒体、マルチキャスト配信方法、マルチキャスト受信方法、および、プログラムに関し、特に複数の配信先に対して情報を同報的に配信するマルチキャスト処理をコンピュータに実行させるプログラムを記録した記録媒体、配信元からマルチキャスト配信されたデータパケットを受信する処理をコンピュータに機能させるプログラム、および、そのようなプログラムを記録したコンピュータ読み取り可能な記録媒体、複数の配信先に対して情報を同報的に配信するマルチキャスト配信方法、配信元からマルチキャスト配信されたデータパケットを受信するマルチキャスト受信方法に関する。
【０００２】
【従来の技術】
一般に、１つの配信元システムから複数の配信先システムに同一のデータを配信するマルチキャスト配信と呼ばれる通信では、コネクションレス通信であるＵＤＰ（User Datagram Protocol）が通信方法として利用されることが多い。
【０００３】
図１８は、ＵＤＰを利用した従来のマルチキャスト配信システムの一例を示す図である。
この図において、配信依頼元企業１０は、データの配信を依頼する企業である。配信元システム１１は、パラボラアンテナ１２、衛星１３、および、衛星ネットワーク１４を介して配信先システム１５〜１７に情報をＵＤＰにより送信する。
【０００４】
図１９は、配信元システム１１の詳細な構成例を示す図である。この図に示すように、配信元システム１１は、データ管理部１１ｂ−１、データ転送部１１ｂ−２、および、通信制御部１１ｂ−３によって構成される本体装置１１ｂと、データベース１１ａとによって構成されている。ここで、データベース１１ａは、配信しようとするデータを配信が完了するまで格納する。データ管理部１１ｂ−１は、データベース１１ａに格納されているデータを管理する。データ転送部１１ｂ−２は、データ管理部１１ｂ−１からの指示に基づき、配信しようとするデータを通信制御部１１ｂ−３に転送する。通信制御部１１ｂ−３は、転送されたデータを、所定のサイズのパケットに分割し、パラボラアンテナ１２に供給する。
【０００５】
パラボラアンテナ１２は、配信元システム１１から供給されたデータを、電波に変換して衛星１３に送信する。
衛星１３は、パラボラアンテナ１２から送信された電波を受信し、周波数変換処理および増幅処理を施した後、配信先システム１５〜１７に対して送信する。
【０００６】
衛星ネットワーク１４は、衛星１３から配信される電波によって擬似的に構成される一方向のネットワークである。
配信先システム１５〜１７は、衛星１３からのＵＤＰに基づいて送信された電波を受信するとともに、受信結果を示すデータを地上線ネットワーク１８を介して配信元システム１１に返送する。
【０００７】
地上線ネットワーク１８は、例えば、インターネットによって構成されており、配信先システム１５〜１７から応答情報を、配信元システム１１に返送する。
次に、以上の従来例の動作について簡単に説明する。
【０００８】
配信依頼元企業１０から配信を依頼されたデータ（例えば、広告等のデータ）は、配信元システム１１のデータベース１１ａに供給され、そこに格納される。配信元システム１１は、配信依頼元企業１０から供給されたデータを通信制御部１１ｂ−３により、ＵＤＰに基づいてパケット化し、マルチキャストにより配信することを示すヘッダ情報を付加してパラボラアンテナ１２に供給する。
【０００９】
パラボラアンテナ１２は、受け取ったパケットに応じて搬送波である電波を変調し、衛星１３に向けて送信する。
衛星１３は、受信した電波の周波数変調と、電力増幅を行った後、配信先システム１５〜１７に向けて送信する。
【００１０】
配信先システム１５〜１７は、衛星１３からの電波を受信して復調し、データを抽出する。そして、全てのデータが正常に受信できた場合には、例えば、課金の目的に利用するために、データを受信した旨を配信元システム１１に対して通知する。
【００１１】
配信元システム１１は、受信した結果に基づいて、各配信先システムに対して課金する等の処理を実行する。
以上の動作により、同一のデータを複数の配信先システム１５〜１７に対してマルチキャストにより同報配信することができる。
【００１２】
【発明が解決しようとする課題】
ところで、従来のマルチキャスト配信方法では、配信データが通信路上で喪失してしまうことを想定していない場合があり、そのような場合には正常にデータを受信できない場合があるという問題点があった。
【００１３】
そこで、各配信先システムが正常にデータを受信できなかった場合には、その旨を配信元システム１１に通知し、データを再送する構成を有するシステムも存在している。しかしながら、再送の際には、全てのデータを送信していたため、通信路に一定の割合で擾乱が発生する場合には、再送データも同様の確率で擾乱の影響を受けることになり、データ量が多い場合には正常にデータを受信することが困難であるという問題点もあった。
【００１４】
更に、配信先システム１５〜１７は、受信が終了し次第、配信元システム１１に受信結果を通知することになるが、これらの通知は同時期に集中する場合が多いため、配信元システム１１の処理が追いつかず、システム全体の性能が低下するという問題点があった。また、配信先システム１５〜１７がダイアルアップ接続を利用している場合には、送信要求を行ってから実際にデータを送信するまでの時間が長くなる場合があるため、そのような場合には配信先システム１５〜１７を有するユーザの負担が増大するという問題点もあった。
【００１５】
本発明は、以上のような点に鑑みてなされたものであり、通信路等に擾乱が生じている場合であっても正常にデータを配信することが可能なマルチキャスト配信方法およびそのような方法を実現するプログラムを記録した記録媒体を提供することを目的とする。
【００１６】
また、本発明は、マルチキャスト配信方法において、システムの負荷を増大させることなく、配信元システムに対して受信結果を通知することを可能とするマルチキャスト受信方法およびそのような方法を実現するプログラムを記録した記録媒体を提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示す、複数の配信先に対して情報を同報的に配信するマルチキャスト処理をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、コンピュータを、配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成するグループ生成手段１ｂ、前記グループ生成手段１ｂによって生成された各グループを配信する回数を決定する配信回数決定手段１ｃ、前記グループ生成手段１ｂによって生成された各グループを、前記配信回数決定手段１ｃによって決定された回数だけ繰り返し配信する配信手段１ｄ、として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００１８】
ここで、グループ生成手段１ｂは、配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成する。配信回数決定手段１ｃは、グループ生成手段１ｂによって生成された各グループを配信する回数を決定する。配信手段１ｄは、グループ生成手段１ｂによって生成された各グループを、配信回数決定手段１ｃによって決定された回数だけ繰り返し配信する。
【００１９】
また、図１に示す、配信元からマルチキャスト配信されたデータパケットを受信する処理をコンピュータに機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、コンピュータを、配信元からデータパケットに先立って配信された制御情報を受信する制御情報受信手段３ａ、前記制御情報に応じてデータパケットの受信の準備を行う受信準備手段３ｂ、配信元から制御情報に続いて配信されたデータパケットを受信するデータパケット受信手段３ｃ、として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００２０】
ここで、制御情報受信手段３ａは、配信元からデータパケットに先立って配信された制御情報を受信する。受信準備手段３ｂは、制御情報に応じてデータパケットの受信の準備を行う。データパケット受信手段３ｃは、配信元から制御情報に続いて配信されたデータパケットを受信する。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の動作原理を説明する原理図である。この図において、本発明に係るマルチキャスト配信方法を実現するマルチキャスト配信装置１は、データベース１ａ、グループ生成手段１ｂ、配信回数決定手段１ｃ、配信手段１ｄ、混雑状態測定手段１ｅ、配信先個数特定手段１ｆ、処理時間算定手段１ｇ、および、制御情報配信手段１ｈによって構成されており、データをネットワーク２に接続された複数の配信先であるマルチキャスト受信装置３〜５にマルチキャストにより配信する。
【００２２】
ここで、データベース１ａは、例えば、ＨＤＤ（Hard Disk Drive）によって構成されており、配信の対象となるデータを格納している。
グループ生成手段１ｂは、データをパケット化する際に、少なくとも１以上のデータパケットを含むグループを生成する。
【００２３】
配信回数決定手段１ｃは、グループ生成手段１ｂによって生成された各グループを配信する回数を決定する。
配信手段１ｄは、グループ生成手段１ｂによって生成された各グループを、配信回数決定手段１ｃによって決定された回数だけ繰り返し配信する。
【００２４】
混雑状態測定手段１ｅは、システムの混雑状態を測定する。
配信先個数特定手段１ｆは、データの配信先であるマルチキャスト受信装置の個数を特定する。
【００２５】
処理時間算定手段１ｇは、混雑状態および配信先の個数を参照し、配信先から応答があった場合に全ての処理に要する時間（処理時間）を算定する。
制御情報配信手段１ｈは、配信手段１ｄによってデータを配信する前に、配信しようとするデータを受信する際の制御に必要な制御情報を配信する。
【００２６】
ネットワーク２は、例えば、インターネットによって構成されている。
また、本発明のマルチキャスト受信方法を実現するマルチキャスト受信装置３は、制御情報受信手段３ａ、受信準備手段３ｂ、データパケット受信手段３ｃ、受信良否判定手段３ｄ、処理時間抽出手段３ｅ、待ち時間算出手段３ｆ、および、判定結果返答手段３ｇによって構成されており、マルチキャスト配信装置１から配信されたデータを受信し、受信結果を通知する。
【００２７】
ここで、制御情報受信手段３ａは、マルチキャスト配信装置１からデータパケットに先立って配信される制御情報を受信する。
受信準備手段３ｂは、制御情報に応じてデータパケットの受信の準備を行う。
【００２８】
データパケット受信手段３ｃは、マルチキャスト配信装置１から制御情報に続いて配信されるデータパケットを受信する。
処理時間抽出手段３ｅは、制御情報に含まれている、マルチキャスト配信装置１が全てのマルチキャスト受信装置３〜５からの応答を処理するために必要と推定される処理時間を抽出する。
【００２９】
待ち時間算出手段３ｆは、処理時間に対して乱数を乗算することにより、判定結果返答手段３ｇによって返答するまでの待ち時間を算出する。
判定結果返答手段３ｇは、受信良否判定手段３ｄによる受信の判断結果を、待ち時間算出手段３ｆによって算出された待ち時間が経過した時点で、マルチキャスト配信装置１に対して送信する。
【００３０】
なお、マルチキャスト受信装置４，５もマルチキャスト受信装置３と同様の構成とされているので、これらの構成についての説明は省略する。
次に、以上の原理図の動作について説明する。
【００３１】
マルチキャスト配信装置１がデータを配信する場合には、グループ生成手段１ｂが配信しようとするデータをデータベース１ａから取得してパケット化した後、少なくとも１以上のパケットからなるグループを生成する。例えば、１００個のパケットをまとめて１つのグループとする。このようにして生成されたグループは、配信回数決定手段１ｃを介して配信手段１ｄに供給される。
【００３２】
配信回数決定手段１ｃは、１つのグループを送信する回数を決定する。例えば、送信回数として２回を決定し、配信手段１ｄに通知する。
配信手段１ｄによってデータの配信が実行されるに先立って、混雑状態測定手段１ｅは、マルチキャスト配信装置１の混雑状況を測定し、配信先個数特定手段１ｆに通知する。
【００３３】
配信先個数特定手段１ｆは、配信先となるマルチキャスト受信装置の個数（図１の例では３個）を特定し、混雑状態とともに処理時間算定手段１ｇに供給する。
【００３４】
処理時間算定手段１ｇは、混雑状態測定手段１ｅから供給された混雑状態と、配信先個数特定手段１ｆによって特定された配信先の個数とを参照し、マルチキャスト受信装置３〜５から受信結果を示すデータが返信されてきた場合において、全ての処理に必要な時間を算出する。
【００３５】
制御情報配信手段１ｈは、処理時間算定手段１ｇによって算定された処理時間と、これから送信しようとするデータに関する情報（例えば、グループを構成するパケット数、全データ量等）を制御情報として、実データの送信に先立ってマルチキャスト受信装置３〜５に送信する。
【００３６】
マルチキャスト受信装置３〜５では、制御情報を受信し、続いて送信されてくる実データを受信するための準備を行う。マルチキャスト受信装置３を例に挙げて説明すると、制御情報は制御情報受信手段３ａによって受信され、受信準備手段３ｂと、処理時間抽出手段３ｅに供給される。
【００３７】
受信準備手段３ｂは、供給された制御情報を参照して、必要なバッファ領域を確保する等の実データの受信に必要な準備を行う。一方、処理時間抽出手段３ｅに関する処理については後述する。
【００３８】
このようにして受信の準備が整うと、マルチキャスト配信装置１の配信手段１ｄは、グループ生成手段１ｂによって生成されたグループを送信の単位とし、配信回数決定手段１ｃによって決定された配信回数だけ繰り返してデータを配信する。例えば、配信回数が２である場合には、第１のグループを配信した後、更に、第１のグループを続けて送信する。そして、第２のグループの配信を開始するといった具合にデータの配信を行う。
【００３９】
マルチキャスト受信装置３（他の装置も同様である。以下、マルチキャスト受信装置３のみについて説明する）のデータパケット受信手段３ｃは、マルチキャスト配信装置１から送信されてきたデータパケットを受信し、受信準備手段３ｂによって準備されたバッファ（図示せず）に格納する。
【００４０】
受信良否判定手段３ｄは、受信したデータが正常であるか否かを判定し、正常でない場合には、他のグループで代替または補完できないか否かを判定する。代替または補完ができる場合には、そのグループにてデータを代替または補完するとともに、そのグループについては受信は正常であると判定して判定結果返答手段３ｇに通知する。また、いずれのグループによっても代替または補完ができない場合には正常に受信できなかったとしてその旨を判定結果返答手段３ｇに通知する。
【００４１】
判定結果返答手段３ｇは、受信が終了してから、待ち時間算出手段３ｆによって算出された待ち時間が経過するまで待った後、判定結果をマルチキャスト配信装置１に対して送信する。ここで、待ち時間算出手段３ｆによって算出される待ち時間は、処理時間抽出手段３ｅによって制御情報から抽出された処理時間（全てのマルチキャスト受信装置３〜５からの判定結果に対する処理に必要と推定される時間）に対して、例えば、０〜１の間の値をとる乱数を乗算して生成したものである。同様の処理は、マルチキャスト受信装置４，５においても実行され、それぞれの装置において発生される乱数の値は異なることから、異なる待ち時間がそれぞれ得られることになる。従って、各マルチキャスト受信装置３〜５は、それぞれが異なる時間だけ待った後、判定結果をマルチキャスト配信装置１に対して送信する。
【００４２】
このような判定結果を受信したマルチキャスト配信装置１は、受信が正常に行えなかったマルチキャスト受信装置が存在している場合には、その装置のＩＰアドレスを指定して、再度データを配信することになる。
【００４３】
以上に説明したように、本発明によれば、実データの配信に先立って制御情報を送信するようにし、受信側において受信準備を行うようにしたので、最適な状態でデータを受信することが可能になり、受信側において発生するエラーを減少させることが可能になる。
【００４４】
また、本発明によれば、送信単位としてグループを設定し、各グループを複数回送信するようにしたので、通信路等においてエラーが発生した場合でも、エラーの修復を行うことが可能になる。
【００４５】
更に、本発明によれば、送信側で受信処理に要する時間を予め計算し、その時間に基づいて受信側で乱数により待ち時間を算出するようにしたので、受信側からの受信結果の通知が輻輳し、ネットワーク２に負担がかかることを防止することが可能になる。
【００４６】
次に、本発明の実施の形態について説明する。
図２は、本発明の実施の形態の構成例を示す図である。この図において、配信元システム３０は、マルチキャストにて情報を配信先システム３２−１〜３２−ｎに送信する。
【００４７】
ネットワーク３１は、双方向の電気通信手段であり、例えば、インターネットによって構成されている。
配信先システム３２−１〜３２−ｎは、配信元システム３０からマルチキャストにて配信された情報を受信してその結果を配信元システム３０に通知するとともに、受信した情報に基づいて各種処理を実行する。
【００４８】
図３は、図２に示す配信元システム３０の詳細な構成例を示す図である。この図において、データベース３０ａは、パケット情報、ファイル情報、および、宛先情報等の属性データを格納している。
【００４９】
データベース３０ｂは、実データとしてのデータを格納している。
本体装置３０ｃは、データ管理部３０ｃ−１、制御データ作成部３０ｃ−２、配信パケット作成部３０ｃ−３、配信結果処理部３０ｃ−４、および、通信制御部３０ｃ−５によって構成されている。
【００５０】
ここで、データ管理部３０ｃ−１は、データベース３０ａ，３０ｂに格納されている属性データおよび配信データを管理するとともに、装置の各部を統御する。
【００５１】
制御データ作成部３０ｃ−２は、データ管理部３０ｃ−１からの指示に応じて、送信しようとする配信データに対応する属性データを参照して制御データを作成する。
【００５２】
配信パケット作成部３０ｃ−３は、データ管理部３０ｃ−１からの指示に応じて配信パケットを作成し、通信制御部３０ｃ−５に供給する。
配信結果処理部３０ｃ−４は、配信先システム３２−１〜３２−ｎから送信される配信結果通知に対する処理を実行するとともに、システムの混雑状態を測定する。
【００５３】
通信制御部３０ｃ−５は、上位階層からの指示に応じて、配信データおよび制御データを配信先システム３２−１〜３２−ｎに配信するとともに、配信先システム３２−１〜３２−ｎから返信される配信結果通知を受信する。
【００５４】
図４は、図２に示す配信先システム３２−１〜３２−ｎの詳細な構成例を示す図である。この図において、データベース３２ａは、配信元システム３０から受信したパケット情報、ファイル情報、および、宛先情報等の属性データを格納している。
【００５５】
データベース３２ｂは、配信元システム３０から受信した実データとしての配信データを格納している。
本体装置３２ｃは、データ管理部３２ｃ−１、制御データ処理部３２ｃ−２、データ受信部３２ｃ−３、配信結果処理部３２ｃ−４、および、通信制御部３２ｃ−５によって構成されている。
【００５６】
ここで、データ管理部３２ｃ−１は、データベース３２ａ，３２ｂに格納されている属性データおよび配信データを管理するとともに、装置の各部を統御する。
【００５７】
制御データ処理部３２ｃ−２は、受信した制御データを解析し、解析結果に応じた処理を実行する。
データ受信部３２ｃ−３は、データ管理部３２ｃ−１からの指示に応じて配信パケットを受信するとともに、データ管理部３２ｃ−１から通知されたグループを構成する全パケットの受信が完了するまで待ち合わせを行い、パケットが揃った時点で受信したデータをデータ管理部３２ｃ−１に供給する。
【００５８】
配信結果処理部３２ｃ−４は、データ管理部３２ｃ−１の制御に応じて、配信結果通知を作成し、通信制御部３２ｃ−５に通知する。
通信制御部３２ｃ−５は、上位階層からの指示に応じて、配信データおよび制御データを受信するとともに、配信結果通知を配信元システム３０に送信する。
【００５９】
次に、以上の実施の形態の動作について説明する。
図５は、配信元システム３０から配信先システム３２−１〜３２−ｎに対してデータをマルチキャスト配信する際に、配信元システム３０と配信先システム３２−１〜３２−ｎとの間でなされるデータの授受の様子を示すシグナルフローチャートである。
【００６０】
ステップＳ１：
制御データ作成部３０ｃ−２は、配信しようとするデータの属性データをデータベース３０ａから取得し、パケット情報の定義を行う。ここで、パケット情報とは、図６（Ａ）に示すように、パケット総数５０ａ、パケットサイズ５０ｂ、および、１グループのパケット総数５０ｃによって構成される。パケット総数５０ａは、配信しようとするパケットの総数である。パケットサイズ５０ｂは、パケットのデータ長を示す。１グループのパケット総数５０ｃは、配信の基本的単位であるグループを構成するパケットの個数を示す。
【００６１】
ステップＳ２：
配信パケット作成部３０ｃ−３は、配信しようとするデータに係るファイルをデータベース３０ｂから取得し、グループのデータ量（＝１グループのパケット総数×パケットサイズ）に応じて分割する。そして、分割されたファイルをパケットに更に分割する。図７は、グループの再送回数が１回である場合におけるファイル、グループ、および、パケットの対応関係を示す図である。この図の例では、ファイル＃１は、グループデータ＃１およびグループデータ＃２の２つのグループに分割されている。また、各グループデータは、グループデータ＃１を例に挙げて示すようにパケットＩＤと実データとから構成される複数のパケットに分割されている。なお、この図には示していないが、複数のファイルを１つのグループに格納することも可能である。
【００６２】
このとき、制御データ作成部３０ｃ−２は、図６（Ｂ）に示すファイル情報を作成する。ここで、ファイル情報は、ファイルサイズ５１ａおよびファイル名５１ｂによって構成されている。ファイルサイズ５１ａは、ファイルのデータ容量を示す。ファイル名５１ｂは、ファイルの名前を示す。なお、複数のファイルが存在する場合には、各ファイルに対応する情報がファイルサイズ５１ａとファイル名５１ｂにそれぞれ格納される。
【００６３】
ステップＳ３：
制御データ作成部３０ｃ−２は、配信先に関する情報である宛先情報を生成する。図６（Ｃ）は宛先情報の一例を示している。この図の例では、宛先情報は、ＩＰアドレスリスト数５２ａ、ＩＰアドレスリスト再送回数５２ｂ、データ数５２ｃ、および、ＩＰアドレス５２ｄ〜５２ｎによって構成されている。ここで、ＩＰアドレスリスト数５２ａは、ＩＰアドレス５２ｄ〜５２ｎに格納されているＩＰアドレスの個数を示す。ＩＰアドレスリスト再送回数５２ｂは、ＩＰアドレス５２ｄ〜５２ｎを繰り返し送信する回数を示す。データ数５２ｃは、ＩＰアドレス５２ｄ〜５２ｎのデータ数を示す。ＩＰアドレス５２ｄ〜５２ｎは、データの配信先のＩＰアドレスである。なお、ＩＰアドレスには、マルチキャストアドレスも含まれる。
【００６４】
ステップＳ４：
制御データ作成部３０ｃ−２は、配信先システム３２−１〜３２−ｎがデータを受信した際に、配信結果通知を送信するタイミングを決定するための情報である結果通知情報を生成する。即ち、制御データ作成部３０ｃ−２は、先ず、データベース３０ａ，３０ｂに対して疑似的なデータの書き込みを行い、データベースへのアクセス時間を測定する。次に、制御データ作成部３０ｃ−２は、配信元システム３０が有する図示せぬＣＰＵの負荷状態を測定する。続いて、制御データ作成部３０ｃ−２は、アクセス時間とＣＰＵの負荷状態とから、単一の配信先システムから配信結果通知がなされた場合に必要な処理時間ｔを算出する。そして、配信対象となる配信先システムの個数である配信先総数Ｎを取得し、これらを乗算することにより、トータルの処理時間Ｔ（Ｔ＝ｔ×Ｎ）を算出し、得られた処理時間Ｔを結果通知情報とする。
【００６５】
ステップＳ５：
通信制御部３０ｃ−５は、以上のようにして得られたパケット定義情報、ファイル情報、宛先情報、および、結果通知情報を１つにまとめて制御データを作成し、配信先システム３２−１〜３２−ｎに対して送信する。
【００６６】
図８は、配信先システム３２−１〜３２−ｎに対して送信される制御データの一例を示す図である。この図に示すように、制御データは、パケット情報５０、ファイル情報５１、宛先情報５２、および、結果通知情報５３によって構成されている。このような制御データは、ネットワーク３１を介して、宛先情報５２に記述された配信先システムに送信される。
【００６７】
ステップＳ６：
制御データを受信した配信先システムは、受信した制御データをデータベースに一時的に退避する。例えば、配信先システム３２−１〜３２−ｎを例に挙げて説明すると、制御データ処理部３２ｃ−２は、通信制御部３２ｃ−５によって受信された制御データをデータベース３２ａに一時的に退避させる。
【００６８】
ステップＳ７：
制御データ処理部３２ｃ−２は、通信制御部３２ｃ−５に受信用バッファ領域を確保するように通知する。具体的には、制御データ処理部３２ｃ−２は、制御データに含まれているパケット情報５０を参照し、パケットサイズ５０ｂおよび１グループのパケット総数５０ｃから、受信単位であるグループのデータ容量を計算し、該当する容量のバッファを確保するように通信制御部３２ｃ−５に通知する。
【００６９】
ステップＳ８：
制御データを送信してから一定の時間が経過すると、配信元システム３０の通信制御部３０ｃ−５は、配信パケット作成部３０ｃ−３によって作成されたパケットを、実データとして配信先システムに対して送信する。このとき、再送回数が２回以上に設定されている場合には、グループを設定回数分だけ繰り返し配信する。
【００７０】
図９は、再送回数が２回に設定された場合において配信されるグループの様子を示す図である。この図の例では、グループデータ＃１が送信された後に続いてグループデータ＃１が再度配信されており、以下同様にして同一のグループが２回ずつ繰り返し配信されている。なお、同一のグループを連続して送信するのではなく、グループをシャッフルして同一のグループが連続しないようにして配信することも可能である。このような方法によれば、比較的長い時間擾乱が発生したような場合であっても、同一のグループが全てエラーを含む結果となることを防止することができる。
【００７１】
ステップＳ９：
データ受信部３２ｃ−３は、グループ単位で配信されてきたデータを受信し、再度結合して元のファイルを生成する。即ち、データ受信部３２ｃ−３は、通信制御部３２ｃ−５によって所定のグループの受信が終了すると、そのグループのデータを受け取り、データベース３２ｂの所定の領域に格納する。そして、次のグループが配信されてきた場合には、先に受信したグループのデータと結合することにより元の（分割前の）ファイルを生成する。なお、再送回数が２回以上に設定されている場合であって、何れかのグループのデータがエラーを含む場合には、他の同一グループのデータを代わりにデータベース３２ｂに格納するか、または、他の同一グループのデータによって当該グループを補完する。なお、エラーを含まない同一グループが存在しない場合には、そのような処理は不可能となるので、その場合には次のステップＳ１０において、データの再送信を要求する。
【００７２】
ステップＳ１０：
配信結果処理部３２ｃ−４は、データ受信部３２ｃ−３による受信処理の結果、全てのグループが正常に受信できたか否かを判定し、その判定結果から配信結果通知を作成する。
【００７３】
図１０は、配信結果通知の一例を示す図である。この図に示すように、配信結果通知は、制御情報６０、エントリ情報６１、および、エントリデータ６２によって構成されている。
【００７４】
ここで、制御情報６０は、識別子、全データ長、および、送信ＩＤ等の通信制御に必要な情報である。エントリ情報６１は、図１１に示すように、エントリ数６１ａ、エントリＩＤ６１ｂ、および、エントリ長６１ｃによって構成される情報である。エントリ数６１ａは、エントリデータ６２に含まれているデータの個数を示す。エントリＩＤ６１ｂは、図１２に示すように、配信正常の場合には「０ｘ１０００」が格納され、配信異常の場合には「０ｘ２０００」が格納される。更に、分割ファイル（グループ）のどの部分が正常に受信できなかったかを示す分割Ｎｏ.の場合には、「０ｘ４０００」が格納される。
【００７５】
エントリデータ６２は、配信正常の場合（エントリ情報が「０ｘ１０００」の場合）には、図１３（Ａ）に示すように、受信が正常であった配信先システムのＩＰアドレスが格納され、配信異常の場合（エントリ情報が「０ｘ２０００」の場合）には、図１３（Ａ）に示すように、受信が異常であった配信先システムのＩＰアドレスが格納される。また、分割Ｎｏ．が選択された場合（エントリ情報が「０ｘ４０００」の場合）には、正常に受信できなかった分割ファイル（グループ）の分割Ｎｏ．が、図１３（Ｂ）に示すビットによって示される。この図の例では、第１番目の８ビットデータの第２ビット目と第５ビット目が“１”の状態にされているので、分割Ｎｏ．が２と５の分割ファイルが正常に受信できなかったことを示している。
【００７６】
なお、配信正常の場合および配信異常の場合に複数のＩＰアドレスがエントリデータとして付加されているが、実際には、単一の配信先システムから送信される配信結果通知には当該配信先システムのＩＰアドレスしか付加されていない。このように複数のＩＰアドレスを付加するのは、複数の配信先システムを統括するルータ（図示せず）の役割である。
【００７７】
ステップＳ１１：
配信結果処理部３２ｃ−４は、所定の時間だけ待機した後、ステップＳ１２に進む。
【００７８】
即ち、配信結果処理部３２ｃ−４は、先ず、配信元システム３０から先に送信されてきた制御データから、結果通知情報を抽出する。ここで、結果通知情報は、ステップＳ４でも説明したように、全ての配信先システム３２−１〜３２−ｎから送信された配信結果通知を配信元システム３０が処理するのに要する時間Ｔである。配信結果処理部３２ｃ−４は、自己が有するＩＰアドレスを初期値として乱数を初期設定した後、乱数Ｒ（０＜Ｒ≦１）を発生して時間Ｔに乗算して配信結果待ち時間τを得る。ＩＰアドレスは配信先システム毎に異なるので、演算の結果得られた配信結果待ち時間τは、０からＴの間に均一に分散した値になる。従って、配信結果待ち時間τだけ待機することにより、各配信先システムからの応答が時間Ｔの間で均一に分散され、特定の時刻に応答が集中することを防止できる。
【００７９】
ステップＳ１２：
配信結果処理部３２ｃ−４は、配信結果通知を課金の基本単位である基本パケットとして、通信制御部３２ｃ−５から配信元システム３０に対して送信させる。例えば、ネットワーク３１の課金単位が１００バイトである場合には、配信結果通知が１００バイトのパケットに変換され、配信元システム３０に対して配信される。このように課金単位にあわせてパケットを生成することにより、配信先システム３２−１〜３２−ｎに課金される料金を削減することが可能になる。
【００８０】
ステップＳ１３：
配信結果処理部３０ｃ−４は、通信制御部３０ｃ−５によって受信された配信結果通知を参照し、配信異常が発生した場合には、該当するＮｏ．の分割ファイルまたは全てのファイルを、再度配信先システムに対して送信（リトライ）する。
【００８１】
即ち、配信異常の場合（エントリ情報が「０ｘ２０００」の場合）には、全てのファイルを指定されたＩＰアドレスに再度配信し、分割Ｎｏ．が選択された場合（エントリ情報が「０ｘ４０００」の場合）には、正常に受信できなかった分割ファイル（グループ）のみを全てのＩＰアドレスに対して再度配信する。
【００８２】
以上の処理によれば、配信しようとするファイルを複数のグループに分割し、必要に応じてグループを複数回再送するようにしたので、通信路等においてエラーが発生した場合でも他の同一グループによって当該グループを代替または補完することが可能になる。
【００８３】
また、実データを配信する前に、制御データを配信先システムに配信して受信の準備を実施させるようにしたので、配信されてくるデータのデータ量等に応じた最適の環境を各配信先システムで事前に整えることが可能になる。
【００８４】
更に、結果通知情報を配信先システムに送信し、各配信先システムにおいて結果通知情報に乱数を乗算して配信結果待ち時間を決定するようにしたので、配信結果通知が特定の時刻に集中することを防止することが可能になる。
【００８５】
更に、配信結果通知に応じて、配信元システム３０が必要なデータを再度配信するようにしたので、配信先システムは、全てのデータを確実に受信することが可能になる。
【００８６】
更に、分割Ｎｏ．を選択した場合には、特定のグループのみを再送の対象とすることができるので、全てのデータを再送する場合に比較して、システム全体にかかる負担を軽減することが可能になる。なお、その際、ネットワークの課金単位に基づいて配信結果通知のデータ長を決定し、そのデータ長からファイルの分割数を決定するようにしてもよい。
【００８７】
具体的な例を挙げて説明すると、例えば、ネットワーク３１が１００バイト単位で課金されるとすると、配信結果通知は１００バイトに設定することがユーザの負担という観点からは望ましい。配信結果通知が１００バイトに決定されると、そのビット数は８００ビット（＝１００×８）であるので、ファイルの分割数は最大で８００個となる。
【００８８】
このように、課金単位を基準にして配信結果通知のデータ長、ひいては、ファイルの分割数を決定することで、各ユーザが負担する通信料金を削減することが可能になる。
【００８９】
なお、以上の実施の形態では、複数のファイルを配信する場合には、全てのファイルを受信し終わった後に配信結果通知を配信先システムが送信するようにしたが、ファイルの配信が終了する毎に配信結果通知を行うようにしてもよい。
【００９０】
また、以上の実施の形態では、グループのパケット数の設定方法については詳しい説明は行っていないが、以下に説明するように、システムや通信路に応じて設定することも可能である。
【００９１】
具体例１：衛星回線を使用したマルチキャスト配信で、配信元および配信先のシステムの処理能力が高い場合。
１）衛星回線において、データパケットはランダムに喪失する。特に、気象条件が悪い場合には、パケットの喪失がランダムにしかも頻繁に発生する。
２）配信元システムはファイルの入出力速度が十分に速く、ファイルの入出力の増加が処理性能に与える影響は小さい。
３）配信先システムはファイルの入出力速度が十分に速く、ファイルの入出力がボトルネックになったデータパケットの喪失は発生しない。
【００９２】
１）より、データパケットの喪失は全データパケット中に分散して発生し、パケットグループ数の増減により、喪失したデータパケットを補完できる可能性に変動はない。
【００９３】
２）および３）により、ファイルの入出力回数が増加しても処理性能に与える影響は少ない。従って、グループのパケット数は、配信元システムおよび配信先システムのメモリ資源（送信用バッファ領域、受信用バッファ領域）を多く使用しない値に設定することができる。例えば、ＴＣＰ／ＩＰにおいて利用するネットワーク用ＡＰＩ（Application Programming Interface）であるＳＯＣＫＥＴで使用するバッファサイズが８Ｋバイトである場合には、１グループのデータ量（１グループに含まれるパケット総数×各パケットのデータ量）が８Ｋバイト程度になるように設定することにより、最適な配信制御を実現することができる。
【００９４】
具体例２：配信先システムの入出力処理がボトルネックとなり、データパケットの喪失が発生する場合。
１）データパケットの喪失は記憶装置に対する入出力時の待機時間に起因して発生する。
【００９５】
従って、１）より、データパケットの喪失は連続して発生するので、グループを構成するパケット数が少ない場合には、データパケットを複数回配信しても、喪失したデータパケットを補完できない場合がある。そのような場合には、グループのパケット数をできる限り多くし、連続したデータパケットの喪失を補完できる可能性を高くすることが望ましい。また、配信先システムのデータ受信処理に使用する受信用バッファをできるだけ多く準備することにより、ファイルの入出力回数を減少させ、ファイルの入出力に起因して発生するデータパケットの喪失を未然に防止することができる。
【００９６】
なお、具体例２の場合では、配信元システムが決定した１グループのデータ量で配信先システムが受信処理用バッファを確保するようにすると、配信先システムのメモリ資源が枯渇する可能性がある。そこで、配信先システムでは、受信処理用バッファ領域を自システムのメモリ資源にあわせて独自にカスタマイズすることにより、そのような問題を回避することができる。
【００９７】
次に、図１４〜図１７を参照して、図２に示す実施の形態において実行されるフローチャートについて説明する。
図１４は、図３に示す配信元システム３０において、データをマルチキャストにて配信する際に実行されるフローチャートである。このフローチャートが開始されると、以下のステップが実行される。
【００９８】
ステップＳ２０：
データ管理部３０ｃ−１は、データベース３０ａから送信しようとするデータのパケット情報を入力する。
【００９９】
ステップＳ２１：
データ管理部３０ｃ−１は、データベース３０ａから送信しようとするデータの宛先情報を入力する。
【０１００】
ステップＳ２２：
データ管理部３０ｃ−１は、ステップＳ２１で入力した宛先情報を参照し、マルチキャストアドレスであるか否かを判定し、マルチキャストアドレスである場合にはステップＳ２４に進み、それ以外の場合にはステップＳ２３に進む。
【０１０１】
ステップＳ２３：
制御データ作成部３０ｃ−２は、宛先情報として配信先システムのＩＰアドレスを列挙したＩＰアドレスリストを作成する。
【０１０２】
ステップＳ２４：
制御データ作成部３０ｃ−２は、データベース３０ａからファイル情報を取得する。
【０１０３】
ステップＳ２５：
配信パケット作成部３０ｃ−３は、データベース３０ｂから配信しようとするデータを取得し、パケット情報を参照して複数のグループに分割する。
【０１０４】
ステップＳ２６：
制御データ作成部３０ｃ−２は、結果通知情報を生成する。即ち、制御データ作成部３０ｃ−２は、データベース３０ａ，３０ｂに対して疑似的なデータを書き込んでアクセス時間を測定するとともに、図示せぬＣＰＵの負荷状態を測定する。そして、制御データ作成部３０ｃ−２は、配信先である配信先システムの個数を取得し、これらの情報を参照し、全ての配信先から配信結果通知を受信した際の処理に要する時間である結果通知情報を生成する。なお、この処理の詳細については、図１５を参照して後述する。
【０１０５】
ステップＳ２７：
制御データ作成部３０ｃ−２は、パケット情報５０、ファイル情報５１、宛先情報５２、および、結果通知情報５３から制御データを生成する。
【０１０６】
ステップＳ２８：
制御データ作成部３０ｃ−２は、通信制御部３０ｃ−５を介して、対象となる配信先システムに対して制御データを配信する。
【０１０７】
ステップＳ２９：
配信パケット作成部３０ｃ−３は、先に送信したパケット情報およびファイル情報を参照し、送信対象となるファイルをパケット化してデータパケットを作成する。
【０１０８】
ステップＳ３０：
通信制御部３０ｃ−５は、配信パケット作成部３０ｃ−３によって生成された所定のパケットグループを取得し、配信先システムに向けて送信する。
【０１０９】
ステップＳ３１：
通信制御部３０ｃ−５は、定められている再送回数だけグループのパケットを配信したか否かを判定し、再送回数だけ配信していない場合にはステップＳ３０に戻って同様の処理を繰り返し、それ以外の場合にはステップＳ３２に進む。
【０１１０】
ステップＳ３２：
通信制御部３０ｃ−５は、全てのファイルの配信が完了したか否かを判定し、全てのファイルの配信が完了した場合にはステップＳ３３に進み、それ以外の場合にはステップＳ２９に戻って同様の処理を繰り返す。
【０１１１】
ステップＳ３３：
配信結果処理部３０ｃ−４は、配信先システムから配信結果通知が送達されるまでの間、送達確認待ちを行う。
【０１１２】
ステップＳ３４：
配信結果処理部３０ｃ−４は、各配信先システムから受信した配信結果通知を参照し、配信が正常であるか否かを判定する。そして、配信が正常に行われた場合には処理を終了し、それ以外の場合にはステップＳ３５に進む。
【０１１３】
ステップＳ３５：
配信結果処理部３０ｃ−４は、リトライ処理を実行するか否かを判定し、リトライ処理を実行する場合にはステップＳ２９に進み、それ以外の場合には処理を終了する。
【０１１４】
次に、図１５を参照して、結果通知情報を作成する際に実行されるフローチャートについて説明する。このフローチャートが開始されると、以下の処理が実行される。
【０１１５】
ステップＳ４０：
制御データ作成部３０ｃ−２は、疑似データをデータベース３０ａ，３０ｂに書き込む。
【０１１６】
ステップＳ４１：
制御データ作成部３０ｃ−２は、ステップＳ４０における書き込み処理に要する時間を測定する。
【０１１７】
ステップＳ４２：
制御データ作成部３０ｃ−２は、図示せぬＣＰＵの負荷状態を計測する。
ステップＳ４３：
制御データ作成部３０ｃ−２は、ステップＳ４１で計測したアクセス時間と、ステップＳ４２で計測したＣＰＵの負荷状態とから、単一の配信先システムから配信結果通知を受信した場合に要する処理時間ｔを算出する。
【０１１８】
ステップＳ４４：
制御データ作成部３０ｃ−２は、データベース３０ａから配信先総数Ｎを取得する。
【０１１９】
ステップＳ４５：
制御データ作成部３０ｃ−２は、全ての配信先に対するトータルの処理時間Ｔを、ｔ×Ｎを計算することにより算出する。
【０１２０】
ステップＳ４６：
制御データ作成部３０ｃ−２は、ステップＳ４５で得られたトータルの処理時間Ｔを、結果通知情報とする。
【０１２１】
次に、図１６を参照して、図４に示す配信先システム３２−１〜３２−ｎにおいて配信データを受信する際に実行されるフローチャートについて説明する。このフローチャートが開始されると、以下のステップが実行される。
【０１２２】
ステップＳ５０：
制御データ処理部３２ｃ−２は、通信制御部３２ｃ−５を介して制御データを受信する。
【０１２３】
ステップＳ５１：
制御データ処理部３２ｃ−２は、制御データを解析するとともに、データベース３２ａに退避させる。
【０１２４】
ステップＳ５２：
制御データ処理部３２ｃ−２は、制御データを参照し、通信制御部３２ｃ−５に対して、データ受信用バッファを用意させる。即ち、制御データ処理部３２ｃ−２は、パケットサイズと１グループのパケット総数とを乗算することによって得られた１グループあたりのデータ容量に対応するバッファを通信制御部３２ｃ−５に用意させる。
【０１２５】
ステップＳ５３：
データ受信部３２ｃ−３は、配信元システム３０から配信されたパケットを、通信制御部３２ｃ−５を介して受信する。
【０１２６】
ステップＳ５４：
データ受信部３２ｃ−３は、グループの全パケットを受信済みか否かを判定し、全パケットを受信した場合にはステップＳ５５に進み、それ以外の場合にはステップＳ５３に戻って同様の処理を繰り返す。
【０１２７】
ステップＳ５５：
データ受信部３２ｃ−３は、ファイルを構成する全てのグループのデータを受信済みか否かを判定し、受信済みの場合にはステップＳ５６に進み、それ以外の場合にはステップＳ５３に戻って同様の処理を繰り返す。
【０１２８】
ステップＳ５６：
データ受信部３２ｃ−３は、全てのファイルを受信済みか否かを判定し、受信済みである場合にはステップＳ５７に進み、それ以外の場合にはステップＳ５３に戻って同様の処理を繰り返す。
【０１２９】
ステップＳ５７：
配信結果処理部３２ｃ−４は、全てのファイルを正常に受信したか否かを判定し、正常に受信した場合にはステップＳ５８に進み、それ以外の場合にはステップＳ５９に進む。
【０１３０】
ステップＳ５８：
配信結果処理部３２ｃ−４は、受信結果が正常である旨を示す配信結果通知を作成する。具体的には、分割Ｎｏ．が選択されている場合には、全てのビットを“０”の状態とし、また、そうでない場合には「０ｘ１０００」を選択して配信結果を作成する。
【０１３１】
ステップＳ５９：
配信結果処理部３２ｃ−４は、リトライ処理を実行するか否かを判定し、リトライ処理を実行する場合にはステップＳ５３に戻って同様の処理を繰り返し、それ以外の場合にはステップＳ６０に進む。
【０１３２】
ステップＳ６０：
配信結果処理部３２ｃ−４は、受信結果が異常である旨を示す配信結果通知を作成する。具体的には、分割Ｎｏ．が選択されている場合には、該当するビットを“１”の状態とし、また、そうでない場合には「０ｘ２０００」を選択して配信結果通知を作成する。
【０１３３】
ステップＳ６１：
配信結果処理部３２ｃ−４は、結果通知情報と乱数とから配信結果待ち時間を算出する。具体的には、配信結果処理部３２ｃ−４は、乱数を自己のＩＰアドレスによって初期化し、結果通知情報に対して乱数を乗算することにより、配信結果待ち時間を算出する。なお、この処理の詳細については、図１７を参照して後述する。
【０１３４】
ステップＳ６２：
配信結果処理部３２ｃ−４は、ステップＳ６１で算出した配信結果待ち時間だけ待機した後、ステップＳ６３に進む。
【０１３５】
ステップＳ６３：
配信結果処理部３２ｃ−４は、配信結果通知を配信元システム３０に向けて送信する。
【０１３６】
次に、図１７を参照して、配信結果待ち時間を算出するフローチャートについて説明する。このフローチャートが開始されると、以下の処理が実行される。
ステップＳ７０：
配信結果処理部３２ｃ−４は、データベース３２ａから結果通知情報Ｔを取得する。
【０１３７】
ステップＳ７１：
配信結果処理部３２ｃ−４は、自己のＩＰアドレスを取得する。
ステップＳ７２：
配信結果処理部３２ｃ−４は、乱数をステップＳ７１で取得した自己のＩＰアドレスによって初期化する。その結果、ＩＰアドレスは配信先システム毎に異なるので、発生される乱数は配信先システム毎に異なることになる。
【０１３８】
ステップＳ７３：
配信結果処理部３２ｃ−４は、乱数Ｒ（０＜Ｒ≦１）を発生する。
ステップＳ７４：
配信結果処理部３２ｃ−４は、乱数Ｒに結果通知情報Ｔを乗算し、配信結果待ち時間Ｔを算出する。その結果として算出される配信結果待ち時間Ｔは、配信先システム毎に異なるとともに、０〜Ｔの間に均一に分散されることになるので、配信結果通知が輻輳することを防止できる。
【０１３９】
以上に説明したように、図１４〜１７のフローチャートによれば、図２を参照して説明した本実施の形態の機能を実現することが可能になる。
なお、以上の実施の形態では、ネットワーク３１を介してデータをマルチキャストする場合について説明したが、ネットワーク３１の代わりに、例えば、衛星通信を用いることも可能であることはいうまでもない。
【０１４０】
また、本実施の形態では、受信したデータが正常であるか否かの判定のみを行うようにしたが、例えば、受信したファイルをシステムにインストールする処理である適応処理において、何らかのエラーが発生した場合にも、配信結果通知を行うようにすることも可能である。そのような実施の形態によれば、適応処理においてエラーが発生した場合にも、配信元システム３０からデータを再度受信することにより、正常にインストールを行うことが可能になる。
【０１４１】
更に、本実施の形態では、エラーが発生した場合には、グループ単位でデータの再配信を行うようにしたが、エラーが発生した特定のパケットのみを指定してデータの再配信を行うことも可能である。そのような構成によれば、再配信時において、配信すべきデータ量を削減することが可能になるので、システム全体に係る負担を軽減することが可能になる。
【０１４２】
最後に、上記の処理機能は、コンピュータによって実現することができる。その場合、配信元システムおよび配信先システムが有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Only Memory)やフレキシブルディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【０１４３】
（付記１）  複数の配信先に対して情報を同報的に配信するマルチキャスト処理をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成するグループ生成手段、
前記グループ生成手段によって生成された各グループを配信する回数を決定する配信回数決定手段、
前記グループ生成手段によって生成された各グループを、前記配信回数決定手段によって決定された回数だけ繰り返し配信する配信手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１４４】
（付記２）  前記グループ生成手段は、通信路または配信先の状況に応じて、グループを構成するデータパケットの個数を決定することを特徴とする付記１記載の記録媒体。
【０１４５】
（付記３）  前記グループ生成手段は、通信路または配信先の状況に応じて、グループを構成するデータパケットのトータルのデータ量を決定することを特徴とする付記１記載の記録媒体。
【０１４６】
（付記４）  前記配信手段によってデータを配信する前に、配信しようとするデータを受信する際の制御に必要な制御情報を配信する制御情報配信手段、として機能させるプログラムを更に記録した付記１記載の記録媒体。
【０１４７】
（付記５）  システムの混雑状態を測定する混雑状態測定手段、
データの配信先の個数を特定する配信先個数特定手段、
前記混雑状態および配信先の個数を参照し、配信先から応答があった場合に対応する処理に要する時間を算定する処理時間算定手段、
として機能させるプログラムを更に記録し、
前記制御情報配信手段は、前記処理時間算定手段によって算定された前記処理時間を前記制御情報に含めて配信し、配信先が応答する迄の待ち時間を決定する際の一助とさせることを特徴とする付記４記載の記録媒体。
【０１４８】
（付記６）  前記混雑状態測定手段は、記憶装置へのアクセス時間と、プロセッサの負荷状況とから、混雑状態を測定することを特徴とする付記５記載の記録媒体。
【０１４９】
（付記７）  所定の配信先から、先に配信したデータパケットの受信状況に関する情報を受信した場合には、必要に応じてデータパケットの該当個所を再配信する再配信手段、として機能させるプログラムを更に記録した付記１記載の記録媒体。
【０１５０】
（付記８）  複数の配信先に対して情報を同報的に配信するマルチキャスト配信方法において、
配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成するグループ生成ステップと、
前記グループ生成ステップによって生成された各グループを配信する回数を決定する配信回数決定ステップと、
前記グループ生成ステップによって生成された各グループを、前記配信回数決定ステップによって決定された回数だけ繰り返し配信する配信ステップと、
を有することを特徴とするマルチキャスト配信方法。
【０１５１】
（付記９）  配信元からマルチキャスト配信されたデータパケットを受信する処理をコンピュータに機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
配信元からデータパケットに先立って配信された制御情報を受信する制御情報受信手段、
前記制御情報に応じてデータパケットの受信の準備を行う受信準備手段、
配信元から制御情報に続いて配信されたデータパケットを受信するデータパケット受信手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１５２】
（付記１０）  前記データパケット受信手段によってデータパケットが正常に受信されたか否かを判定する受信良否判定手段、
前記受信良否判定手段による判定結果を示す情報を、課金に係る基本単位のパケットにて前記配信元に対して返答する判定結果返答手段、
として機能させるプログラムを更に記録した付記９記載の記録媒体。
【０１５３】
（付記１１）  前記制御情報に含まれている、前記配信元が全ての配信先からの応答を処理するために必要と推定される処理時間を抽出する処理時間抽出手段、
前記処理時間に対して乱数を乗算することにより、前記判定結果返答手段によって返答するまでの待ち時間を算出する待ち時間算出手段、
として機能させるプログラムを更に記録した付記１０記載の記録媒体。
【０１５４】
（付記１２）  配信元からマルチキャスト配信されたデータパケットを受信するマルチキャスト受信方法において、
配信元からデータパケットに先立って配信された制御情報を受信する制御情報受信ステップと、
前記制御情報に応じてデータパケットの受信の準備を行う受信準備ステップ、配信元から制御情報に続いて配信されたデータパケットを受信するデータパケット受信ステップと、
を有することを特徴とするマルチキャスト配信方法。
【０１５５】
（付記１３）  複数の配信先に対して情報を同報的に配信するマルチキャスト処理をコンピュータに実行させるプログラムにおいて、
コンピュータを、
配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成するグループ生成手段、
前記グループ生成手段によって生成された各グループを配信する回数を決定する配信回数決定手段、
前記グループ生成手段によって生成された各グループを、前記配信回数決定手段によって決定された回数だけ繰り返し配信する配信手段、
として機能させるプログラム。
【０１５６】
【発明の効果】
以上説明したように本発明では、コンピュータを、配信しようとするデータパケット群から、少なくとも１以上のデータパケットを含むグループを生成するグループ生成手段、グループ生成手段によって生成された各グループを配信する回数を決定する配信回数決定手段、グループ生成手段によって生成された各グループを、配信回数決定手段によって決定された回数だけ繰り返し配信する配信手段、として機能させるようにしたので、マルチキャスト配信において、データパケットの欠落が生じた際でも、データを確実に配信することが可能になる。
【０１５７】
また、コンピュータを、配信元からデータパケットに先立って配信された制御情報を受信する制御情報受信手段、制御情報に応じてデータパケットの受信の準備を行う受信準備手段、配信元から制御情報に続いて配信されたデータパケットを受信するデータパケット受信手段、として機能させるようにしたので、マルチキャスト配信において、データを円滑に受信することが可能になる。
【図面の簡単な説明】
【図１】本発明の動作原理を説明する原理図である。
【図２】本発明の実施の形態の構成例を示す図である。
【図３】図２に示す配信元システムの詳細な構成例を示す図である。
【図４】図２に示す配信先システムの詳細な構成例を示す図である。
【図５】配信元システムから配信先システムにデータをマルチキャストによって配信する際のデータの流れを説明するシグナルフローチャートである。
【図６】パケット情報、ファイル情報、および、宛先情報の詳細を示す図である。
【図７】グループの再送回数が１回である場合におけるファイル、グループ、および、パケットの対応関係を示す図である。
【図８】配信先システムに対して送信される制御データの一例を示す図である。
【図９】再送回数が２回に設定された場合において配信されるグループの様子を示す図である。
【図１０】配信結果通知の一例を示す図である。
【図１１】図１０に示すエントリ情報の詳細を示す図である。
【図１２】図１０に示すエントリＩＤの詳細を示す図である。
【図１３】図１０に示すエントリデータに格納されるデータの一例を示す図である。
【図１４】配信元システムにおいて実行される処理の一例を説明するフローチャートである。
【図１５】図１４に示す結果通知情報を生成する処理の一例を説明するフローチャートである。
【図１６】配信先システムにおいて実行される処理の一例を説明するフローチャートである。
【図１７】図１６に示す配信結果待ち時間を算出する処理の一例を説明するフローチャートである。
【図１８】従来におけるマルチキャスト配信システムの構成例を示す図である。
【図１９】図１８に示す配信元システムの構成例を示す図である。
【符号の説明】
１  マルチキャスト配信装置
１ａ  データベース
１ｂ  グループ生成手段
１ｃ  配信回数決定手段
１ｄ  配信手段
１ｅ  混雑状態測定手段
１ｆ  配信先個数特定手段
１ｇ  処理時間算定手段
１ｈ  制御情報配信手段
２  ネットワーク
３  マルチキャスト受信装置
３ａ  制御情報受信手段
３ｂ  受信準備手段
３ｃ  データパケット受信手段
３ｄ  受信良否判定手段
３ｅ  処理時間抽出手段
３ｆ  待ち時間算出手段
３ｇ  判定結果返答手段
４，５  マルチキャスト受信装置
３０  配信元システム
３０ａ，３０ｂ  データベース
３０ｃ  本体装置
３０ｃ−１  データ管理部
３０ｃ−２  制御データ作成部
３０ｃ−３  配信パケット作成部
３０ｃ−４  配信結果処理部
３０ｃ−５  通信制御部
３２−１〜３２−ｎ  配信先システム
３２ａ，３２ｂ  データベース
３２ｃ  本体装置
３２ｃ−１  データ管理部
３２ｃ−２  制御データ処理部
３２ｃ−３  データ受信部
３２ｃ−４  配信結果処理部
３２ｃ−５  通信制御部
【図１】
0003907462.tif 000002
【図２】
0003907462.tif 000003
【図３】
0003907462.tif 000004
【図４】
0003907462.tif 000005
【図５】
0003907462.tif 000006
【図６】
0003907462.tif 000007
【図７】
0003907462.tif 000008
【図８】
0003907462.tif 000009
【図９】
0003907462.tif 000010
【図１０】
0003907462.tif 000011
【図１１】
0003907462.tif 000012
【図１２】
0003907462.tif 000013
【図１３】
0003907462.tif 000014
【図１４】
0003907462.tif 000015
【図１５】
0003907462.tif 000016
【図１６】
0003907462.tif 000017
【図１７】
0003907462.tif 000018
【図１８】
0003907462.tif 000019
【図１９】
0003907462.tif 000020