(57)【要約】ファイルを管理するためにアプリケーションが提供される。ファイルシステムについての情報が比較ファイルへマッピングされる。ファイルシステムから作業バージョンが作成される。アプリケーションは作業バージョンに対して１つ以上の動作が実行されたことを識別する。識別された動作は同期化動作中にファイルシステムに対して再現される。
2005507100.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを管理するための方法であって、
ファイルシステムについての情報を比較ファイルへマッピングするステップを含み、情報は、第１の位置に位置するファイルシステム内の少なくとも第１の項目を識別し、第１の位置は第１の位置情報により識別可能であり、前記方法はさらに、
ファイルシステムの一部の作業バージョンを作成するステップを含み、作業バージョンは第１の項目に対応する少なくとも第１の作業項目を含み、第１の作業項目は最初、第１の位置情報により識別可能な第２の位置に位置しており、前記方法はさらに、
比較ファイル内のおよび作業バージョンについての情報を用いて、第１の作業項目が第２の位置情報により識別可能な第３の位置に位置しているかどうかをその後判断するステップを含み、第２の位置情報は第１の位置情報とは異なる、方法。
【請求項２】
第１の作業項目が第３の位置に位置する場合、ファイルシステム内の第１の項目を、第２の位置情報により識別可能な第４の位置へ移動させるステップを含む、請求項１に記載の方法。
【請求項３】
比較ファイル内のおよび作業バージョンについての情報を用いて、第１の作業項目が第２の位置情報により識別可能な第３の位置に位置しているかどうかをその後判断するステップは、第１の作業項目が新しい名前を有しているかどうかを判断するステップを含む、請求項１に記載の方法。
【請求項４】
ファイルシステムの一部の作業バージョンを作成するステップは、第１の作業項目の作成時刻を比較ファイルに記録するステップを含む、請求項３に記載の方法。
【請求項５】
比較ファイル内のおよび作業バージョンについての情報を用いて、第１の作業項目が第２の位置情報により識別可能な第３の位置に位置しているかどうかをその後判断するステップは、作業バージョン内の第１の作業項目の位置を、作成時刻を用いて特定するステップを含む、請求項３に記載の方法。
【請求項６】
第１の作業項目が作業バージョンから省略されている場合、第１の項目を削除するようファイルシステムに信号を送るステップをさらに含む、請求項１に記載の方法。
【請求項７】
第１の作業項目の作成時刻を用いて、第１の作業項目が作業バージョンから削除されたと判断するステップをさらに含む、請求項６に記載の方法。
【請求項８】
ファイルシステムの一部の作業バージョンを作成するステップは、第１の作業項目の修正時刻を比較ファイルに記録するステップを含む、請求項４に記載の方法。
【請求項９】
作業バージョンの作成後に第１の作業項目が編集されたかどうかを判断するステップをさらに含む、請求項１に記載の方法。
【請求項１０】
作業バージョンの作成後に第１の作業項目が編集されたかどうかを、第１の作業項目の修正時刻を用いて判断するステップをさらに含む、請求項８に記載の方法。
【請求項１１】
第１の作業項目のその後の修正時刻が、第１の作業項目についての記録された修正時刻と異なるかどうかを判断するステップをさらに含む、請求項１０に記載の方法。
【請求項１２】
ファイルを管理するための方法であって、
ファイルシステムについての情報を比較ファイルへマッピングするステップと、
ファイルシステムの一部の作業バージョンを作成するステップと、
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップとを含む、方法。
【請求項１３】
第１の作業項目がかつて第２の作業項目からコピーされたと判断した後で、ファイルシステムの一部に、第１の作業項目を含めさせるステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
第２の作業項目は、ファイルシステムの一部における第１の項目から生じている、請求項１２に記載の方法。
【請求項１５】
作業バージョンが作成された後で、第２の作業項目が新規として作成される、請求項１３に記載の方法。
【請求項１６】
第１の作業項目の内容は第２の作業項目の内容と異なっている、請求項１３に記載の方法。
【請求項１７】
作業バージョンを作成するステップは、第２の作業項目について作成時刻および修正時刻の双方を比較ファイルに記録するステップを含む、請求項１４に記載の方法。
【請求項１８】
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップは、第１の作業項目についての作成時刻および修正時刻を識別するステップを含む、請求項１７に記載の方法。
【請求項１９】
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップは、第１の作業項目の修正時刻が第１の作業項目の作成時刻の前であることを検出するステップを含む、請求項１８に記載の方法。
【請求項２０】
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップは、第１の作業項目の修正時刻を第２の作業項目の修正時刻と整合させるステップを含む、請求項１９に記載の方法。
【請求項２１】
第１の作業項目が第２の作業項目からコピーされた後で編集されたかどうかを判断するステップをさらに含む、請求項１２に記載の方法。
【請求項２２】
第１の作業項目の作成時刻が比較ファイルにより識別された全項目の作成時刻と異なる場合、および第１の作業項目についての修正時刻が第１の作業項目についての作成時刻よりも大きいかまたはそれと等しい場合、第１の作業項目は新規であると判断するステップをさらに含む、請求項１２に記載の方法。
【請求項２３】
第１の作業項目が新規であると判断した後で、ファイルシステムの一部に、第１の作業項目を含めさせるステップをさらに含む、請求項２２に記載の方法。
【請求項２４】
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップは、第１の作業項目の内容を第２の作業項目の内容と比較するス
テップを含む、請求項１２に記載の方法。
【請求項２５】
ファイルを管理するための方法であって、
ファイルシステムについての情報を比較ファイルへマッピングするステップを含み、情報は、第１の位置に位置するファイルシステム内の少なくとも第１の項目を識別し、第１の位置は第１の位置情報により識別可能であり、前記方法はさらに、
ファイルシステムの一部の作業バージョンを作成するステップを含み、作業バージョンは第１の項目から生じる少なくとも第１の作業項目を含み、第１の作業項目は最初、第２の位置に位置しており、第２の位置は第１の位置情報により識別可能であり、前記方法はさらに、
比較ファイル内のおよび作業バージョンについての情報を用いて、２つの動作のうちの少なくとも一つが作業バージョンに対して実行されたかどうかを判断するステップを含み、動作は、第１の作業項目についての第１の位置情報の変更と、第１の作業項目の内容の編集とを含む、方法。
【請求項２６】
ファイルシステムの一部の作業バージョンを作成するステップは、第１の作業項目についての初期修正時刻を比較ファイルに記録するステップを含み、初期修正時刻は第１の作業項目が編集または作成された最後の時点を記録する、請求項２５に記載の方法。
【請求項２７】
第１の作業項目の内容を編集する動作を検出するステップは、初期修正時刻が変更されたかどうかをその後判断するステップを含む、請求項２６に記載の方法。
【請求項２８】
ファイルシステムの第１の項目に、第１の作業項目の編集された内容を含めさせるステップをさらに含む、請求項２７に記載の方法。
【請求項２９】
ファイルシステムの作業バージョンを作成するステップは、第１の作業項目についての作成時刻を記録するステップを含む、請求項２５に記載の方法。
【請求項３０】
比較ファイル内のおよび作業バージョンについての情報を用いて、２つの動作のうちの少なくとも一つが作業バージョンに対して実行されたかどうかを判断するステップは、作業バージョン内の第１の作業項目の位置を、作成時刻を用いて特定するステップを含む、請求項２９に記載の方法。
【請求項３１】
ファイルを管理するための方法であって、
ファイルシステムについての情報を比較ファイルへマッピングするステップを含み、情報は、第１の位置に位置するファイルシステム内の少なくとも第１の項目を識別し、第１の位置は第１の位置情報により識別可能であり、前記方法はさらに、
ファイルシステムの一部の作業バージョンを作成するステップを含み、作業バージョンは第１の項目から生じる少なくとも第１の作業項目を含み、第１の作業項目は最初、第２の位置に位置しており、第２の位置は第１の位置情報により識別可能であり、前記方法はさらに、
比較ファイル内のおよび作業バージョンについての情報を用いて、複合動作が第１の作業項目に対して実行されたかどうかを判断するステップを含み、複合動作は、第１の作業項目についての第１の位置情報の変更、第１の作業項目からの第１の作業コピーの作成、および第１の作業項目の内容の編集からなる一組の動作からの少なくとも２つの連続する動作を含む、方法。
【請求項３２】
第１の項目が第１の作業項目に整合するように、ファイルシステムの一部に、作業バージョンに対して実行された動作によりなされた変更を取入れさせるステップをさらに含む、請求項３１に記載の方法。
【請求項３３】
少なくとも２つの複合動作のうちの１つが第１の作業項目から第１の作業コピーを作成するために、作業バージョン内の選択された作業項目がかつて第１の作業項目からコピーされたかどうかを判断するステップをさらに含む、請求項３１に記載の方法。
【請求項３４】
コンピュータシステムであって、
第２のコンピュータシステム上に位置するファイルシステムの一部の作業バージョンを記憶するメモリと、
作業バージョン内の第１の作業項目の少なくとも作成時刻をマークするプロセッサとを含み、第１の作業項目はファイルシステムの一部の第１の項目から生じ、プロセッサはその後作成時刻を用いて第１の作業項目に対して実行された動作を検出する、コンピュータシステム。
【請求項３５】
ネットワークを通して第２のコンピュータと通信をやり取りするためのネットワークインターフェイスをさらに含み、通信は作業バージョンを作成するためのものである、請求項３４に記載のコンピュータシステム。
【請求項３６】
プロセッサは作成時刻を用いて、第１の作業項目の位置がその後変更されたかどうかを判断する、請求項３４に記載のコンピュータシステム。
【請求項３７】
プロセッサは作成時刻を用いて、多数の動作が第１の作業項目に対して実行されたかどうかを判断する、請求項３４に記載のコンピュータシステム。
【請求項３８】
プロセッサは最初、作成時刻とともに修正時刻をマークし、修正時刻は第１の項目がその後編集されるときに変更される、請求項３４に記載のコンピュータシステム。
【請求項３９】
プロセッサは作成時刻を修正時刻と比較して、第１の作業項目に対して実行された動作を識別する、請求項３８に記載のコンピュータシステム。
【請求項４０】
修正時刻がその後、最初にマークされたものから変更されている場合、プロセッサは第１の作業項目の内容が編集されたことを検出する、請求項３８に記載のコンピュータシステム。
【請求項４１】
プロセッサは、第２の作業項目がかつて第１の作業項目からコピーされたと判断するために、第２の作業項目が第１の作業項目の修正時刻を有するかどうかを検出する、請求項３８に記載のコンピュータシステム。
【請求項４２】
プロセッサは、第１の作業項目の作成時刻を検出して、第１の作業項目が新しい位置へ移動されたと判断し、プロセッサは、第１の作業項目の修正時刻が変更されたことを検出して、第１の作業項目が編集もされたと判断する、請求項３８に記載のコンピュータシステム。
【請求項４３】
コンピュータシステムであって、
第２のコンピュータ上でアクセス可能なファイルシステムの一部の作業バージョンを記憶するメモリを含み、作業バージョンは複数の作業項目を含み、メモリは複数の作業項目についての情報を含む比較ファイルも記憶しており、前記コンピュータシステムはさらに、
作業バージョン内の第１の組の作業項目についての少なくとも第１の時刻値を、第１の組の作業項目が最初にメモリに記憶されたときに記録するよう構成されたプロセッサを含み、プロセッサはその後作業バージョン内の第２の作業項目の第１の時刻値を識別し、プロセッサは第２の作業項目の第１の時刻値を第１の組の作業項目の第１の時刻値と比較して、第２の作業項目に影響を与える作業バージョンに対して実行された動作を検出する、コンピュータシステム。
【請求項４４】
ネットワークを通して第２のコンピュータと通信をやり取りするためのネットワークインターフェイスをさらに含み、通信はファイルシステムから作業バージョンを作成するためのものである、請求項４３に記載のコンピュータシステム。
【請求項４５】
プロセッサは、第１の組の作業項目の第１の時刻値を比較ファイルに記録する、請求項４３に記載のコンピュータシステム。
【請求項４６】
比較ファイルは、ファイルシステムの一部における複数の項目についての情報も含み、複数の作業項目の少なくともいくつかは、ファイルシステムの一部における複数の項目から生じている、請求項４４に記載のコンピュータシステム。
【請求項４７】
第１の作業項目の第１の時刻値は、それらの項目についての作成時刻に対応している、請求項４３に記載のコンピュータシステム。
【請求項４８】
検出された動作は、第１の組の作業項目の第１の時刻値が記録された後で第２の項目を作成するステップを含む、請求項４３に記載のコンピュータシステム。
【請求項４９】
検出された動作は、第１の組の作業項目のうちの１つのコピーとして第２の項目を作成するステップを含む、請求項４８に記載のコンピュータシステム。
【請求項５０】
第１の組の作業項目が最初にメモリに記憶されたときに、プロセッサは第１の組の作業項目の各々についての少なくとも第２の時刻値を記録し、第２の時刻値は、対応する項目の内容が最後に変更または作成された修正時刻に対応する、請求項４３に記載のコンピュータシステム。
【請求項５１】
プロセッサは、第２の作業項目の第２の時刻値を識別し、第２の作業項目の第１の時刻値および第２の時刻値を、第１の組の作業項目の第１の時刻値および第２の時刻値と比較して、動作を識別する、請求項５０に記載のコンピュータシステム。
【請求項５２】
第１の組の作業項目はファイルシステムの一部における対応する項目から生じており、プロセッサは動作を、作業バージョンが受取られた後での第２の作業項目の作成として検出する、請求項５１に記載のコンピュータシステム。
【請求項５３】
プロセッサは動作を、第１の組の作業項目のうちの１つからの第２の作業項目の作成として検出する、請求項５２に記載のコンピュータシステム。
【請求項５４】
プロセッサは動作を、新規項目としての第２の作業項目の作成として検出する、請求項５３に記載のコンピュータシステム。
【請求項５５】
第１の作業項目の第１の時刻値は、それらの項目についての作成時刻に対応しており、第２の作業項目についてのおよび第１の組の作業項目についての第２の時刻値は、作業バージョン内のそれぞれの作業項目についての修正時刻に対応している、請求項５３に記載のコンピュータシステム。
【請求項５６】
第２の時刻値が第１の組の作業項目のうちの１つの第１の時刻値と整合する場合、動作は、第１の組の作業項目のうちの１つからの第２の作業項目の作成として検出される、請求項５５に記載のコンピュータシステム。
【請求項５７】
第３の作業項目を作成する第１の動作と、第３の作業項目のコピーとして第２の作業項目を作成する第２の動作とを含む多数の動作が検出される、請求項５５に記載のコンピュータシステム。
【請求項５８】
第３の作業項目の第１の時刻値が第１の組の作業項目のうちの１つの第１の時刻値と整合しない場合、プロセッサは第１の動作を、新規項目としての第３の作業項目の作成として検出する、請求項５７に記載のコンピュータシステム。
【請求項５９】
第２の作業項目の第２の時刻値が第２の作業項目の第１の時刻値の前である場合、および第２の作業項目の第２の時刻値が第３の作業項目の第１の時刻値に整合する場合、プロセッサは第２の動作を、第３の作業項目のコピーとしての第２の作業項目の作成として検出する、請求項５８に記載のコンピュータシステム。
【請求項６０】
コンピュータシステムであって、
ファイルシステムを記憶するサーバと、
ファイルシステムに結合可能で、ファイルシステムの少なくとも一部を検索するクライアントとを含み、ファイルシステムの一部は、作業バージョンとしてクライアント上で利用可能となっており、作業バージョンは最初、複数の作業項目を含んでおり、作業項目の各々はファイルシステム内の対応する項目から生じており、前記コンピュータシステムはさらに、
作業バージョンについての初期情報を記録し、その後、作業バージョンに対して実行される２つ以上の動作を検出する処理資源を含み、動作は、作業バージョンへの項目の追加、作業バージョン内の項目の編集、作業バージョンからの項目の削除、および作業バージョン内の項目の新しい位置への移動からなる動作の群から選択される、コンピュータシステム。
【請求項６１】
処理資源は、作業バージョンに対して実行された動作を反映するようファイルシステムの少なくとも一部を変更するようにファイルシステムへ信号を送る、請求項６０に記載のコンピュータシステム。
【請求項６２】
作業バージョンへの項目の追加という動作は、作業バージョン内の第１の作業項目からの第２の作業項目のコピーを含む、請求項６０に記載のコンピュータシステム。
【請求項６３】
作業バージョンへの項目の追加という動作は、新規項目としての第２の作業項目の作成を含む、請求項６０に記載のコンピュータシステム。
【請求項６４】
作業ファイルについて記録された初期情報は、作業バージョン内の複数の作業項目についての第１の時刻値を含み、第１の時刻値は、複数の作業項目内の別の作業項目からの、またはサーバ上の別の項目からの各作業項目の起点を示す、請求項６０に記載のコンピュータシステム。
【請求項６５】
第１の時刻値は、その項目がクライアント上で作成されたときに対応する作成時刻である、請求項６４に記載のコンピュータシステム。
【請求項６６】
第１の時刻値は、その項目が変更または作成されたときの最後の時点を記録する修正時刻である、請求項６４に記載のコンピュータシステム。
【請求項６７】
処理資源はクライアント上に位置している、請求項６０に記載のコンピュータシステム。
【請求項６８】
処理資源はサーバ上に位置している、請求項６０に記載のコンピュータシステム。
【請求項６９】
処理資源はクライアントとサーバとの間で共有されている、請求項５９に記載のコンピュータシステム。
【請求項７０】
ファイルシステムは複数のクライアントで共有されており、複数のクライアントの各々はファイルシステムを変更可能であり、クライアントが作業バージョンをファイルシステムと比較するよう要求を行なうと、ファイルシステムの変更されたバージョンがクライアントへ信号で送られる、請求項６０に記載のコンピュータシステム。
【請求項７１】
サーバはファイルシステムの変更されたバージョンをクライアントへ信号で送り、処理資源はクライアント上にあって、処理資源が作業バージョンについての初期情報を記録した後でファイルシステムに対して実行された１つ以上の動作を検出する、請求項７０に記載のコンピュータシステム。
【請求項７２】
処理資源は、ファイルシステムの変更されたバージョンを作業バージョンについて記録された初期情報と比較して、ファイルシステムに対して実行された１つ以上の動作を検出する、請求項７１に記載のコンピュータシステム。
【請求項７３】
処理資源は、１つ以上の動作の結果変更または作成された各作業バージョン項目を用いてファイルシステムを更新するかどうかを選択するよう、ユーザへ信号を送る、請求項７２に記載のコンピュータシステム。
【請求項７４】
処理資源は、ファイルシステムに対して実行された１つ以上の動作の結果変更または作成された、変更されたファイルシステム内の各項目を用いてファイルシステムを更新するかどうかを選択するよう、ユーザへ信号を送る、請求項７３に記載のコンピュータシステム。
【請求項７５】
処理資源は、作業バージョンの第１の項目と変更されたファイルシステムの第１の項目との間で選択するようユーザへ信号を送り、作業バージョンの第１の項目は動作の群からの第１の動作の対象となっており、ファイルシステムの第１の項目は動作の群からの第２の動作の対象となっており、作業バージョンの第１の項目および変更されたファイルシステムの第１の項目は各々、ファイルシステム内の第１の項目から生じており、第１の動作は第２の動作と異なっている、請求項７４に記載のコンピュータシステム。
【請求項７６】
ファイルを管理するための命令を搬送するコンピュータ可読媒体であって、命令は、
ファイルシステムについての情報を比較ファイルへマッピングするステップを行なうための命令を含み、情報は、第１の位置に位置するファイルシステム内の少なくとも第１の項目を識別し、第１の位置は第１の位置情報により識別され、前記命令はさらに、
ファイルシステムの一部の作業バージョンを作成するステップを行なうための命令を含み、作業バージョンは第１の項目から生じる少なくとも第１の作業項目を含み、第１の作業項目は最初、第１の位置情報によって第２の位置に位置しており、前記命令はさらに、
比較ファイル内のおよび作業バージョンについての情報を用いて、第１の作業項目が第２の位置情報によって識別される第３の位置に位置しているかどうかを判断するステップを行なうための命令を含み、第２の位置情報は第１の位置情報とは異なる、コンピュータ可読媒体。
【請求項７７】
第１の作業項目が第３の位置に位置する場合、コンピュータ可読媒体の命令は、ファイルシステム内の第１の項目を、第２の位置情報によって識別される第４の位置へ移動させるための命令を含む、請求項７６に記載のコンピュータ可読媒体。
【請求項７８】
比較ファイル内のおよび作業バージョンについての情報を用いて、第１の作業項目がその後、第２の位置情報により識別可能な第３の位置に位置しているかどうかを判断するステップは、第１の作業項目が新しい名前を有しているかどうかを判断するための命令を含む、請求項７６に記載のコンピュータ可読媒体。
【請求項７９】
ファイルシステムの一部の作業バージョンを作成するステップは、第１の作業項目の作成時刻を比較ファイルに記録するための命令を含む、請求項７８に記載のコンピュータ可読媒体。
【請求項８０】
比較ファイル内のおよび作業バージョンについての情報を用いて、第１の作業項目がその後、第２の位置情報により識別可能な第３の位置に位置しているかどうかを判断するステップは、作業バージョン内の第１の作業項目の位置を、作成時刻を用いて特定するための命令を含む、請求項７８に記載のコンピュータ可読媒体。
【請求項８１】
第１の作業項目が作業バージョンから省略されている場合、第１の項目を削除するようファイルシステムに信号を送るための命令をさらに含む、請求項７６に記載のコンピュータ可読媒体。
【請求項８２】
第１の作業項目の作成時刻を用いて、第１の作業項目が作業バージョンから削除されたと判断するための命令をさらに含む、請求項８１に記載のコンピュータ可読媒体。
【請求項８３】
ファイルシステムの作業バージョンを作成するステップは、第１の作業項目の修正時刻を比較ファイルに記録するための命令を含む、請求項７９に記載のコンピュータ可読媒体。
【請求項８４】
作業バージョンの作成後に第１の作業項目が編集されたかどうかを判断するための命令をさらに含む、請求項７６に記載のコンピュータ可読媒体。
【請求項８５】
作業バージョンの作成後に第１の作業項目が編集されたかどうかを、第１の作業項目の修正時刻を用いて判断するための命令をさらに含む、請求項８３に記載のコンピュータ可読媒体。
【請求項８６】
第１の作業項目の修正時刻を用いるステップは、第１の作業項目のその後の修正時刻が第１の作業項目についての記録された修正時刻と異なるかどうかを判断するための命令を含む、請求項８５に記載のコンピュータ可読媒体。
【請求項８７】
異なるコンピュータ上のファイルを管理するための命令を搬送するコンピュータ可読媒体であって、命令は、
ファイルシステムについての情報を比較ファイルへマッピングするステップと、
ファイルシステムの一部の作業バージョンを作成するステップと、
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップとを行なうための命令を含む、コンピュータ可読媒体。
【請求項８８】
第１の作業項目がかつて第２の作業項目からコピーされたと判断した後でファイルシステムに第１の作業項目を含めさせるための命令をさらに含む、請求項８７に記載のコンピュータ可読媒体。
【請求項８９】
第２の作業項目は、ファイルシステムにおける第１の項目から生じている、請求項８７に記載のコンピュータ可読媒体。
【請求項９０】
第１の作業項目の内容は第２の作業項目の内容と異なっている、請求項８８に記載のコンピュータ可読媒体。
【請求項９１】
作業バージョンを作成するステップは、第２の作業項目について作成時刻および修正時刻の双方を比較ファイルに記録するための命令を含む、請求項８９に記載のコンピュータ可読媒体。
【請求項９２】
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップは、第１の作業項目についての作成時刻および修正時刻を識別するための命令を含む、請求項９１に記載のコンピュータ可読媒体。
【請求項９３】
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップは、第１の作業項目の修正時刻が第１の作業項目の作成時刻の前であることを検出するための命令を含む、請求項９２に記載のコンピュータ可読媒体。
【請求項９４】
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップは、第１の作業項目の修正時刻を第２の作業項目の修正時刻と整合させるための命令を含む、請求項９３に記載のコンピュータ可読媒体。
【請求項９５】
第１の作業項目が第２の作業項目からコピーされた後で編集されたかどうかを判断するステップを行なうための命令をさらに含む、請求項８９に記載のコンピュータ可読媒体。
【請求項９６】
第１の作業項目の作成時刻が比較ファイルにより識別された全項目の作成時刻と異なる場合、および第１の作業項目についての修正時刻が第１の作業項目についての作成時刻よりも大きいかまたはそれと等しい場合、第１の作業項目は新規ファイルであると判断するステップを行なうための命令をさらに含む、請求項８７に記載のコンピュータ可読媒体。
【請求項９７】
第１の作業項目が新規であると判断した後でファイルシステムに第１の作業項目を含めさせるステップを行なうための命令をさらに含む、請求項９６に記載のコンピュータ可読媒体。
【請求項９８】
比較ファイル内のおよび作業バージョンについての情報を用いて、作業バージョン内の第１の作業項目がかつて作業バージョン内の第２の作業項目からコピーされたかどうかをその後判断するステップは、第１の作業項目の内容を第２の作業項目の内容と比較するための命令を含む、請求項８２に記載のコンピュータ可読媒体。
【請求項９９】
ファイルを管理するためのコンピュータ可読媒体であって、コンピュータ可読媒体は、
ファイルシステムについての情報を比較ファイルへマッピングするステップを行なうための命令を含む命令を搬送しており、その情報は、第１の位置に位置するファイルシステム内の少なくとも第１の項目を識別し、第１の位置は第１の位置情報によって識別され、前記コンピュータ可読媒体はさらに、
ファイルシステムの一部の作業バージョンを作成するステップを行なうための命令を含む命令を搬送しており、作業バージョンは第１の項目から生じる少なくとも第１の作業項目を含み、第１の作業項目は最初、第２の位置に位置しており、第２の位置は第１の位置情報によって識別され、前記コンピュータ可読媒体はさらに、
比較ファイル内のおよび作業バージョンについての情報を用いて、２つの動作のうちの少なくとも一つが作業バージョンに対して実行されたかどうかを判断するステップを行なうための命令を含む命令を搬送しており、動作は、第１の作業項目についての第１の位置情報の変更と、第１の作業項目の内容の編集とを含む、コンピュータ可読媒体。
【請求項１００】
ファイルシステムの一部の作業バージョンを作成するステップは、第１の作業項目についての初期修正時刻を比較ファイルに記録するための命令を含み、初期修正時刻は第１の作業項目が編集または作成された最後の時点を記録する、請求項９９に記載のコンピュータ可読媒体。
【請求項１０１】
比較ファイル内のおよび作業バージョンについての情報を用いて、２つの動作のうちの少なくとも一つが作業バージョンに対して実行されたかどうかを判断するステップは、初期修正時刻が変更されたかどうかをその後判断するための命令を含む、請求項１００に記載のコンピュータ可読媒体。
【請求項１０２】
ファイルシステムに第１の作業項目の編集された内容を含めさせるステップを行なうための命令をさらに含む、請求項１０１に記載のコンピュータ可読媒体。
【請求項１０３】
ファイルシステムの一部の作業バージョンを作成するステップは、第１の作業項目についての作成時刻を記録するための命令を含む、請求項９９に記載のコンピュータ可読媒体。
【請求項１０４】
比較ファイル内のおよび作業バージョンについての情報を用いて、２つの動作のうちの少なくとも一つが作業バージョンに対して実行されたかどうかを判断するステップは、作業バージョン内の第１の作業項目の位置を、作成時刻を用いて特定するための命令を含む、請求項１０３に記載のコンピュータ可読媒体。
【請求項１０５】
ファイルを管理するための命令を搬送するコンピュータ可読媒体であって、命令は、
ファイルシステムについての情報を比較ファイルへマッピングするステップを行なうための命令を含み、情報は、第１の位置に位置するファイルシステム内の少なくとも第１の項目を識別し、第１の位置は第１の位置情報によって識別され、前記命令はさらに、
ファイルシステムの一部の作業バージョンを作成するステップを行なうための命令を含み、作業バージョンは第１の項目から生じる少なくとも第１の作業項目を含み、第１の作業項目は最初、第２の位置に位置しており、第２の位置は第１の位置情報によって識別され、前記命令はさらに、
比較ファイル内のおよび作業バージョンについての情報を用いて、複合動作が第１の作業項目に対して実行されたかどうかを判断するステップを行なうための命令を含み、複合動作は、第１の作業項目についての第１の位置情報の変更、第１の作業項目からの第１の作業コピーの作成、および第１の作業項目の内容の編集からなる一組の動作からの少なくとも２つの連続する動作を含む、コンピュータ可読媒体。
【請求項１０６】
複合動作が実行されたと判断された場合、ファイルシステム内の第１の項目を変更するためにどちらの動作が第１の作業項目に対して実行されたかを示すための命令をさらに含む、請求項１０５に記載のコンピュータ可読媒体。
【請求項１０７】
少なくとも２つの複合動作のうちの１つが第１の作業項目から第１の作業コピーを作成するために、作業バージョン内の選択された作業項目がかつて第１の作業項目からコピーされたかどうかを判断するための命令をさらに含む、請求項１０５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
この発明はネットワークファイルを管理するためのアプリケーションに関する。特に、この発明の実施例は、同期化のためにファイルシステムへの変更を検出することに関係する。
【背景技術】
【０００２】
発明の背景
多数のファイルシステムが全く同じ内容を含んでいる場合、それらのファイルシステムは「同期している」と言われる。ファイルシステムを同期した状態に保つために、同期化アプリケーションがファイルシステム間の違いを検出し、次にその違いをなくすよう動作を実行する。通常、同期化アプリケーションは、同じファイルの異なるコピーにアクセスする必要がある、異なるコンピュータのファイルシステムを同期させるために使用される。互いに同期されるべき１組のファイルシステムはここで「同期化セット」と呼ばれる。所与の同期化セットに属する各ファイルシステムは「同期システム」と呼ばれる。
【０００３】
同期化セットを同期させる行為は同期化動作と呼ばれる。各同期化動作中、同期化アプリケーションは通常、以前の同期化動作以降に任意の同期システムにおいていつ項目が削除されたかまたは追加されたかを検出しようとする。
【０００４】
一般に、同期化アプリケーションは、以前の同期化動作以降に任意の同期システムに追加されていると検出された項目を、すべての同期システムへ追加しようとする。同様に、同期化アプリケーションは、以前の同期化動作以降に任意の同期システムから削除されていると検出された項目を、すべての同期システムから削除しようとする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常、同期化アプリケーションは（１）他の項目のコピーである追加項目と（２）オリジナルとして作成された追加項目とを区別しない。加えて、改名された項目が変更された場合、元の項目が削除されて新規項目が追加されたように見える。したがって、元の項目がすべての同期システムにおいて削除されるかもしれず、新規の変更された項目がすべての同期システムに追加される。また、これに代えて、同期化アプリケーションは、変更された項目と変更されていない項目の双方をともに同じファイル内に置くかもしれない。
【０００６】
現行の同期化手法の下では、ユーザがある項目に対して多数の動作を実行し、次にその項目を別のものと同期させようとする場合、アプリケーションはその項目を、変更されたかまたは新規であるとして検出する。アプリケーションは、その項目に対して実行された特定の動作を検出できないであろう。その結果、同期化動作が、あるファイルを別のものの代わりに削除したり、または、元のファイルが同じファイルシステム内にある状態で、変更されたファイルを記憶されるよう追加するかもしれない。
【０００７】
同期化動作はしばしば、著しい量の資源消費を伴う。たとえば、同期化アプリケーションがある同期システムへの新規ファイルの追加を検出した場合、他のすべての同期システムへの新規ファイルの内容のデータ転送が必要とされる。ファイルが大きい場合、および／または同期システムの数が多い場合、資源消費はかなりのものとなり得る。
【０００８】
現行の同期化手法での別の問題は、新規ファイルまたは置換されたファイルが、ファイルシステムに対するそれらの転送または再作成の前からのメタデータ情報を保持していないということである。このため、時刻Ｔ１で作成されたファイルが変更される場合、そのファイルが元々時刻Ｔ１で作成されたという事実は、同期化アプリケーションが、変更されたファイルを新規ファイルとして、元のファイルを削除されたファイルとして扱う場合によって損失されるであろう。
【課題を解決するための手段】
【０００９】
発明の概要
この発明の実施例は、同期されるべき第１のファイルシステムに対して実行された１つ以上の動作を検出可能なアプリケーションを提供する。同期化アプリケーションは、第１のファイルシステムの検出された動作を用いて、第２のファイルシステムを更新する。
【００１０】
この発明の一実施例は、項目のコピー、項目の移動、新規項目の作成、項目の削除、および項目の編集を含む、第１のファイルシステムにおける動作を検出可能である。この発明の一実施例は、第１のファイルシステムに対して実行された多数の動作も検出する。検出された動作は、同期化動作中、第２のファイルシステムに対して再現されてもよい。
【００１１】
この発明の実施例で説明される同期化手法は、使用される他の同期化プロセスよりも、被るオーバーヘッドが少ない。さらに、この発明の実施例は、同期化されたファイルについてのメタデータ情報を保存する同期化手法を提供しており、これはそのような情報の損失を被る他の同期化プロセスとは対照的である。
【発明を実施するための最良の形態】
【００１２】
この発明を添付図面の図において、限定のためではなく例示のために説明する。図中、同じ参照符号は同様の要素を指す。
【００１３】
発明の詳細な説明
ファイルを管理するための方法および装置を記載する。以下の記載では、説明のため、この発明の完全な理解を提供するために多数の特定の詳細が述べられている。しかしながら、この発明がこれらの特定の詳細なしで実践されてもよいことは明らかである。他の場合、この発明を不必要に不明瞭にするのを避けるために、周知の構造および装置をブロック図の形で示す。
【００１４】
提供される利点の中でも、この発明の実施例は、同期システムに属するファイル項目へ実行された特定の行為を識別する同期化動作が実行されることを可能にする。同期化動作中、特定の動作は他の同期システムの対応するファイル項目に対して再現される。その結果、ファイル項目が単にどこか変更または移動されただけである多くの場合において、そのようなファイル項目の完全な転送が回避され得る。結果として通信資源が節約される。加えて、他の同期システムの対応するファイル項目は、それらの項目についてのメタデータ情報を失うことなく更新され得る。
【００１５】
Ａ．機能概要
一実施例では、１つ以上のクライアント端末がサーバ上のファイルシステムにアクセス可能である。１つ以上のファイルがファイルシステムからダウンロードされ、クライアント端末上で処理され得る。特に、ユーザはダウンロードされたファイルの内容に対して、文書の編集、項目の削除、ファイル用の新規文書の作成、ファイル内の項目の移動または項目のコピー、もしくはこれらの行為の組合せを含むある行為を実行してもよい。一実施例の下では、ダウンロードされたファイルに対して実行された行為を管理システムが検出する。管理システムは次に、ダウンロードされたファイルをファイルシステムの対応する部分と同期させる。
【００１６】
ここに記載するように、ファイルシステムは、多数のクライアント用に多くのファイルを保持する管理システム全体の一部である。クライアントはファイルシステムの一部のみをダウンロードしてもよい。ファイルシステムの一部は、ディレクトリ、サブファイル、アプリケーション、実行ファイル、文書、および異なるデータ種類の個々の資源などの項目を含んでいてもよい。
【００１７】
ファイルシステムの一部がクライアントによってダウンロードされる場合、結果として生じるローカルファイルは作業バージョンと呼ばれる。作業バージョンは、クライアント用にダウンロードされるよう選択されたファイルシステムの一部から項目をコピーする。情報が、作業バージョンについての比較ファイル内に、それが作成される際に記録される。比較ファイルは、ダウンロードされたファイルシステムの一部についての情報も含んでいてもよい。この情報は、ファイル項目を識別するためにその後使用され得るメタデータ情報と、作業バージョンが作成された後でそれになされた修正とを含む。作業バージョンが修正された後、作業バージョンは、作業バージョンをダウンロードするために使用されたファイルシステムの一部と同期され得る。比較ファイル内に記録された情報を用いて、作業バージョンへなされた変更が検出される。
【００１８】
ここで用いられるように、用語「項目」への言及は、ファイルシステム内で維持および／または管理可能なデータ構造を意味する。上述のように、項目は、ディレクトリ、ファイル、アプリケーション、実行ファイル、文書、および異なるデータ種類の個々の資源を含む。項目は特定のデータ種類の文書または資源を含んでいてもよい。たとえば、第１の項目はワープロ文書であってもよく、第２の項目はその文書を他の資源とともに記憶するフォルダであってもよい。
【００１９】
一実施例の下では、比較ファイルに含まれる情報は主としてメタデータ情報である。メタデータ情報は、特定の項目についての位置情報、作成時刻、修正時刻、項目の大きさ、およびファイル名を含んでいてもよい。
【００２０】
位置は、メモリアドレスおよびコンピュータ位置によって識別可能である。位置情報は、コンピュータ上の項目の記憶位置を識別するために使用可能なデータを指す。位置情報はファイル名または資源名を含んでいてもよい。位置情報は、メモリ内の特定の項目の位置を特定するファイル経路も含んでいてもよい。
【００２１】
この発明の実施例は、ファイルを管理するシステムおよび方法を含む。一実施例によれば、第１の同期化動作の後、情報がファイルシステムから比較ファイルへマッピングされる。その情報は、第１の同期化動作後の第１の項目のステータスについての情報を含む。たとえば、比較ファイル内の情報は、第１の同期化動作の後、第１の項目が第１の位置に位置したことを示してもよい。ファイルシステム情報を比較ファイルへマッピングすることに加え、ファイルシステムの作業バージョンが作成される。初めに、作業バージョンは第１の項目が第１の位置にあることを示す。作業バージョンに含まれる情報は、第１の同期化動作後に第１のファイルのステータスへなされたあらゆる変更を反映するよう修正される。その後の第２の同期化動作中、ファイルシステムの作業バージョンに示された位置は、比較ファイルに示された位置と比較され、第１の同期化動作と第２の同期化動作の合間に第１の項目が移動されたかどうかが判断される。
【００２２】
一実施例では、ファイルシステム内の第１の項目は、新しい位置情報によって識別可能な新しい位置へ移動されてもよい。したがって、第１の作業項目が移動される場合、ファイルシステムは第１の作業項目を再作成しなくてもよい。むしろ、ファイルシステムは、第１の作業ファイルに対応する第１の項目を、ファイルシステム内の対応する位置へ移動させることができる。以前の同期化アプリケーションとは対照的に、この発明のそのような実施例は、第１の作業項目が、作業バージョン上で移動されたというだけの理由で、ファイルシステムの新しい部分として再作成されることを必要としない。その結果、第１の作業項目の内容のデータ転送が不必要であるため、通信資源が保存される。さらに、ファイルシステム内の第１の項目についてのメタデータ情報が保存される。
【００２３】
この発明の別の実施例は、ファイルシステムについての情報を比較ファイルへマッピングする。作業バージョンはファイルシステムの一部から作成される。同期化動作中、比較ファイルと作業バージョンとを用いて、最後の同期化動作以降に項目がコピーされたかどうかが判断される。
【００２４】
この発明の別の実施例は、ネットワーク管理アプリケーションを動作可能なコンピュータシステムを提供する。このコンピュータシステムは、第２のコンピュータと通信をやり取りするためのネットワークインターフェイスを含む。この通信は、第２のコンピュータ上でアクセス可能なファイルシステム部分の作業バージョンを作成することになっている。第１のコンピュータは、作業バージョンを記憶するメモリを含む。第１のコンピュータ上のプロセッサは、作業バージョン内の少なくとも１つの作業項目についての作成時刻を記録し、第１の作業項目はファイルシステムの第１の項目から生じている。プロセッサはその後、作成時刻を用いて、第１の作業項目に対して動作が実行されたかどうかを判断する。
【００２５】
他の利点の中でも、この発明の実施例は、作業バージョンが作成された後である項目が新しい位置へ移動されたかどうか、作業バージョンが別のファイルから作成された際にある項目が作業バージョン内に存在する別の項目からコピーされたかどうか、または、ある項目が作業バージョンの作成後に作業バージョンに追加された項目からコピーされたかどうかを検出可能である。この発明の一実施例の下で検出可能な他の動作は、項目が編集されたかどうか、または作業バージョンから削除されたかどうかを含む。この発明の一実施例は、作業バージョン内の項目に対してまたは項目のために実行された多数の動作も検出可能である。
【００２６】
結果として、作業バージョンを作成するために使用されたファイルシステムの一部は、作業バージョンにおけるその後の変更を反映するよう更新され得る。しかしながら、作業バージョン項目によってその後更新されるファイルシステム内の項目は、作業バージョン項目によってすべて置換されたりまたは再作成される必要はない。むしろ、同期化方法またはアプリケーションは、作業バージョンの対応する項目への変更、または作業バージョンへの項目の追加を反映するようにファイルシステムを更新可能である。別の利点は、作業バージョン内で動作されるファイルシステム項目がそれらの起源を追跡する情報を維持できるということである。その結果、ファイルシステムは、作業バージョンに対して実行された動作のみを反映するよう更新可能である。
【００２７】
Ｂ．システム概要
図１は、この発明の一実施例の下で、コンピュータ間で共有されるファイルを管理するためのシステムを示す。このシステムは、ネットワーク１５を介してサーバ２０へ結合された第１の端末１０を含む。複数の他の端末２５もネットワーク１５を通してサーバ２０へ結合されていてもよい。第１の端末１０は、サーバ２０と通信するクライアントとして動作されてもよい。一実施例では、サーバ２０と共有されるファイル項目および資源を管理するために、クライアントアプリケーションが第１の端末１０上で動作可能である。
【００２８】
ユーザは第１の端末１０を動作させて、１つ以上の資源および他の項目を含むファイルシステム４０へサーバ２０からアクセスしてもよい。ユーザがファイルシステム４０の一部の借りられたまたは作業用のバージョン上で作業している間、ファイルシステム４０の元々のバージョンはサーバ２０上に残っていてもよい。図１によって説明されるようなシステムにより、ユーザは、遠隔サーバ２０からアクセスされた項目に対して局所的に作業し、次に、第１の端末１０上でそれらの項目へなされた変更を反映するよう、遠隔サーバ上のファイルシステム４０を更新することができる。
【００２９】
一実施例では、端末１０上のユーザは、サーバ２０からアクセスされた項目に対して動作を実行可能である。これらの動作は、内容の編集、サーバから検索された特定の項目の削除、項目の新しい位置への移動、サーバ２０から検索された項目のコピー、および、その後サーバ２０上に含むための新規項目の追加を含んでいてもよい。加えて、この発明の一実施例により、ユーザは、項目に対して実行された動作の組合せを反映するよう、サーバ２０を更新できるようになる。この発明の一実施例は、ユーザによって実行された動作の可能な組合せを、同等の複合動作へ削減させる。同等の複合動作は、項目を編集し、かつコピーすること、新規項目を作成し、次にそれらを編集および／またはコピーすること、および、既存の項目を編集し、次にそれらを編集することを含んでいてもよい。
【００３０】
一実施例では、端末１０はネットワークインターフェイス１２を用いてサーバ２０と通信をやり取りする。一実現化例では、ネットワークインターフェイス１２は、インターネットなどのネットワークを通した通信を可能とするためのインターネットプロトコル（ＩＰ）通信、および特に伝送制御プロトコル（ＴＣＰ／ＩＰ）を可能とする。また、これに代えて、この発明の実施例は、ローカルエリアネットワーク（ＬＡＮ）、および他の種類の広域ネットワーク（ＷＡＮ）などのネットワークを通して、コンピュータ間で通信を伝送してもよい。
【００３１】
サーバ２０は、ファイルシステム４０を記憶するために、または他の方法で管理するために使用されてもよい。一実施例では、ファイルシステム４０は複数の部分を含み、各々の部分はユーザまたはアカウントと関連している。ファイルシステム４０の第１の部分４６は、第１の端末１０へまたは第１の端末１０のユーザへアクセス可能な、サーバ２０上に記憶されたファイルであってもよい。第１の部分４６は、特定のデータ種類のファイルおよび資源などの複数の項目を含んでいてもよい。
【００３２】
第１の部分４６の第１の項目４４が図１に識別されている。説明のため、第１の項目４４は文書などの資源であると仮定する。また、これに代えて、第１の項目４４は他の項目を含むファイルであり得る。第１の項目４４は、メタデータ情報および内容を含むかまたは他の方法でそれらと関連している。第１の項目４４のメタデータ情報は、サーバ２０のメモリ（図示せず）上の特定の位置（Ｌ１）を識別してもよい。第１の項目４４のメタデータ情報は、サーバ２０上の第１の位置（Ｌ１）を特定するために使用される位置識別情報（ＬＩ１）も含んでいてもよい。第１の項目４４は資源であると仮定されているため、第１の項目４４はメタデータ情報に関連する内容も含んでいる。
【００３３】
図示された一実施例では、第１の端末１０は、ネットワークインターフェイス１２およびネットワーク１５を通して伝送された第１の通信３２をサーバ２０から受取る。第１の通信３２はファイルシステム４０の第１の部分４６を含む。一実現化例では、第１の端末１０を動作させるユーザは、第１の部分４６へのアクセス権を有する。このアクセス権により、ユーザは、第１の項目４４を含む第１の部分４６の一部またはすべてをダウンロードするかまたは他の方法で検索することができる。ユーザは、第１の通信３２を受取った後で、第１の部分４６の作業バージョン５０を作成できる。作業バージョン５０は第１の部分４６内の項目からの内容を含む。作業バージョン５０についてのあるメタデータ情報が、サーバ２０から転送されて第１の通信３２に含まれてもよい。作業バージョン５０が作成される際、他のメタデータ情報が第１の端末１０上で作成されてもよい。ファイルシステムから転送されるメタデータ情報は、たとえば、ある項目の位置を特定するためのファイル経路および名前などの位置情報を含んでいてもよい。
【００３４】
第１の通信３２で伝送されたデータを用いて、少なくとも第１の作業項目５６を含む作業バージョン５０を作成してもよい。第１の作業項目５６は、ファイルシステム４０の第１の項目４４から生じている。一実施例では、第１の作業項目５６の内容部分５８が第１の項目４４の対応する内容部分４８からコピーされているために、第１の作業項目５６は第１の項目４４から生じている。
【００３５】
ファイルシステム４０から搬送され得るメタデータ情報は、第１の項目４６の第１の位置情報（ＬＩ１）を含む。第１の位置情報（ＬＩ１）は、第１の端末１０上の第１の作業項目５６についての第２の位置（Ｌ２）を識別するために使用されてもよい。たとえば、第１の位置情報（ＬＩ１）はファイル経路および名前を含んでいてもよい。作業バージョン５０上にファイル経路を再作成して、第１の作業項目５６が第２の位置（Ｌ２）に位置づけられ得るようにしてもよい。名前も付加的な位置情報として転送されてもよい。多くのアプリケーションでは、名前はファイル経路の包含的部分である。
【００３６】
作業バージョン５０が第１のコンピュータ１０上で作成されると、新しいメタデータ情報が記録される。新しいメタデータ情報は、第１の作業項目５６についてのある事象をマークする時刻値を含んでいてもよい。一実施例では、第１の時刻値６２は第１の作業項目についての作成時刻に対応してもよい。第２の時刻値６４は第１の作業項目５６についての修正時刻に対応してもよい。第１の時刻値６２および第２の時刻値６４は、作業バージョン５０が第１のコンピュータ１０上で作成され次第、またはその直後に初期化される。一例として、ユーザがワープロ文書を第１の作業項目５６としてダウンロードする場合がある。文書がダウンロードされると、第１の時刻値６２（作成時刻）および第２の時刻値６４（修正時刻）が、第１の端末１０上のオペレーティングシステム（または他のアプリケーション）によって記録される。たとえば、第１の作業項目５６が作成されると、第１の端末１０は、作成時刻値と修正時刻値とを自動的に記録するウィンドウズ（Ｒ）タイプのオペレーティングシステムを実行してもよい。作成時刻とは、特定のコンピュータシステム上で特定の項目に割当てられた、その作成の時刻をマークする値である。作成時刻は、対応する作業項目を、その作業項目が新しいアドレスまたは新しい名前を有していてもその後識別するのに使用可能な静的な値として記憶される。修正時刻とは、作業項目に関連する、項目が編集または作成された最後の時点をマークする値である。修正時刻はしたがって、作業バージョン５０がファイルシステム４０からダウンロードされた後で変わり得る。
【００３７】
一実施例では、第１のコンピュータ１０は比較ファイル７０を維持するかまたは他の方法で比較ファイル７０にアクセスして、メタデータ情報を記憶する。比較ファイル７０に記憶されたメタデータ情報は、第１の作業項目５６が第１のコンピュータ１０上で作成される際に記録された新しいメタデータ情報と、ファイルシステム４０の第１の項目４４から搬送されたかもしれないあるメタデータ情報とを含んでいてもよい。
【００３８】
提供された例では、比較ファイル７０は、第１の作業項目５６および第１の項目４４の第１の位置情報（ＬＩ１）、第１の作業項目５６の第２の位置（Ｌ２）、第１の作業項目５６の第１の時刻値６２（作成時刻）、および第１の作業項目５６の第２の時刻値６４（修正時刻）を記憶する。第１の位置情報（ＬＩ１）はサーバから転送され、一方、比較ファイル７０内の他のメタデータ情報は作業バージョン５０の作成とともに作成される。作業バージョン５０内の項目についての最初の時点でのメタデータ情報が作成され、比較ファイル７０に記憶される。以下により詳細に説明するように、このメタデータ情報は、作業バージョン５０が作成された後で第１の作業項目５６に対して実行された特定の動作を識別するために使用される。特定の動作を知ることにより、同期化がより効率よく実行され得る。
【００３９】
比較ファイル７０が検出に使用され得る動作は、項目の編集、項目の移動、新規項目の作成、項目のコピー、項目の削除、およびそれらの組合せという動作を含む。比較ファイル７０は、第１の通信３２で伝送された各項目についてのメタデータ情報へのアクセスを提供する。動作が作業バージョン５０に対して実行された後で、この発明の一実施例は、作業バージョン５０の項目内のメタデータが比較ファイル７０に対して比較されることを提供する。作業バージョン項目とファイルシステム項目との違いを判断するために、メタデータ情報の比較が、作業バージョン５０に対して実行された動作を検出するために用いられる。比較を行なう際、作業バージョン５０内の項目は、比較ファイル７０により記録された対応する項目のメタデータとは異なるメタデータ情報を有すると検出されるかもしれない。加えて、作業バージョン５０内の項目は、比較ファイル７０により識別された対応する項目を有していないと検出されるかもしれない。比較を行なう際に識別された違いは注記され、作業バージョン５０をファイルシステム４０上の第１の部分４６と同期させるために使用される。
【００４０】
この発明の一実施例の下では、第１の部分４６は、他の端末２５がサーバ２０からアクセス可能な共有ファイルである。第１の部分４６は、その一部が第１の端末１０へ伝送された後で別のコンピュータにより変更され得る。他の端末２５は、たとえば、第１の部分４６内の項目にアクセスし、それに対して動作してもよく、そのため第１の部分４６は、それが第１の端末１０へ伝送された時点から変更される。作業バージョン５０における変更を識別するための、共有されたファイルシステムとの比較を行なうために、第２の通信３４がサーバ２０から第１の端末１０へ伝送される。第２の通信３４は、同期化が第１の端末１０で行なわれるべき時点でサーバ２０上に存在するようなメタデータ情報を含む。一実施例では、同期化要求が第１の端末１０からされ次第、第２の通信３４が第１の端末１０へ伝送される。
【００４１】
一実施例では、第１の端末１０は同期化動作を実行する。同期化動作は、作業ファイル５０の変更されたまたは追加された項目と第１の部分４６の項目との間でメタデータ情報を比較してもよい。変更されたまたは追加された作業バージョン項目は、第１の端末のユーザが作業バージョン５０に対して１つ以上の動作を実行した結果である。変更されたまたは追加されたファイルシステム項目は、他のユーザがファイルシステム４０の彼らのバージョンに対して１つ以上の動作を実行した結果である。作業バージョン５０と第１の部分４６の項目との違いが識別され、第１の端末１０のユーザによって調整される。この違いは調整されたメタデータ情報として記録される。一実施例では、調整されたメタデータ情報を第１の端末１０からサーバ２０へ伝送するために、第３の通信３６が用いられる。調整されたメタデータ情報をサーバ２０へ伝送して、作業バージョン５０に対して実行された動作からの変更を反映するようにファイルシステム４０を更新する１つ以上の動作をサーバ２０に実行させてもよい。さらに、調整された情報がユーザ５０によって表示され、ファイルシステム４０を更新するのに使用される変更された項目をユーザが選択できるようにしてもよい。
【００４２】
別の実施例では、第１の部分４６は他のユーザと共有されておらず、第１の端末１０のユーザのみと共有されている。そのため、第２の通信３４は必要でないかもしれない。むしろ、比較ファイル７０は、同期化動作を実行し、調整されたメタデータ情報を識別するために使用される。同期化動作が第１の端末１０上で実行された後で、次に調整されたメタデータ情報がサーバ２０へ伝送される。調整されたメタデータ情報はサーバ２０へ伝送されて、それに作業バージョン５０の変更を用いてファイルシステム４０を更新させるようにする。
【００４３】
Ｃ．同期化動作
図２は、作業バージョン５０を作成し、その後作業バージョン５０（図１）をファイルシステム４０の対応する部分と同期させるための方法を示す。図１の構成要素への言及は、用いられる例示的な構成要素をその実施例と通じさせるよう意図されている。図２で説明されるような一実施例では、第１のファイルシステム４０は他のユーザと共有されていないと仮定されている。
【００４４】
ステップ２１０で、ファイルシステム４０部分の作業バージョンが第１の端末１０上へダウンロードされる。たとえば、第１の端末１０はインターネットを通してサーバ２０と接続していてもよい。第１の端末１０のユーザは、ファイルシステム４０の第１の部分４６を識別するためのアカウントを有していてもよい。ファイルシステム４０の第１の部分４６は、第１の端末１０上へダウンロードされるよう、ユーザにより選択可能である。
【００４５】
ステップ２２０で、作業バージョン５０が作成される際に比較ファイル７０が作成される。比較ファイルは作業バージョン５０の初期メタデータ情報を記録する。そのメタデータ情報の一部はまた、ファイルシステム４０の第１の部分４６の項目から転送されてもよい。ステップ２１０および２２０は、作業バージョン５０に影響を与え得るあらゆる動作に先立って、ｔ＝０で実行される。ステップ２３０−２５０はある時刻ｔ＝ｉたった後で起こり、そのためユーザは作業バージョン５０に対する動作を既に実行したかもしれない。その時点で、ユーザは作業バージョン５０をファイルシステム４０と同期させる要求を行なっている。
【００４６】
ステップ２３０で、修正された作業バージョン５０と比較ファイル７０が作成された時点での作業バージョン５０との違いが識別される。この違いはデルタ項目と呼ばれてもよい。デルタ項目は、後の時点での作業バージョン５０内の新規項目、コピーされた項目、移動された項目、または修正された項目を含む。デルタ項目は、作業バージョン５０に対応していない、比較ファイル７０により識別された項目も含んでいてもよい。たとえば、第１の作業項目５６は編集および移動を通して動作されるかもしれず、その場合、それは作業バージョン５０におけるデルタ項目である。また、これに代えて、比較ファイル７０は作業項目５６を識別するものの、作業項目５６は作業バージョン５０から既に削除されているかもしれない。この場合、第１の作業項目５６は比較ファイル７０におけるデルタ項目である。同様に、比較ファイル７０が作成された後で他の作業項目が作業バージョン５０へコピーされるかまたは追加されるかもしれず、その場合、これらの項目は作業バージョン５０におけるデルタ項目として識別される。
【００４７】
ステップ２４０で、作業バージョン５０および比較ファイル７０内の項目の違いが識別される。上述のように、これらの違いもデルタ項目と呼ばれる。
【００４８】
ステップ２５０で、作業バージョン５０と比較ファイル７０により識別された項目との間で識別された違いが調整される。調整のため、ファイルシステム４０に更新を指示するためにデルタ項目が選択されてもよい。たとえば、デルタ項目が第１の作業項目５６の編集バージョンである場合、その選択は、ファイルシステム４０が第１の項目４４の編集バージョンを含むべきかオリジナルバージョンを含むべきかを特定する。デルタ項目が作業バージョン５０への追加項目（新規項目またはコピーされた項目など）である場合、その選択は、ファイルシステム４０がこれらの追加を保持すべきかどうかを判断する。デルタ項目が新しい位置へ移動された第１の作業項目５６である場合、その選択は、ファイルシステム４０が第１の項目４４についての新しい位置情報を使用すべきか、またはファイルシステムが古い位置を維持すべきかを判断する。デルタが作業バージョン５０から削除された第１の作業項目５６である場合、その選択は、ファイルシステム４０が第１の項目４４を削除すべきかどうかを特定する。同様の方法が、この出願の他のどこかで詳述されているように、動作の組合せを用いて実行されてもよい。
【００４９】
図３は、この発明の一実施例の下で、システム４０が他のコンピュータと共有されている場合に、作業バージョン５０をサーバ２０上のファイルシステム４０と同期させるための方法を詳述している。図３では、作業バージョン５０は図２の一実施例で説明されたように作成されている。ステップ３１０で、作業バージョン５０はファイルシステム４０からダウンロードされる。ステップ３２０で、比較ファイル７０が作成されて作業バージョン５０およびファイルシステム４０についてのメタデータ情報を記録する。ステップ３３０で、変更が作業バージョン５０へなされる。ステップ３４０で、作業バージョン５０と比較ファイル７０により識別された項目との違いが識別される。デルタ項目と呼ばれるこれらの項目は、ある時点で１つ以上の動作を介して移動、削除、編集、および追加された作業バージョン項目を含んでいてもよい。
【００５０】
ステップ３５０で、第１の端末１０のユーザがサーバ２０で同期化要求を行なう。この時点までに、作業バージョン５０は１つ以上の動作によりその元々の状態から修正されているかもしれない。
【００５１】
ステップ３６０で、第１の端末１０上のファイルシステム４０についての新しい情報が受取られる。作業バージョン５０が第１の端末１０上で作成された時点以降に、ファイルシステム４０が他の端末によってアクセスされ、変更されたかもしれない。したがって、ファイルシステム４０についての新しい情報は、他のユーザによりファイルシステム４０の項目へなされた変更を識別するかもしれない。一実現化例では、ファイルシステム４０についての情報はメタデータの形をしており、第１の端末１０のユーザによりダウンロードされた第１の部分４６の項目に独特のものであってもよい。メタデータ情報は、ダウンロードされた項目に対応するファイルシステム項目の位置情報を含んでいてもよい。加えて、ファイルシステム項目についての新しいメタデータ情報は時刻値を含んでいてもよい。たとえば、ファイルシステム４０のデルタ項目を判断するため、同期化が要求された時点でのファイルシステム項目の作成時刻値および修正時刻値が、第１の端末１０へ伝送されてもよい。
【００５２】
ステップ３７０で、更新ファイルシステム４０と作業バージョンが作成された時点でのファイルシステムとの違い、つまりデルタ項目が検出される。これらのデルタ項目は、ステップ３６０で受取られた新しいメタデータ情報が、ステップ３２０で比較ファイルが作成された際に比較ファイル７０により識別された項目と比較されることによって識別される。このステップで識別されたデルタ項目は、比較ファイル７０によって、またはファイルシステム４０について受取られた新しいメタデータ情報によって識別されてもよい。ファイルシステム４０についての新しいメタデータ情報によって識別されたデルタ項目は、他のユーザにより移動または編集された項目に対応してもよい。加えて、ファイルシステム４０のデルタ項目は、他のユーザにより第１の部分４６へ追加された項目を、新規項目または他の項目のコピーとして含んでいてもよい。比較ファイル７０によって識別されたデルタ項目は、作業バージョン５０が第１のコンピュータ１０上で作成された後でファイルシステム４０から削除された項目を含む。
【００５３】
ステップ３８０で、ステップ３４０およびステップ３７０で識別されたデルタ項目について選択が行なわれる。選択はユーザによって行なわれてもよい。選択は比較ファイル７０、作業バージョン５０およびファイルシステム４０のデルタ項目を特定してもよい。各デルタ項目について、選択はそのデルタ項目を残すべきか否かを判断してもよい。
【００５４】
ステップ３９０で、ステップ３４０および３７０で識別された違いの間の矛盾が検出され、解決される。たとえば、作業バージョン５０内のある項目が編集される場合があり、そのためそれは、作業バージョン５０が作成された時点での対応するファイルシステム項目と比較された場合に、デルタ項目として識別される。比較ファイル７０において識別されたそのファイルシステム項目はその後、サーバ２０へアクセスを有する別のコンピュータによって変更されるかもしれない。このため、２つのデルタ項目が、比較ファイル７０により識別された同じ項目に関連するかもしれない。一実施例では、第１の端末１０のユーザは、ファイルシステム４０に含めるために２つのデルタ項目のどちらを使用すべきかを選択できる。
【００５５】
また、これに代えて、デルタ項目間での矛盾の選択は、各デルタ項目が同期化されたファイルシステム４０へ取入れられるべきかどうかを選択する矛盾プロトコルを介して行なわれてもよい。
【００５６】
ステップ３９５で、選択されたデルタ項目を使用してファイルシステム４０が更新される。ステップ３４０および３７０で識別された各デルタ項目は、ファイルシステムの更新において省略または包含されてもよい。ユーザは矛盾するデルタ項目間で選択できる。
【００５７】
図４は、この発明の別の実施例の下でサーバ２０を動作させるための方法を示す。図４で説明されるような一実施例では、多数のユーザがサーバ２０上の共有されるファイルシステムへアクセスすると仮定される。説明のため、図１を参照する。第１の端末１０が同期化要求を行なっていると仮定する。ファイルシステム４０の一部はサーバ２０にアクセス可能な他のクライアント２５と共有されている。
【００５８】
ステップ４１０で、共有されるファイルシステム４０の一部が、第１の端末１０およびクライアント２５へ伝送される。各クライアントは別個に動作されて、共有されるファイルシステムの一部へアクセスし、それを受取ってもよい。
【００５９】
ステップ４２０で、同期化要求が第１の端末１０から受取られる。同期化要求は、ファイルシステム４０への変更を実施したいユーザと対応していてもよい。ユーザはまた、ファイルシステム４０の一部をダウンロードした他のユーザから入力されたあらゆる変更を受取ることを望んでもよい。
【００６０】
ステップ４３０で、ファイルシステム４０についての更新された情報が、同期化を要求しているクライアントへ伝送され得る。ファイルシステム４０は、そのクライアントがファイルシステムをダウンロードした時点から更新されて、クライアント２５から入力された変更を含んでいるかもしれない。
【００６１】
ステップ４４０で、サーバ２０は、作業バージョン５０に対して実行された動作の結果ファイルシステム４０へなすべき変更についての情報を受取る。この変更は、編集、追加（新規項目およびコピー）、削除、および移動などの動作の結果であり得る。
【００６２】
ステップ４５０で、ファイルシステム４０は、第１の端末１０（同期化要求を行なっているクライアント）から伝送された変更を用いて更新される。更新される変更は、特定のユーザによって、その端末のファイルシステム４０の作業バージョンに対する１つ以上の動作の実行後に決定される選択であってもよい。
【００６３】
ステップ４６０で、ファイルシステム４０へアクセスする他の端末から他に要求が行なわれているか、またはこれから行なわれるかどうかについて判断が下される。同期の要求が他にある場合、要求を行なっている次のクライアントに対してステップ４３０−４６０が繰返される。そのような実現化例の下では、共有されるファイルシステム４０へのアクセスを有する各クライアントは、それへ付加的な変更を行なう。同期化要求が行なわれると、他のユーザによって行なわれた変更がファイルシステム４０に取入れられる。したがってファイルシステム４０は、クライアントのうちの１つでの各同期化動作の後で変わり、そのため次のクライアントは以前に更新されたファイルシステム４０と同期している。
【００６４】
Ｄ．作業ファイルに対する動作の検出
図１の例示的な構成要素を参照すると、この発明の実施例は、作業バージョン５０の項目とファイルシステム４０の項目との同期化を、それらの項目が多数の異なる種類の動作を受けた後でも可能にする。作業バージョン５０に対して実行可能な動作は、主要動作または複合動作として特徴付けられてもよい。一実施例の下では、ある項目に対して実行された多数の動作は、１組の同等の複合動作のうちの１つとして検出され得る。
【００６５】
一実施例では、主要機能は編集、削除、コピー、移動および新規作成である。編集動作は、作業バージョン５０内の項目の内容が変更されることをもたらす。削除動作は、項目が作業バージョン５０から除去されるようにする。コピー動作は、作業バージョン５０内の項目の内容を、新規項目または追加項目として再作成する。移動動作は、作業バージョン５０のある位置に位置する項目が、新しい位置を与えられるようにする。位置は、名前、メモリアドレスおよび記憶装置によって規定されてもよい。このように、移動動作は、項目を新しいフォルダ位置へ移動させるため、項目の名前を変えるため、または項目を新しい記憶装置へ移動させるために実行されてもよい。新規作成動作は、付加的な項目を作業バージョン５０へ作成するために作業バージョン５０上で実行される。
【００６６】
複合動作は、作業バージョン項目を作成するため、および／または作業バージョン項目に影響を与えるために、作業バージョン５０上で実行される多数の動作の組合せである。この発明の実施例とは対照的に、以前の同期化システムは、主要動作のいくつかの実行を検知できるが、ある主要動作または動作の組合せを検知できない。この発明の実施例によって提供される利点により、作業バージョン５０の個々の項目に対して実行されたすべての主要動作、および多数の動作の組合せの検出および同期化が可能になる。
【００６７】
ファイル管理の動作を説明するための分析的表現が、フォーマットａＯｂを用いて説明されてもよい。ここで、大文字は動作を表わし、動作の前の項目は動作についての源を表わし、動作の後の項目は動作についての宛先を表わしている。主要動作を要約すると、以下のようになる。
【００６８】
Ｅｘ−−ファイルＸを編集
Ｄｘ−−ファイルＸを削除
Ｎｘ−−新規項目Ｘを作成
ｘＭｙ−−ＸをＹへ移動
ｘＣｙ−−ＸをＹとしてコピー
この発明の一実施例の下では、複合動作は、有限数の同等の複合動作へ削減および要約可能である。これらの要約を作成する際に用いられる原則のいくつかの例は、以下を含む。（１）項目が削除されている場合、その項目に対して実行された以前の動作は無視され得る。（２）ある項目の多数の移動は、最初の源から最後の宛先への１回の移動として扱われ得る。（３）動作の組合せに対して実行されたあらゆる移動動作は、他の動作に関して任意の順序で分析可能であり、そのため、移動が別の動作の前に実行されたと仮定することが、真の、かつ簡略化された結果を提供する。これらの原則を用いると、どの作業項目も９つの可能な動作または動作の組合せのうちの１つを受けると仮定することができ、ここで、動作の組合せは他の動作組合せの同等物である。作業バージョン５０の項目に対して実行される動作は、５つの主要動作のうちの１つとして、または４つの同等の複合動作のうちの１つとして、ファイルシステム４０のために再現可能である。一実施例では、４つの同等な動作の組合せは以下のとおりである。
【００６９】
ＥｘＭｙ−−Ｘを編集し、それをＹへ移動
（Ｎｘ）Ｃｙ−−Ｘを作成し、それをＹとしてコピー
Ｅ（（Ｎｘ）Ｃｙ）−−Ｘを作成し、それをＹとしてコピーし、Ｙを編集
Ｅ（ｘＣｙ）−−ＸをＹとしてコピーし、Ｙを編集
挿入句は、どの同等の複合動作においても、最初に実行されるべきである。
【００７０】
図５は、この発明の一実施例の下で、ユーザが作業バージョン５０をファイルシステム４０と同期させるよう要求した時点で作業バージョン５０内の項目について実行されている動作を検出するための方法を示す。図示されたような一実施例では、同期化の時点で作業バージョン５０内の各項目につき１０の可能な結果がある。つまり、変更なし、５つの主要動作、および４つの動作の同等の組合せである。
【００７１】
ステップ５０２で、ファイルシステム４０の一部から作業バージョン５０が作成される。ステップ５０４で、作業バージョン５０についての情報を含む比較ファイル７０が作成される。ステップ５０２および５０４は双方とも、任意の動作が作業バージョン項目について実行される前に（つまりｔ＝０で）起こると仮定される。後の時点で（つまりｔ＝ｆで）、ユーザがファイルシステムとの同期化を要求する。ｔ＝０とｔ＝ｆとの間から、ユーザは作業バージョン５０を変更する１つ以上の動作を実行してもよい。
【００７２】
同期化要求を受取ると、ステップ５０６で、比較ファイル７０により識別され位置が特定された項目が作業バージョン５０内の対応する項目と同じ位置を有しているかどうかについて、判断が行なわれる。最初に比較ファイル７０が作られた際に、各項目の位置が記録される。このため、ステップ５０６は、比較ファイル７０において識別された項目の位置がまだ特定可能かどうかを、その項目について最初に記録された位置情報を用いて判断する。
【００７３】
ステップ５０６が、比較ファイル７０により識別された項目はまだ作業バージョン５０内の同じ位置を有すると判断した場合、ステップ５０８が、その項目が比較ファイル７０に記録された後で編集されたかどうかに関する別の判断とともに続く。ステップ５０８がその項目は編集されなかったと判断した場合、次にステップ５１０が、その特定の項目は作業バージョン５０内で変更されなかったと結論付ける。ステップ５０８が特定の項目は編集されたと判断した場合、次にステップ５１２が、比較ファイル７０により識別された項目を、編集されたとして注記する。
【００７４】
ステップ５０６が、比較ファイル７０により識別された項目がその項目について記録された情報によって位置を特定されなかったと判断した場合、次にステップ５１４が、その項目が移動されたかどうかについての判断を行なう。判断がその項目は移動されなかったというものであれば、ステップ５１６がその項目を、削除されているとして注記する。判断がその項目は移動されたというものであれば、次にステップ５１８が作業バージョン５０内の項目の新しい位置を注記する。次にステップ５２０で、移動された項目が編集もされたかどうかについての判断が行われる。判断が肯定的であれば、ステップ５２２で項目は、移動され、かつ編集されたとしてマークされる。
【００７５】
ステップ５２４は、比較ファイル７０により識別された、チェックされるべき項目が他に残っているかどうかについての判断を行なう。前の項目が変更なしと判断された場合、ステップ５２４はステップ５１０に続く。前の項目が編集されているとして注記された場合、ステップ５２４はステップ５１２に続く。前の項目が削除されたとして注記された場合、ステップ５２４はステップ５１６に続く。前の項目が移動されたとして注記された場合、ステップ５２４はステップ５２０に続く。前の項目が移動され、かつ編集されたとして注記された場合、ステップ５２４はステップ５２２に続く。ステップ５２４が、比較ファイル７０により識別された項目が残っており、これらの項目はまだチェックされていないと判断した場合、次にステップ５２６が、比較ファイル７０により識別された、チェックされるべき次の項目を提供する。次の項目について、この方法がステップ５０６から始まって繰返される。
【００７６】
ステップ５２４が、比較ファイル７０により識別された、チェックされるべき項目が残っていないと判断した場合、ステップ５２８が、作業バージョン５０に未チェックのまま残っている項目があるかどうか判断する。未チェックの項目とは、ステップ５０６−５２４で比較ファイル項目がチェックされた結果、チェックされなかった作業バージョン項目である。作業バージョン５０に未チェックの項目がない場合、この方法は終了する。その他の場合、ステップ５３０で、作業バージョン５０内に残った項目がチェック済とマークされる。
【００７７】
ステップ５３２は、作業バージョン５０内の未チェック項目がコピーであるかどうかを判断する。判断が肯定的である場合、ステップ５３４はその項目をコピーとして注記する。ステップ５３６は、コピーされた項目が作業バージョン５０内で新規作成された別の項目からコピーされたかどうかを判断する。
【００７８】
ステップ５３６での判断が否定的である場合、ステップ５３８が、コピーされた項目が作成後に編集もされたかどうかをステップ５３８で判断する。ステップ５３８での判断が肯定的である場合、ステップ５４０が、コピーされ、かつ編集されたと注記する。
【００７９】
ステップ５３６での判断が肯定的である場合、ステップ５４２で、その項目は新規かつコピーされたとしてマークされる。言換えれば、その項目は、作業バージョン５０がファイルシステム４０から作成された後で、オリジナルとして作成された別の項目からコピーされているとして注記される。ステップ５４４で、新規かつコピーされた項目が編集もされたかどうかについて判断がなされる。ステップ５４４での判断が肯定的である場合、その項目は、新規でコピーされかつ編集されたとして注記される。
【００８０】
ステップ５３２で判断がその項目はコピーではないというものである場合、次にステップ５４８でその項目は新規であるとして注記される。
【００８１】
ステップ５５４は、未チェックとしてマークされた項目が作業バージョン５０内に残っているかどうかを判断する。ステップ５４４は、ステップ５３８での判断が否定的で項目はコピーされているとしてのみ注記される場合；項目はコピーされかつ編集されていると判断された場合にはステップ５４０；項目は新規のみであると判断された場合にはステップ５４８；ステップ５４４での判断が否定的で項目は新規かつコピーされていると判断された場合；および、項目は新規で編集されかつコピーされていると判断された場合にはステップ５４６というこれらのステップのうちの１つに続く。ステップ５５４が作業バージョン５０に未チェック項目が残っていると判断した場合、ステップ５５６が次の未チェック項目へ反復する。それからこの方法が次の項目について、ステップ５３２から始まって繰返される。ステップ５５４が作業バージョン５０に未チェック項目が残っていないと判断した場合、この方法は終了する。
【００８２】
図５の実施例によって示すように、同期化動作は、同期化される各項目について１０の可能な結果を検出し得る。各項目は、ダウンロード以降変更なしと判断されるかもしれない（ステップ５１０）。その他の場合、同期化される各項目は、作業バージョン５０が作成された後でユーザにより実行された１つ以上の動作の結果であると判断され得る。５つの主要動作、つまり、編集（ステップ５１２）、移動（ステップ５１８）、削除（ステップ５１６）、新規作成（ステップ５４８）、およびコピー作成（ステップ５３４）が検出される。加えて、４つの複合動作、つまり、移動かつ編集（ステップ５２２）、新規かつコピー（ステップ５４２）、新規、編集かつコピー（ステップ５４６）、およびコピーかつ編集（ステップ５４０）が検出される。
【００８３】
一実施例では、作業バージョン項目が削除され、次に同じ名前および位置情報で再作成される特別の場合が起こり得る。そのような項目は、ステップ５０６がその特別な場合用にチェックを導入していれば、移動された項目というよりもむしろ新規項目として識別され得る。具体的には、再作成された項目の作成時刻値などの識別情報を用いて、その項目がステップ５０６において削除および再作成の対象とならなかったことをチェックしてもよい。
【００８４】
図６−９は、この発明の実施例の下で、図５において実行された動作を検出するためのさらなる詳細を提供するフローチャートを示す。図６は、ある項目が移動または削除されたかどうかを判断するための方法である。この発明の一実施例の下では、図６は図５のステップ５１４−５１８に対応していてもよい。
【００８５】
ステップ６１０では、作業バージョン５０が第１の端末１０上に作成される際、作業バージョン５０内の各項目について第１の時刻値が記録される。一実施例では、第１の時刻値は項目の作成時刻に対応していてもよい。作成時刻は、ウィンドウズ（Ｒ）などのあるオペレーティングシステムの下で項目に付加される特性である。作成時刻は、第１の端末１０上で作成された項目についての時刻値を、その項目が別のコンピュータからダウンロードされる際に記録してもよい。このため、作業バージョン５０の項目がファイルシステム４０からダウンロードされる際に、第１の端末１０はその項目の作成時刻を記録してもよい。作成時刻は、１秒の１０００分の１まで、または数倍大きい規模まで有意であってもよい。
【００８６】
ステップ６２０で、作業バージョン５０の作成時に、各項目について位置情報が作成される。位置情報は、ファイルシステム４０上または作業バージョン５０上の項目の位置を特定するために使用可能なファイル経路または名前のセグメントに対応していてもよい。ステップ６１０および６２０の双方は、作業バージョン５０が作成されるときに対応して、および任意の動作が実行される前に、ｔ＝０で起こる。第１の時刻値および初期位置情報は、比較ファイル７０に位置してもよい。
【００８７】
ステップ６２０の後、同期化要求がなされたときまたはｔ＝ｆで、フローチャートは前進する。ステップ６３０は、最初に（ｔ＝０で）記録された位置情報がｔ＝ｆで作業バージョン５０内の項目の位置を特定するかどうかを判断する。ステップ６３０での判断が肯定的である場合、次にステップ６４０がその項目を移動されていないとして記録する。判断が否定的である場合、ステップ６５０が続く。ステップ６５０は、ｔ＝ｆでの作業バージョン５０内の任意の項目が、ステップ６１０で位置が未特定の項目について記録された時刻値と整合する、対応する第１の時刻値を有するかどうかを判断する。一実施例では、位置が未特定の項目の作成時刻に整合する作成時刻について、作業バージョン５０内の他の項目がチェックされてもよい。
【００８８】
作成時刻が１秒の１０００分の１またはさらに１００万分の１を超えて実行され得ることを仮定すると、行方不明の項目と同じ作成時刻を有する作業バージョン５０内の別の項目は、新しい位置にある、位置が未特定の項目であると仮定することができる。ステップ６５０での判断が肯定的である場合、ステップ６６０で、同じ時刻値を有する項目が移動されているとして記録される。ステップ６５０が、行方不明の項目の作成時刻を有する項目が作業バージョン５０内にないと判断した場合、ステップ６７０がその項目を、削除されているとして注記する。
【００８９】
図７は、この発明の一実施例の下で、作業バージョン５０内の任意の項目が編集動作の対象となったかどうかを判断するためのフローチャートである。図７により図示される方法は、図５のステップ５０８、５１０および５１２に対応していてもよい。ステップ７１０で、作業バージョン５０において第１の時刻値が識別される。時刻値はその項目の作成時刻に対応していてもよい。ステップ７２０で、第２の時刻値が同じ項目について、その項目の修正時刻に対応して識別される。前述のように、作成時刻および修正時刻は双方とも、ウィンドウズ（Ｒ）などのオペレーティングシステムによって自動的に記録される時刻値である。これらの時刻値は双方とも、１秒の１０００分の１まで、またはさらにはるかに大きな精度の桁数まで有意であってもよい。このため、図７によって示すような実施例については、作成時刻および修正時刻は双方とも、その項目に固有のものであると仮定される。
【００９０】
ステップ７３０で、修正時刻が作成時刻と異なるかどうかについての判断がなされる。項目がオリジナル、コピーまたはダウンロードのいずれかとして作成されると、一実施例は、作成時刻と修正時刻とは同じであると規定する。このため、作成時刻と修正時刻とが異なっている場合、ステップ７４０がその項目を編集されたとして注記する。その他の場合、ステップ７５０がその項目を編集されていないとして注記する。
【００９１】
作成時刻と修正時刻とが当初、必ずしも全く同じではないものの、互いの範囲内にあるということは可能である。一実施例は、修正時刻が作成時刻の範囲外にあるかどうかを判断するようチェックしてもよい。
【００９２】
図８は、この発明の一実施例の下で、編集かつ移動という複合動作を識別するための方法である。一実現化例では、図８によって示すような方法が、図５のステップ５１４、５１８、５２０および５２２のサブステップとして使用されてもよい。
【００９３】
ステップ８１０で、作業バージョンがファイルシステム４０からダウンロードされる際、作業バージョン５０内の各項目について多数の時刻値が記録される。他の実施例において注記されているように、記録された時刻値のうちの第１のものは作成時刻に対応する。作成時刻は、作業バージョン５０を使用しているコンピュータのオペレーティングシステムによって自動的に作成されてもよい。作成時刻および修正時刻は各々、比較ファイル７０に記録され、対応する項目に関連付けられてもよい。
【００９４】
ステップ８２０で、作業バージョン５０が作成される際に各項目について位置情報が記録される。位置情報は、作業バージョン５０内の項目の位置を特定し得るファイル経路のセグメントを含んでいてもよい。位置情報は項目の名前も含んでいてもよい。作業バージョン内の各項目についての初期位置情報が比較ファイル７０に記録されてもよい。
【００９５】
ステップ８３０で、最初に記録された位置情報がその後、作業バージョン５０内の対応する項目の位置を特定できるかどうかについて判断がなされる。位置情報が対応する項目の位置を特定する場合、ステップ８４０で、その項目は移動されていないとして記録される。最初に記録された位置情報が対応する項目の位置を特定しない場合には、ステップ８５０において別の判断がなされる。ステップ８５０は、作業バージョン５０内の別の項目が、位置が未特定の項目と同じ作成時刻を有するかどうかを判断する。この判断が否定的である場合には、ステップ８６０が、位置が未特定の項目を削除されたとして注記する。
【００９６】
その他の場合、ステップ８７０が、修正時刻がその項目についての作成時刻と整合するかどうかについての判断を行なう。ステップ８７０での判断が肯定的である場合、ステップ８８０で、その項目は移動のみされているとして注記される。ステップ８７０での判断が否定的である場合、ステップ８９０で、その項目は移動かつ編集されているとして注記される。
【００９７】
図９は、この発明の一実施例の下で、作業バージョン５０内の未チェック項目に対する１つ以上の動作を検出するためのプロセスを示す。図９によって示すプロセスで、未チェック項目に対して実行される動作は、新規作成、コピー、および編集からなる群からの少なくとも２つの動作を含んでいてもよい。一実施例では、図９によって示すようなプロセスが、図５のステップ５３２−５４６のサブステップを形成してもよい。
【００９８】
ステップ９１０−９８０は、同期化が要求された時点で、作業バージョン５０内の個々の未チェック項目に対して実行される。ステップ９１０−９８０は、作業バージョン５０上で実行されたかもしれない他の動作を検出するためにある他のステップが既に実行された、ということを仮定している。具体的には、９１０−９８０は作業バージョン５０内の未チェック項目に対して実行される。図５に示すように、未チェック項目とは、比較ファイル７０によって識別された項目が作業バージョン５０の項目と比較された後で残された項目である。未チェック項目はしたがって、作業バージョン５０が作成された後で作成されたと仮定され得る。このため、未チェック項目はコピーおよび／または新規項目である。未チェック項目は、作成された後で編集もされているかもしれない。
【００９９】
ステップ９１０で、作業バージョン内の各未チェック項目について時刻値が記録される。作業バージョン５０がダウンロードされた後で作成された項目については、作成時刻は、ユーザがその項目を作成し、それをダウンロードされた項目とともに作業バージョン５０に記憶させた時点に対応していてもよい。作成時刻は、作業バージョン５０内の各未チェック項目に、固有の識別子を提供すべきである。加えて、作業バージョン５０内の各項目についての修正時刻が記録される。修正時刻は、対応する項目が編集されるたびに変わる。しかしながら、項目が編集されない場合、修正時刻は、その同じ項目についての作成時刻と同じであるかまたは非常に近いものであるべきである。一実施例では、作業バージョン５０内の各項目についての作成時刻が、その項目について比較ファイル７０に記憶された作成時刻と整合する、ということが仮定できる。
【０１００】
ステップ９２０は、各未チェック項目についての修正時刻が比較ファイル７０に記憶された項目のうちの１つの修正時刻と整合するかどうかを判断する。一実施例は、コピーの修正時刻はそのオリジナルの修正時刻と同じであると規定する。この特徴は、第１の端末１０上で動作されるアプリケーションを通して実現されてもよい。一実施例では、第１の端末１０は、この属性または特徴を含むオペレーティングシステムを動作させる。そのようなオペレーティングシステムの一例はウィンドウズ（Ｒ）タイプのオペレーティングシステムである。
【０１０１】
判断が肯定的である場合、ステップ９３０が、その項目はもともとファイルシステム４０からダウンロードされた別の項目のコピーとして作成されているとして注記されると規定する。編集動作が修正時刻を変更しているため、その項目はその後編集されなかったと仮定され得る。判断が否定的である場合には、ステップ９４０が続く。
【０１０２】
ステップ９４０は、未チェック項目の修正時刻が作成時刻の前であるかどうかを判断する。修正時刻が作成時刻の後である場合、ステップ９５０が、その項目を別の項目のコピーとして注記する。これは、別の項目のコピーはオリジナルの修正時刻を保持するものの、作成時に新しい作成時刻を割当てられるためである。ステップ９４０は、コピーとして作成された項目がその後編集されたかどうかを判断するのには使用できない。なぜなら、それは修正時刻を作成時刻の後になるよう変更するからである。
【０１０３】
修正時刻が作成時刻の後である場合、ステップ９６０が、修正時刻が作成時刻と整合するかどうかについての判断を行なう。項目が新規としてまたは別の項目のコピーとして作成されている場合、修正時刻と作成時刻とは全く同じであるか、またはオペレーティングシステムの構成もしくは作業バージョン５０に影響を与える他のアプリケーションに依存して若干異なるかもしれない。ステップ９６０からの判断が肯定的である場合、ステップ９７０が、その項目は新規項目を作成する動作の結果として作成されていると規定する。
【０１０４】
ステップ９６０からの判断が否定的である場合、ステップ９８０が、その項目は編集され、新規でかつおそらくコピーでもあると規定する。このため、ステップ９８０は２つの可能性を提供する。この時点で、修正時刻と作成時刻とは、２つの可能性を区別するためには使用できない。２つの可能性間で解決するため、一実施例が、ステップ９８０で識別された全項目も内容整合の１つ以上のステップの対象となると規定してもよい。ファイルが新規でかつ編集されているか、または新規でコピーされかつ編集されているかを判断するために、アルゴリズムを用いて、ステップ９８０における全ファイルの内容を、作業バージョン５０内の新規であるとして識別された他のファイルの内容と比較してもよい。その前提は、後者が、新規であるとして識別された別の項目と同様の内容を有するであろうということであってもよい。
【０１０５】
Ｅ．ユーザインターフェイス
図１０は、この発明の一実施例で使用されるユーザインターフェイス１０００を示す。ユーザインターフェイス１０００により、ユーザは、異なるコンピュータ上で変更された同じ項目間で選択できるようになる。たとえば、図１を参照すると、第１の端末１０上のユーザは、ファイルシステム４０からダウンロードされた作業バージョン項目に対して動作を実行してもよい。ファイルシステム４０は共有されてもよいため、他のユーザがネットワークを通してそれにアクセスするかもしれない。他のユーザがファイルシステム４０内のある項目に対して動作を行なう一方、第１の端末１０上のユーザがその対応する作業バージョン項目に対して動作を行なうかもしれない。同期化要求が行なわれると、矛盾が提示されるかもしれない。作業バージョンの変更された項目に対応するファイルシステム項目は、ファイルシステム４０にアクセスした別のユーザによってすでに変更されている。
【０１０６】
この発明の一実施例により、同期化要求を行なうユーザは、ファイルシステム４０内の項目と対応する作業バージョン５０内の項目との間で選択できるようになる。また、一実施例により、要求を行なっているユーザは、他のコンピュータにより更新されたファイルシステム項目と、同期化要求を行なっているコンピュータ上の作業バージョン項目との間の矛盾をいかに解決するかを選択できるようになる。
【０１０７】
ユーザインターフェイス１０００は、第１の列１１１０と第２の列１１２０とを含む。第１の列は、第１のコンピュータ１０上のデルタ項目についての情報を提供する。第２の列１１２０は、ファイルシステム４０のデルタ項目についての情報を提供する。ファイルシステム４０のデルタ項目は、更新されたファイルシステムを比較ファイル７０と比較することによって識別されてもよい。第１の列１１１０の第１の部分１１２５は、作業バージョン５０のデルタ項目を識別する。第２の列１１２０の第１の部分は、他のユーザによって更新されたような、ファイルシステム４０のデルタ項目を識別する。第１の列１１１０の第２のセグメント１１１８は、作業バージョン５０のデルタ項目に対して実行された動作または同等の複合動作を識別する。同様に、第２の列１１２０の第２のセグメント１１２８は、更新されたファイルシステムのデルタ項目に対して実行された動作または同等の複合動作を識別する。第２のセグメント１１２８に列挙された動作は、共有されるファイルシステム４０へアクセスする他者により実行されたと仮定される。
【０１０８】
第１の列１１１０および第２の列１１２０に列挙された各デルタ項目について、ユーザは、変更を保持するかまたは項目をそのままファイルシステム４０上に維持するかを選択してもよい。第１の列１１０に列挙されたデルタ項目が第２の列１１２０のデルタ項目と矛盾する場合、ユーザはその矛盾をいかに解決するかを決定してもよい。たとえば、ファイルシステム４０内のある項目が作業バージョン５０上へダウンロードされ、その後作業バージョン５０内で動作される場合がある。ダウンロードされた同じ項目が別のコンピュータによってアクセスされ、異なる態様で動作されるかもしれない。同期化要求がなされると、その要求をしたコンピュータは矛盾を提示される。そのコンピュータのユーザはその矛盾を解決する能力を与えられてもよい。そのユーザはどのデルタ項目を保持すべきか選択し、ファイルシステム４０との調整時にその項目を使用することができる。
【０１０９】
Ｆ．ハードウェアの説明
図１１は、この発明の一実施例が実現され得るコンピュータシステム１１００を示すブロック図である。コンピュータシステム１１００は、情報を通信するためのバス１１０２または他の通信機構と、情報を処理するためにバス１１０２と結合されたプロセッサ１１０４とを含む。コンピュータシステム１１００は、プロセッサ１１０４により実行されるべき命令および情報を記憶するためにバス１１０２に結合された、ランダムアクセスメモリ（ＲＡＭ）または他のダイナミック記憶装置などのメインメモリ１１０６も含む。メインメモリ１１０６は、プロセッサ１１０４により実行されるべき命令の実行中に、一時的な変数または他の中間情報を記憶するためにも使用されてもよい。コンピュータシステム１１００はさらに、プロセッサ１１０４用の命令およびスタティック情報を記憶するためにバス１１０２に結合された読出専用メモリ（ＲＯＭ）１１０８または他のスタティック記憶装置を含む。磁気ディスクまたは光ディスクなどの記憶装置１１１０が、情報および命令を記憶するために提供され、バス１１０２へ結合されている。
【０１１０】
コンピュータシステム１１００は、バス１１０２を介して、情報をコンピュータユーザへ表示するための陰極線管（ＣＲＴ）などのディスプレイ１１１２へ結合されてもよい。英数字キーおよび他のキーを含む入力装置１１１４が、情報およびコマンド選択をプロセッサ１１０４へ通信するためにバス１１０２へ結合されている。ユーザ入力装置の別の種類はマウス、トラックボールまたはカーソル方向キーなどのカーソル制御１１１６であり、方向情報およびコマンド選択をプロセッサ１１０４へ通信し、ディスプレイ１１１２上のカーソルの動きを制御する。この入力装置は通常、２つの軸、つまり第１の軸（たとえばｘ）および第２の軸（たとえばｙ）において２つの自由度を有しており、それによりこの装置は平面における場所を特定することができる。
【０１１１】
この発明は、ここに記載された手法を実現するためのコンピュータシステム１１００の使用に関する。この発明の一実施例によれば、これらの手法は、プロセッサ１１０４がメインメモリ１１０６に含まれた１つ以上の命令の１つ以上の連続を実行するのに応答して、コンピュータシステム１１００により実施される。そのような命令は、記憶装置１１１０などの別のコンピュータ可読媒体からメインメモリ１１０６へ読込まれてもよい。メインメモリ１１０６に含まれる命令の連続の実行により、プロセッサ１１０４はここに記載されたプロセスステップを行なうようになる。代替的な実施例では、この発明を実施するために、ソフトウェア命令の代わりにまたはそれと組合せて、配線回路が使用されてもよい。このため、この発明の実施例は、配線回路とソフトウェアのどの特定の組合せにも限定されない。
【０１１２】
ここに使用されるような用語「コンピュータ可読媒体」は、実行用にプロセッサ１１０４へ命令を提供することに関与するあらゆる媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体および通信媒体を含むもののそれらに限定されない多くの形態をとってもよい。不揮発性媒体は、たとえば、記憶装置１１１０などの光ディスクまたは磁気ディスクを含む。揮発性媒体はメインメモリ１１０６などのダイナミックメモリを含む。通信媒体は、バス１１０２を構成する配線を含む同軸ケーブル、銅線および光ファイバを含む。通信媒体は、電波および赤外線データ通信中に発生するものなどの音波または光波の形もとり得る。
【０１１３】
コンピュータ可読媒体の通常の形態は、たとえば、フロッピー（Ｒ）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または他の磁気媒体、ＣＤ−ＲＯＭ（コンパクトディスクＲＯＭ）、他の光媒体、パンチカード、紙テープ、孔のパターンを有する他の物理的媒体、ＲＡＭ、ＰＲＯＭ（プラグラマブルＲＯＭ）、ＥＰＲＯＭ(消去可能プラグラマブルＲＯＭ)、フラッシュＥＰＲＯＭ、他のメモリチップまたはカートリッジ、以下に記載されるような搬送波、またはそこからコンピュータが読出可能なあらゆる媒体を含む。
【０１１４】
コンピュータ可読媒体のさまざまな形態は、実行用にプロセッサ１１０４へ１つ以上の命令の１つ以上の連続を搬送することに関与してもよい。たとえば、命令はまず遠隔コンピュータの磁気ディスクに載って搬送されてもよい。遠隔コンピュータは命令をそのダイナミックメモリへロードし、モデムを用いた電話回線を通して命令を送ることができる。コンピュータシステム１１００にとって局所的なモデムは、電話回線上のデータを受取り、赤外線送信機を用いてデータを赤外線信号に変換することができる。赤外線検出器は赤外線信号において搬送されたデータを受取可能であり、適切な回路がそのデータをバス１１０２上へ置くことができる。バス１１０２はデータをメインメモリ１１０６へ搬送し、そこからプロセッサ１１０４が命令を検索して実行する。メインメモリ１１０６によって受取られた命令は、プロセッサ１１０４による実行の前または後のいずれかで、随意に記憶装置１１１０上に記憶されてもよい。
【０１１５】
コンピュータシステム１１１０は、バス１１０２に結合された通信インターフェイス１１１８も含む。通信インターフェイス１１１８は、ローカルネットワーク１１２２へ接続されたネットワークリンク１１２０へ双方向データ通信結合を提供する。たとえば、通信インターフェイス１１１８は、データ通信接続を対応する種類の電話回線へ提供するデジタル総合サービス網（ＩＳＤＮ）カードまたはモデムであってもよい。別の例として、通信インターフェイス１１１８は、データ通信接続を互換性があるＬＡＮへ提供するローカルエリアネットワーク（ＬＡＮ）カードであってもよい。無線リンクも実現されてもよい。そのような実現化例では、通信インターフェイス１１１８は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気、電磁または光信号を送り、受取る。
【０１１６】
ネットワークリンク１１２０は通常、１つ以上のネットワークを通して他のデータ装置へデータ通信を提供する。たとえば、ネットワークリンク１１２０は、ホストコンピュータ１１２４へ、またはインターネットサービスプロバイダ（ＩＳＰ）１１２６により動作されるデータ装置へ、ローカルネットワーク１１２２を通して接続を提供してもよい。ＩＳＰ１１２６は次に、現在では一般に「インターネット」１１２８と呼ばれる全世界的パケットデータ通信ネットワークを通して、データ通信サービスを提供する。ローカルネットワーク１１２２およびインターネット１１２８は双方とも、デジタルデータストリームを搬送する電気、電磁または光信号を使用する。コンピュータシステム１１００へ、またはコンピュータシステム１１００からデジタルデータを搬送する、さまざまなネットワークを通る信号、および、ネットワークリンク１１２０上の、ならびに通信インターフェイス１１１８を通る信号は、情報を伝達する搬送波の例示的な形態である。
【０１１７】
コンピュータシステム１１００は、ネットワーク、ネットワークリンク１１２０および通信インターフェイス１１１８を通して、メッセージを送り、プログラムコードを含むデータを受取る。インターネットの例では、サーバ１１３０は、アプリケーションプログラムについての要求されたコードを、インターネット１１２８、ＩＳＰ１１２６、ローカルネットワーク１１２２、および通信インターフェイス１１１８を通して送信してもよい。
【０１１８】
受取られたコードは、それが受取られたときにプロセッサ１１０４によって実行されてもよく、および／または後の実行のために記憶装置１１１０または他の不揮発性記憶装置に記憶されてもよい。このように、コンピュータシステム１１００は、搬送波の形をしたアプリケーションコードを獲得し得る。
【０１１９】
Ｇ．代替的な実施例
ここに提供された実施例（たとえば図１を参照）は調整情報をメタデータ情報の形態であるとして説明しているが、他の実施例は、第１の部分４６（図１）内の項目についての内容の一部またはすべてを用いて、作業バージョン５０（図１）の項目への変更を識別してもよい。特に、ある項目が別のものからコピーされたかどうかを判断するために内容整合が用いられてもよい。知的なアルゴリズムを採用し、特定の種類の類似性を有する項目は互いのコピーであるという仮定を用いて、項目の内容間の類似性を検出してもよい。
【０１２０】
内容整合は、図９で説明されたようなプロセスでのさらなるステップとしても用いられてもよい。たとえば、ステップ９７０によって示すように同等の動作が検出された場合、その項目が新規で、編集されかつコピーもされているかどうかを判断することができないかもしれない。ある項目が、新規項目であった別の項目の編集されたコピーであるかどうかを判断するために、内容整合が必要とされるかもしれない。
【０１２１】
内容整合の別の使用は、項目の一方または双方の時刻値が別の項目と全く同じである場合に、決着をつけるものとしてである。ウィンドウズ（Ｒ）などの一般的なオペレーティングシステムに適用された時刻値の著しい桁（つまり１秒の１００万分の１）を考慮すると、２つの項目が全く同じ作成時刻または修正時刻を有する可能性はわずかしかない。しかしながら、異なる項目の時刻値間に完全な整合がある場合、この発明の実施例は、２つの項目間で解読するために内容整合を可能とする。
【０１２２】
この発明の実施例は異なるコンピュータ上で動作されるファイルの同期化について説明されてきたが、他の実施例がスタンドアローンまたは単一のコンピュータシステムへ適用され得ることが留意されるべきである。たとえば、この発明の一実施例についてのある用途は、多数の入力を含む１つのファイルを、アーカイブとして作成されたバックアップファイルと同期させることである。他のコンピュータシステムとの対話は必要とされないであろう。
【０１２３】
いくつかの用途では、ある同等の複合動作を検出せず、むしろより簡単な動作がある項目に対して行なわれたと仮定することがより有用であるかもしれない。また、これに代えて、同等の複合動作が検出されるものの、他の動作を用いてファイルシステム４０を更新してもよい。たとえば、この発明の一実施例は、（Ｎｘ）Ｃｙという同等の複合動作を、ＮｘかつＮｙとして扱ってもよい。このため、同期化の最中、ファイルシステム４０は２つの新規項目を追加するよう命令されるであろう。同様に、Ｅ（ｘＣｙ）という複合動作はＮｙとして扱われてもよく、この場合ファイルシステム４０は、ＸをＹへコピーして次にそれを編集するというよりもむしろ、１つの新しいファイルを作成するよう命令されるであろう。
【０１２４】
Ｈ．結論
前述の明細書で、この発明がその特定の実施例を参照して説明されてきた。しかしながら、さまざまな修正および変更がそれに対して、この発明のより幅広い精神および範囲から逸脱することなくなされることは明らかである。したがって、明細書および図面は限定的な意味というよりもむしろ例示的な意味において考えられるべきである。
【図面の簡単な説明】
【０１２５】
【図１】この発明の一実施例の下でのシステムアーキテクチャの概要を示す図である。
【図２】この発明の一実施例の下での、端末上での同期化を説明するフローチャートである。
【図３】この発明の一実施例の下での、システムの端末上での、多くのユーザにより共有されているファイルの同期化を説明するフローチャートである。
【図４】この発明の一実施例の下での、多数の端末上での共有されたファイルシステムの同期化を詳述するフローチャートである。
【図５】この発明の一実施例の下での、ファイルシステムの作業バージョンに対する多数の動作および複合動作の検出を詳述するフローチャートである。
【図６】同期化動作中に移動または削除された項目を識別するためのフローチャートである。
【図７】この発明の一実施例の下での、同期化動作中に編集された項目を識別するためのフローチャートである。
【図８】この発明の一実施例の下での、編集され、および／または移動され、もしくは削除された項目についての１つ以上の動作を識別するためのフローチャートである。
【図９】この発明の一実施例の下での、新規または他の項目からのコピーとして作成され、かつおそらく編集された項目を識別するためのフローチャートである。
【図１０】この発明の一実施例で使用されるユーザインターフェイスを示す図である。
【図１１】この発明の一実施例で使用されるハードウェアブロック図である。
【図１】
2005507100.tif 000003
【図２】
2005507100.tif 000004
【図３】
2005507100.tif 000005
【図４】
2005507100.tif 000006
【図５】
2005507100.tif 000007
【図６】
2005507100.tif 000008
【図７】
2005507100.tif 000009
【図８】
2005507100.tif 000010
【図９】
2005507100.tif 000011
【図１０】
2005507100.tif 000012
【図１１】
2005507100.tif 000013
【国際公開パンフレット】
2005507100.tif 000014
2005507100.tif 000015
2005507100.tif 000016
2005507100.tif 000017
2005507100.tif 000018
2005507100.tif 000019
2005507100.tif 000020
2005507100.tif 000021
2005507100.tif 000022
2005507100.tif 000023
2005507100.tif 000024
2005507100.tif 000025
2005507100.tif 000026
2005507100.tif 000027
2005507100.tif 000028
2005507100.tif 000029
2005507100.tif 000030
2005507100.tif 000031
2005507100.tif 000032
2005507100.tif 000033
2005507100.tif 000034
2005507100.tif 000035
2005507100.tif 000036
2005507100.tif 000037
2005507100.tif 000038
2005507100.tif 000039
2005507100.tif 000040
2005507100.tif 000041
2005507100.tif 000042
2005507100.tif 000043
2005507100.tif 000044
2005507100.tif 000045
2005507100.tif 000046
2005507100.tif 000047
2005507100.tif 000048
2005507100.tif 000049
2005507100.tif 000050
2005507100.tif 000051
2005507100.tif 000052
2005507100.tif 000053
2005507100.tif 000054
2005507100.tif 000055
2005507100.tif 000056
2005507100.tif 000057
2005507100.tif 000058
2005507100.tif 000059
2005507100.tif 000060
2005507100.tif 000061
2005507100.tif 000062
2005507100.tif 000063
2005507100.tif 000064
2005507100.tif 000065
2005507100.tif 000066
2005507100.tif 000067
2005507100.tif 000068
2005507100.tif 000069
2005507100.tif 000070
2005507100.tif 000071
【国際公開パンフレット（コレクトバージョン）】
2005507100.tif 000072
【国際調査報告】
2005507100.tif 000073
2005507100.tif 000074
2005507100.tif 000075