IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-509218記録の不変性を維持しながらの、記録に対する変更の記録
<>
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図1
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図2
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図3
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図4
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図5
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図6
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図7
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図8
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図9
  • 特表-記録の不変性を維持しながらの、記録に対する変更の記録 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-29
(54)【発明の名称】記録の不変性を維持しながらの、記録に対する変更の記録
(51)【国際特許分類】
   G06F 16/28 20190101AFI20240221BHJP
【FI】
G06F16/28
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023553995
(86)(22)【出願日】2022-02-21
(85)【翻訳文提出日】2023-09-05
(86)【国際出願番号】 CN2022077022
(87)【国際公開番号】W WO2022188613
(87)【国際公開日】2022-09-15
(31)【優先権主張番号】17/198,344
(32)【優先日】2021-03-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】マッキントッシュ、フレイザー、イアン
(72)【発明者】
【氏名】リコリッシュ、ロザンナ
(72)【発明者】
【氏名】ロングランド、マーク
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA01
5B175AA02
(57)【要約】
本発明の態様は、記録の可用性を維持しながら記録への変更を記録するための方法、コンピュータプログラム製品、およびシステムを開示する。方法は、1つ以上のプロセッサによって、記録オブジェクトへの変更をキャプチャすることを含む。変更には、変更される記録オブジェクトの詳細およびオブジェクトが変更される変更方法指示が含まれる。方法はさらに、1つ以上のプロセッサによって、変更オブジェクトをスタンドアロンオブジェクトとして保存するとともに、変更方法指示と記録オブジェクトを指すメタデータとを保存することを含む。方法はさらに、1つ以上のプロセッサによって、記録オブジェクトの以前のバージョンのメタデータを修正して、変更オブジェクトへのポインタを含むようにさせることを含む。方法はさらに、1つ以上のプロセッサによって、記録オブジェクトの取得またはリストア要求に応答する際に、変更方法指示を記録オブジェクトに適用することを含む。
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサによって、記録オブジェクトへの変更をキャプチャすることであって、当該変更には、変更される当該記録オブジェクトの詳細および当該オブジェクトが変更される変更方法指示が含まれる、ことと、
1つ以上のプロセッサによって、変更オブジェクトをスタンドアロンオブジェクトとして保存するとともに、前記変更方法指示と前記記録オブジェクトを指すメタデータとを保存することと、
1つ以上のプロセッサによって、前記記録オブジェクトの以前のバージョンのメタデータを修正して、前記変更オブジェクトへのポインタを含むようにさせることと、
1つ以上のプロセッサによって、前記記録オブジェクトの取得またはリストア要求に応答する際に、前記変更方法指示を当該記録オブジェクトに適用することと、
を含む、コンピュータ実装方法。
【請求項2】
記録オブジェクトへの変更をキャプチャすることは、1つ以上のプロセッサによって、当該変更の理由の記述をキャプチャすることをさらに含み、
前記変更オブジェクトをスタンドアロンオブジェクトとして保存することは、1つ以上のプロセッサによって、当該変更オブジェクト内に前記記述を保存することをさらに含む、請求項1に記載の方法。
【請求項3】
1つ以上のプロセッサによって、記録オブジェクトに対して経時的に行われる複数の変更に対応するために一連の相互に依存する変更オブジェクトを保存することをさらに含み、当該相互に依存する変更オブジェクトは、依存する変更オブジェクトへのポインタを有するメタデータを含む、請求項1に記載の方法。
【請求項4】
1つ以上のプロセッサによって、記録オブジェクトを求める要求を受信することと、
1つ以上のプロセッサによって、前記記録オブジェクトのメタデータによって指し示される1つ以上の変更オブジェクトのうち、適用可能な変更方法指示を反復することによって、1つ以上の変更方法指示を当該記録オブジェクトに適用することと、
をさらに含む、請求項1に記載の方法。
【請求項5】
1つ以上のプロセッサによって、記録オブジェクトを求める要求を受信することと、
1つ以上のプロセッサによって、前記記録オブジェクトに対する1つ以上の変更が利用可能であることを、前記要求を行ったユーザに通知することと、
1つ以上のプロセッサによって、ユーザ選択に従って、前記記録オブジェクトによって指し示される1つ以上の変更オブジェクトの変更方法指示を適用することと、
をさらに含む、請求項1に記載の方法。
【請求項6】
1つ以上のプロセッサによって、記録オブジェクトを求める要求を受信することと、
1つ以上のプロセッサによって、デフォルトで、前記記録オブジェクトのメタデータによって指し示される1つ以上の変更オブジェクトの変更方法指示を強制的に適用することと、
をさらに含む、請求項1に記載の方法。
【請求項7】
変更オブジェクトの変更方法指示を記録オブジェクトに適用する前に、1つ以上のプロセッサによって、当該記録オブジェクトおよび変更オブジェクトの完全性をチェックすることをさらに含む、請求項1に記載の方法。
【請求項8】
1つ以上のプロセッサによって、記録オブジェクトまたは変更オブジェクトにアクセスする要求の処理を設定し、未変更の記録オブジェクトを許可されたオペレータが取得またはリストアできるようにすることをさらに含む、請求項1に記載の方法。
【請求項9】
1つ以上のプロセッサによって、記録についての記録オブジェクトを取得することをさらに含み、当該記録についての当該記録オブジェクトを取得することは、
1つ以上のプロセッサによって、前記記録オブジェクトをストレージに対して要求することと、
1つ以上のプロセッサによって、前記記録オブジェクトをストレージから取得し、当該記録オブジェクトのメタデータを読み取って、当該記録オブジェクトへの変更を特定することと、
1つ以上のプロセッサによって、ストレージから1つ以上の変更オブジェクトを取得することと、
1つ以上のプロセッサによって、前記1つ以上の変更オブジェクトにおいて規定される1つ以上の変更方法指示を、前記記録オブジェクトに適用することと、
1つ以上のプロセッサによって、前記1つ以上の変更方法指示を前記記録オブジェクトに適用して得られたオブジェクトを返すことと、
をさらに含む、請求項1に記載の方法。
【請求項10】
1つ以上のコンピュータ可読記憶媒体と、当該1つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令と、を含むコンピュータプログラム製品であって、当該プログラム命令は、
記録オブジェクトへの変更をキャプチャするためのプログラム命令であって、当該変更には、変更される当該記録オブジェクトの詳細および当該オブジェクトが変更される変更方法指示が含まれる、プログラム命令と、
変更オブジェクトをスタンドアロンオブジェクトとして保存するとともに、前記変更方法指示と前記記録オブジェクトを指すメタデータとを保存するためのプログラム命令と、
前記記録オブジェクトの以前のバージョンのメタデータを修正して、前記変更オブジェクトへのポインタを含むようにさせるためのプログラム命令と、
前記記録オブジェクトの取得またはリストア要求に応答する際に、前記変更方法指示を当該記録オブジェクトに適用するためのプログラム命令と、
を含む、コンピュータプログラム製品。
【請求項11】
記録オブジェクトへの変更をキャプチャするためのプログラム命令は、当該変更の理由の記述をキャプチャするためのプログラム命令をさらに含み、
前記変更オブジェクトをスタンドアロンオブジェクトとして保存するためのプログラム命令は、当該変更オブジェクト内に前記記述を保存するためのプログラム命令をさらに含む、請求項10に記載のコンピュータプログラム製品。
【請求項12】
前記1つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令であって、
記録オブジェクトに対して経時的に行われる複数の変更に対応するために一連の相互に依存する変更オブジェクトを保存するためのプログラム命令をさらに含み、当該相互に依存する変更オブジェクトは、依存する変更オブジェクトへのポインタを有するメタデータを含む、請求項10に記載のコンピュータプログラム製品。
【請求項13】
前記1つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令であって、
記録オブジェクトを求める要求を受信することと、
前記記録オブジェクトのメタデータによって指し示される1つ以上の変更オブジェクトのうち、適用可能な変更方法指示を反復することによって、1つ以上の変更方法指示を当該記録オブジェクトに適用することと、
を実行するためのプログラム命令をさらに含む、請求項10に記載のコンピュータプログラム製品。
【請求項14】
前記1つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令であって、
記録オブジェクトを求める要求を受信することと、
前記記録オブジェクトに対する1つ以上の変更が利用可能であることを、前記要求を行ったユーザに通知することと、
ユーザ選択に従って、前記記録オブジェクトによって指し示される1つ以上の変更オブジェクトの変更方法指示を適用することと、
を実行するためのプログラム命令をさらに含む、請求項10に記載のコンピュータプログラム製品。
【請求項15】
1つ以上のコンピュータプロセッサと、
1つ以上のコンピュータ可読記憶媒体と、
前記1つ以上のプロセッサの少なくとも1つが実行するために前記コンピュータ可読記憶媒体上に記憶されたプログラム命令と、を備えるコンピュータシステムであって、当該プログラム命令は、
記録オブジェクトへの変更をキャプチャするためのプログラム命令であって、当該変更には、変更される当該記録オブジェクトの詳細および当該オブジェクトが変更される変更方法指示が含まれる、プログラム命令と、
変更オブジェクトをスタンドアロンオブジェクトとして保存するとともに、前記変更方法指示と前記記録オブジェクトを指すメタデータとを保存するためのプログラム命令と、
前記記録オブジェクトの以前のバージョンのメタデータを修正して、前記変更オブジェクトへのポインタを含むようにさせるためのプログラム命令と、
前記記録オブジェクトの取得またはリストア要求に応答する際に、前記変更方法指示を当該記録オブジェクトに適用するためのプログラム命令と、
を含む、コンピュータシステム。
【請求項16】
記録オブジェクトへの変更をキャプチャするためのプログラム命令は、当該変更の理由の記述をキャプチャするためのプログラム命令をさらに含み、
前記変更オブジェクトをスタンドアロンオブジェクトとして保存するためのプログラム命令は、当該変更オブジェクト内に前記記述を保存するためのプログラム命令をさらに含む、請求項15に記載のコンピュータシステム。
【請求項17】
前記1つ以上のプロセッサの少なくとも1つが実行するために前記コンピュータ可読記憶媒体に記憶されたプログラム命令であって、
記録オブジェクトに対して経時的に行われる複数の変更に対応するために一連の相互に依存する変更オブジェクトを保存するためのプログラム命令をさらに含み、当該相互に依存する変更オブジェクトは、依存する変更オブジェクトへのポインタを有するメタデータを含む、請求項15に記載のコンピュータシステム。
【請求項18】
前記1つ以上のプロセッサの少なくとも1つが実行するために前記コンピュータ可読記憶媒体に記憶されたプログラム命令であって、
記録オブジェクトを求める要求を受信することと、
前記記録オブジェクトのメタデータによって指し示される1つ以上の変更オブジェクトのうち、適用可能な変更方法指示を反復することによって、1つ以上の変更方法指示を当該記録オブジェクトに適用することと、
を実行するためのプログラム命令をさらに含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記1つ以上のプロセッサの少なくとも1つが実行するために前記コンピュータ可読記憶媒体に記憶されたプログラム命令であって、
記録オブジェクトを求める要求を受信することと、
前記記録オブジェクトに対する1つ以上の変更が利用可能であることを、前記要求を行ったユーザに通知することと、
ユーザ選択に従って、前記記録オブジェクトによって指し示される1つ以上の変更オブジェクトの変更方法指示を適用することと、
を実行するためのプログラム命令をさらに含む、請求項15に記載のコンピュータシステム。
【請求項20】
前記1つ以上のプロセッサの少なくとも1つが実行するために前記コンピュータ可読記憶媒体に記憶されたプログラム命令であって、
記録オブジェクトを求める要求を受信することと、
デフォルトで、前記記録オブジェクトのメタデータによって指し示される1つ以上の変更オブジェクトの変更方法指示を強制的に適用することと、
を実行するためのプログラム命令をさらに含む、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、バックアップ記録およびアーカイブ記録を維持する分野に関し、より具体的には、記録の不変性を維持しながら記録への変更を記録することに関する。
【背景技術】
【0002】
多くの規制システム(regulatory system)では、データを不変に(in an immutable manner)保存することが求められる。すなわち、保存中のデータに変更が加えられないことの保証が求められる。規制スキームだけでなく、(例えば、金融サービス、電気通信、法律などの業界における)ベストプラクティスを求めるユーザの要求からも、データを不変に保存することが必要とされている。保存されたデータに対して、変更、削除、または修正を要求することは一般的である。一例を挙げると、EU法(European Union law)の一般データ保護規則(GDPR:General Data Protection Regulation)に基づく、忘れられる権利(right to be forgotten)や個人データを訂正する権利などがある。さらに、データ保存システムは、システムにコミットされたデータが、システムから取得された際にも同一であることを保証することが求められる。
【発明の概要】
【0003】
本発明の態様は、記録の可用性を維持しながら記録への変更を記録するための方法、コンピュータプログラム製品、およびシステムを開示する。方法は、1つ以上のプロセッサによって、記録オブジェクトへの変更をキャプチャすることを含む。変更には、変更される記録オブジェクトの詳細およびオブジェクトが変更される変更方法指示が含まれる。方法はさらに、1つ以上のプロセッサによって、変更オブジェクトをスタンドアロンオブジェクトとして保存するとともに、変更方法指示と記録オブジェクトを指すメタデータとを保存することを含む。方法はさらに、1つ以上のプロセッサによって、記録オブジェクトの以前のバージョンのメタデータを修正して、変更オブジェクトへのポインタを含むようにさせることを含む。方法はさらに、1つ以上のプロセッサによって、記録オブジェクトの取得またはリストア要求に応答する際に、変更方法指示を記録オブジェクトに適用することを含む。
【0004】
本発明とみなされる主題を、本明細書の末尾において具体的に示し、明確に特許請求する。本発明は、構成および動作方法の両方に関して、その目的、特徴および利点とともに、以下の詳細な説明を添付図面と併せて参照することによって、最も良く理解することができる。
【0005】
図示を簡略化し明瞭にするために、各図面に示した要素は必ずしも縮尺通りではない。例えば、一部の要素の寸法を、明確にするために他の要素に対して誇張している場合がある。さらに、適切と考えられる場合には、対応または類似の特徴であることを示すために、参照番号を図面間で繰り返し使用している場合がある。
【0006】
本発明の実施形態を、例示のみを目的として、以下の図面を参照して説明する。
【図面の簡単な説明】
【0007】
図1】本発明の実施形態に係る、方法の例示的な実施形態のフローチャートである。
図2】本発明の実施形態に係る、方法の一態様としてのオブジェクトコミットフローの例示的な実施形態のフローチャートである。
図3】本発明の実施形態に係る、方法の一態様としてのオブジェクト修正フローの例示的な実施形態のフローチャートである。
図4】本発明の実施形態に係る、方法の一態様としてのオブジェクト取得またはリストアフローの例示的な実施形態のフローチャートである。
図5】本発明の実施形態に係る、方法の一態様としてのオブジェクトマージフローの例示的な実施形態のフローチャートである。
図6】本発明の実施形態に係る、方法の一態様を示すデータオブジェクトの例示的な実施形態の概略図である。
図7】本発明の実施形態に係る、システムの例示的な実施形態のブロック図である。
図8】本発明の実施形態に係る、本発明を実装可能なコンピュータシステムまたはクラウドサーバの一実施形態のブロック図である。
図9】本発明の実施形態に係る、本発明を実装可能なクラウドコンピューティング環境の概略図である。
図10】本発明の実施形態に係る、本発明を実装可能なクラウドコンピューティング環境の抽象化モデルレイヤの図である。
【発明を実施するための形態】
【0008】
本発明の実施形態は、データを不変に保存し、かつ変更を可能にするという要求によって、アーカイブまたはバックアップデータストレージシステムが規制に抵触する可能性があることを認識するものである。データストレージシステムは、システムにコミットされたデータが、システムから取得された際にも同一であることを保証することが求められる。現在、このような変更は、保存したデータ記録を全面的に削除するか、あるいは、オンラインまたは本番システムに加えられた変更のメモを作成し、手動プロセスによって、バックアップシステムまたはアーカイブシステムからリストア(restore)もしくは取得(retrieve)またはその両方を行う際に変更を詳述することによって可能となる。本発明の実施形態は、このプロセスには失敗の可能性があり、変更が正しくキャプチャされることや、偶発的または意図的な修正なしに変更が保存されることの保証がほとんどないことを認識するものである。
【0009】
従来のシナリオでは、保存データへの変更は、最初にコミットされたデータをリストアし、変更を行い、それを再バックアップ/アーカイブすることによって行われる。しかし、本発明の実施形態は、このようなプロセスは、オブジェクトが変更されていないことの保証の連鎖(chain of assurance)を断ち切るものであり、したがって、どのような変更が行われたかについての正確な保証がないため、不変であるとは言えないことを認識するものである。さらに、変更されたオブジェクトを既存のオブジェクトとともに別々に保存することは、保存効率を著しく低下させるだけでなく、間違ったオブジェクトを極めて容易に選択できてしまうため、リストア/取得プロセスを複雑にする可能性がある。さらに、本発明の実施形態は、バックアップ/アーカイブシステム全体の完全性(integrity)を危険にさらすことなく、既存のバージョンのオブジェクトに変更を適用することは不可能であることを認識するものである。これは、商用実装形態がこれをサポートしていないためであり、このようなプロセスは、アドホックのオーダーメイド(bespoke)ベースで、または手動プロセスによって実装する必要があるが、どちらも失敗を生じやすい。
【0010】
本発明の実施形態は、データの不変性を損なうことなく、バックアップ記録またはアーカイブ記録などの記録の変更を可能にし、ストレージリポジトリ内において、変更の理由の記述(description)とともに変更を個別にキャプチャできるようにする方法およびシステムを提供するように動作する。記録に対する変更、または相互に依存する(interdependent)一連の変更の詳細が保存され、記録が取得またはリストアされる時点で変更が適用される。本発明のさらなる実施形態は、リストアまたは取得要求を行うユーザまたはシステムに、適用可能な変更が存在することを通知することができる。
【0011】
本発明のさらなる実施形態は、アーカイブシステムへの変更を記録し、これらの変更をアーカイブ内に保存された以前のバージョンのオブジェクトに適用する能力を提供することができる。これは、オブジェクトのバージョン、およびオブジェクトに適用された変更の依存関係を経時的に追跡することができることを意味する。規制遵守のために変更を行って、変更が行われる前に保存されたオブジェクトに適用してもよい。これにより、法律で要求されるようにデータを削除/修正することが可能になり、アプリケーション固有の取り扱いをしなくてすむ。
【0012】
本発明の実施形態の様々な態様は、既存のアーカイブおよびバックアップストレージシステムの不変性機能を基礎とする一方で、システム内において、変更の理由の記述とともに変更を個別にキャプチャできるように動作する。さらに、本発明の実施形態(以下で詳述する)は、オブジェクトの不変性を維持しながら、更新された記録を返し、これにより、保存データの対応バージョン(compliant version)を返すことができる。
【0013】
図1は、本明細書に記載の方法の概要の例示的な実施形態を示すフローチャート100である。説明の便宜上、(図1に記載の)フローチャート100に示すプロセスは、図7に例示するシステム(例えば、コンピュータシステム700)に示すブロックおよびシステムの1つ以上において実装されてもよい。例示的な一実施形態において、記録監視システム710(およびその内部コンポーネント)など、コンピュータシステム700の1つ以上のコンポーネントによって、フローチャート100の処理ステップを実行することができる。あるいは、フローチャート100の実行は、この実装形態に限定されない。様々な実施形態において、フローチャート100の方法は、変更が行われない記録オブジェクトを保存し、不変性を維持する記録ストレージに適用される。
【0014】
フローチャート100の方法は、プロセス101にて、記録オブジェクトへの変更をキャプチャする。これには、変更される記録オブジェクトの詳細(ステップ102)、記録オブジェクトが変更される変更方法指示(change method instruction)(ステップ103)、および変更理由の記述(ステップ104)が含まれる。そして、フローチャート100の方法は、ステップ105にて、キャプチャした変更で特定された記録オブジェクトのすべての以前のバージョンのメタデータを修正し、変更に関する情報を含むようにさせる。
【0015】
フローチャート100の方法は、プロセス106にて、変更方法指示(ステップ107)および変更理由の記述(ステップ108)を含むスタンドアロンのオブジェクトとして、変更オブジェクト(change object)を保存する。さらなる態様において、フローチャート100の方法は、変更オブジェクトを、(プロセス106にて)別個かつ不変に保存することができる。例示的な実施形態において、行われた変更を表すために保存される情報は、変更が行われた方法(例えば、構造化クエリ言語(SQL)ステートメント、テキスト置換、正規表現(REGEX)など)であり、行われた変更の結果(ブロック記憶の差分(delta)、データベースログなど)ではない。
【0016】
フローチャート100の方法は、ステップ109にて、データ要求を行ってオブジェクトを求めるユーザに、オブジェクトを取得またはリストアする際に適用される1つ以上の変更が利用可能であることを通知することを含む。記録オブジェクトの取得またはリストアプロセスは、その後、当該記録オブジェクトに関連付けられた1つ以上の変更オブジェクトを参照することができ、フローチャート100の方法は、ステップ110にて、必要に応じて変更を行うために、1つ以上の変更方法指示を当該記録オブジェクトに適用することができる。構成に応じて、変更を強制したり、記録オブジェクトと変更オブジェクトの両方を別々にリストアしたり、マージしたりすることもできる。例示的な実施形態において、適用される変更は、ユーザによって選択されるように構成されてもよいし、デフォルトで自動的に適用されるように構成されてもよい。
【0017】
したがって、元のオブジェクトは変更されずに保存され、後のバージョンも、元のオブジェクトおよび後のバージョンのオブジェクトに適用可能な変更を記述する変更オブジェクトとともに保存することができる。この方法では、初期データは変更されずに保存され、リストア/取得時に行う必要のある単一の変更または相互に依存する一連の変更の詳細が保存される。したがって、変更は、変更が行われる前の初期オブジェクトのバージョン、および異なるソフトウェアバージョンまたはハードウェアプラットフォーム上のオブジェクトのバージョンを指し示すことができる。
【0018】
キャプチャ後は、規制に準拠していないデータをオンラインシステムや本番システムに戻すことは不可能にすべきであるが、当該データの完全性は、保存期間を通じて保証される。これにより、データを変更不可能な形で保存することが要求される一方で、特定の規制制度の下で保存データを変更または削除できるようにすることが要求されるという矛盾が解消される。
【0019】
様々な実施形態において、記録がリストアされ、完全性がチェックされるまで、最初の記録オブジェクトに対して変更は行われない。その代わりに、行われる変更は、リストアしたデータベース上で実行されるSQLステートメント、テキストの検索と置換文字列、REGEXなど、変更を行うプロセスの記述として保存される。変更とともに、変更が行われた理由を記述するメタデータも保存される。変更は、変更が行われた時点よりも前の保存オブジェクトのバージョン、およびソースシステムの異なるハードウェアまたはソフトウェアのインスタンスから保存されたオブジェクトのバージョンを指し示すことができる。
【0020】
本発明の様々な態様は、単一のオブジェクトに対する経時的な複数の変更(すなわち、オブジェクトの複数の異なる保存バージョン)を可能にするために、相互依存関係にある可能性のある複数の異なる変更をサポートするように動作することができる。
【0021】
例示的な一実施形態において、一次保存オブジェクト(primary stored object)は変更を受けないが、オブジェクトの取得またはリストア時に変更を行うことができる。この時点で、未変更のオブジェクトを取得し、一般的なアクセスを許容するシステムに移動させる前に、データをそれに準拠したものとするために変更を自動的に適用させることができる。
【0022】
3つの広範なプロセスについて記載する。すなわち、初期オブジェクトをコミットするプロセス、当該オブジェクトに修正をコミットするプロセス、および当該オブジェクトを取得し、該当する変更をマージするプロセスである。図2は、コミットオブジェクトフローの一例を示すフローチャート200である。図3は、修正オブジェクトフローの一例を示すフローチャート300である。図4は、取得/リストアオブジェクトフローの一例を示すフローチャート400である。さらに、図5は、取得/リストアオブジェクトフローのフローチャート400で使用されるサブプロセスであるオブジェクトマージフローのフローチャート500である。
【0023】
図2は、本発明の実施形態に係る、オブジェクトコミットフローの一例を示すフローチャート200である。説明の便宜上、(図2に記載の)フローチャート200に示すプロセスは、図7に例示するシステム(例えば、コンピュータシステム700)に示すブロックおよびシステムの1つ以上において実装されてもよい。例示的な一実施形態において、記録監視システム710(およびその内部コンポーネント)など、コンピュータシステム700の1つ以上のコンポーネントによって、フローチャート200の処理ステップを実行することができる。あるいは、フローチャート200の実行は、この実装形態に限定されない。
【0024】
フローチャート200の方法は、まずステップ201にて、記録オブジェクト(ファイルなど)を、対応するメタデータとともにデータストア(データベースアーカイブなど)にサブミットすることを含む。ステップ202にて、フローチャート200の方法は、サブミットされた記録オブジェクトを分析して、記録オブジェクトの不変性を検証するための情報を生成することを含む。例えば、分析によって、記録オブジェクトが変更されたかどうかを検証するためのチェックサムを生成してもよい。ステップ203にて(任意のステップとして)、フローチャート200の方法は、ファイルが正常に保存されていることを保証するために冗長情報(redundancy information)を作成することを含むことができる。例えば、冗長情報を作成することは、ストレージシステムによって作成されない場合に、RAID(Redundant Array of Inexpensive Disks)、イレイジャーコーディング(erasure coding)、または重複排除情報(deduplication information)などを含むことができる。
【0025】
ステップ204にて、フローチャート200の方法は、記録オブジェクトのメタデータを作成することを含む。ここで、メタデータを検証するための情報を生成してもよい。そして、ステップ205にて、記録オブジェクトおよびメタデータをストレージにコミットしてもよい。例えば、ストレージは、テープ、ディスク、オブジェクト、データベースなどであってもよい。
【0026】
フローチャート200の方法は、判定ステップ206にて、コミットが成功したかどうかを判定する。コミットが成功したと判定した場合(判定ステップ206にてYES)、フローチャート200の方法は、成功レポート(success report)を含む取得情報(retrieval information)を返すことを含む(ステップ207)。コミットが成功しなかったと判定した場合(判定ステップ206にてNO)、フローチャート200の方法は、失敗レポート(failure report)を返すことを含む(ステップ208)。
【0027】
図3は、本発明の実施形態に係る、オブジェクト修正フローの一例を示すフローチャート300である。説明の便宜上、(図3に記載の)フローチャート300に示すプロセスは、図7に例示するシステム(例えば、コンピュータシステム700)に示すブロックおよびシステムの1つ以上において実装されてもよい。例示的な一実施形態において、記録監視システム710(およびその内部コンポーネント)など、コンピュータシステム700の1つ以上のコンポーネントによって、フローチャート300の処理ステップを実行することができる。あるいは、フローチャート300の実行は、この実装形態に限定されない。
【0028】
フローチャート300の方法は、まずステップ301にて、変更する記録オブジェクト(ファイルなど)の詳細および変更データを、対応するメタデータとともにサブミットすることを含む。ステップ302にて、フローチャート300の方法は、変更オブジェクト(change object)を作成することを含む。例示的な実施形態において、変更オブジェクトは、記録オブジェクトが変更される変更方法指示(例えば、SQLステートメント、REGEXなど)と、変更理由の記述とを含む。ステップ303にて、フローチャート300の方法は、元の記録オブジェクトのすべての以前のバージョンの記録オブジェクトのメタデータを修正し、既存の変更に関する情報を含むようにさせるとともに、新しい変更オブジェクトを指し示すようにすることができる。
【0029】
ステップ304にて、フローチャート300の方法は、サブミットされた変更オブジェクトを分析して、変更オブジェクトの不変性を検証するための情報を生成することを含むことができる。例えば、分析によって、変更オブジェクトが変更されたかどうかを検証するためのチェックサムを生成してもよい。フローチャート300の方法は、ステップ305にて(任意のステップとして)、変更オブジェクトが正常に保存されていることを保証するために冗長情報を作成することを含む。
【0030】
ステップ306にて、フローチャート300の方法は、変更オブジェクトをストレージにコミットすることができる。そして、フローチャート300の方法は、コミットが成功したかどうかを判定することができる(判定ステップ307)。コミットが成功したと判定した場合(判定ステップ307にてYES)、フローチャート300の方法は、成功レポートとともに取得情報を返す(ステップ308)。コミットが成功しなかったと判定した場合(判定ステップ307にてNO)、フローチャート300の方法は、失敗レポートを返す(ステップ309)。
【0031】
図4は、本発明の実施形態に係る、記録オブジェクト取得フローの一例を示すフローチャート400である。説明の便宜上、(図4に記載の)フローチャート400に示すプロセスは、図7に例示するシステム(例えば、コンピュータシステム700)に示すブロックおよびシステムの1つ以上において実装されてもよい。例示的な一実施形態において、記録監視システム710(およびその内部コンポーネント)など、コンピュータシステム700の1つ以上のコンポーネントによって、フローチャート400の処理ステップを実行することができる。あるいは、フローチャート400の実行は、この実装形態に限定されない。
【0032】
フローチャート400の方法は、まずステップ401にて、記録オブジェクトを求める取得情報(ファイルに対するAPIコールなど)をデータストアにサブミットすることを含む。さらなる態様において、本発明の実施形態は、記録オブジェクトをリストアするための同等の方法を実行することができる。
【0033】
フローチャート400の方法は、判定ステップ402にて、取得/リストアされる記録オブジェクトが、変更が存在することを示すメタデータを有しているかどうかを判定する。変更が存在することをメタデータが示していると判定した場合(判定ステップ402にてYES)、フローチャート400の方法は、要求された記録オブジェクトを指すすべての変更のリストを取得し(ステップ403)、変更をオペレータに報告することができる(ステップ404)。ステップ405にて、フローチャート400の方法は、戻すべき記録オブジェクトのバージョンの選択を(オペレータを介して)促すことができる。次に、ステップ406にて、フローチャート400の方法は、必要なすべての変更オブジェクトおよび依存関係を特定することができる。メタデータが変更を示していないと判定した場合(判定ステップ402にてNO)、フローチャート400の方法は、オブジェクト(記録オブジェクトおよび任意の変更オブジェクト)と、それぞれのメタデータとをストレージシステムから取得する(ステップ407)。例えば、フローチャート400の方法は、メタデータに変更が存在しないことを特定するか、または、変更オブジェクトが特定されたことをメタデータが示していることを決定することができる。
【0034】
判定ステップ408にて、フローチャート400の方法は、オブジェクトおよびメタデータがエラー検出(error detection)に合格するかどうかを判定する。エラー検出に合格しないと判定した場合(判定ステップ408にてNO)、フローチャート400の方法は警告/失敗を生成する(ステップ409)。
【0035】
エラー検出に合格したと判定した場合(判定ステップ408にてYES)、フローチャート400の方法は、オブジェクトが単一の記録オブジェクトであるか、またはオブジェクトが記録オブジェクトに対する1つ以上の変更を含んでいるかどうかを判定する(判定ステップ410)。単一の記録オブジェクトであると判定した場合(判定ステップ410にて「単一」)、フローチャート400の方法は、記録オブジェクトおよびメタデータを要求元に返し(ステップ411)、成功レポートを提供する(ステップ412)。一方、記録オブジェクトへの変更を含んでいると判定した場合(判定ステップ410にて「変更」)、フローチャート400の方法は、オブジェクトマージサブプロセスを実行する(ステップ413)。様々な実施形態において、オブジェクトマージサブプロセスは、図5のフローチャート500で説明するように実行され、最初の記録オブジェクトに変更を適用する。
【0036】
判定ステップ414にて、フローチャート400の方法は、マージが成功したかどうかを判定する。マージが成功したと判定した場合(判定ステップ414にてYES)、フローチャート400の方法は、得られたマージ後のオブジェクトおよびメタデータを要求元に返し(ステップ411)、成功レポートを提供する(ステップ412)。マージが成功しなかったと判定した場合(判定ステップ414にてNO)、フローチャート400の方法は、警告/失敗を生成する(ステップ409)。
【0037】
図5は、本発明の実施形態に係る、(上記ステップ413で示した)オブジェクトマージサブプロセスの一例を示すフローチャート500である。説明の便宜上、(図5に記載の)フローチャート500に示すプロセスは、図7に例示するシステム(例えば、コンピュータシステム700)に示すブロックおよびシステムの1つ以上において実装されてもよい。例示的な一実施形態において、記録監視システム710(およびその内部コンポーネント)など、コンピュータシステム700の1つ以上のコンポーネントによって、フローチャート500の処理ステップを実行することができる。あるいは、フローチャート500の実行は、この実装形態に限定されない。
【0038】
フローチャート500の方法は、まずステップ501にて、記録オブジェクトと、マージ対象の1つ以上の変更オブジェクトおよびメタデータとを受信する。別の態様では、フローチャート500の方法は、処理ループをインクリメントすることによって開始することができる(ステップ502)。
【0039】
判定ステップ503にて、フローチャート500の方法は、マージ対象の次の変更オブジェクト(next change object)のタイプを判定する。例示的な実施形態において、テキスト置換、SQL、または他のプロセスのタイプが考慮される。テキスト置換変更であると判定した場合(判定ステップ503にて「テキスト置換」)、フローチャート500の方法は、変更オブジェクトに記述された検索および置換を記録オブジェクトに実行する(ステップ504)。変更がSQLステートメントに関連付けられていると判定した場合、フローチャート500の方法は、現在の記録オブジェクトを適切なステージングデータベースサーバにリストアし、データベースをマウントし(ステップ507)、次いで、SQLクエリを実行し、得られたデータベースオブジェクトを返すことができる(ステップ508)。変更が他のプロセスに関連していると判定した場合、フローチャート500の方法は、他の記述的プロセス(descriptive process)を適用して、例えばフラットファイルにREGEXを適用することができる(ステップ508)。
【0040】
次に、判定ステップ509にて、フローチャート500の方法は、オブジェクトのマージのために利用可能な変更がさらに存在するかどうかを判定する。さらに変更が存在すると判定した場合(判定ステップ509にてYES)、フローチャート500の方法は、処理ループをインクリメントすることができる(ステップ502)。さらなる変更が存在すると判定した場合(判定ステップ509にてNO)、フローチャート500の方法は、得られたマージ後のオブジェクトを返すことができる(ステップ510)。
【0041】
図6は、本明細書の記載の方法の一例を示す概略図600である。複数の記録オブジェクト(例えば、記録データベース(db)オブジェクトバージョン1(601)、記録dbオブジェクトバージョン2(602)、記録dbオブジェクトバージョン3(603)、記録dbオブジェクトバージョンn(604)、記録dbオブジェクトバージョンn+1(605)、記録テキストオブジェクトバージョン1(611)、記録テキストオブジェクトバージョン1(612)、および他の記録オブジェクトバージョン1(621))が、それぞれの変更オブジェクトとともに示されている。例えば、変更オブジェクト606、変更オブジェクト607、変更オブジェクト608、変更オブジェクト613、および変更オブジェクト622である。
【0042】
図示の例では、一次データベース記録オブジェクト601~605が、バージョン1(601)、2(602)、3(603)、N(604)、およびN+1(605)として保存されている。そして、3つの変更オブジェクト606、607、608が保存されている。第1の変更オブジェクト606は、バージョン3で適用されるSQLクエリに関するものであり、第2の変更オブジェクト607は、バージョンnで適用されるSQLクエリに関するものであり、第3の変更オブジェクト608は、バージョンnで適用されるSQLクエリに関するものである。
【0043】
また、2つのバージョン611、612を有する一次テキストオブジェクトと、REGEXを適用するリンクされた変更オブジェクト613とが示されている。また、他の一次オブジェクト621と、例えば検索と置換によって情報を変更するためのリンクされた変更オブジェクト622とが示されている。
【0044】
様々な実施形態において、記録オブジェクトは、適用可能な変更オブジェクトへのポインタと、同じ記録オブジェクトの他のバージョンへのポインタとを含むメタデータを有してもよい。変更オブジェクトは、依存する(dependent)変更オブジェクトおよび依存する記録オブジェクトへのポインタを含むメタデータを有してもよい。
【0045】
依存する変更オブジェクトは、同じ記録オブジェクトの異なるバージョンである。例えば、削除や破損から保護するために、同じ記録オブジェクトを複数の異なるバージョンでバックアップする場合や、規制遵守のために同じ記録オブジェクトの定期的なアーカイブ実行が必要な場合などである。記録ファイルのすべての異なるバージョンは、リストア時に同じ変更オブジェクトを適用することができる。
【0046】
変更オブジェクトは、他の変更オブジェクトを指し示すこともでき、時間の経過とともにデータに対して複数の異なる変更を行うことを可能にしながら、オブジェクトを順番に処理されるようにするとともに、変更オブジェクトがスタンドアロンであるか、他の変更オブジェクトに依存しているかを示すこともできる。
【0047】
図6の例では、第1の変更オブジェクト606に記述された第1の変更は、記録オブジェクト603のバージョン3において変更を行うものであり、それ以降のバージョン604、605に適用する必要はない。バージョンnにおいて適用される2つの変更オブジェクト607、608は、記録オブジェクト601、602、603、604のすべての以前のバージョンに適用される必要がある。記録オブジェクトn+1(605)は、他の変更がデータソースに適用された後の時点からのものであるため、このオブジェクトのリストア時に変更を適用する必要はない。
【0048】
したがって、オブジェクトがアーカイブ/バックアップシステムに保存された後に変更を行い、これを、保存された当該オブジェクトの以前のバージョンにリンクさせることができる。データソースに対して変更が行われた時点を記録することで、アーカイブ/バックアップシステムは、どの変更を行う必要があるかを把握することができる。
【0049】
記録オブジェクトおよび変更オブジェクトのオブジェクトメタデータの例を以下に説明する。
オブジェクトタイプ:{記録|変更}
オブジェクトデータタイプ:データベース(DB)イメージ/バックアップ、ファイルシステム、バイナリラージオブジェクト(BLOB)、テキストファイル、フラットファイル、その他;SQLステートメント、検索と置換の詳細、REGEX、その他
ソースデータ(アプリケーションのタイプ、アプリケーションのバージョン、ファイルシステムの詳細、OS、アーキテクチャなど)
オブジェクトが変更されていないことを保証するためのチェックサム。
記録オブジェクト:
適用可能な変更オブジェクトへのポインタ;
同じ記録オブジェクトの他のバージョン(バックアップ/アーカイブバージョンなど)へのポインタ。

