CN109032752B - 基于云平台的操作撤销 - Google Patents
基于云平台的操作撤销 Download PDFInfo
- Publication number
- CN109032752B CN109032752B CN201710439975.8A CN201710439975A CN109032752B CN 109032752 B CN109032752 B CN 109032752B CN 201710439975 A CN201710439975 A CN 201710439975A CN 109032752 B CN109032752 B CN 109032752B
- Authority
- CN
- China
- Prior art keywords
- instance
- attribute
- instance attribute
- operations
- target
- 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.)
- Active
Links
Images
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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本文公开了一种基于云平台的操作撤销的相关技术,通过依赖关系分析,获取到与待撤销的目标操作具有依赖关系的关联操作,并按照时间顺序依次对目标操作和关联操作进行撤销处理,从而减少撤销操作带来的冲突。
Description
背景技术
云平台允许用户使用简单的指令来执行大量复杂的操作,但是,一旦用户执行了错误的操作,可能带来严重的后果,并且很难进行手动恢复。目前,在主流的云平台中,还没有恰当的工具具有取消管理操作系列和恢复服务状态的功能。
发明内容
提供本发明实施例内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
本文公开了一种基于云平台的操作撤销技术,通过依赖关系分析,获取到与待撤销的目标操作具有依赖关系的关联操作,并按照时间顺序依次对目标操作和关联操作进行撤销处理,从而减少撤销操作带来的冲突。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
图1为本发明实施例的基于云平台的操作撤销技术的***框图。
图2为本发明实施例的基于云平台的操作撤销技术的另一***框图。
图3为本发明实施例的依赖关系分析的示例场景之一的框图。
图4为本发明实施例的依赖关系分析的示例场景之二的框图。
图5为本发明实施例的依赖关系分析的示例场景之三的框图。
图6为本发明实施例的操作回滚引擎的结构框图。
图7为本发明实施例的时间线工具模块生成的基于时间线的依赖关系图。
图8为本发明实施例的撤销操作的方法的一种示例的流程图。
图9为本发明实施例的撤销操作的方法的另一种示例的流程图。
图10为本发明实施例的电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
术语说明
依赖关系:如果某一操作的执行直接或者间接影响另一操作所指向的实例属性,则认为这两个操作之间存在依赖关系。这里所说的“指向”是指另一操作需要以该实例属性为条件或者另一操作的执行会改变或者影响该实例属性。
实例属性之间的影响关系:如果某一实例属性的改变会直接或者间接影响另一实例属性,则认为这两个实例属性之间具有影响关系,这里所说的实例属性之间的影响关系,可以是一个实例属性影响另一个实例属性,也可以是被另一个实例属性所影响,也可以是相互影响。
服务实例之间的影响关系:如果某一服务实例的实例属性的改变会直接或者间接影响另一服务实例中的实例属性,则认为这两个服务实例之间具有影响关系,这里所说的服务实例之间的影响关系,可以是一个服务实例影响另一个服务实例,也可以是被另一个服务实例所影响,也可以是相互影响。
本文中,术语“技术”可以指代例如(一个或多个)***、(一个或多个)方法、计算机可读指令、(一个或多个)模块、算法、硬件逻辑(例如,现场可编程门阵列(FPGA))、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑电子设备(CPLD)和/或上述上下文以及在本文档通篇中所允许的(一项或多项)其它技术。
整体概述
云计算是一种便捷的服务,在云平台上能够允许用户使用单独的指令来做许多复杂的操作。然而,这样也可能会放大错误操作所造成的影响。当用户执行了一个或者一系列错误操作时,将可能会给云服务带来严重的影响,在这种情况下,进行手动的***还原不仅需要云计算技术有关的知识和技能,而且可能涉及复杂的操作,因为涉及到许多其他的服务的运行等,基于这样的状态,本文介绍一种操作撤销技术,在确定要撤销的目标操作后,通过依赖关系分析找出与目标操作具有依赖关系的关联操作,并按照时间先后顺序,将这些关联操作逐一撤销,从而在保证***稳定性的前提下,实现对云平台的操作撤销处理。
如图1所示,其为本发明实施例的基于云平台的操作撤销技术的***框图100。基于云平台的操作撤销过程主要涉及依赖关系分析模块101和操作回滚引擎102这两个模块。在用户或者操作***选定了待撤销的目标操作103后,先将该目标操作输入到依赖关系分析模块101进行依赖关系分析,找出与该目标操作具有依赖关系的全部关联操作,由于操作的撤销行为不会对该操作执行之前的其他操作造成影响,因此,这里所说的关联操作为发生在该目标操作之后的操作。此外,在本发明实施例中,依赖关系为目标操作直接或者间接影响关联操作所指向的实例属性。通过依赖关系分析模块101处理,能够找出与目标操作具有依赖关系的关联操作,并按照时间顺序形成待撤销操作序列104。然后,该待撤销操作序列104被输入到操作回滚引擎102中,操作回滚引擎102按照待撤销操作序列104依次对各个操作执行撤销处理。
利用本文的操作撤销技术,在出现误操作或者其他需要对操作进行撤回的情况下,可以将该操作和与该操作具有依赖关系的关联操作进行一并撤销,从而不会由于该操作的撤销而对***中的其他服务造成影响,也不需要对整个***进行还原处理,提高了用户进行云操作的灵活性和容错性。
如图2所示,其为本发明实施例的基于云平台的操作撤销技术的另一***框图200,框图200示出了另一应用场景。基于云平台的操作会记录在***操作日志中,用户可以从***日志中选定某一操作作为指定操作202,然后通过框图200中的依赖关系分析模块101进行依赖关系分析,找到与该指定操作具有依赖关系的关联操作,然后将指定操作和找到的关联操作按照操作时间的顺序进行排序,通过时间线工具模块201生成基于时间线的依赖关系图203,并展示给用户,用户可以通过基于时间线的依赖关系图203直观地选定希望的还原时间点,然后时间线工具模块201将该选定的还原时间点之后的各个关联操作或者各个关联操作和指定操作,按照操作时间的顺序进行排序,生成待撤销操作序列104,并将该操作序列发送给操作回滚引擎102,进行操作撤销处理。框图200中的依赖关系分析模块101和操作回滚引擎102与框图100中的具有相同的功能。
框图200所示的***能够以直观的方式向用户呈现基于时间线的依赖关系图203,便于用户进行操作的撤销。
下面对***框图100和***框图200中的各个部分进行分别详细说明。
依赖关系分析模块
基于云平台的操作在执行操作时会依赖于服务实例的实例属性,如果一个操作改变了服务实例的实例属性,将会影响到后续与该服务实例关联的其他操作,甚至还会对其他服务实例造成影响,进而会影响到基于其他服务实例的操作。因此,在本发明实施例中,在撤销目标操作之前,会通过依赖关系分析来找出该目标操作所影响的后续的操作,并通过对后续操作进行撤销的方式,来解决撤销目标操作所带来的冲突。
如图3所示,其为本发明实施例的依赖关系分析的示例场景之一的框图300。在框图300中,示出了服务实例I1,其中,服务实例I1具有实例属性P1和实例属性P2,操作A1改变了实例属性P1,而操作A2发生在操作A1之后,操作A2是指向实例属性P1的操作,因此,操作A1和操作A2之间具有依赖关系(图中用虚线进行了表示)。
举例来说,服务实例I1是数据库管理实例,其中,实例属性P1为数据库管理实例所管理的数据库版本信息,实例属性P2为数据库的访问权限信息。操作A1为进行数据库升级,将数据库版本从1.0升级到2.0,因此,操作A1改变了实例属性P1(从版本1.0修改为版本2.0)。操作A2同样是对数据库进行升级的操作,操作A2将数据库版本从版本2.0升级到版本3.0。操作A3为修改数据库的访问权限的操作。
假设在数据库的版本升级或者还原的操作中,需要按照版本的顺序依次进行升级或者还原,例如,想从版本1.0升级到版本3.0,必须要从版本1.0升级到版本2.0,然后再从版本2.0升级到版本3.0,反之,想从版本3.0还原到版本1.0,也必须要先从版本3.0还原至版本2.0,然后再从版本2.0恢复到版本1.0。由此可见,如果要撤销操作A1,需要先撤销操作A2,因此,操作A1和操作A2具有依赖关系。而操作A3与操作A1之间没有指向同一实例属性,并且数据库升级操作不会改变数据库的访问权限,因此,操作A3与操作A1之间也不存在相互影响,操作A3与操作A1之间不具有依赖关系。
如图4所示,其为本发明实施例的依赖关系分析的示例场景之二的框图400。在框图400中,示出了服务实例I1,其中,服务实例I1具有实例属性P1和实例属性P2,操作A1改变了实例属性P1,而操作A2发生在操作A1之后,操作A2是指向实例属性P2的操作。实例属性P1和实例属性P2之间具有影响关系(图中用虚线进行了表示),进而使得操作A1和操作A2之间具有依赖关系(图中用虚线进行了表示)。
举例来说,服务实例I1为虚拟机机群管理实例,其中,实例属性P1为虚拟机机群的IP地址,实例属性P2为虚拟机机群的开关机状态,操作A1为修改虚拟机机群的IP地址,操作A2为关闭该虚拟机机群。假设只有在虚拟机机群处于开机状态下才能够修改该虚拟机机群的IP地址,基于这样的假设条件,虚拟机机群的开关机状态将会影响到虚拟机机群的IP地址的修改,即实例属性P1受到实例属性P2的影响,基于这种影响关系,执行操作A1和撤销操作A1均需要以实例属性P2为虚拟机机群处于开机状态为前提,而操作A2的执行导致了实例属性P2为虚拟机机群处于关机状态,将会直接导致操作A1无法撤销,因此,操作A1和操作A2之间是存在依赖关系的,要想撤销操作A1,需要先撤销操作A2。
如图5所示,其为本发明实施例的依赖关系分析的示例场景之三的框图500。在框图500中,示出了服务实例I1和服务实例I2,其中,服务实例I1具有实例属性P1和实例属性P2,服务实例I2具有实例属性P3和实例属性P4,操作A1改变了实例属性P2,而操作A2发生在操作A1之后,操作A2是指向实例属性P3的操作。服务实例I1服务实例I2之间具有影响关系(图中用虚线进行了表示),并且服务实例I1中的实例属性P2和服务实例I2的实例属性P3之间具有影响关系(图中用虚线进行了表示),因此,操作A1和操作A2之间具有依赖关系(图中用虚线进行了表示)。
举例来说,服务实例I1为虚拟机机群管理实例,其中,服务实例I1的实例属性P1为虚拟机机群在数据中心中的部署位置,服务实例I1的实例属性P2为用户对于虚拟机机群的访问权限。服务实例I2为前述虚拟机机群中的一个虚拟机实例,即服务实例I2受到服务实例I1的管理,因此,服务实例I1和服务实例I2之间具有影响关系。服务实例I2的实例属性P3为用户对该虚拟机的访问权限,服务实例I2的实例属性P4为该虚拟机在数据中心的部署位置。需要说明的是,用户对于某一个虚拟机的访问权限要以对虚拟机机群的访问权限为前提,只有打开用户对于虚拟机机群的访问权限才能进一步打开用户对于某一个虚拟机的访问权限,因此,实例属性P3和实例属性P2之间具有影响关系。
操作A1为开放用户对于虚拟机机群的访问权限,操作A2发生在操作A1之后,操作A2为开放用户对实例I2对应的虚拟机的访问权限,进一步地,由于实例属性P3和实例属性P2之间的影响关系,操作A2要以操作A1为前提,如果撤销操作A1则会导致操作A2受到影响,因此,操作A1和操作A2之间具有依赖关系。此外,操作A3发生在操作A2之后,操作A3为移动服务实例I2对应的虚拟机在数据中心的部署位置,操作A3与操作A2和操作A1之间无关联关系,相互不会造成影响,因此,不具有依赖关系。
针对框图500再举一例进行说明,服务实例I1为虚拟机机群管理实例,其中,服务实例I1的实例属性P1为用户对于虚拟机机群的访问权限,服务实例I1的实例属性P2为虚拟机机群的备份方案(本地备份或者异地备份)。服务实例I2为前述虚拟机机群中的一个虚拟机实例,即服务实例I2受到服务实例I1的管理,因此,服务实例I1和服务实例I2之间具有影响关系。服务实例I2的实例属性P3为该虚拟机的备份方案(本地备份或者异地备份),服务实例I2的实例属性P4为用户对该虚拟机的访问权限。由于虚拟机机群的备份方案会直接影响虚拟机机群中的各个虚拟机的备份方案,因此,服务实例I1的实例属性P2与服务实例I2的实例属性P3之间具有影响关系。
操作A1将虚拟机机群的备份方案从本地备份改为异地备份,操作A1直接改变了服务实例I1的实例属性P2,由于服务实例I1与服务实例I2之间的影响关系以及服务实例I1的实例属性P2与服务实例I2的实例属性P3之间具有影响关系,操作A1也间接地影响了服务实例I2对应的虚拟机的备份方案,即操作A1间接地影响了服务实例I2的实例属性P3。操作A2发生在操作A1之后,操作A2为关闭服务实例I2对应的虚拟机的备份的操作,撤销操作A1是要将虚拟机机群的备份方案还原为本地备份方案,在执行操作A1之前,服务实例I2对应的虚拟机的备份还是处于开启状态,而操作A2之后,服务实例I2对应的虚拟机备份已经被关闭,无法还原到执行操作A1之前的状态,因此,操作A1和操作A2之间具有依赖关系,在撤销操作A1之前,需要先撤销操作A2,即开启服务实例I2对应的虚拟机的备份。操作A3为开放用户对实例I2对应的虚拟机的访问权限,操作A3与操作A2和操作A1之间无关联关系,相互不会造成影响,因此,不具有依赖关系。
以上介绍了关于依赖关系分析模块101进行依赖关系分析的具体内容,依赖关系分析模块101对待撤销的目标操作103进行依赖关系分析后,将会输出与该目标操作具有依赖关系的待撤销操作序列104,该待撤销操作序列104可以是按照操作时间的顺序进行排序,以便于后续的操作回滚引擎102执行撤销操作的处理。
操作回滚引擎
如图6所示,其为本发明实施例的操作回滚引擎102的结构框图600。操作回滚引擎102的主要作用在于根据依赖关系分析模块101生成的待撤销操作序列104,执行操作撤销的处理。在框图600中,包括操作类型检验模块601、备份查找模块602以及操作撤销模块603。
操作类型检验模块601从待撤销操作序列104中依次取出待撤销操作,并对待撤销操作的类型进行判定,根据待撤销操作的不同类型以进行相应的后续处理。由于待撤销操作的类型较多,并不是任何一项操作都是可以撤销的,因此,操作回滚引擎102会对待撤销操作序列104中的各个待撤销操作进行类型检测,根据待撤销操作的操作类型进行分类处理。具体地,待撤销操作可以分为三类:
1)一般性操作604:仅修改了服务实例的属性,而不涉及用户数据。
例如,改变虚拟机的IP地址、修改服务实例的安全策略、修改用户的访问权限等。如果待撤销操作为一般性操作,操作类型检验模块601会将该待撤销操作发送给操作撤销模块603执行操作撤销处理。
2)与用户数据相关的操作605
例如:与数据备份相关的操作、涉及数据库数据更新的操作、向虚拟机中安装软件的操作等。
如果待撤销操作为与用户数据相关的操作,操作类型检验模块601会将该待撤销操作发送给备份查找模块602进行处理,查询是否存在在该操作执行之前的用户数据备份,如果结果为“找到备份”607,将该待撤销操作发送给操作撤销模块603执行操作撤销处理,如果结果为“没有找到备份”608,则终止操作回滚引擎102的操作撤销处理,即终止对待撤销操作序列104中的后续待撤销操作执行撤销处理,输出“操作撤销失败”609的结果。
3)不支持的操作606:无法进行撤销或者进行撤销无意义的操作,操作回滚引擎102不支持这种操作。
例如,重启虚拟机,该操作撤销没有实际意义。再例如,查询日志的操作,查询行为是一次性行为,无法进行撤销。
如果待撤销操作为无法进行撤销或者进行撤销无意义的待撤销操作,即操作回滚引擎102不支持的操作,操作类型检验模块601直接忽略该操作,继续访问待撤销操作序列104,提取下一个待撤销操作进行处理。
时间线工具模块
如图7所示,其为本发明实施例的时间线工具模块201生成的基于时间线的依赖关系图700。结合图2,在依赖关系分析模块101向时间线工具模块201输出与指定操作具有依赖关系的关联操作后,时间线工具模块201可以根据这些操作的先后顺如,生成依赖关系图700,图中虚线向右延展的带有箭头的直线表示时间线,依赖关系图700中的各个操作A1至A5之间的依赖关系通过带有箭头的曲线示出,并且,各个操作所针对的服务实例信息也显示在依赖关系图700中,如图中所示,操作A1和A4是针对服务实例I1的操作,操作A2和A5是针对服务实例I2的操作,操作A3是针对服务实例I3的操作。
通过这样的依赖关系图700,用户可以清楚地分析与指定操与关联操作之间的依赖关系以及时间顺序关系,并且可以进行还原时间点的选择,如依赖关系图700中所示,例如,竖向的虚线表示用户选择的还原时间点,则时间线工具模块201会将该还原时间点之后的各个操作(操作A2至操作A5)按照时间先后顺序生成待撤销操作序列104,并发送给操作回滚引擎102来执行撤销操作的处理。
示例过程
如图8所示,其为本发明实施例的撤销操作的方法的一种示例的流程图800,其包括:
S801:获取与待撤销的目标操作103具有依赖关系的关联操作,其中,关联操作发生在目标操作之后。依赖关系可以为目标操作直接或者间接影响关联操作所指向的实例属性。
S802:对关联操作中的至少部分关联操作和目标操作执行撤销处理。
作为一种示例情形,在S801中,获取与待撤销的目标操作103具有依赖关系的关联操作可以包括:
获取目标操作改变的第一实例属性;
根据第一实例属性,获取发生在目标操作之后的改变该第一实例属性的操作作为关联操作。
作为另一种示例情形,在S801中,获取与待撤销的目标操作103具有依赖关系的关联操作可以包括:
获取目标操作改变的第一实例属性;
根据第一实例属性,确定与该第一实例属性具有影响关系的第二实例属性,第二实例属性与第一实例属性属于同一服务实例;
根据该第二实例属性,获取发生在目标操作之后的改变该第二实例属性的操作作为关联操作。
作为再一种示例情形,在S801中,获取与待撤销的目标操作103具有依赖关系的关联操作可以包括:
获取目标操作改变的第一实例属性;
根据第一实例属性,确定该第一实例属性所属的第一服务实例;
根据第一服务实例确定与该第一服务实例具有影响关系的第二服务实例;
在第二服务实例的实例属性中,获取与第一实例属性具有影响关系的第二实例属性;
根据该第二实例属性,获取发生在目标操作之后的改变该第二实例属性的操作作为关联操作。
此外,S802可以具体为:按照操作时间由近及远的顺序,对关联操作中的至少部分关联操作和目标操作执行撤销处理。具体地,可以将目标操作和关联操作按照操作时间的顺序进行排序,生成待撤销操作序列104;然后,按照操作时间由近及远的顺序,对待撤销操作序列执行撤销处理。
进一步地,按照操作时间由近及远的顺序,对关联操作中的至少部分关联操作和目标操作执行撤销处理可以包括:
对待撤销的操作进行判断,其中,待撤销的操作为关联操作和所述目标操作中的任意一个或者多个操作,如果该待撤销的操作涉及对用户数据的修改,则判断是否存在在该待撤销的操作执行之前的用户数据备份,如果存在用户数据备份,则对该待撤销的操作执行撤销处理,并且使用用户数据备份将用户数据恢复到该待撤销的操作执行之前的状态,如果不存在用户数据备份,则终止撤销处理或者暂时中止撤销处理并向用户发出提示,如果该待撤销的操作不涉及对用户数据的修改,则对该待撤销的操作执行撤销处理。
此外,还可以进一步包括:对待撤销的操作进行判断,如果该待撤销的操作为无需撤销的操作,则忽略该待撤销的操作。
如图9所示,其为本发明实施例的撤销操作的方法的另一种示例的流程图900,其包括:
S901:获取指定操作具有依赖关系的关联操作,其中,关联操作发生在指定操作之后,该指定操作可以是***操作日志中记录的操作;
S902:将指定操作和关联操作按照操作时间的顺序进行排序,生成基于时间线的依赖关系图;
S903:响应于还原时间点的选定,将该还原时间点之后的各个关联操作中的至少部分操作或者各个关联操作和指定操作中的至少部分操作执行撤销处理。
关于以上各步骤中各个处理操作的具体实现,在前面已经进行了详细说明,同样适用于上述各个步骤。
具体实现示例
在一些例子中,上述***框图100和***框图200以及结构框图600的各个组件或者模块,例如依赖关系分析模块101、操作回滚引擎102、时间线工具模块201、操作类型检验模块601、备份查找模块602以及操作撤销模块603等,以及图8和图9所示流程图中的一个或多个步骤,可以通过软件程序、硬件电路,也可以通过软件程序和硬件电路相结合的方式来实现。例如,上述各个组件或者模块或者节点以及一个或多个步骤都可在芯片上***(SoC)中实现。SoC可包括:集成电路芯片,该集成电路芯片包括以下一个或多个:处理单元(如中央处理单元(CPU)、微控制器、微处理单元、数字信号处理单元(DSP)等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和可任选的嵌入的固件。
如图10所示,其为本发明实施例的电子设备1000的结构框图。电子设备1000包括:存储器1001和处理器1002。
存储器1001,用于存储程序。除上述程序之外,存储器1001还可被配置为存储其它各种数据以支持在电子设备1000上的操作。这些数据的示例包括用于在电子设备1000上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器1001可以由任何类型的易失性或非易失性存储电子设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在一些例子中,存储器1001耦合至处理器1002并且包含存储于其上的指令,所说的指令在由处理器1002执行时使电子设备执行动作,该动作可以包括:
获取与待撤销的目标操作103具有依赖关系的关联操作,其中,关联操作发生在目标操作之后;
对关联操作中的至少部分关联操作和目标操作执行撤销处理。
其中,依赖关系可以为目标操作直接或者间接影响关联操作所指向的实例属性。
作为一种示例情形,获取与待撤销的目标操作103具有依赖关系的关联操作可以进一步包括:
获取目标操作改变的第一实例属性;
根据第一实例属性,获取发生在目标操作之后的改变该第一实例属性的操作作为关联操作。
作为另一种示例情形,获取与待撤销的目标操作103具有依赖关系的关联操作可以包括:
获取目标操作改变的第一实例属性;
根据第一实例属性,确定与该第一实例属性具有影响关系的第二实例属性,第二实例属性与第一实例属性属于同一服务实例;
根据该第二实例属性,获取发生在目标操作之后的改变该第二实例属性的操作作为关联操作。
作为再一种示例情形,获取与待撤销的目标操作103具有依赖关系的关联操作可以包括:
获取目标操作改变的第一实例属性;
根据第一实例属性,确定该第一实例属性所属的第一服务实例;
根据第一服务实例确定与该第一服务实例具有影响关系的第二服务实例;
在第二服务实例的实例属性中,获取与第一实例属性具有影响关系的第二实例属性;
根据该第二实例属性,获取发生在目标操作之后的改变该第二实例属性的操作作为关联操作。
另外,对关联操作中的至少部分关联操作和目标操作执行撤销处理可以包括:
按照操作时间由近及远的顺序,对关联操作中的至少部分关联操作和目标操作执行撤销处理。
在另一些例子中,存储器1001耦合至处理器1002并且包含存储于其上的指令,所说的指令在由处理器1002执行时使电子设备执行动作,该动作可以包括:
获取指定操作具有依赖关系的关联操作,其中,关联操作发生在指定操作之后,该指定操作可以是***操作日志中记录的操作;
将指定操作和关联操作按照操作时间的顺序进行排序,生成基于时间线的依赖关系图;
响应于还原时间点的选定,将该还原时间点之后的各个关联操作中的至少部分操作或者各个关联操作和指定操作中的至少部分操作执行撤销处理。
对于上述各个示例的处理操作,在前面的实施例中已经进行了详细说明,对于上述的处理操作的详细内容同样也适用于电子设备1000中,即可以将前面实施例中提到的具体处理操作,以程序的方式写入在存储器1001,并通过处理器1002来进行执行。进一步,如图10所示,电子设备1000还可以包括:通信组件1003、电源组件1004、音频组件1005、显示器1006、芯片组1007等其它组件。图10中仅示意性给出部分组件,并不意味着电子设备1000只包括图10所示组件。
此外,通信组件1003可以被配置为便于电子设备1000和其他电子设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1003经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,通信组件1003还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件1004,为电子设备的各种组件提供电力。电源组件1004可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件1005被配置为输出和/或输入音频信号。例如,音频组件1005包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1001或经由通信组件1003发送。在一些实施例中,音频组件1005还包括一个扬声器,用于输出音频信号。
显示器1006包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
上述的存储器1001、处理器1002、通信组件1003、电源组件1004、音频组件1005以及显示器1006可以与芯片组1007连接。芯片组1007可以提供处理器1002与电子设备1000中的其余组件之间的接口。此外,芯片组1007还可以提供电子设备1000中的各个组件对存储器1001的访问接口以及各个组件间相互访问的通讯接口。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (17)
1.一种撤销操作的方法,包括:
建立针对计算操作序列的时间线;
根据目标操作和与所述目标操作相关的关联操作的相应执行时间,向所述时间线保存所述目标操作和所述关联操作,其中所述关联操作基于所述目标操作直接或者间接影响与所述关联操作关联的服务实例的至少一个属性而被标识;
获取所述目标操作待撤销的指示,其中所述关联操作在所述时间线中在所述目标操作之后;以及
根据所述时间线依序对所述关联操作中的至少部分关联操作和所述目标操作执行撤销处理。
2.根据权利要求1所述的方法,其中,获取与待撤销的目标操作具有依赖关系的关联操作包括:
获取所述目标操作改变的第一实例属性;
根据所述第一实例属性,获取发生在所述目标操作之后的改变该第一实例属性的操作作为所述关联操作。
3.根据权利要求1所述的方法,其中,获取与待撤销的目标操作具有依赖关系的关联操作包括:
获取所述目标操作改变的第一实例属性;
根据所述第一实例属性,确定与该第一实例属性具有影响关系的第二实例属性,所述第二实例属性与所述第一实例属性属于同一服务实例;
根据该第二实例属性,获取发生在所述目标操作之后的改变该第二实例属性的操作作为所述关联操作。
4.根据权利要求1所述的方法,其中,获取与待撤销的目标操作具有依赖关系的关联操作包括:
获取所述目标操作改变的第一实例属性;
根据所述第一实例属性,确定该第一实例属性所属的第一服务实例;
根据所述第一服务实例确定与该第一服务实例具有影响关系的第二服务实例;
在所述第二服务实例的实例属性中,获取所述第一实例属性具有影响关系的第二实例属性;
根据该第二实例属性,获取发生在所述目标操作之后的改变该第二实例属性的操作作为所述关联操作。
5.根据权利要求1所述的方法,其中,对所述关联操作中的至少部分关联操作和所述目标操作执行撤销处理包括:
按照操作时间由近及远的顺序,对所述关联操作中的至少部分关联操作和所述目标操作执行撤销处理。
6.根据权利要求5所述的方法,其中,按照操作时间由近及远的顺序,对所述关联操作中的至少部分关联操作和所述目标操作执行撤销处理包括:
对待撤销的操作进行判断,所述待撤销的操作为所述关联操作和所述目标操作中的任意一个或者多个操作,如果该待撤销的操作涉及对用户数据的修改,则判断是否存在在该待撤销的操作执行之前的用户数据备份,如果存在所述用户数据备份,则对该待撤销的操作执行撤销处理,并且使用所述用户数据备份将所述用户数据恢复到该待撤销的操作执行之前的状态。
7.根据权利要求6所述的方法,其中,按照操作时间由近及远的顺序,对所述关联操作中的至少部分关联操作和所述目标操作执行撤销处理还包括:
对所述待撤销的操作进行判断,如果该待撤销的操作为无需撤销的操作,则忽略该待撤销的操作。
8.一种撤销操作的方法,包括:
建立针对计算操作序列的时间线;
根据目标操作和与所述目标操作相关的关联操作的相应执行时间,向所述时间线保存所述目标操作和所述关联操作,其中所述关联操作基于所述目标操作直接或者间接影响与所述关联操作关联的服务实例的至少一个属性而被标识,其中所述关联操作在所述目标操作之后被执行;
基于所述时间线生成依赖关系图;以及
响应于还原时间点的选定,根据所述时间线依序撤销所述还原时间点之后的关联操作中的至少部分操作或者目标操作和关联操作中的至少部分操作。
9.根据权利要求8所述的方法,其中,获取与指定操作具有依赖关系的关联操作包括:
获取所述指定操作改变的第一实例属性;
根据所述第一实例属性,获取发生在所述指定操作之后的改变该第一实例属性的操作作为所述关联操作。
10.根据权利要求8所述的方法,其中,获取与指定操作具有依赖关系的关联操作包括:
获取所述指定操作改变的第一实例属性;
根据所述第一实例属性,确定与该第一实例属性具有影响关系的第二实例属性,所述第二实例属性与所述第一实例属性属于同一服务实例;
根据该第二实例属性,获取发生在所述指定操作之后的改变该第二实例属性的操作作为所述关联操作。
11.根据权利要求8所述的方法,其中,获取与指定操作具有依赖关系的关联操作包括:
获取所述指定操作改变的第一实例属性;
根据所述第一实例属性,确定该第一实例属性所属的第一服务实例;
根据所述第一服务实例确定与该第一服务实例具有影响关系的第二服务实例;
在所述第二服务实例的实例属性中,获取与所述第一实例属性具有影响关系的第二实例属性;
根据该第二实例属性,获取发生在所述指定操作之后的改变该第二实例属性的操作作为所述关联操作。
12.根据权利要求8所述的方法,其中,基于时间线的依赖关系图包括指定操作和所述关联操作的操作时间信息和对应的服务实例信息。
13.一种电子设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时使所述电子设备执行动作,所述动作包括:
建立针对计算操作序列的时间线;
根据目标操作和与所述目标操作相关的关联操作的相应执行时间,向所述时间线保存所述目标操作和所述关联操作,其中所述关联操作基于所述目标操作直接或者间接影响与所述关联操作关联的服务实例的至少一个属性而被标识;
获取所述目标操作待撤销的指示,其中所述关联操作在所述时间线中在所述目标操作之后;以及
根据所述时间线依序对所述关联操作中的至少部分关联操作和所述目标操作执行撤销处理。
14.根据权利要求13所述的电子设备,其中,获取与待撤销的目标操作具有依赖关系的关联操作包括:
获取所述目标操作改变的第一实例属性;
根据所述第一实例属性,获取发生在所述目标操作之后的改变该第一实例属性的操作作为所述关联操作。
15.根据权利要求13所述的电子设备,其中,获取与待撤销的目标操作具有依赖关系的关联操作包括:
获取所述目标操作改变的第一实例属性;
根据所述第一实例属性,确定与该第一实例属性具有影响关系的第二实例属性,所述第二实例属性与所述第一实例属性属于同一服务实例;
根据该第二实例属性,获取发生在所述目标操作之后的改变该第二实例属性的操作作为所述关联操作。
16.根据权利要求13所述的电子设备,其中,获取与待撤销的目标操作具有依赖关系的关联操作包括:
获取所述目标操作改变的第一实例属性;
根据所述第一实例属性,确定该第一实例属性所属的第一服务实例;
根据所述第一服务实例确定与该第一服务实例具有影响关系的第二服务实例;
在所述第二服务实例的实例属性中,获取与所述第一实例属性具有影响关系的第二实例属性;
根据该第二实例属性,获取发生在所述目标操作之后的改变该第二实例属性的操作作为所述关联操作。
17.根据权利要求13所述的电子设备,其中,对所述关联操作中的至少部分关联操作和所述目标操作执行撤销处理包括:
按照操作时间由近及远的顺序,对所述关联操作中的至少部分关联操作和所述目标操作执行撤销处理。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710439975.8A CN109032752B (zh) | 2017-06-12 | 2017-06-12 | 基于云平台的操作撤销 |
EP23170775.3A EP4220406B1 (en) | 2017-06-12 | 2018-05-23 | Action undo service based on cloud platform |
US16/617,447 US11513918B2 (en) | 2017-06-12 | 2018-05-23 | Action undo service based on cloud platform |
EP18734659.8A EP3639138B1 (en) | 2017-06-12 | 2018-05-23 | Action undo service based on cloud platform |
PCT/US2018/034025 WO2018231450A1 (en) | 2017-06-12 | 2018-05-23 | Action undo service based on cloud platform |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710439975.8A CN109032752B (zh) | 2017-06-12 | 2017-06-12 | 基于云平台的操作撤销 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032752A CN109032752A (zh) | 2018-12-18 |
CN109032752B true CN109032752B (zh) | 2023-03-10 |
Family
ID=62751530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710439975.8A Active CN109032752B (zh) | 2017-06-12 | 2017-06-12 | 基于云平台的操作撤销 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11513918B2 (zh) |
EP (2) | EP4220406B1 (zh) |
CN (1) | CN109032752B (zh) |
WO (1) | WO2018231450A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382127B (zh) * | 2020-02-12 | 2023-05-23 | 福建网龙计算机网络信息技术有限公司 | 一种撤消处理方法及终端 |
CN111858166B (zh) * | 2020-07-06 | 2023-07-07 | 河南信大网御科技有限公司 | 可纠错快速拟态裁决方法、裁决器、***及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853199A (zh) * | 2010-05-13 | 2010-10-06 | 复旦大学 | 基于操作效果关系的选择性撤销方法 |
CN102142024A (zh) * | 2010-02-01 | 2011-08-03 | 微软公司 | 在分布式数据库中使用递增捕捉来进行逻辑数据备份和回退 |
CN105431821A (zh) * | 2013-07-30 | 2016-03-23 | 苹果公司 | 撤销*** |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6111575A (en) | 1998-09-24 | 2000-08-29 | International Business Machines Corporation | Graphical undo/redo manager and method |
US7386834B2 (en) * | 2002-06-28 | 2008-06-10 | Sun Microsystems, Inc. | Undo/redo technique for token-oriented representation of program code |
US7146386B2 (en) * | 2004-03-29 | 2006-12-05 | Microsoft Corporation | System and method for a snapshot query during database recovery |
US7870169B2 (en) * | 2007-06-29 | 2011-01-11 | International Business Machines Corporation | Method for enabling traceability and recovery from errors during migration of software applications |
US8001091B2 (en) * | 2007-08-29 | 2011-08-16 | International Business Machines Corporation | Apparatus, system, and method for hierarchical rollback of business operations |
US20110106776A1 (en) * | 2009-11-03 | 2011-05-05 | Schlumberger Technology Corporation | Incremental implementation of undo/redo support in legacy applications |
US9106584B2 (en) | 2011-09-26 | 2015-08-11 | At&T Intellectual Property I, L.P. | Cloud infrastructure services |
US8484166B2 (en) * | 2011-11-03 | 2013-07-09 | Oracle International Corporation | Oracle rewind: metadata-driven undo |
EP2631761A1 (en) * | 2012-02-24 | 2013-08-28 | Research In Motion Limited | Method and apparatus for providing an option to undo a delete operation |
US9367337B1 (en) | 2012-06-06 | 2016-06-14 | hopTo Inc. | Cloud-based personalization of shared resources |
WO2014169331A1 (en) | 2013-04-19 | 2014-10-23 | National Ict Australia Limited | Checking undoability of an api-controlled computing system |
CN104572034B (zh) * | 2013-10-11 | 2019-04-02 | 北京西门子西伯乐斯电子有限公司 | 一种撤销和/或重做的实现方法和装置 |
US9734021B1 (en) * | 2014-08-18 | 2017-08-15 | Amazon Technologies, Inc. | Visualizing restoration operation granularity for a database |
US10108655B2 (en) | 2015-05-19 | 2018-10-23 | Ca, Inc. | Interactive log file visualization tool |
US10255081B2 (en) * | 2015-07-17 | 2019-04-09 | Accenture Global Solutions Limited | Method and system for intelligent cloud planning and decommissioning |
-
2017
- 2017-06-12 CN CN201710439975.8A patent/CN109032752B/zh active Active
-
2018
- 2018-05-23 EP EP23170775.3A patent/EP4220406B1/en active Active
- 2018-05-23 EP EP18734659.8A patent/EP3639138B1/en active Active
- 2018-05-23 US US16/617,447 patent/US11513918B2/en active Active
- 2018-05-23 WO PCT/US2018/034025 patent/WO2018231450A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142024A (zh) * | 2010-02-01 | 2011-08-03 | 微软公司 | 在分布式数据库中使用递增捕捉来进行逻辑数据备份和回退 |
CN101853199A (zh) * | 2010-05-13 | 2010-10-06 | 复旦大学 | 基于操作效果关系的选择性撤销方法 |
CN105431821A (zh) * | 2013-07-30 | 2016-03-23 | 苹果公司 | 撤销*** |
Non-Patent Citations (3)
Title |
---|
Estimating and undoing rotation for print-scan resilient data hiding;K. Solanki等;《2004 International Conference on Image Processing》;20050418;第39-42页 * |
Supporting Undoability in Systems Operations;Ingo Webe;《27th Large Installation System Administration Conference》;20131103;第75-87页 * |
多步无限撤销及恢复算法与实现;赵高长;《西安科技大学学报》;20090831;第29卷(第4期);第500-504页 * |
Also Published As
Publication number | Publication date |
---|---|
US11513918B2 (en) | 2022-11-29 |
WO2018231450A1 (en) | 2018-12-20 |
US20200167242A1 (en) | 2020-05-28 |
EP4220406A1 (en) | 2023-08-02 |
EP3639138A1 (en) | 2020-04-22 |
CN109032752A (zh) | 2018-12-18 |
EP4220406B1 (en) | 2024-06-26 |
EP3639138B1 (en) | 2023-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094903B (zh) | 对固件进行升级的方法及装置 | |
KR101933557B1 (ko) | 액티비티 협력을 위한 동반 애플리케이션 | |
US9679163B2 (en) | Installation and management of client extensions | |
US20200175980A1 (en) | Method and Terminal for Implementing Speech Control | |
CN105975864A (zh) | 操作***的启动方法、装置及终端 | |
US9747449B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
CN110457154B (zh) | 异常服务处理方法及装置、存储介质、通信终端 | |
US10579360B2 (en) | Application update control | |
CN105446768B (zh) | ***升级方法及装置 | |
CN107391021B (zh) | 黑屏手势的识别方法、装置、存储介质及移动终端 | |
CN107370834A (zh) | 用户设备的异常调试方法、装置、设备和存储介质 | |
CN109032752B (zh) | 基于云平台的操作撤销 | |
CN109582524A (zh) | 一种测试方法、***及电子设备和存储介质 | |
CN109271211A (zh) | 应用程序的分身方法、装置、设备和介质 | |
WO2019024646A1 (zh) | 应用管控方法、装置及电子设备 | |
CN108595965B (zh) | 防止界面控件的属性信息被窃取的方法及其装置 | |
US8903873B2 (en) | File information system management system and method | |
CN110780894B (zh) | 热升级处理方法、装置及电子设备 | |
CN107844318B (zh) | 一种操作***的升级方法及移动终端和服务器 | |
CN104951337B (zh) | 文件增量更新方法及装置 | |
CN117193944A (zh) | 应用运行环境生成方法、装置、服务器以及存储设备 | |
CN116954649A (zh) | 一种现场可更换单元的属性信息更新方法和装置 | |
US20210019379A1 (en) | License usage management | |
CN114185804A (zh) | 一种接口测试方法、装置及终端设备 | |
CN105763944B (zh) | 模块电视及其屏端升级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |