(57)【要約】【課題】ユーザが任意のコピー元ホストから、複数の任意のコピー先ホストへファイルをリモートコピーする場合に、コピー元ホストに負荷が集中せず、かつ、高速なリモートファイルコピー方式を提供すること。【解決手段】ファイルをコピー元のホスト０から複数台のコピー先のホストｉ（ｉ＝１〜ｎ）へリモートコピーする方法であって、前記コピー元のホスト０において前記ファイルを複数の断片ファイルに分割する工程と、前記断片ファイルを前記ホストｉから前記ホストｉ＋１（ｉ＝０〜ｎ−１）へバケツリレーによってコピーする工程と、前記コピー先のホストｉ（ｉ＝１〜ｎ）において前記断片ファイルを結合する工程と、を含む。【選択図】図３
2008192058.tif 000002
【特許請求の範囲】
【請求項１】
ファイルをコピー元のホスト０から複数台のコピー先のホストｉ（ｉ＝１〜ｎ）へリモートコピーする方法であって、
（ａ）前記コピー元のホスト０において前記ファイルを複数の断片ファイルに分割する工程と、
（ｂ）前記断片ファイルを前記ホストｉから前記ホストｉ＋１（ｉ＝０〜ｎ−１）へバケツリレーによってコピーする工程と、
（ｃ）前記コピー先のホストｉ（ｉ＝１〜ｎ）において前記断片ファイルを結合する工程と、を含むことを特徴とするリモートファイルコピー方法。
【請求項２】
前記コピー工程（ｂ）において、前記断片ファイルのバケツリレーによるコピーがパイプライン式に行われることを特徴とする、請求項１に記載のリモートファイルコピー方法。
【請求項３】
前記コピー工程（ｂ）において、前記ホストｊ（ｊ＝ｉ＋１〜ｎ）のリストを送付する工程と、
前記リストを参照して前記断片ファイルをコピーする工程と、を含むことを特徴とする、請求項１または２に記載のリモートファイルコピー方法。
【請求項４】
前記コピー工程（ｂ）において、前記断片ファイルの結合先ファイルにおける結合位置を示す情報を送付する工程を含み、
前記結合工程（ｃ）において、前記断片ファイルの結合位置情報と、前記結合先ファイルのサイズが一致することを確認する工程を含むことを特徴とする、請求項１ないし３のいずれかに記載のリモートファイルコピー方法。
【請求項５】
ファイルをコピー元のホスト０から複数台のコピー先のホストｉ（ｉ＝１〜ｎ）へリモートコピーする処理をコンピュータに実行させるリモートコピープログラムであって、
（ａ）前記コピー元のホスト０において前記ファイルを複数の断片ファイルに分割する処理と、
（ｂ）前記断片ファイルを前記ホストｉから前記ホストｉ＋１（ｉ＝０〜ｎ−１）へバケツリレーによってコピーする処理と、
（ｃ）前記コピー先のホストｉ（ｉ＝１〜ｎ）において前記断片ファイルを結合する処理と、をコンピュータに実行させることを特徴とするリモートファイルコピープログラム。
【請求項６】
ファイルをコピー元のホスト０から複数台のコピー先のホストｉ（ｉ＝１〜ｎ）へリモートコピーする装置であって、
前記ファイルを複数の断片ファイルに分割する手段と、
前記断片ファイルを前記ホストｉから前記ホストｉ＋１（ｉ＝０〜ｎ−１）へバケツリレーによってコピーする手段と、
前記断片ファイルを結合する手段と、を備えたことを特徴とするリモートファイルコピー装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイルのリモートコピー装置、方法およびプログラムに関し、特に１つのホストから複数のホストに対してファイルをリモートコピーする装置、方法およびプログラムに関する。
【背景技術】
【０００２】
ファイルを１つのホストから複数のホストへコピーする場合の方式として、ユニキャスト方式またはマルチキャスト方式がある。
【０００３】
ユニキャスト方式においては、サイズの大きいファイルをネットワーク接続された複数のホストへ同時にコピーする場合、コピー元ホストからコピー先の各ホストに対し、それぞれ接続を張らねばならないため、コピー元ホストに負荷が集中する問題がある。
【０００４】
一方、マルチキャスト方式においては、ネットワークおよびホスト上のソフトウェアがマルチキャスト通信に対応している必要があり、導入コストが高いという問題がある。
【０００５】
ファイルのリモートコピー処理の際の負荷を分散する技術として、特許文献１において開示されているように、記憶装置自体にリモートコピーの仕組みを備える方式がある。
【０００６】
また、マスタファイルを分割してコピーした際に、コピーが正しく行われたか否かについて容易に検証する目的で、ファイルのリモートコピーの際にファイルの分割と結合を行う方法が、特許文献２において開示されている。
【０００７】
【特許文献１】特開２００４−１４５８５５号公報
【特許文献２】特開２０００−２５９４７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１において開示された方式は、記憶装置自体にリモートコピーの仕組みを備えるものであって、ユーザがコピー元ホストおよびコピー先ホストを、自在に指定することができない。
【０００９】
したがって、ユーザが任意のコピー元ホストから、複数の任意のコピー先ホストへファイルをリモートコピーする場合に、コピー元ホストに負荷が集中せず、かつ、高速なリモートファイルコピー方式を提供することが課題となる。
【課題を解決するための手段】
【００１０】
本発明の第１の視点に係るリモートファイルコピー方法は、ファイルをコピー元のホスト０から複数台のコピー先のホストｉ（ｉ＝１〜ｎ）へリモートコピーする方法であって、（ａ）前記コピー元のホスト０において前記ファイルを複数の断片ファイルに分割する工程と、（ｂ）前記断片ファイルを前記ホストｉから前記ホストｉ＋１（ｉ＝０〜ｎ−１）へバケツリレーによってコピーする工程と、（ｃ）前記コピー先のホストｉ（ｉ＝１〜ｎ）において前記断片ファイルを結合する工程と、を含むことを特徴とする。
【００１１】
本発明の第２の視点に係るリモートファイルコピープログラムは、ファイルをコピー元のホスト０から複数台のコピー先のホストｉ（ｉ＝１〜ｎ）へリモートコピーする処理をコンピュータに実行させるリモートコピープログラムであって、（ａ）前記コピー元のホスト０において前記ファイルを複数の断片ファイルに分割する処理と、（ｂ）前記断片ファイルを前記ホストｉから前記ホストｉ＋１（ｉ＝０〜ｎ−１）へバケツリレーによってコピーする処理と、（ｃ）前記コピー先のホストｉ（ｉ＝１〜ｎ）において前記断片ファイルを結合する処理と、をコンピュータに実行させることを特徴とする。
【００１２】
本発明の第３の視点に係るリモートファイルコピー装置は、ファイルをコピー元のホスト０から複数台のコピー先のホストｉ（ｉ＝１〜ｎ）へリモートコピーする装置であって、前記ファイルを複数の断片ファイルに分割する手段と、前記断片ファイルを前記ホストｉから前記ホストｉ＋１（ｉ＝０〜ｎ−１）へバケツリレーによってコピーする手段と、前記断片ファイルを結合する手段と、を備えたことを特徴とする。
【００１３】
第１の展開形態のリモートファイルコピー方法は、前記第１の視点における前記コピー工程（ｂ）において、前記断片ファイルのバケツリレーによるコピーがパイプライン式に行われることを特徴とする。
【００１４】
第２の展開形態のリモートファイルコピー方法は、前記第１の視点における前記コピー工程（ｂ）において、前記ホストｊ（ｊ＝ｉ＋１〜ｎ）のリストを送付する工程と、
前記リストを参照して前記断片ファイルをコピーする工程と、を含むことを特徴とする。
【００１５】
第３の展開形態のリモートファイルコピー方法は、前記第１の視点における前記コピー工程（ｂ）において、前記断片ファイルの結合先ファイルにおける結合位置を示す情報を送付する工程を含み、前記第１の視点における前記結合工程（ｃ）において、前記断片ファイルの結合位置情報と、前記結合先ファイルのサイズが一致することを確認する工程を含むことを特徴とする。
【発明の効果】
【００１６】
本発明に係るファイルのリモートコピー方法によって、ユーザが任意のコピー元ホストから複数の任意のコピー先ホストへサイズの大きなファイルを同時にリモートコピーする場合であっても、コピー元のホストに負荷が集中することがなく、かつ、複数のホストへのリモートコピーを高速に行うことができる。
【００１７】
また、本発明に係るファイルのリモートコピー方法は、コンピュータのＯＳ上のソフトウェアとして、提供することができる。
【００１８】
また、本発明に係るファイルのリモートコピー方法では、ユーザからの要求に応じて、ファイルがリモートコピーされるため、ディスクを浪費しない。
【００１９】
さらに、本発明に係るファイルのリモートコピー方法は、オーバーヘッドの少ない、効率のよいファイルコピーを実現する。
【００２０】
さらに、本発明に係るファイルリモートコピー法では、ユーザがコマンド実行時において、コピー先のホストを都度指定する使い方が可能となる。
【００２１】
なお、本発明に係るファイルのリモートコピー方法は、ホスト間でファイルをストリームとして送受信するのではなく、元ファイルをいくつかの小さなファイルに分割して、通常のリモートファイルコピー手段を用いるため、特別なサーバプログラムを開発し、事前にポートを空けるなどの準備の必要もない。
【発明を実施するための最良の形態】
【００２２】
次に、本発明の実施の形態に係るファイルリモートコピー装置および方法について図面を参照して詳細に説明する。
【００２３】
図１は、本発明の実施の形態に係るリモートファイルコピー装置の構成図である。
【００２４】
ここでは、一例として、コピー先のホストの台数を３台とする。
【００２５】
リモートファイルコピー装置は、図１を参照すると、ネットワーク２０に接続されたコピー元ホスト１０、コピー先のホスト１１、１２、１３、各ホストにインストールされたソフトウェア３０および各ホストの作業ディレクトリ４０、４１、４２、４３で構成される。
【００２６】
ソフトウェア３０は、デーモンプログラム３１、インタフェースプログラム３２、タグファイル出力３３およびタグファイル読込３４を備える。
【００２７】
また、ソフトウェア３０はＯＳが提供するＯＳコマンド群５０を内部で利用する。利用されるＯＳコマンド群５０には、リモートコピー５１、ファイル削除５２、ファイル分割５３、ファイル連結５４、ファイルサイズ取得５５およびディレクトリ内のファイル一覧取得５６が含まれる。
【００２８】
図２は、本発明の実施の形態に係るリモートファイルコピー装置における構成要素間の関連を示す。
【００２９】
図３は、本発明の実施の形態に係るリモートファイルコピー方法を説明するための図であり、コピー元ホスト１０上のコピー元ファイル６０を３台のコピー先ホスト１１、１２、１３へリモートコピーする様子を示している。
【００３０】
図２、３を参照して、実施の形態に係るリモートファイルコピー装置の動作を説明する。
【００３１】
ユーザ１００がコピー元ホスト１０に備えたインタフェースプログラム３２を起動する。インタフェースプログラム３２は、コピー元ファイル６０をファイル分割５３のコマンドによって分割し、分割された断片ファイル８０を、先頭から順番にコピー先ホスト１１の作業ディレクトリ４１へリモートコピーする。１つの断片ファイルのリモートコピーが完了するとインタフェースプログラム３２は、続いて、いまコピーした断片ファイル８０に対応するタグファイル７０をタグファイル出力３３によって出力し、出力したタグファイル７０をコピー先ホスト１１の作業ディレクトリ４１に向けて、リモートコピーする。
【００３２】
タグファイル７０には断片ファイル８０のファイル名、コピー先ホストおよびパスの一覧に関する情報が含まれる。
【００３３】
断片ファイル８０およびタグファイル７０は、リモートコピーが完了した時点で、ファイル削除５２のコマンドによって削除する。
【００３４】
インタフェースプログラム３２による処理は、全ての断片ファイル８０およびタグファイル７０のコピー先ホスト１１への送付が完了した時点で終了する。
【００３５】
コピー先ホスト１１のＯＳ上にはデーモンプログラム３１が常駐している。デーモンプログラム３１は作業ディレクトリ４１にタグファイル７１が存在しているかどうかを一定の時間間隔で監視し、新たなタグファイル７１を発見するたびに処理を行うイベント駆動式のプログラムである。
【００３６】
デーモンプログラム３１はタグファイル７１を発見するとその内容を参照するとともに、その内容にしたがって、断片ファイル８１をローカルのコピー先ファイル６１へ連結し、併せて、断片ファイル８１を次のコピー先ホスト１２へリモートコピーする。
【００３７】
デーモンプログラム３１は、断片ファイル８１を送付した後、タグファイル７１のコピー先リモートパスのリストからコピー先ホスト１２を消去したタグファイル７２をコピー先ホスト１２の作業ディレクトリ４２へ送付する。
【００３８】
断片ファイル８１のコピー先ファイル６１への連結および次のコピー先ホスト１２へのコピーが完了したら、断片ファイル８１およびタグファイル７１を消去し、デーモンプログラム３１はメインループに戻る。
【００３９】
コピー先ホスト１２においても、コピー先ホスト１１における処理と同様の処理が行われる。
【００４０】
コピー先ホスト１３は、最後のコピー先ホストであるため、次のホストへのリモートコピーおよびタグファイル送付は行わないものの、それ以外の処理は、コピー先ホスト１１および１２における処理と同様である。
【００４１】
以上、説明したことから、コピー先ホスト１２に対してはコピー元ホスト１０から直接のリモートコピーを行わず、コピー先ホスト１１を経由して間接的にコピーが行われる。同様にコピー先ホスト１３に対するコピー処理は、コピー先ホスト１２によって実行される。したがって、コピー元ホスト１０や、途中のコピー先ホスト（今の例では、コピー先ホスト１１および１２）において、コピー処理の負荷が集中する事態を避けることができる。
【００４２】
また、上記の実施の形態においては、断片ファイルのコピーが完了したコピー先ホスト名をタグファイルのリストから消去しながら、タグファイルをリレーしていくことにより、リモートコピーが行われる。
【００４３】
次に、図４ないし図１１を参照して、本発明の実施の形態に係るリモートファイルコピー方法における、処理をさらに詳細に説明する。
【００４４】
図５は、本発明の実施の形態に係るリモートファイルコピー方法を説明するための構成図である。
【００４５】
図５を参照すると、ネットワーク２０に、コピー元ホスト１０およびコピー先ホスト１１、１２、１３が接続されており、ＩＰアドレスは、一例として、順に１９２．１６８．１０．１、１９２．１６８．１０．２、１９２．１６８．１０．３、１９２．１６８．１０．４であるものとする。
【００４６】
各ホストはそれぞれ作業ディレクトリ４０、４１、４２、４３を備える。
【００４７】
初期状態において、作業ディレクトリはいずれも空であるものとする。
【００４８】
事前の準備として、ホスト１０ないし１３のリモートコピー用のアクセスアカウントの登録や権限の設定などを適切に行っておく。また、ホスト１０ないし１３のいずれについても、本発明の実施の形態に係るデーモンプログラム３１を導入する。この際、デーモンプログラム３１の実行時におけるアクセス権限についても、適切に設定しておく。
【００４９】
ユーザ１００がコピー元ホスト１０においてインタフェースプログラム３２を実行することにより、ファイルのリモートコピーが開始される。
【００５０】
インタフェースプログラム３２に与える引数の例を図５に示した。
【００５１】
ここでは、例として、コピー元ファイル６０のパスは／ｈｏｍｅ／ｈｏｇｅ／ｂｉｇｆｉｌｅとし、サイズは３００メガバイトであるものとする。コピー先ホスト１１ないし１３のＩＰアドレス（１９２．１６８．１０．２、１９２．１６８．１０．３、１９２．１６８．１０．４）は、コピー先のリモートパスのホスト部分に、それぞれ指定されている。
【００５２】
コピー先ホスト１１ないし１３において、コピー先ファイル６１ないし６３が格納されるパスもそれぞれ異なっており、それぞれ、／ｖａｒ／ｆｏｏ／ｂｉｇｆｉｌｅ、／ｖａｒ／ｂａｒ／ｂｉｇｆｉｌｅ、／ｖａｒ／ｂａｚ／ｂｉｇｆｉｌｅであるものとした。ファイルの分割数の指定は省略されている。
【００５３】
分割数が省略された場合は、コピー先ホストの個数（ここでは３）を分割数のデフォルト値として用いることが好ましい。ちなみに、図３に示した例は、分割数を４と明示的に指定した場合に相当する。
【００５４】
図５の引数にもとづいて、インタフェースプログラム３２を実行すると、図６の状態を得る。
【００５５】
図６はコピー元ホスト１０において、３００ＭＢのファイルｂｉｇｆｉｌｅが作業ディレクトリ４０中で、１００ＭＢのサイズの３つの断片ファイルｂｉｇｆｉｌｅ．１、ｂｉｇｆｉｌｅ．２、 ｂｉｇｆｉｌｅ．３へ分割された状況を示している。
【００５６】
断片ファイルの命名規則は、ＯＳが提供するファイル分割（図１の５３）コマンドの仕様に依存する。ここでは、一例として「ピリオド＋連番の数字」とした。
【００５７】
図６の状態から、インタフェースプログラム３２の処理を続けると、図７の状態を得る。
【００５８】
図７は、１番目の断片ファイルｂｉｇｆｉｌｅ．１のコピー先ホスト１１へのリモートコピーが完了し、タグファイルの送付も完了した直後の状態を示している。
【００５９】
コピー先ホスト１１のデーモンプログラム３１は、まだ、このタグファイルを発見していない。なお、図７に示すように、タグファイルが置かれるパスは、一例として、「作業ディレクトリ／ｔａｇ／断片ファイル名」とした。
【００６０】
本動作例における、タグファイルの一覧を図４に示す。
【００６１】
図７の、コピー先ホスト１１の作業ディレクトリ４１におけるタグファイル”／ｖａｒ／ｗｏｒｋ／ｔａｇ／ｂｉｇｆｉｌｅ．１”の内容は、図４のタグファイル７１ａに対応している。
【００６２】
タグファイル７１ａの内容は、図４を参照すると、上から順に、断片ファイルのパス（／ｖａｒ／ｗｏｒｋ／ｂｉｇｆｉｌｅ．１）、開始サイズ（＝０）、コピー先リモートパスのリストである。
【００６３】
リモートパスのリストには、その先頭（１９２．１６８．１０．２：／ｖａｒ／ｆｏｏ／ｂｉｇｆｉｌｅ）部分に自ホストのパスが含まれており、パス（／ｖａｒ／ｆｏｏ／ｂｉｇｆｉｌｅ）が元ファイルを復元すべきローカルパスを指し示している。
【００６４】
図７に戻り、コピー先ホスト１１のデーモンプログラム３１がタグファイル７１ａを発見した後の動作を説明する。
【００６５】
デーモンは断片ファイルをコピー先のローカルパス（／ｖａｒ／ｆｏｏ／ｂｉｇｆｉｌｅ）の示すファイルへ連結する前に、開始サイズが一致しているか否かをチェックする。
【００６６】
図４のタグファイル７１ａは開始サイズ＝０であり、図７のホスト１１をみると／ｖａｒ／ｆｏｏ／ｂｉｇｆｉｌｅ＝（無し）となっているので、サイズゼロで一致している（ファイルが無い場合、ファイルサイズはゼロとする。）。チェックに成功したため、ホスト１１のデーモンプログラム３１は、続いて、断片ファイル（／ｖａｒ／ｗｏｒｋ／ｂｉｇｆｉｌｅ．１）をコピー先パス（／ｖａｒ／ｆｏｏ／ｂｉｇｆｉｌｅ）におけるファイルへ連結する（ファイル連結５４コマンドは、連結先にファイルが存在しないときは、新たにサイズゼロのファイルを作成してから連結を行う。）。
【００６７】
なお、サイズチェックにおいて値が一致しなかった場合は、タグファイル７１ａを削除し、ファイル連結は行わない。ただし、例外として図４のタグファイル７１ａ、７２ａ、７３ａのように、タグファイル中の開始サイズの値がゼロの場合は、最初の断片ファイルを表すタグであるから無条件にサイズが一致したものとみなす。この例外が必要である理由は、上書きコピーを可能とするためである。
【００６８】
ところで、本動作例のリモートコピーが全て完了する前に、ユーザによってさらに同じファイルのリモートコピーが起動された場合、サイズチェック処理によって、原則的に、ファイルの整合性は保たれる。ただし、稀な場合ではあるが、分割数が同じであって、断片ファイルの到着順序が前後した場合には、ファイルの整合性が失われる。
【００６９】
ファイルの連結が完了すると、デーモンプログラム３１は、ホスト１２へ断片ファイルをリモートコピーし、タグファイルも送付して図８の状態を得る。このとき送付されたタグファイルを図４の７２ａに示す。タグファイル７２ａを参照すると、コピー先のリモートパス一覧からホスト１１の行が消去されていることが分かる。
【００７０】
さらに、図８の作業ディレクトリ４１に示すように、コピー元ホスト１０からコピー先ホスト１１へ２番目の断片ファイルｂｉｇｆｉｌｅ．２が送られて来ている。これはコピー先ホスト１１から１２への断片ファイルｂｉｇｆｉｌｅ．１がコピーされるのと同時に行われたものである。本発明の特徴の一つは、このように、複数の断片ファイルのリモートコピーが同時にパイプライン処理される点にある。
【００７１】
図８の状態から、コピー先ホスト１１および１２において、上記の説明と同様の処理が行われ、図９の状態を得る。
【００７２】
図９の時点で、コピー元ホスト１０は断片ファイルを全て送出し終えている。したがって、ユーザ１００が実行したインタフェースプログラム３２は、この時点で処理が終了している。一方、コピー先ホスト１１ないし１３においては、まだ断片ファイルのコピーが完了していないため、デーモンプログラム３１による処理は続行する。
【００７３】
さらに、同様の処理を進めた結果、図１０の状態が得られる。この時点で、コピー先ホスト１１、１２へのコピーは完了しており、コピー先ホスト１３へのコピーを残すのみとなっている。
【００７４】
最終的には図１１の状態となって、リモートコピーの処理は完了する。
【００７５】
本発明の実施の形態に係る、インタフェースプログラム３２のフローチャートを図１３に示す。また、デーモンプログラム３１のフローチャートを図１４および１５に示す。図１５は、図１４のタグファイル処理の詳細を示すフロー図である。
【００７６】
インタフェースプログラム３２、タグファイル出力３３、タグファイル読込３４の入出力パラメータを図１２に示す。インタフェースプログラム３２の引数として、コピー元のファイルのパスおよび１以上のコピー先のリモートパスが指定されるが、分割数の指定は任意である。分割数は、例えば、コピー先のリモートパスの個数をデフォルト値とすることが好ましい。
【００７７】
一方、タグファイル出力３３およびタグファイル読込３４の引数として、タグファイルのパス、断片ファイルのパス、開始サイズおよび１以上のコピー先のリモートパスが指定される。
【００７８】
図１３ないし図１５に含まれるｗｏｒｋｄｉｒ（作業ディレクトリのパス）およびｗａｉｔｔｉｍｅ（タグファイル監視間隔）は、プログラム作成者が適当な値をプログラム中にハードコーディングしてもよいし、ユーザによる設定値としてもよい。一例として、ｗａｉｔｔｉｍｅは１ないし５秒程度とするとよい。また、フローチャートに含まれる、「要素数（配列名）」は配列の要素数を取り出す関数を示し、「ファイルサイズ（パス名）」は、パスで指定されたファイルのサイズを返す関数である。また「変数名［］」の記号は、配列型の変数であることを示す。
【００７９】
図１３を参照して、インタフェースプログラム３２の処理のフローを説明する。はじめに、引数として指定されたコピー元およびコピー先のファイルのパスならびに分割数を変数に格納する（ステップＳ１）。次に、コピー先のファイルのパスが指定されたか否かを判定し（ステップＳ２）、指定されている場合は、ファイルを分割数に応じて分割し、断片ファイルのパスを変数ｐａｒｔに格納する（ステップＳ３）。最初のコピー先ホストのパスを変数ｎｅｘｔ＿ｈｏｓｔへ格納し、断片ファイルのインデックスｃｏｕｎｔｅｒおよび断片ファイルのコピー先ファイルにおける連結位置ｓｉｚｅを初期化する（ステップＳ４）。断片ファイルの１つを、コピー先ホストの作業ディレクトリへリモートコピーする（ステップＳ５）。次に、タグファイルのパスｔａｇｐａｔｈを設定してタグファイルを出力するとともに、タグファイルをコピー先ホストの作業ディレクトリへリモートコピーする（ステップＳ６）。不要となった、断片ファイルとタグファイルを削除し、断片ファイルのインデックスを１つ増分するとともに、断片ファイルのコピー先のファイルにおける連結位置ｓｉｚｅを更新する（ステップＳ７）。すべての断片ファイルの処理が完了したか否かを判定し（ステップＳ８）、未完の場合には上記のステップＳ５へ戻り、上記の処理を繰り返す。
【００８０】
次に、図１４を参照して、デーモンプログラム３１の処理のフローを説明する。デーモンプログラム３１は、イベント駆動型のプログラムである。はじめに、作業ディレクト内のタグファイル一覧を取得して、変数ｆｉｌｅへ格納する（ステップＳ９）。タグファイルが存在するか否かを判定し（ステップＳ１０）、存在しない場合には、一定時間待機し（ステップＳ１１）、上記のステップＳ９へ戻る。タグファイルが存在した場合には、タグファイルのインデックスｃｏｕｎｔｅｒを初期化する（ステップＳ１２）。図１５を参照して後述するように、タグファイルに基づく断片ファイルの処理を実施する（ステップＳ１３）。タグファイルのインデックスを１つだけ増分し（ステップＳ１４）、すべてのタグファイルの処理が完了したか否かを判定する（ステップＳ１５）。未処理のタグファイルがある場合には上記のステップＳ１３に戻り、ない場合には上記のステップＳ１１に戻る。
【００８１】
次に、図１５を参照して、デーモンプログラム３１中における、タグファイルに基づく断片ファイルの処理の詳細フローを説明する。はじめに、タグファイルへのパスを変数ｔａｇｐａｔｈへ格納し、タグファイルを読み込んだ後、不要となったタグファイルを削除する（ステップＳ１６）。デーモンプログラム３１によって、断片ファイルに対する処理（すなわち、リモートコピーまたはファイル結合）が必要であるか否かを判定し（ステップＳ１７）、処理が必要と判断した場合には、コピー先ファイルのパスを変数ｐａｔｈへ格納する（ステップＳ１８）。断片ファイルが先頭の断片ファイルであるか否かを判定し（ステップＳ１９）、先頭の断片ファイルの場合であって、ｐａｔｈにファイルが存在したときには、ファイルへの上書き処理を行うために、ｐａｔｈに位置するファイルを削除する（ステップＳ２０）。次に、断片ファイルのコピー先ファイルにおける連結位置が正しいか否かを判定し（ステップＳ２１）、正しい場合に限り、コピー先ファイルに断片ファイルを連結する（ステップＳ２２）。次に、断片ファイルをリモートコピーすべき、コピー先のホストが有るか否かを判定し（ステップＳ２３）、無ければ断片ファイルを削除して、処理を終える。コピー先のホストがある場合には、変数ｎｅｘｔ＿ｈｏｓｔへコピー先のホスト名を格納し、分割ファイルをコピー先のホストの作業ディレクトリへリモートコピーした後、断片ファイルを削除する（ステップＳ２４）。次に、タグファイルに指定された自ホストおよびコピー先ホストのリストから先頭要素（すなわち自ホスト）を除いた、新たなタグファイルを出力するとともに次のコピー先ホストへリモートコピーし、コピー済みのタグファイルは削除する（ステップＳ２５）。
【００８２】
なお、図１のタグファイル出力３３は、「引数で与えられた変数の内容に従って１行ずつファイルに書き出す」処理を行い、タグファイル読込３４は、「ファイルから読み込んで引数で指定された変数に格納する」処理を行う。
【産業上の利用可能性】
【００８３】
本発明は、比較的小規模のネットワークでかつ各コンピュータがローカルのディスクしか持たないような環境において大きなファイルを各コンピュータに配布するような場合に利用することができる。
【００８４】
例えば、ＯＳのアップデートプログラムを多くの台数のクライアントコンピュータに配布する場合に利用することができる。
【００８５】
またバックアップイメージファイルを２台以上のリモートホストに退避させておきたい場合になどにも本発明は有効である。バックアップサーバを増設したり２重化したりといったことが手軽に行えるという利点がある。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施の形態に係るリモートファイルコピー装置の構成図である。
【図２】本発明の実施の形態に係るリモートファイルコピー装置における構成要素間の関連を示す図である。
【図３】本発明の実施の形態に係るリモートファイルコピー方法を説明するための図である。
【図４】本発明の実施の形態に係るリモートファイルコピー方法におけるタグファイルを示す図である。
【図５】本発明の実施の形態に係るリモートファイルコピー装置の構成図およびインタフェースプログラムの引数の例を示す図である。
【図６】本発明の実施の形態に係るリモートファイルコピー装置の動作を説明するための第１の図である。
【図７】本発明の実施の形態に係るリモートファイルコピー装置の動作を説明するための第２の図である。
【図８】本発明の実施の形態に係るリモートファイルコピー装置の動作を説明するための第３の図である。
【図９】本発明の実施の形態に係るリモートファイルコピー装置の動作を説明するための第４の図である。
【図１０】本発明の実施の形態に係るリモートファイルコピー装置の動作を説明するための第５の図である。
【図１１】本発明の実施の形態に係るリモートファイルコピー装置の動作を説明するための第６の図である。
【図１２】本発明の実施の形態に係るリモートファイルコピー装置におけるインタフェースプログラム、タグファイル出力およびタグファイル読込の引数を説明するための図である。
【図１３】本発明の実施の形態に係るリモートファイルコピー装置におけるインタフェースプログラムのフローチャートである。
【図１４】本発明の実施の形態に係るリモートファイルコピー装置におけるデーモンプログラムのフローチャートである。
【図１５】本発明の実施の形態に係るリモートファイルコピー装置におけるデーモンプログラムの一部（タグファイルに基づく断片ファイルの処理）のフローチャートである。
【符号の説明】
【００８７】
１０  コピー元ホスト
１１、１２、１３  コピー先ホスト
２０  ネットワーク
３０  ソフトウェア
３１  デーモンプログラム
３２  インタフェースプログラム
３３  タグファイル出力
３４  タグファイル読込
４０、４１、４２、４３  作業ディレクトリ
５０  ＯＳコマンド群
５１  リモートコピー
５２  ファイル削除
５３  ファイル分割
５４  ファイル連結
５５  ファイルサイズ取得
５６  ファイル一覧取得
６０  コピー元ファイル
６１、６２、６３  コピー先ファイル
７０、７１、７１ａ、７１ｂ、７１ｃ、７２、７２ａ、７２ｂ、７２ｃ、７３、７３ａ、７３ｂ、７３ｃ  タグファイル
８０、８１、８２、８３  断片ファイル
１００  ユーザ
【図１】
2008192058.tif 000003
【図２】
2008192058.tif 000004
【図３】
2008192058.tif 000005
【図４】
2008192058.tif 000006
【図５】
2008192058.tif 000007
【図６】
2008192058.tif 000008
【図７】
2008192058.tif 000009
【図８】
2008192058.tif 000010
【図９】
2008192058.tif 000011
【図１０】
2008192058.tif 000012
【図１１】
2008192058.tif 000013
【図１２】
2008192058.tif 000014
【図１３】
2008192058.tif 000015
【図１４】
2008192058.tif 000016
【図１５】
2008192058.tif 000017