(57)【要約】【課題】リモート計算機からローカル計算機へ送信すべき情報の量を小さく抑えることができるリモートファイル操作方法を、提供する。【解決手段】入力装置２３によって入力された操作コマンドは、クライアント装置１からサーバ装置２へ送信される。サーバ装置１は、ファイル情報を当該操作コマンドに基づいて更新するとともに、ディスク装置３内のファイルを当該操作コマンドに従って操作し、更新後のファイル情報が操作後のファイルに対応している場合には、差異なしの旨の結果情報を、クライアント装置２へ送信する。クライアント装置２は、この結果情報を受信すると、ファイル情報２７を上記操作コマンドに基づいて更新し、更新後のファイル情報の内容をディスプレイ２６上に表示する。【選択図】図１
2010033335.tif 000002
【特許請求の範囲】
【請求項１】
ローカル計算機から、ネットワークを通じて、リモート計算機上のファイルサーバに対して、ディスク装置内に格納されているファイルの操作を行わしめることを可能とするリモートファイル操作方法であって、
前記リモート計算機は、前記ディスク装置内に格納されているファイルについてのファイル情報を、自己の記憶部に記憶するとともに前記ローカル計算機へ送信し、前記ローカル計算機は、前記リモート計算機から受信した前記ファイル情報を、自己の記憶部に記憶し、
前記ローカル計算機が、前記ファイルに対する操作を命じる操作コマンドを前記リモート計算機へ送信すると、前記リモート計算機は、自己の前記記憶部に記憶されているファイル情報を前記操作コマンドに基づいて更新するとともに、前記ディスク装置内に格納されているファイルを前記操作コマンドに従って操作し、更新された前記ファイル情報が操作後の前記ファイルの状態に対応している場合には、その旨の結果情報を前記ローカル計算機へ送信し、
前記ローカル計算機は、前記結果情報を受信すると、自己の前記記憶部に記憶されているファイル情報を前記操作コマンドに基づいて更新し、更新後のファイル情報の内容を表示する
ことを特徴とするリモートファイル操作方法。
【請求項２】
前記ファイル情報の前記操作コマンドに基づく更新とは、前記ファイル情報によって認識されるファイルに対して前記操作コマンドに従った操作を実行した場合における操作実行後のファイルの状態を示すファイル情報の内容を予測した上で、前記ファイル情報の内容を、当該予測した内容に変更することである
ことを特徴とする請求項１記載のリモートファイル操作方法。
【請求項３】
更新された前記ファイル情報が操作後の前記ファイルの状態に対応しているとは、更新された前記記憶部に記憶されたファイル情報と、操作後の前記ファイルの状態を示すべきファイル情報とが一致していることである
ことを特徴とする請求項１記載のリモートファイル操作方法。
【請求項４】
前記リモート計算機は、更新された前記記憶部に記憶されたファイル情報と、操作後の前記ファイルの状態を示すファイル情報とが一致していない場合には、両者の差分を前記ローカル計算機へ送信し、
前記ローカル計算機は、自己の前記記憶部に記憶されているファイル情報を前記操作コマンドに基づいて更新し、更に前記差分を反映させ、前記差分を反映させた前記ファイル情報の内容を表示する
ことを特徴とする請求項３記載のリモートファイル操作方法。
【請求項５】
前記リモート計算機は、更新された前記記憶部に記憶されたファイル情報と操作後の前記ファイルの状態を示すファイル情報との差分のデータ量が、後者のファイル情報のデータ量よりも大きい場合には、後者のファイル情報を前記ローカル計算機へ送信し、
前記ローカル計算機は、受信したファイル情報により、自己の前記記憶部に記憶されているファイル情報を上書きし、上書き後の前記ファイル情報の内容を表示する
ことを特徴とする請求項４記載のリモートファイル操作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ローカル計算機から、ネットワークを通じて、リモート計算機上のファイルサーバに対して、ディスク装置内に格納されているファイルの操作を行わしめることを可能とするリモートファイル操作方法に、関する。
【背景技術】
【０００２】
計算機において、個々のデータは、データを格納できるファイルと、複数のファイルを格納できるディレクトリ(オペレーティングシステムによっては「フォルダ」とも呼ばれ
る) を管理単位として、管理される。
【０００３】
即ち、ディスク装置内の記憶領域の全体が論理的に一つのディレクトリ（ルート）と扱われ、その一部が、任意に複数のディレクトリに区分される。なお、ディレクトリには、ファイルの他に別のディレクトリ（サブディレクトリ）を格納することもできる。従って、全体として、木構造のディレクトリ構造を有するものとなっている。そして、各ファイルは、ルートを含む任意のディレクトリに格納され得、利用者の要求に応じて、ファイルの複写、移動、削除、名称変更、更新等、或いは、ディレクトリの複写、移動、削除、名称変更、新規作成等の操作(以降、これらを総称して「操作」という)が可能になっている。
【０００４】
ところで、ＬＡＮ（Local Area Network）といった小規模ネットワークの普及により、複数のユーザ間で共用されるデータの不整合を防止する等の目的で、かかる共用データをリモート計算機(以下「サーバ装置」と呼ぶ)のディスク装置に上記木構造を有するものとして置いておくとともに、所定のルールの下で各レベルの権限を与えられたローカル計算機(利用者が直接操作を行う計算機)からのみ、共用データの操作を可能としたシステム（以下「ファイル操作システム」という）が、一般化している。
【０００５】
かかるファイル操作システムにおいては、各ローカル計算機のディスプレイ上には、当該ローカル計算機によって指定された上記リモート計算機のディスク装置内の参照対象ディレクトリ配下に格納されているファイルとサブディレクトリの状態が、これらファイル及びディレクトリの名前，所有者，グループ，サイズ，最終更新日時(以下、これら情報
を「ファイル情報」という)とともに、一覧表示される必要がある。更に、ファイル操作
の権限を有するクライアントからのコマンドに基づき、ファイル又はサブディレクトリの操作がなされると、操作後のファイル及びサブディレクトリの状態が、各クライアントのディスプレイ上に表示されるので、利用者は、ファイル及びサブディレクトリの操作の結果を知ることができる。
【０００６】
このように、クライアントのディスプレイ上でのファイル情報の表示を可能とするために、従来のファイル操作システムにおいては、図４に示すように、ファイルを操作するためのコマンドを受信する都度、サーバ装置は、参照対象となっているディレクトリ又はその配下のファイル又はサブディレクトリの状態が変化したか否かに拘わらず、参照対象ディレクトリ及びその配下の全ファイル及全サブディレクトリの全ファイル情報を、コマンド送信元クライアントへ、転送していた。
【０００７】
なお、図４において、記号Ｎはネットワークを示しているとともに「クライアント１００」の枠内の線図は、そのディスプレイ上における表示例を示している。具体的には、この表示例においては、サーバ１１０のディスク装置内における参照対象ディレクトリ１０１，当該参照対象ディレクトリ１０１配下に格納されている複数のファイル１０２及びサ
ブディレクトリ１０３，並びに、当該サブディレクトリ１０３配下の複数のファイル１０４の状態が、表示されている。そして、各ディレクトリ配下の複数のファイル１０２，１０４のファイル情報が、夫々、表形式（図４における左側から順に、ファイル名，サイズ，所有者，グループ，最終更新日時の各カラムからなる表の形式）にて、一括して表示されている。
【０００８】
以上のように、参照対象ディレクトリ及びその配下の全ファイル及全サブディレクトリの全ファイル情報がコマンド送信元クライアントへ転送される結果、従来のファイル操作システムにおいては、参照対象ディレクトリの配下のファイルやサブディレクトリの個数が多数である場合には、転送すべきファイル情報の量が膨大となるので、処理時間がその分長くなり、また、ネットワーク負荷も過大となるという問題が生じていた。例えば、大規模シミュレーションを実現するスーパーコンピュータでは、通常のコンピュータの10万倍の処理能力を有する。従って、シミュレーションが出力する結果ファイルは、通常の10万倍の個数になるので、転送する情報量の問題が顕著となっていた。
【特許文献１】特開2003-505781号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
かかる問題を解決するための手段として、出願人は、先ず、図５に示すような、操作前のファイル及びサブディレクトリのファイル情報をサーバ装置のキャッシュ(一時保存領
域)に保存しておき、操作後のファイル及びサブディレクトリについてのファイル情報と
キャッシュしているファイル情報との差分情報のみをサーバ装置からクライアントへ転送し、クライアントにおいて、操作前のファイル情報を当該差分情報に基づいて更新することによって、操作後のファイル及びサブディレクトリの状態を再現する方法(差分転送方
式)に、想到した。
【００１０】
なお、図５ａに示されている状態は初回表示時のものであるので、サーバにキャッシュされているファイル情報は、実際のディスク装置内のファイル及びサブディレクトリを示しており、その全てが、クライアントへ転送され、そのディスプレイ上に表示される。これに対して、図５ｂに示されている状態は２回目以降の表示時のものであるので、キャッシュされている操作前のファイル情報と、操作後（一部ファイル［file002.dat］が更新
された事に因りサイズ及び最終更新日時が変更され、また、新たなファイル［file100.dat］が追加された後）におけるディスク装置内のファイル及びサブディレクトリとが比較
され、その差分のみが、クライアント端末転送されてその表示内容の更新に用いられるとともに、キャッシュされているファイル情報が更新されている。
【００１１】
かかる差分転送方式によると、操作前後における変化が小さい場合には有効であるものの、操作前後のファイル及びサブディレクトリのファイル情報の変化量が、操作後のファイル及びサブディレクトリのファイル情報の絶対量よりも大きい場合には、却って従来の方式よりも不利になってしまう。例えば、操作前の全ファイルの半数以上を削除する場合に、この問題が生じる。
【００１２】
さらに、クライアントにおいて、簡単なプロセスを通じてファイル及びサブディレクトリの状態を予測可能な場合においても、操作前後のファイル情報の差分情報を全て転送しなければならないので、依然として無駄なテータ転送が大きい。例えば、１０万個のファイルを格納するディレクトリを複写又は移動（ディレクトリの名前の変更を含む）した場合、その操作内容（操作対象のファイル名及び操作の種類）が通知されさえすればクライアント側においてファイル及びサブディレクトリの状態が予測可能であるにも拘わらず、１０万個のファイル情報を転送しなければならず、従来方式における問題の解決手段としては不十分である。
【００１３】
そこで、本案の課題は、差分転送方式よりも有効に従来方式の問題を解決し、参照対象ディレクトリの配下のファイルの個数が多数であっても、操作前後におけるかかるファイルの状態が大きく変化する場合であっても、リモート計算機（サーバ）からローカル計算機（クライアント）へ送信すべき情報の量を小さく抑えることができるリモートファイル操作方法を提供することとする。
【課題を解決するための手段】
【００１４】
上記課題を達成するために案出された本案によるリモートファイル操作方法によると、リモート計算機とローカル計算機は、以下のように動作する。即ち、リモート計算機は、ディスク装置内に格納されているファイルについてのファイル情報を、自己の記憶部に記憶するとともにローカル計算機へ送信する。すると、ローカル計算機は、リモート計算機から受信したファイル情報を、自己の記憶部に記憶する。しかる後に、ローカル計算機が、ファイルに対する操作を命じる操作コマンドをリモート計算機へ送信すると、リモート計算機は、自己の記憶部に記憶されているファイル情報を操作コマンドに基づいて更新するとともに、ディスク装置内に格納されているファイルを操作コマンドに従って操作し、更新されたファイル情報が操作後のファイルの状態に対応している場合には、その旨の結果情報をローカル計算機へ送信する。ローカル計算機は、この結果情報を受信すると、自己の記憶部に記憶されているファイル情報を操作コマンドに基づいて更新し、更新後のファイル情報の内容を表示する。
【００１５】
このように構成されると、更新されたファイル情報が操作後のファイルの状態に対応している場合には、リモート計算機からローカル計算機へ送信されるデータは、その旨の結果情報のみであるので、データ量を可及的に小さくすることができる。しかも、リモート計算機におけるファイル情報の更新は、ローカル計算機におけるファイル情報の更新と同じ操作コマンドに基づいて、同じ手法に従ってなされるので、初期状態において両者の内容が一致している限り、更新後も両者の内容の一致性は保たれる。従って、リモート計算機において、更新されたファイル情報が操作後のファイルの状態に対応しているならば、ローカル計算機における更新後のファイル情報は、操作後におけるディスク装置内に格納されているファイルの状態を正しく示していることになる。よって、ローカル計算機において更新されたファイル情報に基づいて表示を行っても、その表示の内容は正しいことになるので、何等支障がない。
【発明の効果】
【００１６】
以上のように構成された本案によると、差分転送方式よりも有効に従来方式の問題を解決し、参照対象ディレクトリの配下のファイルの個数が多数であっても、操作前後におけるかかるファイルの状態が大きく変化する場合であっても、リモート計算機（サーバ）からローカル計算機（クライアント）へ送信すべき情報の量を小さく抑えることが、可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、図面に基づいて、本案によるリモートファイル操作方法を適用したリモートファイル操作システムの実施の形態を、説明する。
【００１８】
＜システム構成＞
図１は、本形態によるリモートファイル操作システムの、概略システム構成図である。図１に示すように、当該リモートファイル操作システムは、ＬＡＮ等のネットワークＮを介して相互に接続されたサーバ装置１及び複数台（図１では１台のみ図示）のクライアント装置２，並びに、各種インタフェースを介してサーバ装置に接続されたディスク装置３から、構成されている。
【００１９】
リモート計算機としてのサーバ装置１は、バスＢを介して相互に接続されたＣＰＵ１０，ＲＡＭ１１，通信アダプタ１２，インタフェース１３及び、内蔵ハードディスク１４を、主要構成としている。
【００２０】
記憶部としての内蔵ハードディスク１４は、各種プログラムを格納するためのディスク装置である。ＣＰＵ１０は、ハードディスク１３に格納されている各種プログラムを実行する中央処理装置である。メモリ１１は、ＣＰＵ１０が上記処理を実行するに際して作業領域が展開される主記憶装置である。通信アダプタ１２は、ネットワークＮを終端して当該ネットワークＮを通じた通信を司る装置である。インタフェース１３は、サーバ装置１とディスク装置３を論理的に接続して両者間でのデータ授受を可能とするためのインタフェースであれば良く、ＵＳＢやＳＣＳＩであっても、ネットワークであっても良い。
【００２１】
ディスク装置３は、例えば、所謂外付けのハードディスク装置であるが、十分な容量がありさえすれば、フラッシュメモリ等の大容量不揮発メモリであっても良い。当該ディスク３内に、多数のファイルが、論理的に木構造をなすようにルートから多階層に区切られたディレクトリ（サブディレクトリ）の何れかに、格納されている。
【００２２】
他方、ローカル計算機としてのクライアント装置２は、バスＢを介して相互に接続されたＣＰＵ２０，ＲＡＭ２１，通信アダプタ２２，入力装置２３，ディスプレイ２６及びハードディスク２４を、主要構成としている。
【００２３】
記憶部としてのハードディスク２４は、各種プログラムを格納するためのディスク装置である。ＣＰＵ２０は、ハードディスク２４に格納されている各種プログラムを実行する中央処理装置である。ＲＡＭ２１は、ＣＰＵ２０が上記処理を実行するに際して作業領域が展開される主記憶装置である。通信アダプタ２２は、ネットワークＮを終端して当該ネットワークＮを通じた通信を司る装置である。入力装置２３は、キーボード及びマウス等のポインティングデバイスであり、操作者によって操作されると、その操作の内容を示す操作情報（キー入力，マウス操作）を、ＣＰＵ２０に入力する。かくして入力された操作情報がサーバ装置１に対するコマンドに該当する場合には、ＣＰＵ３０が、当該コマンドを含むメッセージを、サーバ１へ送信する。ディスプレイ２６は、ＣＰＵ２０の処理結果によって生成された画面データに基づいた画面を表示する。
【００２４】
上述したサーバ装置１の内蔵ハードディスク１４に格納されている各種プログラムの一つが、ディスク装置３内に格納されているファイルの複写，移動，削除，名称変更等のファイル操作，各階層のディレクトリの複写，移動，削除，名称変更等のディレクトリ操作や、ファイルの読み出しや，ファイルやディレクトリの更新（上書）等をＣＰＵ１０に実行させるファイルサーバプログラム１５である。また、クライアント装置２のハードディスク２４に格納されている各種プログラムの一つが、ＣＰＵ２０に対して、入力装置２３を通じて入力された操作コマンドをサーバ装置１へ送信させるとともに、サーバ装置１から受信したファイル情報２７を記憶部としてのハードディスク２４に格納させ、このファイル情報２７に基づいて、ディスク装置３の内容をディスプレイ２６上に表示させるためのファイル操作クライアントプログラム２５である。なお、ファイル情報２７を記憶する記憶部は、読書可能なメモリであっても良い。
【００２５】
さらに、本形態に独自のプログラムモジュールとして、ファイル操作クライアントプログラム２５には、シミュレータ２８が含まれている。このシミュレータ２８は、ファイル情報２７を、ファイル操作クライアントプログラム２５がサーバ装置１へ送信した操作コマンド，又は、サーバ装置１から受信した差分データ若しくは操作後のファイル情報に基づいて順次更新し、その更新後のファイル情報２７に基づいて、ディスプレイ上に更新又
は操作後のディレクトリ構造及び各ディレクトリに格納されている全ファイルの状態（即ち、ディスク装置３の内容）を、ディスプレイ２６上に表示する機能を、ＣＰＵ２０に実現させる。なお、操作コマンドによるファイル情報の更新とは、ファイル情報に基づいて仮想空間上に認識されるディレクトリ構造及び各ディレクトリに格納されている全ファイルを、当該操作コマンドに従って模擬的に操作（シミュレート）することにより、当該操作コマンドに従った操作を実行した場合における操作実行後のファイルの状態を示すファイル情報の内容を予測した上で、記憶部に格納しているファイル情報の内容を、当該予測した内容に変更することである。
【００２６】
一方、ファイルサーバプログラム１５には、本形態に独自のプログラムモジュールとして、エージェント１６が含まれている。このエージェント１６は、上述したファイル情報２７及びシミュレータ２８と同内容のファイル情報１７及びシミュレータ１８を含み、クライアント端末２におけるファイル操作クライアント２５の動作（操作コマンドが入力されてから、ファイル情報を更新するまでの動作）をエミュレートするモジュールである。なお、エージェント１６に含まれるシミュレータ１８によるＣＰＵ１０の動作は、ファイル操作クライアント２５に含まれるシミュレータ２８によるＣＰＵ２０の動作と、全く同じである。また、ファイル情報１７は、クライアントが最新に送信してきた操作コマンドによる操作結果を表しているので、その内容はクライアント毎に異なる必要がある。従って、当該サーバ装置１にアクセスしてくるクライアント装置が複数ある場合には、ファイル情報１７は、クライアント毎に、夫々生成される。
【００２７】
以下、これらファイルサーバプログラム１５に従って動作するサーバ装置１のＣＰＵ１０（以下、単に「サーバ」という）の処理及びファイル操作クライアントプログラム２５に従って動作するクライアント装置２のＣＰＵ２０（以下、単に「クライアント」という）の処理のうち、本案によるリモートファイル操作方法に関連する部分を、図２のフローチャートを参照して説明する。
【００２８】
先ず、クライアント端末１において、操作者が所定の起動コマンドを入力するか、オートエグゼコマンドが実行されることにより、ＣＰＵ２０が、ハードディスク２４からファイル操作クライアントプログラム２５を読み出して実行することにより、図２ａに示す処理がスタートする。そして、スタート後、クライアントは、Ｓ００１乃至Ｓ００７のループ処理を実行する。
【００２９】
このループ処理に入って最初のＳ００１では、クライアントは、操作者が、入力装置２３を通じて操作コマンドを入力するのを待ち、操作コマンドが入力されると、入力された操作コマンドを含むメッセージを、サーバ装置１へ送信する。ここで、操作コマンドとは、この処理が最初に実行される場合には、ディスク装置３内の何れかのディレクトリ（ルートを含む）を参照対象ディレクトリとして指定した表示要求コマンドであるが、このループ処理が二回目以降に実行される場合には、ファイルの複写，移動，削除，名称変更，生成等のファイル操作，各階層のディレクトリの複写，移動，削除，名称変更，生成等のディレクトリ操作や、ファイルの読み出しや，ファイルやディレクトリの更新（上書）等の操作を行うコマンドであることが、一般的である。なお、操作コマンドは、入力装置２３に含まれるマウスを用いてディスプレイ２６上に表示されているGUI（Graphical User Interface）画面を通じて入力するものとしても良い。Ｓ００１を完了すると、クライア
ントは、次のＳ００２において、サーバからの応答を待つ。
【００３０】
一方、サーバ装置１では、ＣＰＵ１０が、ファイルサーバプログラム１５を読み込んで、図２ｂに示す処理をスタートしており、Ｓ１０１において、クライアントからの操作コマンドを受信するのを待っている。そして、Ｓ００１にて送信されたメッセージに含まれる操作コマンドを受信すると、サーバは、処理をＳ１０２へ進める。
【００３１】
Ｓ１０２では、サーバは、操作の結果を予測可能かどうか判定する。ここに「予測」とは、ディスク装置３内のディレクトリ又は何れかのディレクトリに格納されているファイルをＳ１０１にて受信したコマンドに従って実際に操作するのに先立ち、エージェント１６が、シミュレータ１８を用いて、ディスク装置３内のディレクトリ構造及び各ディレクトリに格納されている全ファイルの状態を表しているファイル情報１７を、上記コマンドに従って模擬的に操作（シミュレート）することにより、操作に対する予測結果としての、更新後のファイル情報を得ることである。なお、かかる意味での予測が可能な操作には、ファイルの複写，移動，名称変更，削除，ティレクトリの複写，移動，名称変更，削除が、含まれており、予測が不可能な操作には、ファイルやディレクトリの生成が含まれている。また、表示要求については、予測が無意味であるので、予測不可能と判断する。
【００３２】
そして、サーバは、Ｓ１０１にて受信した操作コマンドが、操作結果を予測できないものであったならば、処理をそのままＳ１０４へ進める。例えば、クライアントから最初に受信する操作コマンドは表示要求コマンドなので、操作結果を予測できないと判断する。
【００３３】
これに対して、操作結果を予測可能なものであったならば、サーバは、Ｓ１０３において、エージェント１６を起動し、シミュレータ１８を用いて、Ｓ１０１にて受信した操作コマンドに基づいてファイル情報１７を模擬的に操作（シミュレート）することにより、ファイル情報１７を更新する。Ｓ１０３を完了すると、サーバは、処理をＳ１０４へ進める。
【００３４】
Ｓ１０４では、サーバは、Ｓ１０１にて受信した操作コマンドを実行することにより、実際に、ディスク装置３内のディレクトリ構造又はファイルに対する操作を実行する。なお、操作コマンドが表示要求である場合には、何等の操作をも行わない。
【００３５】
次のＳ１０５では、サーバは、エージェント１６のファイル情報１７が示すディレクトリ構造及び各ディレクトリに格納されているファイルの状態と、ディスク装置３内の実際のディレクトリ構造及び各ディレクトリに格納されているファイルの状態とを、比較する。そして、Ｓ１０５での比較結果として、両者間に差異があった場合には、処理をＳ１０８へ進め、両者間に差異がなかった場合には、処理をＳ１０７へ進める。なお、表示要求コマンドを最初に受信した時点では、コマンド送信元に対応したファイル情報１７は未だ生成されていないので、差異があると判断される。また、Ｓ１０２にて操作結果が予測不可能であると判断された操作コマンドを受信した場合にも、Ｓ１０３が実行されていないので、差異があると判断される。これに対して、Ｓ１０２にて操作結果が予測可能であると判断された操作コマンドを受信した場合には、Ｓ１０３が実行されていなるので、通常、差異がないと判断される。
【００３６】
Ｓ１０７では、サーバは、操作コマンド送信元クライアントへ、差異がない旨の結果情報を、応答する。
【００３７】
一方、Ｓ１０８では、サーバは、ディスク装置３内の実際のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を示すファイル情報とエージェント１６のファイル情報１７との差分データ量が、前者のデータ量よりも大きいか否かをチェックする。なお、表示要求コマンドを最初に受信した時点では、コマンド送信元に対応したファイル情報１７は未だ生成されていないので、差分データ量は、ディスク装置３内の実際のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を示すファイル情報のデータ量と、一致することになる。そして、サーバは、差分データ量が、ディスク装置３内の実際のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を示すファイル情報の情報量以下であれば、処理をＳ１０９へ進め、ディスク装置３内の実際
のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を示すファイル情報の情報量より大きければ、処理をＳ１１１へ進める。
【００３８】
Ｓ１０９では、サーバは、ディスク装置３内の実際のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を示すファイル情報とエージェント１６のファイル情報１７との差分データを、結果情報として、操作コマンド送信元クライアントへ応答する。
【００３９】
次のＳ１１０では、サーバは、Ｓ１０９にて操作コマンド送信元クライアントへ応答した差分データに基づいて、エージェント１６における当該操作コマンド送信元クライアントに対応したファイル情報１７を更新する。
【００４０】
一方、Ｓ１１１では、サーバは、ディスク装置３内の実際のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を示すファイル情報を、結果情報として、操作コマンド送信元クライアントへ応答する。
【００４１】
次のＳ１１２では、サーバは、Ｓ１１１にて操作コマンド送信元クライアントへ応答したファイル情報に基づいて、エージェント１６における当該操作コマンド送信元クライアントに対応したファイル情報１７を更新（上書）する。
【００４２】
Ｓ１０７，Ｓ１１０又はＳ１１２を完了すると、サーバは、処理をＳ１０１へ戻し、クライアントからの次の操作コマンドを待つ。
【００４３】
一方、Ｓ１０７，Ｓ１０９，Ｓ１１１にてサーバから送信された結果情報を受信した操作コマンド送信元クライアントでは、処理がＳ００２からＳ００３へ進められる。Ｓ００３では、クライアントは、サーバから送信されて来た結果情報がＳ１０７にて送信された差異がない旨の結果情報であるか否かを、チェックする。そして、サーバは、差異がない旨の結果情報が送られてきたのであれば処理をＳ００４へ進め、それ以外の場合には処理をＳ００５へ進める。
【００４４】
Ｓ００４では、クライアントは、シミュレータ２８を用いて、Ｓ００１にて送信した操作コマンドに基づいてファイル情報２７を模擬的に操作（シミュレート）することにより、ファイル情報２７を更新するとともに、更新後のファイル情報２７に基づいて画面データを生成し、この画面データに基づいてディスク装置３内のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を、ディスプレイ２６上に表示する。
【００４５】
これに対して、Ｓ００５では、クライアントは、サーバから送信されて来た結果情報がＳ１０９にて送信された差分データであるか否かを、チェックする。そして、サーバは、差分データが送られてきたのであれば処理をＳ００６へ進め、それ以外の場合には処理をＳ００７へ進める。
【００４６】
Ｓ００６では、クライアントは、シミュレータ２８を用いて、Ｓ００１にて送信した操作コマンドに基づいてファイル情報２７を模擬的に操作（シミュレート）することによりファイル情報２７を更新し、送信されて来た差分データを反映することより当該ファイル情報２７を更に更新する。そして、更新後のファイル情報２７に基づいて画面データを生成し、この画面データに基づいてディスク装置３内のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を、ディスプレイ上に表示する。
【００４７】
これに対して、Ｓ００７では、クライアントは、送信されて来たファイル情報により、ファイル情報２７を更新（上書）し、更新（上書）後のファイル情報２７に基づいて画面
データを生成し、この画面データに基づいてディスク装置３内のディレクトリ構造及び各ディレクトリに格納されているファイルの状態を、ディスプレイ２６上に表示する。
【００４８】
Ｓ００４，Ｓ００６又はＳ００７の完了後、クライアントは、処理をＳ００１へ戻し、操作者が次の操作コマンドを入力して来るのを待つ。
【００４９】
サーバ装置１とクライアント装置２において夫々上述した処理が実行される結果、ディスク装置３の内容の表示は、図３に概略を示す手順に従って、行われることになる。但し、図３の手順が行われる前提として、クライアント装置１において、操作者が入力装置２３を通じて所定の表示対象ディレクトリ４０を指定して、表示要求コマンドを入力し（Ｓ００１）、それに応じてサーバが、ディスク装置３内における論理的に表示対象ディレクトリ４０及びそ配下に在るサブディレクトリ４１からなるディレクトリ構造，及び、各ディレクトリ４０，４１に格納されている全ファイル４２を示すためのファイル情報（差分データ）を生成し、これを当該クライアント装置１に対応したファイル情報１７としてエージェント１６に保存させるとともに（S１１０）、当該クライアント装置１へ送信し（
Ｓ１０９）、クライアント装置１が、ファイル情報２７として保存しているものとする（Ｓ００６）。
【００５０】
この状態において、操作者が、例えば、サブディレクトリ４１に格納されている各ファイル４２に対する何らかの操作を行うための操作コマンドを、入力装置２３を通じて入力したとする（図３(1)）。すると、この操作コマンドは、クライアント装置２からサーバ
装置１へ送信されて（Ｓ００１）、これを受信したサーバ装置１では、エージェント１６によってシミュレータ１８が起動されて、ファイル情報１７によって認識される仮想空間上のファイルに対して、当該操作コマンドに基づいたシュミレーションがなされ（図３(2)〜(3)）、その結果に応じてファイル情報１７が更新される（Ｓ１０３）。その後で、サーバは、ディスク装置３内に格納されている操作対象ファイル４２を、当該操作コマンドに基づいて、実際に操作する（Ｓ１０４）（図３(4)）。続いて、サーバは、上記シミュ
レーションの結果として更新されたファイル情報１７と実際に操作された後におけるディスク装置３内部のディレクトリ構造及びファイルの状態を示すファイル情報とを比較し（Ｓ１０５）（図３(5)）、両者が一致すれば差異が無い旨を（Ｓ１０７）、両者が一致し
ない場合には両者の差分を、結果情報としてクライアント装置２へ応答する（Ｓ１０９）（図３(6)）。
【００５１】
クライアント装置２では、受信した結果情報が「差異が無い」旨であった場合には、シミュレータ２８が起動されて、ファイル情報２７によって認識される仮想空間上のファイルに対して、サーバ装置１へ送信したものと同じ操作コマンドに基づいたシュミレーションがなされ（図３(7)〜(8)）、その結果に応じてファイル情報２７が更新される（Ｓ００４）（図３(9)）。これに対して、受信した結果情報が差分データであった場合には、上
述したシミュレーションに基づいて更新されたファイル情報２７が、当該差分データに基づいて、更に更新される（Ｓ００６）（図３(9)）。何れの場合においても、更新後のフ
ァイル情報２７に基づいて、ディスク装置３内部のディレクトリ構造及びファイルの状態が、ディスプレイ２６上に表示される。
【００５２】
以上に説明した本実施形態によれば、クライアント端末２が操作コマンドに基づいて実際のディスク装置３内部におけるディレクトリ構造及びファイルの状態，即ち、更新後のファイル情報を確実に予測できるのであれば、サーバ装置２から更新後のファイル情報を受信する必要がないので、サーバ装置１からクライアント端末２へは何等ファイル情報を送信しないこととしている。その結果、操作されるファイル数の大小に拘わらず、また、操作後におけるファイル数の大小に拘わらず、サーバ装置１からクライアント装置２へのデータ転送量を極小とすることができるのである。
【００５３】
もっとも、更新後のファイル情報が確実に予測できるか否かは、単にファイル操作の種類のみに依るものではないので、ファイル操作コマンドの内容と更新前のファイル情報２７しか情報を持たないクライアント端末２が自ら判断することは困難である。そこで、サーバ装置１内において、エージェント１６によりクライアントの動作（ファイル情報及び操作コマンドに基づく更新後のファイル情報の予測）をエミュレーションするとともに、その予測結果と実際にディスク装置３内部ディレクトリ構造又はファイルに対して操作コマンドを実行した結果とを比較することにより、予測結果が正しいか否か（差異が無いか否か）を判断し、予測結果が正しい場合（差異が無い場合）に、クライアント装置１において上記予測結果によりファイル情報２７を更新させるための結果情報（差異がない旨）を、サーバ装置１からクライアント装置２へ通知しているのである。
【００５４】
これに対して、予測結果が正しくない場合（差異がある場合）には、ファイル情報をサーバ装置１からクライアント装置２へ転送せざるを得ない。この場合でも、サーバ装置１からクライアント装置２へ転送すべきファイル情報のデータ量を可及的に小さくするために、予測結果と実際にディスク装置３内部ディレクトリ構造又はファイルに対して操作コマンドを実行した結果との差分データを、サーバ装置１からクライアント装置２へ転送し、クライアント装置２内では、上述した予測結果に当該差分データを反映させることにより、そのファイル情報２７をさせているのである。従って、本実施形態において転送される差分データは、上記差分転送方式によって転送される差分データとは内容が異なっており、後者のものよりもデータ量が小さくなる。
【００５５】
なお、サーバ装置１からクライアント装置２へ転送すべき差分データのデータ量が、操作コマンド実行後におけるディスク装置３内部におけるディレクトリ構造及び全ファイルのファイル情報のデータ量総計よりも大きいならば、後者を転送した方がデータ量を小さくすることができる。そこで、かかる場合には、操作コマンド実行後におけるディスク装置３内部におけるディレクトリ構造及び全ファイルのファイル情報を、サーバ装置１からクライアント装置２へ転送し、クライアント装置２内では、受信したファイル情報によりそのファイル情報２７を上書きするようにしている。これにより、本実施形態によると、転送すべきファイル情報を可及的に小さくすることが可能となるのである。
（付記１）
ローカル計算機から、ネットワークを通じて、リモート計算機上のファイルサーバに対して、ディスク装置内に格納されているファイルの操作を行わしめることを可能とするリモートファイル操作方法であって、
前記リモート計算機は、前記ディスク装置内に格納されているファイルについてのファイル情報を、自己の記憶部に記憶するとともに前記ローカル計算機へ送信し、前記ローカル計算機は、前記リモート計算機から受信した前記ファイル情報を、自己の記憶部に記憶し、
前記ローカル計算機が、前記ファイルに対する操作を命じる操作コマンドを前記リモート計算機へ送信すると、前記リモート計算機は、自己の前記記憶部に記憶されているファイル情報を前記操作コマンドに基づいて更新するとともに、前記ディスク装置内に格納されているファイルを前記操作コマンドに従って操作し、更新された前記ファイル情報が操作後の前記ファイルの状態に対応している場合には、その旨の結果情報を前記ローカル計算機へ送信し、
前記ローカル計算機は、前記結果情報を受信すると、自己の前記記憶部に記憶されているファイル情報を前記操作コマンドに基づいて更新し、更新後のファイル情報の内容を表示する
ことを特徴とするリモートファイル操作方法。
（付記２）
前記ファイル情報には、ファイルの状態を表すものの他、ディレクトリの状態を表すも
のが含まれている
ことを特徴とする付記１記載のリモートファイル操作方法。
（付記３）
前記ファイル情報の前記操作コマンドに基づく更新とは、前記ファイル情報によって認識されるファイルに対して前記操作コマンドに従った操作を実行した場合における操作実行後のファイルの状態を示すファイル情報の内容を予測した上で、前記ファイル情報の内容を、当該予測した内容に変更することである
ことを特徴とする付記１記載のリモートファイル操作方法。
（付記４）
更新された前記ファイル情報が操作後の前記ファイルの状態に対応しているとは、更新された前記記憶部に記憶されたファイル情報と、操作後の前記ファイルの状態を示すべきファイル情報とが一致していることである
ことを特徴とする付記１記載のリモートファイル操作方法。
（付記５）
前記リモート計算機は、更新された前記記憶部に記憶されたファイル情報と、操作後の前記ファイルの状態を示すファイル情報とが一致していない場合には、両者の差分を前記ローカル計算機へ送信し、
前記ローカル計算機は、自己の前記記憶部に記憶されているファイル情報を前記操作コマンドに基づいて更新し、更に前記差分を反映させ、前記差分を反映させた前記ファイル情報の内容を表示する
ことを特徴とする付記４記載のリモートファイル操作方法。
（付記６）
前記リモート計算機は、更新された前記記憶部に記憶されたファイル情報と操作後の前記ファイルの状態を示すファイル情報との差分のデータ量が、後者のファイル情報のデータ量よりも大きい場合には、後者のファイル情報を前記ローカル計算機へ送信し、
前記ローカル計算機は、受信したファイル情報により、自己の前記記憶部に記憶されているファイル情報を上書きし、上書き後の前記ファイル情報の内容を表示する
ことを特徴とする付記５記載のリモートファイル操作方法。
（付記７）
更新された前記ファイル情報が操作後の前記ファイルの状態に対応しているとは、更新された前記記憶部に記憶されたファイル情報によって認識されるファイルと、操作後の前記ファイルとが一致していることである
ことを特徴とする付記１記載のリモートファイル操作方法。
【図面の簡単な説明】
【００５６】
【図１】リモートファイル操作方法を適用したリモートファイル操作システムの実施の形態の概略構成を示すフロック図
【図２】サーバ及びクライアントの処理内容を示すフローチャート
【図３】操作から表示までの処理の流れを示す模式図
【図４】従来のリモートファイル操作システムによる処理の流れを示す模式図
【図５】差分転送方式による処理の流れを示す模式図
【符号の説明】
【００５７】
１    サーバ装置
２    クライアント装置
３    ディスク装置
１０    ＣＰＵ
１４    内蔵ハードディスク
１５    ファイルサーバプログラム
１６    エージェント
１７    ファイル情報
１８    シミュレータ
２０    ＣＰＵ
２３    入力装置
２４    ハードディスク
２５    ファイル操作クライアント
２６    ディスプレイ
２７    ファイル情報
２８    シミュレータ
Ｎ    ネットワーク
【図１】
2010033335.tif 000003
【図２】
2010033335.tif 000004
【図３】
2010033335.tif 000005
【図４】
2010033335.tif 000006
【図５】
2010033335.tif 000007