図面 (/)

技術 ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置

出願人 三菱電機株式会社
発明者 ジョン・エイチ・ハワード
出願日 1994年5月13日 (25年10ヶ月経過) 出願番号 1994-099703
公開日 1994年11月25日 (25年4ヶ月経過) 公開番号 1994-324928
状態 未査定
技術分野 デジタル計算機の試験診断 検索装置 計算機におけるファイル管理
主要キーワード なされた仕事 想定環境 オルガナイザー 作業コピー 仕事場所 ブロック線 相違箇所 タイムシェアリングシステム
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(1994年11月25日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (6)

目的

分散ファイル環境において、あるサイトファイルになされた作業が別のサイトで同じファイルになされた作業により失われる危険なしにファイルを安全に更新できるシステムを得る。

構成

ファイルが変更される都度更新されるログを各サイトごとに作成する。あるサイトのログを他のサイトからのログと比較し、必要とされるファイルの最新バージョンが他のサイトに存在する際古いバージョンを最新のバージョンで更新しても問題が発生しない時はそのサイトの古いバージョンを最新のバージョンで更新し、競合バージョンがある時はユ−ザに知らせる。ログはファイル及びタイムスタンプに関してシステムの状態を時々調べファイルの出現消滅及び変更を示すログ項目を追加して更新する。各サイトが調停に参加した最近の時刻を示すログ項目を挿入し、全サイトの古い項目消去し不用の項目を一掃する。

概要

背景

コンピュータフロッピーディスク可搬性のために、特にあるファイル、例えばラップトップコンピュータ内のファイルがデスクトップコンピュータ固定設置ワークステーション内の同じファイルと、情報すなわちデータが一致しないことが起こるという問題点がある。このような問題が生じるのは、仕事がいつも一定の場所でなく異なる場所で行われることが多いことによる。固定設置のワークステーションで作成されたファイルがそのファイルを含むディスクまたはディスケットを他の場所に持って行き、そこで、そのファイルに変更を加えることによって、自宅などの別の離れた場所で変更されることは、よく起こることである。また、分散ネットワークでも、複数のユーザがファイルを変更する場合には、同じファイルの複数のバージョンが存在し得る。

2つの場所、例えば自宅と仕事場において作成されたファイルのバージョンが、同じように更新されなかったために一致しないときに問題が生じる。異なるバージョンの矛盾は、フロッピーディスクをある場所から別の場所に移すのを忘れたときや、ディスクを完全にロードするのを忘れたときなどに、意図せずに発生する。

2つの異なるサイトにおいて同じファイルが作成または変更されるときに、そのファイルの異なるバージョンの間に何らかの同期をとることが望ましい。例えば、2つの異なるサイトに1つのファイルの同じバージョンがあるとき、一時に1つのバージョンだけにしかアクセスできないようにすることが可能である。しかしながら、2つのサイトで1つのファイルの複数のバージョンが作成されるときは、両方のファイルまたはどちらか1つのファイルを正しく更新し得るように、それらのファイルを更新または調停できることが重要である。

従来は、システムが異なるサイトにおいてファイルが更新された日時を比較し、最近のバージョンを自動的に選択し、このバージョンを両方のサイトの適宜なファイルにコピーしていた。このようなシステムには、ノベル(Novell)社のネットウェア(Netware)、サンマイクロシステムズ社のネットワークファイルシステム(NFS)あるいはアンドリューファイルシステム(Andrew File System)などがある。

概要

分散ファイル環境において、あるサイトでファイルになされた作業が別のサイトで同じファイルになされた作業により失われる危険なしにファイルを安全に更新できるシステムを得る。

ファイルが変更される都度更新されるログを各サイトごとに作成する。あるサイトのログを他のサイトからのログと比較し、必要とされるファイルの最新のバージョンが他のサイトに存在する際古いバージョンを最新のバージョンで更新しても問題が発生しない時はそのサイトの古いバージョンを最新のバージョンで更新し、競合バージョンがある時はユ−ザに知らせる。ログはファイル及びタイムスタンプに関してシステムの状態を時々調べファイルの出現消滅及び変更を示すログ項目を追加して更新する。各サイトが調停に参加した最近の時刻を示すログ項目を挿入し、全サイトの古い項目消去し不用の項目を一掃する。

目的

ファイルの複数のバージョンの問題に対するもう1つの不十分な解決策は、ディスケット/テープ、E−メイル電子メイル)、ラップリンク(Lap-Link)及び種々のファイル転送プロトコルなどによる意図的な行為を必要とするファイル転送技術に見られる。これらのシステムが行おうとしていることは、ファイルをコピーして、それらのコピーを手で持って行くか送信することである。

この発明は上述した問題点を解消するためになされたもので、分散ファイル環境において、あるサイトでファイルになされた作業が別のサイトで同じファイルになされた作業のために失われる危険なしにファイルを安全に更新できるファイルの異なるバージョンを調停するためのログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置を得ることを目的とする。

効果

実績

技術文献被引用数
3件
牽制数
7件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ファイルシステムの動作のログを生成するための装置であって、上記ファイルシステム上のファイルの現在の状態を検査するための手段と、上記検査手段に応答動作してファイルの作成、変更、削除を示すログ項目を生成するための手段を含むログ生成装置

請求項2

請求項1の装置であって、上記検査手段は、時々上記検査を行うための手段を含むログ生成装置。

請求項3

異なる場所にある1つのファイルの異なるバージョン調停するための装置であって、ファイルが変更された場所の各々においてファイルシステムの動作のログ項目を生成するための手段と、いくつかのただしすべてではない場所における動作を見分けるために異なる場所におけるファイルシステムの動作のログを比較する手段、ファイルシステムの動作のログを比較することによって各場所のバージョンを揃えるために必要な動作を決定するための手段、及び上記各場所のバージョンを揃えようとする動作によりファイルの情報が失われる可能性があるかどうかを判断するための手段を含むファイルの異なるバージョンの調停のための装置。

請求項4

請求項3の装置であって、さらに、ファイルをコピーまたは消去することによって、上記決定されたファイルのバージョンを揃えるための動作を実行するための手段を含むファイルの異なるバージョンの調停のための装置。

請求項5

請求項3の装置であって、上記ログ中のある項目の直後に同じファイルのための項目が存在し、かつ上記後の項目が他のすべての場所にも存在するときに、上記前の項目を削除することによって不用になったログ項目を削除するための手段を含むファイルの異なるバージョンの調停のための装置。

請求項6

請求項4の装置であって、さらに、上記各場所のバージョンを揃えようとする動作によりファイルの情報が失われる可能性があるとき、そのことをユーザに知らせるための手段を含むファイルの異なるバージョンの調停のための装置。

請求項7

請求項6の装置であって、さらに異なる場所のログにバージョンの更新操作を行うと情報の損失が発生する可能性がある相違が見つかったとき、そのことをユーザに知らせるための手段を含むファイルの異なるバージョンの調停のための装置。

請求項8

請求項6の装置であって、さらに不用になったログ項目を削除するための手段を含むファイルの異なるバージョンの調停のための装置。

請求項9

請求項6の装置であって、さらにある場所においてファイルの調停を行ったとき、調停の発生及びその日時を他のすべての場所に伝達するための手段を含むファイルの異なるバージョンの調停のための装置。

請求項10

異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置であって、少なくとも同じファイルの1つのバージョンが各場所において変更された日時に対応する項目を含むログを生成するための手段、ある場所のログの項目を、他の場所のログの項目と比較し、それらの間の相違を調べるための手段、上記2つのログに相違がないか、または上記2つのログの相違がバージョンの更新操作を行うと情報の損失が発生しないような相違であるとき、上記ある場所において上記ファイルのバージョンを自動的に更新するための手段、及び上記2つのログの間の相違がバージョンの更新操作により情報の損失が発生する可能性を示す相違であるとき、上記自動的な更新を停止させるための手段を含む異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置。

