(57)【要約】【課題】ファイルを分割してダウンロードする際、ファイルを記憶するサーバ装置の処理負担を低減する。【解決手段】プライマリストレージサーバ１０は、ダウンロード対象のファイル１５を記憶するセカンダリストレージサーバ２０へスレッド１４ａ〜１４ｄを通じて、ファイル１５の第１領域１５ａ〜第４領域１５ｄに含まれるデータの呼び出しを行う。セカンダリストレージサーバ２０は、呼び出しに応じたデータ１５０ａ〜１５０ｄを各領域１５ａ〜１５ｄより読み出してスレッド１４ａ〜１４ｄを通じてプライマリストレージサーバ１０へ送信する。プライマリストレージサーバ１０は、受信した各データ１５０ａ〜１５０ｄを、格納ファイル１５の第１格納領域１５ａ〜第４格納領域１５ｄに格納する。【選択図】図２
2017126105.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と、前記サーバ装置に記憶されるファイルをダウンロードする通信装置とを備えるダウンロードシステムにおいて、
前記通信装置は、
ダウンロード対象のファイルの容量を確認する確認情報を前記サーバ装置へ送信する処理を行う手段を備え、
前記サーバ装置は、
確認情報を受信した場合、ファイルの容量を通知する通知情報を前記通信装置へ送信する処理を行う手段を備え、
前記通信装置は更に、
通知情報を受信した場合、通知情報で通知されたファイルの容量に基づき、ダウンロード対象のファイルを分割する複数の領域を特定する手段と、
特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成する手段と、
ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を前記サーバ装置に送信する処理を行う手段と
を備え、
前記サーバ装置は更に、
要求情報を受信した場合、ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを、前記同時的処理可能数に従って同時的に前記通信装置へ送信する処理を行う手段を備え、
前記通信装置は更に、
各データを受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記格納ファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段を備えることを特徴とするダウンロードシステム。
【請求項２】
ダミーファイルを記憶する通信装置と、前記ダミーファイルに応じた実ファイルを記憶するサーバ装置とを備え、前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、前記通信装置が前記サーバ装置から前記実ファイルをダウンロードするダウンロードシステムにおいて、
前記通信装置は、
前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定する手段と、
特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張する手段と、
前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を前記サーバ装置に送信する処理を行う手段と
を備え、
前記サーバ装置は、
要求情報を受信した場合、前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを、前記同時的処理可能数に従って同時的に前記通信装置へ送信する処理を行う手段を備え、
前記通信装置は更に、
各データを受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段を備えることを特徴とするダウンロードシステム。
【請求項３】
外部のサーバ装置が記憶するファイルをダウンロードする通信装置において、
ダウンロード対象のファイルの容量を確認する確認情報を、外部のサーバ装置へ送信する処理を行う手段と、
確認情報の送信に応じて、ファイルの容量を通知する通知情報を外部のサーバ装置から受信した場合、通知情報で通知されたファイルの容量に基づき、ダウンロード対象のファイルを分割する複数の領域を特定する手段と、
特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成する手段と、
ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行う手段と、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記格納ファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段と
を備えることを特徴とする通信装置。
【請求項４】
ダミーファイルを記憶すると共に、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードする通信装置において、
前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、
前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定する手段と、
特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張する手段と、
前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行う手段と、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段と
を備えることを特徴とする通信装置。
【請求項５】
前記同時的処理可能数と同数のスレッドを生成する手段を備え、
生成したスレッドごとに要求情報を送信すると共に、生成したスレッドごとにデータを受信するようにしてある請求項３又は請求項４に記載の通信装置。
【請求項６】
特定した複数の領域の数が前記同時的処理可能数を上回る場合、複数の要求情報を送信するスレッドが生じるようにしてあり、
前記複数の要求情報のそれぞれは、異なる領域に含まれるデータを要求するものにしてある請求項５に記載の通信装置。
【請求項７】
特定した複数の領域の数が前記同時的処理可能数を上回る場合、異なる複数の領域に含まれるデータを要求する要求情報を送信するスレッドが生じるようにしてある請求項５に記載の通信装置。
【請求項８】
前記複数の領域を特定する手段は、ファイルの容量及び分割サイズに基づき複数の領域を特定するようにしており、
前記分割サイズに係る数値を受け付ける手段と、
受け付けた数値を、前記分割サイズとして設定する手段と
を備える請求項３乃至請求項７のいずれか１項に記載の通信装置。
【請求項９】
前記要求情報は、特定した領域に係る位置範囲を指定する情報を含む請求項３乃至請求項８のいずれか１項に記載の通信装置。
【請求項１０】
通信装置が、外部のサーバ装置からファイルをダウンロードするダウンロード方法において、
ダウンロード対象のファイルの容量を確認する確認情報を、外部のサーバ装置へ送信する処理を行うステップと、
確認情報の送信に応じて、ファイルの容量を通知する通知情報を外部のサーバ装置から受信した場合、通知情報で通知されたファイルの容量に基づき、ダウンロード対象のファイルを分割する複数の領域を特定するステップと、
特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成するステップと、
ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、各データのそれぞれが含まれていた各領域に対応する前記格納ファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップと
を備えることを特徴とするダウンロード方法。
【請求項１１】
ダミーファイルを記憶する通信装置が、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードするダウンロード方法において、
前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、
前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定するステップと、
特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張するステップと、
前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップと
を備えることを特徴とするダウンロード方法。
【請求項１２】
通信機能を有するコンピュータに、外部のサーバ装置からファイルをダウンロードする処理を行わせるためのコンピュータプログラムにおいて、
前記コンピュータに、
ダウンロード対象のファイルの容量を確認する確認情報を、外部のサーバ装置へ送信する処理を行うステップと、
確認情報の送信に応じて、ファイルの容量を通知する通知情報を外部のサーバ装置から受信した場合、通知情報で通知されたファイルの容量に基づき、ダウンロード対象のファイルを分割する複数の領域を特定するステップと、
特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成するステップと、
ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記格納ファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップと
を実行させることを特徴とするコンピュータプログラム。
【請求項１３】
通信機能を有すると共にダミーファイルを記憶するコンピュータに、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードする処理を行わせるためのコンピュータプログラムにおいて、前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、
前記コンピュータに、
前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定するステップと、
特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張するステップと、
前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップと
を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルを分割してダウンロードする場合において、ダウンロード対象のファイルを記録するサーバ装置側の処理負担を低減できるようにしたダウンロードシステム、通信装置、ダウンロード方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、ストレージサーバ等のサーバ装置に記憶されたファイルを、ネットワークを介してダウンロードすることが一般的に行われている。また、ダウンロード対象のファイルが大容量であるときなどは、ダウンロード対象のファイルを分割してダウンロードすることも一般的に行われており、この際、ダウンロードに要する時間短縮のため、ファイルを分割し、分割した各ファイルを並列処理でダウンロードすることも行われている。【０００３】
特許文献１は、ダウンロード対象の元ファイルを記憶するファイルサーバが、元ファイルを複数のファイルに分割し、分割した各ファイルを、複数のデータコネクションを通じて、それぞれ並行的にクライアント端末へダウンロードし、クライアント端末は、複数のファイルのダウンロードが完了すると、それらのファイルを合成して、元ファイルを生成することを開示する。【０００４】
また、下記の特許文献２では、ファイルサーバに記憶するファイルを、複数の領域に分割し、分割した領域のデータ転送を並列に行うことが開示される。さらに、下記の特許文献３では、サーバがクライアントに対してデータを転送する際、送信するデータを分割することが開示される。さらにまた、下記の特許文献４では、ダウンロードサーバ装置が、ダウンロード対象のファイルを複数のセクタに分割し、各セクタのファイルにおける位置を、セクタと対にして、複数の端末へ送信することが開示される。【０００５】
一方、複数のストレージサーバをネットワークで連携してファイルを記憶するようにしたシステムが従来から使用されており（例えば、複数のストレージを階層的に設けたＨＳＭ（Hierarchical Storage Management）に応じたシステム等）、このようなシステム等では、ダミーファイル（又はスタブファイル）が用いられることがある。ダミーファイルは、実体となるデータを含まないデータ容量を小さくしたファイルであり、一般に、ユーザからのアクセスを受ける側となる第１ストレージサーバ（プライマリストレージサーバ）に記憶され、一方、ダミーファイルに対応した実体となるデータを含む実ファイルは、第１ストレージサーバと連携する第２ストレージサーバ（セカンダリストレージサーバ）に記憶し、それにより第１ストレージサーバの空き容量の確保する。このようなダミーファイルは、ファイル自体の容量が大きい画像ファイル等に対して使われることが多い。【０００６】
ダミーファイルは、プライマリストレージサーバへアクセスするユーザには、元のファイルがプライマリストレージサーバに記憶されているかのように見えており、元のファイルの読み出し要求をプライマリストレージがユーザから受けると、実ファイルをセカンダリストレージサーバからダウンロードする必要があるので、ダミーファイルには通常、実ファイルの記憶箇所を示す情報、及び実ファイルのサイズ容量を示す情報等が含まれている。【０００７】
このようなダミーファイル（スタブファイル）を利用して、実ファイルをダウンロードする処理の例は、下記の特許文献５、６に示される。なお、下記の特許文献７では、記憶されているファイルをダウンロードするに当たり、ファイルの記憶側でダウンロード対象のファイルをＮ個に分割し、受信側の装置ではダミーファイルを生成し、ファイルの書き込み領域を確保すること等が開示される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１１−２４２６４０号公報
【特許文献２】特開平１１−１５７２０号公報
【特許文献３】特開２００１−３５０６８３号公報
【特許文献４】特開２００４−２８７６３１号公報
【特許文献５】特開平８−３１４７８９号公報
【特許文献６】特開２００６−１６４２１１号公報
【特許文献７】特開２０００−３２２３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した特許文献１〜４では、ダウンロード対象のファイルを分割して送信するにあたり、ファイルの分割処理を、ファイルを記憶するファイル送信元の装置（ファイルサーバ等）で行う必要があるので、ファイル送信元の装置において、ファイルの分割処理に応じた処理負担が生じるという問題がある。また、特許文献７に示すように、ダミーファイルを用いた場合で、ダウンロード対象のファイルを分割するときも同様に、ダウンロード対象のファイルを記憶するファイル送信元の装置側に、ファイルの分割処理に応じた処理負担が生じる。【００１０】
本発明は、斯かる事情に鑑みてなされたものであり、ファイルを受信する側の装置が、ファイルを複数の領域に特定し、各領域に含まれるデータを呼び出すことにより、ファイルサーバ等のファイル送信元の装置がファイルの分割処理を行わなくても済むようにしたダウンロードシステム、通信装置、ダウンロード方法、及びコンピュータプログラムを提供することを目的とする。【００１１】
また、ダミーファイルに応じた実ファイルをダウンロードする場合に、その実ファイルを分割してダウンロードするときにも、実ファイルの提供側の装置が分割処理を行わずに済むようにしたダウンロードシステム、通信装置、ダウンロード方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために本発明に係るダウンロードシステムは、サーバ装置と、前記サーバ装置に記憶されるファイルをダウンロードする通信装置とを備えるダウンロードシステムにおいて、前記通信装置は、ダウンロード対象のファイルの容量を確認する確認情報を前記サーバ装置へ送信する処理を行う手段を備え、前記サーバ装置は、確認情報を受信した場合、ファイルの容量を通知する通知情報を前記通信装置へ送信する処理を行う手段を備え、前記通信装置は更に、通知情報を受信した場合、通知情報で通知されたファイルの容量に基づき、ダウンロード対象のファイルを分割する複数の領域を特定する手段と、特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成する手段と、ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を前記サーバ装置に送信する処理を行う手段とを備え、前記サーバ装置は更に、要求情報を受信した場合、ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを、前記同時的処理可能数に従って同時的に前記通信装置へ送信する処理を行う手段を備え、前記通信装置は更に、各データを受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記格納ファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段を備えることを特徴とする。【００１３】
また、本発明に係るダウンロードシステムは、ダミーファイルを記憶する通信装置と、前記ダミーファイルに応じた実ファイルを記憶するサーバ装置とを備え、前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、前記通信装置が前記サーバ装置から前記実ファイルをダウンロードするダウンロードシステムにおいて、前記通信装置は、前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定する手段と、特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張する手段と、前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を前記サーバ装置に送信する処理を行う手段とを備え、前記サーバ装置は、要求情報を受信した場合、前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを、前記同時的処理可能数に従って同時的に前記通信装置へ送信する処理を行う手段を備え、前記通信装置は更に、各データを受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段を備えることを特徴とする。【００１４】
本発明に係る通信装置は、外部のサーバ装置が記憶するファイルをダウンロードする通信装置において、ダウンロード対象のファイルの容量を確認する確認情報を、外部のサーバ装置へ送信する処理を行う手段と、確認情報の送信に応じて、ファイルの容量を通知する通知情報を外部のサーバ装置から受信した場合、通知情報で通知されたファイルの容量に基づき、ダウンロード対象のファイルを分割する複数の領域を特定する手段と、特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成する手段と、ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行う手段と、要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記格納ファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段とを備えることを特徴とする。【００１５】
本発明に係る通信装置は、ダミーファイルを記憶すると共に、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードする通信装置において、前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定する手段と、特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張する手段と、前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行う手段と、要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段とを備えることを特徴とする。【００１６】
本発明に係る通信装置は、前記同時的処理可能数と同数のスレッドを生成する手段を備え、生成したスレッドごとに要求情報を送信すると共に、生成したスレッドごとにデータを受信するようにしてあることを特徴とする。
また、本発明に係る通信装置は、特定した複数の領域の数が前記同時的処理可能数を上回る場合、複数の要求情報を送信するスレッドが生じるようにしてあり、前記複数の要求情報のそれぞれは、異なる領域に含まれるデータを要求するものにしてあることを特徴とする。
さらに本発明に係る通信装置は、特定した複数の領域の数が前記同時的処理可能数を上回る場合、異なる複数の領域に含まれるデータを要求する要求情報を送信するスレッドが生じるようにしてあることを特徴とする。【００１７】
本発明に係る通信装置は、前記複数の領域を特定する手段が、ファイルの容量及び分割サイズに基づき複数の領域を特定するようにしており、前記分割サイズに係る数値を受け付ける手段と、受け付けた数値を、前記分割サイズとして設定する手段とを備えることを特徴とする。
また、本発明に係る通信装置は、前記要求情報が、特定した領域に係る位置範囲を指定する情報を含むことを特徴とする。【００１８】
本発明に係るダウンロード方法は、通信装置が、外部のサーバ装置からファイルをダウンロードするダウンロード方法において、ダウンロード対象のファイルの容量を確認する確認情報を、外部のサーバ装置へ送信する処理を行うステップと、確認情報の送信に応じて、ファイルの容量を通知する通知情報を外部のサーバ装置から受信した場合、通知情報で通知されたファイルの容量に基づき、ダウンロード対象のファイルを分割する複数の領域を特定するステップと、特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成するステップと、ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、各データのそれぞれが含まれていた各領域に対応する前記格納ファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップとを備えることを特徴とする。【００１９】
本発明に係るダウンロード方法は、ダミーファイルを記憶する通信装置が、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードするダウンロード方法において、前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定するステップと、特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張するステップと、前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップとを備えることを特徴とする。【００２０】
本発明に係るコンピュータプログラムは、通信機能を有するコンピュータに、外部のサーバ装置からファイルをダウンロードする処理を行わせるためのコンピュータプログラムにおいて、前記コンピュータに、ダウンロード対象のファイルの容量を確認する確認情報を、外部のサーバ装置へ送信する処理を行うステップと、確認情報の送信に応じて、ファイルの容量を通知する通知情報を外部のサーバ装置から受信した場合、通知情報で通知されたファイルの容量に基づき、ダウンロード対象のファイルを分割する複数の領域を特定するステップと、特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成するステップと、ダウンロード対象のファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記格納ファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップとを実行させることを特徴とする。【００２１】
本発明に係るコンピュータプログラムは、通信機能を有すると共にダミーファイルを記憶するコンピュータに、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードする処理を行わせるためのコンピュータプログラムにおいて、前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、前記コンピュータに、前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定するステップと、特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張するステップと、前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップとを実行させることを特徴とする。【００２２】
本発明にあっては、通信装置が、ダウンロード対象のファイルの容量を確認すると、その確認した容量に基づき、ダウンロード対象のファイルにおける複数の領域を特定すると共に、特定した複数の領域に対応した複数の格納領域を含む格納ファイルを生成しておき、それから、ダウンロード対象のファイルについて、特定した複数の領域に応じたデータを同時的に呼び出す（読み出す）ために、要求情報をサーバ装置に送信することで、複数のデータを並列的にダウンロードして、格納ファイルの各格納領域に格納することにより、通信装置で、ダウンロード対象のファイルが得られるようになる。この際、ダウンロード対象のファイルを記憶するサーバ装置は単に、通信装置からの要求情報に応じて、その要求情報に対するデータを通信装置へ送るだけなので、ファイルの分割処理を行っておらず、そのため、従来のファイルの分割処理を行う場合に比べて特段、サーバ装置側の処理負担は増大しなくなる。【００２３】
本発明にあっては、通信装置が、ダミーファイルに含まれる容量情報に基づき、サーバ装置に記憶される実ファイルにおける複数の領域を特定すると共に、特定した複数の領域に対応した複数の格納領域を含むようにダミーファイルを拡張しておき、それから、実ファイルについて、特定した複数の領域に応じたデータを同時的に呼び出す（読み出す）ために、要求情報をサーバ装置に送信することで、複数のデータを平行的にダウンロードして、ダミーファイルの各格納領域に格納することにより、通信装置で、実ファイルが得られるようになる。この際、実ファイルを記憶するサーバ装置は単に、通信装置からの要求情報に応じて、その要求情報に対するデータを通信装置へ送るだけなので、ファイルの分割処理を行っておらず、そのため、ダミーファイルを用いた場合でも、従来のファイルの分割処理を行うときに比べて特段、サーバ装置側の処理負担は増大しなくなる。【００２４】
本発明にあっては、同時的処理可能数に応じた数のスレッドを生成し、スレッドごとに要求情報の送信及びデータの受信を行うので、スレッドを介して（ベースにして）、確実に複数のデータの同時的ダウンロード処理を行えるようになる。なお、スレッドとは、並列処理に対応したプログラム処理の実行単位を意味し、本発明ではダウンロード処理の時分割処理において、同時的に処理を行う実行単位として仮想的に生成されるものとなっている。【００２５】
本発明にあっては、特定した複数の領域の数が、同時的処理可能数を上回る場合、一度の同時的処理で、複数の領域に応じた全てのデータを呼び出すことができないので、複数の要求情報の送信を行うスレッドを生じさせることで、そのようなスレッドでは同時的処理が繰り返されて全てのデータを受信できるようになり、同時的処理可能数を超える大容量のファイル（実ファイル）であっても本発明を用いて確実にダウンロードできるようになる。【００２６】
本発明にあっては、特定した複数の領域の数が、同時的処理可能数を上回る場合、異なる複数の領域に含まれるデータを要求する要求情報の送信を行うスレッドを生じさせることにより、そのようなスレッドでは一度の要求情報の送信で、異なるは領域に含まれるデータが順次ダウンロードされるようになり、スレッド単位で複数回、要求情報を送信しなくても同時的処理可能数を超える大容量のファイル（実ファイル）を確実にダウンロードできるようになる。【００２７】
本発明にあっては、ファイルの容量及び分割サイズに基づき複数の領域を特定する場合、分割サイズに係る数値を受け付けて、その受け付けた数値を分割サイズとして設定するので、ダウンロード対象のファイル（又は実ファイル）の容量、通信環境、ダウンロード時の通信の混雑度等に応じて、分割サイズを適宜設定して、ファイル（実ファイルも含む）を分割する領域範囲を適宜変更できるようになり、それにより、柔軟なダウンロード状況を確保できる。【００２８】
本発明にあっては、特定した領域の位置範囲を指定する情報を要求情報に含ませるので、ダウンロード対象のファイル（又は実ファイル）における領域に含まれるデータを確実に呼び出せるようになり、また、サーバ装置側も、位置範囲が指定された領域に対してデータを読み出すことになり、確実なデータ読み出しを行えるようになる。
【発明の効果】
【００２９】
本発明にあっては、通信装置がサーバ装置から、ダウンロード対象のファイルにおける複数の領域に応じたデータを同時的に呼び出して、複数のデータを並行的にダウンロードし、生成した格納ファイルの各格納領域に格納するので、ダウンロード対象のファイルを記憶するサーバ装置側は、通信装置からの呼び出しに応じたファイルの読み出し及び送信処理を行うだけとなり、従来のようなファイルの分割処理に伴う処理負担の増大を回避できる。【００３０】
本発明にあっては、通信装置がサーバ装置から、ダミーファイルに対応する実ファイルにおける複数の領域に応じたデータを同時的に呼び出して、複数のデータを並行的にダウンロードし、サイズを拡張したダミーファイルの各格納領域に格納するので、実ファイルを記憶するサーバ装置側は、通信装置からの呼び出しに応じたファイルの読み出し及び送信処理を行うだけとなり、ダミーファイルを用いた場合であっても、従来のようなファイルの分割処理に伴う処理負担の増大を回避できると共に、そのダミーファイルを有効に活用して、元の実ファイルを通信装置で得ることができる。【００３１】
本発明にあっては、同時的処理可能数に応じた数のスレッドを生成し、スレッドごとに要求情報の送信及びデータの受信を行うので、スレッド単位で、確実に複数のデータの同時的ダウンロード処理を行える。
また、本発明にあっては、特定した複数の領域の数が、同時的処理可能数を上回る場合、要求情報の送信を複数回行うスレッドを生じさせることで、同時的処理を繰り返して全てのデータを受信できるので、大容量のファイル（実ファイル）でも確実にダウンロードを行える。
さらに、本発明にあっては、特定した複数の領域の数が、同時的処理可能数を上回る場合、異なる複数の領域に含まれるデータを要求する要求情報の送信を行うスレッドを生じさせることにより、そのようなスレッドでは一度の要求情報の送信で、異なるは領域に含まれるデータが順次ダウンロードでき、効率的な要求情報の送信に伴い、同時的処理可能数を超える大容量のファイル（実ファイル）を確実にダウンロードできる。【００３２】
本発明にあっては、ファイルの容量及び分割サイズに基づき複数の領域を特定する場合、分割サイズに係る数値を受け付けて、その受け付けた数値を分割サイズとして設定するので、ダウンロード対象のファイル（実ファイル）の分割サイズを適宜設定して、ファイル（実ファイルも含む）を分割する領域範囲を適宜変更でき、それにより、柔軟なダウンロード状況を確保できる。
また、本発明にあっては、要求情報に、各領域の位置範囲を指定する情報を含ませるので、ダウンロード対象のファイル（実ファイル）における領域に含まれるデータを確実に呼び出すことができ、また、サーバ装置側も、位置範囲が指定された領域に含まれるデータを読み出すという一般的なリード処理でダウンロード処理に対応できる。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１実施形態に係るダウンロードシステムの全体的な構成を示す概略図である。
【図２】（ａ）は並列処理でデータ呼び出しを行う状態を示す概略図、（ｂ）は並列処理でデータをダウンロードする状態を示す概略図、（ｃ）は、ダウンロードしたデータを格納ファイルの各格納領域を格納した状態を示す概略図である。
【図３】ダウンロード対象のファイルを分割した領域を示す概略図である。
【図４】プライマリストレージサーバの主要な内部構成を示すブロック図である。
【図５】エージェントによる各機能を示す機能ブロック図である。
【図６】セカンダリストレージサーバの主要な内部構成を示すブロック図である。
【図７】本発明に係るダウンロード方法の処理手順を示す第１フローチャートである。
【図８】（ａ）は分割サイズの設定用のメニュー画面を示す概略図、（ｂ）は分割サイズを拡大してファイルの分割領域数を減少した場合を示す概略図、（ｃ）は分割サイズを縮小してファイルの分割領域数を増加した場合を示す概略図である。
【図９】（ａ）は、ファイルの分割領域数が生成されるスレッド数を上回る状態を示す概略図、（ｂ）は同時的ダウンロード処理を二回行う場合を示すタイムチャートである。
【図１０】同時的ダウンロード処理を複数回繰り返す場合のダウンロード方法の処理手順を示す第２フローチャートである。
【図１１】ユーザ端末の主要な内部構成を示すブロック図である。
【図１２】本発明の第２実施形態に係るダウンロードシステムの概略的な構成を示す概略図である。
【図１３】第２実施形態の同時的ダウンロードに係る状況を示す概略図である。
【図１４】第２実施形態に係るダウンロード方法の処理手順を示す第３フローチャートである。
【発明を実施するための形態】
【実施例１】
【００３４】
図１は、本発明の第1実施形態に係るダウンロードシステム１の全体的な概要を示したものであり、このダウンロードシステム１は、プライマリストレージサーバ１０（通信装置に相当）、及びセカンダリストレージサーバ２０（サーバ装置に相当）により構成される。プライマリストレージサーバ１０は、ネットワークを通じてセカンダリストレージサーバ２０と通信可能になっており、セカンダリストレージサーバ２０をバックアップサーバとして各種ファイルの記憶等に利用する。【００３５】
本実施形態のプライマリストレージサーバ１０は記憶デバイスとして、読み書き速度が速いが記憶容量は小さいプライマリストレージ１１（第１記憶デバイス）を備え、一方、セカンダリストレージサーバ２０は、プライマリストレージ１１に比べて読み書き速度は遅いが記憶容量の大きいセカンダリストレージ２１（第２記憶デバイス）を備えており、プライマリストレージ１１で記憶していたファイルをセカンダリストレージ２１で記憶させるために、セカンダリストレージサーバ２０へ送信して、プライマリストレージ１１に記憶していたファイルの移動により、プライマリストレージ１１の記憶容量を確保するような処理をプライマリストレージサーバ１０は行う。【００３６】
また、プライマリストレージサーバ１０は、一般ユーザ等が用いる外部のユーザ端末４０からのアクセスを、ネットワークを介し受信可能にしており、セカンダリストレージ２１に移動させたファイルの要求等をユーザ端末４０から受け取ると、プライマリストレージサーバ１０は、対象となるファイルをセカンダリストレージサーバ２０からダウンロードする処理を行う。このようにセカンダリストレージサーバ２０からファイルをダウンロードするにあたり、ダウンロード対象のファイル用容量が一定容量より大きい場合、本発明の特徴であるファイルを複数のデータに分割して時分割で同時的に（時間的に同時期に）、ダウンロードする処理を、ダウンロードシステム１は行うことになる。【００３７】
図２（ａ）〜（ｃ）が、本発明の特徴であるファイルを構成する複数のデータをダウンロードする処理の概要を示し、セカンダリストレージ２０に記憶されるファイル１５をプライマリストレージサーバ１０へダウンロードするときの状況の流れを表す。まず、図２（ａ）に示すように、プライマリストレージサーバ１０は、ダウンロード対象のファイル１５に応じた格納ファイル５を生成すると共に、ダウンロード対象のファイル１５を時分割で同時的（並列的）にダウンロードするための第１スレッド１４ａ〜第４スレッド１４ｄを確立し（生成し）、これらスレッド１４ａ〜１４ｄごとに、データを要求する要求情報を送信することにより、ダウンロード対象のファイル１５の第１領域１５ａ〜第４領域１５ｄ（図３参照）に含まれるデータを時間的に同時期に（同時的に）呼び出す処理を行う。【００３８】
次に、図２（ｂ）に示すように、セカンダリストレージサーバ２０は、ファイル１５の各領域１５ａ〜１５ｄに含まれるデータの呼び出しに応じた要求情報を受信すると、その呼び出しに応じたデータ１５０ａ〜１５０ｄを各領域１５ａ〜１５ｄより読み出し、呼び出しで用いられた各スレッド１４ａ〜１４ｄを通じて、各読み出したデータ１５０ａ〜１５０ｄをプライマリストレージサーバ１０へ送信する。なお、このようなデータの呼び出しに応じて、呼び出し対象のデータを呼び出し元の装置へ送信する処理は、サーバ装置としては一般的な処理となる。【００３９】
そして、図２（ｃ）に示すように、プライマリストレージサーバ１０は、セカンダリストレージサーバ２０から送られてくる各データ１５０ａ〜１５０ｄを第１スレッド１４ａ〜第４スレッド１４ｄごとに受信すると、受信した各データ１５０ａ〜１５０ｄを、格納ファイル５におけるそれぞれのデータ１５０ａ〜１５０ｄに対応する格納領域（第１格納領域１５ａ〜第４格納領域１５ｄ）に格納する。それにより格納ファイル５が、ダウンロード対象のファイル１５と同等な中身になり、このような中身の格納ファイル５が、ファイル１５として使用できるようになる。以下、上記のような処理を行うダウンロードシステム１を構成するプライマリストレージサーバ１０等について詳説していく。【００４０】
図４は、プライマリストレージサーバ１０（通信装置）の主要な内部構成を示す。本実施形態のプライマリストレージサーバ１０にはサーバコンピュータを適用しており、全体的な制御及び各種処理を行うＭＰＵ１０ａに、各種デバイス等を内部接続線１０ｈで接続したものになっており、各種デバイス等には、通信モジュール１０ｂ、ＲＡＭ１０ｃ、ＲＯＭ１０ｄ、入力インタフェース１０ｅ、出力インタフェース１０ｆ、記憶部１０ｇ、及びプライマリストレージ１１等がある。【００４１】
通信モジュール１０ｂは、ネットワークとの接続モジュールに相当する通信デバイスであり、所要の通信規格に応じたものである（例えばＬＡＮモジュール）。通信モジュール１０ｂは、所要の通信機器（図示は省略。例えばルータ等が該当）を介してネットワークと接続されており、セカンダリストレージサーバ２０との通信を可能にすると共に、システム外部のユーザ端末４０等との通信も可能にしている。【００４２】
ＲＡＭ１０ｃは、ＭＰＵ１０ａの処理に伴う内容、ファイル等を一時的に記憶するものであり、ＲＯＭ１０ｄは、ＭＰＵ１０ａの基本的な処理内容を規定したプログラム等を記憶するものである。入力インタフェース１０ｅは、システム管理者等からの操作指示等を受け付けるキーボード１０ｉ、マウス等が接続されるものであり、プライマリストレージサーバ１０のシステム管理者等から受け付けた操作指示等をＭＰＵ１０ａへ伝える。出力インタフェース１０ｆは、ディスプレイ１０ｊ（表示出力装置）が接続されるものであり、ＭＰＵ１０ａの処理に伴う内容をディスプレイ１０ｊへ出力し、システム管理者等が現在の処理内容等を確認できるようにしている。【００４３】
記憶部１０ｇは、プログラム等を記憶するものであり、具体的には、サーバプログラムＰ１、及び処理プログラムＰ２等の各種プログラムを記憶すると共に、ファイルのダウンロード処理で用いる設定値として、分割閾値ｆ１及び分割サイズｆ２等も記憶する。なお、分割閾値ｆ１及び分割サイズｆ２は、デフォルトで初期値が設定されており、分割閾値ｆ１としては例えば３００ＭＢ（メガバイト。以下同様）、分割サイズｆ２として例えば１００ＭＢが、それぞれデフォルトの初期値として設定されている（各値は一例）。【００４４】
また、記憶部１０ｇに記憶されるサーバプログラムＰ１は、サーバコンピュータ用のオペレーティングシステムに応じた各種処理を規定したものであり、この規定内容に基づいた処理をＭＰＵ１０ａが行うことで、プライマリストレージサーバ１０はサーバコンピュータとしての機能を果たす。また、処理プログラムＰ２は、本発明に係るダウンロード方法の各種処理の制御をＭＰＵ１０ａが行うことを規定したコンピュータプログラムであり、上述した図２（ａ）〜図２（ｃ）に示す各処理において、プライマリストレージサーバ１０が行う制御処理内容がプログラミングされている。このような処理プログラムＰ２は、その処理プログラムＰ２が記憶された記憶媒体（例えば、ＤＶＤのような記憶ディスク）等を通じて、プライマリストレージサーバ１０へインストールすることが可能である。また、本実施形態では、処理プログラムＰ２のプログラム内容で、ＭＰＵ１０ａの制御処理内容を規定することにより、ＭＰＵ１０ａがエージェント１２として各種機能を行うようになる。【００４５】
図５は、ＭＰＵ１０ａがエージェント１２として行う機能のブロック図を示し、ＭＰＵ１０ａは、図中の（１）〜（７）の各内容を行う手段として機能する。エージェント１２の具体的な手段の機能としては、「（１）ファイル容量確認機能」、「（２）ファイル分割判断機能」、「（３）分割領域特定機能」、「（４）スレッド生成機能」、「（５）格納ファイル生成機能」、「（６）データ要求機能」、及び「（７）データ格納機能」等がある。【００４６】
「（１）ファイル容量確認機能」は、プライマリストレージサーバ１０が、セカンダリストレージサーバ２０に記憶するファイルをダウンロードすることを決定した場合、ダウンロード対象のファイルの容量をセカンダリストレージサーバ２０に確認するための処理である。具体的には、ダウンロード対象のファイルを特定する情報（ファイル名等）と共に、ダウンロード対象のファイル容量を確認して問い合わせる旨の指示（コマンド等）を含む確認情報を、セカンダリストレージサーバ２０へＭＰＵ１０ａが送信する制御を行う処理に応じた機能になっている。【００４７】
「（２）ファイル分割判断機能」は、上記の確認情報の送信に応じて、セカンダリストレージサーバ２０から、ダウンロード対象のファイルの容量を通知する通知情報を受信すると、その通知情報で通知されたファイル容量と、記憶部１０ｇに記憶される分割閾値ｆ１とを対比し、ファイル容量が分割閾値ｆ１の設定値（例えば、３００ＭＢ）を上回る場合（超過する場合）、ダウンロード対象のファイルを分割することを特定する機能になっている。なお、ファイル容量が分割閾値ｆ１の設定値以下の場合（上回らない場合）、分割を行うことなく、プライマリストレージサーバ１０はセカンダリストレージサーバ２０からファイルをダウンロードすることになり、このような分割なしのダウンロードを行う場合は、従来と同様の処理になるので詳細は説明しない。【００４８】
「（３）分割領域特定機能」は、通知情報で通知されたファイル容量に基づいて、ダウンロード対象のファイル１５を分割する複数の領域を特定する処理であり、本実施形態では、記憶部１０ｇに記憶される分割サイズｆ２の設定値を分割の領域範囲のサイズとして用いることにより、ファイル容量及び分割サイズｆ２により分割領域を特定している。具体的には、ダウンロード対象のファイルにおける最初の０ＭＢに、分割サイズｆ２の設定値（例えば、１００ＭＢ）を順次加えていくことで、ダウンロード対象のファイル１５を分割する領域の開始バイト及び終了バイトを求めており、それにより、ファイルを分割する領域数及び各領域の位置範囲を特定している。【００４９】
図３に示すように、ダウンロード対象のファイル１５のファイル容量が４００ＭＢの場合、最初の領域（第１領域１５ａ）の開始バイト（０ＭＢ）に、分割サイズｆ２の設定値（１００ＭＢ）を加えた９９ＭＢを第１領域１５ａの終了バイトとして特定し、その９９ＭＢに続く１００ＭＢを第２領域１５ｂの開始バイトにして、以下同様に、その開始バイトに分割サイズｆ２の設定値を加えた１９９ＭＢを第２領域１５ｂの終了バイトとして特定し、１９９ＭＢに続く２００ＭＢを第３領域１５ｃの開始バイトにして、分割サイズｆ２の設定値を加えた２９９ＭＢを第３領域１５ｃの終了バイトとして特定し、２９９ＭＢに続く３００ＭＢを第４領域１５ｄの開始バイトにして、分割サイズｆ２の設定値を加えた３９９ＭＢを第４領域１５ｂの終了バイトとして特定する。このような特定の仕方により、各領域の位置範囲が定まることになる。【００５０】
なお、ファイルを分割する領域の特定の仕方としては、上記以外にも、複数の方式が想定され、例えば、ダウンロード対象のファイル１５において、ファイル容量を分割サイズｆ２で除算することにより、まず、ファイル１５の全領域を分割する数を特定し、それから、ファイルの開始バイトに順次、分割サイズを加えることで、各領域の位置範囲を特定することも可能である。また、ファイル分割領域の位置範囲を指定したルックアップテーブル等を準備しておき（第１領域から第Ｎ領域（Ｎは２以上の整数）までの開始及び終了バイトを指定したテーブル等）、その指定された内容に基づき、ダウンロード対象のファイルの分割領域を特定する仕様にすることも可能である。このようにルックアップテーブル等を用いる場合は、分割サイズｆ２の使用を省略できる。【００５１】
「（４）スレッド生成機能」は、ダウンロード対象のファイルについて特定した各領域の数に応じた処理を、時分割（タイムシェアリング）で同時並行的に行えるようにするために、スレッドを生成するものである（並列処理のために確立される）。生成されるスレッドの数は、ＣＰＵ４０ａの処理能力及びＲＡＭ１０ｃの容量等により上限が定まり、本実施形態では、最大４つまでスレッドを生成可能にしている。そのため、ダウンロード対象のファイルの分割領域数が、スレッドの最大生成可能数に収まる場合、この「（４）スレッド生成機能」では、ファイルの分割領域数と同数のスレッドを生成する。【００５２】
よって、図３に示すように、ダウンロード対象のファイル１５が第１領域１５ａ〜第４領域１５ｄの計４つの領域に分割される場合、「（４）スレッド生成機能」により生成されるスレッド数は、分割領域数と同数の４になる（図２（ａ）等参照）。この場合、生成された第１スレッド１４ａ〜第４スレッド１４ｄについて、「（４）スレッド生成機能」により、最初の第１スレッド１４ａは、ファイル１５の第１領域１５ａに対する処理用として設定され、以下、２番目の第２スレッド１４ｂは第２領域１５ｂに対する処理用、３番目の第３スレッド１４ｃは第３領域１５ｃに対する処理用、４番目の第４スレッド１４ｄは第４領域１５ｄに対する処理用としてそれぞれ設定される。【００５３】
なお、ダウンロード対象のファイルの分割領域数が計３つの場合、生成されるスレッド数は３となり、ダウンロード対象のファイルの分割領域数が計２つの場合、生成されるスレッド数は２となる。また、ダウンロード対象のファイルの分割領域数が、生成可能なスレッド数の上限（本実施形態では４）を超える場合は、生成されるスレッド数は上限の４になる（例えば、ダウンロード対象のファイルの分割領域数が計６つの場合でも、本実施形態において生成されるスレッド数は４に留まる）。【００５４】
このように生成されるスレッドの数（スレッド数）は、ダウンロードシステム１における同時的処理可能数に該当し、プライマリストレージサーバ１０及びセカンダリストレージサーバ２０の間で時分割により並列処理を行える数（時間的に同時期に処理できる数）は、スレッド数と同じになる。なお、本実施形態では、ＣＰＵ４０ａの処理能力及びＲＡＭ１０ｃの容量等によりスレッド数の上限は４にしたが、本実施形態より処理能力の高いＭＰＵ１０ａ及び容量の大きいＲＡＭ１０ｃ等を用いるときは、生成可能なスレッド数の上限を４より多くすることも可能である（例えば、スレッド数を８又は１６等にすることも可能）。なお、生成されるスレッド１４ａ等の処理（ダウンロード処理）は、基本的に同じ時間帯で行われるが、スレッドそれそれで独立して処理を進行するので、処理の終了時期は同時期にならないことがある。【００５５】
また、「（５）格納ファイル生成機能」は、ダウンロードしたファイルを格納するための格納ファイルを生成する機能であり、この機能により、上述した「（３）分割領域特定機能」で特定したダウンロード対象のファイル１５の第1領域１５ａ〜第４領域１５ｄに対応した第1格納領域５ａ〜第４格納領域５ｄを有する格納ファイル５（図２（ａ）参照）がプライマリストレージ１１に生成される。「（５）格納ファイル生成機能」で両ファイルの領域の対応関係が設定され、具体的には、格納ファイル５の第１格納領域５ａが、ダウンロード対象のファイル１５の第１領域１５ａに対応し、以下、格納ファイル５の第２格納領域５ａが、ファイル１５の第２領域１５ｂに対応し、格納ファイル５の第３格納領域５ｃが、ファイル１５の第３領域１５ｃに対応し、格納ファイル５の第４格納領域５ｄが、ファイル１５の第４領域１５ｄに対応することが設定される。なお、このような格納ファイル５は、ダウンロード対象のファイル１５の各領域１５ａ〜１５ｄと同サイズ（同容量）の格納領域５ａ〜５ｄが確保されただけになっており、これらの各格納領域５ａ〜５ｄの中身は、生成時点では空になっている。【００５６】
「（６）データ要求機能」は、上述した「（４）スレッド生成機能」により生成されたスレッド１４ａ〜１４ｄの数に従って、並列処理によりファイル１５の中の各領域に応じたデータを同時的に呼び出す機能である。なお、並列処理で同時期に処理を行うことは、時分割処理が実行されることから、厳密には各処理が同時ではなく、多少の時間的なズレを許容したものとなっており、それゆえ、このような時分割処理による多少の時間的なズレを含むという意味合いで同時的という文言を用いている。【００５７】
「（６）データ要求機能」の具体的な内容としては、ダウンロード対象のファイル１５の各領域１５ａ〜１５ｄに含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データの呼び出し（要求）を行うための要求情報をセカンダリストレージサーバ２０へＭＰＵ１０が送信する制御を行う処理機能になっている。この機能では、各スレッド１４ａ〜１４ｄを通じて並列処理で要求情報をそれぞれ送信するので、同時的処理可能数（この場合であれば、同時的処理可能数はスレッド数と同数の４になる）に従って同時的に各データが呼び出されることになる。また、それぞれの要求情報は、ダウンロード対象のファイル１５の中の呼び出し対象となる領域の位置範囲を指定する情報、及びその指定された位置範囲の領域に含まれるデータを呼び出す指示を含む。【００５８】
領域の位置範囲を指定する情報は、上記の「（３）分割領域特定機能」により特定された領域の範囲における開始バイト（開始位置）及び終了バイト（終了位置）を指定するものとなっており、それにより、指定された領域の位置範囲に含まれるデータを呼び出すことが可能となる。【００５９】
「（７）データ格納機能」は、上述した「（６）データ要求機能」による要求情報の送信に応じて、セカンダリストレージサーバ２０から、第１領域１５ａ〜第４領域１５ｄに含まれるデータが、各スレッド１４ａ〜１４ｄを介し、それぞれダウンロードされてくると、それらのデータを受信し、受信した各データを、上記の「（５）格納ファイル生成機能」で生成した格納ファイル５の各格納領域５ａ〜５ｄにそれぞれ格納する機能になる。このとき、第１領域１５ａに含まれていた一つ目のデータ１５０ａは、その第１領域１５ａに対応する第１格納領域５ａに格納され、以下、二つ目のデータ１５０ｂは、第２領域１５ｂに対応する第２格納領域５ｂに格納され、三つ目のデータ１５０ｃは、第３領域１５ｃに対応する第３格納領域５ｃに格納され、四つ目のデータ１５０ｄは、第４領域１５ｄに対応する第４格納領域５ｄに格納される。【００６０】
これらデータ１５０ａ〜１５０ｄの格納状況としては、図２（ｂ）に示すように、各スレッド１４ａ〜１４ｄを通じて、セカンダリストレージサーバ２０から、ダウンロード対象のファイル１５の第１領域１５ａ〜第４領域１５ｄに含まれる各データ１５０ａ〜１５０ｄが、時分割で並列的にプライマリストレージサーバ１０へダウンロードされる状況になっており、それに伴い、格納ファイル５においても、各スレッド１４ａ〜１４ｄに対応する第１格納領域５ａ〜第４格納領域５ｄへの各データ１５０ａ〜１５０ｄの格納処理も並列的に行われる。次に、ダウンロードシステム１におけるセカンダリストレージサーバ２０について説明する。【００６１】
図６は、ダウンロードシステム１を構成するセカンダリストレージサーバ２０（サーバ装置に相当）の主要な内部構成を示している。本実施形態のセカンダリストレージサーバ２０にも、プライマリストレージサーバ１０と同様、一般的なサーバコンピュータを適用しており、全体的な制御及び各種処理を行うＭＰＵ２０ａに、各種デバイス等を内部接続線２０ｈで接続したものになっており、各種デバイス等には、通信モジュール２０ｂ、ＲＡＭ２０ｃ、ＲＯＭ２０ｄ、入力インタフェース２０ｅ、出力インタフェース２０ｆ、記憶部２０ｇ、及びセカンダリストレージ２１等がある。なお、セカンダリストレージ２１には、本発明においてダウンロードの対象となるファイル１５が記憶される。【００６２】
通信モジュール２０ｂ〜出力インタフェース２０ｆについては、図４に示すプライマリストレージサーバ１０の通信モジュール１０ｂ〜出力インタフェース１０ｆと同等なものであるので、説明は省略する（入力インタフェース２０ｅに接続されるキーボード２０ｉ及び出力インタフェース２０ｆに接続されるディスプレイ２０ｉも、プライマリストレージサーバ１０のものと同様）。【００６３】
また、セカンダリストレージサーバ２０の記憶部２０ｇは、サーバプログラムＰ５、及びストレージプログラムＰ６等を記憶している。サーバプログラムＰ５は、サーバコンピュータ用のオペレーティングシステムに応じた各種処理を規定したものであり、図４に示すプライマリストレージサーバ１０のサーバプログラムＰ１と基本的に同等な処理を規定し、この規定内容に基づいた処理をＭＰＵ２０ａが行うことで、セカンダリストレージサーバ２０はサーバコンピュータとしての機能を果たす。【００６４】
ストレージプログラムＰ６は、上述したプライマリストレージサーバ１０のＭＰＵ１０ａがエージェント１２として行う各種処理に対応して、セカンダリストレージサーバ２０のＭＰＵ２０ａが行う処理内容を規定したものであるが、このストレージプログラムＰ６は、一般的なストレージサーバの処理を規定したものになっている。【００６５】
すなわち、セカンダリストレージサーバ２０が通信モジュール２０ｂを通じて、ファイル１５の容量を問い合わせる旨の確認情報を受信すると、その確認情報に示されるファイル名等に基づき、問い合わせ対象のファイルをＭＰＵ２０ａがセカンダリストレージ２１に記憶されている中から特定すると共に、その特定したファイル（例えば、ファイル１５）のファイル容量を特定することを、ストレージプログラムＰ６は規定する。また、ストレージプログラムＰ６は、上記のように特定したファイル容量を通知する通知情報を、ＭＰＵ２０ａが生成し、その生成した通知情報を、上記の確認情報の送信元の装置へ送信する処理も規定している。【００６６】
このように、セカンダリストレージサーバ２０においては、プライマリストレージサーバ１０からの情報に基づき各種処理を行うだけであり、図３に示すように、ファイル１５の各領域１５ａ〜１５ｄを特定する処理もプライマリストレージサーバ１０で行われるだけであり、セカンダリストレージサーバ２０ではファイルを分割する領域を特定する処理を行わないので、セカンダリストレージサーバ２０の処理負担は、従来のファイル分割によるダウンロードに比べて低減している。【００６７】
さらに、ストレージプログラムＰ６は、ファイル中の領域を指定したデータの要求（呼び出し）に応じた要求情報を受信すると、ＭＰＵ２０ａが、その要求情報で指定されるファイルの領域に含まれるデータを、セカンダリストレージ２１から読み出して、要求情報の送信元の装置へ送信する処理を規定している。この場合、複数のスレッドを通じて、時分割処理で同時的（並列的）に、複数の要求情報を受信すると、ストレージプログラムＰ２は、上述したデータの読み出し及び送信を、各スレッドに基づいて、時分割で同時的に処理することを規定している。そのため、図２（ａ）、図２（ｂ）に示すように、計４つのスレッド１４ａ〜スレッド１４ｄが用いられる場合、スレッド数に従って、ダウンロード対象のファイル１５に含まれる各領域１５ａ〜１５ｄに含まれるデータ１５０ａ〜１５０ｄを同時的にプライマリストレージサーバ１０へ送信することになる。【００６８】
図７は、上述したような処理を行うプライマリストレージサーバ１０及びセカンダリストレージサーバ２０によって構成されるダウンローシステム１によるダウンロード方法の一連の処理手順を示した第１フローチャートである（なお、第１フローチャートの中で、プライマリストレージサーバ１０の側で行われる各処理は、プライマリストレージサーバ１０（通信装置）によるダウンロード方法の処理手順を示したものになる。以下同様）。この第１フローチャートに従って、以下にダウンロード方法を説明する。【００６９】
まず、プライマリストレージサーバ１０（ＭＰＵ１０ａによるエージェント１２）は、上述した「（１）ファイル容量確認機能」により、ダウンロード対象のファイルを記憶するセカンダリストレージサーバ２０へ、ファイル容量を確認するための確認情報を送信する（Ｓ１）。【００７０】
セカンダリストレージサーバ２０（ＭＰＵ２０ａ）は最初、確認情報を受信したか否かを判断する段階になっており（Ｓ１１）、受信していない場合（Ｓ１１：ＮＯ）、受信待ちの状態となり、一方、確認情報を受信した場合（Ｓ１１：ＹＥＳ）、確認対象のファイルを特定すると共に、その特定したファイルのファイル容量を検知し、その検知したファイル容量を通知するための通知情報を生成してプライマリストレージサーバ１０へ送信する（Ｓ１２）。【００７１】
プライマリストレージサーバ１０は、Ｓ１の段階の確認情報の送信に応じて、セカンダリストレージサーバ２０からの通知情報を受信したか否かを判断する段階になっており（Ｓ２）、受信していない場合（Ｓ２：ＮＯ）、受信待ちの状態となり、一方、通知情報を受信した場合（Ｓ２：ＹＥＳ）、上述した「（２）ファイル分割判断機能」により、受信した通知情報で通知されたファイル容量を、記憶部１０ｇで記憶する分割閾値ｆ１とを対比し、ファイル容量が分割閾値ｆ１を超過するか否かを判断する（Ｓ３）。【００７２】
ファイル容量が分割閾値ｆ１を超過しない場合（Ｓ３：ＮＯ）、ファイルを分割することなく、プライマリストレージサーバ１０は通常のダウンロード処理を行う（このダウンロード処理は、従来と同様であることから詳説しない）。また、ファイル容量が分割閾値ｆ１を超過した場合（Ｓ３：ＹＥＳ）、プライマリストレージサーバ１０は、上述した「（３）分割領域特定機能」により、ダウンロード対象のファイル１５を分割する領域１５ａ〜１５ｄ（図３参照）を特定すると共に（Ｓ４）、上述した「（４）スレッド生成機能」により、分割領域数に基づき第１スレッド１４ａ〜第４スレッド１４ｄ（図２（ａ）等参照）を生成する（Ｓ５）。【００７３】
そして、プライマリストレージサーバ１０は、上述した「（５）格納ファイル生成機能」により、ダウンロード対象のファイル１５の各領域１５ａ〜１５ｄに対応した各格納領域５ａ〜５ｄを有する格納ファイル５（図２（ａ）等参照）を生成する（Ｓ６）。なお、格納ファイル５の生成を行うＳ６の段階の処理と、上述したスレッド生成のＳ５の段階は、処理の順序を入れ替えることも可能である。【００７４】
それからプライマリストレージサーバ１０は図２（ａ）に示すように、上述した「（６）データ要求機能」により、ダウンロード対象のファイル１５における複数の各領域１５ａ〜１５ｄにそれぞれ含まれる複数のデータ１５０ａ〜１５０ｄを、同時的に呼び出すように、各スレッド１４ａ〜１４ｄを介し、データを要求する要求情報をセカンダリストレージサーバ２０へ送信する（Ｓ７）。なお、このＳ７の段階の処理により、要求情報は、スレッド１４ａ〜１４ｄの数（同時的処理可能数）に従って送信されることなり（同時的に送信される要求情報の数は、スレッド１４ａ〜１４ｄの数と同じ）、また、一度に呼び出されるデータの数もスレッド１４ａ〜１４ｄの数と同じになる。【００７５】
セカンダリストレージサーバ２０は、Ｓ１２の段階の通知情報の送信に応じて、プライマリストレージサーバ１０からの要求情報を受信したか否かを判断する段階になっており（Ｓ１３）、受信していない場合（Ｓ１３：ＮＯ）、受信待ちの状態となる。一方、要求情報を受信した場合（Ｓ１３：ＹＥＳ）、セカンダリストレージサーバ２０は、受信した各要求情報で指定されるダウンロード対象のファイル１５における複数の領域１５ａ〜１５ｄにそれぞれ含まれる各データ１５０ａ〜１５０ｄを読み出して、図２（ｂ）に示すように各スレッド１４ａ〜１４ｄを介し、同時的にプライマリストレージサーバ１０へ送信する処理を行う（Ｓ１４）。なお、一度に同時的に送信されるデータ１５０ａ〜１５０ｄの数は、各スレッド１４ａ〜１４ｄの数と同数になる（スレッド数に従った数になる）。また、セカンダリストレージサーバ２０は、各データ１５０ａ〜１５０ｄの送信が完了すると、ダウンロード方法における処理は終了することになる。【００７６】
プライマリストレージサーバ１０は、Ｓ７の段階の要求情報の送信に応じて、各スレッド１４ａ〜１４ｄを通じ、それぞれデータ１５０ａ〜１５０ｄを同時的に受信し、受信した各データ１５０ａ〜１５０ｄを、それらの各データ１５０ａ〜１５０ｄが含まれていたファイル１５の各領域１５ａ〜１５ｄに対応する格納ファイル５の各格納領域５ａ〜５ｄに、格納する処理を行う（Ｓ８）。この処理により、図２（ｂ）、（ｃ）に示すように、第１領域１５ａの第１データ１５０ａは第１格納領域５ａへ格納され、第２領域１５ｂの第２データ１５０ｂは第２格納領域５ｂへ格納され、第３領域１５ｃの第３データ１５０ｃは第３格納領域５ｃへ格納され、第４領域１５ｄの第４データ１５０ｄは第４格納領域５ｄへ格納されていく。【００７７】
それからプライマリストレージサーバ１０は、各データ１５０ａ〜１５０ｄの全データ容量が格納されたか否かを、通知情報で通知されたファイル容量と対比して判断し（Ｓ９）、全データ容量が格納されていない場合（Ｓ９：ＮＯ）、Ｓ８の段階へ戻り、引き続き、データの受信及び格納の処理を行い、また、各データ１５０ａ〜１５０ｄの全データ容量を格納した場合（Ｓ９：ＹＥＳ）、処理を終了する。【００７８】
各データ１５０ａ〜１５０ｄが格納された状態の格納ファイル５は、ファイルの中身が各データ１５０ａ〜１５０ｄにより構成されており、一方、ダウンロード対象のファイル５も、そのファイルの中身は各データ１５０ａ〜１５０ｄにより構成されているので、両者がファイルの中身が同じなので、各データ１５０ａ〜１５０ｄが格納された状態の格納ファイル５は、ダウンロード対象のファイル１５として用いることが可能となる（ダウンロード対象のファイル１５と同じものになる）。【００７９】
なお、上述した本発明に係るダウンロードでは、スレッド１４ａ〜１４ｄを介した処理は時間的に同時期に開始されて、大部分のダウンロード処理は同時期に行われるが、それぞれのスレッド１４ａ〜１４ｄの処理は独立して実行されるので、ダウンロード対象のデータの容量が同じであっても、ダウンロード処理時における実際の通信状況（混雑度）及び各スレッドに係る処理状況等の相違により、ダウンロード完了の時期は同時期にならずに、スレッドごとに異なることも生じることがある（ダウンロード完了の時期は、スレッド間で同期しないことがある）。【００８０】
上述したように、ダウンロード対象のファイルを記憶するセカンダリストレージサーバ２０（サーバ装置）側ではプライマリストレージサーバ１０からの指示に合わせた処理を行うだけであり、セカンダリストレージサーバ２０が主になってダウンロード対象のファイルの分割処理を行う必要が無いので、従来のダウンロード対象のファイルを分割するものに比べて、サーバ装置側の処理負担を低減できるメリットがある。なお、本発明は上述した実施形態に限定されるものではなく、様々な変形例が想定できる。【００８１】
図８（ａ）は変形例に係るメニュー画面１６を示しており、このメニュー画面１６は、上述した図４に示すプライマリストレージサーバ１０の記憶部１０ｇに記憶される分割サイズｆ２の設定値をデフォルト値から他の値に変更できるようにするためのものであり、変更する分割サイズに係る数値を受け付け可能にした処理プログラムＰ２の機能の一つとして具備される。プライマリストレージサーバ１０のシステム管理者が、キーボード１０ｉ等を用いて所定の操作を行うと、ディスプレイ１０ｊにメニュー画面１６が表示されるようになる。【００８２】
メニュー画面１６は、設定値入力欄１６ａと、選択可能なＯＫボタン１６ｂ及び戻りボタン１６ｃを有する。システム管理者がキーボード１０ｉ等を操作することで、設定値入力欄１６ａに所望の数値の入力を行った状態で、マウス等によりＯＫボタン１６ｂの選択操作を行うと、プライマリストレージサーバ１０（ＭＰＵ）１０ａは、設定値入力欄１６ａに入力された数値を受け付けたことになり、この受け付けた数値を記憶部１０ｇに分割サイズｆ２として記憶して設定し、その後の処理では、新たな設定値として、記憶部１０ｇに記憶されている分割サイズｆ２の数値が用いられる。【００８３】
図８（ｂ）（ｃ）は、分割サイズｆ２が上述したように変更されることで、分割される領域及び分割数が変わることを示している。ダウンロード対象のファイル１５は、上述した実施形態と同様に、ファイル容量が４００ＭＢであるとした場合で、分割サイズｆ２も最初は、上述した実施形態と同様に１００ＭＢであるとしたとき、ファイル１５は第１領域１５ａ〜第４領域１５ｄの計４つの領域に分割されるが（図３参照）、上記のメニュー画面１６の操作を経て、分割サイズｆ２が２００ＭＢに増加するように変更された場合、ファイル１５は、第１領域１５ａ′及び第２領域１５ｂ′の計２つの領域に分割されることなる（図８（ｂ）参照）。この場合、第１領域１５ａ′の開始アドレスは０ＭＢ、終了アドレス１９９ＭＢとなり、第２領域１５ｂ′の開始アドレスは２００ＭＢ、終了アドレス３９９ＭＢになる。【００８４】
また、上記のメニュー画面１６の操作を経て、分割サイズｆ２がデフォルト値の１００ＭＢから５０ＭＢに変更された場合、４００ＭＢのファイル容量のファイル１５は、図８（ｃ）に示すように、第１領域１５ａ″〜第８領域１５ｈ″の計８つの領域に分割される。この場合、第１領域１５ａ″の開始アドレスは０ＭＢ、終了アドレス４９ＭＢとなり、以下、第２領域１５ｂ″の開始アドレスは５０ＭＢ、終了アドレス９９ＭＢ、第３領域１５ｃ″の開始アドレスは１００ＭＢ、終了アドレス１４９ＭＢ、第４領域１５ｄ″の開始アドレスは１５０ＭＢ、終了アドレス１９９ＭＢ、第５領域１５ｅ″の開始アドレスは２００ＭＢ、終了アドレス２４９ＭＢ、第６領域１５ｆ″の開始アドレスは２５０ＭＢ、終了アドレス２９９ＭＢ、第７領域１５ｇ″の開始アドレスは３００ＭＢ、終了アドレス３４９ＭＢ、第８領域１５ｈ″の開始アドレスは３５０ＭＢ、終了アドレス３９９ＭＢとなる。【００８５】
このようにメニュー画面１６で、システム管理者が分割サイズの数値を適宜変更することで、各サーバ１０、２０の処理性能、通信仕様、又は変化する通信環境等に応じて、適切な分割サイズを適宜設定できるようになり、柔軟なダウンロード環境を確保できるようになる。なお、設定値の変更は、分割サイズｆ２に限定されるものではなく、プライマリストレージサーバ１０の記憶部１０ｇに記憶される分割閾値ｆ１の数値についても、上述したメニュー画面１６と同等なメニュー画面により、システム管理者が適宜変更できるようにすることも可能である。【００８６】
また、ファイルの分割領域数と生成可能なスレッド上限数との関係で、ファイルの分割領域数がスレッド上限数（同時的処理可能数）を上回る場合、ダウンロード処理を複数回繰り返すスレッドが生じることになる。【００８７】
図９（ａ）は、ダウンロード対象のファイル３５が、計八つの第１領域３５ａ〜第８領域３５ｈに分割される一方、生成されるスレッド数が計四つの場合のダウンロード処理の概要を示す。なお、この場合、プライマリストレージサーバ１０側で生成される格納ファイル２５は、ダウンロード対象のファイル３５の分割領域数と同数の第１格納領域２５ａ〜第８格納領域２５ｈを有するものとなっている。このような場合のダウンロード処理（ダウンロード方法）は、スレッド数が四つに対して、ファイル３５の領域数が八つであることから、スレッドごとに計２回の同時的ダウンロード処理を行うことになる。【００８８】
すなわち、図９（ｂ）のタイムチャートにおける一回目の同時的ダウンロード処理で、ファイル３５の第１領域３５ａ〜第４領域３５ｄのそれぞれに含まれるデータ１４０ａ〜１４０ｄが、計四つの各スレッド１４ａ〜１４ｄに従って、同時的に時分割でセカンダリストレージサーバ２０からプライマリストレージサーバ１０へダウンロードされ、ダウンロードされたデータ１４０ａ〜１４０ｄは、格納ファイル２５の第１格納領域２５ａ〜第４格納領域２５ｄに格納される。【００８９】
この一回目の同時的ダウンロード処理が終了すると、次に、図９（ｂ）のタイムチャートにおける二回目の同時的ダウンロード処理で、ファイル３５の第５領域３５ｅ〜第８領域３５ｈのそれぞれに含まれるデータ１４０ｅ〜１４０ｈが、計四つの各スレッド１４ａ〜１４ｄに従って、同時的に時分割でセカンダリストレージサーバ２０からプライマリストレージサーバ１０へダウンロードされ、ダウンロードされたデータ１４０ａ〜１４０ｄは、格納ファイル２５の第５格納領域２５ｅ〜第８格納領域２５ｈに格納されることになる。これにより、ファイル３５の各領域３５ａ〜３５ｈに含まれるデータ１４０ａ〜１４０ｈの全てが、プライマリストレージサーバ１０へダウンロードされる。【００９０】
図１０の第２フローチャートは、上述した図９（ａ）（ｂ）に示すように、ダウンロード対象のファイルの領域の分割数が、生成されるスレッド数を上回る場合の処理手順（ダウンロード方法の処理内容）を示している。この第２フローチャートにおけるプライマリストレージサーバ１０のＳ２１〜Ｓ２６の処理は、図７の第１フローチャートにおけるＳ１〜Ｓ６の処理と基本的に同内容になっており、また、第２フローチャートにおけるセカンダリストレージサーバ２０のＳ４１、Ｓ４２の処理は、図７の第１フローチャートにおけるＳ１１、１２の処理と基本的に同内容になっている。図１０の第２フローチャートのＳ２７の段階で、プライマリストレージサーバ１０は、図９（ａ）に示すような場合、スレッド１４ａ〜１４ｄごとに、先ずはファイル３５における第１領域３５ａ〜第４領域３５ｄにそれぞれ含まれるデータ１４０ａ〜１４０ｄを要求する要求情報をセカンダリストレージサーバ２０へ送信することになる。【００９１】
セカンダリストレージサーバ２０は、要求情報を受信したか否かを判断する段階で（Ｓ４３）、要求情報を受信していない場合（Ｓ４３：ＮＯ）、受信待ちの状態となり、一方、要求情報を受信した場合（Ｓ４３：ＹＥＳ）、受信した各要求情報で指定されるファイル３５における第１領域３５ａ〜第４領域３５ｄにそれぞれ含まれるデータ１４０ａ〜１４０ｄを、スレッド１４ａ〜１４ｄを通じて、同時的にプライマリストレージサーバ１０へ送信する処理を行う（Ｓ４４）。【００９２】
プライマリストレージサーバ１０は、各スレッド１４ａ〜１４ｄを通じて、データ１４０ａ〜１４０ｄを同時的に受信し、受信した各データ１４０ａ〜１４０ｄを、それらの各データ１４０ａ〜１４０ｄが含まれていたファイル３５の第１領域３５ａ〜第４領域３５ｄに対応する格納ファイル２５の第１格納領域２５ａ〜第４格納領域２５ｄに格納する処理を行う（Ｓ２８）。それからプライマリストレージサーバ１０は、Ｓ２７の段階で送信した要求情報で呼び出した分のデータ１４０ａ〜１４０ｄの全データ容量が格納されたか否かを、第１格納領域２５ａ〜第４格納領域２５ｄの格納状況から判断し（Ｓ２９）、全データ容量が格納されていない場合（Ｓ２９：ＮＯ）、Ｓ２８の段階へ戻り、データの受信及び格納の処理を継続する。【００９３】
また、各データ１４０ａ〜１４０ｄの全データ容量を格納した場合（Ｓ２９：ＹＥＳ）、プライマリストレージサーバ１０は、ダウンロード対象のファイル３５の全データを受信したか否かを、格納ファイル２５においてデータが格納されていない格納領域の有無に基づき判断する（Ｓ３０）。この段階では、格納ファイル２５の第１格納領域２５ａ〜第４格納領域２５ｄにはデータが格納されるが、第５格納領域２５ｅ〜第６格納領域２５ｈにはデータが格納されていないことから、データの格納されていない格納領域が残る状態となっており、それにより、ファイルの全データが受信されていないと、プライマリストレージサーバ１０は判断し（Ｓ３０：ＮＯ）、処理をＳ２７の段階に戻す。【００９４】
戻ったＳ２７の段階で、プライマリストレージサーバ１０は、各スレッド１４ａ〜１４ｄごとに、ファイル３５における残りの第５領域３５ｅ〜第８領域３５ｈにそれぞれ含まれるデータ１４０ｅ〜１４０ｈを要求する要求情報をセカンダリストレージサーバ２０へ送信する。セカンダリストレージサーバ２０は上述した場合と同様に、要求情報を受信したか否かを判断する段階で（Ｓ４３）、要求情報を受信していない場合（Ｓ４３：ＮＯ）、受信待ちの状態となり、要求情報を受信した場合（Ｓ４３：ＹＥＳ）、受信した各要求情報で指定されるファイル３５における第５領域３５ｅ〜第８領域３５ｈにそれぞれ含まれるデータ１４０ｅ〜１４０ｈを、スレッド１４ａ〜１４ｄを通じて、同時的にプライマリストレージサーバ１０へ送信する処理を行う（Ｓ４４）。【００９５】
プライマリストレージサーバ１０は、スレッド１４ａ〜１４ｄを通じて、データ１４０ｅ〜１４０ｈを同時的に受信すると、受信した各データ１４０ｅ〜１４０ｈを、それらの各データ１４０ｅ〜１４０ｈが含まれていたファイル３５の第５領域３５ｅ〜第８領域３５ｈに対応する格納ファイル２５の第５格納領域２５ｅ〜第８格納領域２５ｈに格納する処理を行う（Ｓ２８）。それからプライマリストレージサーバ１０は、直近のＳ２７の段階で送信した要求情報で呼び出した分のデータ１４０ｅ〜１４０ｈの全データ容量が格納されたか否かを、第５格納領域２５ｅ〜第８格納領域２５ｈの格納状況から判断し（Ｓ２９）、全データ容量が格納されていない場合（Ｓ２９：ＮＯ）、Ｓ２８の段階へ戻り、データの受信及び格納の処理を継続する。【００９６】
また、各データ１４０ｅ〜１４０ｈの全データ容量を格納した場合（Ｓ２９：ＹＥＳ）、プライマリストレージサーバ１０は、ファイル３５の全データを受信したか否かを再度、判断し（Ｓ３０）。この段階では、格納ファイル２５の第１格納領域２５ａ〜第８格納領域２５ｈの全てにデータが格納されているので、ファイル３５の全データが受信されたと判断する（Ｓ３０：ＹＥＳ）。なお、上述した第２フローチャートの説明において、１回目のＳ２７からＳ４３、Ｓ４４、Ｓ２８、Ｓ２９、Ｓ３０へ至る処理が、図９（ｂ）のタイムチャートにおける一回目の同時的ダウンロード処理に該当し、２回目のＳ２７からＳ４３、Ｓ４４、Ｓ２８、Ｓ２９、Ｓ３０へ至る処理が、図９（ｂ）のタイムチャートにおける二回目の同時的ダウンロード処理に該当する。【００９７】
このように第２フローチャートに示すように、要求情報の送信処理を複数回行う（繰り返す）ようにすれば、ダウンロード対象のファイルの領域の分割数が、生成されるスレッド数を上回るときでも本発明に係るダウンロード方法を適用できる。なお、ダウンロード対象のファイルの領域の分割数が、生成されるスレッド数を上回る例は、図９（ａ）に示す場合（分割領域数が８でスレッド数が４）に限定されるものではなく、他の場合（例えば、分割領域数が１０でスレッド数が４の場合、分割領域数が５でスレッド数が２の場合等）でも同様に、第２フローチャートに基づき処理を行える。【００９８】
例えば、ダウンロード対象の分割領域数が６で、生成するスレッド数が４の場合、４つのスレッドの中の２つは、２回の要求情報を送信して、各要求情報に応じた異なる領域に含まれる２つのデータを受信する一方、４つのスレッドの中の残りの２つは、１回の要求情報を送信して、その要求情報に応じた１つのデータを受信することになる。このように、分割領域数とスレッド数の関係によって、複数の要求情報を送信するスレッドと、１回の要求情報を送信するスレッドが生じ、スレッド間で要求情報の送信回数（及びデータの受信回数）に違いが生じることがある。なお、分割領域数とスレッド数の関係によっては、同時的ダウロード処理の繰り返し数が、２回を超えるスレッドが生じることもある（分割領域数が１０でスレッド数が４の場合など）。また、ダウンロード対象の分割領域数が８で、生成するスレッド数が４の場合、４つのスレッドのそれぞれは、２回の要求情報を送信することになる（図９（ａ）参照）。【００９９】
そして、上述した図１０に示す第２フローチャートにおけるダウンロードでも、それぞれの各スレッド１４ａ〜１４ｄの処理は独立して実行されるので、１回目の同時的ダウンロード処理の完了時期が同時期にならないこともあることから、Ｓ２７の段階で２回目の要求情報を送信する時期は、それぞれのスレッド１４ａ〜１４ｄで、１回目のダウンロード処理の完了に伴い、随時、２回目の要求情報を送信するようにしてもよい。この場合、２回目の要求情報の送信段階（Ｓ２７）へ進むための判断段階（Ｓ３０）における全データ受信格納の内容は、それぞれのスレッド毎に判断することになる。【０１００】
すなわち、それぞれのスレッド１４ａ〜１４ｄに対応する各格納領域の中に、データが格納されていない格納領域が残るか否かを判断し、データが格納されていない格納領域が残るときは（Ｓ３０：ＮＯ）、Ｓ２７へ行き、データが格納されていない格納領域が残らないときは（Ｓ３０：ＹＥＳ）、そのスレッドにおけるダウンロード処理を終了する。具体的には、第１スレッド１４ａにおいて、その第１スレッド１４ａが対応するのは第１格納領域２５ａ及び第５格納領域２５ｅなので、Ｓ２９の段階で、第１スレッド１４ａにおいて第１格納領域２５ａにデータ１４０ａが格納されると（Ｓ２９：ＹＥＳ）、次に、Ｓ３０で、残りの第５格納領域２５ｅにデータ１４０ｅが格納されているか否かを判断し、データ１４０ｅが格納されていなければ（Ｓ３０：ＮＯ）、Ｓ２７へ戻って、２回目の要求情報を送信することになり、データ１４０ｅが格納されると（Ｓ３０：ＹＥＳ）、第１スレッド１４ａでのダウンロード処理が終了となる。【０１０１】
上記の処理は他のスレッドでも同様となり、第２スレッド１４ｂでは、第２格納領域２５ｂにデータ１４０ｂが格納されると（Ｓ２９：ＹＥＳ）、次にＳ３０で、残りの第６格納領域２５ｆにデータ１４０ｆが格納されているかが判断され、データ１４０ｆが格納されていなければ（Ｓ３０：ＮＯ）、Ｓ２７へ戻って、２回目の要求情報を送信し、データ１４０ｆが格納されると（Ｓ３０：ＹＥＳ）、第２スレッド１４ｂでのダウンロード処理が終了となる。第３スレッド１４ｃでも、第３格納領域２５ｃにデータ１４０ｃが格納されると（Ｓ２９：ＹＥＳ）、Ｓ３０で、残りの第７格納領域２５ｇにデータ１４０ｇが格納されているかが判断され、データ１４０ｇが格納されていなければ（Ｓ３０：ＮＯ）、Ｓ２７へ戻り、２回目の要求情報を送信し、データ１４０ｇが格納されると（Ｓ３０：ＹＥＳ）、第３スレッド１４ｃでのダウンロード処理が終了となる。【０１０２】
そして、第４スレッド１４ｄでも、第４格納領域２５ｄにデータ１４０ｄが格納されると（Ｓ２９：ＹＥＳ）、Ｓ３０で、残りの第８格納領域２５ｈにデータ１４０ｈが格納されているかが判断され、データ１４０ｈが格納されていなければ（Ｓ３０：ＮＯ）、Ｓ２７へ戻って２回目の要求情報を送信し、データ１４０ｈが格納されていれば（Ｓ３０：ＹＥＳ）、第４スレッド１４ｃでのダウンロード処理が終了となる。このような処理では、各スレッド１４ａ〜１４ｄでのダウロード処理の終了時期に違いが生じるかもしれないが、他のスレッドの処理を待つ必要がないので各スレッド単位での処理時間の短縮化を図れる。【０１０３】
また、上述した説明では、第２フローチャートのＳ３０の段階で、データの格納されていない格納領域が残るか否かを判断して、Ｓ２７の２回目以降の要求情報の送信を行うようにしていたが、Ｓ３０の段階の判断は、要求情報の送信回数をカウントしておき、必要回数の要求情報を送信したか否かで、Ｓ２７の段階へ戻るか否かを決めるようにしてもよい。すなわち、図９のＳ２４の段階でファイルの分割領域の特定により、ファイルの分割数が判明するので、スレッドごとに必要な要求情報の送信回数が判明することになる。そのため、Ｓ２７の段階で、各スレッドで要求情報を送信すると、その送信回数をスレッドごとに記憶しておき、Ｓ３０の段階では、記憶している要求情報の送信回数が、必要な送信回数に達しているかを判断し、達していなければ、Ｓ２７へ戻り、達していれば、そのスレッドにおけるダウンロード処理を終了するようにしてもよい。【０１０４】
さらに、上述した処理では、図９（ａ）に示すように、ファイルの領域分割数がスレッド数（同時的処理可能数）を上回る場合、スレッドごとに要求情報を複数回、送信するようにしていたが、一回の要求情報の送信で図９（ｂ）のタイムチャートに示す処理状況を指示できる場合は、要求情報の送信処理を複数回行わないで、基本的に図７に示す第１フローチャートの流れで、ダウンロード対象のファイルの分割領域数が、生成可能なスレッド上限数を上回る場合のダウンロード処理にも対応できるようになる。この場合、ダウンロード対象のファイルにおいて、異なる複数の領域に含まれるデータを要求する要求情報を送信するスレッドが生じることになる。【０１０５】
すなわち、図９（ａ）に示すようにファイル３５の分割領域数が８で、スレッド数が４の場合を、図７の第１フローチャートの処理手順で進めるときは、Ｓ７の要求情報送信の段階で、第１スレッド１４ａを介して送信する要求情報は、一回目の同時的ダウンロードで第１領域３５ａに含まれるデータ１４０ａを要求すると共に、二回目の同時的ダウンロードで第５領域３５ｅに含まれるデータ１４０ｅを要求する指示を含み、以下、第２スレッド１４ｂを介して送信する要求情報は、一回目の同時的ダウンロードで第２領域３５ｂに含まれるデータ１４０ｂを呼び出すと共に、二回目の同時的ダウンロードで第６領域３５ｆに含まれるデータ１４０ｆを呼び出す指示を含み、第３スレッド１４ｃを介して送信する要求情報は、一回目の同時的ダウンロードで第３領域３５ｃに含まれるデータ１４０ｃを呼び出すと共に、二回目の同時的ダウンロードで第７領域３５ｇに含まれるデータ１４０ｇを呼び出す指示を含み、第４スレッド１４ｄを介して送信する要求情報は、一回目の同時的ダウンロードで第４領域３５ｄに含まれるデータ１４０ｄを呼び出すと共に、二回目の同時的ダウンロードで第８領域３５ｈに含まれるデータ１４０ｈを呼び出す指示を含むことになる。【０１０６】
そして、セカンダリストレージサーバ２０はＳ１４の段階で、先ず、一回目の同時的ダウンロードによるデータ送信を行うことになり、第１スレッド１４ａで第１領域３５ａに含まれるデータ１４０ａを送信し、第２スレッド１４ｂで第２領域３５ｂに含まれるデータ１４０ｂを送信し、第３スレッド１４ｃで第３領域３５ｃに含まれるデータ１４０ｃを送信し、第４スレッド１４ｄで第４領域３５ｄに含まれるデータ１４０ｄを送信する。【０１０７】
プライマリストレージサーバ１０はＳ８の段階で、セカンダリストレージサーバ２０から送信されてくるデータ１４０ａを格納ファイル２５の第１格納領域２５ａに格納し、以下、データ１４０ｂを第２格納領域２５ｂに格納し、データ１４０ｃを第３格納領域２５ｃに格納し、データ１４０ｄを第４格納領域２５ｄに格納する。それから、Ｓ９の段階で、プライマリストレージサーバ１０は、ダウンロード対象のファイル３５の全データ容量が格納されたか否かを判断し、全てのデータが格納されていなければ（Ｓ９：ＮＯ）、引き続きＳ８の段階で、データの受信及び格納を行う。【０１０８】
セカンダリストレージサーバ２０では、一回目の同時的ダウンロードが終了すれば、Ｓ７の段階で送られた要求情報の指示内容に基づき、Ｓ１４の段階で、二回目の同時的ダウンロードとして、第１スレッド１４ａで第５領域３５ｅに含まれるデータ１４０ｅを送信し、第２スレッド１４ｂで第６領域３５ｆに含まれるデータ１４０ｆを送信し、第３スレッド１４ｃで第７領域３５ｇに含まれるデータ１４０ｇを送信し、第４スレッド１４ｄで第８領域３５ｈに含まれるデータ１４０ｈを送信することになる。【０１０９】
プライマリストレージサーバ１０は、二回目の同時的ダウンロードにおけるＳ８の段階で、送信されてくるデータ１４０ｅを格納ファイル２５の第５格納領域２５ｅに格納し、以下、データ１４０ｆを第６格納領域２５ｆに格納し、データ１４０ｇを第７格納領域２５ｇに格納し、データ１４０ｈを第８格納領域２５ｈに格納し、それから、Ｓ９の段階で、ダウンロード対象のファイル３５の全データ容量が格納されたか否かを判断し、二回目の同時的ダウンロードで格納ファイル２５の空きの格納領域が無くなるので、全データ容量が格納されたと判断し（Ｓ９：ＹＥＳ）、ダウンロード処理が終了することになる。【０１１０】
なお、このように図７の第１フローチャートに従って、同時的ダウンロード処理を繰り返す場合でも、ファイル分割数とスレッド数（同時的処理可能数）との関係によっては、異なる複数の領域に含まれるデータを要求するスレッドと、単一の領域に含まれるデータを要求するスレッドとが生じることもある。例えば、ダウンロード対象の分割領域数が６で、生成するスレッド数が４の場合、４つのスレッドの中の２つは、異なる２つの領域に含まれる要求情報を送信する一方、４つのスレッドの中の残りの２つは、単一の領域に含まれる要求情報を送信するに留まる。このように、分割領域数とスレッド数の関係によって、送信する一つの要求情報で要求するデータの数にスレッド間で違いが生じることがある。【０１１１】
さらに、このように図７の第１フローチャートに従って、同時的ダウンロード処理を繰り返す場合でも、それぞれの各スレッド１４ａ〜１４ｄの処理は独立して実行されることから、１回目の同時的ダウンロード処理の完了時期が各スレッド間で同時期にならないこともあるので、このような場合は、同時的ダウンロード処理の完了に伴い、次のダウンロード処理を実行して、順次連続的にダウンロード処理を進行することが好適である。この場合は、セカンダリストレージサーバ２０側が、受信した要求情報で指定された複数の領域に含まれるデータを順次、プライマリストレージサーバ１０へ送信することになり、要求情報で指定されたある領域のデータの送信が完了すると、その要求情報で指定される次の領域のデータの送信を開始する。このようにスレッドごとに順次、ダウンロード処理を連続的に進行することで、各スレッド間でダウンロード処理の完了時期が同時期にならないこともあるが、全体としては処理負荷の軽減及び処理時間の短縮化を図れるメリットが生じる。【０１１２】
なお、上述した説明では、ファイルのダウンロードを、図１に示すプライマリストレージサーバ１０及びセカンダリストレージサーバ２０のサーバ装置間で行うようにしていたが、本発明の対象は、サーバ装置間のダウンロードに限定されるものではなく、例えば、図１におけるプライマリストレージサーバ１０で記憶されるファイルを、ユーザ端末４０にダウンロードする場合にも本発明を適用することが可能である。この場合、プライマリストレージサーバ１０（サーバ装置に相当）及びユーザ端末４０（通信装置に装置）で、本発明に係るダウンロードシステムを構成することになる。【０１１３】
図１１は、ユーザ端末４０の主要構成を示したブロック図であるユーザ端末４０としては、プライマリストレージサーバ１０と通信できる通信機能、及びファイルを扱う処理等が可能な通信端末装置を適用でき、具体的には、通信機能を具備したパーソナルコンピュータ、タブレット、スマートフォン等をユーザ端末４０として利用できる。図１１は、ユーザ端末４０としてパーソナルコンピュータを用いた場合の主要構成を示しているが、ユーザ端末４０としてタブレット、スマートフォン等を用いた場合でも基本的な構成は図１１と同等になる。【０１１４】
ユーザ端末４０は、全体的な制御及び各種処理を行うＣＰＵ４０ａに、各種デバイス等を内部接続線４０ｈで接続したものになっており、各種デバイス等には、通信モジュール４０ｂ、ＲＡＭ４０ｃ、ＲＯＭ４０ｄ、入力インタフェース４０ｅ、出力インタフェース４０ｆ、及び記憶部４０ｇ等がある。【０１１５】
通信モジュール４０ｂは、ネットワークとの接続モジュールに相当する通信デバイスであり、所要の通信規格に応じたものであり（例えばＬＡＮモジュール）、所要の通信機器（図示は省略。例えばルータ等が該当）を介してネットワークと接続することで、プライマリストレージサーバ１０との通信を可能にしている。【０１１６】
ＲＡＭ４０ｃは、ＣＰＵ４０ａの処理に伴う内容、ファイル等を一時的に記憶するものであり、ＲＯＭ４０ｄは、ＣＰＵ４０ａの基本的な処理内容を規定したプログラム等を記憶するものである。入力インタフェース４０ｅは、ユーザからの操作指示等を受け付けるキーボード４０ｉ、マウス等が接続されるものであり、ユーザから受け付けた操作指示等をＣＰＵ４０ａへ伝える。出力インタフェース４０ｆは、ディスプレイ４０ｊが接続されるものであり、ＣＰＵ４０ａの処理に伴う内容をディスプレイ４０ｊへ出力し、ユーザが操作内容及びユーザ端末４０の処理内容等を視覚的に確認できるようにしている。【０１１７】
記憶部４０ｇは、ＨＤＤ（Hard Disc Drive）又はＳＳＤ（Solid State Drive）等により構成される記憶デバイスであり、基本プログラムＰ２０、端末処理プログラムＰ２１等のプログラムと、分割閾値ｆ１及び分割サイズｆ２等を記憶する。基本プログラムＰ２０は、ユーザ端末４０をコンピュータとして機能させるためにＣＰＵ４０ａが行う基本的な処理を規定したものであり、この基本プログラムＰ２０には、ファイル管理（ファイルのコピー、移動、変更等）を行うための機能、ウェブサイト等を閲覧するためのブラウザ機能等を含んでいるものとする。【０１１８】
端末処理プログラムＰ２１は、図４に示す処理プログラムＰ２が規定する内容と同じ内容を規定したものである。この端末処理プログラムＰ２１は、アプリケーションプログラムとして、通信によるダウンロードを通じて、ユーザ端末４０にインストールする他に、記憶媒体（光ディスク等）を介して、ユーザ端末４０にインストールすることが可能であり、ＣＰＵ４０ａを、図５に示すエージェント１２として機能させる制御処理をプログラミングした内容になっている。なお、この端末処理プログラムＰ２１の規定により、ＣＰＵ４０ａがエージェントの格納ファイル生成機能として生成する格納ファイル４５は記憶部４０ｇに記憶されることになる（図１１参照）。また、記憶部４０ｇに記憶される分割閾値ｆ１及び分割サイズｆ２も、図４に示すプライマリストレージサーバ１０に記憶されるものと同様になっている。【０１１９】
一方、ユーザ端末４０とダウンロードシステムを構成する場合のプライマリストレージサーバ１０は、ハード的な構成は図４に示すものと同様になるが、記憶部１０ｇに記憶する中身は、図６のセカンダリストレージサーバ２０と同様にサーバプログラムＰ５及びストレージプログラムＰ６を記憶すると共に、プライマリストレージ１１には、ダウンロード対象のファイル（例えば、ファイル１５）を記憶することになる。【０１２０】
上述した構成のユーザ端末４０及びプライマリストレージサーバ１０でダウンロードシステムを構成することにより、プライマリストレージサーバ１０に記憶されるファイル（例えば、ファイル１５）を、上述したダウンロードシステム１の場合と同様な処理により、ユーザ端末４０へダウンロードできるようになる。なお、ユーザ端末４０及びプライマリストレージサーバ１０で構成されるダウンロードシステムにおいても、上述した各種変形例を同様に適用することが可能である。
【実施例２】
【０１２１】
図１２は、本発明の第２実施形態に係るダウンロードシステム５０の全体的な概要を示したものである。第２実施形態のダウンロードシステム５０は、ダミーファイル５５を利用することが特徴になっており、ダミーファイル５５が関連する以外のものについては、基本的に図１に示す第１実施形態のダウンロードシステム１おけるハード構成と同等であると共に、各種処理（ファイル領域の分割処理、及び分割したデータの同時的ダウンロード処理等）も第１実施形態と同等であり、そのため、第２実施形態においては、第１実施形態と同等なものについては、第１実施形態と同じ符号を用いて説明を行う。【０１２２】
第２実施形態に係るダウンロードシステム５０も、プライマリストレージサーバ１０（通信装置に相当）及びセカンダリストレージサーバ２０（サーバ装置に相当）で構成されており、第２実施形態の特徴としては、プライマリストレージサーバ１０のプライマリストレージ１１にダミーファイル５５が記憶され、セカンダリストレージサーバ２０のセカンダリストレージ２１には、ダミーファイル５５に対応した実ファイル６５が記憶されており、この実ファイル６５がダウンロード対象のファイルになる。【０１２３】
ダミーファイルとは、スタブファイルとも称されるファイルであり、元のファイルの代役を果たすように、外部のクライアント端末（例えば、図１に示すユーザ端末４０）に対して元のファイルとして提示されるようになっており、自身がダミーファイルであることを識別できる情報、及び元のファイル（実ファイル６５に相当）をセカンダリストレージ２１から取得（ダウンロード）するときに参照される参照情報を含んでいる。ダミーファイルに含まれる参照情報は、ダミーファイルに応じた実ファイル６５の記憶先を示す情報、その実ファイル６５のファイル容量を示す情報等を有したものになっている。【０１２４】
ダミーファイルのファイル容量は、元のファイル（実ファイル６５）に比べて小さくなっており、それにより、プライマリストレージ１１の空き容量を確保するのに貢献できる。ダミーファイルに置き換えられる実ファイルの例としては、各種アプリケーションソフトにより生成される文書データファイル、表計算データファイル、画像データファイル等があり、特に詳細な写真等の画像データファイルはデータ量が一般的に大きいので、アーカイブ処理によりデータ量の小さいダミーファイルに置換する意義は大きい。【０１２５】
プライマリストレージサーバ１０が、実ファイル６５をダウンロードする処理を開始するトリガーとなるものとしては、外部のユーザ端末４０から、ダミーファイル５５に応じた実ファイル６５へのアクセスを受け付けたこと等が挙げられる。第２実施形態においても、処理プログラムＰ２の規定内容により、ＭＰＵ１０ａがエージェントとして機能することになるが、第２実施形態では、プライマリストレージ１１にダミーファイル５５が存在することから、第１実施形態のように格納ファイル５を生成するのではなく、予め存在するダミーファイル５５を格納ファイル的に利用している。また、ダミーファイル５５は、ダウンロード対象の実ファイル６５のファイル容量を示す情報を含んでいるので、第１実施形態のエージェント１２における「（１）ファイル容量確認機能」は不要になっている。以下、第２実施形態のＣＰＵ４０ａのエージェント機能を、第１実施形態のエージェント１２（図５参照）に基づき説明する。【０１２６】
第２実施形態のエージェントは、第１実施形態の「（２）ファイル分割判断機能」と同様に、ダミーファイル５５に含まれる実ファイル６５のファイル容量と、記憶部１０ｇに記憶される分割閾値ｆ１とを対比して、実ファイル６５の分割の有無を判断する機能を有する。また、第２実施形態のエージェントは、第１実施形態の「（３）分割領域特定機能」と同様に、ダミーファイル５５に含まれる実ファイル６５のファイル容量に基づき、実ファイル６５を分割する領域を特定する処理機能を有する。【０１２７】
さらに、第２実施形態のエージェントは、第１実施形態の「（４）スレッド生成機能」と同様に、ダウンロード対象のファイルについて特定した各領域に含まれる各データを、時分割（タイムシェアリング）で同時並行的にダウンロードできるようにするために、スレッドを生成する機能を有する。さらにまた、第２実施形態のエージェントは、第２実施形態の特徴的な機能（ダミーファイル拡張機能）として、ダミーファイル５５を、実ファイル６５のファイル容量と同じ容量まで拡張すると共に、分割領域特定機能により、実ファイル６５を分割した領域にそれぞれ対応した複数の格納領域を形成する処理機能を有する。【０１２８】
そして、第２実施形態のエージェントは、第１実施形態の「（６）データ要求機能」と同様に、生成された各スレッドを介し、実ファイル６５において、それぞれに対応した各領域に含まれるデータの同時的処理可能数に従ってダウンロードできるようにするため、データの要求を行う要求情報をセカンダリストレージサーバ２０へ送信する機能を有する。最後に、第２実施形態のエージェントは、第１実施形態の「（７）データ格納機能」と同様に、セカンダリストレージサーバ２０から、各領域のデータがダウンロードされてくると、それらのデータを受信し、受信した各データを、それらの各データが含まれていた実ファイル６５の各領域に対応するダミーファイル５５の各格納領域にそれぞれ格納する機能を有する。【０１２９】
一方、セカンダリストレージサーバ２０の方の処理は、通知情報の送信が省略される以外、ほぼ第１実施形態と同様になる。すなわち、セカンダリストレージサーバ２０が、実ファイル中の領域を指定したデータの呼び出しに応じた要求情報を受信すると、ＭＰＵ２０ａが、その要求情報で指定される実ファイルの領域に含まれるデータを、セカンダリストレージ２１から読み出して、要求情報の送信元の装置へ送信する。このときも、複数のスレッドを通じて、時分割処理で同時的（並列的）に、複数の要求情報を受信すると、セカンダリストレージサーバ２０は、上述したデータの読み出し及び送信を、スレッドに従って、時分割で同時的に処理することになる。【０１３０】
図１３は、上述した第２実施形態のエージェントの各機能により得られた状態を示し、セカンダリストレージサーバ２０に記憶される実ファイル６５が、第１領域６５ａ〜第４領域６５ｄに分割されることになり、また、プライマリストレージサーバ１０ではダミーファイル６５が、第１格納領域５５ａ〜第４格納領域５５ｄを含むように拡張されており、さらに、両サーバ間においては同時的処理可能数に応じた計４つの第１スレッド７４ａ〜第４スレッド７４ｄが生成（確立）された状態になっている。【０１３１】
図１４は、第２実施形態に係るダウンロードシステム５０のダウンロード方法における一連の処理手順を示した第３フローチャートであり、図７の第１実施形態の第１フローチャートに準じたものであり、この第３フローチャートでは、実ファイル６５のダウンロードを行うことが決定された段階から処理が始まる内容になっている。【０１３２】
まず、プライマリストレージサーバ１０（ＭＰＵ１０ａによるエージェント）は、ダミーファイル５５の参照情報に含まれる実ファイル６５のファイル容量を、記憶部１０ｇで記憶する分割閾値ｆ１と対比し、ファイル容量が分割閾値ｆ１を超過するか否かを判断する（Ｓ５０）。ファイル容量が分割閾値ｆ１を超過しない場合（Ｓ５０：ＮＯ）、プライマリストレージサーバ１０は通常のダウンロード処理を行い、一方、ファイル容量が分割閾値ｆ１を超過した場合（Ｓ５０：ＹＥＳ）、プライマリストレージサーバ１０は、実ファイル６５を分割する領域６５ａ〜６５ｄ（図１３参照）を特定すると共に（Ｓ５１）、ＣＰＵ４０ａの処理能力及びＲＡＭ１０ｃの容量等に応じた同時的処理可能数に従って、計４つの第１スレッド７４ａ〜第４スレッド７４ｄ（図１３参照）を生成する（Ｓ５２）。【０１３３】
そして、プライマリストレージサーバ１０は、参照情報の実ファイル６５のファイル容量に従ってダミーファイル５５を拡張して、実ファイル５５の各領域５５ａ〜５５ｄに対応した格納領域５５ａ〜５５ｄを生成する（Ｓ５３）。それからプライマリストレージサーバ１０は、実ファイル５５における複数の各領域５５ａ〜５５ｄにそれぞれ含まれる複数のデータを要求する要求情報を、第１スレッド７４ａ〜第４スレッド７４ｄごとにセカンダリストレージサーバ２０へ送信する（Ｓ５４）。【０１３４】
セカンダリストレージサーバ２０は、プライマリストレージサーバ１０からの要求情報を受信したか否かを判断する段階になっており（Ｓ６０）、受信していない場合（Ｓ６０：ＮＯ）、受信待ちの状態となる。一方、要求情報を受信した場合（Ｓ６０：ＹＥＳ）、セカンダリストレージサーバ２０は、受信した各要求情報で指定される実ファイル５５における複数の領域５５ａ〜５５ｄにそれぞれ含まれる各データのそれぞれを、各スレッド７４ａ〜７４ｄを通じて、同時的にプライマリストレージサーバ１０へ送信する処理を行う（Ｓ６１）。【０１３５】
プライマリストレージサーバ１０は、Ｓ５４の段階の要求情報の送信に応じて、各スレッド７４ａ〜７４ｄを介し、それぞれデータを同時的に受信すると、受信した各データを、それらの各データが含まれていた実ファイル６５の領域６５ａ〜６５ｄに対応するダミーファイル６５の格納領域６５ａ〜６５ｄに、格納する処理を行う（Ｓ５５）。それからプライマリストレージサーバ１０は、各データの全データ容量が格納されたか否かを、参照情報に含まれる実ファイル５５のファイル容量と対比して判断し（Ｓ５６）、全データ容量が格納されていない場合（Ｓ５６：ＮＯ）、Ｓ５５の段階へ戻り、引き続き、データの受信及び格納の処理を行い、また、全データ容量を格納した場合（Ｓ５６：ＹＥＳ）、処理を終了する。なお、第２実施形態では、上述した以外は、第１実施形態と同様になっている。【０１３６】
このように第２実施形態のダウンロードシステム５０では、既に存在するダミーファイルを利用するので、第１実施形態のように、プライマリストレージサーバ１０は格納ファイルを新たに作成しなくてもよく、プライマリストレージサーバ１０側の処理負担を低減できるというメリットがある。なお、第２実施形態においても、第１実施形態で説明した各種変形例の適用が可能である。
【産業上の利用可能性】
【０１３７】
本発明は、ダウンロード対象のファイルを分割して並列処理でダウンロードする場合、ダウンロード対象のファイルを記憶する側のサーバ装置の処理負担を従来のシステムに比べて低減できるということに対して好適に利用可能である。
【符号の説明】
【０１３８】
１、５０  ダウンロードシステム
５  格納ファイル
５ａ〜５ｄ  第１格納領域〜第４格納領域
１０  プライマリストレージサーバ
１１  プライマリストレージ
１２  エージェント
１４ａ〜１４ｄ  スレッド
１５  （ダウンロード対象の）ファイル
１５ａ〜１５ｄ  第１領域〜第４領域
２０  セカンダリストレージサーバ
２１  セカンダリストレージ
４０  ユーザ端末
ｆ１  分割閾値
ｆ２  分割サイズ
Ｐ１  サーバプログラム
Ｐ２  処理プログラム
【図１】
2017126105.tif 000003
【図２】
2017126105.tif 000004
【図３】
2017126105.tif 000005
【図４】
2017126105.tif 000006
【図５】
2017126105.tif 000007
【図６】
2017126105.tif 000008
【図７】
2017126105.tif 000009
【図８】
2017126105.tif 000010
【図９】
2017126105.tif 000011
【図１０】
2017126105.tif 000012
【図１１】
2017126105.tif 000013
【図１２】
2017126105.tif 000014
【図１３】
2017126105.tif 000015
【図１４】
2017126105.tif 000016
【手続補正書】
【提出日】平成28年5月31日(2016.5.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ダミーファイルを記憶する通信装置と、前記ダミーファイルに応じた実ファイルを記憶するサーバ装置とを備え、前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、前記通信装置が前記サーバ装置から前記実ファイルをダウンロードするダウンロードシステムにおいて、
前記通信装置は、
前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定する手段と、
特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張する手段と、
前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を前記サーバ装置に送信する処理を行う手段と
を備え、
前記サーバ装置は、
要求情報を受信した場合、前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを、前記同時的処理可能数に従って同時的に前記通信装置へ送信する処理を行う手段を備え、
前記通信装置は更に、
各データを受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段を備えることを特徴とするダウンロードシステム。
【請求項２】
ダミーファイルを記憶すると共に、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードする通信装置において、
前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、
前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定する手段と、
特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張する手段と、
前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行う手段と、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行う手段と
を備えることを特徴とする通信装置。
【請求項３】
前記同時的処理可能数と同数のスレッドを生成する手段を備え、
生成したスレッドごとに要求情報を送信すると共に、生成したスレッドごとにデータを受信するようにしてある請求項２に記載の通信装置。
【請求項４】
特定した複数の領域の数が前記同時的処理可能数を上回る場合、複数の要求情報を送信するスレッドが生じるようにしてあり、
前記複数の要求情報のそれぞれは、異なる領域に含まれるデータを要求するものにしてある請求項３に記載の通信装置。
【請求項５】
特定した複数の領域の数が前記同時的処理可能数を上回る場合、異なる複数の領域に含まれるデータを要求する要求情報を送信するスレッドが生じるようにしてある請求項３に記載の通信装置。
【請求項６】
前記複数の領域を特定する手段は、ファイルの容量及び分割サイズに基づき複数の領域を特定するようにしており、
前記分割サイズに係る数値を受け付ける手段と、
受け付けた数値を、前記分割サイズとして設定する手段と
を備える請求項２乃至請求項５のいずれか１項に記載の通信装置。
【請求項７】
前記要求情報は、特定した領域に係る位置範囲を指定する情報を含む請求項２乃至請求項６のいずれか１項に記載の通信装置。
【請求項８】
ダミーファイルを記憶する通信装置が、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードするダウンロード方法において、
前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、
前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定するステップと、
特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張するステップと、
前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップと
を備えることを特徴とするダウンロード方法。
【請求項９】
通信機能を有すると共にダミーファイルを記憶するコンピュータに、前記ダミーファイルに応じた実ファイルを外部のサーバ装置からダウンロードする処理を行わせるためのコンピュータプログラムにおいて、前記ダミーファイルは、前記実ファイルに比べてファイルの容量が小さく且つ前記実ファイルの容量を示す容量情報を含み、
前記コンピュータに、
前記ダミーファイルに含まれる容量情報が示す前記実ファイルの容量に基づき前記実ファイルを分割する複数の領域を特定するステップと、
特定した複数の領域に対応した複数の格納領域を含むように、前記ダミーファイルの容量を拡張するステップと、
前記実ファイルにおける前記複数の領域にそれぞれ含まれるデータを同時的処理可能数に従って同時的にダウンロードするように、データを要求する要求情報を外部のサーバ装置に送信する処理を行うステップと、
要求情報の送信に応じて、各データを外部のサーバ装置から受信した場合、受信した各データのそれぞれが含まれていた各領域に対応する前記ダミーファイルの各格納領域へ、受信した各データのそれぞれを格納する処理を行うステップと
を実行させることを特徴とするコンピュータプログラム。
【国際調査報告】
2017126105.tif 000017
2017126105.tif 000018