首页> 中国专利> 一种分布式事务上下文在路由层传递的实现方法与装置

一种分布式事务上下文在路由层传递的实现方法与装置

摘要

本发明提供了分布式事务上下文在路由层传递的实现方法与装置,方法包括:在事务管理器中登记主事务下的子事务的ID;对子事务进行try阶段的方法的调用,以使子事务根据自身的类型执行调用,子事务的类型包括:普通TCC服务和路由服务;调用执行成功后通过事务管理器发起二阶段确认。本申请通过兼容适配的方式将事务上下文透传到路由服务的下层子事务,从而保证多个服务节点之间的数据一致性。

著录项

  • 公开/公告号CN112395104A

    专利类型发明专利

  • 公开/公告日2021-02-23

    原文格式PDF

  • 申请/专利权人 中国工商银行股份有限公司;

    申请/专利号CN202011276567.3

  • 发明设计人 唐冬雪;滕达;程冲;张丹枫;

    申请日2020-11-16

  • 分类号G06F9/54(20060101);G06F9/46(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人任默闻;孙乳笋

  • 地址 100140 北京市西城区复兴门内大街55号

  • 入库时间 2023-06-19 09:58:59

说明书

技术领域

本申请属于分布式系统处理技术领域,具体地讲,涉及一种分布式事务上下文在路由层传递的实现方法与装置。

背景技术

在分布式事务中,事务的参与者、支持事务的服务器、资源服务器以及事务管理器位于分布式系统的不同节点上,部分应用的事务交易链路中存在路由服务,即该服务不是事务调用但是作为一个中间层调用其他的事务服务的情况。TCC(Try-Confirm-Cancel)是业界使用一种分布式事务模型,能够解决架构转型后的分布式事务问题,在保证隔离性的同时提供高性能。通过对业务逻辑的分解,TCC模式将业务逻辑分解为两个阶段,一阶段是try阶段,二阶段是confirm或cancel阶段:

·Try:完成所有的业务检查,预留必须的业务资源,需要保证Try完成后,Confirm一定能成功。

·Confirm:真正执行的业务逻辑,不做任何业务检查,只使用try阶段预留的业务资源。

·Cancel:释放try阶段预留的业务资源。

但是在应用调用的事务链路中除了普通的事务,可能会调用到路由服务,由路由服务再发起下层事务的调用,因此事务框架需要提供兼容能力,通过兼容适配的方式将事务上下文透传到路由服务的下层子事务,从而保证多个服务节点之间的数据一致性。

发明内容

本申请提供了一种分布式事务上下文在路由层传递的实现方法与装置,以至少解决二阶段分布式事务框架下事务交易链路中存在路由层服务情况下框架的兼容适配问题。

根据本申请的一个方面,提供了一种分布式事务外行下文在路由层传递的实现方法包括:

在事务管理器中登记主事务下的子事务的ID;

对子事务进行try阶段的方法的调用,以使子事务根据自身的类型执行调用,子事务的类型包括:普通TCC服务和路由服务;

调用执行成功后通过事务管理器发起二阶段确认。

在一实施例中,对子事务进行try阶段的方法的调用包括:

对于单层的子事务,直接对方法进行调用;

对于多层的子事务,通过localTxId确定当前层的子事务,并在调用下一层子事务时将事务上下文中的localTxId设置为下一层子事务的ID。

在一实施例中,对子事务进行try阶段的方法的调用还包括:

当所有子事务调用完成时,恢复事务上下文中的localTxId为当前层的子事务的ID。

在一实施例中,调用执行成功后通过事务管理器发起二阶段确认,包括:

将被调用的子事务的ID放入事务上下文中的localTxId并重设事务上下文的方法字段;

针对路由服务类型的子事务,获取try方法字段信息中的方法名,并根据方法名找到二阶段调用方法;

通过反射调用路由将事务信息传递至子事务,以使子事务根据二阶段调用方法执行二阶段确认。

在一实施例中,调用执行成功后通过事务管理器发起二阶段确认,还包括:

针对普通TCC服务类型的子事务,获取二阶段方法为该子事务的确认方法;

通过反射调用路由将失物信息传递至子事务,以使子事务根据确认方法执行二阶段确认。

根据本申请的另一个方面,还提供了一种分布式事务上下文在路由层传递的实现方法,包括:

根据主事务发起的调用进行前置处理;

判断自身的类型,并采用对应的方法执行主事务发起的调用;

在调用执行完成后,将事务上下文中的localTxId进行恢复并发送调用完成信息至主事务,以使主事务发起二阶段确认;

根据主事务发起的二阶段确认判断子事务的类型,并根据判断结果采用对应的确认执行方法执行二阶段确认。

在一实施例中,判断自身子事务的类型,并采用对应的方法执行主事务发起的调用,包括:

如果自身的类型为路由服务,执行transmit方法完成调用;

如果自身的类型为普通TCC服务,执行try方法完成调用。

在一实施例中,根据主事务发起的二阶段确认判断子事务的类型,并根据判断结果采用对应的确认执行方法执行二阶段确认,包括:

查询当前事务层下直接调用的子事务;

如果子事务的类型为路由服务,执行子事务的确认方法并核实自身是否为路由方法;

如果子事务的类型为普通TCC服务,执行下一层子事务的确认方法后再执行当前层子事务的确认方法。

根据本申请的另一个方面,还提供了一种分布式事务上下文在路由层传递的实现装置,包括:

子事务ID登记单元,用于在事务管理器中登记主事务下的子事务的ID;

Try阶段的方法调用单元,用于对子事务进行try阶段的方法的调用,以使子事务根据自身的类型执行调用,子事务的类型包括:普通TCC服务和路由服务;

二阶段确认单元,用于调用执行成功后通过事务管理器发起二阶段确认。

在一实施例中,Try阶段的方法调用单元包括:

单层子事务处理模块,用于对于单层的子事务,直接对方法进行调用;

多层子事务处理模块,用于对于多层的子事务,通过localTxId确定当前层的子事务,并在调用下一层子事务时将事务上下文中的localTxId设置为下一层子事务的ID。

在一实施例中,Try阶段的方法调用单元还包括:

恢复模块,用于当所有子事务调用完成时,恢复事务上下文中的localTxId为当前层的子事务的ID。

在一实施例中,二阶段确认单元包括:

重设模块,用于将被调用的子事务的ID放入事务上下文中的localTxId并重设事务上下文的方法字段;

二阶段调用发查找模块,用于针对路由服务类型的子事务,获取try方法字段信息中的方法名,并根据方法名找到二阶段调用方法;

确认模块,用于通过反射调用路由将事务信息传递至子事务,以使子事务根据二阶段调用方法执行二阶段确认。

在一实施例中,二阶段确认单元还包括:

确认方法获取模块,用于针对普通TCC服务类型的子事务,获取二阶段方法为该子事务的确认方法;

二阶段确认执行模块,用于通过反射调用路由将失物信息传递至子事务,以使子事务根据确认方法执行二阶段确认。

根据本申请的另一方面,还提供了一种分布式事务上下文在路由层传递的实现装置,包括:

前置处理单元,用于根据主事务发起的调用进行前置处理;

调用发起单元,用于判断自身的类型,并采用对应的方法执行主事务发起的调用;

恢复确认单元,用于在调用执行完成后,将事务上下文中的localTxId进行恢复并发送调用完成信息至主事务,以使主事务发起二阶段确认;

判断确认单元,用于根据主事务发起的二阶段确认判断子事务的类型,并根据判断结果采用对应的确认执行方法执行二阶段确认。

在一实施例中,调用发起单元包括:

路由调用模块,用于如果自身的类型为路由服务,执行transmit方法完成调用;

普通调用模块,用于如果自身的类型为普通TCC服务,执行try方法完成调用。

在一实施例中,判断确认单元包括:

查询模块,用于查询当前事务层下直接调用的子事务;

路由确认模块,用于如果子事务的类型为路由服务,执行子事务的确认方法并核实自身是否为路由方法;

普通确认模块,用于如果子事务的类型为普通TCC服务,执行下一层子事务的确认方法后再执行当前层子事务的确认方法。

本申请通过服务启动注解阶段生成自动代理时解析注解上的事务类型,将传递类型事务的信息作为一个特殊的二阶段TCC子事务的信息存入内存,在try方法执行一阶段执行transmit方法,二阶段执行confirm方法或cancel方法时当成特殊TCC子事务调用存在内存中的二阶段户型方法中的transmit方法将TCC事务上下文传送到路由服务的下层子事务,本申请实现了兼容适配原有的TCC框架,能够将上下文传送到下一层子事务的功能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请中TCC分布式事务系统结构图。

图2为本申请提供的一种分布式事务上下文在路由层传递的实现方法流程图。

图3为本申请实施例中对子事务进行try阶段的方法的调用流程图。

图4为本申请实施例中调用执行成功后通过事务管理器发起二阶段确认流程图。

图5为本申请另一实施例中调用执行成功后通过事务管理器发起二阶段确认流程图。

图6为本申请提供的另一分布式事务上下文在路由层传递的实现方法流程图。

图7为本申请实施例中采用对应的方法执行主事务发起的调用流程图。

图8为本申请实施例中根据判断结果采用对应的确认执行方法执行二阶段确认流程图。

图9为本申请提供的一种分布式事务上下文在路由层传递的实现装置的结构框图。

图10为本申请实施例中Try阶段的方法调用单元的结构框图。

图11为本申请实施例中二阶段确认单元的结构框图。

图12为本申请另一实施例中二阶段确认单元的结构框图。

图13为本申请实施例中一种电子设备的具体实施方式。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

基于背景技术中的描述,为了解决在TCC模式下事务链路中存在路由服务时事务上下文的透传问题,令提供路由服务的中间节点避免冗余的业务拆分就可以将事务上下文传递到下层,本申请提供了一种分布式事务上下文在路由层传递的实现方法。

在介绍本申请提供的方法之前,首先介绍服务调用系统,如图1所示,每个服务节点都包含如下模块:事务管理器,资源管理器,前置处理器。

事务管理器(TransactionManager,TM):创建和更新主事务、子事务状态,控制发起二阶段的confirm/cancel。

资源管理器(ResourceManager,RM):启动阶段在resoureHolder存储一阶段try方法和二阶段调用confirm、cancel方法及参数相关信息。在服务调用阶段数据库的持久化写入。

服务前置处理器(PreProcessor):事务调用上下文信息处理,包括接收、清理上下文。

每个服务节点服务记录其直接调用的子事务,每个服务节点的TM都只能协调其直接子事务,例如图1中,服务节点A只知道B和C的子事务也只需要记录B、C两个子事务。但B知道子事务D,C知道子事务E、F,因此可以递归协调。事务发起方的服务节点需要同时记录主事务以及它直接调用的子事务,例如发起方A需要记录主事务A和其包含的子事务B、C。事务发起方的方法需要加主事务切面注解@DTX,事务参与者需要加子事务切面注解@Action。

每个服务节点都包含如下模块:事务管理器,资源管理器。其中A为事务发起者,A具有B、C两个子事务,其中事务B为一个路由服务,其方法内没有事务调用,但会调其下面的事务服务D。服务C、D、E、F均为普通的TCC子事务,C嵌套了D和E两个子事务。

如图2所示,为本申请提供的以事务发起者(主事务)为执行主体的一种分布式事务上下文在路由层传递的实现方法,包括:

S201:在事务管理器中登记主事务下的子事务的ID。

在服务启动阶段,为服务bean生成自动代理对象,具体包括:根据服务bean实现接口上加的注解@Action来判断子事务的类型。如果@Action注解的type字段没有设置类型则默认是普通TCC子事务服务,如果是路由服务则为则注解为@TccAction(type=SubTxType.TCC_TRANSMIT)。如果是普通子事务服务,则资源管理器在内存对象resourceHolder中记录该服务目标对象(被代理对象),try方法,confirm方法名和cancel方法名。如果是路由服务,同样在resourceHolder中记录服务目标对象,在resourceHolders记录下transmit方法,try方法名和confirm方法名部分均记录为transmit方法名。

服务启动阶段之后是事务开始的一阶段,事务发起方进入主事务切面,从事务管理器获取主事务ID即globalTxId。globalTxId将会在事务链路中传播用以区分属于同一个主事务的子事务。例如在系统图1中A记录下主事务信息,记录完毕后进入主事务方法,执行业务交易。

S202:对子事务进行try阶段的方法的调用,以使子事务根据自身的类型执行调用,子事务的类型包括:普通TCC服务和路由服务。

在一实施例中,如图3所示,对子事务进行try阶段的方法的调用包括:

S301:对于单层的子事务,直接对方法进行调用。

S302:对于多层的子事务,通过localTxId确定当前层的子事务,并在调用下一层子事务时将事务上下文中的localTxId设置为下一层子事务的ID。

在一具体实施例中,发起方子事务切面,通过事务管理器登记下一层的子事务,记录完毕发起子事务try阶段的方法的调用,上下文通过RPC接口传往子事务调用方。对于嵌套多层的子事务,每一层通过localTxId确定当前层的事务,在调用下一层子事务时将上下文中的localTxId设置为子事务的事务ID即subTxId。

在一实施例中,对子事务进行try阶段的方法的调用还包括:

当所有子事务调用完成时,恢复事务上下文中的localTxId为当前层的子事务的ID。

在一实施例中,所有的子事务调用完成后再恢复上下文中的localTxId为当前事务层的事务ID。调用子事务try方法,事务调用链达到子事务侧即提供方侧。例如,在系统图1中,服务调用方A先进入事务B,在调用方的切面侧记录下主事务B,记录成功就发起对B的try阶段的方法的调用,发起远端服务调用时将上下文的localTxId更新为子事务B对应的subTxId。B事务往下的链路try阶段执行完再进入子事务C的切面进行类似操作。

S203:调用执行成功后通过事务管理器发起二阶段确认。

在一实施例中,调用执行成功后通过事务管理器发起二阶段确认,如图4所示,包括:

S401:将被调用的子事务的ID放入事务上下文中的localTxId并重设事务上下文的方法字段。

S402:针对路由服务类型的子事务,获取try方法字段信息中的方法名,并根据方法名找到二阶段调用方法。

S403:通过反射调用路由将事务信息传递至子事务,以使子事务根据二阶段调用方法执行二阶段确认。

在一具体实施例中,发起方的事务管理器循环处理每一笔子事务的二阶段confirm调用:将表中每一笔子事务ID放入到上下文中的LocalTxId,并设置上下文的的方法字段设为Method.CONFIRM。例如A的事务管理器发起二阶段confirm调用,首先在本地数据库查询到子事务B和子事务C,依次发起子事务的confirm调用。对于路由子事务B,获取try方法字段信息中存方法名以及参数字段存入的参数信息,根据try方法名找到resourceHolder中二阶段调用方法名也就是transmit方法,通过反射调用路由方法,将事务信息往事务链路中下传,也就是传往子事务B。

在一实施例中,调用执行成功后通过事务管理器发起二阶段确认,如图5所示,还包括:

S501:针对普通TCC服务类型的子事务,获取二阶段方法为该子事务的确认方法。

S502:通过反射调用路由将失物信息传递至子事务,以使子事务根据确认方法执行二阶段确认。

在一具体实施例中,如果是普通子事务C则从resourceHolder获取到的二阶段方法为C事务的confirm方法,同样通过反射调用,事务链路传往子事务C,事务执行到调用链中的服务提供方侧。

从服务提供方的角度出发,以服务提供方为执行主体,本申请提供的分布式事务上下文在路由层传递的实现方法,如图6所示,包括:

S601:根据主事务发起的调用进行前置处理。

S602:判断自身的类型,并采用对应的方法执行主事务发起的调用。

S603:在调用执行完成后,将事务上下文中的localTxId进行恢复并发送调用完成信息至主事务,以使主事务发起二阶段确认。

S604:根据主事务发起的二阶段确认判断子事务的类型,并根据判断结果采用对应的确认执行方法执行二阶段确认。

在一实施例中,判断自身子事务的类型,并采用对应的方法执行主事务发起的调用,如图7所示,包括:

S701:如果自身的类型为路由服务,执行transmit方法完成调用。

S702:如果自身的类型为普通TCC服务,执行try方法完成调用。

在一实施例中,根据主事务发起的二阶段确认判断子事务的类型,并根据判断结果采用对应的确认执行方法执行二阶段确认,如图8所示,包括:

S801:查询当前事务层下直接调用的子事务。

S802:如果子事务的类型为路由服务,执行子事务的确认方法并核实自身是否为路由方法。

S803:如果子事务的类型为普通TCC服务,执行下一层子事务的确认方法后再执行当前层子事务的确认方法。

在一具体实施例中,服务提供方的前置处理器接收到服务提供方调用到的上下文,判断globalTxId是否丢失,如果丢失则抛出执行异常,将方法调用参数和上下文等清空,终止事务链路向下传递。同时,前置处理器通过设置事务上下文标志位aopFlag=false,在进入提供方的切面时通过判断标志位aopFlag如果为false则直接执行目标方法不会重复持久化记录当前事务层的事务信息,同时将aopFlag置回为true使其下调用的子事务切面生效。完成上述前置处理后执行子事务的try方法,路由服务作为一个特殊的子事务,try阶段执行的就是路由服务的transmit方法。例如A调用了B或C的try阶段的方法,发起远程调用,在提供方侧的B、C的前置处理器先根据调用参数解析出上下文信息,如果globalTxId丢失则抛出异常。如果是路由服务B,则执行的方法即transmit方法,如果是普通TCC服务C,则执行C的try方法,该阶段路由服务和普通TCC子事务服务的处理是相同的。对于下层嵌套的情况,也类似于A调用B、C。返回服务消费方的切面,恢复该层的上下文,将上下文的localTxId恢复为当前事务调用层的事务ID,如果是事务A调用B、C结束,则恢复上下文中的localTxId为事务A的事务ID。try阶段从事务发起方自顶向下到达叶子节点,如果过程有异常则自底向上层层抛出,没有异常抛出则为成功。如果服务调用出现异常,则向上层抛出到主事务,由主事务的事务管理器发起cancel调用。当下层的子事务成功(无异常抛出)以及本层事务方法执行成功,该层事务才算成功。

基于同一发明构思,本申请实施例还提供了一种分布式事务上下文在路由层传递的实现装置,可以用于实现上述实施例中所描述的方法,如下面实施例所述。由于该分布式事务上下文在路由层传递的实现装置解决问题的原理与分布式事务上下文在路由层传递的实现方法相似,因此分布式事务上下文在路由层传递的实现装置的实施可以参见分布式事务上下文在路由层传递的实现方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

以事务发起方为执行主体,本申请提供了一种分布式事务上下文在路由层传递的实现装置,如图9所示,包括:

子事务ID登记单元901,用于在事务管理器中登记主事务下的子事务的ID;

Try阶段的方法调用单元902,用于对子事务进行try阶段的方法的调用,以使子事务根据自身的类型执行调用,子事务的类型包括:普通TCC服务和路由服务;

二阶段确认单元903,用于调用执行成功后通过事务管理器发起二阶段确认。

在一实施例中,如图10所示,Try阶段的方法调用单元902包括:

单层子事务处理模块1001,用于对于单层的子事务,直接对方法进行调用;

多层子事务处理模块1002,用于对于多层的子事务,通过localTxId确定当前层的子事务,并在调用下一层子事务时将事务上下文中的localTxId设置为下一层子事务的ID。

在一实施例中,Try阶段的方法调用单元还包括:

恢复模块,用于当所有子事务调用完成时,恢复事务上下文中的localTxId为当前层的子事务的ID。

在一实施例中,如图11所示,二阶段确认单元903包括:

重设模块1101,用于将被调用的子事务的ID放入事务上下文中的localTxId并重设事务上下文的方法字段;

二阶段调用发查找模块1102,用于针对路由服务类型的子事务,获取try方法字段信息中的方法名,并根据方法名找到二阶段调用方法;

确认模块1103,用于通过反射调用路由将事务信息传递至子事务,以使子事务根据二阶段调用方法执行二阶段确认。

在一实施例中,如图12所示,二阶段确认单元903还包括:

确认方法获取模块1201,用于针对普通TCC服务类型的子事务,获取二阶段方法为该子事务的确认方法;

二阶段确认执行模块1202,用于通过反射调用路由将失物信息传递至子事务,以使子事务根据确认方法执行二阶段确认。

为了解决二阶段分布式事务框架下事务交易链路中存在路由层服务情况下框架的兼容适配问题,将事务上下文透传到路由服务的下层子事务,本发明提供了一种事务跨服务传递兼容适配的系统和方法。通过服务启动注解阶段生成自动代理时解析注解上的事务类型,将传递类型事务的信息作为一个特殊的二阶段TCC子事务的信息存入内存,在try方法执行一阶段执行transmit方法,二阶段执行confirm方法或cancel方法时当成特殊tcc子事务调用存在内存中的二阶段属性方法中transmit方法,将TCC事务上下文透传到路由服务的下层子事务。本方法不需要路由服务提供方写空的confirm方法和cancel方法,对路由服务的业务侵入小,不需要做无谓的逻辑拆分。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设备的具体实施方式,参见图13,所述电子设备具体包括如下内容:

处理器(processor)1301、内存1302、通信接口(Communications Interface)1303、总线1304和非易失性存储器1305;

其中,所述处理器1301、内存1302、通信接口1303通过所述总线1304完成相互间的通信;

所述处理器1301用于调用所述内存1302和非易失性存储器1305中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现本方法的所有步骤。

本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现本方法的所有步骤。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。

在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号