技術分野

0001

この発明は、分散ファイルシステム係り、特に、ファイルが2個所以上の離れた場所またはサイトコンピュータに記憶される分散ファイルシステムにおいてファイルの異なるバージョン調停するためのログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置に関するものである。

背景技術

0002

コンピュータやフロッピーディスク可搬性のために、特にあるファイル、例えばラップトップコンピュータ内のファイルがデスクトップコンピュータ固定設置ワークステーション内の同じファイルと、情報すなわちデータが一致しないことが起こるという問題点がある。このような問題が生じるのは、仕事がいつも一定の場所でなく異なる場所で行われることが多いことによる。固定設置のワークステーションで作成されたファイルがそのファイルを含むディスクまたはディスケットを他の場所に持って行き、そこで、そのファイルに変更を加えることによって、自宅などの別の離れた場所で変更されることは、よく起こることである。また、分散ネットワークでも、複数のユーザがファイルを変更する場合には、同じファイルの複数のバージョンが存在し得る。

0003

2つの場所、例えば自宅と仕事場において作成されたファイルのバージョンが、同じように更新されなかったために一致しないときに問題が生じる。異なるバージョンの矛盾は、フロッピーディスクをある場所から別の場所に移すのを忘れたときや、ディスクを完全にロードするのを忘れたときなどに、意図せずに発生する。

0004

2つの異なるサイトにおいて同じファイルが作成または変更されるときに、そのファイルの異なるバージョンの間に何らかの同期をとることが望ましい。例えば、2つの異なるサイトに1つのファイルの同じバージョンがあるとき、一時に1つのバージョンだけにしかアクセスできないようにすることが可能である。しかしながら、2つのサイトで1つのファイルの複数のバージョンが作成されるときは、両方のファイルまたはどちらか1つのファイルを正しく更新し得るように、それらのファイルを更新または調停できることが重要である。

0005

従来は、システムが異なるサイトにおいてファイルが更新された日時を比較し、最近のバージョンを自動的に選択し、このバージョンを両方のサイトの適宜なファイルにコピーしていた。このようなシステムには、ノベル(Novell)社のネットウェア(Netware)、サンマイクロシステムズ社のネットワークファイルシステム(NFS)あるいはアンドリューファイルシステム(Andrew File System)などがある。

発明が解決しようとする課題

0006

しかしながら、上述したシステムは、すべてそれらの自動的な更新方法にそれぞれ問題がある。ファイルが変更されると直ちにそれらのファイルを自動的に更新することが、NFS、アンドリューファイルシステム(Andrew File System)、ネットウェアの特徴であるが、この特徴は、ファイルの新しいバージョンが送信されるときに、大きな性能上の問題になる。また、、すべての更新がネットワーク全体に配信されるので、未完了の作業内容がそのシステム全体に曝露されてしまう。このことは、この自動化された方法のために引き起こされる困惑すべきことでもある。その分散システムに接続されている者に新しい未編集のデータや変更が直ちに知られてしまう。

0007

ソフトウェアを書いているときやドキュメントを編集しているとき等のように、1つのファイルに対して複数の利用者または寄与者がいるときは、どこかの段階で、どのような更新または調停が許されるかについてユーザの各々に制約があるようにするために、同じファイルのすべてのユーザに他のユーザがしていることについて警告することは非常に重要である。自分のソフトウェアが知らないうちに他の誰かによって編集されることは、ソフトウェアの書手にとって、とりわけ困ることである。同様に、ワードプロセッサを使って仕事をしている者にとって、ユーザの一人に他の者に知らせることなく作成中の文書を編集されることは、同じぐらいに面白くないことである。

0008

より明確にいえば、NFS、アンドリュー、アップルシアー(Apple Share)、ノベル、及び研究目的のシステムのソフトウエアであるコーダ(Coda)やフィーカス(Ficus) などによって代表されるような分散ファイルシステム技術に存在するのは、異なる場所にファイルの複数のバージョンができる問題に対する不十分な解決策であるということである。

0009

これらのシステムは、どれもみな、単一のグローバルなファイルシステムであるかのような印象を与える。単一のグローバルなファイルシステムを持つ利点は、自動的な更新、共用、及びよく知られたタイムシェアリングシステム的な意味あいなどである。 しかしながら、このようなシステムの問題点は、切り離された時に機能しなくなるかまたは機能が低下すること、性能が予測できないこと、更新がユーザのではなくシステムの都合のよい時に行われること、変更されたオペレーティングシステムが必要であり、殆んどの場合、1つの売り手から買わなければならないことなどである。

0010

ファイルの複数のバージョンの問題に対するもう1つの不十分な解決策は、ディスケット/テープ、E−メイル電子メイル)、ラップリンク(Lap-Link)及び種々のファイル転送プロトコルなどによる意図的な行為を必要とするファイル転送技術に見られる。これらのシステムが行おうとしていることは、ファイルをコピーして、それらのコピーを手で持って行くか送信することである。

0011

その利点は、完全にユーザの意のままになること、転送融通がきくこと、異なるシステム間でのファイルのやり取りが可能であることなどである。欠点は、操作が複雑で間違いがえやすいため、必要なデータに誤って上書することがあること、内容が相違競合するバージョンの“マージ併合)”ができないことなどである。

0012

これらのすべてのシステムでは、どれかのコンピュータにあるファイルの最も新しいバージョンが自動的に他のコンピュータにコピーされる。そのため、現在の一般的なプログラムは、日付及び時刻によって、すなわち“タイムスタンピング”と呼ばれる技術によって、どのファイルが正しいかを決定しようとする。しかしながら、これらの方式のシステムは、フェイルセイフとは到底言い難い。例えば、ラップトップコンピュータにおいて、あるファイルを消去したいとしよう。ラップトップコンピュータにおいて、そのファイルを消去することは、固定設置のワークステーションにおいてもそのファイルを消去することにはならず、むしろ、そのワークステーションで見つかった古いファイルを復活させることになるかも知れない。このように自動化されたシステムは、誤りが発生しやすい。

0013

さらに、一般的に言えば、複数の場所においてファイル上で何かの仕事をしているとき、どのファイルも他のファイルに取って代われないことがあり得る。このような場合には、タイムスタンプ時刻印)を利用した調停は、必要な情報に上書きすることになる可能性がある。その結果、古いバージョンに具現されていたユーザの仕事が何の警告もなしに失われてしまうことが起こり得る。ファイルのバージョンの間の調停のためにコンピュータを接続するのを忘れたときにだけ、このことが発生する可能性もある。

0014

この発明は上述した問題点を解消するためになされたもので、分散ファイル環境において、あるサイトでファイルになされた作業が別のサイトで同じファイルになされた作業のために失われる危険なしにファイルを安全に更新できるファイルの異なるバージョンを調停するためのログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置を得ることを目的とする。

課題を解決するための手段

0015

この発明の請求項1に係るログ生成装置は、ファイルシステムの動作のログを生成するための装置であって、上記ファイルシステム上のファイルの現在の状態を検査するための手段と、上記検査手段に応答動作してファイルの作成、変更、削除を示すログ項目を生成するための手段を含むものである。

0016

また、請求項2に係るログ生成装置は、請求項1の装置であって、上記検査手段は、時々上記検査を行うための手段を含むものである。

0017

