JP2006031711A - リモートプロトコルによるリモートのファイル更新 - Google Patents

リモートプロトコルによるリモートのファイル更新 Download PDF

Info

Publication number
JP2006031711A
JP2006031711A JP2005208724A JP2005208724A JP2006031711A JP 2006031711 A JP2006031711 A JP 2006031711A JP 2005208724 A JP2005208724 A JP 2005208724A JP 2005208724 A JP2005208724 A JP 2005208724A JP 2006031711 A JP2006031711 A JP 2006031711A
Authority
JP
Japan
Prior art keywords
file
source
data
copy
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005208724A
Other languages
English (en)
Other versions
JP4786954B2 (ja
JP2006031711A5 (ja
Inventor
Ahmed H Mohamed
エイチ.モハメッド アハメド
David M Kruse
エム.クルーズ デビッド
Thomas A Langan
エー.ランガン トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006031711A publication Critical patent/JP2006031711A/ja
Publication of JP2006031711A5 publication Critical patent/JP2006031711A5/ja
Application granted granted Critical
Publication of JP4786954B2 publication Critical patent/JP4786954B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

【課題】改良されたリモートプロトコルによって、リモートサーバ上のファイルの効率的なおよび確かな更新を可能にすること。
【解決手段】リモートプロトコルに対する収集・コピー拡張によって、クライアントがサーバに命令して、データの一部をサーバ上の既存のソースファイルから収集させ、およびデータの一部をサーバ上の新規の目的ファイル内の適切なオフセットにコピーさせることができる。収集・コピー拡張によって、クライアントは、クライアントがファイル更新中に新規データを書込むことができる、目的ファイル中の空白位置を残すことができる。収集・コピー拡張によって、クライアントは、ソースファイルから目的ファイルにコピーしないことにより、ソースファイルの一部を効果的に削除することができる。ファイル全体をクライアントからサーバに転送する必要なしに、ファイル更新を行うことができる。
【選択図】図2

Description

本発明は、一般には、クライアント・サーバプロトコルに関し、より詳細には、確かなおよび効率的なリモートのファイル更新を可能にするようなプロトコルの拡張(extension)に関する。
モバイル技術の広まりは、クライアントマシンからサーバへと移動され続ける重要なユーザデータへのネットワークアクセスをますます多くの企業に提供している。モバイルユーザがネットワークとの接続を絶たれる場合にでも、このようなネットワークデータをモバイルユーザに使用可能にすることには、かなりの有益がある。例えば、ネットワークとの接続が絶たれる間のネットワークデータへのアクセスが継続されているので、ユーザが旅行をする場合、ユーザが家において働く場合、またはネットワークがダウンの場合、ユーザはファイル上の作業をすることができる。ネットワークとの接続が絶たれている間にネットワークデータへのアクセスを有することの別の有益は、クライアントとサーバとの間のネットワークを通じて送信されるデータ量が軽減されることである。
クライアント側のキャッシュは、ネットワークとの接続が絶たれている間にモバイルユーザがネットワークデータへのアクセスを維持する主な方法である。クライアント側がキャッシュされているので、モバイルユーザは、例えばネットワークを通じてアクセスしたサーバ上のファイルのローカルコピーを保存することができる。ネットワークとの接続が絶たれた後でも、ユーザはファイルのコピーを編集することができる。ネットワークに再接続すると、サーバ上のファイルのコピーを更新することができる。
クライアント側のキャッシュを容易にし、ならびにコンピュータ上のクライアントアプリケーションが、リモートコンピュータ上のサーバプログラムによってネットワークを通じたファイル読取り、ファイル作成、ファイル更新、および他のファイルシステムのタスク実行を行うことができる、クライアント・サーバプロトコルの種々の実装が存在する。サーバメッセージブロックプロトコル(SMBプロトコル)は、TCP/IPプロトコル、またはIPX(Internetwork Packet Exchange)およびNetBEUIなどの他のネットワークプロトコルに加えて、インターネットを通じて使用することができるようなプロトコルの一例である。このようなプロトコルを用いる典型的な動作形態は、クライアントについては要求を行うこと、サーバについては応答を送り返すことである。したがって、このようなプロトコルによって、クライアントは、リモートサーバ上のファイルシステムに関するいくつかの「ファイルシステム制御」の動作を呼出すことが可能になる。
クライアント側のキャッシュの現在の方法に伴う欠点の1つは、クライアントとサーバとの間でデータを転送する間に直面する待ち時間および応答時間が著しく長いことである。例えば、ファイルの編集を行いたいユーザは、まずネットワークを通じてクライアントにファイル全体をダウンロードする。次に、ユーザは、ネットワークとの接続を絶ちおよびファイルを編集することができる。ネットワークを通じてサーバに再接続すると、編集したファイル全体を同期処理でサーバにアップロードする。元のファイルに加えた変更のサイズまたは量に関係なく、編集したファイル全体をサーバにネットワークを通じてプッシュバックしなければならない。したがって、10メガバイトのファイルに加えられた最小の変更(例えば、1キロバイトの挿入または削除)でさえ、10メガバイトのファイル全体を、ネットワークを通じて2回転送する必要がある。このような転送に対する待ち時間および応答時間は、電話線または衛星リンクなどの遅いリンクに関しては、特有の問題となる傾向がある。
クライアント側のキャッシュの現在の方法に関連した別の欠点は、クライアントとサーバとの間でファイル更新中にファイルを破損する危険性があることである。ファイル同期(すなわち、クライアントからサーバへのファイル更新)中に、更新の途中で発生するネットワークの故障または障害によって、サーバ上で更新されているファイルを破損した状態のままにすることがあり、このファイルは、自動で修復されることもあればないこともある。ファイル更新の時間が長いほど、更新中に直面するネットワークの問題が多くなる可能性があり、およびファイルが破損される危険性が高くなる。
したがって、より効率的なおよび確かなリモートファイルの更新を提供するクライアント側のキャッシュを改良する方法が必要である。
方法およびシステムによって、改良されたリモートプロトコルを介して効率的なおよび確かなリモートファイルの更新を可能にする。リモートプロトコルの収集・コピーの拡張によって、クライアントは、サーバに対して、サーバ上に既存のソースファイル(source file)のデータの一部を収集し、およびサーバ上の新規の目的ファイル(destination file)内の適当なオフセットに収集したデータの一部をコピーするよう命令することを可能にする。したがって、収集・コピー拡張によって、クライアントは、目的ファイル内に空白位置(blank location)を残すことを可能にする。空白位置には、ファイル更新中に、クライアントが新規データを書込むことができる。また、収集・コピー拡張によって、クライアントは、ソースファイルから目的ファイルにコピーしないことにより、ソースファイルの一部を効果的に削除することも可能にする。したがって、ファイル全体をクライアントからサーバに転送せずに、ファイル更新を行うことができる。
同一の参照符号を、構成要素および特徴として参照する図面の至る所に用いる。
(序)
以下の説明は、クライアントとサーバとの間で効率的なおよび確かなファイル更新を提供するシステムおよび方法に向けられる。一般的にリモートサーバ上の種々のファイルシステムのタスク(例えば、ファイルの読取り、作成、および更新)のクライアント制御を容易にするよう構成されたリモートプロトコルは、クライアントがファイル全体をクライアントからサーバに転送する必要なしにサーバ上のファイルを更新することを可能にする、拡張を含む。リモートプロトコルの拡張は、サーバに対して、既存のソースファイルからデータのブロックを収集して、および新規の目的ファイル内の適切なオフセットにデータのブロックをコピーするよう命令する、新規のファイルシステム制御(fsctl)コマンドである。収集・コピーのfsctlコマンドによって、クライアントは、新規データを書込むことのできる「穴(hole)」を目的ファイルに残し(または作成し)、およびソースファイルの一部を目的ファイルのコピーしないことによりソースファイルの一部を削除することを可能にする。
説明するシステムおよび方法の利点には、ファイル全体の大きさに比例する帯域幅を消費するより、むしろファイル変更の大きさに比例する帯域幅を消費するファイル更新を含む。これにより、ファイル更新中の待ち時間および応答時間が短縮されるとともに、更新中のネットワーク障害によってファイルが破損される危険性を低減する。
(例示的環境)
図1は、リモートプロトコルを介してリモートのファイル更新を実施するのに適切な例示的動作環境100を例示する。環境100は、適切な動作環境の一例に過ぎず、および本発明の用途または機能の範囲を何ら制限するものではない。制限はしないが、他の周知のコンピューティングシステム、環境、および/または構成には、パーソナルコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたは装置のどれでも含む分散コンピューティング環境などを含むことができる。
例示的動作環境100には、ネットワーク106を介してサーバ装置104(以下では一般的に「サーバ」または「サーバ装置」と呼ぶ)に連動されたクライアント装置102(以下では一般的に「クライアント」または「クライアント装置」と呼ぶ)を含む。ネットワーク106は、従来技術の種々のプロトコル(汎用および/または専用プロトコルを含む)のどれでも採用する、従来技術の種々ネットワークのトポロジーおよび型(光、有線および/または無線のネットワークを含む)のどれでも表することができる。例えば、ネットワーク106には、ホームネットワーク、企業ネットワーク、またはインターネットを、1つまたは複数のローカルエリアネットワーク(LAN)および/または広域エリアネットワーク(WAN)の少なくとも一部も同様に、含むことができる。
クライアント102およびサーバ104は、クライアント(クライアントプログラム)がサーバ(サーバプログラム)からのサービスを要求し、およびサーバが要求に応答する、クライアント/サーバモデルを使用して通信する。クライアント/サーバモデルは、一般にクライアントアプリケーションがリモートサーバ上のファイルにアクセスしおよび操作する(例えば、ファイルを読取り、編集し、更新し、および作成する)ことを可能にする通信プロトコルに基づく。また、このようなリモートプロトコルは、通常、プリンタ、メールスロット、および指定されたパイプなどの他のサーバリソースへのアクセスを、クライアントに提供する。このようなプロトコルには、SMB(サーバメッセージブロック、Server Message Block)プロトコル、NFS(Network File System)プロトコル、WebNFSプロトコル、CIFS(Common Internet File System)プロトコル、Sambaなどを含むことができる。このようなプロトコルは、イントラネットまたはインターネット等の種々のネットワークを通じて使用することができ、およびTCP/IPプロトコル、IPX(Internetwork Packet Exchange)プロトコル、およびNetBEUIプロトコル等の他のプロトコルに加えてまたは連動して実行することができる。本明細書において、例示的実施形態に関して以下に説明するように、このようなプロトコルの拡張によって、効率的なおよび確かなリモートファイルの更新を可能にする。以下の例示的実施形態では、SMBプロトコルに関するプロトコル拡張について説明するが、SMBプロトコルは、説明する拡張によって利益を得ることができる適切なプロトコルの単なる一例であることに注意されたい。したがって、例示的実施形態におけるSMBプロトコルの使用は、拡張を適用することができる他の適切なプロトコルに関して、何ら制限を加えるものではない。
クライアント102は、通常、電子メール、予定表、仕事の編成、ワードプロセッサ、ウェブ閲覧等の普通のコンピューティング機能を実行することができる。クライアント102は、本願発明の特許出願人からのウインドウズ(登録商標)・オペレーティングシステムなど、オープンプラットホームのオペレーティングシステムを実行することができる。クライアント102は、例えば、デスクトップPC、ノートブックまたはポータブルのコンピュータ、ワークステーション、メインフレームコンピュータ、インターネットアプライアンス、ゲームコンソール、ハンドヘルドPC、セルラー電話または他の無線通信装置、パーソナルデジタルアシスタント(PDA)、セットトップボックス、それらの組合せなどを含む、従来技術の種々のコンピューティング装置のどれにでも実装することができる。クライアント102を実装する例示的コンピューティング環境を、図9を参照して、本明細書において以下により詳細に説明する。
サーバ104は、一般に、データファイルおよび他のリソースのストレージおよび管理を提供するファイルサーバとして構成される。サーバ104は、ネットワーク106を介して、認証されたクライアントに、これらのデータおよびリソースへのアクセスを提供する。サーバ104は、デスクトップPC、ワークステーション、メインフレームコンピュータ、インターネットアプライアンスなどの従来技術の種々のコンピューティング装置のどれにでも実装することができる。サーバ104を実装する例示的コンピューティング環境を、図9を参照して、本明細書において以下により詳細に記述する。
(例示的実施形態)
図2は、リモートプロトコルを介してリモートのファイル更新を実装するよう構成されたクライアント装置102およびサーバ装置104の例示的実施形態を例示する。クライアント102は、メモリ202に格納されたアプリケーションプログラム204を実行するよう構成された1つまたは複数のプロセッサ200を含む。また、メモリ202は、図2ではクライアント側プロトコル206として引用するリモートプロトコルを格納する。本実施形態において、クライアントプロトコル206は、SMBプロトコルのクライアント側の構成要素として実装する。しかしながら、上述したように、クライアントプロトコル206を、SMBプロトコルに制限するものではなく、および例えば、NFSプロトコル、WebNFSプロトコル、CIFSプロトコル、Sambaなどを含む、他の種々の適切なプロトコルとして実装することができる。クライアントプロトコル206の拡張を、図2において収集・コピー拡張(イニシエータ)208として例示し、収集・コピー拡張208に対するサーバ側の対応物、収集・コピー拡張(インプリメンタ)216に関連して、より詳細に以下で説明する。
サーバ104は、メモリ212に格納されたサーバプロトコル216を実行するよう構成された1つまたは複数のプロセッサ210を含む。サーバプロトコル214は、SMBプロトコルのサーバ側コンポーネントとして実装される。上述したように、クライアントプロトコル206の収集・コピーイニシエータ208に対する対応物は、サーバプロトコル214の拡張である収集・コピーインプリメンタ216である。また、メモリ212は、ファイル記憶218にデータファイルを格納する。
クライアントプロトコル206によって、種々のクライアントアプリケーション204は、ファイル記憶218内のファイルへのある種類のアクセスを提供する、サーバ104上のいくつかのファイルシステム制御操作を呼出すことを可能にする。ファイルへのアクセスは、例えば、ファイル読取り、ファイル更新および新規ファイル作成を含むことができる。サーバプロトコル214は、要求されたタスクを実行することによって、クライアント102からのファイルシステム制御に応答する。
リモートプロトコル(206、214)の収集・コピーのプロトコル拡張(例えば、収集・コピーイニシエータ208、収集・コピーインプリメンタ216)は、クライアントアプリケーション204がクライアント102からサーバ104へのリモートのファイル更新を達成するのに利用することができる、新規のファイルシステム制御(fsctl)コマンドを提供する。一般に、新規の収集・コピーのfsctlコマンドは、ソースデータをサーバ104上のソースファイルからサーバ104上にある目的ファイルにコピーするための方法を、サーバ104に命令する。一実施形態において、収集・コピーのfsctlコマンドは、目的ファイルハンドル、ソースファイル識別子(レジュームキー)、およびファイル領域のアレイを取込み、ならびにソースファイルから目的ファイルにコピーされるデータのエラー状態および全バイト数を戻す。ファイル領域のアレイでの各領域は、ソースファイルのオフセット、目的ファイルのオフセット、およびコピー/転送すべきデータの長さまたはバイト数を含む。したがって、各領域は、サーバ104上でソースファイルから目的ファイルにコピー/転送されるデータのチャンクまたはブロックを定義する。ソースファイルのオフセットは、バイト数分のソースデータ(すなわち、ソースファイルからのデータチャンク)をソースファイルからコピーする、ソースファイル内の開始位置を識別する。目的ファイルのオフセットは、バイト数分のソースデータを目的ファイルへコピーする、目的ファイル内の開始位置を識別する。長さは、ソースファイルから目的ファイルにコピーされるバイト数を定義する。
クライアントアプリケーション204は、新規の収集・コピーのfsctlを使用することによって、サーバ側のみのデータコピー機能を効率的に実装する。例えば、クライアントアプリケーション204は、このfsctlを利用して、例示的順序でリモートファイルを更新することができる。すなわち、以下のとおりである。
1)アプリケーションが、少なくともREAD_DATAアクセスを用いてソースファイルを開く。
2)アプリケーションが、既存のfsctl(FSCTL_SRV_REQUEST_RESUME_KEY)を介して、サーバからのソースファイル識別子(レジュームキー)を要求する。
3)アプリケーションが、少なくともWRITE_DATAアクセスを用いて目的ファイルを作成する/開く。
4)アプリケーションが、ソースファイルから目的ファイルにコピーすべきデータブロックの領域リストを構築する。
5)アプリケーションが、収集・コピーのfsctlコマンド(FSCTL_SRV_COPYCHUNK)を発行して、ならびに戻された状態およびコピーされたバイト数を検査する。
図3および4は、リモートサーバ104上のソースファイル300および目的ファイル302の例、ならびにクライアント102上のソースファイルのクライアントコピー304の例を例示する。ソースファイル300、目的ファイル302、およびソースファイルのコピー304の例は、収集・コピーのプロトコル拡張208、216(収集・コピーのfsctlコマンド)を用いるリモートファイル更新の例示的処理を説明するのに役立つ。図3および4の例図は、リモートのファイル更新の概念的な例を提供するものであり、および実際の機構またはこのようなリモートのファイル更新を行うことができる機構を、けっして制限するものではないことに注意されたい。図3の例において、クライアントアプリケーション204は、サーバ104へオープン要求を送信することによって、サーバ104上のソースファイル300を開いている。クライアントアプリケーション204は、ソースファイル300からデータを読取るのに必要なアクセスを少なくとも有し、およびソースファイルコピー304をクライアント102へ転送している。また、クライアントアプリケーション204は、サーバ104からのソースファイル識別子(レジュームキー)を要求しており、およびサーバ104への別のオープン要求を送信することによって、目的ファイル302を作成/オープンしている。クライアントアプリケーション204は、目的ファイル302にデータを書込むのに必要なアクセスを少なくとも有する。
サーバ104上のソースファイル300と目的ファイル302との間の矢印は、収集・コピーのfsctlコマンドがクライアント102から送信されていて、およびサーバ104で実行されていることを示すことを意図する。収集・コピー処理は、通常、クライアント102上のアプリケーション204のユーザが、サーバ104からソースファイ300をダウンロードし、アプリケーション204を用いてソースファイル300をクライアントコピー304として編集し、および編集したコピーを使ってサーバ104を更新するファイル更新処理の一部である。
クライアント102上のソースファイルのコピー304に行った変更に基づいて、クライアント102上の収集・コピーの拡張イニシエータ208は、サーバ104に送信する収集・コピーのfsclコマンドを生成することによって、収集・コピー処理を開始する。収集・コピーのfsctlコマンドは、サーバ104に命令して、ユーザ/アプリケーション204がクライアント102上でソースファイルのコピー304に行った変更と一致するように、ソースファイル300のセクションを目的ファイル302にコピーさせる。サーバ104上の収集・コピーの拡張インプリメンタ216は、サーバ104上で収集・コピーのfsctlコマンドを解釈および実行する。この例では、ソースファイル300と目的ファイル302との間の矢印によって、収集・コピーのfsctlコマンドは、ソースファイルのオフセットが1を提供しており、バイト数分のソースデータをソースファイル300からコピーする、ソースファイル300内の開始位置を識別することを示す。また、収集・コピーのfsctlコマンドは、長さ10を提供しており、コピーされるデータのバイト数を識別する。ソースファイルのオフセットと長さとを合わせて、ソースファイル300から目的ファイル302にコピーするチャンクデータを定義する。この例においては、オフセットが1から始まりオフセットが10で終わるソースデータブロック306が、ソースファイル300から目的ファイル302にコピーされるべきデータのブロックとして、収集・コピーのfsctlコマンドによって定義されている。
図示の目的ファイル302によって、収集・コピーfsctlコマンドは、目的ファイルのオフセットが10も提供し、目的ファイルへ識別されたバイト数分をコピーする、目的ファイル302内の開始位置を識別することを示す。したがって、ソースデータブロック306は、長さのパラメータが10に合わせて、オフセットが10で開始され、およびオフセットが20で終了するように、目的ファイル302へコピーされる。上述したように、収集・コピーのfsctlコマンドは、ソースファイル300から目的ファイル302へコピーするファイル領域(データブロック)のアレイを含む、または定義することができる。したがって、上述したのと同様の方法で、図3に関して説明する収集・コピーのfsctlコマンドは、サーバ104(すなわち、収集・コピーの拡張インプリメンタ216)にまた命令して、ソースファイル300から目的ファイル302(目的ファイルのオフセットが30、長さが20)へソースデータブロック310(ソースファイルのオフセットが20、長さが20)をコピーさせる。
収集・コピーのfsctlコマンドをサーバ104上で実行した後、目的ファイル302内の2つのセクションが空白のままである、すなわちデータを欠いていることが、目的ファイル302から明らかである。目的ファイル302内の空白のセクション312、314は、クライアント102上のソースファイルコピー304に行われた変更に合わせて、空白のセクション312、314に書込まれる新規データを見越して、収集・コピーのfsctlコマンドによって故意に作成される。クライアント102のソースファイルコピー304は、ユーザがソースファイルコピー304内で2つの異なる位置に加えた、2つの新規データブロック316、318を示す。第1の新規データブロック316は、ソースファイルコピー304における新規のオフセットの位置にソースデータブロック306を効果的に再配置し、一方第2の新規データブロック318は、ソースファイル300からの元のソースデータブロック308に入れ替わって(すなわち、削除してまたは上書きして)いることに注意されたい。したがって、収集・コピーの拡張イニシエータ208は、サーバ104に命令して、ソースデータブロック306を目的ファイル302内の適切なオフセットの位置にコピーさせ、およびソースデータブロック308を全くコピーさせない、収集・コピーのfsctlコマンドを生成している。したがってソースデータブロック308は、目的ファイル302にコピーされないことによって、効果的に削除される。代わりに、収集・コピーのfsctlコマンドは、新規データを書込める、空白のセクション314のままにしておく。
図4は、クライアント102上のソースファイルコピー304からの新規データブロック316、318が、目的ファイル302における適切な位置に書込まれることを例示する。クライアント102からサーバ104へのデータ書込は、上述の収集・コピーのfsctlコマンドの実装と連動して行われる。しかし、クライアント102からのデータ書込は、収集・コピーのfsctlコマンドがサーバ104に送信される前または後に行うことができる。すなわち、クライアント102からの適切な要求に基づいて目的ファイル302が作成/オープンされるとすぐに、クライアント102からの収集・コピーのfsctlコマンドに応答してサーバ104によって目的ファイル302にデータをコピーすることができ、またはクライアント102からのデータ書込要求によって目的ファイル302にデータを書込むことができる。いずれの場合にも、収集・コピーのfsctlコマンドは、サーバのソースファイル300からのどのデータブロックを目的ファイル302にコピーするのか、およびどの位置に目的ファイル302へのデータブロックをコピーするのかを、サーバ102に命令する。クライアント102からの新規データを目的ファイル302に書込む場合に、サーバ104が収集・コピーのfsctlコマンドを実行する前か後かは問題ではない。
収集・コピーのプロトコル拡張208からの収集・コピーのfsctlコマンドは、WRIETE_DATAアクセスで開かれるあらゆるハンドル上に発行され、および一実装に関する収集・コピーのfsctlコマンドのビヘイビアを、以下のように定義することができる。
(入力バッファ)
入力バッファは、以下のように定義する、SRV_COPYCHUNK_COPY型の入力バッファである。
Figure 2006031711
入力バッファにおいて、SourceFileは、少なくともREAD_DATAアクセスを用いて開かれたファイルからのFSCTL_QUERY_RESUMU_KEYを使用して得られたレジュームキー(ソースファイル識別子)である。ChunkCountは、ChunkのアレイにおけるSRV_COPYCHUNKの構造体(ソースファイル領域)の数である。各SRV_COPYCHUNKの構造体に対して、SourceOffsetは、SourceFileにおけるコピー元の位置として設定し、およびDestinationOffsetは、目的ハンドルにおけるコピー先のオフセットとして設定する。Lengthは、ソースオフセットから目的オフセットに転送するバイト数を保有する。
(出力バッファ)
出力バッファは、以下のように定義する、SRV_COPYCHUNK_RESPONSE型の出力バッファである。

Figure 2006031711
Figure 2006031711
(戻り値)
サーバが、特定のチャンク(データブロック)の全部を、ソースファイルから目的ファイルにコピーする場合、STATUS_SUCCESS(成功状態)を戻す。この場合、出力バッファにおけるChunksWrittenは、入力バッファにおけるChunkCountに調和させるべきである。
サーバ104が、チャンク(データブロック)をコピーするのに失敗する場合、チャンクをコピーすることができない理由を示す状態コードを戻す。この場合、出力バッファにおけるChunksWrittenは、コピーするのに成功したチャンクの数を示す。サーバ104は、入力バッファにおいてChunkのアレイが指定した順序でチャンクを処理し、および最初の失敗で処理を停止することに注意されたい。
クライアント102の要求がサーバ104の制限のどれかを越えると、サーバ104は、STATUS_INVALID_PARAMETERを戻す。さらに、この場合、サーバ104は、以下の変換を用いて、SRV_COPYCHUNK_RESPONSEにおけるサーバ104の構成される最大限度を戻す。
ChunkWritten=SRVが単一操作において許容するチャンクの最大数。
ChunkBytesWritten=あらゆる別個のチャンクの最大サイズ。
TotalBytesWritten=合計されたチャンク全部の最大全長。
特定の時間(例えば、デフォルトの25秒)でコピーが完了しない場合に、サーバ104は、STATUS_IO_TIMEOUTを戻す。デフォルトをレジストリに設定することができる別の構成パラメータには、以下を含む。
ChunkMax=単一の収集・コピーのfsctlコマンドにおいてコピーされるチャンクの最大数。例示的デフォルトは256である。
ChunkWriteLimit=単一のチャンクにおいてコピーされるデータの最大量であり、バイト単位で指定される。例示的デフォルトは1MBである。
ChunkTotalWriteLimit=単一の収集・コピーのfsctlコマンドでコピーされるデータの最大量であり、バイト単位で指定される。例示的デフォルトは16MBである。
ChunkTimeout=単一の収集・コピーのfsctlコマンドを処理する間に経過する最大時間であり、秒単位で指定される。例示的デフォルトは25秒である。
(例示的方法)
図5〜8のフローチャートを主に参照して、リモートプロトコルを介してリモートのファイル更新を実行するための方法の例を説明する。方法は、通常、図1〜4に関して上述した例示的実施形態に使用される。フローチャートおよびフローチャートのブロックに関連付けられた文章を用いて、1つまたは複数の方法を開示するが、説明する方法の要素は、必ずしも提示する順序で実行する必要はなく、および代替の順序が同様の利点を生じることできることが理解されよう。さらに、方法は、排他的ではなく、および単独または互いに組み合わせて実行することができる。説明する方法の要素は、例えば、ASIC上でハードウエアの論理ブロックによって、またはプロセッサ読取可能な媒体上で定義されるプロセッサ読取可能な命令の実行によって、などを含むあらゆる適切な手段によって実行される。
本明細書において用いる「プロセッサ読取可能な媒体」は、プロセッサによって使用または実行するために、命令を含む、格納する、通信する、伝える、または転送することができるあらゆる手段とすることができる。制限はしないが、プロセッサ読取可能な媒体は、電気、磁気、光学、電磁気、赤外線、または半導体のシステム、装置、デバイスまたは伝搬媒体とすることができる。プロセッサ読取可能な媒体のより具体的な例には、とりわけ、1つまたは複数の線を有する電気接続(電気)、ポータブルのコンピュータディスケット(磁気)、ランダムアクセスメモリ(RAM)(磁気)、読取専用メモリ(ROM)(磁気)、消去することができるプログラム可能な読取専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ(光学)、書換え可能なコンパクトディスク(CD−RW)(光学)、およびポータブルのコンパクトディスク読取専用メモリ(CDROM)(光学)が含まれる。
方法500のブロック502において、リモートサーバ104上でソースファイルを開く。ソースファイルを、もっと正確にはデータ読取状態で開く。ソースファイルは、クライアント102上で実行され、およびSMBプロトコル、NFSプロトコル、WebNFSプロトコル、CIFSプロトコル、Sambaなどのリモート通信プロトコルを用いるクライアントアプリケーション204によって開かれる。ブロック504において、目的ファイルを、リモートサーバ104上で開く。ブロック506において、ソースファイルのコピーを、リモートサーバ104からクライアント102に対して取出しまたはダウンロードする。ブロック508において、クライアント102は、ソースファイルを識別する識別子(すなわち、レジュームキー)を要求する。
ブロック510において、ソースファイルからソースデータを収集し、およびソースファイルから目的ファイルにソースデータをコピーすることを命令するための収集・コピーのファイルシステム制御(fsctl)コマンドをリモートサーバ104に送信する。リモートプロトコルの収集・コピー拡張208は、サーバ104から取出されたソースファイルのコピーに行われる変更に基づいて、収集・コピーの(fsctl)コマンドを生成する。ソースファイルのコピーに行われる変更に一致して、どのようにしてソースデータをソースファイルから目的ファイルにコピーすべきかを定義するファイル領域のアレイを構築する。ファイル領域のアレイ、ソースファイル識別子、および目的ファイルハンドルを、収集・コピーのfsctlコマンドで送信する。アレイを構築することには、アレイにおける領域毎に、サーバ104がソースファイルからのコピーを開始する、ソースファイルにおける開始位置を示すソースオフセットを決定することを含む。目的オフセットは、サーバ104が目的ファイルへのソースファイルデータのコピーを開始する、目的ファイルにおける開始位置を示す。ソースファイルから目的ファイルにコピーする各ソースデータブロックの長さを決定する、コピーの長さまたはバイト数も含む。
ブロック512において、クライアント102は、ソースファイルから目的ファイルにコピーされた指定のソースデータの全バイト数を示す状態表示を、サーバ104から受信する。方法は、図6のブロック514に続く。ブロック514において、サーバがソースファイルから目的ファイルへ指定された全ソースデータをコピーした場合、クライアント102は、サーバ104から成功表示を受信する。ブロック516において、サーバ104が、ソースファイルから目的ファイルへ指定された全ソースデータをコピーすることに失敗する場合、クライアント102は、サーバ104から失敗の状態表示を受信する。失敗の状態表示といっしょに、クライアント102は、指定された全ソースデータがソースファイルから目的ファイルにコピーされなかった理由を示す状態コードを受信する。
ブロック518において、サーバ104に送信される収集・コピーのfsctlコマンドがいずれかのサーバ制限を越える場合、クライアント102は、サーバ104から無効パラメータの表示を受信する。サーバ制限を越えている場合に、クライアント102は、サーバパラメータについて設定される最大制限を示す、構成された最大限度をサーバ104から受信する。受信する構成された最大限度は、単一の収集・コピーのfsctlでコピーすることができるデータチャンクの数について構成された最大限度(例えば、256)、単一のデータチャンクでコピーすることができるデータ量について構成された最大限度(例えば、1MB)、単一の収集・コピーのfsctlでコピーすることができるデータ量について構成された最大限度(例えば、16MB)、および単一の収集・コピーのfsctlコマンドを処理する間に経過することができる時間について構成された最大限度(例えば、25秒)を含む。
ブロック520において、クライアント102は、目的ファイルの中の空白のままである位置において、目的ファイルに新規データを(すなわち、ソースファイルデータと対比して)書込む。クライアント102は、書込むべき新規データが、どこにデータを書込むべきかを示す目的ファイル内のオフセットとともに、含まれる書込要求をサーバに送信する。サーバによって収集・コピーfsctlコマンドが実行される前または後に、目的ファイルに新規データを書込むことができることを特に言及する。
図7から開始して、リモートプロトコルを介してリモートのファイル更新を実行する別の方法700を例示する。方法700のブロック702において、サーバ104は、クライアント102からの第1のオープン要求に応答して、もっと正確にはデータ読取状態でソースファイルを開く。ブロック704において、サーバ104は、クライアント102からの第2のオープン要求に応答して、もっと正確にはデータ書込状態で目的ファイルを開く。ブロック706において、サーバ104は、クライアント102から受信する収集・コピーのfsctlコマンドに応答して、ソースファイルから目的ファイルにソースデータをコピーする。収集・コピーのfsctlコマンドは、どのようにソースデータをソースファイルから目的ファイルにコピーすべきかを定義するファイル領域のアレイを含む。ファイル領域のアレイは、クライアント102上に置かれたソースファイルのコピーに行われる変更に一致して、クライアント102上に構築される。アレイにおける各ファイル領域は、サーバ104がソースファイルからコピーを開始するソースファイルの中の開始位置を示すソースオフセット、サーバ104が目的ファイルにソースファイルデータのコピーを開始する目的ファイルの中の開始位置を示す目的オフセット、およびソースファイルから目的ファイルにコピーするソースファイルの各データブロックの長さを決定するコピーの長さまたはバイト数を含む。収集・コピーのfsctlコマンドは、ソースファイル識別子および目的ファイルハンドルをも含む。
ブロック708において、サーバ104は、ソースファイルから目的ファイルにコピーされた指定のソースデータの全バイト数を示す状態表示を、クライアント102に送信する。ブロック710において、サーバ104は、サーバが指定された全ソースデータをソースファイルから目的ファイルにコピーした場合に、成功表示をクライアント102に送信する。ブロック712において、サーバ104は、サーバ104が指定された全ソースデータをソースファイルから目的ファイルにコピーするのに失敗する場合に、失敗の状態表示を送信する。失敗の状態表示とともに、サーバ104は、指定された全ソースデータがソースファイルから目的ファイルにコピーされなかった理由を示す状態コードを送信する。
方法700は、図8のブロック714に続く。ブロック714において、サーバ104は、収集・コピーのfsctlコマンドがいずれかのサーバ制限を越える場合に、クライアント102に無効パラメータの表示を送信する。サーバ制限を越えている場合に、サーバ104は、サーバパラメータについて設定される最大制限を示す構成された最大限度をサーバ104から送信する。送信される構成された最大限度は、単一の収集・コピーのfsctlでコピーすることができるデータチャンクの数について構成された最大限度(例えば、256)、単一のデータチャンクでコピーすることができるデータ量について構成された最大限度(例えば、1MB)、単一の収集・コピーのfsctlでコピーすることができるデータ量について構成された最大限度(例えば、16MB)、および単一の収集・コピーのfsctlコマンドを処理する間に経過することのできる時間について構成された最大限度(例えば、25秒)を含む。
ブロック716において、サーバ104は、目的ファイルの中の空白のままである位置において目的ファイルに書込むべき(すなわち、ソースデータと対比して)新規データを含むデータ書込要求を、クライアント102から受信する。ブロック718において、サーバ104は、書込要求に一致して、目的ファイルにおける空白位置に新規データを書込む。サーバによって収集・コピーのfsctlコマンドが実行される前または後に、目的ファイルに新規データを書込むことができることを特に言及する。
(例示的コンピューティング環境)
図9は、図1〜8を参照して本明細書において上述したクライアント装置102およびサーバ装置104などのコンピュータ装置を実装するのに適した例示的コンピューティング環境を例示する。図9には、1つの具体的な構成を示すが、このようなコンピューティング装置は、他のコンピューティング構成で実装してもよい。
コンピューティング環境900は、コンピュータ902の形式で汎用コンピューティングシステムを含む。制限はしないが、コンピュータ902の構成要素は、1つもしくは複数のプロセッサまたは処理ユニット904、システムメモリ906、およびプロセッサ904を含む種々のシステム構成要素をシステムメモリ906に連結するシステムバス908を含むことができる。
システムバス908は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックポート(AGP)、およびいろいろなバスアーキテクチャのうちのいずれかを使用するプロセッサまたはローカルバスを含む、数種類のバス構造のいずれかのうちの1つまたは複数を表す。システムバス908の例は、メザニンバスとしても知られるPCI(Peripheral Component Interconnect)バスであろう。
コンピュータ902は、いろいろなコンピュータ読取可能な媒体を含む。このような媒体は、コンピュータ902によってアクセス可能であり、および揮発性媒体と不揮発性媒体との、取外し可能な媒体と固定媒体との両方を含む、あらゆる使用可能な媒体とすることができる。システムメモリ906は、ランダムアクセスメモリ(RAM)910などの揮発性メモリ、および/または読取専用メモリ(ROM)912などの不揮発性メモリの形式でのコンピュータ読取可能な媒体を含む。基本入出力システム(BIOS)914は、起動中などに、コンピュータ902内の要素間で情報を転送するのを援助する基本ルーチンを含んでおり、ROM912に格納される。RAM910は、処理ユニット904によって、直にアクセス可能でありおよび/または現時点で処理されている、データおよび/またはプログラムモジュールを含む。
コンピュータ902は、他の取外し可能/固定の、揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。一例として、図9には、固定の不揮発性磁気媒体(図示せず)に対して読取りおよび書込むためのハードディスクドライブ916、取外し可能な不揮発性磁気ディスク920(例えば、「フロッピー(登録商標)ディスク」)に対して読取りおよび書込むための磁気ディスクドライブ918、ならびにCD−ROM,DVD−ROM、または他の光媒体などの取外し可能な不揮発性光ディスク924に対して読取りおよび/または書込むための光ディスクドライブ922を例示する。ハードディスクドライブ916、磁気ディスクドライブ918、および光ディスクドライブ922を、各々、1つまたは複数のデータ媒体インターフェイス925によって、システムバス908に接続する。あるいはまた、ハードディスクドライブ916、磁気ディスクドライブ918、および光ディスクドライブ922を、SCSIインターフェイス(図示せず)によってシステムバス908に接続することができる。
ディスクドライブおよびディスクドライブに関連するコンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造体、プログラムモジュール、および他のデータの不揮発性記憶装置を、コンピュータ902に提供する。例では、ハードディスク916、取外し可能な磁気ディスク920、および取外し可能な光ディスク924を例示するが、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、CD−ROM、デジタル多用途ディスク(DVD)または他の光記憶装置、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的に消去することができるプログラム可能な読取専用メモリ(EEPROM)など、コンピュータによりアクセス可能なデータを格納することができる他の種類のコンピュータ読取可能な媒体を使用することによって、例示的コンピューティングシステムおよび環境を実装することができることを理解すべきである。
一例として、オペレーティングシステム926、1つまたは複数のアプリケーションプログラム928、他のプログラムモジュール930、およびプログラムデータ932を含む、ハードディスク916、磁気ディスク920、光ディスク924、ROM912、および/またはRAM910に、あらゆる数のプログラムモジュールを格納することができる。このようなオペレーティングシステム926、1つまたは複数のアプリケーションプログラム928、他のプログラムモジュール930、およびプログラムデータ932(またはそれらの何らかの組合わせ)の各々は、ユーザのネットワークアクセス情報に関するキャッシュ機構の実施形態を含むことができる。
コンピュータ902は、通信媒体として識別されるいろいろなコンピュータ/プロセッサ読取可能な媒体を含むことができる。通信媒体は、コンピュータ読取可能な命令、データ構造体、プログラムモジュール、または搬送波もしくは他の転送機構などの変調データ信号中の他のデータを包含し、およびあらゆる情報伝送媒体を含む。用語の「変調データ信号」とは、信号中の情報をエンコードするような方法で設定されまたは変更された信号特性のうちの1つまたは複数を有する信号を意味する。一例として、および制限はしないが、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、RF、赤外線および他の無線媒体などの無線媒体を含む。上述のいずれかの組み合わせでも、コンピュータ読取可能な媒体の範囲内に含まれる。
キーボード934およびポインティング装置936(例えばマウス)などの入力装置によって、ユーザは、コマンドおよび情報をコンピュータシステム902に入力することができる。他の入力装置938(具体的に図示せず)は、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、シリアルポート、スキャナなどを含むことができる。これらおよび他の入力装置を、システムバス908に連結された入出力インターフェイス940によって処理ユニット904に接続するが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、他のインターフェイスおよびバス構造によって接続することができる。
モニタ942または他の種類の表示装置を、ビデオアダプタ944など、インターフェイスによってシステムバス908に接続することもできる。モニタ942に加え、他の周辺出力装置は、入出力インターフェイス940によってコンピュータ902に接続することができるスピーカ(図示せず)およびプリンタ946などの構成要素を含むことができる。
コンピュータ902は、リモートコンピューティング装置948など、1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーキング環境において動作することができる。一例として、リモートコンピューティング装置948は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の一般のネットワークノードなどとすることができる。リモートコンピューティング装置948は、本明細書において説明したコンピュータシステム902の関連要素および特徴のうちの多くまたは全部を含むことができるポータブルコンピュータとして例示する。
コンピュータ902とリモートコンピュータ948との間の論理接続は、ローカルエリアネットワーク(LAN)950および一般的な広域エリアネットワーク(WAN)952として表す。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてはどこにでもある。LANのネットワーク環境で実施する場合、コンピュータ902は、ネットワークインターフェイスまたはアダプタ954によってローカルネットワーク950に接続される。WANのネットワーク環境で実施する場合、コンピュータ902は、モデム956または広域エリアネットワーク952を通じて通信を確立する他の手段を含む。モデム956は、コンピュータ902に対して内蔵または外付けとすることができ、入出力インターフェイス940または他の適切な機構によってシステムバス908に接続することができる。例示したネットワーク接続は、例示的であること、およびコンピュータ902と948との間に通信リンクを確立する他の手段を採用することができることを理解されたい。
コンピューティング環境900で例示した環境など、ネットワーク化された環境において、説明したコンピュータ902の関連プログラムモジュール、またはその一部を、リモートのメモリ記憶装置に格納することができる。一例として、リモートアプリケーションプログラム958は、リモートコンピュータ948のメモリ装置上に常駐する。説明の目的のために、オペレーティングシステムなど、アプリケーションプログラムおよび他の実行可能なプログラムの構成要素を、本明細書において別個のブロックとして例示するが、これらのプログラムおよび構成要素は、様々な時間にコンピューティングシステム902の異なる記憶装置の構成要素において常駐し、およびコンピュータのデータプロセッサによって実行されることが認識される。
(結び)
構造的特徴および/または方法論的な動作に特定の言語で本発明を説明しているが、添付した特許請求の範囲で明示される本発明は、説明した特定の特徴または動作に必ずしも制限されないことを理解すべきである。むしろ特定の特徴または動作は、請求する発明を実施する例示的形態として開示する。
リモートプロトコルを介してリモートのファイル更新を実施するのに適した例示的動作環境を例示する図である。 リモートプロトコルを介してリモートのファイル更新を実施するよう構成されたクライアント装置およびサーバ装置の例示的実施形態を例示する図である。 リモートサーバ上のソースファイルおよび目的ファイルの例、ならびにクライアント上のソースファイルのクライアントコピーの例を例示する図である。 リモートサーバ上のソースファイルおよび目的ファイルの例、ならびにクライアント上のソースファイルのクライアントコピーの例を例示する図である。 リモートプロトコルを介してリモートのファイル更新を実施する例示的方法を例示するフローチャートである。 リモートプロトコルを介してリモートのファイル更新を実施する例示的方法を例示するフローチャートである。 リモートプロトコルを介してリモートのファイル更新を実施する例示的方法を例示するフローチャートである。 リモートプロトコルを介してリモートのファイル更新を実施する例示的方法を例示するフローチャートである。 図1〜8を参照して説明するなどクライアントコンピュータ装置およびサーバコンピュータ装置を実施するのに適した例示的コンピューティング環境を例示する図である。
符号の説明
102 クライアント装置
104 サーバ装置
200 プロセッサ
202 メモリ
204 アプリケーション
206 クライアント側プロトコル
208 収集・コピー拡張(イニシエータ)
210 プロセッサ
212 メモリ
214 サーバ側プロトコル
216 収集・コピー拡張(インプリメンタ)
218 ファイル記憶

