一种事务控制方法、系统和装置的制作方法

文档序号:7668763阅读:107来源:国知局
专利名称:一种事务控制方法、系统和装置的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种事务控制方法、系统和装置。
技术背景XCAP ( XML Configuration Access Protocol, XML配置访问协议)协议是 正TF (Internet Engineering Task Force, Internet工程任务组)制定的一个协议, 该协议允许客户端读、写、修改存放在服务器中的XML (extensible Markup Language,可扩展的标记语言)格式的应用配置数据。XCAP将XML文档中 的节点映射到HTTP (Hyper Text Transfer Protocol,超文本传输协议)的URI (Universal Resource Identifier,通用资源标志符)中,使得这些组件能够直接 通过HTTP访问。OMAXCAP标准信令PUT、 GET、 DELETE均为单个文档或节点操作, 一次请求就是一个数据库操作,也就是说对于一个标准的XCAP信令,数据 库执行一次操作,并提交一次结果。所以现有XCAP信令不需要事务控制参 数,XDMS ( XML Document Management System, XML数据管理月良务器)也 不需要事务控制。然而对于XCAP批处理信令,也没有对XDMS文档操作的 事务类型进行约定,其结果是要么被当作一个数据库事务处理,要么被当 作多个数据库事务处理,对终端来讲具有不确定性。在实现本发明实施例过程中,发明人发现现有技术中至少存在如下问 题由于终端和服务端无法约定相同的事务处理机制,因此会导致服务端 在事务处理机制上不健全,终端体验具有不确定性。例如终端想要请求服 务端对终端的连续的多个请求进行多事务处理,然而现有技术中由于服务 端无法得知该终端请求的是多事务处理,可能依然按照默认的单事务处理 方式处理。但是如果服务端是按多事务处理的,而终端希望按单事务处理 而无法通知服务端时,就会出现写入了不该写入的数据;反之,如果请求 中有不正确的数据,就会导致操作总是不能成功。 发明内容本发明实施例要解决的问题是提供一种事务控制方法、系统和装置,解 决现有技术中由于终端和服务端无法约定相同的事务处理机制,而使服务 端因为无法得知终端所请求的事务类型,造成服务端实际执行的操作和终 端的所请求的操作不 一致的技术缺陷。为达到上述目的,本发明实施例一方面提出一种事务控制方法,包括以下步骤服务端接收终端的请求消息;所述服务端解析所述请求消息,在所 述请求消息中的操作指令为数据更改操作指令时,获取所述请求消息中携带 的所述终端请求的事务类型;所述服务端根据得到的所述数据更改操作指令 和事务类型进行操作。本发明实施例还提供了一种事务控制方法,包括以下步骤服务端接收 终端的请求消息;所述服务端解析所述请求消息,得到相应的数据更改操作 指令,并根据所述数据更改操作指令查询对应的事务类型;服务端根据得到 的所述数据更改操作指令和事务类型进行操作。本发明实施例还提供了一种事务控制系统,包括服务端和至少一个终端, 所述终端,用于向所述服务端发送请求消息;所述服务端,用于接收并解析 所述终端发送的请求消息,在所述请求消息中的操作指令为数据更改操作指 令时,获取所述请求消息中携带的所述终端请求的事务类型;并根据得到的 所述数据更改操作指令和事务类型进行操作。本发明实施例还提供了一种服务端,包括请求接收模块、判断模块和事 务处理模块,所述请求接收模块,用于接收终端发送的请求消息;所述判断 模块,用于解析所述请求接收模块接收到的请求消息,在所述请求消息中的 操作指令为数据更改操作指令时,通知所述事务处理模块;所述事务处理模 块,用于在所述判断模块判断所述请求消息中的操作指令为数据更改操作指 令时,获取所述请求消息中携带的所述终端请求的事务类型;并根据得到的 所述数据更改操作指令和事务类型进行操作。
本发明实施例还提供了一种终端,包括请求发送模块,用于向服务端发 送请求消息,所述请求消息携带有所述终端请求的事务类型。本发明实施例的技术方案具有以下优点,因为采用通过在终端发送的请 求消息中添加相应的事务类型,使得服务端能够识别终端所请求的事务类型并做相应的处理。这样就使得终端能够根据终端具体的应用要求对XCAP批 量处理做事务控制,对于批量数据添加操作,则可以选择多事务类型,过滤 掉非法的数据;对于一些需要保持事务一致性的批处理操作,可以选择单事 务类型,从而增强了 XCAP信令的实用性和灵活性,增强了终端用户的体验。


图1为本发明实施例事务控制方法流程图; 图2为本发明实施例事务控制系统结构图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述 本发明实施例通过在终端发送的请求消息中添加相应的事务类型,使得 服务端能够识别终端所请求的事务类型并做相应的处理。这样就使得终端能 够根据终端具体的应用要求对XCAP批量处理做事务控制,对于批量数据添 加操作,可以选择多事务类型进行操作, 一次导入操作就按照一个数据库事 务执行,记录一次操作结果,这样对于数据添加操作来说就每次添加都不受 其他添加操作的影响,能够过滤掉非法的数据。对于多事务方式来说,如果 每个操作指令中含有非法数据,将不能操作成功,但只影响当次操作,其它 正常的数据操作不受影响。例如,假定某个属性是数值型,只能取0~9,可是 传入的参数中含a z或其它字符,这就导致这条数据不能正常写入。若采用 单事务,就会因为这条数据不能正常写入导致其它操作也不能进行。所以多 事务可以在批量导入数据时有效过滤非法数据。而对于一些需要保持事务一 致性的批处理操作,则可以选择单事务类型进行操作。如图l所示,为本发明实施例事务控制方法流程图,以终端向服务端发
送的请求消息为批处理请求消息为例,包括以下步骤步骤S101,终端向服务端发送批处理请求消息,并根据自身具体的应用要求在批处理请求消息中添加终端请求的事务类型。作为本发明的一个具体实施例,在批处理请求消息的消息体的外层标签(如list标签)中增加事务类型属性(如affairtype ),通过所述事务类型属性的取值体现终端请求的事务类型,如该属性取值为SINGLE—AFFAIR时认为是单事务类型,该属性取值为MULTI_AFFAIR时认为是多事务类型。 如<xs:element name="list"> <xs: complexType> <xs:sequence></xs:sequenc6><xs:attribute name-"affairtype" type="affairType" use="required"/></xs: complexType> </xs:element>其中,对affairType的定义如下 <xs: simpleType name=" affairType"> 〈xs:restriction base="xs:token">〈xs:enumeration value="SINGLE—AFFAIR"/> <xs:enumerationvalue="MULTI—AFFAIR"/> </xs:restriction> </xs: simpleType>其中,单事务类型是指服务端在一个数据库事务中执行所述批处理请求 消息中的所有操作指令,任何一次数据库操作失败都将重新处理整个事务。 单事务类型处理的结果是要么全部成功,要么全部失败,也就是说一旦有 一个操作指令出现错误,则就认为该批处理请求消息执行失败,这样的操作 对于保持事务一致性的批处理操作是非常有好处的。多事务类型为服务端对 所述批处理请求消息中的每个操作指令都按照一个数据库事务执行。服务端 对于每次数据库操作均视为独立的事务,并记录操作结果,任何一次数据库 操作失败只回滚当前事务,不影响本次批处理请求消息的其它数据库才喿作指 令。多事务处理的结果是应答消息中可能会出现部分成功部分失败的情况,
但这是正常的。为了便于理解上述实施例,以下就以添加修改为例,假定指定按"多事务类型"执行,具体的请求消息如下<formula>formula see original document page 9</formula>需要说明的是,在上述实施例中通过在批处理请求消息的消息体的外层 标签中增加事务类型属性仅为本发明实施例较优的实现方式,还可通过批处 理请求消息的类似标签中增加相应的属性、或者通过添加新的参数来实现批 处理请求消息携带事务类型的目的。因此关于如何将事务类型添加到批处理 请求消息中的类似变化也均应为本发明实施例保护范围所涵盖。步骤S102,服务端接收并解析终端发送的批处理请求消息,并判断该批 处理请求消息中的操作指令是否为数据更改操作指令。作为本发明实施例的 优选方案,在读操作中因为不存在事务一致性等问题,因此无需对读操作指 令按照事务处理流程进行处理,因此只有在操作指令为添加、删除或修改等 数据更改操作指令时,才对终端的批处理请求进行事务操作。步骤S103,如果该批处理请求消息中的操作指令为读操作指令,则对 XML文档进行读操作。该读操作处理完毕后,由服务端向终端返回应答消息, 该应答消息中携带有服务端对该读操作的操作结果。
步骤S104,如果该批处理请求消息中的梯:作指令为添加、删除或修改等
数据更改操作指令,则进一步判断该终端请求的是单事务类型,还是多事务 类型。步骤S105,如果该终端请求的是单事务类型,则服务端需要在一个数据 库事务中完成批处理请求中所有要处理的文档操作,如批量增加、修改、删 除文档或文档中的节点,任何一次数据库操作失败均回滚整个事务,或者全 成功,或者全失败。步骤S106,如果该终端请求的是多事务类型,则服务端将批处理请求中 的每个文档操作视为一个独立的事务,对一个文档的多个节点操作时,则构 造一个SQL语句执行,确保对一个文档的操作是单事务,任何一次数据库操 作的结果均不影响其它数据搮:作。步骤S107,在步骤S105、步骤S106服务端对批处理请求执行完毕之后, 服务端向终端返回应答消息,该应答消息中携带有服务端对所述批处理请求 消息的梯:作结果,如成功或失败。作为本发明的一个具体实施例,在步骤SIOI 的实施例中,在应答消息中通过500表示修改失败,通过200表示修改成功。<list xmlns="..."><auid name-"org.openmobilealliance.user國profile "> <file name="index.xmr> <result>500</result> <etag>reeeedd</etag> </file> </auid〉<auid name="resource-lists"> <file name="friend.xmr><result>200</result><etag>reeeedd</etag> </file></auid></list>当然在上述实施例中通过终端发送事件类型为较优的实施方式,但是也 可在力良务端側通过配置文件、DB (DataBase,数据库)等方式配置某种业务
操作的批处理事务类型,在服务端启动时载入,在收到批处理请求后,按约 定的事务处理方式执行数据操作并返回应答。具体为服务端接收终端的批处理请求消息;服务端解析批处理请求消息得到相应的数据更改操作指令,并 根据所述数据更改操作指令查询对应的事务类型;服务端根据得到的所述数 据更改操作指令和事务类型进行操作。这种方式虽然不用从终端发起的批处理请求中携带事务类型,但XDMS 通过配置的方式对业务操作的事务类型做了约定,这种约定本质上还是业务 侧给出,而且并没有改变XDMS区分事务类型进行批量数据处理的流程,所 以仍然属于本发明实施例的保护范畴。如图2所示,为本发明实施例事务控制系统结构图,该系统包括服务端 l和至少一个终端2,终端2用于向服务端l发送请求消息,该请求消息可以 为批处理请求消息,其中携带有终端2请求的事务类型;服务端1用于接收 并解析终端2的请求消息,得到相应的数据更改操作指令和事务类型,并根 据得到的所述数据更改^喿作指令和事务类型进行操作。其中,服务端1包括请求接收模块11、判断模块12和事务处理模块13, 请求接收模块11用于接收终端2发送的请求消息;判断模块12用于解析请 求接收模块ll接收到的请求消息,判断该请求消息中的操作指令是否为数据 更改操作指令;事务处理模块13用于在判断模块12判断该请求消息中的操 作指令为数据更改操作指令时,根据得到的所述数据更改操作指令和事务类 型进行操作。其中,服务端1还包括非事务处理模块14,用于在判断模块12判断所述 请求消息中的操作指令为非数据更改操作指令如读操作指令时,对可扩展的 标记语言XML文档进行读操作等对应操作。其中,事务处理模块13包括单事务处理子模块131和多事务处理子才莫块 132,单事务处理子模块131用于在所述事务类型为单事务类型时,在一个数 据库事务中执行数据更改操作指令中的所有数据操作;多事务处理子模块132用于在所述事务类型为多事务类型时,对所述数据更改操作指令中的每次数 据库操作都按照一个数据库事务执行。
其中,服务端1还包括应答消息发送模块15,用于在事务处理模块13操 作完成后向终端2返回应答消息,该应答消息中携带有请求消息的操作结果。其中,终端2包括请求发送模块21和响应消息接收模块22,请求发送模 块21用于向服务端1发送请求消息,请求消息携带有的终端2请求的事务类 型;响应消息接收模块22用于接收服务端l返回的应答消息,该应答消息中 携带有所述请求消息的操作结果。本发明实施例通过在终端发送的请求消息中添加相应的事务类型,使得 服务端能够识别终端所请求的事务类型并做相应的处理。这样就使得终端能 够根据终端具体的应用要求对XCAP批量处理做事务控制,对于批量数据添 加操作,则可以选择多事务类型,过滤掉非法的数据;对于一些需要保持事 务一致性的批处理操作,可以选择单事务类型,从而增强了 XCAP信令的实 用性和灵活性,增强了终端用户的体验。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本 发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬 件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技 术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使 得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行 本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进 和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种事务控制方法,其特征在于,包括以下步骤服务端接收终端的请求消息;所述服务端解析所述请求消息,在所述请求消息中的操作指令为数据更改操作指令时,获取所述请求消息中携带的所述终端请求的事务类型;所述服务端根据得到的所述数据更改操作指令和事务类型进行操作。
2、 如权利要求l所述事务控制方法,其特征在于,所述数据更改操作指 令包括添加操作指令、删除操作指令或修改操作指令。
3、 如权利要求1所述事务控制方法,其特征在于,所述获取所述请求消 息中携带的所述终端请求的事务类型具体为获取所述请求消息的消息体外层标签携带的事务类型属性,通过所述事 务类型属性的取值获取所述终端请求的事务类型。
4、 如权利要求1或3所述事务控制方法,其特征在于,所述事务类型包 括单事务类型和多事务类型,所述单事务类型为所述服务端在一个数据库事务中执行所述请求消息中 的所有操作指令;所述多事务类型为所述服务端对所述请求消息中的每个操作指令都按照 一个数据库事务执行。
5、 如权利要求1所述事务控制方法,其特征在于,所述方法还包括以下 步骤所述服务端向所述终端返回应答消息,所述应答消息中携带有所述根据 得到的所述数据更改操作指令和事务类型进行操作后的结果。
6、 一种事务控制方法,其特征在于,包括以下步骤 服务端接收终端的请求消息;所述服务端解析所述请求消息,得到相应的数据更改操作指令,并根据 所述数据更改操作指令查询对应的事务类型;服务端根据得到的所述数据更改操作指令和事务类型进行操作。
7、 如权利要求6所述事务控制方法,其特征在于,所述方法还包括以下步骤所述服务端向所述终端返回应答消息,所述应答消息中携带有所述根据 得到的所述数据更改操作指令和事务类型进行操作的结果。
8、 一种事务控制系统,其特征在于,包括服务端和至少一个终端, 所述终端,用于向所述服务端发送请求消息;所述服务端,用于接收并解析所述终端发送的请求消息,在所述请求消 息中的操作指令为数据更改操作指令时,获取所述请求消息中携带的所述终 端请求的事务类型;并根据得到的所述数据更改操作指令和事务类型进行操 作。
9、 一种服务端,其特征在于,包括请求接收模块、判断模块和事务处理 模块,所述请求接收模块,用于接收终端发送的请求消息;所述判断模块,用于解析所述请求接收模块接收到的请求消息,在所述 请求消息中的操作指令为数据更改操作指令时,通知所述事务处理模块;所述事务处理模块,用于在所述判断模块判断所述请求消息中的操作指 令为数据更改操作指令时,获取所述请求消息中携带的所述终端请求的事务 类型;并根据得到的所述数据更改操作指令和事务类型进行操作。
10、 如权利要求9所述服务端,其特征在于,还包括非事务处理模块, 用于在所述判断模块判断所述请求消息中的搮:作指令为非数据更改操作指令 时,对可扩展的标记语言XML文档进行读操作。
11、 如权利要求9所述服务端,其特征在于,所述事务处理模块包括单 事务处理子才莫块和多事务处理子模块,所述单事务处理子模块,用于在获取的事务类型为单事务类型时,在一 个数据库事务中执行数据更改操作指令中的所有数据库操作;所述多事务处理子模块,用于在获取的事务类型为多事务类型时,对所 述数据更改操作指令中的每次数据库操作都按照 一个数据库事务执行。
12、 如权利要求9所述服务端,其特征在于,还包括应答消息发送模块, 用于在所述事务处理模块操作完成后向所述终端返回应答消息,所述应答消息中携带有所述事务处理模块的操作结果。
13、 一种终端,其特征在于,包括请求发送模块,用于向服务端发送请 求消息,所述请求消息携带有所述终端请求的事务类型。
全文摘要
本发明公开了一种事务控制方法,包括以下步骤服务端接收终端的请求消息;所述服务端解析所述请求消息,在所述请求消息中的操作指令为数据更改操作指令时,获取所述请求消息中携带的所述终端请求的事务类型;所述服务端根据得到的所述数据更改操作指令和事务类型进行操作。本发明实施例通过在终端发送的请求消息中添加相应的事务类型,使得服务端能够识别终端所请求的事务类型并做相应的处理。这样就使得终端能够根据终端具体的应用要求对XCAP批量处理做事务控制,从而增强了XCAP信令的实用性和灵活性,增强了终端用户的体验。
文档编号H04L29/06GK101212481SQ20071030195
公开日2008年7月2日 申请日期2007年12月21日 优先权日2007年12月21日
发明者宁 丁, 卢剑锋, 海 向, 尹志权 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1