一种差异数据备份方法和差异数据备份装置与流程

文档序号:12463887阅读:260来源:国知局
一种差异数据备份方法和差异数据备份装置与流程

本发明实施例涉及存储技术领域,特别是一种差异数据备份方法和差异数据备份装置。



背景技术:

典型的数据容灾系统包括生产中心和灾备中心。在生产中心,部署有主机、存储阵列,用于正常的业务运行;在灾备中心,部署有主机、存储阵列,用于在生产中心发生灾难后,接管其业务。其中,生产中心或灾备中心的存储阵列均包含多个数据卷,数据卷是物理存储空间映射而成的一段逻辑存储空间。生产中心的业务产生的数据写入生产阵列后,可以经容灾链路备份到灾备中心,写入灾备阵列。为了保证灾难发生后,灾备中心的数据能够支撑业务接管,备份到灾备阵列的数据必须保证一致性(consistency)。保证数据一致性本质上是指,有依赖关系的写数据请求,该依赖关系需要得到保证。应用程序、操作系统、数据库都内在地依靠这种写数据请求的依赖关系的逻辑来运行其业务,例如:先完成写数据请求1,再完成写数据请求2,顺序是固定的。也就是说,系统会确保写数据请求1完全返回成功后,才会下发写数据请求2。由此,才能实现当出现故障导致执行过程中断时,可以依靠固有的办法来恢复业务。否则,可能会出现这样的情况,例如:在读取数据时,可以读到写数据请求2存储的数据,却读不到写数据请求1存储的数据,这将导致业务无法恢复。

在现有技术中,可以利用快照技术解决这个问题。快照是数据在某个时间点(拷贝开始的时间点)的映像。快照的目的是为数据卷创建一个在特定时间点的状态视图,通过这个视图只可以看到数据卷在创建时刻的数据,在此时间点之后数据卷的修改(有新的数据写入),不会反映在快照视图中。利用这个快照视图,就可以做数据的备份。对于生产中心而言,由于快照数据是“静止的”,因此生产中心可以在将各个时间点的数据创建快照之后,再将快照数据备份到灾备中心,既可以完成远程数据备份,也不会影响在生产中心继续执行写数据请求。对于灾备中心而言,也可以满足数据一致性的要求。例如,写数据请求2的数据成功备份到灾备中心,写数据请求1的数据没有成功备份,可以利用写数据请求2之前的快照数据,将灾备中心的数据恢复到之前的状态。

然而,为了保证生产阵列和灾备阵列之间的数据一致性,生产阵列在创建快照之前需要悬挂写数据请求,以防止变化的数据没有记录在快照中,从而导致生产阵列中的数据与灾备阵列中的数据不一致。但是悬挂写数据请求往往会影响生产阵列处理数据的效率。



技术实现要素:

本申请提出了一种差异数据备份方法和差异数据备份装置,能够避免悬挂写数据请求从而提高数据处理的效率。

本申请第一方面提供了一种差异数据备份方法,该方法应用于存储系统中。所述存储系统包括处理器、生产卷和目标卷。所述处理器获取两个编号之间的差异数据的记录。编号用于标识数据写入所述生产卷的时间段。其中,所述两个编号中的第一编号是创建所述生产卷的第一快照之前最近一次为所述生产卷接收的数据分配的编号。所述两个编号中的第二编号是创建所述生产卷的第二快照之后最近一次为所述生产卷接收的数据分配的编号。所述差异数据的记录包括所述两个编号之间的编号所标识的时间段内接收的所述差异数据的逻辑地址。所述处理器根据所述差异数据的逻辑地址从所述第二快照中读取备份数据,所述备份数据是所述差异数据的子集。然后,所述处理器将所述备份数据发送给所述目标卷。

按照第一方面提供的差异数据备份方法,处理器获取两个编号的差异数据的记录,并且根据所述差异数据的逻辑地址从所述第二快照中读取备份数据。由于所述两个编号中的第一编号是创建所述生产卷的第一快照之前最近一次为所述生产卷接收的数据分配的编号,而所述两个编号中的第二编号是创建所述生产卷的第二快照之后最近一次为所述生产卷接收的数据分配的编号,因此所述差异数据多于备份数据。那么,在第一方面提供的差异备份过程中,不需要悬挂写数据请求,仍然可以保证将两次快照之间的差异数据备份给目标卷,保证了生产卷和目标卷的数据一致性。由于不需要悬挂写数据请求,因此可以提高数据处理的效率。

结合第一方面,在第一方面的第一种实施方式中,所述两个编号之间的所有编号按照设定条件改变,所述设定条件包括预设的备份周期到达或者创建所述生产卷的快照。由此,实现了以编号来标识数据写入所述生产卷的时间段。

结合第一方面或者第一方面的第一种实施方式中,在第一方面的第二种实施方式中,所述第二快照是所述第一快照的下一次快照。由于第二快照是第一快照的下一次快照,保证每次备份的数据略多于相邻两次快照之间的差异数据,少于不相邻的两次快照之间的差异数据,由此尽可能地减少每次备份的数据量。

结合第一方面或者第一方面的任意一种实施方式,在第一方面的第三种实施方式中,所述方法还包括所述处理器将所述备份数据的逻辑地址发送给所述目标卷。

结合第一方面或者第一方面的任意一种实施方式,在第一方面的第四种实施方式中,所述两个编号之间的编号不包括所述第二编号。由于所述第二编号是下一次备份的起始编号,所以在本次备份中可以不包括所述第二编号,以减少备份的数据量。

本申请第二方面提供了一种差异数据备份装置,用于执行第一方法提供的差异数据备份方法。

本申请第二方面的各种实施方式,与第一方面的实施方式类似。

本申请第三方面提供了一种存储系统,所述存储系统包括处理器、生产卷和目标卷,所述处理器用于执行第一方面提供的差异数据备份方法。

本申请第四方面提供了一种存储系统,所述存储系统包括处理器、存储器、生产卷和目标卷,所述处理器调用所述存储器中的程序执行第一方面提供的差异数据备份方法。

本申请还提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可以由上述第三方面或第四方面的存储系统执行,并用于执行上述第一方面的至少一种方法。

本发明申请提供的以上一种计算机程序产品,都能够在备份过程中不悬挂写数据请求,提高数据处理的效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。

图1是本发明实施例提供的一种应用场景图;

图2是本发明实施例提供的另一种应用场景图;

图3是本发明实施例提供的存储设备的结构图;

图4是本发明实施例提供的差异数据备份方法的流程示意图;

图5是本发明实施例提供的差异数据备份方法的执行过程中编号的变化示意图;

图6是本发明实施例提供的差异数据备份装置的结构图。

具体实施方式

本发明实施例提出了一种数据备份方法和存储系统,能够避免悬挂写数据请求,从而提高数据处理的效率。

下面对本发明实施例的应用场景进行介绍。

如图1所示,图1描绘了本发明实施例提供的存储系统10的组成图,图1所示的存储系统10包括一个或多个主机40和一个存储设备20。主机可以是计算设备,如服务器、台式计算机等终端设备。存储设备20可以是基于数据块数据的存储设备,如存储区域网(Storage Area Networking,SAN)设备,也可以是包含文件系统的存储设备,如网络附属存储(Network Attached Storage,NAS)设备。本实施例并不对存储设备的类型做任何限定。主机40与存储设备20之间,以及各个存储设备20之间可以通过网络文件系统(Network File System,NFS)/通用网络文件系统(Common Internet File System,CIFS)协议或者光纤通道(Fiber Channel,FC)协议进行通信。

存储设备20包括至少一个控制器21和若干个硬盘22。控制器21可以包括任何计算设备,如服务器、台式计算机等等。在控制器内部,安装有操作系统以及其他应用程序。控制器21可以向硬盘22发送输入输出(I/O)请求。例如,向硬盘22发送写数据请求,使得硬盘22将写数据请求中携带的待写入数据写入其存储介质中。

硬盘22可以是多种类型的硬盘,例如,固态硬盘(Solid State Drive,SSD)或者串行连接SCSI(Serial Attached SCSI,SAS)或光纤通道(Fiber Channel,FC)硬盘驱动器(Hard Disk Drive,HDD),其中,SCSI(Small Computer System Interface)为小型机系统接口的英文缩写或者串行高级技术附件(Serial Advanced Technology Attachment,SATA)或近线(Near Line,NL)串行连接SCSI(Serial Attached SCSI,SAS)HDD,在此不做限定。逻辑单元(Logic Unit,LU)是分布在一个或多个硬盘22上的一段逻辑存储空间,例如图1所示的生产卷23和目标卷24。主机40可以向存储系统10发送写数据请求,所述写数据请求中携带待写入所述存储系统10的数据,所述数据可以是块数据或者文件。控制器21接收所述数据后再写入所述存储设备20的逻辑单元中。在实际应用中,为了保证数据可靠性,往往需要对数据进行备份处理。例如,将生产卷23中的数据备份到目标卷24,当生产卷23中的数据发生损坏时,可以用目标卷24中存储的数据进行恢复。

本发明实施例还适用于另一种应用场景,如图2所示。图2描绘了另一种存储系统10的组成图,该存储系统10包括一个或多个主机40,一个存储设备20以及一个存储设备30。存储设备30与存储设备20类似,包括至少一个控制器31和若干个硬盘32。控制器31的结构和功能与图1中控制器21类似,硬盘32的结构和功能与图1中的硬盘22类似,这里不再赘述。与图1描述的应用场景的不同之处在于,图1中的备份是指一个存储设备内的备份,而图2中的备份是指两个存储设备间的备份。例如,存储设备20需要将其生产卷上的数据备份到存储设备30的目标卷33中。

无论是图1所示的应用场景还是图2所示的应用场景,控制器21在将一个LU(称为生产卷)中的数据备份到另一个LU(称为目标卷)中时,可以采用全量备份的方式,也可以采用增量备份的方式。

全量备份是指对生产卷上的所有数据进行完整备份。增量备份是备份自上次全备份或者增量式备份以来(取两者中较晚者)修改的数据。由于仅限于对修改的数据(又称为差异数据)进行备份,这种备份非常快,也更能节省存储空间。

下面介绍控制器21的组成结构。如图3所示,图3描绘了本发明实施例提供的控制器21的组成图。

控制器21至少包括接口211,处理器212和存储器213。

接口211,用于与主机40或者硬盘22或者存储设备30进行通信。

处理器212可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。处理器212可以用于处理对硬盘22的输入/输出(Input/Output,I/O)请求,将生产卷中的数据备份到目标卷中等等。从而使控制器21可以实现IO操作、数据备份等功能。在本发明实施例中,处理器212用于执行程序214,具体可以执行下述方法实施例中的相关步骤。

存储器213,用于存放程序214,存储器213可以包括高速缓存存储器(cache),也可以包括高速RAM存储器,还可以包括非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。可以理解的是,存储器213可以为随机存储器(Random-Access Memory,RAM)、磁碟、硬盘、固态硬盘(Solid State Disk,SSD)。存储器213还可以用于缓存从主机40接收的数据或者从硬盘22读取的数据。

程序214可以包括操作系统,文件系统以及其他软件模块。

下面结合以上两种应用场景和图3介绍数据备份的过程。请参见图4,图4是本实施例提供的数据备份方法的流程图,图4所示的步骤由图3所示的处理器212执行。另外,请参见图5,图5反映了下述备份过程中编号的变化。

步骤S101,存储设备20接收一个或多个写数据请求。每个写数据请求包括待写入数据(简称为数据)以及所述待写入数据的逻辑地址。所述逻辑地址包括卷的标识、逻辑块地址(英文:logic block address)和长度(英文:length)。所述卷的标识用于指示所述数据待写入的卷,本实施例中均以所述数据待写入的卷是所述生产卷为例予以说明。所述逻辑块地址表示所述数据位于所述卷的位置,所述长度表示所述数据的大小。

步骤S102,存储设备20为每个写数据请求分配编号,所述编号用于标识接收所述写数据请求的时间段。存储设备20包括一个编号表,所述编号表中包括多个编号,每个编号按照从小到大的顺序依次递增。例如,所述多个编号分别是0、1、2、3、4……。在某个时间段内接收的写数据请求均被分配同一个编号。假设编号初始值为第一编号0,当特定条件满足时,存储设备20会将所述第一编号设置为第二编号1,第二编号1是第一编号0的下一个编号。那么在下一个时间段内接收的写数据请求均被分配所述第二编号1。或者,存储设备20维护有一个编号发生器,所述编号发生器中记录编号初始值,假设所述编号初始值为第一编号0。在某个时间段内接收的写数据请求均被分配第一编号0。当所述特定条件满足时,所述编号发生器中的编号初始值被执行加1的操作,因此第一编号0的下一个编号就是第二编号1。那么,在下一个时间段内接收的写数据请求均被分配第二编号1。这里的特定条件包括预设的备份周期到达或者创建了所述生产卷的快照。示例性地,假设在步骤S102中每个写数据请求均被分配第一编号0。存储设备20记录第一编号0与各个写数据请求包括的逻辑地址之间的对应关系。

如表1所示,在编号0标识的时间段内,存储设备20接收到3个写数据请求。其中,第一个写数据请求所携带的待写入数据将被写入卷A,其逻辑块地址为00001,所述数据的长度为8byte;第二个写数据请求所携带的待写入数据将被写入卷A,其逻辑块地址为00002,所述数据的长度为8byte;第二个写数据请求所携带的待写入数据将被写入卷A,其逻辑块地址为00003,所述数据的长度为8byte。

步骤S103,预设的备份周期到达时,存储设备20执行数据备份操作。

生产卷中的数据是通过若干个备份周期发送给目标卷的,所述备份周期是预先设置的时长。如果是第一个备份周期,那么存储设备20需要将所述生产卷中的所有数据发送给目标卷,这个过程也被称之为全量备份。如果不是第一个备份周期,存储设备20可以将所述生产卷中的所有数据发送给所述目标卷,也可以仅将差异数据发送给所述目标卷。

由于存储设备20在将数据发送给目标卷的过程中,存储设备20也在继续接收写数据请求。因此,生产卷中的数据和目标卷中的数据会产生不一致。为了保证生产卷与目标卷的数据一致性,存储设备20会用编号将备份周期到达之前的写数据请求与备份周期到达之后的写数据请求区分开。并且,存储设备20不会直接从生产卷中读取数据发送给目标卷,而是创建所述生产卷的快照,从所述快照中读取数据发送给目标卷。

具体的,当预设的备份周期到达时,存储设备20会执行如下操作:

1,将第一编号修改为第二编号。如前面所说,在所述预设的备份周期到达之前,为每个写数据请求分配的编号为第一编号0。在所述预设的备份周期到达之后,下一次修改编号之前接收的写数据请求,均会被分配第二编号1。

2、创建所述生产卷的第一快照。在实际应用中,存储设备20会定期创建所述生产卷的快照。

3、将第二编号修改为第三编号。按照前面的描述,当所述生产卷的第一快照被创建之后,存储设备20会再次修改编号。例如,在创建所述生产卷的第一快照之后,将所述第二编号1修改为第三编号2。那么,对于在将第二编号修改为第三编号之后,下一次修改编号(下一次备份周期到达时)之前接收的写数据请求,均会被分配第三编号2。然而,在创建所述生产卷的第一快照之后,将第二编号修改为第三编号之前的这段时间内,存储设备20接收的写数据请求仍然会被分配第二编号1,而这些写数据请求所携带的数据并没有被记录在所述第一快照中。因此,所述第一快照包括第一编号0对应的逻辑地址中存储的数据以及部分第二编号1对应的逻辑地址中存储的数据。

待上述操作执行完毕之后,存储设备20读取所述生产卷的第一快照,将所述第一快照中包括的数据以及所述数据的逻辑地址发送给目标卷。由前面的描述可知,在这次备份操作中,备份的数据包括第一编号0对应的逻辑地址中存储的数据以及部分第二编号1对应的逻辑地址中存储的数据。

通过上述步骤S101-步骤S103,存储设备20完成了一次全量备份。下面描述增量备份的过程。

由上述步骤S103可知,在将第二编号修改为第三编号之后,存储设备20接收的所有写数据请求均会被分配第三编号2。这些写数据请求中可能包含对所述生产卷中的数据进行修改的写数据请求。如表2所示:

如表2所示,在编号2标识的时间段内,存储设备20接收到3个写数据请求。其中,第一个写数据请求所携带的待写入数据将被写入卷A,其逻辑块地址为00001,所述数据的长度为8byte。由于所述写数据请求所携带的数据的逻辑块地址和长度均与表1所示的第一个写数据请求所携带的数据的逻辑块地址和长度相同,因此所述写数据请求所携带的数据用于覆盖表1所示的第一个写数据请求所携带的数据。第二个写数据请求所携带的待写入数据将被写入卷A,其逻辑块地址为00002,所述数据的长度为8byte。由于所述写数据请求所携带的数据的逻辑块地址和长度均与表1所示的第二个写数据请求所携带的数据的逻辑块地址和长度相同,因此所述写数据请求所携带的数据用于覆盖表1所示的第二个写数据请求所携带的数据。第三个写数据请求所携带的待写入数据是新写入的数据,所述数据将被写入卷A,其逻辑块地址为00004,所述数据的长度为8byte。

在步骤S103之后,还包括以下步骤。

步骤S104:当备份周期到达时,存储设备20将第三编号修改为第四编号。如前面所述,在步骤S103中为每个写数据请求分配的编号为第三编号2。那么,在本次备份周期到达时,存储设备20将第三编号2修改为第四编号3,第四编号3是第三编号2之后的编号。那么,之后接收的写数据请求,均会被分配第四编号3。

步骤S105:创建所述生产卷的快照。为了与步骤S103中的第一快照相区别,将这里的快照称为第二快照。每个快照的时间点均是生产卷和目标卷的数据一致性点。数据一致性点是指生产卷的数据和目标卷的数据一致的时间点。

步骤S106:将第四编号修改为第五编号。按照前面的描述,当所述生产卷的快照被创建之后,存储设备20会再次修改编号。例如,将所述第四编号3修改为第五编号4。那么,对于在将第四编号3修改为第五编号4之后,下一次修改编号(下一次备份周期到达时)之前接收的写数据请求,均会被分配第五编号4。然而,在创建所述生产卷的第二快照之后,将第四编号3修改为第五编号4之前的这段时间内,存储设备20接收的写数据请求仍然会被分配第四编号3,而这些写数据请求所携带的数据并没有被记录在所述第二快照中。因此,所述第二快照包括第一编号0对应的逻辑地址中存储的数据、第二编号1对应的逻辑地址中存储的数据、第三编号2对应的逻辑地址中存储的数据以及部分第四编号3对应的逻辑地址中存储的数据。

步骤S107:确定第二编号之后直至与第五编号之前的差异数据的逻辑地址。其中,所述差异数据包括第二编号1标识的时间段内接收的差异数据、第三编号2标识的时间段内接收的差异数据、第四编号3标识的时间段内接收的差异数据,但不包括第五编号4标识的时间段内接收的差异数据。可以理解的是,第二编号是创建第一快照之前最近一次为写数据请求分配的编号,第五编号是创建第二快照之后最近一次为写数据请求分配的编号。因此,第二编号之后直至与第五编号之前的差异数据多于创建第一快照之后至创建第二快照之前的数据。示例性的,第二编号之后直至与第五编号之前的差异数据的记录如表3所示。

步骤S108:根据所述差异数据的逻辑地址从所述第二快照中读取备份数据。所述从第二快照中读取的备份数据可能是所述差异数据,也可能是所述差异数据的子集。由于第二快照中仅记录了部分第四编号3对应的逻辑地址中存储的数据,因此存储设备20可能不能得到步骤S107中记录的所有的差异数据。例如,假设在编号3所标识的时间段内,存储设备20接收了两个写数据请求。其中第一个写数据请求是在创建第二快照之前接收的,其携带的数据的逻辑块地址为00008,长度为4byte。而第二个写数据请求是在创建第二快照之后接收的,其携带的数据的逻辑块地址为00004,长度为8byte。那么,存储设备20仅能从存储设备20中获得第一个写数据请求携带的数据,以及第二个写数据请求包含的逻辑地址在第二快照中存储的数据。例如,如表3所示,第二个写数据请求携带的数据为45600000,其逻辑块地址为00004,长度为8byte。而所述逻辑块地址和长度在第二快照中的数据为12300000。因此,存储设备20仍然将123000000备份至目标卷。

步骤S109:将所述备份数据发送至目标卷。另外,存储设备20还可以将所述备份数据的逻辑地址发送给所述目标卷,使得所述备份数据保存在所述目标卷中的位置与所述备份数据保存在所述生产卷中的位置一致。

待上述操作执行完毕之后,存储设备20完成了一次增量备份,由于存储设备20记录的差异数据多于备份数据,因此存储设备20在进行增量备份时不需要悬挂写数据请求,仍然可以保证将两次快照之间的差异数据备份给目标卷,保证了生产卷和目标卷的数据一致性。

本实施例还提供了一种差异数据备份装置66。所述装置66位于存储系统中,所述存储系统包括生产卷和目标卷。如图6所示,所述装置66包括读取模块661和发送模块662。

其中,读取模块661用于获取两个编号之间的差异数据的记录,编号用于标识数据写入所述生产卷的时间段,其中所述两个编号中的第一编号是创建所述生产卷的第一快照之前最近一次为所述生产卷接收的数据分配的编号,所述两个编号中的第二编号是创建所述生产卷的第二快照之后最近一次为所述生产卷接收的数据分配的编号,所述差异数据的记录包括所述两个编号之间的编号所标识的时间段内接收的差异数据的逻辑地址,所述两个编号之间的所有编号不包括所述第二编号;以及根据所述差异数据的逻辑地址从所述第二快照中读取备份数据,所述备份数据是所述差异数据的子集。具体的,读取模块661的功能可以参见步骤S101-步骤S108的描述,这里不再赘述。在实际实现时,读取模块661可以是图3所示的处理器212调用存储器213中的程序214,这种情况下,处理器212为CPU。或者,读取模块661也可以由处理器212独立实现,这种情况下,处理器212为现场可编程门阵列(英文:Field-Programmable Gate Array,FPGA)或其他处理芯片。

发送模块662,用于将所述备份数据发送给所述目标卷。发送模块662可以是图3所示的处理器212调用存储器213中的程序214,这种情况下,处理器212为CPU。或者,发送模块662也可以由处理器212独立实现,这种情况下,处理器212为现场可编程门阵列(英文:Field-Programmable Gate Array,FPGA)或其他处理芯片。

可选的,所述两个编号之间的所有编号按照设定条件改变,所述设定条件包括预设的备份周期到达或者创建所述生产卷的快照。

可选的,所述第二快照是所述第一快照的下一次快照。

可选的,发送模块662还用于将所述备份数据的逻辑地址发送给所述目标卷。

可选的,所述两个编号之间的编号不包括所述第二编号。

在本实施例提供的差异数据备份装置中,由于所述两个编号中的第一编号是创建所述生产卷的第一快照之前最近一次为所述生产卷接收的数据分配的编号,而所述两个编号中的第二编号是创建所述生产卷的第二快照之后最近一次为所述生产卷接收的数据分配的编号,因此所述差异数据多于备份数据。因此本实施例提供的差异数据备份装置不需要悬挂写数据请求,仍然可以保证将两次快照之间的差异数据备份给目标卷,保证了生产卷和目标卷的数据一致性。由于不需要悬挂写数据请求,因此可以提高数据处理的效率。

本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。

计算机可读介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、光盘。

计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作。

计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,本领域普通技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1