JP2014534532A - オラクルリワインド:メタデータドリブンのアンドゥ - Google Patents
オラクルリワインド:メタデータドリブンのアンドゥ Download PDFInfo
- Publication number
- JP2014534532A JP2014534532A JP2014540018A JP2014540018A JP2014534532A JP 2014534532 A JP2014534532 A JP 2014534532A JP 2014540018 A JP2014540018 A JP 2014540018A JP 2014540018 A JP2014540018 A JP 2014540018A JP 2014534532 A JP2014534532 A JP 2014534532A
- Authority
- JP
- Japan
- Prior art keywords
- value
- request
- undo
- entry
- target system
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims 1
- 230000009471 action Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 239000000344 soap Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 101100533306 Mus musculus Setx gene Proteins 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000002253 acid Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000037308 hair color Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 231100000957 no side effect Toxicity 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
この出願は、2011年11月3日に出願された仮出願第61/555,443号の利益を請求しており、これによってその全ての内容は、米国特許法第119条(e)により本願明細書において完全に記載されるかのように、参照により援用される。
現代のコンピューティングシステムはしばしば、あるオペレーションを「アンドゥ(undo)」する能力を提供する。これは、コンピュータオペレータまたは彼らが用いるプログラムが時に誤りを起こすからである。誤りが発生すると、オペレータは、既知の状態に戻って再度試行したい場合がある。さまざまなアクションがこれらの誤りにつながり得る。たとえば、プログラマは時々、コンピューティングシステムが特定の態様で用いられるのを認識することを失敗する。プログラマが特定の使用ケースについてテストをしていなかった場合、ユーザはエラーをシステムに導入し得る。より複雑なビジネストランザクションにおいて、さまざまなコンピューティングシステム上で多くの変更がなされることが一般的である。このようなマルチステップのビジネストランザクションが始まった後であって終わる前にこれらのコンピューティングシステムの1つに変更がなされれば、不整合性が当該システムに導入され得る。これは、この間に起こる変更が、ビジネストランザクションにおいてなされた他の変更とのセキュリティ不整合性を伴う場合に特に問題である。
メタデータドリブンのアンドゥが記載される。以下の記載において、本発明の完全な理解を提供するよう、多くの特定の詳細を説明目的のために記載する。しかしながら、本発明はこれらの特定の詳細なしで実施され得るということは当業者には明らかであろう。他の場合では、不必要に本発明を不明瞭にすることを避けるために、周知の構造および装置がブロック図の形で示される。
1.0 一般概要
2.0 構造および機能概要
3.0 メタデータドリブンのアンドゥ
3.1 メタデータ
3.2 アンドゥログ
3.3 アンドゥレット(Undolet)
3.4 メタデータドリブンのアンドゥの実行
3.5 アンドゥポリシー
3.6 アンドゥエンジンの停止
4.0 実現メカニズム−ハードウェア概要
1.0 一般概要
メタデータドリブンのアンドゥが記載される。ある実施例では、メタデータレポジトリが、オペレーションに関連付けられるメタデータを格納する。たとえば、メタデータは、当該オペレーションがセッタ(setter)、ゲッタ(getter)、コンストラクタ(constructor)、デストラクタ(destructor)、アダー(adder)、リムーバ(remover)、または他のタイプのオペレーションかどうかといったようなオペレーションのタイプを識別し得る。各オペレーションおよび/またはオペレーションタイプに関連付けられる属性もメタデータに格納される。各オペレーションは、アンドゥエントリを生成するための命令を含むアンドゥレットに関連付けられる。アンドゥレットは、ターゲットシステムを考慮することなく当該オペレーションのタイプ(たとえばコンストラクタ、デストラクタ)に属する任意のオペレーションに対する任意の呼出しを取り扱うことができる。アンドゥロジックは、メタデータレポジトリ内のメタデータとアンドゥレットとに基づきアンドゥログ内にエントリを生成する。ある実施例では、アンドゥエントリが、ターゲットシステムに対するクエリに基づき生成される。アンドゥログにおけるエントリは、システムによってインターセプトされる要求におけるオペレーションに基づき得、オペレーションに関連付けられる属性についての属性値を含み得る。アンドゥコマンドが発行されると、アンドゥログにおける、特定のビジネストランザクションに関連付けられる命令が実行される。アンドゥ命令の実行が成功すれば、ビジネストランザクションに含まれるシステムの状態は、ビジネストランザクションに関連付けられるオブジェクトに関して、トランザクション前の状態に戻る。
図1Aは、ある実施例が実現され得るコンピューティング環境の論理ブロック図を示す図である。クライアント110は、別のコンピューティングシステムもしくはコンピュータプロセスに要求を行うか、またはそうでなければ別のコンピューティングシステムもしくはコンピュータプロセスと遣り取りをすることが可能であるコンピューティングシステムを示す。クライアント110はさらに、コンピューティング装置上で実行しているプロセスを示し得る。たとえば、クライアント110およびサーバ130は、同じコンピューティング装置上で実行されているプロセスを示し得る。クライアント120は、ロジックと、実行されると1つ以上の要求がサーバ130に送られる命令とを有するよう構成される。サーバ130は、サーバロジックおよび格納された命令に従って他のプロセス、コンピューティング装置、またはクライアント110のような他のエンティティによってなされた要求に応答してオペレーションを行うよう構成されるコンピューティングシステムまたはコンピューティングシステム上のプロセスを示す。たとえば、クライアント110は、財務会計システムに関連付けられるユーザの役割を更新するよう要求を含む更新要求を送り得る。この要求を受け取ることに応答して、サーバ130は、クライアント110によって提供される命令に従ってユーザの役割を更新するために、データベースに発行する更新を生成し得る。
3.1 メタデータ
リソースを値に論理的にマッピングするメタデータがメタデータレポジトリに格納される。ある実施例では、メタデータレポジトリはデータベース260であり、メタデータはデータベーステーブルメタデータ262に格納される。メタデータは自動的に、メタデータ抽出ロジック250によってメタデータレポジトリに追加またはメタデータレポジトリから除去され得る。ある実施例では、コマンドラインオペレーション、ウェブベースのツールの使用によって、またはXMLファイルのようなリソースメタデータを記述するファイルをメタデータレポジトリにコピーすることによって、メタデータが手動でメタデータレポジトリに追加またはメタデータレポジトリから除去され得る。ある実施例では、メタデータレポジトリに格納される各リソースメタデータオブジェクトが、オペレーションのためのメタデータおよび他のメタデータを提供する。リソースメタデータは、例示すると、オペレーションメタデータ、パラメータメタデータ、例外メタデータ、オペレーション間の関係、およびタイプメタデータといった要素の1つ以上から構成され得る。
メタデータが、本願明細書においてアンドゥ命令と称される、ビジネストランザクションのようなトランザクションの一部として行われるオペレーションを反転させるアンドゥログエントリを生成するよう用いられる。アンドゥログは、順序付けられたエントリのリストである。本願明細書において使用されるように、「エントリ」という用語は、データの識別可能なセットを指すよう意図されており、任意の量の情報を含んでもよい。たとえば、エントリは、メタデータ、エントリの始まりまたは終わりを識別するエントリ境界マーカ、または特定のビジネストランザクションに関連付けられる1つ以上のエントリのセットの始まりまたは終わりを識別するビジネストランザクション境界マーカを含んでもよい。ある実施例では、エントリは、アンドゥエントリまたはベリフィケーションエントリのいずれかであってもよい。アンドゥエントリの目的は、アンドゥアクションの全セットの一部である何らかの更新を行うことである。ベリファイヤエントリは、データがOracle Rewindによって予測されるようなものであることを検証するよう存在する。データが検証されなければ、書き込みコンフリクトが発生している。ある実施例では、アンドゥエントリは以下の形態を取る。
{target-info, operation-name, [引数]}
ある実施例では、ベリフィケーションステップが、特定のビジネストランザクションに関連付けられるベリフィケーションの進行を記録するよう行われる際に、ベリフィケーションエントリはフラグを立てられ得る。ある実施例では、アンドゥステップが、特定のビジネストランザクションに関連付けられるアンドゥの進行を記録するよう行われる際に、アンドゥエントリはフラグを立てられ得る。復旧が必要な失敗の際に、アンドゥエントリフラグは、失敗により完了されなかったアンドゥオペレーションの状態を決定するようアンドゥエンジン120によってチェックされ得る。
基本的な種類のUNDOABLEを有する各オペレーションメタデータは、ある実施例では、「アンドゥレット(undolet)」に関連付けられる。アンドゥレットは、特定のオペレーションタイプに関連付けられるオペレーションをアンドゥすることが可能なオブジェクトである。たとえば、アンドゥレットは、「セッタ」オペレーションであるオペレーションをアンドゥすることが可能であり得る。ある実施例では、いくつかのアンドゥレットは特定のオペレーションをアンドゥすることが可能であり、オペレーションタイプに関連付けられない。別の実施例では、アンドゥレットは、ターゲットと単一の引数(またはパラメータ)とのみを有する「セッタ」オペレーションのようなあるオペレーションタイプのオペレーションのサブセットに関連付けられ得る。この場合、複数のアンドゥレットが、「セッタ」オペレーションタイプに関連付けられ得る。オペレーションのアクションをアンドゥすることは、関連付けられるアンドゥレットにおいて、ロジックによって行われる。ある実施例では、オペレーションがアンドゥレットに関連付けられなければ、オペレーションはアンドゥされ得ない。アンドゥレットは、それらのアンドゥレット識別子によって識別される。たとえば、名前はアンドゥレット識別子として使用されてもよい。したがって、setColorという名前のオペレーションについてのオペレーションメタデータは、「セッタ」のアンドゥレット識別子を有し得る。クラスPersonについてのPerson(String name)のようなJavaコンストラクタは、「コンストラクタ」のアンドゥレット識別子を有し得る。
ある実施例では、データベース260のようなメタデータレポジトリは、オペレーションに関連付けられるメタデータを格納する。たとえば、メタデータは、オペレーションがセッタ、ゲッタ、コンストラクタ、デストラクタ、アダー、リムーバ、または他のタイプのオペレーションであるかどうかといったオペレーションのタイプを識別し得る。各オペレーションに関連付けられる属性も、メタデータに格納される。
ある実施例では、アンドゥエンジン120が直面し得る予想されるシナリオに対処するようアンドゥポリシーが用いられる。たとえば、アンドゥポリシーは、アンドゥされ得ない、NOT-UNDOABLEのタイプのオペレーションといったオペレーションが発生するのを防止するよう用いられ得る。不可逆的なオペレーションの実行を防止するようアンドゥエンジン120に命令するポリシーを規定することにより、アンドゥされ得ない、システムへの潜在的に損害の大きい変更に対して付加的な安全性が提供される。この例は、初期のオペレーションに影響を与えるポリシーを議論しているが、他のアンドゥポリシーが、要求が満たされた後またはアンドゥ要求の間に起こるシナリオに対処するよう実現され得る。
アンドゥエンジンのオペレーションの停止が有用であり得るいくつかの場合がある。たとえば、システムアドミニストレータが、複数のシステムに変更を加えており、アンドゥエンジン120によって提供される安全性なしで動作することができると感じていて、アンドゥエンジン120を無効にすることにより、アンドゥエンジン120によって使用されるリソースを解放することを好むことがある。ある実施例では、アンドゥエンジン120は、アンドゥログ生成、他の機能を停止もしくはオフにするかまたは完全にアンドゥエンジン120をシャットダウンする要求をサポートする。オフにされる効果は、実現例に依存して変動し得る。アンドゥエンジンは、中間部として実現されると、単純に各要求を受け取り、それをターゲットに渡す。アンドゥエンジンは、埋め込まれたフットプリントとして実現されれば、埋め込まれたアンドゥエンジン120のコンポーネントが全く呼び出されないようにそのロジックを変更する。ある実施例では、アンドゥエンジン120の一部を停止するために、全アンドゥエンジン120が停止される必要はない。任意の理由により、アンドゥエンジン120の如何なる部分も個々に停止され得る。たとえば、システムに対する間に存在する変更の可能性がほとんどないかまたは全くない場合には性能の増加のためにベリフィケーションステップを引き換えにすることをユーザが快適に感じるかもしれないので、単一ユーザ/非同時環境においてすべてのベリフィケーションメカニズムを停止することが適切であり得る。
一実施例によれば、本願明細書において記載された技術は、1つ以上の特殊目的のコンピューティング装置によって実現される。当該特殊目的のコンピューティング装置は、これらの技術を行なうためにハードワイヤードされてもよく、または1つ以上の特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)のような、当該技術を行なうように持続的にプログラムされたデジタル電子装置を含んでもよく、またはファームウェア、メモリ、他のストレージまたは組合せ中のプログラム命令に従った技術を行なうようにプログラムされた1つ以上の汎用ハードウェアプロセッサを含んでもよい。このような特殊目的のコンピューティング装置はまた、当該技術を達成するために、カスタムハードワイヤードロジック、ASICまたはFPGAをカスタムプログラミングに組み合わせ得る。特殊目的のコンピューティング装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワーク装置、または当該技術を実現するようハードワイヤードおよび/またはプログラムロジックを統合する任意の他の装置であり得る。
Claims (21)
- システムであって、
1つ以上のプロセッサと、
メタデータレポジトリを維持するための命令およびアンドゥロジックを提供するための命令を含む一時的でないコンピュータ可読記憶媒体とを含み、
前記メタデータレポジトリは、複数のオペレーションに関連付けられるメタデータを格納するためのものであり、各オペレーションはオペレーションタイプに関連付けられており、各オペレーションに関連付けられる前記メタデータは、a)当該オペレーションに関連付けられる1つ以上の属性と、b)対応するオペレーションのオペレーションタイプに関連付けられるアンドゥレットとを少なくとも識別し、前記アンドゥレットは、アンドゥエントリを生成するための命令を含んでおり、
前記アンドゥロジックは、前記メタデータレポジトリにおける前記メタデータと前記アンドゥレットとに少なくとも部分的に基づきアンドゥログにおいて1つ以上のエントリを生成するためのものであり、前記アンドゥログにおける第1のエントリは、前記システムにインターセプトされる第1の要求における第1のオペレーションに基づいており、かつ前記オペレーションに関連付けられる第1の属性についての第1の属性値を含み、
前記アンドゥレットは、前記オペレーションタイプに関連付けられるオペレーションをアンドゥすることが可能なオブジェクトである、システム。 - 前記第1の要求は、ターゲットシステム上の第1のオブジェクトの値を第2の値から第3の値に変更する要求であり、前記アンドゥロジックはさらに、前記要求をインターセプトすることに応答して、前記第1の要求に応答して前記第2の値が変更される前に前記ターゲットシステムから前記第2の値を抽出するように前記ターゲットシステムへの第2の要求を生成するよう構成される、請求項1に記載のシステム。
- 前記アンドゥログ中の前記第1のエントリにおける前記第1の属性値は前記第2の値と同一であり、前記エントリは、前記1つ以上のプロセッサによって実行されると前記第1のオブジェクトの値が前記第1の属性値に設定される第1の命令を含む、請求項2に記載のシステム。
- 前記アンドゥログ中の前記第1のエントリはさらに、1つ以上のプロセッサによって実行されると、アンドゥロジックに、ターゲットシステム上の前記第1のオブジェクトの値が前記第3の値と同一であるかどうかを決定させるとともに、前記ターゲットシステム上の前記第1のオブジェクトの値が前記第3の値と同一であると決定することに応答して、前記第1のオブジェクトの値が前記第1の属性値に設定される命令を実行させる第2の命令を含む、請求項3に記載のシステム。
- 前記アンドゥロジックはさらに、前記システムによってインターセプトされる第2の要求における第2のオペレーションに基づき前記アンドゥログに第2のエントリを生成するよう構成されており、前記第2の要求は、第2のターゲットシステム上の第2のオブジェクトの値を第4の値から第5の値に変更する要求であり、前記第2のエントリは前記第4の値を含み、
前記第1の要求および前記第2の要求は、前記第1および第2の要求の両方を第1のセッションに関連付けるセッション識別情報を含み、
前記第2のエントリは、前記1つ以上のプロセッサによって実行されると、前記第2のオブジェクトの値が前記第4の値に設定される第2の命令を含み、
前記システムは、前記第1の要求を前記第1のターゲットシステムに送り、かつ前記第2の要求を前記第2のターゲットシステムに送るよう構成されており、
前記アンドゥロジックは、前記第1のセッションに関連付けられるアンドゥオペレーションを行うよう第3の要求を受け取ることに応答して、第1、第2および第3の命令が前記1つ以上のプロセッサ上で実行されるよう構成される、請求項4に記載のシステム。 - 前記アンドゥロジックはさらに、前記第2の要求の前かつ第1の要求の後にインターセプトされる第3の要求における第3のオペレーションに基づき第2のアンドゥログに第3のエントリを生成するよう構成されており、前記第3の要求は、前記第1のターゲットシステム上で第3のオブジェクトの値を変更する要求であり、前記第3の要求は第2のセッションに関連付けられており、
前記アンドゥロジックは、前記第3のオブジェクトの値を変更することなしに、第1、第2および第3の命令が前記1つ以上のプロセッサ上で実行されるよう構成される、請求項5に記載のシステム。 - 前記第1のオペレーションはコンストラクタオペレーションであり、前記第1の属性値は前記要求に応答してターゲットシステム上に構築されるオブジェクトの名前であり、前記アンドゥログにおける前記第1のエントリは、前記1つ以上のプロセッサによって実行されると、前記オブジェクトが前記ターゲットシステムから除去される命令を含む、請求項1〜6のいずれか1項に記載のシステム。
- 一時的でないコンピュータ可読記憶媒体であって、前記一時的でないコンピュータ可読記憶媒体は命令を格納しており、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
複数のオペレーションに関連付けられるメタデータを格納するメタデータレポジトリを維持することを行わせ、各オペレーションはオペレーションタイプに関連付けられており、各オペレーションに関連付けられる前記メタデータは、a)当該オペレーションに関連付けられる1つ以上の属性と、b)対応するオペレーションのオペレーションタイプに関連付けられるアンドゥレットとを少なくとも識別し、前記アンドゥレットは、アンドゥエントリを生成するための命令を含んでおり、前記命令はさらに前記1つ以上のプロセッサに、
前記メタデータレポジトリにおける前記メタデータと前記アンドゥレットとに少なくとも部分的に基づきアンドゥログにおいて1つ以上のエントリを生成することを行わせ、
前記アンドゥログにおける第1のエントリは、前記システムにインターセプトされる第1の要求における第1のオペレーションに基づいており、かつ前記オペレーションに関連付けられる第1の属性についての第1の属性値を含み、
前記アンドゥレットは、前記オペレーションタイプに関連付けられるオペレーションをアンドゥすることが可能なオブジェクトである、一時的でないコンピュータ可読記憶媒体。 - 前記第1の要求は、ターゲットシステム上の第1のオブジェクトの値を第2の値から第3の値に変更する要求であり、前記命令はさらに、
前記要求をインターセプトすることに応答して、前記第1の要求に応答して前記第2の値が変更される前に前記ターゲットシステムから前記第2の値を抽出するように前記ターゲットシステムへの第2の要求を生成するための命令を含む、請求項8に記載の一時的でないコンピュータ可読記憶媒体。 - 前記アンドゥログ中の前記第1のエントリにおける前記第1の属性値は前記第2の値と同一であり、前記エントリは、前記1つ以上のプロセッサによって実行されると前記第1のオブジェクトの値が前記第1の属性値に設定される第1の命令を含む、請求項9に記載の一時的でないコンピュータ可読記憶媒体。
- 前記アンドゥログ中の前記第1のエントリはさらに、1つ以上のプロセッサによって実行されると、アンドゥロジックに、ターゲットシステム上の前記第1のオブジェクトの値が前記第3の値と同一であるかどうかを決定させるとともに、前記ターゲットシステム上の前記第1のオブジェクトの値が前記第3の値と同一であると決定することに応答して、前記第1のオブジェクトの値が前記第1の属性値に設定される命令を実行させる第2の命令を含む、請求項10に記載の一時的でないコンピュータ可読記憶媒体。
- 前記命令はさらに、
第2のインターセプトされる要求における第2のオペレーションに基づき前記アンドゥログに第2のエントリを生成するための命令を含み、前記第2の要求は、第2のターゲットシステム上の第2のオブジェクトの値を第4の値から第5の値に変更する要求であり、前記第2のエントリは前記第4の値を含み、
前記第1の要求および前記第2の要求は、前記第1および第2の要求の両方を第1のセッションに関連付けるセッション識別情報を含み、
前記第2のエントリは、前記1つ以上のプロセッサによって実行されると、前記第2のオブジェクトの値が前記第4の値に設定される第2の命令を含み、前記命令はさらに、
前記第1の要求を前記第1のターゲットシステムに送り、かつ前記第2の要求を前記第2のターゲットシステムに送るための命令と、
前記第1のセッションに関連付けられるアンドゥオペレーションを行うよう第3の要求を受け取ることに応答して、第1、第2および第3の命令が前記1つ以上のプロセッサ上で実行されるための命令とを含む、請求項11に記載の一時的でないコンピュータ可読記憶媒体。 - 前記アンドゥロジックはさらに、前記第2の要求の前かつ第1の要求の後にインターセプトされる第3の要求における第3のオペレーションに基づき第2のアンドゥログに第3のエントリを生成するよう構成されており、前記第3の要求は、前記第1のターゲットシステム上で第3のオブジェクトの値を変更する要求であり、前記第3の要求は第2のセッションに関連付けられており、
前記アンドゥロジックは、前記第3のオブジェクトの値を変更することなしに、第1、第2および第3の命令が前記1つ以上のプロセッサ上で実行されるよう構成される、請求項12に記載の一時的でないコンピュータ可読記憶媒体。 - 前記第1のオペレーションはコンストラクタオペレーションであり、前記第1の属性値は前記要求に応答してターゲットシステム上に構築されるオブジェクトの名前であり、前記アンドゥログにおける前記第1のエントリは、前記1つ以上のプロセッサによって実行されると、前記オブジェクトが前記ターゲットシステムから除去される命令を含む、請求項8〜13のいずれか1項に記載の一時的でないコンピュータ可読記憶媒体。
- 方法であって、
複数のオペレーションに関連付けられるメタデータを格納するメタデータレポジトリを維持するステップを含み、各オペレーションはオペレーションタイプに関連付けられており、各オペレーションに関連付けられる前記メタデータは、a)当該オペレーションに関連付けられる1つ以上の属性と、b)対応するオペレーションのオペレーションタイプに関連付けられるアンドゥレットとを少なくとも識別し、前記アンドゥレットは、アンドゥエントリを生成するための命令を含んでおり、前記方法はさらに、
前記メタデータレポジトリにおける前記メタデータと前記アンドゥレットとに少なくとも部分的に基づきアンドゥログにおいて1つ以上のエントリを生成するステップを含み、
前記アンドゥログにおける第1のエントリは、前記システムにインターセプトされる第1の要求における第1のオペレーションに基づいており、かつ前記オペレーションに関連付けられる第1の属性についての第1の属性値を含み、
前記方法は1つ以上のコンピューティング装置によって行われ、
前記アンドゥレットは、前記オペレーションタイプに関連付けられるオペレーションをアンドゥすることが可能なオブジェクトである、方法。 - 前記第1の要求は、ターゲットシステム上の第1のオブジェクトの値を第2の値から第3の値に変更する要求であり、前記方法はさらに、
前記要求をインターセプトすることに応答して、前記第1の要求に応答して前記第2の値が変更される前に前記ターゲットシステムから前記第2の値を抽出するように前記ターゲットシステムへの第2の要求を生成するステップを含む、請求項15に記載の方法。 - 前記アンドゥログ中の前記第1のエントリにおける前記第1の属性値は前記第2の値と同一であり、前記エントリは、前記1つ以上のプロセッサによって実行されると前記第1のオブジェクトの値が前記第1の属性値に設定される第1の命令を含む、請求項16に記載の方法。
- 前記アンドゥログ中の前記第1のエントリはさらに、1つ以上のプロセッサによって実行されると、アンドゥロジックに、ターゲットシステム上の前記第1のオブジェクトの値が前記第3の値と同一であるかどうかを決定させるとともに、前記ターゲットシステム上の前記第1のオブジェクトの値が前記第3の値と同一であると決定することに応答して、前記第1のオブジェクトの値が前記第1の属性値に設定される命令を実行させる第2の命令を含む、請求項17に記載の方法。
- 第2のインターセプトされる要求における第2のオペレーションに基づき前記アンドゥログに第2のエントリを生成するステップをさらに含み、前記第2の要求は、第2のターゲットシステム上の第2のオブジェクトの値を第4の値から第5の値に変更する要求であり、前記第2のエントリは前記第4の値を含み、
前記第1の要求および前記第2の要求は、前記第1および第2の要求の両方を第1のセッションに関連付けるセッション識別情報を含み、
前記第2のエントリは、前記1つ以上のプロセッサによって実行されると、前記第2のオブジェクトの値が前記第4の値に設定される第2の命令を含み、前記方法はさらに、
前記第1の要求を前記第1のターゲットシステムに送り、かつ前記第2の要求を前記第2のターゲットシステムに送るステップと、
前記第1のセッションに関連付けられるアンドゥオペレーションを行うよう第3の要求を受け取ることに応答して、第1、第2および第3の命令が前記1つ以上のプロセッサ上で実行されるステップとを含む、請求項18に記載の方法。 - 前記第1のオペレーションはコンストラクタオペレーションであり、前記第1の属性値は前記要求に応答してターゲットシステム上に構築されるオブジェクトの名前であり、前記アンドゥログにおける前記第1のエントリは、前記1つ以上のプロセッサによって実行されると、前記オブジェクトが前記ターゲットシステムから除去される命令を含む、請求項15〜19のいずれか1項に記載の方法。
- 1つ以上のプロセッサに請求項15〜20のいずれか1項に記載の方法を行わせるための、コンピュータプログラム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161555443P | 2011-11-03 | 2011-11-03 | |
US61/555,443 | 2011-11-03 | ||
US13/300,545 US8484166B2 (en) | 2011-11-03 | 2011-11-18 | Oracle rewind: metadata-driven undo |
US13/300,545 | 2011-11-18 | ||
PCT/US2012/062610 WO2013066889A2 (en) | 2011-11-03 | 2012-10-30 | Oracle rewind: metadata-driven undo |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014534532A true JP2014534532A (ja) | 2014-12-18 |
JP2014534532A5 JP2014534532A5 (ja) | 2015-11-05 |
JP6069339B2 JP6069339B2 (ja) | 2017-02-01 |
Family
ID=47459080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014540018A Active JP6069339B2 (ja) | 2011-11-03 | 2012-10-30 | オラクルリワインド:メタデータドリブンのアンドゥ |
Country Status (6)
Country | Link |
---|---|
US (2) | US8484166B2 (ja) |
EP (1) | EP2774031B1 (ja) |
JP (1) | JP6069339B2 (ja) |
CN (1) | CN104272247B (ja) |
IN (1) | IN2014CN03217A (ja) |
WO (1) | WO2013066889A2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268755B2 (en) * | 2013-03-06 | 2016-02-23 | Shashank Bhide | Performing persistent undo and redo operation within computer software |
US20150088970A1 (en) * | 2013-09-20 | 2015-03-26 | Yottaa Inc. | Systems and methods for managing loading priority or sequencing of fragments of a web object |
GB2520972A (en) | 2013-12-05 | 2015-06-10 | Ibm | Workload management |
US9535853B2 (en) * | 2013-12-30 | 2017-01-03 | International Business Machines Corporation | Building an undo log for in-memory blocks of data |
US9398068B2 (en) | 2014-02-20 | 2016-07-19 | International Business Machines Corporation | Bulk uploading of multiple self-referencing objects |
US10491695B2 (en) * | 2014-08-22 | 2019-11-26 | Oracle International Corporation | Autosave with across user session undo support |
US10169054B2 (en) | 2014-12-22 | 2019-01-01 | International Business Machines Corporation | Undo and redo of content specific operations |
US11102313B2 (en) * | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
US10582001B2 (en) | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US10419514B2 (en) | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
US10171472B2 (en) * | 2016-03-02 | 2019-01-01 | Microsoft Technology Licensing, Llc | Role-specific service customization |
US10277488B2 (en) * | 2016-09-09 | 2019-04-30 | International Business Machines Corporation | System and method for management and recovery of multi-service web transactions |
CN108228322B (zh) * | 2016-12-12 | 2022-03-25 | 阿里巴巴集团控股有限公司 | 一种分布式链路跟踪、分析方法及服务器、全局调度器 |
CN109032752B (zh) * | 2017-06-12 | 2023-03-10 | 微软技术许可有限责任公司 | 基于云平台的操作撤销 |
FI20175570A1 (en) * | 2017-06-19 | 2018-12-20 | Trimble Solutions Corp | Printing History Log Information |
US10719414B2 (en) * | 2018-05-11 | 2020-07-21 | Cisco Technology, Inc. | Rollback for cloud native workflows |
US10936571B1 (en) * | 2020-04-28 | 2021-03-02 | Salesforce.Com, Inc. | Undo based logical rewind in a multi-tenant system |
CN111752162B (zh) * | 2020-06-28 | 2023-09-19 | 青岛海尔科技有限公司 | 用于撤销联动操作的方法和装置及计算机可读存储介质 |
US11275685B1 (en) * | 2020-09-11 | 2022-03-15 | Kyndryl, Inc. | System and method of optimizing rollbacks |
WO2023018470A1 (en) * | 2021-08-13 | 2023-02-16 | Micron Technology, Inc. | Undo capability for memory devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020007363A1 (en) * | 2000-05-25 | 2002-01-17 | Lev Vaitzblit | System and method for transaction-selective rollback reconstruction of database objects |
JP2005202864A (ja) * | 2004-01-19 | 2005-07-28 | Hitachi Software Eng Co Ltd | ネットワークシステム |
JP2009259009A (ja) * | 2008-04-17 | 2009-11-05 | Internatl Business Mach Corp <Ibm> | トランザクションの実行を制御する装置及び方法 |
JP2011509489A (ja) * | 2008-01-08 | 2011-03-24 | マイクロソフト コーポレーション | ジャバスクリプトグリッドにおける非同期マルチレベル・アンドゥのサポート |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6158044A (en) | 1997-05-21 | 2000-12-05 | Epropose, Inc. | Proposal based architecture system |
US6785722B2 (en) * | 1998-03-20 | 2004-08-31 | Sun Microsystems, Inc. | Apparatus, methods, and computer program products for transactional support of network management operations |
US6584477B1 (en) * | 1999-02-04 | 2003-06-24 | Hewlett Packard Development Company, L.P. | High speed system and method for replicating a large database at a remote location |
US6618822B1 (en) * | 2000-01-03 | 2003-09-09 | Oracle International Corporation | Method and mechanism for relational access of recovery logs in a database system |
US6856993B1 (en) | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
US6748550B2 (en) | 2001-06-07 | 2004-06-08 | International Business Machines Corporation | Apparatus and method for building metadata using a heartbeat of a clustered system |
US6895529B2 (en) | 2002-02-13 | 2005-05-17 | Bull Hn Information Systems, Inc. | Rebuilding “in-doubt” states reliably after multiple system failures in a data processing system performing two-phase transaction processing |
US7234076B2 (en) * | 2002-02-15 | 2007-06-19 | Sun Microsystems, Inc. | Multi-level undo of main-memory and volatile resources |
US7823060B2 (en) * | 2002-06-07 | 2010-10-26 | Microsoft Corporation | Undo/redo architecture across multiple files |
US20070128899A1 (en) | 2003-01-12 | 2007-06-07 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
US7181476B2 (en) * | 2003-04-30 | 2007-02-20 | Oracle International Corporation | Flashback database |
US20040250155A1 (en) | 2003-05-19 | 2004-12-09 | Stefan Weichselbaum | Aspect based recovery system and method |
CA2472887A1 (en) * | 2003-06-30 | 2004-12-30 | Gravic, Inc. | Methods for ensuring referential integrity in multithreaded replication engines |
US7343554B2 (en) * | 2003-10-14 | 2008-03-11 | Sun Microsystems, Inc. | Mechanisms for supporting back button function of web browser as web service server in interaction with business process engine |
JP4483342B2 (ja) | 2004-02-27 | 2010-06-16 | 株式会社日立製作所 | システム復旧方法 |
US7499953B2 (en) * | 2004-04-23 | 2009-03-03 | Oracle International Corporation | Online recovery of user tables using flashback table |
US7668961B2 (en) * | 2004-09-23 | 2010-02-23 | Microsoft Corporation | Unilateral web services interaction contract |
US7739244B2 (en) * | 2004-10-14 | 2010-06-15 | Oracle International Corporation | Operating logging for online recovery in shared memory information systems |
EP1818836A1 (en) * | 2004-11-12 | 2007-08-15 | JustSystems Corporation | Data processing device and data processing method |
US7499955B2 (en) | 2005-03-30 | 2009-03-03 | Microsoft Corporation | System and method for undoing application actions using inverse actions with atomic rollback |
US8037169B2 (en) | 2005-05-18 | 2011-10-11 | Oracle International Corporation | Determining affinity in a cluster |
US20070112885A1 (en) * | 2005-11-17 | 2007-05-17 | Jon Farr | Distributed transaction history management system |
GB0622738D0 (en) * | 2006-11-15 | 2006-12-27 | Ibm | Methods and apparatus for assisted migration in a data processing environment |
US8880480B2 (en) * | 2007-01-03 | 2014-11-04 | Oracle International Corporation | Method and apparatus for data rollback |
US8719514B2 (en) * | 2007-06-27 | 2014-05-06 | Intel Corporation | Software filtering in a transactional memory system |
US8001091B2 (en) | 2007-08-29 | 2011-08-16 | International Business Machines Corporation | Apparatus, system, and method for hierarchical rollback of business operations |
US8086564B2 (en) * | 2007-12-12 | 2011-12-27 | Oracle International Corporation | Techniques for the logical replication of high-level procedures |
US8209603B2 (en) * | 2009-04-29 | 2012-06-26 | Microsoft Corporation | Maintaining undo and redo capability across metadata merges |
WO2011123924A1 (en) | 2010-04-08 | 2011-10-13 | Robert Alexander Mccarter | A personal financial planning system and method with a novel undo system and method |
US8880486B2 (en) * | 2010-07-27 | 2014-11-04 | Sap Ag | Distributed database system utilizing an extended two-phase-commit process |
US20130097136A1 (en) * | 2011-10-17 | 2013-04-18 | Pie Digital, Inc. | Method and system for acessing domain specific in-memory database management system |
-
2011
- 2011-11-18 US US13/300,545 patent/US8484166B2/en active Active
-
2012
- 2012-10-30 EP EP12808533.9A patent/EP2774031B1/en active Active
- 2012-10-30 CN CN201280060770.4A patent/CN104272247B/zh active Active
- 2012-10-30 WO PCT/US2012/062610 patent/WO2013066889A2/en active Application Filing
- 2012-10-30 JP JP2014540018A patent/JP6069339B2/ja active Active
-
2013
- 2013-06-06 US US13/911,875 patent/US9075750B2/en active Active
-
2014
- 2014-04-29 IN IN3217CHN2014 patent/IN2014CN03217A/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020007363A1 (en) * | 2000-05-25 | 2002-01-17 | Lev Vaitzblit | System and method for transaction-selective rollback reconstruction of database objects |
JP2005202864A (ja) * | 2004-01-19 | 2005-07-28 | Hitachi Software Eng Co Ltd | ネットワークシステム |
JP2011509489A (ja) * | 2008-01-08 | 2011-03-24 | マイクロソフト コーポレーション | ジャバスクリプトグリッドにおける非同期マルチレベル・アンドゥのサポート |
JP2009259009A (ja) * | 2008-04-17 | 2009-11-05 | Internatl Business Mach Corp <Ibm> | トランザクションの実行を制御する装置及び方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2774031B1 (en) | 2016-08-17 |
WO2013066889A3 (en) | 2014-09-04 |
JP6069339B2 (ja) | 2017-02-01 |
US8484166B2 (en) | 2013-07-09 |
WO2013066889A2 (en) | 2013-05-10 |
US20130275388A1 (en) | 2013-10-17 |
EP2774031A2 (en) | 2014-09-10 |
US20130117238A1 (en) | 2013-05-09 |
CN104272247A (zh) | 2015-01-07 |
US9075750B2 (en) | 2015-07-07 |
CN104272247B (zh) | 2017-05-24 |
IN2014CN03217A (ja) | 2015-07-03 |
EP2774031A4 (en) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6069339B2 (ja) | オラクルリワインド:メタデータドリブンのアンドゥ | |
US10528585B2 (en) | ETL tool interface for remote mainframes | |
CN107688487B (zh) | 用于恢复数据库会话的状态的方法和系统 | |
US5758351A (en) | System and method for the creation and use of surrogate information system objects | |
US7676816B2 (en) | Systems and methods for integrating services | |
US8788569B2 (en) | Server computer system running versions of an application simultaneously | |
US8095823B2 (en) | Server computer component | |
US8984534B2 (en) | Interfacing between a receiving component of a server application and a remote application | |
US9092230B2 (en) | Configuration of componentized software applications | |
US9898376B2 (en) | Recovery of a transaction after XA end | |
US10846081B2 (en) | System and method for code synchronization between mainframe environment and distributed environment | |
US20070101328A1 (en) | Sequencing a single task sequence across multiple operating environments | |
CN110945504B (zh) | 递送基于配置的工作流 | |
US11928627B2 (en) | Workflow manager | |
US9672083B2 (en) | Operating a program code object in conjunction with an application context | |
US11941024B1 (en) | Orchestration service for database replication | |
US20240184914A1 (en) | Multiple synonymous identifiers in data privacy integration protocols | |
WO2015059650A1 (en) | Detachable functionality | |
Sack | DTS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150910 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150910 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161130 |
|
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: 20161220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6069339 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |