(57)【特許請求の範囲】
【請求項１】
コンピュータ・オペレーティング・システムのファイル・システムにおける、コンピュータにより実行するデータ・ストリームの比較方法であって、
第１のファイルに含まれる第１のデータ・ストリームについて、複数の第１の一意の変更識別子を含む第１のデータ署名を生成するステップであって、前記第１のデータ・ストリームは複数の第１の割り当てユニットに分離され、前記第１の一意の変更識別子の各々は前記第１の割り当てユニットの異なる１つに関連付けられ、前記第１のデータ署名は前記第１のファイルに含められる、前記のステップと、
第２のファイルに含まれる第２のデータ・ストリームについて、複数の第２の一意の変更識別子を含む第２のデータ署名を生成するステップであって、前記第２のデータ・ストリームは複数の第２の割り当てユニットに分離され、前記第２の一意の変更識別子の各々は前記第２の割り当てユニットの異なる１つに関連付けられ、前記第２のデータ署名は前記第２のファイルに含められる、前記のステップと、
前記第１のファイルの前記第１のデータ署名と前記第２ファイルの前記第２のデータ署名とを比較して、前記第１ファイルに含まれる前記第１のデータ・ストリームと前記第２のファイルに含まれる前記第２のデータ・ストリームとが同一であるか否かについて判定を行なうステップと、
を含むデータ・ストリームの比較方法。
【請求項２】
請求項１記載の方法において、前記第１のデータ署名を生成するステップが、
前記第１のデータ・ストリームを前記複数の第１の割り当てユニットに分離するステップと、
第１の割り当てユニット毎に１つの第１の一意の変更識別子として、前記複数の第１の一意の変更識別子を発生するステップと、
前記第１の一意の変更識別子を、前記第１のデータ署名に組み立てるステップと、
を含む、データ・ストリーム比較方法。
【請求項３】
請求項２記載の方法において、前記複数の第１の一意の変更識別子を生成するステップは、前記第１の一意の変更識別子の１つを前記第１の割り当てユニットの各々に割り当てる単調増加手段を用いて行なう、データ・ストリーム比較方法。
【請求項４】
請求項２記載の方法であって、更に、前記第１のデータ・ストリームを変更することによって前記第２のデータ・ストリームを作成するステップを含み、前記第２のデータ署名を生成するステップが、
前記複数の第２の一意の変更識別子を生成するステップであって、該複数の第２の一意の変更識別子が、
前記複数の第１の一意の変更識別子の対応する１つと同一である少なくとも１つの第２の一意の変更識別子であって、各々、前記第１の割り当てユニットの対応する１つに対して変化していない前記第２の割り当てユニットの１つと関連付けられた、前記少なくとも１つの第２の一意の変更識別子と、
少なくとも１つの新たな一意の変更識別子であって、各々、前記第１のデータ・ストリームに対して変更データを含む第２の割り当てユニットと関連付けられた、前記少なくとも１つの新たな一意の変更識別子と、
を含む、前記のステップと、
前記複数の第２の変更識別子を、前記第２のデータ署名に組み立てるステップと、
を含む、データ・ストリーム比較方法。
【請求項５】
請求項２記載の方法において、前記複数の第１の一意の変更識別子を生成するステップが、前記第１のファイルをディスクに格納するとき、単調増加手段によって、前記第１のファイルに含まれる前記第１のデータ・ストリームに刻印するステップを含む、データ・ストリーム比較方法。
【請求項６】
請求項２記載の方法において、前記第１の一意の変更識別子の各々および前記第２の一意の変更識別子の各々が、６４ビットより大きくないサイズを有する、データ・ストリーム比較方法。
【請求項７】
請求項２記載の方法において、前記第１の割り当てユニットの各々および前記第２の割り当てユニットの各々が、４Ｋバイトから２５６Ｋバイトまでの範囲のサイズを有する、データ・ストリーム比較方法。
【請求項８】
請求項１記載の方法において、前記第１のデータ署名を生成するステップが、コンピュータを一意に識別する識別子を、ローカルに生成したカウンタと組み合わせることによって、前記複数の第１の一意の変更識別子を生成するステップを含む、データ・ストリーム比較方法。
【請求項９】
コンピュータ実行可能命令を有するコンピュータ読取可能媒体であって、前記コンピュータ実行可能命令がコンピュータにより実行されると、該コンピュータにデータ・ストリームの比較方法を実行させ、該比較方法が、
第１のファイルに含まれる第１のデータ・ストリームを複数の第１の割り当てユニットに分離するステップと、
第１の割り当てユニット毎に１つの第１の一意の変更識別子として、複数の第１の一意の変更識別子を生成するステップと、
前記複数の第１の一意の変更識別子を、前記第１のデータ・ストリームに対応する第１の署名に組み立てるステップであって、前記第１の署名が前記複数の第１の一意の変更識別子を含み、前記第１の署名が前記第１のファイルに含められる、前記のステップと、  第２のファイルに含まれる第２のデータ・ストリームに対応する第２の署名を生成するステップであって、前記第２の署名が複数の第２の変更識別子を含み、前記第２の変更識別子の各々が、前記第２のデータ・ストリームを分離した複数の第２の割り当てユニットの異なる１つと関連付けられ、前記第２の署名が前記第２のファイルに含められる、前記のステップと、
前記第１のファイルに含まれる前記第１のデータ・ストリームと前記第２のファイルに含まれる前記第２のデータストリームとが同一か否かについて判定を行なうため、前記第１のファイルの前記第１の署名と前記第２のファイルの前記第２の署名とを比較するステップと、
を含む、コンピュータ読取可能媒体。
【請求項１０】
請求項９記載のコンピュータ読取可能媒体において、前記方法が、更に、前記第１の割り当てユニットに適切なサイズを決定するステップを備える、コンピュータ読取可能媒体。
【請求項１１】
請求項９記載のコンピュータ読取可能媒体において、前記方法が、更に、前記第１および第２の署名を第１および第２の署名属性にそれぞれ組み立てて、前記第１および第２の署名属性をそれぞれ前記第１および第２のファイルに格納できるようにするステップを備える、コンピュータ読取可能媒体。
【請求項１２】
請求項９記載のコンピュータ読取可能媒体において、前記第２のデータ・ストリームは、変更したデータを有する前記第１のデータ・ストリームであり、前記第２のデータ・ストリームに対応する前記第２の署名を生成する前記ステップが、更に、前記第１の署名における前記第１の一意の変更識別子の少なくとも一部を、更新した一意の変更識別子と置換して、前記第２の署名を形成することを含む、コンピュータ読取可能媒体。
【発明の詳細な説明】
【０００１】
（発明の背景）
（発明の分野）
本発明は、ファイル・システムにおいてファイル・データ・ストリームを比較するシステムおよび方法に関する。更に特定すれば、本発明は、実際にデータ・ストリーム間の比較を行なうことなく、各データ・ストリームに生成するネーティブ・データ署名（ｎａｔｉｖｅ  ｄａｔａ  ｓｉｇｎａｔｕｒｅ）間で比較することによって、ファイル・システムが迅速にファイル・データ・ストリームを比較することを可能にするものである。
（当技術分野の従来における状態）
コンピュータのオペレーティング・システムでは、ファイル・システムは、一般に、ファイルに名称を付け、格納し、編成する全体的構造として知られている。１９８０年代初期では、ＦＡＴ（ファイル割り当てテーブル）ファイル・システムが、第１世代のパーソナル・コンピュータ上でＭＳ−ＤＯＳ（ＭＩＣＲＯＳＯＦＴディスク・オペレーティング・システム）と共に開発された。一般に、コンピュータは低密度フロッピ・ディスク用ドライブを２台有し、ＦＡＴシステムは小さなディスク・ボリュームならびに構造およびファイルの階層ディレクトリを管理するには十分以上の処理能力を有していた。時の流れと共に、コンピュータ・ハードウエアおよびソフトウエアがパワーおよび速度を向上させるに連れて、ＦＡＴシステムは、パーソナル・コンピュータ・ユーザの要望に歩を合わせ続けてきた。しかしながら、低密度フロッピ・ディスクからより大きなハード・ディスク・ドライブに変遷し始めると、データ・ファイルの探索および検索は対応して時間的に遅くなっていった。
【０００２】
１０年後には、ＦＡＴシステムに別の欠陥が認められた。例えば、パーソナル・コンピュータのハード・ディスクは４０Ｍ以上に大容量化すると、ユーザは彼らのディスクを２つ以上のボリュームに区分しなければならなくなった。何故なら、ＦＡＴシステムは、ボリューム当たり３２ＭＢに制限されていたからである。しかしながら、ＭＳ−ＤＯＳの新しいバージョンは、より大きなディスク・ボリュームも勿論考慮した。
【０００３】
結局、ハード・ディスクが増々大容量化したので、新たなオペレーティング・システムＯＳ／２の一部として、高性能ファイル・システム（ＨＰＦＳ）が導入され、ハード・ディスク上の大きなボリューム管理の効率化を図った。ＨＰＦＳは、（１）ファイル・システムのブート、維持および復元のためにセクタ空間を確保し、（２）ディスク全体にわたって選択した間隔でビットマップ空間を確保しファイル格納の断片化を防止するように努め、（３）格納してあるファイル・データの高速精査を可能とする”Ｂ−Ｔｒｅｅ”ルートおよびノード階層の使用により、従来のＦＡＴシステムに対して速度面で優位にあった。ＨＰＦＳはＦＡＴシステムが用いていた８＋３キャラクタ・フォーマットから２５５キャラクタにファイル名称のサイズを拡大することも可能にした。ファイル名称が長い程、用いる記述名称も長くすることができる。
【０００４】
ＨＰＦＳおよびＦＡＴシステムは双方共、急速に変化しつつあるコンピュータ業界において、比較的早期に導入されたが、双方とも着実に人気のあるファイル・システムであり続け、その速度および多様性のために、引き続き広く用いられている。しかし、ファイル管理の限界は、ＨＰＦＳおよびＦＡＴシステム双方に相変わらず存在する。
【０００５】
例えば、今日のコンピュータ産業において、多数の洗練されたアプリケーションは、実質的に瞬時的な速度で、ほぼフォールトのないデータ・トランザクションを要求する。このようなアプリケーションは、国内および世界の金融市場、航空産業、銀行業界ならびに種々の技術および科学的なアプリケーションを含み、更に未だ名前をあげることができる。瞬時的かつゼロ・フォールト・トレランス・トランザクションの探求には、多数の変数を伴うが、今日のコンピュータの世界は、速度および精度上の優位性を、全くの初歩的なレベルであっても歓迎する。実際、そのようなトランザクションは、還元すると単に、ファイルに格納してあるデータ・ストリームの個々の特性に関する判定になってしまう場合がある。例えば、格納したデータが変化したか同じままかを確認する判定は、多くの場合、トランザクションが行われる迅速性または有効性に違いを生じさせるのに十分である。ＦＡＴおよびＨＰＦＳシステムでは、このような判定は、２つ以上のデータ・ストリームを、１対１即ちビット毎／バイト毎に比較することによって行なっている。
【０００６】
ＦＡＴおよびＨＰＦＳシステム双方は効果的にデータ・ストリームの判定を行なうことができるが、いずれもこれらの種類のアプリケーションに格別適している訳ではない。何故なら、データ・ストリームを１対１で比較することにより、貴重な時間が消費されるからである。これは、極端に長いデータ・ストリームを伴うアプリケーションには、特に言えることである。したがって、精度を維持または向上させつつ、データ・ストリーム間の比較を高速化し、時間を削減することが望ましい。
【０００７】
更に別の欠点は、多くの場合、古いファイルを新しいデータで更新し、次いで古いファイルを再度「バックアップ」して新たなデータに反映するときに、貴重な記憶空間が無駄になることである。新しいデータの変更は、その量が極少であったり、または取るに足らない程度に過ぎなくても、バック・アップ・ファイルは、以前と同じデータの多くを、新たなデータのエントリで繰り返し格納している。したがって、冗長ファイル・データを繰り返し格納する代わりに、ファイル・データ内における実際の変更だけをバックアップするシステムおよび方法を有することができれば望ましいであろう。
【０００８】
更に別の問題は、従来技術のファイルおよびオペレーティング・システムは比較的決定論的（ｄｅｔｅｒｍｉｎｉｓｔｉｃ）であり、今やその設計者が想定しなかった状況をカバーするように拡張することが容易にできないことである。したがって、別の方法またはファイル・システムをオペレーティング・システムに組み込み、前述の洗練されたファイル管理に対する要望を満たそうとしても、不可能ではないが、困難である。したがって、開発ファイルおよびオペレーティング・システムに完全に同化することができ、しかも同時に未だ完全に開発または想定されていない未来のファイル管理ユーティリティを同時に勘案しそれに対処するシステムおよび方法を提供することが望ましい。
（発明の概要）
本発明は、前述した当技術分野の従来の状態における問題の克服に成功した。本発明は、データ・ストリーム間で実際の比較を行なうことなく、ファイル・データ・ストリームの迅速な比較を実行するシステムおよび方法に関するものである。比較は、代わりに、各データ・ストリームに生成するネーティブ・データ署名間で行なう。本発明は、データ・ストリームが変化したか否か、そして変化した場合には、当該変化が起きたデータ・ストリーム内の場所の双方を迅速に判定する際に特に有用である。本発明の利点を享受することができる個々のファイル管理アプリケーションには、ファイル復元、格納、更新、およびデータ冗長性、ならびにその他の同様に関連のある洗練されたアプリケーションの多くが含まれる。
【０００９】
一実施形態では、本発明は、ディスク上に格納してある２つ以上のデータ・ストリーム間で比較を行なうために、ネーティブ・データ署名（ＮＤＳ）を生成する。その際、第１に、データ・ストリームを個々の格納割当ユニットに分離し、第２に、各割当ユニットに１つずつ一意の変更識別子（ＵＣＩ）を生成し、第３にＵＣＩの各々を対応するＮＤＳに組み込む。このようにして、常にデータ・ストリームを一意に識別するが、実際のデータ・ストリームの格納サイズと等価なサイズで表わす代わりに、格段に小さい割合でデータ・ストリームを表わす。したがって、実際のデータ・ストリームを１つずつ比較する代わりに、ネーティブ・データ署名間で比較を行なうことによって、データ・ストリームの比較を高速化することが可能となる。一実施形態では、割当ユニットのサイズは、４Ｋバイトから２５６Ｋバイトの範囲であり、ＵＣＩは６４ビットの大きさである。したがって、ＵＣＩが最大長の６４ビットであっても、ＮＤＳによってデータ・ストリームを比較する時間は、割当ユニットに採用するサイズに応じて、それぞれ、５００：１または３２，０００：１程度に改善する。
【００１０】
データ・ストリームに変更が生じた場合、変更データに対応する割当ユニットのみを更新し、次いで、更新した割当ユニットに対応するＵＣＩのみを更新する。このように、データ・ストリーム内のどこに変更が生じたのかについて判定する場合、ファイル・システムはどのＵＣＩが変化したかについてのみ判定すればよい。その結果、本発明によって、記憶空間の浪費が減少する。何故なら、ＮＤＳは、更新ＵＣＩによって、変更が生じたファイルのエリアを識別するので、ファイル全体ではなく、ファイルの変更データ・エリアのみをバックアップすればよいからである。
【００１１】
本発明の別の利点は、以下に続く説明に明記してあり、部分的にはその記載から自明であり、あるいは本発明の実施によって習得することができる。本発明の目的および利点は、添付した請求の範囲に特定して指摘した手段および組み合わせによって実現し、獲得することができる。本発明のこれらおよびその他の目的ならびに特徴は、以下の説明および添付した請求の範囲から一層明白となり、あるいは以下に明記する本発明の実施によって習得することができよう。
【００１２】
本発明の別の利点は、以下に続く説明に明記してあり、部分的にはその記載から自明であり、あるいは本発明の実施によって習得することができる。本発明の目的および利点は、添付した請求の範囲に特定して指摘した手段および組み合わせによって実現し、獲得することができる。本発明のこれらおよびその他の目的ならびに特徴は、以下の説明および添付した請求の範囲から一層明白となり、あるいは以下に明記する本発明の実施によって習得することができよう。
（図面の簡単な説明）
本発明の先に引用した利点およびその他の利点が得られるように、添付図面に示す具体的な実施形態を参照しながら、先に端的に記載した本発明の更に特定的な説明を行う。これらの図面は本発明の典型的な実施形態のみを示すものであり、したがってその範囲を限定すると見なすべきでないことを理解の上で、添付図面を用いて、更に具体的かつ詳細に本発明について記載し説明する。
（好適な実施形態の詳細な説明）
本発明は、格納してあるデータ・ストリーム間で実際の比較を行なわずに、ファイル・データ・ストリームを迅速に比較するシステムおよび方法を提供する。本発明によれば、ここに教示するように、コンピュータ・オペレーティング・システムの一部としてファイル・システムの動作によって格納するデータ・ストリームの各々に生成するネーティブ・データ署名を比較することによって、格納してあるデータ・ストリームの比較を行なう。尚、ネーティブ・データ署名とは、実際のデータ・ストリームのサイズを短縮した表現であり、したがってネーティブ・データ署名の比較は、実際のデータ・ストリームの長さ全体に及ぶ完全な比較とは異なり、計算時間の短縮に役立つものである。
【００１３】
本発明によれば、ここでは、本発明のシステムおよび方法を実現する際に用いる実施例の構図または処理のいずれかを示すために、図面を用いる。このように図面を用いて本発明を提示することは、その範囲の限定として解釈すべきことではない。以下で更に詳細に説明するが、本発明は、階層状データ格納のための方法およびシステム双方を念頭に入れている。本発明の実施形態は、種々のコンピュータ・ハードウエアを備えた特殊目的コンピュータまたは汎用コンピュータから成るものとすることができる。
【００１４】
また、本発明の範囲に該当する実施形態は、実行可能な命令またはデータ・フィールドが記憶されているコンピュータ読み取り可能媒体も含む。このようなコンピュータ読み取り可能媒体は、汎用コンピュータまたは特殊目的コンピュータによってアクセス可能で、かつ入手可能なあらゆる媒体とすることができる。一例として、限定ではなく、このようなコンピュータ読み取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスク・ストレージ、磁気ディクス・ストレージまたはその他の磁気記憶装置、あるいは所望の事項可能な命令またはデータ・フィールドを格納するために用いることができ、汎用コンピュータまたは特殊目的コンピュータによってアクセス可能なその他のあらゆる媒体を含むことができる。前述の組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれて当然である。実行可能な命令とは、例えば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理装置に、ある種の機能または機能群を実行させる、命令やデータを含む。
【００１５】
更に、記憶デバイスの階層も本システムに使用可能であることを想定する。このような記憶デバイスの階層は、あらゆる数または形式の記憶媒体を備えることができ、それらには、ハイエンド・高スループット磁気ディスク、１つ以上の通常のディスク、光ディスク、光ディスクのジュークボックス、テープ・サイロおよび／またはオフラインで格納するテープの集合体を含み、なおもこれらに限定する訳ではない。一般的には、しかしながら、種々の記憶デバイスは２つの基本的なカテゴリに分類することができる。第１のカテゴリは、コンピュータ・システムにローカルに使用可能な情報を収容するローカル・ストレージである。第２のカテゴリは、コンピュータ・システムにローカルにアクセスすることができない情報を収容するあらゆる形式の記憶デバイスを含む、リモート・ストレージである。これら２つデバイス・カテゴリ間の線は明確に定義することはできないが、一般的に、ローカル・ストレージは、比較的アクセス時間が素早く、頻繁にアクセスするデータを格納するために用いる。一方リモート・ストレージは、アクセス時間がかなり長く、頻繁にはアクセスしないデータを格納するために用いる。また、リモート・ストレージの容量は、通常、ローカル・ストレージの容量よりも１桁大きい。
【００１６】
図１および以下の論述は、本発明を実現可能とするのに適した計算機環境について、手短な概略的説明を行うことを意図したものである。必ずしも必要ではないが、本発明は、コンピュータによって実行するプログラム・モジュールのような、コンピュータ実行可能命令に全般的に関連付けて説明する。一般的に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行したり、あるいは特定の抽象的データ型を実現する。更に、本発明は、ハンド・ヘルド機器、マルチプロセッサ・システム、マイクロプロセッサを用いた即ちプログラム可能な民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ等を含む、その他のコンピュータ・システム構成を用いても実施可能であることを、当業者は認めよう。また、本発明は、通信ネットワークを通じてリンクしてあるリモート処理機器によってタスクを実行する分散型計算機環境においても実施可能である。分散型計算機環境では、プログラム・モジュールは、ローカルおよびリモート双方のメモリ記憶装置に配置することも可能である。
【００１７】
図１を参照すると、本発明を実現するシステムの一例は、従来のコンピュータ２０の形態とした汎用計算機を含み、演算装置２１、システム・メモリ２２、およびシステム・メモリを含む種々のシステム・コンポーネントを演算装置２１に結合するシステム・バス２３を含む。システム・バス２３は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいずれかを用いたローカル・バスを含む数種類のバス構造のいずれであってもよい。システム・メモリは、リード・オンリ・メモリ（ＲＯＭ）２４およびランダム・アクセス・メモリ（ＲＡＭ）２５を含む。起動中におけるように、コンピュータ２０内部のエレメント間で情報を転送する際に役立つ基本ルーチンを含む基本入出力システム２６（ＢＩＯＳ）が、ＲＯＭ２４に格納してある。更に、コンピュータ２０は、図示しないハード・ディスクに対して読み出しおよび書き込みを行うハード・ディスク・ドライブ２７、リムーバブル磁気ディスク２９に対して読み出しおよび書き込みを行う磁気ディスク・ドライブ２８、ならびにＣＤ  ＲＯＭまたはその他の光媒体等のリムーバブル光ディスク３１に対して読み出しおよび書き込みを行う光ディスク・ドライブ３０を含む。ハード・ディスク・ドライブ２７、磁気ディスク・ドライブ２８、および光ディスク・ドライブ３０は、それぞれ、ハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、および光ドライブ・インターフェース３４を介してシステム・バス２３に接続してある。ドライブおよびそれらと関連するコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラム・モジュール、およびコンピュータ２０のためのその他のデータの不揮発性格納を行う。ここに記載する環境の一例では、ハード・ディスク、リムーバブル磁気ディスク２９およびリムーバル光ディスク３１を採用するが、磁気カセット、フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）等のような、コンピュータによるアクセスが可能なデータを格納することができる、その他の種類のコンピュータ読取可能媒体も、動作環境の一例では使用可能であることは、当業者には認められよう。
【００１８】
オペレーティング・システム３５、１つ以上のアプリケーション・プログラム３６、その他のプログラム・モジュール３７、およびプログラム・データ３８を含む、多数のプログラム・モジュールを、ハード・ディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４またはＲＡＭ２５に格納することができる。ユーザは、キーボード４０およびポインティング・デバイス４２のような入力デバイスを介して、コマンドおよび情報をコンピュータ２０に入力することができる。その他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等が含まれる場合もある。これらおよびその他の入力デバイスは、多くの場合システム・バスに結合してあるシリアル・ポート・インターフェース４６を介して演算装置２１に接続するが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ）のような他のインターフェースを介して接続することも可能である。モニタ４７またはその他の種類の表示装置も、ビデオ・アダプタ４８のようなインターフェースを介して、システム・バス２３に接続してある。モニタに加えて、コンピュータは通常、スピーカおよびプリンタのような、その他の周辺出力装置（図示せず）も含む。
【００１９】
コンピュータ２０は、リモート・コンピュータ４９のような、１つ以上のリモート・コンピュータへの論理接続を用いて、ネットワーク化環境においても動作することができる。リモート・コンピュータ４９は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通常、コンピュータ２０に関して先に述べたエレメントの多くまたは全てを含むが、図１にはメモリ記憶装置５０のみを示してある。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）５１およびワイド・エリア・ネットワーク（ＷＡＮ）５２を含む。このようなネットワーク化環境は、オフィスの企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的である。
【００２０】
ＬＡＮネットワーク化環境において用いる場合、コンピュータ２０はネットワークまたはアダプタ５３を経由してローカル・ネットワーク５１に接続する。ＷＡＮネットワーク化環境において用いる場合、コンピュータ２０は通常モデム５４、またはインターネットのような広域ネットワーク５２を通じて通信を確立するその他の手段を含む。モデム５４は、内蔵型でも外付けでもよく、シリアル・ポート・インターフェース４６を介してシステム・バス２３に接続してある。ネットワーク化環境では、コンピュータ２０に関して図示したプログラム・モジュール、またはその部分をリモート・メモリ記憶装置に格納することも可能である。このネットワーク接続は一例であり、コンピュータ間に通信リンクを確立するその他の手段も使用可能であることは認められよう。
【００２１】
図２を参照すると、フロー図は、ファイル・システムの動作によって格納したデータ・ストリーム間における実際の比較を全く必要とせずに、ファイル・データ・ストリーム間で比較を行なう方法を示す。ファイル・データ・ストリーム比較の始原（ｇｅｎｅｓｉｓ）は、オペレータがファイルにおいて作業を行なっており、記憶媒体１０２上にファイル・データ・ストリームを格納する時に開始する。ファイル・データ・ストリームおよびその格納は、当技術分野では双方とも公知であり、通常、前述のようなローカルおよびリモート記憶媒体のいずれかに、テキストまたは二進情報のいずれかを書き込むことを含む場合が多い。以下、このような格納を総じてディスク上に格納すると言うことにする。
【００２２】
ディスク上へのデータ・ストリームの格納後、格納したデータ・ストリームに一意に対応する第１署名１０４の生成を呼び出す。尚、署名とは、以下で説明するが、より大きなデータ・ストリームのサイズを小さくした表現であることは認められよう。例えば、同じユーザのセッションの一部としてファイル上で作業を更に行なったり、またはファイルを格納し閉じてから当該ファイルを再度開いて作業を続ける場合、ファイルのデータ・ストリームは、ファイルを更新する毎に、頻繁に修正または変更する（１０６）。何らかの理由でデータ・ストリームを変更しない場合、またはディスク１１０に再度格納しない場合、データ・ストリームは、ステップ１０４で生成した当該データ・ストリームの第１署名１０８を維持している。
【００２３】
一方、データ・ストリームを変更しディスク１１０に書き戻し格納した場合、更新した即ち第２の署名１１２を生成するステップを呼び出す。この時点で、２つの異なるデータ・ストリームに対応して、２つの署名が存在する。最初に格納したデータ・ストリームに対応する第１署名、および変更したデータ・ストリームに対応する第２署名である。しかしながら、ここで認めるべきことは、第１および第２署名は双方共、ファイル・システムの動作によって格納した実際のデータ・ストリームよりも遥かに短いということである。これについては、以下で詳細に説明する。したがって、データ・ストリームが同一かまたは異なるかについて判定を行なわなければならない場合、従来技術において行われているように、データ・ストリーム全長に及ぶ実際の１対１の比較ではなく、対応する署名を比較することにより、一層迅速な判定を行なうことができる。
【００２４】
更に認めるべきは、データ・ストリームの比較は、単にデータを比較するためファイル・システム内部で行われるのではなく、通常、他のファイル管理ユーティリティの実行を伴う種々の前後関係の理由で行なうということである。したがって、管理ユーティリティを実行するとき（１１４）、データに対応する署名を比較する（１１６）。典型的なデータ管理ユーティリティは、ファイル復元、ファイル複製、内容インデックス化、格納、更新、データ冗長性、およびその他の同様に関連する管理ユーティリティを含み、なおもこれらに限定される訳ではない。その他多数の現在存在するユーティリティも、ファイル・データ・ストリームを比較する必要性があり、更に未だ想定されていないユーティリティも、ファイル・データ・ストリームを比較する必要性があるものもあろう。しかしながら、データ・ストリームの比較は、実際のデータの１対１全長比較を実行することによってできなくはないが、今日のコンピュータ・アプリケーションは、本発明のネーティブ・データ署名から得られる迅速性および精度を必要とすることを注記するのは重要である。
【００２５】
図２Ａを参照すると、ディスク１０２にデータ・ストリームを格納するとき、署名ＮＤＳ１０４を生成するプロセスを呼び出す。このプロセスが開始すると、データ・ストリームを割当ユニット１２４に区分即ち分離する。割当ユニット１２４のサイズはいずれにすることも可能であるが、一実施形態では、４Ｋバイトから２５６Ｋバイトの範囲のサイズとする。この選択したサイズは、通常、ディスク・フォーマットの関数であり、そのサイズはユーザが指定するか、あるいはデフォルトとして選択しコンピュータによって適切なサイズに決定することができる。一旦割り当てられると、一意の変更識別子（ＵＣＩ）１２６を各割当ユニット毎に生成する。ＵＣＩは、割当ユニット間の区別を行なう手段であり、種々の実用的な実施形態を採用することができる。
【００２６】
一実施形態では、ＵＣＩは単調増加手段であり、各割当ユニットがそれ自体のＵＣＩを受け取ること、および単調増加タイム・ラグまたはカウンタのように、時間が進んでもＵＣＩが決して繰り返されないことを保証する。単調増加手段は、ＵＣＩには特に適している。何故なら、割当ユニットによってデータ・ストリームに単調増加タイム・ラグを刻印することにより、他の管理ユーティリティの実行が容易になるからである。例えば、入手可能な最新バージョンのファイルを得るユーザ実行の間、ファイルの構造においてどの時点で変更が生じたのかを理解することは非常に重要である。各割当ユニットが一意の時間スタンプを有すれば、コンピュータにとってどのバージョンのファイルが入手可能な最新版であるかを確認することは簡単である。このようにＵＣＩに適した別のデバイスも当技術分野では既に公知であり、データベース管理システムにおいて見られる更新連番、種々のクロック、ローカル・カウンタ、または割当ユニットに一意性を与えるその他の類似したあらゆる手段を含むことができ、しかもこれらに限られる訳ではない。コンピュータにＩＤを用いることによって、これをコンピュータのネットワークに拡張し、それらの間で作成したブロードキャストにおいて用いることができる。言い換えると、ネットワーク上の各コンピュータがそれを識別するＩＤを有する場合、ＩＤはＵＣＩの一部を構成することができる。このように、ＵＣＩの検査により、当該ＵＣＩを生成したコンピュータを特定する。コンピュータＩＤをＵＣＩの一部として含ませると、コンフリクトや本発明のコンピュータ・ネットワークにおいて用いる場合に発生するその他の問題を分類するのに役立てることができる。
【００２７】
一旦ＵＣＩを生成したなら、ＵＣＩをＮＤＳ１２８即ちデータ・ストリームの一意の署名に組み込む。尚、各ＵＣＩは、好ましくは、数が６４までを含む範囲の一連のビットで構成することは認められよう。したがって、データ・ストリーム自体は非常に大きいが、ＮＤＳはそれを大幅に縮小した表現であることは明白である。例えば、ＵＣＩが実際に６４ビットまでの範囲を取り、割当ユニットが４Ｋバイトから２５６Ｋバイトまでのサイズを単位とするデータ・ストリームを格納する場合、時間効率は、ＮＤＳと比較すると、大幅に改善する。この例では、効率は、それぞれ５００：１および３２，０００：１程度に改善する。その結果、ＮＤＳを比較することによるデータ・ストリームの比較は、実際のデータ・ストリーム間の１対１比較よりも時間的に格段に短くて済む。このような時間効率の改善は、コンピュータ産業では常に歓迎される。
【００２８】
以上の説明では、ＵＣＩ、割当ユニットおよびＮＤＳについて具体的な数値による好ましいサイズを記載したが、特定の数値は限定ではなく、単なる代表として解釈すべきことである。ここでも同様に重要なのは、特定のデータ・ストリームに対して生成する署名が、実際にデータ自体を比較する必要がある場合とは異なり、データ比較の高速化を可能にするサイズであるということである。この概念を具体化するデータ・ストリーム署名の変形は全て、本発明の範囲内に該当し、単一のコンピュータまたはネットワークにおけるコンピュータの集合のためのものと見なすこととする。
【００２９】
図２Ｂを参照すると、ユーザがデータ・ストリームを変更または更新しディスク１１０に再度格納したときに、別の、即ち、第２のＮＤＳ１１２の生成を呼び出す。第２ＮＤＳ１１２の生成を開始する際、ファイル・データ・ストリームおよび対応する割当ユニット（複数の割当ユニット）が変更された場所（複数の場所）を判定する（１３０）。次に、更新が行われ、更新したＵＣＩ１３２を対応する割当ユニットに指定することによって、割当ユニット（複数の割当ユニット）は、その中に変更後のデータ・ストリームを有することになる。以前と同様、このような更新後のＵＣＩは、元のタイム・ラグよりも１タイム・ラグだけ時間的に遅れたものとすることができる。最終的に、元の即ち第１のデータ・ストリームに対応する以前の即ち第１のＮＤＳを変更することによって、第２の即ち更新したＮＤＳを生成し（１３４）、変更したデータ・ストリームを精度高く反映する。このＮＤＳ更新を行なうには、元々割り当ててあったＵＣＩ（複数）を、変更後の割当ユニットに対応する更新ＵＣＩ（複数）と置換する。第１および第２ＮＤＳを生成するステップを更に詳しく例示するために、これより図３を参照する。
【００３０】
図３において、第１ＮＤＳ１３６は、６つの個別割当ユニットに分離したデータ・ストリームに対するＵＣＩの集合体に対応するものとして示している。各割当ユニットには、ＵＣＩ−１、ＵＣＩ−２等ＵＣＩ−６までの範囲の対応するＵＣＩを指定してある。新たなデータをデータ・ストリームに追加した後、更新即ち第２ＮＤＳ１３８を生成する。第２ＮＤＳ１３８は、６つの割当ユニットに分離された元のデータ・ストリームに対するＵＣＩの集合体に加えて、追加の新データに対応する追加の２つの割当ユニットに対応する。尚、この例では、新たなデータを添付したこと以外に第１データ・ストリームを変更しなかったので、第２署名１３８の第１部分は対応して無変化のままとなる。何故なら、基礎的なデータ・ストリームは同一であるからである。つまり、第２ＮＤＳ１３８は、ＵＣＩ−１からＵＣＩ−６までの範囲である集合ＵＣＩに対応し、更に、追加の新データに対応して、サイズがＵＣＩ−６（ＵＣＩ−ｎ）からある値ＵＣＩ−８（ＵＣＩ−ｎ＋ｘ）に増大する。加えて、ＮＤＳはサイズが成長するだけでなく、第１ＮＤＳを生成した後の時点で更新されたので、変更データ・ストリームを内部に有する割当ユニットに更新ＵＣＩを割り当てる。したがって、追加の新データに対応する第２ＮＤＳ１３８は、無変化のままであるデータ・ストリームの部分に対するＵＣＩ−１、ＵＣＩ−２．．．ＵＣＩ−６までの範囲のＵＣＩと、後の時刻値のＵＣＩを有する追加データに対する２つの割当ユニットに対するＵＣＩ−７．１、ＵＣＩ−８．１とによって組み立てられる。
【００３１】
ここで認めるべきは、適切なアルゴリズムを用いれば、例えば、第１および第２ＮＤＳ１３６，１３８間で迅速な比較を実行し、データ・ストリームが同一かまたは異なるかを判定できるだけでなく、データ・ストリームをディスクにバックアップする際に、格納は最後の割当ユニットＵＣＩ−７．１、ＵＣＩ−８．１についてのみ行なうだけでよいということである。最初の６つの割当ユニットには既に格納してあるので、これらを第２ＮＤＳと対応付けて再度格納することによって、貴重な記憶空間を不当に浪費することはない。このように、「余分な」記憶空間によって、例示のオペレーティング・システムやその他の管理ユーティリティには一層有利になる。
【００３２】
更に、少なくとも２つのデータ・ストリームが異なることがわかったときにある種の管理ユーティリティを実行する際、即ち、ＮＤＳを比較する（１１６）ことによって、管理ユーティリティはどの割当ユニット（複数の割当ユニット）において変更が生じたかを把握しているので、実際のデータ内において変更（複数の変更）が生じた場所（複数の場所）を判定するプロセスも迅速に処理されることも認められよう。更に別の例示として、データ・ストリームに追加の新データを添付するのではなく、データ・ストリームを再度修正する場合、第１割当ユニットに対応して生じたデータ・ストリームにおける変更に対して、第３ＮＤＳ１４０を生成する。この例では、第３ＮＤＳ１４０は、更に更新したＵＣＩを第１割当ユニットに結び付ける（ｔａｇ）ことによって、データ・ストリーム内の変更を明確に反映し、ＵＣＩの集合は、例えば、ＵＣＩ−１．２、ＵＣＩ−２、ＵＣＩ−３ないしＵＣＩ−６、ＵＣＩ−７．１、ＵＣＩ−８．１から読み取ることになる。次いで、迅速比較時に、第１割当ユニットに分離したデータ・ストリームにおいて変更があったこと、即ち、ＵＣＩ−１からＵＣＩ−１．２となったことを判定することができる。こうして、適切な実行コマンド時に、比較および更新の速度において著しい進歩が実現する。
【００３３】
図示のＵＣＩは、７または７．１というような数値として説明したが、これに加えて、ＵＣＩは、データ・ストリームの同一性を迅速に判断する方法を可能にするため、またはファイルのどの部分を格納する必要があるか判定するための任意の識別手段とすることも可能である。他の適当な例には、二進構成、キャラクタ、文字、時間指定、またはその他の任意の適当な手段を含むこともでき、しかもこれらに限定される訳ではない。加えて、ＵＣＩは変更または更新したデータ・ストリームに割り当てるものとして説明したが、これ以外にも、データ・ストリームの変更、更新、またはグループ化が最初になくても、単にクロックによって数秒毎に生成される周期的なフラグとして、ＵＣＩを割り当てることも可能である。このように、これまでの説明は、限定としてではなく単なる代表として解釈して当然であることは認められよう。
【００３４】
また、ＵＣＩは、コンピュータまたはその他の機構を識別するＩＤの使用を通じて、変更が生じたコンピュータのアイデンティティ（ｉｄｅｎｔｉｔｙ）を符号化することも可能である。例えば、多くのネットワークでは、各コンピュータが一意のＩＤを有し、ネットワーク上の他のコンピュータから当該コンピュータを区別するためにこれを利用することができる。このＩＤはＵＣＩの一部とすることも可能である。その場合、ＵＣＩを検査することにより、変更を行なったコンピュータを特定することができる。また、各コンピュータが、単純なカウンタまたはその他の機構を用いてＵＣＩの一部を生成し続けるようにすることも可能である。何故なら、単純なカウンタを一意のＩＤと組み合わせると、一意のＵＣＩが作成され、ネットワーク内の他のいずれのコンピュータが作成する他のいずれのＵＣＩとも混同することはないからである。ネットワーク環境において一意のＵＣＩを指定する他の方式も使用可能である。例えば、共通のカウンタからＵＣＩを得ることができるようにする方式も用いることができるが、性能上の理由で、この手法は望ましくない場合もある。別の例として、数値のブロックを共通のソースから各コンピュータに割り当てることも可能である。この場合、ローカル・コンピュータは、必要に応じて、割り当てられたブロックからローカルＵＣＩを指定することができる。この手法は、ＵＣＩの作成に伴うオーバーヘッドを削減しつつ、なおも中央のカウンタを使用することができる。しかしながら、このような手法は、コンピュータＩＤをローカル・カウンタと共に用いることによって既に得られている利点のいずれももたらさない場合もある。
【００３５】
図４を参照すると、本発明を実現するのに適したファイル例は、属性の集合体としてファイル１４４の構成を含む。データ・ストリーム１４６および署名１４８は、そのような２つの属性である。これら図示の属性は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＮＴに特別に開発したＮＴＦＳファイルが使用する属性の変更リストを表わす。ＮＴＦＳファイル・システムについては、Ｈｅｌｅｎ  Ｃｕｓｔｅｒ（ヘレン・カスター）著、Ｍｉｃｒｏｓｏｆｔ  Ｐｒｅｓｓ発行のＩｎｓｉｄｅ  ｔｈｅ  Ｗｉｎｄｏｗｓ  ＮＴ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（Ｗｉｎｄｏｗｓ  ＮＴファイル・システムの内側）に詳な説明があり、その内容はこの言及により本願にも含まれるものとする。図４において、ファイル１４４を構成する属性は、２つの基本的グループに分割することができる。第１グループはシステム属性を含み、第２グループはユーザ属性を含む。一般に、システム属性は、システムがその種々の機能を実行するために必要な情報または要求された情報を格納するために用いる。このようなシステム属性は、一般に、ロバストなファイル・システムを実現することができる。システム属性の正確な数および形式は、利用する個々のオペレーティング・システムまたは個々のファイル・システムに完全に依存する。一方、ユーザ属性は、ユーザ制御データを格納するために用いる。これは、ある状況の下ではユーザは１つ以上の属性へのアクセスを得られないということを言っているのではない。しかしながら、ユーザ属性は、ユーザまたはクライアント・プログラムが対象のデータをプログラムに格納することができる格納場所を定義する。図４では、システム属性を全体的に１５０で示し、ユーザ属性を全体的に１５２で示す。
【００３６】
更に、システム属性は、例えば、標準情報属性１５４、属性リスト１５６、名称属性１５８、およびセキュリティ記述属性１６０で構成することができる。標準情報属性１５４は、読み取りのみ、システム、隠れ等というような、標準的な「ＭＳ−ＤＯＳ」属性を表わす。属性リスト１５６は、ファイルがマスタ・ファイル・テーブル内において１つよりも多い記憶レコードを占める場合に、ファイルを構成する追加属性の場所をＮＴＦＳが識別する際に用いる。マスタ・ファイル・テーブルとは、ファイルまたはディレクトリの常駐属性全てを格納する場所のことである。名称属性１５８は、ファイルの名称である。ファイルは、例えば、長い名称、短いＭＳ−ＤＯＳ名称等、多数の名称属性をＮＴＦＳ内に有することができる。セキュリティ記述属性１６０は、誰がファイルを所有し、だれがそれにアクセスすることができるかを指定する際にＷｉｎｄｏｗｓ  ＮＴが使用するデータ構造を含む。加えて、ユーザ・グループ１５２およびシステム・グループ１５０双方は、現在および今後の使用に利用可能な他のシステムおよびユーザ属性１６１、１６３も有する。これらの属性については、先に言及して本願にも含まれるものとしたＩｎｓｉｄｅ  ｔｈｅ  Ｗｉｎｄｏｗｓ  ＮＴ  Ｆｉｌｅ  Ｓｙｓｔｅｍに詳細に説明されている。
【００３７】
動作において、図５を参照すると、上述のような属性を有するファイル１４４は、（ｉ）データ・ストリーム１４６を割当ユニット（複数の割当ユニット）１６２に分離し、（ｉｉ）各割当ユニット１６２毎にＵＣＩ１６４を生成し、（ｉｉｉ）各ＵＣＩ（この例では６つ）をファイル１４４の署名属性１４８に組み込むことによって、データ・ストリーム１４６に対して生成したＮＤＳ即ち署名属性１４８を有する。ＮＴＦＳの特定の実施形態では、署名属性１４８は、＄ＳＩＧＮＡＴＵＲＥ：ＳｔｒｅａｍＮａｍｅとして示している。しかしながら、署名属性は多くの代替物でも表記可能であるので、このような表記は、限定としてではなく、代表として解釈して当然である。
【００３８】
図１のオペレーティング環境例ならびに図４および図５のＮＴＦＳシステムに関係するコンピュータ読み取り可能媒体の一部として、データ・ストリームを比較するためのＮＤＳ生成の詳細な説明に関して、ＮＤＳの生成も効率的な達成のために利用可能な無数の代替物を有することが認められよう。一実施形態では、システムは、ディスク上に格納してあるデータ・ストリーム１４６のサイズを判定し、データ・ストリームを、適切な数の適切なサイズに決定した割当ユニット１６２に分離する。一旦割り当てられると、次にシステムは、各割当ユニット毎に１つのＵＣＩを生成するために、割当ユニットをいくつ利用したかについて判定を行なう。データ・ストリームを変更しディスク上に格納する毎に単調に増加するタイム・タグを適用したＵＣＩによって、各割当ユニットを識別可能とする手段も好ましい。例えば、本発明の現在において好適な一実施形態では、ＮＴＦＳのＬｏｇ  Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ（ＬＳＮ：ログ・シーケンス番号）をＵＣＩとして用いる。ＮＴＦＳでは、ＬＳＮは、ログ・ファイル、即ち、ＮＴＦＳのシステム・ファイルに書き込まれるレコードの付番によって得られるインスタンスとして定義する。あるいは、現在において好適な別の実施形態では、ＮＴＦＳのＵｐｄａｔｅ  Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ（ＵＳＮ：更新シーケンス番号）をＵＣＩとして用いる。ＮＴＦＳでは、ＵＳＮは単調増加システム属性であり、閉鎖動作を実行する毎に生成し割り当てる。ＬＳＮについては、先に言及して本願にも含まれるものとしたＩｎｓｉｄｅ  ｔｈｅ  Ｗｉｎｄｏｗｓ  ＮＴ  Ｆｉｌｅ  Ｓｙｓｔｅｍに詳細に説明されている。
【００３９】
一旦各ＵＣＩを生成したなら、システムは、得られたＵＣＩをＮＤＳ１４８に組み込む。その後、オペレーティング環境例は、データ・ストリームにおいていつ変更が生じたかについて判定を行い、変更が生じた場合、その変更をディスクに再度セーブしたか否かについて判定を行なう。セーブした場合、次にシステムはこの変更（複数の変更）によってどの割当ユニット（複数の割当ユニット）が影響を受けたかについて判定を行い、変更した割当ユニット（複数の割当ユニット）の各々に更新ＵＣＩを適用可能とする。次に、更新ＵＣＩを、データ・ストリームに対して行なった変更の影響を受けなかった割当ユニットに関連するＵＣＩと結合することにより、第２ＮＤＳを生成する。次いで、第１および第２ＮＤＳを比較することによって、データ・ストリーム間で比較を行なうことができる。尚、第１および第２ＮＤＳを比較する手段は、通常、特殊目的コンピュータまたは汎用コンピュータの一部として、先に定義したように、ディスク上に格納してあるプログラム・モジュールの一部として使用可能であることは認められよう。
【００４０】
要約すると、本発明は、データ・ストリームが同一かまたは異なるかについて、実際のデータ・ストリーム間で比較を行なうことなく、迅速に判定する信頼性高いシステムおよび方法を提供する。更に、データ・ストリームが異なる場合、本発明は、データ・ストリーム間のどこに変更が生じたかについても、データ・ストリームの全サイズを実際に比較する必要なく、迅速に判定することができる。このような方法およびシステムを達成するには、ファイル・システムの動作によって格納した各データ・ストリーム毎にＮＤＳを生成する。この場合、各ＮＤＳは、対応するデータ・ストリームと比較すると、そのサイズが極めて小さくなっている。
【００４１】
本発明は、その精神または本質的な特徴から逸脱することなく、他の特定形態においても具体化可能である。前述の実施形態は、あらゆる観点においても、限定的ではなく例示として解釈するものとする。したがって、本発明の範囲は、前述の説明ではなく、添付した特許請求の範囲によって示すこととする。特許請求の範囲の意味および範囲に該当する全ての変更は、その範囲内に含まれるものとする。
【図面の簡単な説明】
【図１】  本発明に適したオペレーティング環境を備えるシステム例である。
【図２】  本発明にしたがってファイル・データ・ストリームの比較を行なう階層動作のフロー図である。
図２Ａは図２のファイル・データ・ストリーム比較ルーチンが呼び出すネーティブ・データ署名を生成するフロー図である。
図２Ｂは図２のファイル・データ・ストリーム比較ルーチンが呼びだすネーティブ・データ署名を更新するフロー図である。
【図３】  異なる一意の変更識別子を有するネーティブ・データ署名間の比較例の図である。
【図４】  ファイル・システムの動作によってどのようにネーティブ・データ署名を格納することができるかに関する例である。
【図５】  データ・ストリーム属性から生成した署名属性を有するファイル例の図である。
【図１】
0004283440.tif 000002
【図２】
0004283440.tif 000003
0004283440.tif 000004
【図３】
0004283440.tif 000005
【図４】
0004283440.tif 000006
【図５】
0004283440.tif 000007