JPH06324928A - ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置 - Google Patents
ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置Info
- Publication number
- JPH06324928A JPH06324928A JP6099703A JP9970394A JPH06324928A JP H06324928 A JPH06324928 A JP H06324928A JP 6099703 A JP6099703 A JP 6099703A JP 9970394 A JP9970394 A JP 9970394A JP H06324928 A JPH06324928 A JP H06324928A
- Authority
- JP
- Japan
- Prior art keywords
- file
- version
- log
- site
- versions
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 分散ファイル環境において、あるサイトでフ
ァイルになされた作業が別のサイトで同じファイルにな
された作業により失われる危険なしにファイルを安全に
更新できるシステムを得る。 【構成】 ファイルが変更される都度更新されるログを
各サイトごとに作成する。あるサイトのログを他のサイ
トからのログと比較し、必要とされるファイルの最新の
バージョンが他のサイトに存在する際古いバージョンを
最新のバージョンで更新しても問題が発生しない時はそ
のサイトの古いバージョンを最新のバージョンで更新
し、競合バージョンがある時はユ−ザに知らせる。ログ
はファイル及びタイムスタンプに関してシステムの状態
を時々調べファイルの出現、消滅及び変更を示すログ項
目を追加して更新する。各サイトが調停に参加した最近
の時刻を示すログ項目を挿入し、全サイトの古い項目を
消去し不用の項目を一掃する。
ァイルになされた作業が別のサイトで同じファイルにな
された作業により失われる危険なしにファイルを安全に
更新できるシステムを得る。 【構成】 ファイルが変更される都度更新されるログを
各サイトごとに作成する。あるサイトのログを他のサイ
トからのログと比較し、必要とされるファイルの最新の
バージョンが他のサイトに存在する際古いバージョンを
最新のバージョンで更新しても問題が発生しない時はそ
のサイトの古いバージョンを最新のバージョンで更新
し、競合バージョンがある時はユ−ザに知らせる。ログ
はファイル及びタイムスタンプに関してシステムの状態
を時々調べファイルの出現、消滅及び変更を示すログ項
目を追加して更新する。各サイトが調停に参加した最近
の時刻を示すログ項目を挿入し、全サイトの古い項目を
消去し不用の項目を一掃する。
Description
【0001】
【産業上の利用分野】この発明は、分散ファイルシステ
ムに係り、特に、ファイルが2個所以上の離れた場所ま
たはサイトのコンピュータに記憶される分散ファイルシ
ステムにおいてファイルの異なるバージョンを調停する
ためのログ生成装置とファイルの異なるバージョンの調
停のための装置及び異なる場所にあるコンピュータファ
イルの異なるバージョンを調停するための装置に関する
ものである。
ムに係り、特に、ファイルが2個所以上の離れた場所ま
たはサイトのコンピュータに記憶される分散ファイルシ
ステムにおいてファイルの異なるバージョンを調停する
ためのログ生成装置とファイルの異なるバージョンの調
停のための装置及び異なる場所にあるコンピュータファ
イルの異なるバージョンを調停するための装置に関する
ものである。
【0002】
【従来の技術】コンピュータやフロッピーディスクの可
搬性のために、特にあるファイル、例えばラップトップ
コンピュータ内のファイルがデスクトップコンピュータ
や固定設置のワークステーション内の同じファイルと、
情報すなわちデータが一致しないことが起こるという問
題点がある。このような問題が生じるのは、仕事がいつ
も一定の場所でなく異なる場所で行われることが多いこ
とによる。固定設置のワークステーションで作成された
ファイルがそのファイルを含むディスクまたはディスケ
ットを他の場所に持って行き、そこで、そのファイルに
変更を加えることによって、自宅などの別の離れた場所
で変更されることは、よく起こることである。また、分
散ネットワークでも、複数のユーザがファイルを変更す
る場合には、同じファイルの複数のバージョンが存在し
得る。
搬性のために、特にあるファイル、例えばラップトップ
コンピュータ内のファイルがデスクトップコンピュータ
や固定設置のワークステーション内の同じファイルと、
情報すなわちデータが一致しないことが起こるという問
題点がある。このような問題が生じるのは、仕事がいつ
も一定の場所でなく異なる場所で行われることが多いこ
とによる。固定設置のワークステーションで作成された
ファイルがそのファイルを含むディスクまたはディスケ
ットを他の場所に持って行き、そこで、そのファイルに
変更を加えることによって、自宅などの別の離れた場所
で変更されることは、よく起こることである。また、分
散ネットワークでも、複数のユーザがファイルを変更す
る場合には、同じファイルの複数のバージョンが存在し
得る。
【0003】2つの場所、例えば自宅と仕事場において
作成されたファイルのバージョンが、同じように更新さ
れなかったために一致しないときに問題が生じる。異な
るバージョンの矛盾は、フロッピーディスクをある場所
から別の場所に移すのを忘れたときや、ディスクを完全
にロードするのを忘れたときなどに、意図せずに発生す
る。
作成されたファイルのバージョンが、同じように更新さ
れなかったために一致しないときに問題が生じる。異な
るバージョンの矛盾は、フロッピーディスクをある場所
から別の場所に移すのを忘れたときや、ディスクを完全
にロードするのを忘れたときなどに、意図せずに発生す
る。
【0004】2つの異なるサイトにおいて同じファイル
が作成または変更されるときに、そのファイルの異なる
バージョンの間に何らかの同期をとることが望ましい。
例えば、2つの異なるサイトに1つのファイルの同じバ
ージョンがあるとき、一時に1つのバージョンだけにし
かアクセスできないようにすることが可能である。しか
しながら、2つのサイトで1つのファイルの複数のバー
ジョンが作成されるときは、両方のファイルまたはどち
らか1つのファイルを正しく更新し得るように、それら
のファイルを更新または調停できることが重要である。
が作成または変更されるときに、そのファイルの異なる
バージョンの間に何らかの同期をとることが望ましい。
例えば、2つの異なるサイトに1つのファイルの同じバ
ージョンがあるとき、一時に1つのバージョンだけにし
かアクセスできないようにすることが可能である。しか
しながら、2つのサイトで1つのファイルの複数のバー
ジョンが作成されるときは、両方のファイルまたはどち
らか1つのファイルを正しく更新し得るように、それら
のファイルを更新または調停できることが重要である。
【0005】従来は、システムが異なるサイトにおいて
ファイルが更新された日時を比較し、最近のバージョン
を自動的に選択し、このバージョンを両方のサイトの適
宜なファイルにコピーしていた。このようなシステムに
は、ノベル(Novell)社のネットウェア(Netware)、サ
ン マイクロシステムズ社のネットワーク ファイルシ
ステム(NFS)あるいはアンドリューファイルシステム
(Andrew File System)などがある。
ファイルが更新された日時を比較し、最近のバージョン
を自動的に選択し、このバージョンを両方のサイトの適
宜なファイルにコピーしていた。このようなシステムに
は、ノベル(Novell)社のネットウェア(Netware)、サ
ン マイクロシステムズ社のネットワーク ファイルシ
ステム(NFS)あるいはアンドリューファイルシステム
(Andrew File System)などがある。
【0006】
【発明が解決しようとする課題】しかしながら、上述し
たシステムは、すべてそれらの自動的な更新方法にそれ
ぞれ問題がある。ファイルが変更されると直ちにそれら
のファイルを自動的に更新することが、NFS、アンドリ
ューファイルシステム(Andrew File System)、ネット
ウェアの特徴であるが、この特徴は、ファイルの新しい
バージョンが送信されるときに、大きな性能上の問題に
なる。また、、すべての更新がネットワーク全体に配信
されるので、未完了の作業内容がそのシステム全体に曝
露されてしまう。このことは、この自動化された方法の
ために引き起こされる困惑すべきことでもある。その分
散システムに接続されている者に新しい未編集のデータ
や変更が直ちに知られてしまう。
たシステムは、すべてそれらの自動的な更新方法にそれ
ぞれ問題がある。ファイルが変更されると直ちにそれら
のファイルを自動的に更新することが、NFS、アンドリ
ューファイルシステム(Andrew File System)、ネット
ウェアの特徴であるが、この特徴は、ファイルの新しい
バージョンが送信されるときに、大きな性能上の問題に
なる。また、、すべての更新がネットワーク全体に配信
されるので、未完了の作業内容がそのシステム全体に曝
露されてしまう。このことは、この自動化された方法の
ために引き起こされる困惑すべきことでもある。その分
散システムに接続されている者に新しい未編集のデータ
や変更が直ちに知られてしまう。
【0007】ソフトウェアを書いているときやドキュメ
ントを編集しているとき等のように、1つのファイルに
対して複数の利用者または寄与者がいるときは、どこか
の段階で、どのような更新または調停が許されるかにつ
いてユーザの各々に制約があるようにするために、同じ
ファイルのすべてのユーザに他のユーザがしていること
について警告することは非常に重要である。自分のソフ
トウェアが知らないうちに他の誰かによって編集される
ことは、ソフトウェアの書手にとって、とりわけ困るこ
とである。同様に、ワードプロセッサを使って仕事をし
ている者にとって、ユーザの一人に他の者に知らせるこ
となく作成中の文書を編集されることは、同じぐらいに
面白くないことである。
ントを編集しているとき等のように、1つのファイルに
対して複数の利用者または寄与者がいるときは、どこか
の段階で、どのような更新または調停が許されるかにつ
いてユーザの各々に制約があるようにするために、同じ
ファイルのすべてのユーザに他のユーザがしていること
について警告することは非常に重要である。自分のソフ
トウェアが知らないうちに他の誰かによって編集される
ことは、ソフトウェアの書手にとって、とりわけ困るこ
とである。同様に、ワードプロセッサを使って仕事をし
ている者にとって、ユーザの一人に他の者に知らせるこ
となく作成中の文書を編集されることは、同じぐらいに
面白くないことである。
【0008】より明確にいえば、NFS、アンドリュー、
アップルシェアー(Apple Share)、ノベル、及び研究
目的のシステムのソフトウエアであるコーダ(Coda)や
フィーカス(Ficus) などによって代表されるような分
散ファイルシステム技術に存在するのは、異なる場所に
ファイルの複数のバージョンができる問題に対する不十
分な解決策であるということである。
アップルシェアー(Apple Share)、ノベル、及び研究
目的のシステムのソフトウエアであるコーダ(Coda)や
フィーカス(Ficus) などによって代表されるような分
散ファイルシステム技術に存在するのは、異なる場所に
ファイルの複数のバージョンができる問題に対する不十
分な解決策であるということである。
【0009】これらのシステムは、どれもみな、単一の
グローバルなファイルシステムであるかのような印象を
与える。単一のグローバルなファイルシステムを持つ利
点は、自動的な更新、共用、及びよく知られたタイムシ
ェアリングシステム的な意味あいなどである。 しかし
ながら、このようなシステムの問題点は、切り離された
時に機能しなくなるかまたは機能が低下すること、性能
が予測できないこと、更新がユーザのではなくシステム
の都合のよい時に行われること、変更されたオペレーテ
ィングシステムが必要であり、殆んどの場合、1つの売
り手から買わなければならないことなどである。
グローバルなファイルシステムであるかのような印象を
与える。単一のグローバルなファイルシステムを持つ利
点は、自動的な更新、共用、及びよく知られたタイムシ
ェアリングシステム的な意味あいなどである。 しかし
ながら、このようなシステムの問題点は、切り離された
時に機能しなくなるかまたは機能が低下すること、性能
が予測できないこと、更新がユーザのではなくシステム
の都合のよい時に行われること、変更されたオペレーテ
ィングシステムが必要であり、殆んどの場合、1つの売
り手から買わなければならないことなどである。
【0010】ファイルの複数のバージョンの問題に対す
るもう1つの不十分な解決策は、ディスケット/テー
プ、E−メイル(電子メイル)、ラップ−リンク(Lap-
Link)及び種々のファイル転送プロトコルなどによる意
図的な行為を必要とするファイル転送技術に見られる。
これらのシステムが行おうとしていることは、ファイル
をコピーして、それらのコピーを手で持って行くか送信
することである。
るもう1つの不十分な解決策は、ディスケット/テー
プ、E−メイル(電子メイル)、ラップ−リンク(Lap-
Link)及び種々のファイル転送プロトコルなどによる意
図的な行為を必要とするファイル転送技術に見られる。
これらのシステムが行おうとしていることは、ファイル
をコピーして、それらのコピーを手で持って行くか送信
することである。
【0011】その利点は、完全にユーザの意のままにな
ること、転送に融通がきくこと、異なるシステム間での
ファイルのやり取りが可能であることなどである。欠点
は、操作が複雑で間違いがえやすいため、必要なデータ
に誤って上書することがあること、内容が相違競合する
バージョンの“マージ(併合)”ができないことなどで
ある。
ること、転送に融通がきくこと、異なるシステム間での
ファイルのやり取りが可能であることなどである。欠点
は、操作が複雑で間違いがえやすいため、必要なデータ
に誤って上書することがあること、内容が相違競合する
バージョンの“マージ(併合)”ができないことなどで
ある。
【0012】これらのすべてのシステムでは、どれかの
コンピュータにあるファイルの最も新しいバージョンが
自動的に他のコンピュータにコピーされる。そのため、
現在の一般的なプログラムは、日付及び時刻によって、
すなわち“タイムスタンピング”と呼ばれる技術によっ
て、どのファイルが正しいかを決定しようとする。しか
しながら、これらの方式のシステムは、フェイルセイフ
とは到底言い難い。例えば、ラップトップコンピュータ
において、あるファイルを消去したいとしよう。ラップ
トップコンピュータにおいて、そのファイルを消去する
ことは、固定設置のワークステーションにおいてもその
ファイルを消去することにはならず、むしろ、そのワー
クステーションで見つかった古いファイルを復活させる
ことになるかも知れない。このように自動化されたシス
テムは、誤りが発生しやすい。
コンピュータにあるファイルの最も新しいバージョンが
自動的に他のコンピュータにコピーされる。そのため、
現在の一般的なプログラムは、日付及び時刻によって、
すなわち“タイムスタンピング”と呼ばれる技術によっ
て、どのファイルが正しいかを決定しようとする。しか
しながら、これらの方式のシステムは、フェイルセイフ
とは到底言い難い。例えば、ラップトップコンピュータ
において、あるファイルを消去したいとしよう。ラップ
トップコンピュータにおいて、そのファイルを消去する
ことは、固定設置のワークステーションにおいてもその
ファイルを消去することにはならず、むしろ、そのワー
クステーションで見つかった古いファイルを復活させる
ことになるかも知れない。このように自動化されたシス
テムは、誤りが発生しやすい。
【0013】さらに、一般的に言えば、複数の場所にお
いてファイル上で何かの仕事をしているとき、どのファ
イルも他のファイルに取って代われないことがあり得
る。このような場合には、タイムスタンプ(時刻印)を
利用した調停は、必要な情報に上書きすることになる可
能性がある。その結果、古いバージョンに具現されてい
たユーザの仕事が何の警告もなしに失われてしまうこと
が起こり得る。ファイルのバージョンの間の調停のため
にコンピュータを接続するのを忘れたときにだけ、この
ことが発生する可能性もある。
いてファイル上で何かの仕事をしているとき、どのファ
イルも他のファイルに取って代われないことがあり得
る。このような場合には、タイムスタンプ(時刻印)を
利用した調停は、必要な情報に上書きすることになる可
能性がある。その結果、古いバージョンに具現されてい
たユーザの仕事が何の警告もなしに失われてしまうこと
が起こり得る。ファイルのバージョンの間の調停のため
にコンピュータを接続するのを忘れたときにだけ、この
ことが発生する可能性もある。
【0014】この発明は上述した問題点を解消するため
になされたもので、分散ファイル環境において、あるサ
イトでファイルになされた作業が別のサイトで同じファ
イルになされた作業のために失われる危険なしにファイ
ルを安全に更新できるファイルの異なるバージョンを調
停するためのログ生成装置とファイルの異なるバージョ
ンの調停のための装置及び異なる場所にあるコンピュー
タファイルの異なるバージョンを調停するための装置を
得ることを目的とする。
になされたもので、分散ファイル環境において、あるサ
イトでファイルになされた作業が別のサイトで同じファ
イルになされた作業のために失われる危険なしにファイ
ルを安全に更新できるファイルの異なるバージョンを調
停するためのログ生成装置とファイルの異なるバージョ
ンの調停のための装置及び異なる場所にあるコンピュー
タファイルの異なるバージョンを調停するための装置を
得ることを目的とする。
【0015】
【課題を解決するための手段】この発明の請求項1に係
るログ生成装置は、ファイルシステムの動作のログを生
成するための装置であって、上記ファイルシステム上の
ファイルの現在の状態を検査するための手段と、上記検
査手段に応答動作してファイルの作成、変更、削除を示
すログ項目を生成するための手段を含むものである。
るログ生成装置は、ファイルシステムの動作のログを生
成するための装置であって、上記ファイルシステム上の
ファイルの現在の状態を検査するための手段と、上記検
査手段に応答動作してファイルの作成、変更、削除を示
すログ項目を生成するための手段を含むものである。
【0016】また、請求項2に係るログ生成装置は、請
求項1の装置であって、上記検査手段は、時々上記検査
を行うための手段を含むものである。
求項1の装置であって、上記検査手段は、時々上記検査
を行うための手段を含むものである。
【0017】また、請求項3に係るファイルの異なるバ
ージョンを調停するための装置は、異なる場所にある1
つのファイルの異なるバージョンを調停するための装置
であって、ファイルが変更された場所の各々においてフ
ァイルシステムの動作のログ項目を生成するための手段
と、いくつかのただしすべてではない場所における動作
を見分けるために異なる場所におけるファイルシステム
の動作のログを比較する手段、ファイルシステムの動作
のログを比較することによって各場所のバージョンを揃
えるために必要な動作を決定するための手段、及び上記
各場所のバージョンを揃えようとする動作によりファイ
ルの情報が失われる可能性があるかどうかを判断するた
めの手段を含むものである。
ージョンを調停するための装置は、異なる場所にある1
つのファイルの異なるバージョンを調停するための装置
であって、ファイルが変更された場所の各々においてフ
ァイルシステムの動作のログ項目を生成するための手段
と、いくつかのただしすべてではない場所における動作
を見分けるために異なる場所におけるファイルシステム
の動作のログを比較する手段、ファイルシステムの動作
のログを比較することによって各場所のバージョンを揃
えるために必要な動作を決定するための手段、及び上記
各場所のバージョンを揃えようとする動作によりファイ
ルの情報が失われる可能性があるかどうかを判断するた
めの手段を含むものである。
【0018】また、請求項4に係るファイルの異なるバ
ージョンを調停するための装置は、請求項3の装置であ
って、さらに、ファイルをコピーまたは消去することに
よって、上記決定されたファイルのバージョンを揃える
ための動作を実行するための手段を含むものである。
ージョンを調停するための装置は、請求項3の装置であ
って、さらに、ファイルをコピーまたは消去することに
よって、上記決定されたファイルのバージョンを揃える
ための動作を実行するための手段を含むものである。
【0019】また、請求項5に係るファイルの異なるバ
ージョンを調停するための装置は、請求項3の装置であ
って、上記ログ中のある項目の直後に同じファイルのた
めの項目が存在し、かつ上記後の項目が他のすべての場
所にも存在するときに、上記前の項目を削除することに
よって不用になったログ項目を削除するための手段を含
むものである。
ージョンを調停するための装置は、請求項3の装置であ
って、上記ログ中のある項目の直後に同じファイルのた
めの項目が存在し、かつ上記後の項目が他のすべての場
所にも存在するときに、上記前の項目を削除することに
よって不用になったログ項目を削除するための手段を含
むものである。
【0020】また、請求項6に係るファイルの異なるバ
ージョンを調停するための装置は、請求項4の装置であ
って、さらに、上記各場所のバージョンを揃えようとす
る動作によりファイルの情報が失われる可能性があると
き、そのことをユーザに知らせるための手段を含むもの
である。
ージョンを調停するための装置は、請求項4の装置であ
って、さらに、上記各場所のバージョンを揃えようとす
る動作によりファイルの情報が失われる可能性があると
き、そのことをユーザに知らせるための手段を含むもの
である。
【0021】また、請求項7に係るファイルの異なるバ
ージョンを調停するための装置は、請求項6の装置であ
って、さらに異なる場所のログにバージョンの更新操作
を行うと情報の損失が発生する可能性がある相違が見つ
かったとき、そのことをユーザに知らせるための手段を
含むものである。
ージョンを調停するための装置は、請求項6の装置であ
って、さらに異なる場所のログにバージョンの更新操作
を行うと情報の損失が発生する可能性がある相違が見つ
かったとき、そのことをユーザに知らせるための手段を
含むものである。
【0022】また、請求項8に係るファイルの異なるバ
ージョンを調停するための装置は、請求項6の装置であ
って、さらに不用になったログ項目を削除するための手
段を含むものである。
ージョンを調停するための装置は、請求項6の装置であ
って、さらに不用になったログ項目を削除するための手
段を含むものである。
【0023】また、請求項9に係るファイルの異なるバ
ージョンを調停するための装置は、請求項6の装置であ
って、さらにある場所においてファイルの調停を行った
とき、調停の発生及びその日時を他のすべての場所に伝
達するための手段を含むものである。
ージョンを調停するための装置は、請求項6の装置であ
って、さらにある場所においてファイルの調停を行った
とき、調停の発生及びその日時を他のすべての場所に伝
達するための手段を含むものである。
【0024】さらに、請求項10に係る異なる場所にあ
るコンピュータファイルの異なるバージョンを調停する
ための装置は、少なくとも同じファイルの1つのバージ
ョンが各場所において変更された日時に対応する項目を
含むログを生成するための手段、ある場所のログの項目
を、他の場所のログの項目と比較し、それらの間の相違
を調べるための手段、上記2つのログに相違がないか、
または上記2つのログの相違がバージョンの更新操作を
行うと情報の損失が発生しないような相違であるとき、
上記ある場所において上記ファイルのバージョンを自動
的に更新するための手段、及び上記2つのログの間の相
違がバージョンの更新操作により情報の損失が発生する
可能性を示す相違であるとき、上記自動的な更新を停止
させるための手段を含むものである。
るコンピュータファイルの異なるバージョンを調停する
ための装置は、少なくとも同じファイルの1つのバージ
ョンが各場所において変更された日時に対応する項目を
含むログを生成するための手段、ある場所のログの項目
を、他の場所のログの項目と比較し、それらの間の相違
を調べるための手段、上記2つのログに相違がないか、
または上記2つのログの相違がバージョンの更新操作を
行うと情報の損失が発生しないような相違であるとき、
上記ある場所において上記ファイルのバージョンを自動
的に更新するための手段、及び上記2つのログの間の相
違がバージョンの更新操作により情報の損失が発生する
可能性を示す相違であるとき、上記自動的な更新を停止
させるための手段を含むものである。
【0025】
【作用】この発明の請求項1に係るログ生成装置におい
ては、検査手段によりファイルシステム上のファイルの
現在の状態を検査し、その検査手段に応答動作してファ
イルの作成、変更、削除を示すログ項目を生成すること
により、分散ファイル環境において、あるサイトでなさ
れたあるファイルへの作業が他のサイトでそのファイル
への作業の結果失われてしまうといった危険を犯すこと
なく安全にファイルを更新するために、ファイルが修正
された後に各々のサイトで更新されるログを用いること
が可能になる。
ては、検査手段によりファイルシステム上のファイルの
現在の状態を検査し、その検査手段に応答動作してファ
イルの作成、変更、削除を示すログ項目を生成すること
により、分散ファイル環境において、あるサイトでなさ
れたあるファイルへの作業が他のサイトでそのファイル
への作業の結果失われてしまうといった危険を犯すこと
なく安全にファイルを更新するために、ファイルが修正
された後に各々のサイトで更新されるログを用いること
が可能になる。
【0026】また、請求項2に係るログ生成装置におい
ては、請求項1の装置であって、上記検査手段は、時々
上記検査を行うための手段を含むことにより、必要にな
るファイルに対して更新を可能にする。
ては、請求項1の装置であって、上記検査手段は、時々
上記検査を行うための手段を含むことにより、必要にな
るファイルに対して更新を可能にする。
【0027】また、請求項3に係るファイルの異なるバ
ージョンを調停するための装置においては、異なる場所
にある1つのファイルの異なるバージョンを調停するた
めの装置において、ファイルが変更された場所の各々に
おいてファイルシステムの動作のログ項目を生成し、い
くつかのただしすべてではない場所における動作を見分
けるために異なる場所におけるファイルシステムの動作
のログを比較し、ファイルシステムの動作のログを比較
することによって各場所のバージョンを揃えるために必
要な動作を決定し、上記各場所のバージョンを揃えよう
とする動作によりファイルの情報が失われる可能性があ
るかどうかを判断することにより、いかなるサイトでも
ファイルが用いられる以前に他のサイトからのログと比
較されるため、異なるサイト上に矛盾するジャーナルの
ファイルが存在するならば利用者がすぐに変更すること
によって、新たなジャーナルのファイルは、古いジャー
ナルのサイトへ自動的にかつ安全に伝達されるのを可能
にする。
ージョンを調停するための装置においては、異なる場所
にある1つのファイルの異なるバージョンを調停するた
めの装置において、ファイルが変更された場所の各々に
おいてファイルシステムの動作のログ項目を生成し、い
くつかのただしすべてではない場所における動作を見分
けるために異なる場所におけるファイルシステムの動作
のログを比較し、ファイルシステムの動作のログを比較
することによって各場所のバージョンを揃えるために必
要な動作を決定し、上記各場所のバージョンを揃えよう
とする動作によりファイルの情報が失われる可能性があ
るかどうかを判断することにより、いかなるサイトでも
ファイルが用いられる以前に他のサイトからのログと比
較されるため、異なるサイト上に矛盾するジャーナルの
ファイルが存在するならば利用者がすぐに変更すること
によって、新たなジャーナルのファイルは、古いジャー
ナルのサイトへ自動的にかつ安全に伝達されるのを可能
にする。
【0028】また、請求項4に係るファイルの異なるバ
ージョンを調停するための装置においては、請求項3の
装置において、さらに、ファイルをコピーまたは消去す
ることによって、上記決定されたファイルのバージョン
を揃えるための動作を実行するための手段を含むことに
より、競合の存在が示されないファイルはコピーされ、
必要とされないファイルは消去されて、調停が行われ
る。
ージョンを調停するための装置においては、請求項3の
装置において、さらに、ファイルをコピーまたは消去す
ることによって、上記決定されたファイルのバージョン
を揃えるための動作を実行するための手段を含むことに
より、競合の存在が示されないファイルはコピーされ、
必要とされないファイルは消去されて、調停が行われ
る。
【0029】また、請求項5に係るファイルの異なるバ
ージョンを調停するための装置においては、請求項3の
装置において、上記ログ中のある項目の直後に同じファ
イルのための項目が存在し、かつ上記後の項目が他のす
べての場所にも存在するときに、上記前の項目を削除す
ることによって不用になったログ項目を削除するための
手段を含むことにより、不用になった古いログ項目を一
掃する。
ージョンを調停するための装置においては、請求項3の
装置において、上記ログ中のある項目の直後に同じファ
イルのための項目が存在し、かつ上記後の項目が他のす
べての場所にも存在するときに、上記前の項目を削除す
ることによって不用になったログ項目を削除するための
手段を含むことにより、不用になった古いログ項目を一
掃する。
【0030】また、請求項6に係るファイルの異なるバ
ージョンを調停するための装置においては、請求項4の
装置において、さらに、上記各場所のバージョンを揃え
ようとする動作によりファイルの情報が失われる可能性
があるとき、そのことをユーザに知らせるための手段を
含むことにより、警告を発することが可能になる。
ージョンを調停するための装置においては、請求項4の
装置において、さらに、上記各場所のバージョンを揃え
ようとする動作によりファイルの情報が失われる可能性
があるとき、そのことをユーザに知らせるための手段を
含むことにより、警告を発することが可能になる。
【0031】また、請求項7に係るファイルの異なるバ
ージョンを調停するための装置においては、請求項6の
装置において、さらに異なる場所のログにバージョンの
更新操作を行うと情報の損失が発生する可能性がある相
違が見つかったとき、そのことをユーザに知らせるため
の手段を含むことにより、ファイルの変更操作を促す。
ージョンを調停するための装置においては、請求項6の
装置において、さらに異なる場所のログにバージョンの
更新操作を行うと情報の損失が発生する可能性がある相
違が見つかったとき、そのことをユーザに知らせるため
の手段を含むことにより、ファイルの変更操作を促す。
【0032】また、請求項8に係るファイルの異なるバ
ージョンを調停するための装置においては、請求項6の
装置において、さらに不用になったログ項目を削除する
ための手段を含むことにより、不用になったログ項目を
一掃する。
ージョンを調停するための装置においては、請求項6の
装置において、さらに不用になったログ項目を削除する
ための手段を含むことにより、不用になったログ項目を
一掃する。
【0033】また、請求項9に係るファイルの異なるバ
ージョンを調停するための装置においては、請求項6の
装置において、さらにある場所においてファイルの調停
を行ったとき、調停の発生及びその日時を他のすべての
場所に伝達するための手段を含むことにより、
ージョンを調停するための装置においては、請求項6の
装置において、さらにある場所においてファイルの調停
を行ったとき、調停の発生及びその日時を他のすべての
場所に伝達するための手段を含むことにより、
【0034】さらに、請求項10に係る異なる場所にあ
るコンピュータファイルの異なるバージョンを調停する
ための装置においては、少なくとも同じファイルの1つ
のバージョンが各場所において変更された日時に対応す
る項目を含むログを生成し、ある場所のログの項目を、
他の場所のログの項目と比較し、それらの間の相違を調
べ、上記2つのログに相違がないか、または上記2つの
ログの相違がバージョンの更新操作を行うと情報の損失
が発生しないような相違であるとき、上記ある場所にお
いて上記ファイルのバージョンを自動的に更新すると共
に、上記2つのログの間の相違がバージョンの更新操作
により情報の損失が発生する可能性を示す相違であると
き、上記自動的な更新を停止させることにより、異なる
場所にあるコンピュータファイルの異なるバージョンの
調停がなされる。
るコンピュータファイルの異なるバージョンを調停する
ための装置においては、少なくとも同じファイルの1つ
のバージョンが各場所において変更された日時に対応す
る項目を含むログを生成し、ある場所のログの項目を、
他の場所のログの項目と比較し、それらの間の相違を調
べ、上記2つのログに相違がないか、または上記2つの
ログの相違がバージョンの更新操作を行うと情報の損失
が発生しないような相違であるとき、上記ある場所にお
いて上記ファイルのバージョンを自動的に更新すると共
に、上記2つのログの間の相違がバージョンの更新操作
により情報の損失が発生する可能性を示す相違であると
き、上記自動的な更新を停止させることにより、異なる
場所にあるコンピュータファイルの異なるバージョンの
調停がなされる。
【0035】
【実施例】以下、この発明を図示実施例に基づいて説明
する。図1は仕事場のコンピュータから離れた場所、例
えば自宅内へのファイルのバージョンの移動を示す説明
図である。この典型的な仕事の環境を示す図1におい
て、ファイルのバージョン#1がオフィス12の固定設
置端末10において作成され、この固定設置端末10に
おいて作成されたバージョンは記憶装置14に記憶され
るとする。そして、このファイルの情報が、例えばフロ
ッピーディスケット16で自宅のサイト19のコンピュ
ータ18に移されたとする。この移されたファイルは編
集が可能であり、変更されてバージョン#2になり、記
憶装置20に記憶されたとする。
する。図1は仕事場のコンピュータから離れた場所、例
えば自宅内へのファイルのバージョンの移動を示す説明
図である。この典型的な仕事の環境を示す図1におい
て、ファイルのバージョン#1がオフィス12の固定設
置端末10において作成され、この固定設置端末10に
おいて作成されたバージョンは記憶装置14に記憶され
るとする。そして、このファイルの情報が、例えばフロ
ッピーディスケット16で自宅のサイト19のコンピュ
ータ18に移されたとする。この移されたファイルは編
集が可能であり、変更されてバージョン#2になり、記
憶装置20に記憶されたとする。
【0036】図2は図1に示すファイルのバージョンの
移動に伴い2つの異なる場所におけるファイルの変更に
よって同じファイルの2つの異なるバージョンが生じる
問題を示す説明図である。図2を参照すると、2つの異
なるサイトすなわち場所においてファイルが変更される
とき、ファイルに対してなされる仕事が必ずしも最近に
更新されたファイルになされないことがなぜ起こり得る
のかが分るであろう。図から分るように、第1のサイト
の記憶装置22内のワーク(作業ファイル)1はバージ
ョンV1 を含む。このバージョンV1 はディスケット2
4にコピーされ、次に、遠隔の場所またはサイトの記憶
装置(第2のサイトの記憶装置)26にコピーされる。
記憶装置26内のこの情報は、記憶装置26にバージョ
ンV2を生じるように変更される。このバージョンV2
は次に例えばディスケット28にコピーされ、第1のサ
イトの記憶装置22にバージョンV2 としてコピーされ
る。このバージョンがさらに変更されて、バージョンV
3 として記憶装置22に記憶される。
移動に伴い2つの異なる場所におけるファイルの変更に
よって同じファイルの2つの異なるバージョンが生じる
問題を示す説明図である。図2を参照すると、2つの異
なるサイトすなわち場所においてファイルが変更される
とき、ファイルに対してなされる仕事が必ずしも最近に
更新されたファイルになされないことがなぜ起こり得る
のかが分るであろう。図から分るように、第1のサイト
の記憶装置22内のワーク(作業ファイル)1はバージ
ョンV1 を含む。このバージョンV1 はディスケット2
4にコピーされ、次に、遠隔の場所またはサイトの記憶
装置(第2のサイトの記憶装置)26にコピーされる。
記憶装置26内のこの情報は、記憶装置26にバージョ
ンV2を生じるように変更される。このバージョンV2
は次に例えばディスケット28にコピーされ、第1のサ
イトの記憶装置22にバージョンV2 としてコピーされ
る。このバージョンがさらに変更されて、バージョンV
3 として記憶装置22に記憶される。
【0037】その後、このバージョンは、記憶装置26
にダウンロードするつもりのディスケット30にコピー
される。しかしながら、この過程において、ディスクが
無くなるかまたはダウンロードされず、そのため、バー
ジョンV2 に対して仕事がされてバージョンVx が作成
される。そして、このバージョンVx がディスケット3
2にコピーされる。ここにおいて、バージョンV3 はバ
ージョンV2 (バージョンV3 に対応する)から生じた
バージョンVx と相違するという問題があることが理解
されるであろう。このことは、調停が難しく、また、気
づかれないかもしれない誤りを発生させる。
にダウンロードするつもりのディスケット30にコピー
される。しかしながら、この過程において、ディスクが
無くなるかまたはダウンロードされず、そのため、バー
ジョンV2 に対して仕事がされてバージョンVx が作成
される。そして、このバージョンVx がディスケット3
2にコピーされる。ここにおいて、バージョンV3 はバ
ージョンV2 (バージョンV3 に対応する)から生じた
バージョンVx と相違するという問題があることが理解
されるであろう。このことは、調停が難しく、また、気
づかれないかもしれない誤りを発生させる。
【0038】問題はもちろん、同じファイルの2つのバ
ージョンが存在することである。第1のバージョンはバ
ージョンV3 であり、第2のバージョンはバージョンV
x である。単に、どちらかのコンピュータを一方または
他方のバージョンで更新するだけでは、調停の問題を解
決することはできない。なぜなら、バージョンVx は、
バージョンV3 に対してなされた更新を持たないから
である。したがって、異なる場所のどちらかにおいてバ
ージョンのどちらかを自動的に更新することは不可能で
ある。タイムスタンプを利用した調停システムがうまく
いかないのは、この理由のためである。
ージョンが存在することである。第1のバージョンはバ
ージョンV3 であり、第2のバージョンはバージョンV
x である。単に、どちらかのコンピュータを一方または
他方のバージョンで更新するだけでは、調停の問題を解
決することはできない。なぜなら、バージョンVx は、
バージョンV3 に対してなされた更新を持たないから
である。したがって、異なる場所のどちらかにおいてバ
ージョンのどちらかを自動的に更新することは不可能で
ある。タイムスタンプを利用した調停システムがうまく
いかないのは、この理由のためである。
【0039】したがって、典型的な想定として、仕事場
と自宅で、パーソナルコンピュータを使ってディスケッ
トでファイルを持ち帰ったり持って来たりしながら、本
を書く場合を考えると、普通のやり方は、すべての作業
ファイルをディスケットから使用しようとするコンピュ
ータにコピーし、1つまたは複数の章を編集し、終了時
に編集したファイルをディスケットにコピーすることで
ある。その結果、仕事場のコンピュータに記憶されてい
るファイル、自宅のコンピュータに記憶されているファ
イル、ディスケットに記憶されているファイルの3つの
異なるコピーができる。実際に、3つのコピーが存在す
るけれども、それらは同じファイルの異なるバージョン
であると見なされる。
と自宅で、パーソナルコンピュータを使ってディスケッ
トでファイルを持ち帰ったり持って来たりしながら、本
を書く場合を考えると、普通のやり方は、すべての作業
ファイルをディスケットから使用しようとするコンピュ
ータにコピーし、1つまたは複数の章を編集し、終了時
に編集したファイルをディスケットにコピーすることで
ある。その結果、仕事場のコンピュータに記憶されてい
るファイル、自宅のコンピュータに記憶されているファ
イル、ディスケットに記憶されているファイルの3つの
異なるコピーができる。実際に、3つのコピーが存在す
るけれども、それらは同じファイルの異なるバージョン
であると見なされる。
【0040】仕事場で編集したファイルをコピーするの
を忘れると、古いディスケットを持って自宅に帰ること
が起こり得る。そして、自宅に持って帰ったディスケッ
トを自宅のコンピュータにコピーし、古い情報から始め
ていることに気づかずに、編集を続ける。翌日、仕事場
でこの更新したファイルを仕事場のコンピュータにコピ
ーして、前日の仕事を失う。
を忘れると、古いディスケットを持って自宅に帰ること
が起こり得る。そして、自宅に持って帰ったディスケッ
トを自宅のコンピュータにコピーし、古い情報から始め
ていることに気づかずに、編集を続ける。翌日、仕事場
でこの更新したファイルを仕事場のコンピュータにコピ
ーして、前日の仕事を失う。
【0041】このよくある誤りを防止するためにできる
幾つかのことがある。例えばファイルをコピーするプロ
グラムのなかには、日付を調べて、ファイルの新しいバ
ージョンを古いバージョンで置き換えることを拒否する
選択設定を持つものがある。この方法はかなり役に立つ
が、完全ではない。この方法は、例えば上述した誤りを
検出できない。なぜなら、夜自宅で編集されたファイル
のバージョンは、仕事場で昨日編集されたバージョンよ
りも後の日付を持つからである。この方法は、また、古
いファイルの削除も正しく行うことができない。
幾つかのことがある。例えばファイルをコピーするプロ
グラムのなかには、日付を調べて、ファイルの新しいバ
ージョンを古いバージョンで置き換えることを拒否する
選択設定を持つものがある。この方法はかなり役に立つ
が、完全ではない。この方法は、例えば上述した誤りを
検出できない。なぜなら、夜自宅で編集されたファイル
のバージョンは、仕事場で昨日編集されたバージョンよ
りも後の日付を持つからである。この方法は、また、古
いファイルの削除も正しく行うことができない。
【0042】図3はいろいろのサイトにおけるログの生
成と、自動的な更新またはログの比較が不一致を示した
ときの手操作による更新を許可する前に行われるログの
比較を含むファイルのバージョンを調停するための装置
を示す説明図である。図3において、この発明のファイ
ル調停システムは、システム中に競合するバージョンの
更新を検出する、RECONCILE という名前のプログラムを
埋め込むことによって、上記の問題を解決する。そのた
め、ユーザは、このシステムにより、ファイルを安全に
更新することができる。このシステムは、ファイルをそ
れよりも新しいバージョンで置換するとき、その新しい
バージョンがそれにより置換されるファイルから生成さ
れたものであるかどうか調べて、そうであることが確認
されたときにだけ置換を行う。置換されるべきファイル
が置換ファイルよりも古いバージョンでなければ、シス
テムは、ユーザが矛盾を解決できるように、エラーを報
告する。
成と、自動的な更新またはログの比較が不一致を示した
ときの手操作による更新を許可する前に行われるログの
比較を含むファイルのバージョンを調停するための装置
を示す説明図である。図3において、この発明のファイ
ル調停システムは、システム中に競合するバージョンの
更新を検出する、RECONCILE という名前のプログラムを
埋め込むことによって、上記の問題を解決する。そのた
め、ユーザは、このシステムにより、ファイルを安全に
更新することができる。このシステムは、ファイルをそ
れよりも新しいバージョンで置換するとき、その新しい
バージョンがそれにより置換されるファイルから生成さ
れたものであるかどうか調べて、そうであることが確認
されたときにだけ置換を行う。置換されるべきファイル
が置換ファイルよりも古いバージョンでなければ、シス
テムは、ユーザが矛盾を解決できるように、エラーを報
告する。
【0043】さらに、具体的に言えば、ファイルのバー
ジョンV1 が記憶装置40に記憶されるとする。そうす
ると、この発明のシステムは、ログ生成手段42により
図示されているようにログLOG1 を生成する。バージ
ョンV1 がディスケット44にコピーされるとき、LO
G1 もそのディスケット44にコピーされる。次に、こ
のディスケット44は離れた場所の記憶装置46にロー
ドされる。そして、そこで、記憶されたバージョンV1
は変更されてバージョンV2 ができ、バージョンV2 も
記憶装置46に記憶される。バージョンV1 からバージ
ョンV2 への変更に伴って、ログ生成手段48に示され
るように、さらにもう1つのログLOG2 が生成され
る。
ジョンV1 が記憶装置40に記憶されるとする。そうす
ると、この発明のシステムは、ログ生成手段42により
図示されているようにログLOG1 を生成する。バージ
ョンV1 がディスケット44にコピーされるとき、LO
G1 もそのディスケット44にコピーされる。次に、こ
のディスケット44は離れた場所の記憶装置46にロー
ドされる。そして、そこで、記憶されたバージョンV1
は変更されてバージョンV2 ができ、バージョンV2 も
記憶装置46に記憶される。バージョンV1 からバージ
ョンV2 への変更に伴って、ログ生成手段48に示され
るように、さらにもう1つのログLOG2 が生成され
る。
【0044】このバージョンV2 のファイルを仕事場に
移すとき、ディスケット50にダウンロードされる。こ
のとき、ディスケット50には、バージョンV2 だけで
なく、図示のように LOG1 + LOG2 もコピーされ
る。このディスケット50は、元の仕事場所の記憶装置
40にダウンロードされる。バージョンV2 が変更され
ると、システムは、ログ生成手段52に示されるよう
に、さらにもう1つのログLOG3を生成する。再びフ
ァイルのこのバージョンを先の離れた場所に移すとき、
バージョンV2 がディスケット54にダウンロードされ
る。このとき、ディスケット54には、バージョンV3
だけでなく、図示のように、LOG1 +LOG2 +LO
G3 もコピーされる。
移すとき、ディスケット50にダウンロードされる。こ
のとき、ディスケット50には、バージョンV2 だけで
なく、図示のように LOG1 + LOG2 もコピーされ
る。このディスケット50は、元の仕事場所の記憶装置
40にダウンロードされる。バージョンV2 が変更され
ると、システムは、ログ生成手段52に示されるよう
に、さらにもう1つのログLOG3を生成する。再びフ
ァイルのこのバージョンを先の離れた場所に移すとき、
バージョンV2 がディスケット54にダウンロードされ
る。このとき、ディスケット54には、バージョンV3
だけでなく、図示のように、LOG1 +LOG2 +LO
G3 もコピーされる。
【0045】しかしながら、図示の例では、このディス
ケット54は記憶装置46にダウンロードされない。不
注意によりときどき起こるように、バージョンV2 を変
更してバージョンVx を作成してしまう。バージョンV
x ができると同時に、ログ生成手段56に示されるよう
にログLOGx が生成される。バージョンVx はさらに
ディスケット58に移される。このとき、このディスケ
ットには、バージョンVx に加えてLOG1 +LOG2
+LOGx もコピーされる。
ケット54は記憶装置46にダウンロードされない。不
注意によりときどき起こるように、バージョンV2 を変
更してバージョンVx を作成してしまう。バージョンV
x ができると同時に、ログ生成手段56に示されるよう
にログLOGx が生成される。バージョンVx はさらに
ディスケット58に移される。このとき、このディスケ
ットには、バージョンVx に加えてLOG1 +LOG2
+LOGx もコピーされる。
【0046】次に、このディスケット58が記憶装置4
0にロードされるとき、このファイルにアクセスする
と、直ちにコンピュータは、比較手段60において、そ
の場所で先に生成されたログLOGxを、仕事場でディ
スケット58にコピーされたログLOG3 と比較する。
この比較ステップの結果は、警告手段62においてユー
ザにこのファイルのログ中には自動更新を許さない相違
があることを警告するか、マージ64によって示される
ような自動更新を許すかのどちらかである。そのため、
システムは、ログの比較によって、自動更新を許すか、
自動更新が不適当であることをユーザに警告するものと
している。
0にロードされるとき、このファイルにアクセスする
と、直ちにコンピュータは、比較手段60において、そ
の場所で先に生成されたログLOGxを、仕事場でディ
スケット58にコピーされたログLOG3 と比較する。
この比較ステップの結果は、警告手段62においてユー
ザにこのファイルのログ中には自動更新を許さない相違
があることを警告するか、マージ64によって示される
ような自動更新を許すかのどちらかである。そのため、
システムは、ログの比較によって、自動更新を許すか、
自動更新が不適当であることをユーザに警告するものと
している。
【0047】図3の想定では、仕事場で作成されたバー
ジョンも、夜自宅で作成されたバージョンも、他方のバ
ージョンから作成されなかった。そのため、RECONCILE
は、システムがそれらに上書きするのを防止する。これ
らのバージョンは、両方とも同一の古いバージョンから
作成されているが、どちらか一方が他方から作成されて
はいない。システムは、ファイルの過去のバージョンの
履歴を保存することによって、あるファイルの1つのバ
ージョンが他のバージョンからいつ作成されたかを知
る。一方の履歴が、あるファイルがバージョンV1 、V
2 、V3 を経過してきたことを示し、他方の履歴がバー
ジョンV1 、V2 だけしか含まないときは、バージョン
V3 をコピーしても安全である。それに対して、一方の
履歴がバージョンV1 、V2 、V3 を示し、他方の履歴
がバージョンV1 、V2 、V4 を示すときは、バージョ
ンV3 もバージョンV4も他方からは作成されていない
ので、競合が存在する。
ジョンも、夜自宅で作成されたバージョンも、他方のバ
ージョンから作成されなかった。そのため、RECONCILE
は、システムがそれらに上書きするのを防止する。これ
らのバージョンは、両方とも同一の古いバージョンから
作成されているが、どちらか一方が他方から作成されて
はいない。システムは、ファイルの過去のバージョンの
履歴を保存することによって、あるファイルの1つのバ
ージョンが他のバージョンからいつ作成されたかを知
る。一方の履歴が、あるファイルがバージョンV1 、V
2 、V3 を経過してきたことを示し、他方の履歴がバー
ジョンV1 、V2 だけしか含まないときは、バージョン
V3 をコピーしても安全である。それに対して、一方の
履歴がバージョンV1 、V2 、V3 を示し、他方の履歴
がバージョンV1 、V2 、V4 を示すときは、バージョ
ンV3 もバージョンV4も他方からは作成されていない
ので、競合が存在する。
【0048】図4は2つのサイトにジャーナルの生成、
結合ジャーナルの形成、競合の検出、及び競合の解決策
に基づく処理を示すブロック線図である。この図4を参
照して、さらに、具体的に、2つのジャーナルがどのよ
うにして調停されるかを説明する。サイトX及びYの2
つの異なるジャーナル66及び68には、A、B、C、
D、Eという名前の5つのファイルの履歴を記述する項
目を含んでいる。ファイルの名前に加えて、各ジャーナ
ル項目は、特定にサイトでCreate(作成)、Update(更
新)、Delete(削除)のうちのどの操作が行われたか、
及びその操作が行われた時刻を示している。例えば、サ
イトXのジャーナル66は、ファイルEが10:55に
作成され、10:56に削除されたことを示している。
ログは日付と時刻の両方を示すのがー般的なので、ここ
では、説明の便宜上、時刻だけを示してあることに注意
されたい。
結合ジャーナルの形成、競合の検出、及び競合の解決策
に基づく処理を示すブロック線図である。この図4を参
照して、さらに、具体的に、2つのジャーナルがどのよ
うにして調停されるかを説明する。サイトX及びYの2
つの異なるジャーナル66及び68には、A、B、C、
D、Eという名前の5つのファイルの履歴を記述する項
目を含んでいる。ファイルの名前に加えて、各ジャーナ
ル項目は、特定にサイトでCreate(作成)、Update(更
新)、Delete(削除)のうちのどの操作が行われたか、
及びその操作が行われた時刻を示している。例えば、サ
イトXのジャーナル66は、ファイルEが10:55に
作成され、10:56に削除されたことを示している。
ログは日付と時刻の両方を示すのがー般的なので、ここ
では、説明の便宜上、時刻だけを示してあることに注意
されたい。
【0049】これらのジャーナル66及び68は、ファ
イル名A、B、C、D、Eの順に並べられ、さらに、同
じファイル名に対してはタイムスタンプの順に並べられ
ていることに注目されたい。ジャーナルは、この規則に
したがってそれらをマージすることにより併合される。
同じ項目(行われた操作を含めて)は、マージの間に1
つの項目にまとめられる。70で示す併合されたジャー
ナルは、各項目がどのサイトのものであるかも記録して
いる。例えばこの併合されたジャーナル70は、ファイ
ルEが10:55に作成されたことはサイトX及びYの
両方に知られていること、及び10:56に削除された
ことはサイトXにだけ知られていることを示している。
イル名A、B、C、D、Eの順に並べられ、さらに、同
じファイル名に対してはタイムスタンプの順に並べられ
ていることに注目されたい。ジャーナルは、この規則に
したがってそれらをマージすることにより併合される。
同じ項目(行われた操作を含めて)は、マージの間に1
つの項目にまとめられる。70で示す併合されたジャー
ナルは、各項目がどのサイトのものであるかも記録して
いる。例えばこの併合されたジャーナル70は、ファイ
ルEが10:55に作成されたことはサイトX及びYの
両方に知られていること、及び10:56に削除された
ことはサイトXにだけ知られていることを示している。
【0050】調停がめざすことは、欠けている操作を行
うことによって、各ジャーナルを最新のものにすること
である。例えば、図4において、サイトYのジャーナル
68に欠けているファイルBの生成は、ファイルBをサ
イトXからサイトYにコピーすることにより修正され
る。また、サイトXのジャーナル66に欠けているファ
イルCの更新は、サイトYからファイルCをコピーする
ことにより修正される。ファイルEの場合には、欠けて
いる操作は削除であり、サイトYにおいてファイルEの
コピーを削除することによって修正される。これらの調
停操作が行われたときは、欠落していたジャーナル項目
が追加されて、各ジャーナルが更新される。
うことによって、各ジャーナルを最新のものにすること
である。例えば、図4において、サイトYのジャーナル
68に欠けているファイルBの生成は、ファイルBをサ
イトXからサイトYにコピーすることにより修正され
る。また、サイトXのジャーナル66に欠けているファ
イルCの更新は、サイトYからファイルCをコピーする
ことにより修正される。ファイルEの場合には、欠けて
いる操作は削除であり、サイトYにおいてファイルEの
コピーを削除することによって修正される。これらの調
停操作が行われたときは、欠落していたジャーナル項目
が追加されて、各ジャーナルが更新される。
【0051】ファイルDの場合には不一致がある。両方
のサイトは、ファイルDが最初に10:33に作成され
たことでは一致しているが、異なる時刻に独立した更新
があったことを示し、また、どちらのサイトも他方のサ
イトの更新について知らない。自動調停プロシージャ
は、どちらかのバージョンを置換することはせずに、こ
の不一致を報告し、各ファイルについて必要とされる訂
正またはマージを行うことはユーザにまかせる。
のサイトは、ファイルDが最初に10:33に作成され
たことでは一致しているが、異なる時刻に独立した更新
があったことを示し、また、どちらのサイトも他方のサ
イトの更新について知らない。自動調停プロシージャ
は、どちらかのバージョンを置換することはせずに、こ
の不一致を報告し、各ファイルについて必要とされる訂
正またはマージを行うことはユーザにまかせる。
【0052】さらに、一層の説明として、次の定義はこ
の発明を理解するのに役立つ。この発明の目的にとって
は、ファイルは、コンピュータに記憶されている密接に
関係した情報の集合である。ファイルの代表的な例は、
ワードプロセッサやスプレッドシートで編集された文書
やメッセージなどである。個々のメモ、手紙、本の章な
どは、それぞれそれ自身のファイルに保存される。その
内容に加えて、ファイルは名前とタイムスタンプを持
つ。名前はー般的にファイルを識別し、タイムスタンプ
はそのファイルがいつ作成または変更されたかを示す。
時間が経つにつれて、同じ名前の1つのファイルが異な
るバージョンを持つようになる。それらのバージョン
は、異なるタイムスタンプによって区別される。
の発明を理解するのに役立つ。この発明の目的にとって
は、ファイルは、コンピュータに記憶されている密接に
関係した情報の集合である。ファイルの代表的な例は、
ワードプロセッサやスプレッドシートで編集された文書
やメッセージなどである。個々のメモ、手紙、本の章な
どは、それぞれそれ自身のファイルに保存される。その
内容に加えて、ファイルは名前とタイムスタンプを持
つ。名前はー般的にファイルを識別し、タイムスタンプ
はそのファイルがいつ作成または変更されたかを示す。
時間が経つにつれて、同じ名前の1つのファイルが異な
るバージョンを持つようになる。それらのバージョン
は、異なるタイムスタンプによって区別される。
【0053】ディレクトリ(登録簿)は、ファイルの集
合として定義される。通常、1つのディレクトリ内のフ
ァイルは、何等かの緩い関係を持つ。例えば、それらの
ファイルがそれぞれ1冊の本の各章のようにより大きな
情報の集合の一部である、同ー人によって作成された、
同じ題目に関係している、同じ組織によって所有されて
いるなどである。ディレクトリも名前とタイムスタンプ
を持つ。ただし、ディレクトリのタイムスタンプはそれ
ほど有用ではない。
合として定義される。通常、1つのディレクトリ内のフ
ァイルは、何等かの緩い関係を持つ。例えば、それらの
ファイルがそれぞれ1冊の本の各章のようにより大きな
情報の集合の一部である、同ー人によって作成された、
同じ題目に関係している、同じ組織によって所有されて
いるなどである。ディレクトリも名前とタイムスタンプ
を持つ。ただし、ディレクトリのタイムスタンプはそれ
ほど有用ではない。
【0054】殆んどのコンピュータでは、ファイル及び
ディレクトリを階層構造または木構造に整理することが
できる。このことは、ディレクトリがサブディレクトリ
を含むことができることを示す。サブディレクトリの利
点は、関係がより緊密なファイルをー諸にまとめること
ができることである。ファイルを探すには、所望のファ
イルに到達するまで、一連のサブディレクトリをたどっ
て行く。
ディレクトリを階層構造または木構造に整理することが
できる。このことは、ディレクトリがサブディレクトリ
を含むことができることを示す。サブディレクトリの利
点は、関係がより緊密なファイルをー諸にまとめること
ができることである。ファイルを探すには、所望のファ
イルに到達するまで、一連のサブディレクトリをたどっ
て行く。
【0055】ワーキングセッションは、1台のコンピュ
ータでの1区切りの仕事として定義される。1ワーキン
グセッションの間には、ファイルは不完全または互いに
不整合な状態にあるかも知れない。これらのファイルの
永久的な記録を作成したり、どこか他の場所にコピーを
送ったりしたいと思うものは、通常、殆んどいないであ
ろう。むしろ、そのワーキングセッションを終了する前
に、それらの不整合を除去することによってその日の仕
事を完了させようとする。ときには、1セッションが数
日続くこともある。セッションはユーザの選択に委ねら
れていることに注意されたい。しかしながら、ワーキン
グセッションの途中にファイルをコピーするために、RE
CONCILE を使用してはいけないこと、ワーキングセッシ
ョンの開始時及び/または終了時にだけ使用すべきこと
を強調しておくことは重要である。
ータでの1区切りの仕事として定義される。1ワーキン
グセッションの間には、ファイルは不完全または互いに
不整合な状態にあるかも知れない。これらのファイルの
永久的な記録を作成したり、どこか他の場所にコピーを
送ったりしたいと思うものは、通常、殆んどいないであ
ろう。むしろ、そのワーキングセッションを終了する前
に、それらの不整合を除去することによってその日の仕
事を完了させようとする。ときには、1セッションが数
日続くこともある。セッションはユーザの選択に委ねら
れていることに注意されたい。しかしながら、ワーキン
グセッションの途中にファイルをコピーするために、RE
CONCILE を使用してはいけないこと、ワーキングセッシ
ョンの開始時及び/または終了時にだけ使用すべきこと
を強調しておくことは重要である。
【0056】サイトは、1つのディレクトリ階層構造デ
ィレクトリのための特定の記憶場所である。この明細書
において理解されるように、複数のサイトが、すべて同
じディレクトリ階層構造ディレクトリのバージョン(変
形)を含むと考えられている。この発明のシステムの基
本的な目的は、異なるサイトの階層構造ディレクトリを
結合し、個々のファイルのバージョンを安全に更新する
ことによってそれらのサイトの階層構造ディレクトリを
すべて同じにすることである。
ィレクトリのための特定の記憶場所である。この明細書
において理解されるように、複数のサイトが、すべて同
じディレクトリ階層構造ディレクトリのバージョン(変
形)を含むと考えられている。この発明のシステムの基
本的な目的は、異なるサイトの階層構造ディレクトリを
結合し、個々のファイルのバージョンを安全に更新する
ことによってそれらのサイトの階層構造ディレクトリを
すべて同じにすることである。
【0057】サイトを任意の1つのコンピュータにおけ
る全ディスク記憶域と考えるべきではない。通常、1つ
のサイトは、ユーザの都合によって設定された複数の関
係のない階層構造ディレクトリを含む。例えば、パーソ
ナルコンピュータは、システムソフトウェア、インスト
ールされたアプリケーション、1つまたは複数のユーザ
の作業ファイルのための別々の階層構造ディレクトリを
含むかもしれない。実際のシステムは、たいていそれら
の階層構造をまとめて単一の大階層構造にしているが、
それを別々のものと考える方が考え易い。
る全ディスク記憶域と考えるべきではない。通常、1つ
のサイトは、ユーザの都合によって設定された複数の関
係のない階層構造ディレクトリを含む。例えば、パーソ
ナルコンピュータは、システムソフトウェア、インスト
ールされたアプリケーション、1つまたは複数のユーザ
の作業ファイルのための別々の階層構造ディレクトリを
含むかもしれない。実際のシステムは、たいていそれら
の階層構造をまとめて単一の大階層構造にしているが、
それを別々のものと考える方が考え易い。
【0058】サイトは、また、単にディスケットと見な
すこともできる。実際に、上記の想定環境において、デ
ィスケットにまたはディスケットからファイルをコピー
する方法は、ディスケットにまたはディスケットからコ
ピーを行いたい自宅または仕事場のコンピュータによ
り、ディスケットバージョンを調停することである。ワ
ーキングセッションの開始時に、この発明のシステム
は、ディスケット上の新しいファイルを検出して、それ
らをコンピュータにコピーする。そのセッションの終了
時には、この発明のシステムは、コンピュータ内の新し
いファイルを検出して、それらをディスケットにコピー
する。
すこともできる。実際に、上記の想定環境において、デ
ィスケットにまたはディスケットからファイルをコピー
する方法は、ディスケットにまたはディスケットからコ
ピーを行いたい自宅または仕事場のコンピュータによ
り、ディスケットバージョンを調停することである。ワ
ーキングセッションの開始時に、この発明のシステム
は、ディスケット上の新しいファイルを検出して、それ
らをコンピュータにコピーする。そのセッションの終了
時には、この発明のシステムは、コンピュータ内の新し
いファイルを検出して、それらをディスケットにコピー
する。
【0059】定義によれば、ジャーナルはファイルのバ
ージョンの履歴である。この発明のシステムは、その仕
事を遂行するために、各サイトのためのジャーナルを生
成し、欠落しているバージョンを探すためにそれらをマ
ージし、より新しい競合しないバージョンをコピーする
ことによって更新するか、または不一致があるときはエ
ラーを報告する。
ージョンの履歴である。この発明のシステムは、その仕
事を遂行するために、各サイトのためのジャーナルを生
成し、欠落しているバージョンを探すためにそれらをマ
ージし、より新しい競合しないバージョンをコピーする
ことによって更新するか、または不一致があるときはエ
ラーを報告する。
【0060】データベースのジャーナルに関しては、こ
の発明のシステムが使用するジャーナルは、ファイル名
とタイムスタンプだけでなく、操作も含む。このシステ
ムにとっては、これらの操作は非常に簡単であり、“up
date(更新)”または“delete(削除)”である。これ
らの操作は、それ以前に存在していたファイルが消滅し
たいう事実から判断される。
の発明のシステムが使用するジャーナルは、ファイル名
とタイムスタンプだけでなく、操作も含む。このシステ
ムにとっては、これらの操作は非常に簡単であり、“up
date(更新)”または“delete(削除)”である。これ
らの操作は、それ以前に存在していたファイルが消滅し
たいう事実から判断される。
【0061】ジャーナルに削除操作を含ませることは、
調停が、不一致を再チェックしながら、他のサイトに削
除を安全に伝えることができることを意味する。実際に
は、内部ジャーナルと外部ジャーナルの2種類のジャー
ナルがある。内部ジャーナルは、それが記述するディレ
クトリ内部の特別のファイルとして記憶される。各階層
ディレクトリ構造において、各ディレクトリはそれ自身
の内部ジャーナルを持つ。外部ジャーナルは、同じ情報
を含むが、別の1つのファイルに抽出されていて、どこ
か他のところに記憶される。このシステムは両方の種類
を使用できるが、内部ジャーナルに対してまたは内部ジ
ャーナルからしか更新できない。外部ジャーナルは、必
要な更新についての情報の源として使用できるが、関係
する実際のファイルやディレクトリは直接にはアクセス
できない。
調停が、不一致を再チェックしながら、他のサイトに削
除を安全に伝えることができることを意味する。実際に
は、内部ジャーナルと外部ジャーナルの2種類のジャー
ナルがある。内部ジャーナルは、それが記述するディレ
クトリ内部の特別のファイルとして記憶される。各階層
ディレクトリ構造において、各ディレクトリはそれ自身
の内部ジャーナルを持つ。外部ジャーナルは、同じ情報
を含むが、別の1つのファイルに抽出されていて、どこ
か他のところに記憶される。このシステムは両方の種類
を使用できるが、内部ジャーナルに対してまたは内部ジ
ャーナルからしか更新できない。外部ジャーナルは、必
要な更新についての情報の源として使用できるが、関係
する実際のファイルやディレクトリは直接にはアクセス
できない。
【0062】RECONCILE を使うための最も簡単かつ最も
標準的な方法は、挿入されたディスクやディスケットの
ような直接にアクセス可能ないくつかのサイトに対し
て、RECONCILE を適用することである。例えば、コマン
ド reconcile . a:\ は、現在の作業ディレクトリ(ほとんどのシステムでは
“.”という名前がつけられている)をドライブAのデ
ィスケットと調停する。2つのパラメータの順序は、ど
ちらでもかまわない。
標準的な方法は、挿入されたディスクやディスケットの
ような直接にアクセス可能ないくつかのサイトに対し
て、RECONCILE を適用することである。例えば、コマン
ド reconcile . a:\ は、現在の作業ディレクトリ(ほとんどのシステムでは
“.”という名前がつけられている)をドライブAのデ
ィスケットと調停する。2つのパラメータの順序は、ど
ちらでもかまわない。
【0063】この想定環境では、RECONCILE は、ユーザ
が仕事場または自宅のコンピュータの使用を始める時と
使用を終る時に実行されるであろう。このことを決して
忘れないようにすれば、すべての更新は自動的に行われ
る。古いファイルを、他方のコンピュータにおいて復活
させることなく、消去することさえできる。今、セッシ
ョンの開始時または終了時に調停を行うことをうっかり
忘れてしまい、その後にどれかのファイルを更新すると
仮定しよう。その場合には、次回にファイルの2つの競
合するバージョンを調停するときに、次のようなエラー
メッセージを得る。 reconcile: Conflicting Versions, ./oops and a:oops
が仕事場または自宅のコンピュータの使用を始める時と
使用を終る時に実行されるであろう。このことを決して
忘れないようにすれば、すべての更新は自動的に行われ
る。古いファイルを、他方のコンピュータにおいて復活
させることなく、消去することさえできる。今、セッシ
ョンの開始時または終了時に調停を行うことをうっかり
忘れてしまい、その後にどれかのファイルを更新すると
仮定しよう。その場合には、次回にファイルの2つの競
合するバージョンを調停するときに、次のようなエラー
メッセージを得る。 reconcile: Conflicting Versions, ./oops and a:oops
【0064】この時点で、2人のユーザは、その競合す
る更新が何であったのかを記憶により思い出すか、diff
のようなツールを使って2つのバージョンの相違箇所
を見つけ出して表示させなければならない。そうして、
必要に応じて、どちらかのサイトのバージョンを編集し
て、2つのバージョンの変更を併合する。最後に、結果
として得られたそのファイルの正しいバージョンが他方
のサイトにコピーされ、そのサイトの悪いバージョンを
置換する。このコピーは、通常、ファイルの内容と共に
タイムスタンプもコピーするコピープログラムを使って
行われる。この処理は各ジャーナルに競合の記録を残す
が、両方のサイトにもっと新しく競合しない1つのバー
ジョンが存在するので、RECONCILE は何の競合の表示も
しない。
る更新が何であったのかを記憶により思い出すか、diff
のようなツールを使って2つのバージョンの相違箇所
を見つけ出して表示させなければならない。そうして、
必要に応じて、どちらかのサイトのバージョンを編集し
て、2つのバージョンの変更を併合する。最後に、結果
として得られたそのファイルの正しいバージョンが他方
のサイトにコピーされ、そのサイトの悪いバージョンを
置換する。このコピーは、通常、ファイルの内容と共に
タイムスタンプもコピーするコピープログラムを使って
行われる。この処理は各ジャーナルに競合の記録を残す
が、両方のサイトにもっと新しく競合しない1つのバー
ジョンが存在するので、RECONCILE は何の競合の表示も
しない。
【0065】1つの実施例では、この発明のシステム
は、実行されるたびに、実際のディレクトリをそれ自身
のジャーナルの前バージョンと比較することによって、
ジャーナルを作成する。これは、単一サイトに対して
も、コマンド RECONCILE . によってRECONCILE を実行することが有意義であること
を意味する。これは、現在の作業ディレクトリの内部ジ
ャーナルを更新する。1つのファイルからいくつかの一
連のバージョンが作成されたときは、RECONCILE は、前
回それが実行されてから後の最新のバージョンだけを見
るであろう。このことは、実際に1つの利点であり得
る。なぜならば、それ以外のバージョンは、他のどれか
のサイトに伝達されていない限り、特別の重要性はない
からである。ユーザは、どれくらいの頻度で RECONCILE
を実行したいかを決めることができる。ワーキングセ
ッションの終了時に RECONCILE を実行するのを忘れた
としても、何かを永久に失うわけではない。調停を行う
のを忘れた代償は、その後にー度、手操作による干渉を
必要とする競合する更新の発生確率の増大である。
は、実行されるたびに、実際のディレクトリをそれ自身
のジャーナルの前バージョンと比較することによって、
ジャーナルを作成する。これは、単一サイトに対して
も、コマンド RECONCILE . によってRECONCILE を実行することが有意義であること
を意味する。これは、現在の作業ディレクトリの内部ジ
ャーナルを更新する。1つのファイルからいくつかの一
連のバージョンが作成されたときは、RECONCILE は、前
回それが実行されてから後の最新のバージョンだけを見
るであろう。このことは、実際に1つの利点であり得
る。なぜならば、それ以外のバージョンは、他のどれか
のサイトに伝達されていない限り、特別の重要性はない
からである。ユーザは、どれくらいの頻度で RECONCILE
を実行したいかを決めることができる。ワーキングセ
ッションの終了時に RECONCILE を実行するのを忘れた
としても、何かを永久に失うわけではない。調停を行う
のを忘れた代償は、その後にー度、手操作による干渉を
必要とする競合する更新の発生確率の増大である。
【0066】この発明のシステムの他の使途は、次のと
おりである。1人の同僚と共同で研究論文を書く場合を
想定すると、執筆者は、論文のいろいろなセクション
を、各執筆者がアクセス可能な1つのディレクトリの中
に置く。通常、2人のユーザは競合する更新の発生を避
けるために直接に連絡し合うが、時々ユーザの一人がそ
うするのを忘れることがある。そのために発生する問題
が RECONCILE によって解決される。各ユーザは、その
ディレクトリ全体の私用のコピーを作る。ディレクトリ
の名前が -tom/paper, -dick/paper, -public/paper で
あり、当のユーザがTom であるとすると、ワーキングセ
ッションを開始する前に Tom は、コマンド reconcile -tom/paper -common/paper を入力する。
おりである。1人の同僚と共同で研究論文を書く場合を
想定すると、執筆者は、論文のいろいろなセクション
を、各執筆者がアクセス可能な1つのディレクトリの中
に置く。通常、2人のユーザは競合する更新の発生を避
けるために直接に連絡し合うが、時々ユーザの一人がそ
うするのを忘れることがある。そのために発生する問題
が RECONCILE によって解決される。各ユーザは、その
ディレクトリ全体の私用のコピーを作る。ディレクトリ
の名前が -tom/paper, -dick/paper, -public/paper で
あり、当のユーザがTom であるとすると、ワーキングセ
ッションを開始する前に Tom は、コマンド reconcile -tom/paper -common/paper を入力する。
【0067】このとき競合があるかも知れない。競合が
ある場合には、Tom は、それらの競合を解決するため
に、Dickに電話をする必要があるかも知れない。電話を
した結果、Tom は、彼が持っている作業バージョンが共
有バージョンと一致していることを確信した。この仕事
の間にはいろいろなセクションが一時的に間違っている
かも知れないし、互いに不一致があるかも知れないが、
これは作業コピーにすぎず発表するバージョンではない
ので、Tom は気にしない。やがて、Tom は、最終バージ
ョンを校正しながらそれに満足するであろう。そして、
それを上記したのと全く同じコマンドによってチェック
する。
ある場合には、Tom は、それらの競合を解決するため
に、Dickに電話をする必要があるかも知れない。電話を
した結果、Tom は、彼が持っている作業バージョンが共
有バージョンと一致していることを確信した。この仕事
の間にはいろいろなセクションが一時的に間違っている
かも知れないし、互いに不一致があるかも知れないが、
これは作業コピーにすぎず発表するバージョンではない
ので、Tom は気にしない。やがて、Tom は、最終バージ
ョンを校正しながらそれに満足するであろう。そして、
それを上記したのと全く同じコマンドによってチェック
する。
【0068】コマンドの構文 “RECONCILE”コマンドの構文は reconcile [オプション][[−モード]<ディレクト
リ ファイル>]...である。ディレクトリもファイル
も指定しないときは、現在の作業ディレクト
リ(“.”)が使用される。 ディレクトリ 内部ジャーナルとファイルを含むディレ
クトリの名前を指定する。 ファイル どれかの離れたサイトを記述する外部ジ
ャーナルの名前を指定する。“−”は標準入力または出
力上の外部ジャーナルを指す。 モード モードは、次の文字のうちの1つまたは
複数である。 r ジャーナルを読め、しかし書かない。 w ジャーナルを書け、しかし読まない。 o ファイルを更新するな、ジャーナルだけを
更新する。 オプション 次のオプションパラメータを指定でき
る。 −q 実行する操作についてのメッセージの表
示を抑制し、静かに作業をする。 −n −uフラッグにかかわらず、どのファイ
ル(ジャーナルを除く)も更新しない。 −h このコマンドの構文の説明を表示せよ。 −a サイト名 サイト名で指定されたサイトを抹消す
る。このパラメータは、もはや使用されていないサイト
について忘れるために使用する。このパラメータは、プ
ログラムが、もはや存在しない旧サイトとの調停のため
だけにしか必要でない不用なジャーナル項目を捨てるこ
とを可能にする。サイトは2カ月後に自動的に抹消され
る。1カ月後には警告が表示される。
リ ファイル>]...である。ディレクトリもファイル
も指定しないときは、現在の作業ディレクト
リ(“.”)が使用される。 ディレクトリ 内部ジャーナルとファイルを含むディレ
クトリの名前を指定する。 ファイル どれかの離れたサイトを記述する外部ジ
ャーナルの名前を指定する。“−”は標準入力または出
力上の外部ジャーナルを指す。 モード モードは、次の文字のうちの1つまたは
複数である。 r ジャーナルを読め、しかし書かない。 w ジャーナルを書け、しかし読まない。 o ファイルを更新するな、ジャーナルだけを
更新する。 オプション 次のオプションパラメータを指定でき
る。 −q 実行する操作についてのメッセージの表
示を抑制し、静かに作業をする。 −n −uフラッグにかかわらず、どのファイ
ル(ジャーナルを除く)も更新しない。 −h このコマンドの構文の説明を表示せよ。 −a サイト名 サイト名で指定されたサイトを抹消す
る。このパラメータは、もはや使用されていないサイト
について忘れるために使用する。このパラメータは、プ
ログラムが、もはや存在しない旧サイトとの調停のため
だけにしか必要でない不用なジャーナル項目を捨てるこ
とを可能にする。サイトは2カ月後に自動的に抹消され
る。1カ月後には警告が表示される。
【0069】環境に関しては、RECONCILE は、環境変数
$HOST から使用されているコンピュータシステムの名
前を取得する。この環境変数にコンピュータシステムの
名前が指定されていないときは、“UNKNOWN”を用い
る。
$HOST から使用されているコンピュータシステムの名
前を取得する。この環境変数にコンピュータシステムの
名前が指定されていないときは、“UNKNOWN”を用い
る。
【0070】動作に関しては、RECONCILE は、おおよそ
次のステップでその処理を行う。 1.パラメータを解析し、調停すべきサイトのリストを
作成する。サイトが指定されていないときは、ただ1つ
のサイトとして“.”(現在の作業ディレクトリ)を用
いる。 2.各サイトの古いジャーナルファイルを読む(取込
み)。 3.各内部サイトのために、そのサイトに現在存在する
ファイルを調べて、そのジャーナルを更新する。 4.既知のサイトとそれらの最近の調停の日時のリスト
を更新する。これらの調停の日時から、すべての既知の
サイトにおいて不用であることが分った事象は捨てられ
る。 5.実際の調停を行う。すなわち競合を検出し、競合が
ないときはファイルを置換する。それにしたがって内部
ジャーナルを更新する。 6.各サイトに向けて、更新されたジャーナルファイル
を書く(送信)。 これらのステップは、この後にさらに詳しく説明する。
次のステップでその処理を行う。 1.パラメータを解析し、調停すべきサイトのリストを
作成する。サイトが指定されていないときは、ただ1つ
のサイトとして“.”(現在の作業ディレクトリ)を用
いる。 2.各サイトの古いジャーナルファイルを読む(取込
み)。 3.各内部サイトのために、そのサイトに現在存在する
ファイルを調べて、そのジャーナルを更新する。 4.既知のサイトとそれらの最近の調停の日時のリスト
を更新する。これらの調停の日時から、すべての既知の
サイトにおいて不用であることが分った事象は捨てられ
る。 5.実際の調停を行う。すなわち競合を検出し、競合が
ないときはファイルを置換する。それにしたがって内部
ジャーナルを更新する。 6.各サイトに向けて、更新されたジャーナルファイル
を書く(送信)。 これらのステップは、この後にさらに詳しく説明する。
【0071】ステップ1のパラメータ解析は、パラメー
タを順番に調べる単純なプロセスである。このステップ
は、モジュール“reconcile”中のプロシージャ“mai
n”によって行われる。ステップ2と6におけるよう
に、ジャーナルを読んだり書いたり(I/O デバイスを通
してのデータの取込み、送出)するために、ジャーナル
は、モジュール“journal”中のプロシージャ“readjou
rnal”および“readentries”によって読まれ、プロシ
ージャ“writejournal”および“writeentries”によっ
て書かれる。ジャーナルファイルの形式は、編集可能な
テキストであり、この後のジャーナルファイルの形式に
ついて説明している部分で、詳しく説明する。
タを順番に調べる単純なプロセスである。このステップ
は、モジュール“reconcile”中のプロシージャ“mai
n”によって行われる。ステップ2と6におけるよう
に、ジャーナルを読んだり書いたり(I/O デバイスを通
してのデータの取込み、送出)するために、ジャーナル
は、モジュール“journal”中のプロシージャ“readjou
rnal”および“readentries”によって読まれ、プロシ
ージャ“writejournal”および“writeentries”によっ
て書かれる。ジャーナルファイルの形式は、編集可能な
テキストであり、この後のジャーナルファイルの形式に
ついて説明している部分で、詳しく説明する。
【0072】ステップ3におけるような実際のディレク
トリからの更新は、ディレクトリを読み、その結果にし
たがってジャーナルに新しい項目を追加することによっ
て、ジャーナルを現在の状況に合うように新しくする。
この仕事は、モジュール“journal”中のプロシージャ
“readdirectory”によって行われる。現在のディレク
トリ中の項目は、1つずつ調べられる。見つかった各項
目に対して、それに対応するジャーナル項目が存在しな
ければ、そのサイト、時刻、ファイル名を記録するため
の新しいジャーナル項目が生成される。そして、その新
しいジャーナル項目、またはすでに存在した場合にはそ
の既存のジャーナル項目に、確認済みのマークが付けら
れる。
トリからの更新は、ディレクトリを読み、その結果にし
たがってジャーナルに新しい項目を追加することによっ
て、ジャーナルを現在の状況に合うように新しくする。
この仕事は、モジュール“journal”中のプロシージャ
“readdirectory”によって行われる。現在のディレク
トリ中の項目は、1つずつ調べられる。見つかった各項
目に対して、それに対応するジャーナル項目が存在しな
ければ、そのサイト、時刻、ファイル名を記録するため
の新しいジャーナル項目が生成される。そして、その新
しいジャーナル項目、またはすでに存在した場合にはそ
の既存のジャーナル項目に、確認済みのマークが付けら
れる。
【0073】ディレクトリ全体が読まれると、未確認の
項目を探すためにそのジャーナルの全体が調べられる。
未確認のジャーナル項目は、かつて存在したがもはや存
在しないファイル、すなわち削除されたファイルを示
す。このような未確認の項目に対しては、操作として削
除、タイムスタンプとして現在の時刻を含む新しいジャ
ーナル項目が生成される。
項目を探すためにそのジャーナルの全体が調べられる。
未確認のジャーナル項目は、かつて存在したがもはや存
在しないファイル、すなわち削除されたファイルを示
す。このような未確認の項目に対しては、操作として削
除、タイムスタンプとして現在の時刻を含む新しいジャ
ーナル項目が生成される。
【0074】ステップ5の調停では、モジュール“jour
nal”中のプロシージャ“reconcile”により、ジャーナ
ルの内部表現に基づいて調停が行われる。調停は、最新
項目、すなわち対象ファイルに関する最も新しい項目に
対してだけ行われる。それ以前の項目は、そのファイル
の古いバージョンの記録である。この調停の目的は、す
べてのサイトにそのジャーナル項目とファイルが存在す
るようにすることである。その項目が存在しないサイト
に対しては、このプログラムは、まず競合があるかどう
か調べる。競合がない場合には、その最近項目が存在す
るどれかのサイトからそのファイルがコピーされる。フ
ァイルのコピーは、最新項目に記録されている操作が削
除のときは、実際にはその削除でもよい。また、ディレ
クトリまたは記号による連結の生成または削除を含んで
もよい。コピー及び削除は、そのサイトのモジュール中
のプロシージャによって行われる。なぜなら、それらの
操作は、サイトの種類に依存するからである。
nal”中のプロシージャ“reconcile”により、ジャーナ
ルの内部表現に基づいて調停が行われる。調停は、最新
項目、すなわち対象ファイルに関する最も新しい項目に
対してだけ行われる。それ以前の項目は、そのファイル
の古いバージョンの記録である。この調停の目的は、す
べてのサイトにそのジャーナル項目とファイルが存在す
るようにすることである。その項目が存在しないサイト
に対しては、このプログラムは、まず競合があるかどう
か調べる。競合がない場合には、その最近項目が存在す
るどれかのサイトからそのファイルがコピーされる。フ
ァイルのコピーは、最新項目に記録されている操作が削
除のときは、実際にはその削除でもよい。また、ディレ
クトリまたは記号による連結の生成または削除を含んで
もよい。コピー及び削除は、そのサイトのモジュール中
のプロシージャによって行われる。なぜなら、それらの
操作は、サイトの種類に依存するからである。
【0075】不一致の検出は、次のようにして行われ
る。後述するように、あるサイトにおいてあるファイル
の最新バージョンがなく、その旧バージョンがあり、他
のサイトに在るそのファイルの最新バージョンがその旧
バージョンから派生したものでないときは、そのサイト
において競合が存在する。導出(操作)の存在は、最新
のバージョンが、関連する一連のユーザの操作によっ
て、旧バージョンから派生したことを示す。このこと
は、その旧バージョンを最新バージョンで置換しても安
全であることを示す。なぜなら、そうすることはその導
出における一連の操作を繰り返すことと同じだからであ
る。導出の欠落は、そのような置換が危険であり、自動
的に行ってはならないことを意味する。
る。後述するように、あるサイトにおいてあるファイル
の最新バージョンがなく、その旧バージョンがあり、他
のサイトに在るそのファイルの最新バージョンがその旧
バージョンから派生したものでないときは、そのサイト
において競合が存在する。導出(操作)の存在は、最新
のバージョンが、関連する一連のユーザの操作によっ
て、旧バージョンから派生したことを示す。このこと
は、その旧バージョンを最新バージョンで置換しても安
全であることを示す。なぜなら、そうすることはその導
出における一連の操作を繰り返すことと同じだからであ
る。導出の欠落は、そのような置換が危険であり、自動
的に行ってはならないことを意味する。
【0076】導出は、古いバージョンを新しいバージョ
ンに変換する一連のステップである。各ステップは、ど
こかのサイトのジャーナルに、1つの項目の次にもう1
つの項目が続き、そのサイトではそれらの間にそのファ
イルに関する他の項目が存在しないような連続した1対
の項目として、直接に表わされている。他のサイトでは
それらの項目の間に入るような項目が存在するかも知れ
ない。それは、どこか別のサイトにおける競合を意味
し、いま関心を持つ導出に対しては競合の発生を意味し
ない。あるサイトにおけるこの連続性は、2つの連続す
るバージョンのうちの新しい方のバージョンが、その2
つのうちの古い方を編集または変更することによって直
接に作成されたことを意味する。導出は追跡記録に似て
いる。なぜなら導出は、古いバージョンを新しいバージ
ョンに変換するためになされたすべての操作を記録する
からである。導出の存在は、モジュール“journal”の
プロシージャ“connected”によって判断される。プロ
シージャ“connected”は、現在のバージョンから関係
のない事象をスキップしながら、前バージョンに到達す
るまで、直接のステップを逆向きにたどる。
ンに変換する一連のステップである。各ステップは、ど
こかのサイトのジャーナルに、1つの項目の次にもう1
つの項目が続き、そのサイトではそれらの間にそのファ
イルに関する他の項目が存在しないような連続した1対
の項目として、直接に表わされている。他のサイトでは
それらの項目の間に入るような項目が存在するかも知れ
ない。それは、どこか別のサイトにおける競合を意味
し、いま関心を持つ導出に対しては競合の発生を意味し
ない。あるサイトにおけるこの連続性は、2つの連続す
るバージョンのうちの新しい方のバージョンが、その2
つのうちの古い方を編集または変更することによって直
接に作成されたことを意味する。導出は追跡記録に似て
いる。なぜなら導出は、古いバージョンを新しいバージ
ョンに変換するためになされたすべての操作を記録する
からである。導出の存在は、モジュール“journal”の
プロシージャ“connected”によって判断される。プロ
シージャ“connected”は、現在のバージョンから関係
のない事象をスキップしながら、前バージョンに到達す
るまで、直接のステップを逆向きにたどる。
【0077】不要の事象の廃棄(ステップ4)に関して
は、不用になった事象を廃棄する何らかの方法がなけれ
ば、ジャーナルファイルは無限に大きくなる。あるサイ
トの事象は、そのサイトに同じファイルに関するそれよ
りも新しい事象が存在する場合には、そのサイトでは不
用になる。ある事象がすべてのサイトにおいて不用のと
きは、その事象は決して不一致を引き起こすことはない
ので、捨てることができる。
は、不用になった事象を廃棄する何らかの方法がなけれ
ば、ジャーナルファイルは無限に大きくなる。あるサイ
トの事象は、そのサイトに同じファイルに関するそれよ
りも新しい事象が存在する場合には、そのサイトでは不
用になる。ある事象がすべてのサイトにおいて不用のと
きは、その事象は決して不一致を引き起こすことはない
ので、捨てることができる。
【0078】すべてのサイトにおけるバージョンの導出
を追跡するために、ジャーナルは“既知のサイト”のリ
ストを含む。各サイトには、そのサイトが関与した最近
の調停の日時が付けられている。このリストは、調停が
発生したときに、伝達され、更新される。既知のサイト
の日時は、情報がその既知のサイトからいつ送られてき
たかを示す。さらに、各既知のサイトは、受信通知のリ
ストを生成することによって、これらのタイムスタンプ
を保存する。
を追跡するために、ジャーナルは“既知のサイト”のリ
ストを含む。各サイトには、そのサイトが関与した最近
の調停の日時が付けられている。このリストは、調停が
発生したときに、伝達され、更新される。既知のサイト
の日時は、情報がその既知のサイトからいつ送られてき
たかを示す。さらに、各既知のサイトは、受信通知のリ
ストを生成することによって、これらのタイムスタンプ
を保存する。
【0079】受信通知は、その既知のサイトの名前、そ
のサイトに知られているサイトの名前、その送信元のサ
イトのタイムスタンプを与える。再び、これらの受信通
知は伝達され、適宜に更新される。送信元のサイトは、
その受信通知のタイムスタンプを利用して、事象が他の
サイトでいつ不用になったかを判断する。最も古い受信
通知の日時よりも前に発生した事象は、すべての既知の
サイトに伝達されているはずである。そのため、それ以
前の事象は、競合を引き起こすことなく捨てることがで
きる。
のサイトに知られているサイトの名前、その送信元のサ
イトのタイムスタンプを与える。再び、これらの受信通
知は伝達され、適宜に更新される。送信元のサイトは、
その受信通知のタイムスタンプを利用して、事象が他の
サイトでいつ不用になったかを判断する。最も古い受信
通知の日時よりも前に発生した事象は、すべての既知の
サイトに伝達されているはずである。そのため、それ以
前の事象は、競合を引き起こすことなく捨てることがで
きる。
【0080】最後に、消滅したサイトについて発生する
可能性のある問題がある。もし、あるサイトが受信通知
を生成しないと、そのことは事象の無限の蓄積を引き起
こす。これを防ぐために、プログラムは、あるサイトか
ら連絡を受けたのが1ケ月以上前であるサイトについて
警告を出し、2ケ月後には既知のサイトのリストからそ
れらのリストを削除する。
可能性のある問題がある。もし、あるサイトが受信通知
を生成しないと、そのことは事象の無限の蓄積を引き起
こす。これを防ぐために、プログラムは、あるサイトか
ら連絡を受けたのが1ケ月以上前であるサイトについて
警告を出し、2ケ月後には既知のサイトのリストからそ
れらのリストを削除する。
【0081】ジャーナルファイルの形式に関しては、ジ
ャーナルファイルは、テキストエディタを使って読んだ
り変更したりすることができる標準的なテキストファイ
ルである。これらのファイルは、1つの項目が1行にな
っており、さらに、1行のヘッダ行を持つ。ヘッダ行の
形式は次の通りである。 Journal of <サイト名><日付><時刻> − <プロ
グラム名>
ャーナルファイルは、テキストエディタを使って読んだ
り変更したりすることができる標準的なテキストファイ
ルである。これらのファイルは、1つの項目が1行にな
っており、さらに、1行のヘッダ行を持つ。ヘッダ行の
形式は次の通りである。 Journal of <サイト名><日付><時刻> − <プロ
グラム名>
【0082】ここで、<サイト名>はその中でのファイ
ルに関する事象をジャーナルに記録しようとするファイ
ル構造の完全に修飾された名前、<日付>および<時刻
>はそのジャーナルが書かれた日時、<プログラム名>
はそのジャーナルを書いた特定のプログラムの識別子で
ある。
ルに関する事象をジャーナルに記録しようとするファイ
ル構造の完全に修飾された名前、<日付>および<時刻
>はそのジャーナルが書かれた日時、<プログラム名>
はそのジャーナルを書いた特定のプログラムの識別子で
ある。
【0083】各項目行は、固定された1組のフィールド
を含む。フィールドはタブによって区切られる。形式は
次の通りである。 <動詞> <日付> <時刻> <名前><種類> ここに、 <動詞> 限定された数の1組の可能な操作を表す文字
列のうちの1つである。 + create(作成)または update(更新)。新しい
バージョンを作成する。 − delete(削除) * どこか他のサイトにより新しいバージョンがあ
る。しかしながら、そのバージョンは、このサイトのそ
れよりも古いバージョンと競合する。 <日付> その操作がなされた日付(yy/mm/dd 形
式)。 <時刻> その操作がなされた時刻(hh:mm:ss 形
式)。 <名前> ファイル名。ファイル名の後には直に”種
類”が続く(間にタブが入れられない)。 <種類> 1文字。 通常のファイルには何も付かない。 / サブディレクトリ @ シンボリック・リンク
を含む。フィールドはタブによって区切られる。形式は
次の通りである。 <動詞> <日付> <時刻> <名前><種類> ここに、 <動詞> 限定された数の1組の可能な操作を表す文字
列のうちの1つである。 + create(作成)または update(更新)。新しい
バージョンを作成する。 − delete(削除) * どこか他のサイトにより新しいバージョンがあ
る。しかしながら、そのバージョンは、このサイトのそ
れよりも古いバージョンと競合する。 <日付> その操作がなされた日付(yy/mm/dd 形
式)。 <時刻> その操作がなされた時刻(hh:mm:ss 形
式)。 <名前> ファイル名。ファイル名の後には直に”種
類”が続く(間にタブが入れられない)。 <種類> 1文字。 通常のファイルには何も付かない。 / サブディレクトリ @ シンボリック・リンク
【0084】補足行は、各既知サイトが関与した最近の
調停の日付と時刻を与える。補足行の形式は次の通りで
ある。 $ <日付> <時刻> <サイト名> 既知サイト行の直後には、受信通知を返すサイトの受信
通知が続く。受信通知の形式は次の通りである。 . <日付> <時刻> <サイト名> ここで、受信通知サイトは、ただ調停日時をその送信元
(直前の既知のサイトの行に名前がある)に送り返すだ
けである。
調停の日付と時刻を与える。補足行の形式は次の通りで
ある。 $ <日付> <時刻> <サイト名> 既知サイト行の直後には、受信通知を返すサイトの受信
通知が続く。受信通知の形式は次の通りである。 . <日付> <時刻> <サイト名> ここで、受信通知サイトは、ただ調停日時をその送信元
(直前の既知のサイトの行に名前がある)に送り返すだ
けである。
【0085】以上のように、この発明の好ましい実施例
を示したので、この分野に熟達した人々には、この発明
の考え方の範囲内でいろいろな修正や変更が可能である
ことが、思い浮ぶであろう。したがって、この発明の範
囲は、特許請求範囲の記載によってのみ定められるべき
である。
を示したので、この分野に熟達した人々には、この発明
の考え方の範囲内でいろいろな修正や変更が可能である
ことが、思い浮ぶであろう。したがって、この発明の範
囲は、特許請求範囲の記載によってのみ定められるべき
である。
【0086】上述した事柄を整理すると、次のようにな
る。重要なことは、あるファイルが2つの場所でいつ編
集されたか、何がなされたか、その2つのバージョンの
マージの許可を出すか否か、何に基づいて行うかなどを
知ることである。したがって、マージが安全に行われる
システムを案出することが重要である。また、内容の競
合が見つかったとき、その競合がいつでも自動的にでは
なく、競合があることを警告された操作者の選択によっ
て解決されるようなシステムを提供することも重要であ
る。
る。重要なことは、あるファイルが2つの場所でいつ編
集されたか、何がなされたか、その2つのバージョンの
マージの許可を出すか否か、何に基づいて行うかなどを
知ることである。したがって、マージが安全に行われる
システムを案出することが重要である。また、内容の競
合が見つかったとき、その競合がいつでも自動的にでは
なく、競合があることを警告された操作者の選択によっ
て解決されるようなシステムを提供することも重要であ
る。
【0087】競合の有無を判断する1つの先行技術の方
法は、1つの中心となる場所において、起こったことを
記録する所謂“ジャーナリング”技術であることに注意
されたい。1つの中心的役割を与えられたコンピュータ
を用いることによって、順読みログまたはジャーナル方
式の調停が行われる。しかしながら、集中化されたジャ
ーナルを作成して保存するのではなく、各コンピュータ
またはシステムが自分のジャーナルを作成して保存する
のが、この発明の特徴である。このジャーナルは、ファ
イルのバージョンの履歴であり、編集されたファイル及
びその日付/時刻を示す。競合を判断する場合には、関
係する編集の種類についての詳細を記録するようにして
もよい。
法は、1つの中心となる場所において、起こったことを
記録する所謂“ジャーナリング”技術であることに注意
されたい。1つの中心的役割を与えられたコンピュータ
を用いることによって、順読みログまたはジャーナル方
式の調停が行われる。しかしながら、集中化されたジャ
ーナルを作成して保存するのではなく、各コンピュータ
またはシステムが自分のジャーナルを作成して保存する
のが、この発明の特徴である。このジャーナルは、ファ
イルのバージョンの履歴であり、編集されたファイル及
びその日付/時刻を示す。競合を判断する場合には、関
係する編集の種類についての詳細を記録するようにして
もよい。
【0088】ファイルが同じで、かつジャーナルが一致
するときは、バージョン間の競合はない。それに対し
て、1つのコンピュータでだけ仕事をして、他方のコン
ピュータでは仕事をせず、その結果生じたファイルのバ
ージョンを他方のコンピュータにあるバージョンとマー
ジするときは、この発明のシステムは、2つのジャーナ
ルを比較して、一方のジャーナルに他方のジャーナルよ
りも多くの項目が記録されているか否かを調べるため
に、2つのジャーナルを比較する。この比較は、マージ
操作時には簡易化されていることに注意されたい。2つ
のジャーナルに記録されている項目のどれかが相違する
ときは、システムは、ジャーナルによって競合の存在が
示されないファイルを自動的にコピーし、かつユーザに
対して、見つかった競合を解決するために幾つかの対応
策が取れることを知らせる。
するときは、バージョン間の競合はない。それに対し
て、1つのコンピュータでだけ仕事をして、他方のコン
ピュータでは仕事をせず、その結果生じたファイルのバ
ージョンを他方のコンピュータにあるバージョンとマー
ジするときは、この発明のシステムは、2つのジャーナ
ルを比較して、一方のジャーナルに他方のジャーナルよ
りも多くの項目が記録されているか否かを調べるため
に、2つのジャーナルを比較する。この比較は、マージ
操作時には簡易化されていることに注意されたい。2つ
のジャーナルに記録されている項目のどれかが相違する
ときは、システムは、ジャーナルによって競合の存在が
示されないファイルを自動的にコピーし、かつユーザに
対して、見つかった競合を解決するために幾つかの対応
策が取れることを知らせる。
【0089】同じファイルの異なるバージョンは、この
ように、各コンピュータにおいてそれぞれその場所のジ
ャーナルを作成して保持し、ユーザによって指定された
時に2つのジャーナルを比較し、そうするのが適当なと
きは自動的にファイルを更新し、そうでないときはその
ような自動的な更新が適当でない旨の表示をユーザに提
供することによって調停される。
ように、各コンピュータにおいてそれぞれその場所のジ
ャーナルを作成して保持し、ユーザによって指定された
時に2つのジャーナルを比較し、そうするのが適当なと
きは自動的にファイルを更新し、そうでないときはその
ような自動的な更新が適当でない旨の表示をユーザに提
供することによって調停される。
【0090】さらに具体的に言えば、この発明のシステ
ムは、必要とされないファイルであると判断されたファ
イルを消去するか、置換操作で最近のファイルをその最
近のファイルが存在しないコンピュータにコピーするよ
うに構成することができる。どこかの時点で、両方のコ
ンピュータのジャーナルは、同時に新たに始められる。
その後、ジャーナルが変化しないときは、ユーザに対し
て競合があるという表示を行う必要はない。それらのジ
ャーナルのうちの1つが1つの場所だけで変化したとき
は、ただ単に、指示に従って他方のサイトのマシンに同
じ操作をするように指令することが可能である。しかし
ながら、両方のジャーナルが変化したときは、ユーザに
競合が解決できないことを警告することが非常に重要で
ある。
ムは、必要とされないファイルであると判断されたファ
イルを消去するか、置換操作で最近のファイルをその最
近のファイルが存在しないコンピュータにコピーするよ
うに構成することができる。どこかの時点で、両方のコ
ンピュータのジャーナルは、同時に新たに始められる。
その後、ジャーナルが変化しないときは、ユーザに対し
て競合があるという表示を行う必要はない。それらのジ
ャーナルのうちの1つが1つの場所だけで変化したとき
は、ただ単に、指示に従って他方のサイトのマシンに同
じ操作をするように指令することが可能である。しかし
ながら、両方のジャーナルが変化したときは、ユーザに
競合が解決できないことを警告することが非常に重要で
ある。
【0091】この発明においては、調停はコピーまたは
削除の概念を含むだけでなく、保存されるログ中の個々
の項目の内容の詳しさの程度を高めて、タイムスタンプ
を基準として行われる単純なマージ(併合)/パージ
(消去)はうまくいかないことをユーザに警告すること
ができる。例えば、警告されたとき、ユーザは、2つの
ファイルの相違する部分を強調表示する DIFF と呼ばれ
るプログラムを走らせることができる。その時点で、ユ
ーザは、2つのファイルのうちのどちらを望むかあるい
はどのファイルにどのような変更を加えるかを決めるこ
とができる。
削除の概念を含むだけでなく、保存されるログ中の個々
の項目の内容の詳しさの程度を高めて、タイムスタンプ
を基準として行われる単純なマージ(併合)/パージ
(消去)はうまくいかないことをユーザに警告すること
ができる。例えば、警告されたとき、ユーザは、2つの
ファイルの相違する部分を強調表示する DIFF と呼ばれ
るプログラムを走らせることができる。その時点で、ユ
ーザは、2つのファイルのうちのどちらを望むかあるい
はどのファイルにどのような変更を加えるかを決めるこ
とができる。
【0092】このように、この発明では、分散ファイル
システムにおいて、システムは、ユーザに、単に1組の
ファイルが存在するという印象を与えるのではなく、ユ
ーザの都合のいい時にでよいがときどき調停しなければ
ならない1つのファイルの異なるバージョンが存在する
という印象を与える。本システムは、ユーザの要求に応
じて調停を行うことによって、同じファイルの複数のバ
ージョンの問題を解決する。各コンピュータはそれぞ
れ、同じファイルの場所ごとのバージョン(ローカルバ
ージョン)を持ち、それらのバージョンは、その場所で
ファイルに加えられた変更について記録した各場所のジ
ャーナルを比較し、競合する変更が見つかったとき、ユ
ーザの干渉を求めながら調停される。
システムにおいて、システムは、ユーザに、単に1組の
ファイルが存在するという印象を与えるのではなく、ユ
ーザの都合のいい時にでよいがときどき調停しなければ
ならない1つのファイルの異なるバージョンが存在する
という印象を与える。本システムは、ユーザの要求に応
じて調停を行うことによって、同じファイルの複数のバ
ージョンの問題を解決する。各コンピュータはそれぞ
れ、同じファイルの場所ごとのバージョン(ローカルバ
ージョン)を持ち、それらのバージョンは、その場所で
ファイルに加えられた変更について記録した各場所のジ
ャーナルを比較し、競合する変更が見つかったとき、ユ
ーザの干渉を求めながら調停される。
【0093】この調停システムの用途には、ファイルの
リストの作成と調停、会社向けアプリケション(応用ソ
フトウェア)、データベース管理システムなどが含まれ
る。また、ハードウェアには、オルガナイザー、パーム
トップ、ペンを使用するタブレット、及びノートブック
なども含めることができる。このシステムのさらに他の
用途には、ファイルの内部のレコードをマージすること
も含まれる。また、ジャーナルをやり取りすることによ
って一括更新することも可能である。さらに、例えばワ
ーキングセッションの開始または終了時に、ユーザまた
はアプリケーションの指示にしたがって調停が実施され
るようにしてもよいことが、この発明の1つの重要な特
徴である。
リストの作成と調停、会社向けアプリケション(応用ソ
フトウェア)、データベース管理システムなどが含まれ
る。また、ハードウェアには、オルガナイザー、パーム
トップ、ペンを使用するタブレット、及びノートブック
なども含めることができる。このシステムのさらに他の
用途には、ファイルの内部のレコードをマージすること
も含まれる。また、ジャーナルをやり取りすることによ
って一括更新することも可能である。さらに、例えばワ
ーキングセッションの開始または終了時に、ユーザまた
はアプリケーションの指示にしたがって調停が実施され
るようにしてもよいことが、この発明の1つの重要な特
徴である。
【0094】要約すると、この発明のファイルシステム
は、分散ファイル環境において、1つのサイトでファイ
ルになされた仕事を他のサイトで同じファイルになされ
た仕事のために失う危険なしにファイルを安全に更新す
るためのシステムであり、ファイルが変更されると、そ
れに応じて更新されるジャーナルまたはログを各サイト
ごとに作成し保存することを含む。そして、どこかのサ
イトにおいてファイルの最新のバージョンが必要とされ
るとき、この発明のファイルシステムは、そのサイトの
ログを他のサイトからのログと比較する。
は、分散ファイル環境において、1つのサイトでファイ
ルになされた仕事を他のサイトで同じファイルになされ
た仕事のために失う危険なしにファイルを安全に更新す
るためのシステムであり、ファイルが変更されると、そ
れに応じて更新されるジャーナルまたはログを各サイト
ごとに作成し保存することを含む。そして、どこかのサ
イトにおいてファイルの最新のバージョンが必要とされ
るとき、この発明のファイルシステムは、そのサイトの
ログを他のサイトからのログと比較する。
【0095】必要とされるファイルの最新のバージョン
が他のサイトに存在するとき、そして、そのサイトの古
いバージョンをその最新のバージョンで更新しても問題
が発生しないときは、そのサイトの古いバージョンをそ
の最新のバージョンで自動的に更新する。競合するバー
ジョンがあるときは、そのことをユーザに警告する。そ
のため、古いバージョンを持つサイトに、自動的にかつ
安全に、新しいバージョンを送ることができる。
が他のサイトに存在するとき、そして、そのサイトの古
いバージョンをその最新のバージョンで更新しても問題
が発生しないときは、そのサイトの古いバージョンをそ
の最新のバージョンで自動的に更新する。競合するバー
ジョンがあるときは、そのことをユーザに警告する。そ
のため、古いバージョンを持つサイトに、自動的にかつ
安全に、新しいバージョンを送ることができる。
【0096】同じファイルの異なるバージョンは、この
ように、各コンピュータにおいてそのサイトのジャーナ
ルを作成し、ユーザによって指定された時に2つのジャ
ーナルを比較し、そうするのが適当なときは自動的にフ
ァイルを更新し、そうでないときはそのような自動的な
更新が適当でない旨の表示をユーザに提供することによ
って調停される。
ように、各コンピュータにおいてそのサイトのジャーナ
ルを作成し、ユーザによって指定された時に2つのジャ
ーナルを比較し、そうするのが適当なときは自動的にフ
ァイルを更新し、そうでないときはそのような自動的な
更新が適当でない旨の表示をユーザに提供することによ
って調停される。
【0097】この調停は、そうしても安全であり、かつ
そうすることが必要なファイルだけを自動的に更新する
ように、ファイルの集合に対して適用できる。また、調
停はユーザによって選択された時に行うので、ファイル
の一致しないバージョンまたは部分的に完成したバージ
ョンは、他のサイトには伝えられない。
そうすることが必要なファイルだけを自動的に更新する
ように、ファイルの集合に対して適用できる。また、調
停はユーザによって選択された時に行うので、ファイル
の一致しないバージョンまたは部分的に完成したバージ
ョンは、他のサイトには伝えられない。
【0098】さらに、ログは、ファイル及びそれらのタ
イムスタンプに関してシステムの状態をときどき調べ
て、ファイルの出現、消滅及び変更を示すログ項目を追
加することによって更新される。また、各サイトが調停
に参加した最近の時を示す追加のログ項目を挿入し、そ
れ以前のすべてのサイトが見た古い項目を消去すること
によって、ログから不用の項目をー掃することができ
る。
イムスタンプに関してシステムの状態をときどき調べ
て、ファイルの出現、消滅及び変更を示すログ項目を追
加することによって更新される。また、各サイトが調停
に参加した最近の時を示す追加のログ項目を挿入し、そ
れ以前のすべてのサイトが見た古い項目を消去すること
によって、ログから不用の項目をー掃することができ
る。
【0099】
【発明の効果】以上のように、この発明の請求項1に係
るログ生成装置によれば、検査手段によりファイルシス
テム上のファイルの現在の状態を検査し、その検査手段
に応答動作してファイルの作成、変更、削除を示すログ
項目を生成することにより、分散ファイル環境におい
て、あるサイトでなされたあるファイルへの作業が他の
サイトでそのファイルへの作業の結果失われてしまうと
いった危険を犯すことなく安全にファイルを更新するた
めに、ファイルが修正された後に各々のサイトで更新さ
れるログを用いることが可能になるという効果がある。
るログ生成装置によれば、検査手段によりファイルシス
テム上のファイルの現在の状態を検査し、その検査手段
に応答動作してファイルの作成、変更、削除を示すログ
項目を生成することにより、分散ファイル環境におい
て、あるサイトでなされたあるファイルへの作業が他の
サイトでそのファイルへの作業の結果失われてしまうと
いった危険を犯すことなく安全にファイルを更新するた
めに、ファイルが修正された後に各々のサイトで更新さ
れるログを用いることが可能になるという効果がある。
【0100】また、請求項2に係るログ生成装置によれ
ば、請求項1の装置であって、上記検査手段は、時々上
記検査を行うための手段を含むことにより、必要になる
ファイルに対して更新を可能にすることができるという
効果がある。
ば、請求項1の装置であって、上記検査手段は、時々上
記検査を行うための手段を含むことにより、必要になる
ファイルに対して更新を可能にすることができるという
効果がある。
【0101】また、請求項3に係るファイルの異なるバ
ージョンを調停するための装置によれば、異なる場所に
ある1つのファイルの異なるバージョンを調停するため
の装置において、ファイルが変更された場所の各々にお
いてファイルシステムの動作のログ項目を生成し、いく
つかのただしすべてではない場所における動作を見分け
るために異なる場所におけるファイルシステムの動作の
ログを比較し、ファイルシステムの動作のログを比較す
ることによって各場所のバージョンを揃えるために必要
な動作を決定し、上記各場所のバージョンを揃えようと
する動作によりファイルの情報が失われる可能性がある
かどうかを判断することにより、いかなるサイトでもフ
ァイルが用いられる以前に他のサイトからのログと比較
されるため、異なるサイト上に矛盾するジャーナルのフ
ァイルが存在するならば利用者がすぐに変更することに
よって、新たなジャーナルのファイルは、古いジャーナ
ルのサイトへ自動的にかつ安全に伝達されるのを可能に
することができるという効果がある。
ージョンを調停するための装置によれば、異なる場所に
ある1つのファイルの異なるバージョンを調停するため
の装置において、ファイルが変更された場所の各々にお
いてファイルシステムの動作のログ項目を生成し、いく
つかのただしすべてではない場所における動作を見分け
るために異なる場所におけるファイルシステムの動作の
ログを比較し、ファイルシステムの動作のログを比較す
ることによって各場所のバージョンを揃えるために必要
な動作を決定し、上記各場所のバージョンを揃えようと
する動作によりファイルの情報が失われる可能性がある
かどうかを判断することにより、いかなるサイトでもフ
ァイルが用いられる以前に他のサイトからのログと比較
されるため、異なるサイト上に矛盾するジャーナルのフ
ァイルが存在するならば利用者がすぐに変更することに
よって、新たなジャーナルのファイルは、古いジャーナ
ルのサイトへ自動的にかつ安全に伝達されるのを可能に
することができるという効果がある。
【0102】また、請求項4に係るファイルの異なるバ
ージョンを調停するための装置によれば、請求項3の装
置において、さらに、ファイルをコピーまたは消去する
ことによって、上記決定されたファイルのバージョンを
揃えるための動作を実行するための手段を含むことによ
り、競合の存在が示されないファイルはコピーされ、必
要とされないファイルは消去されて、調停が行われると
いう効果がある。
ージョンを調停するための装置によれば、請求項3の装
置において、さらに、ファイルをコピーまたは消去する
ことによって、上記決定されたファイルのバージョンを
揃えるための動作を実行するための手段を含むことによ
り、競合の存在が示されないファイルはコピーされ、必
要とされないファイルは消去されて、調停が行われると
いう効果がある。
【0103】また、請求項5に係るファイルの異なるバ
ージョンを調停するための装置によれば、請求項3の装
置において、上記ログ中のある項目の直後に同じファイ
ルのための項目が存在し、かつ上記後の項目が他のすべ
ての場所にも存在するときに、上記前の項目を削除する
ことによって不用になったログ項目を削除するための手
段を含むことにより、不用になった古いログ項目を一掃
することができるという効果がある。
ージョンを調停するための装置によれば、請求項3の装
置において、上記ログ中のある項目の直後に同じファイ
ルのための項目が存在し、かつ上記後の項目が他のすべ
ての場所にも存在するときに、上記前の項目を削除する
ことによって不用になったログ項目を削除するための手
段を含むことにより、不用になった古いログ項目を一掃
することができるという効果がある。
【0104】また、請求項6に係るファイルの異なるバ
ージョンを調停するための装置によれば、請求項4の装
置において、さらに、上記各場所のバージョンを揃えよ
うとする動作によりファイルの情報が失われる可能性が
あるとき、そのことをユーザに知らせるための手段を含
むことにより、警告を発することが可能になるという効
果がある。
ージョンを調停するための装置によれば、請求項4の装
置において、さらに、上記各場所のバージョンを揃えよ
うとする動作によりファイルの情報が失われる可能性が
あるとき、そのことをユーザに知らせるための手段を含
むことにより、警告を発することが可能になるという効
果がある。
【0105】また、請求項7に係るファイルの異なるバ
ージョンを調停するための装置によれば、請求項6の装
置において、さらに異なる場所のログにバージョンの更
新操作を行うと情報の損失が発生する可能性がある相違
が見つかったとき、そのことをユーザに知らせるための
手段を含むことにより、ファイルの変更操作を促すこと
ができるという効果がある。
ージョンを調停するための装置によれば、請求項6の装
置において、さらに異なる場所のログにバージョンの更
新操作を行うと情報の損失が発生する可能性がある相違
が見つかったとき、そのことをユーザに知らせるための
手段を含むことにより、ファイルの変更操作を促すこと
ができるという効果がある。
【0106】また、請求項8に係るファイルの異なるバ
ージョンを調停するための装置によれば、請求項6の装
置において、さらに不用になったログ項目を削除するた
めの手段を含むことにより、不用になったログ項目を一
掃することができるという効果がある。
ージョンを調停するための装置によれば、請求項6の装
置において、さらに不用になったログ項目を削除するた
めの手段を含むことにより、不用になったログ項目を一
掃することができるという効果がある。
【0107】また、請求項9に係るファイルの異なるバ
ージョンを調停するための装置によれば、請求項6の装
置において、さらにある場所においてファイルの調停を
行ったとき、調停の発生及びその日時を他のすべての場
所に伝達するための手段を含むことにより、異なる場所
のユーザに調停があったことを知らせることができると
いう効果がある。
ージョンを調停するための装置によれば、請求項6の装
置において、さらにある場所においてファイルの調停を
行ったとき、調停の発生及びその日時を他のすべての場
所に伝達するための手段を含むことにより、異なる場所
のユーザに調停があったことを知らせることができると
いう効果がある。
【0108】さらに、請求項10に係る異なる場所にあ
るコンピュータファイルの異なるバージョンを調停する
ための装置によれば、少なくとも同じファイルの1つの
バージョンが各場所において変更された日時に対応する
項目を含むログを生成し、ある場所のログの項目を、他
の場所のログの項目と比較し、それらの間の相違を調
べ、上記2つのログに相違がないか、または上記2つの
ログの相違がバージョンの更新操作を行うと情報の損失
が発生しないような相違であるとき、上記ある場所にお
いて上記ファイルのバージョンを自動的に更新すると共
に、上記2つのログの間の相違がバージョンの更新操作
により情報の損失が発生する可能性を示す相違であると
き、上記自動的な更新を停止させることにより、異なる
場所にあるコンピュータファイルの異なるバージョンの
調停がなされるという効果がある。
るコンピュータファイルの異なるバージョンを調停する
ための装置によれば、少なくとも同じファイルの1つの
バージョンが各場所において変更された日時に対応する
項目を含むログを生成し、ある場所のログの項目を、他
の場所のログの項目と比較し、それらの間の相違を調
べ、上記2つのログに相違がないか、または上記2つの
ログの相違がバージョンの更新操作を行うと情報の損失
が発生しないような相違であるとき、上記ある場所にお
いて上記ファイルのバージョンを自動的に更新すると共
に、上記2つのログの間の相違がバージョンの更新操作
により情報の損失が発生する可能性を示す相違であると
き、上記自動的な更新を停止させることにより、異なる
場所にあるコンピュータファイルの異なるバージョンの
調停がなされるという効果がある。
【図1】 仕事場のコンピュータから離れた場所、例え
ば自宅内へのファイルのバージョンの移動を示す説明図
である。
ば自宅内へのファイルのバージョンの移動を示す説明図
である。
【図2】 2つの異なる場所におけるファイルの変更に
よって同じファイルの2つの異なるバージョンが生じる
問題を示す説明図である。
よって同じファイルの2つの異なるバージョンが生じる
問題を示す説明図である。
【図3】 いろいろなサイトにおけるログの生成と自動
的な更新またはログの比較が不一致を示したときの手操
作による更新を許可する前に行われるログの比較を含む
ファイルのバージョンを調停するための方法の説明図で
ある。
的な更新またはログの比較が不一致を示したときの手操
作による更新を許可する前に行われるログの比較を含む
ファイルのバージョンを調停するための方法の説明図で
ある。
【図4】 2つのサイトにジャーナルの生成、結合ジャ
ーナルの形成、競合の検出、および競合の解決策に基づ
く処理の提供を示すブロック線図である。
ーナルの形成、競合の検出、および競合の解決策に基づ
く処理の提供を示すブロック線図である。
【図5】 ジャーナルおよび更新が必要でない状態、更
新が必要な状態、削除が必要な状態、および競合が警告
されるべき状態を示す説明図である。
新が必要な状態、削除が必要な状態、および競合が警告
されるべき状態を示す説明図である。
22、26 記憶装置、24、28、30、32 ディ
スケット、40、46 記憶装置、42、48、52、
56 ログ生成手段、44、50、54、58 ディス
ケット、60 比較手段、62 警告手段、66、6
8、70 ジャーナル。
スケット、40、46 記憶装置、42、48、52、
56 ログ生成手段、44、50、54、58 ディス
ケット、60 比較手段、62 警告手段、66、6
8、70 ジャーナル。
Claims (10)
- 【請求項1】 ファイルシステムの動作のログを生成す
るための装置であって、 上記ファイルシステム上のファイルの現在の状態を検査
するための手段と、 上記検査手段に応答動作してファイルの作成、変更、削
除を示すログ項目を生成するための手段を含むログ生成
装置。 - 【請求項2】 請求項1の装置であって、上記検査手段
は、時々上記検査を行うための手段を含むログ生成装
置。 - 【請求項3】 異なる場所にある1つのファイルの異な
るバージョンを調停するための装置であって、 ファイルが変更された場所の各々においてファイルシス
テムの動作のログ項目を生成するための手段と、 いくつかのただしすべてではない場所における動作を見
分けるために異なる場所におけるファイルシステムの動
作のログを比較する手段、 ファイルシステムの動作のログを比較することによって
各場所のバージョンを揃えるために必要な動作を決定す
るための手段、及び上記各場所のバージョンを揃えよう
とする動作によりファイルの情報が失われる可能性があ
るかどうかを判断するための手段を含むファイルの異な
るバージョンの調停のための装置。 - 【請求項4】 請求項3の装置であって、さらに、ファ
イルをコピーまたは消去することによって、上記決定さ
れたファイルのバージョンを揃えるための動作を実行す
るための手段を含むファイルの異なるバージョンの調停
のための装置。 - 【請求項5】 請求項3の装置であって、上記ログ中の
ある項目の直後に同じファイルのための項目が存在し、
かつ上記後の項目が他のすべての場所にも存在するとき
に、上記前の項目を削除することによって不用になった
ログ項目を削除するための手段を含むファイルの異なる
バージョンの調停のための装置。 - 【請求項6】 請求項4の装置であって、さらに、上記
各場所のバージョンを揃えようとする動作によりファイ
ルの情報が失われる可能性があるとき、そのことをユー
ザに知らせるための手段を含むファイルの異なるバージ
ョンの調停のための装置。 - 【請求項7】 請求項6の装置であって、さらに異なる
場所のログにバージョンの更新操作を行うと情報の損失
が発生する可能性がある相違が見つかったとき、そのこ
とをユーザに知らせるための手段を含むファイルの異な
るバージョンの調停のための装置。 - 【請求項8】 請求項6の装置であって、さらに不用に
なったログ項目を削除するための手段を含むファイルの
異なるバージョンの調停のための装置。 - 【請求項9】 請求項6の装置であって、さらにある場
所においてファイルの調停を行ったとき、調停の発生及
びその日時を他のすべての場所に伝達するための手段を
含むファイルの異なるバージョンの調停のための装置。 - 【請求項10】 異なる場所にあるコンピュータファイ
ルの異なるバージョンを調停するための装置であって、 少なくとも同じファイルの1つのバージョンが各場所に
おいて変更された日時に対応する項目を含むログを生成
するための手段、 ある場所のログの項目を、他の場所のログの項目と比較
し、それらの間の相違を調べるための手段、 上記2つのログに相違がないか、または上記2つのログ
の相違がバージョンの更新操作を行うと情報の損失が発
生しないような相違であるとき、上記ある場所において
上記ファイルのバージョンを自動的に更新するための手
段、及び上記2つのログの間の相違がバージョンの更新
操作により情報の損失が発生する可能性を示す相違であ
るとき、上記自動的な更新を停止させるための手段を含
む異なる場所にあるコンピュータファイルの異なるバー
ジョンを調停するための装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6167493A | 1993-05-14 | 1993-05-14 | |
US08/061674 | 1993-05-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06324928A true JPH06324928A (ja) | 1994-11-25 |
Family
ID=22037359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6099703A Pending JPH06324928A (ja) | 1993-05-14 | 1994-05-13 | ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5600834A (ja) |
JP (1) | JPH06324928A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005507100A (ja) * | 2001-05-25 | 2005-03-10 | オラクル・インターナショナル・コーポレイション | ネットワークファイルシステムのための管理および同期化アプリケーション |
JP2006195972A (ja) * | 2005-01-14 | 2006-07-27 | Microsoft Corp | 共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステム |
JP2008269277A (ja) * | 2007-04-20 | 2008-11-06 | Meidensha Corp | 共有データの分散編集システム、分散編集方法およびプログラム |
US8150919B2 (en) | 2005-01-14 | 2012-04-03 | Microsoft Corporation | Method and system for transitioning between synchronous and asynchronous communication modes |
JP2015527646A (ja) * | 2012-06-27 | 2015-09-17 | ドロップボックス, インコーポレイテッド | 同期ファイル用の複数の修正バージョンから好適な修正バージョンの判定 |
JP2016530656A (ja) * | 2013-12-17 | 2016-09-29 | ヒタチ データ システムズ コーポレーションHitachi Data Systems Corporation | 分散型ディザスタリカバリファイル同期サーバシステム |
Families Citing this family (227)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044205A (en) * | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
US7299240B1 (en) | 1992-04-10 | 2007-11-20 | Intellisync Corporation | Method for translating computer data from one record structure to another |
US5666530A (en) | 1992-12-02 | 1997-09-09 | Compaq Computer Corporation | System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between |
JP3402659B2 (ja) * | 1993-05-13 | 2003-05-06 | オリンパス光学工業株式会社 | 画像取り扱い装置 |
GB2297181B (en) * | 1993-09-24 | 1997-11-05 | Oracle Corp | Method and apparatus for data replication |
US5694546A (en) | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US5794251A (en) * | 1994-06-06 | 1998-08-11 | Canon Kabushiki Kaisha | Information file processing apparatus and method |
US5897640A (en) * | 1994-08-08 | 1999-04-27 | Microsoft Corporation | Method and system of associating, synchronizing and reconciling computer files in an operating system |
JPH0869404A (ja) * | 1994-08-29 | 1996-03-12 | Fujitsu Ltd | データのバックアップ方法及びそれを利用したデータ処理装置 |
EP0826181A4 (en) | 1995-04-11 | 2005-02-09 | Kinetech Inc | IDENTIFYING DATA IN A DATA PROCESSING SYSTEM |
US5765171A (en) * | 1995-12-29 | 1998-06-09 | Lucent Technologies Inc. | Maintaining consistency of database replicas |
US6098078A (en) * | 1995-12-29 | 2000-08-01 | Lucent Technologies Inc. | Maintaining consistency of database replicas |
US6625617B2 (en) | 1996-01-02 | 2003-09-23 | Timeline, Inc. | Modularized data retrieval method and apparatus with multiple source capability |
US5758358A (en) * | 1996-01-29 | 1998-05-26 | Microsoft Corporation | Method and system for reconciling sections of documents |
US5859971A (en) * | 1996-02-15 | 1999-01-12 | International Business Machines Corp. | Differencing client/server communication system for use with CGI forms |
US5754774A (en) * | 1996-02-15 | 1998-05-19 | International Business Machine Corp. | Client/server communication system |
US5862325A (en) * | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US6006239A (en) * | 1996-03-15 | 1999-12-21 | Microsoft Corporation | Method and system for allowing multiple users to simultaneously edit a spreadsheet |
US5842216A (en) * | 1996-05-03 | 1998-11-24 | Mitsubishi Electric Information Technology Center America, Inc. | System for sending small positive data notification messages over a network to indicate that a recipient node should obtain a particular version of a particular data item |
US7987427B1 (en) * | 1996-05-10 | 2011-07-26 | Apple Inc. | Graphical editor for program files |
US5778389A (en) * | 1996-05-23 | 1998-07-07 | Electronic Data Systems Corporation | Method and system for synchronizing computer file directories |
US6151643A (en) * | 1996-06-07 | 2000-11-21 | Networks Associates, Inc. | Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer |
US5857201A (en) | 1996-06-18 | 1999-01-05 | Wright Strategies, Inc. | Enterprise connectivity to handheld devices |
US5787262A (en) * | 1996-06-26 | 1998-07-28 | Microsoft Corporation | System and method for distributed conflict resolution between data objects replicated across a computer network |
US5812793A (en) * | 1996-06-26 | 1998-09-22 | Microsoft Corporation | System and method for asynchronous store and forward data replication |
US6412017B1 (en) * | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
US5943675A (en) * | 1996-09-25 | 1999-08-24 | Allen-Bradley Company, Llc | Change log historian system for memory shared by multiple workstations |
US5778323A (en) * | 1996-10-04 | 1998-07-07 | Motorola, Inc. | Method and apparatus for facilitating a recovery from a configuration error in a communication system |
US6049809A (en) * | 1996-10-30 | 2000-04-11 | Microsoft Corporation | Replication optimization system and method |
US6330568B1 (en) | 1996-11-13 | 2001-12-11 | Pumatech, Inc. | Synchronization of databases |
US6212529B1 (en) * | 1996-11-13 | 2001-04-03 | Puma Technology, Inc. | Synchronization of databases using filters |
US7013315B1 (en) | 1996-11-13 | 2006-03-14 | Intellisync Corporation | Synchronization of databases with record sanitizing and intelligent comparison |
US5943676A (en) * | 1996-11-13 | 1999-08-24 | Puma Technology, Inc. | Synchronization of recurring records in incompatible databases |
US6405218B1 (en) | 1996-11-13 | 2002-06-11 | Pumatech, Inc. | Synchronizing databases |
US6141664A (en) | 1996-11-13 | 2000-10-31 | Puma Technology, Inc. | Synchronization of databases with date range |
US6044381A (en) | 1997-09-11 | 2000-03-28 | Puma Technology, Inc. | Using distributed history files in synchronizing databases |
US7302446B1 (en) | 1996-11-13 | 2007-11-27 | Intellisync Corporation | Synchronizing databases |
US6014674A (en) * | 1996-11-14 | 2000-01-11 | Sybase, Inc. | Method for maintaining log compatibility in database systems |
US20060129627A1 (en) * | 1996-11-22 | 2006-06-15 | Mangosoft Corp. | Internet-based shared file service with native PC client access and semantics and distributed version control |
US7136903B1 (en) * | 1996-11-22 | 2006-11-14 | Mangosoft Intellectual Property, Inc. | Internet-based shared file service with native PC client access and semantics and distributed access control |
US6202085B1 (en) * | 1996-12-06 | 2001-03-13 | Microsoft Corportion | System and method for incremental change synchronization between multiple copies of data |
US6085192A (en) * | 1997-04-11 | 2000-07-04 | Roampage, Inc. | System and method for securely synchronizing multiple copies of a workspace element in a network |
US6708221B1 (en) * | 1996-12-13 | 2004-03-16 | Visto Corporation | System and method for globally and securely accessing unified information in a computer network |
US20060195595A1 (en) | 2003-12-19 | 2006-08-31 | Mendez Daniel J | System and method for globally and securely accessing unified information in a computer network |
US5961590A (en) * | 1997-04-11 | 1999-10-05 | Roampage, Inc. | System and method for synchronizing electronic mail between a client site and a central site |
US5999947A (en) * | 1997-05-27 | 1999-12-07 | Arkona, Llc | Distributing database differences corresponding to database change events made to a database table located on a server computer |
US5958005A (en) * | 1997-07-17 | 1999-09-28 | Bell Atlantic Network Services, Inc. | Electronic mail security |
US6070184A (en) * | 1997-08-28 | 2000-05-30 | International Business Machines Corporation | Server-side asynchronous form management |
US6035324A (en) * | 1997-08-28 | 2000-03-07 | International Business Machines Corporation | Client-side asynchronous form management |
US6151606A (en) * | 1998-01-16 | 2000-11-21 | Visto Corporation | System and method for using a workspace data manager to access, manipulate and synchronize network data |
US6807632B1 (en) * | 1999-01-21 | 2004-10-19 | Emc Corporation | Content addressable information encapsulation, representation, and transfer |
US6393437B1 (en) * | 1998-01-27 | 2002-05-21 | Microsoft Corporation | Web developer isolation techniques |
US6304881B1 (en) | 1998-03-03 | 2001-10-16 | Pumatech, Inc. | Remote data access and synchronization |
US6484196B1 (en) * | 1998-03-20 | 2002-11-19 | Advanced Web Solutions | Internet messaging system and method for use in computer networks |
US6925477B1 (en) | 1998-03-31 | 2005-08-02 | Intellisync Corporation | Transferring records between two databases |
US6438585B2 (en) * | 1998-05-29 | 2002-08-20 | Research In Motion Limited | System and method for redirecting message attachments between a host system and a mobile data communication device |
US6216175B1 (en) | 1998-06-08 | 2001-04-10 | Microsoft Corporation | Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations |
US6189016B1 (en) * | 1998-06-12 | 2001-02-13 | Microsoft Corporation | Journaling ordered changes in a storage volume |
US6810405B1 (en) | 1998-08-18 | 2004-10-26 | Starfish Software, Inc. | System and methods for synchronizing data between multiple datasets |
US6449622B1 (en) * | 1999-03-08 | 2002-09-10 | Starfish Software, Inc. | System and methods for synchronizing datasets when dataset changes may be received out of order |
US6553376B1 (en) * | 1998-11-18 | 2003-04-22 | Infolibria, Inc. | Efficient content server using request redirection |
US7007003B1 (en) | 1998-12-04 | 2006-02-28 | Intellisync Corporation | Notification protocol for establishing synchronization mode for use in synchronizing databases |
US6735766B1 (en) * | 1999-03-03 | 2004-05-11 | Microsoft Corporation | Method and computer-readable medium for installing an upgrade to an application program |
US6466999B1 (en) | 1999-03-31 | 2002-10-15 | Microsoft Corporation | Preprocessing a reference data stream for patch generation and compression |
US6430576B1 (en) | 1999-05-10 | 2002-08-06 | Patrick Gates | Distributing and synchronizing objects |
US7363330B1 (en) | 1999-06-07 | 2008-04-22 | Symantec Corporation | Work monitor with file synchronization |
US6401104B1 (en) * | 1999-07-03 | 2002-06-04 | Starfish Software, Inc. | System and methods for synchronizing datasets using cooperation among multiple synchronization engines |
US7203962B1 (en) * | 1999-08-30 | 2007-04-10 | Symantec Corporation | System and method for using timestamps to detect attacks |
US6976165B1 (en) * | 1999-09-07 | 2005-12-13 | Emc Corporation | System and method for secure storage, transfer and retrieval of content addressable information |
US6578054B1 (en) | 1999-10-04 | 2003-06-10 | Microsoft Corporation | Method and system for supporting off-line mode of operation and synchronization using resource state information |
US6578069B1 (en) * | 1999-10-04 | 2003-06-10 | Microsoft Corporation | Method, data structure, and computer program product for identifying a network resource |
US6944642B1 (en) * | 1999-10-04 | 2005-09-13 | Microsoft Corporation | Systems and methods for detecting and resolving resource conflicts |
US6694335B1 (en) | 1999-10-04 | 2004-02-17 | Microsoft Corporation | Method, computer readable medium, and system for monitoring the state of a collection of resources |
US6385623B1 (en) * | 1999-11-12 | 2002-05-07 | Dell Usa, L.P. | System and method for ensuring proper execution of scheduled file updates |
US7013313B1 (en) | 1999-11-24 | 2006-03-14 | Pumatech, Inc. | System and methods for inheriting information into a dataset |
US7917628B2 (en) * | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US9191443B2 (en) * | 1999-12-02 | 2015-11-17 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
EP1309901B1 (en) | 1999-12-02 | 2008-05-21 | Western Digital Technologies, Inc. | System for remote recording of television programs |
US7120692B2 (en) | 1999-12-02 | 2006-10-10 | Senvid, Inc. | Access and control system for network-enabled devices |
US8688797B2 (en) * | 1999-12-02 | 2014-04-01 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US8793374B2 (en) * | 1999-12-02 | 2014-07-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7934251B2 (en) * | 1999-12-02 | 2011-04-26 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7739334B1 (en) | 2000-03-17 | 2010-06-15 | Visto Corporation | System and method for automatically forwarding email and email events via a computer network to a server computer |
DE10105627B4 (de) * | 2000-03-20 | 2007-06-21 | International Business Machines Corp. | Mehrfachanschlussspeichereinrichtung, Verfahren und System zum Betrieb einer Mehrfachanschlussspeichereinrichtung |
US6826750B1 (en) | 2000-03-23 | 2004-11-30 | International Business Machines Corporation | Method of automatically selecting program and data updates based upon versions |
US6904592B1 (en) * | 2000-04-28 | 2005-06-07 | Gilbarco Inc. | Software download system for automatic retrieval of warranty and commission data |
US6665675B1 (en) | 2000-09-07 | 2003-12-16 | Omneon Video Networks | Shared file system having a token-ring style protocol for managing meta-data |
US7225231B2 (en) | 2000-09-20 | 2007-05-29 | Visto Corporation | System and method for transmitting workspace elements across a network |
US7131112B1 (en) * | 2000-11-21 | 2006-10-31 | Microsoft Corporation | Managing code changes for software development |
US7359920B1 (en) | 2001-04-18 | 2008-04-15 | Intellisync Corporation | Communication protocol for synchronization of personal information management databases |
US7085779B2 (en) * | 2001-06-04 | 2006-08-01 | Sun Microsystems, Inc. | File tree change reconciler |
EP1265156A3 (en) * | 2001-06-04 | 2006-01-25 | Sun Microsystems, Inc. | File tree conflict processor |
US7702641B2 (en) * | 2001-06-04 | 2010-04-20 | Oracle America, Inc. | Method and system for comparing and updating file trees |
US7165248B2 (en) * | 2001-06-04 | 2007-01-16 | Sun Microsystems, Inc. | File tree conflict processor |
US20030009481A1 (en) * | 2001-06-20 | 2003-01-09 | Victor Greenberg | Method and apparatus to merge information |
JP2005509979A (ja) * | 2001-11-15 | 2005-04-14 | ヴィスト・コーポレーション | 非同期型同期のシステムおよび方法 |
US7305700B2 (en) | 2002-01-08 | 2007-12-04 | Seven Networks, Inc. | Secure transport for mobile communication network |
US6909910B2 (en) | 2002-02-01 | 2005-06-21 | Microsoft Corporation | Method and system for managing changes to a contact database |
US8230026B2 (en) | 2002-06-26 | 2012-07-24 | Research In Motion Limited | System and method for pushing information between a host system and a mobile data communication device |
US7653645B1 (en) * | 2002-10-29 | 2010-01-26 | Novell, Inc. | Multi-epoch method for saving and exporting file system events |
US7213040B1 (en) * | 2002-10-29 | 2007-05-01 | Novell, Inc. | Apparatus for policy based storage of file data and meta-data changes over time |
US7251670B1 (en) * | 2002-12-16 | 2007-07-31 | Cisco Technology, Inc. | Methods and apparatus for replicating a catalog in a content distribution network |
US7917468B2 (en) * | 2005-08-01 | 2011-03-29 | Seven Networks, Inc. | Linking of personal information management data |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US7853563B2 (en) | 2005-08-01 | 2010-12-14 | Seven Networks, Inc. | Universal data aggregation |
JP2004297792A (ja) * | 2003-03-13 | 2004-10-21 | Ricoh Co Ltd | 画像形成装置及び機能キー割り付け方法 |
US7631001B2 (en) | 2003-08-21 | 2009-12-08 | Microsoft Corporation | Electronic ink processing |
CN100414559C (zh) * | 2003-08-21 | 2008-08-27 | 微软公司 | 电子墨水处理方法和系统 |
US7616333B2 (en) * | 2003-08-21 | 2009-11-10 | Microsoft Corporation | Electronic ink processing and application programming interfaces |
CA2470930A1 (en) * | 2003-08-21 | 2005-02-21 | Microsoft Corporation | Electronic ink processing |
KR100989011B1 (ko) * | 2003-08-21 | 2010-10-20 | 마이크로소프트 코포레이션 | 전자 잉크를 분석하기 위한 애플리케이션 프로그래밍 인터페이스를 포함하는 컴퓨터 판독가능 기록 매체, 전자 잉크 분석 방법 및 분석 콘텍스트 대상 생성 방법 |
BR0306695A (pt) * | 2003-08-21 | 2005-05-24 | Microsoft Corp | Processamento de tinta eletrônica |
US7644376B2 (en) * | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
JP4354314B2 (ja) * | 2004-03-16 | 2009-10-28 | 株式会社日立製作所 | サーバ差分管理システム及び情報処理装置の制御方法 |
US20050268281A1 (en) * | 2004-05-25 | 2005-12-01 | Kim Letkeman | Portable annotated merge model and methods of using the same |
US8473893B2 (en) * | 2008-09-30 | 2013-06-25 | Accurev, Inc. | Integration of external software analysis processes with software configuration management applications |
US7614038B2 (en) * | 2004-07-19 | 2009-11-03 | Accurev, Inc. | Systems and methods for determining the software components included in a view of a software development project at a particular time |
US9292276B1 (en) | 2004-07-19 | 2016-03-22 | Micro Focus (IP) Development Limited | Method and system for utilizing change packages |
US8548967B1 (en) | 2007-12-12 | 2013-10-01 | Accurev, Inc. | System for visual query and manipulation of configuration management records |
US8667465B2 (en) * | 2008-03-31 | 2014-03-04 | Accurev, Inc. | System for estimating a software product release time from version information |
US7437722B2 (en) * | 2004-07-19 | 2008-10-14 | Accurev, Inc. | Determining which software component versions of an issue resolution are included in a version of a software development project at a particular time |
US8341590B1 (en) | 2007-12-12 | 2012-12-25 | Accurev, Inc. | System for relating workflow status to code component status in a software project |
US20060064634A1 (en) * | 2004-09-17 | 2006-03-23 | International Business Machines Corporation | Editing multiple file versions |
US8005710B2 (en) * | 2004-09-28 | 2011-08-23 | Microsoft Corporation | Methods and systems for caching and synchronizing project data |
US8010082B2 (en) * | 2004-10-20 | 2011-08-30 | Seven Networks, Inc. | Flexible billing architecture |
WO2006045102A2 (en) | 2004-10-20 | 2006-04-27 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US7643818B2 (en) * | 2004-11-22 | 2010-01-05 | Seven Networks, Inc. | E-mail messaging to/from a mobile terminal |
US7706781B2 (en) * | 2004-11-22 | 2010-04-27 | Seven Networks International Oy | Data security in a mobile e-mail service |
FI117152B (fi) | 2004-12-03 | 2006-06-30 | Seven Networks Internat Oy | Sähköpostiasetusten käyttöönotto matkaviestimelle |
EP1828932A4 (en) * | 2004-12-10 | 2008-03-05 | Seven Networks Internat Oy | DATABASE SYNCHRONIZATION |
FI120165B (fi) * | 2004-12-29 | 2009-07-15 | Seven Networks Internat Oy | Tietokannan synkronointi matkaviestinverkon kautta |
US7752633B1 (en) | 2005-03-14 | 2010-07-06 | Seven Networks, Inc. | Cross-platform event engine |
US8214754B2 (en) | 2005-04-15 | 2012-07-03 | Microsoft Corporation | Registration of applications and complimentary features for interactive user interfaces |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US7796742B1 (en) | 2005-04-21 | 2010-09-14 | Seven Networks, Inc. | Systems and methods for simplified provisioning |
WO2006136661A1 (en) * | 2005-06-21 | 2006-12-28 | Seven Networks International Oy | Network-initiated data transfer in a mobile network |
WO2006136660A1 (en) | 2005-06-21 | 2006-12-28 | Seven Networks International Oy | Maintaining an ip connection in a mobile network |
WO2007014297A2 (en) * | 2005-07-26 | 2007-02-01 | Invensys Systems, Inc. | Method and system for hierarchical namespace |
US8069166B2 (en) * | 2005-08-01 | 2011-11-29 | Seven Networks, Inc. | Managing user-to-user contact with inferred presence information |
US8731542B2 (en) | 2005-08-11 | 2014-05-20 | Seven Networks International Oy | Dynamic adjustment of keep-alive message intervals in a mobile network |
JP2007089134A (ja) * | 2005-08-22 | 2007-04-05 | Ricoh Co Ltd | 画像処理システム、画像処理方法、画像処理プログラム、及び画像形成装置 |
US20070168975A1 (en) * | 2005-12-13 | 2007-07-19 | Thomas Kessler | Debugger and test tool |
US7769395B2 (en) | 2006-06-20 | 2010-08-03 | Seven Networks, Inc. | Location-based operations and messaging |
US8185576B2 (en) * | 2006-03-14 | 2012-05-22 | Altnet, Inc. | Filter for a distributed network |
US20070290787A1 (en) * | 2006-06-20 | 2007-12-20 | Trevor Fiatal | Systems and methods for group messaging |
JP4857992B2 (ja) * | 2006-07-31 | 2012-01-18 | 富士ゼロックス株式会社 | 電子ファイル変換プログラム、電子ファイル変換装置、及び電子ファイル変換システム。 |
US8205150B2 (en) * | 2007-01-22 | 2012-06-19 | Cfph, Llc | Document changes |
US8805425B2 (en) | 2007-06-01 | 2014-08-12 | Seven Networks, Inc. | Integrated messaging |
US8693494B2 (en) * | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
KR100912870B1 (ko) * | 2007-06-12 | 2009-08-19 | 삼성전자주식회사 | 컨텐츠 및 메타데이터의 무결성 보장 시스템 및 방법 |
US9143561B2 (en) | 2007-11-09 | 2015-09-22 | Topia Technology, Inc. | Architecture for management of digital files across distributed network |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US8793305B2 (en) | 2007-12-13 | 2014-07-29 | Seven Networks, Inc. | Content delivery to a mobile device from a content service |
US8107921B2 (en) * | 2008-01-11 | 2012-01-31 | Seven Networks, Inc. | Mobile virtual network operator |
US8862657B2 (en) | 2008-01-25 | 2014-10-14 | Seven Networks, Inc. | Policy based content service |
US20090193338A1 (en) | 2008-01-28 | 2009-07-30 | Trevor Fiatal | Reducing network and battery consumption during content delivery and playback |
US20090248670A1 (en) * | 2008-03-31 | 2009-10-01 | Trevor Fiatal | Content search engine |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8078158B2 (en) | 2008-06-26 | 2011-12-13 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US9355100B2 (en) * | 2008-09-22 | 2016-05-31 | Qualcomm Incorporated | Methods and apparatus for reconciling versions of media context lists in communications networks |
US8909759B2 (en) * | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
US9535959B2 (en) * | 2008-11-21 | 2017-01-03 | Li Sun | Method and apparatus for reconciliation of multiple sets of data |
US8965928B2 (en) * | 2008-12-23 | 2015-02-24 | International Business Machines Corporation | Searching for computer resources based on associations between these resources and external events |
US8656290B1 (en) * | 2009-01-08 | 2014-02-18 | Google Inc. | Realtime synchronized document editing by multiple users |
US8620883B2 (en) * | 2009-03-02 | 2013-12-31 | Qualcomm, Incorporated | Apparatus and methods of reconciling different versions of an ordered list |
US8438558B1 (en) | 2009-03-27 | 2013-05-07 | Google Inc. | System and method of updating programs and data |
JP5368878B2 (ja) * | 2009-05-25 | 2013-12-18 | キヤノン株式会社 | 情報処理装置、製造装置及びデバイス製造方法 |
WO2011126889A2 (en) | 2010-03-30 | 2011-10-13 | Seven Networks, Inc. | 3d mobile user interface with configurable workspace management |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
CA2857458A1 (en) | 2010-07-26 | 2012-02-09 | Michael Luna | Mobile application traffic optimization |
EP2599345B1 (en) | 2010-07-26 | 2017-09-06 | Seven Networks, LLC | Distributed implementation of dynamic wireless traffic policy |
PL3407673T3 (pl) | 2010-07-26 | 2020-05-18 | Seven Networks, Llc | Koordynacja ruchu w sieci komórkowej pomiędzy różnymi aplikacjami |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
EP2635973A4 (en) | 2010-11-01 | 2014-01-15 | Seven Networks Inc | TO THE BEHAVIOR OF A MOBILE APPLICATION AND INTERMEDIATE STORAGE TAILORED TO NETWORK CONDITIONS |
WO2012060995A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
WO2012061430A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US8204953B2 (en) | 2010-11-01 | 2012-06-19 | Seven Networks, Inc. | Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
WO2012060997A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Application and network-based long poll request detection and cacheability assessment therefor |
DE202011110895U1 (de) | 2010-11-02 | 2017-01-31 | Google Inc. | Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen |
CN103404193B (zh) | 2010-11-22 | 2018-06-05 | 七网络有限责任公司 | 调校数据传输以优化为通过无线网络的传输建立的连接 |
WO2012071384A2 (en) | 2010-11-22 | 2012-05-31 | Michael Luna | Optimization of resource polling intervals to satisfy mobile device requests |
WO2012094675A2 (en) | 2011-01-07 | 2012-07-12 | Seven Networks, Inc. | System and method for reduction of mobile network traffic used for domain name system (dns) queries |
WO2012135722A1 (en) * | 2011-03-30 | 2012-10-04 | Google Inc. | Using an update feed to capture and store documents for litigation hold and legal discovery |
WO2012145544A2 (en) | 2011-04-19 | 2012-10-26 | Seven Networks, Inc. | Device resource sharing for network resource conservation |
EP2702500B1 (en) | 2011-04-27 | 2017-07-19 | Seven Networks, LLC | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
WO2012149216A2 (en) | 2011-04-27 | 2012-11-01 | Seven Networks, Inc. | Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor |
WO2013015995A1 (en) | 2011-07-27 | 2013-01-31 | Seven Networks, Inc. | Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network |
US8934414B2 (en) | 2011-12-06 | 2015-01-13 | Seven Networks, Inc. | Cellular or WiFi mobile traffic optimization based on public or private network destination |
WO2013086214A1 (en) | 2011-12-06 | 2013-06-13 | Seven Networks, Inc. | A system of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation |
WO2013086447A1 (en) | 2011-12-07 | 2013-06-13 | Seven Networks, Inc. | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9009250B2 (en) | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US20130159511A1 (en) | 2011-12-14 | 2013-06-20 | Seven Networks, Inc. | System and method for generating a report to a network operator by distributing aggregation of data |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
GB2499306B (en) | 2012-01-05 | 2014-10-22 | Seven Networks Inc | Managing user interaction with an application on a mobile device |
US9203864B2 (en) | 2012-02-02 | 2015-12-01 | Seven Networks, Llc | Dynamic categorization of applications for network access in a mobile network |
WO2013116852A1 (en) | 2012-02-03 | 2013-08-08 | Seven Networks, Inc. | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
CN103294704A (zh) * | 2012-02-28 | 2013-09-11 | 鸿富锦精密工业(深圳)有限公司 | 文件同步系统及方法 |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US10263899B2 (en) | 2012-04-10 | 2019-04-16 | Seven Networks, Llc | Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network |
WO2014011216A1 (en) | 2012-07-13 | 2014-01-16 | Seven Networks, Inc. | Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications |
US9881017B2 (en) * | 2012-08-03 | 2018-01-30 | Egnyte, Inc. | System and method for event-based synchronization of remote and local file systems |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US9307493B2 (en) | 2012-12-20 | 2016-04-05 | Seven Networks, Llc | Systems and methods for application management of mobile device radio state promotion and demotion |
US9241314B2 (en) | 2013-01-23 | 2016-01-19 | Seven Networks, Llc | Mobile device with application or context aware fast dormancy |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US9326185B2 (en) | 2013-03-11 | 2016-04-26 | Seven Networks, Llc | Mobile network congestion recognition for optimization of mobile traffic |
US9152466B2 (en) * | 2013-03-13 | 2015-10-06 | Barracuda Networks, Inc. | Organizing file events by their hierarchical paths for multi-threaded synch and parallel access system, apparatus, and method of operation |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US9336228B2 (en) * | 2013-12-18 | 2016-05-10 | Verizon Patent And Licensing Inc. | Synchronization of program code between revision management applications utilizing different version-control architectures |
US10380076B2 (en) | 2014-07-21 | 2019-08-13 | Egnyte, Inc. | System and method for policy based synchronization of remote and local file systems |
US10437789B2 (en) | 2015-04-10 | 2019-10-08 | Egnyte, Inc. | System and method for delete fencing during synchronization of remote and local file systems |
US11144510B2 (en) | 2015-06-11 | 2021-10-12 | Egnyte, Inc. | System and method for synchronizing file systems with large namespaces |
US20170177613A1 (en) | 2015-12-22 | 2017-06-22 | Egnyte, Inc. | Event-Based User State Synchronization in a Cloud Storage System |
US11789926B2 (en) * | 2016-01-04 | 2023-10-17 | Netflix, Inc. | Techniques for performing data reconciliation in distributed data store systems |
US11080242B1 (en) * | 2016-03-30 | 2021-08-03 | EMC IP Holding Company LLC | Multi copy journal consolidation |
US11940877B2 (en) * | 2018-10-26 | 2024-03-26 | Dropbox, Inc. | Restoring a directory to a state prior to a past synchronization event |
US11025576B1 (en) * | 2018-12-31 | 2021-06-01 | Facebook, Inc. | Techniques for backend-specific cursor tracking |
US11055314B1 (en) | 2018-12-31 | 2021-07-06 | Facebook, Inc. | Techniques for a database-driven messaging user interface |
US10979500B1 (en) | 2018-12-31 | 2021-04-13 | Facebook, Inc. | Techniques for directive-based messaging synchronization |
US10855761B1 (en) | 2018-12-31 | 2020-12-01 | Facebook, Inc. | Techniques for in-place directive execution |
CN110941443B (zh) * | 2019-12-12 | 2023-03-17 | 支付宝(中国)网络技术有限公司 | 修改sdk中文件名的方法、装置及电子设备 |
US20220171744A1 (en) * | 2020-12-01 | 2022-06-02 | Sony Interactive Entertainment LLC | Asset management between remote sites |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4077059A (en) * | 1975-12-18 | 1978-02-28 | Cordi Vincent A | Multi-processing system with a hierarchial memory having journaling and copyback |
US4408273A (en) * | 1980-05-27 | 1983-10-04 | International Business Machines Corporation | Method and means for cataloging data sets using dual keyed data sets and direct pointers |
US4819156A (en) * | 1986-06-13 | 1989-04-04 | International Business Machines Corporation | Database index journaling for enhanced recovery |
JPH0833857B2 (ja) * | 1987-02-18 | 1996-03-29 | 株式会社日立製作所 | システム間デ−タベ−ス共用システムジヤ−ナルマ−ジ方式 |
JPH0771088B2 (ja) * | 1987-04-06 | 1995-07-31 | 古河電気工業株式会社 | 多重伝送方式 |
US4823310A (en) * | 1987-08-10 | 1989-04-18 | Wang Laboratories, Inc. | Device for enabling concurrent access of indexed sequential data files |
US4875159A (en) * | 1987-12-22 | 1989-10-17 | Amdahl Corporation | Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system |
US5155849A (en) * | 1989-04-14 | 1992-10-13 | Xerox Corporation | Multilingual operator prompting system which compares language control file version numbers in document and mass memory for changing language files |
US5212788A (en) * | 1990-05-22 | 1993-05-18 | Digital Equipment Corporation | System and method for consistent timestamping in distributed computer databases |
US5263155A (en) * | 1991-02-21 | 1993-11-16 | Texas Instruments Incorporated | System for selectively registering and blocking requests initiated by optimistic and pessimistic transactions respectively for shared objects based upon associated locks |
US5261094A (en) * | 1991-04-08 | 1993-11-09 | International Business Machines Corporation | Asynchronous replication of data changes by distributed update requests |
US5247684A (en) * | 1991-10-03 | 1993-09-21 | The United States Of America As Represented By The Secretary Of The Navy | Light update notification mechanism for shared data structures |
US5357631A (en) * | 1991-12-09 | 1994-10-18 | International Business Machines Corporation | Method and system for creating and maintaining multiple document versions in a data processing system library |
US5388255A (en) * | 1991-12-19 | 1995-02-07 | Wang Laboratories, Inc. | System for updating local views from a global database using time stamps to determine when a change has occurred |
-
1994
- 1994-05-13 JP JP6099703A patent/JPH06324928A/ja active Pending
-
1995
- 1995-04-05 US US08/417,446 patent/US5600834A/en not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005507100A (ja) * | 2001-05-25 | 2005-03-10 | オラクル・インターナショナル・コーポレイション | ネットワークファイルシステムのための管理および同期化アプリケーション |
JP2006195972A (ja) * | 2005-01-14 | 2006-07-27 | Microsoft Corp | 共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステム |
US8150919B2 (en) | 2005-01-14 | 2012-04-03 | Microsoft Corporation | Method and system for transitioning between synchronous and asynchronous communication modes |
JP2008269277A (ja) * | 2007-04-20 | 2008-11-06 | Meidensha Corp | 共有データの分散編集システム、分散編集方法およびプログラム |
JP2015527646A (ja) * | 2012-06-27 | 2015-09-17 | ドロップボックス, インコーポレイテッド | 同期ファイル用の複数の修正バージョンから好適な修正バージョンの判定 |
US9348836B2 (en) | 2012-06-27 | 2016-05-24 | Dropbox, Inc. | Determining a preferred modified version from among multiple modified versions for synchronized files |
JP2016530656A (ja) * | 2013-12-17 | 2016-09-29 | ヒタチ データ システムズ コーポレーションHitachi Data Systems Corporation | 分散型ディザスタリカバリファイル同期サーバシステム |
Also Published As
Publication number | Publication date |
---|---|
US5600834A (en) | 1997-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06324928A (ja) | ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置 | |
US6240414B1 (en) | Method of resolving data conflicts in a shared data environment | |
US6098079A (en) | File version reconciliation using hash codes | |
Reiher et al. | Resolving File Conflicts in the Ficus File System. | |
US6393437B1 (en) | Web developer isolation techniques | |
US5778389A (en) | Method and system for synchronizing computer file directories | |
US8126854B1 (en) | Using versioning to back up multiple versions of a stored object | |
US10755234B2 (en) | System and method for offline synchronization of exception items of shared services for client applications | |
KR101076851B1 (ko) | 복제된 파일들을 위한 복수의 파일 상태 관리 방법 | |
US7933870B1 (en) | Managing file information | |
US7152224B1 (en) | Versioned project associations | |
US7685177B1 (en) | Detecting and managing orphan files between primary and secondary data stores | |
US7640406B1 (en) | Detecting and managing orphan files between primary and secondary data stores for content addressed storage | |
US7647363B2 (en) | Revision control system for large-scale systems management | |
US6366933B1 (en) | Method and apparatus for tracking and viewing changes on the web | |
US7299450B2 (en) | Undoing changes in a software configuration management system | |
US5946700A (en) | Method and apparatus for preserving non-current information that can be overwritten in a computer file | |
US20030055828A1 (en) | Methods for synchronizing on-line and off-line transcript projects | |
US7603397B1 (en) | Detecting and managing missing parents between primary and secondary data stores | |
US20080052307A1 (en) | Composite user interface and framework | |
JP2009515264A (ja) | 文書およびソースコードの制御のための方法およびシステム | |
US7099889B2 (en) | System and method for decoupling object identification for the purpose of object switching in database systems | |
KR20080071131A (ko) | 자원 복제를 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터판독가능 매체, 방법 및 장치 | |
JP3450786B2 (ja) | 異なるデータファイルを調停する方法 | |
US7599971B1 (en) | Detecting and managing missing parents between primary and secondary data stores for content addressed storage |