JP2004265414A - 複製ファイルの複数のファイル状態を管理する方法 - Google Patents

複製ファイルの複数のファイル状態を管理する方法 Download PDF

Info

Publication number
JP2004265414A
JP2004265414A JP2004055387A JP2004055387A JP2004265414A JP 2004265414 A JP2004265414 A JP 2004265414A JP 2004055387 A JP2004055387 A JP 2004055387A JP 2004055387 A JP2004055387 A JP 2004055387A JP 2004265414 A JP2004265414 A JP 2004265414A
Authority
JP
Japan
Prior art keywords
copy
computer
local copy
rollback
version
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
JP2004055387A
Other languages
English (en)
Other versions
JP4643915B2 (ja
Inventor
Noah Edelstein
エーデルスタイン ノア
Lauren Antonoff
アントノフ ローレン
Hani Saliba
サリバ ハニ
Hai Liu
ハイ リュウ
Steven James Rayson
ジェームズ レイソン スティーブン
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 JP2004265414A publication Critical patent/JP2004265414A/ja
Application granted granted Critical
Publication of JP4643915B2 publication Critical patent/JP4643915B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B65/00Locks or fastenings for special use
    • E05B65/0025Locks or fastenings for special use for glass wings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B47/00Operating or controlling locks or other fastening devices by electric or magnetic means
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B9/00Lock casings or latch-mechanism casings ; Fastening locks or fasteners or parts thereof to the wing
    • E05B9/08Fastening locks or fasteners or parts thereof, e.g. the casings of latch-bolt locks or cylinder locks to the wing

Abstract

【課題】 サーバからの複製ファイルを管理する改善された方法を提供すること。
【解決手段】 ユーザが変更オープンを実施すると、ファイルをロックせずに、ファイルを最初にオープンする変更ファイルのオープン動作がサーバに実装される。ユーザが、(明示的にまたは暗示的に)ユーザがファイルをオープンしようとしている、あるいはオープンする意図があることを示すと、次いで、ファイルをロックして編集することができる。このようにして、ユーザがファイルを要求するときのデフォルト動作は、他のユーザがそのファイルにアクセスするのを拒絶せずにファイルをオープンすることである。次いで、ユーザが編集が行われることを指示すると、そのファイルのロックが得られる。
【選択図】 図3

Description

本発明は、ドキュメント管理の分野に関し、詳細にはサーバからコピーされたファイルの使用中に複数のファイル状態を管理する方法およびシステムに関する。
コンピュータ・ユーザがネットワーク上で別のユーザとあるドキュメントについて共同作業を行うことは、ネットワーク化されたコンピュータ環境中で一般に行われている。かかるネットワークには、LAN(local area network;ローカル・エリア・ネットワーク)、WAN(wide area network;広域ネットワーク)、インターネットなどがあり得る。かかる共同作業では、各ユーザは、汎用ソフトウェア、共同作業の対象としてのファイルのタイプ用に特別に設計されたソフトウェアなどのソフトウェア・アプリケーションを使用することにより、電子ファイルを作成し編集することができる。
共同作業は、ファイル上で共同作業を行うすべてのユーザからアクセス可能な位置に電子ファイルのマスタ・バージョンを保持することによって可能となる。従来技術のネットワーク・コンピュータ環境では、サーバ・コンピュータおよび1つまたは複数のユーザ・コンピュータが存在することができる。このサーバは、各ユーザ・コンピュータからアクセス可能であり、したがって、ユーザが共同作業をするファイルのマスタ・バージョンを格納し制御することができる。
電子ファイル上で共同作業を行うときに、ユーザはサーバ上のファイルにアクセスする。その場合に、ユーザは、アプリケーションによりユーザにとって利用可能となる任意の方法でファイルを変更することによってファイルに対する作業を行うことができる。例えば、アプリケーションがワード・プロセッサ、スプレッド・シート、データベース、および/または同様なものである場合、このアプリケーションは、ファイルの追加、編集、コピー、および/または削除などのタスクを実施する手段を提供することができる。ユーザがファイルへのかかる変更を保持したいと望み、必要な許可をもつ場合、任意の変更が完了すると、ユーザは、これらの変更をサーバ上に格納されるファイルのバージョンに保存することができる。
一元的に格納されたファイル(centrally-stored file)が有ることは共同作業にとって良いことだが、サーバに対するアクセスを必要とすることには弱点がある。ユーザは、ファイルのサーバ・コピーにアクセスするためにサーバに接続する必要がある。複製エンジン(replication engines)が、この問題を解決するために使用される。かかるエンジンによって、ユーザはサーバ上のファイルのローカル・コピーをもつことができる。このローカル・コピーにより、サーバ・コピーにアクセスできないときでさえ、ユーザはそのファイルを用いて作業を行い、またそのファイルを閲覧することができる。この複製エンジンは、ユーザのローカル・マシンへのファイルのサーバ状態の複製を管理し、サーバ・コピーとローカル・コピーの間の整合性を維持しようとしながらユーザにオフライン・アクセスを提供する。
しかし、上述の解決方法には欠点があり、既存の複製エンジンを使用してかかる整合性を維持することは困難または不可能である。サーバ・コンピュータ上のファイルのバージョンは、ユーザが接続されていない間にも変化することがある。例えば、サーバ上のファイルのバージョンをバージョンAとする。複製エンジンによりこのバージョンAをユーザのコンピュータにコピーする。ユーザが「オフライン」である(サーバから切断されている)とき、ユーザがファイルを編集し、バージョンBを生成する。そうしている間に、第2のユーザがそのファイルのサーバ・コピーを編集し、バージョンCを作成する。ユーザが、そのサーバに再び接続すると、ユーザは、ユーザのカレント・バージョン(B)およびサーバ・バージョン(C)に対するアクセスを有することになる。現行の複製エンジンでは、ユーザ・バージョンをサーバ・バージョン上にコピーすることができるだけであり、この場合には第2のユーザの変更が失われることになり、あるいはサーバ・バージョンをユーザ・バージョン上にコピーすることができるだけである。このユーザにとって、バージョンAからの変更に関して利用可能な情報はない。ユーザが、バージョンCを保存し、変更を破棄することによって同期化した場合、バージョンBは、もはやこのユーザからアクセス可能ではなくなってしまう。
これらの欠点があるので、サーバからの複製ファイルを管理する改善された方法が望まれている。
複製ファイルの3つのコピーを格納するサーバ・ファイル複製技術が実装される。これらの3つのファイルによって、ユーザに対して、改善された、競合(conflict)の解消を与える。
シャドウ・ファイル(shadow file)は、サーバ上のファイルの最後の良好なことが知られたバージョンのコピーである。ファイルが最初にサーバからコピーされると、エクストラ・コピー(extra copy)がシャドウ・ファイルに作られる。このシャドウ・ファイルは、オフラインでの参加を可能にするだけでなく、同期化と競合管理における性能を改善するために、ローカル・マシンにもたらされる。このシャドウ・ファイルは、サーバに対する接続が存在し、サーバ・コピーがシャドウ・コピーに含まれるバージョンから変化したときはいつでもそのサーバ・コピーから更新される。この時(場合)にだけ、このファイルは更新される。
ローカル・コピー(local copy)は、ユーザの作業コピーである。ユーザがファイルに対して行ったどのような変更もこのローカル・コピー中に格納される。このローカル・コピーを使用して、(ユーザの変更をサーバに対してプッシュ(push)する必要がある場合に)サーバを更新し、または(ユーザ・バージョンもサーバ・バージョンも共に変化しているときには)競合を識別する。
ロールバック・ファイル(rollback file)もまた格納される。このロールバック・ファイルは、ローカル・コピーが変更される(例えば、競合が解消され、またはサーバ・バージョンがローカル・コピーにコピーされるとき)と、そのローカル・コピーから作成されるコピーである。このコピーにより、ユーザが見たことがある最後の知られているコピーまで確実にユーザは戻ることができる。
以上に述べた概要、ならびに好ましい実施形態についての以下の詳細な説明は、添付図面と併せ読むとさらに良く理解されよう。本発明を示すために、図面中に本発明の実施形態の例を示しているが、本発明は、開示された特定の方法および手段には限定されない。
概説
複製を使用する間、サーバ上の各ファイルに対して3つのコピーを格納するサーバ・ファイル複製技術が、実装される。ローカル・ファイルは、ファイルのユーザの作業コピーを格納している。シャドウ・ファイルは、良好なことが知られた最後のサーバ・ファイルのバージョン(サーバ上のファイルのバージョン)のコピーである。ロールバック・ファイルは、競合の解消または複製がそれを更新する以前の最後のローカル・コピーのコピーを格納する。
ファイルを最初にサーバからローカル・コピーとしてコピーするときに、追加コピーをシャドウ・ファイルに対して行う。これを行って、同期性能を改善し、競合管理を実装する。
ユーザ・コンピュータをサーバに接続すると、複製が行われる。シャドウ・ファイルをサーバ・バージョンと比較する。それらが同じ場合、最後の同期化以来、ファイルのサーバ・バージョンに対する更新が行われていないことになる。それらが同じでない場合には、サーバ・バージョンがシャドウ・バージョンにコピーされる。そのローカル・バージョンはロールバックに保存され、シャドウ・バージョンは、ローカル・バージョンに保存される。
バージョン状態は、ローカル・ファイルおよびサーバ・ファイルに対する変更状態を追跡する。バージョン状態に関する情報および競合管理に対する選択権がユーザにもたらされる。
計算機装置(computing device)の例
図1、および以下の議論は、本発明を実装可能な好適な計算機環境の簡潔な一般的な説明を提供するものである。しかし、ハンドヘルド型、携帯型、およびその他の計算機装置、ならびにあらゆる種類の計算機対象が、以上に説明したように、本発明に関する使用に対して企図されていることを理解されたい。したがって、汎用コンピュータについて以下で説明しているが、これは一例にすぎず、本発明は、ネットワーク/バスの相互運用性および相互作用を有する小型軽量クライアントなどその他の計算機装置を用いても実装できる。したがって、非常にわずかしか、または最小限のクライアント資源しか関与しないネットワーク化されたホスト・サービスの環境、例えばクライアント装置が、アプライアンス(appliance)またはその他の計算機装置中に配置された1つまたは複数のオブジェクトなど、ネットワーク/バスへのインターフェースとしての役割を単に果たすネットワーク環境中で、本発明を実装することができる。本質的に、データを格納でき、そこからデータを検索できる場所ならどこでも、本発明による動作環境として望ましく、または適している。
必ず必要ではないが、サービスの開発者が装置またはオブジェクトに対して使用し、かつ/または本発明に従って動作するアプリケーション・ソフトウェア内に含まれるオペレーティング・システムを介して、本発明を実装することができる。ソフトウェアは、クライアント・ワークステーション、サーバ、その他の装置など1台または複数台のコンピュータで実行されるプログラム・モジュールなどコンピュータ実行可能な命令の一般的なコンテキストで記述することができる。一般に、プログラム・モジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一般に、プログラム・モジュールの機能は、様々な実施形態中で要望通りに結合し、分散することができる。さらに、本発明がその他のコンピュータ構成を用いて実施することができることが当業者には理解されよう。本発明と共に使用するのに好適となし得る、その他よく知られた計算機システム、計算機環境、および/または計算機構成には、それだけには限定されないが、パーソナル・コンピュータ(PC)、自動銀行用窓口機(automated teller machine)、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのシステム、プログラム可能大衆消費電子製品、ネットワークPC、アプライアンス、ライト、環境制御要素、ミニ・コンピュータ、メインフレーム・コンピュータなどが含まれる。本発明はまた、通信ネットワーク/バス、またはその他のデータ伝送媒体を介してリンクされるリモート処理装置によってタスクを実施する分散計算機環境中で実施することもできる。分散計算機環境では、メモリ記憶装置を含めてローカル・コンピュータ記憶媒体中にもリモート・コンピュータ記憶媒体中にもプログラム・モジュールを配置することが可能であり、クライアント・ノードはサーバ・ノードのように振る舞うことができる。
したがって、図1は、本発明を実装することができる好適な計算機システム環境100の一例を示しており、以上で明らかにしたが、この計算機システム環境100は、適切な計算機環境の単なる一例にすぎず、本発明の用途または機能の範囲をどのようにも限定しようと示唆するものではない。また、計算機環境100は、この動作環境100の一例に示す構成要素のどれか1つまたは組合せに関するどのような依存性または要件を有すると解釈すべきでもない。
図1を参照すると、本発明を実装するシステムの一例は、コンピュータ・システム110の形式の汎用計算機装置を含んでいる。コンピュータ・システム110の構成要素には、それだけには限定されないが、処理装置120、システム・メモリ130、およびシステム・メモリを含めて様々なシステム構成要素を処理装置120に結合するシステム・バス121が含まれる。システム・バス121は、メモリ・バスまたはメモリ制御装置、周辺バス、および様々なバス・アーキテクチャのうちのどれかを使用したローカル・バスを含めて、複数タイプのバス構造のどれでもよい。例として、それには限定されないが、かかるアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture;マイクロ・チャネル・アーキテクチャ)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、および(メザニン(Mezzanine)バスとしても知られている)PCI(Peripheral Component Interconnect)バスが含まれる。
コンピュータ・システム110は、一般に様々なコンピュータ読取り可能な媒体を含む。コンピュータ読取り可能な媒体は、コンピュータ・システム110でアクセスできる任意の利用可能な媒体とすることができ、揮発性の媒体も不揮発性の媒体も、着脱可能な媒体も着脱不能な媒体も含む。例として、それだけには限定されないが、コンピュータ読取り可能な媒体には、コンピュータ記憶媒体と通信媒体を含まれ得る。コンピュータ記憶媒体は、コンピュータ読取り可能な命令、データ構造、プログラム・モジュール、またはその他のデータなどの情報を記憶する任意の方法および技術の形で実装される揮発性および不揮発性の媒体、着脱可能および着脱不能な媒体を含む。コンピュータ記憶媒体には、それだけには限定されないが、RAM(Random Access Memory;ランダム・アクセス・メモリ)、ROM(Read Only Memory;読出し専用メモリ)、EEPROM(Electrically Erasable Programmable Read Only Memory;電気的消去プログラム可能型読出し専用メモリ)、フラッシュ・メモリ(flash memory)またはその他のメモリ技術、CDROM(Compact Disk Read Only Memory)、DVD(digital versatile disk;ディジタル多用途ディスク)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他磁気記憶装置、あるいはそれを使用して望ましい情報を記憶することができ、コンピュータ・システム110でアクセスすることができるその他任意の媒体が含まれる。通信媒体は、一般にコンピュータ読取り可能な命令、データ構造、プログラム・モジュール、または搬送波または他の搬送メカニズムなど変調データ信号の形の他のデータを実施し、任意の情報配信媒体を含む。用語「変調データ信号」は、信号中で情報を符号化するように設定され変更される1つまたは複数の信号の特徴を有する信号を意味する。例として、それだけには限定されないが、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、および音響、RF、赤外線などの無線媒体が含まれる。以上の任意の組合せもまた、コンピュータ読取り媒体の範囲内に含まれるものとする。
システム・メモリ130は、読み出し専用メモリ(ROM)131やランダム・アクセス・メモリ(RAM)132など揮発性メモリおよび/または不揮発性メモリの形式のコンピュータ記憶媒体を含む。起動中などコンピュータ・システム110内の要素間で情報を転送するのに役立つ基本ルーチンを含むBIOS(basic input/output system;基本入出力システム)133は、一般にROM131に格納される。RAM132は、一般に、処理装置120から直接アクセス可能で、かつ/または処理装置によって現在動作中のデータおよび/またはプログラム・モジュールを含む。例として、それだけには限定されないが、図1に、オペレーティング・システム134、アプリケーション・プログラム135、その他のプログラム・モジュール136、およびプログラム・データ137を示す。
コンピュータ・システム110はまた、その他の着脱可能/着脱不能な揮発性/不揮発性のコンピュータ記憶媒体を含む。単なる例として、図1に、着脱不能な不揮発性の磁気媒体から読み取り、それに書き込むハードディスク・ドライブ141、着脱可能な不揮発性磁気ディスク152から読み取り、それに書き込む磁気ディスク・ドライブ151、およびCDROMやその他光媒体など、着脱可能な不揮発性光ディスク156から読み取り、それに書き込む光ディスク・ドライブ155を示す。動作環境の例で使用できるその他の着脱可能/着脱不能な揮発性/不揮発性のコンピュータ記憶媒体には、それだけには限定されないが、磁気テープ・カセット、フラッシュ・メモリ・カード、ディジタル多用途ディスク、ディジタル・ビデオ・テープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスク・ドライブ141は一般に、インターフェース140など着脱不能メモリ・インターフェースを介してシステム・バス121に接続され、磁気ディスク・ドライブ151および光ディスク・ドライブ155は一般に、インターフェース150などの着脱可能なメモリ・インターフェースによってシステム・バス121に接続される。
以上で論じ、図1に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ・システム110のコンピュータ読取り可能な命令、データ構造、プログラム・モジュール、その他のデータの記憶域を提供する。図1で、例えば、ハードディスク・ドライブ141は、オペレーティング・システム144、アプリケーション・プログラム145、その他のプログラム・モジュール146、およびプログラム・データ147を格納するものとして示してある。これらの構成要素は、オペレーティング・システム134、アプリケーション・プログラム135、その他のプログラム・モジュール136、およびプログラム・データ137と同じものとすることもでき、また異なるものとすることもできることに留意されたい。オペレーティング・システム144、アプリケーション・プログラム145、その他のプログラム・モジュール146、およびプログラム・データ147には、ここで異なる番号を付与して、少なくともそれらが異なるコピーであることを示している。ユーザは、キー・ボード162や一般にマウス、トラック・ボール、またはタッチ・パッドと呼ばれるポインティング・デバイス161などの入力装置を介してコンピュータ・システム110に、コマンドおよび情報を入力することができる。(図示されていない)その他の入力装置には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、などが含まれ得る。これらおよびその他の入力装置は、しばしばシステム・バス121に結合されたユーザ入力インターフェース160を介して、処理装置120に接続されるが、パラレル・ポート、ゲーム・ポート、USB(universal serial bus;ユニバーサル・シリアル・バス)などその他インターフェースおよびバス構造で接続することもできる。ノース・ブリッジ(Northbridge)などのグラフィックス・インターフェース182もまた、システム・バス121に接続することができる。ノース・ブリッジは、CPUまたはホスト処理装置120と情報をやりとりするチップセットであり、AGP(accelerated graphics port;アクセラレィティド・グラフィックス・ポート)通信に対する責任を負う。1つまたは複数のグラフィックス処理装置(GPU)184は、グラフィックス・インターフェース182と情報をやりとりすることができる。これに関して、GPU184は一般的に、レジスタ記憶域などのオン・チップ・メモリ記憶域を含み、ビデオ・メモリ186と情報をやりとりする。しかし、GPU184は、コプロセッサの一例にすぎず、したがって様々なコプロセッシング(coprocessing)装置がコンピュータ・システム110に含まれ得る。モニタ191またはその他のタイプの表示装置も、ビデオ・インターフェース190など、ビデオ・メモリ186と情報をやりとりできるインターフェースを介してシステム・バス121に接続される。モニタ191に加えて、コンピュータ・システムはまた、スピーカ197やプリンタ196など、出力周辺インターフェース195を介して接続できるその他の周辺出力装置を含むこともできる。
コンピュータ・システム110は、リモート・コンピュータ180など1つまたは複数のリモート・コンピュータに至る論理接続を使用して、ネットワーク化環境または分散環境中で動作することができる。リモート・コンピュータ180は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア装置(peer device)、またはその他のコモン・ネットワーク・ノード(common network node)であってよく、図1にはメモリ記憶装置181だけしか示されてないが、一般にコンピュータ・システム110に関して以上で説明した要素の多くまたはすべてを含む。図1に示す論理接続は、LAN(local area network;ローカル・エリア・ネットワーク)171およびWAN(wide area network;広域ネットワーク)173を含むが、その他のネットワーク/バスを含むこともできる。かかるネットワーク環境は、家庭、オフィス、企業規模コンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的なものである。
LANネットワーク環境中で使用されるとき、コンピュータ・システム110は、ネットワーク・インターフェースまたはアダプタ170を介して、LAN171に接続される。WANネットワーク環境中で使用するとき、コンピュータ・システム110は一般に、インターネットなどWAN173上で通信を確立するモデム172またはその他の手段を含む。内部的でも外部的でもよいが、ユーザ入力インターフェース160またはその他の適切なメカニズムを介して、バス121にモデム172を接続することができる。ネットワーク環境では、コンピュータ・システム110またはその一部分に関して示したプログラム・モジュールをリモート・メモリ記憶装置に格納することができる。例として、それだけには限定されないが、図1にリモート・アプリケーション・プログラム185をメモリ装置181上にあるものとして示す。図に示すネットワーク接続は、例であり、コンピュータ間で通信リンクを確立するその他の手段も使用することができることを理解されたい。
様々な分散コンピューティング・フレームワークが、パーソナル・コンピュータとインターネットを合わせた観点から開発されてきたし、今も開発されつつある。個人ユーザにもビジネスユーザにも同様に、アプリケーションおよび計算機装置に対するシームレスに相互運用可能でウェブを可能とする(Web-enabled)インターフェースが提供され、計算機アクティビティがますますウェブ・ブラウザまたはネットワーク指向になっている。
例えば、マイクロソフト(MICROSOFT)(登録商標)の.NETプラットフォームは、サーバ、およびウェブベースのデータ・ストレージ装置やダウンロード可能な装置ソフトウェアなどのビルディング・ブロック・サービス(building-block service)を含む。本明細書の実施形態の例は、計算機装置上にあるソフトウェアに関して説明したものだが、本発明の1つまたは複数の部分はまた、.NETの言語およびサービスのすべてならびにその他分散計算機フレームワークでも同様に、本発明による動作を実施し、サポートし、アクセスすることができるように、オペレーティング・システム、API(application programming interface;アプリケーション・プログラミング・インターフェース)、またはコプロセッサと表示装置と要求オブジェクトのうちのどれかの間の「ミドル・マン(middle man)」オブジェクトを介して実装することもできる。
複製ファイルの複数のファイル状態を管理する
複製
図2を参照すると、サーバ・コンピュータ200が、ネットワーク215を介してユーザ・コンピュータ220に接続されている。サーバが要求を受け取ると、サーバはユーザ・コンピュータ220がファイルをオープンすることができるようにする。ファイル複製は、他のユーザ・コンピュータ270上のユーザと一緒に、ユーザ・コンピュータ220がサーバ・ファイルのローカル・バージョン上で作業することを可能にする。ファイルの正式なバージョンが、サーバ・コピー210としてサーバ・コンピュータ200上に格納される。ファイル複製マネージャ230が、ユーザ・コンピュータ220中に、3つのファイルのコピーを作成する。これらは、ローカル・コピー232、シャドウ・コピー234、ロールバック・コピー238である。
ローカル・コピー232は、ユーザ・コンピュータ220上でアプリケーション240によってオープンされる。一実施形態では、ユーザ・コンピュータ220上のユーザ・ネーム空間内に、ローカル・コピー232のコピーが存在する。この実施形態では、ローカル・コピー232が、ネーム空間中の変更を追跡し、ネーム空間コピーは、アプリケーション240によって使用される。
ネーム空間コピーを使用する場合、ネーム空間コピーは、ファイル複製マネージャ230では管理されない。この実施形態では、ネーム空間ファイルはユーザが一般にアクセスするファイルである。このファイルは、作成されたファイルでも、また電子メールを介して受け取ったファイルでもよい。ファイルを、電子メールを介して受け取る場合、ユーザは、(サーバ情報を伴う)「常時ライブ・アタッチメント(always live attachment)」を受け取り、そのユーザのローカル・コンピュータにコピーを保存する。まさにこのファイルの保存行為により、2つのコピーが、すなわち1つはメール・ストア(mail store)中に、もう1つはローカル・マシン上にあることになる。ローカル・マシン・コピーはネーム空間コピーである。アタッチメントのサーバ情報により、ローカル・コピー232、シャドウ・コピー234、およびロールバック・コピー238のファイルの複製と作成が可能になる。ネーム空間のコピーは、ユーザがそれを使うとき、複製マネージャ230によってローカル・コピー232と同期化させられる。
シャドウ・コピー234は、ユーザ・コンピュータ220にとって最後に知られているサーバ・コピー210のバージョンを保持する。ユーザ・コンピュータ220がサーバ・コンピュータ200に接続されると、シャドウ・コピー234は、サーバ・コピー210と同じになる。
ロールバック・コピー238は、ユーザが閲覧し編集した最後に知られているコピーを格納する。ローカル・コピー232が、複製プロセスで上書きされてしまっているが、ユーザが以前の状態に戻りたいと望むとき、このロールバック・コピー238を使用して、ユーザが読み取り、または編集した最後のコピーが提供される。
ファイル複製マネージャ230は、図に示すようにアプリケーション240とは別になっていてもよく、またアプリケーション240と一体化されていてもよい。どちらの場合でも、ファイル複製マネージャからのユーザに対するメッセージおよび情報、ならびにユーザ入力を収集し、ユーザに対するメッセージを表示するユーザ・インターフェースは、ユーザ・アプリケーション240に提示される表示と一体化することができる。(さらに以下で説明する)ファイルの2つのバージョンの間で行われる変更に関してユーザに提示される情報はまた、アプリケーション240の表示を使用して提示することもできる。さらに、ユーザに対するかかる表示情報の生成には、アプリケーション240の機能を利用することができる。
バージョン状態(versioning states)
本発明の一実施形態によるファイル複製技術の動作については、バージョン状態を参照することによって理解することができる。各複製ドキュメントに対して、バージョン状態は、ユーザ・コンピュータ220内でドキュメントに何が生じているかを記述するものである。これらのバージョン状態は、以前のバージョン状態と、ローカル・コピー232、シャドウ・コピー234、およびサーバ・コピー210(ドキュメントのマスタ・コピー)中で生じている動作とに基づいている。
最初の状態は、「カレント(current)」の状態である。バージョン状態は、ローカル・コピー232が、シャドウ・コピー234と同じときに、カレントの状態となる。例えば、ユーザ・コンピュータ220上に保存されたファイルが共同作業のためにサーバ・コンピュータ200にアップロードされるとき、ローカル・コピー232は、シャドウ・コピー234と同じである。同様に、サーバ・コンピュータ200上のファイルをユーザ・コンピュータ220に最初に複製するとき、ローカル・コピーは、シャドウ・コピー234と等しくなる。図3の状態図に示すように、ローカル・コピー232に変更を施すと、その結果、ローカル・コピーはもはやシャドウ・コピー234と同じではなくなり、状態は、「カレント」の状態300から「変更(modified)」状態310に遷移する。この変更が、サーバにプッシュ・アップ(push up)されると、または放棄されると、その結果、ローカル・コピー232は再びシャドウ・コピー234に等しくなり、次いで、状態は「カレント」の状態300に戻る。
ユーザ・コンピュータ220がサーバ・コンピュータ200に接続され、サーバ・コピー210が更新されたことに留意すると、新しいサーバ・コピー210のコピーが、シャドウ・コピー234に施される。ローカル・コピー232は、ロールバック・コピー238として保存され、次いでシャドウ・コピー234が、ローカル・コピー232にコピーされる。一実施形態では、ユーザが閲覧した最後のコピーが追跡される。したがって、ユーザがバージョンAを閲覧していて、バージョンBがサーバからダウンロードされた場合、ロールバックはバージョンAのコピーのはずである。しかし、バージョンCが次にサーバからダウンロードされる場合、ユーザがバージョンBにアクセスしていない限り、ロールバックがバージョンBに変更されることはない。このように、ロールバックは、ユーザが見た最後のバージョンを保持する。
図3から分かるように、サーバ・ファイルの変更がシャドウ・ファイルにダウンロードされ、ロールバック・コピーが格納され、状態が「カレント」の状態300である場合、新しい状態は、「ロールバック利用可能状態(rollback available)」320となるはずである。しかし、このことが、「変更」状態310で、生じた場合には、ローカル・コピー232に保存されている、サーバ・コピーの以前のバージョンに対するローカルな変更と、サーバ・コピー210の新しいバージョンにもたらされた(その他のユーザからの)その他の何らかの変更とが共に存在している。この結果、「競合(conflicted)」状態330がもたらされる。
「競合(conflicted)」状態330が生じると、ローカル・コピー232およびシャドウ・コピー234中に不一致の可能性がある2組の変更についての解決を行わなければならない。例えば、ユーザは、ローカル・コピー232中でなされた変更を放棄するか、またはその変更に上書きするかを選択することができる。この解決の結果得られるファイルはローカル・コピー232として格納され、状態は「変更」状態に戻る。以前に指摘したように、ローカル・コピー232中の変更が、サーバにプッシュ・アップされたり、あるいは、現在のサーバ・コピーの方を選んで放棄されたりすると、状態は「カレント」の状態に変更される。
サーバに変更をアップロード
各バージョン状態において、複数の同期オプション(synchronization option)がユーザにとって利用可能である。これらのオプションは、ファイル複製マネージャ230から別々に利用可能とすることもでき、またアプリケーション240と一体化することもできる。変更がなされている場合、サーバ・コピー210に対する変更をアップロードする(uploading)(または「プッシュする(pushing)」)ことは、1つのオプションである。この同期オプションにより、ユーザが、(接続が利用可能な場合)サーバ・コンピュータ200に接続し、ローカル・コピー232をサーバ・コピー210と同期させることができる。
バージョン状態がカレントの状態300またはロールバック利用可能状態320の場合、変更はなされておらず、それ故、ファイルはサーバにプッシュされない。バージョン状態が、変更状態310の場合、ローカル・コピー232とシャドウ・コピー234の間の差を求める。このプロセスは、2つのファイル間の「差の生成(generating a diff)」として知られている。バージョン状態が変更状態310であった場合、シャドウ・コピー234は、サーバ・コピー210と同じである(そうでない場合は、バージョン状態は競合状態330となるはずである)。したがって、ファイル全体をサーバにアップロードする必要はない(ローカル・コピー232とシャドウ・コピー234の間の差に関するすべての情報を含むファイルが、必要な情報をすべて含んでいる)。この差のファイルを、サーバ・コンピュータ200で使用して、サーバ・コピー210を更新する。サーバ・コピー210が更新されると、それはシャドウ・コピー234にコピーされ、バージョン状態は適切に変更されることになる。
差のファイルの生成は、オフラインで行うことができる。ユーザは、サーバ・コンピュータ200が、ユーザ・コンピュータ220から届けられる状態にないときに、同期を要求しようと決めることができる。このようなことが生じた場合、サーバ・コンピュータ200が次にアクセス可能なときにアップロード・プロセスが引き続き行われるように、差を作成し、この動作をキューに入れておくことができる。
バージョン状態が競合状態330である場合、競合ユーザ・インターフェースが開始されねばならない。この競合ユーザ・インターフェースは、ユーザがローカル・コピー232とシャドウ・コピー234の間の違いを解決することを、例えば、ローカル・コピー232をユーザ・コンピュータ220上のどこかに保存し、シャドウ・コピー234を新しいローカル・コピー232としてコピーすることによって、可能とするはずである。ユーザ・インターフェースはまた、以上でリストアップした関連アプリケーションで説明したように、より複雑なインターフェースであってもよい。
一実施形態では、ファイルがカレントの状態300またはロールバック利用可能状態320にあるときにローカルな変更が行われていないことを保証し、また差のファイルのアップロードが正常に行われたことを保証するに、複数の検査がなされる。これらの検査が不合格の場合、変更状態310または競合状態330がもたらされることになる。
ロールバック・バージョン
ユーザに利用可能なもう一つのオプションは、バージョン状態がロールバック利用可能状態320または変更状態310であるときのものである。その場合、ユーザが、ロールバック・コピー238中に格納されている、ユーザが以前に閲覧し編集したドキュメントのバージョンにまでロールバックすることを可能とするユーザ・インターフェースがユーザに利用可能となる。
一実施形態では、ユーザ・インターフェースがユーザに表示され、ドキュメントが他のユーザによって更新されてしまっていることが示される。このユーザ・インターフェースは、ユーザが、ロールバック・コピー238中に格納された以前のバージョン、またロールバック・コピー238中に格納した以前のバージョンとローカル・コピー232中に格納された現在のバージョンの間の違いを閲覧すること、を選択できるようになる。
ロールバック・コピーは、本発明のいくつかの実施形態中に存在するだけである。図4に示すように、サーバ・ファイルのファイルの複製は、ローカル・コピーが格納され(ステップ400)、シャドウ・コピーが格納されるとき(ステップ410)に、ユーザ・コンピュータ上で行われる。変更のためのローカル・コピーへのアクセスが許可される(ステップ420)。一部の実施形態では、これは、ローカル・コピーのネーム空間コピー(namespace copy)を用いて行われる。ユーザ・コンピュータをサーバ・コンピュータに接続し、マスタ・ファイルが変化する、シャドウ・コピーを更新する(ステップ430)。一実施形態では、バージョン状態を複製について追跡する。
図5に示すように、ロールバック・コピーを保持する場合、この場合にも、サーバ・ファイルのファイルの複製は、ローカル・コピーが格納される(ステップ500)とき、次にシャドウ・コピーが格納される(ステップ510)ときに、ユーザ・コンピュータ上で行われる。変更のためのローカル・コピーへのアクセスが許可される(ステップ520)。ユーザ・コンピュータがサーバ・コンピュータに接続され、マスタ・ファイルが変更されると、シャドウ・コピーが更新される(ステップ530)。このステップで、シャドウ・コピーが更新されると、必要ならば、ロールバック・コピーも更新される。まず、ローカル・コピーをロールバック・コピーとして格納し、次いで、ローカル・コピーをシャドウ・コピーで更新する。一実施形態では、これは、ローカル・コピーが以前のロールバック以来アクセスされている場合にのみ行われる。
ファイル複製マネージャ230は、別のアプリケーションでもよく、また複製されるファイルと共に使用するアプリケーションに、その全体または一部を一体化してもよい。
結論
以上で述べたように、本発明の実施形態の例を、様々な計算機装置およびネットワーク・アーキテクチャに関して説明してきたが、基となる概念は、サーバを介して共同作業を実装することが望ましい任意の計算機装置またはシステムに適用することができる。したがって、本発明の方法およびシステムは、様々なアプリケーションおよび装置に適用することができる。本明細書においてプログラミング言語の例、名称、および例を、様々な選択の代表例として選択しているが、これらの言語、名称、および例は、限定することを意図したものではない。本発明によって実現される、同じ、同様な、または等価なシステムおよび方法を実現するオブジェクトコードを提供する方法が非常に多くあることが、当業者には理解されよう。
本明細書中で説明した様々な技術を、ハードウェアまたはソフトウェア、あるいは適切な場合には、その両方の組合せとの関連で実装することができる。したがって、本発明の方法および機器、またはそのある態様または部分は、フロッピー(登録商標)ディスケット、CDROM、ハードドライブ、またはその他任意の機械読取り可能な記憶媒体などの具体的な媒体として実施されるプログラム・コード(すなわち、命令)の形式を取ることができ、プログラム・コードがコンピュータなどの機械でロードされ実行されるときには、その機械が本発明を実行するための機器になる。プログラム可能なコンピュータ上でプログラム・コードを実行する場合には、計算機装置は、一般に、プロセッサ、(揮発性および不揮発性のメモリおよび/または記憶要素を含めて)プロセッサで読取り可能な記憶媒体、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。例えば、データ処理APIなどを使用することによって本発明の信号処理サービスを利用することができる1つまたは複数のプログラムでは、高レベルの手続き型のまたはオブジェクト指向のプログラミング言語を用いて実装し、コンピュータと情報をやりとりすることが好ましい。しかし、1つ(または複数)のプログラムは、望むならアセンブリ言語または機械語で実装することができる。いずれの場合にも、言語は、コンパイラ型言語、インタープリタ型言語であってよく、ハードウェア実装と組み合わせることができる。
本発明の方法および機器はまた、電気配線もしくはケーブル配線上で、光ファイバを介して、またはその他任意の伝送形式によるなど、何らかの伝送媒体上で伝送されるプログラム・コードの形式で実施される通信を介して実行することも可能であり、それは、プログラム・コードが、EPROM、ゲート・アレイ、PLD(programmable logic device;プログラマブル・ロジック・デバイス)、クライアント・コンピュータ、ビデオ・レコーダなどの機械によって受け取られ、ロードされ、実行されるとき、あるいは、前記実施形態の例で説明した信号処理能力を有する受信機械が、本発明を実施するための機器となるときである。汎用プロセッサ上で実装すると、プログラム・コードは、このプロセッサと組み合わされて、本発明の機能を実行するように動作する固有の機器を実現する。さらに、本発明に関連して使用される任意の記憶技術は、いつでもハードウェアとソフトウェアの組合せとすることができる。
本発明を様々な形態の好ましい実施形態に関して説明してきたが、本発明を逸脱することなく、本発明と同じ機能を実施するために、その他同様な実施形態が使用できること、また、説明した実施形態に変更および追加を行うことができることを理解されたい。さらに、特に無線ネットワーク装置の数が急増し続けるにつれて、ハンドヘルド装置のオペレーティング・システムおよびその他のアプリケーション特有なオペレーティング・システムを含めて様々なコンピュータ・プラットフォームを考慮していることを強調しておきたい。したがって、本発明は、どれか1つの実施形態に限定すべきものではなく、特許請求の範囲による広範さと範囲において解釈すべきである。
本発明の態様を実装できる計算機環境の一例を示すブロック図である。 サーバ・コンピュータ、ネットワーク、ユーザ・コンピュータ、およびその他のコンピュータの間の関係の一例を示す機能図である。 本発明の一実施形態による状態遷移を示す状態図である。 本発明の一実施形態によるファイルの複製を示す流れ図である。 本発明の一実施形態によるファイルの複製を示す流れ図である。
符号の説明
200 サーバ・コンピュータ
210 サーバ・コピー
215 ネットワーク
220 ユーザ・コンピュータ
230 ファイル複製マネージャ
232 ローカル・コピー
234 シャドウ・コピー
238 ロールバック・コピー
240 アプリケーション
270 その他のユーザ・コンピュータ
300 カレントの状態
310 変更状態
320 ロールバック利用可能状態
330 競合(コンフリクト)状態