Claims (35)

  1. リモートサーバ上のソースファイルを開くステップと、
    前記リモートサーバ上の目的ファイルを開くステップと、
    前記リモートサーバに命令して前記ソースファイルから前記目的ファイルにソースデータをコピーさせる収集・コピーのファイルシステム制御(fsctl)コマンドを送信するステップと
    を備えたことを特徴とするファイル更新の方法。
  2. 前記収集・コピーのfsctlコマンドを送信するステップは、どのようにソースデータを前記リモートサーバ上のソースファイルから前記リモートサーバ上の前記目的ファイルにコピーすべきかを定義するファイル領域のアレイを構築するステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記ファイル領域のアレイを構築するステップは、前記アレイ中の各ファイル領域に対して、前記ソースファイルからバイト数分のソースデータをコピーする前記ソースファイル内の開始位置を識別するソースオフセット、前記目的ファイルに前記バイト数分のソースデータをコピーする前記目的ファイル内の開始位置を識別する目的オフセット、および前記バイト数を定義する長さを決定するステップを含むことを特徴とする請求項2に記載の方法。
  4. 前記収集・コピーのfsctlコマンドを送信するステップは、
    どのようにソースデータを前記リモートサーバ上の前記ソースファイルから前記リモートサーバ上の前記目的ファイルにコピーすべきかを定義する前記ファイル領域のアレイを送信するステップと、
    前記ソースファイルの識別子を送信するステップと、
    目的ファイルハンドルを送信するステップと
    を含むことを特徴とする請求項2に記載の方法。
  5. 前記ソースファイルのコピーを前記リモートサーバから取り出すステップをさらに備えたことを特徴とする請求項1に記載の方法。
  6. 前記ソースファイルの識別子を前記リモートサーバに要求するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  7. 前記目的ファイルに新規データを書込むステップをさらに備えたことを特徴とする請求項1に記載の方法。
  8. 前記書込むステップは、前記リモートサーバが前記ソースファイルから前記目的ファイルにソースデータをコピーする場合に作成される前記目的ファイル内の空白位置に書込むべきデータを含むデータ書込命令をリモートサーバに送信するステップを含むことを特徴とする請求項7に記載の方法。
  9. 前記ソースファイルから前記目的ファイルにコピーするソースデータの全バイト数を示す状態表示を受信するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  10. 前記リモートサーバが指定された全ソースデータをソースファイルから目的ファイルにコピーする場合、前記リモートサーバから成功の状態表示を受信するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  11. 前記リモートサーバが指定された全ソースデータを前記ソースファイルから前記目的ファイルにコピーするのに失敗する場合、前記リモートサーバから失敗の状態表示を受信するステップと、
    前記指定された全ソースデータが前記ソースファイルから前記目的ファイルにコピーされなかった理由を示す状態コードを受信するステップと
    をさらに備えたことを特徴とする請求項1に記載の方法。
  12. 前記リモートサーバへの収集・コピーのfsctlコマンドが、いずれかのサーバ制限を越える場合、前記リモートサーバから無効パラメータの表示を受信するステップと、
    サーバパラメータについて設定される最大限度を示す構成された最大限度を前記リモートサーバから受信するステップと
    をさらに備えたことを特徴とする請求項1に記載の方法。
  13. 前記構成された最大限度を前記リモートサーバから受信するステップは、
    前記リモートサーバへの単一の収集・コピーのfsctlコマンドでコピーすることができるデータチャンクの数について構成された最大限度を受信するステップと、
    単一のデータチャンクでコピーすることができるデータ量について構成された最大限度を受信するステップと、
    前記リモートサーバへの単一の収集・コピーfsctlコマンドでコピーすることができるデータの最大量について構成された最大限度を受信するステップと、
    単一の収集・コピーのfsctlコマンドを処理する間に経過することができる時間について構成された最大限度を受信するステップと
    を含むことを特徴とする請求項12に記載の方法。
  14. 請求項1に記載の方法を実行するために構成されるプロセッサ実行可能な命令を備えたことを特徴とするプロセッサ読取可能な媒体。
  15. クライアントからの第1のオープン要求に応答してソースファイルを開くステップと、
    前記クライアントからの第2のオープン要求に応答して目的ファイルを開くステップと、
    前記ソースファイルから前記目的ファイルにコピーするデータのチャンクを指定する収集・コピーのfsctlコマンドをクライアントから受信することに応答して、前記ソースファイルから前記目的ファイルにソースデータをコピーするステップと
    を備えたことを特徴とする方法。
  16. 前記収集・コピーfsctlコマンドを受信するステップは、
    どのようにソースデータを前記ソースファイルから前記目的ファイルにコピーすべきかを定義するファイル領域のアレイを受信するステップと、
    前記ソースファイルの識別子を受信するステップと、
    目的ファイルハンドルを受信するステップと
    を含むことを特徴とする請求項15に記載の方法。
  17. 前記目的ファイルに書込む新規データを含むデータ書込要求を前記クライアントから受信するステップと、
    ソースファイルのデータを欠いているオフセットにおいて前記目的ファイルに前記新規データを書込むステップと
    をさらに備えたことを特徴とする請求項15に記載の方法。
  18. 前記ソースファイルから前記目的ファイルにコピーされるソースデータの全バイト数を示す状態表示を前記クライアントに送信するステップをさらに備えたことを特徴とする請求項15に記載の方法。
  19. 前記収集・コピーのfsctlコマンドで指定される全ソースデータが前記ソースファイルから前記目的ファイルにコピーされる場合、前記クライアントに成功の状態表示を送信するステップをさらに備えたことを特徴とする請求項15に記載の方法。
  20. 前記収集・コピーのfsctlコマンドで指定される全ソースデータが前記ソースファイルから前記目的ファイルにコピーされない場合、前記クライアントに失敗の状態表示を送信するステップと、
    前記指定された全ソースデータが前記ソースファイルから前記目的ファイルにコピーされなかった理由を示す状態コードを送信するステップと
    をさらに備えたことを特徴とする請求項15に記載の方法。
  21. 前記収集・コピーのfsctlコマンドがいずれかのサーバ制限を越える場合、前記クライアントに無効パラメータの表示を送信するステップと、
    サーバパラメータについて設定される最大限度を示す構成された最大限度を前記クライアントに送信するステップと
    をさらに備えたことを特徴とする請求項15に記載の方法。
  22. 前記構成された最大限度を前記クライアントに送信するステップは、
    単一の収集・コピーfsctlコマンドでコピーすることができるデータチャンクの数について構成された最大限度を送信するステップと、
    単一のデータチャンクでコピーすることができるデータ量について構成された最大限度を送信するステップと、
    単一の収集・コピーのfsctlコマンドでコピーすることができるデータの最大量について構成された最大限度を送信するステップと、
    単一の収集・コピーのfsctlコマンドを処理する間に経過することができる時間について構成された最大限度を送信するステップと
    を含むことを特徴とする請求項21に記載の方法。
  23. 前記クライアントにソースファイル識別子を送信するステップをさらに備えたことを特徴とする請求項15に記載の方法。
  24. 請求項15に記載の方法を実行するために構成されるプロセッサ実行可能な命令を備えたことを特徴とするプロセッサ読取可能な媒体。
  25. リモートサーバに命令してソースファイルを開かせ、および前記ソースファイルに少なくともデータ読取アクセスを提供するステップと、
    前記ソースファイルの識別子を前記リモートサーバに要求するステップと、
    前記リモートサーバに命令して目的ファイルを開かせ、および前記目的ファイルに少なくとも書込アクセスを提供するステップと、
    前記ソースファイルから前記目的ファイルにコピーするデータブロックを識別するファイル領域のアレイを構築するステップと、
    前記リモートサーバに命令して、前記目的ファイル中の特定のオフセットにおいて、前記ソースファイルから前記目的ファイルに前記識別されたデータブロックをコピーさせるステップと
    について構成されるプロセッサ実行可能な命令を備えたことを特徴とするプロセッサ読取可能な媒体。
  26. 前記リモートサーバに命令して前記識別されたデータブロックをコピーさせるステップは、
    前記リモートサーバが、識別されたデータブロック全部を前記ソースファイルから前記目的ファイルへのコピーに成功した場合に示す状態表示を前記リモートサーバから受信するステップと、
    前記ソースファイルから前記目的ファイルにコピーされるデータの全バイト数を受信するステップと
    を含むことを特徴とする請求項25に記載のプロセッサ読取可能な媒体。
  27. 前記ファイル領域のアレイを構築するステップは、前記アレイ中の各ファイル領域に対して、
    前記ソースファイルからバイト数分のソースデータをコピーする前記ソースファイル内の開始位置を識別するソースオフセットを決定するステップと、
    前記目的ファイルに前記バイト数分のソースデータをコピーする前記目的ファイル内の開始位置を識別する目的オフセットを決定するステップと、
    コピーされるソースデータの前記バイト数を決定するステップと
    を含むことを特徴とする請求項25に記載のプロセッサ読取可能な媒体。
  28. 前記リモートサーバに命令して前記識別されたデータブロックをコピーするステップは、前記ソースファイルから前記目的ファイルにコピーするデータブロックを識別する前記ファイル領域のアレイを含む、収集・コピーのファイルシステム制御(fsctl)コマンドをリモートサーバに発行するステップを含むことを特徴とする請求項25に記載のプロセッサ読取可能な媒体。
  29. 請求項25に記載の前記プロセッサ読取可能な媒体を備えたことを特徴とするコンピュータ。
  30. アプリケーションプログラムと、
    リモートサーバ上のデータファイルにアクセスしおよび処理することを前記アプリケーションプログラムに可能にするプロトコルと、
    前記リモートサーバに命令して、前記サーバ上のソースファイルから前記サーバ上の目的ファイル内の指定された位置にソースデータのチャンクをコピーさせる、収集・コピーのファイルシステム制御(fsctl)コマンドによって、前記リモートサーバ上のデータファイルを更新することを前記アプリケーションプログラムに可能にする前記プロトコルの収集・コピー拡張と
    を備えたことを特徴とするクライアントコンピュータ。
  31. 前記収集・コピーのfsctlコマンドは、
    どのように前記ソースデータのチャンクを前記リモートサーバ上の前記ソースファイルから前記リモートサーバ上の前記目的ファイルにコピーすべきかを定義するファイル領域のアレイと、
    前記ソースファイルの識別子と、
    目的ファイルハンドルと
    を備えたことを特徴とする請求項30に記載のクライアントコンピュータ。
  32. 前記プロトコルは、
    SMB(Server Message Block)プロトコルと、
    NFS(Network File System)プロトコルと、
    WebNFSプロトコルと、
    CIFS(Common Internet File System)プロトコルと、
    Sambaプロトコルと
    を含むグループから選択されることを特徴とする請求項30に記載のクライアントコンピュータ。
  33. ファイル記憶と、
    クライアントアプリケーションからのコマンドに応答して、前記ファイル記憶のソースファイルにアクセスしおよび目的ファイルを開くように構成されたプロトコルと、
    前記クライアントアプリケーションからの収集・コピーのファイルシステム制御(fsctl)コマンドに応答して、前記ソースファイルから前記目的ファイル中の指定された位置にソースデータをコピーするように構成されたプロトコル拡張と
    を備えたことを特徴とするサーバコンピュータ。
  34. 前記収集・コピーのfsctlコマンドは、
    前記ソースファイル内のソースデータのブロックを定義し、および前記目的ファイル中の前記ソースデータのブロックをコピーする位置をサーバに命令するファイル領域のアレイと、
    前記ソースファイルを識別するレジュームキーと、
    目的ファイルハンドルと
    を備えたことを特徴とする請求項33に記載のサーバコンピュータ。
  35. 前記プロトコルは、
    SMBプロトコルと、
    NFSプロトコルと、
    WebNFSプロトコルと、
    CIFSプロトコルと、
    Sambaプロトコルと
    を含むグループから選択されることを特徴とする請求項33に記載のサーバコンピュータ。
