(57)【特許請求の範囲】
【請求項１】
分散型環境において提供されるコンピュータシステムに格納されたオブジェクトに関連するバージョン固有情報を提供する方法であって、
あるオブジェクトに関連するバージョン固有プロパティを作成する工程と、
ここで、前記バージョン固有プロパティは、セキュリティ情報と、メタ情報と、バージョン固有情報と、マスク情報とを有し、
前記メタ情報は該バージョン固有プロパティの名前を有し、前記バージョン固有情報は該バージョン固有プロパティの作成に使用されたアプリケーションのバージョンを有し、前記マスク情報は前記バージョン固有プロパティの無効化を発生させる複数のイベントの定義に関連した情報を有し、
前記複数のイベントは、新しいデータを付加する前記オブジェクトの変更、データを削除する前記オブジェクトの変更、或いは前記オブジェクトに関連するプロパティの変更のうちの１つ以上を含み、
前記バージョン固有プロパティを評価するアプリケーションによるアクセス要求を受け取る工程と、
前記アクセス要求に応答して、前記アプリケーションの処理が、前記バージョン固有プロパティの前記マスク情報に含まれる前記無効化を発生させる複数のイベントのいずれかに関連した無効化アクセスであるかを判定する工程と、
前記アプリケーションの処理が前記無効化アクセスであると判定したとき、前記バージョン固有プロパティを無効化する工程と
を具えたことを特徴とする方法。
【請求項２】
前記アプリケーションは、ウィルススキャンアプリケーションであることを特徴とする請求項１記載の方法。
【請求項３】
前記アプリケーションは、レプリケータアプリケーションであることを特徴とする請求項１記載の方法。
【請求項４】
請求項１ないし３のいずれかに記載の方法を実行可能なコンピュータによって読取り可能なコンピュータプログラム。
【請求項５】
コンピュータによって実行可能な請求項４記載のコンピュータプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項６】
コンピュータシステムに格納されたオブジェクトにアクセスする方法であって、前記オブジェクトが関連するバージョン固有プロパティを有し、
ここで、前記バージョン固有プロパティは、セキュリティ情報と、メタ情報と、バージョン固有情報と、マスク情報とを有し、
前記メタ情報は該バージョン固有プロパティの名前を有し、前記バージョン固有情報は該バージョン固有プロパティの作成に使用されたアプリケーションのバージョンを有し、前記マスク情報は前記バージョン固有プロパティの無効化を発生させる複数のイベントの定義に関連した情報を有し、
前記複数のイベントは、新しいデータを付加する前記オブジェクトの変更、データを削除する前記オブジェクトの変更、或いは前記オブジェクトに関連するプロパティの変更のうちの１つ以上を含み、
該方法は、
アクセス要求に関するアクセス試行をアプリケーションから受け取る工程と、
前記アクセス試行が、前記バージョン固有プロパティの前記マスク情報に含まれる前記無効化を発生させる複数のイベントのいずれかに関連した無効化アクセスに関するものであるかどうかを判定する工程と
を具え、
前記アクセス試行が無効化アクセスに関するものである場合は、
前記バージョン固有プロパティを無効化する工程と、
アクセス要求に関するアクセス動作を実行する工程とを含み、
前記アクセス試行が無効化アクセスに関するものでない場合は、アクセス要求に関するアクセス動作を実行する工程を含むことを特徴とする方法。
【請求項７】
コンピュータシステムに格納されたオブジェクトにアクセスする方法であって、前記オブジェクトが関連するバージョン固有プロパティを有し、
ここで、前記バージョン固有プロパティは、セキュリティ情報と、メタ情報と、バージョン固有情報と、マスク情報とを有し、
前記メタ情報は該バージョン固有プロパティの名前を有し、前記バージョン固有情報は該バージョン固有プロパティの作成に使用されたアプリケーションのバージョンを有し、前記マスク情報は前記バージョン固有プロパティの無効化を発生させる複数のイベントの定義に関連した情報を有し、
前記複数のイベントは、新しいデータを付加する前記オブジェクトの変更、データを削除する前記オブジェクトの変更、或いは前記オブジェクトに関連するプロパティの変更のうちの１つ以上を含み、
該方法は、
前記バージョン固有プロパティを評価するアプリケーションによるアクセス要求に関するアクセス試行を該アプリケーションから受け取る工程と、
前記アクセス試行が、前記バージョン固有プロパティの前記マスク情報に含まれる前記無効化を発生させる複数のイベントのいずれかに関連した無効化アクセスに関するものであるかどうかを判定する工程と
を具え、
前記アクセス試行が前記無効化アクセスに関するものである場合は、
バージョン固有プロパティを無効化する工程と、
アクセス要求に関するアクセス動作を実行する工程とを含み、
前記アクセス試行が前記無効化アクセスに関するものでない場合は、
前記アクセスが前記バージョン固有プロパティに依存するかどうかを判定する工程を含み、
前記アクセスが前記バージョン固有プロパティに依存しない場合は、アクセス要求に関するアクセス動作を実行する工程を含み、
前記アクセスが前記バージョン固有プロパティに依存する場合は、
該プロパティが有効であるかどうかを判定し、
該プロパティが有効であると判定されたかどうかに基づいてウィルススキャン機能を実行する工程を含むことを特徴とする方法。
【請求項８】
請求項６又は７記載の方法を実行するための命令を符号化する、コンピュータによって読取り可能なことを特徴とするコンピュータプログラム。
【請求項９】
コンピュータによって読取り可能な請求項８記載のコンピュータプログラムを有するコンピュータ読取り可能な記録媒体。
【請求項１０】
前記バージョン固有プロパティの作成に使用されたアプリケーションは、ウィルススキャン機能を実行する第三者アプリケーションであり、バージョン固有情報がウィルス定義ファイルに関する情報を格納することを特徴とする請求項９記載のコンピュータ読取り可能媒体。
【請求項１１】
分散型環境内でデータオブジェクトに関するバージョン固有情報を管理するためのコンピュータプロセスを実行するための命令を符号化する、コンピュータによって読取り可能なコンピュータプログラムであって、前記コンピュータプロセスは、
データオブジェクトに関するバージョン固有オブジェクトを作成するために、バージョン固有情報をデータオブジェクトに関連するバージョン固有プロパティに格納する工程と、
ここで、前記バージョン固有プロパティは、セキュリティ情報と、メタ情報と、バージョン固有情報と、マスク情報とを有し、
前記メタ情報は該バージョン固有プロパティの名前を有し、前記バージョン固有情報は該バージョン固有プロパティの作成に使用されたアプリケーションのバージョンを有し、前記マスク情報は前記バージョン固有プロパティの無効化を発生させる複数のイベントの定義に関連した情報を有し、
前記複数のイベントは、新しいデータを付加する前記オブジェクトの変更、データを削除する前記オブジェクトの変更、或いは前記オブジェクトに関連するプロパティの変更のうちの１つ以上を含み、
前記バージョン固有プロパティを評価するアプリケーションによるアクセス要求に関する無効化アクセス試行に応答して、前記アプリケーションの処理が、前記バージョン固有プロパティの前記マスク情報に含まれる前記無効化を発生させる複数のイベントのいずれかに関連した無効化アクセスであると判定したとき、前記バージョン固有オブジェクトを無効化する工程と
を具えたことを特徴とするコンピュータプログラム。
【請求項１２】
コンピュータがサービス層を含み、前記サービス層によって格納する工程および無効化する工程が実行されることを特徴とする請求項１１記載のコンピュータプログラム。
【請求項１３】
前記バージョン固有情報は、第三者アプリケーション情報に関することを特徴とする請求項１１記載のコンピュータプログラム。
【請求項１４】
前記第三者アプリケーションはウィルススキャン機能を実行するものであり、前記無効化アクセス試行はオブジェクトの修正に関することを特徴とする請求項１３記載のコンピュータプログラム。
【請求項１５】
コピー、名前変更、またはバックアップのアクセス試行のうち１つが実行された後でも、バージョン固有オブジェクトが損なわれないことを特徴とする請求項１４記載のコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に分散コンピューティング環境に関し、より詳細には、特定のシステムにおいて各オブジェクトの一部として格納されたオブジェクトプロパティのフォーマットおよび管理に関する。さらに詳細には、本発明は、第三者のアプリケーションに状況情報を提供するためのオブジェクトプロパティの使用に関する。
【０００２】
【従来の技術】
インターネットなどの分散型環境では、通常、コンピュータ情報は「リソース」または「オブジェクト」と呼ばれる単位で格納される。リソースとは、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（ＵＲＬ）またはＵｎｉｆｏｒｍＲｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）を介してＷｅｂ上でアクセスできる、任意のエンティティであってよい。リソースメンバのグループを集めたものが、「コレクション」と呼ばれる。リソースをグループにまとめることの利点は、いったんリソースグループがまとまると、非分散型環境にあるコンピュータファイルと同じ方法で処理することが可能であるという事実に関するものであり、この場合、ファイルとリソースコレクションはどちらもそれぞれがデータおよびメタデータを有する。データとは、オブジェクトまたはリソースいずれかに関する実際の目的データであり、メタデータとは、ファイルまたはリソースの内容を表す情報であって、データの場合もある。
【０００３】
インターネットおよび他の分散型環境が広く普及するに従って、クライアントシステムがサーバシステムやサーバシステム上のリソースと対話する際にクライアントシステムが使用する代表的な機能にも改良が重ねられてきた。たとえば、Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰ）バージョン１．１などの過去のプロトコルは、サーバ側のアプリケーションやドキュメントに情報を「入れる（ｐｕｔ）」機能であった。クライアントは、ヘッダに「ＰＵＴ」コマンドを組み込んだ特定のＨｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＨＴＭＬ）要求を使用する。次いでサーバがこのヘッダ情報を解釈してコマンドを実行する、というものであった。
【０００４】
最近の開発により、分散型ネットワークを介してクライアントシステムからサーバシステム上にあるリソースをオーサリングする概念が増加してきた。この顕著な例の１つが、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ａｕｔｈｏｒｉｎｇ  ａｎｄ  Ｖｅｒｓｉｏｎｉｎｇ標準の略であるＷｅｂＤＡＶ標準の開発に関するものであり、以下、本明細書では簡単に「ＤＡＶ」という。ＤＡＶはヘッダとメソッドのセットを提供するものであり、上書き禁止（ロック）、プロパティ、およびネームスペース管理のための機能が提供できるようにＨＴＴＰが拡張されている。ＩＥＴＦが作成し、ＩＥＳＧによって提唱標準（ｐｒｏｐｏｓｅｄ  ｓｔａｎｄａｒｄ）ＲＦＣ  ２５１８として承認された文書が、１９９９年２月に出版されており、ＤＡＶに関してはこの標準でより詳細に説明されている。
【０００５】
ＤＡＶでは、リソースに関連するプロパティオブジェクトを作成するが、このプロパティは従来のファイルシステムにおいて使用されたファイルのプロパティと同様のものである。プロパティは、リソースの名前、リソースの原作者、リソース（またはリソースコレクション）の最新バージョン番号などの情報を格納することができる。
【０００６】
第三者アプリケーションは、サーバ側のリソースシステムと組み合わせることにより、ウィルススキャン機能などの追加のシステム特性または機能を提供する場合が多い。これらの第三者アプリケーションは、実際にそれぞれのリソースのアクセス試行を「傍受」してウィルス対象をスキャンするか、または実際のアクセス操作を行う前に他のテストを実行することができる。しかし、リソースにアクセスするたびにスキャン操作や他のテストを行っていては、膨大な時間がかかってしまう。したがって、各リソースのバージョン情報を格納しておく情報のログを保持することができる。たとえばログは、システム上にあるリソースのリスト、および各リソースがスキャンされたかどうか、さらにスキャンされた場合はどのバージョンのウィルス定義ファイル（ｖｉｒｕｓ  ｄｅｆｉｎｉｔｉｏｎ  ｆｉｌｅ）が使用されたかについて、保持することができる。ウィルススキャナはこの情報のログを使用して、新規または修正済みのリソース、あるいは古いウィルス定義ファイルでスキャンされたリソースだけをスキャンすることで、処理時間を削減することができる。
【０００７】
アクセスの前に必ずあらゆるリソースをスキャンしているシステムは、ログを使用することで大幅に改善されるが、こうしたログの使用によって生じる欠点もある。たとえば、かかる情報ログを保持するためには、かなりのオーバヘッドが必要である。さらに、各項目がスキャンされたかどうかを判定するためにログにアクセスするプロセスでは、ディスク上に別ファイルを配置し、これを調べなければならないため、システム全体の性能が低下する。さらに、リソースがコピーまたはバックアップされるときには情報のログは更新されず、状況によっては不要なスキャン動作を発生させることになる。
【０００８】
情報ログを別ファイルとして保持しておくために生じる性能低下の問題を解決する方法の１つが、揮発性メモリ、たとえばＲＡＭ内に作成および格納される「インメモリ（ｉｎ−ｍｅｍｏｒｙ）」ログを保持することである。インメモリログへのアクセスは別ファイルへのそれよりも速いため、上記ログファイルの代わりにインメモリログを使用することで、システムの性能が向上する。ただし、システムのオフ、シャットダウン、リブートなどでシステムの電源が切れると、インメモリログは消去されるか、または失われる。したがって、電源停止後は、状態情報またはバージョン情報が即時に特定できない可能性がある。インメモリログに関連する他の欠点は、かかるログが、システムの使用する操作メモリを大量に消費することである。したがって、インメモリログは、前述の問題に適切な解決策を与えるものではない。
【０００９】
【発明が解決しようとする課題】
本発明の一目的は、上記またはその他の考慮すべき点に関する解決策を提供することである。
そこで、本発明の目的は、バージョン固有プロパティまたは分散型環境においてオブジェクトの一部として格納されたプロパティを作成し維持し、プロパティがいつどのようにして作成されたかに関するバージョン固有の情報を格納し、所定の「更新」イベントが発生したときに自動的に無効となる方法およびシステムを提供することにある。
【００１０】
【課題を解決するための手段】
本発明は、リソースまたはオブジェクトのコレクション（ｃｏｌｌｅｃｔｉｏｎ）の一部として格納され、プロパティがいつどのようにして作成されたかに関するバージョン固有の情報を格納し、所定の「更新」イベントが発生したときに自動的に無効となる、バージョン固有の属性またはプロパティを作成および使用することによって、これらの問題を解決する。第三者アプリケーションは、一般に、これらのバージョン固有プロパティを作成し、これにアクセスすることによって、外部のログまたはデータベースを不要とすることができる。
【００１１】
本発明の一態様は、コンピュータシステム内に格納されたオブジェクトに関連するバージョン固有の情報をアプリケーションに提供する方法に関する。この方法には、オブジェクトに関連するバージョン固有プロパティを作成すること、所定のアクセス要求に応答してバージョン固有の情報を自動的に無効とすることにより、関連するオブジェクトの更新が常にバージョン固有プロパティに反映されるようにすること、ならびに第三者アプリケーションがバージョン固有プロパティを分析できるようにすることが含まれる。
【００１２】
本発明の他の態様によれば、アプリケーションとは、ウィルススキャンアプリケーション、あるいはバックアップまたは性能上の目的でデータオブジェクトの冗長コピーを作成するレプリケータタイプのアプリケーションなどの、第三者アプリケーションである。さらに、本発明のバージョン固有プロパティは、メタ情報、バージョン情報、およびマスク情報を含むことができる。バージョン情報は、オブジェクト自体または固有のプロパティ作成に使用されるアプリケーションのバージョンに関し、マスク情報は、バージョン固有プロパティを無効化できる所定のイベントのポリシーまたは定義に関する。他の実施形態では、さらにバージョン固有プロパティは、プロパティまたはデータオブジェクトへの無許可のアクセスを防止するためか、あるいはデータオブジェクトが破損されているかどうかを判定する場合に他のアプリケーションに検証要素を提供するための、デジタル署名または他のセキュリティ情報を含むことができる。
【００１３】
本発明の他の態様によれば、バージョン固有プロパティは、オブジェクト内のデータやオブジェクトに関連するメタデータの修正などの所定のイベントに基づいて、あるいは他のバージョン固有プロパティが変更されるときに、無効化することができる。無効化動作は、バージョン固有プロパティの削除または切り捨て、あるいはバージョン固有プロパティが無効であることを示す他の方法であってよい。
【００１４】
他の態様によれば、本発明は、バージョン固有プロパティを有するオブジェクト形式に関する。バージョン固有プロパティにはメタ情報セクションと、プロパティを作成したアプリケーションのバージョンに関する情報を格納するためのバージョン情報セクションと、プロパティの無効化を発生される所定のイベントに関する情報を格納するためのマスク情報セクションとがある。さらに、本発明は、かかるバージョン固有プロパティを作成および保持するためのプロトコルを提供するシステムにも関する。
【００１５】
本発明は、コンピュータプロセス、コンピューティングシステム、およびコンピュータプログラム製品などの製造物として実施することができる。コンピュータプログラム製品は、コンピュータシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、コンピュータ記憶媒体であってよい。さらにコンピュータプログラム製品は、コンピューティングシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、搬送波上の伝播信号であってもよい。
【００１６】
概略を簡潔に後述した添付の図面、本発明の現在の好ましい実施形態についての以下の詳細な説明、および添付の特許請求の範囲を参照すると、本発明およびその改良点についてより完全に理解することができる。
【００１７】
【発明の実施の形態】
本発明は、バージョン固有プロパティ、あるいはデータオブジェクトに関するメタ情報を定義または提供するプロパティを作成する、データオブジェクトモデルに関する。バージョン固有プロパティは、メタ情報識別ポインタを介する場合、あるいはデータオブジェクトそれ自体と常駐させる方法で情報を格納する場合のいずれも、データオブジェクトと関連して格納することが可能であるという点が、他のデータオブジェクトプロパティと同様である。ただし、バージョン固有プロパティは、バージョン固有プロパティを作成したアプリケーションに関するバージョン固有情報を格納する機能を含め、既存のメタ情報プロパティとは比較的異なる特徴を有する。さらにバージョン固有プロパティは、所定のイベントが発生すると同時に自動的に更新される。実際、無効化を発生させるイベントに関する情報も、バージョン固有プロパティの一部として格納される場合がある。
【００１８】
図１は、本発明が実施可能な、好適なコンピューティングシステム環境１００の一例を示す図である。コンピューティングシステム環境１００は、好適なコンピューティング環境の一例にすぎず、本発明の使用範囲または機能性に関して、なんらかの制限を与えることを意図するものではない。さらにコンピューティング環境１００は、例示的な動作環境１００に例示された任意の１構成要素またはその組合せに関して、なんらかの依存性または要件を有するものでもない。
【００１９】
図１に示された環境１００に加え、本発明は、数多くの他の汎用または特殊用途向けコンピューティングシステム環境または構成で動作可能である。本発明での使用に好適なよく知られたコンピューティングシステム、環境、および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、任意の上記システムまたはデバイスを含む分散型コンピューティング環境などが含まれるが、これらに限定されるものではない。
【００２０】
さらに本発明は、コンピュータによって実行されるプログラムモジュールなどの、一般的なコンピュータ実行可能命令の情況で説明することができる。通常、プログラムモジュールには、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれ、これらが特定のタスクを実行するか、または特定の抽象データタイプを実施する。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境において実施することもできる。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含む、ローカルおよびリモートのどちらのコンピュータ記憶媒体にも配置することができる。
【００２１】
図１を参照すると、本発明を実施するための例示的システムには、コンピュータ１０２の形態での汎用コンピューティングデバイスが含まれる。コンピュータ１０２の構成要素には、処理ユニット１０４、システムメモリ１０６、および、システムメモリを含む様々なシステム構成要素を処理ユニット１０４に結合させるシステムバス１０８が含まれるが、これらに限定されるものではない。システムバス１０８は、メモリバスまたはメモリ制御装置、周辺バス、ならびに様々なバスアーキテクチャのうち任意のものを使用するローカルバスを含む、いくつかの種類のバス構造のうちのいずれかが可能である。限定的ではなく例示的なものとして例を挙げると、かかるアーキテクチャには、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスが含まれる。
【００２２】
コンピュータ１０２は、通常、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ１０２がアクセス可能な任意の使用可能媒体であってよく、揮発性および不揮発性媒体、取外し可能および取外し不能媒体のどちらも含まれる。限定的ではなく例示的なものとして例を挙げると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性および不揮発性、取外し可能および取外し不能のどちらの媒体も含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤＥ−ＲＯＭ、デジタル汎用ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶デバイス、あるいは、所望の情報を格納するのに使用可能でありコンピュータ１０２がアクセス可能な他の媒体が含まれるが、これらに限定されるものではない。
【００２３】
典型的に通信媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送メカニズムなどの被変調データ信号で具体化するものであって、任意の情報伝達媒体を含む。「被変調データ信号」という用語は、その特徴セットのうち１つまたは複数を有する信号、または信号内の情報を符号化する方法などで変更された信号を意味する。限定的ではなく例示的なものとして例を挙げると、通信媒体には、有線ネットワークまたは直接線接続などの有線媒体と、音響（ａｃｏｕｓｔｉｃ）、ＲＦ、赤外線、および他の無線媒体などの無線媒体とが含まれる。上記いずれかを組み合わせる場合は、コンピュータ読取り可能媒体の範囲内であるものとする。
【００２４】
システムメモリ１０６には、読取り専用メモリ（ＲＯＭ）１１０およびランダムアクセスメモリ（ＲＡＭ）１１２などの、揮発性および／または不揮発性メモリ形態のコンピュータ記憶媒体が含まれる。起動時などにコンピュータ１０２内の要素間で情報を転送するのに役立つ基本ルーチンを含む、基本入出力システム１１４（ＢＩＯＳ）は、典型的にはＲＯＭ  １１０に格納されており、ＲＡＭ  １１２には、典型的には、即時アクセス可能かつ／または現在処理ユニット１０４によって動作中であるファイルおよび／またはプログラムモジュールが含まれる。限定的ではなく例示的なものとして例を挙げると、図１は、オペレーティングシステム１３２、アプリケーションプログラム１３４、他のプログラムモジュール１３６、およびプログラムデータ１３８を例示している。さらにコンピュータ１０２は、以下で述べるように、システム１０２のファイル形式を定義し、バージョン固有プロパティ形式を定義する、ファイルシステムを備える。
【００２５】
コンピュータ１０２は、他の取外し可能／取外し不能、揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。例示的な目的でのみ例を挙げると、図１には、取外し不能、不揮発性磁気媒体との間で読取り／書込みを行うハードディスクドライブ１１６、取外し可能、不揮発性磁気ディスク１２０との間で読取り／書込みを行う磁気ディスクドライブ１１８、およびＣＤ  ＲＯＭまたは他の光学式媒体などの取外し可能、不揮発性光ディスク１２４との間で読取り／書込みを行う光ディスクドライブ１２２が例示されている。例示的な動作環境において使用できる他の取外し可能／取外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル汎用ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ１１６は、典型的にはインターフェース１２６などの取外し不能メモリインターフェースを介してシステムバス１０８に接続され、磁気ディスクドライブ１１８および光ディスクドライブ１２２は、典型的には、それぞれインターフェース１２８および１３０などのメモリインターフェースによって、システムバス１０８に接続される。
【００２６】
以上で説明し図１に例示したドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ１０２に関するコンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータを格納するものである。たとえば図１では、ハードディスクドライブ１１６は、オペレーティングシステム１３２、アプリケーションプログラム１３４、他のプログラムモジュール１３６、およびプログラムデータ１３８を格納するものとして示されている。
【００２７】
ユーザは、キーボード１４０および、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１４２などの入力デバイスを介して、コンピュータ１０２にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。これらおよび他の入力デバイスは、システムバス１０８に結合された入力インターフェース１４８を介して、処理ユニット１０４に接続されることが多い。モニタ１５０または他の種類のディスプレイデバイスも、ビデオアダプタ１５２を介してシステムバス１０８に接続することができる。コンピュータは、モニタに加え、図示されていないスピーカおよびプリンタなどの他の周辺出力デバイスを含むこともできる。
【００２８】
コンピュータ１０８は、リモートコンピュータ１５４などの１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境において動作可能である。リモートコンピュータ１５４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードであってよく、典型的には、コンピュータ１０２に関して上記で述べた多くのまたはすべての要素を含む。
【００２９】
ＬＡＮネットワーク環境において使用される場合、コンピュータ１０２はネットワークインターフェースまたはアダプタ１６２を介してＬＡＮに接続される。ＷＡＮネットワーク環境において使用される場合、コンピュータ１０２は典型的には、モデム１６４または、インターネットなどのＷＡＮを介して通信を確立するための他の手段が含まれる。モデム１６４は内蔵でも外付けでもよく、ユーザ入力インターフェース１４８または他の適切なメカニズムを介して、システムバス１０８に接続することができる。ネットワーク環境では、コンピュータ１０２に関連して描かれているプログラムモジュールまたはその一部を、リモートのメモリ記憶デバイスに格納することができる。図示されたネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段も使用できることを理解されよう。
【００３０】
図２は、本発明が実施可能なソフトウェア動作環境２００の一例を示す図である。ソフトウェア動作環境２００は、好適な動作環境の一例を示したものにすぎず、本発明の使用または機能性の範囲を限定する意図はない。ソフトウェア環境２００は、データオブジェクト２０４、２０６、２０８、および２１０などのデータオブジェクトの形式および構造を定義する、ＸＭＬ  ストア２０２を有する。通常、ＸＭＬ  ストア２０２は、オブジェクトの命名、格納、および組織化が行われる構造全体も提供する。さらにこのストアは、ストア２０２内にある任意のオブジェクトにアクセスするためのプロトコルを提供する。ＸＭＬストアに関連して図示されているが、他のデータオブジェクトの構成またはコレクションは、本発明の態様を組み込むことができる。データオブジェクト２０４、２０６、２０８、および２１０は、実際のファイルタイプデータを表すＸＭＬデータオブジェクトである。データオブジェクト２０４、２０６、２０８、および２１０は、ユーザまたは他のプログラムモジュールによってアクセスおよび／または修正が可能である。もちろん、ＸＭＬストア２０２は、省略記号２２３および２２５で示されるように、多くの他のオブジェクトを含むことができる。
【００３１】
典型的には、各データオブジェクト２０４、２０６、２０８、および２１０は、各オブジェクトに関連する何らかの形のメタ情報オブジェクト（図示せず）を有し、メタ情報は、オブジェクトの作者、オブジェクトが最後にアクセスされた時間、などのような情報を含む。このメタ情報は、データオブジェクトの一部として、あるいはポインタまたはメタ情報オブジェクトをその特定のデータオブジェクトに関連付ける何らかの他の識別要素を有する他のオブジェクトの一部として、格納することができる。
【００３２】
メタ情報オブジェクトに加え、データオブジェクトを、オブジェクト２２０および２２２などのバージョン固有プロパティオブジェクトに関連付けることもできる。バージョン固有プロパティ２２０および２２２は、それぞれデータオブジェクト２０８および２１０に関連する。バージョン固有プロパティ２２０および２２２はバージョン固有情報を備えており、それぞれオブジェクト２０８および２１０に関して発生する他のイベントによって無効化することができる。
【００３３】
図２に示されたソフトウェア環境２００は、ＸＭＬストア２０２とアプリケーション２２４および２２６などのアプリケーションプログラムとの対話も図示している。一実施形態では、アプリケーションプログラム２２６は、ＸＭＬストア２０２のロケーションであるサーバシステムとは別のクライアントシステム上で動作するクライアントアプリケーションプログラムである。他の実施形態では、アプリケーションプログラム、すなわちプログラム２２４が実際にはサーバシステムの一部である場合がある。アプリケーション２２４および２２６は、それぞれアプリケーションプログラムインターフェース２２８および２３０を介して、ＸＭＬストア２０２と対話する。さらに、アプリケーションインターフェース２３０は、実際には事前に定義されたプロトコルに従って、インターネット２３２などの複雑なネットワークを介してＸＭＬストア２０２と通信することができる。本発明では、アプリケーション２２４および２２６などのアプリケーションまたはプログラムモジュールが、オブジェクト２０４、２０６、２０８、および２１０などのデータオブジェクトにアクセスするために、何らかの形でＸＭＬストア２０２と対話することが重要であり、アクセスにはオブジェクトの移動、コピー、削除、読取り、実行、または更新などが含まれる。
【００３４】
アプリケーションプログラム２２４および２２６は、アプリケーションモジュールの層、すなわちサービス層２３６を介して、オブジェクト２０４、２０６、２０８、および２１０にアクセスすることができる。サービス層２３６は、オブジェクトアクセス要求が既存のオブジェクトに関するものであること、要求を作成しているモジュールが要求の作成および実行の許可を得ているかどうかなど、様々な機能を提供することができる。この対話層２３６は、アプリケーションプログラムインターフェース２２８、２３０が可能であるのに加え、クライアントまたはサーバのコンピュータシステムの一部であってよいオペレーティングシステムインターフェース（図示せず）でも可能である。
【００３５】
本発明の一実施形態では、バージョン固有プロパティ２２０および２２２に関して、アプリケーションプログラム２２４および２２６が、それぞれオブジェクト２０８および２１０に関するバージョン固有プロパティ２２０および２２２を作成および使用することができる。あるいは、サービス層２３６がバージョン固有プロパティを作成および使用することができる。バージョン固有プロパティがいったん作成されると、他のアプリケーションはこのプロパティにアクセスし、バージョン固有プロパティ２２０または２２２の評価に基づいてオブジェクトに関する動作の実行を決定することができる。さらに、他方のアプリケーションは、アプリケーションが有効なバージョン固有プロパティの有無をテストすると異なる結果を生じさせるようなバージョン固有プロパティを無効化できる、データオブジェクトに関する動作を実行することができる。
【００３６】
特定の例では、サービス層２３６は、オブジェクト、たとえばオブジェクト２０４、２０６、２０８、または２１０に任意の他のアプリケーションまたはモジュールがアクセスするたびに、ウィルスのスキャン機能およびクリーニング機能を実行するウィルススキャン機能を提供する。この例をさらに拡大すると、アプリケーションプログラム２２４は、ワードプロセッシングアプリケーションであってよく、オブジェクト２０４、２０６、２０８、および２１０は、特定のテキスト構成要素を有するＸＭＬオブジェクトなどのワードプロセッシングタイプオブジェクトである。このような場合、ウィルススキャンプログラムモジュールは、サービス層２３６の一部として、実際にワードプロセッシングアプリケーション２２４がアクセスを要求するオブジェクトのスキャンに使用することができる。この例でウィルススキャナは、ウィルスがスキャンされたオブジェクトのプロパティ２２０および２２２などの、バージョン固有プロパティを作成することができる。したがって、アプリケーション２２４が次にオブジェクト２０８および２１０のうち１つに対して要求を作成した場合、ウィルススキャンアプリケーションは、他のスキャンオペレーションが必要であるかどうかを判定するために、プロパティ２２０および２２２などの有効なバージョン固有プロパティの有無を識別するだけである。有効なバージョン固有プロパティが識別された場合、この特定例ではスキャンは不要である。これに対して、オブジェクト２０４または２０６にアクセスした際などにバージョン固有プロパティが識別されなかった場合、ウィルススキャンアプリケーションは、これらのオブジェクトがスキャンされていないか、またはスキャンされてから修正されていると認識する。
【００３７】
さらにウィルススキャンの例を見ていくと、ウィルススキャンアプリケーションがサービス層２３６の一部として、オブジェクト２０４または２０６のうち１つをスキャンすると想定した場合、新しいバージョン固有プロパティ（図示せず）が作成され、スキャン済みのオブジェクトに関連する。その後、新しく作成されたプロパティ（図示せず）がオブジェクトと共に格納されるため、このプロパティを将来のアクセス要求に利用することができる。
【００３８】
他の実施形態では、バージョン固有プロパティを、他のアプリケーションがアクセスおよび評価できるデジタル署名を利用して符号化することができる。その後このデジタル署名を調べて、ファイルが有効なコピーであるかどうかを判定することができる。このような場合、ファイルが他のアプリケーションによって勝手に変更されている、すなわち破損していると、デジタル署名は無効となる。無効化されたデジタル署名は、署名が存在しなかったものとして処理されるため、データオブジェクトを無効として処理することができる。
【００３９】
バージョン固有属性は、属性またはデータオブジェクトへの無許可のアクセスを防ぐためにさらに他のセキュリティ情報を含むことができる。サービス層２３６はこの情報を、プロパティをロックしてウィルスアプリケーションなどの不適切なアプリケーションが使用できないようにする手段として使用する。サービス層は、有効なアプリケーションのみがプロパティまたはデータオブジェクトそれ自体にアクセスすることを保証する目的で、アクセスごとにバージョン固有プロパティを評価するように構成することができる。
【００４０】
本発明を組み込んだオブジェクトのコレクション３００が図３に示されている。コレクション３００は、実際のオブジェクト情報に関するデータオブジェクト３０２を有する。さらにコレクション３００は、この特定の例では、時間やオブジェクトサイズなどの何らかの標準プロパティを含む一般情報を含んでいる、メタ情報オブジェクト３０４を有する。他の実施形態では、メタ情報オブジェクト３０４は標準プロパティを含まず、その代わりに標準プロパティは他のオブジェクト（図示せず）に格納される場合がある。
【００４１】
コレクション３００は、図３に示されるようにバージョン固有プロパティ３０６も有する。バージョン固有プロパティ３０６には、３タイプの情報が含まれる。その１つがメタ情報セクション３０８であり、これは典型的には、プロパティの作成に使用される第三者アプリケーションの名前などのプロパティの名前、その他、プロパティの長さ、そのディスク上のアドレス位置などの情報を有する。
【００４２】
バージョン固有プロパティ３０６には、バージョン情報セクション３１０も含まれる。バージョン情報セクション３１０には、プロパティの作成に使用された第三者アプリケーションのバージョンなど、バージョン固有プロパティ３０６の作成に使用された最も新しい特定アプリケーションのバージョンに関する情報が含まれる。すなわち、こうしたバージョン情報は、プロパティを評価しているプログラムモジュールと関連させることができるため、このタイプの情報専用にセクションが割り当てられる。
【００４３】
バージョン固有プロパティ３０６には、関連する更新に関する情報をサーバシステムに提供する際に使用される、マスク情報セクション３１２も含まれる。マスク情報セクション３１２は、本来、どのプロトコルまたはポリシーのイベントがバージョン固有プロパティ３０６を無効化できるかまたはできないかを、他のアプリケーションまたはサーバシステムに指示するものである。
【００４４】
特定の実施形態では、バージョン固有プロパティ３０６がウィルススキャンアプリケーションによって作成されると、メタ情報セクション３０８は、バージョン固有プロパティ３０６の作成に使用されたウィルススキャンアプリケーションの名前を保持することができる。さらにバージョン情報セクション３１０には、バージョン固有プロパティ３０６が作成された時に使用された特定のウィルス定義ファイルに関連する情報が含められることになる。ウィルススキャンアプリケーションは最近検出されたウィルスを含めるために頻繁に更新されるので、この特定の場合では、バージョン情報が重要である。したがって、ウィルススキャンアプリケーションは、オブジェクトが以前にスキャンされたことがあるかどうかを判定するだけでなく、更新済みのウィルス定義ファイルを使用してスキャンされたかどうかも判定しなければならない。
【００４５】
マスク情報セクション３１２に関して、ウィルススキャンアプリケーションがバージョン固有プロパティ３０６を作成すると、マスク情報セクション３１２にはバージョン固有プロパティ３０６の無効化を発生させるような特定のイベントが含められる可能性があり、このイベントはウィルススキャンアプリケーションに一意的に直接関係する場合がある。この特定の場合では、プロパティ３０６の無効化を発生させることのあるこのようなイベントに、新しいデータの追加またはデータの消去のいずれかによるデータオブジェクト３０２の修正が含まれる。他の実施形態では、他の所定のイベントが、データオブジェクト３０２などに関連する他のプロパティの修正などの、バージョン固有プロパティの無効化を発生させることがある。
【００４６】
この特定の例では、具体的にはマスク情報セクション３１２に含めることができないためにバージョン固有プロパティが無効化されることのない所定のイベントに、読取り専用アクセスイベント、オブジェクト名の変更、またはオブジェクトのコレクション３００のバックアップを含めることができる。実際には、イベントがバージョン固有プロパティを無効化しなければ、オブジェクト名が変更されたような場合でもそのプロパティはオブジェクト３０２に関連するままとなる。
【００４７】
バージョン固有プロパティ３０６は、第三者アプリケーション、たとえば特定オブジェクトストアとは別のアプリケーションによって作成される。バージョン固有プロパティを作成する場合、第三者アプリケーションは、名前、バージョン、およびマスクの情報を、ＸＭＬオブジェクトが格納されるサーバシステムに提供する。次いでサーバシステムがプロパティを作成し、これを特定データオブジェクトに関連付ける。別法として、バージョン固有プロパティを作成し、これがデータオブジェクト３０２と関連付けられている間はリモートコンピュータシステム上に格納することもできる。
【００４８】
本発明の一実施形態では、バージョン固有プロパティはＷｅｂＤＡＶ、すなわちＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ａｕｔｈｏｒｉｎｇ  ａｎｄ  Ｖｅｒｓｉｏｎｉｎｇ  ｐｒｏｔｏｃｏｌ（ＤＡＶ）の一部としての、ＨＴＴＰの拡張である。本来、バージョン固有プロパティは新しいタイプのＤＡＶプロパティであって、自由度のライブ／デッド（ｌｉｖｅ／ｄｅａｄ）が他のＤＡＶプロパティと同じであり、すなわちライブプロパティはサーバ側で管理され、デッドプロパティはクライアント側で管理される。ＤＡＶで新しいバージョン固有プロパティを定義するには、表１〜表４に示されたドキュメントタイプ定義（ＤＴＤ）を実施することができる。これらのサンプルは、もちろん概略として作成されたものである。
【００４９】
【表１】
0004416366.tif 000002
【００５０】
【表２】
0004416366.tif 000003
【００５１】
【表３】
0004416366.tif 000004
【００５２】
【表４】
0004416366.tif 000005
【００５３】
実際にバージョン固有プロパティを作成するために、第三者プロパティは、ＰＲＯＰＰＡＴＣＨ、ＰＵＴなどの標準ＤＡＶメカニズムを使用する。これらのメカニズムについては、付録Ａで詳細に説明する。代替実施形態では、これらのバージョン固有プロパティは、他の方法を使用して作成される。
【００５４】
コレクション３００はバージョン固有プロパティを１つだけ有するように図示および説明されているが、コレクション３００は、他のバージョン固有プロパティも含めて他のプロパティを有することもできる。実際に、いくつかの第三者アプリケーションは、持続状態情報が関連付けられていることを要求することが可能であり、したがってプロパティ３０６などの多数のバージョン固有プロパティを作成し、コレクション３００と共に格納することができる。
【００５５】
以上、例示的な物理環境について論じてきたが、以下のセクションでは、本発明の態様を具体化する動作モジュールについて説明する。本発明の様々な実施形態の論理的動作は、（１）コンピューティングシステム上で実行中のコンピュータが実施する一連のステップまたはプログラムモジュールとして、および／または（２）コンピューティングシステム内で相互接続されたハードウェアモジュールまたは論理モジュールとして実施される。この実施は、本発明を実施するコンピューティングシステムの性能要件に依存する選択の問題である。したがって、本明細書に記載された本発明の実施形態を構成している論理動作は、動作、ステップ、またはモジュールと呼ばれることもある。
【００５６】
図４は、本発明の態様に従ったオブジェクトへのアクセスに関連する動作特性を示す流れ図である。流れ４００が開始される前に、図２に示されたオブジェクト２０４、２０６、２０８、または２１０などのオブジェクトが、ストア２０２（図２）などのＸＭＬストア内に存在する。本発明の一実施形態では、いったんオブジェクトが作成されると、そのオブジェクトにアクセスしようと試みると、図４に関して図示および説明した流れ４００が開始される。実際には、プロセス４００はアクセス試行４０２で開始されるが、このアクセス試行４０２は、任意のオブジェクトの読取り、実行、または更新に関するものである。アクセス試行は、アプリケーション２２４（図２）などの第三者アプリケーションによって、またはサービス層２３６（図２）によって実行することができる。
【００５７】
アクセス試行４０２に続き、決定行為４０４で、アクセスが無効化アクセスであるかどうかを判定する。アクセスが無効化アクセスであるか否かの判定には、複数の特定オブジェクトにアクセスしていると想定した、各バージョン固有プロパティ内にあるマスク情報の評価が含まれる。マスク情報を評価することにより、そのオブジェクトへのどのタイプのアクセスが、特定のバージョン固有プロパティを無効化するように要求しているのかがわかる。したがって、マスク情報と実際のアクセス試行とを比較することにより、バージョン固有プロパティを無効化すべきかどうかがわかる。決定行為４０４でこのような関係する更新アクセス試行が識別されると、流れはＹＥＳの無効化動作４０６へと進む。
【００５８】
本発明の一実施形態では、バージョン固有プロパティはウィルススキャンアプリケーションによって作成および使用される。このような状況では、決定行為４０４により、アクセス試行が関係する更新アクセスであるかどうかが、ウィルススキャンアプリケーションが設定した基準に基づいて判定される。すなわち、ウィルススキャンアプリケーションは、アクセス試行が、古いデータを変更するかまたは新しいデータを追加することによって実際のオブジェクトデータを修正するかどうかなど、関係する更新アクセスとは何であるかを事前に決定している。たとえば、特定のウィルススキャンアプリケーションは、新しいデータの作成を含み、オブジェクト内のデータにどんな変更が行われる場合でも必ずそのバージョン固有プロパティが無効化されるのを希望することができる。変更が、バージョン固有プロパティまたは他のオブジェクトのメタデータまたはメタ情報にだけ関係する場合には、無効化は発生しない。
【００５９】
代替実施形態では、レプリケータアプリケーションがバージョン固有プロパティを作成しこれを使用することができる。このような場合、レプリケータアプリケーションは、オブジェクトのデータまたはメタデータのいずれかにどんな変更が行われる場合でも必ず、そのバージョン固有プロパティが無効化されるのを希望することができる。これら特定のバージョン固有プロパティは、このクラスのバージョン固有プロパティだけに影響を与えるのではないような変更が行われると、必ず無効化される。この場合、特定のクラスを定義することにより、複数のレプリケータが存在することでオブジェクトが何度も反復されるのを防いでおり、１つのレプリケータアプリケーションによる反復インスタンスは、それぞれ、第２のレプリケータアプリケーションによる反復の必要に応じて生じることになる。
【００６０】
無効化動作４０６は、バージョン固有プロパティを無効化する。バージョン固有プロパティの無効化は、一実施形態では、そのバージョン固有プロパティの削除または切り捨てによって達成することができる。あるいは、無効化動作４０６がバージョン固有プロパティにマークを付けるか、そうでなければプロパティが無効である旨の表示を与える。本来、プロパティを無効化する行為は、バージョン固有プロパティに依拠したアプリケーションが、バージョン固有プロパティが無効化されていることを、その内容を空の文字列に設定することなどによって認識できるようにするものでなければならない。バージョン固有プロパティを無効化する他の方法には、無効化アクセスまたはバージョン固有プロパティへの情報の追加、あるいはその中に含まれる情報の修正も含むことができる。無効化行為４０６は、オブジェクトへの最後のアクセスまたは書込みに関するプロパティなどの、他のプロパティは変更しない。
【００６１】
データオブジェクトが複数の関連するバージョン固有プロパティを有する場合、動作４０４および４０６は、それぞれのバージョン固有プロパティについて繰返し行われる。
【００６２】
無効化行為４０６に続き、アクセス実行動作４０８が、オブジェクトに対して要求されたアクセスを実行する。オブジェクトに対するアクセスを実行する行為は、バージョン固有プロパティが無効化された後に開始することが重要である。そうでないと、バージョン固有プロパティが信頼できなくなる可能性がある。アクセス実行動作４０８に続き、流れ４００は終了動作４１０で終了する。
【００６３】
決定行為４０４で、アクセス試行が無効化アクセスに関連していないと判定されると、流れはＮＯの決定動作４１２に進む。決定動作４１２では、アクセスがバージョン固有プロパティに依存しているかどうか、たとえば、アクセス試行が、動作を実行する際にバージョン固有プロパティを使用しているアプリケーションによるアクセス試行であるかどうかを判定する。たとえば、バージョン固有プロパティを使用するウィルススキャンアプリケーションはアクセス試行を生成することが可能であり、その場合決定動作４１２は、そのアクセス試行がバージョン固有プロパティを使用するかかるアプリケーションによって生成されたものであるかどうかを判定する。
【００６４】
アクセス試行が、バージョン固有プロパティに依拠するアプリケーションによって実行されたものでない場合、流れはＮＯのアクセス実行動作４０８に進む。アクセス実行動作４０８は、最初に要求されたアクセス動作を実行する。決定動作４１２に続いてアクセス実行動作４０８が行われる場合、アクセス動作は、決定行為４０４が判定したような無効化を要求する動作には関連していない。たとえば、このアクセス試行は、ユーザが実際のデータを修正できない読取り動作に関連していることがある。アクセス実行動作４０８に続き、プロセス流れは前述のように４１０で終了する。
【００６５】
決定動作４１２は、アクセスがバージョン固有プロパティに依存していると判定した場合、流れはＹＥＳの決定行為４１４に進む。決定行為４１４は、バージョン固有プロパティが有効であるかどうかを判定するために、これを分析する。プロパティが有効であるかどうかの判定には、プロパティが有効であるかどうかの他の判定方法の中から、プロパティが存在するかどうか、これが無効としてマークされているかどうか、または情報がすべて利用できないように切り捨てられているかどうかが含まれる。決定行為４１４によって、プロパティが有効でないと判定されると、流れはＮＯの無効プロパティに関するアクセス実行行為４１６に進む。
【００６６】
実行行為４１６では、アクセスが無効であるという判定に基づいて、所定の機能が実行される。一実施形態では、アクセス試行がウィルススキャンアプリケーションによって生成されたものである場合、実行動作４１６は、かかるウィルススキャン機能をオブジェクト上で実行することに関する。
【００６７】
無効プロパティに関する動作実行４１６に続き、バージョン固有プロパティ作成行為４１８では、そのオブジェクトに関してバージョン固有プロパティを作成または有効化する。バージョン固有プロパティの有効化には、そのオブジェクトのバージョン固有プロパティを作成すること、または既存のバージョン固有プロパティに情報を追加することが含まれる。他の実施形態では、プロパティが有効であるという表示を与えることによって、後にプロパティが有効であることがわかる限りは、他の方法でプロパティを有効化することができる。バージョン固有プロパティ有効化行為４１８に続き、プロセス４００は終了動作４１０で終了する。
【００６８】
決定行為４１４で、バージョン固有プロパティが有効であると判定された場合、流れはＹＥＳの実行動作４２０に進む。実行動作４２０は、バージョン固有プロパティが有効であるという判定に関する任意の行為を実行することに関する。バージョン固有プロパティを使用する特定のアプリケーションによって、実行動作４２０には異なるタイプの動作が含まれることがある。一例では、プロパティが有効であると判定された場合、ウィルススキャン状況などでは何の動作も実行されない。このような場合、決定行為４１４でバージョン固有プロパティが有効であると判定されると、オブジェクトは以前にスキャンされているため他のスキャンは不要である。したがって、そのオブジェクトについては何の動作も実行されず、動作４２０は終了動作４１０に制御を渡すだけである。他の実施形態では、バージョン固有プロパティが有効であると判定されると、４２０で動作が実行開始される場合がある。
【００６９】
【発明の効果】
前述のシステムおよび方法は、バージョン情報が別のログまたはデータベースファイルに常駐しているのではなく、オブジェクトまたはオブジェクトコレクションの一部であるため、バージョン情報をプログラムモジュールまたはアプリケーションに提供するという従来の方法に比べて、かなり有利である。アクセス側のアプリケーションは、利用不能、破損、その他管理不能になる可能性がある、外付けタイプのファイルにアクセスする必要がない。
さらに、電源が切断されてもプロパティは失われず、プロパティは、インメモリ情報ログの場合のように、大量の動作メモリを消費せずに済む。
さらに、プロセスは自動的に更新され、すなわち、関連するイベントが発生したときにはバージョン固有情報が無効化される。
さらに、プロセスは自動的に更新され、すなわち、関連するイベントまたは更新が発生したときにはバージョン固有情報が無効化される。バージョン固有情報を自動的に無効化することにより、関連する関係する更新は見逃されることがなく、不要な行為は実行されない確率が高くなる。
たとえば、ウィルススキャンの実施に関して言えば、従来技術の方法では、バックアップ機能および／またはコピー機能の後ではこのようなバージョン情報は保持されなかったため、追加の処理ステップが実行されていたが、バージョン情報はバックアップ機能やコピー機能では無効化されなくなっているため、将来アクセスしたときにウィルススキャンが不要である。
【００７０】
前述のように、本明細書に記載した本発明は、コンピュータプロセス、コンピューティングシステム、またはコンピュータプログラム製品などの製造物として実施することができる。コンピュータプログラム製品は、コンピュータシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、コンピュータ記憶媒体であってよい。さらにコンピュータプログラム製品は、コンピューティングシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、搬送波上の伝播信号であってもよい。
【００７１】
さらに、本発明は構造上の特徴および／または方法論的ステップに固有の言語で記述されているが、添付の特許請求の範囲で定義された本発明は、記載されている特定の特徴またはステップに限定されるものではないことを理解されたい。一例として、他のアプリケーションでは、ウィルススキャンアプリケーションおよびレプリケータの他にも、バージョン固有プロパティを利用することができる。さらに、ＸＭＬオブジェクトストア以外の他のタイプのオブジェクトおよびオブジェクトストアも、本発明の原理から恩恵を受けることができる。したがって、特定の特徴およびステップは、記載された本発明を実施する好ましい形態として開示されたものである。
【図面の簡単な説明】
【図１】本発明の態様を組み込むことのできるコンピュータシステムの機能図である。
【図２】本発明のソフトウェア構成要素を示す構成図である。
【図３】本発明によるリソースの構成要素を示す機能図である。
【図４】本発明の一実施形態の機能的な特徴を示す流れ図である。
【符号の説明】
１００  コンピューティングシステム環境
１０２  コンピュータ
１０４  処理ユニット
１０６  システムメモリ
１０８  システムバス
１１０  ＲＯＭ
１１２  ＲＡＭ
１１４  ＢＩＯＳ
１１６  ハードディスクドライブ
１１８  磁気ディスクドライブ
１２０  磁気ディスク
１２２  光ディスクドライブ
１２４  光ディスク
１２６  ハードディスクドライブインターフェース
１２８  磁気ディスクドライブインターフェース
１３０  光ドライブインターフェース
１３２  オペレーティングシステム
１３４  アプリケーションプログラム
１３６  プログラムモジュール
１３８  プログラムデータ
１４０  キーボード
１４２  ポインティングデバイス
１４８  ユーザ入力インターフェース
１５０  モニタ
１５２  ビデオアダプタ
１５４  リモートコンピュータ
１６２  ネットワークインターフェース
１６４  モデム
【図１】
0004416366.tif 000006
【図２】
0004416366.tif 000007
【図３】
0004416366.tif 000008
【図４】
0004416366.tif 000009