(57)【要約】【課題】  サーバからの複製ファイルを管理する改善された方法を提供すること。【解決手段】  ユーザが変更オープンを実施すると、ファイルをロックせずに、ファイルを最初にオープンする変更ファイルのオープン動作がサーバに実装される。ユーザが、（明示的にまたは暗示的に）ユーザがファイルをオープンしようとしている、あるいはオープンする意図があることを示すと、次いで、ファイルをロックして編集することができる。このようにして、ユーザがファイルを要求するときのデフォルト動作は、他のユーザがそのファイルにアクセスするのを拒絶せずにファイルをオープンすることである。次いで、ユーザが編集が行われることを指示すると、そのファイルのロックが得られる。【選択図】  図３
2004265414.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータ上に第２のコンピュータ上のマスタ・ファイルのファイルを複製する方法であって、
前記第１のコンピュータ上に前記マスタ・ファイルのローカル・コピーを格納するステップと、
前記第１のコンピュータ上に前記マスタ・ファイルのシャドウ・コピーを格納するステップと、
変更のために前記ローカル・コピーにアクセスを許可するステップと、
前記マスタ・ファイルが変更されると前記シャドウ・コピーを更新するステップと
を備えることを特徴とする方法。
【請求項２】
前記複製に関連付けられたバージョン状態を格納するステップをさらに備え、変更のために前記ローカル・コピーにアクセスを許可する前記ステップは、前記ローカル・コピーが変更されると前記バージョン状態を変化させるステップを備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記ローカル・コピーが変更されると前記バージョン状態を変化させる前記ステップは、前記バージョン状態を前記ローカル・コピーが変更されていることを示す変更状態に設定するステップを備えることを特徴とする請求項２に記載の方法。
【請求項４】
前記複製に関連付けられたバージョン状態を格納するステップをさらに備え、前記マスタ・ファイルが変更されると前記シャドウ・コピーを更新する前記ステップは、前記更新が行われると前記バージョン状態を変化させるステップを備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記マスタ・ファイルが変更されると前記シャドウ・コピーを更新する前記ステップは、
前記ローカル・コピーが変更されていることを検出するステップと、
前記ローカル・コピーと前記更新されたシャドウ・コピーの間の競合を解消するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記複製に関連付けられたバージョン状態を格納するステップをさらに備え、前記ローカル・コピーと前記更新されたシャドウ・コピーの間の競合を解消する前記ステップは、前記バージョン状態を競合が存在することを示す競合状態へと変化させるステップを備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記ローカル・コピーと前記更新されたシャドウ・コピーの間の競合を解消する前記ステップは、
競合インターフェースを提示するステップと、
競合解消コマンドを受け入れるステップと、
前記競合解消コマンドを実行するステップと
を備えることを特徴とする請求項５に記載の方法。
【請求項８】
競合解消コマンドを実行する前記ステップは、
前記マスタ・ファイルに変更を行うべきかどうかを決定するステップと、
行うべき前記変更を前記第２のコンピュータに伝えるステップと
を備えることを特徴とする請求項７に記載の方法。
【請求項９】
行うべき前記変更を前記第２のコンピュータに伝える前記ステップは、
前記ローカル・コピーと前記マスタ・ファイルの間の差に関する差情報を生成するステップと、
前記差情報を前記マスタ・ファイルに伝えるステップと
を備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記マスタ・ファイルが変更されると前記シャドウ・コピーを更新する前記ステップは、
前記ローカル・コピーをロールバック・コピーとして格納するステップと、
前記ローカル・コピーを前記シャドウ・コピーで更新するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項１１】
前記ローカル・コピーをロールバック・コピーとして格納する前記ステップは、
ロールバック・インターフェースを提示するステップと、
ロールバック・コマンドを受け入れるステップと、
前記ロールバック・コマンドに応答して前記ロールバック・コピーを表示するステップと
を備えることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記複製に関連付けられたバージョン状態を格納するステップをさらに備え、前記ローカル・コピーをロールバック・コピーとして格納する前記ステップは、前記バージョン状態をロールバック利用可能状態へと変化させるステップを備えることを特徴とする請求項１０に記載の方法。
【請求項１３】
前記ローカル・コピーがアクセスされているかどうかを追跡するステップをさらに備え、前記ローカル・コピーをロールバック・コピーとして格納する前記ステップは、前記ローカル・コピーがアクセスされている場合にのみ、前記ローカル・コピーをロールバック・コピーとして格納するステップを備えることを特徴とする請求項１０に記載の方法。
【請求項１４】
請求項１に記載の方法を実施するためのオペレーティング・システム、請求項１に記載の方法を実施する複数のコンピュータ実行可能な命令を格納しているコンピュータ読取り可能な媒体、請求項１に記載の方法を実施するコプロセッシング装置、請求項１に記載の方法を実施するコンピューティング装置、又は請求項１に記載の方法を実施するコンピュータ実行可能な命令を搬送する変調データ信号。
【請求項１５】
少なくとも断続的に動作するように第２のコンピュータに接続され、前記第２のコンピュータ上に配置されるマスタ・ファイルを複製するためのコンピュータ・システムであって、
第１のコンピュータ上の前記マスタ・ファイルのローカル・コピーを格納するローカル・コピー格納域と、
前記第１のコンピュータ上の前記マスタ・ファイルのシャドウ・コピーを格納するシャドウ・コピー格納域と、
変更のために前記ローカル・コピーへのアクセスを許可するローカル・コピー変更モジュールと、
前記マスタ・ファイルが変化すると、前記シャドウ・コピー格納域を更新するシャドウ・コピー更新モジュールと
を備えることを特徴とするコンピュータ・システム。
【請求項１６】
前記複製に関連付けられたバージョン状態を格納するためのバージョン状態格納域をさらに備え、前記ローカル・コピーが変更されると、前記ローカル・コピー変更モジュールは、前記バージョン状態を変化させることを特徴とする請求項１５に記載のコンピュータ・システム。
【請求項１７】
前記ローカル・コピー変更モジュールは、前記バージョン状態を前記ローカル・コピーが変更されていることを示す変更状態へと変化させることを特徴とする請求項１６に記載のコンピュータ・システム。
【請求項１８】
前記複製に関連付けられたバージョン状態を格納するためのバージョン状態格納域をさらに備え、前記シャドウ・コピー更新モジュールは、前記更新が生じると、前記バージョン状態を変化させることを特徴とする請求項１５に記載のコンピュータ・システム。
【請求項１９】
前記シャドウ・コピー更新モジュールは、
前記ローカル・コピーが変更されていることを検出するローカル・コピー変更検出モジュールと、
前記ローカル・コピーと前記更新されたシャドウ・コピーの間の競合を解消する競合解消モジュールと
を備えることを特徴とする請求項１５に記載のコンピュータ・システム。
【請求項２０】
前記複製に関連付けられたバージョン状態を格納するバージョン状態格納域をさらに備え、前記競合解消モジュールは、前記バージョン状態を競合が存在することを示す競合状態へと変化させることを特徴とする請求項１９に記載のコンピュータ・システム。
【請求項２１】
前記競合解消モジュールは、
競合インターフェースを提示する競合インターフェース・モジュールと、
競合解消コマンドを受け入れる競合解消入力モジュールと、
前記競合解消コマンドを実行する競合解消実装機構と
を備えることを特徴とする請求項１９に記載のコンピュータ・システム。
【請求項２２】
前記競合解消実装機構は、
前記マスタ・ファイルに対する変更を行うべきかどうかを決定する変更決定モジュールと、
行うべき前記変更を前記第２のコンピュータに伝える第２のコンピュータ変更通信モジュールと
を備えることを特徴とする請求項２１に記載のコンピュータ・システム。
【請求項２３】
前記第２のコンピュータ変更通信モジュールは、
前記ローカル・コピーと前記マスタ・ファイルの間の差に関する差情報を生成する差生成モジュールと、
前記差情報を前記マスタ・ファイルに伝える第２のコンピュータ通信モジュールと
を備えることを特徴とする請求項２２に記載のコンピュータ・システム。
【請求項２４】
前記シャドウ・コピー更新モジュールは、
前記ローカル・コピーをロールバック・コピーとして格納するロールバック格納域と、
前記ローカル・コピーを前記シャドウ・コピーで更新するローカル・コピー更新モジュールと
を備えることを特徴とする請求項１５に記載のコンピュータ・システム。
【請求項２５】
前記ローカル・コピー更新モジュールは、
ロールバック・インターフェースを提示するロールバック・インターフェース提示モジュールと、
ロールバック・コマンドを受け入れるロールバック・コマンド受入れモジュールと、
前記ロールバック・コマンドに応答して、前記ロールバック・コピーを表示するロールバック・コピー表示機構と
を備えることを特徴とする請求項２４に記載のコンピュータ・システム。
【請求項２６】
前記複製に関連付けられたバージョン状態を格納するバージョン状態格納域をさらに備え、前記ロールバック格納域は、前記バージョン状態をロールバック利用可能状態へと変化させることを特徴とする請求項２４に記載のコンピュータ・システム。
【請求項２７】
前記ローカル・コピーがアクセスされているかどうかを追跡するローカル・コピー・アクセス追跡モジュールをさらに備え、前記ローカル・コピーをロールバック・コピーとして格納する前記ロールバック格納域は、前記ローカル・コピーがアクセスされている場合にのみ、前記ローカル・コピーをロールバック・コピーとして格納するローカル・コピー・アクセス・ロジックを備えることを特徴とする請求項２４に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ドキュメント管理の分野に関し、詳細にはサーバからコピーされたファイルの使用中に複数のファイル状態を管理する方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータ・ユーザがネットワーク上で別のユーザとあるドキュメントについて共同作業を行うことは、ネットワーク化されたコンピュータ環境中で一般に行われている。かかるネットワークには、ＬＡＮ（local area network；ローカル・エリア・ネットワーク）、ＷＡＮ（wide area network；広域ネットワーク）、インターネットなどがあり得る。かかる共同作業では、各ユーザは、汎用ソフトウェア、共同作業の対象としてのファイルのタイプ用に特別に設計されたソフトウェアなどのソフトウェア・アプリケーションを使用することにより、電子ファイルを作成し編集することができる。
【０００３】
共同作業は、ファイル上で共同作業を行うすべてのユーザからアクセス可能な位置に電子ファイルのマスタ・バージョンを保持することによって可能となる。従来技術のネットワーク・コンピュータ環境では、サーバ・コンピュータおよび１つまたは複数のユーザ・コンピュータが存在することができる。このサーバは、各ユーザ・コンピュータからアクセス可能であり、したがって、ユーザが共同作業をするファイルのマスタ・バージョンを格納し制御することができる。
【０００４】
電子ファイル上で共同作業を行うときに、ユーザはサーバ上のファイルにアクセスする。その場合に、ユーザは、アプリケーションによりユーザにとって利用可能となる任意の方法でファイルを変更することによってファイルに対する作業を行うことができる。例えば、アプリケーションがワード・プロセッサ、スプレッド・シート、データベース、および／または同様なものである場合、このアプリケーションは、ファイルの追加、編集、コピー、および／または削除などのタスクを実施する手段を提供することができる。ユーザがファイルへのかかる変更を保持したいと望み、必要な許可をもつ場合、任意の変更が完了すると、ユーザは、これらの変更をサーバ上に格納されるファイルのバージョンに保存することができる。
【０００５】
一元的に格納されたファイル（centrally-stored file）が有ることは共同作業にとって良いことだが、サーバに対するアクセスを必要とすることには弱点がある。ユーザは、ファイルのサーバ・コピーにアクセスするためにサーバに接続する必要がある。複製エンジン（replication engines）が、この問題を解決するために使用される。かかるエンジンによって、ユーザはサーバ上のファイルのローカル・コピーをもつことができる。このローカル・コピーにより、サーバ・コピーにアクセスできないときでさえ、ユーザはそのファイルを用いて作業を行い、またそのファイルを閲覧することができる。この複製エンジンは、ユーザのローカル・マシンへのファイルのサーバ状態の複製を管理し、サーバ・コピーとローカル・コピーの間の整合性を維持しようとしながらユーザにオフライン・アクセスを提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上述の解決方法には欠点があり、既存の複製エンジンを使用してかかる整合性を維持することは困難または不可能である。サーバ・コンピュータ上のファイルのバージョンは、ユーザが接続されていない間にも変化することがある。例えば、サーバ上のファイルのバージョンをバージョンＡとする。複製エンジンによりこのバージョンＡをユーザのコンピュータにコピーする。ユーザが「オフライン」である（サーバから切断されている）とき、ユーザがファイルを編集し、バージョンＢを生成する。そうしている間に、第２のユーザがそのファイルのサーバ・コピーを編集し、バージョンＣを作成する。ユーザが、そのサーバに再び接続すると、ユーザは、ユーザのカレント・バージョン（Ｂ）およびサーバ・バージョン（Ｃ）に対するアクセスを有することになる。現行の複製エンジンでは、ユーザ・バージョンをサーバ・バージョン上にコピーすることができるだけであり、この場合には第２のユーザの変更が失われることになり、あるいはサーバ・バージョンをユーザ・バージョン上にコピーすることができるだけである。このユーザにとって、バージョンＡからの変更に関して利用可能な情報はない。ユーザが、バージョンＣを保存し、変更を破棄することによって同期化した場合、バージョンＢは、もはやこのユーザからアクセス可能ではなくなってしまう。
【０００７】
これらの欠点があるので、サーバからの複製ファイルを管理する改善された方法が望まれている。
【課題を解決するための手段】
【０００８】
複製ファイルの３つのコピーを格納するサーバ・ファイル複製技術が実装される。これらの３つのファイルによって、ユーザに対して、改善された、競合（conflict）の解消を与える。
【０００９】
シャドウ・ファイル（shadow file）は、サーバ上のファイルの最後の良好なことが知られたバージョンのコピーである。ファイルが最初にサーバからコピーされると、エクストラ・コピー（extra copy）がシャドウ・ファイルに作られる。このシャドウ・ファイルは、オフラインでの参加を可能にするだけでなく、同期化と競合管理における性能を改善するために、ローカル・マシンにもたらされる。このシャドウ・ファイルは、サーバに対する接続が存在し、サーバ・コピーがシャドウ・コピーに含まれるバージョンから変化したときはいつでもそのサーバ・コピーから更新される。この時（場合）にだけ、このファイルは更新される。
【００１０】
ローカル・コピー（local copy）は、ユーザの作業コピーである。ユーザがファイルに対して行ったどのような変更もこのローカル・コピー中に格納される。このローカル・コピーを使用して、（ユーザの変更をサーバに対してプッシュ（push）する必要がある場合に）サーバを更新し、または（ユーザ・バージョンもサーバ・バージョンも共に変化しているときには）競合を識別する。
【００１１】
ロールバック・ファイル（rollback file）もまた格納される。このロールバック・ファイルは、ローカル・コピーが変更される（例えば、競合が解消され、またはサーバ・バージョンがローカル・コピーにコピーされるとき）と、そのローカル・コピーから作成されるコピーである。このコピーにより、ユーザが見たことがある最後の知られているコピーまで確実にユーザは戻ることができる。
【００１２】
以上に述べた概要、ならびに好ましい実施形態についての以下の詳細な説明は、添付図面と併せ読むとさらに良く理解されよう。本発明を示すために、図面中に本発明の実施形態の例を示しているが、本発明は、開示された特定の方法および手段には限定されない。
【発明を実施するための最良の形態】
【００１３】
概説
複製を使用する間、サーバ上の各ファイルに対して３つのコピーを格納するサーバ・ファイル複製技術が、実装される。ローカル・ファイルは、ファイルのユーザの作業コピーを格納している。シャドウ・ファイルは、良好なことが知られた最後のサーバ・ファイルのバージョン（サーバ上のファイルのバージョン）のコピーである。ロールバック・ファイルは、競合の解消または複製がそれを更新する以前の最後のローカル・コピーのコピーを格納する。
【００１４】
ファイルを最初にサーバからローカル・コピーとしてコピーするときに、追加コピーをシャドウ・ファイルに対して行う。これを行って、同期性能を改善し、競合管理を実装する。
【００１５】
ユーザ・コンピュータをサーバに接続すると、複製が行われる。シャドウ・ファイルをサーバ・バージョンと比較する。それらが同じ場合、最後の同期化以来、ファイルのサーバ・バージョンに対する更新が行われていないことになる。それらが同じでない場合には、サーバ・バージョンがシャドウ・バージョンにコピーされる。そのローカル・バージョンはロールバックに保存され、シャドウ・バージョンは、ローカル・バージョンに保存される。
【００１６】
バージョン状態は、ローカル・ファイルおよびサーバ・ファイルに対する変更状態を追跡する。バージョン状態に関する情報および競合管理に対する選択権がユーザにもたらされる。
【００１７】
計算機装置（computing device）の例
図１、および以下の議論は、本発明を実装可能な好適な計算機環境の簡潔な一般的な説明を提供するものである。しかし、ハンドヘルド型、携帯型、およびその他の計算機装置、ならびにあらゆる種類の計算機対象が、以上に説明したように、本発明に関する使用に対して企図されていることを理解されたい。したがって、汎用コンピュータについて以下で説明しているが、これは一例にすぎず、本発明は、ネットワーク／バスの相互運用性および相互作用を有する小型軽量クライアントなどその他の計算機装置を用いても実装できる。したがって、非常にわずかしか、または最小限のクライアント資源しか関与しないネットワーク化されたホスト・サービスの環境、例えばクライアント装置が、アプライアンス（appliance）またはその他の計算機装置中に配置された１つまたは複数のオブジェクトなど、ネットワーク／バスへのインターフェースとしての役割を単に果たすネットワーク環境中で、本発明を実装することができる。本質的に、データを格納でき、そこからデータを検索できる場所ならどこでも、本発明による動作環境として望ましく、または適している。
【００１８】
必ず必要ではないが、サービスの開発者が装置またはオブジェクトに対して使用し、かつ／または本発明に従って動作するアプリケーション・ソフトウェア内に含まれるオペレーティング・システムを介して、本発明を実装することができる。ソフトウェアは、クライアント・ワークステーション、サーバ、その他の装置など１台または複数台のコンピュータで実行されるプログラム・モジュールなどコンピュータ実行可能な命令の一般的なコンテキストで記述することができる。一般に、プログラム・モジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一般に、プログラム・モジュールの機能は、様々な実施形態中で要望通りに結合し、分散することができる。さらに、本発明がその他のコンピュータ構成を用いて実施することができることが当業者には理解されよう。本発明と共に使用するのに好適となし得る、その他よく知られた計算機システム、計算機環境、および／または計算機構成には、それだけには限定されないが、パーソナル・コンピュータ（ＰＣ）、自動銀行用窓口機（automated teller machine）、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのシステム、プログラム可能大衆消費電子製品、ネットワークＰＣ、アプライアンス、ライト、環境制御要素、ミニ・コンピュータ、メインフレーム・コンピュータなどが含まれる。本発明はまた、通信ネットワーク／バス、またはその他のデータ伝送媒体を介してリンクされるリモート処理装置によってタスクを実施する分散計算機環境中で実施することもできる。分散計算機環境では、メモリ記憶装置を含めてローカル・コンピュータ記憶媒体中にもリモート・コンピュータ記憶媒体中にもプログラム・モジュールを配置することが可能であり、クライアント・ノードはサーバ・ノードのように振る舞うことができる。
【００１９】
したがって、図１は、本発明を実装することができる好適な計算機システム環境１００の一例を示しており、以上で明らかにしたが、この計算機システム環境１００は、適切な計算機環境の単なる一例にすぎず、本発明の用途または機能の範囲をどのようにも限定しようと示唆するものではない。また、計算機環境１００は、この動作環境１００の一例に示す構成要素のどれか１つまたは組合せに関するどのような依存性または要件を有すると解釈すべきでもない。
【００２０】
図１を参照すると、本発明を実装するシステムの一例は、コンピュータ・システム１１０の形式の汎用計算機装置を含んでいる。コンピュータ・システム１１０の構成要素には、それだけには限定されないが、処理装置１２０、システム・メモリ１３０、およびシステム・メモリを含めて様々なシステム構成要素を処理装置１２０に結合するシステム・バス１２１が含まれる。システム・バス１２１は、メモリ・バスまたはメモリ制御装置、周辺バス、および様々なバス・アーキテクチャのうちのどれかを使用したローカル・バスを含めて、複数タイプのバス構造のどれでもよい。例として、それには限定されないが、かかるアーキテクチャには、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture；マイクロ・チャネル・アーキテクチャ）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、および（メザニン（Mezzanine）バスとしても知られている）ＰＣＩ（Peripheral Component Interconnect）バスが含まれる。
【００２１】
コンピュータ・システム１１０は、一般に様々なコンピュータ読取り可能な媒体を含む。コンピュータ読取り可能な媒体は、コンピュータ・システム１１０でアクセスできる任意の利用可能な媒体とすることができ、揮発性の媒体も不揮発性の媒体も、着脱可能な媒体も着脱不能な媒体も含む。例として、それだけには限定されないが、コンピュータ読取り可能な媒体には、コンピュータ記憶媒体と通信媒体を含まれ得る。コンピュータ記憶媒体は、コンピュータ読取り可能な命令、データ構造、プログラム・モジュール、またはその他のデータなどの情報を記憶する任意の方法および技術の形で実装される揮発性および不揮発性の媒体、着脱可能および着脱不能な媒体を含む。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ（Random Access Memory；ランダム・アクセス・メモリ）、ＲＯＭ（Read Only Memory；読出し専用メモリ）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory；電気的消去プログラム可能型読出し専用メモリ）、フラッシュ・メモリ（flash memory）またはその他のメモリ技術、ＣＤＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ（digital versatile disk；ディジタル多用途ディスク）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他磁気記憶装置、あるいはそれを使用して望ましい情報を記憶することができ、コンピュータ・システム１１０でアクセスすることができるその他任意の媒体が含まれる。通信媒体は、一般にコンピュータ読取り可能な命令、データ構造、プログラム・モジュール、または搬送波または他の搬送メカニズムなど変調データ信号の形の他のデータを実施し、任意の情報配信媒体を含む。用語「変調データ信号」は、信号中で情報を符号化するように設定され変更される１つまたは複数の信号の特徴を有する信号を意味する。例として、それだけには限定されないが、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、および音響、ＲＦ、赤外線などの無線媒体が含まれる。以上の任意の組合せもまた、コンピュータ読取り媒体の範囲内に含まれるものとする。
【００２２】
システム・メモリ１３０は、読み出し専用メモリ（ＲＯＭ）１３１やランダム・アクセス・メモリ（ＲＡＭ）１３２など揮発性メモリおよび／または不揮発性メモリの形式のコンピュータ記憶媒体を含む。起動中などコンピュータ・システム１１０内の要素間で情報を転送するのに役立つ基本ルーチンを含むＢＩＯＳ（basic input/output system；基本入出力システム）１３３は、一般にＲＯＭ１３１に格納される。ＲＡＭ１３２は、一般に、処理装置１２０から直接アクセス可能で、かつ／または処理装置によって現在動作中のデータおよび／またはプログラム・モジュールを含む。例として、それだけには限定されないが、図１に、オペレーティング・システム１３４、アプリケーション・プログラム１３５、その他のプログラム・モジュール１３６、およびプログラム・データ１３７を示す。
【００２３】
コンピュータ・システム１１０はまた、その他の着脱可能／着脱不能な揮発性／不揮発性のコンピュータ記憶媒体を含む。単なる例として、図１に、着脱不能な不揮発性の磁気媒体から読み取り、それに書き込むハードディスク・ドライブ１４１、着脱可能な不揮発性磁気ディスク１５２から読み取り、それに書き込む磁気ディスク・ドライブ１５１、およびＣＤＲＯＭやその他光媒体など、着脱可能な不揮発性光ディスク１５６から読み取り、それに書き込む光ディスク・ドライブ１５５を示す。動作環境の例で使用できるその他の着脱可能／着脱不能な揮発性／不揮発性のコンピュータ記憶媒体には、それだけには限定されないが、磁気テープ・カセット、フラッシュ・メモリ・カード、ディジタル多用途ディスク、ディジタル・ビデオ・テープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスク・ドライブ１４１は一般に、インターフェース１４０など着脱不能メモリ・インターフェースを介してシステム・バス１２１に接続され、磁気ディスク・ドライブ１５１および光ディスク・ドライブ１５５は一般に、インターフェース１５０などの着脱可能なメモリ・インターフェースによってシステム・バス１２１に接続される。
【００２４】
以上で論じ、図１に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ・システム１１０のコンピュータ読取り可能な命令、データ構造、プログラム・モジュール、その他のデータの記憶域を提供する。図１で、例えば、ハードディスク・ドライブ１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、その他のプログラム・モジュール１４６、およびプログラム・データ１４７を格納するものとして示してある。これらの構成要素は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、その他のプログラム・モジュール１３６、およびプログラム・データ１３７と同じものとすることもでき、また異なるものとすることもできることに留意されたい。オペレーティング・システム１４４、アプリケーション・プログラム１４５、その他のプログラム・モジュール１４６、およびプログラム・データ１４７には、ここで異なる番号を付与して、少なくともそれらが異なるコピーであることを示している。ユーザは、キー・ボード１６２や一般にマウス、トラック・ボール、またはタッチ・パッドと呼ばれるポインティング・デバイス１６１などの入力装置を介してコンピュータ・システム１１０に、コマンドおよび情報を入力することができる。（図示されていない）その他の入力装置には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、などが含まれ得る。これらおよびその他の入力装置は、しばしばシステム・バス１２１に結合されたユーザ入力インターフェース１６０を介して、処理装置１２０に接続されるが、パラレル・ポート、ゲーム・ポート、ＵＳＢ（universal serial bus；ユニバーサル・シリアル・バス）などその他インターフェースおよびバス構造で接続することもできる。ノース・ブリッジ（Northbridge）などのグラフィックス・インターフェース１８２もまた、システム・バス１２１に接続することができる。ノース・ブリッジは、ＣＰＵまたはホスト処理装置１２０と情報をやりとりするチップセットであり、ＡＧＰ（accelerated graphics port；アクセラレィティド・グラフィックス・ポート）通信に対する責任を負う。１つまたは複数のグラフィックス処理装置（ＧＰＵ）１８４は、グラフィックス・インターフェース１８２と情報をやりとりすることができる。これに関して、ＧＰＵ１８４は一般的に、レジスタ記憶域などのオン・チップ・メモリ記憶域を含み、ビデオ・メモリ１８６と情報をやりとりする。しかし、ＧＰＵ１８４は、コプロセッサの一例にすぎず、したがって様々なコプロセッシング（ｃｏｐｒｏｃｅｓｓｉｎｇ）装置がコンピュータ・システム１１０に含まれ得る。モニタ１９１またはその他のタイプの表示装置も、ビデオ・インターフェース１９０など、ビデオ・メモリ１８６と情報をやりとりできるインターフェースを介してシステム・バス１２１に接続される。モニタ１９１に加えて、コンピュータ・システムはまた、スピーカ１９７やプリンタ１９６など、出力周辺インターフェース１９５を介して接続できるその他の周辺出力装置を含むこともできる。
【００２５】
コンピュータ・システム１１０は、リモート・コンピュータ１８０など１つまたは複数のリモート・コンピュータに至る論理接続を使用して、ネットワーク化環境または分散環境中で動作することができる。リモート・コンピュータ１８０は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置（peer device）、またはその他のコモン・ネットワーク・ノード（common network node）であってよく、図１にはメモリ記憶装置１８１だけしか示されてないが、一般にコンピュータ・システム１１０に関して以上で説明した要素の多くまたはすべてを含む。図１に示す論理接続は、ＬＡＮ（local area network；ローカル・エリア・ネットワーク）１７１およびＷＡＮ（wide area network；広域ネットワーク）１７３を含むが、その他のネットワーク／バスを含むこともできる。かかるネットワーク環境は、家庭、オフィス、企業規模コンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的なものである。
【００２６】
ＬＡＮネットワーク環境中で使用されるとき、コンピュータ・システム１１０は、ネットワーク・インターフェースまたはアダプタ１７０を介して、ＬＡＮ１７１に接続される。ＷＡＮネットワーク環境中で使用するとき、コンピュータ・システム１１０は一般に、インターネットなどＷＡＮ１７３上で通信を確立するモデム１７２またはその他の手段を含む。内部的でも外部的でもよいが、ユーザ入力インターフェース１６０またはその他の適切なメカニズムを介して、バス１２１にモデム１７２を接続することができる。ネットワーク環境では、コンピュータ・システム１１０またはその一部分に関して示したプログラム・モジュールをリモート・メモリ記憶装置に格納することができる。例として、それだけには限定されないが、図１にリモート・アプリケーション・プログラム１８５をメモリ装置１８１上にあるものとして示す。図に示すネットワーク接続は、例であり、コンピュータ間で通信リンクを確立するその他の手段も使用することができることを理解されたい。
【００２７】
様々な分散コンピューティング・フレームワークが、パーソナル・コンピュータとインターネットを合わせた観点から開発されてきたし、今も開発されつつある。個人ユーザにもビジネスユーザにも同様に、アプリケーションおよび計算機装置に対するシームレスに相互運用可能でウェブを可能とする（Web-enabled）インターフェースが提供され、計算機アクティビティがますますウェブ・ブラウザまたはネットワーク指向になっている。
【００２８】
例えば、マイクロソフト（MICROSOFT）（登録商標）の．ＮＥＴプラットフォームは、サーバ、およびウェブベースのデータ・ストレージ装置やダウンロード可能な装置ソフトウェアなどのビルディング・ブロック・サービス（building-block service）を含む。本明細書の実施形態の例は、計算機装置上にあるソフトウェアに関して説明したものだが、本発明の１つまたは複数の部分はまた、．ＮＥＴの言語およびサービスのすべてならびにその他分散計算機フレームワークでも同様に、本発明による動作を実施し、サポートし、アクセスすることができるように、オペレーティング・システム、ＡＰＩ（application programming interface；アプリケーション・プログラミング・インターフェース）、またはコプロセッサと表示装置と要求オブジェクトのうちのどれかの間の「ミドル・マン（middle man）」オブジェクトを介して実装することもできる。
【００２９】
複製ファイルの複数のファイル状態を管理する
複製
図２を参照すると、サーバ・コンピュータ２００が、ネットワーク２１５を介してユーザ・コンピュータ２２０に接続されている。サーバが要求を受け取ると、サーバはユーザ・コンピュータ２２０がファイルをオープンすることができるようにする。ファイル複製は、他のユーザ・コンピュータ２７０上のユーザと一緒に、ユーザ・コンピュータ２２０がサーバ・ファイルのローカル・バージョン上で作業することを可能にする。ファイルの正式なバージョンが、サーバ・コピー２１０としてサーバ・コンピュータ２００上に格納される。ファイル複製マネージャ２３０が、ユーザ・コンピュータ２２０中に、３つのファイルのコピーを作成する。これらは、ローカル・コピー２３２、シャドウ・コピー２３４、ロールバック・コピー２３８である。
【００３０】
ローカル・コピー２３２は、ユーザ・コンピュータ２２０上でアプリケーション２４０によってオープンされる。一実施形態では、ユーザ・コンピュータ２２０上のユーザ・ネーム空間内に、ローカル・コピー２３２のコピーが存在する。この実施形態では、ローカル・コピー２３２が、ネーム空間中の変更を追跡し、ネーム空間コピーは、アプリケーション２４０によって使用される。
【００３１】
ネーム空間コピーを使用する場合、ネーム空間コピーは、ファイル複製マネージャ２３０では管理されない。この実施形態では、ネーム空間ファイルはユーザが一般にアクセスするファイルである。このファイルは、作成されたファイルでも、また電子メールを介して受け取ったファイルでもよい。ファイルを、電子メールを介して受け取る場合、ユーザは、（サーバ情報を伴う）「常時ライブ・アタッチメント（always live attachment）」を受け取り、そのユーザのローカル・コンピュータにコピーを保存する。まさにこのファイルの保存行為により、２つのコピーが、すなわち１つはメール・ストア（mail store）中に、もう１つはローカル・マシン上にあることになる。ローカル・マシン・コピーはネーム空間コピーである。アタッチメントのサーバ情報により、ローカル・コピー２３２、シャドウ・コピー２３４、およびロールバック・コピー２３８のファイルの複製と作成が可能になる。ネーム空間のコピーは、ユーザがそれを使うとき、複製マネージャ２３０によってローカル・コピー２３２と同期化させられる。
【００３２】
シャドウ・コピー２３４は、ユーザ・コンピュータ２２０にとって最後に知られているサーバ・コピー２１０のバージョンを保持する。ユーザ・コンピュータ２２０がサーバ・コンピュータ２００に接続されると、シャドウ・コピー２３４は、サーバ・コピー２１０と同じになる。
【００３３】
ロールバック・コピー２３８は、ユーザが閲覧し編集した最後に知られているコピーを格納する。ローカル・コピー２３２が、複製プロセスで上書きされてしまっているが、ユーザが以前の状態に戻りたいと望むとき、このロールバック・コピー２３８を使用して、ユーザが読み取り、または編集した最後のコピーが提供される。
【００３４】
ファイル複製マネージャ２３０は、図に示すようにアプリケーション２４０とは別になっていてもよく、またアプリケーション２４０と一体化されていてもよい。どちらの場合でも、ファイル複製マネージャからのユーザに対するメッセージおよび情報、ならびにユーザ入力を収集し、ユーザに対するメッセージを表示するユーザ・インターフェースは、ユーザ・アプリケーション２４０に提示される表示と一体化することができる。（さらに以下で説明する）ファイルの２つのバージョンの間で行われる変更に関してユーザに提示される情報はまた、アプリケーション２４０の表示を使用して提示することもできる。さらに、ユーザに対するかかる表示情報の生成には、アプリケーション２４０の機能を利用することができる。
【００３５】
バージョン状態（versioning states）
本発明の一実施形態によるファイル複製技術の動作については、バージョン状態を参照することによって理解することができる。各複製ドキュメントに対して、バージョン状態は、ユーザ・コンピュータ２２０内でドキュメントに何が生じているかを記述するものである。これらのバージョン状態は、以前のバージョン状態と、ローカル・コピー２３２、シャドウ・コピー２３４、およびサーバ・コピー２１０（ドキュメントのマスタ・コピー）中で生じている動作とに基づいている。
【００３６】
最初の状態は、「カレント（current）」の状態である。バージョン状態は、ローカル・コピー２３２が、シャドウ・コピー２３４と同じときに、カレントの状態となる。例えば、ユーザ・コンピュータ２２０上に保存されたファイルが共同作業のためにサーバ・コンピュータ２００にアップロードされるとき、ローカル・コピー２３２は、シャドウ・コピー２３４と同じである。同様に、サーバ・コンピュータ２００上のファイルをユーザ・コンピュータ２２０に最初に複製するとき、ローカル・コピーは、シャドウ・コピー２３４と等しくなる。図３の状態図に示すように、ローカル・コピー２３２に変更を施すと、その結果、ローカル・コピーはもはやシャドウ・コピー２３４と同じではなくなり、状態は、「カレント」の状態３００から「変更（modified）」状態３１０に遷移する。この変更が、サーバにプッシュ・アップ（push up）されると、または放棄されると、その結果、ローカル・コピー２３２は再びシャドウ・コピー２３４に等しくなり、次いで、状態は「カレント」の状態３００に戻る。
【００３７】
ユーザ・コンピュータ２２０がサーバ・コンピュータ２００に接続され、サーバ・コピー２１０が更新されたことに留意すると、新しいサーバ・コピー２１０のコピーが、シャドウ・コピー２３４に施される。ローカル・コピー２３２は、ロールバック・コピー２３８として保存され、次いでシャドウ・コピー２３４が、ローカル・コピー２３２にコピーされる。一実施形態では、ユーザが閲覧した最後のコピーが追跡される。したがって、ユーザがバージョンＡを閲覧していて、バージョンＢがサーバからダウンロードされた場合、ロールバックはバージョンＡのコピーのはずである。しかし、バージョンＣが次にサーバからダウンロードされる場合、ユーザがバージョンＢにアクセスしていない限り、ロールバックがバージョンＢに変更されることはない。このように、ロールバックは、ユーザが見た最後のバージョンを保持する。
【００３８】
図３から分かるように、サーバ・ファイルの変更がシャドウ・ファイルにダウンロードされ、ロールバック・コピーが格納され、状態が「カレント」の状態３００である場合、新しい状態は、「ロールバック利用可能状態（rollback available）」３２０となるはずである。しかし、このことが、「変更」状態３１０で、生じた場合には、ローカル・コピー２３２に保存されている、サーバ・コピーの以前のバージョンに対するローカルな変更と、サーバ・コピー２１０の新しいバージョンにもたらされた（その他のユーザからの）その他の何らかの変更とが共に存在している。この結果、「競合（conflicted）」状態３３０がもたらされる。
【００３９】
「競合（conflicted）」状態３３０が生じると、ローカル・コピー２３２およびシャドウ・コピー２３４中に不一致の可能性がある２組の変更についての解決を行わなければならない。例えば、ユーザは、ローカル・コピー２３２中でなされた変更を放棄するか、またはその変更に上書きするかを選択することができる。この解決の結果得られるファイルはローカル・コピー２３２として格納され、状態は「変更」状態に戻る。以前に指摘したように、ローカル・コピー２３２中の変更が、サーバにプッシュ・アップされたり、あるいは、現在のサーバ・コピーの方を選んで放棄されたりすると、状態は「カレント」の状態に変更される。
【００４０】
サーバに変更をアップロード
各バージョン状態において、複数の同期オプション（synchronization option）がユーザにとって利用可能である。これらのオプションは、ファイル複製マネージャ２３０から別々に利用可能とすることもでき、またアプリケーション２４０と一体化することもできる。変更がなされている場合、サーバ・コピー２１０に対する変更をアップロードする（uploading）（または「プッシュする（pushing）」）ことは、１つのオプションである。この同期オプションにより、ユーザが、（接続が利用可能な場合）サーバ・コンピュータ２００に接続し、ローカル・コピー２３２をサーバ・コピー２１０と同期させることができる。
【００４１】
バージョン状態がカレントの状態３００またはロールバック利用可能状態３２０の場合、変更はなされておらず、それ故、ファイルはサーバにプッシュされない。バージョン状態が、変更状態３１０の場合、ローカル・コピー２３２とシャドウ・コピー２３４の間の差を求める。このプロセスは、２つのファイル間の「差の生成（generating a diff）」として知られている。バージョン状態が変更状態３１０であった場合、シャドウ・コピー２３４は、サーバ・コピー２１０と同じである（そうでない場合は、バージョン状態は競合状態３３０となるはずである）。したがって、ファイル全体をサーバにアップロードする必要はない（ローカル・コピー２３２とシャドウ・コピー２３４の間の差に関するすべての情報を含むファイルが、必要な情報をすべて含んでいる）。この差のファイルを、サーバ・コンピュータ２００で使用して、サーバ・コピー２１０を更新する。サーバ・コピー２１０が更新されると、それはシャドウ・コピー２３４にコピーされ、バージョン状態は適切に変更されることになる。
【００４２】
差のファイルの生成は、オフラインで行うことができる。ユーザは、サーバ・コンピュータ２００が、ユーザ・コンピュータ２２０から届けられる状態にないときに、同期を要求しようと決めることができる。このようなことが生じた場合、サーバ・コンピュータ２００が次にアクセス可能なときにアップロード・プロセスが引き続き行われるように、差を作成し、この動作をキューに入れておくことができる。
【００４３】
バージョン状態が競合状態３３０である場合、競合ユーザ・インターフェースが開始されねばならない。この競合ユーザ・インターフェースは、ユーザがローカル・コピー２３２とシャドウ・コピー２３４の間の違いを解決することを、例えば、ローカル・コピー２３２をユーザ・コンピュータ２２０上のどこかに保存し、シャドウ・コピー２３４を新しいローカル・コピー２３２としてコピーすることによって、可能とするはずである。ユーザ・インターフェースはまた、以上でリストアップした関連アプリケーションで説明したように、より複雑なインターフェースであってもよい。
【００４４】
一実施形態では、ファイルがカレントの状態３００またはロールバック利用可能状態３２０にあるときにローカルな変更が行われていないことを保証し、また差のファイルのアップロードが正常に行われたことを保証するに、複数の検査がなされる。これらの検査が不合格の場合、変更状態３１０または競合状態３３０がもたらされることになる。
【００４５】
ロールバック・バージョン
ユーザに利用可能なもう一つのオプションは、バージョン状態がロールバック利用可能状態３２０または変更状態３１０であるときのものである。その場合、ユーザが、ロールバック・コピー２３８中に格納されている、ユーザが以前に閲覧し編集したドキュメントのバージョンにまでロールバックすることを可能とするユーザ・インターフェースがユーザに利用可能となる。
【００４６】
一実施形態では、ユーザ・インターフェースがユーザに表示され、ドキュメントが他のユーザによって更新されてしまっていることが示される。このユーザ・インターフェースは、ユーザが、ロールバック・コピー２３８中に格納された以前のバージョン、またロールバック・コピー２３８中に格納した以前のバージョンとローカル・コピー２３２中に格納された現在のバージョンの間の違いを閲覧すること、を選択できるようになる。
【００４７】
ロールバック・コピーは、本発明のいくつかの実施形態中に存在するだけである。図４に示すように、サーバ・ファイルのファイルの複製は、ローカル・コピーが格納され（ステップ４００）、シャドウ・コピーが格納されるとき（ステップ４１０）に、ユーザ・コンピュータ上で行われる。変更のためのローカル・コピーへのアクセスが許可される（ステップ４２０）。一部の実施形態では、これは、ローカル・コピーのネーム空間コピー（namespace copy）を用いて行われる。ユーザ・コンピュータをサーバ・コンピュータに接続し、マスタ・ファイルが変化する、シャドウ・コピーを更新する（ステップ４３０）。一実施形態では、バージョン状態を複製について追跡する。
【００４８】
図５に示すように、ロールバック・コピーを保持する場合、この場合にも、サーバ・ファイルのファイルの複製は、ローカル・コピーが格納される（ステップ５００）とき、次にシャドウ・コピーが格納される（ステップ５１０）ときに、ユーザ・コンピュータ上で行われる。変更のためのローカル・コピーへのアクセスが許可される（ステップ５２０）。ユーザ・コンピュータがサーバ・コンピュータに接続され、マスタ・ファイルが変更されると、シャドウ・コピーが更新される（ステップ５３０）。このステップで、シャドウ・コピーが更新されると、必要ならば、ロールバック・コピーも更新される。まず、ローカル・コピーをロールバック・コピーとして格納し、次いで、ローカル・コピーをシャドウ・コピーで更新する。一実施形態では、これは、ローカル・コピーが以前のロールバック以来アクセスされている場合にのみ行われる。
【００４９】
ファイル複製マネージャ２３０は、別のアプリケーションでもよく、また複製されるファイルと共に使用するアプリケーションに、その全体または一部を一体化してもよい。
【００５０】
結論
以上で述べたように、本発明の実施形態の例を、様々な計算機装置およびネットワーク・アーキテクチャに関して説明してきたが、基となる概念は、サーバを介して共同作業を実装することが望ましい任意の計算機装置またはシステムに適用することができる。したがって、本発明の方法およびシステムは、様々なアプリケーションおよび装置に適用することができる。本明細書においてプログラミング言語の例、名称、および例を、様々な選択の代表例として選択しているが、これらの言語、名称、および例は、限定することを意図したものではない。本発明によって実現される、同じ、同様な、または等価なシステムおよび方法を実現するオブジェクトコードを提供する方法が非常に多くあることが、当業者には理解されよう。
【００５１】
本明細書中で説明した様々な技術を、ハードウェアまたはソフトウェア、あるいは適切な場合には、その両方の組合せとの関連で実装することができる。したがって、本発明の方法および機器、またはそのある態様または部分は、フロッピー（登録商標）ディスケット、ＣＤＲＯＭ、ハードドライブ、またはその他任意の機械読取り可能な記憶媒体などの具体的な媒体として実施されるプログラム・コード（すなわち、命令）の形式を取ることができ、プログラム・コードがコンピュータなどの機械でロードされ実行されるときには、その機械が本発明を実行するための機器になる。プログラム可能なコンピュータ上でプログラム・コードを実行する場合には、計算機装置は、一般に、プロセッサ、（揮発性および不揮発性のメモリおよび／または記憶要素を含めて）プロセッサで読取り可能な記憶媒体、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えば、データ処理ＡＰＩなどを使用することによって本発明の信号処理サービスを利用することができる１つまたは複数のプログラムでは、高レベルの手続き型のまたはオブジェクト指向のプログラミング言語を用いて実装し、コンピュータと情報をやりとりすることが好ましい。しかし、１つ（または複数）のプログラムは、望むならアセンブリ言語または機械語で実装することができる。いずれの場合にも、言語は、コンパイラ型言語、インタープリタ型言語であってよく、ハードウェア実装と組み合わせることができる。
【００５２】
本発明の方法および機器はまた、電気配線もしくはケーブル配線上で、光ファイバを介して、またはその他任意の伝送形式によるなど、何らかの伝送媒体上で伝送されるプログラム・コードの形式で実施される通信を介して実行することも可能であり、それは、プログラム・コードが、ＥＰＲＯＭ、ゲート・アレイ、ＰＬＤ（programmable logic device；プログラマブル・ロジック・デバイス）、クライアント・コンピュータ、ビデオ・レコーダなどの機械によって受け取られ、ロードされ、実行されるとき、あるいは、前記実施形態の例で説明した信号処理能力を有する受信機械が、本発明を実施するための機器となるときである。汎用プロセッサ上で実装すると、プログラム・コードは、このプロセッサと組み合わされて、本発明の機能を実行するように動作する固有の機器を実現する。さらに、本発明に関連して使用される任意の記憶技術は、いつでもハードウェアとソフトウェアの組合せとすることができる。
【００５３】
本発明を様々な形態の好ましい実施形態に関して説明してきたが、本発明を逸脱することなく、本発明と同じ機能を実施するために、その他同様な実施形態が使用できること、また、説明した実施形態に変更および追加を行うことができることを理解されたい。さらに、特に無線ネットワーク装置の数が急増し続けるにつれて、ハンドヘルド装置のオペレーティング・システムおよびその他のアプリケーション特有なオペレーティング・システムを含めて様々なコンピュータ・プラットフォームを考慮していることを強調しておきたい。したがって、本発明は、どれか１つの実施形態に限定すべきものではなく、特許請求の範囲による広範さと範囲において解釈すべきである。
【図面の簡単な説明】
【００５４】
【図１】本発明の態様を実装できる計算機環境の一例を示すブロック図である。
【図２】サーバ・コンピュータ、ネットワーク、ユーザ・コンピュータ、およびその他のコンピュータの間の関係の一例を示す機能図である。
【図３】本発明の一実施形態による状態遷移を示す状態図である。
【図４】本発明の一実施形態によるファイルの複製を示す流れ図である。
【図５】本発明の一実施形態によるファイルの複製を示す流れ図である。
【符号の説明】
【００５５】
２００  サーバ・コンピュータ
２１０  サーバ・コピー
２１５  ネットワーク
２２０  ユーザ・コンピュータ
２３０  ファイル複製マネージャ
２３２  ローカル・コピー
２３４  シャドウ・コピー
２３８  ロールバック・コピー
２４０  アプリケーション
２７０  その他のユーザ・コンピュータ
３００  カレントの状態
３１０  変更状態
３２０  ロールバック利用可能状態
３３０  競合（コンフリクト）状態
【図１】
2004265414.tif 000003
【図２】
2004265414.tif 000004
【図３】
2004265414.tif 000005
【図４】
2004265414.tif 000006
【図５】
2004265414.tif 000007