また、請求項3に係るファイルの異なるバージョンを調停するための装置は、異なる場所にある1つのファイルの異なるバージョンを調停するための装置であって、ファイルが変更された場所の各々においてファイルシステムの動作のログ項目を生成するための手段と、いくつかのただしすべてではない場所における動作を見分けるために異なる場所におけるファイルシステムの動作のログを比較する手段、ファイルシステムの動作のログを比較することによって各場所のバージョンを揃えるために必要な動作を決定するための手段、及び上記各場所のバージョンを揃えようとする動作によりファイルの情報が失われる可能性があるかどうかを判断するための手段を含むものである。

0018

また、請求項4に係るファイルの異なるバージョンを調停するための装置は、請求項3の装置であって、さらに、ファイルをコピーまたは消去することによって、上記決定されたファイルのバージョンを揃えるための動作を実行するための手段を含むものである。

0019

また、請求項5に係るファイルの異なるバージョンを調停するための装置は、請求項3の装置であって、上記ログ中のある項目の直後に同じファイルのための項目が存在し、かつ上記後の項目が他のすべての場所にも存在するときに、上記前の項目を削除することによって不用になったログ項目を削除するための手段を含むものである。

0020

また、請求項6に係るファイルの異なるバージョンを調停するための装置は、請求項4の装置であって、さらに、上記各場所のバージョンを揃えようとする動作によりファイルの情報が失われる可能性があるとき、そのことをユーザに知らせるための手段を含むものである。

0021

また、請求項7に係るファイルの異なるバージョンを調停するための装置は、請求項6の装置であって、さらに異なる場所のログにバージョンの更新操作を行うと情報の損失が発生する可能性がある相違が見つかったとき、そのことをユーザに知らせるための手段を含むものである。

0022

また、請求項8に係るファイルの異なるバージョンを調停するための装置は、請求項6の装置であって、さらに不用になったログ項目を削除するための手段を含むものである。

0023

また、請求項9に係るファイルの異なるバージョンを調停するための装置は、請求項6の装置であって、さらにある場所においてファイルの調停を行ったとき、調停の発生及びその日時を他のすべての場所に伝達するための手段を含むものである。

0024

さらに、請求項10に係る異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置は、少なくとも同じファイルの1つのバージョンが各場所において変更された日時に対応する項目を含むログを生成するための手段、ある場所のログの項目を、他の場所のログの項目と比較し、それらの間の相違を調べるための手段、上記2つのログに相違がないか、または上記2つのログの相違がバージョンの更新操作を行うと情報の損失が発生しないような相違であるとき、上記ある場所において上記ファイルのバージョンを自動的に更新するための手段、及び上記2つのログの間の相違がバージョンの更新操作により情報の損失が発生する可能性を示す相違であるとき、上記自動的な更新を停止させるための手段を含むものである。

0025

この発明の請求項1に係るログ生成装置においては、検査手段によりファイルシステム上のファイルの現在の状態を検査し、その検査手段に応答動作してファイルの作成、変更、削除を示すログ項目を生成することにより、分散ファイル環境において、あるサイトでなされたあるファイルへの作業が他のサイトでそのファイルへの作業の結果失われてしまうといった危険を犯すことなく安全にファイルを更新するために、ファイルが修正された後に各々のサイトで更新されるログを用いることが可能になる。

0026

また、請求項2に係るログ生成装置においては、請求項1の装置であって、上記検査手段は、時々上記検査を行うための手段を含むことにより、必要になるファイルに対して更新を可能にする。

0027

また、請求項3に係るファイルの異なるバージョンを調停するための装置においては、異なる場所にある1つのファイルの異なるバージョンを調停するための装置において、ファイルが変更された場所の各々においてファイルシステムの動作のログ項目を生成し、いくつかのただしすべてではない場所における動作を見分けるために異なる場所におけるファイルシステムの動作のログを比較し、ファイルシステムの動作のログを比較することによって各場所のバージョンを揃えるために必要な動作を決定し、上記各場所のバージョンを揃えようとする動作によりファイルの情報が失われる可能性があるかどうかを判断することにより、いかなるサイトでもファイルが用いられる以前に他のサイトからのログと比較されるため、異なるサイト上に矛盾するジャーナルのファイルが存在するならば利用者がすぐに変更することによって、新たなジャーナルのファイルは、古いジャーナルのサイトへ自動的にかつ安全に伝達されるのを可能にする。

0028

また、請求項4に係るファイルの異なるバージョンを調停するための装置においては、請求項3の装置において、さらに、ファイルをコピーまたは消去することによって、上記決定されたファイルのバージョンを揃えるための動作を実行するための手段を含むことにより、競合の存在が示されないファイルはコピーされ、必要とされないファイルは消去されて、調停が行われる。

0029

また、請求項5に係るファイルの異なるバージョンを調停するための装置においては、請求項3の装置において、上記ログ中のある項目の直後に同じファイルのための項目が存在し、かつ上記後の項目が他のすべての場所にも存在するときに、上記前の項目を削除することによって不用になったログ項目を削除するための手段を含むことにより、不用になった古いログ項目を一掃する。

0030

また、請求項6に係るファイルの異なるバージョンを調停するための装置においては、請求項4の装置において、さらに、上記各場所のバージョンを揃えようとする動作によりファイルの情報が失われる可能性があるとき、そのことをユーザに知らせるための手段を含むことにより、警告を発することが可能になる。

0031

また、請求項7に係るファイルの異なるバージョンを調停するための装置においては、請求項6の装置において、さらに異なる場所のログにバージョンの更新操作を行うと情報の損失が発生する可能性がある相違が見つかったとき、そのことをユーザに知らせるための手段を含むことにより、ファイルの変更操作を促す。

0032

また、請求項8に係るファイルの異なるバージョンを調停するための装置においては、請求項6の装置において、さらに不用になったログ項目を削除するための手段を含むことにより、不用になったログ項目を一掃する。

0033

また、請求項9に係るファイルの異なるバージョンを調停するための装置においては、請求項6の装置において、さらにある場所においてファイルの調停を行ったとき、調停の発生及びその日時を他のすべての場所に伝達するための手段を含むことにより、

0034

さらに、請求項10に係る異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置においては、少なくとも同じファイルの1つのバージョンが各場所において変更された日時に対応する項目を含むログを生成し、ある場所のログの項目を、他の場所のログの項目と比較し、それらの間の相違を調べ、上記2つのログに相違がないか、または上記2つのログの相違がバージョンの更新操作を行うと情報の損失が発生しないような相違であるとき、上記ある場所において上記ファイルのバージョンを自動的に更新すると共に、上記2つのログの間の相違がバージョンの更新操作により情報の損失が発生する可能性を示す相違であるとき、上記自動的な更新を停止させることにより、異なる場所にあるコンピュータファイルの異なるバージョンの調停がなされる。

0035

以下、この発明を図示実施例に基づいて説明する。図1は仕事場のコンピュータから離れた場所、例えば自宅内へのファイルのバージョンの移動を示す説明図である。この典型的な仕事の環境を示す図1において、ファイルのバージョン#1がオフィス12の固定設置端末10において作成され、この固定設置端末10において作成されたバージョンは記憶装置14に記憶されるとする。そして、このファイルの情報が、例えばフロッピーディスケット16で自宅のサイト19のコンピュータ18に移されたとする。この移されたファイルは編集が可能であり、変更されてバージョン#2になり、記憶装置20に記憶されたとする。

0036

