异构数据库同步方法、装置、电子设备及计算机介质与流程

文档序号:31032879发布日期:2022-08-06 02:25阅读:64来源:国知局
异构数据库同步方法、装置、电子设备及计算机介质与流程

1.本技术涉及数据库技术,尤其涉及一种异构数据同步方法、装置、电子设备及计算机介质。


背景技术:

2.随着业务的发展,系统规模逐渐扩大以及分布式集群被广泛应用,系统架构也日趋复杂,对数据的存储与检索要求也越来越多样化。如何实现异构数据库的同步成为了人们关注的问题。
3.相关技术中,对于异构数据库的同步通常采用如下两种方式:方式一,对系统中所有数据操作的地方同步不同数据库之间进行等效操作;方式二,读取其中一个数据库的日志信息binlog,然后对binlog做分析析取执行结构化查询语言(structured query language,sql),转换为另一数据库的动作进行执行,以实现这两个数据库之间的同步。
4.但上述方式中,方式一对不同数据库进行等效操作需要对存量工程进行大量改造,而方式二需要部署多个额外的服务集群对binlog的读取解析和处理,这将需要进行额外的资源消耗,且可能无法保证事务的强一致性,需要通过软事务来做到最终一致性,中间存在一定的时间差。


技术实现要素:

5.本技术提供一种基于切面的异构数据库同步方法、装置、电子设备及计算机可读存储介质,用以解决目前不同数据库之间同步需要对存量工程大量改造、消耗大量资源并难以达到事务一致性问题。
6.根据本技术的一方面,提供一种异构数据库同步方法,包括:
7.获取事务项目中第一数据库的执行方法,所述执行方法包括执行语言及对应的执行参数;
8.将所述执行语言及对应的执行参数封装成第一语义化结构数据;
9.基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据,其中,所述第二语义化结构数据用于操作第二数据库。
10.在一种实施方式中,获取事务项目中第一数据库的执行方法,包括:
11.基于切面拦截技术获取事务项目中第一数据库的执行方法。
12.在一种实施方式中,所述第一数据库为关系型数据库,所述第二数据库为非关系型数据库;
13.所述执行方法为结构化查询语言sql执行方法,所述执行语言为sql语言。
14.在一种实施方式中,在获取事务项目中第一数据库的执行方法之后,以及将所述执行语言及对应的执行参数封装成第一语义化结构数据之前,还包括:
15.基于所述执行方法操作所述第一数据库,若操作成功,则执行将所述执行语言及对应的执行参数封装成第一语义化结构数据的步骤。
16.在一种实施方式中,所述将所述执行语言及对应的执行参数封装成第一语义化结构数据,包括:
17.将所述执行语言及对应的执行参数转化为通用语义化结构的数据;以及,将所述通用语义化结构的数据封装成第一语义化结构数据。
18.在一种实施方式中,在基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据之前,还包括:
19.将关系型数据库的数据库表、字段及主键信息与非关系型数据库的结构对应关系进行映射,得到关系型数据库和非关系型数据库之间的元数据映射关系。
20.在一种实施方式中,在基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据之后,还包括:
21.在所述事务项目中基于所述第二语义化结构数据操作第二数据库。
22.根据本技术的第二方面,提供一种异构数据库同步装置,包括:
23.获取模块,其设置为获取事务项目中第一数据库的执行方法,所述执行方法包括执行语言及对应的执行参数;
24.封装模块,其设置为将所述执行语言及对应的执行参数封装成第一语义化结构数据;
25.转化模块,其设置为基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据,其中,所述第二语义化结构数据用于操作第二数据库。
26.根据本技术的第三方面,提供一种电子设备,包括:处理器和存储器;
27.所述存储器存储计算机执行指令;
28.所述处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行所述的异构数据库同步方法。
29.根据本技术的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现所述的异构数据库同步方法。
30.本技术提供的异构数据库同步方法、装置、电子设备及计算机可读存储介质,通过获取事务项目中第一数据库的执行方法,所述执行方法包括执行语言及对应的执行参数,然后将所述执行语言及对应的执行参数封装成第一语义化结构数据,再基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据,其中,所述第二语义化结构数据用于操作第二数据库。本技术通过基于元数据映射关系将第一语义化数据转化成可以用于操作第二数据库的第二语义化结构数据,实现对第一数据库操作的同时对第二数据库的同步操作,解决了相关技术中对不同数据库进行等效操作需要对存量工程进行大量改造,以及读取数据库日志的方式需要消耗过多资源,且可能无法保证事务的强一致性的问题,达到了高效率、低成本的异构数据库同步效果,且能够有效保障异构数据库之间的事务一致性。
附图说明
31.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施
例,并与说明书一起用于解释本技术的原理。
32.图1为本技术实施例的场景示意图;
33.图2为本技术实施例提供的一种异构数据库同步方法的流程示意图;
34.图3为本技术实施例提供的另一种异构数据库同步方法的流程示意图;
35.图4为本技术实施例提供的又一种异构数据库同步方法的流程示意图之一;
36.图5为本技术实施例提供的又一种异构数据库同步方法的流程示意图之二;
37.图6为本技术实施例提供的一种异构数据库同步装置的结构示意图之一;
38.图7为本技术实施例提供的一种异构数据库同步装置的结构示意图之二;
39.图8为本技术实施例提供的一种电子设备的结构示意图。
40.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
41.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
42.异构数据库的同步是目前业界普遍关注的问题,例如关系型数据库和非关系型数据库之间的同步。其中,
43.关系型数据库(relational database):是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码,关系模型可以简单理解为二维表格模型,而一个关系型数据库可以理解为由二维表及其之间的关系组成的一个数据组织。
44.非关系型数据库(not only sql,nosql):泛指非关系型的数据库,非关系型数据库通常是分布式的、非关系型的、不保证遵循acid原则的数据存储系统。其中,acid是指数据库管理系统(dbms)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。
45.目前分布式系统对数据的主要存储一般采用分布式关系数据库,如阿里系的分布式关系型数据库(distribute relational database service,drds),自建的mysql集群,采购的oracle集群等。这样保证了数据存储的稳定性灵活性和一定的速度。然而为了满足系统对响应时间的迫切需求或者一些新业务的快速结构化数据组合,就会采用非关系型数据库比如mongodb作为数据源。此时存量系统为了兼容数据同时存储在异构数据库内就成为必须克服的一个问题。
46.有鉴于此,本技术实施例提出一种新的异构数据库间的同步方法来避免相关技术的缺失与弊端,更好的实现从关系型到非关系型之间的异构数据库的数据同步,其无需对现有存量工程进行大量改造,并规避改造过程中引入的人为错误缺陷,同时基于已有项目
附加无需额外资源,并可以达成强一致事务。
47.下面对本技术的技术方案进行详细说明。本技术的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
48.图1为本技术实施例提供的场景示意图,如图1所示,包括终端设备110、第一数据库、第二数据库,在该应用场景中,用户在终端设备上发起业务方法,其业务方法以进行数据存储为例,例如对第一数据库和第二数据进行数据的同步存储为例,其中,第一数据库为关系型数据库,第二数据库为非关系型数据库。
49.其中,终端设备110可以包括但不限于,电脑、智能手机、平板电脑、电子书阅读器、动态影像专家压缩标准音频层面3(moving picture experts group audio layer iii,简称mp3)播放器、动态影像专家压缩标准音频层面4(moving picture experts group audio layer iv,简称mp4)播放器、便携计算机、车载电脑、可穿戴设备、台式计算机、机顶盒、智能电视等等。
50.上面对本技术的场景示意图进行了简单说明,下面以应用于图1中的终端弄设备110为例,来详细说明本技术实施例提供的异构数据库同步方法。
51.请参照图2,图2为本技术实施例提供的一种异构数据库同步方法的流程示意图,所述方法包括步骤s201-s203。
52.步骤s201、获取事务项目中第一数据库的执行方法,所述执行方法包括执行语言及对应的执行参数。
53.本实施例中,事务项目,即开始一个事务,进入某个业务项目,例如,用户的存储业务,即用户需要将数据信息同时存储到第一数据库和第二数据库中,其需要同步使用第一数据库和第二数据库;执行方法,即实现对第一数据库的操作的方法,例如,能够实现对第一数据库进行数据写入的方法,其包括执行语言和对应的执行参数。
54.其中,事务(transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如sql,c++或java)书写的用户程序的执行所引起,并用形如事务开始(begin transaction)和事务结束(end transaction)语句(或函数调用)来界定,事务由事务开始和事务结束之间执行的全体操作组成。
55.需要说明的是,对第一数据库的执行方法可以为一个或者多个,如果执行方法为多个,则获取第一数据库的所有执行方法。
56.本实施例中,所述第一数据库为关系型数据库,所述第二数据库为非关系型数据库;所述执行方法为结构化查询语言sql执行方法,所述执行语言为sql语言。
57.可以理解的是,关系型数据库采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,通常采用sql方法来实现对关系型数据库进行操作。示例性的,在关系型数据库中添加数据记录的sql方法为:sql='insert+into+数据表+(字段1,字段2,字字段3+

)+valuess+(值1,值2,值3+

)',其中包括sql语言和执行参数;sql='insert+into+目标数据表select+*+from+源数据表'+(把源数据表的记录添加到目标数据表)。
58.在一种实施方式中,考虑到在获取事务项目中第一数据库的执行方法时,对事务项目进行已有代码的侵入性改造,本实施例中获取事务项目中第一数据库的执行方法(步
骤s201),具体包括以下步骤:
59.基于切面拦截技术获取事务项目中第一数据库的执行方法。
60.示例性的,可以是采用面向切面编程(aspect oriented programming,aop)拦截器,对业务层的方法调用进行拦截处理。
61.可以理解的是,面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。aop是面向对象程序设计(object oriented programming,oop)的延续,是软件开发中的一个热点,也是spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用aop可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
62.本实施例中,采用切面拦截技术对第一数据库的执行方法进行拦截,进而执行数据库同步可以对现有业务流程实现无侵入。
63.步骤s202、将所述执行语言及对应的执行参数封装成第一语义化结构数据。
64.本实施例中,通过将执行语言及对应的执行参数封装成第一语义化结构数据,便于在后续步骤中转化为用于执行非关系型数据库的第二语义化结构数据,便于实现关系型数据库中执行方法与非关系型数据库中的执行方法之间的转换。
65.可以理解的是,在存在多种第一数据库的执行方法时,对于每一执行方法的执行语言及执行参数都封装成语义化结构数据,其中,第一语义化结构数据相应也是多个。
66.步骤s203、基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据,其中,所述第二语义化结构数据用于操作第二数据库。
67.示例性的,对于关系型数据库和非关系型数据库,可以基于关系型数据库表及字段及主键对应非关系数据库的结构对应关系,形成运行时异构数据库之间的元数据关系映射数据。
68.相较于相关技术,本实施例通过在进行事务项目时,获取事务项目中第一数据库的执行方法,并将执行方法的执行语言及对应的执行参数封装成第一语义化结构数据,然后基于元数据映射关系将第一语义化数据转化成可以用于操作第二数据库的第二语义化结构数据,实现在对第一数据库操作的同时对第二数据库的同步操作,此过程无需对现有存量工程进行大量改造,并规避改造过程中引入的人为错误缺陷,同时基于已有项目附加无需额外资源,并可以达成强一致事务。
69.在一种实施方式中,为了避免获取到的执行方法为无效执行方法等情况,本实施例在获取事务项目中第一数据库的执行方法(步骤s201)之后,以及将所述执行语言及对应的执行参数封装成第一语义化结构数据(步骤s202)之前,还包括以下步骤:
70.基于所述执行方法操作所述第一数据库,若操作成功,则执行将所述执行语言及对应的执行参数封装成第一语义化结构数据的步骤。
71.本实施例中,在对第一数据库的执行方法进行操作之前,事先利用获取到的执行方法对第一数据库进行预执行,对于与执行操作成功的执行方法进一步进入到后续步骤,而对于预执行操作失败的执行方法进行丢弃,可以有效提高第一数据库和第二数据库之间的同步效率。
72.进一步地,对于切面拦截获取到的执行方法,在操作失败后,即对该执行方法进行
丢弃,并退回切面。
73.请参照图3,图3为本技术实施例提供的一种异构数据库同步方法的流程示意图,在上述实施例的基础上,考虑到不同数据库之间的执行语言及参数等之间可能不具有一致性,存在语义结构转化困难等问题,本实施例通过首先将执行语言及对应的执行参数转化为通用语义化结构的数据再进行语义结构化数据的封装和转化,以提高数据转化的效率,进而提高数据库同步的成功率。具体地,本实施例除了上述步骤s201-s203之外,所述将所述执行语言及对应的执行参数封装成第一语义化结构数据(步骤s202)进一步划分为步骤s202a和步骤s202b。
74.步骤s202a、将所述执行语言及对应的执行参数转化为通用语义化结构的数据;以及,
75.步骤s202b、将所述通用语义化结构的数据封装成第一语义化结构数据。
76.本实施例中,通过将sql语言及其参数为一种通用语义化结构,再封装成第一语义化结构,便于第一语义化结构数据和第二语义化结构数据之间的转化。示例性的,如[类型:执行动作类型如查询新增更新等,条件组:[条件类型如相等大于小于,条件值,条件字段,条件表],回显列组:[[回显列,回显列所属表]],表组:[表],主表,表连接组:[表连接],其他结构数据]。
[0077]
在一种更为具体的实施方式中,首先对关系型数据库和非关系型数据库之进行映射,生成元数据映射关系,进一步提高第一语义化结构数据和第二语义化结构数据之间的转化效率,具体的,在基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据(步骤s203)之前,还包括以下步骤:
[0078]
将关系型数据库的数据库表、字段及主键信息与非关系型数据库的结构对应关系进行映射,得到关系型数据库和非关系型数据库之间的元数据映射关系。
[0079]
本实施例中,根据关系型数据库表及字段及主键对应非关系数据库的结构对应关系,形成运行时异构数据库之间的元数据关系映射数据,具体地,一般于项目启动后加载到内存或高性能内存服务器中,形成二至三层缓存,单独下线程定时维护数据鲜活度。
[0080]
需要说明的是,在一些实施例中,第一数据库和第二数据库不限于关系型数据库和非关系型数据库,在形成元数据映射关系时可以根据各自的元数据、数据结构等信息进行一一映射。
[0081]
请参照图4,图4为本技术实施例提供的又一种异构数据库同步方法的流程示意图之一,在上述实施例的基础上,本实施例进一步示例了在完成第一语义化结构数据和第二语义化结构数据之间的转化之后,对第二数据库之间的同步操作,其可以保证事务的强一致性,而无需通过软事务来做到最终一致性,中间无事务同步时间差。具体地,本实施例除了上述实施例的步骤之外,在基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据(步骤s203)之后,还包括步骤s401。
[0082]
步骤s401、在所述事务项目中基于所述第二语义化结构数据操作第二数据库。
[0083]
示例性的,请参照图5,图5为本实施例提供的又一种异构数据库同步方法的流程示意图之二,如图5所示,包括以下步骤:
[0084]
a.在拓展的事务层00开展开始事务,其中,利用事务模块10进行初始化操作。
[0085]
可以理解的是,拓展的事务层,即在事务层拓展对不同数据库之间的同步操作。本
实施例事务模块10基于spring事务接口拓展,在原事务执行(即传统事务执行过程)基础上增加对非关系型数据库的操作,事务成功则清理事务数据,事务失败则根据事务数据执行回滚操作。
[0086]
b.事务初始化后,执行一个业务方法(即,业务项目),例如,数据存储业务。
[0087]
c.对于该业务方法11,通过进入切面模块12(即,获取模块61)来切面获取操作关系型数据库1的sql方法,也就是说,每一个sql方法的执行都先进入切面模块12;
[0088]
d.对于切面模块12中获取的sql方法进行预执行,本实施例将其表示为一个sql执行方法13,该sql执行方法在关系型数据库1中进行预执行,如果操作失败,则返回切面;如果操作成功,则对该sql方法的sql语言及执行参数封装成第一语义化结构数据,并转化为可用于操作非关系型数据库的第二语义化结构数据。
[0089]
e.在操作第一数据库时,基于该第二语义化结构数据同步操作非关系型数据库。
[0090]
f.事务模块10在事务成功时清理事务数据,事务失败则根据事务数据执行回滚操作。
[0091]
基于相同的技术构思,本技术实施例相应还提供一种异构数据库同步装置,如图6所示,图6为本实施例中提供的一种异构数据库同步装置的结构示意图之一,所述装置包括获取模块61、封装模块62及转化模块,其中,
[0092]
获取模块61,其设置为切面拦截事务项目中所有第一数据库的执行方法,所述执行方法包括执行语言及对应的执行参数;
[0093]
封装模块62,其设置为将所述执行语言及对应的执行参数封装成第一语义化结构数据;
[0094]
转化模块63,其设置为基于第一数据库和第二数据库之间的元数据映射关系将所述第一语义化结构数据转化为第二语义化结构数据,其中,所述第二语义化结构数据用于操作第二数据库。
[0095]
在一种实施方式中,获取模块61包括:
[0096]
切面拦截单元,其设置为基于切面拦截技术获取事务项目中第一数据库的执行方法。
[0097]
在一种实施方式中,所述第一数据库为关系型数据库,所述第二数据库为非关系型数据库;
[0098]
所述执行方法为结构化查询语言sql执行方法,所述执行语言为sql语言。
[0099]
在一种实施方式中,所述装置还包括:
[0100]
第一执行模块,其设置为在获取模块61获取执行方法后,及封装模块63封装第一语义化结构数据之前,基于所述执行方法操作所述第一数据库,若操作成功,则在所述封装模块63中将所述执行语言及对应的执行参数封装成第一语义化结构数据。
[0101]
在一种实施方式中,所述封装模块62,包括:
[0102]
转化单元,其设置为将所述执行语言及对应的执行参数转化为通用语义化结构的数据;以及,
[0103]
封装单元,其设置为将所述通用语义化结构的数据封装成第一语义化结构数据。
[0104]
在一种实施方式中,所述装置还包括:
[0105]
映射模块,其设置为在转化模块将所述第一语义化结构数据转化为第二语义化结
构数据之前,将关系型数据库的数据库表、字段及主键信息与非关系型数据库的结构对应关系进行映射,得到关系型数据库和非关系型数据库之间的元数据映射关系。
[0106]
在一种实施方式中,所述装置还包括:
[0107]
第二执行模块,其设置为在转化模块63将所述第一语义化结构数据转化为第二语义化结构数据后,在所述事务项目中基于所述第二语义化结构数据操作第二数据库。
[0108]
示例性的,请参照图7,图7为本实施例提供的一种异构数据库同步装置的结构示意图之二,如图7所示,包括:
[0109]
事务模块10,基于spring事务接口拓展,在原事务执行基础上增加对非关系型数据库的操作,事务成功则清理事务数据,事务失败则根据事务数据执行回滚操作;
[0110]
事务模块10完成初始化后,即开始事务,装置启动一个业务方法11,并执行sql方法进入到切面模块12;
[0111]
切面模块12(即,获取模块61),用于横向拦截项目中所有关系型数据库的sql执行方法,避免对已有代码的侵入性改造,启动在进入切面时首先执行原sql方法,即sql执行方法13操作关系型数据库1,执行失败则维持原流程退出切面,执行成功则走后续同步流程,根据获取到的sql与执行参数组装成结构体发送给解析模块,进入同步流程;
[0112]
解析模块14,解析结构体中的sql及其参数为一种通用语义化结构,大致如[类型:执行动作类型如查询新增更新等,条件组:[条件类型如相等大于小于,条件值,条件字段,条件表],回显列组:[[回显列,回显列所属表]],表组:[表],主表,表连接组:[表连接],其他结构数据],然后将该通用语义化结构的数据封装成第一语义化结构数据,并将此语义化结构数据发送给转换模块15处理;
[0113]
转换模块15(即,转化模块63),收到解析模块14发送的第一语义化结构数据,从配置模块16获取异构数据库之间的元数据映射关系,根据元数据映射关系转换该第一语义化结构数据数据为操作非关系型数据库2的第二语义化数据结构,同时可以根据配置的数据是否加密标志对特定数据做加解密处理,处理完成的数据发送给执行模块17。
[0114]
其中,根据加密标志对特定数据做加解密处理,可以在同步数据流程内转换过程根据配置对指定位置数据进行加解密操作
[0115]
配置模块16(即,映射模块),用于根据关系型数据库表及字段及主键对应非关系数据库的结构对应关系,形成运行时异构数据库之间的元数据关系映射数据,一般于项目启动后加载到内存或高性能内存服务器中,形成二至三层缓存,单独下线程定时维护数据鲜活度;
[0116]
执行模块17(即,第二执行模块),接收转换模块发送来的非关系型语义数据,启动事务关联填充事务数据,执行对非关系型数据库2的操作,执行成功后回到切面模块12结束流程,执行失败则在事务模块10中抛出异常回滚事务。
[0117]
本技术实施例相应还提供一种电子设备,如图8所示,所述电子设备包括:处理器81和存储器82;
[0118]
所述存储器81存储计算机执行指令;
[0119]
所述处理器82执行所述存储器81存储的计算机执行指令,使得所述电子设备执行所述的异构数据库同步方法。
[0120]
本技术实施例相应还提供一种计算机可读存储介质,所述计算机可读存储介质中
存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现所述的异构数据库同步方法。
[0121]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
[0122]
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
[0123]
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0124]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
[0125]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1