JP2011501839A - データエンティティ及びそのバージョンにアクセスするための方法 - Google Patents

データエンティティ及びそのバージョンにアクセスするための方法 Download PDF

Info

Publication number
JP2011501839A
JP2011501839A JP2010527330A JP2010527330A JP2011501839A JP 2011501839 A JP2011501839 A JP 2011501839A JP 2010527330 A JP2010527330 A JP 2010527330A JP 2010527330 A JP2010527330 A JP 2010527330A JP 2011501839 A JP2011501839 A JP 2011501839A
Authority
JP
Japan
Prior art keywords
version
operations
derived
data entity
data
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.)
Pending
Application number
JP2010527330A
Other languages
English (en)
Inventor
マルティン ショル,
マルクス ブリンドプケ,
オットー ロート,
ミヒャエル プロイセ,
Original Assignee
グローバル インフィニプール ゲーエムベーハー
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 グローバル インフィニプール ゲーエムベーハー filed Critical グローバル インフィニプール ゲーエムベーハー
Publication of JP2011501839A publication Critical patent/JP2011501839A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

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

この方法は、基本バージョン(12)を有するデータエンティティへのアクセス、及び導出バージョン(16)の作成を提供する。この方法は、基本バージョン(12)に対して1以上のオペレーション(14)を実行し(S22)、格納し(S24)、受け付ける(S26)ことによって、導出バージョン(16)を作成するための作成手順(S2)を含む。この方法は、基本バージョン(12)、及び受け付けられた1以上のオペレーション(14)に基づいて、導出バージョン(16)を再構築する(S42)ことによって、基本バージョン(12)、及び受け付けられた1以上のオペレーション(14)の第2のアドレスにマッピングされる第1のアドレスを介して導出バ―ジョン(16)にアクセスを提供するための提供手順(S4)を更に含む。
【選択図】 図1

Description

本発明は、データエンティティへのアクセスを提供し、データエンティティの導出バージョンの作成を可能にする方法、及び当該方法を実行するためのコンピュータプログラムに関するものである。また、本発明は、データエンティティへのアクセスを提供し、データエンティティの導出バージョンの作成を可能にするよう構成された装置に関するものである。
背景
コンピュータ技術では、仮想化は、コンピュータリソースの抽象化を指す。仮想化は、幾つかの形をとることができる。一形態では、仮想化は、複数のコンピュータリソースが何人かのユーザ又は幾つかのコンピュータシステムによって単一のコンピュータリソース、例えば単一の物理的なコンピュータリソースとして認識されるように、ユーザ又はコンピュータシステムに複数のコンピュータリソース、例えば、複数の物理的なコンピュータリソースを提示することにある。別の形態では、仮想化は、単一のコンピュータリソースが何人かのユーザ又は幾つかのコンピュータシステムによって複数のコンピュータリソース、例えば複数の物理的なリソースとして認識されるように、ユーザ又はコンピュータシステムに単一のコンピュータリソース、例えば、物理的なコンピュータリソースを提示することにある。更に別の形態では、仮想化は、1つのコンピュータリソースが何人かのユーザ又は幾つかのコンピュータシステムによってその実際の特性と異なる特性を有するものとして認識されるように、ユーザ又はコンピュータシステムにコンピュータリソースを提示することにある。
コンピュータ技術における仮想化の目的は、それだけには限定されないが、何人かのユーザ又は幾つかのコンピュータシステムによるシステム又はリソースへのアクセスを容易にするために、複雑なコンピュータシステム又はリソースを単一のシステム又はリソースとして何人かのユーザ又は幾つかのコンピュータシステムに提示すること、プライバシー及びセキュリティのために、大きいコンピュータシステム又はリソースを一連の小さい分離したシステム及びリソースとして何人かのユーザ又は幾つかのコンピュータシステムに提示すること、及び、システム又はリソースとのインターフェイスを容易にするために、第1の外部インターフェイスを提供するコンピュータシステム又はリソースを、第1のインターフェイスとは異なる第2の外部インターフェイスを提供するシステム又はリソースとして提示することを含む。
この場合には、ユーザ又はコンピュータシステムに提示するアクションは、1以上の物理的なコンピュータリソースとユーザ又はコンピュータシステムとの間のインターフェイスを、当該1以上の物理的なコンピュータリソースの、それらの個数を含む幾つかの物理的な特性又は特徴を隠蔽するように、又は変更したと見せるようにして、動作させることを意味する。
コンピュータリソースは、例えばサーバコンピュータ若しくはデータ記憶装置などのハードウェアデバイス、又は、オペレーティングシステム、コンピュータ上で稼働するように構成されたアプリケーション、若しくはミドルウェアアプリケーションといったソフトウェアデバイスであってもよい。
コンピュータのような単一の物理的なコンピュータリソースの仮想化を実施し、動作させるための1つの方法は、単一の物理的なコンピュータリソース上で仮想化制御プログラムを実行することである。仮想化制御プログラムは、ここでは、ホストソフトウェアと呼ぶ。ホストソフトウェアは、単一の物理的なコンピュータリソースにおいて、ゲストソフトウェアのための完全なシミュレーションされたコンピュータ環境を作る。ゲストソフトウェアは、例えば、完全なオペレーティングシステムであってもよく、当該ゲストソフトウェアにアクセスするユーザがハードウェアプラットフォーム上で稼働しているのは当該ゲストソフトウェアのみであると認識するように、ハードウェアプラットフォーム上で稼働している完全なスタンドアロンコンピュータ環境であるかのように稼働する。
従来のソフトウェアアプリケーションに比べて、ゲストソフトウェアとして動作するソフトウェアアプリケーションは、ホストソフトウェア上でゲストソフトウェアとして稼働することができるように変更することができてもよく、又はできなくてもよい。ホスト及びゲストソフトウェアアプリケーションが稼働するハードウェアは、仮想化を可能にするように変更することもできる。
例えばオペレーティングシステムの仮想化など、プラットフォームの仮想化は、一般に、単一の物理的なコンピュータリソースのメモリディスクを分割することによって実行される。すなわち、ホストソフトウェアは、各ゲストソフトウェアのインスタンスがリソースのメモリの予約済みの部分を有するように、単一の物理的なコンピュータリソースのメモリディスクを分割する。
ハードウェアディスクといったメモリディスクを分割することにより、メモリディスク上で同じ元のデータエンティティの「イメージ」が形成され得る。言い換えれば、同じ元のデータエンティティの幾つかのコピーが、メモリディスクの異なる別々のパーティション上にコピーされる。これは、ホストソフトウェア上で複数のゲストソフトウェアアプリケーションを使用することによってもたらされる。
仮想化をサポートするためのメモリディスクのこうしたパーティションには欠点がある。各ゲストソフトウェアインスタンスに関するデータを保存するのに必要なメモリスペースは、膨大である。したがって、サポートしているハードウェアシステム上のキャッシュ管理が、最適化されない。これは、ホストコンピュータのキャッシュが、所与の瞬間に複数のイメージへのアクセスを管理し得るからである。例えば、ユーザがゲストソフトウェアアプリケーションの幾つかのインスタンスを作成する機会を有する場合に、イメージの数が増えると、問題が激化する。
したがって、上述した問題を解決する、又は部分的に解決するコンピュータリソースの仮想化のための方法を提供することが望ましい。
概要
このような方法は、請求項1によって提供される。好適な実施形態は、従属クレームに記載されている。
本発明の方法は、基本バージョンを有するデータエンティティへのアクセスを提供し、例えば、データエンティティの導出バージョンのユーザ又はコンピュータシステムによる作成を可能にする。この方法は、基本バージョンに対して1以上のオペレーションを実行し、1以上のオペレーションを格納し、1以上のオペレーションを受け付けて、導出バージョンを作成することによって、データエンティティの導出バージョンを作成するための作成手順を含む。この方法は、基本バージョンに基づく導出バージョン、及び、受け付けられた1以上のオペレーションに等しいか又は結果が等価の1以上のオペレーションを再構築することによって、基本バージョンの、及び、受け付けられた1以上のオペレーションに等しいか又は結果が等価の1以上のオペレーションの第2のアドレスにマッピングされた第1のアドレスを介して導出バージョンへのアクセスを提供するための提供手順を更に含む。
本発明の意味において、データエンティティは、コンピュータ可読媒体に格納され、そこでアクセスすることができる1組のデータである。データエンティティは、例えば、コンピュータファイル、コンピュータプログラム、ソフトウェアアプリケーション又はソフトウェアアプリケーションの一部分、オペレーティングシステム又はファイル、及びオペレーティングシステムを設定し、又はコンピュータプラットフォームを動作させることができる設定データを表してもよい。
バージョンは、データエンティティの状態、例えば、データエンティティの完全なブロックレベルの状態である。所与の状態のデータエンティティは、メモリデバイスの完全なメモリスペース、又はメモリデバイスの一部又は一区分のみを占有し得る。所与の状態のデータエンティティは、メモリデバイスの完全なメモリスペース、又はメモリデバイスの一部又は一区分のみを占有するデータエンティティの変更バージョンであってもよい。したがって、本発明におけるバージョンは、特定の状態を有するデータエンティティとしてユーザ又はコンピュータシステムに透過的に提示することができる論理的な構成もカバーする。論理的な構成としてのバージョンのこの意味では、バージョンを構成する状態の実際のデータエンティティは、実際には、如何なるメモリデバイスにも存在しておらず、1以上の場所で使用可能なデータから、及び場合によっては、そのバージョンに対応するデータエンティティの状態をどのように再構築するかを示すメタデータから再構築することができる。
データエンティティの基本バージョンは、実際にコンピュータ可読媒体に格納されるか、又は複数のコンピュータ可読媒体に分散されて格納されるデータエンティティのバージョンである。データエンティティの、又はデータエンティティのイメージの1以上の基本バージョンは、ハードウェアデバイスに格納することができる。基本バージョンは、一部の実施形態では、参照プログラムとして見ることができる。
基本バージョンは、空とすることができる。これは、メモリ装置が初めて使用される場合に、このメモリ装置にまだ何も書かれていないときに起こり得る。このような基本バージョンはあるサイズを有するが、基本バージョンは、例えばゼロを戻すだけという意味で、如何なるデータも含んでいない。このようなメモリ装置は、UNIXのようなオペレーティングシステムにおける「/dev/zero」の特別なファイルに類似し得る。
データエンティティに対するオペレーションは、その内容の状態を変更し、又は特定の状態のデータエンティティがどのように参照されるかを変更する。即ち、データエンティティに対するオペレーションは、データエンティティの内容に対する変更であると定義され、したがって、内容の状態、又はバージョニング情報がどのようにして特定の状態のデータエンティティを参照するように使用されていたかに対する変更、又はその組み合わせを変更する。したがって、オペレーションは、データエンティティへの変更のない新しいバージョンの作成にあってもよい。オペレーションは、データエンティティのデータを変更する1つのステップにあってもよく、このステップは、導出バージョンをもたらし、又は導出バージョンをもたらす複数の変更の中の1つのステップであってもよい。
オペレーションは、ユーザによって開始することができ、したがって、ユーザは、そのオペレーションを知っている。代わりに、オペレーションは、ユーザに見えなくてもよい。例えば、仮想化された環境においてデータエンティティの新しいイメージをインスタンス化するとき、又はかかるイメージを使用するときに、オペレーティングシステムの状態の変更に対応するオペレーションは、オペレーションの自動的な記録についてユーザに知らせることなく、適切に設定されたコンピュータ手段によって自動的に記録することができる。
導出バージョンは、基本バージョンから1以上のオペレーションによって導き出されたデータエンティティのバージョンである。導出バージョンは、コンピュータ可読媒体に物理的に格納したり、複数のコンピュータ可読媒体に分散して格納したりする必要はない。導出バージョンの作成は、基本バージョンに対して1以上のオペレーションを実行し、それらを格納し、受け付けることによって行われる。したがって、導出バージョンは、基本バージョン及びこの基本バージョンに対する1以上のオペレーションから作り出された合成バージョンとして見ることができる。導出バージョンは、ユーザ固有のバージョンを形成するために、ユーザによって、又は例えばコンピュータ手段によって自動的に作ることができる。
本発明による方法は、導出バージョンへの透過的なアクセスを提供する利点を提供する。すなわち、導出バージョンに対応する状態のデータエンティティが実際にはそういうものとしてメモリに物理的に存在しない場合でさえ、導出バージョンは、一般に、導出バージョンにアクセスするユーザ又はコンピュータシステムによって、基本バージョンであるものと認識される。アクセスされたデータエンティティの外観、機能、及び挙動は、したがって、導出バージョンに対応する状態のデータエンティティのメモリにおける非物理的存在が一般に導出バージョンにアクセスするユーザ又はコンピュータシステムによって認識されないようなものである。
透過性は、導出バージョンを特定する第1のアドレスによって、及び、基本バージョンを特定する第2のアドレスであって、受け付けられた1以上のオペレーションに等しいか又は結果が等価の1以上のオペレーションへの該第2のアドレスと第1のアドレスとのマッピングによって、提供される。
第1のアドレスは、例えば、第2のアドレスの1以上のマッピングテーブルにおける位置(複数可)を特定する。第1のアドレスと第2のアドレスとの間のマッピング又は対応は、適した構造を有する任意のデータ格納手段に格納することができる。マッピングは、仮想化の2つ以上のレベルが存在する場合に、第3のアドレス又はそれ以上のアドレスを介して実行することができる。
第2のアドレスは、データエンティティの基本バージョン、及び導出バージョンの作成につながった受け付けられた1以上のオペレーションに等しいか又は結果が等価の1以上のオペレーションの、例えば物理的なメモリ位置といった位置を特定する。
本発明による方法の一実施形態では、提供手順は、基本バージョンの、及び受け付けられた1以上のオペレーション、即ち受け付けられた1以上のオペレーションに等しい1以上のオペレーションの第2のアドレスにマッピングされた第1のアドレスを介した導出バージョンへのアクセスを提供する。したがって、1以上のオペレーションは、導出バージョンの再構築を可能にするよう簡易に格納することができる。
本発明による方法の別の一実施形態では、提供手順は、基本バージョンの、及び受け付けられた1以上のオペレーションに等価の1以上のオペレーションの第2のアドレスにマッピングされた第1のアドレスを介した導出バージョンへのアクセスを提供する。次いで、アクセスの提供は、基本バージョン、及び受け付けられた1以上のオペレーションに等価の1以上のオペレーションに基づいて導出バージョンを再構築することによって達成される。等価は、この場合には、結果が等価であることを意味する。受け付けられた1以上のオペレーションに等価の1以上のオペレーションは、受け付けられた1以上のオペレーションを分析し、可能な場合は、再配列し、マージし、削除することによって、受け付けられた1以上のオペレーションに基づいて生成される。例えば、データエンティティの部分への変更であるオペレーションに次ぐデータエンティティの部分の削除であるオペレーションは、データエンティティの部分の削除だけに等しいことを当業者であれば理解するであろう。
この実施形態は、受け付けられた一連のオペレーションの全てをメモリに維持する必要がないので、オペレーションを格納するためのメモリスペースを節約することができる。代わりに、結果が等価のオペレーションを保持するだけとすることができる。
受け付けられた1以上のオペレーションに等価の1以上のオペレーションは、任意のソフトウェア構成要素によっていつでも生成することができる。受け付けられた1以上のオペレーションに等価の1以上のオペレーションを生成することは、例えば、1以上のオペレーションを受け付けるステップ中に実行することができる。
本発明による方法は、導出バージョンを格納するために必要なメモリスペースを低減する利点を更に提供する。データエンティティの導出バージョンの完了状態を格納する代わりに、基本バージョン及び導出バージョンにつながるオペレーションのみが格納される。
一実施形態では、所与のデータエンティティの1つの基本バージョンのみが、例えば1以上のデータストレージユニットを含むコンピュータシステムに格納される。導出バージョンは、基本バージョンから作成される。導出バージョンの作成に対応する受け付けられた1以上のオペレーションに等しいか又は結果が等価の1以上のオペレーションもコンピュータシステムに格納される。これらのオペレーションは、中央サーバ、専用サーバ、又はクライアント端末に格納することができる。オペレーションが中央サーバ、又は同じ基本バージョンからそれぞれ作成された複数の導出バージョンに共通の専用サーバに格納されている場合には、基本バージョン及び導出バージョンに必要な合計メモリスペースの導出バージョンの数に対する比は、一般に、導出バージョンの数が増えると低減する。これは、多くの用途において、例えば、ユーザによって使用するようにそれぞれ構成されたデータエンティティのバージョンは、互いにわずかに異なるだけであるからである。
この利点は、特に、データエンティティに関連付けられている設定及びシステムファイルが、一度、即ち、データエンティティに関連付けられているプログラムが開始し、次いでこれらのファイルがそれ以上変更されない場合に、使用されるケースにおいて明らかである。
また、本発明による方法で、キャッシュも効率的に使用することができる。実際に、オペレーションと並行して導出バージョンを再構築するためにアクセスされる基本バージョンの一部分のキャッシングは、すべての導出されたバージョンについて一意であり、したがって、データの冗長性が低減する。
さらに、本発明による方法は、例えば、ソフトウェアアプリケーション又はオペレーティングシステムをテストするために、テスト又はデバッグ環境によく適合するという利点を提供する。これらの環境において、本発明による方法は、ソフトウェアアプリケーション又はオペレーティングシステムの特定のリリースにおけるアクションの特定のテストシナリオ又は特定のテストシーケンスの結果にそれぞれ対応するデータエンティティの多くの導出バージョンを格納するために使用することができる。特定のリリースは、基本バージョンである。オペレーションは、特定のリリースをテストするための入力アクションのシーケンスによってもたらされる。リリース及びオペレーションを格納するのに必要なメモリスペースは、低減され、さらに、オペレーティングシステム又はソフトウェアの状態は、すぐに回復することができ、データエンティティの状態の発展の再生を分析することができる。
データエンティティの異なるバージョンは、それらを作成するためになされたオペレーションを比較することによって、すぐに比較することもできる。格納されたデータの状態に関して、データエンティティに関連するアクションの2つのシーケンスの効果の比較を行うこともできる。比較は、より易しくなる。というのは、基本バージョンからの基礎を成す完全なデータではなく、オペレーションを比較するだけでよいからである。
一実施形態において、基本バージョン及びオペレーションからのデータエンティティの導出バージョンの再構築は、導出バージョンがデータエンティティを処理する実際の従来の方法に忠実に対応する状態でテストすることができるように、サーバ又はサーバの特定のセクションにおける導出バージョンに対応する完全なブロックレベル状態の一時的な格納をもたらす。しかし、テストがいったん終了すると、完全な状態をそこに保持する必要はない。サーバ又は導出バージョンの再構築に専用のサーバの特定のセクションは、導出バージョンの状態から異なる導出バージョンの状態にすぐに切り替えることができる。
再構築ユニット、モジュール、又はプログラムなどの再構築手段は、それがデータエンティティを処理する実際の従来の方法に忠実に対応する状態で処理することができるよう、データエンティティの状態を構築するために提供することができる。
本発明による方法によって、コンピュータシステムのメモリ容量の限界にすぐに達することなく、データエンティティの幾つかの並列の導出バージョンを容易に、及び効率的に保持することができる。これらの導出バージョンを容易に処理し、テストし、綿密に調べ、更に変更し、比較することができる。あるバージョンから別のバージョンへの切り替えを行うと同時に、それらの間の再生及び比較を行うことができる。
本発明による方法は、悪意のあるアプリケーションの脅威に適切に及び効率的に臨むために、悪意のあるアプリケーションを開始することができる環境によく適合しているという利点も提供する。悪意のあるアプリケーション又はウイルスがコンピュータシステムにあると判定されると、この方法は、悪意のあるアプリケーションがいつコンピュータシステムに追加されたか、及びいつ拡張を開始したか、又は動作したかを、システムになされるオペレーションを検査することによって、検査することができる。これにより、悪意のあるソフトウェアアプリケーションの挿入元を探し出す機会が与えられ、それとより良く闘えるようになる。特定のWebサイトがアクセスされたとき、又はアプリケーションが最初に開始されたとき、悪意のあるアプリケーションがシステムに追加されたことが、データエンティティになされたオペレーションを分析することによって決定された場合、対応策は、特定のWebサイト又はダウンロードされたアプリケーションのブロックを含むことができる。
本発明による方法により、データエンティティになされたオペレーションの記録を含む改訂制御システムを提供することもできる。
一実施形態においては、意図された仮想化を処理するために、仮想化ソフトウェア構成要素、アプリケーション、又は制御プログラムなどのコンピュータプログラムが提供され、実行される。
本発明による方法の一実施形態においては、複数の導出バージョンのうちの少なくとも1つは、基本バージョンに対して1以上のオペレーションを実行し、データエンティティの別のバージョンに対して1以上のオペレーションを実行し、基本バージョンに対して実行された1以上のオペレーションと他のバージョンに対する1以上のオペレーションをマージすることによって作成される。他のバージョンは、例えば、同じエンティティの導出バージョンである。マージによって、基本バージョン及び別のバージョンの双方から来る合成導出バージョンを取得することができる。テスト環境の場合には、この実施形態は、2つのテストシーケンスを結合し、データエンティティを、単一のテストシーケンスがもたらすことのない状態にすることができる。
マージプロセスは、基本バージョンになされたすべてのオペレーションを結合することによって行うことができる。衝突がマージ中に起こる場合には、あるタイプのオペレーションに別のタイプよりも高い優先度を割り当てる、バージョンのうちの1つに対してなされたオペレーションに優先度を割り当てる、ユーザ又はオペレータに、各衝突に関して何を行うかを選択するよう促す、どのユーザ又はコンピュータ構成要素がオペレーションを行ったか、日付などに基づいて衝突を解決するなど、異なる手順が適用され得ることを当業者であれば理解されよう。
本発明による方法の一実施形態において、導出バージョンを作成するために1以上のオペレーションを受け付けるステップは、原子的性質を有する。即ち、1以上のオペレーションがすべて受け付けられるか、又は1以上のオペレーションは受け付けられず、導出バージョンが1以上のオペレーション以前の状態で保持される。
この実施形態において、1以上のオペレーションを受け付けることは、原子的プロセスを形成する1以上のステップを含む。原子的プロセスには、可能な結果が2つしかない。すなわち、成功又は失敗である。オペレーションのうちの一以上を受け付けて、新しい導出バージョンを生成することが失敗した場合、データエンティティの状態は、すべてのオペレーション以前の状態に復元される。その場合、導出バージョンは、受け付けステップの部分的な成功に基づいて作成されない。受け付けプロセスの成功の場合、導出バージョンに至る中間のオペレーションは、保持されてもされなくてもよい。中間オペレーションを保持しないことは、メモリスペースを節約し、中間オペレーションを保持することは、導出バージョンに至った変更を追跡することを可能とする。
導出バージョンを作成するために1以上のオペレーションを受け付けるステップの原子的性質又は原子性は、存在理由を有しており、オペレーション(例えば変更)のそれぞれが個々に原子的プロセスを介して作成されたかもしれない場合でさえ、利点を提供する。言い換えれば、そのオペレーションレベルにおける原子性、すなわち、各個々のオペレーションの原子性は、そのバージョンレベルの原子性、すなわちバージョニングの原子性からその利点を奪わない。その理由は、あるバージョンの作成は、オペレーションを構成するデータより多くのデータを作成するからである。バージョンの作成は、バージョンを形成し、それをあるバージョンとラベル付けし、バージョンを再構築するのに必要なデータがどこに格納されているかを示し、1以上のオペレーションを受け付けるステップがそれらを処理する(例えば、一連のオペレーションの最終結果に影響を与えないオペレーションを取り除くため)ことを伴う場合、処理の結果を示すためのメタデータを作成する。
バージョンレベルの原子性は、バージョニングプロセスにおける整合性の保証を提供し、変更レベルでの原子性に基づいているが、それを超えて高い信頼性を提供する。
本発明による方法の一実施形態においては、基本バージョンに対する1以上のオペレーションのそれぞれを実行するステップは、原子的性質を有する。すなわち、オペレーションが受け付けられるか、又は、オペレーションは受け付けられず、そのオペレーションの前の状態が保持され、そのオペレーションが破棄される。
本発明による方法の一実施形態においてでは、この方法は、導出バージョンに対して1以上のオペレーションを実行し、1以上のオペレーションを格納し、1以上のオペレーションを受け付けて、更なる導出バージョン(further derived version)を作成することによって、データエンティティの更なる導出バージョンを作成するための更なる作成手順を更に含む。この実施形態では、提供手順は、更なる導出バージョンへのアクセスを更に提供するためのものである。この実施形態によって、導出バージョン及びこの導出バージョンに対するオペレーションから作り出された合成バージョンである更なる導出バージョンの作成が可能になる。
本発明による方法の一実施形態において、完全な再帰が可能である。導出バージョンから、又は別の更なる導出バージョンから更なる導出バージョンを作成することができる。したがって、再構築も再帰的プロセスである。その意味で、本発明による方法の一実施形態は、データエンティティの基本バージョンになされるオペレーションを表すツリー又は階層構造を制御するための方法である。
これらの実施形態は、導出バージョン及び更なる導出バージョンのツリー構造又は階層構造を基本バージョンから作成することができるという利点を有する。導出バージョン又は更なる導出バージョンへのアクセスは、各バージョンの全状態をメモリに保持することが必要ないという事実にもかかわらず、ユーザが導出バージョン及び更なる導出バージョンを従来のデータエンティティとして認識するという点で透過である。ツリー又は階層構造自体は、導出バージョン及び更なる導出バージョン、及びそれらにリンクする論理的なオペレーションを再構築することができる記録されたオペレーションの存在以外には、メモリに物理的に存在する必要はない。
導出バージョン及び更なる導出バージョンのツリー構造又は階層構造を作成可能とすることによって、導出バージョンを格納するために必要なメモリスペースが更に低減する。実際に、2つの計画された導出バージョンが、基本バージョン、導出バージョン、又は更なる導出バージョンであり得るバージョンに対して行われる同じ最初のオペレーションを共有している場合には、2つの計画された導出バージョンはいずれも、共通の中間導出バージョンから作成することができる。これによって、バージョンを格納するために必要なメモリスペースが低減する。
この実施形態は、テストシナリオ及び結果として得られたバージョンを、ツリー又は階層構造にまとめることができ、したがって、必要なメモリスペースを増加させることなく、使用可能なテストされたアクション及びテストされた結果の状態のシーケンスを増加させるという点で、テスト又はデバッグ環境によく適合している。
導出バージョン、すなわち、任意の中間バージョンなしに基本バージョンから導出されたバージョン、及び更なる導出バージョン、すなわち、少なくとも中間導出バージョンを介して基本バージョンから導出されたバージョンは、同じソフトウェア構造を有することができ、コンピュータ実装の観点から、及びユーザ対話の観点から、同じように取り扱うことができる。本発明による方法の異なる実施形態を明確な方法で説明するために、ここでは区別することがある。
一実施形態は、完全な再帰を提供する。この実施形態では、導出バージョン及び更なる導出バージョンは、導出のレベルの数に関して、制限がない。別の実施形態は、制限された再帰を提供する。この実施形態では、導出バージョン及び更なる導出バージョンは、導出のレベルの数に関して、制限がある。更に別の実施形態は、再帰を提供しない。この実施形態において、基本バージョンから導出する導出バージョンのみが提供される。
完全な又は部分的な再帰を提供する実施形態においては、より一般的な意味を有する「導出バージョン」という表現が、「導出バージョン」(上記で定義されたような狭い意味を有する)、及び「更なる導出バージョン」(上記で定義)の双方をカバーするために使用されていることがある。その場合、「導出バージョン」(狭い意味を有する)は、したがって、例えば「第1の導出バージョン」又は「第1レベルの導出バージョン」と称していることがある。したがって、当業者であれば、これらの問題の観点から本発明を理解されよう。
本発明による方法の一実施形態においては、導出バージョン又は更なる導出バージョンは、データエンティティの状態に関するデータ、及び、導出バージョンへのアクセスを提供し、それを再構築するための第2のアドレスとの第1のアドレスのマッピングに関するメタデータを含む。この実施形態において、バージョンは、実際のデータ及びバージョンの再構築を可能にする機能をもつメタデータから作り出された論理的な構成として見ることができる。例えば、メタデータは、どのブロックがバージョンを作り出すか、及びバージョンのブロックごとに、基本バージョンと比較したブロックの状態を示す。メタデータは、例えば、「メモリブロックに変更なし、ただし、ブロック25が2つの連続する変更によって変更され、これら2つの連続する変更が・・・、メモリブロック65が1つの変更によって変更され、この変更が・・・など」を意味するように変換することができる。オペレーションは、データエンティティの導出状態を再構築するためのブロックレベルの差分情報とすることができる。
本発明による方法の一実施形態においては、データエンティティがブロックデバイスに格納され、この方法は、ブロックデバイスに格納されたデータエンティティ及びデータエンティティのバージョンを管理するように構成される。ブロックデバイスは、データが動かされる、すなわち、ブロックの形態で書かれ、読み出されるメモリストレージユニットである。ブロックデバイスの例は、ハードディスク及びCD−ROMドライブなどアドレス指定可能なデバイスとすることができる。
データエンティティがブロックデバイスに格納されると、バージョンは、メモリブロックレベルのデータエンティティの状態として見ることができる。基本バージョンは、そのブロックデバイスに、又は基本バージョンが幾つかのブロックデバイスにわたって分散される場合は複数のブロックデバイスに最初に格納されたバージョンである。データエンティティの導出バージョンは、基本バージョン、及びデータエンティティになされた変更であり得るオペレーションに基づいて再構築することができ、この場合、各変更は、ブロックレベルでの変更に対応する。任意の数のブロックレベルの変更の後、例えば、受け付けのステップが原子的プロセスである場合、コミットアクションを介して変更が受け付けられ、導出バージョンが受け付けられる。ブロックの読み取り、書き込み、更新、削除、又は追加アクションの原子的特徴は、ハードウェアベースであり、ブロックデバイス製造業者によって保証することができる。
元の基本バージョンの入出力(I/O)メモリブロックレベルのオペレーション(例えば変更)を実際に実行する代わりに、ブロックレベルのオペレーションは、基本バージョンが影響を受けないように格納される。ブロックレベルのオペレーションを格納するために、データエンティティになされた変更を傍受するための手順を提供することができる。かかる手順は、専用ソフトウェア構成要素によって動作させることができ、ユーザ又はクライアントコンピュータシステムとの対話中に時間に応じてどのブロックが変更されるかをデータエンティティの一時的なイメージにおいて検出することにあり得る。データエンティティになされた変更を傍受するために提供された手順は、サンドボックスの様に制御されるゾーンを使用するソフトウェアベースの仮想化手順とすることができる。
また、本発明は、装置に関する。好適な実施形態は、従属クレームに記載されている。
本発明の装置は、基本バージョンを有するデータエンティティへのアクセスを提供する、及びデータエンティティの導出バージョンの作成を可能にするように構成される。この装置は、基本バージョンに対して1以上のオペレーションを実行し、1以上のオペレーションを格納し、1以上のオペレーションを受け付けて、導出バージョンを作成することによって、データエンティティの導出バージョンを作成するように構成された作成ユニットを備える。この装置は、基本バージョンに基づく導出バージョン、及び受け付けられた1以上のオペレーションに等しい、又は結果が等価の受け付けられた1以上のオペレーションを再構築することによって、基本バージョンの、及び受け付けられた1以上のオペレーションに等しい、又は結果が等価の1以上のオペレーションの第2のアドレスにマッピングされた第1のアドレスを介して導出バージョンへのアクセスを提供するように構成された提供ユニットを更に備える。
本発明の一実施形態による方法及び装置は、したがって、バージョン間で、すなわち、基本バージョンから導出バージョン、又は導出バージョンから更なる導出バージョンに、バージョンのメモリスペースが変わり得る。この実施形態において、ユーザ又はコンピュータシステムは、ある量のメモリスペースがこのユーザ又はコンピュータシステムによって使用可能である、又は確保されていると認識している場合があるが、これは、実際にはそうではない。
次に、本発明の実施形態を、添付の図面と共に説明する。
本発明による方法の一実施形態のフロー図である。 本発明による方法の実施形態のネットワーク構成を概略的に示す図である。 本発明による方法の実施形態のネットワーク構成を概略的に示す図である。 本発明による方法の実施形態のネットワーク構成を概略的に示す図である。 本発明の様々な実施形態におけるデータエンティティのバージョン間の論理的な関係の略図である。 本発明の様々な実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す図である。 本発明の様々な実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す図である。 本発明の様々な実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す図である。 本発明の様々な実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す図である。 本発明による方法の別の実施形態のフロー図である。 本発明の他の実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す図である。 本発明の他の実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す図である。 本発明の他の実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す図である。 本発明の他の実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す図である。 本発明による方法の別の実施形態のネットワーク構成を概略的に示す図である。 本発明による装置の実施形態を概略的に示す図である。 本発明による装置の実施形態を概略的に示す図である。 本発明による方法及び装置の一実施形態を概略的に示す図である。 図14に関連して説明したログファイルの一実施形態の構造を概略的に示す図である。
詳細な説明
以下、本発明を、特定の実施形態と共に説明する。これらの特定の実施形態は、当業者によりよい理解を提供する役割を果たすが、決して添付の特許請求の範囲によって定義される本発明の範囲を制限するためのものではないことに留意されたい。特に、説明を通じて個別に説明されている実施形態は、相互に排他的ではない限り、組み合わせて更に実施形態を形成することができる。
図1は、本発明による方法の一実施形態のフロー図を示す。作成手順S2は、ユーザ又はコンピュータシステムにデータエンティティの導出バージョン16を作成させるために提供される。ユーザは、導出バージョン16を自発的に作成することができ、この目的を達成するために、ユーザインターフェイスが提供されてもよい。また、ユーザがデータエンティティの基本バージョン12を変更するとすぐに、作成手順S2をコンピュータ手段によって動作させてもよい。したがって、作成手順S2は、ソフトウェア構成要素などのコンピュータ手段によって、自動的に動作させることができる。作成手順S2は、いずれにせよ、コンピュータで実施される作成手順である。
作成手順S2は、S22でデータエンティティの基本バージョン12に対して1以上のオペレーション14を実行することによって行われる。オペレーション14は、データエンティティを使用するソフトウェアアプリケーションとユーザとの対話中いつでも発生し得る。データエンティティは、1組の設定ファイル、レジストリエントリ若しくはライブラリ、又はドキュメントファイルとすることができる。オペレーション14は、ソフトウェアアプリケーションをサポートするデータに対する情報の変更、更新、削除、又は追加のための必要性が生じると、ソフトウェアプログラムの実行中に行われてもよい。この場合には、データはデータエンティティである。
1以上のオペレーション14がS22で実行されると、これらのオペレーション14は、後に取り出すために、S24で格納される。S24での1以上のオペレーション14の格納は、各オペレーション14が実行された後、又は1以上のアクセスされる記憶装置と行われる入出力交換を監視しているソフトウェア構成要素によってこのオペレーション14が行われるときに、行うことができる。
作成手順S2は、S26で1以上のオペレーション14を受け付けて、導出バージョン16を作成することも含む。S26でのオペレーション14の受け付けは、原子的プロセスを形成し得る。S26の受け付けのプロセスが実行されると、オペレーション14をマージするか、又は一連のオペレーション14の受け付けの全体的な結果に如何なる影響も与えないオペレーション14を削除することによって、オペレーションの数を低減するために、例えば変更など、オペレーション14の内容を分析することができる。少なくとも2つの変更を含む複数のオペレーション14は、場合によっては、その内容が基本バージョン12の内容と同じである導出バージョン16、又はその内容が導出バージョン16の内容と同じである更なる導出バージョン20に全体的につながる場合がある。これは、少なくとも2つの変更が互いに相殺する場合に起こる。その場合、少なくとも2つの変更を含む複数のオペレーション14は、データ自体に任意の変更を加えることなく、新しいバージョンを作成するオペレーションと等価である。
また、図1に示す本発明の実施形態は、第1のアドレスを介して導出バージョン16へのアクセスを提供するための提供手順S4も含む。第1のアドレスは、基本バージョン12、及び基本バージョン12に基づいてS42で導出バージョン16の再構築を可能にするオペレーション14の第2のアドレスにマッピングされている。
非限定的な例として、データエンティティは、オペレーティングシステムを構成する全てのデータによって構成されていてもよい。この特定の場合には、サーバ10に、オペレーティングシステムの基本バージョン12を提供することができる。仮想化プロセス中、1人のユーザのために、オペレーティングシステムが開始されると、サーバのプロセッサ及びRAMにおいて対応するプログラムが実行され、サーバメモリ10に格納されるデータに加えられる変更であるすべてのオペレーション14が傍受され、記録される。同様に、プロセッサ及びRAMにおいて実行されるオペレーティングシステムがメモリの特定のブロックにデータを要求すると、ソフトウェア構成要素が、I/O要求を傍受し、I/O要求を傍受する機能を有するソフトウェア構成要素は、特定の要求されたブロックが変更されたことを検出した場合に、記録された変更14に基づいて、変更された情報を戻す。
これによって、1つのサーバにおいて複数のオペレーティングシステムを実行するのに必要なメモリの相当な低減が可能になる。
図2aは、本発明による方法の一実施形態のネットワーク構成を概略的に示す。基本バージョン12は、データストレージユニット10に格納されている。この例示の実施形態においては、2人のユーザが2つのクライアント端末4a、4bにアクセスし、それぞれ、データエンティティにアクセスし、データエンティティを変更して、基本バージョン12に基づいてユーザ固有の導出バージョン16を作成する。任意の数のクライアントを提供することができる。
クライアント端末4a、4bと基本バージョン12がストレージユニット10に格納されているデータエンティティとの間の対話は、透過的である。このことは、各クライアント端末4a、4bが、ストレージユニット10に格納された状態のデータエンティティにアクセスしていると認識するが、実際には、クライアント端末4a、4bの間で基本バージョン12が共有されており、ユーザ固有の導出バージョンMa、Mb14を使用して、導出バージョン16を再構築することを意味する。オペレーションMa14及びMb14は、ストレージユニット8a、8bにそれぞれ格納される。クライアント端末4a、4bとデータエンティティとの間の対話、すなわち、基本バージョン12とオペレーションMa、Mb14との対話は、ネットワーク6を介して行われる。
ネットワーク6は、FibraChannel−protocol、iSCSI、RDMA、又はFibreChannel Hardwareなどの任意のプロトコルに基づく、例えばストレージエリアネットワーク(SAN)又はローカルエリアネットワーク(LAN)など、任意の種類のネットワークとすることができる。
別の実施形態においては、データストレージユニット8a及び/又は8bは、データストレージユニット10と同じであってもよい。更に別の実施形態においては、データストレージユニット8a及び/又は8bは、クライアント端末4a及び/又は4b内にそれぞれ統合することができる。
図2bは、本発明による方法の別の実施形態のネットワーク構成を概略的に示す。
この実施形態においては、サーバコンピュータ11が含まれ、本発明による方法の実行を担当するソフトウェアプログラム、ユニット、又は構成要素を保持する。ソフトウェアプログラム、ユニット、又は構成要素は、例えば、オペレーションを傍受することによって、基本バージョン12に基づいてS22で実行されるオペレーション14を特定することを担当する。ソフトウェアプログラム、ユニット、又は構成要素は、更に、それらのオペレーション14を格納することを担当する。また、ソフトウェアプログラム、ユニット、又は構成要素は、導出バージョン16を作成するためにオペレーションが受け付けられると、マッピング情報を更新し、オプションとして、オペレーション14を処理し、マージすることも担当する。最後に、ソフトウェアプログラム、ユニット、又は構成要素は、再構築によって導出バージョンへのアクセスを提供することを担当する。
サーバ11上で動作しているソフトウェアプログラム、ユニット、又は構成要素は、システムの透過機能を実施する、すなわち、サーバ11とデータストレージユニット10、8a、8bとの間の入出力交換を処理して、それらをクライアント端末4a、4bに関して透過にするための仮想化コア構成要素として見ることができる。このために、ソフトウェアプログラム、ユニット、又は構成要素は、基本バージョン12、オペレーション14、及び基本バージョン12及びオペレーション14を一致させるためのマッピング情報(メタデータ)を介してメモリに格納された対応するデータが存在する間、導出バージョン16に対応するプログラムを実行するための一時的な実行スペースを有することができる。
図2a及び図2bに示される実施形態においては、方法は、ネットワーク6を介してクライアント−サーバシナリオで実行される。あるいは、この方法は、単一のコンピュータ内で実行され得る。
図3は、本発明による方法の別の実施形態のネットワーク構成を概略的に示す。この実施形態において、基本バージョン12x、12yは、それぞれ2つのストレージユニット10x、10yに格納されている2つの部分、パート1及びパート2を含む。データエンティティと対話する第1のクライアント端末4aは、基本バージョン12の2つのパート12x、12yを使用し、基本バージョン12x、12yになされるそれぞれのオペレーションMa14x、14yは、それぞれ2つのストレージユニット8ax、8ayに格納される。
これに対して、クライアント端末4bは、すべてのそのオペレーションMb14を1つのストレージユニット8bに格納する。
図3のネットワーク構成は、基本バージョン12及びオペレーション14を単一のストレージユニットに格納する必要がないことを示す。基本バージョン12に対応するデータを格納するために使用される複数のストレージユニット10、及びオペレーション14を格納するための複数のストレージユニット8があってもよい。
一実施形態においては、図2bに示すサーバ11上で動作しているソフトウェアプログラム、ユニット、又は構成要素は、データストレージユニット10x、10y、8ax、8ay、及び/又は8bに格納される情報へのアクセス及び情報の制御を透過的に管理するために使用される。言い換えれば、ソフトウェアプログラム、ユニット、又は構成要素は、データエンティティの分散データ及びバージョンへの透過的なアクセス及びその制御を管理するために、仮想化構成要素であると見ることができる。
図4は、本発明の一実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す。基本バージョンBV12が表されている。3つの導出バージョン16、DVa、DVb、・・・、DV..をそれぞれ作成するために、この基本バージョンBV12から、オペレーション14の3つのシーケンス、シーケンスMa1、Ma2、・・・、Man、シーケンスMb1、Mb2、・・・、Mbn、及びシーケンスM..1、M..2、・・・、M..nが実行される。オペレーション14の3つのシーケンスは、それぞれ一意の基本バージョン12から開始する。
図5は、本発明の別の実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す。この実施形態は、1つのオペレーション14がオペレーション14の複数のシーケンス又は分岐をもたらすという点で、図4の実施形態とは異なる。したがって、基本バージョンBV12から、複数の導出バージョンDVa1、DVa2,・・・,DVan16が一連のオペレーション14から作成され、この場合、1つの動作Ma114は、複数の導出バージョンDVa1、DVa2,・・・,DVan16のそれぞれにつながる共通の第1の変更14である。
図6aは、基本バージョンBV12、及び異なるバージョン(foreign version)FV18と呼ばれる別のバージョンから導出バージョンDV16に至るオペレーション14の論理的な構成を概略的に示す。オペレーションMa1’、Ma2’,・・・,Man’14とオペレーションMa1、Ma2,・・・,Man14との間でマージが行われる。
本発明の方法の別の実施形態におけるデータエンティティのバージョン間の関係を概略的に示す別の図である図6bに示すように、マージ後、オペレーションを受け付けて、導出バージョンDV16を作成する前に、更にオペレーションMa..16を行うことができる。
図7は、本発明の別の実施形態におけるデータエンティティのバージョン12、14、16間の論理的な関係を概略的に示す別の図である。この場合、1つの導出バージョンDV16は、基本バージョンBV12になされるオペレーション14に基づいて作成される。オペレーション14の最初のシーケンスは、第1のオペレーションMa114が行われた後、オペレーション14の2つの分岐又はサブシーケンス、すなわちオペレーションの分岐Ma2、・・・、Man14及びオペレーションの分岐Ma2’、・・・、Man’14に分割される。マージは、導出バージョンDV16を作成するために、オペレーション14のこれら2つの分岐間で行われる。
図8は、本発明による方法の別の実施形態のフロー図を示し、導出バージョン16に基づいて更なる導出バージョン20を作成するための更なる作成手順S6が提供される。この実施形態は、別の更なる導出バージョン20から更なる導出バージョン20を作成するように構成することができる。これは、導出バージョン16、20の再帰ベースの作成を提供する。一般に、バージョン12、16、20は、先行バージョン(antecedent version)を有していないか(バージョンは、このとき、基本バージョンであると言われる)、1つの先行バージョンを有するか、又は複数の先行バージョンを有する場合がある。
バージョン12、16、20が複数の先行バージョンを有する場合には、これらの先行バージョンは、連続するバージョン(1つのバージョンが1つのバージョンにつながる)、バージョンのマージ(複数のバージョンがある時点で1つのバージョンにつながる)、又はバージョンの分割(1つのバージョンがある時点で複数のバージョンにつながる)、及びバージョンのマージ及び分割(複数のバージョンがある時点で複数のバージョンにつながる)を含み得る。各導出バージョン16又は更なる導出バージョン20は、子バージョンとして見ることができる別の更なる導出バージョン20の基礎として働くことができる。
データエンティティの更なる導出バージョン20を作成するための更なる作成手順S6は、S62で導出バージョン16に対して1以上の更なるオペレーション14を実行することによって行われる。次いで、1以上の更なるオペレーション14がS64で格納される。最後に、手順S6は、S66で1以上の更なるオペレーション14を受け付けて、更なる導出バージョン20を作成することを含む。
更なる導出バージョン20へのアクセスを提供するための提供手順S8は、図1に示し提供手順S4に類似している。同様に、再構築ステップS82は、図1に関連して示した再構築ステップS42に類似している。しかし、基本バージョン12からの再構築ステップS82は、更に、先行バージョン16,20、すなわち、基本バージョン12と更なる導出バージョン20との間の中間であるバージョン16、20を使用して、更なる基本バージョン20を再構築することを含む。
その点で、本発明による方法は、データエンティティの複数のバージョン12、16、20を管理するための改訂制御システムを提供することができる。こうした改訂制御システムは、有用であり、技術開発、ソフトウェア開発、業務用及び法律文書のバージョニングの技術管理などの技術分野において適用可能である。
図9は、本発明の別の実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示しており、ここでは、まず、基本バージョンBV12から導出バージョンDV、DV、・・・、DV..16を作成するために、一連のオペレーション14が実行され、次いで、導出バージョンDV、DV、・・・、DV..16から更なる導出バージョンDVa’、DVb’、・・・、DV..’20を作成するために、他のオペレーションMa1、Mb1、・・・、M..l14が実行される。
図10は、更に別の実施形態を示しており、ここでは、一連の更なる導出バージョンDVa’20は、最終的に、それぞれ1つの更なる導出バージョン20につながるオペレーションの一連の分岐Mal、・・・、Mal’、・・・、Mal’’14を実行することによって、1つの導出バージョンDV16から作成される。
図11aは、本発明の別の実施形態におけるデータエンティティのバージョン間の論理的な関係を概略的に示す別の図を示しており、ここでは、更なる導出バージョンDVa’20は、基本バージョンBV12に対して実行され、導出バージョンDV16につながるオペレーション14から、前記導出バージョンDV16に対して実行されるオペレーション14から、及び別のバージョン、すなわち異なるバージョンFV18に対して実行されるオペレーション14から作成される。オペレーション14は、更なる導出バージョンDVa’20を作成するために図示のようにマージされる。
図11bは、バージョン12、16、20、及びオペレーション14のわずかに異なる構成を示す。導出バージョンDV16は、基本バージョンBV12になされるオペレーション14から作成される。次いで、この導出バージョンDV16から、オペレーションMa2、Ma2’14の2つの分岐が行われ、格納され、マージされ、受け付けられて、更なる導出バージョンDVa’20が作成される。
図12は、本発明による方法の別の実施形態のネットワーク構成を概略的に示す図である。この実施形態では、クライアント端末4bが導出バージョン16を再構築できるようにするために、メタデータmD24がストレージユニット22に格納される。導出バージョン16は、論理的な構成であり、当該構成は、データエンティティ、すなわち基本バージョン12及びオペレーションMb14の状態に関するデータ、及び導出バージョン16又は更なる導出バージョン20へのアクセスをS4、S8で提供し、導出バージョン16又は更なる導出バージョン20をS42、S82で再構築するための第2のアドレスと第1のアドレスとのマッピングに関するメタデータmD24を含む。
メタデータmD24は、クライアント端末4bに直接リンクされているものとして図12に示されている。これは、1つのオプションにすぎない。他のオプションは、メタデータmD24を使用したマッピングに基づく導出バージョン16、20の再構築を担当するソフトウェア構成要素を介して(例えば、図2bに示されるように、サーバ11に格納される)メタデータmD24へのアクセスを提供する他の方法を含む。マッピング情報、すなわち、メタデータmD24は、例えば、オペレーション14と同じデータストレージユニット8a、8b、又は基本バージョン12と同じデータストレージユニット12に格納することができる。
各導出バージョン16、20は、メタデータ24、及びバージョン自体及びすべてのその先行バージョンのデータに基づいて再帰的に構築されるものとして見ることができる。
図13a及び図13bは、本発明による装置の実施形態を概略的に示す図である。基本バージョンBV12を有するデータエンティティへのアクセスを提供し、データエンティティの導出バージョン16の作成を可能にするように構成された装置30は、基本バージョン12に対して1以上のオペレーション14を実行し、1以上のオペレーション14を格納し、1以上のオペレーション14を受け付けて、導出バージョン16を作成することによって、データエンティティの導出バージョン16を作成するように構成された作成ユニット32を含む。装置30は、基本バージョン12、及び受け付けられた1以上のオペレーション14に等しい、又は結果が等価の1以上のオペレーションの第2のアドレスにマッピングされた第1のアドレスを介して、導出バージョン16へのアクセスを提供するように構成された提供ユニット34も備える。導出バージョン16へのアクセスを提供するステップは、基本バージョン12、及び受け付けられた1以上のオペレーション14に等しい、又は結果が等価の1以上のオペレーションに基づいて導出バージョン16を再構築することによって実行される。
図13bに示す装置においては、導出バージョン16から更なる導出バージョン20を作成するために、又はより一般的には、別の更なる導出バージョン20から更なる導出バージョン20を作成するために、更なる作成ユニット36が更に提供される。
「ユニット」という用語が本明細書で使用される場合(例えば、「作成ユニット」、「提供ユニット」、「更なる作成ユニット」など)、ユニットの構成要素をどのように分散することができるか、及びユニットをどのように集めることができるかに関する制限はない。すなわち、ユニットの構成要素は、意図された機能をもたらすために、異なるソフトウェア又はハードウェア構成要素又はデバイスに分散することができる。複数の別個のユニットを、意図した機能を提供するために集めることもできる。
図14は、本発明による方法及び装置の一実施形態を示す。
ストレージユニット8aには、2つの一連のバージョンV1a、V1b、V1c、及びV2a、V2bが、格納され、制御される。一連のバージョンはそれぞれ、ログファイルを構成し、オペレーション14(図示せず)及びメタデータ24(図示せず)を含む。ストレージユニット8aの一部分8a−1において、一連の3つのバージョン、V1a、V1b、V1cが格納される。ストレージユニット8aの別の部分8a−2には、一連の2つのバージョンV2a、V2bが格納される。これらのバージョンV1a、V1b、V1c、V2a、V2bは、制御ユニット3aによって制御される。
別のストレージユニット8には、1つの一連のバージョンV3a、V3b、V3cが格納され、制御される。この一連のバージョンも、ログファイルを構成し、オペレーション14(図示せず)及びメタデータ24(図示せず)を含む。一連のバージョンV3a、V3b、V3cは、より具体的には、ストレージユニット8の部分8−1に格納される。これらのバージョンV3a、V3b、V3cは、制御ユニット3によって制御される。
制御ユニット3a、3は、バージョンへのアクセス、すなわち、バージョンの内容へのアクセスを制御し、それらを管理する。バージョンを管理することは、バージョンの作成を制御することを含む。
クライアント端末4a、4bはそれぞれ、制御ユニット3a、3によって制御されるバージョンにアクセスし、これらの制御ユニット3a、3と対話するための対話構成要素5a、5bを備える。クライアント端末4a、4bは、対話構成要素5a、5bを介してバージョンにアクセスする。クライアント端末4a、4bと制御ユニット3a、3との間の対話は、コンピュータネットワーク6(図4には示されていないが、他の図2、2b、3、及び12に図示)を介して達成することができ、又は、ストレージユニット8a、8b及びクライアント端末4a、4bが単一コンピュータに格納されるハードウェア構成要素、又は単一コンピュータで実行されるソフトウェア構成要素である場合、単一コンピュータ内で達成することができる。
各一連のバージョンは、ログファイルを構成し、ログファイルの機能は、オペレーション14及びバージョン16、20を構成するメタデータ24を格納することである。
この実施形態において、ブロックは、ログファイルに格納される。ブロックを使用して、バージョンを作成するよう、オペレーションの原子的特徴及びオペレーションの受け付けを保証する。
図15は、図14に関して説明したログファイルの一実施形態の構成を示す。ログファイル内のデータの異なるクラスが示されている。
スーパーブロック202−1、202−2がログファイルに格納される。オペレーション4を受け付けて、導出バージョン16又は更なる導出バージョン20を作成することにある原子的プロセスの完了後、スーパーブロックの少なくとも1つが更新される。
参照203−1、203−2により特定される別のデータの組は、ログファイルに格納される。これらのデータ203−1、203−2は、バージョンのメタデータ24を含み、バージョンを再構築するための情報を取得することを可能にする。これらのデータ203−1、203−2は、マッピング関数、すなわち、第1のアドレスをマッピングする関数、バージョンの識別情報、及び第2のアドレス、すなわち、基本バージョン12及びオペレーション14の位置の識別情報、及び/又はバージョンに対応する実際の状態を再構築するために必要な先行バージョン16、20を符号化する。一実施形態において、これらのデータ片203−1、203−2は、ブロックレベルのマッピング関数を構成する。
さらに、データ204−1、・・・、204−Nは、バージョン12、16、20になされる変更であり得る実際のオペレーション14を表すログファイルエントリに含めることができる。
構成に応じて、ログファイルエントリに含まれるデータの一部は、上述したように、含まれていても含まれていなくてもよく、又は部分的に含まれているだけでもよい。実際のオペレーション14は、例えば、別の場所に格納されてもよい。ログファイルエントリは、単一の場所に格納する必要はなく、代わりに、幾つかのデータストレージユニットに格納されてもよい。
本発明は、オブジェクトベースの記憶装置に適用することもできる。ブロックデバイスに比べて、オブジェクトベースの記憶装置は、抽象レベルを上げる。論理的な配列においてそれらのインデックスによってアドレス指定されるブロックの論理的な配列の抽象化を提示する代わりに、オブジェクトストアは、オブジェクトの集まり、すなわち意味的に重要なデータエンティティの集まりとして表される。
本発明を詳細な例に基づいて説明してきたが、これら詳細な例は、当業者により良い理解を提供するためのものにすぎず、本発明の範囲を制限するためのものではない。本発明の範囲は、むしろ、添付の特許請求の範囲によって定義される。

Claims (31)

  1. 基本バージョン(12)を有するデータエンティティへのアクセスを提供し、
    前記データエンティティの導出バージョン(16)の作成を可能にする
    ための方法であって、
    前記基本バージョン(12)に対して1以上のオペレーション(14)を実行し(S22)、
    前記1以上のオペレーション(14)を格納し(S24)、
    前記1以上のオペレーション(14)を受け付けて(S26)、導出バージョン(16)を作成する
    ことによって前記データエンティティの導出バージョン(16)を作成するための作成手順(S2)と、
    前記基本バージョン(12)、及び、前記受け付けられた1以上のオペレーション(14)に等しいか又は結果が等価の1以上のオペレーション(14)に基づいて、前記導出バージョン(16)を再構築する(S42)ことによって、
    前記基本バージョン(12)、及び、前記受け付けられた1以上のオペレーション(14)に等しいか又は結果が等価の1以上のオペレーション(14)の第2のアドレスにマッピングされた第1のアドレスを介して前記導出バージョン(16)へのアクセスを提供するための提供手順(S4)と、
    を含む方法。
  2. 前記データエンティティが1以上のデータを含む請求項1に記載の方法。
  3. 前記作成手順(S2)において、前記1以上のオペレーション(14)が1以上の記憶装置(8a、8ab、8ax、8ay)に格納される、請求項1又は2に記載の方法。
  4. 前記1以上の記憶装置(8a、8ab、8ax、8ay)のそれぞれがブロックごとにアドレス指定可能である、請求項3に記載の方法。
  5. 複数の導出バージョン(16)がそれぞれ、前記基本バージョン(12)に対して1以上のオペレーション(14)を実行すること(S22)によって作成される(S2)、請求項1〜4のいずれか一項に記載の方法。
  6. 前記複数の導出バージョン(16)のうちの少なくとも1つが、
    前記基本バージョン(12)に対して1以上のオペレーション(14)を実行し(S22)、
    前記データエンティティの別のバージョン(18)に対して1以上のオペレーション(14)を実行し、
    前記基本バージョン(12)に対して実行される前記1以上のオペレーション(14)及び前記別のバージョン(18)に対する前記1以上のオペレーション(14)をマージすることによって
    作成される(S2)、請求項5に記載の方法。
  7. 前記1以上のオペレーション(14)を受け付けて、前記導出バージョン(16)を作成する前記ステップ(S26)が、原子的性質を有する、すなわち、
    前記1以上のオペレーション(14)がすべて受け付けられるか、又は
    前記1以上のオペレーション(14)が受け付けられず、前記データエンティティが前記1以上のオペレーション(14)以前の状態で保持される、
    請求項1〜6のいずれか一項に記載の方法。
  8. 前記基本バージョン(12)に対して前記1以上のオペレーション(14)のそれぞれを実行する前記ステップ(S22)が、原子的性質を有する、すなわち、
    オペレーション(14)が受け付けられるか、又は
    前記オペレーション(14)が受け付けられず、前記オペレーションの前の状態が保持される、
    請求項1〜7のいずれか一項に記載の方法。
  9. 前記導出バージョン(16)が、
    前記データエンティティの状態に関するデータと、
    前記導出バージョン(16)へのアクセスを提供し(S4)、前記導出バージョン(16)を再構築する(S42)ための前記第2のアドレスとの前記第1のアドレスのマッピングに関するメタデータ(24)と、
    を含む、請求項1〜8のいずれか一項に記載の方法。
  10. 導出バージョン(16)に対して1以上のオペレーション(14)を実行し(S62)、
    前記1以上のオペレーション(14)を格納し(S64)、
    前記1以上のオペレーション(14)を受け付けて(S66)、更なる導出バージョン(20)を作成する
    ことによって前記データエンティティの前記更なる導出バージョン(20)を作成するための更なる作成手順(S6)
    を更に含み、前記提供手順(S8)が前記更なる導出バージョン(20)へのアクセスを更に提供するためのものである
    請求項1〜9のいずれか一項に記載の方法。
  11. 複数の更なる導出バージョン(20)が、前記導出バージョン(16)に対して1以上のオペレーション(14)を実行する(S62)ことによってそれぞれ作成される、請求項10に記載の方法。
  12. 前記複数の更なる導出バージョン(20)のうちの少なくとも1つが、
    前記導出バージョン(16)に対して1以上のオペレーション(14)を実行し(S62)、
    前記データエンティティの別のバージョン(18)に対して1以上のオペレーション(14)を実行し、
    前記導出バージョン(16)に対して実行される(S62)前記1以上のオペレーション(14)、及び前記別のバージョン(18)に対して実行される前記1以上のオペレーション(14)をマージすることによって
    作成される(S6)、請求項11に記載の方法。
  13. 前記データエンティティの前記導出バージョン(16)に対して前記更なる1以上のオペレーション(14)のそれぞれを実行する前記ステップ(S62)が、原子的性質を有する、すなわち、
    オペレーション(14)が受け付けられるか、又は
    前記オペレーション(14)が受け付けられず、前記オペレーション(14)の前の前記データエンティティが保持される、
    請求項10〜12のいずれか一項に記載の方法。
  14. 前記更なる導出バージョン(20)が、
    前記データエンティティの状態に関するデータと、
    前記更なる導出バージョン(20)へのアクセスを提供し(S8)、前記更なる導出バージョン(20)を再構築する(S82)ための前記第2のアドレスとの前記第1のアドレスのマッピングに関するメタデータ(24)と、
    を含む、請求項10〜13のいずれか一項に記載の方法。
  15. 前記データ及び前記メタデータ(24)が異なる場所に物理的に格納される、請求項9又は14に記載の方法。
  16. 基本バージョン(12)を有するデータエンティティへのアクセスを提供し、
    前記データエンティティの導出バージョン(16)の作成を可能にする
    ように構成された装置(30)であって、
    前記基本バージョン(12)に対して1以上のオペレーション(14)を実行し(S22)、
    前記1以上のオペレーション(14)を格納し(S24)、
    前記1以上のオペレーション(14)を受け付けて(S26)、導出バージョン(16)を作成する
    ことによって前記データエンティティの前記導出バージョン(16)を作成するように構成された作成ユニット(32)と、
    前記基本バージョン(12)、及び、前記受け付けられた1以上のオペレーション(14)に等しいか又は結果が等価の1以上のオペレーション(14)に基づいて、前記導出バージョン(16)を再構築する(S42)ことによって、
    前記基本バージョン(12)、及び、前記受け付けられた1以上のオペレーション(14)に等しいか又は結果が等価の1以上のオペレーション(14)の第2のアドレスにマッピングされた第1のアドレスを介して前記導出バージョン(16)へのアクセスを提供する(S4)ように構成された提供ユニット(S4)と、
    を備える装置。
  17. 前記データエンティティが1以上のデータを含む、請求項16に記載の装置(30)。
  18. 前記作成ユニット(32)が、1以上の記憶装置(8a、8ab、8ax、8ay)に前記1以上のオペレーション(14)を格納することによって、前記導出バージョン(16)を作成する(S2)ように更に構成される、請求項16又は17に記載の装置(30)。
  19. 前記1以上の記憶装置(8a、8ab、8ax、8ay)のそれぞれがブロックごとにアドレス指定可能である、請求項18に記載の装置(30)。
  20. 前記作成ユニット(32)が、前記基本バージョン(12)に対して1以上の動作(14)を実行する(S22)ことによって複数の導出バージョン(16)をそれぞれ作成する(S2)ように更に構成される請求項16〜19のいずれか一項に記載の装置(30)。
  21. 前記作成ユニット(32)が、
    前記基本バージョン(12)に対して1以上のオペレーション(14)を実行し(S22)、
    前記データエンティティの別のバージョン(18)に対して1以上のオペレーション(14)を実行し、
    前記基本バージョン(12)に対して実行される(S22)前記1以上のオペレーション(14)、及び前記別のバージョン(18)に対して実行される前記1以上のオペレーション(14)をマージすることによって、
    前記複数の導出バージョン(16)のうちの少なくとも1つを作成する(S2)ように更に構成されている、請求項20に記載の装置(30)。
  22. 前記1以上のオペレーション(14)を受け付けて、前記導出バージョン(16)を作成する前記ステップ(S26)が、原子的性質を有する、すなわち、
    前記1以上のオペレーション(14)がすべて受け付けられるか、又は
    前記1以上のオペレーション(14)が受け付けられず、前記データエンティティが前記1以上のオペレーション(14)以前の状態で保持される、
    請求項16〜21のいずれか一項に記載の装置(30)。
  23. 前記基本バージョン(12)に対して前記1以上のオペレーション(14)のそれぞれを実行する前記ステップ(S22)が、原子的性質を有する、すなわち、
    オペレーション(14)が受け付けられるか、又は
    前記オペレーション(14)が受け付けられず、前記オペレーションの前の前記データエンティティが保持される、
    請求項16〜22のいずれか一項に記載の装置(30)。
  24. 前記導出バージョン(16)が、
    前記データエンティティの状態に関するデータと、
    前記導出バージョン(16)へのアクセスを提供し(S4)、前記導出バージョン(16)を再構築する(S42)ための前記第2のアドレスとの前記第1のアドレスのマッピングに関するメタデータ(24)と
    を含む、請求項16〜23のいずれか一項に記載の装置(30)。
  25. 導出バージョン(16)に対して1以上のオペレーション(14)を実行し(S62)、
    前記1以上のオペレーション(14)を格納し(S64)、
    前記1以上のオペレーション(14)を受け付けて(S66)、更なる導出バージョン(20)を作成する
    ことによって前記データエンティティの更なる導出バージョン(20)を作成する(S6)ように構成された更なる作成ユニット(36)
    を更に備え、
    前記提供ユニット(34)が前記更なる導出バージョン(20)へのアクセスを更に提供する(S8)ためのものである、
    請求項16〜24のいずれか一項に記載の装置(30)。
  26. 前記更なる作成ユニット(36)が、前記導出バージョン(16)に対して1以上のオペレーション(14)を実行する(S62)ことによって前記複数の更なる導出バージョン(20)がそれぞれ作成される(S6)ように更に構成される、請求項25に記載の装置(30)。
  27. 前記複数の更なる導出バージョン(20)の少なくとも1つが、
    前記導出バージョン(16)に対して1以上のオペレーション(14)を実行し(S62)、
    前記データエンティティの別のバージョン(20)に対して1以上のオペレーション(14)を実行し、
    前記導出バージョン(16)に対して実行される(S62)前記1以上のオペレーション(14)、及び前記別のバージョン(20)に対して実行される前記1以上のオペレーション(14)をマージすることによって
    作成されるように、前記更なる作成ユニット(36)が更に構成される、請求項26に記載の装置(30)。
  28. 前記データエンティティの前記導出バージョン(16)に対して前記更なる1以上のオペレーション(14)のそれぞれを実行する前記ステップ(S62)が、原子的性質を有する、すなわち、
    オペレーション(14)が受け付けられるか、又は
    前記オペレーション(14)が受け付けられず、前記オペレーション(14)の前の前記データエンティティが保持される、
    請求項25〜27のいずれか一項に記載の装置(30)。
  29. 前記更なる導出バージョン(16)が、
    前記データエンティティの状態に関するデータと、
    前記導出バージョン(20)へのアクセスを提供し(S8)、前記導出バージョン(20)を再構築する(S82)ための前記第2のアドレスとの前記第1のアドレスのマッピングに関するメタデータ(24)と、
    を含む、請求項25〜28のいずれか一項に記載の装置(30)。
  30. 前記データ及び前記メタデータ(24)が異なる場所に物理的に格納される、請求項24又は29に記載の装置(30)。
  31. コンピュータで実行されると、前記コンピュータに、請求項1〜15による前記方法のいずれか1つを実行させるように構成されたコンピュータプログラム。
JP2010527330A 2007-10-04 2007-10-04 データエンティティ及びそのバージョンにアクセスするための方法 Pending JP2011501839A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2007/060544 WO2009043379A1 (en) 2007-10-04 2007-10-04 Method for accessing a data entity and its versions

Publications (1)

Publication Number Publication Date
JP2011501839A true JP2011501839A (ja) 2011-01-13

Family

ID=38829636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010527330A Pending JP2011501839A (ja) 2007-10-04 2007-10-04 データエンティティ及びそのバージョンにアクセスするための方法

Country Status (4)

Country Link
US (1) US7788239B2 (ja)
EP (1) EP2195736A1 (ja)
JP (1) JP2011501839A (ja)
WO (1) WO2009043379A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020148882A1 (ja) * 2019-01-18 2020-07-23 住友電気工業株式会社 車両仮想化システム、端末装置、車載装置、仮想化方法および仮想化プログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288054A1 (en) * 2005-06-08 2006-12-21 Johnson Michael K Methods, systems, and computer program products for provisioning software via a file repository in which a version string is used to identify branches of a tree structure
US8255362B2 (en) 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using local changesets that represent differences between software on a repository and a local system
US8255363B2 (en) * 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using dynamic tags to identify and process files
US20060288055A1 (en) * 2005-06-08 2006-12-21 Johnson Michael K Methods, systems, and computer program products for provisioning software via a networked file repository in which a parent branch has a shadow associated therewith
US8515727B2 (en) * 2008-03-19 2013-08-20 International Business Machines Corporation Automatic logic model build process with autonomous quality checking
US8527482B2 (en) * 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
US9069792B1 (en) 2008-08-22 2015-06-30 Conifer Systems LLC Method and system for persistently cached, copy-on-write view of revision control trees
US8566294B2 (en) * 2008-12-29 2013-10-22 International Business Machines Corporation Database element versioning system and method
US8850572B2 (en) * 2010-01-15 2014-09-30 Apple Inc. Methods for handling a file associated with a program in a restricted program environment
WO2011130177A1 (en) * 2010-04-12 2011-10-20 Mei, Inc. Generating a single audit file from multiple sources
US8683592B1 (en) * 2011-12-30 2014-03-25 Emc Corporation Associating network and storage activities for forensic analysis
CN115658821B (zh) * 2022-12-13 2023-04-07 广州嘉为科技有限公司 一种数字实体的管理方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010702A1 (en) * 1997-02-03 2002-01-24 Miklos Ajtai System and method for differential compression of data from a plurality of binary sources
JP2004326754A (ja) * 2003-04-29 2004-11-18 Internatl Business Mach Corp <Ibm> 共用リソースを使用するための仮想計算機の管理
US20050091291A1 (en) * 2000-11-21 2005-04-28 Microsoft Corporation Project-based configuration management method and apparatus
JP2005332223A (ja) * 2004-05-20 2005-12-02 Ntt Data Corp 仮想マシン管理システム
JP2007066265A (ja) * 2005-09-02 2007-03-15 Hitachi Ltd 計算機装置及び仮想マシン提供方法
WO2007048062A2 (en) * 2005-10-21 2007-04-26 Vir2Us, Inc. Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4951192A (en) * 1987-06-04 1990-08-21 Apollo Computer, Inc. Device for managing software configurations in parallel in a network
US5278979A (en) * 1990-12-20 1994-01-11 International Business Machines Corp. Version management system using pointers shared by a plurality of versions for indicating active lines of a version
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
US5574898A (en) * 1993-01-08 1996-11-12 Atria Software, Inc. Dynamic software version auditor which monitors a process to provide a list of objects that are accessed
JP2863805B2 (ja) * 1993-11-26 1999-03-03 富士通株式会社 版数管理方式
US5675802A (en) * 1995-03-31 1997-10-07 Pure Atria Corporation Version control system for geographically distributed software development
US6216140B1 (en) * 1997-09-17 2001-04-10 Hewlett-Packard Company Methodology for the efficient management of hierarchically organized information
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US7322025B2 (en) * 2001-07-17 2008-01-22 Tata Consultancy Services Limited Method and apparatus for versioning and configuration management of object models
US20060168565A1 (en) * 2005-01-24 2006-07-27 International Business Machines Corporation Method and system for change classification
WO2009092450A1 (en) * 2008-01-25 2009-07-30 Global Infinipool Gmbh Method for coordinating processing in a distributed system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010702A1 (en) * 1997-02-03 2002-01-24 Miklos Ajtai System and method for differential compression of data from a plurality of binary sources
US20050091291A1 (en) * 2000-11-21 2005-04-28 Microsoft Corporation Project-based configuration management method and apparatus
JP2004326754A (ja) * 2003-04-29 2004-11-18 Internatl Business Mach Corp <Ibm> 共用リソースを使用するための仮想計算機の管理
JP2005332223A (ja) * 2004-05-20 2005-12-02 Ntt Data Corp 仮想マシン管理システム
JP2007066265A (ja) * 2005-09-02 2007-03-15 Hitachi Ltd 計算機装置及び仮想マシン提供方法
WO2007048062A2 (en) * 2005-10-21 2007-04-26 Vir2Us, Inc. Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200600173014; 宮原 徹: 'VMware&QEMUによる 最新エミュレータ活用ガイド' SoftwareDesign No.177, 20050718, p.132-141, (株)技術評論社 *
CSND200600422001; 白崎 博生: 'VMware Workstation 5.0.0' UNIX MAGAZINE 第20巻 第6号, 20050601, p.23-36, 株式会社アスキー *
JPN6012039926; 白崎 博生: 'VMware Workstation 5.0.0' UNIX MAGAZINE 第20巻 第6号, 20050601, p.23-36, 株式会社アスキー *
JPN6012039928; 宮原 徹: 'VMware&QEMUによる 最新エミュレータ活用ガイド' SoftwareDesign No.177, 20050718, p.132-141, (株)技術評論社 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020148882A1 (ja) * 2019-01-18 2020-07-23 住友電気工業株式会社 車両仮想化システム、端末装置、車載装置、仮想化方法および仮想化プログラム
CN113316531A (zh) * 2019-01-18 2021-08-27 住友电气工业株式会社 车辆虚拟化系统、终端装置、车载装置、虚拟化方法及虚拟化程序
JPWO2020148882A1 (ja) * 2019-01-18 2021-11-25 住友電気工業株式会社 車両仮想化システム、端末装置、車載装置、仮想化方法および仮想化プログラム
JP7268689B2 (ja) 2019-01-18 2023-05-08 住友電気工業株式会社 車両仮想化システム、端末装置、車載装置、仮想化方法および仮想化プログラム
CN113316531B (zh) * 2019-01-18 2023-09-29 住友电气工业株式会社 车辆虚拟化系统、终端装置、车载装置、虚拟化方法及虚拟化程序

Also Published As

Publication number Publication date
US7788239B2 (en) 2010-08-31
WO2009043379A1 (en) 2009-04-09
EP2195736A1 (en) 2010-06-16
US20090094296A1 (en) 2009-04-09

Similar Documents

Publication Publication Date Title
JP2011501839A (ja) データエンティティ及びそのバージョンにアクセスするための方法
US10725976B2 (en) Fast recovery using self-describing replica files in a distributed storage system
US10013185B2 (en) Mapping systems and methods of an accelerated application-oriented middleware layer
US9020996B2 (en) Synthetic view
US9170831B2 (en) Cloning virtual machines
US9305014B2 (en) Method and system for parallelizing data copy in a distributed file system
US9235589B2 (en) Optimizing storage allocation in a virtual desktop environment
US10769117B2 (en) Effective handling of HSM migrated files and snapshots
US8060703B1 (en) Techniques for allocating/reducing storage required for one or more virtual machines
US20130238557A1 (en) Managing tenant-specific data sets in a multi-tenant environment
US20120191710A1 (en) Directed placement of data in a redundant data storage system
US8707005B2 (en) Data control systems for virtual environments
US11397749B2 (en) Asynchronous replication of in-scope table data
US20060253497A1 (en) System and method for associating computational procedures with stored data objects
AU2021268828B2 (en) Secure data replication in distributed data storage environments
US10169343B2 (en) Deferring the cost of virtual storage
CN113204520B (zh) 一种基于分布式文件系统的遥感数据快速并发读写方法
US11016946B1 (en) Method and apparatus for processing object metadata
US11210270B2 (en) Mapping storage across storage providers
Rabinovici-Cohen et al. Preservation DataStores in the Cloud (PDS Cloud): Long term digital preservation in the cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130108