JP2005208724A 2004-07-19 2005-07-19 リモートプロトコルによるリモートのファイル更新 Expired - Fee Related JP4786954B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US58914504P 2004-07-19 2004-07-19
US60/589,145 2004-07-19
US10/954,747 US7617256B2 (en) 2004-07-19 2004-09-30 Remote file updates through remote protocol
US10/954,747 2004-09-30

Publications (3)

Publication Number Publication Date
JP2006031711A true JP2006031711A (ja) 2006-02-02
JP2006031711A5 JP2006031711A5 (ja) 2008-10-02
JP4786954B2 JP4786954B2 (ja) 2011-10-05

Family

ID=35149606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005208724A Expired - Fee Related JP4786954B2 (ja) 2004-07-19 2005-07-19 リモートプロトコルによるリモートのファイル更新

Country Status (7)

Country Link
US (1) US7617256B2 (ja)
EP (1) EP1619600B1 (ja)
JP (1) JP4786954B2 (ja)
KR (1) KR101122890B1 (ja)
CN (1) CN1744603B (ja)
AT (1) ATE408197T1 (ja)
DE (1) DE602005009616D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011191856A (ja) * 2010-03-12 2011-09-29 Hitachi Ltd ファイルキャッシュの管理方法、ファイルキャッシュ装置、及び、プログラム

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412017B1 (en) * 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US7162499B2 (en) * 2000-06-21 2007-01-09 Microsoft Corporation Linked value replication
US6879564B2 (en) * 2001-02-28 2005-04-12 Microsoft Corp. Method for designating communication paths in a network
US7035922B2 (en) * 2001-11-27 2006-04-25 Microsoft Corporation Non-invasive latency monitoring in a store-and-forward replication system
US7529778B1 (en) 2001-12-12 2009-05-05 Microsoft Corporation System and method for providing access to consistent point-in-time file versions
US7185359B2 (en) * 2001-12-21 2007-02-27 Microsoft Corporation Authentication and authorization across autonomous network systems
US20060288049A1 (en) * 2005-06-20 2006-12-21 Fabio Benedetti Method, System and computer Program for Concurrent File Update
KR100825724B1 (ko) * 2005-12-08 2008-04-29 한국전자통신연구원 직접접속방식을 적용하는 고속 전송이 가능한PMEM(PCI Memory)를 이용한 객체 기반저장시스템 및 그 시스템에서의 전송 방법
CN1997006B (zh) * 2006-01-06 2011-06-22 鸿富锦精密工业(深圳)有限公司 网络通信中转控制系统及方法
US8131644B2 (en) * 2006-08-29 2012-03-06 Sap Ag Formular update
US7831568B2 (en) * 2006-08-29 2010-11-09 Sap Ag Data migration
US7823124B2 (en) 2006-08-29 2010-10-26 Sap Ag Transformation layer
US7831637B2 (en) 2006-08-29 2010-11-09 Sap Ag System on the fly
US7908589B2 (en) 2006-08-29 2011-03-15 Sap Ag Deployment
US7912800B2 (en) * 2006-08-29 2011-03-22 Sap Ag Deduction engine to determine what configuration management scoping questions to ask a user based on responses to one or more previous questions
US20080127082A1 (en) * 2006-08-29 2008-05-29 Miho Emil Birimisa System and method for requirements-based application configuration
US8065661B2 (en) 2006-08-29 2011-11-22 Sap Ag Test engine
US7827528B2 (en) * 2006-08-29 2010-11-02 Sap Ag Delta layering
KR101079592B1 (ko) * 2006-11-03 2011-11-04 삼성전자주식회사 디스플레이장치 및 그 정보갱신방법
CN101102280B (zh) * 2007-08-01 2010-12-08 中兴通讯股份有限公司 一种ip多媒体子系统中优化通讯传输效率的方法
EP2195968A2 (en) * 2007-09-14 2010-06-16 Softkvm, Llc Software method and system for controlling and observing computer networking devices
WO2009054834A1 (en) 2007-10-25 2009-04-30 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8140637B2 (en) * 2007-10-25 2012-03-20 Hewlett-Packard Development Company, L.P. Communicating chunks between devices
WO2009054827A1 (en) * 2007-10-25 2009-04-30 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8135659B2 (en) 2008-10-01 2012-03-13 Sap Ag System configuration comparison to identify process variation
US8396893B2 (en) 2008-12-11 2013-03-12 Sap Ag Unified configuration of multiple applications
US8255429B2 (en) 2008-12-17 2012-08-28 Sap Ag Configuration change without disruption of incomplete processes
US8892789B2 (en) * 2008-12-19 2014-11-18 Netapp, Inc. Accelerating internet small computer system interface (iSCSI) proxy input/output (I/O)
US8185566B2 (en) * 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
CN103577210B (zh) * 2012-08-06 2017-11-28 广州三星通信技术研究有限公司 移动终端之间挂载的系统和方法
US10592527B1 (en) * 2013-02-07 2020-03-17 Veritas Technologies Llc Techniques for duplicating deduplicated data
KR101529877B1 (ko) * 2013-07-26 2015-06-18 서울시립대학교 산학협력단 원격 데이터 연산 방법 및 시스템
CN103401867A (zh) * 2013-07-31 2013-11-20 珠海金山网络游戏科技有限公司 一种通过协议对打包文件进行更新的方法及系统
CN107430546B (zh) * 2015-06-26 2020-04-21 华为技术有限公司 一种文件更新方法及存储设备
US10154079B2 (en) 2015-08-11 2018-12-11 Dell Products L.P. Pre-boot file transfer system
CN105451080A (zh) * 2015-12-10 2016-03-30 安徽广行通信科技股份有限公司 一种智能机顶盒终端系统升级方法
KR101956602B1 (ko) * 2017-06-14 2019-03-12 (주)클라우드네트웍스 로그 데이터 수집 장치
CN107390970A (zh) * 2017-06-15 2017-11-24 深信服科技股份有限公司 文本框展示方法、服务器、用户终端及存储介质
CN109347937B (zh) * 2018-10-09 2021-08-27 深圳市亿联智能有限公司 一种应用于视频监控设备的智能远程升级方法
CN111666277B (zh) * 2019-02-21 2023-05-26 阿里巴巴集团控股有限公司 数据图表、数据源文件更新方法、设备、系统及存储介质
CN112783828B (zh) * 2019-11-11 2022-08-19 千寻位置网络有限公司 Igs文件处理方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001077908A2 (en) * 2000-03-30 2001-10-18 Microsoft Corporation Transactional file system

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US553375A (en) * 1896-01-21 Window-curtain
US4399504A (en) 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4825354A (en) 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4914570A (en) 1986-09-15 1990-04-03 Counterpoint Computers, Inc. Process distribution and sharing system for multiple processor computer system
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5202971A (en) 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US4791566A (en) 1987-03-27 1988-12-13 Digital Equipment Corporation Terminal device session management protocol
US5008853A (en) 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4891785A (en) 1988-07-08 1990-01-02 Donohoo Theodore J Method for transferring data files between computers in a network response to generalized application program instructions
US5124909A (en) 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
US5109519A (en) 1989-03-28 1992-04-28 Wang Laboratories, Inc. Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer
US5113519A (en) * 1989-05-15 1992-05-12 International Business Machines Corporation Maintenance of file attributes in a distributed data processing system
US5560008A (en) 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US5218696A (en) 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5261051A (en) 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
US5265261A (en) 1989-08-14 1993-11-23 Microsoft Corporation Method and system for network communications using raw mode protocols
JP2575543B2 (ja) 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
EP0453863A2 (en) * 1990-04-27 1991-10-30 National Semiconductor Corporation Methods and apparatus for implementing a media access control/host system interface
JPH0619771A (ja) 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> 異種のクライアントによる共用ファイルのファイル管理機構
US5349642A (en) * 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5493728A (en) * 1993-02-19 1996-02-20 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5491752A (en) 1993-03-18 1996-02-13 Digital Equipment Corporation, Patent Law Group System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens
JP3528206B2 (ja) * 1993-07-13 2004-05-17 富士ゼロックス株式会社 ファイル管理システム
US5631913A (en) * 1994-02-09 1997-05-20 Matsushita Electric Industrial Co., Ltd. Test circuit and test method of integrated semiconductor device
US5588117A (en) 1994-05-23 1996-12-24 Hewlett-Packard Company Sender-selective send/receive order processing on a per message basis
US5860022A (en) * 1994-07-26 1999-01-12 Hitachi, Ltd. Computer system and method of issuing input/output commands therefrom
US5513314A (en) * 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
WO1996032685A1 (en) * 1995-04-11 1996-10-17 Kinetech, Inc. Identifying data in a data processing system
US5628005A (en) * 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
US5845280A (en) * 1995-09-25 1998-12-01 Microsoft Corporation Method and apparatus for transmitting a file in a network using a single transmit request from a user-mode process to a kernel-mode process
US5764887A (en) 1995-12-11 1998-06-09 International Business Machines Corporation System and method for supporting distributed computing mechanisms in a local area network server environment
EP0891663A1 (en) 1996-04-01 1999-01-20 Hewlett-Packard Company Transmitting messages over a network
US6208952B1 (en) 1996-10-24 2001-03-27 Microsoft Corporation Method and system for delayed registration of protocols
US6088737A (en) * 1996-10-25 2000-07-11 Canon Kabushiki Kaisha Information processing system and control method thereof
US5931925A (en) * 1996-12-02 1999-08-03 International Business Machines Corporation System and method for efficiently transferring datastreams in a multimedia system
KR100287137B1 (ko) * 1997-04-11 2001-04-16 윤종용 휴대형 정보 단말기의 버전 관리방법
US5931913A (en) 1997-05-07 1999-08-03 International Business Machines Corporation Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol
US6065010A (en) * 1997-06-10 2000-05-16 Daikin Us Corporation Computer implemented method of generating virtual files for sharing information of physical information file
US6219799B1 (en) 1997-07-01 2001-04-17 Unisys Corporation Technique to support pseudo-names
US6092199A (en) 1997-07-07 2000-07-18 International Business Machines Corporation Dynamic creation of a user account in a client following authentication from a non-native server domain
CA2251456C (en) * 1997-10-31 2007-02-13 Sony Corporation An apparatus for storing and transmitting data
US6516351B2 (en) * 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US6061768A (en) * 1997-12-18 2000-05-09 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for storing tracking information indicating stored data status between contending memory controllers
US7010532B1 (en) * 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US6757705B1 (en) 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
US6401123B1 (en) 1998-11-24 2002-06-04 International Busines Machines Corporation Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol
US20030195974A1 (en) * 1998-12-04 2003-10-16 Ronning Joel A. Apparatus and method for scheduling of search for updates or downloads of a file
JP2000242574A (ja) * 1999-02-22 2000-09-08 Mitsubishi Electric Corp データ転送方法および予定転送先データベース作成方法
US6324581B1 (en) * 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
US6453354B1 (en) 1999-03-03 2002-09-17 Emc Corporation File server system using connection-oriented protocol and sharing data sets among data movers
US6938096B1 (en) 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
US6757698B2 (en) * 1999-04-14 2004-06-29 Iomega Corporation Method and apparatus for automatically synchronizing data from a host computer to two or more backup data storage locations
US6349350B1 (en) 1999-05-04 2002-02-19 International Business Machines Corporation System, method, and program for handling failed connections in an input/output (I/O) system
US6850962B1 (en) * 1999-05-07 2005-02-01 Commercequest, Inc. File transfer system and method
US6430691B1 (en) 1999-06-21 2002-08-06 Copytele, Inc. Stand-alone telecommunications security device
US6910082B1 (en) * 1999-11-18 2005-06-21 International Business Machines Corporation Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server
US6658476B1 (en) 1999-11-29 2003-12-02 Microsoft Corporation Client-server protocol support list for standard request-response protocols
US6452903B1 (en) 2000-05-31 2002-09-17 Fujitsu Network Communications, Inc. Network switch supporting rate-based and credit-based flow control mechanisms on a link-by-link basis
US6766430B2 (en) * 2000-07-06 2004-07-20 Hitachi, Ltd. Data reallocation among storage systems
US6349250B1 (en) 2000-10-26 2002-02-19 Detroit Diesel Corporation Clear historic data from a vehicle data recorder
US6868417B2 (en) * 2000-12-18 2005-03-15 Spinnaker Networks, Inc. Mechanism for handling file level and block level remote file accesses using the same server
US7055036B2 (en) 2001-04-06 2006-05-30 Mcafee, Inc. System and method to verify trusted status of peer in a peer-to-peer network environment
US6587921B2 (en) * 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
US7394764B2 (en) * 2001-12-14 2008-07-01 Sasken Communication Technologies Limited Technique for improving transmission control protocol performance in lossy networks
US20030140129A1 (en) 2002-01-24 2003-07-24 Noam Livnat Installing communication protocol in a handheld device
CA2385344A1 (en) 2002-05-08 2003-11-08 Bell Globemedia Inc. Data transfer method and apparatus
JP4000905B2 (ja) 2002-05-22 2007-10-31 ソニー株式会社 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
US7039659B2 (en) * 2002-06-25 2006-05-02 Emc Corporation Method and apparatus for making differential independent data copies in a data processing system
US7490152B2 (en) 2003-04-11 2009-02-10 Alcatel-Lucent Usa Inc. Version caching mechanism
US7363629B2 (en) 2003-06-19 2008-04-22 International Business Machines Corporation Method, system, and program for remote resource management
US7698115B2 (en) 2003-06-30 2010-04-13 Microsoft Corporation System and method for dynamically allocating resources in a client/server environment
US7870268B2 (en) 2003-09-15 2011-01-11 Intel Corporation Method, system, and program for managing data transmission through a network
FI20031779A0 (fi) 2003-12-05 2003-12-05 Nokia Corp Menetelmä, järjestelmä ja lähetettävän puolen yhteyskäytäntöyksikkö datapakettien lähettämiseksi kuittaamattoman toimintamuodon palveluissa
US7698361B2 (en) 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US20060271695A1 (en) 2005-05-16 2006-11-30 Electronics Line 3000 Ltd. System for remote secured operation, monitoring and control of security and other types of events
US8316129B2 (en) * 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001077908A2 (en) * 2000-03-30 2001-10-18 Microsoft Corporation Transactional file system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011191856A (ja) * 2010-03-12 2011-09-29 Hitachi Ltd ファイルキャッシュの管理方法、ファイルキャッシュ装置、及び、プログラム

