CN102111783A - 原子命令回滚方法及终端 - Google Patents

原子命令回滚方法及终端 Download PDF

Info

Publication number
CN102111783A
CN102111783A CN2009102169009A CN200910216900A CN102111783A CN 102111783 A CN102111783 A CN 102111783A CN 2009102169009 A CN2009102169009 A CN 2009102169009A CN 200910216900 A CN200910216900 A CN 200910216900A CN 102111783 A CN102111783 A CN 102111783A
Authority
CN
China
Prior art keywords
subcommand
rollback
order
correspondence
carry out
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2009102169009A
Other languages
English (en)
Inventor
罗虹
周韬
鞠飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2009102169009A priority Critical patent/CN102111783A/zh
Priority to PCT/CN2010/071913 priority patent/WO2010148727A1/zh
Publication of CN102111783A publication Critical patent/CN102111783A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Abstract

本发明公开了一种原子命令回滚方法及终端,该方法包括:执行原子命令,记录已经执行的子命令的执行顺序和已经执行的子命令中的每个子命令的操作信息;根据每个子命令的操作信息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。通过本发明使在执行过程中出错的原子命令能够正常回滚。

Description

原子命令回滚方法及终端
技术领域
本发明涉及通信领域,具体而言,涉及一种原子命令回滚方法及终端。
背景技术
目前,为了保持高效的服务质量和降低设备维护成本,通常采用设备管理服务器为移动终端提供各种服务。
开放移动联盟设备管理(Open Mobile Alliance DeviceManagement,简称为OMA DM)定义了设备管理的整体框架、协议和通信机制、安全性等问题的规范。因此,设备管理服务器(DeviceManagement Server,简称为DMS)通过DM协议管理和监控移动设备终端(简称为设备终端或终端),并根据设备终端的状态提供管理、升级、诊断和修复功能,使带有设备管理终端代理(DeviceManagement Agent,简称为DMA)的设备终端实现服务器的管理并享受服务器提供的服务。
设备管理是通过服务器和设备终端的DM会话交互实现的。在会话中传递多个DM包(Package),一个DM Package又可以包括多条消息(Message)。在OMA DM协议中规定了DM Message中使用的命令,例如:Add、原子命令Atomic、Delete、Exec以及Replace等。其中,Atomic命令则是由一个或多个Add、Alert、Delete、Copy和Replace命令组成,这些命令在Atomic中被称为:子命令(subordinate commands)。在协议中规定:如果客户端成功执行所有的Atomic命令,则将在多条Message中分别上报执行结果;如果客户端不能成功的执行完成所有Atomic,则上报错误码517,并将先前已经执行的Atomic中的命令进行回滚(roll back);如果Atomic中有一个命令失败,则必须上报失败码;此外,嵌套的Atomic命令是非法的,运行中将产生错误码500(Command failed)。
由此可见,Atomic命令是原子性操作,即,要求命令中所有子命令要么全部执行成功,要么均不执行。因此,在如果在Atomic命令的执行中出现某个子命令运行错误,则需要对前面已经执行的子命令进行回滚。
由于Atomic命令是由多个子命令按照一定顺序组成的,因此,回滚时不但需要注意回滚的顺序,还必须考虑对于不同子命令进行相应得回滚操作。但是,在目前的协议中并未对回滚的方法进行规定或提出实现方法。同时,现有的DM应用往往没有涉及到Atomic命令的使用或回滚操作。因此,到目前为止,对于Atomic命令的回滚没有相应的解决方案。
发明内容
本发明的主要目的在于提供一种原子命令回滚方案,以至少解决上述相关技术中缺少原子命令回滚方案而导致无法在原子命令执行出错时进行回滚的问题。
根据本发明的一个方面,提供一种原子命令回滚方法,包括:执行原子命令,记录已经执行的子命令的执行顺序和已经执行的子命令中的每个子命令的操作信息;根据每个子命令的操作信息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。
优选地,在执行原子命令之前,上述方法还包括:根据子命令的类型配置与类型的子命令对应的回滚命令。
优选地,根据子命令的类型配置与类型的子命令对应的回滚命令包括:根据子命令的类型判断是否需要对子命令进行回滚,并在判断结果为是的情况下,配置与类型的子命令对应的回滚命令。
优选地,替换命令Replace对应的回滚命令为Replace、添加命令Add对应的回滚命令为删除命令Delete、Delete对应的回滚命令为Add。
优选地,在子命令为Add、Delete或Replace的情况下,每个子命令的操作信息包括以下至少之一:子命令对应的操作的名称、子命令对应的操作的节点路径、执行该子命令之前的节点值。
优选地,在子命令为第一类警告命令Alert和第二类警告命令Alert的情况下,不执行对子命令的回滚。
根据本发明的另一方面,提供了一种终端,包括:执行模块,用于执行原子命令;记录模块,用于记录已经执行的子命令的执行顺序和已经执行的子命令中的每个子命令的操作信息,其中,原子命令包括一个或多个子命令;回滚模块,用于根据每个子命令的操作信息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。
优选地,上述终端还包括:配置模块,用于根据子命令的类型配置与类型的子命令对应的回滚命令。
优选地,上述终端还包括:判断模块,用于根据子命令的类型判断是否需要对子命令进行回滚;配置模块,用于在判断模块的判断结果为是的情况下,配置与类型的子命令对应的回滚命令。
优选地,配置模块,用于将Replace对应的回滚命令配置为Replace;将Add对应的回滚命令配置为Delete;将Delete对应的回滚命令配置为Add。
通过本发明,采用记录原子命令中已经执行的子命令的执行顺序和相关参数,并根据该记录进行回滚,解决了相关技术中缺少原子命令回滚方案而导致无法在原子命令执行出错时进行回滚的问题,进而使在执行过程中出错的原子命令能够正常回滚。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的原子命令回滚方法的流程图;
图2是根据本发明实施例的终端的结构框图;
图3是根据本发明实施例的终端优选的结构框图;
图4是根据本发明实施例的优选实例的原子命令回滚方法的流程图;
图5是根据本发明实施例的Atomic命令操作记录表的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中,提供了一种原子命令回滚方法,图1是根据本发明实施例的原子命令回滚方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,执行原子命令;
步骤S104,记录已经执行的子命令的执行顺序和已经执行的子命令中的每个子命令的操作信息;
步骤S106,根据每个子命令的操作信息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。
在上述步骤S102至S106中,通过对已经执行的子命令的顺序和操作信息进行记录,并根据记录的信息进行原子命令的回滚,解决了相关技术中缺少原子命令回滚方案而导致无法在原子命令执行出错时进行回滚的问题。
优选地,在执行原子命令之前,可以根据子命令的类型配置与该类型的子命令对应的回滚命令,即,对Atomic命令中涉及到的子命令操作进行回滚规定。在配置回滚命令之前还可以根据子命令的类型判断是否需要对子命令进行回滚,并在判断结果为是的情况下,配置与类型的子命令对应的回滚命令。
例如,Replace命令的回滚操作可以还是Replace(或者,也可以是进行Delete再进行Add),只是所带的Data参数不同。下面对此进行举例说明。
Atomic中的Replace命令将节点值从a1设置为a2,则回滚时需要利用Replace命令将其值设置回a1,命令格式可以如下:
<Replace>
  <CmdID>4</CmdID>
  <Item>
      <Target>
          <LocURI>./antivirus_data/version</LocURI>
    </Target>
    <Data>a1</Data>
  </Item>
</Replace>
又例如,Add命令的回滚操作为Delete,Delete命令的回滚操作为Add。下面对此进行举例说明。
Atomic中的Add命令添加了节点./userl,回滚时需要利用Delete命令将./user1节点删除;而如果Atomic中的Delete命令删除了节点./user1,回滚时需要利用Add命令添加./user1节点。但是,在对Add和Delete命令的回滚中,必须注意:在Atomic的Add子命令中,如果所添加节点的父节点不存在,可以隐式的增加不存在的父节点,因此,在回滚的Delete操作中必须删除该隐式添加的父节点。同样地,在Atomic的Delete子命令中,如果删除的是一个父节点,则该父节点的子节点将均被删除,因此,在回滚的Add操作中必须按照原有的结构关系添加所有的子节点。Add和Delete命令格式可以如下:
<Add>
   <CmdID>2</CmdID>
        <Meta>
            <Format xmlns=′syncml:metinf′>chr</Format>
        </Meta>
        <Item>
            <Target>
                <LocURI>./user1</LocURI>
            </Target>
            <Data></Data>
      </Item>
  </Add>
  <Delete>
  <CmdID>4</CmdID>
    <Item>
      <Target>
        <LocURI>./user1</LocURI>
      </Target>
    </Item>
</Delete>
又例如,Alert命令的回滚操作可以视具体的内容而定。Alert命令分为三类:第一类是用户交互Alert(1100-1199),此类Alert是服务器发出向客户端进行显示或要求用户进行输入或选择,因此对于这类Alert,可以规定无须进行特殊的回滚操作;第二类是标示DM会话的Alert(1200-1220),其回滚方式如第一类Alert;第三类是特殊的DM Alert(1222-1299),对于此类Alert,需要客户端事先根据需要处理的Alert命令制定出相应得回滚方法,例如:Alert1223,是服务器通知客户端中止DM会话,那么其回滚方法则是让客户端恢复会话,该实现需要客户端事先完成。
需要说明的是,Copy命令的回滚可以通过Delete命令来实现回滚。但是,由于Copy命令在服务器和客户端都不要求必须支持,因此,对Copy命令的回滚在此不再赘述。
对应于上述的说明,在本实施例中还提供了一种终端,图2是根据本发明实施例的终端的结构框图,如图2所示,该终端包括:执行模块22、记录模块24、回滚模块26,下面对此结构进行详细的说明。
执行模块22,用于执行原子命令;记录模块24连接至执行模块22,用于记录已经执行的子命令的执行顺序和已经执行的子命令中的每个子命令的操作信息,其中,原子命令包括一个或多个子命令;回滚模块26连接至记录模块24,用于根据每个子命令的操作信息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。
图3是根据本发明实施例的终端优选的结构框图,如图3所示,该终端还包括:配置模块32连接至执行模块22,该模块用于根据子命令的类型配置与类型的子命令对应的回滚命令。
如图3所示,该终端还可以包括:判断模块34连接至配置模块32,用于根据子命令的类型判断是否需要对子命令进行回滚;配置模块32用于在判断模块34的判断结果为是的情况下,配置与类型的子命令对应的回滚命令。
下面结合图4对本实施例的优选实例进行说明。
图4是根据本发明实施例的优选实例的原子命令回滚方法的流程图,该流程包括如下步骤:
步骤S401,进入处理流程,开始DM会话,在会话前已经为Atomic命令中各子命令的回滚操作制定统一的规定及实现。
步骤S402,在DM会话中,判断服务器是否要求执行Atomic命令。如果没有Atomic命令则执行需要执行的命令直至DM会话结束,上报服务器状态,流程结束。如果有Atomic命令,则执行步骤S403。
步骤S403,开始记录每个子命令的操作信息,形成备份文件——操作记录表(例如,以Atomic命名),图5是根据本发明实施例的Atomic命令操作记录表的结构示意图,在该步骤中形成的记录表可以如图5所示。例如,如果Atomic中第一个子命令是Replace,则在Replace执行时记录子命令执行编号(如1)、操作名称(如Replace)、操作的节点路径、Replace之前的节点值以及其他信息;如果Atomic中第二个子命令是Add,则记录该子命令执行编号(如2)、操作名称(如Add)、操作的节点路径、Add之前的节点值(此时为空)以及其他信息,同样地,可以记录Delete和Alert命令的操作。
步骤S404,在执行Atomic命令的过程中,如果所有子命令均执行成功,则DM会话结束,上报服务器状态;如果其中某个子命令执行失败,则执行步骤S405。
步骤S405,当Atomic运行发生错误时,根据备份的Atomic命令操作记录表和事先准备的子命令回滚规定及实现对已经完成的子命令进行回滚操作。其中,回滚的顺序应该与Atomic命令操作记录表中的执行编号相反。
步骤S406,回滚操作结束之后,DM会话结束,上报服务器状态,流程结束。
综上所述,通过本发明上述实施例提供了一种通用的Atomic回滚方法,既考虑了对Atomic中各个子命令及操作顺序进行备份,又分别针对各子命令提出了相应的回滚方案,从而满足Atomic回滚要求。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种原子命令回滚方法,其特征在于,包括:
执行原子命令,记录已经执行的子命令的执行顺序和所述已经执行的子命令中的每个子命令的操作信息;
根据所述每个子命令的操作信息以与所述执行顺序相反的顺序依次执行所述每个子命令对应的回滚命令。
2.根据权利要求1所述的方法,其特征在于,在执行所述原子命令之前,所述方法还包括:
根据子命令的类型配置与所述类型的子命令对应的回滚命令。
3.根据权利要求2所述的方法,其特征在于,根据所述子命令的类型配置与所述类型的子命令对应的回滚命令包括:
根据所述子命令的类型判断是否需要对所述子命令进行回滚,并在判断结果为是的情况下,配置与所述类型的子命令对应的回滚命令。
4.根据权利要求1至3中任一项所述的方法,其特征在于,替换命令Replace对应的回滚命令为Replace、添加命令Add对应的回滚命令为删除命令Delete、Delete对应的回滚命令为Add。
5.根据权利要求1至3中任一项所述的方法,其特征在于,在子命令为Add、Delete或Replace的情况下,所述每个子命令的操作信息包括以下至少之一:
子命令对应的操作的名称、子命令对应的操作的节点路径、执行该子命令之前的节点值。
6.根据权利要求1至3中任一项所述的方法,其特征在于,
在子命令为第一类警告命令Alert和第二类警告命令Alert的情况下,不执行对所述子命令的回滚。
7.一种终端,其特征在于,包括:
执行模块,用于执行原子命令;
记录模块,用于记录已经执行的子命令的执行顺序和所述已经执行的子命令中的每个子命令的操作信息,其中,所述原子命令包括一个或多个所述子命令;
回滚模块,用于根据所述每个子命令的操作信息以与所述执行顺序相反的顺序依次执行所述每个子命令对应的回滚命令。
8.根据权利要求7所述的终端,其特征在于,还包括:
配置模块,用于根据子命令的类型配置与所述类型的子命令对应的回滚命令。
9.根据权利要求8所述的终端,其特征在于,还包括:
判断模块,用于根据所述子命令的类型判断是否需要对所述子命令进行回滚;
所述配置模块,用于在所述判断模块的判断结果为是的情况下,配置与所述类型的子命令对应的回滚命令。
10.根据权利要求7或8所述的终端,其特征在于,
所述配置模块,用于将Replace对应的回滚命令配置为Replace;将Add对应的回滚命令配置为Delete;将Delete对应的回滚命令配置为Add。
CN2009102169009A 2009-12-28 2009-12-28 原子命令回滚方法及终端 Pending CN102111783A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2009102169009A CN102111783A (zh) 2009-12-28 2009-12-28 原子命令回滚方法及终端
PCT/CN2010/071913 WO2010148727A1 (zh) 2009-12-28 2010-04-20 原子命令回滚方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102169009A CN102111783A (zh) 2009-12-28 2009-12-28 原子命令回滚方法及终端

Publications (1)

Publication Number Publication Date
CN102111783A true CN102111783A (zh) 2011-06-29

Family

ID=43385916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102169009A Pending CN102111783A (zh) 2009-12-28 2009-12-28 原子命令回滚方法及终端

Country Status (2)

Country Link
CN (1) CN102111783A (zh)
WO (1) WO2010148727A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939217A (zh) * 2016-03-23 2016-09-14 杭州迪普科技有限公司 配置回滚的方法及装置
CN109829678A (zh) * 2017-11-23 2019-05-31 阿里巴巴集团控股有限公司 一种回滚处理方法、装置以及电子设备
CN113778775A (zh) * 2020-06-16 2021-12-10 北京沃东天骏信息技术有限公司 程序数据处理方法、装置、电子设备及计算机可读介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100452793C (zh) * 2003-10-22 2009-01-14 华为技术有限公司 一种基于软交换网络的业务发放方法
WO2006019226A1 (en) * 2004-07-07 2006-02-23 Lg Electronics Inc. Event interfacing method and apparatus between applications and a library of a master on home network
CN100484257C (zh) * 2006-04-06 2009-04-29 上海华为技术有限公司 一种数据配置方法及装置
CN101197698B (zh) * 2006-12-06 2012-02-29 中兴通讯股份有限公司 一种简单网络管理协议管理应用层事务回滚方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939217A (zh) * 2016-03-23 2016-09-14 杭州迪普科技有限公司 配置回滚的方法及装置
CN105939217B (zh) * 2016-03-23 2019-02-19 杭州迪普科技股份有限公司 配置回滚的方法及装置
CN109829678A (zh) * 2017-11-23 2019-05-31 阿里巴巴集团控股有限公司 一种回滚处理方法、装置以及电子设备
CN113778775A (zh) * 2020-06-16 2021-12-10 北京沃东天骏信息技术有限公司 程序数据处理方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
WO2010148727A1 (zh) 2010-12-29

Similar Documents

Publication Publication Date Title
CN100479575C (zh) 在设备管理中实现预定操作的方法及装置
CN101494572B (zh) 设备告警信息远程管理方法及系统
JP5662405B2 (ja) ユーザ装置をプロビジョニングするシステム及び方法
US8051186B2 (en) Method for device capability negotiation, method, system and device for synchronization
US7991878B2 (en) Method, system and terminal for maintaining capability management object and for managing capability
US20070158404A1 (en) Method and system for management of terminal devices
CN101163043B (zh) 一种网络管理功能配置方法以及网络管理功能配置系统
CN100450015C (zh) 在设备管理中更新和恢复终端设备数据的方法及终端设备
CN101494551A (zh) 业务割接的方法、装置及系统
CN101778004B (zh) 用于执行基于门限值调度的设备管理的终端和方法
CN100373976C (zh) 在设备管理中处理失败任务的方法及装置
CN101547122B (zh) 恢复终端配置的方法、装置及系统
US8407329B2 (en) Reporting information to a network
CN104135378A (zh) 对物联网网关进行管理控制的方法及物联网网关管控实体
CN101099398A (zh) 用于在管理网络中在管理器和代理之间匹配信息的方法和装置
CA3065729A1 (en) Business rules processing framework
CN100558178C (zh) 数据删除方法及终端
CN102111783A (zh) 原子命令回滚方法及终端
CN110620798A (zh) Ftp连接的控制方法、系统、设备和存储介质
CN103646015B (zh) 发送、接收以及传输xml报文的方法和系统
US8489838B2 (en) Method and terminal device for erasing data of terminal
CN113934711B (zh) 一种自动化部署gbase8s集群的方法
CN101695028B (zh) 一种简单网络管理协议配置方法及装置
CN110851199B (zh) 一种电力系统中的信息保护系统及其初始化方法
EP3066848B1 (en) Method and apparatus for failure recovery in a machine-to-machine network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20110629