1.本发明实施例涉及数据备份技术领域,尤其涉及一种数据同步方法、装置、计算机设备及存储介质。
背景技术:2.随着计算机的发展,人们使用计算机保存的数据量也在飞速的增长,随着服务器海量数据的不断增长,数据的体积变得越来越庞大。于此,数据的各种安全问题也越来越被人们所重视。
3.其中,最值得关注的就是数据丢失,因此,数据备份是保护数据的重要手段,也是防止主动型信息攻击的最后一道防线。在数据备份中确保数据的一致性是最重要的一个要求。在做数据备份时,大多数情况下在数据同步的过程中会源源不断的产生新数据,现有技术中的数据同步方法都采用定时同步机制,该机制无法对倒数第二次同步结束后到最后一次同步开始前这段时间内产生的新数据进行同步,因此,会影响数据同步的一致性。
技术实现要素:4.本发明实施例提供了一种数据同步方法、装置、计算机设备及存储介质,能够加强数据同步的一致性。
5.第一方面,本发明实施例提供了一种数据同步方法,包括:
6.当接收到同步指令时开始进行一次数据同步,所述一次数据同步包括多轮数据同步,所述源端为待备份端;
7.在进行最后一轮数据同步之前,对目标数据做快照,所述目标数据为所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据;
8.基于所述快照完成最后一轮数据同步;
9.在所述最后一轮同步结束后,将所述快照删除。
10.第二方面,本发明实施例还提供了一种数据同步装置,包括:
11.第一数据同步模块,用于当接收到同步指令时开始进行一次数据同步,所述一次数据同步包括多轮数据同步,所述源端为待备份端;
12.快照模块,用于在进行最后一轮数据同步之前,将目标数据做快照,所述目标数据为所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据;
13.第二数据同步模块,用于基于所述快照完成最后一轮数据同步;
14.删除模块,用于在所述最后一轮数据同步结束后,将所述快照删除。
15.第三方面,本发明实施例还提供了一种计算机设备,包括:
16.一个或多个处理器;
17.存储装置,用于存储一个或多个程序;
18.所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器用于实现本发明任意实施例中所述的数据同步方法。
19.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的数据同步方法。
20.本发明实施例提供了一种数据同步方法、装置、计算机设备及存储介质,首先当接收到同步指令时开始进行一次数据同步,所述一次数据同步包括多轮数据同步,所述源端为待备份端;然后在进行最后一轮数据同步之前,将目标数据做快照,所述目标数据为所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据;之后基于所述快照完成最后一轮数据同步;最后在所述最后一轮同步结束后,将所述快照删除。利用上述技术方案,能够加强数据同步的一致性。
附图说明
21.图1为本发明实施例一所提供的一种数据同步方法的流程示意图;
22.图2为本发明实施例二所提供的一种数据同步方法的流程示意图;
23.图3为本发明实施例二所提供的传统方法中的最后一轮同步过程第一示意图;
24.图4为本发明实施例二所提供的传统方法中的最后一轮同步过程第二示意图;
25.图5为本发明实施例二所提供的一种数据同步方法的最后一轮数据同步过程第一示意图;
26.图6为本发明实施例二所提供的一种数据同步方法的最后一轮数据同步过程第二示意图;
27.图7为本发明实施例三所提供的一种数据同步装置的结构示意图;
28.图8为本发明实施例四所提供的一种计算机设备的结构示意图。
具体实施方式
29.下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
30.应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
31.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
32.需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
33.需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
34.本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
35.实施例一
36.图1为本发明实施例一所提供的一种数据同步方法的流程示意图,该方法可适用于将全部或部分数据集合从应用主机的硬盘复制到其他存储介质中的情况,该方法可以由数据同步装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在计算机设备上。
37.如图1所示,本发明实施例一提供的一种数据同步方法,包括如下步骤:
38.s110、当接收到同步指令时开始进行一次数据同步。
39.其中,所述一次数据同步包括多轮数据同步,所述源端为待备份端。
40.在本实施例中,源端可以为任意一种能够产生数据和/或存储数据的设备,源端可以作为待备份端,源端的磁盘中可以存储海量数据,可以将源端磁盘中存储的数据备份到其他存储介质中。
41.其中,同步指令可以为一种指示开始同步的指令,同步指令可以通过多种方式触发,此处不做具体限制。示例性的,可以根据用户制定的备份规则在某一时刻触发同步指令,还可以通过用户手动触发同步指令的发送。
42.进一步的,在进行每轮数据同步之前,监测源端磁盘上的数据是否发生变化。
43.需要说明的是,在进行一次数据同步之前,可以将源端磁盘上的所有数据进行全备份,备份到备份端。之后,当源端磁盘上的数据与备份端的数据不一致时,将源端磁盘上与备份端上不一致的数据同步到备份端即可。
44.在本实施例中,对监测源端磁盘上数据是否发生变化的方式不做具体限制,示例性的,可以通过建立源端磁盘的位图监测源端磁盘上的数据是否发生变化,还可以通过跟踪源端磁盘io的数据结构监测源端磁盘上的数据是否发生变化。
45.进一步的,监测源端磁盘上的数据是否发生变化的方式包括:根据预设复制策略建立源端磁盘的位图;根据所述位图监测源端磁盘上数据是否发生变化。
46.其中,预设复制策略可以理解为预先设置的对源端磁盘上的数据进行复制的策略,根据预设复制策略可以生成源端磁盘的位图以用于对该磁盘上的io进行跟踪。
47.其中,根据预设复制策略建立源端磁盘的位图的方式可以为:根据预设复制策略可以知晓一个位代表多大的数据量,根据源端磁盘需要的位数确定位图。
48.其中,根据位图监测源端磁盘上的数据是否发生变化的方式可以为:根据位图上的标记符确定源端磁盘上的数据是否发生变化,位图上值为1的位对应的数据块表示该数据块中的数据发生变化,位图上值为0的位对应的数据块表示该数据块中的数据没有发生变化。可以理解的是,当源端磁盘上的数据没有发生变化则表示源端和备份端的数据一致,当源端磁盘上的数据发生变化,则表示源端与备份端的数据不一致,此时需要将源端磁盘上变化的数据同步到备份端。
49.在本实施例中,一次数据同步可以包括多轮数据同步,在多轮数据同步中除最后一轮数据同步以外的其他轮数据同步的过程与现有技术相同,此处不做详细说明。需要说明的是,在每轮数据同步之前都需要判断当前轮数据同步是否为最后一次数据同步。
50.进一步的,进行一次数据同步包括:在每轮数据同步之前获取当前轮数据同步所需的位图;根据所述位图确定源端磁盘上需要同步的数据;根据所述数据的数量判断所述当前轮数据同步是否为最后一轮数据同步;若是,则进行所述最后一轮数据同步。
51.其中,针对一次数据同步中的每轮数据同步,在进行当前轮数据同步之前需要获
取一份位图,该位图为根据复制策略以及源端磁盘上在当前轮数据同步中进行同步的数据确定的。当前轮数据同步中需要同步的数据可以是在当前轮数据同步的上一轮数据同步结束后源端磁盘上发生变化的数据。
52.其中,根据当前轮数据同步对应的位图可以确定当前轮数据同步过程中所要同步的数据量,根据当前轮数据同步中需要同步的数据量可以确定当前轮数据同步是否为最后一轮数据同步。
53.进一步的,所述根据所述数据的数量判断所述当前轮数据同步是否为最后一轮同步,包括:判断所述数据量是否小于预设临界值;若是,则确定所述当前轮数据同步为最后一轮数据同步。
54.其中,预设临界值可以为预先设置的数值。若当前轮数据同步过程中需要同步的数据量小于预设临界值,则可以确定当前轮数据同步为最后一轮数据同步。
55.进一步的,若否,则对所述源端磁盘上需要同步的数据进行一轮数据同步。
56.在本实施例中,若当前轮数据同步过程中需要同步的数据量小于或等于预设临界值,则可以确定当前轮数据同步为最后一轮数据同步。
57.s120、在进行最后一轮数据同步之前,对目标数据做快照。
58.其中,所述目标数据为所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据。
59.在进入最后一轮数据同步后,传统方法中最后一轮数据同步和之前的多轮数据同步的过程没有区别,依然是将上一轮数据同步结束后源端磁盘上发生变化的数据同步到备份端。于此,当在最后一轮数据同步过程中源端磁盘上有新数据写入时,最后一轮数据同步时有可能将新写入的数据同步到备份端。
60.在本实施例中,通过在最后一轮数据同步之前对源端磁盘上的数据做一个快照的方式可以保证在最后一轮数据同步中进行同步的数据与源端在做最后一轮快照这一时刻的数据保持一致,进而可以保证在最后一轮同步的过程中新写入的数据不会同步到备端。
61.传统方法中,在最后一轮数据同步的过程中可能会有新数据写入,因此希望获取到最后一轮位图之后到最后一轮同步结束之前不要有新数据写入,本发明实施例提供的数据同步方法可以将希望不要有新数据写入的时间缩短,希望在获取到最后一轮位图之后到最后一轮同步打完快照之前不要有新数据写入。
62.其中,快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品,快照的作用主要能够进行在线数据备份与恢复。做快照的方式可以包括写时复制以及输入/输出重定向,sina将快照的实现方式表述为镜像分离、改变块以及并发块三大类。
63.进一步的,将所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据做快照,包括:在所述源端的内存和处理器之间将所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据做快照。
64.在本实施例中,可以在源端的内存和处理器之间完成做快照,通过处理器对将要在最后一轮数据同步过程中进行同步的数据做快照后可以将快照存储在内存中,此过程不涉及磁盘的读写。
65.s130、基于所述快照完成最后一轮数据同步。
66.在本实施例中,最后一轮数据同步过程可以包括将快照同步到备份端。其中,将快
照同步到备份端的过程与之前的每轮同步过程相同,都是将数据同步到备份端。
67.进一步的,所述基于所述快照完成最后一轮数据同步,包括:将所述快照从所述源端读取后写入所述备份端磁盘,以完成最后一轮数据同步。
68.其中,若备份端包括磁盘,则可以将快照写入备份端磁盘中,若备份端包括其他存储介质,可以将快照写入备份端中的其他存储介质中,此处不做具体用限制。
69.s140、在最后一轮数据同步结束后,将所述快照删除。
70.在本实施例中,在最后一轮数据同步结束之后,在本次数据同步结束之前,需要将快照进行删除,于此可以确保快照在源端中存在的时间非常短,不会对源端的性能和同步的效率产生影响。
71.此处对删除快照的方式不做具体限制,可以通过任意一种删除方式删除源端中的快照,示例性的,当监测到最后一轮数据同步完成后可以自动删除源端中的快照。
72.本发明实施例一提供的一种数据同步方法,首先当接收到同步指令时开始进行一次数据同步;然后在进行最后一轮数据同步之前,将目标数据做快照;之后基于所述快照完成最后一轮数据同步;最终在所述最后一轮同步结束后,将所述快照删除。上述方法在传统数据同步方法的基础上,在最后一轮数据同步开始之前对最后一轮数据同步过程中需要进行同步的数据做了一个快照,再以该快照为基础进行最后一轮数据同步,通过这种方式,可以提高源端与备份端数据的一致性。
73.实施例二
74.本发明实施例在上述各实施例的技术方案的基础上,提供了一种具体的实施方式。
75.图2为本发明实施例二所提供的一种数据同步方法的流程示意图,如图2所示,所述方法包括如下步骤:
76.步骤1、选择源端和备份端,建立一个数据备份规则创建位图。
77.在本步骤中,数据备份规则即预设复制策略,建立数据备份规则的同时就会创建一个位图来记录源端磁盘上的数据变化。
78.步骤2、当监测到源端磁盘上的数据变化后开始同步。
79.在本步骤中,每一轮数据同步需要根据从跟踪源端磁盘变化的驱动中获取的位图来进行同步,直到最后一轮同步。
80.其中,在监测到源端磁盘上的数据发生变化后,在每一轮数据同步之前从监测磁盘中数据变化的驱动中获取一份位图,本轮数据同步可以依据位图进行,在进行本轮数据同步之前需要计算获取的位图中需要同步的数据量,当数据量小于设定的临界值即预设临界值时,可以确定本轮数据同步为一次数据同步中的最后一轮数据同步。
81.步骤3、根据获取到的位图对最后一轮数据同步中需要同步的数据做一个快照。
82.在本步骤中,在最后一轮数据同步之前可以获取源端磁盘的位图。
83.步骤4、依据快照完成最后一轮数据同步。
84.步骤5、将最后一轮数据同步之前创建的快照删除。
85.在本步骤中,在完成最后一轮数据同步之后,在本次数据同步结束之前,将源端创建的快照删除。
86.本发明实施例二提供的一种数据同步方法,该方法在判断出是最后一轮数据同步
之后,在最后一轮数据同步开始之前依据获取到的位图对最后一轮数据同步中需要同步的数据做一个快照,基于这个快照进行最后一轮同步,于此只需保证从获取到位图到做完快照这段时间内源端磁盘数据没有变化就可以保证数据同步的一致性。其中,做快照过程都是在内存和cpu之间完成,时间无限趋近于0,要远远小于最后一轮数据同步的时间,在最后一轮数据同步结束之后将这个快照删除,由于这个快照保护的数据非常少,存在的时间也非常短,因此对同步的效率和机器的性能几乎不会产生影响,同时还可以进一步加强数据同步的一致性。
87.在本实施例中,传统方法中确定出最后一轮数据同步后,依然按照之前轮数据同步的方式进行最后一轮数据同步,由于最后一轮数据同步所要同步的数据量很小,同步过程很快,一般情况下在这个过程中源端磁盘不会写入新数据,但是也存在在这个过程中源端磁盘写入新数据的情况,如果一块关键数据写入的位置跨越在最后一轮数据同步的同步数据和非同步数据之间,那么这个时间点的备份在使用的时候就有可能出现问题。
88.图3为本发明实施例二所提供的传统方法中的最后一轮同步过程第一示意图,图3表示在最后一轮数据同步过程中没有新数据写入的情况,该情况下不会出现数据同步不一致的问题。
89.如图3所示,最后一轮数据同步依据的位图中0表示该位对应的数据块在源端和备份端是一致的,1表示该位对应的数据块在源端和备份端是不一致的,每一轮数据同步中需要同步的数据就是位图中值为1的位所对应的数据块,因此需要根据位图进行每轮数据同步。图3中last_sync1和last_sync2表示源端磁盘上需要在最后一次数据同步中进行同步的数据。
90.图4为本发明实施例二所提供的传统方法中的最后一轮同步过程第二示意图,图4表示在最后一轮数据同步过程中有新数据写入的情况,该情况下会出现数据同步不一致的问题。
91.如图4所示,new1和new2表示在最后一轮数据同步过程中写入源端磁盘上第四个数据块d和第五个数据块中的新数据,last_sync1表示源端磁盘上需要在最后一次数据同步中进行同步的数据,第五个数据块即last_sync2。如果在同步线程读取last_sync2之前写入了new2,则在最后一轮同步过程中同步到备份端的数据就是last_sync1、d和new2,而源端数据只包括last_sync1,d,last_sync2以及last_sync1,new1,new2的时刻,因此,传统方法中在最后一轮同步过程的同步结果和源端这两个时刻的数据都不同,导致数据同步不一致。
92.图5为本发明实施例二所提供的一种数据同步方法的最后一轮数据同步过程第一示意图,图5包括在最后一轮数据同步过程中没有新数据写入的情况,该情况下不会出现数据同步不一致的问题。
93.由图5可知,对源端磁盘上的第三个数据块last_sync1以及第五个数据块last_sync2做快照可以得到数据块1和数据块2,之后可以基于数据块1和数据块2进行最后一轮数据同步。
94.图6为本发明实施例二所提供的一种数据同步方法的最后一轮数据同步过程第二示意图,图6包括在最后一轮数据同步过程中有新数据写入的情况,该情况下会出现数据同步不一致的问题。
95.由图6可知,在进行最后一轮数据同步时有新数据new1和new2写入源端磁盘上的第四个数据块d以及第五个数据块中,此时可以通过对last_sync1、d以及last_sync2做快照得到数据块1和数据块2。其中,d中包括new1,last_sync2中包括new2;之后可以基于数据块1和数据块2进行最后一轮数据同步。本发明实施例所提供的一种数据同步方法可以保证最后一轮同步的结果为last_sync1,d,last_sync2,与源端数据包括last_sync1,d,last_sync2时刻的数据相同,保证了数据同步的一致性。
96.实施例三
97.图7为本发明实施例三所提供的一种数据同步装置的结构示意图,该装置可适用于将全部或部分数据集合从应用主机的硬盘复制到其他存储介质中的情况,其中该装置可由软件和/或硬件实现,并一般集成在计算机设备上。
98.如图7所示,该装置包括:第一数据同步模块110、快照模块120、第二数据同步模块130以及删除模块140。
99.第一数据同步模块110,用于当接收到同步指令时开始进行一次数据同步,所述一次数据同步包括多轮数据同步,所述源端为待备份端;
100.快照模块120,用于在进行最后一轮数据同步之前,将目标数据做快照,所述目标数据为所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据;
101.第二数据同步模块130,用于基于所述快照完成最后一轮数据同步;
102.删除模块140,用于在所述最后一轮数据同步结束后,将所述快照删除。
103.在本实施例中,该装置首先通过第一数据同步模块110当接收到同步指令时开始进行一次数据同步,所述一次数据同步包括多轮数据同步,所述源端为待备份端;其次通过快照模块120在进行最后一轮数据同步之前,将目标数据做快照,所述目标数据为所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据;然后通过第二数据同步模块130基于所述快照完成最后一轮数据同步;最后通过删除模块140在所述最后一轮数据同步结束后,将所述快照删除。
104.本实施例提供了一种数据同步装置,能够加强数据同步的一致性。
105.进一步的,在进行每轮数据同步之前,监测源端磁盘上的数据是否发生变化;其中,监测源端磁盘上的数据是否发生变化的方式包括:根据预设复制策略建立源端磁盘的位图;根据所述位图监测源端磁盘上的数据是否发生变化。
106.进行一次数据同步包括:在每轮数据同步之前获取当前轮数据同步所需位图;根据所述位图确定源端磁盘上需要同步的数据量;根据所述数据量判断所述当前轮数据同步是否为最后一轮数据同步;若是,则进行所述最后一轮数据同步。
107.基于上述技术方案,进行一次数据同步还包括:若否,则对所述源端磁盘上需要同步的数据进行一轮数据同步。
108.进一步的,所述根据所述数据的数量判断所述当前轮数据同步是否为最后一轮同步,包括:判断所述数据量是否小于预设临界值;若是,则确定所述当前轮数据同步为最后一轮数据同步。
109.进一步的,将所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据做快照,包括:在所述源端的内存和处理器之间将所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据做快照。
110.进一步的,所述基于所述快照完成最后一轮数据同步,包括:将所述快照从所述源端读取后写入所述备份端磁盘,以完成最后一轮数据同步。
111.上述数据同步装置可执行本发明任意实施例所提供的数据同步方法,具备执行方法相应的功能模块和有益效果。
112.实施例四
113.图8为本发明实施例四所提供的一种计算机设备的结构示意图。如图8所示,本发明实施例四提供的计算机设备包括:一个或多个处理器41和存储装置42;该计算机设备中的处理器41可以是一个或多个,图8中以一个处理器41为例;存储装置42用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如本发明实施例中任一项所述的数据同步方法。
114.所述计算机设备还可以包括:输入装置43和输出装置44。
115.计算机设备中的处理器41、存储装置42、输入装置43和输出装置44可以通过总线或其他方式连接,图8中以通过总线连接为例。
116.该计算机设备中的存储装置42作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例一或二所提供的数据同步方法对应的程序指令/模块(例如,附图7所示的数据同步装置中的模块,包括:第一数据同步模块110、快照模块120、第二数据同步模块130以及删除模块140)。处理器41通过运行存储在存储装置42中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例中的数据同步方法。
117.存储装置42可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储装置42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
118.输入装置43可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
119.并且,当上述计算机设备所包括一个或者多个程序被所述一个或者多个处理器41执行时,程序进行如下操作:
120.当接收到同步指令时开始进行一次数据同步,所述一次数据同步包括多轮数据同步,所述源端为待备份端;
121.在进行最后一轮数据同步之前,对目标数据做快照,所述目标数据为所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据;
122.基于所述快照完成最后一轮数据同步;
123.在所述最后一轮数据同步结束后,将所述快照删除。
124.实施例五
125.本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行数据同步方法,该方法包括:
126.当接收到同步指令时开始进行一次数据同步,所述一次数据同步包括多轮数据同
步,所述源端为待备份端;
127.在进行最后一轮数据同步之前,对目标数据做快照,所述目标数据为所述源端磁盘上需要在所述最后一轮数据同步过程中进行同步的数据;
128.基于所述快照完成最后一轮数据同步;
129.在所述最后一轮数据同步结束后,将所述快照删除。
130.可选的,该程序被处理器执行时还可以用于执行本发明任意实施例所提供的数据同步方法。
131.本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式cd-rom、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
132.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
133.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(radio frequency,rf)等等,或者上述的任意合适的组合。
134.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
135.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。