図2図1に示すファイルのバージョンの移動に伴い2つの異なる場所におけるファイルの変更によって同じファイルの2つの異なるバージョンが生じる問題を示す説明図である。図2を参照すると、2つの異なるサイトすなわち場所においてファイルが変更されるとき、ファイルに対してなされる仕事が必ずしも最近に更新されたファイルになされないことがなぜ起こり得るのかが分るであろう。図から分るように、第1のサイトの記憶装置22内のワーク(作業ファイル)1はバージョンV1 を含む。このバージョンV1 はディスケット24にコピーされ、次に、遠隔の場所またはサイトの記憶装置(第2のサイトの記憶装置)26にコピーされる。記憶装置26内のこの情報は、記憶装置26にバージョンV2を生じるように変更される。このバージョンV2 は次に例えばディスケット28にコピーされ、第1のサイトの記憶装置22にバージョンV2 としてコピーされる。このバージョンがさらに変更されて、バージョンV3 として記憶装置22に記憶される。

0037

その後、このバージョンは、記憶装置26にダウンロードするつもりのディスケット30にコピーされる。しかしながら、この過程において、ディスクが無くなるかまたはダウンロードされず、そのため、バージョンV2 に対して仕事がされてバージョンVx が作成される。そして、このバージョンVx がディスケット32にコピーされる。ここにおいて、バージョンV3 はバージョンV2 (バージョンV3 に対応する)から生じたバージョンVx と相違するという問題があることが理解されるであろう。このことは、調停が難しく、また、気づかれないかもしれない誤りを発生させる。

0038

問題はもちろん、同じファイルの2つのバージョンが存在することである。第1のバージョンはバージョンV3 であり、第2のバージョンはバージョンVx である。単に、どちらかのコンピュータを一方または他方のバージョンで更新するだけでは、調停の問題を解決することはできない。なぜなら、バージョンVx は、バージョンV3 に対してなされた更新を持たないからである。したがって、異なる場所のどちらかにおいてバージョンのどちらかを自動的に更新することは不可能である。タイムスタンプを利用した調停システムがうまくいかないのは、この理由のためである。

0039

したがって、典型的な想定として、仕事場と自宅で、パーソナルコンピュータを使ってディスケットでファイルを持ち帰ったり持って来たりしながら、本を書く場合を考えると、普通のやり方は、すべての作業ファイルをディスケットから使用しようとするコンピュータにコピーし、1つまたは複数の章を編集し、終了時に編集したファイルをディスケットにコピーすることである。その結果、仕事場のコンピュータに記憶されているファイル、自宅のコンピュータに記憶されているファイル、ディスケットに記憶されているファイルの3つの異なるコピーができる。実際に、3つのコピーが存在するけれども、それらは同じファイルの異なるバージョンであると見なされる。

0040

仕事場で編集したファイルをコピーするのを忘れると、古いディスケットを持って自宅に帰ることが起こり得る。そして、自宅に持って帰ったディスケットを自宅のコンピュータにコピーし、古い情報から始めていることに気づかずに、編集を続ける。翌日、仕事場でこの更新したファイルを仕事場のコンピュータにコピーして、前日の仕事を失う。

0041

このよくある誤りを防止するためにできる幾つかのことがある。例えばファイルをコピーするプログラムのなかには、日付を調べて、ファイルの新しいバージョンを古いバージョンで置き換えることを拒否する選択設定を持つものがある。この方法はかなり役に立つが、完全ではない。この方法は、例えば上述した誤りを検出できない。なぜなら、夜自宅で編集されたファイルのバージョンは、仕事場で昨日編集されたバージョンよりも後の日付を持つからである。この方法は、また、古いファイルの削除も正しく行うことができない。

0042

図3はいろいろのサイトにおけるログの生成と、自動的な更新またはログの比較が不一致を示したときの手操作による更新を許可する前に行われるログの比較を含むファイルのバージョンを調停するための装置を示す説明図である。図3において、この発明のファイル調停システムは、システム中に競合するバージョンの更新を検出する、RECONCILE という名前のプログラムを埋め込むことによって、上記の問題を解決する。そのため、ユーザは、このシステムにより、ファイルを安全に更新することができる。このシステムは、ファイルをそれよりも新しいバージョンで置換するとき、その新しいバージョンがそれにより置換されるファイルから生成されたものであるかどうか調べて、そうであることが確認されたときにだけ置換を行う。置換されるべきファイルが置換ファイルよりも古いバージョンでなければ、システムは、ユーザが矛盾を解決できるように、エラー報告する。

0043

さらに、具体的に言えば、ファイルのバージョンV1 が記憶装置40に記憶されるとする。そうすると、この発明のシステムは、ログ生成手段42により図示されているようにログLOG1 を生成する。バージョンV1 がディスケット44にコピーされるとき、LOG1 もそのディスケット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 +LOG3 もコピーされる。

0045

しかしながら、図示の例では、このディスケット54は記憶装置46にダウンロードされない。不注意によりときどき起こるように、バージョンV2 を変更してバージョンVx を作成してしまう。バージョンVx ができると同時に、ログ生成手段56に示されるようにログLOGx が生成される。バージョンVx はさらにディスケット58に移される。このとき、このディスケットには、バージョンVx に加えてLOG1 +LOG2 +LOGx もコピーされる。

0046

次に、このディスケット58が記憶装置40にロードされるとき、このファイルにアクセスすると、直ちにコンピュータは、比較手段60において、その場所で先に生成されたログLOGxを、仕事場でディスケット58にコピーされたログLOG3 と比較する。この比較ステップの結果は、警告手段62においてユーザにこのファイルのログ中には自動更新を許さない相違があることを警告するか、マージ64によって示されるような自動更新を許すかのどちらかである。そのため、システムは、ログの比較によって、自動更新を許すか、自動更新が不適当であることをユーザに警告するものとしている。

0047

図3の想定では、仕事場で作成されたバージョンも、夜自宅で作成されたバージョンも、他方のバージョンから作成されなかった。そのため、RECONCILE は、システムがそれらに上書きするのを防止する。これらのバージョンは、両方とも同一の古いバージョンから作成されているが、どちらか一方が他方から作成されてはいない。システムは、ファイルの過去のバージョンの履歴を保存することによって、あるファイルの1つのバージョンが他のバージョンからいつ作成されたかを知る。一方の履歴が、あるファイルがバージョンV1 、V2 、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に削除されたことを示している。ログは日付と時刻の両方を示すのがー般的なので、ここでは、説明の便宜上、時刻だけを示してあることに注意されたい。

0049

これらのジャーナル66及び68は、ファイル名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のコピーを削除することによって修正される。これらの調停操作が行われたときは、欠落していたジャーナル項目が追加されて、各ジャーナルが更新される。

0051

ファイルDの場合には不一致がある。両方のサイトは、ファイルDが最初に10:33に作成されたことでは一致しているが、異なる時刻に独立した更新があったことを示し、また、どちらのサイトも他方のサイトの更新について知らない。自動調停プロシージャは、どちらかのバージョンを置換することはせずに、この不一致を報告し、各ファイルについて必要とされる訂正またはマージを行うことはユーザにまかせる。

0052

さらに、一層の説明として、次の定義はこの発明を理解するのに役立つ。この発明の目的にとっては、ファイルは、コンピュータに記憶されている密接に関係した情報の集合である。ファイルの代表的な例は、ワードプロセッサやスプレッドシートで編集された文書やメッセージなどである。個々のメモ手紙、本の章などは、それぞれそれ自身のファイルに保存される。その内容に加えて、ファイルは名前とタイムスタンプを持つ。名前はー般的にファイルを識別し、タイムスタンプはそのファイルがいつ作成または変更されたかを示す。時間が経つにつれて、同じ名前の1つのファイルが異なるバージョンを持つようになる。それらのバージョンは、異なるタイムスタンプによって区別される。

0053

ディレクトリ登録簿)は、ファイルの集合として定義される。通常、1つのディレクトリ内のファイルは、何等かの緩い関係を持つ。例えば、それらのファイルがそれぞれ1冊の本の各章のようにより大きな情報の集合の一部である、同ー人によって作成された、同じ題目に関係している、同じ組織によって所有されているなどである。ディレクトリも名前とタイムスタンプを持つ。ただし、ディレクトリのタイムスタンプはそれほど有用ではない。

