具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,源存储***与目标存储***可以使用不同的文件存储方式,比如,源存储***可以采用NAS方式,目标存储***可以采用OS方式,等等;源存储***与目标存储***也可以使用相同的文件存储方式。以下的实施例主要是基于前一种情况进行说明的。
从源存储***向目标存储***迁移的目的可以是:使得迁移前由源存储***提供的业务,在迁移后改变为由目标存储***来提供。表面上看,所述迁移可以指源存储***中文件的迁移,实质上,所述迁移可以指涉及所迁移的文件的部分或全部业务的迁移。比如,在迁移前,用户针对源存储***上传下载文件,在迁移后,用户可以不再针对源存储***上传下载文件,而是针对目标存储***上传下载文件。
对于采用不同文件存储方式的源存储***与目标存储***之间的文件迁移,可以包括:根据源存储***中的该文件的文件类型,对原本不支持该文件类型的目标存储***进行改造,使得目标存储***在改造后可以支持该文件类型,进而再将源存储***中的该文件迁移至目标存储***。
对于采用相同文件存储方式的源存储***与目标存储***之间的文件迁移,可以包括:直接将源存储***中的迁移至目标存储***,而无需改造目标存储***。
本申请的方案的核心思想是:可以将业务迁移相关的过程划分为多个阶段,以实现稳步迁移,在其中的某些阶段中,源存储***和目标存储***可以并行运行,根据并行运行情况可以推测业务迁移前后目标存储***的稳定性,以决定是否进行业务迁移。本申请的方案有利于降低业务迁移的风险。
下面对本申请的方案进行说明。
图1为本申请实施例提供的一种业务迁移方法的过程。该过程的执行主体可以是源存储***所在的设备、和/或目标存储***所在的设备、和/或与源存储***和目标存储***相关的其他设备等。这些设备具体可以是:个人计算机、大中型计算机、计算机集群、手机、平板电脑、智能手表、车载移动台等。以上列举的设备具体种类只是作为示例,并不构成对本申请的限定。
图1中的过程可以包括以下步骤:
S101:在将源存储***的文件迁移至目标存储***后,在针对所迁移的文件创建源存储***的第一任务时,创建目标存储***的第二任务,所述第二任务对应于所述第一任务。
在本申请实施例中,可以分批地将源存储***的文件向目标存储***迁移,也可以整体地将源存储***的文件向目标存储***迁移。一般说来,前一种方式的优点是:每次迁移的只是一部分文件,***的处理负担相对较小,对***整体影响和风险相对较小;后一种方式的优点是:可以相对较快地完成文件迁移以及业务迁移。
在本申请实施例中,对于源存储***中的各种文件对应的文件类型,为了支持这些文件类型,可能需要根据源存储***与目标存储***采用的文件存储方式的区别,对目标存储***以及周边的其他***的相关代码进行改造,使得改造后的代码适应于目标存储***采用的文件存储方式。比如,这些代码可以是接口、文件类型、业务逻辑相关的代码等。
在进行上述的代码改造前,对于源存储***和目标存储***,可以只运行着源存储***以为外部提供业务,而暂时不启用目标存储***。也即,可以只由源存储***创建任务以及执行任务,所述任务可以是可由文件存储***执行的任务。
在本申请实施例中,在开始进行上述的代码改造后,对于已迁移的文件,可以通过使源存储***与目标存储***并行运行的方式,检测在步骤S102中迁移的文件迁移前后,目标存储***的运行情况,以确定目标存储***是否稳定。
在本申请实施例中,为了防止在文件迁移后,目标存储***不稳定进而影响业务,在迁移文件后,可以暂时仍由源存储***来提供实际的业务,而目标存储***则可以采用模拟的形式,模拟提供所述业务,也即,在执行第二任务时,可以不对外部产生实质的影响,这样做的优点是:不仅可以防止目标存储***不稳定时影响业务,也可以防止源存储***与目标存储***重复提供相同的业务,从而可能无法保证业务的幂等性。
具体地,第二任务可以不包含目标存储***与外部的实际业务操作,或者只包括目标存储***与目标存储***外部的一部分实际业务操作。从而可以实现在执行第二任务时,目标存储***可以不对外部产生实质的影响。第一任务可以包含源存储***与外部的实际业务操作,从而可以实现在执行第一任务时,源存储***可以对外部产生实质的影响。为了便于描述,可以将第一任务称为:有效任务;以及可以将第二任务称为:辅助任务。
需要说明的是,上述的外部可以指目标存储***外部、或目标存储***外部、或源存储***和目标存储***这两者整体的外部。
S102:执行所述第一任务以及所述第二任务。
在本申请实施例中,第一任务、第二任务可以同时执行,也可以按照一定的先后顺序执行。
S103:比对所述第一任务执行结果与所述第二任务执行结果。
在本申请实施例中,第二任务不会对外部产生实质的影响,但是仍然可以对目标存储***产生实质的影响,比如,可以通过执行第二任务,针对目标存储***生成文件(具体可以为导出文件等)和解析文件(具体可以为导入文件)等。
为了便于描述,可以步骤S101~S102的这一阶段称为:源存储***与目标存储***并行运行,且源存储***作为主导的阶段。在该阶段中,可以同时基于源存储***和目标存储***生成文件和解析文件等,进一步地,对于外部而言,外部可以从源存储***读取文件和上传文件等,而可以暂时不从目标存储***读取文件和上传文件,因为,目标存储***尚可能不稳定。
S104:在确定比对结果一致后,将源存储***提供的业务迁移至目标存储***。
在本申请实施例中,前面已经提到,可以根据并行运行情况可以推测迁移前后目标存储***的稳定性,步骤S103即可以作为所述推测的一种具体实施方式。一般说来,对于有效任务和辅助任务,若它们对应的文件已经成功地迁移,且源目标存储***和目标存储***正常稳定地运行,则在比对它们的任务执行结果时,比对结果是一致的,反之,比对结果不一致。
为了便于理解,对所述的“比对结果一致”进行解释。对于步骤S103,若通过比对,确定第一任务执行结果涉及的文件(比如,生成文件)与第二任务执行结果涉及的文件内容是相同的,则可以判定比对结果一致,反之,可以判定比对结果不一致。若迁移出现了问题或者源存储***或目标存储***不稳定时,可能导致所述比对结果不一致。在实际应用中,所述相同可以指文件完全相等,也可以指文件并非完全相等,但是文件的实质内容相同等。对于文件,除了实质内容以外,可以还有一些可用于对实质内容进行附加说明的附加内容。
在本申请实施例中,在确定比对结果一致后,可以认为在源存储***的文件类型向目标存储***迁移后,目标存储***可以正常稳定地运行,可以替代源存储***提供业务,则可以将源存储***提供的业务迁移至目标存储***,从而可以完成所述业务迁移过程。之后,原来从源存储***获取业务的用户或***,可以从目标存储***获取业务。
在本申请实施例中,对于步骤S101,若只是向目标存储***迁移了源存储***的部分文件而非全部。则相应地,对于步骤S104,在确定比对结果一致后,可以只将源存储***提供的、对应于已迁移的文件的业务迁移至目标存储***,而对应于尚未迁移的文件的业务可以仍由源存储***提供,而尚不迁移至目标存储***。或者,对于步骤S104,在确定比对结果一致后,也可以暂时不进行业务迁移,而是在源存储***的全部文件均已迁移后,再进行业务迁移。
需要说明的是,图1中的各步骤的执行主体均可以是同一设备,或者,该方法也可以由不同设备作为执行主体。比如,步骤S101和步骤S102的执行主体可以为设备1,步骤103和步骤S104的执行主体可以为设备2;又比如,步骤S101的执行主体可以为设备1,步骤S102~S104的执行主体可以为设备2;等等。
通过图1中的方法,对于迁移的文件,可以通过分别在源存储***与目标存储***中执行涉及该文件的任务的方式,使得源存储***和目标存储***并行运行,并可以根据并行运行情况决定是否进行业务迁移,因此,相比于现有技术,本申请的方案可以降低业务迁移的风险,因此,可以部分或全部地解决现有技术中的问题。
基于上述方法,本申请实施例还提供了上述方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本申请实施例中,在尚未确保目标存储***稳定性前,目标存储***生成的文件可能是不可靠性,为了降低对相关业务的影响和风险,可以暂时阻断从目标存储***至外部的文件传输通道,以使得在所述阻断期间,目标存储***中的文件可以不流向外部,从而也不会对相关业务造成影响。
外部可以只从源存储***中读取文件,而不从目标存储***读取文件。
基于这样的考虑,对于步骤S102,执行所述第一任务以及所述第二任务前,还可以执行:使从源存储***至源存储***外部的文件传输通道保持打开状态,以及使从目标存储***至目标存储***外部的文件传输通道保持关闭状态。本申请对控制文件传输通道打开或关闭的具体方式并不做限定,一般地,可以采用软件开关或硬件开关进行控制。
在本申请实施例中,若通过步骤S103,确定比对结果一致后,可以认为目标存储***比较稳定,可以将源存储***提供的业务迁移至目标存储***。在实际应用中,在源存储***与目标存储***采用的文件存储方式不同的情况下,为了实现文件迁移以及业务迁移,可能需要根据目标存储***采用的文件存储方式,对目标存储******进行文件访问改造,以使得改造后,外部可以正常地访问目标存储***中的文件。在文件访问改造的阶段,可以进一步地检测目标存储***的稳定性,以及访问目标存储***中的文件时的可靠性。
具体地,在文件访问改造的过程中,可以将目标存储***作为主导,而将源存储***作为辅助,进行并行运行,为了便于描述,可以将这个阶段简称为“本阶段”,本阶段是源存储***与目标存储***并行运行,且目标存储***作为主导的阶段(步骤S101~S102是源存储***作为主导的阶段),对于在源存储***作为主导的阶段创建的第一任务和第二任务,第一任务可以包含源存储***与源存储***外部的实际业务操作,第二任务可以不包含目标存储***与目标存储***外部的实际业务操作。而在本阶段,可以与源存储***作为主导的阶段相反,下面进行说明。
对于步骤S104,将源存储***提供的业务迁移至目标存储***前,还可以执行以下步骤:
在针对所迁移的文件创建源存储***的第三任务时,创建目标存储***的第四任务,所述第四任务对应于所述第三任务;
执行所述第三任务以及所述第四任务;
比对所述第三任务执行结果与所述第四任务执行结果,以及确定比对结果一致。
其中,第三任务可以不包含源存储***与源存储***外部的实际业务操作,或者只包括一部分与源存储***外部的实际业务操作,从而可以实现在执行该任务时,源存储***可以不对外部产生实质的影响;第四任务可以包含目标存储***与目标存储***外部的实际业务操作。
可以看到,本阶段与源存储***作为主导的阶段类似,不同之处在于:在本阶段,是将源存储***的任务(第三任务)作为辅助任务,而将目标存储***的任务(第四任务)作为有效任务。在本阶段中,***可以根据自身***文件访问改造的时间来选取读取源存储***或目标存储***中的文件。
进一步地,在本阶段,执行所述第三任务以及所述第四任务前,还可以执行:使从源存储***至源存储***外部的文件传输通道保持关闭状态,以及使从目标存储***至目标存储***外部的文件传输通道保持打开状态。从而,目标存储***中的文件可以流向外部。
在本申请实施例中,执行第一任务以及第二任务时,或者执行第三任务以及第四任务时,考虑到***性能影响,可以不同时执行执行所述第三任务以及所述第四任务,以及不同时执行第三任务以及第四任务,而是可以错开时间执行,从而有利于降低***瞬时压力。
例如,对于步骤S102,执行所述第一任务以及所述第二任务,具体可以包括:执行所述第一任务,以及在经过预定时长后,执行所述第二任务。当然,在实际应用中,先执行第二也是可以的。
又例如,执行所述第三任务以及所述第四任务,具体可以包括:执行所述第四任务,以及在经过预定时长后,执行所述第三任务。
在本申请实施例中,在源存储***作为主导的阶段或本阶段,辅助任务相比于其对应的有效任务,可以跳过实际业务操作,辅助任务一般可以只记录调用参数等,并将参数写入结果文件,以供后续比对。
在实际应用中,对于目标存储***,除了关注其是否稳定以外,一般还会关注其性能,若性能无法满足预定需求,则将源存储***提供的业务迁移至目标存储***后,可能会对相关业务产生严重影响。基于这样的考虑,对于源存储***作为主导的阶段以及本阶段,除了比对任务执行结果以外,还可以对目标存储***的性能也进行检测。
具体地,在源存储***作为主导的阶段和/或本阶段,还可以执行:确定目标存储***在执行所述第二任务和/或第四任务时的性能表现是否符合预定需求;若是,则后续可以进行业务迁移,否则,后续可以暂不进行业务迁移,而是针对发现的性能问题再对目标存储***进行处理,在解决性能问题后,再进行业务迁移,从而,可以降低业务迁移风险。
在本申请实施例中,经过源存储***作为主导的阶段和/或本阶段,确定比对结果一致且性能没有问题后,则可以进行业务迁移。具体地,可以只创建目标存储***的任务,而不再创建源存储***的任务,由目标存储***代替源存储***向外部提供文件读取、文件上传下载等业务。
通过上面的说明可知,在本申请实施例中,将整个业务迁移过程可以分为多个阶段,以实现稳步迁移。基于这样的前提,为了进一步地提高本申请的方案的有益效果,在每个阶段可以按照文件类型维度进行分批迁移,比如,可以将源存储***中所有的文件,按照文件类型进行分批迁移,当源存储***中所有的文件类型均已处于步骤S101~S103对应的阶段后,再继续地分批向下一阶段(可以是上述的本阶段)推进,以及相应地分批进行业务迁移(或者,也可以等待全部文件迁移完毕后在进行业务迁移)。这样做的优点是:可以使得本次迁移影响的范围尽量限制在迁移的几个文件中,降低整体复杂度。
基于上述的分批迁移的思路,本申请实施例提供了图1中过程的一种具体实施过程。该具体实施过程可以包括:
根据源存储***中的文件的文件类型,依次针对每种文件类型执行:
在将该文件类型的文件迁移至目标存储***后,在针对该文件类型的文件创建源存储***的第一任务时,创建目标存储***的第二任务,所述第二任务对应于所述第一任务;执行所述第一任务以及所述第二任务;比对所述第一任务执行结果与所述第二任务执行结果;
在确定每种文件类型对应的比对结果均一致后,将源存储***提供的业务迁移至目标存储***。
需要说明的是,按照文件类型维度进行分批迁移只是一种示例,在实际应用中,也可以按照其他维度(比如,时间维度、业务维度等),以及还可以结合多个维度进行分批迁移。
上面对于本申请实施例提供的业务迁移方法进行了说明,为了便于理解,本申请实施例还提供了在一种实际应用场景下,对该迁移方法的实现。
在该实际应用场景下,上述的源存储***采用的文件存储方式可以是NAS方式,上述的目标存储***采用的文件存储方式可以是OS方式,上述的外部可以指另一个预定文件存储***。
需要说明的是,本申请对源存储***和目标存储***在实际应用中的具体命名名称并不做限定。为了便于描述,假定在该实际应用场景下,目标存储***的名称为网络附属存储(Network Attached Storage,NAS)文件***,以下简称为:NAS;目标存储***的名称为:对象存储服务(Object Storage Service,OSS)文件***,以下简称为OSS。上述的第一任务、第三任务可以是NAS的任务,上述的第二任务、第四任务可以是OSS的任务。
在这种场景下,可以将从NAS至OSS的迁移过程划分为4个阶段,迁移时可以根据文件类型维度,分批进行迁移。划分的4个阶段分别称为NAS阶段、NAS_OSS阶段、OSS_NAS阶段、OSS阶段,如图2所示。下面分别针对这4个阶段进行详细说明。
NAS阶段:在代码未进行OSS改造前都可以属于该阶段。在该阶段,可以只创建NAS的任务,而不创建OSS的任务。
NAS_OSS阶段:该阶段即可以为上述的步骤S101~S103对应的阶段。对于该阶段迁移的文件,可以同时基于NAS与OSS生成文件和解析文件等。NAS的任务是有效任务,OSS的任务是辅助任务。***以NAS文件为准,且此时***尚可以不进行文件访问改造,可以按照预定策略从NAS读取文件和上传文件。在实际应用中,NAS或OSS可以是通过***向外部提供业务的。
具体地,在创建任务时,对于相同的TaskWorker可以同时创建两个任务,一个任务是处理NAS文件的任务,另一个任务是处理OSS文件的任务。进一步地,可以将用于触发NAS的任务和OSS的任务执行的触发时间错开。比如,NAS的任务可以在当前时间进行触发,而OSS的任务可以在当前时间往后推4个小时,另外,为了防止任务的执行时间跨天,19:00以后的OSS的任务可以不往后推,需要说明的是,4小时是上述的预定时长的示例,并非是对预定时长的限定。
在该阶段,为了保证业务上的幂等性,需要确保所有的业务操作(比如调用接口、发送消息等)必须只由有效任务(为NAS的任务)执行,而辅助任务需要跳过实际业务操作(也即,不包含与外部的实际业务操作)。辅助任务可以只记录调用参数等,并将参数写入结果文件,以供后续比对。
在该阶段,要关闭通知文件交换上传OSS文件到预定文件存储***的开关(也即,上述的使从源存储***至源存储***外部的文件传输通道保持关闭状态),以确保预定文件存储***只拿到有效任务生成的导出文件。
进一步地,可以对该阶段的NAS文件与对应的OSS文件进行比对,若比对确定文件内容相同,且确定OSS文件处理运行稳定,时间在业务可接受范围,则可以进入下一阶段。在实际应用中,一般可以由后督***或者与后督***有类似功能的其他***,执行文件比对的操作。
OSS_NAS阶段:在该阶段,可以以OSS生成文件为准,并通知***进行OSS文件访问改造。
该阶段依然可以同时基于NAS和OSS来生成文件。与上一阶段的区别是,OSS的任务是有效任务,而NAS的任务是辅助任务,相应地,按照正常触发时间,可以将NAS的任务的触发时间往后推,***可以根据自身***改造的时间来选择读取OSS文件或NAS文件。
在该阶段,为了保证业务上的幂等性,需要确保所有的业务操作(比如调用接口、发送消息等)必须只由有效任务(为OSS的任务)执行,而辅助任务需要跳过实际业务操作。辅助任务可以只记录调用参数等,并将参数写入结果文件,以供后续比对。
在该阶段,要打开通知文件交换上传OSS文件到预定文件存储***的开关,以及要关闭通知文件交换上传NAS文件到预定文件存储***的开关,以确保预定文件存储***只拿到有效任务生成的导出文件。
OSS阶段:
经上述对NAS和OSS并行运行期(即:NAS_OSS阶段、OSS_NAS阶段),验证比对结果一致(任务涉及的NAS文件与OSS文件无差异),OSS性能符合预定需求,且***都完成了OSS访问改造后,则可以只创建OSS的任务生成文件,不再创建NAS的任务生成文件,从而,可以实现将NAS提供的业务迁移至OSS。若所有文件完成这四个阶段,可以认为整个迁移过程结束。
在该实际应用场景中,将迁移过程通过划分为多个阶段,并利用后督***比对NAS和OSS并行运行阶段的任务执行结果来比较迁移前后的***稳定性,进而可以根据比对结果决定是否进行业务,从而可以大幅度降低对业务迁移的风险。
在实际应用中,相比于源存储***与目标存储***采用的文件存储方式相同的情况,在源存储***与目标存储***采用的文件存储方式不同的情况下,更容易出现文件迁移后,目标存储***不稳定的情况,因为,在后一种情况下,需要对目标存储***进行改造,以使得改造后的目标存储***支持源存储***支持的文件类型。
基于与图1中方法相同的思路,本申请实施例还提供了另一种业务迁移方法,如图3所示。
图3为本申请实施例提供的另一种业务迁移方法的过程,该过程可以包括以下步骤:
S301:在将源存储***的文件迁移至目标存储***后,在针对所迁移的文件创建源存储***的第一任务时,创建目标存储***的第二任务,所述第二任务对应于所述第一任务,源存储***采用的文件存储方式与目标存储***采用的文件存储方式不同。
S302:执行所述第一任务以及所述第二任务。
S303:比对所述第一任务执行结果与所述第二任务执行结果。
S304:在确定比对结果一致后,将源存储***提供的业务迁移至目标存储***。
通过图3中的方法,对于迁移的文件,可以通过分别在源存储***与目标存储***中执行涉及该文件的任务的方式,使得源存储***和目标存储***并行运行,并可以根据并行运行情况决定是否进行业务迁移,因此,相比于现有技术,本申请的方案可以降低业务迁移的风险,因此,可以部分或全部地解决现有技术中的问题。
以上为本申请实施例提供的业务迁移方法,基于同样的思路,本申请实施例还提供相应的业务迁移装置,如图4、图5所示。
图4为本申请实施例提供的对应于图1的业务迁移装置结构示意图,所述装置包括:
文件任务模块401,用于在将源存储***的文件迁移至目标存储***后,在针对所迁移的文件创建源存储***的第一任务时,创建目标存储***的第二任务,所述第二任务对应于所述第一任务;
执行模块402,用于执行所述第一任务以及所述第二任务;
比对模块403,用于比对所述第一任务执行结果与所述第二任务执行结果;
业务迁移模块404,用于在确定比对结果一致后,将源存储***提供的业务迁移至目标存储***。
可选地,所述装置还包括:
开关模块405,用于在执行模块402执行所述第一任务以及所述第二任务前,使从源存储***至源存储***外部的文件传输通道保持打开状态,以及使从目标存储***至目标存储***外部的文件传输通道保持关闭状态。
可选地,所述第一任务包含源存储***与源存储***外部的实际业务操作,所述第二任务不包含目标存储***与目标存储***外部的实际业务操作;
在业务迁移模块404将源存储***为源存储***外部提供的业务迁移至目标存储***前,
文件任务模块401还用于:在针对所迁移的文件创建源存储***的第三任务时,创建目标存储***的第四任务,所述第四任务对应于所述第三任务,所述第三任务不包含源存储***与源存储***外部的实际业务操作,所述第四任务包含目标存储***与目标存储***外部的实际业务操作;
执行模块402还用于:执行所述第三任务以及所述第四任务;
比对模块403还用于:比对所述第三任务执行结果与所述第四任务执行结果,以及确定比对结果一致。
可选地,开关模块404,还用于在执行模块402执行所述第三任务以及所述第四任务前,使从源存储***至源存储***外部的文件传输通道保持关闭状态,以及使从目标存储***至目标存储***外部的文件传输通道保持打开状态。
可选地,所述装置具体用于:
根据源存储***中的文件的文件类型,依次针对每种文件类型执行:
在将该文件类型的文件迁移至目标存储***后,在针对该文件类型的文件创建源存储***的第一任务时,创建目标存储***的第二任务,所述第二任务对应于所述第一任务;执行所述第一任务以及所述第二任务;比对所述第一任务执行结果与所述第二任务执行结果;
在确定每种文件类型对应的比对结果均一致后,将源存储***提供的业务迁移至目标存储***。
可选地,执行模块402具体用于:执行所述第一任务,以及在经过预定时长后,执行所述第二任务。
可选地,所述装置还包括:
性能检测模块405,用于在业务迁移模块404将源存储***提供的业务迁移至目标存储***前,确定执行所述第二任务时的性能表现符合预定需求。
可选地,源存储***采用的文件存储方式与目标存储***采用的文件存储方式不同。
可选地,源存储***采用的文件存储方式可以为网络附属存储NAS方式,目标存储***采用的文件存储方式可以为对象存储OS方式。
图4中的装置具体可以位于源存储***所在的设备、和/或目标存储***所在的设备、和/或与源存储***和目标存储***相关的其他设备上。
图5为本申请实施例提供的对应于图3的业务迁移装置结构示意图,所述装置包括:
文件任务模块501,用于在将源存储***的文件迁移至目标存储***后,在针对所迁移的文件创建源存储***的第一任务时,创建目标存储***的第二任务,所述第二任务对应于所述第一任务,源存储***采用的文件存储方式与目标存储***采用的文件存储方式不同;
执行模块502,用于执行所述第一任务以及所述第二任务;
比对模块503,用于比对所述第一任务执行结果与所述第二任务执行结果;
业务迁移模块504,用于在确定比对结果一致后,将源存储***提供的业务迁移至目标存储***。
本申请提供的装置是与本申请提供的方法一一对应的,因此,所述装置也具有与所述方法类似的有益技术效果,由于上面已经对所述方法的有益技术效果进行了详细说明,因此,这里不再赘述所述装置的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。