一种本地数据库状态同步方法、电子设备及存储介质转让专利

申请号 : CN202211239263.9

文献号 : CN115309831B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 封飞宋凡

申请人 : 苏州青颖飞帆软件科技有限公司

摘要 :

本申请涉及数据库技术领域,特别是涉及一种本地数据库状态同步方法、电子设备及存储介质,所述方法包括:上传源自不同开发环境下的脚本至公共存储空间,脚本进入公共存储空间前对脚本进行性能检查;从公共存储空间中获取本地数据库迭代至最新状态所需的所有脚本;遍历本地数据库中已执行的脚本和迭代至最新状态所需的所有脚本分别生成第一脚本数据体和第二脚本数据体;对比所述第一脚本数据体和所述第二脚本数据体确定本地数据库需执行的脚本;基于本地数据库环境需求,判断各本地数据库需执行的脚本的附属信息的优先级,进而确定脚本执行顺序按照执行顺序执行本地数据库需执行的脚本;本申请的方法,方便各研发人员的本地数据库状态同步。

权利要求 :

1.一种本地数据库状态同步方法,包括:

上传源自不同开发环境下的脚本至公共存储空间,脚本进入公共存储空间前对脚本进行性能检查,所述性能检查包括:基于匹配规则的SQL语句判断的第一级检查和基于数据库explain结果判断的第二级检查;所述第一级检查的步骤包括:预先设置好匹配规则,检测脚本中拥有共同特征的慢查询,当有新的特征的慢查询出现后,在配置文件中新增或修改匹配规则;

从公共存储空间中获取本地数据库迭代至最新状态所需的所有脚本;

遍历本地数据库中已执行的脚本和迭代至最新状态所需的所有脚本分别生成第一脚本数据体和第二脚本数据体;

对比所述第一脚本数据体和所述第二脚本数据体确定本地数据库需执行的脚本;

基于本地数据库环境需求,判断各本地数据库需执行的脚本的附属信息的优先级,进而确定脚本执行顺序按照执行顺序执行本地数据库需执行的脚本;

所述附属信息包括:脚本所属的数据库对象集合标识、脚本迭代版本标识、脚本组标识、脚本项目标识和脚本名称标识;所述脚本组标识包括数据库操作标识,附属信息包括据库操作标识的脚本的附属信息还包括环境标识,所述环境标识包括通用环境标识和特定环境标识;

所述判断各本地数据库需执行的脚本的附属信息的优先级具体依次包括:判断脚本迭代版本标识优先级以优先执行迭代版本低的脚本;判断脚本项目标识优先级以优先执行项目标识优先级高的脚本;判断脚本数据库对象集合标识优先级以优先执行脚本数据库对象集合标识优先级高的脚本;判断脚本组标识优先级以优先执行脚本组标识优先级高的脚本;判断脚本名称标识以优先执行脚本名称标识优先级高的脚本。

2.根据权利要求1所述的本地数据库状态同步方法,其特征在于,所述脚本按照特定的目录结构存放,所述特定的目录结构的节点和所述脚本的附属信息相对应。

3.根据权利要求1所述的本地数据库状态同步方法,其特征在于,所述脚本包括脚本内容为JS语法编写的mongo脚本和标准SQL语法编写的MySQL脚本。

4.根据权利要求1所述的本地数据库状态同步方法,其特征在于,所述附属信息还包括:脚本执行标识;所述脚本执行标识,为脚本内容通过MD5信息摘要算法所得的值,用于判断该脚本是否被执行。

5.根据权利要求1所述的本地数据库状态同步方法,其特征在于,脚本名称标识优先级由脚本名称标识的ASCII码的码值顺序决定。

6.根据权利要求1所述的本地数据库状态同步方法,其特征在于,所述判断各本地数据库需执行的脚本的附属信息的优先级,进而确定脚本执行顺序的步骤以脚本的方式存储。

7.根据权利要求1所述的本地数据库状态同步方法,其特征在于,所述组标识还包括视图标识、存储过程标识和表标识。

8.一种电子设备,其特征在于,包括:

处理器;

存储器,包括一个或多个计算机程序模块;

其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于实现权利要求1‑7任一项所述的本地数据库状态同步方法。

9.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求1‑7任一项所述的本地数据库状态同步方法的步骤。

说明书 :

一种本地数据库状态同步方法、电子设备及存储介质

技术领域

[0001] 本申请涉及数据库技术领域,特别是涉及一种本地数据库状态同步方法、电子设备及存储介质。

背景技术

[0002] 在业务系统开发过程中,需要多个研发人员协同开发,由于不同研发人员的研发方向不同,导致不同方向的研发人员使用不同开发环境,而每个研发人员在研发是又都是使用自己的本地数据库进行业务系统研发,而整个业务系统的研发需要各研发人员的数据库状态一致以保证开发过程不会出错。目前,现有技术使用脚本记录研发人员对本地数据库的变更信息,再通过各研发人员之间的沟通协商和交换脚本执行来让本地数据库的状态一致,这种方式不仅效率低,出错率较高,而且在面对有依赖关系的数据库和开发环境特有特性时,容易同步紊乱和同步失败。

发明内容

[0003] 为了解决现有技术存在的不足,本申请的目的在于提供一种本地数据库状态同步方法、电子设备及存储介质,方便各研发人员高效准确地同步自己的本地数据库。
[0004] 为实现上述目的,本申请提供一种本地数据库状态同步方法,包括:
[0005] 上传源自不同开发环境下的脚本至公共存储空间,脚本进入公共存储空间前对脚本进行性能检查,所述性能检查包括基于匹配规则的SQL语句判断的第一级检查和基于数据库explain结果判断的第二级检查;所述第一级检查的步骤包括:预先设置好匹配规则,检测脚本中拥有共同特征的慢查询,当有新的特征的慢查询出现后,在配置文件中新增或修改匹配规则;
[0006] 从公共存储空间中获取本地数据库迭代至最新状态所需的所有脚本;
[0007] 遍历本地数据库中已执行的脚本和迭代至最新状态所需的所有脚本分别生成第一脚本数据体和第二脚本数据体;对比所述第一脚本数据体和所述第二脚本数据体确定本地数据库需执行的脚本;
[0008] 基于本地数据库环境需求,判断各本地数据库需执行的脚本的附属信息的优先级,进而确定脚本执行顺序按照执行顺序执行本地数据库需执行的脚本;
[0009] 所述附属信息包括:脚本所属的数据库对象集合标识、脚本迭代版本标识、脚本组标识、脚本项目标识和脚本的名称标识;所述组标识包括数据库操作标识,附属信息包括据库操作标识的脚本的附属信息还包括环境标识,所述环境标识包括通用环境标识和特定环境标识。
[0010] 所述判断各本地数据库需执行的脚本的附属信息的优先级具体依次包括:判断脚本迭代版本标识优先级以优先执行迭代版本低的脚本;判断脚本项目标识优先级以优先执行项目标识优先级高的脚本;判断脚本数据库对象集合标识优先级以优先执行脚本数据库对象集合标识优先级高的脚本;判断脚本组标识优先级以优先执行脚本组标识优先级高的脚本;判断脚本名称标识以优先执行脚本名称标识优先级高的脚本。
[0011] 进一步地,所述脚本按照特定的目录结构存放,所述特定的目录结构的节点和所述脚本的附属信息相对应。
[0012] 进一步地,所述脚本包括脚本内容为JS语法编写的mongo脚本和标准SQL语法编写的MySQL脚本。
[0013] 进一步地,所述脚本标识还包括:脚本执行标识;所述脚本执行标识,为脚本内容通过MD5信息摘要算法所得的值,用于判断该脚本是否被执行。
[0014] 进一步的,脚本名称标识优先级由脚本名称标识的ASCII码的码值顺序决定。
[0015] 进一步地,所述判断各本地数据库需执行的脚本的附属信息的优先级,进而确定脚本执行顺序的步骤以脚本的方式存储。
[0016] 进一步地,所述组标识包括视图标识、存储过程标识和表标识。
[0017] 为实现上述目的,本申请提供的电子设备,包括:
[0018] 处理器;
[0019] 存储器,包括一个或多个计算机程序模块;
[0020] 其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于实现如上所述的本地数据库状态同步方法。
[0021] 为实现上述目的,本申请提供的计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行如上所述的本地数据库状态同步方法的步骤。
[0022] 本申请的一种本地数据库状态同步方法,能够方便、高效、准确地使业务系统开发过程中各研发人员的本地数据库状态同步,避免了因数据库状态不同步而造成的错误,提高了各研发人员的本地数据库状态同步的效率和整个业务系统的开发效率。
[0023] 本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。

附图说明

[0024] 附图用来提供对本申请的进一步理解,并且构成说明书的一部分,并与本申请的实施例一起,用于解释本申请,并不构成对本申请的限制。在附图中:
[0025] 图1为本申请的本地数据库状态同步方法的流程示意图;
[0026] 图2为本申请配置文件的内容示意图;
[0027] 图3为本地数据库脚本及附属信息表的示意图;
[0028] 图4为本申请的某一项目脚本存放的目录结构的示意图;
[0029] 图5为本申请的一种电子设备的示意框图;
[0030] 图6为本申请的一种存储介质的示意图。

具体实施方式

[0031] 下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
[0032] 应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
[0033] 本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0034] 需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
[0035] 下面,将参考附图详细地说明本申请的实施例。
[0036] 实施例1
[0037] 本申请的一个实施例,提供了一种本地数据库状态同步方法,用于实现各研发人员的本地数据库的状态同步。
[0038] 图1为本申请的本地数据库状态同步方法的流程示意图,下面将参考图1对本申请的本地数据库状态同步方法进行详细描述:
[0039] 步骤S101:上传源自不同开发环境下的脚本至公共存储空间,脚本进入公共存储空间前对脚本进行性能检查,所述性能检查包括基于匹配规则的SQL语句判断的第一级检查和基于数据库explain结果判断的第二级检查;
[0040] 在本实施方式中,脚本上传到公共存储空间后,会检查脚本的存放路径和名称是否符合规范以具备所有附属信息,示例性的,规范为:/{database}/{sprint}/{table|data|sproc|view}/[env:local|dev|ppe|test|prod]/file.{sql|java|js}。
[0041] 需要说明的是,在高并发应用系统中,存储系统负责持久化业务数据,为了保证数据的正确性,需要在数据并发读写时加一些控制;其次io操作本身是计算机里最慢的操作;并且存储服务器不能像应用服务器一样简单的扩容,因为它是有状态的,导致了存储系统是整个应用系统中的性能瓶颈。
[0042] 因此,在本实施方式中,采用性能检查检查上传至公共存储空间的脚本中的SQL的性能。
[0043] 具体的,进行两级检测,第一级检测为基于匹配规则的SQL语句判断的性能检测,匹配规则预先写在配置文件,如图2所示,图2为本申请配置文件的内容示意图,其预先在配置文件中设置好匹配规则,来检测拥有共同特征的慢查询,当有新的特征的慢查询的出现后,随时在配置文件中新增或修改匹配规则,形成正反馈,使检查效果越来越好。第二级检测为基于数据库explain结果判断的性能检测,第一级加检测的方式的优点是检测速度快,但精准度上存在欠缺,且可能存在遗漏,因此使用第二级检测与第一级检测互补。
[0044] 需要说明的是,explain,是mysql数据库提供的一个用于解释指定sql执行计划的命令,通过该命令,可以在不执行sql的情况下得到sql的执行步骤,比如是否会使用索引、是否会全表扫描、是否会使用临时表、是否会使用外部排序、是否会使用外部join等等。进而分析出sql语句的执行速度。Explain语句的结果可能性非常多,不同的结果代表了不同程度的执行速度,分析程序会对不同记过进行打分,最终算出指定sql的执行速度得分,超过一定阈值即可定义为慢查询语句。
[0045] 需要说明的是,在本实施方式中,公共存储空间包括但不限于移动存储设备,固定存储设备以及云存储空间。
[0046] 步骤S102:从公共存储空间中获取本地数据库迭代至最新状态所需的所有脚本;
[0047] 步骤S103:遍历本地数据库中已执行的脚本和迭代至最新状态所需的所有脚本分别生成第一脚本数据体和第二脚本数据体;对比所述第一脚本数据体和所述第二脚本数据体确定本地数据库需执行的脚本;
[0048] 在本实施方式中,遍历本地数据库中已执行的脚本和迭代至最新状态所需的所有脚本分别生成第一脚本数据体和第二脚本数据体时,会根据脚本所在的目录结构和脚本名称确定该脚本的附属信息。
[0049] 为了直观地看到本地数据库已执行过的脚本,可以以表的形式列出所有已执行过的脚本及脚本的部分附属信息,示例性的,如图3所示,图3为本地数据库脚本及部分附属信息表的示意图,其中,脚本执行标识列为脚本内容通过MD5信息摘要算法所得的值。
[0050] 在本实施方式中,在进行对比所述第一脚本数据体和所述第二脚本数据体确定本地数据库需执行的脚本时,通过对比第二脚本数据体中各脚本的脚本执行标识的值和本地数据库脚本及附属信息表中的脚本执行标识的值,确定第二脚本数据体中的脚本是否存在本地数据库中,若存在且其对应的执行成功的值为1则证明脚本是已执行过的脚本,反之则是需执行的脚本。
[0051] 步骤S104:基于本地数据库环境需求,判断各本地数据库需执行的脚本的附属信息的优先级,进而确定脚本执行顺序按照执行顺序执行本地数据库需执行的脚本;
[0052] 在本实施方式中,附属信息至少包括:脚本所属的数据库对象集合标识、脚本迭代版本标识、脚本组标识、脚本项目标识和脚本的名称标识;所述组标识包括数据库操作标识,附属信息包括据库操作标识的脚本的附属信息还包括环境标识,所述环境标识包括通用环境标识和特定环境标识。
[0053] 在本实施方式中,所述组标识还包括视图标识、存储过程标识和表标识。
[0054] 在本实施方式中,脚本按照特定的目录结构存放,目录结构的节点、脚本名称和所述脚本的附属信息相对应;示例性的,图4为本申请的某一项目脚本存放的目录结构的示意图,如图4所示,database节点为该项目一数据库的根节点,节点payment对应脚本的数据库对象集合标识,节点2020_12_0对应脚本的迭代版本标识,节点table、view、sproc和data对应脚本的组标识,节点local、dev、ppe、test、prod对应脚本的环境标识。Local节点下的脚本为通用环境的脚本,其余节点下的脚本为各自特定开发环境下的脚本,特定开发环境下的脚本根据开发人员需要选择性执行。
[0055] 可以理解的是,脚本标识也不一定通过特定目录存储来体现,只要是能够体现脚本标识的方法都可,如将脚本标识作为脚本名称的一部分等。
[0056] 在本实施方式中,节点table下的脚本为操作表的脚本,节点view下的脚本为mongo数据库用的脚本,节点sproc下的脚本为存储过程中用的脚本,节点data下的脚本为操作数据的SQL脚本,直接在节点data下的脚本为所有研发环境都需要执行的脚本,节点local、dev、ppe、test和prod下的脚本分别是在特定开发环境下执行的脚本。
[0057] 可以理解的是,节点的层次、节点的多少和节点的命名均可根据业务系统的开发做适应性修改。
[0058] 在本实施方式中,mongo数据库用的脚本的内容为JS语法编写的,其余的脚本为标准sql语法编写的MySQL脚本。
[0059] 优选的,所述判断各本地数据库需执行的脚本的附属信息的优先级,进而确定脚本执行顺序以脚本的方式存储。将确定执行顺序的步骤设置为脚本,方便本地数据库自动化的按顺序执行状态同步的所需脚本。
[0060] 需要说明的是,由于实际系统应用中,不同研发使用不同开发环境,而不同开发环境下的数据库的引用数据可能不同。例如数据库中有某配置表,其中有一配置是产品官网url地址,在测试开发环境中其值是http://test.biz.com,而在产品开发环境中其值是https://www.biz.com。所以在进行数据库状态同步时,不需要执行不属于本开发环境下的脚本。
[0061] 需要说明的是,由于现今业务系统多采用微服务架构,每个业务系统往往包含多个子项目组成,每个子项目都有自己的数据库。不同子项目的数据库在执行数据库变更时可能存在依赖关系,而对有依赖关系的数据库进行状态同步时,脚本的执行顺序尤为重要。示例性的,一个业务系统的子项目使用商品服务数据库有商品表,另一子项目使用订单服务数据库有订单表,订单表中有一列为商品id,现需要为订单表再增加一个商品类型列,这时就需要从商品服务数据库的商品表中查询到每个订单的商品ID所对应的商品类型。而整个业务系统更新几个版本迭代后(比如迭代版本到了10),商品表的结构可能发生变化,比如可能修改了商品类型字段的名称。这时如果需要使用各数据库信息变更脚本构造新的数据库环境时,需要保证各数据库的状态保持一致,如在执行迭代版本5的针对订单服务数据库的订单表的变更脚本时,必须保证商品服务数据库的商品表也处于迭代版本5的状态,否则会执行失败。因此,本地数据库在进行数据库状态同步时,需要按照迭代版本,使每个业务系统中的子项目都执行完同一版本的脚本后,再执行迭代版本高的脚本。
[0062] 由此可知,在本地数据库进行状态同步时,需要考虑上述情况,以使不同环境下的本地数据库在进行状态同步时,能够按照一定顺序执行完数据库所在环境所需的脚本。
[0063] 在本实施方式中,判断附属信息的优先级的步骤依次包括:判断脚本迭代版本标识优先级以优先执行迭代版本低的脚本;判断脚本项目标识优先级以优先执行项目标识优先级高的脚本;判断脚本数据库对象集合标识优先级以优先执行脚本数据库对象集合标识优先级高的脚本;判断脚本组标识优先级以优先执行脚本组标识优先级高的脚本;判断脚本名称标识以优先执行脚本名称标识优先级高的脚本。
[0064] 可以理解的是,脚本迭代版本标识是迭代版本越低,执行的优先级越高,如第3迭代版本的执行优先级高于第5迭代版本的执行优先级;项目标识的优先级通常是根据项目重要性、项目数据库之间的依赖关系决定;而数据库对象集合标识、组标识和脚本名称标识的优先级可自定义设定,即其优先级顺序并不是强制的固定顺序,在本实施方式中以其标识的ASCII码的码值顺序决定。
[0065] 可以理解的是,在本实施例中只是为了方便采用ASCII码的码值作为优先级顺序,在其他一些实施例中,也可采用名称标识首字母作为优先级顺序。
[0066] 实施例2
[0067] 本实施例中,还提供一种电子设备,图5为本申请提供的一种电子设备的示意框图。如图5所示,电子设备130包括处理器131和存储器132。存储器132用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器131用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器131运行时可以执行上文所述的本地数据库状态同步方法的一个或多个步骤。
[0068] 例如,处理器131可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。
[0069] 例如,存储器132可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD‑ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器131可以运行一个或多个计算机程序模块,以实现电子设备130的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
[0070] 需要说明的是,本申请的实施例中,电子设备130的具体功能和技术效果可以参考上文中关于本地数据库状态同步方法的描述,此处不再赘述。
[0071] 实施例3
[0072] 本实施例中,还提供一种计算机可读存储介质,图6为本申请的一种存储介质的示意图。如图6所示,存储介质150用于存储非暂时性计算机可读指令151。例如,当非暂时性计算机可读指令151由计算机执行时可以执行根据上文所述的本地数据库状态同步方法中的一个或多个步骤。
[0073] 例如,该存储介质150可以应用于上述电子设备130中。例如,存储介质150可以为图5所示的电子设备130中的存储器132。例如,关于存储介质150的相关说明可以参考图5所示的电子设备130中的存储器132的相应描述,此处不再赘述。
[0074] 需要说明的是,本申请上述的存储介质(计算机可读介质)可以是计算机可读信号介质或者非暂时性计算机可读存储介质或者是上述两者的任意组合。非暂时性计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。非暂时性计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0075] 在本申请中,非暂时性计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是非暂时性计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等,或者上述的任意合适的组合。
[0076] 上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0077] 可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。
[0078] 附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0079] 描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
[0080] 本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等。
[0081] 以上描述仅为本申请的部分实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
[0082] 此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0083] 尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。