0054

殆んどのコンピュータでは、ファイル及びディレクトリを階層構造または木構造に整理することができる。このことは、ディレクトリがサブディレクトリを含むことができることを示す。サブディレクトリの利点は、関係がより緊密なファイルをー諸にまとめることができることである。ファイルを探すには、所望のファイルに到達するまで、一連のサブディレクトリをたどって行く。

0055

ワーキングセッションは、1台のコンピュータでの1区切りの仕事として定義される。1ワーキングセッションの間には、ファイルは不完全または互いに不整合な状態にあるかも知れない。これらのファイルの永久的な記録を作成したり、どこか他の場所にコピーを送ったりしたいと思うものは、通常、殆んどいないであろう。むしろ、そのワーキングセッションを終了する前に、それらの不整合を除去することによってその日の仕事を完了させようとする。ときには、1セッションが数日続くこともある。セッションはユーザの選択に委ねられていることに注意されたい。しかしながら、ワーキングセッションの途中にファイルをコピーするために、RECONCILE を使用してはいけないこと、ワーキングセッションの開始時及び/または終了時にだけ使用すべきことを強調しておくことは重要である。

0056

サイトは、1つのディレクトリ階層構造ディレクトリのための特定の記憶場所である。この明細書において理解されるように、複数のサイトが、すべて同じディレクトリ階層構造ディレクトリのバージョン(変形)を含むと考えられている。この発明のシステムの基本的な目的は、異なるサイトの階層構造ディレクトリを結合し、個々のファイルのバージョンを安全に更新することによってそれらのサイトの階層構造ディレクトリをすべて同じにすることである。

0057

サイトを任意の1つのコンピュータにおける全ディスク記憶域と考えるべきではない。通常、1つのサイトは、ユーザの都合によって設定された複数の関係のない階層構造ディレクトリを含む。例えば、パーソナルコンピュータは、システムソフトウェアインストールされたアプリケーション、1つまたは複数のユーザの作業ファイルのための別々の階層構造ディレクトリを含むかもしれない。実際のシステムは、たいていそれらの階層構造をまとめて単一の大階層構造にしているが、それを別々のものと考える方が考え易い。

0058

サイトは、また、単にディスケットと見なすこともできる。実際に、上記の想定環境において、ディスケットにまたはディスケットからファイルをコピーする方法は、ディスケットにまたはディスケットからコピーを行いたい自宅または仕事場のコンピュータにより、ディスケットバージョンを調停することである。ワーキングセッションの開始時に、この発明のシステムは、ディスケット上の新しいファイルを検出して、それらをコンピュータにコピーする。そのセッションの終了時には、この発明のシステムは、コンピュータ内の新しいファイルを検出して、それらをディスケットにコピーする。

0059

定義によれば、ジャーナルはファイルのバージョンの履歴である。この発明のシステムは、その仕事を遂行するために、各サイトのためのジャーナルを生成し、欠落しているバージョンを探すためにそれらをマージし、より新しい競合しないバージョンをコピーすることによって更新するか、または不一致があるときはエラーを報告する。

0060

データベースのジャーナルに関しては、この発明のシステムが使用するジャーナルは、ファイル名とタイムスタンプだけでなく、操作も含む。このシステムにとっては、これらの操作は非常に簡単であり、“update(更新)”または“delete(削除)”である。これらの操作は、それ以前に存在していたファイルが消滅したいう事実から判断される。

0061

ジャーナルに削除操作を含ませることは、調停が、不一致を再チェックしながら、他のサイトに削除を安全に伝えることができることを意味する。実際には、内部ジャーナルと外部ジャーナルの2種類のジャーナルがある。内部ジャーナルは、それが記述するディレクトリ内部の特別のファイルとして記憶される。各階層ディレクトリ構造において、各ディレクトリはそれ自身の内部ジャーナルを持つ。外部ジャーナルは、同じ情報を含むが、別の1つのファイルに抽出されていて、どこか他のところに記憶される。このシステムは両方の種類を使用できるが、内部ジャーナルに対してまたは内部ジャーナルからしか更新できない。外部ジャーナルは、必要な更新についての情報の源として使用できるが、関係する実際のファイルやディレクトリは直接にはアクセスできない。

0062

RECONCILE を使うための最も簡単かつ最も標準的な方法は、挿入されたディスクやディスケットのような直接にアクセス可能ないくつかのサイトに対して、RECONCILE を適用することである。例えば、コマンド
reconcile . a:\
は、現在の作業ディレクトリ(ほとんどのシステムでは“.”という名前がつけられている)をドライブAのディスケットと調停する。2つのパラメータ順序は、どちらでもかまわない。

0063

この想定環境では、RECONCILE は、ユーザが仕事場または自宅のコンピュータの使用を始める時と使用を終る時に実行されるであろう。このことを決して忘れないようにすれば、すべての更新は自動的に行われる。古いファイルを、他方のコンピュータにおいて復活させることなく、消去することさえできる。今、セッションの開始時または終了時に調停を行うことをうっかり忘れてしまい、その後にどれかのファイルを更新すると仮定しよう。その場合には、次回にファイルの2つの競合するバージョンを調停するときに、次のようなエラーメッセージを得る。
reconcile: Conflicting Versions, ./oops and a:oops

0064

この時点で、2人のユーザは、その競合する更新が何であったのかを記憶により思い出すか、diff のようなツールを使って2つのバージョンの相違箇所を見つけ出して表示させなければならない。そうして、必要に応じて、どちらかのサイトのバージョンを編集して、2つのバージョンの変更を併合する。最後に、結果として得られたそのファイルの正しいバージョンが他方のサイトにコピーされ、そのサイトの悪いバージョンを置換する。このコピーは、通常、ファイルの内容と共にタイムスタンプもコピーするコピープログラムを使って行われる。この処理は各ジャーナルに競合の記録を残すが、両方のサイトにもっと新しく競合しない1つのバージョンが存在するので、RECONCILE は何の競合の表示もしない。

0065

1つの実施例では、この発明のシステムは、実行されるたびに、実際のディレクトリをそれ自身のジャーナルの前バージョンと比較することによって、ジャーナルを作成する。これは、単一サイトに対しても、コマンド
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
を入力する。

0067

このとき競合があるかも知れない。競合がある場合には、Tom は、それらの競合を解決するために、Dickに電話をする必要があるかも知れない。電話をした結果、Tom は、彼が持っている作業バージョン共有バージョンと一致していることを確信した。この仕事の間にはいろいろなセクションが一時的に間違っているかも知れないし、互いに不一致があるかも知れないが、これは作業コピーにすぎず発表するバージョンではないので、Tom は気にしない。やがて、Tom は、最終バージョンを校正しながらそれに満足するであろう。そして、それを上記したのと全く同じコマンドによってチェックする。

0068

コマンドの構文
“RECONCILE”コマンドの構文は
reconcile [オプション][[−モード]<ディレクトリファイル>]...である。ディレクトリもファイルも指定しないときは、現在の作業ディレクトリ(“.”)が使用される。
ディレクトリ 内部ジャーナルとファイルを含むディレクトリの名前を指定する。
ファイル どれかの離れたサイトを記述する外部ジャーナルの名前を指定する。“−”は標準入力または出力上の外部ジャーナルを指す。
モード モードは、次の文字のうちの1つまたは複数である。
r ジャーナルを読め、しかし書かない。
w ジャーナルを書け、しかし読まない。
o ファイルを更新するな、ジャーナルだけを更新する。
オプション 次のオプションパラメータを指定できる。
−q 実行する操作についてのメッセージの表示を抑制し、静かに作業をする。
−n −uフラッグにかかわらず、どのファイル(ジャーナルを除く)も更新しない。
−h このコマンドの構文の説明を表示せよ。
−a サイト名 サイト名で指定されたサイトを抹消する。このパラメータは、もはや使用されていないサイトについて忘れるために使用する。このパラメータは、プログラムが、もはや存在しない旧サイトとの調停のためだけにしか必要でない不用なジャーナル項目を捨てることを可能にする。サイトは2カ月後に自動的に抹消される。1カ月後には警告が表示される。