変更オブジェクト:
依存する変更オブジェクトおよび記録オブジェクトへのポインタ;
変更の記述(ユーザによって要求される自由形式)。
【0050】
記録オブジェクトおよび変更オブジェクトのオブジェクトデータを以下に説明する。
記録オブジェクト:DBイメージ/バックアップ、ファイルシステム、BLOB、テキストファイル、フラットファイル、その他;
変更オブジェクト:SQLステートメント、検索と置換の詳細、REGEX、その他。
【0051】
記録オブジェクトは、以下を有してもよい。
オブジェクトデータ:DBイメージ/バックアップ、ファイルシステム、BLOB、テキストファイル、フラットファイル、その他。
オブジェクトメタデータ:
-オブジェクトデータタイプ:DBイメージ/バックアップ、ファイルシステム、BLOB、テキストファイル、フラットファイル、その他;
-ソースデータ(アプリケーションのタイプ、アプリケーションのバージョン、ファイルシステムの詳細、OS、アーキテクチャなど);
-オブジェクトが変更されていないことを保証するためのチェックサム;
-適用可能な変更オブジェクトへのポインタ;
-同じ記録オブジェクトの他のバージョン(バックアップ/アーカイブバージョンなど)へのポインタ。
【0052】
変更オブジェクトは、以下を有してもよい。
オブジェクトデータ:SQLステートメント、検索と置換の詳細、REGEX、その他。
オブジェクトメタデータ:
-オブジェクトデータタイプ:SQLステートメント、検索と置換の詳細、REGEX、その他;
-ソースデータ(アプリケーションのタイプ、アプリケーションのバージョン、ファイルシステムの詳細、OS、アーキテクチャなど);
-オブジェクトが変更されていないことを保証するためのチェックサム;
-依存する変更オブジェクトおよび記録オブジェクトへのポインタ;
-変更の記述(ユーザによって要求される自由形式)。
【0053】
本明細書に記載の方法およびシステムは、SQLステートメントなど、変更方法指示を使用して、行われる変更の詳細を提供する。行われる変更方法指示は非常に小さいため、連続的に依存する大規模な一連のデータログなしで適用することができるので、効率的に保存することができるとともに、データベースアプリケーション、アーキテクチャ、またはファイルシステムの異なるバージョンにわたって適用することができる。
【0054】
この実装形態は、トランザクションがメインデータベースに対して行った変更のバイナリ差分結果を保存するデータベーストランザクションログとは異なる。データベーストランザクションログが使用される理由は、以前のバックアップ後にシステムに障害が発生した場合、以前のバックアップとそれに続くログから、障害発生までの任意の時点までリストアできるようにするためである。ログはまた、高可用性(high availability)と障害復旧(disaster recovery)を理由としてデータベースの変更を複製先サーバに移行させる際にも役立つ。データベースのログは、定期的に消去しない場合、バイナリの性質上非常に大きくなる可能性がある。
【0055】
データベーストランザクションログは、順番にしか再生できず、また本明細書に記載の方法とは異なり、同じシステムの異なるインスタンスに適用することができない。本明細書に記載の方法では、1つの変更を別個に適用することができる。
【0056】
同様に、本明細書の記載の方法の上述した利点は、ファイルシステムスナップショット(filesystem snapshot)にも存在しない。ファイルシステムスナップショットは、大まかに言ってデータベースログに似ているが、アプリケーションに依存しない。一般的に、スナップショットとはある時点(point in time)であり、そのスナップショットが取られた当該時点以降にファイルシステムに加えられた変更を表すバイナリビットマップとして記述される。すべての変更されたデータ(ブロック/トラック)が、有効なスナップショットイメージを構築するために必要となる。
【0057】
コードベースリポジトリ(codebase repository)は、ファイルシステムスナップショットまたはデータベースログと大まかに似た方法で、時間の経過とともに変更を単純に進行させることができる。大きな違いは、一連の開発ブランチ(development branch)を作成して、独立した変更を完全に開発してから、開発中のプロダクトに関するコードベースの本番バージョンにマージして戻すことができることである。このシステムは、ファイルが逐次的にサブミットされることに依存している。ファイルは、全体が保存されるか、「差分(deltas)」と呼ばれる1つのファイルから別のファイルへの変更によって表される。ファイル全体が保存されている場合、各ファイル間の変更内容は、ファイル同士を比較する時点で計算される。
【0058】
ここでも、本明細書に記載の方法とコードリポジトリとの主な違いは、従来の方法で保存されるデータは、変更が行われた方法(例えば、REGEX、SQLステートメントなど)ではなく、行われた変更の結果である。この場合、保存効率がはるかに非効率となるだけでなく、同期していない状態(out of sync)または変更前に変更を適用すると、データが破損するリスクが極めて高くなることを意味する。さらに、本発明の実施形態は、本番システムにおいて変更が行われる前に、ファイル/オブジェクトの保存されたバージョンに変更を適用することは困難であることを認識するものである。
【0059】
図7は、本発明の実施形態に係る、オブジェクトの不変性を維持しながら記録オブジェクトへの変更を記録するための記録修正システム710を提供するコンピュータシステム700の例示的な実施形態を示すブロック図である。記録は、記録オブジェクト721および変更オブジェクト722を含むストレージシステム720に提供することができる。ここで、記録オブジェクト721および変更オブジェクト722の両方を不変の形で保存しながら、記録オブジェクト721および変更オブジェクト722のメタデータに、変更オブジェクト722を該当する記録オブジェクト721および他の変更オブジェクト722に関連付けるポインタが提供される。
【0060】
コンピュータシステム700は、少なくとも1つのプロセッサ701、ハードウェアモジュール、または、少なくとも1つのプロセッサ上で実行されるソフトウェアユニットとすることができる記載のコンポーネントの機能を実行するための回路を含む。並列処理スレッドを実行する複数のプロセッサを設けてもよく、その場合、コンポーネントの機能の一部またはすべての並列処理が可能になる。メモリ702は、コンピュータ命令703を少なくとも1つのプロセッサ701に供給してコンポーネントの機能を実行するように構成することができる。
【0061】
記録修正システム710は、記録オブジェクトへの変更をキャプチャするための変更キャプチャコンポーネント711を含む。キャプチャ内容は、変更される記録オブジェクトの詳細、オブジェクトが変更される変更方法指示、および変更理由の記述を含む。
【0062】
記録修正システム710は、変更方法指示、記録オブジェクトを指すメタデータ、および変更理由の記述を保存するスタンドアロンオブジェクトとして変更オブジェクトを保存するための変更保存コンポーネント712を含むことができる。
【0063】
記録修正システム710は、記録オブジェクトのすべての以前のバージョンのメタデータを修正して、変更オブジェクトへのポインタを含むようにさせるためのメタデータ修正コンポーネント713を含むことができる。
【0064】
記録修正システム710は、記録オブジェクトに対して1つ以上の変更が利用可能であることを、当該記録オブジェクトを要求しているユーザに通知するためのユーザ通知コンポーネント714を含むことができる。
【0065】
記録修正システム710は、記録オブジェクトを求める要求を受信し、当該記録オブジェクトによって指し示される1つ以上の変更オブジェクトの変更方法指示を適用するための記録要求コンポーネント715を含むことができる。記録要求コンポーネント715は、記録オブジェクトによって指し示される1つ以上の変更オブジェクトに対するユーザ選択を受け付けるための選択コンポーネント716と、記録オブジェクトによって指し示される1つ以上の変更オブジェクトを適用するためのデフォルトコンポーネント717とを含むことができる。
【0066】
記録修正システム710は、記録オブジェクトに対する取得要求またはリストア要求に応答する際に、変更方法指示を記録オブジェクトに適用するための変更適用コンポーネント724を含むことができる。記録修正システム710は、記録オブジェクトのメタデータによって指し示される1つ以上の変更オブジェクトのうちの適用可能な変更方法指示を反復することによって、1つ以上の変更方法指示を記録オブジェクトに適用するための反復コンポーネント718を含むことができる。
【0067】
記録修正システム710は、変更オブジェクトの変更方法指示を記録オブジェクトに適用する前に、記録オブジェクトおよび変更オブジェクトの完全性をチェックするための完全性コンポーネント719を含むことができる。
【0068】
記録修正システム710は、変更を適用するか、またはサーバ側での設定によって未変更のオブジェクト(unchanged object)を返すようにするために、変更(またはオブジェクトとは独立した変更)を伴う記録オブジェクトの強制処理(enforced processing)を設定するための設定コンポーネント723を含むことができる。これは、サーバソフトウェアおよびクライアントソフトウェアに適用され、必要に応じて、未変更のオブジェクトを適切に許可されたオペレータに返すようにすることができる。
【0069】
図8は、本発明の一実施形態に係る、コンピュータシステム700に使用されるようなコンピューティングシステムコンポーネントのブロック図である。なお、図8は、一実装形態の例示に過ぎず、異なる実施形態を実施可能な環境に関していかなる制限も意味するものではない。図示の環境に対して多くの変更が可能である。
【0070】
コンピューティングシステムは、1つ以上のプロセッサ802、1つ以上のコンピュータ可読RAM804、1つ以上のコンピュータ可読ROM806、1つ以上のコンピュータ可読記憶媒体808、デバイスドライバ812、読み取り/書き込みドライブまたはインタフェース814、およびネットワークアダプタまたはインタフェース816を含むことができる。これらはすべて、通信ファブリック818を介して相互接続される。通信ファブリック818は、プロセッサ(マイクロプロセッサ、通信およびネットワークプロセッサなど)、システムメモリ、周辺機器、およびシステム内の他のハードウェアコンポーネントの間でデータもしくは制御情報またはその両方を渡すように設計された任意のアーキテクチャで実現することができる。
【0071】
1つ以上のオペレーティングシステム810、および記録修正システム710などのアプリケーションプログラム811は、それぞれのRAM804(一般的にはキャッシュメモリを含む)の1つ以上を介してプロセッサ802の1つ以上が実行するために、コンピュータ可読記憶媒体808の1つ以上に記憶される。図示の実施形態では、コンピュータ可読記憶媒体808の各々は、本発明の実施形態によれば、内蔵ハードドライブの磁気ディスクストレージデバイス、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、または、RAM、ROM、EPROM、フラッシュメモリなどの半導体ストレージデバイス、または、コンピュータプログラムおよびデジタル情報を記憶することができる任意の他のコンピュータ可読記憶媒体とすることができる。
【0072】
また、コンピューティングシステムは、1つ以上のポータブル・コンピュータ可読記憶媒体826に対して読み書きを行うR/Wドライブまたはインタフェース814を含むことができる。コンピューティングシステム上のアプリケーションプログラム811は、ポータブル・コンピュータ可読記憶媒体826のうちの1つ以上に記憶し、それぞれのR/Wドライブまたはインタフェース814を介して読み取り、それぞれのコンピュータ可読記憶媒体808にロードすることができる。
【0073】
また、コンピューティングシステムは、TCP/IPアダプタカードまたは無線通信アダプタなどのネットワークアダプタまたはインタフェース816を含むことができる。コンピューティングシステム上のアプリケーションプログラム811は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、または他のワイドエリアネットワークもしくは無線ネットワーク)およびネットワークアダプタまたはインタフェース816を介して、外部コンピュータまたは外部ストレージデバイスからコンピューティングデバイスにダウンロードすることができる。ネットワークアダプタまたはインタフェース816から、プログラムをコンピュータ可読記憶媒体808にロードしてもよい。ネットワークは、銅線、光ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、およびエッジサーバを含んでもよい。
【0074】
また、コンピューティングシステムは、ディスプレイ画面820、キーボードまたはキーパッド822、およびコンピュータマウスまたはタッチパッド824を含むことができる。デバイスドライバ812は、イメージングのためにディスプレイ画面820とインタフェース接続し、キーボードもしくはキーパッド822とインタフェース接続し、コンピュータマウスもしくはタッチパッド824とインタフェース接続し、もしくは、英数字入力およびユーザ選択の圧力感知のためにディスプレイ画面820とインタフェース接続し、またはその組み合わせを行う。デバイスドライバ812、R/Wドライブまたはインタフェース814、およびネットワークアダプタまたはインタフェース816は、コンピュータ可読記憶媒体808もしくはROM806またはその両方に格納されるハードウェアおよびソフトウェアを含むことができる。
【0075】
本明細書に記載したプログラムは、本発明の特定の実施形態においてプログラムが実装されるアプリケーションに基づいて識別される。ただし、本明細書における特定のプログラムの名称は、便宜上使用しているに過ぎず、したがって、本発明は、このような名称によって識別もしくは示唆またはその両方がなされる特定のアプリケーションで使用することのみに限定されない。
【0076】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合わせとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでもよい。
【0077】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、一例として、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイスまたはこれらの適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化されたデバイス、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0078】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイス/処理デバイスへダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部ストレージデバイスへダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピューティングデバイス/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピューティングデバイス/処理デバイスにおけるコンピュータ可読記憶媒体に記憶するために転送する。
【0079】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0080】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
【0081】
これらのコンピュータ可読プログラム命令は、機械を生産するために、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供することができる。これにより、このようなコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。これらのコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他のデバイスまたはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶することができる。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0082】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他のデバイスにロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0083】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行されてもよい。例えば、関係する機能に応じて、連続して示される2つのブロックが、実際には、1つの工程として達成されてもよいし、同時もしくは略同時に実行されてもよいし、部分的もしくは全体的に時間的に重複した態様で実行されてもよいし、ブロックが場合により逆順で実行されてもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実行可能である。
【0084】
本発明の種々の実施形態を例示として説明してきたが、網羅的であることや、開示した実施形態に限定することを意図したものではない。当業者には明らかなように、本発明の範囲から逸脱することなく、多くの変更および変形が可能である。本明細書で用いられる用語は、実施形態の原理、実際の用途、もしくは市場で確認される技術に対する技術的な改善を最もよく説明するために、または、他の当業者が本明細書に開示する各実施形態を理解できるように選択されたものである。
【0085】
<クラウドコンピューティング>
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装形態は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在公知のまたは後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実施することが可能である。
【0086】
クラウドコンピューティングは、設定可能なコンピューティングリソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)の共有プールへの簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことができる。
【0087】
特性は以下の通りである。
【0088】
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
【0089】
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
【0090】
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
【0091】
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
【0092】
サービスの測定:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの計量機能(metering capability)を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0093】
サービスモデルは以下の通りである。
【0094】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
【0095】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
【0096】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0097】
展開モデルは以下の通りである。
【0098】
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0099】
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0100】
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
【0101】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0102】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0103】
ここで、図9に例示的なクラウドコンピューティング環境50を示す。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図9に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0104】
ここで、クラウドコンピューティング環境50(図9)によって提供される機能的抽象化レイヤのセットを図10に示す。なお、図10に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0105】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0106】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75などの仮想エンティティを提供することができる。
【0107】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでもよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウド消費者およびタスクの識別確認を可能にする。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0108】
ワークロードレイヤ90は、クラウドコンピューティング環境の利用が可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、記録オブジェクト処理96が含まれる。
【0109】
本発明のコンピュータプログラム製品は、コンピュータ可読プログラムコードを記憶した1つ以上のコンピュータ可読ハードウェアストレージデバイスを含み、プログラムコードは、本発明の方法を実施するために1つ以上のプロセッサによって実行可能である。
【0110】
本発明のコンピュータシステムは、1つ以上のプロセッサと、1つ以上のメモリと、1つ以上のコンピュータ可読ハードウェアストレージデバイスとを備え、1つ以上のハードウェアストレージデバイスは、本発明の方法を実施するために、1つ以上のメモリを介して1つ以上のプロセッサによって実行可能なプログラムコードを含む。
【0111】
本発明の種々の実施形態を例示として説明してきたが、網羅的であることや、開示した実施形態に限定することを意図したものではない。当業者には明らかなように、記載した各実施形態の範囲から逸脱することなく、多くの変更および変形が可能である。本明細書で用いられる用語は、各実施形態の原理、実際の用途、もしくは市場で確認される技術に対する技術的な改善を最もよく説明するために、または、他の当業者が本明細書に開示する各実施形態を理解できるように選択されたものである。
【0112】
本発明の範囲から逸脱することなく、上述の内容に対して改良および変更が可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【手続補正書】
【提出日】2023-10-27
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正の内容】
【0039】
判定ステップ503にて、フローチャート500の方法は、マージ対象の次の変更オブジェクト(next change object)のタイプを判定する。例示的な実施形態において、テキスト置換、SQL、または他のプロセスのタイプが考慮される。テキスト置換変更であると判定した場合(判定ステップ503にて「テキスト置換」)、フローチャート500の方法は、変更オブジェクトに記述された検索および置換を記録オブジェクトに実行する(ステップ504)。変更がSQLステートメントに関連付けられていると判定した場合、フローチャート500の方法は、現在の記録オブジェクトを適切なステージングデータベースサーバにリストアし、データベースをマウントし(ステップ507)、次いで、SQLクエリを実行し、得られたデータベースオブジェクトを返すことができる(ステップ508)。変更が他のプロセスに関連していると判定した場合、フローチャート500の方法は、他の記述的プロセス(descriptive process)を適用して、例えばフラットファイルにREGEXを適用することができる(ステップ50)。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0040
【補正方法】変更
【補正の内容】
【0040】
次に、判定ステップ509にて、フローチャート500の方法は、オブジェクトのマージのために利用可能な変更がさらに存在するかどうかを判定する。さらに変更が存在すると判定した場合(判定ステップ509にてYES)、フローチャート500の方法は、処理ループをインクリメントすることができる(ステップ502)。さらなる変更が存在しないと判定した場合(判定ステップ509にてNO)、フローチャート500の方法は、得られたマージ後のオブジェクトを返すことができる(ステップ510)。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0041
【補正方法】変更
【補正の内容】
【0041】
図6は、本明細書の記載の方法の一例を示す概略図600である。複数の記録オブジェクト(例えば、記録データベース(db)オブジェクトバージョン1(601)、記録dbオブジェクトバージョン2(602)、記録dbオブジェクトバージョン3(603)、記録dbオブジェクトバージョンn(604)、記録dbオブジェクトバージョンn+1(605)、記録テキストオブジェクトバージョン1(611)、記録テキストオブジェクトバージョン(612)、および他の記録オブジェクトバージョン1(621))が、それぞれの変更オブジェクトとともに示されている。例えば、変更オブジェクト606、変更オブジェクト607、変更オブジェクト608、変更オブジェクト613、および変更オブジェクト622である。
【国際調査報告】