(57)【要約】【課題】  クライアントコンピュータは複数のサーバコンピュータとそれぞれ高速にファイル転送方法を提供する。【解決手段】  同一のファイルについて少なくとも一部分のファイルデータを保持しているサーバコンピュータ２１０，２２０と、ネットワークシステム１を介して各サーバコンピュータからクライアントコンピュータ１００へ当該ファイルの転送が可能なシステムによるファイル転送方法であり、クライアントコンピュータ１００は、当該ファイルをブロックに分けて、各サーバコンピュータに各々ブロックの送信を要求し、クライアントコンピュータ１００が当該ファイルを任意のブロック毎に受信することで高速なファイル転送を行う。【選択図】      図１
2005222295.tif 000002
【特許請求の範囲】
【請求項１】
同一のファイルについて少なくとも一部分のファイルデータを保持している複数のサーバコンピュータと、ネットワークを介して前記各サーバコンピュータからクライアントコンピュータへ当該ファイルの転送が可能なシステムでファイル転送する方法において、クライアントコンピュータは、当該ファイルを複数のブロックに分けるブロック分割段階と、前記各サーバコンピュータに各々ブロックの送信を要求するブロック送信要求段階と、クライアントコンピュータが当該ファイルを任意のブロック毎に受信するブロック受信段階をもつことを特徴とするファイル転送方法。
【請求項２】
前記ブロック分割段階において、任意の決められた同一のサイズのブロックに分けることを特徴とする請求項１に記載のファイル転送方法。
【請求項３】
前記ブロック受信段階において、サーバコンピュータからのブロックの送信が開始された時から、前記サーバコンピュータから前記ブロックの転送終了の通知を受けるまでの経過時間をもって、コネクションを確立するサーバコンピュータの数およびサーバコンピュータに転送を要求するデータ量を制御することを特徴とする請求項１または２に記載のファイル転送方法。
【請求項４】
第２のクライアントコンピュータに対してコネクションを確立し、受信完了しているブロックを送信することを特徴とする請求項１に記載のファイル転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバコンピュータおよびクライアントコンピュータから構成されるネットワークシステムにおいて、クライアントコンピュータから転送要求のあったファイルのデータを複数のサーバコンピュータから当該クライアントコンピュータへ転送を行うファイル転送方法に関する。
【背景技術】
【０００２】
ネットワークシステムにおいてサーバコンピュータからクライアントコンピュータへ転送する場合、ＴＣＰ（Transmission Control Protocol）を有するネットワークではファイル転送プロトコルであるＦＴＰ（File Transfer Protocol）が主に利用されている。
【０００３】
ＦＴＰは、ファイルの転送を要求するクライアントコンピュータと、クライアントコンピュータとネットワークを介して接続されている当該ファイルを保持するサーバコンピュータとの間で、１つの制御コネクションを確立する制御コネクション確立段階と、次に当該制御コネクションを用いて１つのデータコネクションを確立するデータコネクション確立段階と、次に当該データコネクションを用いてファイルを送受信するファイル転送段階とを有するファイル転送方式である。
【０００４】
しかしながら、複数のクライアントコンピュータが同一のサーバコンピュータに対してファイル転送を要求した場合、各クライアントコンピュータに対するサーバコンピュータの伝送能力が低下してしまい、各クライアントコンピュータとの間に確立されるデータコネクションで利用可能な伝送路帯域幅では十分な転送速度を確保できないという問題があった。
【０００５】
これに対して、サーバコンピュータとクライアントコンピュータとの間に確立されるデータコネクションの数を複数用意し、サーバコンピュータから転送されるファイルを複数の領域に分割して、分割されたファイルをそれぞれのデータコネクションを利用して転送を行う技術が知られている（例えば、特許文献１参照）。そして、クライアントコンピュータは受け取った分割ファイルを合成して１つのファイルに復元する方法が提案されていた。さらに、クライアントコンピュータは複数のサーバコンピュータとそれぞれデータコネクションを確立し、各々のサーバコンピュータは該ファイルを複数の領域に分割し、確立したデータコネクションを利用して送信を行い、クライアントコンピュータでは受信したそれぞれの分割ファイルを合成する仕組みも提案されていた。
【０００６】
この方式によれば、１つのデータコネクションで伝送することができる帯域幅を用いてファイルを送信する場合に比べより多くの伝送路帯域幅を確保することが可能となるため、高速にファイル転送が可能であった。
【０００７】
【特許文献１】特開平１１−２４２６４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の技術では、クライアントコンピュータが複数のデータコネクションを確立させるため、同じサーバコンピュータに接続している他のクライアントコンピュータが使用する伝送路帯域幅を奪い取るために、他のクライアントコンピュータに対する転送速度が低下するという問題があった。
【０００９】
従って、本発明は、上記課題を解決するとともに、伝送能力の高いサーバコンピュータを動的に選択して、さらなる高速なファイル転送を可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
同一のファイルについて少なくとも一部分のファイルデータを保持している複数のサーバコンピュータと、ネットワークを介して前記各サーバコンピュータに接続からクライアントコンピュータへ当該ファイルの転送が可能なシステムでファイル転送する方法において、クライアントコンピュータは、当該ファイルをブロックに分けるブロック分割段階と、前記各サーバコンピュータに各々ブロックの送信を要求するブロック送信要求段階と、クライアントコンピュータが当該ファイルを任意のブロック毎に受信するブロック受信段階をもつ。また、前記ブロック分割段階において、任意の決められた同一のサイズのブロックに分ける。また、前記ブロック受信段階において、サーバコンピュータからのブロックの送信が開始された時から、前記サーバコンピュータから前記ブロックの転送終了の通知を受けるまでの経過時間をもって、コネクションを確立するサーバコンピュータの数およびサーバコンピュータに転送を要求するデータ量を制御する。また、第２のクライアントコンピュータに対してコネクションを確立し、受信完了しているブロックを送信することを特徴とする。
【発明の効果】
【００１１】
以上に述べた様に、本発明によれば、伝送路の実行速度を調査することなく、サーバコンピュータの転送速度に動的に対応して送信するデータ量を増減させることが可能であるとともに、転送時間を平準化することができる。
【００１２】
また、伝送速度が遅いサーバコンピュータは切断して、高速なサーバコンピュータのみを使用することで、高速なデータ転送が可能となる。
【００１３】
また、クライアントコンピュータは伝送路品質を調査する機能を必要とせずに、ユーザは意識することなく上記の処理を行うことが可能となる。
【００１４】
更に、他クライアントが同一のファイルを要求する場合、受信完了しているファイルの一部を送信することで、限られたファイルサーバのみを使用する場合に比べて高速にファイルを受信することが可能となる。
【発明を実施するための最良の形態】
【００１５】
次に、図面を参照しながら、本発明を実施するための最良の形態として以下の実施例を説明するが、本発明は本実施例に限定されるものではない。
【実施例１】
【００１６】
図１〜図５を用いて本発明の実施例１について説明する。図１は、本発明の実施例１におけるファイル転送システムを示す構成図である。図１において、ネットワークシステム１は、ファイルを保持するサーバの情報を取得し複数のサーバコンピュータに要求するクライアントコンピュータ１００、受信したファイルを格納するファイルシステム１０７、クライアントコンピュータとネットワークを介して接続されたファイルの送信を行う複数（本実施例では２つ）のサーバコンピュータ２１０，２２０、送信するファイルが格納されている各サーバコンピュータに接続されたファイルシステム２１４，２２４、ファイルの検索を行う検索サーバコンピュータ３００およびサーバ毎のファイル情報が格納されているサーバ情報システム３０１から構成されている。
クライアント１００には受信ファイルを格納するファイルシステム１０７が接続されている。クライアント１００は、サーバコンピュータとのコネクションを確立するブロック制御手段１０１、ブロック格納手段１０６、および検索サーバコンピュータとのコネクションを確立するサーバ選択手段１０８を有している。
クライアント１００では、ブロック制御手段１０１の指示によって、転送制御手段１０２１、１０２２とデータ受信手段１０３１、１０３２とが起動される。転送制御手段１０２１、１０２２およびデータ受信手段１０３１、１０３２は、ソフトウェアによりその機能が実現される手段であり、ブロック制御手段１０１の指示に応じて任意の数だけ手段が起動されるようになっている。サーバ選択手段１０８には検索サーバ３００が接続されている。
【００１７】
検索サーバ３００は、サーバ情報３０１と接続されている。サーバ情報３０１にはファイル転送が可能なサーバに関する情報（以降、サーバ情報という）が格納されている。サーバ情報は、各サーバを一意に表すサーバ名と、各サーバが保持しているファイルを表すファイルインデックスが格納されている。検索サーバ３００は、複数のサーバコンピュータ２１０、２２０から各サーバコンピュータが保持しているファイルに関する情報を収集して蓄積している。
【００１８】
クライアントコンピュータ１００には複数のサーバコンピュータ２１０、２２０がネットワークを介して接続されている。サーバコンピュータ２１０は、転送制御手段２１２とデータ転送手段２１３とを有している。転送制御手段２１２は、ソフトウェアによってその機能が実現される手段であって、転送制御手段１０２１からの転送要求に応じて起動される。データ送信手段２１３はファイルシステム２１４と接続されている。ファイルシステム２１４には、該ファイルシステム２１４が保持するファイル実体そのものと、ファイル実体に関する情報であるインデックス情報を保持しており、インデックス情報には、対応するファイルの実体に関する情報であるファイル名とファイルＩＤが格納されている。ファイルＩＤはファイル実体を一意に表す情報であり、他のファイルシステム同一のファイル実体がある場合には同一のファイルＩＤが保持されている。
【００１９】
次に、実施の形態１におけるクライアントの動作について説明する。ここでは便宜上、２つのサーバを想定して書かれているが、複数のサーバでも本発明の内容を満たす構成と効果を得ることが可能である。
【００２０】
クライアント１００のブロック制御手段１０１はサーバ選択手段１０８に対して、要求するファイルを所有するサーバの情報を得るために「サーバ要求」を送信する。
【００２１】
サーバ選択手段１０８は検索サーバ３００に対して要求するファイルが存在するサーバの情報を要求する（ＳＴ１）。検索サーバ３００はサーバ情報３０１に保持されているサーバ情報を検索し、要求されているファイルを持つサーバに関するサーバ情報を取り出し、サーバ選択手段１０８に送信する（ＳＴ２）。サーバ選択手段１０８は受信したサーバ情報から、転送に使用するための高速なサーバを選択して、選択したサーバの情報をブロック制御手段１０１に「サーバ応答」として送信する。
【００２２】
ブロック制御手段１０１は転送に使用するサーバ数を元に転送制御手段１０２１、１０２２を「起動」する。起動した転送制御手段１０２１、１０２２は、それぞれデータ受信手段１０３１、１０３２を「起動」する。図中では、選択したサーバ数が２つの場合について書いており、２つの転送制御手段と２つのデータ受信手段を起動している。
【００２３】
転送制御手段が起動すると、ブロック制御手段１０１は、目的のファイルにおいて任意の位置より任意のサイズの領域をブロックとして、１つのブロックの分割範囲情報を決定し、サーバ情報とブロックの分割範囲情報および、ファイルを一意に表すインデックス情報を、転送制御手段１０２１、１０２２に「ブロック転送要求」として送信する。
【００２４】
転送制御手段１０２１、１０２２は「ブロック転送要求」を受信すると、それぞれのサーバ情報を元に制御コネクションおよびデータコネクションを確立し、接続したサーバに対してインデックス情報と分割範囲情報を元に、制御コネクションを用いてデータの転送を要求する（ＳＴ３，４）。
【００２５】
サーバからデータコネクションを用いて転送されるデータ（ＳＴ５，６）は、データ受信手段１０３１、１０３２が受信する。転送制御手段１０２１、１０２２は制御コネクションを通してサーバからデータの転送終了を受信すると（ＳＴ７，８）、転送に要した転送時間を「ブロック転送応答」としてブロック制御手段１０１に送信する。
【００２６】
「ブロック転送応答」を受信したブロック制御手段１０１は、目的のファイルが指定したサーバに存在することを確認できると共に、経過時間とデータサイズから転送速度を求め、速度に比例した割合でブロックの分割範囲をサーバ毎に決定する。
【００２７】
次に、ブロックの分割範囲を決定する方法について説明する。
【００２８】
目的のファイルサイズがＭ[B]で目的のファイルの任意の位置からサイズＬ[B]（Ｌ≦Ｍ）の領域をサーバに転送要求をし、サーバ１の転送時間がα[s]、サーバ２の転送時間がβ[s]となった場合、転送速度はＬ／α[B/s]およびＬ／β[B/s]となるので、サーバ１は目的のファイルの先頭からサイズＭ×β／（α＋β）[B]の分割範囲のブロックの転送を要求し、サーバ２はサーバ１の分割範囲の次からサイズＭ×α／（α＋β）[B]の分割範囲のブロックの転送を要求することで、それぞれのサーバの転送時間をＭ／Ｌ×αβ／（α＋β）[s]に平準化することができる。
【００２９】
上記の方法でブロックの分割範囲が決定すると、ブロック制御手段１０１はサーバ情報とブロックの分割範囲情報および、インデックス情報を転送制御手段１０２１、１０２２に「ブロック転送要求」として送信する。
【００３０】
転送制御手段１０２１、１０２２は「ブロック制御手段」を受信すると、コネクションを確立したサーバに対してインデックス情報と分割範囲情報を元に、制御コネクションを用いてデータの転送を要求し（ＳＴ９，１０）、サーバからデータコネクションを用いて転送されるデータは、データ受信手段１０３１、１０３２が受信する（ＳＴ１１，１２）。
【００３１】
転送制御手段１０２１、１０２２は制御コネクションを通してサーバから転送終了を受信すると、「ブロック転送応答」をブロック制御手段１０１に送信する（ＳＴ１３，１４）。
【００３２】
ブロック制御手段１０１は転送を要求した全ての転送制御手段１０２１、１０２２から「ブロック転送応答」を受信すると、ブロック合成手段１０６に全ての分割範囲情報を「ファイル保存要求」として送信する。
【００３３】
「ファイル保存要求」を受信したブロック制御手段１０６は、データ受信手段１０３１、１０３２に対して「ブロック要求」を送信する。
【００３４】
「ブロック要求」を受信したデータ受信手段１０３２、１０３３は、サーバから受信が完了しているブロックのデータをファイル合成手段１０６に「データ転送」を行い、全てのデータの送信が完了するとファイル合成手段１０６に「ブロック応答」を送信する。
【００３５】
全てのデータ受信手段１０３１、１０３２からデータを受信したブロック合成手段１０６は、分割範囲情報を元にブロックのデータを１つのファイルに合成する。正常にファイルの合成が完了すると、ファイル合成手段１０６はファイルシステム１０７へ同成されたファイルを保存し、ブロック制御手段１０１に「ファイル保存応答」を送信する。
【００３６】
次にサーバの動作を説明する。
【００３７】
クライアントの転送制御手段１０２１から制御コネクションを介してデータの転送を要求されると（ＳＴ３）、転送制御手段２１２は、インデックス情報と分割範囲情報をデータ送信手段２１３に「データ転送要求」として送信する。
【００３８】
「データ転送要求」を受信したデータ送信手段２１３は、インデックス情報と分割範囲情報から、送信を行う領域のデータをファイルシステム２１４から読み出す。
【００３９】
目的のデータの読み出しが終了したデータ送信手段２１３は、データコネクションを介してデータ受信手段１０３１にデータを転送する（ＳＴ５）。
【００４０】
データの転送が終了すると、データ送信手段２１３は転送制御手段２１２に「データ転送終了」を送信する。
【００４１】
「データ転送終了」を受信した転送制御手段２１２は、データの転送終了を制御コネクションを介して転送制御手段１０２１に通知する（ＳＴ７）。
【００４２】
以上がクライアント１００とサーバ２１０の間で行われる通信における、サーバ２１０に関する動作の説明であるが、クライアント１００とサーバ２２０との間においても同様の動作が行われる。
【００４３】
ここでは２つのサーバを用いて説明しているが、複数のサーバを用いる場合、それぞれのサーバに要した転送時間の逆数に応じて転送を要求するサイズが決められるが、小数点以下は四捨五入等でなくしサイズの合計をＭになるように調整するため、必ずしも転送時間が同じになるとは限らない。
【００４４】
また、ここでは速度調査時に受信したデータを破棄して、改めてファイルデータ全てを受信しているが、速度調査時に受信したデータを破棄せずに、未受信データ部分のみを転送速度に合せて要求してもよい。
【００４５】
以上説明したように、検索サーバコンピュータを用いて伝送能力の高いサーバコンピュータを選んでデータを受信することで、高速なファイル転送が可能であり、また、１つのサーバコンピュータに確立するデータコネクションの数を１本に限定することで、他のクライアントコンピュータの実行転送速度が低下することを最小限に抑える。
【００４６】
また、それぞれのサーバコンピュータの転送速度に合せて転送するデータ量を変化させることで、転送時間を平準化しファイル転送に要する時間を短縮することができる。
【実施例２】
【００４７】
次に、図３〜図７を用いて本発明の実施例２について説明する。なお、この実施例２の説明において、上述した実施例１の構成要素と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。この実施例２は、下記の点で実施例１と相違しているが、他の点では実施例１と同様に構成されている。
【００４８】
図３は、本発明によるファイル転送方法の実施の形態２を説明するための構成図である。クライアント１１０はファイルシステム１０７と接続されている。また、クライアント１１０はブロック制御手段１１１とブロック格納手段１１６とサーバ選択手段１１８で構成されている。転送制御手段１１２１、１１２２とデータ受信手段１１３１、１１３２はブロック制御手段１１１からの指示によって起動される。接続を確立するサーバと同数の転送制御手段１１２１、１１２２およびデータ受信手段１１３１、１１３２が起動される。サーバ選択手段１１８は検索サーバ３００と接続されている。
【００４９】
次に、図４のシーケンスを用いて実施の形態２におけるクライアントの動作について説明する。ここでも便宜上、２つのサーバを想定して書かれているが、複数のサーバでも本発明の内容を満たす構成と効果を得ることが可能である。
【００５０】
クライアント１１０のブロック制御手段１１１はサーバ選択手段１１８に対して、要求するファイルを所有するサーバの情報を得るために「サーバ要求」（ステップ７０１）を送信する。検索サーバ３００から要求されているファイルを持つサーバに関するサーバ情報のリストを取得すると、申請速度等から高い伝送速度が期待できる順にリストを並び替えて、ブロック制御手段１１１に「サーバ応答」（ステップ７０２）を送信する。
【００５１】
「サーバ応答」（ステップ７０２）を受信したブロック制御手段１１１は、サーバに対して同一サイズのブロック毎にデータの要求を行うために、図５のように目的のファイルを任意のサイズＬで分割してブロック管理テーブルを作成する。ブロック管理テーブルとはブロックの受信状況を管理するためのテーブルであり、それぞれのブロックの先頭からの順番を表す『ブロック番号』、目的のファイル内での位置を表す『分割範囲情報』、該ブロックの受信の完了を表す『受信フラグ』、受信した該ブロックの実データを示す『ブロックポインタ』、該ブロックを送信要求している『サーバ番号』の情報を格納する。
【００５２】
また、ブロック制御手段１１１は、取得したサーバ情報のリストからサーバ行列を作成する。サーバ行列とはＦＩＦＯで動作し、取得したサーバ情報の順に並んでいる。
【００５３】
また、ブロック制御手段１１１は、接続を確立したサーバ毎に送信を要求したブロック情報を管理するサーバ管理テーブルを作成する。サーバ管理テーブルは、サーバの起動順に割り当てられる『サーバ番号』、サーバのインターネット上での位置を表す『サーバアドレス』、該サーバとのデータ転送に使用する転送制御手段およびデータ受信手段の『識別子』、該サーバに対して送信要求してデータ転送を待っている『ブロック番号』の情報を格納する。
【００５４】
ブロック管理テーブル、サーバ行列、および、サーバ管理テーブルを作成したブロック制御手段１１１は、転送制御手段１１２１を「起動」（ステップ７１１）する。起動した転送制御手段１１２１は、データ受信手段１１３１を「起動」（ステップ７１２）する。
【００５５】
次に、ブロック制御手段１１１は、サーバ行列からサーバ情報を取得し、ブロック管理テーブルから『受信フラグ』がＯＦＦのブロックを複数選択し、転送制御手段１１２１に「ブロック転送要求」（ステップ７１３）を行い、ブロック管理テーブルに対応するブロックの『サーバ番号』を更新する。
【００５６】
「ブロック転送要求」（ステップ７１３）を受信した転送制御手段１１２１は、『サーバアドレス』を元にサーバ２１０に対して制御コネクションおよびデータコネクションを確立し、『分割範囲情報』と目的のファイルを一意に表す『インデックス情報』を元に，制御コネクションを用いて要求するブロック毎に「データ転送要求」（ステップ７１４、７１５）を行う。ここでは便宜上、２つのブロックを要求しているが、複数のブロックを要求することでも本発明を満たす構成と効果を得ることが可能である。
【００５７】
データ転送を要求されたサーバ２１０は、『インデックス情報』と『分割範囲情報』に対応するブロックを、データコネクションを用いて「データ転送」（ステップ７１４１）を行う。クライアントは、サーバ２１０から送信されるデータをデータ受信手段１１３１で受信する。
【００５８】
サーバ２１０はブロックのデータ転送が終了すると、制御コネクションを用いて「データ転送終了」（ステップ７１４２）を送信し、クライアントは転送制御手段１１２１で「データ転送終了」（ステップ７１４２）を受信する。
【００５９】
「データ転送終了」（ステップ７１４２）を受信した転送制御手段１１２１は、
データ受信手段１１３１に「格納要求」（ステップ７１４３）を送信する。
【００６０】
「格納要求」（ステップ７１４３）を受信したデータ受信手段１１３１は、ファイルシステム１１７に該ブロックを『データ保存』（ステップ７１４４）し、保存場所を表す『ブロックインデックス』を転送制御手段１１２１に「格納応答」（ステップ７１４５）として送信する。
【００６１】
「格納応答」（ステップ７１４５）を受信した転送制御手段１１２１は、該ブロックの『ブロック番号』、『ブロックインデックス』、および、1つのブロックを送信するのに要した『経過時間』を、ブロック制御手段１１１に「ブロック転送応答」（ステップ７１４６）として送信する。
【００６２】
「ブロック転送応答」（ステップ７１４６）を受信したブロック制御手段１１１は、サーバ管理テーブルのブロックの送信を行ったサーバの情報を更新し、ブロック管理テーブルの保存が完了したブロックの情報および『受信フラグ』を更新する。
【００６３】
ブロック制御手段１１１は、該ファイルの全てのブロックの受信が完了すると、ブロック合成手段１１６に「ファイル合成」を送信する。「ファイル合成」を受信したブロック合成手段１０６は、『ブロック番号』順に全ての『ブロックインデックス』を用いて目的のファイルに合成し、ファイルシステム１０７に保存する。
【００６４】
以上のシーケンス１（７１１〜７１４６）の中で、「ブロック転送要求」（ステップ７１３）を送信したブロック制御手段１０１は、続いて転送制御手段１０２２を「起動」（ステップ７２１）し、サーバ２０２に対してデータの転送を要求する。以下、ステップ７１１からステップ７１４６（シーケンス１）と同じようにステップ７２１からステップ７２４６（シーケンス２）が処理される。
【００６５】
シーケンス１（７１１〜７１４６）およびシーケンス２（７２１〜７２４６）は、独立した処理であるので、サーバ２１０とサーバ２２０から並列にデータを受信することが可能である。
【００６６】
また、「データ転送要求」（ステップ７１４）に対するブロックの送信を完了したサーバ２１０は、次の「データ転送要求」（ステップ７１５）に対応するブロックの「データ転送」（ステップ７１５１）を行うので、サーバ２１０は連続してデータ転送が可能である。同様に、サーバ２２０からも連続してデータ転送が可能である。
【００６７】
次に、ブロックとサーバの管理について説明する。
【００６８】
ブロック制御手段１１１は、サーバ情報の取得後に先に示したブロック管理テーブル、サーバ管理テーブル、サーバ行列を持っている。
【００６９】
ブロック管理テーブルは以下の情報を管理している。ブロックを一意に表す『ブロック番号』と目的のファイルにおける位置を表す『分割範囲情報』はサーバ情報取得時に設定する。『受信フラグ』はブロック受信の有無を表し、初期値はＯＦＦである。『サーバ情報』は該ブロックの送信を要求しているサーバを表している。
【００７０】
サーバ管理テーブルは以下の情報を管理している。サーバを一意に表す『ブロック番号』とネットワーク上の目的のサーバを特定する『サーバアドレス』はサーバ行列からサーバ情報取得して、転送制御手段を起動した時に設定する。ブロック送信に要した『経過時間』は、同サイズのブロックは用いることからサーバの伝送品質を表す。『識別子』はサーバとコネクションを確立する転送制御手段を一意に表し、サーバに転送要求した『ブロック番号』も保持する。
【００７１】
次に、図７のシーケンスを用いてサーバへの要求について説明する。図４と同じ処理には同一の符号を付与している。
【００７２】
クライアントの転送制御手段１１２１から制御コネクションを介してデータの転送を要求された転送制御手段２１２は、インデックス情報と分割範囲情報をデータ送信手段２１３に「データ転送要求」（ステップ７１４０１）として送信する。
【００７３】
「データ転送要求」（ステップ７１４０１）を受信したデータ送信手段２１３は、インデックス情報と分割範囲情報を元にファイルシステム２１４に「データ要求」（ステップ７１４０２）を行う。
【００７４】
データ送信手段２１３は、ファイルシステム２１４から送信を行う領域の「データ読出」（ステップ７１４０３）が完了すると、データコネクションを介してデータ受信手段１１３１に「データ送信」（ステップ７１４１）を行う。データ受信が開始されるとデータ受信手段１１３１は転送制御手段１１２１に「送信開始」（ステップ７１４１１）を通知し、「送信開始」（ステップ７１４１１）を受信した転送制御手段１１２１は経過時間の測定を開始する。
【００７５】
データ送信手段２１３はデータの転送が終了すると、転送制御手段２１２に「データ転送終了」（ステップ７１４０４）を送信する。
【００７６】
「データ転送終了」（ステップ７１４０４）を受信した転送制御手段２１２は、データの転送終了を制御コネクションを介して転送制御手段１１２１「データ転送終了」（ステップ７１４２）を送信し、「データ転送終了」（ステップ７１４２）を受信した転送制御手段１１２１は経過時間の測定を停止する。
【００７７】
以後は図４と同様、クライアントはブロックを保存して該ブロックの受信を完了する（ステップ７１４３〜７１４６）。
【００７８】
「ブロック転送応答」（ステップ７１４６）を受信したブロック制御手段１１１は、ブロック管理テーブルの該ブロックの『受信フラグ』をＯＮにし、『ブロックインデックス』に実データへのアドレスを格納する。そして、転送したサーバ以外の『サーバ番号』に対して、「ブロック中断要求」（ステップ７３１）を転送制御手段１１２に転送する。ここでは便宜上、中断を要求するサーバは１つとして書かれているが、『サーバ番号』にある全てのサーバに対しても同様の処理を行う。
【００７９】
ここでは、サーバ２に対して中断を要求する。
【００８０】
転送制御手段１１２２は「ブロック中断要求」（ステップ７３１）を受信すると、制御コネクションを用いて、該サーバに「データ中断要求」（ステップ７３２）を送信する。
【００８１】
サーバは「データ中断要求」（ステップ７３２）を受信すると、該ブロックの送信要求をキャンセルして、既に転送中の場合には中断処理を行い、次のブロック送信を開始して、「データ中断応答」（ステップ７３３）を転送制御手段１１２２に送信する。
【００８２】
転送制御手段１１２２は「データ中断応答」（ステップ７３３）を受信すると、「ブロック中断応答」（ステップ７３４）をブロック制御手段１１１に送信する。
【００８３】
ブロック制御手段１１１は、「ブロック中断応答」（ステップ７３４）を受信すると、サーバ管理テーブルの該『ブロック番号』を削除する。
【００８４】
以上の処理により、サーバには常時転送を行えると共に、重複したブロックの送信を抑えている。
【００８５】
また、ブロック制御手段１１１は、サーバ管理テーブルの『経過時間』を比較し、速いサーバに対しては『受信フラグ』がＯＦＦのブロックのいくつかを新たに「ブロック転送要求」を行い、遅いサーバに対しては要求しているブロック全てに「ブロック中断要求」を行って該サーバを切断し、切断したサーバは、サーバ待ち行列の最後に戻す。また、ブロック制御手段１１１は定期的にサーバ待ち行列からサーバ情報を取得して、新たにコネクションの確立を行っている。
【００８６】
以上の処理によれば、速度が出ないサーバとのコネクションを切断することで常に速度の速いサーバとのコネクションを保持し、転送速度の速いサーバの送信量を多くすることで、転送時間を平準化することが可能である。
以上に説明したように、個々のサーバコンピュータには対する送信要求は、先の要求ブロックのデータ転送を待たずに連続して要求することで、データコネクションの時間的な空きを減少させるとができる。
【００８７】
また、複数のサーバコンピュータに対するブロックの送信要求を重複させることで、回線断によるデータの再要求に伴うタイムラグを減少させることが可能である。
【００８８】
また、ブロックを要求したサーバコンピュータとサーバコンピュータ毎に要求しているブロックを管理することで、重複したデータ転送により発生する無駄な帯域の使用を抑えることができる。
【００８９】
また、同サイズのブロックの受信毎にサーバコンピュータの伝送品質を他のサーバコンピュータと比較し、コネクションを確立するサーバコンピュータを伝送品質の変化に応じて変更することで、クライアントコンピュータは常に高速なサーバコンピュータとの間でファイル転送が可能である。
【実施例３】
【００９０】
図８は、本発明によるファイル転送方法の実施の形態３を説明するための構成図である。
【００９１】
クライアントは実施の形態２の構成に加えて、転送制御手段１０４とデータ送信手段１０５がブロック制御手段１２１からの指示によって、他クライアント毎と接続を確立する際に起動される。転送制御手段１０４は転送制御手段２１２と、データ送信手段１０５はデータ送信手段２１３と同様の処理を行う。また、検索サーバ３２０はクライアント情報３０２と接続されており、ファイルの要求を行ってきたクライアント情報を要求されたファイル毎に保持しておく。ブロック制御手段１２１は転送制御手段１０４からブロックの送信要求を受け付けることができ、ブロック格納手段１２６はデータ送信手段１０５にブロックを渡すことができる。
【００９２】
クライアント１がファイルを要求してきた場合、検索サーバ３２０は、クライアント情報３０２に該ファイル情報と要求してきたクライアント情報を格納する。これ以降の処理は、実施例２と同様にサーバとのデータ転送が行われる
【００９３】
クライアント１がファイル転送処理中に、さらにクライアント２が同一のファイルを検索サーバ３２０に「サーバ要求」してきた場合、検索サーバ３２０はサーバ情報３０１からの検索結果に合せて、クライアント情報３０２の該ファイルのクライアント情報をサーバ情報付加して、クライアント２に「サーバ応答」を行う。
【００９４】
クライアント２は、サーバに「データ転送要求」を行うのと同様に、「サーバ応答」の検索情報に含まれるクライアント１に対しても、「データ転送要求」を行うことができる。クライアント２はサーバかクライアントかを意識せずにブロックの送信要求を行う。
【００９５】
図９のシーケンスを用いてクライアントによるファイル転送について説明する。ここでは便宜上、ブロックを要求するクライアントとブロックを送信するクライアントは１つずつを想定して書かれているが、それぞれが複数のクライアントでも本発明の内容を満たす構成と効果を得ることが可能である。
【００９６】
クライアント１は、クライアント２から接続が要求されると、転送制御手段１０４を起動し、起動した転送制御手段１０４はデータ送信手段１０５を起動してクライアント２とコネクションを確立する。
【００９７】
クライアント２の転送制御手段４０２から制御コネクションを介して「データ転送要求」（ステップ８１４，８１５）を受信した転送制御手段１０４は、要求されたファイルのインデックス情報が受信中のファイルと同一である場合に、ブロック制御手段１０１に『ブロック番号』を「ブロック要求」（ステップ８１４０１）として送信する。クライアント１，２ともに同一のファイルを同一のサイズで分割するため、『ブロック番号』毎の分割情報は同一にしている。
【００９８】
「ブロック要求」（ステップ８１４０１）を受信したブロック制御手段１０１は、『ブロック番号』からブロック監理テーブル検索し、該ブロックの『受信フラグ』がＯＮ（受信済み）の場合に、転送制御手段１０４へ『ブロックインデックス』を「ブロック応答」（ステップ８１４０２）として送信する。
【００９９】
要求されたブロックの存在を確認した転送制御手段１０４は、該ブロックの「データ転送要求」（ステップ８１４０３）を行う。
【０１００】
データ送信手段１０５は、『ファイルインデックス』を用いてブロック格納手段１２６に「データ要求」（ステップ８１４０４）を送信する。
【０１０１】
ブロック格納手段１２６から該ブロックの実データを「データ読出」（ステップ８１４０５）として受信すると、クライアント２へ「データ送信」（ステップ８１４１）を行う。
【０１０２】
データの送信が終了したデータ送信手段１０５は「転送終了」（ステップ８１４０４）を送信し、転送制御手段１０４がクライアント２へ「データ転送終了」（ステップ８１４２）を送信する。
【０１０３】
ステップ８１４に対するブロック送信が終了した転送制御手段１０４は、次のステップ８１５に対しての処理を同様に行う（ステップ８１５０１〜８１５１）。
以上に説明したように、ファイルを受信中のクライアントコンピュータに対して、受信済ブロックを他のクライアントコンピュータに送信する機能を持たせることで、ファイルを転送することが可能なコンピュータが増加して、ファイルの転送を要求するコンピュータの選択肢が増加し、より伝送品質の良いコンピュータと接続を確立して高速なファイル転送が可能となる。
【０１０４】
また、サーバコンピュータのみに転送要求が集中しないので、個々のサーバコンピュータの帯域の奪い合いを低減することができる。これは特に、限られたサーバコンピュータから多数のクライアントコンピュータに同一のファイルを送信するようなファイル配信において有効である。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施の形態１におけるクライアント、サーバおよび検索サーバのブロック構成図である。
【図２】実施の形態１におけるクライアント−サーバ間のシーケンス図である。
【図３】本発明の実施の形態２におけるクライアント、サーバおよび検索サーバのブロック構成図である。
【図４】実施の形態２におけるクライアント内のシーケンス図である。
【図５】実施の形態２における転送ブロックの分割方法を表す図である。
【図６】実施の形態２におけるテーブル管理を表す図である。
【図７】実施の形態２におけるクライアント−サーバ間のシーケンス図である。
【図８】本発明の実施の形態３におけるクライアント、サーバおよび検索サーバのブロック構成図である。
【図９】実施の形態３におけるクライアント−クライアント間のシーケンス図である。
【符号の説明】
【０１０６】
１：ネットワークシステム、 １００：クライアントコンピュータ、 
１０１，１１１：ブロック制御手段、 １０６，１１６，１２６：ブロック格納手段、 
１０４，２１２，１０２１，１０２２，１１２１，１１２２：転送制御手段、 
１０５，２１３：データ送信手段、 １０７：ファイルシステム、１０８，１１８：サーバ選択手段、 
１１０：クライアント、 ２１０，２２０：サーバコンピュータ、２１４，２２４：ファイルシステム、
２１３，１０３１，１０３２，１１３１，１１３２：データ受信手段、 
３００：検索サーバコンピュータ、３０１：サーバ情報システム、３０２：クライアント情報、 
３２０：検索サーバ
【図１】
2005222295.tif 000003
【図２】
2005222295.tif 000004
【図３】
2005222295.tif 000005
【図４】
2005222295.tif 000006
【図５】
2005222295.tif 000007
【図６】
2005222295.tif 000008
【図７】
2005222295.tif 000009
【図８】
2005222295.tif 000010
【図９】
2005222295.tif 000011