Also Published As

Publication number Publication date
CN1744603A (zh) 2006-03-08
KR101122890B1 (ko) 2012-03-20
DE602005009616D1 (de) 2008-10-23
US20060026165A1 (en) 2006-02-02
US7617256B2 (en) 2009-11-10
ATE408197T1 (de) 2008-09-15
EP1619600A2 (en) 2006-01-25
KR20060053864A (ko) 2006-05-22
JP4786954B2 (ja) 2011-10-05
CN1744603B (zh) 2010-12-22
EP1619600B1 (en) 2008-09-10
EP1619600A3 (en) 2006-05-24

Similar Documents

Publication Publication Date Title
JP4786954B2 (ja) リモートプロトコルによるリモートのファイル更新
US8972348B2 (en) Method and system for supporting off-line mode of operation and synchronization
JP4696089B2 (ja) 分散ストレージシステム
US8069225B2 (en) Transparent client-server transaction accelerator
US7206796B2 (en) System and method for synchronizing multiple database files
JP5260333B2 (ja) Nas及びcas統合体でデータをバックアップする為の方法と装置
JP2986097B2 (ja) 通信方法、通信装置、プロトコル・インターセプタおよびコンピュータ可読記憶媒体
US9122635B1 (en) Efficient data backup with change tracking
JP2006031711A5 (ja)
JP2006350829A (ja) ファイルバージョン管理装置及び方法とプログラム
CN100473070C (zh) 一种具有存储功能的usb设备在网络计算机上的映射方法
US10684920B2 (en) Optimized and consistent replication of file overwrites
JP2007531152A (ja) バージョニングをベースとするトリガのためのシステムおよび方法
WO2019047976A1 (zh) 网络文件管理方法、终端及计算机可读存储介质
CN112948340A (zh) 数据同步方法、装置、电子设备及可读存储介质
JP2011034550A (ja) 中継機器、中継方法およびプログラム
JPH11232159A (ja) ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
US7529783B2 (en) Log shipping data replication with parallel log writing and log shipping at the primary site
US10402373B1 (en) Filesystem redirection
JP2002334010A (ja) 広域ネットワークシステム
JPH11345179A (ja) データ管理方法、データ管理システム及び構成装置、記録媒体
WO2023236746A1 (zh) 一种数据文件缓存处理方法、装置、存储介质及电子装置
JP4607936B2 (ja) データ転送方法及びデータ転送システム
JP2006185463A (ja) ゲートウェイ装置
JP2001117845A (ja) 情報提供システム及び情報提供方法、識別情報付加装置及び識別情報付加プログラムを記録したコンピュータ読み取り可能な記録媒体、情報提供装置及び情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体、情報利用端末及び情報利用プログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110317

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110323

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110418

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110421

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110517

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110617

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110708

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110714

R150 Certificate of patent or registration of utility model

Ref document number: 4786954

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees