(57)【要約】【課題】複数のファイルを多数の端末に高速に効率良く配信できるファイル配信方法、ファイル配信システム、配信サーバ、およびプログラムを提供する。【解決手段】本発明のファイル配信方法は、配信サーバが、複数のファイルをそれぞれ複数のブロックに分割し（ステップＳ１０５）、各ファイルの識別情報を一次アドレスとし（ステップＳ１０３）、各ファイルのブロックの識別情報を二次アドレスとし（ステップＳ１０５）、一次アドレスと二次アドレスから各ブロックの順序を示すブロックアドレスを生成し、各ブロックにブロックアドレスを付与し（ステップＳ１０７）、各ブロックを順次ネットワーク上にマルチキャスト配信する（ステップＳ１０９）。【選択図】図４
2011237924.tif 000002
【特許請求の範囲】
【請求項１】
配信サーバが、
複数のファイルをそれぞれ複数のブロックに分割し、
各前記ファイルの識別情報を一次アドレスとし、各前記ファイルの前記ブロックの識別情報を二次アドレスとし、前記一次アドレスと前記二次アドレスから各前記ブロックの順序を示すブロックアドレスを生成し、
各前記ブロックに前記ブロックアドレスを付与し、
各前記ブロックを順次ネットワーク上にマルチキャスト配信するファイル配信方法。
【請求項２】
請求項１に記載のファイル配信方法において、
前記ネットワークに接続される端末が、一時記憶装置と二次記憶装置を有し、
前記端末が、
各前記ブロックを前記ネットワークを介して受信し、前記一時記憶装置に記憶し、
前記一時記憶装置に記憶された各前記ブロックの前記ブロックアドレスにしたがって、各前記ブロックを順に並べ、各前記ファイルを再構成して前記二次記憶装置に記憶するファイル配信方法。
【請求項３】
請求項２に記載のファイル配信方法において、
前記ブロックを前記ブロックアドレス順に並べた後、前記ブロックアドレスの前記一次アドレスが同じブロックを一つのファイルとして再構成するファイル配信方法。
【請求項４】
請求項１乃至３いずれかに記載のファイル配信方法において、
前記配信サーバが、
複数の前記ファイルのファイルリストを生成し、
前記ファイルリストの複数の前記ファイルに順にシリアル番号を付与して前記一次アドレスとするファイル配信方法。
【請求項５】
請求項１乃至３いずれかに記載のファイル配信方法において、
前記配信サーバが、
前記ファイルのファイル名を数値に可逆符号化し、前記一次アドレスとするファイル配信方法。
【請求項６】
請求項１乃至５いずれかに記載のファイル配信方法において、
前記二次アドレスは、前記ファイル毎に複数の前記ブロックに順に付与したシリアル番号であるファイル配信方法。
【請求項７】
請求項１乃至６いずれかに記載のファイル配信方法において、
前記ネットワークに接続される端末が、一時記憶装置と二次記憶装置を有し、
前記端末が、
前記一時記憶装置に記憶された各前記ブロックの前記ブロックアドレスに基づいて、受信できなかったロスブロックを検出し、
検出した前記ロスブロックの前記ブロックアドレスを前記配信サーバに通知して再送を要求するファイル配信方法。
【請求項８】
請求項７に記載のファイル配信方法において、
前記配信サーバが、
前記端末から前記ロスブロックの再送要求を受け付け、
前記端末から通知された前記ロスブロックの前記ブロックアドレスに基づいて、前記ロスブロックを前記端末に再送するファイル配信方法。
【請求項９】
複数のファイルをそれぞれ複数のブロックに分割する分割手段と、
各前記ファイルの識別情報を一次アドレスとし、各前記ファイルの前記ブロックの識別情報を二次アドレスとし、前記一次アドレスと前記二次アドレスから各前記ブロックの順序を示すブロックアドレスを生成する生成手段と、
各前記ブロックに前記ブロックアドレスを付与するアドレス付与手段と、
各前記ブロックを順次ネットワーク上にマルチキャスト配信する配信手段と、を備える配信サーバ。
【請求項１０】
配信サーバと、ネットワークを介して接続される端末と、を備え、
前記配信サーバは、
複数のファイルをそれぞれ複数のブロックに分割する分割手段と、
各前記ファイルの識別情報を一次アドレスとし、各前記ファイルの前記ブロックの識別情報を二次アドレスとし、前記一次アドレスと前記二次アドレスから各前記ブロックの順序を示すブロックアドレスを生成する生成手段と、
各前記ブロックに前記ブロックアドレスを付与するアドレス付与手段と、
各前記ブロックを順次前記ネットワーク上にマルチキャスト配信する配信手段と、を有し、
前記端末は、
一時記憶装置と、
二次記憶装置と、
各前記ブロックを前記ネットワークを介して受信し、前記一時記憶装置に記憶する受信手段と、
前記一時記憶装置に記憶された各前記ブロックの前記ブロックアドレスにしたがって、各前記ブロックを順に並べ、各前記ファイルを再構成して前記二次記憶装置に記憶するデータ構成手段と、を有するファイル配信システム。
【請求項１１】
コンピュータに、
複数のファイルをそれぞれ複数のブロックに分割する手順、
各前記ファイルの識別情報を一次アドレスとし、各前記ファイルの前記ブロックの識別情報を二次アドレスとし、前記一次アドレスと前記二次アドレスから各前記ブロックの順序を示すブロックアドレスを生成する手順、
各前記ブロックに前記ブロックアドレスを付与する手順、
各前記ブロックを順次ネットワーク上にマルチキャスト配信する手順、を実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムにおいて、
前記コンピュータにネットワークを介して接続される第２のコンピュータが、一時記憶装置と二次記憶装置を有し、
前記第２のコンピュータに、
各前記ブロックを受信し、前記一時記憶装置に記憶する手順、
前記一時記憶装置に記憶された各前記ブロックの前記ブロックアドレスにしたがって、各前記ブロックを順に並べ、各前記ファイルを再構成して前記二次記憶装置に記憶する手順、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル配信方法、ファイル配信システム、配信サーバ、およびプログラムに関し、特に、複数のファイルを複数の端末に配信するファイル配信方法、ファイル配信システム、配信サーバ、およびプログラムに関する。
【背景技術】
【０００２】
多数のＰＣ（Personal Computer）等の端末群に対して、所定のアプリケーションプログラム（ＡＰ：Application Program）群を展開する際、カーネルなど共通バイナリ以外の、ＡＰバイナリや当該バイナリが依存するミドルウェアなどのバイナリデータの差分データのみを抽出して展開することで、高速に配信を行うことが可能になる。
【０００３】
たとえば、数１０台の端末に配信する場合であれば、この差分データをＮＡＳ（Network Attached Storage）に配備して、多数のＰＣで共有することで、全てのデータをマルチキャスト配信する場合に比べ、高速化が可能になる。しかし、数１００〜数１０００台規模の端末に配信するとなると、ＮＡＳ自体がボトルネックとなり、全てのデータをマルチキャスト配信する場合の方が高速に配信できてしまう可能性がある。
【０００４】
このような背景から、近年、差分データのみを配信する差分ＡＰ配信のマルチキャスト対応が求められている。
【０００５】
この種のファイル配信システムの一例が特許文献１に記載されている。この特許文献１のファイル配信システムは、マルチキャストプロトコルを利用してオリジナルサーバから複数のリーフサーバへ同時にファイル配信する。オリジナルサーバの差分ファイルを抽出し、それらのファイルをアーカイブにまとめ配信データを準備する。配信データは、あらかじめ定められたサイズのブロックに分割し、それぞれのブロックにシリアル番号を付加し、順次配信する。そして、受信側のリーフサーバでは、ブロックを受信し、シリアル番号順に並べて配信データを復元する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２２３３８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１に記載のファイル配信システムにおいては、多数のファイルをアーカイブにまとめて配信データを準備するため、数万個のファイルをアーカイブにまとめるためには、数１００ＭＢ〜数ＧＢの大容量の作業領域が必要となり、かつ、配信データの生成にも時間がかかるという問題点があった。
【０００８】
本発明の目的は、複数のファイルを多数の端末に高速に効率良く配信できるファイル配信方法、ファイル配信システム、配信サーバ、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のファイル配信方法は、
配信サーバが、
複数のファイルをそれぞれ複数のブロックに分割し、
各前記ファイルの識別情報を一次アドレスとし、各前記ファイルの前記ブロックの識別情報を二次アドレスとし、前記一次アドレスと前記二次アドレスから各前記ブロックの順序を示すブロックアドレスを生成し、
各前記ブロックに前記ブロックアドレスを付与し、
各前記ブロックを順次ネットワーク上にマルチキャスト配信する。
【００１０】
本発明の配信サーバは、
複数のファイルをそれぞれ複数のブロックに分割する分割手段と、
各前記ファイルの識別情報を一次アドレスとし、各前記ファイルの前記ブロックの識別情報を二次アドレスとし、前記一次アドレスと前記二次アドレスから各前記ブロックの順序を示すブロックアドレスを生成する生成手段と、
各前記ブロックに前記ブロックアドレスを付与するアドレス付与手段と、
各前記ブロックを順次ネットワーク上にマルチキャスト配信する配信手段と、を備える。
【００１１】
本発明のファイル配信システムは、
配信サーバと、ネットワークを介して接続される端末と、を備え、
前記配信サーバは、
複数のファイルをそれぞれ複数のブロックに分割する分割手段と、
各前記ファイルの識別情報を一次アドレスとし、各前記ファイルの前記ブロックの識別情報を二次アドレスとし、前記一次アドレスと前記二次アドレスから各前記ブロックの順序を示すブロックアドレスを生成する生成手段と、
各前記ブロックに前記ブロックアドレスを付与するアドレス付与手段と、
各前記ブロックを順次ネットワーク上にマルチキャスト配信する配信手段と、を有し、
前記端末は、
一時記憶装置と、
二次記憶装置と、
各前記ブロックを受信し、前記一時記憶装置に記憶する受信手段と、
前記一時記憶装置に記憶された各前記ブロックの前記ブロックアドレスにしたがって、各前記ブロックを順に並べ、各前記ファイルを再構成して前記二次記憶装置に記憶するデータ構成手段と、を有する。
【００１２】
本発明のプログラムは、
コンピュータに、
複数のファイルをそれぞれ複数のブロックに分割する手順、
各前記ファイルの識別情報を一次アドレスとし、各前記ファイルの前記ブロックの識別情報を二次アドレスとし、前記一次アドレスと前記二次アドレスから各前記ブロックの順序を示すブロックアドレスを生成する手順、
各前記ブロックに前記ブロックアドレスを付与する手順、
各前記ブロックを順次ネットワーク上にマルチキャスト配信する手順、を実行させるように記述されている。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００１４】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００１５】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【００１６】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【発明の効果】
【００１７】
本発明によれば、複数のファイルを多数の端末に高速に効率良く配信できるファイル配信方法、ファイル配信システム、配信サーバ、およびプログラムが提供される。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係るファイル配信システムの構成を示す機能ブロック図である。
【図２】本発明の実施の形態に係るアドレシッング方法を説明するための図である。
【図３】本発明の実施の形態に係る配信データの構造の一例を示す図である。
【図４】本発明の実施の形態に係るファイル配信システムにおける配信サーバの配信時の動作の一例を示すフローチャートである。
【図５】本発明の実施の形態に係るファイル配信システムにおける端末のパケット受信時の動作の一例を示すフローチャートである。
【図６】本発明の実施の形態に係るファイル配信システムの構成を示す機能ブロック図である。
【図７】本発明の実施の形態に係るファイル配信システムのパケット再送時の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２０】
（第１の実施の形態）
図１は、本発明の実施の形態に係るファイル配信システム１の構成を示す機能ブロック図である。
本実施形態のファイル配信システム１は、たとえば、多数のＰＣなどの端末群に対し、複数の所定のアプリケーション群を展開する際、カーネルなど共通バイナリ以外の、ＡＰバイナリやミドルウェアなどのバイナリデータの差分データのみを抽出して展開して、配信を行い、各ＰＣのアプリケーションプログラムの更新を行うものである。図１に示すように、ファイル配信システム１は、配信サーバ１００と、ネットワーク３を介して接続される複数の端末２００と、を備える。
【００２１】
本実施形態では、配信サーバ１００および端末２００は、たとえば、図示しないＣＰＵ（Central Processing Unit）やメモリ、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置と接続されるサーバコンピュータやＰＣ、またはそれらに相当する装置により実現することができる。そして、ＣＰＵが、ハードディスクなどの二次記憶装置に記憶されるプログラムをメモリに読み出して実行することにより、後述する各ユニットの各機能を実現することができる。また、ハードディスクに記憶される各種のアプリケーションプログラムをメモリに読み出して実行することができる。
なお、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００２２】
本実施形態において、端末２００は、複数のアプリケーションプログラムや依存ミドルウェアを実行する。また、端末２００は、本実施形態では、たとえば、数１００〜数１０００台がネットワーク３に接続される。ネットワーク３上には、図示されないスイッチやルータが設けられており、配信サーバ１００からネットワーク３上の多数の端末２００へのパケットのマルチキャスト配信の経路が制御される。この経路制御については、本発明の本質に関わらないので、詳細な説明は省略する。
【００２３】
また、ファイル配信システム１の各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
【００２４】
本実施形態のファイル配信システム１において、配信サーバ１００は、複数のファイルをそれぞれ複数のブロックに分割する分割部１０８と、各ファイルの識別情報を一次アドレスとし、各ファイルのブロックの識別情報を二次アドレスとし、一次アドレスと二次アドレスから各ブロックの順序を示すブロックアドレスを生成する生成部１０６と、各ブロックにブロックアドレスを付与するアドレス付与部１１０と、各ブロックを順次ネットワーク上にマルチキャスト配信する配信部１１２と、を備える。
【００２５】
詳細には、配信サーバ１００は、二次記憶装置１０２と、一時記憶装置１０４と、生成部１０６と、分割部１０８と、アドレス付与部１１０と、配信部１１２と、を備える。端末２００は、受信部２０２と、一時記憶装置２０４と、データ構成部２０６と、二次記憶装置２０８と、を備える。
【００２６】
配信サーバ１００において、二次記憶装置１０２は、たとえば、ハードディスクなどの記憶装置である。二次記憶装置１０２には、配信データとなる複数のバイナリデータと、その差分データのファイルが複数格納されている。この二次記憶装置１０２に格納されている差分データのファイルは、複数の端末２００に配信されるマスタデータとなる。本実施形態において、この差分データに含まれるファイル数は、たとえば、数１０００〜数万個程度である。
【００２７】
一時記憶装置１０４は、一時的にデータを記憶する作業領域であり、たとえば、後述するファイルリストを作成して一時的に格納するとともに、配信する前のパケット（ブロック）を一時的に格納する。本明細書において、ブロックとパケットは、同議語として使用するものとする。
【００２８】
生成部１０６は、複数のファイルのファイルリストを生成し、ファイルリストの複数のファイルに順にシリアル番号を付与して一次アドレスとする。
分割部１０８は、各ファイルを複数のブロックに分割する。分割するブロックのブロック長は、予め定めておくのが好ましい。なお、ファイルの最後のブロックは、可変長となる。各ブロックのブロック長は、パケットのヘッダに情報として含むことができる。
【００２９】
アドレス付与部１１０は、生成部１０６で生成された一次アドレスに加え、ファイル毎に複数のブロックに順にシリアル番号を付与して二次アドレスとする。アドレス付与部１１０は、一次アドレスを上位ビット（たとえば、６４ビット）とし、二次アドレスを下位ビット（たとえば、６４ビット）として、ビット連結して、合計ビット長（たとえば、１２８ビット）のブロックアドレスを生成し、各ブロックに付与する。
配信部１１２は、アドレス付与部１１０で生成されたブロックを順次ネットワーク３上の複数の端末２００宛にマルチキャスト配信する。本実施形態では、ＵＤＰ（User Datagram Protocol）を利用するが、これに限定さるものではなく、たとえば、ＩＰ（Internet Protocol）またはイーサネット（登録商標）などの一般的なブロードキャストプロトコルも利用できる。配信部１１２は、複数のファイルを互いに連結して一連の配信データとして扱い、この配信データをブロック単位で配信する。
【００３０】
端末２００において、受信部２０２は、配信サーバ１００からネットワーク３を介して配信された各ブロックを受信する。一時記憶装置２０４は、一時的にデータを記憶する作業領域であり、受信部２０２が受信したブロックを一時的に格納するとともに、二次記憶装置２０８に記憶する前に、ブロックアドレス順にブロックを並べて再構成される差分データのファイルを一時的に格納する。
【００３１】
データ構成部２０６は、受信したブロックに含まれるブロックアドレスに従って、各ブロックをブロックアドレス順に並べ、一時記憶装置２０４に格納する。各ブロックのブロックアドレスに含まれる一次アドレスが同じブロックを、同じファイルを構成するブロックと見なし、一次アドレスが同じブロックについて二次アドレス順にブロックを並べて、ファイルを再構成する。
【００３２】
二次記憶装置２０８は、たとえば、ハードディスクなどの記憶装置である。二次記憶装置２０８には、配信サーバ１００から配信された複数のバイナリデータと、その差分データのファイルが格納さる。本実施形態では、データ構成部２０６で再構成された差分データのファイルのバイナリデータを記憶する。
端末２００では、二次記憶装置２０８に記憶されたアプリケーションプログラムをＣＰＵ（不図示）が読み出し実行することができる。
【００３３】
このように構成された本実施形態のファイル配信システム１の動作について、以下に説明する。
図４は、本実施形態のファイル配信システム１の配信サーバ１００における配信処理の手順を示すものである。
本実施形態のファイル配信方法は、配信サーバ１００が、複数のファイルをそれぞれ複数のブロックに分割し（ステップＳ１０５）、各ファイルの識別情報を一次アドレスとし（ステップＳ１０３）、各ファイルのブロックの識別情報を二次アドレスとし（ステップＳ１０５）、一次アドレスと二次アドレスから各ブロックの順序を示すブロックアドレスを生成し、各ブロックにブロックアドレスを付与し（ステップＳ１０７）、各ブロックを順次ネットワーク上にマルチキャスト配信する（ステップＳ１０９）。
【００３４】
詳細には、ファイル配信システム１の配信サーバ１００において、二次記憶装置１０２には、配信対象の差分データが複数格納されている。まず、生成部１０６が、二次記憶装置１０２を走査し、複数のファイルをファイル名の辞書順（降順または昇順）など、予め定めた順序で並べ換えて、ファイルリストを生成する（ステップＳ１０１）。
【００３５】
そして、アドレス付与部１１０が、生成部１０６が生成したファイルリストの各レコードに順に１からシリアル番号を付与する（ステップＳ１０３）。このようにして、図２（ａ）に示すように、ファイルリスト３００は、各レコードに一次アドレス３０２と、ファイル名３０４と、が関連付けて記憶される。ファイルリスト３００は、たとえば、ＣＶＳ形式ファイルなどとすることができ、そのファイルサイズは、ファイルリスト３００に含まれるファイル数が、数万個程度であっても、数ＭＢとなる。
【００３６】
一方、分割部１０８が、図２（ｂ）に示すように、二次記憶装置１０２内に格納されている差分データ３１０の多数のファイル群（図中、ファイルＡ、ファイルＢ、ファイルＣ、・・・と示す）をそれぞれ複数のブロックに分割する（ステップＳ１０５）。そして、アドレス付与部１１０が、さらに、ファイル毎に、先頭ブロックから順にシリアル番号を付与する（ステップＳ１０５）。このようにして、図２（ｂ）に示すように、二次アドレス３１２が各ブロックに付与される。
【００３７】
そして、アドレス付与部１１０が、一次アドレス３０２と二次アドレス３１２をビット連結して、図２（ｃ）に示すように、ブロック毎にブロックアドレス３２０を生成する（ステップＳ１０７）。そして、配信部１１２が、図３に示すように、配信データ３３０をブロック（パケット３４０）単位で、ネットワーク３上の複数の端末２００にマルチキャスト配信する（ステップＳ１０９）。各パケット３４０は、ヘッダ３４２とデータ３４４を含み、パケット３４０のヘッダ３４２に、ステップＳ１０７で生成されたブロックアドレス３２０を含むことができる。なお、パケット３４０の構成は、一般的な構成とすることができ、本発明の本質に関わらない部分については省略する。
【００３８】
図５は、本実施形態のファイル配信システム１における端末２００の受信動作の一例を示すフローチャートである。
本実施形態のファイル配信方法において、端末２００が、配信サーバ１００から配信された各ブロックを順に受信し、一時記憶装置２０４に記憶し（ステップＳ２０１）、一時記憶装置２０４に記憶された各ブロックのブロックアドレスにしたがって、各ブロックを順に並べ、各ファイルを再構成して二次記憶装置２０８に記憶する（ステップＳ２０３）。
【００３９】
具体的には、端末２００において、受信部２０２が、ネットワーク３を介して配信サーバ１００から配信された各パケットを順次受信し、一時記憶装置２０４に一時的に記憶する（ステップＳ２０１）。そして、データ構成部２０６が、一時記憶装置２０４に格納された各パケット３４０のヘッダ３４２に含まれるブロックアドレス３２０を参照し、ブロックアドレス３２０順に各ブロックを並べる。そして、ブロックアドレス３２０に含まれる一次アドレス３０２が同じであるブロック群を、一つのファイルとして、ブロックアドレス３２０に含まれる二次アドレス３１２の順に並べられたブロックを連結して再構成する（ステップＳ２０３）。
【００４０】
本実施形態のファイル配信システム１では、配信サーバ１００から配信された各パケットが、配信途中で、順序が入れ替わった場合にも、ブロックアドレス３２０に基づいてブロックを正しい順に並べ変えることができる。
【００４１】
なお、本実施形態のコンピュータプログラムは、配信サーバ１００を構成するコンピュータに、複数のファイルをそれぞれ複数のブロックに分割する手順、各ファイルの識別情報を一次アドレスとし、各ファイルのブロックの識別情報を二次アドレスとし、一次アドレスと二次アドレスから各ブロックの順序を示すブロックアドレスを生成する手順、各ブロックに前記ブロックアドレスを付与する手順、各ブロックを順次ネットワーク上にマルチキャスト配信する手順、を実行させるように記述されている。
【００４２】
さらに、本実施形態のコンピュータプログラムは、配信サーバ１００にネットワーク３を介して接続される端末２００を構成するコンピュータに、各ブロックを受信し、一時記憶装置２０４に記憶する手順、一時記憶装置２０４に記憶された各ブロックのブロックアドレスにしたがって、各ブロックを順に並べ、各ファイルを再構成して二次記憶装置２０８に記憶する手順、を実行させるように記述されている。
【００４３】
本実施形態のコンピュータプログラムは、コンピュータで読み取り可能な記憶媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
【００４４】
以上説明したように、本発明の実施の形態のファイル配信システム１では、ファイルを配信するために、ファイルリストを作成するのに必要な作業領域の容量が確保できればよく、この容量は、ファイルリスト３００に含まれるファイル数が、数万個程度であっても、数１００ＫＢ〜数ＭＢ程度と少なくて済む。また、ファイルリスト３００の生成時間は、二次記憶装置１０２のファイル、すなわち、二次記憶装置１０２に格納されているファイルのファイルアロケーションテーブル等をスキャンする時間が必要となるが、数１０秒と短い。さらに、複数のファイルを別に配信するのではなく、一連の配信データとして複数のファイルを連結して配信することができるので、受信側の通信ポートを複数占有するようなことがない。
【００４５】
このように、本実施形態のファイル配信システム１によれば、マスタ装置（配信サーバ１００）から多数の端末２００に複数のアプリケーションプログラムやミドルウェアを配備させる場合に、アプリケーションやミドルウェアのバイナリデータの差分データのみを抽出し、多数の端末２００にネットワーク３を介してマルチキャスト配信することで、高速に、かつ効率よく配信できるという効果を奏する。
【００４６】
（第２の実施の形態）
図６は、本発明の実施の形態に係るファイル配信システム２０の構成を示す機能ブロック図である。
本実施形態のファイル配信システム２０は、上記実施の形態のファイル配信システム１とは、配信途中でのパケットの欠落を検出し、再送要求を行う点で相違する。
図６に示すように、本実施形態のファイル配信システム２０は、配信サーバ１２０と、ネットワーク３を介して接続される複数の端末２２０と、を備える。
配信サーバ１２０は、図１の上記実施形態のファイル配信システム１の配信サーバ１００と同様な構成に加え、さらに、再送要求受付部１２２と、ブロック再送部１２４と、を有する。また、端末２２０は、図１の上記実施形態のファイル配信システム１の端末２００と同様な構成に加え、さらに、検出部２２２と、再送要求部２２４と、を有する。
【００４７】
端末２２０において、検出部２２２は、一時記憶装置２０４に記憶された各ブロックのブロックアドレスに基づいて、受信できなかったロスブロックを検出する。再送要求部２２４は、検出したロスブロックのブロックアドレスを配信サーバ１２０にネットワーク３を介して通知して再送を要求する。再送通知手順などは、一般的なＵＤＰに従って行うものとし、本発明の本質に関わらないので、詳細な説明は省略する。
【００４８】
また、配信サーバ１２０において、再送要求受付部１２２は、端末２２０からネットワーク３を介してロスブロックの再送要求を受け付ける。ブロック再送部１２４は、端末２２０から通知されたロスブロックのブロックアドレスに基づいて、ロスブロックを端末２２０に再送するよう配信部１１２に指示する。
【００４９】
このように構成された本実施形態のファイル配信システム２０の動作について、以下に説明する。
図７は、本実施形態のファイル配信システム２０の再送動作の一例を示すフローチャートである。
本実施形態のファイル配信方法は、端末２２０が、一時記憶装置２０４に記憶された各ブロックのブロックアドレスに基づいて、受信できなかったロスブロックを検出し（ステップＳ３０１のＹＥＳ）、検出したロスブロックのブロックアドレスを配信サーバ１２０に通知して再送を要求し（ステップＳ３０３）、さらに、配信サーバ１２０が、端末２２０からロスブロックの再送要求を受け付け（ステップＳ３１１のＹＥＳ）、端末２２０から通知されたロスブロックのブロックアドレスに基づいて、ロスブロックを端末２２０に再送する（ステップＳ３１３〜ステップＳ３１９）。
【００５０】
具体的には、本実施形態のファイル配信システム２０の端末２２０において、検出部２２２が、一時記憶装置２０４にブロックアドレス順にブロックを並べ、ブロックアドレスが欠落しているブロックを受信できなかったロスブロックとして検出する（ステップＳ３０１）。なお、受信部２０２でパケット受信時に、所定時間をタイムアウトした場合に、そのパケットは受信できなかったものとして、次のパケットの受信を行う。あるいは、検出部２２２は、パケットのヘッダ情報に基づいて、パケット長が正常か否かを判定したり、チェックサムを確認したりすることで、パケットの受信エラーを検出し、パケットの再送を要求することもできる。
【００５１】
受信ロスが検出された場合（ステップＳ３０１のＹＥＳ）、再送要求部２２４が、受信できなかったブロックのブロックアドレス、すなわち、欠落しているブロックアドレスを配信サーバ１２０にネットワーク３を介して通知して、ブロックの再送を要求する（ステップＳ３０３）。配信サーバ１２０では、再送要求受付部１２２が、端末２２０からの再送要求を受け付けると（ステップＳ３１１のＹＥＳ）、ブロック再送部１２４が、受信した再送要求に含まれるブロックアドレスを一次アドレスと二次アドレスに分割する（ステップＳ３１３）。そして、再送要求受付部１２２が、ファイルリスト３００を参照し、その一次アドレスに対応するファイル名を特定する（ステップＳ３１５）。
【００５２】
さらに、ブロック再送部１２４が、ブロックアドレスの二次アドレスから、ステップＳ３１５で特定されたファイル名を有するファイルのブロックを抽出する（ステップＳ３１７）。そして、ブロック再送部１２４が、抽出したブロックをネットワーク３を介して端末２２０に配信するように配信部１１２に指示する（ステップＳ３１９）。
ここで、端末２２０でのブロックの再送要求処理は、他のブロックの配信が全て終了してから行ってもよいし、途中で行ってもよい。配信サーバ１２０でのブロックの再送処理は、他のブロックの配信が全て終了してから行うのが好ましい。また、ブロックの再送は、マルチキャストで配信してもよいし、再送を要求してきた端末２２０を指定して配信してもよい。ブロックが配信サーバ１２０から端末２２０に再送されたとき、端末２２０は、ブロックアドレスに基づいて同じブロックを重複して受信していないかを判定し、重複している場合は、重複しているブロックを一時記憶装置２０４に格納せずに破棄または、一時記憶装置２０４から削除する処理を行う。この処理は、受信部２０２またはデータ構成部２０６で行うことができる。
【００５３】
以上説明したように、本実施形態のファイル配信システム２０によれば、上記実施形態と同様な効果を奏するとともに、受信できなかったブロックを再送要求して、再配信させることができるので、データ配信の信頼性が向上するという効果を奏する。
【００５４】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
たとえば、上記実施形態のファイル配信システム１またはファイル配信システム２０において、配信サーバ１００（１２０）は、ファイルリスト３００を生成し、ファイルリスト３００の複数のファイルに順にシリアル番号を付与して一次アドレスとする構成としたが、これに限定されない。たとえば、シリアル番号の代わりに、ファイルリスト３００に含まれる各ファイルに対してそれぞれユニークな数値を付与し、一次アドレスとすることもできる。
【００５５】
たとえば、生成部１０６は、ファイルのファイル名をハフマン符号化などの可逆符号化圧縮処理を施してファイル名から一意に決まる数値に換算し、一次アドレスとしてもよい。端末２００（２２０）のデータ構成部２０６は、配信サーバ１００（１２０）の同じ法則を用いて受信したブロックアドレスの一次アドレスの数値を伸張してファイル名を復元することができる。ファイル名は必ずしも復元する必要はなく、同じ一次アドレスまたは同じ復元されたファイル名を有するブロックを特定すれば、二次アドレスに基づいて、ファイルを再構成することができる。
この構成によれば、ファイルリスト３００を作成する必要がないので、符号化圧縮処理を行うための作業領域以外の作業領域も不要となる。また、上述したように、一次アドレスを伸張すれば、ファイル名を特定できる。
【００５６】
この場合、好適には、アドレス付与部１１０によって付与される二次アドレスは、固定長であることが望ましい。たとえば、二次アドレスのビット長を６４ビットに固定すれば、以下の数式（１）でブロックアドレスをユニークかつ高速に算出することができる。
（ブロックアドレス）＝（一次アドレス）×（２の６４乗）＋（二次アドレス）    ・・・式（１）
【００５７】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００５８】
１  ファイル配信システム
３  ネットワーク
２０  ファイル配信システム
１００  配信サーバ
１０２  二次記憶装置
１０４  一時記憶装置
１０６  生成部
１０８  分割部
１１０  アドレス付与部
１１２  配信部
１２０  配信サーバ
１２２  再送要求受付部
１２４  ブロック再送部
２００  端末
２０２  受信部
２０４  一時記憶装置
２０６  データ構成部
２０８  二次記憶装置
２２０  端末
２２２  検出部
２２４  再送要求部
３００  ファイルリスト
３０２  一次アドレス
３０４  ファイル名
３１０  差分データ
３１２  二次アドレス
３２０  ブロックアドレス
３３０  配信データ
３４０  パケット
３４２  ヘッダ
３４４  データ
【図１】
2011237924.tif 000003
【図２】
2011237924.tif 000004
【図３】
2011237924.tif 000005
【図４】
2011237924.tif 000006
【図５】
2011237924.tif 000007
【図６】
2011237924.tif 000008
【図７】
2011237924.tif 000009