0069

環境に関しては、RECONCILE は、環境変数$HOST から使用されているコンピュータシステムの名前を取得する。この環境変数にコンピュータシステムの名前が指定されていないときは、“UNKNOWN”を用いる。

0070

動作に関しては、RECONCILE は、おおよそ次のステップでその処理を行う。
1.パラメータを解析し、調停すべきサイトのリストを作成する。サイトが指定されていないときは、ただ1つのサイトとして“.”(現在の作業ディレクトリ)を用いる。
2.各サイトの古いジャーナルファイル読む取込み)。
3.各内部サイトのために、そのサイトに現在存在するファイルを調べて、そのジャーナルを更新する。
4.既知のサイトとそれらの最近の調停の日時のリストを更新する。これらの調停の日時から、すべての既知のサイトにおいて不用であることが分った事象は捨てられる。
5.実際の調停を行う。すなわち競合を検出し、競合がないときはファイルを置換する。それにしたがって内部ジャーナルを更新する。
6.各サイトに向けて、更新されたジャーナルファイルを書く(送信)。
これらのステップは、この後にさらに詳しく説明する。

0071

ステップ1のパラメータ解析は、パラメータを順番に調べる単純なプロセスである。このステップは、モジュール“reconcile”中のプロシージャ“main”によって行われる。ステップ2と6におけるように、ジャーナルを読んだり書いたり(I/Oデバイスを通してのデータの取込み、送出)するために、ジャーナルは、モジュール“journal”中のプロシージャ“readjournal”および“readentries”によって読まれ、プロシージャ“writejournal”および“writeentries”によって書かれる。ジャーナルファイルの形式は、編集可能なテキストであり、この後のジャーナルファイルの形式について説明している部分で、詳しく説明する。

0072

ステップ3におけるような実際のディレクトリからの更新は、ディレクトリを読み、その結果にしたがってジャーナルに新しい項目を追加することによって、ジャーナルを現在の状況に合うように新しくする。この仕事は、モジュール“journal”中のプロシージャ“readdirectory”によって行われる。現在のディレクトリ中の項目は、1つずつ調べられる。見つかった各項目に対して、それに対応するジャーナル項目が存在しなければ、そのサイト、時刻、ファイル名を記録するための新しいジャーナル項目が生成される。そして、その新しいジャーナル項目、またはすでに存在した場合にはその既存のジャーナル項目に、確認済みマークが付けられる。

0073

ディレクトリ全体が読まれると、未確認の項目を探すためにそのジャーナルの全体が調べられる。未確認のジャーナル項目は、かつて存在したがもはや存在しないファイル、すなわち削除されたファイルを示す。このような未確認の項目に対しては、操作として削除、タイムスタンプとして現在の時刻を含む新しいジャーナル項目が生成される。

0074

ステップ5の調停では、モジュール“journal”中のプロシージャ“reconcile”により、ジャーナルの内部表現に基づいて調停が行われる。調停は、最新項目、すなわち対象ファイルに関する最も新しい項目に対してだけ行われる。それ以前の項目は、そのファイルの古いバージョンの記録である。この調停の目的は、すべてのサイトにそのジャーナル項目とファイルが存在するようにすることである。その項目が存在しないサイトに対しては、このプログラムは、まず競合があるかどうか調べる。競合がない場合には、その最近項目が存在するどれかのサイトからそのファイルがコピーされる。ファイルのコピーは、最新項目に記録されている操作が削除のときは、実際にはその削除でもよい。また、ディレクトリまたは記号による連結の生成または削除を含んでもよい。コピー及び削除は、そのサイトのモジュール中のプロシージャによって行われる。なぜなら、それらの操作は、サイトの種類に依存するからである。

0075

不一致の検出は、次のようにして行われる。後述するように、あるサイトにおいてあるファイルの最新バージョンがなく、その旧バージョンがあり、他のサイトに在るそのファイルの最新バージョンがその旧バージョンから派生したものでないときは、そのサイトにおいて競合が存在する。導出(操作)の存在は、最新のバージョンが、関連する一連のユーザの操作によって、旧バージョンから派生したことを示す。このことは、その旧バージョンを最新バージョンで置換しても安全であることを示す。なぜなら、そうすることはその導出における一連の操作を繰り返すことと同じだからである。導出の欠落は、そのような置換が危険であり、自動的に行ってはならないことを意味する。

0076

導出は、古いバージョンを新しいバージョンに変換する一連のステップである。各ステップは、どこかのサイトのジャーナルに、1つの項目の次にもう1つの項目が続き、そのサイトではそれらの間にそのファイルに関する他の項目が存在しないような連続した1対の項目として、直接に表わされている。他のサイトではそれらの項目の間に入るような項目が存在するかも知れない。それは、どこか別のサイトにおける競合を意味し、いま関心を持つ導出に対しては競合の発生を意味しない。あるサイトにおけるこの連続性は、2つの連続するバージョンのうちの新しい方のバージョンが、その2つのうちの古い方を編集または変更することによって直接に作成されたことを意味する。導出は追跡記録に似ている。なぜなら導出は、古いバージョンを新しいバージョンに変換するためになされたすべての操作を記録するからである。導出の存在は、モジュール“journal”のプロシージャ“connected”によって判断される。プロシージャ“connected”は、現在のバージョンから関係のない事象をスキップしながら、前バージョンに到達するまで、直接のステップを逆向きにたどる。

0077

不要の事象の廃棄(ステップ4)に関しては、不用になった事象を廃棄する何らかの方法がなければ、ジャーナルファイルは無限に大きくなる。あるサイトの事象は、そのサイトに同じファイルに関するそれよりも新しい事象が存在する場合には、そのサイトでは不用になる。ある事象がすべてのサイトにおいて不用のときは、その事象は決して不一致を引き起こすことはないので、捨てることができる。

0078

すべてのサイトにおけるバージョンの導出を追跡するために、ジャーナルは“既知のサイト”のリストを含む。各サイトには、そのサイトが関与した最近の調停の日時が付けられている。このリストは、調停が発生したときに、伝達され、更新される。既知のサイトの日時は、情報がその既知のサイトからいつ送られてきたかを示す。さらに、各既知のサイトは、受信通知のリストを生成することによって、これらのタイムスタンプを保存する。

0079

受信通知は、その既知のサイトの名前、そのサイトに知られているサイトの名前、その送信元のサイトのタイムスタンプを与える。再び、これらの受信通知は伝達され、適宜に更新される。送信元のサイトは、その受信通知のタイムスタンプを利用して、事象が他のサイトでいつ不用になったかを判断する。最も古い受信通知の日時よりも前に発生した事象は、すべての既知のサイトに伝達されているはずである。そのため、それ以前の事象は、競合を引き起こすことなく捨てることができる。

0080

最後に、消滅したサイトについて発生する可能性のある問題がある。もし、あるサイトが受信通知を生成しないと、そのことは事象の無限の蓄積を引き起こす。これを防ぐために、プログラムは、あるサイトから連絡を受けたのが1ケ月以上前であるサイトについて警告を出し、2ケ月後には既知のサイトのリストからそれらのリストを削除する。

0081

ジャーナルファイルの形式に関しては、ジャーナルファイルは、テキストエディタを使って読んだり変更したりすることができる標準的なテキストファイルである。これらのファイルは、1つの項目が1行になっており、さらに、1行のヘッダ行を持つ。ヘッダ行の形式は次の通りである。
Journal of <サイト名><日付><時刻> − <プログラム名>

0082

ここで、<サイト名>はその中でのファイルに関する事象をジャーナルに記録しようとするファイル構造の完全に修飾された名前、<日付>および<時刻>はそのジャーナルが書かれた日時、<プログラム名>はそのジャーナルを書いた特定のプログラムの識別子である。

0083

各項目行は、固定された1組のフィールドを含む。フィールドはタブによって区切られる。形式は次の通りである。
動詞> <日付> <時刻> <名前><種類>
ここに、
<動詞> 限定された数の1組の可能な操作を表す文字列のうちの1つである。
+ create(作成)または update(更新)。新しいバージョンを作成する。
− delete(削除)
* どこか他のサイトにより新しいバージョンがある。しかしながら、そのバージョンは、このサイトのそれよりも古いバージョンと競合する。
<日付> その操作がなされた日付(yy/mm/dd 形式)。
<時刻> その操作がなされた時刻(hh:mm:ss 形式)。
<名前>ファイル名。ファイル名の後には直に”種類”が続く(間にタブが入れられない)。
<種類> 1文字。
通常のファイルには何も付かない。
/サブディレクトリ
シンボリック・リンク

0084

補足行は、各既知サイトが関与した最近の調停の日付と時刻を与える。補足行の形式は次の通りである。
$ <日付> <時刻> <サイト名>
既知サイト行の直後には、受信通知を返すサイトの受信通知が続く。受信通知の形式は次の通りである。
. <日付> <時刻> <サイト名>
ここで、受信通知サイトは、ただ調停日時をその送信元(直前の既知のサイトの行に名前がある)に送り返すだけである。

0085

以上のように、この発明の好ましい実施例を示したので、この分野に熟達した人々には、この発明の考え方の範囲内でいろいろな修正や変更が可能であることが、思い浮ぶであろう。したがって、この発明の範囲は、特許請求範囲の記載によってのみ定められるべきである。

0086

上述した事柄を整理すると、次のようになる。重要なことは、あるファイルが2つの場所でいつ編集されたか、何がなされたか、その2つのバージョンのマージの許可を出すか否か、何に基づいて行うかなどを知ることである。したがって、マージが安全に行われるシステムを案出することが重要である。また、内容の競合が見つかったとき、その競合がいつでも自動的にではなく、競合があることを警告された操作者の選択によって解決されるようなシステムを提供することも重要である。

0087

競合の有無を判断する1つの先行技術の方法は、1つの中心となる場所において、起こったことを記録する所謂“ジャーナリング”技術であることに注意されたい。1つの中心的役割を与えられたコンピュータを用いることによって、順読みログまたはジャーナル方式の調停が行われる。しかしながら、集中化されたジャーナルを作成して保存するのではなく、各コンピュータまたはシステムが自分のジャーナルを作成して保存するのが、この発明の特徴である。このジャーナルは、ファイルのバージョンの履歴であり、編集されたファイル及びその日付/時刻を示す。競合を判断する場合には、関係する編集の種類についての詳細を記録するようにしてもよい。

0088

ファイルが同じで、かつジャーナルが一致するときは、バージョン間の競合はない。それに対して、1つのコンピュータでだけ仕事をして、他方のコンピュータでは仕事をせず、その結果生じたファイルのバージョンを他方のコンピュータにあるバージョンとマージするときは、この発明のシステムは、2つのジャーナルを比較して、一方のジャーナルに他方のジャーナルよりも多くの項目が記録されているか否かを調べるために、2つのジャーナルを比較する。この比較は、マージ操作時には簡易化されていることに注意されたい。2つのジャーナルに記録されている項目のどれかが相違するときは、システムは、ジャーナルによって競合の存在が示されないファイルを自動的にコピーし、かつユーザに対して、見つかった競合を解決するために幾つかの対応策が取れることを知らせる。

0089

同じファイルの異なるバージョンは、このように、各コンピュータにおいてそれぞれその場所のジャーナルを作成して保持し、ユーザによって指定された時に2つのジャーナルを比較し、そうするのが適当なときは自動的にファイルを更新し、そうでないときはそのような自動的な更新が適当でない旨の表示をユーザに提供することによって調停される。

0090

さらに具体的に言えば、この発明のシステムは、必要とされないファイルであると判断されたファイルを消去するか、置換操作で最近のファイルをその最近のファイルが存在しないコンピュータにコピーするように構成することができる。どこかの時点で、両方のコンピュータのジャーナルは、同時に新たに始められる。その後、ジャーナルが変化しないときは、ユーザに対して競合があるという表示を行う必要はない。それらのジャーナルのうちの1つが1つの場所だけで変化したときは、ただ単に、指示に従って他方のサイトのマシンに同じ操作をするように指令することが可能である。しかしながら、両方のジャーナルが変化したときは、ユーザに競合が解決できないことを警告することが非常に重要である。

0091

この発明においては、調停はコピーまたは削除の概念を含むだけでなく、保存されるログ中の個々の項目の内容の詳しさの程度を高めて、タイムスタンプを基準として行われる単純なマージ(併合)/パージ(消去)はうまくいかないことをユーザに警告することができる。例えば、警告されたとき、ユーザは、2つのファイルの相違する部分を強調表示する DIFF呼ばれるプログラムを走らせることができる。その時点で、ユーザは、2つのファイルのうちのどちらを望むかあるいはどのファイルにどのような変更を加えるかを決めることができる。

0092

このように、この発明では、分散ファイルシステムにおいて、システムは、ユーザに、単に1組のファイルが存在するという印象を与えるのではなく、ユーザの都合のいい時にでよいがときどき調停しなければならない1つのファイルの異なるバージョンが存在するという印象を与える。本システムは、ユーザの要求に応じて調停を行うことによって、同じファイルの複数のバージョンの問題を解決する。各コンピュータはそれぞれ、同じファイルの場所ごとのバージョン(ローカルバージョン)を持ち、それらのバージョンは、その場所でファイルに加えられた変更について記録した各場所のジャーナルを比較し、競合する変更が見つかったとき、ユーザの干渉を求めながら調停される。

0093

この調停システムの用途には、ファイルのリストの作成と調停、会社向けアプリケション応用ソフトウェア)、データベース管理システムなどが含まれる。また、ハードウェアには、オルガナイザーパームトップペンを使用するタブレット、及びノートブックなども含めることができる。このシステムのさらに他の用途には、ファイルの内部のレコードをマージすることも含まれる。また、ジャーナルをやり取りすることによって一括更新することも可能である。さらに、例えばワーキングセッションの開始または終了時に、ユーザまたはアプリケーションの指示にしたがって調停が実施されるようにしてもよいことが、この発明の1つの重要な特徴である。

0094

要約すると、この発明のファイルシステムは、分散ファイル環境において、1つのサイトでファイルになされた仕事を他のサイトで同じファイルになされた仕事のために失う危険なしにファイルを安全に更新するためのシステムであり、ファイルが変更されると、それに応じて更新されるジャーナルまたはログを各サイトごとに作成し保存することを含む。そして、どこかのサイトにおいてファイルの最新のバージョンが必要とされるとき、この発明のファイルシステムは、そのサイトのログを他のサイトからのログと比較する。

0095

必要とされるファイルの最新のバージョンが他のサイトに存在するとき、そして、そのサイトの古いバージョンをその最新のバージョンで更新しても問題が発生しないときは、そのサイトの古いバージョンをその最新のバージョンで自動的に更新する。競合するバージョンがあるときは、そのことをユーザに警告する。そのため、古いバージョンを持つサイトに、自動的にかつ安全に、新しいバージョンを送ることができる。

0096

同じファイルの異なるバージョンは、このように、各コンピュータにおいてそのサイトのジャーナルを作成し、ユーザによって指定された時に2つのジャーナルを比較し、そうするのが適当なときは自動的にファイルを更新し、そうでないときはそのような自動的な更新が適当でない旨の表示をユーザに提供することによって調停される。

0097

この調停は、そうしても安全であり、かつそうすることが必要なファイルだけを自動的に更新するように、ファイルの集合に対して適用できる。また、調停はユーザによって選択された時に行うので、ファイルの一致しないバージョンまたは部分的に完成したバージョンは、他のサイトには伝えられない。

0098

さらに、ログは、ファイル及びそれらのタイムスタンプに関してシステムの状態をときどき調べて、ファイルの出現、消滅及び変更を示すログ項目を追加することによって更新される。また、各サイトが調停に参加した最近の時を示す追加のログ項目を挿入し、それ以前のすべてのサイトが見た古い項目を消去することによって、ログから不用の項目をー掃することができる。

発明の効果

0099

以上のように、この発明の請求項1に係るログ生成装置によれば、検査手段によりファイルシステム上のファイルの現在の状態を検査し、その検査手段に応答動作してファイルの作成、変更、削除を示すログ項目を生成することにより、分散ファイル環境において、あるサイトでなされたあるファイルへの作業が他のサイトでそのファイルへの作業の結果失われてしまうといった危険を犯すことなく安全にファイルを更新するために、ファイルが修正された後に各々のサイトで更新されるログを用いることが可能になるという効果がある。

0100

また、請求項2に係るログ生成装置によれば、請求項1の装置であって、上記検査手段は、時々上記検査を行うための手段を含むことにより、必要になるファイルに対して更新を可能にすることができるという効果がある。

0101

また、請求項3に係るファイルの異なるバージョンを調停するための装置によれば、異なる場所にある1つのファイルの異なるバージョンを調停するための装置において、ファイルが変更された場所の各々においてファイルシステムの動作のログ項目を生成し、いくつかのただしすべてではない場所における動作を見分けるために異なる場所におけるファイルシステムの動作のログを比較し、ファイルシステムの動作のログを比較することによって各場所のバージョンを揃えるために必要な動作を決定し、上記各場所のバージョンを揃えようとする動作によりファイルの情報が失われる可能性があるかどうかを判断することにより、いかなるサイトでもファイルが用いられる以前に他のサイトからのログと比較されるため、異なるサイト上に矛盾するジャーナルのファイルが存在するならば利用者がすぐに変更することによって、新たなジャーナルのファイルは、古いジャーナルのサイトへ自動的にかつ安全に伝達されるのを可能にすることができるという効果がある。

0102

また、請求項4に係るファイルの異なるバージョンを調停するための装置によれば、請求項3の装置において、さらに、ファイルをコピーまたは消去することによって、上記決定されたファイルのバージョンを揃えるための動作を実行するための手段を含むことにより、競合の存在が示されないファイルはコピーされ、必要とされないファイルは消去されて、調停が行われるという効果がある。

0103

また、請求項5に係るファイルの異なるバージョンを調停するための装置によれば、請求項3の装置において、上記ログ中のある項目の直後に同じファイルのための項目が存在し、かつ上記後の項目が他のすべての場所にも存在するときに、上記前の項目を削除することによって不用になったログ項目を削除するための手段を含むことにより、不用になった古いログ項目を一掃することができるという効果がある。

0104

また、請求項6に係るファイルの異なるバージョンを調停するための装置によれば、請求項4の装置において、さらに、上記各場所のバージョンを揃えようとする動作によりファイルの情報が失われる可能性があるとき、そのことをユーザに知らせるための手段を含むことにより、警告を発することが可能になるという効果がある。

0105

また、請求項7に係るファイルの異なるバージョンを調停するための装置によれば、請求項6の装置において、さらに異なる場所のログにバージョンの更新操作を行うと情報の損失が発生する可能性がある相違が見つかったとき、そのことをユーザに知らせるための手段を含むことにより、ファイルの変更操作を促すことができるという効果がある。

0106

また、請求項8に係るファイルの異なるバージョンを調停するための装置によれば、請求項6の装置において、さらに不用になったログ項目を削除するための手段を含むことにより、不用になったログ項目を一掃することができるという効果がある。

0107

また、請求項9に係るファイルの異なるバージョンを調停するための装置によれば、請求項6の装置において、さらにある場所においてファイルの調停を行ったとき、調停の発生及びその日時を他のすべての場所に伝達するための手段を含むことにより、異なる場所のユーザに調停があったことを知らせることができるという効果がある。

0108

さらに、請求項10に係る異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置によれば、少なくとも同じファイルの1つのバージョンが各場所において変更された日時に対応する項目を含むログを生成し、ある場所のログの項目を、他の場所のログの項目と比較し、それらの間の相違を調べ、上記2つのログに相違がないか、または上記2つのログの相違がバージョンの更新操作を行うと情報の損失が発生しないような相違であるとき、上記ある場所において上記ファイルのバージョンを自動的に更新すると共に、上記2つのログの間の相違がバージョンの更新操作により情報の損失が発生する可能性を示す相違であるとき、上記自動的な更新を停止させることにより、異なる場所にあるコンピュータファイルの異なるバージョンの調停がなされるという効果がある。

図面の簡単な説明

0109

図1仕事場のコンピュータから離れた場所、例えば自宅内へのファイルのバージョンの移動を示す説明図である。
図22つの異なる場所におけるファイルの変更によって同じファイルの2つの異なるバージョンが生じる問題を示す説明図である。
図3いろいろなサイトにおけるログの生成と自動的な更新またはログの比較が不一致を示したときの手操作による更新を許可する前に行われるログの比較を含むファイルのバージョンを調停するための方法の説明図である。
図42つのサイトにジャーナルの生成、結合ジャーナルの形成、競合の検出、および競合の解決策に基づく処理の提供を示すブロック線図である。
図5ジャーナルおよび更新が必要でない状態、更新が必要な状態、削除が必要な状態、および競合が警告されるべき状態を示す説明図である。

--

0110

22、26記憶装置、24、28、30、32ディスケット、40、46 記憶装置、42、48、52、56ログ生成手段、44、50、54、58 ディスケット、60 比較手段、62 警告手段、66、68、70ジャーナル。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 株式会社ソケッツの「 検索装置および方法」が 公開されました。( 2019/09/19)

    【課題】同一の感性ワードで加重的に絞り込み検索を行えるようにする。【解決手段】同一の感性ワードで加重的に絞り込み検索を行う場合、類似・関連ワード抽出部319が、感性ワードに類似・関連する別のワードを検... 詳細

  • 株式会社リコーの「 端末装置、プログラムおよび情報処理システム」が 公開されました。( 2019/09/12)

    【課題】共通の情報に基づき異なる情報を提供可能とする。【解決手段】第1の実施形態に係る端末装置は、撮像部により撮像された撮像画像を、画像に基づき画像に関連付けられた連携情報を取得する検索装置に送信する... 詳細

  • エイアールエムリミテッドの「 診断データキャプチャ」が 公開されました。( 2019/09/12)

    【課題・解決手段】データ処理装置2内の診断データの統計的サンプリングは、サンプル間隔監視およびアドレス監視に基づいて行われる。プログラム命令は、それがサンプル間隔基準およびアドレス一致基準を満たすとき... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