JP4416366B2 - 分散型環境においてバージョン固有プロパティを作成し維持するための方法、および、システム - Google Patents

分散型環境においてバージョン固有プロパティを作成し維持するための方法、および、システム Download PDF

Info

Publication number
JP4416366B2
JP4416366B2 JP2001398350A JP2001398350A JP4416366B2 JP 4416366 B2 JP4416366 B2 JP 4416366B2 JP 2001398350 A JP2001398350 A JP 2001398350A JP 2001398350 A JP2001398350 A JP 2001398350A JP 4416366 B2 JP4416366 B2 JP 4416366B2
Authority
JP
Japan
Prior art keywords
version
information
specific
access
specific property
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
Application number
JP2001398350A
Other languages
English (en)
Other versions
JP2002229834A (ja
JP2002229834A5 (ja
Inventor
エス.ゴールディック ジョナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002229834A publication Critical patent/JP2002229834A/ja
Publication of JP2002229834A5 publication Critical patent/JP2002229834A5/ja
Application granted granted Critical
Publication of JP4416366B2 publication Critical patent/JP4416366B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/955Object-oriented
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般に分散コンピューティング環境に関し、より詳細には、特定のシステムにおいて各オブジェクトの一部として格納されたオブジェクトプロパティのフォーマットおよび管理に関する。さらに詳細には、本発明は、第三者のアプリケーションに状況情報を提供するためのオブジェクトプロパティの使用に関する。
【0002】
【従来の技術】
インターネットなどの分散型環境では、通常、コンピュータ情報は「リソース」または「オブジェクト」と呼ばれる単位で格納される。リソースとは、Uniform Resource Locator(URL)またはUniformResource Identifier(URI)を介してWeb上でアクセスできる、任意のエンティティであってよい。リソースメンバのグループを集めたものが、「コレクション」と呼ばれる。リソースをグループにまとめることの利点は、いったんリソースグループがまとまると、非分散型環境にあるコンピュータファイルと同じ方法で処理することが可能であるという事実に関するものであり、この場合、ファイルとリソースコレクションはどちらもそれぞれがデータおよびメタデータを有する。データとは、オブジェクトまたはリソースいずれかに関する実際の目的データであり、メタデータとは、ファイルまたはリソースの内容を表す情報であって、データの場合もある。
【0003】
インターネットおよび他の分散型環境が広く普及するに従って、クライアントシステムがサーバシステムやサーバシステム上のリソースと対話する際にクライアントシステムが使用する代表的な機能にも改良が重ねられてきた。たとえば、Hypertext Transfer Protocol(HTTP)バージョン1.1などの過去のプロトコルは、サーバ側のアプリケーションやドキュメントに情報を「入れる(put)」機能であった。クライアントは、ヘッダに「PUT」コマンドを組み込んだ特定のHypertext Markup Language(HTML)要求を使用する。次いでサーバがこのヘッダ情報を解釈してコマンドを実行する、というものであった。
【0004】
最近の開発により、分散型ネットワークを介してクライアントシステムからサーバシステム上にあるリソースをオーサリングする概念が増加してきた。この顕著な例の1つが、World Wide Web Distributed Authoring and Versioning標準の略であるWebDAV標準の開発に関するものであり、以下、本明細書では簡単に「DAV」という。DAVはヘッダとメソッドのセットを提供するものであり、上書き禁止(ロック)、プロパティ、およびネームスペース管理のための機能が提供できるようにHTTPが拡張されている。IETFが作成し、IESGによって提唱標準(proposed standard)RFC 2518として承認された文書が、1999年2月に出版されており、DAVに関してはこの標準でより詳細に説明されている。
【0005】
DAVでは、リソースに関連するプロパティオブジェクトを作成するが、このプロパティは従来のファイルシステムにおいて使用されたファイルのプロパティと同様のものである。プロパティは、リソースの名前、リソースの原作者、リソース(またはリソースコレクション)の最新バージョン番号などの情報を格納することができる。
【0006】
第三者アプリケーションは、サーバ側のリソースシステムと組み合わせることにより、ウィルススキャン機能などの追加のシステム特性または機能を提供する場合が多い。これらの第三者アプリケーションは、実際にそれぞれのリソースのアクセス試行を「傍受」してウィルス対象をスキャンするか、または実際のアクセス操作を行う前に他のテストを実行することができる。しかし、リソースにアクセスするたびにスキャン操作や他のテストを行っていては、膨大な時間がかかってしまう。したがって、各リソースのバージョン情報を格納しておく情報のログを保持することができる。たとえばログは、システム上にあるリソースのリスト、および各リソースがスキャンされたかどうか、さらにスキャンされた場合はどのバージョンのウィルス定義ファイル(virus definition file)が使用されたかについて、保持することができる。ウィルススキャナはこの情報のログを使用して、新規または修正済みのリソース、あるいは古いウィルス定義ファイルでスキャンされたリソースだけをスキャンすることで、処理時間を削減することができる。
【0007】
アクセスの前に必ずあらゆるリソースをスキャンしているシステムは、ログを使用することで大幅に改善されるが、こうしたログの使用によって生じる欠点もある。たとえば、かかる情報ログを保持するためには、かなりのオーバヘッドが必要である。さらに、各項目がスキャンされたかどうかを判定するためにログにアクセスするプロセスでは、ディスク上に別ファイルを配置し、これを調べなければならないため、システム全体の性能が低下する。さらに、リソースがコピーまたはバックアップされるときには情報のログは更新されず、状況によっては不要なスキャン動作を発生させることになる。
【0008】
情報ログを別ファイルとして保持しておくために生じる性能低下の問題を解決する方法の1つが、揮発性メモリ、たとえばRAM内に作成および格納される「インメモリ(in−memory)」ログを保持することである。インメモリログへのアクセスは別ファイルへのそれよりも速いため、上記ログファイルの代わりにインメモリログを使用することで、システムの性能が向上する。ただし、システムのオフ、シャットダウン、リブートなどでシステムの電源が切れると、インメモリログは消去されるか、または失われる。したがって、電源停止後は、状態情報またはバージョン情報が即時に特定できない可能性がある。インメモリログに関連する他の欠点は、かかるログが、システムの使用する操作メモリを大量に消費することである。したがって、インメモリログは、前述の問題に適切な解決策を与えるものではない。
【0009】
【発明が解決しようとする課題】
本発明の一目的は、上記またはその他の考慮すべき点に関する解決策を提供することである。
そこで、本発明の目的は、バージョン固有プロパティまたは分散型環境においてオブジェクトの一部として格納されたプロパティを作成し維持し、プロパティがいつどのようにして作成されたかに関するバージョン固有の情報を格納し、所定の「更新」イベントが発生したときに自動的に無効となる方法およびシステムを提供することにある。
【0010】
【課題を解決するための手段】
本発明は、リソースまたはオブジェクトのコレクション(collection)の一部として格納され、プロパティがいつどのようにして作成されたかに関するバージョン固有の情報を格納し、所定の「更新」イベントが発生したときに自動的に無効となる、バージョン固有の属性またはプロパティを作成および使用することによって、これらの問題を解決する。第三者アプリケーションは、一般に、これらのバージョン固有プロパティを作成し、これにアクセスすることによって、外部のログまたはデータベースを不要とすることができる。
【0011】
本発明の一態様は、コンピュータシステム内に格納されたオブジェクトに関連するバージョン固有の情報をアプリケーションに提供する方法に関する。この方法には、オブジェクトに関連するバージョン固有プロパティを作成すること、所定のアクセス要求に応答してバージョン固有の情報を自動的に無効とすることにより、関連するオブジェクトの更新が常にバージョン固有プロパティに反映されるようにすること、ならびに第三者アプリケーションがバージョン固有プロパティを分析できるようにすることが含まれる。
【0012】
本発明の他の態様によれば、アプリケーションとは、ウィルススキャンアプリケーション、あるいはバックアップまたは性能上の目的でデータオブジェクトの冗長コピーを作成するレプリケータタイプのアプリケーションなどの、第三者アプリケーションである。さらに、本発明のバージョン固有プロパティは、メタ情報、バージョン情報、およびマスク情報を含むことができる。バージョン情報は、オブジェクト自体または固有のプロパティ作成に使用されるアプリケーションのバージョンに関し、マスク情報は、バージョン固有プロパティを無効化できる所定のイベントのポリシーまたは定義に関する。他の実施形態では、さらにバージョン固有プロパティは、プロパティまたはデータオブジェクトへの無許可のアクセスを防止するためか、あるいはデータオブジェクトが破損されているかどうかを判定する場合に他のアプリケーションに検証要素を提供するための、デジタル署名または他のセキュリティ情報を含むことができる。
【0013】
本発明の他の態様によれば、バージョン固有プロパティは、オブジェクト内のデータやオブジェクトに関連するメタデータの修正などの所定のイベントに基づいて、あるいは他のバージョン固有プロパティが変更されるときに、無効化することができる。無効化動作は、バージョン固有プロパティの削除または切り捨て、あるいはバージョン固有プロパティが無効であることを示す他の方法であってよい。
【0014】
他の態様によれば、本発明は、バージョン固有プロパティを有するオブジェクト形式に関する。バージョン固有プロパティにはメタ情報セクションと、プロパティを作成したアプリケーションのバージョンに関する情報を格納するためのバージョン情報セクションと、プロパティの無効化を発生される所定のイベントに関する情報を格納するためのマスク情報セクションとがある。さらに、本発明は、かかるバージョン固有プロパティを作成および保持するためのプロトコルを提供するシステムにも関する。
【0015】
本発明は、コンピュータプロセス、コンピューティングシステム、およびコンピュータプログラム製品などの製造物として実施することができる。コンピュータプログラム製品は、コンピュータシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、コンピュータ記憶媒体であってよい。さらにコンピュータプログラム製品は、コンピューティングシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、搬送波上の伝播信号であってもよい。
【0016】
概略を簡潔に後述した添付の図面、本発明の現在の好ましい実施形態についての以下の詳細な説明、および添付の特許請求の範囲を参照すると、本発明およびその改良点についてより完全に理解することができる。
【0017】
【発明の実施の形態】
本発明は、バージョン固有プロパティ、あるいはデータオブジェクトに関するメタ情報を定義または提供するプロパティを作成する、データオブジェクトモデルに関する。バージョン固有プロパティは、メタ情報識別ポインタを介する場合、あるいはデータオブジェクトそれ自体と常駐させる方法で情報を格納する場合のいずれも、データオブジェクトと関連して格納することが可能であるという点が、他のデータオブジェクトプロパティと同様である。ただし、バージョン固有プロパティは、バージョン固有プロパティを作成したアプリケーションに関するバージョン固有情報を格納する機能を含め、既存のメタ情報プロパティとは比較的異なる特徴を有する。さらにバージョン固有プロパティは、所定のイベントが発生すると同時に自動的に更新される。実際、無効化を発生させるイベントに関する情報も、バージョン固有プロパティの一部として格納される場合がある。
【0018】
図1は、本発明が実施可能な、好適なコンピューティングシステム環境100の一例を示す図である。コンピューティングシステム環境100は、好適なコンピューティング環境の一例にすぎず、本発明の使用範囲または機能性に関して、なんらかの制限を与えることを意図するものではない。さらにコンピューティング環境100は、例示的な動作環境100に例示された任意の1構成要素またはその組合せに関して、なんらかの依存性または要件を有するものでもない。
【0019】
図1に示された環境100に加え、本発明は、数多くの他の汎用または特殊用途向けコンピューティングシステム環境または構成で動作可能である。本発明での使用に好適なよく知られたコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、任意の上記システムまたはデバイスを含む分散型コンピューティング環境などが含まれるが、これらに限定されるものではない。
【0020】
さらに本発明は、コンピュータによって実行されるプログラムモジュールなどの、一般的なコンピュータ実行可能命令の情況で説明することができる。通常、プログラムモジュールには、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれ、これらが特定のタスクを実行するか、または特定の抽象データタイプを実施する。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境において実施することもできる。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含む、ローカルおよびリモートのどちらのコンピュータ記憶媒体にも配置することができる。
【0021】
図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)バスが含まれる。
【0022】
コンピュータ102は、通常、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ102がアクセス可能な任意の使用可能媒体であってよく、揮発性および不揮発性媒体、取外し可能および取外し不能媒体のどちらも含まれる。限定的ではなく例示的なものとして例を挙げると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性および不揮発性、取外し可能および取外し不能のどちらの媒体も含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CDE−ROM、デジタル汎用ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶デバイス、あるいは、所望の情報を格納するのに使用可能でありコンピュータ102がアクセス可能な他の媒体が含まれるが、これらに限定されるものではない。
【0023】
典型的に通信媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送メカニズムなどの被変調データ信号で具体化するものであって、任意の情報伝達媒体を含む。「被変調データ信号」という用語は、その特徴セットのうち1つまたは複数を有する信号、または信号内の情報を符号化する方法などで変更された信号を意味する。限定的ではなく例示的なものとして例を挙げると、通信媒体には、有線ネットワークまたは直接線接続などの有線媒体と、音響(acoustic)、RF、赤外線、および他の無線媒体などの無線媒体とが含まれる。上記いずれかを組み合わせる場合は、コンピュータ読取り可能媒体の範囲内であるものとする。
【0024】
システムメモリ106には、読取り専用メモリ(ROM)110およびランダムアクセスメモリ(RAM)112などの、揮発性および/または不揮発性メモリ形態のコンピュータ記憶媒体が含まれる。起動時などにコンピュータ102内の要素間で情報を転送するのに役立つ基本ルーチンを含む、基本入出力システム114(BIOS)は、典型的にはROM 110に格納されており、RAM 112には、典型的には、即時アクセス可能かつ/または現在処理ユニット104によって動作中であるファイルおよび/またはプログラムモジュールが含まれる。限定的ではなく例示的なものとして例を挙げると、図1は、オペレーティングシステム132、アプリケーションプログラム134、他のプログラムモジュール136、およびプログラムデータ138を例示している。さらにコンピュータ102は、以下で述べるように、システム102のファイル形式を定義し、バージョン固有プロパティ形式を定義する、ファイルシステムを備える。
【0025】
コンピュータ102は、他の取外し可能/取外し不能、揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。例示的な目的でのみ例を挙げると、図1には、取外し不能、不揮発性磁気媒体との間で読取り/書込みを行うハードディスクドライブ116、取外し可能、不揮発性磁気ディスク120との間で読取り/書込みを行う磁気ディスクドライブ118、およびCD ROMまたは他の光学式媒体などの取外し可能、不揮発性光ディスク124との間で読取り/書込みを行う光ディスクドライブ122が例示されている。例示的な動作環境において使用できる他の取外し可能/取外し不能、揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル汎用ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ116は、典型的にはインターフェース126などの取外し不能メモリインターフェースを介してシステムバス108に接続され、磁気ディスクドライブ118および光ディスクドライブ122は、典型的には、それぞれインターフェース128および130などのメモリインターフェースによって、システムバス108に接続される。
【0026】
以上で説明し図1に例示したドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ102に関するコンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータを格納するものである。たとえば図1では、ハードディスクドライブ116は、オペレーティングシステム132、アプリケーションプログラム134、他のプログラムモジュール136、およびプログラムデータ138を格納するものとして示されている。
【0027】
ユーザは、キーボード140および、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス142などの入力デバイスを介して、コンピュータ102にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。これらおよび他の入力デバイスは、システムバス108に結合された入力インターフェース148を介して、処理ユニット104に接続されることが多い。モニタ150または他の種類のディスプレイデバイスも、ビデオアダプタ152を介してシステムバス108に接続することができる。コンピュータは、モニタに加え、図示されていないスピーカおよびプリンタなどの他の周辺出力デバイスを含むこともできる。
【0028】
コンピュータ108は、リモートコンピュータ154などの1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境において動作可能である。リモートコンピュータ154は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードであってよく、典型的には、コンピュータ102に関して上記で述べた多くのまたはすべての要素を含む。
【0029】
LANネットワーク環境において使用される場合、コンピュータ102はネットワークインターフェースまたはアダプタ162を介してLANに接続される。WANネットワーク環境において使用される場合、コンピュータ102は典型的には、モデム164または、インターネットなどのWANを介して通信を確立するための他の手段が含まれる。モデム164は内蔵でも外付けでもよく、ユーザ入力インターフェース148または他の適切なメカニズムを介して、システムバス108に接続することができる。ネットワーク環境では、コンピュータ102に関連して描かれているプログラムモジュールまたはその一部を、リモートのメモリ記憶デバイスに格納することができる。図示されたネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段も使用できることを理解されよう。
【0030】
図2は、本発明が実施可能なソフトウェア動作環境200の一例を示す図である。ソフトウェア動作環境200は、好適な動作環境の一例を示したものにすぎず、本発明の使用または機能性の範囲を限定する意図はない。ソフトウェア環境200は、データオブジェクト204、206、208、および210などのデータオブジェクトの形式および構造を定義する、XML ストア202を有する。通常、XML ストア202は、オブジェクトの命名、格納、および組織化が行われる構造全体も提供する。さらにこのストアは、ストア202内にある任意のオブジェクトにアクセスするためのプロトコルを提供する。XMLストアに関連して図示されているが、他のデータオブジェクトの構成またはコレクションは、本発明の態様を組み込むことができる。データオブジェクト204、206、208、および210は、実際のファイルタイプデータを表すXMLデータオブジェクトである。データオブジェクト204、206、208、および210は、ユーザまたは他のプログラムモジュールによってアクセスおよび/または修正が可能である。もちろん、XMLストア202は、省略記号223および225で示されるように、多くの他のオブジェクトを含むことができる。
【0031】
典型的には、各データオブジェクト204、206、208、および210は、各オブジェクトに関連する何らかの形のメタ情報オブジェクト(図示せず)を有し、メタ情報は、オブジェクトの作者、オブジェクトが最後にアクセスされた時間、などのような情報を含む。このメタ情報は、データオブジェクトの一部として、あるいはポインタまたはメタ情報オブジェクトをその特定のデータオブジェクトに関連付ける何らかの他の識別要素を有する他のオブジェクトの一部として、格納することができる。
【0032】
メタ情報オブジェクトに加え、データオブジェクトを、オブジェクト220および222などのバージョン固有プロパティオブジェクトに関連付けることもできる。バージョン固有プロパティ220および222は、それぞれデータオブジェクト208および210に関連する。バージョン固有プロパティ220および222はバージョン固有情報を備えており、それぞれオブジェクト208および210に関して発生する他のイベントによって無効化することができる。
【0033】
図2に示されたソフトウェア環境200は、XMLストア202とアプリケーション224および226などのアプリケーションプログラムとの対話も図示している。一実施形態では、アプリケーションプログラム226は、XMLストア202のロケーションであるサーバシステムとは別のクライアントシステム上で動作するクライアントアプリケーションプログラムである。他の実施形態では、アプリケーションプログラム、すなわちプログラム224が実際にはサーバシステムの一部である場合がある。アプリケーション224および226は、それぞれアプリケーションプログラムインターフェース228および230を介して、XMLストア202と対話する。さらに、アプリケーションインターフェース230は、実際には事前に定義されたプロトコルに従って、インターネット232などの複雑なネットワークを介してXMLストア202と通信することができる。本発明では、アプリケーション224および226などのアプリケーションまたはプログラムモジュールが、オブジェクト204、206、208、および210などのデータオブジェクトにアクセスするために、何らかの形でXMLストア202と対話することが重要であり、アクセスにはオブジェクトの移動、コピー、削除、読取り、実行、または更新などが含まれる。
【0034】
アプリケーションプログラム224および226は、アプリケーションモジュールの層、すなわちサービス層236を介して、オブジェクト204、206、208、および210にアクセスすることができる。サービス層236は、オブジェクトアクセス要求が既存のオブジェクトに関するものであること、要求を作成しているモジュールが要求の作成および実行の許可を得ているかどうかなど、様々な機能を提供することができる。この対話層236は、アプリケーションプログラムインターフェース228、230が可能であるのに加え、クライアントまたはサーバのコンピュータシステムの一部であってよいオペレーティングシステムインターフェース(図示せず)でも可能である。
【0035】
本発明の一実施形態では、バージョン固有プロパティ220および222に関して、アプリケーションプログラム224および226が、それぞれオブジェクト208および210に関するバージョン固有プロパティ220および222を作成および使用することができる。あるいは、サービス層236がバージョン固有プロパティを作成および使用することができる。バージョン固有プロパティがいったん作成されると、他のアプリケーションはこのプロパティにアクセスし、バージョン固有プロパティ220または222の評価に基づいてオブジェクトに関する動作の実行を決定することができる。さらに、他方のアプリケーションは、アプリケーションが有効なバージョン固有プロパティの有無をテストすると異なる結果を生じさせるようなバージョン固有プロパティを無効化できる、データオブジェクトに関する動作を実行することができる。
【0036】
特定の例では、サービス層236は、オブジェクト、たとえばオブジェクト204、206、208、または210に任意の他のアプリケーションまたはモジュールがアクセスするたびに、ウィルスのスキャン機能およびクリーニング機能を実行するウィルススキャン機能を提供する。この例をさらに拡大すると、アプリケーションプログラム224は、ワードプロセッシングアプリケーションであってよく、オブジェクト204、206、208、および210は、特定のテキスト構成要素を有するXMLオブジェクトなどのワードプロセッシングタイプオブジェクトである。このような場合、ウィルススキャンプログラムモジュールは、サービス層236の一部として、実際にワードプロセッシングアプリケーション224がアクセスを要求するオブジェクトのスキャンに使用することができる。この例でウィルススキャナは、ウィルスがスキャンされたオブジェクトのプロパティ220および222などの、バージョン固有プロパティを作成することができる。したがって、アプリケーション224が次にオブジェクト208および210のうち1つに対して要求を作成した場合、ウィルススキャンアプリケーションは、他のスキャンオペレーションが必要であるかどうかを判定するために、プロパティ220および222などの有効なバージョン固有プロパティの有無を識別するだけである。有効なバージョン固有プロパティが識別された場合、この特定例ではスキャンは不要である。これに対して、オブジェクト204または206にアクセスした際などにバージョン固有プロパティが識別されなかった場合、ウィルススキャンアプリケーションは、これらのオブジェクトがスキャンされていないか、またはスキャンされてから修正されていると認識する。
【0037】
さらにウィルススキャンの例を見ていくと、ウィルススキャンアプリケーションがサービス層236の一部として、オブジェクト204または206のうち1つをスキャンすると想定した場合、新しいバージョン固有プロパティ(図示せず)が作成され、スキャン済みのオブジェクトに関連する。その後、新しく作成されたプロパティ(図示せず)がオブジェクトと共に格納されるため、このプロパティを将来のアクセス要求に利用することができる。
【0038】
他の実施形態では、バージョン固有プロパティを、他のアプリケーションがアクセスおよび評価できるデジタル署名を利用して符号化することができる。その後このデジタル署名を調べて、ファイルが有効なコピーであるかどうかを判定することができる。このような場合、ファイルが他のアプリケーションによって勝手に変更されている、すなわち破損していると、デジタル署名は無効となる。無効化されたデジタル署名は、署名が存在しなかったものとして処理されるため、データオブジェクトを無効として処理することができる。
【0039】
バージョン固有属性は、属性またはデータオブジェクトへの無許可のアクセスを防ぐためにさらに他のセキュリティ情報を含むことができる。サービス層236はこの情報を、プロパティをロックしてウィルスアプリケーションなどの不適切なアプリケーションが使用できないようにする手段として使用する。サービス層は、有効なアプリケーションのみがプロパティまたはデータオブジェクトそれ自体にアクセスすることを保証する目的で、アクセスごとにバージョン固有プロパティを評価するように構成することができる。
【0040】
本発明を組み込んだオブジェクトのコレクション300が図3に示されている。コレクション300は、実際のオブジェクト情報に関するデータオブジェクト302を有する。さらにコレクション300は、この特定の例では、時間やオブジェクトサイズなどの何らかの標準プロパティを含む一般情報を含んでいる、メタ情報オブジェクト304を有する。他の実施形態では、メタ情報オブジェクト304は標準プロパティを含まず、その代わりに標準プロパティは他のオブジェクト(図示せず)に格納される場合がある。
【0041】
コレクション300は、図3に示されるようにバージョン固有プロパティ306も有する。バージョン固有プロパティ306には、3タイプの情報が含まれる。その1つがメタ情報セクション308であり、これは典型的には、プロパティの作成に使用される第三者アプリケーションの名前などのプロパティの名前、その他、プロパティの長さ、そのディスク上のアドレス位置などの情報を有する。
【0042】
バージョン固有プロパティ306には、バージョン情報セクション310も含まれる。バージョン情報セクション310には、プロパティの作成に使用された第三者アプリケーションのバージョンなど、バージョン固有プロパティ306の作成に使用された最も新しい特定アプリケーションのバージョンに関する情報が含まれる。すなわち、こうしたバージョン情報は、プロパティを評価しているプログラムモジュールと関連させることができるため、このタイプの情報専用にセクションが割り当てられる。
【0043】
バージョン固有プロパティ306には、関連する更新に関する情報をサーバシステムに提供する際に使用される、マスク情報セクション312も含まれる。マスク情報セクション312は、本来、どのプロトコルまたはポリシーのイベントがバージョン固有プロパティ306を無効化できるかまたはできないかを、他のアプリケーションまたはサーバシステムに指示するものである。
【0044】
特定の実施形態では、バージョン固有プロパティ306がウィルススキャンアプリケーションによって作成されると、メタ情報セクション308は、バージョン固有プロパティ306の作成に使用されたウィルススキャンアプリケーションの名前を保持することができる。さらにバージョン情報セクション310には、バージョン固有プロパティ306が作成された時に使用された特定のウィルス定義ファイルに関連する情報が含められることになる。ウィルススキャンアプリケーションは最近検出されたウィルスを含めるために頻繁に更新されるので、この特定の場合では、バージョン情報が重要である。したがって、ウィルススキャンアプリケーションは、オブジェクトが以前にスキャンされたことがあるかどうかを判定するだけでなく、更新済みのウィルス定義ファイルを使用してスキャンされたかどうかも判定しなければならない。
【0045】
マスク情報セクション312に関して、ウィルススキャンアプリケーションがバージョン固有プロパティ306を作成すると、マスク情報セクション312にはバージョン固有プロパティ306の無効化を発生させるような特定のイベントが含められる可能性があり、このイベントはウィルススキャンアプリケーションに一意的に直接関係する場合がある。この特定の場合では、プロパティ306の無効化を発生させることのあるこのようなイベントに、新しいデータの追加またはデータの消去のいずれかによるデータオブジェクト302の修正が含まれる。他の実施形態では、他の所定のイベントが、データオブジェクト302などに関連する他のプロパティの修正などの、バージョン固有プロパティの無効化を発生させることがある。
【0046】
この特定の例では、具体的にはマスク情報セクション312に含めることができないためにバージョン固有プロパティが無効化されることのない所定のイベントに、読取り専用アクセスイベント、オブジェクト名の変更、またはオブジェクトのコレクション300のバックアップを含めることができる。実際には、イベントがバージョン固有プロパティを無効化しなければ、オブジェクト名が変更されたような場合でもそのプロパティはオブジェクト302に関連するままとなる。
【0047】
バージョン固有プロパティ306は、第三者アプリケーション、たとえば特定オブジェクトストアとは別のアプリケーションによって作成される。バージョン固有プロパティを作成する場合、第三者アプリケーションは、名前、バージョン、およびマスクの情報を、XMLオブジェクトが格納されるサーバシステムに提供する。次いでサーバシステムがプロパティを作成し、これを特定データオブジェクトに関連付ける。別法として、バージョン固有プロパティを作成し、これがデータオブジェクト302と関連付けられている間はリモートコンピュータシステム上に格納することもできる。
【0048】
本発明の一実施形態では、バージョン固有プロパティはWebDAV、すなわちWorld Wide Web Distributed Authoring and Versioning protocol(DAV)の一部としての、HTTPの拡張である。本来、バージョン固有プロパティは新しいタイプのDAVプロパティであって、自由度のライブ/デッド(live/dead)が他のDAVプロパティと同じであり、すなわちライブプロパティはサーバ側で管理され、デッドプロパティはクライアント側で管理される。DAVで新しいバージョン固有プロパティを定義するには、表1〜表4に示されたドキュメントタイプ定義(DTD)を実施することができる。これらのサンプルは、もちろん概略として作成されたものである。
【0049】
【表1】
Figure 0004416366
【0050】
【表2】
Figure 0004416366
【0051】
【表3】
Figure 0004416366
【0052】
【表4】
Figure 0004416366
【0053】
実際にバージョン固有プロパティを作成するために、第三者プロパティは、PROPPATCH、PUTなどの標準DAVメカニズムを使用する。これらのメカニズムについては、付録Aで詳細に説明する。代替実施形態では、これらのバージョン固有プロパティは、他の方法を使用して作成される。
【0054】
コレクション300はバージョン固有プロパティを1つだけ有するように図示および説明されているが、コレクション300は、他のバージョン固有プロパティも含めて他のプロパティを有することもできる。実際に、いくつかの第三者アプリケーションは、持続状態情報が関連付けられていることを要求することが可能であり、したがってプロパティ306などの多数のバージョン固有プロパティを作成し、コレクション300と共に格納することができる。
【0055】
以上、例示的な物理環境について論じてきたが、以下のセクションでは、本発明の態様を具体化する動作モジュールについて説明する。本発明の様々な実施形態の論理的動作は、(1)コンピューティングシステム上で実行中のコンピュータが実施する一連のステップまたはプログラムモジュールとして、および/または(2)コンピューティングシステム内で相互接続されたハードウェアモジュールまたは論理モジュールとして実施される。この実施は、本発明を実施するコンピューティングシステムの性能要件に依存する選択の問題である。したがって、本明細書に記載された本発明の実施形態を構成している論理動作は、動作、ステップ、またはモジュールと呼ばれることもある。
【0056】
図4は、本発明の態様に従ったオブジェクトへのアクセスに関連する動作特性を示す流れ図である。流れ400が開始される前に、図2に示されたオブジェクト204、206、208、または210などのオブジェクトが、ストア202(図2)などのXMLストア内に存在する。本発明の一実施形態では、いったんオブジェクトが作成されると、そのオブジェクトにアクセスしようと試みると、図4に関して図示および説明した流れ400が開始される。実際には、プロセス400はアクセス試行402で開始されるが、このアクセス試行402は、任意のオブジェクトの読取り、実行、または更新に関するものである。アクセス試行は、アプリケーション224(図2)などの第三者アプリケーションによって、またはサービス層236(図2)によって実行することができる。
【0057】
アクセス試行402に続き、決定行為404で、アクセスが無効化アクセスであるかどうかを判定する。アクセスが無効化アクセスであるか否かの判定には、複数の特定オブジェクトにアクセスしていると想定した、各バージョン固有プロパティ内にあるマスク情報の評価が含まれる。マスク情報を評価することにより、そのオブジェクトへのどのタイプのアクセスが、特定のバージョン固有プロパティを無効化するように要求しているのかがわかる。したがって、マスク情報と実際のアクセス試行とを比較することにより、バージョン固有プロパティを無効化すべきかどうかがわかる。決定行為404でこのような関係する更新アクセス試行が識別されると、流れはYESの無効化動作406へと進む。
【0058】
本発明の一実施形態では、バージョン固有プロパティはウィルススキャンアプリケーションによって作成および使用される。このような状況では、決定行為404により、アクセス試行が関係する更新アクセスであるかどうかが、ウィルススキャンアプリケーションが設定した基準に基づいて判定される。すなわち、ウィルススキャンアプリケーションは、アクセス試行が、古いデータを変更するかまたは新しいデータを追加することによって実際のオブジェクトデータを修正するかどうかなど、関係する更新アクセスとは何であるかを事前に決定している。たとえば、特定のウィルススキャンアプリケーションは、新しいデータの作成を含み、オブジェクト内のデータにどんな変更が行われる場合でも必ずそのバージョン固有プロパティが無効化されるのを希望することができる。変更が、バージョン固有プロパティまたは他のオブジェクトのメタデータまたはメタ情報にだけ関係する場合には、無効化は発生しない。
【0059】
代替実施形態では、レプリケータアプリケーションがバージョン固有プロパティを作成しこれを使用することができる。このような場合、レプリケータアプリケーションは、オブジェクトのデータまたはメタデータのいずれかにどんな変更が行われる場合でも必ず、そのバージョン固有プロパティが無効化されるのを希望することができる。これら特定のバージョン固有プロパティは、このクラスのバージョン固有プロパティだけに影響を与えるのではないような変更が行われると、必ず無効化される。この場合、特定のクラスを定義することにより、複数のレプリケータが存在することでオブジェクトが何度も反復されるのを防いでおり、1つのレプリケータアプリケーションによる反復インスタンスは、それぞれ、第2のレプリケータアプリケーションによる反復の必要に応じて生じることになる。
【0060】
無効化動作406は、バージョン固有プロパティを無効化する。バージョン固有プロパティの無効化は、一実施形態では、そのバージョン固有プロパティの削除または切り捨てによって達成することができる。あるいは、無効化動作406がバージョン固有プロパティにマークを付けるか、そうでなければプロパティが無効である旨の表示を与える。本来、プロパティを無効化する行為は、バージョン固有プロパティに依拠したアプリケーションが、バージョン固有プロパティが無効化されていることを、その内容を空の文字列に設定することなどによって認識できるようにするものでなければならない。バージョン固有プロパティを無効化する他の方法には、無効化アクセスまたはバージョン固有プロパティへの情報の追加、あるいはその中に含まれる情報の修正も含むことができる。無効化行為406は、オブジェクトへの最後のアクセスまたは書込みに関するプロパティなどの、他のプロパティは変更しない。
【0061】
データオブジェクトが複数の関連するバージョン固有プロパティを有する場合、動作404および406は、それぞれのバージョン固有プロパティについて繰返し行われる。
【0062】
無効化行為406に続き、アクセス実行動作408が、オブジェクトに対して要求されたアクセスを実行する。オブジェクトに対するアクセスを実行する行為は、バージョン固有プロパティが無効化された後に開始することが重要である。そうでないと、バージョン固有プロパティが信頼できなくなる可能性がある。アクセス実行動作408に続き、流れ400は終了動作410で終了する。
【0063】
決定行為404で、アクセス試行が無効化アクセスに関連していないと判定されると、流れはNOの決定動作412に進む。決定動作412では、アクセスがバージョン固有プロパティに依存しているかどうか、たとえば、アクセス試行が、動作を実行する際にバージョン固有プロパティを使用しているアプリケーションによるアクセス試行であるかどうかを判定する。たとえば、バージョン固有プロパティを使用するウィルススキャンアプリケーションはアクセス試行を生成することが可能であり、その場合決定動作412は、そのアクセス試行がバージョン固有プロパティを使用するかかるアプリケーションによって生成されたものであるかどうかを判定する。
【0064】
アクセス試行が、バージョン固有プロパティに依拠するアプリケーションによって実行されたものでない場合、流れはNOのアクセス実行動作408に進む。アクセス実行動作408は、最初に要求されたアクセス動作を実行する。決定動作412に続いてアクセス実行動作408が行われる場合、アクセス動作は、決定行為404が判定したような無効化を要求する動作には関連していない。たとえば、このアクセス試行は、ユーザが実際のデータを修正できない読取り動作に関連していることがある。アクセス実行動作408に続き、プロセス流れは前述のように410で終了する。
【0065】
決定動作412は、アクセスがバージョン固有プロパティに依存していると判定した場合、流れはYESの決定行為414に進む。決定行為414は、バージョン固有プロパティが有効であるかどうかを判定するために、これを分析する。プロパティが有効であるかどうかの判定には、プロパティが有効であるかどうかの他の判定方法の中から、プロパティが存在するかどうか、これが無効としてマークされているかどうか、または情報がすべて利用できないように切り捨てられているかどうかが含まれる。決定行為414によって、プロパティが有効でないと判定されると、流れはNOの無効プロパティに関するアクセス実行行為416に進む。
【0066】
実行行為416では、アクセスが無効であるという判定に基づいて、所定の機能が実行される。一実施形態では、アクセス試行がウィルススキャンアプリケーションによって生成されたものである場合、実行動作416は、かかるウィルススキャン機能をオブジェクト上で実行することに関する。
【0067】
無効プロパティに関する動作実行416に続き、バージョン固有プロパティ作成行為418では、そのオブジェクトに関してバージョン固有プロパティを作成または有効化する。バージョン固有プロパティの有効化には、そのオブジェクトのバージョン固有プロパティを作成すること、または既存のバージョン固有プロパティに情報を追加することが含まれる。他の実施形態では、プロパティが有効であるという表示を与えることによって、後にプロパティが有効であることがわかる限りは、他の方法でプロパティを有効化することができる。バージョン固有プロパティ有効化行為418に続き、プロセス400は終了動作410で終了する。
【0068】
決定行為414で、バージョン固有プロパティが有効であると判定された場合、流れはYESの実行動作420に進む。実行動作420は、バージョン固有プロパティが有効であるという判定に関する任意の行為を実行することに関する。バージョン固有プロパティを使用する特定のアプリケーションによって、実行動作420には異なるタイプの動作が含まれることがある。一例では、プロパティが有効であると判定された場合、ウィルススキャン状況などでは何の動作も実行されない。このような場合、決定行為414でバージョン固有プロパティが有効であると判定されると、オブジェクトは以前にスキャンされているため他のスキャンは不要である。したがって、そのオブジェクトについては何の動作も実行されず、動作420は終了動作410に制御を渡すだけである。他の実施形態では、バージョン固有プロパティが有効であると判定されると、420で動作が実行開始される場合がある。
【0069】
【発明の効果】
前述のシステムおよび方法は、バージョン情報が別のログまたはデータベースファイルに常駐しているのではなく、オブジェクトまたはオブジェクトコレクションの一部であるため、バージョン情報をプログラムモジュールまたはアプリケーションに提供するという従来の方法に比べて、かなり有利である。アクセス側のアプリケーションは、利用不能、破損、その他管理不能になる可能性がある、外付けタイプのファイルにアクセスする必要がない。
さらに、電源が切断されてもプロパティは失われず、プロパティは、インメモリ情報ログの場合のように、大量の動作メモリを消費せずに済む。
さらに、プロセスは自動的に更新され、すなわち、関連するイベントが発生したときにはバージョン固有情報が無効化される。
さらに、プロセスは自動的に更新され、すなわち、関連するイベントまたは更新が発生したときにはバージョン固有情報が無効化される。バージョン固有情報を自動的に無効化することにより、関連する関係する更新は見逃されることがなく、不要な行為は実行されない確率が高くなる。
たとえば、ウィルススキャンの実施に関して言えば、従来技術の方法では、バックアップ機能および/またはコピー機能の後ではこのようなバージョン情報は保持されなかったため、追加の処理ステップが実行されていたが、バージョン情報はバックアップ機能やコピー機能では無効化されなくなっているため、将来アクセスしたときにウィルススキャンが不要である。
【0070】
前述のように、本明細書に記載した本発明は、コンピュータプロセス、コンピューティングシステム、またはコンピュータプログラム製品などの製造物として実施することができる。コンピュータプログラム製品は、コンピュータシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、コンピュータ記憶媒体であってよい。さらにコンピュータプログラム製品は、コンピューティングシステム、およびコンピュータプロセスを実行するためのコンピュータプログラム命令の符号化によって読取り可能な、搬送波上の伝播信号であってもよい。
【0071】
さらに、本発明は構造上の特徴および/または方法論的ステップに固有の言語で記述されているが、添付の特許請求の範囲で定義された本発明は、記載されている特定の特徴またはステップに限定されるものではないことを理解されたい。一例として、他のアプリケーションでは、ウィルススキャンアプリケーションおよびレプリケータの他にも、バージョン固有プロパティを利用することができる。さらに、XMLオブジェクトストア以外の他のタイプのオブジェクトおよびオブジェクトストアも、本発明の原理から恩恵を受けることができる。したがって、特定の特徴およびステップは、記載された本発明を実施する好ましい形態として開示されたものである。
【図面の簡単な説明】
【図1】本発明の態様を組み込むことのできるコンピュータシステムの機能図である。
【図2】本発明のソフトウェア構成要素を示す構成図である。
【図3】本発明によるリソースの構成要素を示す機能図である。
【図4】本発明の一実施形態の機能的な特徴を示す流れ図である。
【符号の説明】
100 コンピューティングシステム環境
102 コンピュータ
104 処理ユニット
106 システムメモリ
108 システムバス
110 ROM
112 RAM
114 BIOS
116 ハードディスクドライブ
118 磁気ディスクドライブ
120 磁気ディスク
122 光ディスクドライブ
124 光ディスク
126 ハードディスクドライブインターフェース
128 磁気ディスクドライブインターフェース
130 光ドライブインターフェース
132 オペレーティングシステム
134 アプリケーションプログラム
136 プログラムモジュール
138 プログラムデータ
140 キーボード
142 ポインティングデバイス
148 ユーザ入力インターフェース
150 モニタ
152 ビデオアダプタ
154 リモートコンピュータ
162 ネットワークインターフェース
164 モデム

Claims (15)

  1. 分散型環境において提供されるコンピュータシステムに格納されたオブジェクトに関連するバージョン固有情報を提供する方法であって、
    あるオブジェクトに関連するバージョン固有プロパティを作成する工程と、
    ここで、前記バージョン固有プロパティは、セキュリティ情報と、メタ情報と、バージョン固有情報と、マスク情報とを有し、
    前記メタ情報は該バージョン固有プロパティの名前を有し、前記バージョン固有情報は該バージョン固有プロパティの作成に使用されたアプリケーションのバージョンを有し、前記マスク情報は前記バージョン固有プロパティの無効化を発生させる複数のイベントの定義に関連した情報を有し、
    前記複数のイベントは、新しいデータを付加する前記オブジェクトの変更、データを削除する前記オブジェクトの変更、或いは前記オブジェクトに関連するプロパティの変更のうちの1つ以上を含み、
    前記バージョン固有プロパティを評価するアプリケーションによるアクセス要求を受け取る工程と、
    前記アクセス要求に応答して、前記アプリケーションの処理が、前記バージョン固有プロパティの前記マスク情報に含まれる前記無効化を発生させる複数のイベントのいずれかに関連した無効化アクセスであるかを判定する工程と、
    前記アプリケーションの処理が前記無効化アクセスであると判定したとき、前記バージョン固有プロパティを無効化する工程と
    を具えたことを特徴とする方法。
  2. 前記アプリケーションは、ウィルススキャンアプリケーションであることを特徴とする請求項1記載の方法。
  3. 前記アプリケーションは、レプリケータアプリケーションであることを特徴とする請求項1記載の方法。
  4. 請求項1ないし3のいずれかに記載の方法を実行可能なコンピュータによって読取り可能なコンピュータプログラム。
  5. コンピュータによって実行可能な請求項4記載のコンピュータプログラムを記録したコンピュータ読取可能な記録媒体。
  6. コンピュータシステムに格納されたオブジェクトにアクセスする方法であって、前記オブジェクトが関連するバージョン固有プロパティを有し、
    ここで、前記バージョン固有プロパティは、セキュリティ情報と、メタ情報と、バージョン固有情報と、マスク情報とを有し、
    前記メタ情報は該バージョン固有プロパティの名前を有し、前記バージョン固有情報は該バージョン固有プロパティの作成に使用されたアプリケーションのバージョンを有し、前記マスク情報は前記バージョン固有プロパティの無効化を発生させる複数のイベントの定義に関連した情報を有し、
    前記複数のイベントは、新しいデータを付加する前記オブジェクトの変更、データを削除する前記オブジェクトの変更、或いは前記オブジェクトに関連するプロパティの変更のうちの1つ以上を含み、
    該方法は、
    アクセス要求に関するアクセス試行をアプリケーションから受け取る工程と、
    前記アクセス試行が、前記バージョン固有プロパティの前記マスク情報に含まれる前記無効化を発生させる複数のイベントのいずれかに関連した無効化アクセスに関するものであるかどうかを判定する工程と
    を具え、
    前記アクセス試行が無効化アクセスに関するものである場合は、
    前記バージョン固有プロパティを無効化する工程と、
    アクセス要求に関するアクセス動作を実行する工程とを含み、
    前記アクセス試行が無効化アクセスに関するものでない場合は、アクセス要求に関するアクセス動作を実行する工程を含むことを特徴とする方法。
  7. コンピュータシステムに格納されたオブジェクトにアクセスする方法であって、前記オブジェクトが関連するバージョン固有プロパティを有し、
    ここで、前記バージョン固有プロパティは、セキュリティ情報と、メタ情報と、バージョン固有情報と、マスク情報とを有し、
    前記メタ情報は該バージョン固有プロパティの名前を有し、前記バージョン固有情報は該バージョン固有プロパティの作成に使用されたアプリケーションのバージョンを有し、前記マスク情報は前記バージョン固有プロパティの無効化を発生させる複数のイベントの定義に関連した情報を有し、
    前記複数のイベントは、新しいデータを付加する前記オブジェクトの変更、データを削除する前記オブジェクトの変更、或いは前記オブジェクトに関連するプロパティの変更のうちの1つ以上を含み、
    該方法は、
    前記バージョン固有プロパティを評価するアプリケーションによるアクセス要求に関するアクセス試行を該アプリケーションから受け取る工程と、
    前記アクセス試行が、前記バージョン固有プロパティの前記マスク情報に含まれる前記無効化を発生させる複数のイベントのいずれかに関連した無効化アクセスに関するものであるかどうかを判定する工程と
    を具え、
    前記アクセス試行が前記無効化アクセスに関するものである場合は、
    バージョン固有プロパティを無効化する工程と、
    アクセス要求に関するアクセス動作を実行する工程とを含み、
    前記アクセス試行が前記無効化アクセスに関するものでない場合は、
    前記アクセスが前記バージョン固有プロパティに依存するかどうかを判定する工程を含み、
    前記アクセスが前記バージョン固有プロパティに依存しない場合は、アクセス要求に関するアクセス動作を実行する工程を含み、
    前記アクセスが前記バージョン固有プロパティに依存する場合は、
    該プロパティが有効であるかどうかを判定し、
    該プロパティが有効であると判定されたかどうかに基づいてウィルススキャン機能を実行する工程を含むことを特徴とする方法。
  8. 請求項6又は7記載の方法を実行するための命令を符号化する、コンピュータによって読取り可能なことを特徴とするコンピュータプログラム。
  9. コンピュータによって読取り可能な請求項8記載のコンピュータプログラムを有するコンピュータ読取り可能な記録媒体。
  10. 前記バージョン固有プロパティの作成に使用されたアプリケーションは、ウィルススキャン機能を実行する第三者アプリケーションであり、バージョン固有情報がウィルス定義ファイルに関する情報を格納することを特徴とする請求項9記載のコンピュータ読取り可能媒体。
  11. 分散型環境内でデータオブジェクトに関するバージョン固有情報を管理するためのコンピュータプロセスを実行するための命令を符号化する、コンピュータによって読取り可能なコンピュータプログラムであって、前記コンピュータプロセスは、
    データオブジェクトに関するバージョン固有オブジェクトを作成するために、バージョン固有情報をデータオブジェクトに関連するバージョン固有プロパティに格納する工程と、
    ここで、前記バージョン固有プロパティは、セキュリティ情報と、メタ情報と、バージョン固有情報と、マスク情報とを有し、
    前記メタ情報は該バージョン固有プロパティの名前を有し、前記バージョン固有情報は該バージョン固有プロパティの作成に使用されたアプリケーションのバージョンを有し、前記マスク情報は前記バージョン固有プロパティの無効化を発生させる複数のイベントの定義に関連した情報を有し、
    前記複数のイベントは、新しいデータを付加する前記オブジェクトの変更、データを削除する前記オブジェクトの変更、或いは前記オブジェクトに関連するプロパティの変更のうちの1つ以上を含み、
    前記バージョン固有プロパティを評価するアプリケーションによるアクセス要求に関する無効化アクセス試行に応答して、前記アプリケーションの処理が、前記バージョン固有プロパティの前記マスク情報に含まれる前記無効化を発生させる複数のイベントのいずれかに関連した無効化アクセスであると判定したとき、前記バージョン固有オブジェクトを無効化する工程と
    を具えたことを特徴とするコンピュータプログラム。
  12. コンピュータがサービス層を含み、前記サービス層によって格納する工程および無効化する工程が実行されることを特徴とする請求項11記載のコンピュータプログラム。
  13. 前記バージョン固有情報は、第三者アプリケーション情報に関することを特徴とする請求項11記載のコンピュータプログラム。
  14. 前記第三者アプリケーションはウィルススキャン機能を実行するものであり、前記無効化アクセス試行はオブジェクトの修正に関することを特徴とする請求項13記載のコンピュータプログラム。
  15. コピー、名前変更、またはバックアップのアクセス試行のうち1つが実行された後でも、バージョン固有オブジェクトが損なわれないことを特徴とする請求項14記載のコンピュータプログラム。
JP2001398350A 2000-12-27 2001-12-27 分散型環境においてバージョン固有プロパティを作成し維持するための方法、および、システム Expired - Fee Related JP4416366B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/750,501 US6598060B2 (en) 2000-12-27 2000-12-27 Method and system for creating and maintaining version-specific properties in a distributed environment
US09/750,501 2000-12-27

Publications (3)

Publication Number Publication Date
JP2002229834A JP2002229834A (ja) 2002-08-16
JP2002229834A5 JP2002229834A5 (ja) 2005-08-04
JP4416366B2 true JP4416366B2 (ja) 2010-02-17

Family

ID=25018113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001398350A Expired - Fee Related JP4416366B2 (ja) 2000-12-27 2001-12-27 分散型環境においてバージョン固有プロパティを作成し維持するための方法、および、システム

Country Status (4)

Country Link
US (1) US6598060B2 (ja)
EP (1) EP1237073B1 (ja)
JP (1) JP4416366B2 (ja)
AT (1) ATE516534T1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6266774B1 (en) 1998-12-08 2001-07-24 Mcafee.Com Corporation Method and system for securing, managing or optimizing a personal computer
US7058667B2 (en) * 2000-12-27 2006-06-06 Microsoft Corporation Method and system for creating and maintaining version-specific properties in a file
US7310817B2 (en) * 2001-07-26 2007-12-18 Mcafee, Inc. Centrally managed malware scanning
US7024432B2 (en) * 2001-08-01 2006-04-04 Mcafee, Inc. Updating computer files on wireless data processing devices
US7680742B1 (en) * 2001-10-09 2010-03-16 Novell, Inc. System and method for controlling access to licensed computing processes via a codified electronic license
US7203681B1 (en) * 2002-02-20 2007-04-10 Palm, Inc. Hand-held device filtering
US20030212716A1 (en) * 2002-05-09 2003-11-13 Doug Steele System and method for analyzing data center enerprise information via backup images
US6986123B2 (en) * 2002-06-28 2006-01-10 Microsoft Corporation Extensible on-demand property system
US7243348B2 (en) * 2002-09-19 2007-07-10 Tripwire, Inc. Computing apparatus with automatic integrity reference generation and maintenance
US7702668B2 (en) * 2003-06-16 2010-04-20 Microsoft Corporation Asset composition
US7383541B1 (en) 2003-08-07 2008-06-03 Cisco Technology, Inc. Method and apparatus providing interoperation of execution images of different versions
US7506307B2 (en) * 2003-10-24 2009-03-17 Microsoft Corporation Rules definition language
US7539974B2 (en) * 2003-10-24 2009-05-26 Microsoft Corporation Scalable synchronous and asynchronous processing of monitoring rules
US7676560B2 (en) * 2003-10-24 2010-03-09 Microsoft Corporation Using URI's to identify multiple instances with a common schema
US7765540B2 (en) * 2003-10-23 2010-07-27 Microsoft Corporation Use of attribution to describe management information
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
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
US8214800B2 (en) 2005-03-02 2012-07-03 Advantest Corporation Compact representation of vendor hardware module revisions in an open architecture test system
US20070083930A1 (en) * 2005-10-11 2007-04-12 Jim Dumont Method, telecommunications node, and computer data signal message for optimizing virus scanning
US8132266B2 (en) * 2006-03-28 2012-03-06 Emc Corporation Methods, systems, and computer program products for identifying and enforcing software feature limits across different hardware platforms, software releases, and tiers
US8539253B2 (en) * 2006-07-18 2013-09-17 Netapp, Inc. System and method for securing information by obscuring contents of a persistent image
US8528059B1 (en) 2008-10-06 2013-09-03 Goldman, Sachs & Co. Apparatuses, methods and systems for a secure resource access and placement platform
US8312548B1 (en) * 2009-04-24 2012-11-13 Network Appliance, Inc. Volume metadata update system for antivirus attributes
US20140032912A1 (en) * 2009-04-28 2014-01-30 Adobe Systems Incorporated Trust context for document signatures
US9015136B2 (en) 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
US8739021B2 (en) 2010-11-04 2014-05-27 Microsoft Corporation Version history inside document
US8825722B2 (en) * 2012-01-13 2014-09-02 Microsoft Corporation Calculation of properties of objects/shapes across versions of applications
US10019258B2 (en) * 2014-04-29 2018-07-10 Hewlett Packard Enterprise Development Lp Hardware assisted software versioning of clustered applications
US9563845B1 (en) * 2014-06-05 2017-02-07 Amazon Technologies, Inc. Rule evaluation based on precomputed results
CN112651026B (zh) * 2020-12-30 2024-05-24 微梦创科网络科技(中国)有限公司 一种具有业务安全问题的应用版本挖掘方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485601A (en) * 1992-05-14 1996-01-16 Ching; Hugh Completely automated and self-generating software system
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
US5996113A (en) * 1996-11-26 1999-11-30 Intel Corporation Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation
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
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
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
US6377960B1 (en) * 1999-07-26 2002-04-23 Microsoft Corporation Transactional configuration store and runtime versus administration isolation with version snapshots and aging
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

Also Published As

Publication number Publication date
EP1237073A2 (en) 2002-09-04
EP1237073B1 (en) 2011-07-13
JP2002229834A (ja) 2002-08-16
US6598060B2 (en) 2003-07-22
US20020123992A1 (en) 2002-09-05
EP1237073A3 (en) 2005-08-10
ATE516534T1 (de) 2011-07-15

Similar Documents

Publication Publication Date Title
JP4416366B2 (ja) 分散型環境においてバージョン固有プロパティを作成し維持するための方法、および、システム
JP4348036B2 (ja) ファイル中にバージョン固有プロパティを作成し保持する方法およびシステム
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
US7302531B2 (en) System and methods for sharing configuration information with multiple processes via shared memory
US6449615B1 (en) Method and system for maintaining the integrity of links in a computer network
US9424266B2 (en) Efficient file hash identifier computation
US8180812B2 (en) Templates for configuring file shares
US20080307138A1 (en) Method and system for locking resources in a distributed environment
EP1723566B1 (en) System and method for efficient file content searching within a file system
US20100070515A1 (en) Shared namespace for storage clusters
US20060059171A1 (en) System and method for chunk-based indexing of file system content
KR20080081276A (ko) 디스크 기반 캐시
US6542884B1 (en) Methods and systems for updating an inheritance tree with minimal increase in memory usage
US9195686B2 (en) Optimistic versioning concurrency scheme for database streams
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: 20050106

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: 20080730

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080827

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081226

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090427

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091001

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: 20091023

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: 20091124

R150 Certificate of patent or registration of utility model

Ref document number: 4416366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131204

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees