ORACLE倒回:元数据驱动的撤销制造技术

技术编号:10895140 阅读:100 留言:0更新日期:2015-01-09 17:52
描述了元数据驱动的撤销。在一个实施例中,元数据存储库存储与操作关联的元数据。与每个操作关联的属性也存储在元数据中。每个操作与包括用于为特定操作类型的操作生成撤销条目的指令的小撤销关联。撤销日志条目是在截获包括可撤销操作的请求时利用元数据和小撤销生成的。当发布撤销命令时,撤销日志中与特定业务事务关联的指令被执行,以“倒回”事务。

【技术实现步骤摘要】
【国外来华专利技术】元数据驱动的撤销方法和系统权益声明本申请根据美国法典第35章119(e)条要求于2011年11月3日提交的临时申请61/555,443的权益,该临时申请的全部内容通过引用结合与此,就像在本文中完全阐述了一样。
本专利技术涉及元数据驱动的撤销方法和系统。
技术介绍
现代计算系统常常提供“撤销”某些操作的能力。这是因为计算机操作人员或者他们使用的程序有时候犯错误。当错误发生时,操作人员可能想回到已知的状态并且再试。有各种动作会导致这些错误。例如,程序员有时候未能认识到计算系统将以特定的途径被使用。当程序员还没有对特定用例进行测试时,用户可能会把错误引入系统中。在更复杂的业务事务中,常见的是对各种计算系统进行许多改变。如果在这种多步业务事务开始之后但是在其结束之前对这些计算系统之一进行改变,则不一致性将被引入到系统中。当中间改变涉及与业务事务中所进行的其它改变的安全性不一致时,这特别有问题。在谈到数据库事务过程中确保一致性时,有些数据库系统具有优点。这对于实现ACID事务的数据库来说尤其是正确的,诸如由Oracle公司提供的数据库系统。ACID代表原子性、一致性、隔离性和持续性。在数据库计算中,原子性意味着,如果在单个数据库事务中进行了一系列改变,则或者所有改变都进行或者这些改变都不进行。换句话说,ACID事务采取“全有或全无”方法。因而,数据库系统可以确保在提交那个事务之前整个事务将是成功的。其它计算系统不具有由数据库提供的一致性的优势。例如,基于LDAP(轻量级目录访问协议)的系统不具有在提交改变之前的内置的一致性检查。Web服务和其它系统也如它们所提供的那样提交改变,即使那些系统使用数据库来存储信息。例如,业务事务所需的改变之一可以是对web服务的更新请求。虽然web服务可以在现代数据库中存储数据,但是数据库意识不到业务事务所需的任何其它改变,因为一次只有一个改变通过web服务被请求,并且web服务仅仅是如它们被请求的那样进行改变。于是,数据库进而提交提供给数据库的每个事务,尽管为了完成整个业务事务还需要其它步骤。在以上提供的例子中,有可能其中一个操作将失败。例如,业务事务可以需要采取十三个单独的步骤,并且第十二个步骤可能失败,这造成关于系统的不一致。这种不一致在单个系统中是有问题的,但是业务事务可能需要在多个系统上采取的步骤,这使问题复杂化了。对这个问题的一个潜在的解决办法是为对其期望撤销能力的每个系统或服务编程专用的“撤销”逻辑。但是,在变化的系统中维护硬编码的撤销逻辑是困难的,并且常常导致错误。此外,劳力成本太高。编写为了倒回失败的业务事务而执行所有必要操作的撤销逻辑很复杂,并且随着需要由逻辑动态生成的操作数量的增加而变得非常难。此外,以这种途径实现的撤销逻辑在每次服务改变时都变得无效,这导致需要重新编写代码。所需要的是为在数据库事务支持之外发生的业务事务提供撤销功能性的通用撤销系统。
技术实现思路
根据本专利技术的一个方面,公开了一种撤销系统,包括一个或多个处理器和计算机可读的非暂时性存储介质。计算机可读的非暂时性存储介质包括用于维护元数据存储库和用于提供撤销逻辑的指令。元数据存储库用于存储与多个操作关联的元数据,其中每个操作与一操作类型关联。与每个操作关联的元数据识别至少:a)与那个操作关联的一个或多个属性,及b)与对应操作的操作类型关联的小撤销,其中小撤销包括用于生成撤销条目的指令。撤销逻辑用于至少部分地基于元数据存储库中的元数据以及小撤销在撤销日志中生成一个或多个条目。撤销日志中的第一条目基于被系统截获的第一请求中的第一操作,并且包括用于与该操作关联的第一属性的第一属性值。小撤销是能够撤销与操作类型关联的操作的对象。根据本专利技术的另一方面,公开了一种撤销系统,包括用于维护存储与多个操作关联的元数据的元数据存储库的装置,其中每个操作与一操作类型关联,其中与每个操作关联的元数据识别至少:a)与那个操作关联的一个或多个属性,及b)与对应操作的操作类型关联的小撤销,其中小撤销包括用于生成撤销条目的指令;以及用于至少部分地基于元数据存储库中的元数据以及小撤销在撤销日志中生成一个或多个条目的装置;其中撤销日志中的第一条目基于被系统截获的第一请求中的第一操作,并且包括用于与该操作关联的第一属性的第一属性值;其中小撤销是能够撤销与操作类型关联的操作的对象。根据本专利技术的又一方面,公开了一种撤销方法,包括:维护存储与多个操作关联的元数据的元数据存储库,其中每个操作与一操作类型关联。与每个操作关联的元数据识别至少:a)与那个操作关联的一个或多个属性,及b)与对应操作的操作类型关联的小撤销。小撤销包括用于生成撤销条目的指令。至少部分地基于元数据存储库中的元数据以及小撤销在撤销日志中生成一个或多个条目。撤销日志中的第一条目基于被系统截获的第一请求中的第一操作,并且包括用于与该操作关联的第一属性的第一属性值。该方法是由一个或多个计算设备执行的。小撤销是能够撤销与操作类型关联的操作的对象。附图说明在附图中:图1A说明了其中可以实现实施例的计算环境的逻辑框图。图1B说明了示出实施例中作为中间方位于客户端和服务器之间的撤销引擎的逻辑框图。图2说明了实施例中撤销引擎的逻辑框图。图3说明了代表实施例中可以作为撤销引擎的一部分来实现的撤销逻辑的逻辑框图。图4说明了实施例中操作的分类。图5说明了实施例可以在其上实现的计算机系统。具体实施方式描述了元数据驱动的撤销。在以下描述中,为了解释,阐述了众多具体的细节,以便提供对本专利技术的透彻理解。但是,对本领域技术人员来说很显然,本专利技术没有这些具体细节也可以实践。在其它情况下,众所周知的结构和设备以框图形式示出,以避免不必要地模糊本专利技术。实施例在本文中是根据以下大纲来描述的:1.0一般概述2.0结构和功能概述3.0元数据驱动的撤销3.1元数据3.2撤销日志3.3小撤销(undolet)3.4执行元数据驱动的撤销3.5撤销策略3.6挂起撤销引擎4.0实现机制-硬件概述1.0一般概述描述了元数据驱动的撤销。在一个实施例中,元数据存储库存储与操作关联的元数据。例如,元数据可以识别操作的类型,诸如操作是否是赋值器、获得器、构造器、析构器、加法器、清除器,或者其它类型的操作。与每个操作和/或操作类型关联的属性也存储在元数据中。每个操作与包括用于生成撤销条目的指令的小撤销关联。小撤销可以处理关于属于那类操作(例如,构造器、析构器)而不关于目标系统的任何操作的任何调用。撤销逻辑基于元数据存储库中的元数据以及小撤销在撤销日志中生成条目。在一个实施例中,撤销条目是基于对目标系统的查询生成的。撤销日志中的条目可以基于由系统截获的请求中的操作,并且可以包括用于与该操作关联的属性的属性值。当发出撤销命令时,撤销日志中与特定业务事务关联的指令被执行。如果撤销指令被成功地执行,则业务事务中所涉及的系统的状态将关于与该业务事务关联的对象返回事务之前的状态。2.0结构和功能概述图1A说明了其中可以实现实施例的计算环境的逻辑框图。客户端110代表能够作出请求或者以别的方式与别的计算系统或计算机过程交互的计算系统。客户端110还可以代表在计算设备上执行的过程。例如,客户端110和服务器130可以代表在同一计算设备上运行的过程本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201280060770.html" title="ORACLE倒回:元数据驱动的撤销原文来自X技术">ORACLE倒回:元数据驱动的撤销</a>

【技术保护点】
一种系统,包括:一个或多个处理器;计算机可读的非暂时性存储介质,包括用于维护元数据存储库和用于提供撤销逻辑的指令;其中元数据存储库用于存储与多个操作关联的元数据,其中每个操作与一操作类型关联,其中与每个操作关联的元数据识别至少:a)与那个操作关联的一个或多个属性,及b)与对应操作的操作类型关联的小撤销,其中小撤销包括用于生成撤销条目的指令;其中撤销逻辑用于至少部分地基于元数据存储库中的元数据以及小撤销在撤销日志中生成一个或多个条目,其中撤销日志中的第一条目基于被系统截获的第一请求中的第一操作,并且包括用于与该操作关联的第一属性的第一属性值;其中小撤销是能够撤销与操作类型关联的操作的对象。

【技术特征摘要】
【国外来华专利技术】2011.11.03 US 61/555,443;2011.11.18 US 13/300,5451.一种撤销系统,包括:一个或多个处理器;计算机可读的非暂时性存储介质,包括用于维护元数据存储库和用于提供撤销逻辑的指令;其中元数据存储库用于存储与多个操作关联的元数据,其中每个操作与一操作类型关联,其中与每个操作关联的元数据识别至少:a)与那个操作关联的一个或多个属性,及b)与对应操作的操作类型关联的小撤销,其中小撤销包括用于生成撤销条目的指令;其中撤销逻辑用于至少部分地基于元数据存储库中的元数据以及小撤销在撤销日志中生成一个或多个条目,其中撤销日志中的第一条目基于被系统截获的第一请求中的第一操作,并且包括用于与该操作关联的第一属性的第一属性值;其中小撤销是能够撤销与操作类型关联的操作的对象。2.如权利要求1所述的系统,其中第一请求是把目标系统上的第一对象的值从第二个值改变成第三个值的请求,并且撤销逻辑还配置为,响应于截获该请求,向目标系统生成用于在第二个值响应于第一请求而被改变之前从目标系统检索第二个值的第二请求。3.如权利要求2所述的系统,其中撤销日志中的第一条目中的第一属性值与第二个值相同,其中该条目包括第一指令,第一指令当被一个或多个处理器执行时,使第一对象的值被设置成第一属性值。4.如权利要求3所述的系统,其中撤销日志中的第一条目还包括第二指令,第二指令当被一个或多个处理器执行时,使撤销逻辑确定目标系统上的第一对象的值是否与第三个值相同,并且,响应于确定目标系统上的第一对象的值与第三个值相同,执行使第一对象的值被设置成第一属性值的指令。5.如权利要求4所述的系统,其中撤销逻辑还配置为:基于被系统截获的第二请求中的第二操作在撤销日志中生成第二条目,其中第二请求是把第二目标系统上的第二对象的值从第四个值改变成第五个值的请求,其中第二条目包括第四个值;其中第一请求和第二请求包括把第一和第二请求都与第一会话关联的会话-识别信息;其中第二条目包括第二指令,第二指令当被一个或多个处理器执行时,使第二对象的值被设置成第四个值;其中该系统配置为把第一请求发送到第一目标系统并且把第二请求发送到第二目标系统;其中撤销逻辑配置为响应于接收到执行与第一会话关联的撤销操作的第三请求而使第一、第二和第三指令在一个或多个处理器上执行。6.如权利要求5所述的系统,其中撤销逻辑还配置为:基于在第二请求之前并且在第一请求之后被截获的第三请求中的第三操作在第二撤销日志中生成第三条目,其中第三请求是改变第一目标系统上的第三对象的值的请求,并且第三请求与第二会话关联;其中撤销逻辑配置为使第一、第二和第三指令在一个或多个处理器上执行,而不改变第三对象的值。7.如权利要求1至6中任何一项所述的系统,其中第一操作是构造器操作,并且第一属性值是响应于请求而要在目标系统上构造的对象的名称,其中撤销日志中的第一条目包括当其被一个或多个处理器执行时使对象从目标系统被除去的指令。8.一种撤销系统,包括:用于维护存储与多个操作关联的元数据的元数据存储库的装置,其中每个操作与一操作类型关联,其中与每个操作关联的元数据识别至少:a)与那个操作关联的一个或多个属性,及b)与对应操作的操作类型关联的小撤销,其中小撤销包括用于生成撤销条目的指令;以及用于至少部分地基于元数据存储库中的元数据以及小撤销在撤销日志中生成一个或多个条目的装置;其中撤销日志中的第一条目基于被系统截获的第一请求中的第一操作,并且包括用于与该操作关联的第一属性的第一属性值;其中小撤销是能够撤销与操作类型关联的操作的对象。9.如权利要求8所述的系统,其中第一请求是把目标系统上的第一对象的值从第二个值改变成第三个值的请求,并且所述系统还包括:用于响应于截获该请求,向目标系统生成用于在第二个值响应于第一请求而被改变之前从目标系统检索第二个值的第二请求的装置。10.如权利要求9所述的系统,其中撤销日志中的第一条目中的第一属性值与第二个值相同,...

【专利技术属性】
技术研发人员:S·戈尔
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1