JP4348036B2 - Method and system for creating and maintaining version-specific properties in a file - Google Patents
Method and system for creating and maintaining version-specific properties in a file Download PDFInfo
- Publication number
- JP4348036B2 JP4348036B2 JP2001398349A JP2001398349A JP4348036B2 JP 4348036 B2 JP4348036 B2 JP 4348036B2 JP 2001398349 A JP2001398349 A JP 2001398349A JP 2001398349 A JP2001398349 A JP 2001398349A JP 4348036 B2 JP4348036 B2 JP 4348036B2
- Authority
- JP
- Japan
- Prior art keywords
- version
- file
- information
- specific attribute
- specific
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 241000700605 Viruses Species 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000001010 compromised effect Effects 0.000 claims 1
- 230000002085 persistent effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
-
- 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
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は一般にファイルシステムに関し、より詳細には、特定のファイルシステムで各ファイルの一部としてストアされるファイル属性の形式および管理に関する。さらに詳細には、本発明は、サードパーティのアプリケーション(the third party application)にステータス情報を提供するためのファイル属性の使用方法に関する。
【0002】
【従来の技術】
コンピュータの情報は、通常、ファイルと呼ばれる構成要素にストアされる。本明細書で使用される「ファイル」とは、プログラムなどの名前の付いた完全な情報の集まり、プログラムが使用するデータのセット、またはユーザが作成した文書である。以下では、ファイル中に入れることのできる様々なタイプの情報のことを、集合的に「ファイルデータ」と呼ぶ。ファイルとは、コンピュータが複数の情報セットを区別できるようにする、ストレージの基本ユニットであると考えることもできる。したがってファイルとは、命令、数字、単語、画像などの寄せ集めを、ユーザが取出し、変更、削除、保存、または出力デバイスへの送信などを行える首尾一貫したユニットにまとめる「接着剤」である。
【0003】
一般に、特定のコンピュータシステムでは、システム内にあるすべてのファイルが特定の形式に従っている。この形式は、ファイルシステムのプロトコルに従って事前に定義される。ファイルシステムとは、ファイルの命名、ストア、および組織化が行われる全体構造のことである。ファイルシステムは、ファイル、ディレクトリまたはフォルダ、およびこれらを探してアクセスするのに必要な情報からなる。
【0004】
ファイル形式の定義に加え、ほとんどのファイルシステムでは、ファイル属性を作成できるようにするためのフレームワークも提供する。ファイル属性とは、ファイルに関する情報を提供するためにファイルデータと組み合せてストアされる情報ユニットであり、属性情報は実際のファイルデータとは異なるものである。通常、ほとんどのファイル属性は、ファイル名、ファイルサイズ、時間値などの情報を含む標準的な性質のものである。通常これらのものは、ヘッダの一部、すなわちそのファイルに関する情報を提供する各ファイルの一部として見分けることができる。例えば、ファイル属性は、値の変更と共に自動的に更新することが可能であり、例えばファイルサイズまたは時間値は、ファイルが修正され、その後保存されたときに、システムにより更新することができる。ファイル名などの他のファイル属性は、ファイルの内容を修正せずに変更することができる。
【0005】
サードパーティのアプリケーションは、ウィルススキャン機能など、システムの追加の特徴または機能を提供するために、ファイルシステムとあいまって動作することが多い。これらのサードパーティのアプリケーションは、実際には各ファイルのアクセス試行を「傍受」し、実際のアクセス動作を実行する前に、ファイルのウィルスをスキャンするかまたは他のテストを行うことができる。ただし残念ながら、ファイルへのアクセスがあるたびにスキャン動作または他のテストを実行するには、かなりの時間がかかってしまう。したがって典型的には、各ファイルのバージョン情報をストアするために情報のログが保持される。例えばログは、システム上にあるファイルのリストと、各ファイルがスキャンされたかどうか、またスキャンされた場合には、どのバージョンのウィルス定義ファイルが使用されたのかを示す表示とを保持することができる。ウィルススキャナは情報のログを使用し、ファイルシステム内にある新しいファイルまたは修正されたファイル、あるいは古いウィルス定義ファイルでスキャンされたファイルのみをスキャンすることによって処理時間を短縮することができる。
【0006】
情報ログを使用すると、あらゆるファイルをアクセス前にスキャンしていた以前のシステムが大幅に改善されるが、こうしたログの使用にはいくつかの欠点もある。例えば、こうした情報ログを保持するには、かなりのオーバヘッドを要する。さらに、項目がスキャンされたかどうかを判定するためにログにアクセスするプロセスでは、ディスク上にある別ファイルを探して調べなければならないため、システム全体のパフォーマンスが低下する。さらに、情報のログは、ファイルの複製やバックアップの際には更新されないため、情況によっては不要なスキャン動作が発生する。
【0007】
【発明が解決しようとする課題】
情報ログを別ファイルとして保持することに関連したパフォーマンスの問題を解決する方法の1つが、「インメモリ」ログを作成し、これを揮発性メモリ、例えばRAM内にストアしておくことであった。インメモリログへのアクセスは、別ファイルへのそれよりも迅速に行うことができるため、前述のログファイルの代わりにインメモリログを使用すると、システムのパフォーマンスは上がる。ただし、システムのオフ、シャットダウン、リブートなどでシステムの電源が切れると、インメモリログは消去されるか、または失われる。したがって、電源停止後は、状態情報またはバージョン情報が即時に特定できない可能性がある。インメモリログに関連付けられた他の欠点は、そのようなログが、システムの使用する動作メモリを大量に消費することである。したがって、インメモリログは、前述の問題に適切な解決策を与えるものではない。
【0008】
本発明の一目的は、上記またはその他の考慮すべき点に関する解決策を提供することである。
【0009】
【課題を解決するための手段】
本発明は、ファイルの一部としてストアされ、属性がいつどのようにして作成されたかに関するバージョン固有の情報を含んでおり、所定の「更新」イベントが発生したときに自動的に無効となる、バージョン固有の属性またはプロパティを作成および使用することによって、これらの問題を解決する。サードパーティのアプリケーションは、一般に、これらのバージョン固有属性を作成し、これにアクセスすることによって外部のログまたはデータベースを不要とすることができる。
【0010】
本発明の一態様は、コンピュータシステム内にストアされたファイルに関連付けられたバージョン固有の情報をアプリケーションに提供する方法に関する。この方法には、ファイルに関連付けられたバージョン固有属性を作成すること、所定のアクセス要求に応答してバージョン固有の情報を自動的に無効とすることにより関連するファイルの更新が常にバージョン固有属性に反映されるようにすること、並びにサードパーティのアプリケーションがバージョン固有属性を分析できるようにすることが含まれる。
【0011】
本発明の他の態様によれば、アプリケーションとは、ウィルススキャンアプリケーション、あるいはバックアップまたはパフォーマンス上の目的でファイルの冗長複製を作成する反復子タイプのアプリケーションなどの、サードパーティのアプリケーションである。本発明のバージョン固有属性は、メタ情報、バージョン情報、およびマスク情報を含むことができる。バージョン情報は、バージョン固有属性の作成に使用されるアプリケーションのバージョンに関し、マスク情報はバージョン固有属性を無効にできる所定のイベントのポリシーまたは定義に関する。他の実施形態では、さらにバージョン固有属性は、属性またはファイルへの無許可のアクセスを防止するためか、あるいはファイルが破損しているかどうかを判定する場合に他のアプリケーションに検証要素を提供するための、デジタル署名または他のセキュリティ情報を含むことができる。
【0012】
本発明の他の態様によれば、バージョン固有属性は、ファイル中のデータやファイルに関連付けられたメタデータの修正などの所定のイベントに基づいて、あるいは他のバージョン固有プロパティが変更されるときに、無効化することができる。無効化動作は、バージョン固有属性の削除または切り捨て、あるいはバージョン固有属性が無効であることを示す他の方法であってよい。
【0013】
他の態様によれば、本発明は、バージョン固有属性を有するファイル形式に関し、属性にはメタ情報セクションと、ファイルのバージョンまたはバージョン固有属性の作成に使用されたアプリケーションのバージョンに関する情報をストアするためのバージョン情報セクションと、バージョン固有属性を無効にするための所定のイベントに関する情報をストアするためのマスク情報セクションとがある。さらに、本発明は、そのようなバージョン固有ファイル属性を作成および保持するためのプロトコルを提供するファイルシステムにも関する。
【0014】
本発明は、コンピュータプロセス、コンピューティングシステム、およびコンピュータプログラムプロダクツなどの製造物として実施することができる。コンピュータプログラムプロダクツは、コンピュータシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能なコンピュータストレージ媒体であってよい。さらにコンピュータプログラムプロダクツは、コンピューティングシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な搬送波上の伝搬信号であってもよい。
【0015】
概略を簡潔に後述した添付の図面、本発明の現在の好ましい実施形態についての以下の詳細な説明、および添付の特許請求の範囲を参照すると、本発明およびその改良点についてより完全に理解することができる。
【0016】
【発明の実施の形態】
本発明は、バージョン固有の属性またはプロパティを作成するためのファイルシステムに関する。バージョン固有属性は、ヘッダ識別ポインタを介する場合、または情報を常駐形式でファイルデータと共にストアする場合のいずれであっても、ファイルの一部としてストアできるという点で他のファイル属性と同様である。ただし、バージョン固有属性は、バージョン固有プロパティを作成したアプリケーションに関するバージョン固有情報をストアする機能を含む、異なる特徴を有する。さらにバージョン固有プロパティは、所定のイベントが発生すると同時に自動的に更新される。実際、無効化を発生させるイベントに関する情報も、バージョン固有プロパティの一部としてストアされる場合がある。
【0017】
図1は、本発明を実施可能な、好適なコンピューティングシステム環境100の一例を示す図である。コンピューティングシステム環境100は、好適なコンピューティング環境の一例にすぎず、本発明の使用範囲または機能性に関してなんらかの制限を与えることを意図するものではない。さらにコンピューティングシステム環境100は、例示的な動作環境100に例示された任意の1構成要素またはその組合せに関してなんらかの依存性または要件を有するものでもない。
【0018】
図1に示された動作環境100に加え、本発明は、数多くの他の汎用または特殊用途向けコンピューティングシステム環境、または構成で動作可能である。本発明での使用に好適なよく知られたコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、任意の上記システムまたは装置を含む分散型コンピューティング環境などが含まれるが、これらに限定されるものではない。
【0019】
さらに本発明は、コンピュータによって実行されるプログラムモジュールなどの、一般的なコンピュータ実行可能命令のコンテキストで説明することができる。通常、プログラムモジュールには、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれ、これらが特定のタスクを実行するか、または特定の抽象データタイプを実施する。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される、分散型コンピューティング環境において実施することもできる。分散型コンピューティング環境では、プログラムモジュールは、メモリストレージ装置を含む、ローカルおよびリモートのどちらのコンピュータストレージ媒体にも配置することができる。
【0020】
図1を参照すると、本発明を実施するための例示的システムには、コンピュータ102の形態での汎用コンピューティングデバイスが含まれる。コンピュータ102の構成要素には、処理ユニット104、システムメモリ106、および、システムメモリを含む様々なシステム構成要素を処理ユニット104に結合させるシステムバス108が含まれるが、これらに限定されるものではない。システムバス108は、メモリバスまたはメモリ制御装置、周辺バス、並びに様々なバスアーキテクチャのうち任意のものを使用するローカルバスを含む、いくつかの種類のバス構造のうちのいずれかが可能である。限定的ではなく例示的なものとして例を挙げると、斯かるアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architectures(MCA)バス、拡張ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびメザニンバスとしても知られるPeripheral Component Interconnect(PCI)バスが含まれる。
【0021】
コンピュータ102は、通常、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ102がアクセス可能な任意の使用可能媒体であってよく、揮発性および不揮発性媒体、取外し可能および取外し不能媒体のどちらも含まれる。限定的ではなく例示的なものとして例を挙げると、コンピュータ読取り可能媒体は、コンピュータストレージ媒体および通信メディアを含むことができる。コンピュータストレージ媒体には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報ストレージのための任意の方法または技術で実施された、揮発性および不揮発性、取外し可能および取外し不能のどちらの媒体も含まれる。コンピュータストレージ媒体には、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CDE−ROM、デジタル汎用ディスク(DVD)または他の光ディスクストレージ装置、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ装置、あるいは、所望の情報をストアするのに使用可能であり、コンピュータ102がアクセス可能な他の媒体が含まれるが、これらに限定されるものではない。典型的に通信メディアは、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送メカニズムなどの被変調データ信号で具体化するものであって、任意の情報伝達メディアを含む。「被変調データ信号」という用語は、その特徴セットのうち1つ以上を有する信号、または信号内の情報を符号化する方法などで変更された信号を意味する。限定的ではなく例示的なものとして例を挙げると、通信メディアには、有線ネットワークまたは直接線接続などの有線メディアと、音響(acoustic)、RF、赤外線、および他の無線メディアなどの無線メディアとが含まれる。上記いずれかを組み合わせる場合は、コンピュータ読取り可能媒体の範囲内であるものとする。
【0022】
システムメモリ106には、読取り専用メモリ(ROM)110およびランダムアクセスメモリ(RAM)112などの、揮発性および/または不揮発性メモリ形態のコンピュータストレージ媒体が含まれる。起動時などにコンピュータ102内の要素間で情報を転送するのに役立つ基本ルーチンを含む、基本入出力システム114(BIOS)は、典型的にはROM110にストアされており、RAM112には、典型的には、即時アクセス可能および//または現在処理ユニット104によって動作中であるファイルおよび/またはプログラムモジュールが含まれる。限定的ではなく例示的なものとして例を挙げると、図1は、オペレーティングシステム132、アプリケーションプログラム134、他のプログラムモジュール136、およびプログラムデータ138を例示している。さらにコンピュータ102は、以下で述べるように、システム132のファイル形式を定義し、バージョン固有プロパティ形式を定義するファイルシステムを備える。
【0023】
コンピュータ102は、他の取外し可能/取外し不能、揮発性/不揮発性のコンピュータストレージ媒体を含むこともできる。例示的な目的でのみ例を挙げると、図1には、取外し不能、不揮発性磁気媒体との間で読取り/書込みを行うハードディスクドライブ116、取外し可能、不揮発性磁気ディスク120との間で読取り/書込みを行う磁気ディスクドライブ118、およびCD−ROMまたは他の光学式媒体などの取外し可能、不揮発性光ディスク124との間で読取り/書込みを行う光ディスクドライブ122が例示されている。例示的な動作環境において使用できる他の取外し可能/取外し不能、揮発性/不揮発性のコンピュータストレージ媒体には、磁気テープカセット、フラッシュメモリカード、デジタル汎用ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ116は、典型的にはインターフェース126などの取外し不能メモリインターフェースを介してシステムバス108に接続され、磁気ディスクドライブ118および光ディスクドライブ122は、典型的には、それぞれインターフェース128および130などのメモリインターフェースによってシステムバス108に接続される。
【0024】
以上で説明し、図1に例示したドライブ、およびそれに関連するコンピュータストレージ媒体は、コンピュータ102に関するコンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータのストレージを提供するものである。例えば図1では、ハードディスクドライブ116は、オペレーティングシステム132、アプリケーションプログラム134、他のプログラムモジュール136、およびプログラムデータ138をストアするものとして示されている。
【0025】
ユーザは、キーボード140および、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス142などの入力装置を介して、コンピュータ102にコマンドおよび情報を入力することができる。他の入力装置(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。これらおよび他の入力装置は、システムバス108に結合された入力インターフェース148を介して処理ユニット104に接続されることが多い。モニタ150または他の種類のディスプレイ装置も、ビデオアダプタ152を介してシステムバス108に接続することができる。コンピュータは、モニタに加え、図示されていないスピーカおよびプリンタなどの他の周辺出力装置を含むこともできる。
【0026】
コンピュータ102は、リモートコンピュータ154などの1つ以上のリモートコンピュータへの論理接続を使用するネットワーク環境において動作可能である。リモートコンピュータ154は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードであってよく、典型的には、コンピュータ102に関して上記で述べた多くのまたはすべての要素を含む。
【0027】
LANネットワーク環境において使用される場合、コンピュータ102はネットワークインターフェースまたはアダプタ162を介してLANに接続される。WANネットワーク環境において使用される場合、コンピュータ102には典型的に、モデム164またはインターネットなどのWANを介して通信を確立するための他の手段が含まれる。モデム164は内蔵でも外付けでもよく、ユーザ入力インターフェース148または他の適切なメカニズムを介してシステムバス108に接続することができる。ネットワーク環境では、コンピュータ102に関連して描かれているプログラムモジュールまたはその一部を、リモートのメモリストレージ装置にストアすることができる。図示されたネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段も使用できることが理解できよう。
【0028】
図2は、本発明が実施可能な好適なソフトウェア動作環境200の一例を示す図である。ソフトウェア動作環境200は、好適な動作環境の一例を示したものにすぎず、本発明の使用または機能性の範囲を限定する意図はない。ソフトウェア環境200は、様々なファイル204、206、208、および210の形式および構造を定義する、ファイルシステム202を有する。通常、ファイルシステム202は、ファイルの命名、ストア、および組織化が行われる構造全体も提供する。さらにこのファイルシステムは、ファイルおよび任意のファイル関連項目にアクセスするためのプロトコルを提供する。本発明の一実施形態では、ファイルシステムは、Microsoft(登録商標) Corporationが製造したWindows(登録商標) NTファイルシステム(以下、「NTFS」という)である。NTFSに関する詳細は、David Soloman著「Inside Windows(登録商標) NT, Second Edition」第9章、Microsoft(登録商標) Press 1998年を参照されたい。他の実施形態では、他のファイルシステムプロトコルを使用可能である。
【0029】
図2に示されるように、ファイル204、206、208、および210は、それぞれヘッダ212、214、216、および218を有する。ヘッダ212、214、216、および218には、それぞれの各ファイルに関した情報が含まれる。ヘッダ情報は、ファイルが最後に修正された時間、ファイルが最後に保存された時間、ファイルの長さ、ファイルの名前など、ファイル属性を含むことができる。ヘッダ情報に加え、図2に示された2つのファイル208と210は、それぞれバージョン固有属性220と222も有する。このバージョン固有属性220と222はバージョン固有の情報を含み、それぞれファイル208と210に関して発生する他のイベントによって無効にすることができる。もちろん、ファイルシステムは、省略記号223と225で示されるように、バージョン固有属性を備えているか、または備えていない他の多くのファイルを含むことができる。
【0030】
図2に示されたソフトウェア環境200は、ファイルシステム202とアプリケーションプログラム224と226などのアプリケーションプログラムとの対話も図示している。一実施形態では、アプリケーションプログラム224と226は、サードパーティのアプリケーション、すなわち、ファイルシステム自体と一体になったアプリケーションとは対照的に、ファイルシステムと対話するアプリケーションである。アプリケーションプログラム224と226は、それぞれアプリケーションプログラムインターフェース228と230を介して、ファイルシステム202と対話することができる。さらにアプリケーションプログラムインターフェースは、例えばオペレーティングシステムインターフェース232などのオペレーティングシステムを介して、ファイルシステム202と通信する。別の実施形態(図示せず)では、アプリケーションプログラムインターフェース228は、ファイルシステム202と直接通信することができる。アプリケーションプログラムインターフェース230は、インターネット233などのコンピュータネットワークシステムを介して、オペレーティングシステムインターフェース234と通信する。さらに、オペレーティングシステムインターフェース234は、サーバコンピュータシステムのオペレーティングシステムインターフェースにも関係しており、アプリケーションプログラムインターフェースは、クライアントコンピュータシステムに関連付けられている。オペレーティングシステムインターフェース234は、ネットワークファイルシステムインターフェース235を介してファイルシステム202と通信する。
【0031】
図示されていないが、本発明には、アプリケーションプログラム224と226がファイルシステム202と直接通信するか、制御モジュールの他の層を介してファイルシステム202と通信する実施形態などの、他の実施形態を組み込むことができる。したがって、本発明には、ファイル204、206、208、および210などのファイルにアクセスするために何らかの形でファイルシステムと通信する、アプリケーションプログラム224と226などのアプリケーションまたはプログラムモジュールが含まれ、アクセスには、読取り、実行、更新、またはファイル上で実行される何らかの他の機能が含まれる。
【0032】
ファイルシステム202は、様々なシステム機能を提供する。ファイル204、206、208、および210に基本的な構造を与えることに加え、ファイルシステム202は、ファイルアクセス要求が既存のファイルに関するものであること、要求を作成しているモジュールが要求の作成および実行の許可を得ているかどうかなど、様々な機能を提供することができる。したがって、ファイルシステム202は、アプリケーションプログラム224と226並びに実際のファイル204、206、208、および210などの、アプリケーション間での対話をサービス層236に提供する。この対話層236は、アプリケーションプログラムインターフェース228、230が可能であるのに加え、オペレーティングシステムインターフェース232と234でも可能である。
【0033】
バージョン固有属性220と222に関して、本発明の一実施形態では、アプリケーションプログラム224と226が、それぞれファイル208と210に関するバージョン固有属性220と222を作成および使用することができる。あるいは、サービス層236がバージョン固有属性を作成および使用することができる。バージョン固有属性がいったん作成されると、他のアプリケーションはこの属性にアクセスし、バージョン固有属性220または222の評価に基づいてファイルに関する動作の実行を決定することができる。さらに、他方のアプリケーションは、アプリケーションが有効なバージョン固有属性の有無をテストすると異なる結果を生じさせるようなバージョン固有属性を無効にできる、ファイルに関する動作を実行することができる。
【0034】
特定の例では、サービス層236は、あるファイル、例えばファイル204、206、208、または210に任意の他のアプリケーションまたはモジュールがアクセスするたびに、ウィルスのスキャン機能およびクリーニング機能を実行するウィルススキャン機能を提供する。この例をさらに拡大すると、アプリケーションプログラム224は、ワードプロセッシングアプリケーションであってよく、ファイル204、206、208、および210は、テキストファイルなどのワードプロセッシングタイプのファイルである。このような場合、オペレーティングシステムインターフェースは、ウィルススキャンプログラムモジュールをサービス層236の一部として、実際にワードプロセッシングアプリケーションプログラム224がアクセスを要求するファイルのスキャンに使用することができる。この例でウィルススキャナは、ウィルスがスキャンされたファイルのバージョン固有属性220と222などの、バージョン固有属性を作成することができる。したがって、アプリケーションプログラム224が次にファイル208と210のうち1つに対して要求を作成した場合、ウィルススキャンアプリケーションは、他のスキャンオペレーションが必要であるかどうかを判定するために、バージョン固有属性220と222などの有効なバージョン固有属性の有無を識別するだけである。有効なバージョン固有属性が識別された場合、この特定例ではスキャンは不要である。これに対して、ファイル204または206にアクセスした際などにバージョン固有属性が識別されなかった場合、ウィルススキャンアプリケーションは、これらのファイルがスキャンされていないか、またはスキャンされてから修正されていると認識する。
【0035】
さらにウィルススキャンの例を見ていくと、ウィルススキャンアプリケーションがサービス層236の一部として、ファイル204または206のうち1つをスキャンすると想定した場合、新しいバージョン固有属性(図示せず)が作成され、スキャン済みのファイルに関連付けられる。その後、新しく作成された属性(図示せず)がファイルと共にストアされるため、この属性を将来のアクセス要求に利用することができる。
【0036】
他の実施形態では、バージョン固有属性を、他のアプリケーションがアクセスおよび評価できるデジタル署名を利用して符号化することができる。その後、このデジタル署名を調べて、ファイルが有効な複製であるかどうかを判定することができる。このような場合、ファイルが他のアプリケーションによって勝手に変更されていると、すなわち破損していると、デジタル署名は無効となる。無効化されたデジタル署名は、署名が存在しなかったものとして処理されるため、ファイルを無効として処理することができる。
【0037】
バージョン固有属性は、属性またはファイルへの無許可のアクセスを防ぐためにさらに他のセキュリティ情報を含むことができる。サービス層236はこの情報を、属性をロックしてウィルスアプリケーションなどの不適切なアプリケーションが使用できないようにする手段として使用する。サービス層は、有効なアプリケーションのみが属性またはファイルそれ自体にアクセスすることを保証する目的で、アクセス毎にバージョン固有属性を評価するように構成することができる。
【0038】
本発明を組み込んだファイル300の態様が図3に示されている。ファイル300には、ファイルデータ316、すなわちファイル情報それ自体と、この特定例では何らかの標準属性304を含み、その標準属性が時間やファイルの長さなどであってよい、一般情報を含んでいるヘッダ302とが含まれる。他の実施形態では、ヘッダには標準属性が含まれず、代わりに、図3に示すセクション306などの他のセクションに標準属性がストアされる場合がある。
【0039】
ファイル300は、図3に示されるようにバージョン固有属性308も有する。バージョン固有属性308には、3タイプの情報が含まれる。その1つがメタ情報セクション310であり、これは典型的には、属性の作成に使用されるサードパーティのアプリケーションの名前などの属性の名前、その他、属性の長さ、そのディスク上のアドレス位置などの情報を有する。
【0040】
バージョン固有属性308には、バージョン情報セクション312も含まれる。バージョン情報セクション312には、属性の作成に使用されたサードパーティのアプリケーションのバージョンなど、バージョン固有属性308の作成に使用された最も新しい特定アプリケーションのバージョンに関する情報が含まれる。すなわち、こうしたバージョン情報は、属性を評価しているプログラムモジュールと関連させることができるため、このタイプの情報専用にセクションが割り当てられる。
【0041】
バージョン固有属性308には、関連する更新に関する情報をファイルシステムに提供する際に使用されるマスク情報セクション314も含まれる。マスク情報セクション314は、本来、どのプロトコルまたはポリシーのイベントがバージョン固有属性308を無効化できるか、またはできないかを、他のアプリケーションまたはファイルシステムに指示するものである。
【0042】
特定の実施形態では、ファイルシステムの一部であるかまたはそうでないウィルススキャンアプリケーションによってバージョン固有属性308が作成されると、メタ情報セクション310は、バージョン固有属性308の作成に使用されたウィルススキャンアプリケーションの名前を保持することができる。さらにバージョン情報セクション312には、バージョン固有属性が作成された時に使用された特定のウィルス定義ファイルに関連する情報が含められることになる。ウィルススキャンアプリケーションは、最近検出されたウィルスを含めるために頻繁に更新されるので、この特定の場合ではバージョン情報が重要である。したがって、ウィルススキャンアプリケーションは、ファイルが以前にスキャンされたことがあるかどうかを判定するだけでなく、更新済みのウィルス定義ファイルを使用してスキャンされたかどうかも判定しなければならない。
【0043】
マスク情報セクション314に関して、ウィルススキャンアプリケーションがバージョン固有属性308を作成すると、マスク情報セクション314にはバージョン固有属性308の無効化を発生させるような特定のイベントが含められる可能性があり、このイベントはウィルススキャンアプリケーションに一意的に直接関係する場合がある。この特定の場合では、バージョン固有属性308の無効化を発生させることのあるこのようなイベントに、新しいファイルデータの追加またはファイルデータの消去のいずれかによるファイルデータセクション306の修正が含まれることがある。他の実施形態では、他の所定のイベントによってバージョン固有属性の無効化を発生させることがある。
【0044】
この特定の例では、具体的にはマスク情報セクション314に含めることができないためにバージョン固有属性が無効化されることのない所定のイベントに、読取り専用アクセスイベント、ファイル名の変更、またはファイル300のバックアップを含めることができる。実際には、イベントがバージョン固有属性を無効化しなければ、ファイル名が変更されたような場合でもその属性はファイルに付属のままとなる。
【0045】
バージョン固有属性308は、サードパーティのアプリケーション、例えばファイルシステムとは別のアプリケーションによって作成される。バージョン固有属性を作成する場合、サードパーティのアプリケーションは、名前、バージョン、およびマスクの情報を、ファイルシステムに提供する。次いでファイルシステムが属性を作成し、これを特定ファイルに関連付ける。本発明の一実施形態では、バージョン固有属性308を作成する方法の1つに、Windows(登録商標) NTFSに属性の作成を要求するサードパーティのアプリケーションが含まれる。この実施形態でバージョン固有属性を作成するのに使用されるコマンドが、表1に示される。表1に示されたコードは、ファイルa.txtがすでに作成されており、サードパーティのアプリケーションの名前が「Inoculan」と想定したものである。
【0046】
【表1】
【0047】
表1に示されるように、サードパーティのアプリケーションはバージョン固有属性の作成を要求し、次いで、作成された属性が閉じる前に属性にデータを書き込むだけである。この機能を働かせるためには、ファイルシステムが事前にバージョン固有属性タイプを定義していなければならない。他の実施形態では、他の方法を使用してバージョン固有属性を作成し、これを配置することができる。バージョン固有属性308をいったん作成すると、ファイルがアクセスされたときに他のアプリケーションがこれを評価および/または無効化することができる。
【0048】
本発明の他の実施形態では、NTWriteFileコマンドの前に、バージョン固有属性のセキュリティの設定に関する他のコマンドを挿入することができる。各バージョン固有属性に、別々のセキュリティ記述子を作成または定義することができる。あるいは、各アプリケーション、例えばInoculanは、デジタル署名を使用して、そのアプリケーションが関係するバージョン固有プロパティの保全性を検証することができる。セキュリティのタイプがいったん定義されると、その情報をバージョン固有属性のNTWriteFileコマンドの前にストアすることができる。
【0049】
NTWriteFile動作後、NTClose動作を使用してバージョン固有属性を閉じることができる。
【0050】
ファイル300はバージョン固有属性を1つだけ有するように図示および説明されているが、ファイル300は、破断記号318で示されるような他のバージョン固有属性も含めて他の属性を有することもできる。実際に、いくつかのサードパーティのアプリケーションは、持続状態情報がファイルの一部としてストアされることを要求することが可能であり、したがってバージョン固有属性308などの多数のバージョン固有属性を作成し、ファイル300と共にストアすることができる。
【0051】
以上、例示的な物理環境について論じてきたが、以下のセクションでは、本発明の態様を具体化する動作モジュールについて説明する。本発明の様々な実施形態の論理的動作は、(1)コンピューティングシステム上で実行中のコンピュータが実施する一連のステップまたはプログラムモジュールとして、および/または(2)コンピューティングシステム内で相互接続されたハードウェアモジュールまたは論理モジュールとして実施される。この実施は、本発明を実施するコンピューティングシステムのパフォーマンス要件に依存する選択の問題である。したがって、本明細書に記載された本発明の実施形態を構成している論理動作は、動作(operation)、ステップ、またはモジュールと呼ばれることもある。
【0052】
図4は、本発明の態様によるファイルへのアクセスに関連する動作特性を示すフローダイアグラムである。フロー400が開始される前に、図2に示されたファイル204、206、208、または210などのファイルが、ファイルシステム202(図2)などのファイルシステム内に存在する。本発明の一実施形態では、いったんファイルが作成されると、そのファイルにアクセスしようと試みたときに、図4に関して図示および説明したフロー400が開始される。実際には、プロセス400はアクセス試行ステップS402で開始されるが、このアクセス試行ステップS402は、ファイルシステム内の任意のファイルの読取り、実行、または更新に関するものである。アクセス試行は、アプリケーションプログラム224(図2)などのサードパーティのアプリケーションによって、またはサービス層236(図2)によって実行することができる。
【0053】
アクセス試行ステップS402に続き、判断行為(determination act)ステップS404において、アクセスが無効化アクセスであるかどうかを判定する。アクセスが無効化アクセスであるかどうかの判定には、複数の特定ファイルにアクセスしていると想定した、各バージョン固有属性内にあるマスク情報の評価が含まれる。マスク情報を評価することにより、そのファイルへのどのタイプのアクセスが、特定のバージョン固有属性を無効にするように要求しているのかがわかる。したがって、マスク情報と実際のアクセス試行とを比較することにより、バージョン固有属性を無効にすべきかどうかがわかる。判断行為ステップS404でこのような適切な更新アクセス試行が識別されると、フローはYESの無効化動作ステップS406へと進む。
【0054】
本発明の一実施形態では、バージョン固有属性はウィルススキャンアプリケーションによって作成および使用される。このような状況では、判断行為ステップS404において、アクセス試行が適切な更新アクセスであるかどうかがウィルススキャンアプリケーションにより設定した基準に基づき判定される。すなわち、ウィルススキャンアプリケーションは、アクセス試行が、古いデータを変更するかまたは新しいデータを追加することによって実際のファイルデータを修正するかどうかなど、適切な更新アクセスとは何であるかを事前に決定している。例えば、特定のウィルススキャンアプリケーションは、新しいデータの作成を含み、ファイル中のデータにどんな変更が行われる場合でも必ずそのバージョン固有プロパティが無効化されることを希望することができる。変更がバージョン固有プロパティまたは他のファイルのメタデータまたは他のメタ情報にだけ関係する場合には、無効化は発生しない。
【0055】
別の実施形態では、反復子アプリケーションがバージョン固有属性を作成し、これを使用することができる。このような場合、反復子アプリケーションは、ファイルのデータまたはメタデータのいずれかにどんな変更が行われる場合でも必ず、そのバージョン固有プロパティが無効化されることを希望することができる。これら特定のバージョン固有プロパティは、このクラスのバージョン固有プロパティだけに影響を与えるのではないような変更が行われると、必ず無効化される。この場合、特定のクラスを定義することにより、複数の反復子が存在することでファイルが何度も反復されることを防いでおり、1つの反復子アプリケーションによる反復インスタンスは、それぞれ、第2の反復子アプリケーションによる反復の必要に応じて生じることになる。
【0056】
無効化動作ステップS406において、バージョン固有プロパティまたはバージョン固有属性308(図3)などの属性を無効にする。一実施形態では、無効化行為ステップS406で、バージョン固有属性を「無効化」するためにバージョン固有属性を削除または切り捨てる。あるいは、無効化動作ステップS406でバージョン固有属性にマークを付けるか、そうでなければ属性が無効である旨の表示を与える。本来、属性を無効にする行為は、バージョン固有属性に依拠したアプリケーションが、バージョン固有属性が無効化されていることを認識できるようにするものでなければならない。バージョン固有属性を無効化する他の方法には、無効化アクセスまたはバージョン固有属性への情報の追加、あるいはその中に含まれる情報の修正も含むことができる。無効化行為ステップS406では、時間変更、最終書込み時間、または最終アクセス時間などの他の項目は変更しない。
【0057】
ファイルが複数の関連するバージョン固有属性を有する場合、動作ステップS404およびS406は、それぞれのバージョン固有属性について繰返し行われる。
【0058】
無効化行為ステップS406に続き、アクセス実行動作ステップS408において、ファイルに対して要求されたアクセスを実行する。ファイルに対するアクセスを実行する行為は、バージョン固有属性が無効化された後に開始することが重要である。そうでないと、バージョン固有属性が信頼できなくなる可能性がある。アクセス実行動作ステップS408に続き、フロー400は終了動作ステップS410で終了する。
【0059】
判断行為ステップS404においてアクセス試行が無効化アクセスに関連していないと判定されると、フローはNOの判断動作ステップS412に進む。判断動作ステップS412では、アクセスがバージョン固有属性に依存しているかどうか、例えば、アクセス試行が動作を実行する際にバージョン固有属性を使用しているアプリケーションによるアクセス試行であるかどうかを判定する。例えば、バージョン固有属性を使用するウィルススキャンアプリケーションはアクセス試行を生成することが可能であり、その場合、判断動作ステップS412において、そのアクセス試行がバージョン固有属性を使用するそのようなアプリケーションによって生成されたものであるかどうかを判定する。
【0060】
アクセス試行がバージョン固有属性に依拠するアプリケーションによって実行されたものでない場合、フローはNOのアクセス実行動作ステップS408に進む。アクセス実行動作ステップS408では、最初に要求されたアクセス動作を実行する。判断動作ステップS412に続いてアクセス実行動作ステップS408が行われる場合、アクセス動作は、判断行為ステップS404が判定したような無効化を要求する動作には関連していない。例えば、このアクセス試行は、ユーザが実際のデータを修正できない読取り動作に関連していることがある。アクセス実行動作ステップS408に続き、プロセスのフローは前述のようにステップS410で終了する。
【0061】
判断動作ステップS412において、アクセスがバージョン固有属性に依存していると判定した場合、フローはYESの判断行為ステップS414に進む。判断行為ステップS414において、バージョン固有属性が有効であるかどうかを判定するためにこれを分析する。属性が有効であるかどうかの判定には、属性が存在するかどうか、これが無効としてマークされているかどうか、または情報がすべて利用できないように切り捨てられているかどうかが含まれる。判断行為ステップS414において属性が有効でないと判定されると、フローはNOの無効属性に関するアクセス実行行為ステップS416に進む。
【0062】
実行行為ステップS416では、アクセスが無効であるという判定に基づいて、所定の機能が実行される。一実施形態では、アクセス試行がウィルススキャンアプリケーションによって生成されたものである場合、実行動作ステップS416では、そのようなウィルススキャン機能をファイル上で実行する。
【0063】
無効属性に関する動作実行ステップS416に続き、バージョン固有属性作成行為ステップS418では、そのファイルに関してバージョン固有属性を作成または有効化する。バージョン固有属性の有効化には、そのファイルのバージョン固有属性を作成すること、または既存のバージョン固有属性に情報を追加することが含まれる。他の実施形態では、属性が有効であるという表示を与えることによって、後に属性が有効であることがわかる限りは、他の方法で属性を有効化することができる。バージョン固有属性有効化行為ステップS418に続き、プロセス400は終了動作ステップS410で終了する。
【0064】
判断行為ステップS414においてバージョン固有属性が有効であると判定された場合、フローはYESの実行動作ステップS420に進む。実行動作ステップS420は、バージョン固有属性が有効であるという判定に関する任意の行為を実行することに関する。バージョン固有属性を使用する特定のアプリケーションによって、実行動作ステップS420には異なるタイプの動作が含まれることがある。一例では、属性が有効であると判定された場合、ウィルススキャン状況などでは何の動作も実行されない。このような場合、判断行為ステップS414においてバージョン固有属性が有効であると判定されると、ファイルは以前にスキャンされているため、他のスキャンは不要である。したがって、そのファイルについては何の動作も実行されず、動作ステップS420は終了動作ステップS410に制御を渡すだけである。他の実施形態では、バージョン固有属性が有効であると判定されると、ステップS420で動作が実行開始される場合がある。
【0065】
前述のシステムおよび方法は、バージョン情報が別のログまたはデータベースファイルに常駐しているのではなく、ファイルの一部であるため、バージョン情報をプログラムモジュールまたはアプリケーションに提供するという従来の方法に比べてかなり有利である。アクセス側のアプリケーションは、利用不能、破損、その他管理不能になる可能性がある外付けタイプのファイルにアクセスする必要がない。さらに、電源が切断されてもファイル属性は失われず、属性は、インメモリ情報ログの場合のように大量の動作メモリを消費せずに済む。さらに、プロセスは自動的に更新され、すなわち、関連するイベントが発生したときにはバージョン固有情報が無効化される。バージョン固有情報を自動的に無効化することにより、関連する適切な更新は見逃されることがなく、不要な行為は実行されない確率が高くなる。例えば、ウィルススキャンの実施に関して言えば、従来技術の方法では、バックアップ機能および/または複製機能の後ではこのようなバージョン情報は保持されなかったため、追加の処理ステップが実行されていたが、バージョン情報はバックアップ機能や複製機能では無効化されなくなっているため、将来アクセスしたときにウィルススキャンは不要である。
【0066】
前述のように、本明細書に記載した本発明は、コンピュータプロセス、コンピューティングシステム、またはコンピュータプログラムプロダクツなどの製造物として実施することができる。コンピュータプログラムプロダクツは、コンピュータシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、コンピュータストレージ媒体であってよい。さらにコンピュータプログラムプロダクツは、コンピューティングシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、搬送波上の伝搬信号であってもよい。
【0067】
さらに、本発明は構造上の特徴および/または方法論的ステップに固有の言語で記述されているが、添付の特許請求の範囲で定義された本発明は、記載されている特定の特徴またはステップに限定されるものではないことを理解されたい。一例として、他のアプリケーションでは、ウィルススキャンアプリケーションおよび反復子の他にも、バージョン固有属性を利用することができる。さらに、他のタイプのファイルシステムも、本発明の原理から恩恵を受けることができる。したがって、特定の特徴およびステップは、記載された本発明を実施する好ましい形態として開示されたものである。
【図面の簡単な説明】
【図1】本発明を組み込むことのできるコンピュータシステムの機能図である。
【図2】本発明のソフトウェア構成要素を示す構成図である。
【図3】本発明によるファイルの構成要素を示す機能図である。
【図4】本発明の一実施形態の機能的な特徴を示すフローダイアグラムである。
【符号の説明】
100 コンピューティングシステム環境(動作環境)
102 コンピュータ
104 処理ユニット
106 システムメモリ
108 システムバス
114 基本入出力システム
116 ハードディスクドライブ
118 磁気ディスクドライブ
120 不揮発性磁気ディスク
122 光ディスクドライブ
124 不揮発性光ディスク
126 ハードディスクドライブインターフェース
128 磁気ディスクドライブインターフェース
132 オペレーティングシステム
134,224,226 アプリケーションプログラム
136 プログラムモジュール
138 プログラムデータ
140 キーボード
142 ポインティングデバイス
148 ユーザ入力インターフェース
150 モニタ
152 ビデオアダプタ
154 リモートコンピュータ
162 アダプタ
164 モデム
200 ソフトウェア動作環境
202 ファイルシステム
204,206,208,210,316 ファイルデータ
212,214,216,218,302 ヘッダ
220,222,308 バージョン固有属性
223,225 省略記号
224 アプリケーションプログラム
228,230 アプリケーションプログラムインターフェース(API)
232,234 オペレーティングシステムインターフェース
233 インターネット
235 ネットワークファイルシステムインターフェース
236 サービス層(対話層)
300 ファイル
304 標準属性
306 ファイルデータセクション
310 メタ情報セクション
312 バージョン情報セクション
314 マスク情報セクション
318 破断記号
400 プロセス(フロー)[0001]
BACKGROUND OF THE INVENTION
The present invention relates generally to file systems, and more particularly to the format and management of file attributes stored as part of each file in a particular file system. More particularly, the present invention relates to a method for using file attributes to provide status information to a third party application.
[0002]
[Prior art]
Computer information is typically stored in components called files. As used herein, a “file” is a complete collection of named information, such as a program, a set of data used by the program, or a user-created document. Hereinafter, various types of information that can be included in a file are collectively referred to as “file data”. A file can also be thought of as the basic unit of storage that allows a computer to distinguish multiple sets of information. Thus, a file is an “glue” that brings together a collection of instructions, numbers, words, images, etc. into a coherent unit that a user can retrieve, modify, delete, save, or send to an output device.
[0003]
In general, in a particular computer system, all files in the system follow a particular format. This format is predefined according to the file system protocol. A file system is the overall structure in which file naming, storage, and organization takes place. A file system consists of files, directories or folders, and information necessary to locate and access them.
[0004]
In addition to defining file formats, most file systems also provide a framework that allows file attributes to be created. A file attribute is an information unit that is stored in combination with file data to provide information about the file, and the attribute information is different from the actual file data. Usually, most file attributes are of a standard nature including information such as file name, file size, time value, etc. These can usually be identified as part of the header, ie the part of each file that provides information about the file. For example, file attributes can be updated automatically with changing values, for example, file size or time values can be updated by the system when the file is modified and then saved. Other file attributes, such as the file name, can be changed without modifying the contents of the file.
[0005]
Third party applications often work in conjunction with the file system to provide additional system features or functions, such as virus scanning capabilities. These third-party applications can actually “intercept” each file access attempt and scan the file for viruses or perform other tests before performing the actual access operation. Unfortunately, however, it takes a considerable amount of time to perform a scan operation or other test every time a file is accessed. Thus, a log of information is typically maintained to store version information for each file. For example, the log can hold a list of files on the system and an indication of whether each file was scanned and, if so, which version of the virus definition file was used. . Virus scanners use information logs to reduce processing time by scanning only new or modified files in the file system, or files scanned with old virus definition files.
[0006]
Using information logs can greatly improve previous systems that scanned all files before they were accessed, but the use of such logs also has some drawbacks. For example, maintaining such an information log requires significant overhead. In addition, the process of accessing the log to determine if an item has been scanned must look for and examine another file on the disk, thus reducing overall system performance. Furthermore, since the information log is not updated at the time of file replication or backup, an unnecessary scanning operation occurs depending on the situation.
[0007]
[Problems to be solved by the invention]
One way to solve the performance problem associated with keeping the information log as a separate file was to create an “in-memory” log and store it in volatile memory, eg RAM. . Since access to the in-memory log can be performed more quickly than that to another file, using the in-memory log instead of the aforementioned log file increases system performance. However, the in-memory log is erased or lost when the system is turned off, such as when the system is turned off, shut down, or rebooted. Therefore, there is a possibility that the state information or version information cannot be immediately identified after the power is stopped. Another drawback associated with in-memory logs is that such logs consume a large amount of the operating memory used by the system. Thus, the in-memory log does not provide an appropriate solution to the above problem.
[0008]
One object of the present invention is to provide a solution to these and other considerations.
[0009]
[Means for Solving the Problems]
The present invention is stored as part of the file and contains version specific information about when and how the attribute was created, and is automatically disabled when a predetermined "update" event occurs. Resolve these issues by creating and using version-specific attributes or properties. Third-party applications can generally create and access these version-specific attributes to eliminate the need for external logs or databases.
[0010]
One aspect of the invention relates to a method of providing an application with version-specific information associated with a file stored in a computer system. This method creates a version-specific attribute associated with the file and automatically invalidates the version-specific information in response to a given access request so that the associated file update is always a version-specific attribute. Including being reflected, as well as allowing third party applications to analyze version specific attributes.
[0011]
According to another aspect of the invention, the application is a third-party application, such as a virus scan application or an iterator-type application that creates redundant copies of files for backup or performance purposes. The version specific attribute of the present invention may include meta information, version information, and mask information. The version information relates to the version of the application used to create the version specific attribute, and the mask information relates to a policy or definition of a predetermined event that can invalidate the version specific attribute. In other embodiments, the version-specific attribute further prevents unauthorized access to the attribute or file, or provides a verification element to other applications when determining whether the file is corrupted. A digital signature or other security information.
[0012]
According to another aspect of the present invention, the version specific attribute is based on a predetermined event, such as modification of data in the file or metadata associated with the file, or when other version specific properties are changed. Can be disabled. The invalidation operation may be deletion or truncation of the version specific attribute, or other method indicating that the version specific attribute is invalid.
[0013]
According to another aspect, the present invention relates to a file format having a version specific attribute, the attribute stores a meta information section and information about the version of the file or the application version used to create the version specific attribute. And a mask information section for storing information on a predetermined event for invalidating the version-specific attribute. The present invention further relates to a file system that provides a protocol for creating and maintaining such version-specific file attributes.
[0014]
The present invention can be implemented as a product such as a computer process, a computing system, and a computer program product. A computer program product may be a computer system and a computer storage medium readable by encoding computer program instructions for executing computer processes. Further, a computer program product may be a propagated signal on a carrier wave readable by a computer system and the encoding of computer program instructions for executing a computer process.
[0015]
A more complete understanding of the present invention and its improvements will be obtained by reference to the accompanying drawings, briefly described below, the following detailed description of the presently preferred embodiments of the invention, and the appended claims. Can do.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
The present invention relates to a file system for creating version-specific attributes or properties. The version-specific attribute is similar to other file attributes in that it can be stored as part of a file, whether via a header identification pointer or when information is stored with file data in a resident format. However, the version specific attribute has different features including the ability to store version specific information about the application that created the version specific property. Furthermore, the version specific property is automatically updated as soon as a predetermined event occurs. In fact, information about the event that causes invalidation may also be stored as part of the version specific property.
[0017]
FIG. 1 is a diagram illustrating an example of a suitable
[0018]
In addition to the operating
[0019]
Furthermore, the present invention can be described in the context of general computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote computer storage media including memory storage devices.
[0020]
With reference to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a
[0021]
[0022]
The
[0023]
The
[0024]
The drive described above and illustrated in FIG. 1 and associated computer storage media provide storage of computer readable instructions, data structures, program modules, and other data for
[0025]
A user may enter commands and information into the
[0026]
[0027]
When used in a LAN networking environment, the
[0028]
FIG. 2 is a diagram illustrating an example of a preferred software operating environment 200 in which the present invention can be implemented. The software operating environment 200 is only one example of a suitable operating environment and is not intended to limit the scope of use or functionality of the invention. Software environment 200 has a
[0029]
As shown in FIG. 2, files 204, 206, 208, and 210 have
[0030]
The software environment 200 shown in FIG. 2 also illustrates interaction between the
[0031]
Although not shown, the present invention includes other embodiments, such as embodiments in which
[0032]
The
[0033]
With respect to version
[0034]
In a particular example, the
[0035]
Looking further at the virus scanning example, assuming that the virus scanning application scans one of the
[0036]
In other embodiments, version-specific attributes can be encoded utilizing digital signatures that can be accessed and evaluated by other applications. This digital signature can then be examined to determine if the file is a valid copy. In such a case, the digital signature becomes invalid if the file has been changed by another application without permission, that is, if the file is damaged. Since the invalid digital signature is processed as if the signature did not exist, the file can be processed as invalid.
[0037]
Version-specific attributes can include further security information to prevent unauthorized access to the attributes or files. The
[0038]
An embodiment of a
[0039]
The
[0040]
The version
[0041]
Version
[0042]
In certain embodiments, when the version
[0043]
With respect to the
[0044]
In this particular example, a read-only access event, a file name change, or a
[0045]
The version
[0046]
[Table 1]
[0047]
As shown in Table 1, the third-party application requires creation of a version-specific attribute and then only writes data to the attribute before the created attribute is closed. In order for this feature to work, the file system must have a version-specific attribute type defined beforehand. In other embodiments, other methods can be used to create and place version specific attributes. Once the version
[0048]
In other embodiments of the present invention, other commands related to setting the security of version specific attributes may be inserted before the NTWriteFile command. A separate security descriptor can be created or defined for each version-specific attribute. Alternatively, each application, such as Inoculan, can use a digital signature to verify the integrity of the version-specific property to which the application relates. Once the security type is defined, the information can be stored before the NTWriteFile command of the version specific attribute.
[0049]
After the NTWriteFile operation, the version specific attribute can be closed using the NTClose operation.
[0050]
Although the
[0051]
Having discussed an exemplary physical environment, the following sections describe operational modules that embody aspects of the invention. The logical operations of the various embodiments of the present invention are interconnected as (1) a series of steps or program modules performed by a computer running on the computing system and / or (2) within the computing system. Implemented as a hardware module or logic module. This implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein are sometimes referred to as operations, steps, or modules.
[0052]
FIG. 4 is a flow diagram illustrating operational characteristics associated with accessing a file according to an aspect of the present invention. Before the
[0053]
Following the access attempt step S402, a determination act step S404 determines whether the access is a revocation access. Determining whether the access is an invalidation access includes evaluation of mask information in each version-specific attribute assuming that a plurality of specific files are accessed. By evaluating the mask information, it can be seen which type of access to the file requires that a particular version specific attribute be invalidated. Therefore, by comparing the mask information with the actual access attempt, it can be determined whether the version specific attribute should be invalidated. If such an appropriate update access attempt is identified in decision act step S404, the flow proceeds to an invalidation operation step S406 of YES.
[0054]
In one embodiment of the invention, version specific attributes are created and used by a virus scanning application. In such a situation, in decision act step S404, it is determined based on the criteria set by the virus scan application whether the access attempt is an appropriate update access. That is, the virus scanning application determines in advance what the appropriate update access is, such as whether the access attempt modifies the actual file data by changing old data or adding new data. ing. For example, a particular virus scanning application may wish to invalidate its version-specific property whenever any change is made to the data in the file, including the creation of new data. Invalidation does not occur if the change is only related to version specific properties or other file metadata or other meta information.
[0055]
In another embodiment, the iterator application can create and use version specific attributes. In such a case, the iterator application may wish to invalidate its version-specific property whenever any change is made to either the file's data or metadata. These specific version-specific properties are invalidated whenever changes are made that do not affect only the version-specific properties of this class. In this case, defining a particular class prevents the file from being repeated over and over due to the presence of multiple iterators, and each iteration instance from one iterator application is the second It will occur as needed by the iterator application.
[0056]
In the invalidation operation step S406, attributes such as the version specific property or the version specific attribute 308 (FIG. 3) are invalidated. In one embodiment, the invalidation act step S406 deletes or truncates the version-specific attribute to “invalidate” the version-specific attribute. Alternatively, the version-specific attribute is marked in the invalidation operation step S406, or otherwise an indication that the attribute is invalid is given. Essentially, the act of invalidating an attribute must allow an application that relies on the version-specific attribute to recognize that the version-specific attribute has been invalidated. Other methods of invalidating version specific attributes may include invalidation access or adding information to version specific attributes or modifying information contained therein. In the invalidation act step S406, other items such as time change, last write time, or last access time are not changed.
[0057]
If the file has multiple associated version specific attributes, operation steps S404 and S406 are repeated for each version specific attribute.
[0058]
Subsequent to the invalidation act step S406, in the access execution operation step S408, the requested access to the file is executed. It is important that the act of performing access to the file begins after the version specific attribute is invalidated. Otherwise, version-specific attributes can become unreliable. Following the access execution operation step S408, the
[0059]
If it is determined in the decision act step S404 that the access attempt is not related to the invalidation access, the flow proceeds to a determination operation step S412 of NO. In a decision operation step S412, it is determined whether the access is dependent on the version specific attribute, for example, whether the access attempt is an access attempt by an application using the version specific attribute when performing the operation. For example, a virus scanning application that uses a version-specific attribute can generate an access attempt, in which case the access attempt was generated by such an application that uses the version-specific attribute in decision operation step S412. Determine if it is a thing.
[0060]
If the access attempt is not executed by an application relying on the version specific attribute, the flow proceeds to NO access execution operation step S408. In the access execution operation step S408, the access operation requested first is executed. When the access execution operation step S408 is performed following the determination operation step S412, the access operation is not related to the operation requesting invalidation as determined by the determination action step S404. For example, this access attempt may be related to a read operation where the user cannot modify the actual data. Following the access execution operation step S408, the process flow ends at step S410 as described above.
[0061]
If it is determined in the determination operation step S412 that the access depends on the version-specific attribute, the flow proceeds to a determination action step S414 in which YES. In decision act step S414, this is analyzed to determine if the version specific attribute is valid. Determining whether an attribute is valid includes whether the attribute exists, whether it is marked invalid, or whether all information has been truncated so that it is not available. If it is determined in the decision act step S414 that the attribute is not valid, the flow proceeds to the access execution act step S416 regarding the invalid attribute of NO.
[0062]
In the execution action step S416, a predetermined function is executed based on the determination that the access is invalid. In one embodiment, if the access attempt is generated by a virus scan application, then in an execution operation step S416, such a virus scan function is performed on the file.
[0063]
Subsequent to the operation execution step S416 related to the invalid attribute, in the version specific attribute creation act step S418, the version specific attribute is created or validated for the file. Enabling version specific attributes includes creating a version specific attribute for the file or adding information to an existing version specific attribute. In other embodiments, an attribute can be validated in other ways, as long as it is later found that the attribute is valid by giving an indication that the attribute is valid. Following the version specific attribute validation act step S418, the
[0064]
If it is determined in decision act step S414 that the version-specific attribute is valid, the flow proceeds to YES execution operation step S420. The execution operation step S420 relates to executing any action relating to the determination that the version specific attribute is valid. Depending on the particular application that uses version specific attributes, the execution operation step S420 may include different types of operations. In one example, when it is determined that the attribute is valid, no operation is performed in a virus scan situation or the like. In such a case, if it is determined in decision act step S414 that the version-specific attribute is valid, the file has been previously scanned and no other scan is required. Accordingly, no operation is performed on the file, and operation step S420 simply passes control to end operation step S410. In other embodiments, if the version specific attribute is determined to be valid, the operation may begin to be executed in step S420.
[0065]
The above systems and methods are compared to the traditional method of providing version information to a program module or application because the version information is part of the file rather than residing in a separate log or database file. It is quite advantageous. Accessing applications do not need to access external types of files that can become unavailable, corrupted, or otherwise unmanageable. Furthermore, the file attributes are not lost even when the power is turned off, and the attributes do not consume a large amount of operation memory as in the case of the in-memory information log. In addition, the process is automatically updated, i.e., version specific information is invalidated when an associated event occurs. By automatically invalidating the version specific information, relevant relevant updates are not missed and there is a high probability that unnecessary actions will not be performed. For example, with regard to performing virus scans, the prior art method did not retain such version information after the backup and / or duplication functions, so additional processing steps were performed. Is no longer disabled by the backup and replication functions, so virus scanning is not required when accessed in the future.
[0066]
As described above, the invention described herein can be implemented as a product, such as a computer process, a computing system, or a computer program product. A computer program product may be a computer system and computer storage medium readable by encoding computer program instructions for executing computer processes. Further, a computer program product may be a propagated signal on a carrier wave that is readable by a computer system and the encoding of computer program instructions for executing a computer process.
[0067]
Further, while the invention has been described in language specific to structural features and / or methodological steps, the invention as defined in the appended claims is intended to cover the specific features or steps described. It should be understood that this is not a limitation. As an example, other applications can utilize version specific attributes in addition to virus scanning applications and iterators. In addition, other types of file systems can benefit from the principles of the present invention. Accordingly, the specific features and steps are disclosed as preferred forms of implementing the described invention.
[Brief description of the drawings]
FIG. 1 is a functional diagram of a computer system in which the present invention can be incorporated.
FIG. 2 is a block diagram showing software components of the present invention.
FIG. 3 is a functional diagram showing the components of a file according to the present invention.
FIG. 4 is a flow diagram illustrating functional features of one embodiment of the present invention.
[Explanation of symbols]
100 Computing system environment (operating environment)
102 computer
104 processing unit
106 System memory
108 System bus
114 Basic input / output system
116 Hard disk drive
118 Magnetic disk drive
120 Nonvolatile magnetic disk
122 Optical disk drive
124 Nonvolatile optical disk
126 Hard disk drive interface
128 Magnetic disk drive interface
132 Operating system
134, 224, 226 Application program
136 Program module
138 Program data
140 keyboard
142 pointing devices
148 User input interface
150 monitors
152 video adapter
154 Remote computer
162 Adapter
164 modem
200 Software operating environment
202 File system
204, 206, 208, 210, 316 File data
212, 214, 216, 218, 302 header
220, 222, 308 Version-specific attributes
223,225 ellipsis
224 application program
228,230 Application Program Interface (API)
232,234 Operating System Interface
233 Internet
235 Network File System Interface
236 Service layer (dialogue layer)
300 files
304 Standard attributes
306 File data section
310 Meta Information Section
312 Version information section
314 Mask information section
318 Break symbol
400 process (flow)
Claims (11)
前記方法は、
前記ウイルススキャンアプリケーションからの要求に応答して、前記ファイルに関連付けられるバージョン固有属性であって、前記ウイルススキャンアプリケーションに関係するバージョン固有情報を含むバージョン固有属性を作成するステップと、
所定のファイルオペレーション要求を前記アプリケーションから受信して、前記作成されたバージョン固有属性を無効化することにより、前記バージョン固有属性を保守して前記ファイルに適切な更新を反映するステップと、
前記ウイルススキャンアプリケーションから前記バージョン固有属性を評価する要求を受け取るステップと、
前記バージョン固有属性を評価する要求に応答して前記バージョン固有属性を前記ウイルススキャンアプリケーションに提供するステップと、
前記提供されたバージョン固有属性が無効な場合に、バージョン固有属性を再作成して、前記ファイルに提供するステップと
を含み、
前記バージョン固有属性は、所定のファイルオペレーション要求が前記バージョン固有属性を無効化することに関連する情報を含むマスク情報を含み、前記無効化は前記マスク情報の評価に基づいて行われることを特徴とする方法。A method of providing version-specific information relating to a virus scanning application independent of the application used to create the file in a file stored in a computer system,
The method
In response to a request from the virus scanning application, creating a version specific attribute associated with the file and including version specific information related to the virus scanning application;
Receiving a predetermined file operation request from the application and invalidating the created version specific attribute to maintain the version specific attribute to reflect an appropriate update in the file;
Receiving a request to evaluate the version specific attribute from the virus scanning application;
Providing the version specific attribute to the virus scanning application in response to a request to evaluate the version specific attribute;
Re-creating a version-specific attribute and providing it to the file if the provided version-specific attribute is invalid;
The version-specific attribute includes mask information including information related to invalidating the version-specific attribute in a predetermined file operation request, and the invalidation is performed based on an evaluation of the mask information. how to.
前記ファイルは、前記ファイルの作成に使用されたアプリケーションとは独立のウイルススキャンアプリケーションによって提供される関連付けられたバージョン固有属性であって、前記ウイルススキャンアプリケーションに関係するメタ情報と、所定のファイルオペレーション要求がバージョン固有属性を無効化することに関連する情報を提供するマスク情報とを含むバージョン固有属性を有し、
前記方法は、
前記所定のファイルオペレーション要求を受信するステップと、
前記所定のファイルオペレーション要求が前記ファイルへのアクセスを無効化することに関係するものであるか否かを、前記マスク情報を評価することによって判定するステップと、
前記所定のファイルオペレーション要求が前記ファイルへのアクセスを無効化することに関係するものである場合は、前記バージョン固有属性を無効にした上で前記所定のファイルオペレーションを実行するステップと、
前記所定のファイルオペレーション要求が前記ファイルへのアクセスを無効化することに関係するものでない場合は、前記所定のファイルオペレーションが前記バージョン固有属性に依存するかどうかを判定し、依存すると判定され、さらに、前記バージョン固有属性が無効であると判定された場合には、前記バージョン固有属性を有効にするステップと
を含むことを特徴とする方法。A method of accessing a file stored in a computer system, comprising:
The file is an associated version-specific attribute provided by a virus-scanning application independent of the application used to create the file, the meta-information relating to the virus-scanning application, and a predetermined file operation request Having version specific attributes including mask information providing information related to invalidating the version specific attributes;
The method
Receiving the predetermined file operation request;
Determining whether the predetermined file operation request is related to invalidating access to the file by evaluating the mask information;
If the predetermined file operation request relates to disabling access to the file, executing the predetermined file operation after disabling the version-specific attribute;
If the predetermined file operation request is not related to revoking access to the file, determine whether the predetermined file operation depends on the version specific attribute, and determine that it depends; Enabling the version specific attribute if it is determined that the version specific attribute is invalid.
コンピュータに、
バージョン固有情報を、前記ファイルについてのバージョン固有属性であって、前記ファイルの生成に使用されたアプリケーションとは独立のウイルススキャンアプリケーションに関係するメタ情報と、所定のファイルオペレーション要求が前記バージョン固有属性を無効化することに関連する情報を提供するマスク情報とを含むバージョン固有属性を生成する属性として格納するステップと、
所定のファイルオペレーション要求に応答して、マスク情報を評価することによって前記バージョン固有属性を無効化するステップと
を含むコンピュータプロセスを実行させるためのコンピュータプログラム。A computer-readable computer program that executes a computer process that manages version-specific information about files in a computer file system,
On the computer,
Version-specific information includes version-specific attributes for the file, including meta-information relating to a virus scanning application independent of the application used to generate the file, and a predetermined file operation request indicating the version-specific attribute. Storing a version specific attribute as an attribute that includes mask information that provides information related to invalidation;
A computer program for executing a computer process comprising: in response to a predetermined file operation request, invalidating the version specific attribute by evaluating mask information.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/750,366 US7058667B2 (en) | 2000-12-27 | 2000-12-27 | Method and system for creating and maintaining version-specific properties in a file |
US09/750,366 | 2000-12-27 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002229826A JP2002229826A (en) | 2002-08-16 |
JP2002229826A5 JP2002229826A5 (en) | 2005-10-27 |
JP4348036B2 true JP4348036B2 (en) | 2009-10-21 |
Family
ID=25017571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001398349A Expired - Fee Related JP4348036B2 (en) | 2000-12-27 | 2001-12-27 | Method and system for creating and maintaining version-specific properties in a file |
Country Status (5)
Country | Link |
---|---|
US (2) | US7058667B2 (en) |
EP (1) | EP1235143B1 (en) |
JP (1) | JP4348036B2 (en) |
AT (1) | ATE431942T1 (en) |
DE (1) | DE60138753D1 (en) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058667B2 (en) * | 2000-12-27 | 2006-06-06 | Microsoft Corporation | Method and system for creating and maintaining version-specific properties in a file |
US20020147985A1 (en) * | 2001-04-05 | 2002-10-10 | Koji Miyajima | Video distribution system and video distribution method |
JP3946057B2 (en) * | 2002-03-01 | 2007-07-18 | 富士通株式会社 | Consistency inspection support method and consistency inspection support system |
JP2003288211A (en) * | 2002-03-27 | 2003-10-10 | Minolta Co Ltd | Network management program |
US7519984B2 (en) * | 2002-06-27 | 2009-04-14 | International Business Machines Corporation | Method and apparatus for handling files containing confidential or sensitive information |
JP3979285B2 (en) * | 2002-12-17 | 2007-09-19 | 株式会社日立製作所 | Information processing system |
WO2005041043A1 (en) | 2003-10-22 | 2005-05-06 | Olympus Corporation | File creation method and file search method |
EP1742488B1 (en) * | 2004-04-26 | 2014-10-15 | Olympus Corporation | Image file reproducing apparatus and method |
JP4642375B2 (en) * | 2004-04-26 | 2011-03-02 | オリンパス株式会社 | Image processing device, image processing / editing device, image file playback device, image processing method, image processing / editing method, and image file playback method |
JP4589651B2 (en) * | 2004-04-26 | 2010-12-01 | オリンパス株式会社 | Image processing device, image processing / editing device, image file playback device, image processing method, image processing / editing method, and image file playback method |
US20060117008A1 (en) * | 2004-11-17 | 2006-06-01 | Kabushiki Kaisha Toshiba | File management apparatus and file management program |
US8606830B2 (en) | 2004-12-17 | 2013-12-10 | Microsoft Corporation | Contiguous file allocation in an extensible file system |
US8321439B2 (en) | 2004-12-17 | 2012-11-27 | Microsoft Corporation | Quick filename lookup using name hash |
US7873596B2 (en) | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
US9639554B2 (en) | 2004-12-17 | 2017-05-02 | Microsoft Technology Licensing, Llc | Extensible file system |
US20060161911A1 (en) * | 2005-01-18 | 2006-07-20 | Barrs John W | Method and apparatus for managing versioning data in a network data processing system |
US20060161576A1 (en) * | 2005-01-18 | 2006-07-20 | Barrs John W | Method and apparatus for dimensional data versioning and recovery management |
US20060161912A1 (en) * | 2005-01-18 | 2006-07-20 | Barrs John W | Infrastructure for device driver to monitor and trigger versioning for resources |
US20060161751A1 (en) * | 2005-01-18 | 2006-07-20 | Barrs John W | Virtual memory management infrastructure for monitoring deltas and supporting undo versioning in a paged memory system |
US20060161601A1 (en) * | 2005-01-18 | 2006-07-20 | Barrs John W | Heap manager and application programming interface support for managing versions of objects |
US20060161603A1 (en) * | 2005-01-18 | 2006-07-20 | Barrs John W | Platform infrastructure to provide an operating system based application programming interface undo service |
US7395386B2 (en) * | 2005-01-18 | 2008-07-01 | Lenovo (Singapore) Pte. Ltd. | Method and apparatus for data versioning and recovery using delta content save and restore management |
US20060161602A1 (en) * | 2005-01-18 | 2006-07-20 | Barrs John W | Object based access application programming interface for data versioning |
US7565645B2 (en) * | 2005-01-18 | 2009-07-21 | Lenovo (Singapore) Pte Ltd. | Method and apparatus for marking code for data versioning |
US7882561B2 (en) | 2005-01-31 | 2011-02-01 | Microsoft Corporation | System and method of caching decisions on when to scan for malware |
US7581250B2 (en) * | 2005-02-17 | 2009-08-25 | Lenovo (Singapore) Pte Ltd | System, computer program product and method of selecting sectors of a hard disk on which to perform a virus scan |
US20060253503A1 (en) * | 2005-05-05 | 2006-11-09 | International Business Machines Corporation | Method and apparatus for aging a versioned heap system |
US7805419B2 (en) * | 2005-07-11 | 2010-09-28 | Application Security, Inc. | System for tracking and analyzing the integrity of an application |
JP2007034623A (en) * | 2005-07-26 | 2007-02-08 | Sharp Corp | Detection method for computer virus, program, recording medium with its program stored and detection device for computer virus |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
JP2007128448A (en) * | 2005-11-07 | 2007-05-24 | Sony Corp | File system and file information processing method |
US8205150B2 (en) | 2007-01-22 | 2012-06-19 | Cfph, Llc | Document changes |
US20090094698A1 (en) * | 2007-10-09 | 2009-04-09 | Anthony Lynn Nichols | Method and system for efficiently scanning a computer storage device for pestware |
US9143561B2 (en) | 2007-11-09 | 2015-09-22 | Topia Technology, Inc. | Architecture for management of digital files across distributed network |
US7818293B2 (en) * | 2008-01-02 | 2010-10-19 | International Business Machines Corporation | Method and system to synchronize updated versions of a document edited on a collaborative site that are under document management control |
US8856088B2 (en) * | 2008-04-01 | 2014-10-07 | Microsoft Corporation | Application-managed file versioning |
US20100153919A1 (en) * | 2008-12-11 | 2010-06-17 | Wolfram Kramer | Systems and methods for tracking software stands in a software production landscape |
US8312548B1 (en) * | 2009-04-24 | 2012-11-13 | Network Appliance, Inc. | Volume metadata update system for antivirus attributes |
US9165285B2 (en) | 2010-12-08 | 2015-10-20 | Microsoft Technology Licensing, Llc | Shared attachments |
US8682989B2 (en) | 2011-04-28 | 2014-03-25 | Microsoft Corporation | Making document changes by replying to electronic messages |
US10552799B2 (en) | 2011-04-28 | 2020-02-04 | Microsoft Technology Licensing, Llc | Upload of attachment and insertion of link into electronic messages |
US11308449B2 (en) | 2011-04-28 | 2022-04-19 | Microsoft Technology Licensing, Llc | Storing metadata inside file to reference shared version of file |
US9137185B2 (en) | 2011-04-28 | 2015-09-15 | Microsoft Technology Licensing, Llc | Uploading attachment to shared location and replacing with a link |
US10185932B2 (en) | 2011-05-06 | 2019-01-22 | Microsoft Technology Licensing, Llc | Setting permissions for links forwarded in electronic messages |
US9172771B1 (en) | 2011-12-21 | 2015-10-27 | Google Inc. | System and methods for compressing data based on data link characteristics |
US8560579B1 (en) * | 2011-12-21 | 2013-10-15 | Google Inc. | Systems and methods for managing a network by generating files in a virtual file system |
KR20130089114A (en) * | 2012-02-01 | 2013-08-09 | 삼성전자주식회사 | Apparatus and method for managing files |
JP6013895B2 (en) * | 2012-12-12 | 2016-10-25 | 株式会社日立情報通信エンジニアリング | File management system and method, program |
US9471798B2 (en) | 2013-09-20 | 2016-10-18 | Oracle International Corporation | Authorization policy objects sharable across applications, persistence model, and application-level decision-combining algorithm |
US10171437B2 (en) * | 2015-04-24 | 2019-01-01 | Oracle International Corporation | Techniques for security artifacts management |
US10395042B2 (en) | 2015-07-02 | 2019-08-27 | Oracle International Corporation | Data encryption service |
US10102190B2 (en) | 2015-12-28 | 2018-10-16 | Microsoft Technology Licensing, Llc. | Memory conserving versioning of an electronic document |
US20170357494A1 (en) * | 2016-06-08 | 2017-12-14 | International Business Machines Corporation | Code-level module verification |
US12111944B2 (en) * | 2017-03-16 | 2024-10-08 | Jun Yu | Method and system for policy based real time data file access control |
CN110287061B (en) * | 2019-06-25 | 2023-05-16 | 重庆城市职业学院 | Information maintenance system based on computer |
KR102088170B1 (en) * | 2019-08-27 | 2020-03-12 | 루나 주식회사 | Method of data structuring for difference between old and new data and device thereof |
CN112651026B (en) * | 2020-12-30 | 2024-05-24 | 微梦创科网络科技(中国)有限公司 | Application version mining method and device with service safety problem |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5852740A (en) | 1981-09-24 | 1983-03-29 | Fujitsu Ltd | System for restoration processing control of partitioned file |
JPH02226442A (en) | 1989-02-28 | 1990-09-10 | Toshiba Corp | Dead lock preventing system for data base system |
US5117352A (en) | 1989-10-20 | 1992-05-26 | Digital Equipment Corporation | Mechanism for fail-over notification |
US5161227A (en) | 1989-11-13 | 1992-11-03 | International Business Machines Corporation | Multilevel locking system and method |
US5459862A (en) | 1990-06-14 | 1995-10-17 | Sunquest Informaion Systems, Inc. | Network concurrency control for autonomous databases featuring independent lock release and lock ownership transfer |
US5367671A (en) | 1990-09-25 | 1994-11-22 | International Business Machines Corp. | System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables |
JPH04308961A (en) | 1991-01-18 | 1992-10-30 | Ncr Corp | Means and apparatus for notifying state of synchronous locking of occupied process |
US5485601A (en) * | 1992-05-14 | 1996-01-16 | Ching; Hugh | Completely automated and self-generating software system |
US5485607A (en) | 1993-02-05 | 1996-01-16 | Digital Equipment Corporation | Concurrency-control method and apparatus in a database management system utilizing key-valued locking |
US5537529A (en) * | 1993-04-22 | 1996-07-16 | Apple Computer, Inc. | Apparatus and method for creating versions of computer models and creating communications incorporating created versions therefrom |
US5499365A (en) * | 1993-08-04 | 1996-03-12 | International Business Machines Corporation | System and method for controlling versions of objects in an object oriented computing environment |
US5515522A (en) * | 1994-02-24 | 1996-05-07 | Hewlett-Packard Company | Coherence index generation for use by an input/output adapter located outside of the processor to detect whether the updated version of data resides within the cache |
US5806078A (en) * | 1994-06-09 | 1998-09-08 | Softool Corporation | Version management system |
JPH08147159A (en) | 1994-11-16 | 1996-06-07 | Hitachi Ltd | Information processing device |
US5745747A (en) | 1995-02-06 | 1998-04-28 | International Business Machines Corporation | Method and system of lock request management in a data processing system having multiple processes per transaction |
US5701452A (en) | 1995-04-20 | 1997-12-23 | Ncr Corporation | Computer generated structure |
JPH0934763A (en) * | 1995-07-19 | 1997-02-07 | Fuji Xerox Co Ltd | Device and method for managing file |
US6067410A (en) * | 1996-02-09 | 2000-05-23 | Symantec Corporation | Emulation repair system |
US5729743A (en) * | 1995-11-17 | 1998-03-17 | Deltatech Research, Inc. | Computer apparatus and method for merging system deltas |
JP3392283B2 (en) | 1996-02-23 | 2003-03-31 | 株式会社日立情報システムズ | How to prevent computer virus intrusion |
US6366930B1 (en) * | 1996-04-12 | 2002-04-02 | Computer Associates Think, Inc. | Intelligent data inventory & asset management systems method and apparatus |
US5832484A (en) | 1996-07-02 | 1998-11-03 | Sybase, Inc. | Database system with methods for parallel lock management |
US5996113A (en) * | 1996-11-26 | 1999-11-30 | Intel Corporation | Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation |
US5892904A (en) * | 1996-12-06 | 1999-04-06 | Microsoft Corporation | Code certification for network transmission |
US6374250B2 (en) | 1997-02-03 | 2002-04-16 | International Business Machines Corporation | System and method for differential compression of data from a plurality of binary sources |
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 |
US6141720A (en) | 1997-06-12 | 2000-10-31 | Cabletron Systems, Inc. | Method and apparatus for coordination of a shared object in a distributed system |
US5909689A (en) * | 1997-09-18 | 1999-06-01 | Sony Corporation | Automatic update of file versions for files shared by several computers which record in respective file directories temporal information for indicating when the files have been created |
US6026401A (en) | 1997-10-14 | 2000-02-15 | International Business Machines Corporation | Locking tool data objects in a framework environment |
US5991774A (en) * | 1997-12-22 | 1999-11-23 | Schneider Automation Inc. | Method for identifying the validity of an executable file description by appending the checksum and the version ID of the file to an end thereof |
US6035423A (en) * | 1997-12-31 | 2000-03-07 | Network Associates, Inc. | Method and system for providing automated updating and upgrading of antivirus applications using a computer network |
US6052531A (en) * | 1998-03-25 | 2000-04-18 | Symantec Corporation | Multi-tiered incremental software updating |
US6209128B1 (en) * | 1998-06-05 | 2001-03-27 | International Business Machines Corporation | Apparatus and method for providing access to multiple object versions |
US6604236B1 (en) | 1998-06-30 | 2003-08-05 | Iora, Ltd. | System and method for generating file updates for files stored on read-only media |
US6562076B2 (en) | 1998-08-31 | 2003-05-13 | Xerox Corporation | Extending application behavior through active properties attached to a document in a document management system |
US6577920B1 (en) * | 1998-10-02 | 2003-06-10 | Data Fellows Oyj | Computer virus screening |
US6412034B1 (en) | 1999-04-16 | 2002-06-25 | Oracle Corporation | Transaction-based locking approach |
US6377960B1 (en) * | 1999-07-26 | 2002-04-23 | Microsoft Corporation | Transactional configuration store and runtime versus administration isolation with version snapshots and aging |
US6629127B1 (en) | 1999-07-26 | 2003-09-30 | Microsoft Corporation | Methods and systems for processing HTTP requests |
US6609128B1 (en) * | 1999-07-30 | 2003-08-19 | Accenture Llp | Codes table framework design in an E-commerce architecture |
US6636242B2 (en) * | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
US6865549B1 (en) | 1999-11-15 | 2005-03-08 | Sun Microsystems, Inc. | Method and apparatus for concurrency control in a policy-based management system |
US6529905B1 (en) | 2000-01-11 | 2003-03-04 | Frontline Solutions, Inc. | Method and system for allowing multiple users to edit a hierarchical data structure |
US6763466B1 (en) * | 2000-01-11 | 2004-07-13 | Networks Associates Technology, Inc. | Fast virus scanning |
US6721767B2 (en) * | 2000-01-31 | 2004-04-13 | Commvault Systems, Inc. | Application specific rollback in a computer system |
US6856630B2 (en) * | 2000-02-02 | 2005-02-15 | Semiconductor Energy Laboratory Co., Ltd. | Beam homogenizer, laser irradiation apparatus, semiconductor device, and method of fabricating the semiconductor device |
US7058667B2 (en) * | 2000-12-27 | 2006-06-06 | Microsoft Corporation | Method and system for creating and maintaining version-specific properties in a file |
US6598060B2 (en) * | 2000-12-27 | 2003-07-22 | Microsoft Corporation | Method and system for creating and maintaining version-specific properties in a distributed environment |
US6625698B2 (en) | 2000-12-28 | 2003-09-23 | Unisys Corporation | Method and apparatus for controlling memory storage locks based on cache line ownership |
US6748470B2 (en) | 2001-11-13 | 2004-06-08 | Microsoft Corporation | Method and system for locking multiple resources in a distributed environment |
-
2000
- 2000-12-27 US US09/750,366 patent/US7058667B2/en not_active Expired - Fee Related
-
2001
- 2001-12-20 EP EP01130444A patent/EP1235143B1/en not_active Expired - Lifetime
- 2001-12-20 AT AT01130444T patent/ATE431942T1/en not_active IP Right Cessation
- 2001-12-20 DE DE60138753T patent/DE60138753D1/en not_active Expired - Lifetime
- 2001-12-27 JP JP2001398349A patent/JP4348036B2/en not_active Expired - Fee Related
-
2006
- 2006-06-06 US US11/448,529 patent/US7849054B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7849054B2 (en) | 2010-12-07 |
US7058667B2 (en) | 2006-06-06 |
JP2002229826A (en) | 2002-08-16 |
ATE431942T1 (en) | 2009-06-15 |
EP1235143A3 (en) | 2005-08-10 |
EP1235143A2 (en) | 2002-08-28 |
DE60138753D1 (en) | 2009-07-02 |
US20060242208A1 (en) | 2006-10-26 |
US20020116406A1 (en) | 2002-08-22 |
EP1235143B1 (en) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4348036B2 (en) | Method and system for creating and maintaining version-specific properties in a file | |
JP4416366B2 (en) | Method and system for creating and maintaining version-specific properties in a distributed environment | |
US8180812B2 (en) | Templates for configuring file shares | |
US7272606B2 (en) | System and method for detecting and storing file content access information within a file system | |
US7912866B2 (en) | System and method for detecting and storing file identity change information within a file system | |
US6449615B1 (en) | Method and system for maintaining the integrity of links in a computer network | |
US9424266B2 (en) | Efficient file hash identifier computation | |
US7831560B1 (en) | Snapshot-aware secure delete | |
US20080307138A1 (en) | Method and system for locking resources in a distributed environment | |
US20070118700A1 (en) | System and methods for sharing configuration information with multiple processes via shared memory | |
US9430160B2 (en) | Consistency without ordering dependency | |
CN1606011A (en) | Method and system for processing a file request | |
TW200408980A (en) | System and method for managing file names for file system filter drivers | |
KR20090079933A (en) | Computer-readable media and methods for restricting access to components of the system and file system that restrict access to resources for reverse name mapping in restricted namespace environments | |
US20090313702A1 (en) | Content transfer control | |
US20060117048A1 (en) | Method and system of synchronizing filter metadata after a restore | |
WO2009123342A1 (en) | Database system, database update method, database, and database update program | |
US8635331B2 (en) | Distributed workflow framework | |
KR100604239B1 (en) | A method of operating a file server by implementing a single file locking semantics for various file locking protocols and a file server operated by the method | |
US20100293197A1 (en) | Directory Opportunistic Locks Using File System Filters | |
Hogan et al. | Examining Semantics In Multi-Protocol Network File Systems | |
Hogan et al. | Examining Semantics In Multi-Protocol Network File Systems (CMU-CS-02-103) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041227 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080229 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080529 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080603 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080630 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080703 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080731 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080901 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090330 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20090401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090401 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090513 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090619 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090717 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130724 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |