原子命令回滚方法及终端的制作方法

文档序号:7718225阅读:132来源:国知局
专利名称:原子命令回滚方法及终端的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种原子命令回滚方法及终端。
背景技术
目前,为了保持高效的服务质量和降低设备维护成本,通常采用设备管理服务器 为移动终端提供各种服务。开放移动联盟设备管理(OpenMobile 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以及R印lace等。其 中,Atomic命令则是由一个或多个Add、Alert、Delete、Copy和R印lace命令组成,这些命 令在Atomic中被称为子命令(subordinate commands)。在协议中规定如果客户端成功 执行所有的Atomic命令,则将在多条Message中分别上报执行结果;如果客户端不能成功 的执行完成所有Atomic,则上报错误码517,并将先前已经执行的Atomic中的命令进行回 滚(roll back);如果Atomic中有一个命令失败,则必须上报失败码;此外,嵌套的Atomic 命令是非法的,运行中将产生错误码500 (Command failed)。由此可见,Atomic命令是原子性操作,即,要求命令中所有子命令要么全部执行成 功,要么均不执行。因此,在如果在Atomic命令的执行中出现某个子命令运行错误,则需要 对前面已经执行的子命令进行回滚。由于Atomic命令是由多个子命令按照一定顺序组成的,因此,回滚时不但需要注 意回滚的顺序,还必须考虑对于不同子命令进行相应得回滚操作。但是,在目前的协议中并 未对回滚的方法进行规定或提出实现方法。同时,现有的DM应用往往没有涉及到Atomic 命令的使用或回滚操作。因此,到目前为止,对于Atomic命令的回滚没有相应的解决方案。

发明内容
本发明的主要目的在于提供一种原子命令回滚方案,以至少解决上述相关技术中 缺少原子命令回滚方案而导致无法在原子命令执行出错时进行回滚的问题。根据本发明的一个方面,提供一种原子命令回滚方法,包括执行原子命令,记录 已经执行的子命令的执行顺序和已经执行的子命令中的每个子命令的操作信息;根据每个 子命令的操作信息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。优选地,在执行原子命令之前,上述方法还包括根据子命令的类型配置与类型的子命令对应的回滚命令。优选地,根据子命令的类型配置与类型的子命令对应的回滚命令包括根据子命 令的类型判断是否需要对子命令进行回滚,并在判断结果为是的情况下,配置与类型的子 命令对应的回滚命令。优选地,替换命令R印Iace对应的回滚命令为R印lace、添加命令Add对应的回滚 命令为删除命令Delete、Delete对应的回滚命令为Add。优选地,在子命令为Add、Delete或R印lace的情况下,每个子命令的操作信息包 括以下至少之一子命令对应的操作的名称、子命令对应的操作的节点路径、执行该子命令 之前的节点值。优选地,在子命令为第一类警告命令Alert和第二类警告命令Alert的情况下,不 执行对子命令的回滚。根据本发明的另一方面,提供了一种终端,包括执行模块,用于执行原子命令; 记录模块,用于记录已经执行的子命令的执行顺序和已经执行的子命令中的每个子命令的 操作信息,其中,原子命令包括一个或多个子命令;回滚模块,用于根据每个子命令的操作 信息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。优选地,上述终端还包括配置模块,用于根据子命令的类型配置与类型的子命令 对应的回滚命令。优选地,上述终端还包括判断模块,用于根据子命令的类型判断是否需要对子命 令进行回滚;配置模块,用于在判断模块的判断结果为是的情况下,配置与类型的子命令对 应的回滚命令。优选地,配置模块,用于将R印Iace对应的回滚命令配置为R印Iace ;将Add对应 的回滚命令配置为Delete ;将Delete对应的回滚命令配置为Add。通过本发明,采用记录原子命令中已经执行的子命令的执行顺序和相关参数,并 根据该记录进行回滚,解决了相关技术中缺少原子命令回滚方案而导致无法在原子命令执 行出错时进行回滚的问题,进而使在执行过程中出错的原子命令能够正常回滚。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中
图1是根据本发明实施例的原子命令回滚方法的流程图;图2是根据本发明实施例的终端的结构框图;图3是根据本发明实施例的终端优选的结构框图;图4是根据本发明实施例的优选实例的原子命令回滚方法的流程图;图5是根据本发明实施例的Atomic命令操作记录表的结构示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。在本实施例中,提供了一种原子命令回滚方法,图1是根据本发明实施例的原子命令回滚方法的流程图,如图1所示,该流程包括如下步骤步骤S102,执行原子命令;步骤S104,记录已经执行的子命令的执行顺序和已经执行的子命令中的每个子命 令的操作信息;步骤S106,根据每个子命令的操作信息以与执行顺序相反的顺序依次执行每个子 命令对应的回滚命令。在上述步骤S102至S106中,通过对已经执行的子命令的顺序和操作信息进行记 录,并根据记录的信息进行原子命令的回滚,解决了相关技术中缺少原子命令回滚方案而 导致无法在原子命令执行出错时进行回滚的问题。优选地,在执行原子命令之前,可以根据子命令的类型配置与该类型的子命令对 应的回滚命令,即,对Atomic命令中涉及到的子命令操作进行回滚规定。在配置回滚命令 之前还可以根据子命令的类型判断是否需要对子命令进行回滚,并在判断结果为是的情况 下,配置与类型的子命令对应的回滚命令。例如,R印Iace命令的回滚操作可以还是R印lace (或者,也可以是进行Delete再 进行Add),只是所带的Data参数不同。下面对此进行举例说明。Atomic中的R印Iace命令将节点值从al设置为a2,则回滚时需要利用R印Iace 命令将其值设置回al,命令格式可以如下<Replace><CmdID>4</CmdID><Item>〈Target〉<LocURI>. /antivirus_data/version</LocURI>〈/Target〉<Data>al</Data></Item></R 印 lace>又例如,Add命令的回滚操作为DelethDelete命令的回滚操作为Add。下面对此 进行举例说明。Atomic中的Add命令添加了节点./userl,回滚时需要利用Delete命令将./ userl节点删除;而如果Atomic中的Delete命令删除了节点./userl,回滚时需要利用Add 命令添加./userl节点。但是,在对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>. /userl</LocURI>〈/Target〉<DataX/Data></Item></Add>〈Delete〉<CmdID>4</CmdID><Item>〈Target〉<LocURI>. /userl</LocURI>〈/Target〉</Item>〈/Delete〉又例如,Alert命令的回滚操作可以视具体的内容而定。Alert命令分为三类 第一类是用户交互Alert (1100-1199),此类Alert是服务器发出向客户端进行显示或要 求用户进行输入或选择,因此对于这类Alert,可以规定无须进行特殊的回滚操作;第二 类是标示DM会话的Alert (1200-1220),其回滚方式如第一类Alert ;第三类是特殊的DM Alert (1222-1299),对于此类Alert,需要客户端事先根据需要处理的Alert命令制定出相 应得回滚方法,例如Alertl223,是服务器通知客户端中止DM会话,那么其回滚方法则是 让客户端恢复会话,该实现需要客户端事先完成。需要说明的是,Copy命令的回滚可以通过Delete命令来实现回滚。但是,由于 Copy命令在服务器和客户端都不要求必须支持,因此,对Copy命令的回滚在此不再赘述。对应于上述的说明,在本实施例中还提供了一种终端,图2是根据本发明实施例 的终端的结构框图,如图2所示,该终端包括执行模块22、记录模块M、回滚模块沈,下面 对此结构进行详细的说明。执行模块22,用于执行原子命令;记录模块M连接至执行模块22,用于记录已经 执行的子命令的执行顺序和已经执行的子命令中的每个子命令的操作信息,其中,原子命 令包括一个或多个子命令;回滚模块沈连接至记录模块对,用于根据每个子命令的操作信 息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。图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中第一个子命令是R印lace,则 在Replace执行时记录子命令执行编号(如1)、操作名称(如R印lace)、操作的节点路径、 Replace之前的节点值以及其他信息;如果Atomic中第二个子命令是Add,则记录该子命令 执行编号(如2)、操作名称(如Add)、操作的节点路径、Add之前的节点值(此时为空)以 及其他信息,同样地,可以记录Delete和Alert命令的操作。步骤S404,在执行Atomic命令的过程中,如果所有子命令均执行成功,则DM会话 结束,上报服务器状态;如果其中某个子命令执行失败,则执行步骤S405。步骤S405,当Atomic运行发生错误时,根据备份的Atomic命令操作记录表和事先 准备的子命令回滚规定及实现对已经完成的子命令进行回滚操作。其中,回滚的顺序应该 与Atomic命令操作记录表中的执行编号相反。步骤S406,回滚操作结束之后,DM会话结束,上报服务器状态,流程结束。综上所述,通过本发明上述实施例提供了一种通用的Atomic回滚方法,既考虑了 对Atomic中各个子命令及操作顺序进行备份,又分别针对各子命令提出了相应的回滚方 案,从而满足Atomic回滚要求。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示 出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种原子命令回滚方法,其特征在于,包括执行原子命令,记录已经执行的子命令的执行顺序和所述已经执行的子命令中的每个 子命令的操作信息;根据所述每个子命令的操作信息以与所述执行顺序相反的顺序依次执行所述每个子 命令对应的回滚命令。
2.根据权利要求1所述的方法,其特征在于,在执行所述原子命令之前,所述方法还包括根据子命令的类型配置与所述类型的子命令对应的回滚命令。
3.根据权利要求2所述的方法,其特征在于,根据所述子命令的类型配置与所述类型 的子命令对应的回滚命令包括根据所述子命令的类型判断是否需要对所述子命令进行回滚,并在判断结果为是的情 况下,配置与所述类型的子命令对应的回滚命令。
4.根据权利要求1至3中任一项所述的方法,其特征在于,替换命令Replace对应的回 滚命令为R印lace、添加命令Add对应的回滚命令为删除命令Delete、Delete对应的回滚 命令为Add。
5.根据权利要求1至3中任一项所述的方法,其特征在于,在子命令为AdcUDelete或 Replace的情况下,所述每个子命令的操作信息包括以下至少之一子命令对应的操作的名称、子命令对应的操作的节点路径、执行该子命令之前的节点值。
6.根据权利要求1至3中任一项所述的方法,其特征在于,在子命令为第一类警告命令Alert和第二类警告命令Alert的情况下,不执行对所述 子命令的回滚。
7.—种终端,其特征在于,包括 执行模块,用于执行原子命令;记录模块,用于记录已经执行的子命令的执行顺序和所述已经执行的子命令中的每个 子命令的操作信息,其中,所述原子命令包括一个或多个所述子命令;回滚模块,用于根据所述每个子命令的操作信息以与所述执行顺序相反的顺序依次执 行所述每个子命令对应的回滚命令。
8.根据权利要求7所述的终端,其特征在于,还包括配置模块,用于根据子命令的类型配置与所述类型的子命令对应的回滚命令。
9.根据权利要求8所述的终端,其特征在于,还包括判断模块,用于根据所述子命令的类型判断是否需要对所述子命令进行回滚; 所述配置模块,用于在所述判断模块的判断结果为是的情况下,配置与所述类型的子 命令对应的回滚命令。
10.根据权利要求7或8所述的终端,其特征在于,所述配置模块,用于将R印Iace对应的回滚命令配置为R印Iace ;将Add对应的回滚命 令配置为Delete ;将Delete对应的回滚命令配置为Add。
全文摘要
本发明公开了一种原子命令回滚方法及终端,该方法包括执行原子命令,记录已经执行的子命令的执行顺序和已经执行的子命令中的每个子命令的操作信息;根据每个子命令的操作信息以与执行顺序相反的顺序依次执行每个子命令对应的回滚命令。通过本发明使在执行过程中出错的原子命令能够正常回滚。
文档编号H04W24/00GK102111783SQ200910216900
公开日2011年6月29日 申请日期2009年12月28日 优先权日2009年12月28日
发明者周韬, 罗虹, 鞠飞 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1