Claims (27)

  1. 第1のコンピュータ上に第2のコンピュータ上のマスタ・ファイルのファイルを複製する方法であって、
    前記第1のコンピュータ上に前記マスタ・ファイルのローカル・コピーを格納するステップと、
    前記第1のコンピュータ上に前記マスタ・ファイルのシャドウ・コピーを格納するステップと、
    変更のために前記ローカル・コピーにアクセスを許可するステップと、
    前記マスタ・ファイルが変更されると前記シャドウ・コピーを更新するステップと
    を備えることを特徴とする方法。
  2. 前記複製に関連付けられたバージョン状態を格納するステップをさらに備え、変更のために前記ローカル・コピーにアクセスを許可する前記ステップは、前記ローカル・コピーが変更されると前記バージョン状態を変化させるステップを備えることを特徴とする請求項1に記載の方法。
  3. 前記ローカル・コピーが変更されると前記バージョン状態を変化させる前記ステップは、前記バージョン状態を前記ローカル・コピーが変更されていることを示す変更状態に設定するステップを備えることを特徴とする請求項2に記載の方法。
  4. 前記複製に関連付けられたバージョン状態を格納するステップをさらに備え、前記マスタ・ファイルが変更されると前記シャドウ・コピーを更新する前記ステップは、前記更新が行われると前記バージョン状態を変化させるステップを備えることを特徴とする請求項1に記載の方法。
  5. 前記マスタ・ファイルが変更されると前記シャドウ・コピーを更新する前記ステップは、
    前記ローカル・コピーが変更されていることを検出するステップと、
    前記ローカル・コピーと前記更新されたシャドウ・コピーの間の競合を解消するステップと
    を備えることを特徴とする請求項1に記載の方法。
  6. 前記複製に関連付けられたバージョン状態を格納するステップをさらに備え、前記ローカル・コピーと前記更新されたシャドウ・コピーの間の競合を解消する前記ステップは、前記バージョン状態を競合が存在することを示す競合状態へと変化させるステップを備えることを特徴とする請求項5に記載の方法。
  7. 前記ローカル・コピーと前記更新されたシャドウ・コピーの間の競合を解消する前記ステップは、
    競合インターフェースを提示するステップと、
    競合解消コマンドを受け入れるステップと、
    前記競合解消コマンドを実行するステップと
    を備えることを特徴とする請求項5に記載の方法。
  8. 競合解消コマンドを実行する前記ステップは、
    前記マスタ・ファイルに変更を行うべきかどうかを決定するステップと、
    行うべき前記変更を前記第2のコンピュータに伝えるステップと
    を備えることを特徴とする請求項7に記載の方法。
  9. 行うべき前記変更を前記第2のコンピュータに伝える前記ステップは、
    前記ローカル・コピーと前記マスタ・ファイルの間の差に関する差情報を生成するステップと、
    前記差情報を前記マスタ・ファイルに伝えるステップと
    を備えることを特徴とする請求項8に記載の方法。
  10. 前記マスタ・ファイルが変更されると前記シャドウ・コピーを更新する前記ステップは、
    前記ローカル・コピーをロールバック・コピーとして格納するステップと、
    前記ローカル・コピーを前記シャドウ・コピーで更新するステップと
    を備えることを特徴とする請求項1に記載の方法。
  11. 前記ローカル・コピーをロールバック・コピーとして格納する前記ステップは、
    ロールバック・インターフェースを提示するステップと、
    ロールバック・コマンドを受け入れるステップと、
    前記ロールバック・コマンドに応答して前記ロールバック・コピーを表示するステップと
    を備えることを特徴とする請求項10に記載の方法。
  12. 前記複製に関連付けられたバージョン状態を格納するステップをさらに備え、前記ローカル・コピーをロールバック・コピーとして格納する前記ステップは、前記バージョン状態をロールバック利用可能状態へと変化させるステップを備えることを特徴とする請求項10に記載の方法。
  13. 前記ローカル・コピーがアクセスされているかどうかを追跡するステップをさらに備え、前記ローカル・コピーをロールバック・コピーとして格納する前記ステップは、前記ローカル・コピーがアクセスされている場合にのみ、前記ローカル・コピーをロールバック・コピーとして格納するステップを備えることを特徴とする請求項10に記載の方法。
  14. 請求項1に記載の方法を実施するためのオペレーティング・システム、請求項1に記載の方法を実施する複数のコンピュータ実行可能な命令を格納しているコンピュータ読取り可能な媒体、請求項1に記載の方法を実施するコプロセッシング装置、請求項1に記載の方法を実施するコンピューティング装置、又は請求項1に記載の方法を実施するコンピュータ実行可能な命令を搬送する変調データ信号。
  15. 少なくとも断続的に動作するように第2のコンピュータに接続され、前記第2のコンピュータ上に配置されるマスタ・ファイルを複製するためのコンピュータ・システムであって、
    第1のコンピュータ上の前記マスタ・ファイルのローカル・コピーを格納するローカル・コピー格納域と、
    前記第1のコンピュータ上の前記マスタ・ファイルのシャドウ・コピーを格納するシャドウ・コピー格納域と、
    変更のために前記ローカル・コピーへのアクセスを許可するローカル・コピー変更モジュールと、
    前記マスタ・ファイルが変化すると、前記シャドウ・コピー格納域を更新するシャドウ・コピー更新モジュールと
    を備えることを特徴とするコンピュータ・システム。
  16. 前記複製に関連付けられたバージョン状態を格納するためのバージョン状態格納域をさらに備え、前記ローカル・コピーが変更されると、前記ローカル・コピー変更モジュールは、前記バージョン状態を変化させることを特徴とする請求項15に記載のコンピュータ・システム。
  17. 前記ローカル・コピー変更モジュールは、前記バージョン状態を前記ローカル・コピーが変更されていることを示す変更状態へと変化させることを特徴とする請求項16に記載のコンピュータ・システム。
  18. 前記複製に関連付けられたバージョン状態を格納するためのバージョン状態格納域をさらに備え、前記シャドウ・コピー更新モジュールは、前記更新が生じると、前記バージョン状態を変化させることを特徴とする請求項15に記載のコンピュータ・システム。
  19. 前記シャドウ・コピー更新モジュールは、
    前記ローカル・コピーが変更されていることを検出するローカル・コピー変更検出モジュールと、
    前記ローカル・コピーと前記更新されたシャドウ・コピーの間の競合を解消する競合解消モジュールと
    を備えることを特徴とする請求項15に記載のコンピュータ・システム。
  20. 前記複製に関連付けられたバージョン状態を格納するバージョン状態格納域をさらに備え、前記競合解消モジュールは、前記バージョン状態を競合が存在することを示す競合状態へと変化させることを特徴とする請求項19に記載のコンピュータ・システム。
  21. 前記競合解消モジュールは、
    競合インターフェースを提示する競合インターフェース・モジュールと、
    競合解消コマンドを受け入れる競合解消入力モジュールと、
    前記競合解消コマンドを実行する競合解消実装機構と
    を備えることを特徴とする請求項19に記載のコンピュータ・システム。
  22. 前記競合解消実装機構は、
    前記マスタ・ファイルに対する変更を行うべきかどうかを決定する変更決定モジュールと、
    行うべき前記変更を前記第2のコンピュータに伝える第2のコンピュータ変更通信モジュールと
    を備えることを特徴とする請求項21に記載のコンピュータ・システム。
  23. 前記第2のコンピュータ変更通信モジュールは、
    前記ローカル・コピーと前記マスタ・ファイルの間の差に関する差情報を生成する差生成モジュールと、
    前記差情報を前記マスタ・ファイルに伝える第2のコンピュータ通信モジュールと
    を備えることを特徴とする請求項22に記載のコンピュータ・システム。
  24. 前記シャドウ・コピー更新モジュールは、
    前記ローカル・コピーをロールバック・コピーとして格納するロールバック格納域と、
    前記ローカル・コピーを前記シャドウ・コピーで更新するローカル・コピー更新モジュールと
    を備えることを特徴とする請求項15に記載のコンピュータ・システム。
  25. 前記ローカル・コピー更新モジュールは、
    ロールバック・インターフェースを提示するロールバック・インターフェース提示モジュールと、
    ロールバック・コマンドを受け入れるロールバック・コマンド受入れモジュールと、
    前記ロールバック・コマンドに応答して、前記ロールバック・コピーを表示するロールバック・コピー表示機構と
    を備えることを特徴とする請求項24に記載のコンピュータ・システム。
  26. 前記複製に関連付けられたバージョン状態を格納するバージョン状態格納域をさらに備え、前記ロールバック格納域は、前記バージョン状態をロールバック利用可能状態へと変化させることを特徴とする請求項24に記載のコンピュータ・システム。
  27. 前記ローカル・コピーがアクセスされているかどうかを追跡するローカル・コピー・アクセス追跡モジュールをさらに備え、前記ローカル・コピーをロールバック・コピーとして格納する前記ロールバック格納域は、前記ローカル・コピーがアクセスされている場合にのみ、前記ローカル・コピーをロールバック・コピーとして格納するローカル・コピー・アクセス・ロジックを備えることを特徴とする請求項24に記載のコンピュータ・システム。
JP2004055387A 2003-02-28 2004-02-27 複製ファイルの複数のファイル状態を管理する方法 Expired - Fee Related JP4643915B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/376,873 US8010491B2 (en) 2003-02-28 2003-02-28 Method for managing multiple file states for replicated files

Publications (2)

Publication Number Publication Date
JP2004265414A true JP2004265414A (ja) 2004-09-24
JP4643915B2 JP4643915B2 (ja) 2011-03-02

Family

ID=32771511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004055387A Expired - Fee Related JP4643915B2 (ja) 2003-02-28 2004-02-27 複製ファイルの複数のファイル状態を管理する方法

Country Status (19)

Country Link
US (1) US8010491B2 (ja)
EP (1) EP1452982A3 (ja)
JP (1) JP4643915B2 (ja)
KR (1) KR101076851B1 (ja)
CN (1) CN100377099C (ja)
AU (1) AU2004200462A1 (ja)
BR (1) BRPI0400364A (ja)
CA (1) CA2458249C (ja)
CO (1) CO5550075A1 (ja)
IL (1) IL160353A0 (ja)
MX (1) MXPA04001929A (ja)
MY (1) MY147939A (ja)
NO (1) NO331680B1 (ja)
NZ (1) NZ531279A (ja)
PL (1) PL365551A1 (ja)
RU (1) RU2344468C2 (ja)
SG (1) SG125106A1 (ja)
TW (1) TWI316667B (ja)
ZA (1) ZA200401310B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014064817A1 (ja) * 2012-10-25 2014-05-01 富士通株式会社 情報処理端末、同期制御方法および同期制御プログラム

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370025B1 (en) 2002-12-17 2008-05-06 Symantec Operating Corporation System and method for providing access to replicated data
JP2004265193A (ja) * 2003-03-03 2004-09-24 Canon Inc 情報処理方法、情報処理装置、サーバ装置の制御方法、サーバ装置
US7546291B2 (en) * 2004-02-19 2009-06-09 Microsoft Corporation Data source task pane
US8135755B2 (en) 2005-06-29 2012-03-13 Microsoft Corporation Templates in a schema editor
US7546286B2 (en) * 2004-02-19 2009-06-09 Microsoft Corporation Offline multi-table data editing and storage
US7716168B2 (en) * 2005-06-29 2010-05-11 Microsoft Corporation Modifying table definitions within a database application
GB2445368A (en) * 2005-04-14 2008-07-09 Rajesh Kapur A method and system for preserving access to a system in case of a disaster allowing transaction rollback
US8255362B2 (en) * 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using local changesets that represent differences between software on a repository and a local system
CN100373347C (zh) * 2005-07-13 2008-03-05 华硕电脑股份有限公司 一种具自动备份功能的电子装置
CN100438416C (zh) * 2005-12-02 2008-11-26 无锡永中科技有限公司 一种实现文件协同处理的方法
US7743026B2 (en) * 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
CN101042688B (zh) * 2006-03-21 2011-06-01 北京北大方正电子有限公司 一种报刊版面网络标引的方法及系统
US20080140732A1 (en) * 2006-12-11 2008-06-12 Bentley System, Inc. Method and system for sharing file based data
JP4432087B2 (ja) * 2006-12-26 2010-03-17 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース更新管理システム、プログラムおよび方法
US9495370B1 (en) * 2007-07-19 2016-11-15 American Megatrends, Inc. Data recovery point review in a continuous data protection system
US8190987B2 (en) * 2007-10-25 2012-05-29 Microsoft Corporation Private views of data and local calculations during real time collaboration
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
WO2009062182A1 (en) 2007-11-09 2009-05-14 Topia Technology Architecture for management of digital files across distributed network
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US20090164970A1 (en) * 2007-12-20 2009-06-25 At&T Knowledge Ventures, L.P. System for Managing Automated Report Versions
US8239345B2 (en) * 2007-12-27 2012-08-07 Microsoft Corporation Asynchronous replication
US8135838B2 (en) 2008-04-08 2012-03-13 Geminare Incorporated System and method for providing data and application continuity in a computer system
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8706694B2 (en) * 2008-07-15 2014-04-22 American Megatrends, Inc. Continuous data protection of files stored on a remote storage device
US8145687B2 (en) * 2009-04-08 2012-03-27 Hitachi, Ltd. File detection device and method
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8612380B2 (en) * 2009-05-26 2013-12-17 Adobe Systems Incorporated Web-based collaboration for editing electronic documents
US9298834B2 (en) 2009-05-26 2016-03-29 Adobe Systems Incorporated User presence data for web-based document collaboration
WO2011034548A1 (en) * 2009-09-21 2011-03-24 Hewlett-Packard Development Company, L.P. System including a virtual disk
US8612398B2 (en) * 2010-03-11 2013-12-17 Microsoft Corporation Clean store for operating system and software recovery
US9652440B2 (en) * 2010-05-27 2017-05-16 Microsoft Technology Licensing, Llc Concurrent utilization of a document by multiple threads
US9665582B2 (en) * 2010-08-04 2017-05-30 Quantum Corporation Software, systems, and methods for enhanced replication within virtual machine environments
CN101937310B (zh) * 2010-09-06 2014-07-16 宇龙计算机通信科技(深圳)有限公司 文件复制方法及终端
US20120158891A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Techniques for universal representation of digital content
US9924002B1 (en) 2012-06-21 2018-03-20 EMC IP Holding Company LLC Managing stateless processes
CN104123126B (zh) * 2013-04-26 2018-04-10 阿里巴巴集团控股有限公司 一种用于生成合并冲突记录列表的方法和装置
CN104750536B (zh) 2013-12-30 2018-08-21 华为技术有限公司 一种实现虚拟机自省的方法和装置
WO2020025124A1 (en) * 2018-08-01 2020-02-06 Huawei Technologies Co., Ltd. Device and method for rollback of a structure modification operation
WO2020223099A2 (en) 2019-04-30 2020-11-05 Clumio, Inc. Cloud-based data protection service
CN110262997A (zh) * 2019-05-06 2019-09-20 阿里巴巴集团控股有限公司 用于管理公共文件的方法和系统
CN110795252A (zh) * 2019-09-20 2020-02-14 北京浪潮数据技术有限公司 一种多用户串行编辑文件的方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284998A (ja) * 1999-03-31 2000-10-13 Ricoh Co Ltd データ更新制御システム、データ更新制御方法、その方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0381299B1 (en) 1984-11-14 1998-08-12 Canon Kabushiki Kaisha Image processing system
JPH04181423A (ja) 1990-11-16 1992-06-29 Fujitsu Ltd バージョン管理方式
US5278979A (en) * 1990-12-20 1994-01-11 International Business Machines Corp. Version management system using pointers shared by a plurality of versions for indicating active lines of a version
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
JPH05241933A (ja) * 1992-02-28 1993-09-21 Mitsubishi Electric Corp 分散データ管理システムのファイル保全方式
JP3213766B2 (ja) 1992-03-16 2001-10-02 株式会社日立製作所 レプリケートファイル更新システム
JPH0827754B2 (ja) * 1992-05-21 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおけるファイル管理方法及びファイル管理システム
US5493728A (en) * 1993-02-19 1996-02-20 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5630116A (en) * 1993-08-11 1997-05-13 Nec Corporation Automatic delivery system for master files in a distributed processing system
US5835911A (en) 1994-02-08 1998-11-10 Fujitsu Limited Software distribution and maintenance system and method
DE69504965T2 (de) * 1994-04-21 1999-04-01 British Telecomm Datenspeicherung
US5806078A (en) 1994-06-09 1998-09-08 Softool Corporation Version management system
EP0713183A3 (en) 1994-11-18 1996-10-02 Microsoft Corp Network-independent shadow files
US5694596A (en) 1995-05-25 1997-12-02 Kangaroo, Inc. On-line database updating network system and method
US5881292A (en) 1996-09-26 1999-03-09 Microsoft Corporation Dynamic versioning system for multiple users of multi-module software system
US5930794A (en) * 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
JP2001514776A (ja) 1997-02-27 2001-09-11 シーベル システムズ,インコーポレイティド ローカルな修正を組み込むソフトウェア配布の連続レベル移送の方法
US6314565B1 (en) 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
US6182073B1 (en) 1997-05-20 2001-01-30 Intel Corporation Integrated information browsing and multiple-participant application with a persistency control configured to monitor and to prevent attempts to replace data within the information browser
JP3567696B2 (ja) 1997-09-24 2004-09-22 松下電器産業株式会社 ソフトウェアダウンロードシステム
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
JPH11143754A (ja) 1997-11-05 1999-05-28 Hitachi Ltd バージョン情報・構成情報表示方法および装置およびバージョン情報・構成情報表示プログラムを記録したコンピュータ読み取り可能な記録媒体
US6041333A (en) 1997-11-14 2000-03-21 Microsoft Corporation Method and apparatus for automatically updating a data file from a network
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6052531A (en) 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6457021B1 (en) * 1998-08-18 2002-09-24 Microsoft Corporation In-memory database system
US6804663B1 (en) 1998-09-21 2004-10-12 Microsoft Corporation Methods for optimizing the installation of a software product onto a target computer system
US6341291B1 (en) 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6324544B1 (en) 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US6560655B1 (en) 1999-06-22 2003-05-06 Microsoft Corporation Synchronization manager for standardized synchronization of separate programs
US6405219B2 (en) * 1999-06-22 2002-06-11 F5 Networks, Inc. Method and system for automatically updating the version of a set of files stored on content servers
US6513084B1 (en) 1999-06-29 2003-01-28 Microsoft Corporation Arbitration of state changes
US6529921B1 (en) 1999-06-29 2003-03-04 Microsoft Corporation Dynamic synchronization of tables
US6516339B1 (en) 1999-08-18 2003-02-04 International Business Machines Corporation High performance client/server editor
US6256773B1 (en) 1999-08-31 2001-07-03 Accenture Llp System, method and article of manufacture for configuration management in a development architecture framework
US6449624B1 (en) 1999-10-18 2002-09-10 Fisher-Rosemount Systems, Inc. Version control and audit trail in a process control system
US6757893B1 (en) * 1999-12-17 2004-06-29 Canon Kabushiki Kaisha Version control system for software code
JP2001193735A (ja) * 2000-01-05 2001-07-17 Minebea Co Ltd 球面滑り軸受のトルク調節機構
US6721767B2 (en) * 2000-01-31 2004-04-13 Commvault Systems, Inc. Application specific rollback in a computer system
US6598059B1 (en) * 2000-04-22 2003-07-22 Oracle Corp. System and method of identifying and resolving conflicts among versions of a database table
CN1290038C (zh) * 2000-05-25 2006-12-13 英业达股份有限公司 一种即时生成文件版本的方法
US6845383B1 (en) 2000-06-19 2005-01-18 International Business Machines Corporation System and method for managing concurrent scheduled or on-demand replication of subscriptions
US6865591B1 (en) * 2000-06-30 2005-03-08 Intel Corporation Apparatus and method for building distributed fault-tolerant/high-availability computed applications
US6658330B2 (en) 2000-12-29 2003-12-02 General Electric Co. Method and system for upgrading software for controlling locomotives
US6714953B2 (en) 2001-06-21 2004-03-30 International Business Machines Corporation System and method for managing file export information
US20030167318A1 (en) 2001-10-22 2003-09-04 Apple Computer, Inc. Intelligent synchronization of media player with host computer
US7389309B2 (en) * 2003-02-28 2008-06-17 Microsoft Corporation Method for managing file replication in applications
US7350191B1 (en) 2003-04-22 2008-03-25 Noetix, Inc. Computer implemented system and method for the generation of data access applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284998A (ja) * 1999-03-31 2000-10-13 Ricoh Co Ltd データ更新制御システム、データ更新制御方法、その方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014064817A1 (ja) * 2012-10-25 2014-05-01 富士通株式会社 情報処理端末、同期制御方法および同期制御プログラム
JPWO2014064817A1 (ja) * 2012-10-25 2016-09-05 富士通株式会社 情報処理端末、同期制御方法および同期制御プログラム

Also Published As

Publication number Publication date
MXPA04001929A (es) 2005-04-25
MY147939A (en) 2013-02-15
NZ531279A (en) 2005-07-29
RU2004105881A (ru) 2005-08-10
NO331680B1 (no) 2012-02-20
CN100377099C (zh) 2008-03-26
PL365551A1 (en) 2004-09-06
BRPI0400364A (pt) 2004-12-28
EP1452982A3 (en) 2006-11-08
NO20040829L (no) 2004-09-01
CN1525328A (zh) 2004-09-01
TWI316667B (en) 2009-11-01
CO5550075A1 (es) 2005-08-31
KR20040077497A (ko) 2004-09-04
AU2004200462A1 (en) 2004-09-16
EP1452982A2 (en) 2004-09-01
JP4643915B2 (ja) 2011-03-02
KR101076851B1 (ko) 2011-10-25
SG125106A1 (en) 2006-09-29
ZA200401310B (en) 2005-11-30
TW200508891A (en) 2005-03-01
US20040172424A1 (en) 2004-09-02
IL160353A0 (en) 2004-07-25
CA2458249A1 (en) 2004-08-28
US8010491B2 (en) 2011-08-30
RU2344468C2 (ru) 2009-01-20
CA2458249C (en) 2012-03-27

Similar Documents

Publication Publication Date Title
JP4643915B2 (ja) 複製ファイルの複数のファイル状態を管理する方法
US9705946B2 (en) Method to initiate server based collaboration on e-mail attachments
US9280553B2 (en) Method to delay locking of server files on edit
US7577691B2 (en) Extending hierarchical synchronization scopes to non-hierarchical scenarios
RU2488162C2 (ru) Одновременный совместный просмотр документа
JP4753693B2 (ja) スナップショットなしでアイテムを同期化するシステムおよび方法
US7966426B2 (en) Offline synchronization capability for client application
Strom et al. Concurrency control and view notification algorithms for collaborative replicated objects
US8219526B2 (en) Synchronizing file partitions utilizing a server storage model
US20100313180A1 (en) Systems and methods for varying software build properties using primary and supplemental build files
KR20060050489A (ko) 디맨드 이벤트를 위한 오브젝트 복제
Benmouffok et al. Telex: A Semantic Platform for Cooperative Application Development
Shapiro et al. Telex: A Semantic Platform for Cooperative Application Development
Sutra et al. Telex: A Semantic Platform for Cooperative Application Development
Redmond Tony Redmond's Microsoft Exchange Server 2003: With SP1

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100811

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: 20101130

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: 20101203

R150 Certificate of patent or registration of utility model

Ref document number: 4643915

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: 20131210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees